:root{--back-bg: rgba(33, 21, 14, .72)}html,body{height:100%;overflow:hidden;background:#241811;color:#f3dfc1}#room{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sound{position:fixed;top:12px;right:16px;z-index:20;display:grid;place-items:center;width:2.3rem;height:2.3rem;padding:0;border:1px solid rgba(243,223,193,.35);border-radius:50%;background:#21150eb8;color:inherit;cursor:pointer}.sound:hover{border-color:#f3dfc1}.sound svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sound .speaker{fill:currentColor}.sound .on,.sound[aria-pressed=true] .off{display:none}.sound[aria-pressed=true] .on{display:inline}.caption{position:fixed;left:16px;right:16px;top:calc(54vh + 8px);z-index:5;margin:0;text-align:center;font-family:ZCOOL KuaiLe,system-ui,sans-serif;font-size:clamp(.95rem,2.4vw,1.2rem);line-height:1.35;text-shadow:0 1px 4px rgba(0,0,0,.7);pointer-events:none}@media(min-width:640px){.caption{top:calc(58vh + 10px)}}.caption.over-corridor{top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 3.4rem);width:fit-content;max-width:calc(100vw - 32px);margin:0 auto;padding:.3rem .8rem;border-radius:10px;background:#0f0a07d1}.panel{position:fixed;left:0;right:0;bottom:max(12px,env(safe-area-inset-bottom));z-index:10;display:flex;flex-direction:column;align-items:center;gap:.45rem;width:min(560px,calc(100vw - 24px));margin-inline:auto}.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;width:100%}.panel input{flex:1 1 10rem;min-width:0;padding:.55rem .8rem;border:1.5px solid rgba(243,223,193,.55);border-radius:10px;background:#21150ed9;color:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;letter-spacing:.06em}.panel input::placeholder{color:#f3dfc173}.panel input:focus{outline:2px solid #e59a78;outline-offset:1px}.panel button{padding:.5rem .95rem;border:1.5px solid rgba(243,223,193,.5);border-radius:10px;background:#21150ed9;color:inherit;font:inherit;font-size:.92rem;cursor:pointer}.panel button:hover{border-color:#f3dfc1}.panel button.primary{border-color:#e59a78;background:#e59a78;color:#21150e}.panel button.copy{min-width:6.5rem}.chips button{padding:.2rem .65rem;border-radius:999px;font-size:.8rem}.hint{min-height:1.2em;margin:0;color:#f3dfc1bf;font-size:.8rem;text-shadow:0 1px 3px rgba(0,0,0,.7)}.hint.warn{color:#f4b596}.table-wrap{width:100%;font-size:.85rem;text-align:center}.table-wrap summary{cursor:pointer}.morse-table{position:fixed;top:54px;left:0;right:0;z-index:15;width:min(560px,calc(100vw - 24px));margin-inline:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:.1rem .6rem;max-height:calc(54vh - 66px);padding:.5rem .7rem;overflow-y:auto;border:1px solid rgba(243,223,193,.3);border-radius:10px;background:#21150e;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-align:left}.morse-table span{white-space:nowrap}.morse-table b{color:#e59a78}.book-dialog{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:#0503018c}.paper-shadow{width:min(440px,100%);filter:drop-shadow(5px 9px 14px rgba(0,0,0,.7));transform:rotate(-1.2deg)}.paper{position:relative;padding:2rem 2.1rem 1.8rem;overflow:hidden;color:#2f1c0d;font-family:Songti SC,"Noto Serif CJK SC",STSong,Georgia,serif;background-color:#c6a273;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .22 0 0 0 0 .13 0 0 0 0 .05 0 0 0 .55 -.05'/%3E%3C/filter%3E%3Crect width='320' height='320' filter='url(%23n)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .02' numOctaves='3' seed='6'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .17 0 0 0 0 .06 0 0 0 1.1 -.42'/%3E%3C/filter%3E%3Crect width='600' height='400' filter='url(%23m)'/%3E%3C/svg%3E"),radial-gradient(circle at 78% 82%,#5a341447,#5a341400 24%),radial-gradient(circle at 14% 18%,#ffe8be4d,#ffe8be00 42%);background-size:320px 320px,cover,auto,auto;box-shadow:inset 0 0 46px #3a1c08b8,inset 0 0 8px #1e0e04cc;clip-path:polygon(.6% 2.4%,7% .5%,16% 1.8%,27% .4%,39% 1.6%,52% .3%,63% 1.7%,76% .5%,88% 1.9%,99.4% .8%,98.8% 11%,99.7% 24%,98.6% 37%,99.8% 51%,98.7% 64%,99.6% 78%,98.5% 90%,99.3% 99.1%,89% 98.2%,77% 99.6%,64% 98.4%,50% 99.7%,37% 98.3%,24% 99.5%,12% 98.5%,.8% 99.3%,1.5% 87%,.3% 73%,1.6% 58%,.4% 44%,1.5% 30%,.3% 15%)}.paper h2,.paper p{position:relative}.paper h2{margin:0 1.6rem .15rem 0;font-size:1.45rem;font-weight:700;letter-spacing:.02em}.paper p{margin:.55rem 0 0;font-size:1rem;line-height:1.7}.paper .original{margin-top:.1rem;color:#5a3a1e;font-size:.82rem;font-style:italic}.close{position:absolute;top:.7rem;right:.8rem;z-index:1;width:2rem;height:2rem;border:0;background:none;color:#3a2210;font-size:1.4rem;line-height:1;cursor:pointer}.close:focus-visible{outline:1.5px solid #5a3a1e;outline-offset:-2px}
