:root{--ink:#f2e6c8;--ink-dim:#c9b896;--panel:#1d1612e0;--accent:#ffb347;--danger:#ff7b6b;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--ink);background:#120d0b;margin:0;overflow:hidden}#game,#game canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.panel{background:var(--panel);border:1px solid #5b4636;border-radius:10px;flex-direction:column;gap:12px;width:min(380px,100% - 32px);padding:24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.panel h1{letter-spacing:.02em;margin:0;font-size:1.6rem;font-weight:400}.panel .tag{color:var(--ink-dim);margin:0 0 8px;font-style:italic}.panel label{color:var(--ink-dim);flex-direction:column;gap:4px;font-size:.9rem;display:flex}.panel input{font:inherit;color:var(--ink);background:#241b16;border:1px solid #5b4636;border-radius:6px;padding:8px 10px;font-size:1.05rem}#join-code{text-transform:uppercase;letter-spacing:.3em}.panel button.secondary{color:var(--ink);background:0 0;border:1px solid #5b4636}.panel button{font:inherit;background:var(--accent);color:#241b16;cursor:pointer;border:0;border-radius:6px;margin-top:4px;padding:10px;font-size:1.05rem}.panel button:disabled{opacity:.6;cursor:wait}.error{color:var(--danger);margin:0}#hud{pointer-events:none;position:fixed;inset:0}#room-badge{background:var(--panel);letter-spacing:.15em;border-radius:6px;padding:6px 12px;position:absolute;top:16px;left:16px}#roster{margin:0;padding:0;font-size:.9rem;list-style:none;position:absolute;top:56px;left:16px}#roster li{align-items:center;gap:8px;margin-bottom:4px;display:flex}#roster .swatch{border-radius:50%;width:12px;height:12px}#hint{background:var(--panel);width:250px;color:var(--ink-dim);border-radius:6px;padding:6px 10px;font-size:.78rem;line-height:1.5;position:absolute;top:54px;left:12px}body:has(.dh-lobby:not([hidden])) #hint{display:none}#hint b{color:var(--ink)}body.locked #hint{display:none}#crosshair{background:var(--ink);opacity:.7;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%}#net{color:var(--ink-dim);font-family:ui-monospace,Consolas,monospace;font-size:.75rem;position:absolute;bottom:16px;right:16px}.nametag{background:var(--panel);color:var(--ink);white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:.8rem}.nametag.neighbor{border-bottom:2px solid #c9c3b5;font-style:italic}.guest-tag{background:var(--panel);white-space:nowrap;text-align:center;border-bottom:3px solid #0000;border-radius:5px;padding:3px 8px 4px;font-size:.8rem;transition:transform .15s}.guest-tag.focus{outline:2px solid var(--accent);transform:scale(1.12)}.guest-tag.selected{outline:2px dashed #7fd1ff}.guest-tag.suspicious .name:after{content:" (suspicious)";color:var(--danger)}.guest-tag .type{color:var(--danger);font-style:italic}.guest-tag .hunger{margin-left:4px}.guest-tag .hunger.urgent{animation:.5s steps(2,end) infinite blink}.guest-tag .meter{background:#3a2b24;border-radius:2px;height:3px;margin-top:3px;overflow:hidden}.guest-tag .meter i{background:#7fa36b;height:100%;display:block}.guest-tag .meter i.mid{background:#e8c547}.guest-tag .meter i.low{background:var(--danger)}.guest-tag .slip{color:var(--danger);font-size:.75rem;font-weight:700}.guest-tag .slip:empty{display:none}.bubble{color:#241b16;background:#f2e6c8;border-radius:12px;max-width:220px;padding:6px 10px 6px 34px;font-size:.8rem;position:relative;box-shadow:0 2px 10px #00000080}.bubble.pop{animation:.25s ease-out pop}.bubble .fuse{background:conic-gradient(#9e2f2f calc(var(--fuse,1) * 360deg), #d9c9a3 0);border-radius:50%;width:20px;height:20px;margin-top:-10px;position:absolute;top:50%;left:7px}.bubble .label{font-style:italic}.chips{flex-wrap:wrap;gap:3px;margin-bottom:2px;display:flex}.chip{color:#fff;text-shadow:0 1px 1px #0006;border-radius:8px;padding:0 5px;font-size:.7rem}.tell{white-space:nowrap;background:#140e0cd9;border-radius:6px;padding:2px 8px;font-size:.78rem;font-style:italic}.tell-bad{color:#ffb3a8}.tell-good{color:#c8f0b0}.tell-neutral{color:var(--ink-dim)}@keyframes pop{0%{opacity:0;transform:scale(.6)}}@keyframes blink{50%{opacity:.2}}.dinner-hud{pointer-events:none;position:absolute;inset:0}.dh-panel{background:var(--panel);border:1px solid #5b4636;border-radius:8px;padding:10px 12px}.dh-panel h3{color:var(--accent);margin:0 0 6px;font-size:.95rem;font-weight:400}.dh-bar{background:var(--panel);white-space:nowrap;border-radius:8px;align-items:center;gap:18px;padding:6px 14px;font-size:.9rem;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.cover-meter{vertical-align:middle;background:#3a2b24;border-radius:4px;width:110px;height:8px;display:inline-block;overflow:hidden}.cover-meter i{background:var(--accent);height:100%;display:block}.cover-meter.low i{background:var(--danger)}.strike{color:var(--ink-dim);margin-left:3px}.strike.on{color:var(--danger)}.dh-ledger{width:250px;font-size:.8rem;position:absolute;top:12px;right:12px}.dh-ledger .rule{margin-bottom:6px}.dh-ledger .rule-text{color:var(--ink)}.dh-ledger .claim{color:var(--ink-dim);font-size:.75rem;font-style:italic}.dh-log{flex-direction:column;gap:2px;width:360px;font-size:.8rem;display:flex;position:absolute;bottom:12px;left:12px}.dh-log .line{background:#140e0cb8;border-radius:4px;padding:2px 8px;animation:.2s ease-out pop}.dh-log .bad{color:#ffb3a8}.dh-log .good{color:#c8f0b0}.dh-log .big{color:var(--accent)}.dh-toast{background:var(--panel);text-align:center;opacity:0;border-radius:8px;max-width:min(640px,100% - 32px);padding:10px 18px;font-size:1.05rem;transition:opacity .3s;position:absolute;top:90px;left:50%;transform:translate(-50%)}.dh-toast.show{opacity:1}.dh-toast.bad{color:#ffb3a8;border:1px solid var(--danger)}.dh-toast.big{color:var(--accent)}.dh-prompt{white-space:nowrap;background:#140e0ccc;border-radius:6px;padding:5px 12px;font-size:.9rem;position:absolute;bottom:128px;left:50%;transform:translate(-50%)}.dh-hand{gap:8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.dh-hand .card{color:#241b16;background:#f2e6c8;border-radius:8px;width:170px;min-height:92px;padding:8px 10px 8px 30px;font-size:.8rem;position:relative;box-shadow:0 2px 8px #00000080}.dh-hand .card.cooling{color:var(--ink-dim);background:#f2e6c840}.dh-hand .card>b,.option>b,.dh-results .again b{min-width:20px;color:var(--accent);text-align:center;background:#241b16;border-radius:4px;padding:0 4px;font-family:ui-monospace,Consolas,monospace;display:inline-block}.dh-hand .card>b{position:absolute;top:8px;left:6px}.dh-hand .card .label{font-style:italic}.dh-question{border-color:var(--accent);width:min(520px,100% - 32px);position:absolute;bottom:170px;left:50%;transform:translate(-50%)}.dh-question .asker{color:var(--ink-dim);font-size:.85rem}.dh-question .qtext{margin:4px 0 8px;font-size:1.1rem}.option{grid-template-columns:auto 1fr;column-gap:8px;margin:4px 0;font-size:.9rem;display:grid}.option small{color:var(--ink-dim);grid-column:2;font-size:.72rem}.option.truth span,.option.deflect span{color:var(--ink-dim)}.option.cooling{opacity:.45}.dh-question .timer{background:#3a2b24;border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.dh-question .timer i{background:var(--accent);height:100%;display:block}.dh-serve{width:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hint{color:var(--ink-dim)}.dh-say{pointer-events:auto;width:min(520px,100% - 32px);position:absolute;bottom:128px;left:50%;transform:translate(-50%)}.dh-say input{width:100%;font:inherit;color:var(--ink);border:1px solid var(--accent);background:#241b16;border-radius:8px;padding:10px 12px}.dh-results{text-align:center;width:min(460px,100% - 32px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dh-results h2{margin:0 0 6px;font-weight:400}.dh-results .stars{color:var(--accent);letter-spacing:.1em;font-size:2rem}.dh-results .tips{font-size:1.2rem}.dh-results blockquote{color:var(--ink-dim);margin:10px 0;font-style:italic}.dh-results .stats{text-align:left;grid-template-columns:1fr 1fr;gap:2px 16px;margin:10px 0;font-size:.85rem;display:grid}.dh-results .stats div{justify-content:space-between;display:flex}.dh-tuning{pointer-events:auto;width:300px;font-size:.75rem;position:absolute;top:100px;bottom:220px;left:12px;overflow-y:auto}.dh-tuning label{justify-content:space-between;align-items:center;gap:6px;margin:2px 0;display:flex}.dh-tuning input[type=number]{width:80px;font:inherit;color:var(--ink);background:#241b16;border:1px solid #5b4636;border-radius:4px;padding:2px 4px}.dh-tuning input.changed{border-color:var(--accent)}.dh-tuning label.meters{justify-content:flex-start;margin-bottom:8px}body.overhead #crosshair{display:none}.nametag.host.speaking{box-shadow:0 0 0 2px #7fe0a0}.nametag.host.speaking:before{content:"🔊 "}.nametag.host.away{opacity:.5}.nametag.host:after{content:attr(data-status);color:var(--ink-dim)}.dh-bar .alarm{color:#ff5a4a;animation:.6s steps(2,end) infinite blink}.dh-status,.dh-asking{background:var(--panel);border-radius:8px;padding:6px 14px;position:absolute;left:50%;transform:translate(-50%)}.dh-status{color:var(--accent);font-size:1.05rem;top:60px}.dh-asking{color:var(--ink-dim);font-size:.85rem;bottom:170px}.dh-ledger.open{width:min(520px,100% - 24px);max-height:calc(100% - 24px);font-size:.95rem;overflow-y:auto}.dh-lobby,.dh-booking,.dh-fridge,.dh-notes,.dh-results,.settings,#settings-button{pointer-events:auto}.dh-lobby{flex-direction:column;gap:8px;width:min(380px,100% - 24px);max-height:calc(100% - 140px);font-size:.85rem;display:flex;position:absolute;top:12px;left:12px;overflow-y:auto}.dh-lobby label,.dh-notes label,.settings label{justify-content:space-between;align-items:center;gap:8px;display:flex}.dh-lobby label.check,.settings label.check{justify-content:flex-start}.dh-lobby select,.dh-lobby input:not([type]),.dh-notes select,.settings select{font:inherit;color:var(--ink);background:#241b16;border:1px solid #5b4636;border-radius:5px;padding:3px 6px}.lb-players{margin:0;padding:0;list-style:none}.lb-players li{align-items:center;gap:6px;padding:2px 0;display:flex}.lb-players .swatch{border-radius:3px;width:12px;height:12px}.lb-players b{margin-left:auto;font-weight:400}.lb-players b.ready{color:#8fd18f}.lb-players b.notready{color:var(--ink-dim)}.lb-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.lb-row>span{width:84px;color:var(--ink-dim)}.lb-row button,.settings button.tx{font:inherit;cursor:pointer;color:var(--ink);background:#241b16;border:1px solid #5b4636;border-radius:4px;padding:2px 6px;font-size:.75rem}.lb-row button.sw{width:20px;height:20px;padding:0}.lb-row button.on{outline:2px solid var(--accent)}.lb-buttons{justify-content:center;gap:8px;display:flex}.lb-buttons button,.settings .row button{font:inherit;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#241b16;border-radius:6px;padding:6px 12px}.lb-buttons button.secondary,.settings .row button.secondary{color:var(--ink);background:0 0}.dh-booking{width:300px;font-size:.85rem;position:absolute;top:60px;right:12px}.bk-row{justify-content:space-between;gap:10px;margin-bottom:4px;display:flex}.bk-row span,.bk-menu span{color:var(--ink-dim)}.bk-menu div{gap:8px;margin:2px 0;display:flex}.bk-menu span{flex-shrink:0;width:70px}.bk-seed{color:var(--ink-dim);margin-top:6px;font-family:ui-monospace,monospace}.dh-fridge,.dh-notes{width:min(360px,100% - 32px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dh-fridge .option{cursor:pointer}.dh-notes label{margin:4px 0}.dh-wheel{width:0;height:0;position:absolute;top:50%;left:50%}.wh-guest{white-space:nowrap;color:var(--ink-dim);font-size:.85rem;position:absolute;transform:translate(-50%,40px)}.wh-card{background:var(--panel);border:1px solid #5b4636;border-radius:8px;width:170px;padding:8px;font-size:.8rem;transition:transform .1s;position:absolute}.wh-card.pick{border-color:var(--accent);transform:scale(1.08)}.wh-card.cooling{opacity:.5}.wh-0{top:-110px;left:-230px}.wh-1{top:-190px;left:-85px}.wh-2{top:-110px;left:60px}.dh-charge{background:#00000080;border-radius:3px;width:80px;height:6px;position:absolute;top:calc(50% + 24px);left:50%;overflow:hidden;transform:translate(-50%)}.dh-charge i{background:var(--accent);height:100%;display:block}.dh-net{background:#0009;border-radius:6px;max-width:420px;padding:6px 10px;font:.75rem ui-monospace,monospace;position:absolute;bottom:12px;right:12px}.dh-results{max-height:calc(100% - 40px);overflow-y:auto}.dh-results .incidents{text-align:left;margin:0 0 8px;font-size:.85rem}.dh-results .awards{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.dh-results .award{border:1px solid #5b4636;border-radius:6px;flex-direction:column;padding:6px;font-size:.8rem;display:flex}.dh-results .award b{color:var(--accent);font-weight:400}.dh-results .award small{color:var(--ink-dim)}.dh-log .chat{color:#e6f0ff}.cook-bar{background:#0009;border-radius:4px;width:64px;height:7px;position:relative}.cook-bar:before{content:"";width:calc(var(--p,0) * 100%);background:#f2c14e;border-radius:4px;position:absolute;inset:0}.cook-bar.done:before{background:#8fd18f}.cook-bar.burnt:before{background:#5a3a2a;width:100%}.cook-bar:after{content:attr(data-label);white-space:nowrap;text-shadow:0 1px 2px #000;font-size:.7rem;position:absolute;top:-16px;left:50%;transform:translate(-50%)}#settings-button{background:var(--panel);width:32px;height:32px;color:var(--ink);cursor:pointer;border:1px solid #5b4636;border-radius:6px;font-size:1.1rem;position:fixed;top:12px;left:12px}body:has(.dh-lobby:not([hidden])) #settings-button{left:auto;right:12px}.settings{z-index:20;flex-direction:column;gap:6px;width:min(460px,100% - 32px);max-height:calc(100% - 40px);font-size:.85rem;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.settings h4{color:var(--accent);margin:8px 0 0;font-weight:400}.settings label.range input{flex:1}.settings label.range output{text-align:right;width:36px}.settings .row{align-items:center;gap:8px;display:flex}.settings .keys label{margin:2px 0}body.large-text .dinner-hud,body.large-text .guest-tag,body.large-text .nametag,body.large-text .tell,body.large-text .bubble{font-size:125%}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{transition:none!important;animation:none!important}.dh-events{flex-direction:column;gap:4px;width:290px;font-size:.8rem;display:flex;position:absolute;top:150px;left:12px}.dh-events>div{background:var(--panel);border-radius:6px;padding:4px 10px}.ev-occasion b{color:var(--accent);margin-right:6px}.ev-occasion .obj{color:var(--ink-dim)}.ev-occasion .obj.done{color:#7fd18b}.ev-occasion .obj.failed{color:#e8736b;text-decoration:line-through}.dh-events .ev.bad{color:#ffb4a8}.dh-events .ev.mine{outline:2px solid var(--accent)}.dh-events .ev.tip{color:#fff3c4;line-height:1.4}.dh-events .chips{display:inline-flex}.ev-bar{background:#ffffff26;border-radius:3px;height:5px;margin-top:4px;overflow:hidden}.ev-bar i{background:#7fd18b;height:100%;display:block}.ev-bar.danger i{background:#e8736b}.bk-blurb{color:var(--ink-dim);margin:-2px 0 8px;font-style:italic}body.large-text .dh-events{width:340px;font-size:.95rem}.dh-triggers{width:260px;font-size:.75rem;line-height:1.35;position:absolute;bottom:12px;right:12px}.dh-triggers h3{margin:0 0 4px}.dh-triggers .tw b{color:var(--accent)}.dh-triggers .tw.human b{color:#ffb4a8}.settings label.check.inline{margin-left:8px;display:inline-flex}
