:root{--ink:#3b2a12;--paper:#fcf8ec;--card:#f5efdf;--card-hover:#ece3cc;--accent:#6b3f1d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#bfdcf2;margin:0;font-family:system-ui,sans-serif;overflow:hidden}input,textarea,[role=dialog],[role=region],[role=alertdialog]{-webkit-user-select:text;user-select:text}button,[role=button],.use-badge,.player-label,.door-label,canvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#stage{outline:none;position:fixed;inset:0}#stage canvas{display:block}#fade{z-index:5;opacity:0;pointer-events:none;background:#000;transition:opacity .35s ease-out;position:fixed;inset:0}#fade.on{opacity:1;transition:none}#hud{pointer-events:none;text-shadow:0 1px #fff9;position:fixed;top:12px;left:16px;right:16px}#hud p{margin:0 0 4px}#hud-name{background:#fcf8ece0;border-radius:8px;padding:3px 10px;font-weight:700;display:inline-block}#hud-online{background:#fcf8ecb3;border-radius:6px;padding:2px 8px;font-size:.8rem;display:inline-block}#hud-online[hidden]{display:none}#hud-talking{color:#fff;background:#c0392b;border-radius:8px;margin-top:2px;padding:2px 10px;font-size:.8rem;font-weight:700;display:table}#hud-talking[hidden]{display:none}body:has(#hud-talking:not([hidden])) #minimap{top:104px}@media (width>=701px){#hud-online{text-overflow:ellipsis;white-space:nowrap;vertical-align:top;max-width:calc(100vw - 612px);overflow:hidden}}@media (width<=700px){#hud p{max-width:calc(100vw - 320px)}#hud:not([hidden]){justify-items:start;row-gap:4px;display:grid}#hud>*{margin:0!important}#hud-name{order:1;max-width:calc(100vw - 280px)!important}#hud-online{order:2}#status-btn{order:3}#hud-talking{order:4}#toast:not(:empty){top:calc(62px + env(safe-area-inset-top,0px));z-index:21;text-align:center;width:max-content;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003;max-width:calc(100vw - 32px)!important}body.in-room #toast:not(:empty){top:calc(122px + env(safe-area-inset-top,0px))}#hud-talking:not([hidden]){top:calc(62px + env(safe-area-inset-top,0px));z-index:21;white-space:nowrap;width:max-content;position:fixed;left:50%;transform:translate(-50%);max-width:calc(100vw - 32px)!important}#hud-name,#hud-online{text-overflow:ellipsis;white-space:nowrap;vertical-align:top;max-width:100%;overflow:hidden}#hud-online:not([hidden]){display:table}}body.room-open #hud,body.room-open #mail-btn,body.room-open #look-btn,body.room-open #settings-btn,body.room-open #bgm-player,body.room-open #touch,body.room-open #hint,body.room-open #quests,body.room-open #keyguide,body.in-room #hud-name,body.in-room #hud-online{display:none!important}#toast{min-height:1.2em;font-size:.9rem;font-weight:600}#toast:not(:empty){background:#fcf8ecf2;border-radius:8px;max-width:min(420px,100vw - 32px);padding:4px 10px;display:table}body:has(#toast:not(:empty)) #minimap{top:128px}#join{z-index:60;background:#3c2d0a8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#join[hidden]{display:none}@media (width<=700px){#join{padding-top:64px}}#join-form{background:var(--paper);border-radius:16px;width:min(380px,100%);padding:24px;box-shadow:0 10px 30px #00000059}#join-form h1{margin:0 0 12px;font-size:1.6rem}#join-form label{margin-bottom:6px;font-size:.9rem;display:block}#name{border:2px solid var(--accent);background:var(--card,#f5efdf);width:100%;color:var(--ink);border-radius:8px;padding:10px 12px;font-size:1.1rem}#join-error{color:#a01818;min-height:1.3em;margin:6px 0;font-size:.9rem}#enter{cursor:pointer;background:var(--accent);color:#fff;border:0;border-radius:8px;width:100%;padding:12px;font-size:1.1rem;font-weight:700}#enter:disabled{opacity:.6;cursor:wait}#customise{border:1px dashed var(--accent);width:100%;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:10px;margin-top:8px;font-weight:600;display:block}#flavour{opacity:.85;margin:16px 0 0;padding-left:18px;font-size:.85rem;font-style:italic}#touch{display:none}@media (pointer:coarse),(width<=700px){#touch:not([hidden]){pointer-events:none;justify-content:space-between;align-items:flex-end;padding:16px;display:flex;position:fixed;bottom:0;left:0;right:0}}#touch button{pointer-events:auto;color:#fff;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#6b3f1dd9;border:0;font-weight:700}#dpad{grid-template-rows:repeat(2,56px);grid-template-columns:repeat(3,56px);gap:6px;display:grid}#dpad button{border-radius:12px;font-size:1.3rem}#dpad [data-dir=up]{grid-area:1/2}#dpad [data-dir=left]{grid-area:2/1}#dpad [data-dir=down]{grid-area:2/2}#dpad [data-dir=right]{grid-area:2/3}#actions{align-items:flex-end;gap:10px;display:flex}#use-btn{border-radius:50%;width:84px;height:84px;font-size:1.05rem}#jump-btn,#menu-btn{border-radius:50%;width:64px;height:64px;font-size:.95rem}#menu-btn{letter-spacing:-.01em;font-size:.8rem}.player-label{color:#fff;white-space:nowrap;background:#3b2a12d9;border-radius:8px;padding:1px 7px;font:700 12px system-ui,sans-serif}#hint{color:#fff;pointer-events:none;z-index:5;white-space:nowrap;text-overflow:ellipsis;background:#1f2d3de0;border-radius:999px;max-width:calc(100vw - 32px);margin:0;padding:8px 16px;font:700 .95rem system-ui,sans-serif;position:fixed;bottom:22%;left:50%;overflow:hidden;transform:translate(-50%)}#hint[hidden]{display:none}.door-label{color:#fff;white-space:nowrap;background:#1f2d3dd9;border-radius:6px;padding:2px 8px;font:700 12px system-ui,sans-serif}.use-badge{box-sizing:border-box;background:var(--card,#f5efdf);min-width:26px;height:26px;color:var(--ink);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);pointer-events:none;opacity:.8;border-radius:6px;place-items:center;padding:0 6px;font:800 14px system-ui,sans-serif;display:grid}.use-badge.on{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}.note-label{color:var(--ink);white-space:nowrap;background:#fff7b0;border:1px solid #c9b23a;border-radius:6px;padding:1px 6px;font:600 11px system-ui,sans-serif}.bubble{max-width:220px;color:var(--ink);border:2px solid var(--ink);text-align:center;white-space:normal;overflow-wrap:anywhere;background:#fff;border-radius:12px;padding:6px 10px;font:600 13px/1.3 system-ui,sans-serif}.join-pitch{color:var(--accent,#6b3f1d);margin:-2px 0 10px;font-size:1.2rem;font-weight:800;line-height:1.25}.join-sub{opacity:.85;margin:-4px 0 12px;font-size:.85rem}.join-hint{opacity:.75;margin:2px 0 6px;font-size:.8rem}#password-row{margin-top:10px}#password-row[hidden]{display:none}#password{border:2px solid var(--accent);background:var(--card,#f5efdf);width:100%;color:var(--ink);border-radius:8px;padding:10px 12px;font-size:1.1rem}@media (width<=420px){#touch:not([hidden]){padding:12px}#dpad{grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,48px);gap:6px}#actions{gap:6px}#use-btn{width:68px;height:68px}#jump-btn,#menu-btn{width:52px;height:52px;font-size:.85rem}#menu-btn{font-size:.68rem}}#settings-btn{z-index:20;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:44px;height:44px;font-size:1.25rem;position:fixed;top:10px;right:12px;box-shadow:0 1px 4px #0003}#settings-btn:focus-visible{outline-offset:2px;outline:3px solid #6b3f1d}#look-btn{z-index:20;width:44px;height:44px;color:var(--ink,#3b2a12);cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;top:10px;right:64px;box-shadow:0 1px 4px #0003}#look-btn:focus-visible{outline-offset:2px;outline:3px solid #6b3f1d}#mail-btn{z-index:20;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:44px;height:44px;font-size:1.2rem;position:fixed;top:10px;right:116px;box-shadow:0 1px 4px #0003}#mail-btn:focus-visible{outline-offset:2px;outline:3px solid #6b3f1d}.mail-badge{color:#fff;box-sizing:border-box;background:#c0392b;border-radius:9px;min-width:18px;height:18px;padding:0 4px;font:700 11px/18px system-ui,sans-serif;position:absolute;top:-2px;right:-2px}.mail-badge[hidden]{display:none}#settings{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#settings[hidden]{display:none}.settings-card{background:var(--paper);width:min(360px,100%);color:var(--ink);border-radius:14px;padding:20px;box-shadow:0 10px 30px #00000059}.settings-card h2{margin:0 0 12px;font-size:1.3rem}.settings-card fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.settings-card legend{margin-bottom:6px;font-weight:700}.settings-card label{cursor:pointer;align-items:center;gap:8px;display:flex}.settings-note{opacity:.8;margin:12px 0;font-size:.82rem}.settings-bug{border:1px dashed var(--accent);width:100%;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:8px;margin:0 0 12px;display:block}.settings-actions{justify-content:flex-end;gap:8px;display:flex}.settings-actions button{cursor:pointer;color:var(--ink);background:#e6dcc0;border:0;border-radius:8px;padding:8px 16px;font-weight:700}.settings-actions button[type=submit]{background:var(--accent);color:#fff}#note-chooser{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#note-chooser[hidden]{display:none}.chooser-list{gap:6px;margin:0 0 14px;padding:0;list-style:none;display:grid}.chooser-list button{text-align:left;background:var(--card,#f5efdf);width:100%;color:var(--ink);cursor:pointer;font:inherit;border:2px solid #0000;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:8px 10px;display:grid}.chooser-list button:hover,.chooser-list button:focus-visible{border-color:var(--accent);outline:none}.chooser-num{background:var(--accent);color:#fff;border-radius:50%;grid-row:span 2;place-items:center;width:26px;height:26px;font-weight:700;display:grid}.chooser-preview{opacity:.8;overflow-wrap:anywhere;font-size:.85rem}.staff-label{background:#1f3d6beb;box-shadow:inset 0 0 0 1.5px #d6b45a}.npc-label{color:#fff;background:#1e6b52e6}#minimap{z-index:4;pointer-events:none;border-radius:10px;position:fixed;top:76px;left:16px;box-shadow:0 1px 4px #0003}#minimap[hidden]{display:none}@supports (top:env(safe-area-inset-top)){#hud{top:calc(12px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left))}#settings-btn,#look-btn,#mail-btn{top:calc(10px + env(safe-area-inset-top))}#settings-btn{right:calc(12px + env(safe-area-inset-right))}#look-btn{right:calc(64px + env(safe-area-inset-right))}#mail-btn{right:calc(116px + env(safe-area-inset-right))}#touch:not([hidden]){padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right))}}#turn-btn{top:calc(10px + env(safe-area-inset-top,0px));right:calc(168px + env(safe-area-inset-right,0px));z-index:20;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:44px;height:44px;font-size:1.2rem;position:fixed;box-shadow:0 1px 4px #0003}#turn-btn:focus-visible{outline-offset:2px;outline:3px solid #6b3f1d}body.room-open #turn-btn{display:none!important}body.fx-high #stage:after{content:"";pointer-events:none;background:radial-gradient(at 50% 45%,#0000 55%,#140e0652 100%);position:absolute;inset:0}body.fx-high #stage:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(at 50% 40%,#fffaee21 0%,#fff8e812 60%,#0000 100%);position:absolute;inset:0}@media (width<=700px),(pointer:coarse){#settings{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;place-items:start center;overflow-y:auto}#settings .settings-card{box-sizing:border-box;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:calc(100dvh - 32px);overflow-y:auto}}#settings{overscroll-behavior:contain;overflow-y:auto}@media (height<=640px){#settings{place-items:start center}}#settings .settings-card{box-sizing:border-box;overscroll-behavior:contain;max-height:calc(100dvh - 32px);overflow-y:auto}#settings .settings-head{z-index:1;background:var(--paper,#fcf8ec);padding:4px 0;position:sticky;top:-20px}.settings-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.settings-head h2{margin:0}.settings-x{border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-height:40px;color:var(--ink,#3b2a12);cursor:pointer;border-radius:999px;padding:0 14px;font:700 .9rem system-ui,sans-serif}@media (width<=700px),(pointer:coarse){#settings .settings-head{z-index:1;background:var(--paper,#fcf8ec);padding:4px 0;position:sticky;top:-20px}}.ui-close.ui-close.ui-close{background:var(--accent,#6b3f1d);color:#fff;cursor:pointer;border:0;border-radius:22px;flex:none;width:auto;min-width:0;height:auto;min-height:44px;padding:6px 16px;font:800 .95rem/1 system-ui,sans-serif;box-shadow:0 2px 8px #00000040}.ui-close.ui-close.ui-close:hover{filter:brightness(1.12)}.ui-close.ui-close.ui-close:focus-visible{outline-offset:2px;outline:3px solid #ffd27a}#bgm-player{z-index:20;box-sizing:border-box;max-width:320px;height:44px;color:var(--ink,#3b2a12);background:#ffffffe6;border-radius:22px;align-items:center;gap:4px;padding:0 6px 0 12px;font-family:system-ui,sans-serif;font-size:.85rem;display:flex;position:fixed;top:10px;right:272px;box-shadow:0 1px 4px #0003}#bgm-player[hidden]{display:none}#bgm-player .bgm-icon{flex:none;font-size:1.05rem}#bgm-player .bgm-title{text-overflow:ellipsis;white-space:nowrap;max-width:220px;margin-right:4px;overflow:hidden}#bgm-player button{width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;font-size:1rem;line-height:1}#bgm-player button:hover{background:#6b3f1d1f}#bgm-player button:focus-visible{outline-offset:1px;outline:3px solid #6b3f1d}.settings-card fieldset+fieldset{margin-top:14px}.settings-slider{grid-template-columns:7.5rem 1fr 2.5ch;align-items:center;gap:8px;display:grid}.settings-slider input[type=range]{cursor:pointer;touch-action:pan-x;width:100%;min-width:0;min-height:44px}.settings-slider output{text-align:right;font-variant-numeric:tabular-nums}@media (pointer:coarse),(width<=700px){#bgm-player{display:none}}body.no-turn #bgm-player{right:220px}#look-picker{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#look-picker[hidden],#look-picker [hidden]{display:none!important}.settings-card.look-card{box-sizing:border-box;width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto}.look-card h2{margin:0 0 12px}.look-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:16px;display:grid}.look-preview{box-sizing:border-box;background:#ffffff73;border:2px solid #6b3f1d40;border-radius:12px;width:200px;min-height:260px;overflow:hidden}.look-rows{gap:12px;min-width:0;display:grid}.look-card fieldset.look-row{border:0;min-width:0;margin:0;padding:0;display:block}.look-card .look-row legend{margin:0 0 6px;padding:0;font-weight:700}.look-options{flex-wrap:wrap;gap:8px;display:flex}.look-options input[type=radio]{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}.look-card .look-options label{cursor:pointer;gap:0;display:inline-flex}.look-swatch{box-sizing:border-box;border:2px solid #3b2a1259;border-radius:50%;width:36px;height:36px;display:block}.look-chip{box-sizing:border-box;background:var(--card,#f5efdf);min-height:44px;color:var(--ink,#3b2a12);border:2px solid #6b3f1d73;border-radius:10px;padding:10px 14px;font-weight:600;display:block}.look-options input:checked+.look-swatch{border-color:var(--accent,#6b3f1d);box-shadow:0 0 0 3px var(--card,#f5efdf), 0 0 0 6px var(--accent,#6b3f1d)}.look-options input:checked+.look-chip{background:var(--accent,#6b3f1d);border-color:var(--accent,#6b3f1d);color:#fff}.look-options input:focus-visible+.look-swatch,.look-options input:focus-visible+.look-chip{outline:3px solid var(--focus,#2b6fd6);outline-offset:3px}.look-options label:hover .look-swatch{border-color:var(--accent,#6b3f1d)}.look-error{color:#9a2a1a;min-height:1.2em;margin:10px 0 0;font-size:.85rem}.look-card .settings-actions{background:linear-gradient(to bottom, #fcf8ec00, var(--paper,#fcf8ec) 28%);z-index:1;flex-wrap:wrap;margin:8px -20px -20px;padding:10px 20px 20px;position:sticky;bottom:-20px}.look-card .settings-actions button{min-width:88px;min-height:44px}.look-card .settings-actions .look-save{background:var(--accent,#6b3f1d);color:#fff}.look-card .settings-actions button:disabled{opacity:.6;cursor:default}.look-card button:focus-visible{outline:3px solid var(--focus,#2b6fd6);outline-offset:2px}@media (width<=600px){.look-card{padding:14px}.look-layout{grid-template-columns:1fr;gap:12px}.look-preview{width:100%;height:200px;min-height:200px}.look-card .settings-actions{justify-content:stretch;margin:8px -14px -14px;padding:10px 14px 14px;bottom:-14px}.look-card .settings-actions button{flex:1}}#chat{z-index:16;flex-direction:column;gap:6px;width:260px;max-width:calc(100vw - 24px);font-family:system-ui,sans-serif;display:flex;position:fixed;bottom:160px;left:12px}@media (pointer:coarse),(width<=700px){#chat{top:124px;bottom:auto;left:12px}}#chat-log{pointer-events:none;flex-direction:column;gap:3px;max-height:180px;display:flex;overflow-y:auto}#chat-log:not(:empty){pointer-events:auto}.chat-line{color:var(--ink,#3b2a12);word-break:break-word;background:#fcf8ecd9;border-radius:8px;width:fit-content;max-width:100%;padding:2px 8px;font-size:.78rem;line-height:1.3;transition:opacity .4s linear}.chat-line.self{color:var(--paper,#fcf8ec);background:#6b3f1dd9}.chat-line.whisper{color:#f4ecff;background:#583482d9}.chat-line.system{color:var(--ink,#3b2a12);opacity:.75;background:0 0;padding-left:2px;font-style:italic}.chat-line.fading{opacity:0}.chat-name{font-weight:700}#chat-controls{pointer-events:auto;gap:6px;display:flex}#chat-open{background:var(--accent,#6b3f1d);color:var(--paper,#fcf8ec);cursor:pointer;border:0;border-radius:8px;padding:6px 12px;font-size:.78rem;font-weight:700}#chat-input-row{pointer-events:auto;gap:6px;display:none}#chat-input-row.is-open{display:flex}#chat-input{border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-width:0;color:var(--ink,#3b2a12);border-radius:8px;flex:1;padding:6px 8px;font-size:.85rem}#hud-online.who-trigger{pointer-events:auto;cursor:pointer}#hud-online.who-trigger:hover{background:#fcf8ecf2}#who-here{z-index:30;background:var(--card,#f5efdf);color:#3b2a12;border:2px solid #6b3f1d;border-radius:12px;width:min(280px,100vw - 32px);max-height:60vh;padding:8px 10px;font:14px/1.4 system-ui,sans-serif;position:fixed;top:64px;left:16px;overflow-y:auto;box-shadow:0 6px 18px #0000002e}#who-here[hidden]{display:none}#who-here .who-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}#who-here .who-head button:not(.ui-close){cursor:pointer;background:0 0;border:0;min-width:32px;min-height:32px;font-size:1rem}#who-here ul{margin:0;padding:0;list-style:none}#who-here li{margin:2px 0}#who-here li button{text-align:left;width:100%;min-height:32px;color:inherit;font:inherit;cursor:pointer;background:#fff;border:1px solid #e2d4b4;border-radius:8px;padding:2px 8px}#who-here li button:hover:not(:disabled){background:#fcf8ec}#who-here li button:disabled{cursor:default;opacity:.75}#who-here .who-me{padding:2px 8px;font-weight:700}#who-here .who-empty,#who-here .who-hint,#who-here .who-elsewhere{color:#7a6a52;margin:4px 0 0;font-size:.8rem}#who-here .who-staff{color:#fff;background:#23404f;border-radius:6px;padding:0 6px;font-size:.72rem}@media (width<=700px){#who-here{top:84px}}#status-btn{pointer-events:auto;vertical-align:top;color:#3b2a12;cursor:pointer;background:#fcf8ece0;border:1px solid #c9b88e;border-radius:8px;min-height:28px;margin-left:6px;padding:3px 8px;font:600 .8rem system-ui,sans-serif}#status-btn:hover{background:var(--card,#f5efdf)}#status-menu{z-index:31;background:var(--card,#f5efdf);border:2px solid #6b3f1d;border-radius:10px;flex-direction:column;gap:2px;padding:6px;display:flex;position:fixed;top:46px;left:16px;box-shadow:0 6px 18px #0000002e}#status-menu[hidden]{display:none}#status-menu button{text-align:left;color:#3b2a12;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:34px;padding:2px 10px;font:14px system-ui,sans-serif}#status-menu button:hover{background:#fcf8ec}body.in-room #status-btn{display:none}@media (width<=700px){#status-btn{min-height:26px;padding:2px 6px;font-size:.72rem}#status-menu{top:44px}}#keyguide{z-index:15;pointer-events:none;-webkit-user-select:none;user-select:none;align-items:flex-end;gap:14px;font-family:system-ui,sans-serif;display:flex;position:fixed;bottom:12px;left:12px}#keyguide[hidden]{display:none}.keyguide-key{box-sizing:border-box;border:1.5px solid var(--accent,#6b3f1d);min-width:28px;height:28px;color:var(--ink,#3b2a12);background:#fcf8ec8c;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:.72rem;font-weight:700;line-height:1;transition:background 60ms linear,transform 60ms linear;display:flex;box-shadow:0 1px 2px #00000026}.keyguide-key.is-down{background:var(--accent,#6b3f1d);color:var(--paper,#fcf8ec);transform:translateY(1px)}.keyguide-main{align-items:flex-end;gap:10px;display:flex}.keyguide-group{flex-direction:column;align-items:center;gap:4px;display:flex}.keyguide-wasd{grid-template-columns:repeat(3,28px);gap:4px;display:grid}.keyguide-wasd .keyguide-key[data-slot=w]{grid-area:1/2}.keyguide-wasd .keyguide-key[data-slot=a]{grid-area:2/1}.keyguide-wasd .keyguide-key[data-slot=s]{grid-area:2/2}.keyguide-wasd .keyguide-key[data-slot=d]{grid-area:2/3}.keyguide-e{align-self:center}.keyguide-caption{color:var(--ink,#3b2a12);text-shadow:0 1px 2px #fcf8eccc;letter-spacing:.02em;font-size:.62rem;font-weight:600}.keyguide-space-row{align-items:center;gap:8px;display:flex}.keyguide-space{flex:1;height:28px}@media (pointer:coarse),(width<=700px){#keyguide{display:none}}.keyguide-enter{width:auto;padding:0 6px;font-size:9px}.keyguide-caption{background:#fcf8ecd9;border-radius:4px;padding:0 4px}.keyguide-rows{flex-direction:column;gap:8px;display:flex}.keyguide-row{align-items:flex-end;gap:10px;display:flex}.keyguide-row .keyguide-group{min-width:52px}.keyguide-move{align-self:flex-end}.keyguide-wide{min-width:56px;font-size:9px}.keyguide-space{flex:none;min-width:96px}.keyguide-caption{white-space:nowrap}#note-composer{z-index:25;background:#3b2a128c;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#note-composer.is-open{display:flex}.composer-card{background:var(--paper,#fcf8ec);width:min(360px,100%);color:var(--ink,#3b2a12);border-radius:4px 16px;padding:20px;font-family:system-ui,sans-serif;transform:rotate(.6deg);box-shadow:0 10px 30px #00000059}.composer-title{margin:0 0 8px;font-size:1.1rem;font-weight:700}.composer-warning{color:#7a3b00;margin:0 0 10px;font-size:.85rem;font-weight:700}.composer-warning:empty{display:none}#note-composer textarea{resize:vertical;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);width:100%;min-height:90px;color:var(--ink,#3b2a12);font:inherit;border-radius:8px;padding:8px;font-size:.9rem}.composer-row{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.composer-counter{opacity:.7;font-size:.72rem}.composer-counter.is-over{color:#a01818;opacity:1;font-weight:700}.composer-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.composer-stick,.composer-cancel{cursor:pointer;border:0;border-radius:8px;padding:8px 16px;font-weight:700}.composer-stick{background:var(--accent,#6b3f1d);color:var(--paper,#fcf8ec)}.composer-stick:disabled{opacity:.5;cursor:not-allowed}.composer-cancel{color:var(--ink,#3b2a12);border:2px solid var(--accent,#6b3f1d);background:0 0}.composer-error{color:#a01818;min-height:1.2em;margin:6px 0 0;font-size:.8rem}#note-panel{z-index:25;background:#3b2a128c;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#note-panel.is-open{display:flex}.note-card{background:var(--paper,#fcf8ec);width:min(360px,100%);max-height:min(560px,90vh);color:var(--ink,#3b2a12);border-radius:4px 16px;padding:20px;font-family:system-ui,sans-serif;overflow-y:auto;transform:rotate(-.6deg);box-shadow:0 10px 30px #00000059}.note-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.note-author{font-weight:700}.note-date{opacity:.7;font-size:.75rem}.note-text{white-space:pre-wrap;word-break:break-word;margin:8px 0 14px;line-height:1.4}.note-delete,.comment-delete{color:#a01818;cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:.75rem;font-weight:700}.note-report,.comment-report,.comment-heart{color:var(--accent,#6b3f1d);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:.75rem;font-weight:700}.note-report,.comment-report{text-decoration:underline}.comment-heart{min-width:44px;min-height:32px;margin-left:auto;font-size:.85rem}.comment-heart.is-on{color:var(--accent,#6b3f1d)}.comment-heart:disabled{opacity:1;cursor:default}.comment-heart:focus-visible,.note-report:focus-visible,.comment-report:focus-visible{outline:2px solid var(--accent,#6b3f1d);outline-offset:1px}@media (pointer:coarse){.note-report,.comment-report,.comment-heart{min-width:44px;min-height:44px}}.note-confirm{align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:inline-flex}.note-confirm button{min-height:32px;color:var(--ink,#3b2a12);cursor:pointer;background:#e6dcc0;border:0;border-radius:6px;padding:2px 10px;font-size:.8rem;font-weight:700}.note-confirm button.is-danger{color:#fff;background:#b3412e}.note-comments{border-top:2px dashed var(--accent,#6b3f1d);flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;display:flex}.note-comment{background:#fcf8ecb3;border-radius:8px;padding:6px 8px}.note-comment-head{justify-content:space-between;align-items:baseline;gap:8px;font-size:.8rem;display:flex}.note-comment-author{font-weight:700}.note-comment-text{white-space:pre-wrap;word-break:break-word;margin:2px 0 0;font-size:.85rem}.note-empty{opacity:.7;font-size:.82rem;font-style:italic}.note-compose{flex-direction:column;gap:6px;margin-top:12px;display:flex}.note-compose textarea{resize:vertical;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-height:56px;color:var(--ink,#3b2a12);font:inherit;border-radius:8px;padding:8px;font-size:.85rem}.note-compose-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.note-counter{opacity:.7;font-size:.72rem}.note-counter.is-over{color:#a01818;opacity:1;font-weight:700}.note-post{background:var(--accent,#6b3f1d);color:var(--paper,#fcf8ec);cursor:pointer;border:0;border-radius:8px;padding:6px 14px;font-weight:700}.note-post:disabled{opacity:.5;cursor:not-allowed}.note-error{color:#a01818;min-height:1.2em;margin:4px 0 0;font-size:.8rem}.note-close{color:var(--ink,#3b2a12);cursor:pointer;background:0 0;border:0;padding:2px 6px;font-size:1.2rem;line-height:1}.comment-hot{color:#b33a12;white-space:nowrap;background:#ffe1d2;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.75rem;font-weight:700}#class-picker{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#class-picker[hidden]{display:none}.class-card{box-sizing:border-box;background:var(--paper,#fcf8ec);width:min(380px,100%);max-height:calc(100vh - 32px);color:var(--ink,#3b2a12);border-radius:14px;padding:20px;overflow-y:auto;box-shadow:0 10px 30px #00000059}.class-card h2{margin:0 0 12px;font-size:1.3rem}.class-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.class-row{align-items:center;gap:8px;display:flex}.class-row .class-pick{border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-width:0;color:var(--ink,#3b2a12);font:inherit;text-align:left;cursor:pointer;border-radius:10px;flex:1;padding:10px 14px;font-weight:700}.class-row .class-pick:hover{background:var(--card-hover,#ece3cc)}.class-row .class-pick.is-selected{border-color:var(--accent,#6b3f1d);box-shadow:inset 0 0 0 2px var(--accent,#6b3f1d);background:#ffeea0}.class-row .class-pick.is-selected:before{content:"✓ "}.class-enter{box-sizing:border-box;background:var(--accent,#6b3f1d);color:#fff;width:100%;font:inherit;cursor:pointer;border:0;border-radius:8px;margin:12px 0 0;padding:8px 14px;font-weight:700;display:block}.class-enter:disabled{opacity:.6;cursor:default}.class-card button:focus-visible,.class-card input:focus-visible{outline:3px solid var(--accent,#6b3f1d);outline-offset:2px}.class-small{color:var(--ink,#3b2a12);font:inherit;cursor:pointer;background:#e6dcc0;border:0;border-radius:8px;flex:none;padding:6px 10px;font-size:.85rem;font-weight:700}.class-small.is-danger{color:#fff;background:#b3412e}.class-confirm{flex:1;align-items:center;gap:8px;min-width:0;font-size:.85rem;display:flex}.class-confirm span{flex:1;min-width:0}.class-form{gap:8px;margin:16px 0 0;display:flex}.class-form input{border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-width:0;color:var(--ink,#3b2a12);font:inherit;text-transform:uppercase;border-radius:8px;flex:1;padding:8px 10px}.class-form button{background:var(--accent,#6b3f1d);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:8px;flex:none;padding:8px 14px;font-weight:700}.class-enter:focus-visible{outline:3px solid var(--accent,#6b3f1d);outline-offset:2px}@media (pointer:coarse),(width<=700px){.class-row .class-pick,.class-enter{min-height:44px}}.class-form button:disabled,.class-small:disabled{opacity:.6;cursor:default}.class-error{color:#9a2a1a;min-height:1.2em;margin:8px 0 0;font-size:.85rem}.class-actions{justify-content:flex-end;margin-top:12px;display:flex}.class-actions button{color:var(--ink,#3b2a12);font:inherit;cursor:pointer;background:#e6dcc0;border:0;border-radius:8px;padding:8px 16px;font-weight:700}.class-online{opacity:.75;font-weight:400}#webview{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#webview[hidden]{display:none}.webview-card{box-sizing:border-box;background:var(--paper,#fcf8ec);width:min(1100px,100vw - 32px);height:min(760px,100vh - 32px);color:var(--ink,#3b2a12);border-radius:14px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000059}.webview-head{flex:none;align-items:center;gap:8px;padding:8px 8px 8px 16px;display:flex}.webview-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1rem;overflow:hidden}.webview-head button{min-height:44px;color:var(--ink,#3b2a12);cursor:pointer;background:#e6dcc0;border:0;border-radius:8px;flex:none;padding:8px 14px;font-weight:700}.webview-head button.webview-close{background:var(--accent,#6b3f1d);color:#fff;width:44px;padding:8px 0}.webview-head button:focus-visible{outline:3px solid var(--accent,#6b3f1d);outline-offset:2px}.webview-frame{background:#fff;border:0;flex:1;width:100%;min-height:0}@media (width<=700px){#webview{padding:6px}.webview-card{border-radius:10px;width:calc(100vw - 12px);height:calc(100vh - 12px)}}#webview,#webview iframe{touch-action:auto}#webview iframe{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#dog-prompt{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dog-card{text-align:center}.dog-ask{margin:0 0 14px;font-size:1.05rem}.dog-card .settings-actions{justify-content:center}.dog-card .settings-actions button{min-width:88px;min-height:44px}.dog-card .dog-yes{background:var(--accent);color:#fff}.bmc-button{color:#000;background:#fd0;border:1px solid #000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:48px;margin:0 0 16px;padding:0 22px;font:600 1.1rem Lato,system-ui,sans-serif;text-decoration:none;display:inline-flex}.bmc-button:hover{filter:brightness(.95)}.bmc-button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}#signup-prompt{z-index:40;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#signup-prompt[hidden]{display:none}#guest-notice{z-index:45;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}#guest-notice[hidden]{display:none}.guest-kept{opacity:.85;font-size:.85rem}.signup-card{max-width:380px}.signup-ask{margin:0 0 14px;line-height:1.4}.signup-card .settings-actions button{min-height:44px}.signup-card .signup-yes{background:var(--accent);color:#fff}#room-pad{flex-direction:column;flex:1;gap:6px;min-height:0;padding:0 12px 12px;display:flex}#room-pad .pad-head{justify-content:flex-end;gap:6px;display:flex}#room-pad button{background:var(--card,#f5efdf);min-height:36px;color:inherit;cursor:pointer;font:inherit;border:1px solid #6b3f1d;border-radius:8px;padding:0 10px}#room-pad textarea,#room-pad .pad-preview{box-sizing:border-box;background:var(--card,#f5efdf);width:100%;min-height:120px;color:inherit;resize:none;border:1px solid #6b3f1d;border-radius:8px;flex:1;padding:8px;font:16px/1.4 ui-monospace,monospace;overflow-y:auto}#room-pad .pad-preview{font-family:system-ui,sans-serif;font-size:.95rem}#room-pad .pad-foot{opacity:.75;min-height:1em;margin:0;font-size:.8rem}#room-pad .pad-preview h4{margin:14px 0 6px;font-size:1.4rem}#room-pad .pad-preview h5{margin:12px 0 6px;font-size:1.2rem}#room-pad .pad-preview h6{margin:10px 0 4px;font-size:1.05rem}#room-pad .pad-preview>:first-child{margin-top:0}#room-pad .pad-picture{border-radius:8px;max-width:100%;max-height:50vh;margin:6px 0;display:block}#room-pad .pad-head input[type=file]{display:none}#join.si-root .si-card{background:var(--paper);box-sizing:border-box;border-radius:16px;width:min(380px,100%);max-height:100%;padding:24px;overflow-y:auto;box-shadow:0 10px 30px #00000059}#join.si-root h1{margin:0 0 12px;font-size:1.6rem}#join.si-root .si-h2{margin:4px 0;font-size:1.1rem}#join.si-root .si-form[hidden],#join.si-root .si-step[hidden],#join.si-root .si-field[hidden]{display:none}#join.si-root .si-field{margin-top:10px}#join.si-root .si-field label,#join.si-root .si-check{margin-bottom:6px;font-size:.9rem;display:block}#join.si-root .si-check{align-items:center;gap:8px;min-height:44px;margin:6px 0 0;display:flex}#join.si-root .si-check input{flex:none;width:22px;height:22px}#join.si-root .si-hint{opacity:.75;margin:2px 0 6px;font-size:.8rem}#join.si-root .si-note{margin:10px 0 0;font-size:.85rem;font-weight:600}#join.si-root .si-input{box-sizing:border-box;border:2px solid var(--accent);background:var(--card,#f5efdf);width:100%;min-height:44px;color:var(--ink);border-radius:8px;padding:10px 12px;font-size:1.1rem}#join.si-root .si-error{color:#a01818;min-height:1.3em;margin:6px 0;font-size:.9rem}#join.si-root .si-primary,#join.si-root .si-secondary,#join.si-root .si-customise{box-sizing:border-box;width:100%;min-height:44px;font:inherit;cursor:pointer;border-radius:8px;padding:10px 12px;font-size:1.05rem;font-weight:700;display:block}#join.si-root .si-signup{margin-top:10px}#join.si-root .si-primary{background:var(--accent);color:#fff;border:0}#join.si-root .si-secondary{border:2px solid var(--accent);color:var(--ink);background:0 0}#join.si-root .si-customise{border:1px dashed var(--accent);color:var(--ink);background:0 0;border-radius:10px;margin-top:8px;font-size:1rem;font-weight:600}#join.si-root button:disabled{opacity:.6;cursor:wait}#join.si-root .si-links{flex-wrap:wrap;justify-content:space-between;gap:0 12px;margin-top:4px;display:flex}#join.si-root .si-link{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:.9rem;font-weight:600;text-decoration:underline}#join.si-root .si-or{text-align:center;opacity:.7;margin:6px 0;font-size:.8rem}#join.si-root .si-primary:focus-visible,#join.si-root .si-secondary:focus-visible,#join.si-root .si-customise:focus-visible,#join.si-root .si-link:focus-visible,#join.si-root .si-input:focus-visible{outline:3px solid var(--ink);outline-offset:2px}#join.si-root .si-flavour{opacity:.85;margin:16px 0 0;padding-left:18px;font-size:.85rem;font-style:italic}@media (width<=420px){#join.si-root .si-card{padding:18px}}#join.si-root .si-compact .join-pitch,#join.si-root .si-compact .join-sub,#join.si-root .si-compact .si-flavour{display:none}#join.si-root .si-compact h1{margin-bottom:4px}#join.si-root .si-progress{gap:6px;margin:0 0 10px;display:flex}#join.si-root .si-seg{background:#6b3f1d33;border-radius:2px;flex:1;height:4px}#join.si-root .si-seg.is-on{background:var(--accent)}#join.si-root .si-stage{overflow-x:hidden}#join.si-root .si-actions{flex-wrap:wrap;align-items:center;gap:0 12px;display:flex}#join.si-root .si-actions .si-primary{flex:100%}#npc-chat{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#npc-chat[hidden]{display:none}.npc-card{flex-direction:column;width:min(460px,100%);min-width:0;max-height:calc(100vh - 32px);display:flex}.npc-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.npc-head h2{margin:0;font-size:1.1rem}.npc-close{cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:1.1rem}.npc-note{opacity:.75;margin:4px 0 8px;font-size:.82rem}.npc-log{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--card,#f5efdf);border-radius:8px;flex:1;min-height:120px;max-height:40vh;padding:8px;overflow-y:auto}.npc-line{margin:0 0 8px;line-height:1.4}.npc-line.is-you{text-align:right}.npc-line>p,.npc-line>ul,.npc-line>ol{margin:2px 0 6px}.npc-line ul,.npc-line ol{padding-left:20px}.npc-line a{color:inherit;overflow-wrap:anywhere;text-decoration:underline}.npc-line>strong{opacity:.75;font-size:.85em;display:block}.npc-links{flex-wrap:wrap;gap:6px;margin:10px 0;padding:0;list-style:none;display:flex}.npc-link{cursor:pointer;min-height:36px;font:inherit;background:#fff;border:1px solid #8a6a50;border-radius:18px;padding:4px 10px;font-size:.85rem}.npc-form{gap:8px;display:flex}.npc-form input{min-width:0;min-height:44px;font:inherit;border:1px solid #8a6a50;border-radius:8px;flex:1;padding:0 10px}.npc-form button{min-width:64px;min-height:44px}@media (width<=700px),(pointer:coarse){#npc-chat{top:var(--vvtop,0);height:var(--vvh,100dvh);grid-template-columns:minmax(0,1fr);place-items:start stretch;padding:0;bottom:auto}.npc-card{box-sizing:border-box;border-radius:0;width:100%;height:100%;max-height:none;padding:10px 12px;overflow:hidden}.npc-head h2{font-size:1rem}.npc-log{flex:1 1 0;min-height:0;max-height:none}.npc-head,.npc-note,.npc-links,.npc-form{flex:none}.npc-links{flex-wrap:nowrap;margin:6px 0;padding-bottom:2px;overflow-x:auto}.npc-link{white-space:nowrap;flex:none;min-height:30px;padding:2px 8px;font-size:.75rem}.npc-form input{font-size:16px}}.npc-ai{color:#fff;letter-spacing:.04em;background:#1e6b52;border-radius:6px;flex:none;padding:1px 7px;font:700 .72rem system-ui,sans-serif}.npc-head h2{flex:1}.npc-notice{width:min(420px,100%)}.npc-notice ul{margin:0 0 14px;padding-left:20px;line-height:1.45}.npc-notice li+li{margin-top:4px}.npc-thinking .npc-dots{opacity:.85;font-style:italic}.npc-thinking .npc-dots i{opacity:.15;font-style:normal;font-weight:700;animation:1.2s infinite npc-dot}.npc-thinking .npc-dots i:nth-child(2){animation-delay:.2s}.npc-thinking .npc-dots i:nth-child(3){animation-delay:.4s}@keyframes npc-dot{0%,60%,to{opacity:.15}30%{opacity:1}}@media (prefers-reduced-motion:reduce){.npc-thinking .npc-dots i{opacity:.8;animation:none}}#mailbox{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#mailbox[hidden]{display:none}.mail-card{flex-direction:column;width:min(480px,100%);max-height:calc(100vh - 32px);display:flex}.mail-head{justify-content:space-between;align-items:center;display:flex}.mail-head h2{margin:0}.mail-close{cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:1.1rem}.mail-tabs{gap:6px;margin:8px 0;display:flex}.mail-tabs button{cursor:pointer;min-height:40px;font:inherit;background:#fff;border:1px solid #8a6a50;border-radius:20px;padding:0 14px}.mail-tabs button[aria-selected=true]{background:var(--accent,#6b3f1d);color:#fff;border-color:#0000}.mail-body{flex:1;min-height:160px;overflow-y:auto}.mail-list{margin:0;padding:0;list-style:none}.mail-row{text-align:left;cursor:pointer;width:100%;min-height:52px;font:inherit;background:0 0;border:0;border-bottom:1px solid #e6dcc0;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 10px;display:grid}.mail-row.is-unread{background:#f4ede2;font-weight:700}.mail-who{grid-column:1}.mail-when{opacity:.7;grid-area:1/2;font-size:.8rem}.mail-subject{opacity:.85;grid-column:1/-1;font-size:.9rem}.mail-empty{opacity:.75}.mail-message h3{margin:4px 0}.mail-meta{opacity:.75;margin:0 0 8px;font-size:.85rem}.mail-text{white-space:pre-wrap;word-break:break-word;line-height:1.45}.mail-form{gap:8px;display:grid}.mail-form label{gap:4px;font-size:.9rem;display:grid}.mail-form input,.mail-form textarea{min-height:40px;font:inherit;box-sizing:border-box;border:1px solid #8a6a50;border-radius:8px;width:100%;padding:6px 10px}.mail-send{background:var(--accent,#6b3f1d);color:#fff;min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:8px}.mail-status{min-height:1.3em;margin:6px 0 0;font-size:.9rem}.saved-chat{max-height:50vh;overflow-y:auto}.saved-chat p{margin:0 0 6px}.saved-chat .saved-system{opacity:.7;font-style:italic}.saved-notes{background:var(--card,#f5efdf);border:1px solid #e4d7ba;border-radius:8px;margin:8px 0;padding:8px 10px}.saved-notes>strong{opacity:.8;margin-bottom:4px;font-size:.85rem;display:block}#quests{z-index:6;width:260px;color:var(--ink,#3b2a12);background:#fcf8ecf0;border-radius:12px;padding:8px 10px;font:.85rem system-ui,sans-serif;position:fixed;bottom:16px;right:16px;box-shadow:0 1px 4px #0003}#quests[hidden]{display:none}.quests-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.quests-title{cursor:pointer;text-align:left;min-height:36px;color:inherit;background:0 0;border:0;padding:6px 2px;font:700 .9rem system-ui,sans-serif}.quests-skip{cursor:pointer;min-height:36px;color:inherit;font:inherit;background:0 0;border:0;padding:0 4px;text-decoration:underline}.quests-list{margin:4px 0 0;padding:0;list-style:none}.quests-list li{padding:3px 0}.quests-list li.is-done{opacity:.6;text-decoration:line-through}.quests-list li.just-done{animation:.9s ease-out quest-flash}@keyframes quest-flash{0%{background:#2fb3808c;transform:scale(1.04)}to{background:0 0;transform:none}}.confetti{z-index:60;pointer-events:none;border-radius:2px;width:8px;height:12px;animation:1.5s cubic-bezier(.2,.6,.4,1) forwards confetti-fall;position:fixed}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}20%{transform:translate(calc(var(--dx) * .4), -60px) rotate(calc(var(--spin) * .3))}to{transform:translate(var(--dx), var(--dy)) rotate(var(--spin));opacity:0}}.quests-cheer{z-index:61;background:var(--paper,#fcf8ec);color:var(--ink,#3b2a12);pointer-events:none;border-radius:16px;padding:14px 24px;font:700 1.3rem system-ui,sans-serif;animation:3.6s forwards cheer;position:fixed;top:22%;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}@keyframes cheer{0%{opacity:0;transform:translate(-50%,20px)scale(.8)}10%{opacity:1;transform:translate(-50%)scale(1.08)}16%{transform:translate(-50%)scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}@media (prefers-reduced-motion:reduce){.quests-list li.just-done,.quests-cheer{animation-duration:10ms}.quests-cheer{opacity:1;animation:none}}.quests-next{display:none}@media (width<=700px),(pointer:coarse){#quests{bottom:auto;left:50%;right:auto;top:calc(212px + env(safe-area-inset-top,0px));align-items:center;gap:6px;width:min(440px,100vw - 32px);padding:2px 4px 2px 12px;display:flex;transform:translate(-50%)}#quests[hidden],#quests .quests-title,#quests .quests-list{display:none}#quests .quests-head{order:2}#quests .quests-next{white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:.82rem;font-weight:600;display:block;overflow:hidden}}#mute-dialog{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#mute-dialog[hidden]{display:none}.mute-card{width:min(420px,100%)}.mute-hint{opacity:.8;margin:0 0 10px;font-size:.92rem}.mute-row{gap:8px;display:flex}.mute-row input{box-sizing:border-box;min-width:0;min-height:44px;font:inherit;border:1px solid #8a6a50;border-radius:8px;flex:1;padding:0 10px}.mute-row button{min-height:44px}.mute-list{max-height:40vh;margin:12px 0;padding:0;list-style:none;overflow-y:auto}.mute-list li{border-bottom:1px solid #e6dcc0;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.mute-list button{min-height:36px}.mute-empty{opacity:.7}#board{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#board[hidden],.board-card [hidden]{display:none!important}.board-card{box-sizing:border-box;background:var(--paper,#fcf8ec);width:min(720px,100vw - 32px);height:min(640px,100vh - 32px);color:var(--ink,#3b2a12);border-radius:14px;flex-direction:column;font-family:system-ui,sans-serif;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000059}.board-head{flex:none;align-items:center;gap:8px;padding:14px 12px 6px 20px;display:flex}.board-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1.3rem;overflow:hidden}.board-card button{font:inherit;cursor:pointer}.board-card button:focus-visible,.board-card input:focus-visible,.board-card textarea:focus-visible{outline:3px solid var(--accent,#6b3f1d);outline-offset:2px}.board-close{width:44px;min-height:44px;color:var(--ink,#3b2a12);background:#e6dcc0;border:0;border-radius:8px;flex:none;font-weight:700}.board-tabs{border-bottom:2px solid #6b3f1d40;flex:none;gap:4px;padding:0 20px;display:flex}.board-tab{min-height:44px;color:var(--ink,#3b2a12);background:0 0;border:0;border-bottom:4px solid #0000;border-radius:8px 8px 0 0;padding:8px 16px;font-weight:700;line-height:1.2}.board-notice{flex:none;padding:8px 20px 0}.board-tab[aria-selected=true]{border-bottom-color:var(--accent,#6b3f1d);background:#ffffff73}.board-body{flex:1;min-height:0;padding:14px 20px 20px;overflow-y:auto}.board-toolbar{align-items:center;gap:12px;margin:0 0 12px;display:flex}.board-muted{opacity:.75;margin:0;font-size:.85rem}.board-primary{background:var(--accent,#6b3f1d);color:#fff;border:0;border-radius:8px;min-height:44px;padding:8px 14px;font-weight:700}.board-secondary{min-height:44px;color:var(--ink,#3b2a12);background:#e6dcc0;border:0;border-radius:8px;padding:8px 14px;font-weight:700}.board-primary:disabled,.board-secondary:disabled{opacity:.6;cursor:default}.board-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.board-post{box-sizing:border-box;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);width:100%;color:var(--ink,#3b2a12);text-align:left;border-radius:10px;padding:10px 14px;display:block}.board-post:hover{background:var(--card-hover,#ece3cc)}.board-post.is-pinned{background:#f1e8da;border-width:3px}.board-post-title{overflow-wrap:anywhere;font-weight:700;display:block}.board-post-meta{opacity:.75;margin-top:2px;font-size:.8rem;display:block}.board-empty{text-align:center;opacity:.75;margin:24px 0}.board-view-title{overflow-wrap:anywhere;margin:8px 0 2px;font-size:1.2rem}.board-text{word-break:break-word;margin:12px 0 16px;line-height:1.45}.board-text>:first-child{margin-top:0}.board-text p{margin:0 0 10px}.board-text h4,.board-text h5,.board-text h6{margin:14px 0 6px}.board-text h4{font-size:1.1rem}.board-text h5{font-size:1rem}.board-text h6{font-size:.95rem}.board-text ul,.board-text ol{margin:0 0 10px;padding-left:22px}.board-text blockquote{opacity:.9;border-left:4px solid #6b3f1d59;margin:0 0 10px;padding:2px 0 2px 12px}.board-text code{background:#6b3f1d1f;border-radius:4px;padding:1px 4px;font-size:.9em}.board-text pre{background:#6b3f1d1f;border-radius:6px;margin:0 0 10px;padding:8px 10px;overflow-x:auto}.board-text pre code{background:0 0;padding:0}.board-text a{color:var(--accent,#6b3f1d);text-decoration:underline}.board-comments{gap:8px;margin:8px 0 14px;display:grid}.board-comment{background:#ffffff8c;border-radius:8px;padding:8px 12px}.board-comment-head{align-items:baseline;gap:8px;font-size:.8rem;display:flex}.board-comment-head strong{font-size:.9rem}.board-comment-text{white-space:pre-wrap;word-break:break-word;margin:4px 0 0}.board-link-danger{color:#a01818;background:0 0;border:0;min-width:44px;min-height:44px;margin-left:auto;padding:2px 8px;font-size:.85rem;text-decoration:underline}.board-confirm{align-items:center;gap:6px;margin-left:auto;font-size:.85rem;display:inline-flex}.board-confirm button{min-height:32px;color:var(--ink,#3b2a12);background:#e6dcc0;border:0;border-radius:6px;padding:2px 10px;font-size:.85rem;font-weight:700}.board-confirm button.is-danger{color:#fff;background:#b3412e}.board-form{gap:8px;display:grid}.board-form label{font-weight:700}.board-form input,.board-form textarea,.board-compose textarea{box-sizing:border-box;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);width:100%;color:var(--ink,#3b2a12);font:inherit;border-radius:8px;padding:8px 10px}.board-form textarea{resize:vertical;min-height:160px}.board-compose{gap:6px;display:grid}.board-compose textarea{resize:vertical;min-height:72px}.board-files{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.board-image{max-width:100%;display:inline-block}.board-image img{cursor:zoom-in;border:1px solid #00000026;border-radius:8px;max-width:100%;min-height:40px;max-height:360px;display:block}.board-file{text-align:left;overflow-wrap:anywhere;max-width:100%;min-height:40px}.board-form input[type=file]{max-width:100%}.board-row{align-items:center;gap:8px;display:flex}.board-row .board-counter{opacity:.8;flex:1;font-size:.8rem}.board-counter.is-over{color:#a01818;opacity:1;font-weight:700}.board-error{color:#9a2a1a;min-height:1.2em;margin:8px 0 0;font-size:.85rem}@media (width<=700px){#board{padding:6px}.board-card{border-radius:10px;width:calc(100vw - 12px);height:calc(100vh - 12px)}.board-head{padding-left:14px}.board-tabs{padding:0 8px}.board-tab{flex:1;padding:8px 6px;font-size:.85rem}.board-notice{padding:6px 12px 0}.board-body{padding:12px 12px 16px}.board-toolbar{flex-wrap:wrap}}.board-list.is-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=701px){.board-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}.board-list.is-grid .board-empty{grid-column:1/-1}.board-list.is-grid .board-post{flex-direction:column;justify-content:flex-start;height:100%;min-height:120px;padding:8px;display:flex}.board-list.is-grid .board-post-title{font-size:.85rem}.board-list.is-grid .board-post-meta{font-size:.72rem}.board-thumb{aspect-ratio:4/3;object-fit:cover;background:#6b3f1d1f;border-radius:6px;width:100%;margin-bottom:6px;display:block}.board-thumb.is-text{box-sizing:border-box;text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;padding:8px;font-size:.8rem;font-weight:700;display:flex;overflow:hidden}.board-link-edit{min-width:44px;min-height:44px;color:var(--accent,#6b3f1d);background:0 0;border:0;margin-left:auto;padding:2px 10px;font-size:.85rem;font-weight:700;text-decoration:underline}.board-heart{min-width:44px;min-height:44px;color:var(--accent,#6b3f1d);background:0 0;border:0;margin-left:auto;padding:2px 8px;font-size:.85rem;font-weight:700}.board-heart:disabled{opacity:1;cursor:default}.board-private{align-items:center;gap:8px;min-height:44px;font-size:.9rem;display:flex}.board-private input{flex:none;width:22px;height:22px}.board-link-report{min-width:44px;min-height:44px;color:var(--accent,#6b3f1d);background:0 0;border:0;padding:2px 8px;font-size:.85rem;text-decoration:underline}.board-heart+.board-link-danger,.board-heart+.board-link-report,.board-heart+.board-link-edit,.board-heart+.board-confirm,.board-link-report+.board-link-danger,.board-link-report+.board-confirm,.board-link-edit+.board-link-danger,.board-link-edit+.board-confirm{margin-left:0}.board-edit{gap:6px;margin-top:6px;display:grid}.board-edit textarea{box-sizing:border-box;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);width:100%;min-height:72px;color:var(--ink,#3b2a12);font:inherit;resize:vertical;border-radius:8px;padding:8px 10px}.board-edit .board-row{flex-wrap:wrap}.board-size{align-items:center;gap:8px;min-height:44px;font-size:.9rem;display:flex}.board-size input{width:4.5em;min-height:36px;font:inherit;border:1px solid #8a6a50;border-radius:8px;padding:0 8px}.board-members{flex-basis:100%;font-size:.85rem}.board-ext{color:#fff;white-space:nowrap;background:#b5372a;border-radius:8px;flex:none;align-items:center;min-height:44px;margin-left:auto;padding:0 12px;font-weight:700;text-decoration:none;display:inline-flex}.board-ext[hidden]{display:none}.board-ext+.board-close{margin-left:0}.board-post{border:1px solid #6b3f1d47;box-shadow:0 1px 2px #3b2a1214}.board-post:hover{border-color:#6b3f1d8c}.board-post.is-pinned{border:2px solid var(--accent,#6b3f1d)}.board-meta-bit{white-space:nowrap}.board-hint{opacity:.7;margin-top:2px;font-size:.78rem;font-weight:400;display:block}.board-primary,.board-secondary{white-space:nowrap}#cafe-guide{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#cafe-guide[hidden]{display:none}.cafe-card{flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 32px);display:flex}.cafe-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cafe-head h2{margin:0}.cafe-close{min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:#00000014;border:0;border-radius:8px;font-size:1.1rem}.cafe-list{flex:1;gap:10px;min-height:0;margin:0;padding:0 2px 0 0;list-style:none;display:grid;overflow-y:auto}.cafe-item{background:#ffffff80;border:2px solid #6b3f1d59;border-radius:10px;padding:10px 12px}.cafe-item:first-child{border-color:var(--accent)}.cafe-item h3{margin:0 0 4px;font-size:1.05rem}.cafe-item p{margin:0 0 6px;font-size:.9rem;line-height:1.4}.cafe-where{font-weight:700}.cafe-where a{min-height:44px;color:var(--accent);text-underline-offset:3px;align-items:center;display:inline-flex}.cafe-sells{flex-wrap:wrap;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.cafe-sells li{background:#6b3f1d1f;border-radius:999px;padding:2px 8px;font-size:.8rem}.cafe-link{min-height:44px;color:var(--accent);align-items:center;font-size:.9rem;font-weight:700;display:inline-flex}#hub-calendar{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#hub-calendar[hidden]{display:none}.cal-card{flex-direction:column;width:min(520px,100%);max-height:calc(100vh - 32px);display:flex;overflow-y:auto}.cal-head{align-items:center;gap:6px;display:flex}.cal-head h2{text-align:center;flex:1;margin:0;font-size:1.2rem}.cal-head button{min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:#00000014;border:0;border-radius:8px;font-size:1.2rem}.cal-head button:disabled{opacity:.35;cursor:default}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:3px;margin:10px 0;display:grid}.cal-dow{opacity:.6;font-size:.72rem;font-weight:700}.cal-day{background:#ffffff8c;border-radius:6px;padding:6px 0;font-size:.85rem}.cal-day.is-today{outline:2px solid var(--accent);font-weight:800}.is-teaching{--cal:#2f7d4f}.is-census{--cal:#c0392b}.is-exam{--cal:#7b3fa0}.is-break{--cal:#2f6fa8}.is-holiday{--cal:#d4860b}.is-other{--cal:#6b5a43}.cal-day[class*=is-]:not(.is-today){background:var(--cal,transparent);color:#fff;font-weight:700}.cal-day.is-today[class*=\ is-]{background:var(--cal);color:#fff}.cal-list{gap:4px;margin:0 0 6px;padding:0;font-size:.88rem;list-style:none;display:grid}.cal-list li{border-left:4px solid var(--cal,#aaa);background:#ffffff80;border-radius:4px;padding:4px 8px}.cal-list small{background:var(--cal,#aaa);color:#fff;border-radius:999px;margin-left:4px;padding:0 6px;font-size:.7rem}#guide{z-index:35;background:#14141480;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#guide[hidden]{display:none}.guide-card{width:min(560px,100%);max-height:calc(var(--vvh,100vh) - 32px);flex-direction:column;display:flex}.guide-head{align-items:center;gap:8px;display:flex}.guide-head h2{flex:1;margin:0;font-size:1.2rem}.guide-close{min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:#00000014;border:0;border-radius:8px;font-size:1.1rem}.guide-body{flex:1;min-height:0;margin:8px 0;overflow-y:auto}.guide-section{text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin:14px 0 6px;font-size:.8rem}.guide-entry{background:#ffffff8c;border-radius:10px;margin:0 0 10px;padding:10px 12px}.guide-entry.is-flash{animation:1.4s ease-out guide-flash}@keyframes guide-flash{0%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 #0000}}.guide-entry h3{margin:0 0 4px;font-size:1.02rem}.guide-entry p{margin:0 0 4px;font-size:.9rem;line-height:1.45}.guide-entry .guide-clip{aspect-ratio:16/9;object-fit:cover;border-radius:8px;width:100%;margin-bottom:8px;display:block}.guide-keys{color:var(--accent);font-weight:700}.guide-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.guide-foot button{min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:#e6dcc0;border:0;border-radius:8px;padding:0 14px;font-weight:700}.guide-foot button:disabled{opacity:.4;cursor:default}.guide-foot .guide-next{background:var(--accent);color:#fff}.guide-foot button:first-child{margin-right:auto}#guide-btn{top:calc(10px + env(safe-area-inset-top,0px));right:calc(220px + env(safe-area-inset-right,0px));z-index:20;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:44px;height:44px;font-size:1.2rem;position:fixed;box-shadow:0 1px 4px #0003}#guide-btn:focus-visible{outline-offset:2px;outline:3px solid #6b3f1d}body.room-open #guide-btn{display:none!important}body.no-turn #guide-btn{right:calc(168px + env(safe-area-inset-right,0px))}#invite-popup{left:50%;top:calc(70px + env(safe-area-inset-top,0px));z-index:36;width:min(380px,100vw - 32px);position:fixed;transform:translate(-50%)}#invite-popup[hidden]{display:none}#invite-popup h2{margin:0 0 6px;font-size:1.1rem}#invite-popup p{margin:0 0 12px;font-size:.92rem;line-height:1.4}#room-ui{z-index:17;box-sizing:border-box;background:var(--paper,#fcf8ec);width:380px;max-width:calc(100vw - 24px);color:var(--ink,#3b2a12);border-radius:14px;flex-direction:column;font-family:system-ui,sans-serif;display:flex;position:fixed;top:12px;bottom:12px;right:12px;overflow:hidden;box-shadow:0 6px 24px #0000004d}#room-ui[hidden],#room-ui [hidden],#room-reopen[hidden],.room-modal[hidden]{display:none!important}.room-menu,.room-view{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.room-head{flex:none;align-items:center;gap:8px;padding:8px 8px 6px 14px;display:flex}.room-menu>.room-head{z-index:1;background:var(--paper,#fcf8ec);position:sticky;top:0}.room-head h3{flex:1;margin:0;font-size:1.05rem}#room-ui button,#room-reopen,.room-modal button{font:inherit;cursor:pointer}#room-ui button:focus-visible,#room-ui input:focus-visible,#room-ui textarea:focus-visible,#room-reopen:focus-visible,.room-modal button:focus-visible{outline:3px solid var(--accent,#6b3f1d);outline-offset:2px}.room-title{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:1.1rem;font-weight:700;line-height:1.2}.room-count{background:#6b3f1d26;border-radius:999px;flex:none;padding:0 8px;font-size:.8rem;font-weight:700}.room-x{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;border-radius:8px;flex:none;font-size:1.1rem}.room-x:hover{background:#6b3f1d1f}.room-close{cursor:pointer;background:var(--accent,#6b3f1d);color:#fff;border:0;border-radius:26px;flex:none;min-height:52px;padding:8px 18px;font-size:1.05rem;font-weight:800;box-shadow:0 3px 12px #00000059}.room-items{flex-direction:column;gap:8px;padding:4px 14px 8px;display:flex}.room-item{background:var(--card,#f5efdf);min-height:56px;color:var(--ink,#3b2a12);text-align:left;border:0;border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex;position:relative;box-shadow:0 1px 2px #0000001f}.room-item:hover{background:var(--card-hover,#ece3cc)}.room-item-icon{font-size:1.4rem}.room-item-label{flex-direction:column;font-weight:700;display:flex}.room-item-label small{opacity:.75;font-size:.78rem;font-weight:400}.room-item .room-badge{margin-left:auto}.room-leave-btn{color:#9a2a1a;background:#fff4f0;border:2px solid #9a2a1a;border-radius:10px;min-height:48px;margin:4px 14px 14px;font-weight:700}.room-leave-btn:hover{background:#ffe6de}.room-secondary{min-height:44px;color:var(--ink,#3b2a12);background:#e6dcc0;border:0;border-radius:8px;flex:none;padding:6px 12px;font-weight:700}#room-reopen{top:calc(64px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:17;background:var(--accent,#6b3f1d);color:#fff;border:0;border-radius:26px;align-items:center;gap:8px;min-height:52px;padding:8px 18px;font-size:1.05rem;font-weight:800;display:inline-flex;position:fixed;box-shadow:0 3px 12px #00000059}.room-badge{color:#fff;text-align:center;background:#b3412e;border-radius:999px;min-width:1.4em;padding:0 6px;font-size:.8rem;line-height:1.5}.room-members{flex-wrap:wrap;flex:none;gap:4px;margin:0;padding:0 14px 6px;list-style:none;display:flex}.room-chip{background:var(--card,#f5efdf);overflow-wrap:anywhere;border:1px solid #6b3f1d59;border-radius:999px;padding:2px 8px;font-size:.8rem}.room-chip.is-host{border-color:var(--accent,#6b3f1d);font-weight:700}.room-chip small{color:var(--accent,#6b3f1d);margin-left:4px;font-weight:700}.room-invite{flex:none;padding:0 14px 8px}.room-invite-row{gap:6px;display:flex}.room-invite-row input,.room-send-row input{box-sizing:border-box;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-width:0;min-height:44px;color:var(--ink,#3b2a12);font:inherit;border-radius:8px;flex:1;padding:6px 10px;font-size:16px}.room-primary{background:var(--accent,#6b3f1d);color:#fff;border:0;border-radius:8px;flex:none;min-height:44px;padding:6px 14px;font-weight:700}.room-attach{background:var(--card,#f5efdf);border:1px solid #c9b48a;border-radius:8px;flex:none;min-width:44px;min-height:44px;font-size:1.1rem}.room-file{color:inherit;font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;background:#ffffff40;border:1px solid;border-radius:8px;margin-top:2px;padding:4px 8px;display:block}.room-image{margin-top:4px;display:block}.room-image img{cursor:zoom-in;border-radius:8px;max-width:100%;min-height:40px;max-height:220px;display:block}.room-file-status{flex:none;margin:0;padding:0 10px}.room-attach:disabled,.room-primary:disabled{opacity:.6;cursor:default}.room-note{opacity:.8;overflow-wrap:anywhere;margin:4px 0 0;font-size:.8rem}.room-error{color:#9a2a1a;min-height:1.1em;margin:4px 0 0;font-size:.8rem}.room-log{background:#ffffff73;border-radius:10px;flex-direction:column;flex:1;gap:4px;min-height:0;margin:0 10px;padding:8px;display:flex;overflow-y:auto}.room-line{background:var(--card,#f5efdf);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:12px;max-width:88%;padding:4px 10px;font-size:.85rem;line-height:1.35}.room-line b{opacity:.75;font-size:.72rem;display:block}.room-line.self{background:var(--accent,#6b3f1d);color:#fff;align-self:flex-end}.room-line.system{opacity:.75;text-align:center;background:0 0;align-self:center;max-width:100%;padding:0 4px;font-style:italic}.room-send-row{flex:none;gap:6px;padding:8px 10px 10px;display:flex}@media (width<=600px),(pointer:coarse){#room-ui{top:var(--vvtop,0);width:auto;max-width:none;height:var(--vvh,100dvh);padding-top:env(safe-area-inset-top);border-radius:0;bottom:auto;left:0;right:0}.room-log{min-height:60px}}.room-modal{z-index:40;background:#14141473;place-items:center;padding:16px;font-family:system-ui,sans-serif;display:grid;position:fixed;inset:0}.room-modal-card{box-sizing:border-box;background:var(--paper,#fcf8ec);width:min(380px,100%);color:var(--ink,#3b2a12);border-radius:14px;padding:18px 20px;box-shadow:0 10px 30px #00000059}.room-modal-card h2{margin:0 0 8px;font-size:1.15rem}.room-modal-card p{margin:0 0 14px;font-size:.95rem;line-height:1.4}.room-last-out-row{flex-wrap:wrap;gap:8px;display:flex}.room-close.room-back{min-height:44px;padding:6px 14px;font-size:.95rem}#project-list{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#project-list[hidden],#project-list [hidden]{display:none!important}.projects-card{box-sizing:border-box;background:var(--paper,#fcf8ec);width:min(560px,100vw - 32px);height:min(640px,100vh - 32px);color:var(--ink,#3b2a12);border-radius:14px;flex-direction:column;font-family:system-ui,sans-serif;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000059}.projects-card button{font:inherit;cursor:pointer}.projects-card button:focus-visible,.projects-card input:focus-visible{outline:3px solid var(--accent,#6b3f1d);outline-offset:2px}.projects-head{flex:none;align-items:flex-start;gap:8px;padding:14px 12px 4px 20px;display:flex}.projects-heading{flex:1;min-width:0}.projects-title{overflow-wrap:anywhere;margin:0;font-size:1.3rem;line-height:1.2}.projects-sub{opacity:.8;margin:4px 0 0;font-size:.85rem}.projects-close{width:44px;min-height:44px;color:var(--ink,#3b2a12);background:#e6dcc0;border:0;border-radius:8px;flex:none;font-weight:700}.projects-tools{flex:none;align-items:center;gap:10px;padding:8px 20px;display:flex}.projects-filter{box-sizing:border-box;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);min-width:0;min-height:44px;color:var(--ink,#3b2a12);font:inherit;border-radius:10px;flex:1;padding:6px 12px}.projects-count{white-space:nowrap;background:#6b3f1d26;border-radius:999px;flex:none;padding:2px 10px;font-size:.8rem;font-weight:700}.projects-body{flex:1;min-height:0;padding:4px 20px 16px;overflow-y:auto}.projects-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.projects-row{box-sizing:border-box;border:2px solid var(--accent,#6b3f1d);background:var(--card,#f5efdf);width:100%;min-height:44px;color:var(--ink,#3b2a12);text-align:left;border-radius:10px;align-items:center;gap:10px;padding:8px 14px;display:flex}button.projects-row:hover{background:var(--card-hover,#ece3cc)}.projects-names{flex:1;min-width:0}.projects-name{overflow-wrap:anywhere;font-weight:700;display:block}.projects-host{opacity:.75;overflow-wrap:anywhere;font-size:.78rem;display:block}.projects-hint{color:var(--accent,#6b3f1d);flex:none;font-size:1.1rem;font-weight:700}.projects-row.is-mine{cursor:default;background:#f1e8da;border-style:dashed}.projects-tag{background:var(--accent,#6b3f1d);color:#fff;white-space:nowrap;border-radius:999px;flex:none;padding:1px 8px;font-size:.72rem;font-weight:700}.projects-status{text-align:center;opacity:.8;margin:28px 0}.projects-error{color:#7a1f10;background:#f6d4cc;border-radius:8px;margin:12px 0 0;padding:8px 12px;font-size:.9rem}@media (width<=700px){#project-list{padding:6px}.projects-card{border-radius:10px;width:calc(100vw - 12px);height:calc(100vh - 12px)}.projects-head{padding-left:14px}.projects-tools,.projects-body{padding-left:12px;padding-right:12px}}#link-editor{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.link-card{width:min(460px,100%)}.link-hint{opacity:.8;margin:0 0 10px;font-size:.92rem}.link-card input[type=url]{box-sizing:border-box;width:100%;min-height:44px;font:inherit;border:1px solid #8a6a50;border-radius:8px;padding:0 10px}.link-tab{cursor:pointer;align-items:flex-start;gap:8px;margin:10px 0 0;font-size:.9rem;display:flex}.link-tab input{flex:none;width:20px;height:20px;margin:0}.link-error{min-height:1.3em;margin:6px 0 10px;font-size:.9rem}.link-card .settings-actions{flex-wrap:wrap}.link-card .settings-actions button{min-height:44px}.link-card .link-save{background:var(--accent);color:#fff}#bug-report{z-index:30;background:#14141473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.bug-card{width:min(460px,100%)}.bug-hint{opacity:.8;margin:0 0 10px;font-size:.9rem}.bug-card textarea{box-sizing:border-box;resize:vertical;width:100%;font:inherit;border:1px solid #8a6a50;border-radius:8px;padding:8px 10px}.bug-shot{margin-top:8px;font-size:.9rem;display:block}.bug-shot input{max-width:100%;margin-top:4px;display:block}.bug-status{min-height:1.3em;margin:6px 0 10px;font-size:.9rem}.bug-card .settings-actions button{min-height:44px}.bug-card .bug-send{background:var(--accent);color:#fff}.bug-who{margin-bottom:8px;font-size:.9rem;display:block}.bug-who input{box-sizing:border-box;width:100%;min-height:44px;font:inherit;border:1px solid #8a6a50;border-radius:8px;margin-top:4px;padding:0 10px;display:block}.bug-chat{align-items:center;gap:8px;min-height:44px;margin-bottom:6px;font-size:.9rem;display:flex}.bug-chat input{width:20px;height:20px}#radial{z-index:30;background:#3b2a122e;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#radial.is-open{display:flex}.radial-ring{width:1px;height:1px;position:relative}.radial-centre{background:var(--accent,#6b3f1d);pointer-events:none;border-radius:50%;width:14px;height:14px;margin:-7px;position:absolute;top:0;left:0;box-shadow:0 0 0 3px #ffffffb3}.radial-item{border:2px solid var(--accent,#6b3f1d);width:92px;height:92px;color:var(--ink,#3b2a12);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fcf8ece6;border-radius:50%;justify-content:center;align-items:center;margin:-46px;padding:0 10px;font:700 .85rem/1.2 system-ui,sans-serif;transition:background 80ms linear,transform 80ms linear;display:flex;position:absolute;top:0;left:0;box-shadow:0 2px 6px #00000040}.radial-item.is-highlighted{background:var(--accent,#6b3f1d);color:var(--paper,#fcf8ec);transform:scale(1.12)}@media (width<=390px){.radial-item{width:76px;height:76px;margin:-38px;font-size:.75rem}}:root{--ui-title:1.2rem;--ui-gap:12px;--ui-btn-h:44px;--ui-btn-radius:10px}.settings-card h2,.board-title,.projects-title,.webview-title,.room-title,.room-modal-card h2,.class-card h2,.look-card h2,.composer-title,.cafe-head h2,.cal-head h2,.guide-head h2,.npc-head h2,.mail-head h2,.note-head h2{font-size:var(--ui-title);letter-spacing:-.01em;font-weight:800;line-height:1.25}@media (width<=700px){.settings-card h2,.board-title,.projects-title,.webview-title,.room-title,.room-modal-card h2,.class-card h2,.look-card h2,.composer-title,.cafe-head h2,.cal-head h2,.guide-head h2,.npc-head h2,.mail-head h2,.note-head h2{font-size:1.1rem}}.cafe-head,.cal-head,.guide-head,.npc-head,.mail-head,.note-head,.board-head,.projects-head,.webview-head,.settings-head{gap:var(--ui-gap)}.settings-actions button,.board-primary,.board-secondary{min-height:var(--ui-btn-h);border-radius:var(--ui-btn-radius);padding:8px 16px;font-weight:700}#guide-btn,#turn-btn,#mail-btn,#look-btn,#settings-btn{color:var(--ink,#3b2a12);place-items:center;padding:0;display:grid}#guide-btn svg,#turn-btn svg,#mail-btn svg,#look-btn svg,#settings-btn svg{display:block}#mail-btn>span:first-child{place-items:center;display:grid}#turn-btn[hidden]{display:none}
