:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090b0d;--surface:#12161a;--surface-2:#191f24;--line:#2c343b;--text:#f1eee7;--muted:#98a09f;--gold:#d7a94b;--red:#cf594f;--green:#65b97c;--hunger:#d39a46}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% -20%, #232a2e 0, var(--bg) 50%);min-width:320px;color:var(--text);margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif}button,input{font:inherit}button{color:var(--text);cursor:pointer;background:#20262b;border:1px solid #39434a;border-radius:8px;padding:9px 14px}button:hover:not(:disabled){border-color:var(--gold);background:#293036}button:focus-visible{outline-offset:2px;outline:3px solid #d7a94b59}button:disabled{cursor:not-allowed;opacity:.38}input{width:100%;color:var(--text);border:1px solid var(--line);background:#0c1013;border-radius:8px;margin-top:5px;padding:11px 12px}label{color:var(--muted);text-align:left;margin-bottom:14px;font-size:14px;display:block}.muted{color:var(--muted)}.small{font-size:12px}.error,.loss{color:#f0786d}.win{color:#78d596}.eyebrow{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;margin:0 0 3px;font-size:11px;font-weight:800}.lobby{text-align:center;width:min(480px,100% - 32px);margin:9vh auto}.lobby h1{color:var(--gold);letter-spacing:.12em;margin:0;font-family:Georgia,serif;font-size:clamp(42px,7vw,64px)}.title-row{justify-content:center;align-items:center;gap:12px;display:flex}.title-icon{object-fit:contain;width:54px;height:54px}.subtitle{color:var(--muted);margin:5px 0 25px}.panel{border:1px solid var(--line);text-align:left;background:#12161af5;border-radius:12px;padding:18px}.panel h2{margin:0 0 14px;font-size:16px}.button-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.or{color:var(--muted);font-size:12px}.code-input{text-transform:uppercase;letter-spacing:.16em;width:82px}.game{width:min(1680px,100%);margin:0 auto;padding:12px 16px 32px}.game-header{border:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0e1114eb;border-radius:12px;align-items:center;gap:18px;min-height:62px;margin-bottom:16px;padding:10px 14px;display:flex;position:sticky;top:0}.room-code{color:var(--gold);letter-spacing:.14em;background:#1d1a12;border:1px solid #574728;border-radius:7px;flex:none;padding:7px 12px;font-weight:800}.turn-status{flex-direction:column;display:flex}.turn-status strong{font-size:17px}.mission-goal{border-left:1px solid var(--line);flex-direction:column;flex:1;gap:2px;min-width:260px;padding:2px 14px;display:flex}.mission-goal>span{color:var(--gold);letter-spacing:.12em;font-size:11px;font-weight:800}.mission-goal>strong{font-size:14px;line-height:1.35}.mission-goal>small{color:var(--muted);font-size:12px}.header-actions{color:var(--muted);align-items:center;gap:20px;margin-left:auto;display:flex}.header-actions strong{color:#111;background:var(--gold);border-radius:50%;place-items:center;min-width:30px;height:30px;margin-left:5px;display:inline-grid}.dice-result{color:var(--muted);align-items:center;gap:7px;margin-left:auto;font-size:12px;display:flex}.dice-result i{color:#15110a;background:#f0e5c8;border-radius:6px;place-items:center;width:31px;height:31px;font-size:17px;font-style:normal;font-weight:900;display:grid;box-shadow:inset 0 0 0 2px #9b8c6c}.dice-result strong{color:var(--gold);font-size:15px}.table-layout{grid-template-columns:minmax(560px,1fr) minmax(440px,520px);align-items:start;gap:12px;display:grid}.board-zone,.right-rail,.area-block{border:1px solid var(--line);background:#0e1114e6;border-radius:14px}.board-zone{min-width:0;padding:14px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;display:flex}.section-heading h1,.section-heading h2{margin:0;font-family:Georgia,Noto Serif SC,serif;font-size:26px}.section-heading h2 span{color:var(--muted);font-family:inherit;font-size:.75em}.section-heading>p{color:var(--muted);margin:0;font-size:13px}.section-heading.compact{align-items:center;padding:15px 16px 0}.section-heading.compact h2{font-size:21px}.board-scroller{scrollbar-color:#3b444b transparent;padding:5px 4px 14px;overflow:auto}.board{gap:9px;min-width:max-content;display:grid}.board-cell{aspect-ratio:4/3;text-align:left;background:#111518;border:2px solid #30383e;border-radius:8px;width:100%;min-width:105px;padding:0;position:relative;overflow:hidden}.board-cell:disabled{opacity:1;cursor:default}.board-cell.unknown{filter:saturate(.6);border-style:dashed;border-color:#343c40}.board-cell.van{border-color:#a9833c;box-shadow:inset 0 0 0 1px #d7a94b59}.board-cell.reachable{border-color:var(--gold);cursor:pointer;animation:1.7s ease-in-out infinite reachable}.board-cell.reachable:hover{transform:translateY(-2px)}@keyframes reachable{50%{box-shadow:0 0 20px #d7a94b47}}.tile-art{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}span.tile-art{color:#e8d49d;text-align:center;background:linear-gradient(145deg,#263038,#111519 70%);place-items:center;padding:12px;font:800 16px/1.3 Georgia,serif;display:grid}.tile-art.dim{opacity:.42}.tile-shade{background:linear-gradient(#0000000f 20%,#000000d1 100%);position:absolute;inset:0}.tile-name{z-index:2;text-shadow:0 2px 4px #000;max-width:calc(100% - 20px);font-family:Georgia,serif;font-size:16px;font-weight:800;position:absolute;bottom:9px;left:10px}.spawn-number{z-index:3;color:#17120a;background:var(--gold);border-radius:50%;place-items:center;width:30px;height:30px;font-weight:900;display:grid;position:absolute;top:8px;right:8px;box-shadow:0 2px 7px #000}.mission-token{z-index:4;color:#211807;background:#f5c348eb;border:1px solid #ffe09a;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900;position:absolute;bottom:7px;right:7px;box-shadow:0 2px 7px #0000008c}.mission-objective-token{z-index:5;color:#1b1307;text-align:center;background:radial-gradient(circle at 34% 28%,#ffe89d,#d69a28 72%);border:4px solid #fff0ae;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:62px;height:62px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px 18px #000000bf}.mission-objective-token b{font:900 25px/1 Georgia,serif}.mission-objective-token small{text-overflow:ellipsis;white-space:nowrap;max-width:52px;font-size:9px;font-weight:900;overflow:hidden}.mission-action{color:#211807;background:#e7b64f;border-color:#ffe28b}.mission-button{text-align:left;gap:3px;width:100%;margin:7px 0;display:grid}.mission-button small,.mission-button span{opacity:.78;font-weight:500;display:block}.mission-button span{font-size:11px;line-height:1.35}.tile-tokens{z-index:3;color:#fff;background:#9a302beb;border-radius:12px;padding:4px 8px;font-size:12px;font-weight:800;position:absolute;top:9px;left:9px}.occupants{z-index:3;flex-wrap:wrap;gap:4px;display:flex;position:absolute;bottom:36px;left:9px;right:9px}.occupants span{color:#16120b;background:#f0c96f;border-radius:10px;padding:3px 7px;font-size:11px;font-weight:800}.action-dock{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-top:5px;padding-top:15px;display:flex}.action-dock>div:first-child{flex-direction:column;min-width:120px;display:flex}.action-btn{align-items:center;gap:7px;min-height:42px;font-weight:700;display:inline-flex}.action-btn.primary,.card-controls .primary{color:#181207;background:var(--gold);border-color:#e7bd68}.action-btn.danger{color:#ffb0aa;border-color:#793c38}.btn-icon{object-fit:contain;width:19px;height:19px}.right-rail{scrollbar-color:#3b444b transparent;max-height:calc(100vh - 94px);overflow:auto}.player-dashboard{background:var(--surface-2);border:1px solid #343d43;border-radius:11px;margin:8px 10px;padding:10px 12px}.player-dashboard.defeated{filter:grayscale();opacity:.55}.player-identity{align-items:center;gap:9px;margin-bottom:7px;display:flex}.player-identity>div{flex-direction:column;min-width:0;display:flex}.player-identity strong{font-size:16px}.player-identity span{color:var(--muted);margin-top:2px;font-size:12px}.dashboard-portrait{object-fit:cover;background:#0e1114;border:2px solid #596168;border-radius:50%;flex:none;width:42px;height:42px}span.dashboard-portrait{color:var(--gold);place-items:center;font-size:20px;font-weight:900;display:inline-grid}.art-fallback{text-wrap:balance;overflow:hidden}.art-fallback-cards{border:1px solid #5a4a29;color:#ead79f!important;background:radial-gradient(circle at 50% 22%,#3b4650,#15191d 62%,#080a0c)!important}.art-fallback-monsters{border:1px solid #713b37;color:#ffc0b9!important;background:radial-gradient(circle at 50% 24%,#592d2d,#1a1011 64%,#080607)!important}.art-fallback-portraits{color:#f0d485!important;background:radial-gradient(circle at 50% 30%,#3c464a,#111518 68%)!important}.art-fallback-icons{color:var(--gold);background:#171b1e;border-radius:4px;place-items:center;font-size:8px;font-weight:900;display:inline-grid}.vital-block{margin-top:5px}.dog-status{background:#10181a;border:1px solid #31565a;border-radius:7px;margin:7px 0;padding:6px}.dog-status.defeated{opacity:.55;filter:grayscale()}.dog-status .vital-label:not(:first-child){margin-top:5px}.choice-overlay{z-index:40;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#040607d6;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.choice-panel{background:var(--surface-2);border:1px solid #596168;border-radius:14px;width:min(760px,96vw);padding:22px;box-shadow:0 22px 70px #000}.choice-panel h2,.choice-panel p{margin:0 0 10px}.choice-cards{gap:14px;margin:16px 0;display:flex;overflow-x:auto}.choice-cards>button{width:180px;color:var(--text);background:#111619;border:2px solid #3a444a;border-radius:10px;padding:7px}.choice-cards>button.selected{border-color:var(--gold);box-shadow:0 0 16px #d7a94b66}.choice-card-art{object-fit:cover;border-radius:6px;width:164px;height:226px;display:block}.vital-label{color:var(--muted);justify-content:space-between;margin-bottom:4px;font-size:12px;display:flex}.vital-label strong{color:var(--text)}.meter{background:#090b0d;border:1px solid #323a40;border-radius:8px;height:10px;overflow:hidden}.meter-fill{border-radius:inherit;background:linear-gradient(90deg,#4b9b64,#76ce90);height:100%;display:block}.meter.hunger .meter-fill{background:linear-gradient(90deg, #85602f, var(--hunger))}.action-pips{color:var(--muted);align-items:center;gap:6px;margin:8px 0;font-size:12px;display:flex}.action-pips i{background:#0c0f11;border:1px solid #4a535a;border-radius:50%;width:13px;height:13px}.action-pips i.active{background:var(--gold);border-color:#f4ce7b;box-shadow:0 0 7px #d7a94b80}.resource-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.resource-tile{background:#101418;border-radius:7px;grid-template-columns:22px 1fr auto;align-items:center;gap:5px;padding:7px;display:grid}.resource-tile span{color:var(--muted);font-size:11px}.resource-tile strong{font-size:16px}.resource-icon{object-fit:contain;width:21px;height:21px}.storage-line{color:var(--muted);border-top:1px solid #30373c;justify-content:space-between;padding-top:6px;font-size:12px;display:flex}.storage-line strong{color:var(--text)}.innate-skill{border-left:3px solid var(--gold);background:#12171a;border-radius:5px;grid-template-columns:72px 1fr auto;align-items:center;gap:5px 8px;margin-top:6px;padding:6px 8px;display:grid;position:relative}.innate-skill span{color:var(--muted);letter-spacing:.12em;font-size:9px;display:block}.innate-skill strong{color:var(--gold);font-size:13px}.innate-skill p{color:#bdc2c0;-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-column:1/-1;margin:0;font-size:10px;line-height:1.3;display:-webkit-box;overflow:hidden}.innate-skill button{color:#171208;background:var(--gold);border-color:#edc56d;margin:0;padding:5px 8px;font-size:10px;font-weight:800}.play-area{gap:16px;margin-top:16px;display:grid}.area-block{padding-bottom:16px;overflow:hidden}.danger-area{background:linear-gradient(135deg,#3718188c,#0e1114f0 45%);border-color:#51302d}.card-row{scrollbar-color:#3b444b transparent;gap:13px;min-height:212px;padding:2px 16px 8px;display:flex;overflow-x:auto}.rail-section{border-top:1px solid var(--line);padding:7px 10px}.rail-title{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.rail-title span{min-width:23px;height:23px;color:var(--gold);background:#282317;border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.compact-card-row{scrollbar-color:#3b444b transparent;gap:7px;min-height:112px;padding:1px 1px 5px;display:flex;overflow-x:auto}.compact-card-row .game-card{border-radius:7px;flex-basis:76px;width:76px}.compact-card-row .card-face{height:94px}.compact-card-row .card-title{padding:20px 5px 5px;font-size:10px}.compact-card-row .monster-owner{text-overflow:ellipsis;white-space:nowrap;max-width:86px;font-size:8px;overflow:hidden}.compact-card-row .monster-stats{grid-template-columns:1fr;padding:5px;font-size:9px}.compact-card-row .card-controls{padding:5px}.compact-card-row .card-controls button{padding:5px;font-size:10px}.compact-card-row .card-controls .discard-control{color:#ffaaa2;background:#2a1717;border-color:#713b37}.game-card{background:#191e22;border:1px solid #374047;border-radius:11px;flex:0 0 146px;align-self:flex-start;width:146px;overflow:hidden;box-shadow:0 8px 20px #00000040}.game-card.monster-card{border-color:#713b37}.game-card.monster-card.boss{border-color:var(--gold)}.game-card.selectable{box-shadow:0 0 0 2px var(--gold), 0 0 22px #d7a94b4d}.card-face{text-align:left;background:#111;border:0;border-radius:0;width:100%;height:174px;padding:0;display:block;position:relative;overflow:hidden}.card-face:hover:not(:disabled){background:#111;border:0}.card-art{object-fit:contain;background:#0d1012;width:100%;height:100%}span.card-art{color:var(--gold);place-items:center;font-family:Georgia,serif;font-size:44px;display:grid}span.card-art.art-fallback{text-align:center;padding:12px;font-size:15px;line-height:1.35}.card-title{background:linear-gradient(#0000,#000000f2);padding:28px 8px 8px;font-size:13px;font-weight:800;position:absolute;bottom:0;left:0;right:0}.card-hint{color:#ddd;opacity:0;background:#000000b3;border-radius:4px;padding:3px 5px;font-size:9px;position:absolute;top:7px;right:7px}.card-face:hover .card-hint{opacity:1}.monster-owner{background:#742622e6;border-radius:4px;padding:3px 6px;font-size:10px;position:absolute;top:7px;left:7px}.card-controls{flex-direction:column;gap:6px;padding:8px;display:flex}.card-controls button{width:100%;padding:7px;font-size:12px;font-weight:700}.monster-stats{color:var(--muted);grid-template-columns:1fr auto;gap:4px 8px;padding:8px;font-size:11px;display:grid}.monster-stats strong{color:#f47c72}.status-tag{color:var(--gold);grid-column:1/-1}.verified-tag{color:var(--green);grid-column:1/-1}.review-tag{color:#e2a85b;grid-column:1/-1}.ammo-count{color:var(--gold);text-align:center;background:#111;border-radius:5px;padding:4px 7px;font-size:11px}.empty-state{min-width:220px;color:var(--muted);border:1px dashed #3a4248;border-radius:10px;place-items:center;display:grid}.pending-banner{z-index:18;border:1px solid var(--gold);background:#30230d;border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:11px 14px;display:flex;position:sticky;top:78px;box-shadow:0 8px 20px #0006}.pending-banner .cancel{color:#ff9d95;border-color:#713b37;margin-left:auto}.log-drawer{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-top:16px;padding:12px 15px}.log-drawer summary{cursor:pointer;color:var(--muted);font-weight:700}.event-log{border-top:1px solid var(--line);max-height:260px;margin-top:10px;padding-top:7px;overflow-y:auto}.event-log-entry{color:#b2b8b7;padding:4px 0;font-size:13px}.event-log-seq{color:#5f696d;width:30px;font-size:10px;display:inline-block}.detail-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d1;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.detail-modal{background:#151a1e;border:1px solid #49535a;border-radius:16px;grid-template-columns:minmax(260px,430px) minmax(260px,430px);width:min(900px,100%);max-height:calc(100vh - 48px);display:grid;position:relative;overflow:auto;box-shadow:0 30px 90px #000}.detail-close{z-index:2;background:#000000c7;border-radius:50%;place-items:center;width:38px;height:38px;padding:0;font-size:27px;display:grid;position:absolute;top:10px;right:10px}.detail-art{object-fit:contain;background:#090b0d;width:100%;height:min(70vh,620px)}span.detail-art{color:var(--gold);place-items:center;font:800 88px Georgia,serif;display:grid}span.detail-art.art-fallback{text-align:center;padding:48px;font-size:clamp(32px,6vw,64px);line-height:1.2}.detail-copy{padding:42px 30px 30px}.detail-copy h2{margin:0 0 18px;font:34px Georgia,serif}.detail-stat{color:var(--gold);font-weight:800}.rule-block{border-left:3px solid var(--gold);background:#0d1114;flex-direction:column;gap:3px;margin:12px 0;padding:12px;display:flex}.rule-block span,.rules-text{color:#c3c8c6;white-space:pre-line;line-height:1.6}.asset-warning{color:#d7ba83;background:#2b2315;border-radius:7px;margin-top:18px;padding:10px;font-size:12px}.alt-preview .card-face:hover{z-index:120;border:2px solid var(--gold);border-radius:12px;width:min(360px,80vw);height:min(520px,80vh);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 25px 90px #000}.alt-preview .card-face:hover .card-title,.alt-preview .card-face:hover .card-hint,.alt-preview .card-face:hover .monster-owner{display:none}.alt-preview:after{content:"";z-index:110;pointer-events:none;background:#000000b8;position:fixed;inset:0}.lobby-game{padding-top:30px}.lobby-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:14px;display:grid}.lobby-layout aside{flex-direction:column;gap:14px;display:flex}.survivor-list{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.survivor-card{text-align:left;align-items:center;gap:10px;min-height:76px;display:flex}.survivor-portrait{object-fit:cover;background:#0b0d0f;border:1px solid #50595f;border-radius:50%;flex:none;width:52px;height:52px}span.survivor-portrait{color:var(--gold);place-items:center;font-weight:900;display:inline-grid}.mission-button{width:100%;margin-bottom:8px}.player-list-item{border:1px solid var(--line);background:#111519;border-radius:7px;margin-bottom:7px;padding:9px}.player-list-header{justify-content:space-between;gap:10px;display:flex}.player-name{align-items:center;gap:7px;display:flex}.player-portrait{object-fit:cover;border-radius:50%;width:28px;height:28px}.player-list-stats{color:var(--muted);margin-top:4px;font-size:12px}@media (max-width:1100px){.table-layout{grid-template-columns:1fr}.right-rail{max-height:none}}@media (max-width:720px){.game{padding:10px 10px 35px}.game-header{flex-wrap:wrap;position:static}.mission-goal{border-top:1px solid var(--line);border-left:0;order:4;width:100%;min-width:0;padding:8px 0 0}.header-actions{justify-content:space-between;width:100%;margin-left:0}.board-zone{padding:12px}.board-cell{min-width:112px}.action-dock{flex-direction:column;align-items:flex-start}.lobby-layout,.detail-modal{grid-template-columns:1fr}.detail-art{height:48vh}.detail-copy{padding:24px 20px}}
