:root{font-family:ui-rounded,'Arial Rounded MT Bold','Trebuchet MS',system-ui,sans-serif;color:#112443;background:#f5efdf;font-synthesis:none;--teal:#00a997;--navy:#112443;--coral:#ff6957;--cream:#fffaf0}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid #eaba52;outline-offset:4px}button:disabled{cursor:wait;opacity:.55}button{transition:transform .15s,filter .15s}button:hover{filter:brightness(1.05);transform:translateY(-2px)}button:active{transform:translateY(1px)}.hidden{display:none!important}#scene{width:100%;height:100%;display:block;touch-action:none;outline:0}.topbar{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:25px 38px;pointer-events:none;z-index:4}.topbar>*{pointer-events:auto}.wordmark{text-decoration:none;color:var(--navy);font-weight:1000;font-size:15px;line-height:1.02;letter-spacing:-.7px;transform:rotate(-3deg);text-shadow:0 2px #fff}.wordmark b{font-size:28px}.wordmark span{color:var(--coral)}.top-right{display:flex;gap:12px;align-items:center}.edition{font-size:10px;letter-spacing:2px;font-weight:800;background:#fff9e9b8;padding:10px 13px;border-radius:30px}.round-button{border:2px solid #fff;background:#fff9eae8;border-radius:50%;width:40px;height:40px;color:var(--navy);font-size:23px;font-weight:900;box-shadow:0 3px 8px #143b4b12}.screen{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;padding:110px 4vw 35px}.screen>*{pointer-events:auto}#home{background:linear-gradient(90deg,#fcf6e9f7 0%,#fbf5e9ee 24%,#fbf5e9b8 39%,transparent 65%)}.home-card{width:420px;max-width:46vw;padding:10px 8px}.eyebrow{font-size:10px;font-weight:900;letter-spacing:1.8px;color:#738381;display:flex;align-items:center;gap:8px}.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--teal)}h1{font-size:clamp(32px,3.4vw,51px);line-height:1.08;letter-spacing:-2px;margin:18px 0 14px;font-weight:1000}h1 em{font-style:normal;color:var(--teal)}p{font-family:system-ui,sans-serif;line-height:1.55;color:#60716d;font-size:14px}.home-card>p{margin:0 0 20px}.map-chip{display:flex;gap:12px;align-items:center;border:1px solid #dedfcf;border-radius:15px;padding:11px 13px;background:#fff9ecb5;margin:15px 0}.map-icon{font-size:28px;color:#339078;background:#e2eee0;border-radius:9px;padding:5px 9px}.map-chip strong{display:block;font-size:14px}.map-chip div>span{display:block;font-size:10px;color:#75857b;margin-top:5px}.map-status{font-size:8px;color:#059b7e;letter-spacing:1px;margin-left:auto;font-weight:900}.field-label{display:block;font-size:9px;letter-spacing:1.5px;font-weight:900;color:#78847b;margin:14px 0 5px}input{background:#fffdf6cf;border:1px solid #dcdccd;color:#233c46;border-radius:9px;padding:10px 13px;width:100%;font-size:13px}.primary{border:0;border-bottom:4px solid #00847b;border-radius:15px;background:linear-gradient(#0dbfa7,#00a291);color:white;text-shadow:0 2px #008e8440;box-shadow:0 7px 15px #008b8728;font-weight:1000;letter-spacing:.5px;padding:16px 20px;width:100%;margin-top:14px;font-size:17px}.primary small{display:block;font-size:10px;letter-spacing:.3px;font-weight:500;margin-top:4px;color:#d7fff1}.secondary{width:100%;background:transparent;border:0;color:#31675c;font-weight:800;padding:13px;font-size:12px}.secondary span{margin-left:12px}.split{display:flex;gap:10px;margin:5px 0 12px}.outline{background:#fffdf5ae;border:1.5px solid #c5d0c2;border-bottom-width:3px;border-radius:11px;color:var(--navy);padding:12px 16px;font-size:12px;font-weight:800;flex:1}.join-row{display:flex;gap:8px}.join-row input{width:44%;font-size:10px;letter-spacing:1.4px}.join-row button{border:0;background:transparent;font-weight:800;font-size:12px;color:#67796f}.home-foot{display:flex;gap:15px;font-size:9px;color:#7a8980;margin-top:20px}.world-caption{position:absolute;right:5%;bottom:8%;color:#fff;text-shadow:0 2px 15px #173e3855;pointer-events:none}.world-caption>span{font-size:10px;font-weight:800;letter-spacing:3px}.world-caption strong{display:block;font-size:35px;line-height:1.15;margin-top:10px;letter-spacing:-1px}.lobby-card{width:min(900px,90vw);margin:auto;background:#fffbf0f5;padding:28px;border:3px solid white;border-radius:28px;box-shadow:0 20px 90px #173f4d2b}.lobby-title{display:flex;justify-content:space-between;align-items:center}.lobby-title h2{font-size:32px;letter-spacing:-1px;margin:6px 0 12px}.code-pill{display:block;margin:auto;border:0;background:#efeadd;border-radius:20px;padding:9px 22px;color:#24344b}.code-pill b{font-size:20px;letter-spacing:2px;margin:0 10px}.teams{display:grid;grid-template-columns:1fr 1.5fr;gap:16px;margin:20px 0}.team{border:3px solid var(--teal);border-bottom-width:5px;border-radius:18px;overflow:hidden;min-height:180px}.team h3{background:var(--teal);color:white;margin:0;padding:12px;font-size:16px}.team h3 span{float:right}.hunters{border-color:var(--coral)}.hunters h3{background:var(--coral)}.roster{padding:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hunters .roster{grid-template-columns:repeat(2,1fr)}.player-tile{min-height:62px;border:0;border-radius:12px;background:#e2f3e6;display:flex;align-items:center;flex-direction:column;padding:9px;gap:4px;color:#244449;font-size:10px;text-align:center}.hunters .player-tile{background:#ffe5d9}.player-tile b{font-size:23px}.player-tile small{font-size:8px;color:#6b897a}.room-options{display:flex;gap:10px}.room-options>div{display:flex;align-items:center;justify-content:center;gap:12px;flex:1;padding:13px 9px;border-radius:13px;background:#f1eddf;font-size:12px}.room-options span{font-size:24px}.host-controls{display:flex;gap:12px;align-items:center;margin-top:12px}.host-controls label{font-size:9px;font-weight:800;display:flex;gap:8px;align-items:center}.host-controls input{width:55px}.host-controls .primary{width:auto;flex:1;margin:0;padding:13px;font-size:16px}.host-controls .outline{flex:0;white-space:nowrap}.lobby-note{font-size:11px;text-align:center;margin:12px 0 0}#hud{position:absolute;inset:0;pointer-events:none}#hud button{pointer-events:auto}.hud-top{display:flex;align-items:start;justify-content:space-between;padding:24px 30px;gap:15px}.role-card,.score-card,.time-card{border:3px solid #fff9df;border-radius:20px;box-shadow:0 6px 14px #163d3322;background:#173d50e8;color:white;padding:10px 18px;display:flex;align-items:center;gap:14px}.role-card>span{border:2px solid #83e7d9;border-radius:50%;width:44px;height:44px;text-align:center;line-height:40px;font-size:31px;background:#09aa9d}.hud-top small{display:block;font-size:8px;letter-spacing:1.6px;color:#bae1d7;font-weight:800}.hud-top strong{display:block;font-size:23px;line-height:1.2;font-weight:1000}.time-card{display:block;text-align:center;min-width:130px}.time-card strong{font-size:31px;font-variant-numeric:tabular-nums}.score-card{background:#fff9eee8;color:#163547;gap:12px}.score-card small{color:#73877b}.score-card>span{font-size:26px;color:#ba8641}.score-card button{border:0;background:transparent;color:#58766b;font-size:28px;border-left:1px solid #b2c2af;padding-left:13px}.objective{position:absolute;top:120px;left:50%;transform:translateX(-50%);background:#fff9eceb;border-radius:20px;padding:10px 18px;font-size:12px;color:#315e56;font-weight:800;white-space:nowrap;box-shadow:0 4px 14px #1c563a13}.objective button{background:#04a894;color:white;font-weight:800;border:0;border-radius:12px;margin-left:12px;padding:5px 10px}#crosshair{position:absolute;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 2px #143a3e88)}#crosshair i{position:absolute;width:8px;height:8px;border:2px solid #fff;border-radius:2px}#crosshair i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}#crosshair i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}#crosshair i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}#crosshair i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}#target-label{position:absolute;top:calc(50% + 24px);left:50%;transform:translateX(-50%);background:#153d46d9;color:white;border-radius:10px;font-size:10px;padding:6px 12px;display:none}#hit-flash{position:absolute;inset:0;box-shadow:inset 0 0 100px #ff796c;opacity:0;transition:opacity .2s}.keyboard{position:absolute;bottom:38px;left:42px;text-align:center}.keyboard span{display:inline-flex;width:32px;height:32px;border:2px solid #fff7dfaa;border-radius:7px;align-items:center;justify-content:center;color:#fff;background:#163e4359;font-size:11px;margin:2px;font-weight:900}.keyboard small{display:block;color:#fff;font-weight:800;font-size:9px;letter-spacing:2px;margin-top:7px}.action-area{position:absolute;right:30px;bottom:34px;display:flex;align-items:end;gap:12px}.action{width:86px;height:86px;border:3px solid #fff7de;border-radius:50%;color:white;background:#00a99be8;box-shadow:0 5px 0 #097d7950,0 7px 20px #173e3d33;display:flex;align-items:center;justify-content:center;flex-direction:column}.action b{font-size:29px;line-height:1}.action strong{font-size:11px;letter-spacing:1px;margin-top:4px}.action small{font-size:8px;margin-top:5px;opacity:.8}.action.tag{background:#ff6d5be8;width:100px;height:100px}.action.jump{background:#617475d9;width:68px;height:68px}.action.jump b{font-size:23px}.action.jump strong{font-size:9px}.action:disabled{cursor:default;opacity:.65}.bottom-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#fff;font-size:8px;font-weight:800;letter-spacing:1.5px;text-shadow:0 1px 4px #12352b;white-space:nowrap}.bottom-hint span{margin:0 10px;opacity:.5}#joystick{position:absolute;bottom:30px;left:30px;width:130px;height:130px;border:3px solid #fff8cf99;border-radius:50%;background:#284a4c44;pointer-events:auto;touch-action:none;display:none}#stick{width:52px;height:52px;position:absolute;left:36px;top:36px;background:#ffffffe6;border:3px solid white;border-radius:50%;box-shadow:0 4px 12px #173e4d33}.result-card{width:400px;text-align:center;margin:auto;border:3px solid white;border-radius:28px;padding:36px;background:#fffaf0f7;box-shadow:0 20px 100px #153b3d40}.result-icon{font-size:65px;color:#efb844;margin-bottom:14px}.result-card .eyebrow{justify-content:center}.result-card h2{font-size:30px;letter-spacing:-1px}.result-card p{font-size:13px}dialog{border:3px solid white;background:#fffaf1;border-radius:25px;max-width:460px;width:90vw;padding:30px;color:var(--navy);box-shadow:0 20px 100px #14393855}dialog::backdrop{background:#133b3a66;backdrop-filter:blur(4px)}dialog h2{font-size:29px;letter-spacing:-1px;line-height:1.15}dialog .round-button{float:right}dialog p{font-size:13px}.control-table{display:grid;grid-template-columns:1fr 2fr;gap:10px;font-size:12px;padding:15px;background:#efeedd;border-radius:12px}.control-table span{color:#6a7c6e}.muted{font-size:10px!important;color:#8a9184}#toast{position:absolute;z-index:10;bottom:160px;left:50%;transform:translateX(-50%);padding:13px 23px;background:#183e49ef;border:2px solid #f7f2d9;border-radius:30px;color:white;font-size:13px;text-align:center;max-width:85vw;box-shadow:0 8px 30px #163d3d33;pointer-events:none}#loading{position:absolute;inset:0;background:#fff9ec;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:#173f48}#loading strong{font-size:22px}#loading span{font-size:12px;color:#8a978a}.loading-mark{background:#00b29e;color:#fff;border-radius:20px;width:75px;height:75px;text-align:center;line-height:75px;font-size:55px;font-weight:1000;animation:bob 1s infinite alternate}@keyframes bob{to{transform:translateY(-8px) rotate(8deg)}}#offline{position:absolute;top:0;left:0;right:0;z-index:12;background:#e55c4e;color:white;padding:12px;text-align:center;font-size:12px}#offline button{background:white;border:0;border-radius:10px;color:#ae4637;margin-left:12px;padding:6px 12px}#fatal{position:absolute;inset:0;z-index:30;background:#fffaf0;padding:15vh 10vw}body.playing .topbar{display:none}@media(pointer:coarse){#joystick{display:block}.keyboard{display:none}.action small{display:none}.bottom-hint{bottom:12px}.action-area{bottom:28px}}@media(max-height:760px){.topbar{padding:18px 28px}.screen{padding-top:82px;padding-bottom:20px}.home-card{width:370px}h1{font-size:37px;margin:12px 0}.home-card>p{font-size:12px;margin-bottom:13px}.map-chip{margin:10px 0;padding:8px}.primary{padding:12px;margin-top:10px}.home-foot{margin-top:12px}.lobby-card{padding:20px}.team{min-height:120px}.teams{margin:12px 0}.roster{max-height:170px;overflow:auto}}@media(max-width:700px){.topbar{padding:18px 20px}.edition{display:none}.home-card{max-width:90vw;width:360px;background:#fff9eccf;padding:20px;border-radius:24px;backdrop-filter:blur(12px)}#home{background:#f9f5e93a;justify-content:center}.world-caption{display:none}.screen{padding:90px 15px 20px}.home-card h1{font-size:34px}.home-card .eyebrow{font-size:8px}.home-foot{gap:10px;font-size:8px}.hud-top{padding:12px;gap:5px}.role-card,.score-card,.time-card{padding:8px 10px;border-width:2px;border-radius:14px;gap:7px}.role-card>span{width:30px;height:30px;font-size:20px;line-height:25px}.hud-top small{font-size:6px;letter-spacing:1px}.hud-top strong{font-size:17px}.time-card{min-width:85px}.time-card strong{font-size:24px}.score-card>span{display:none}.score-card button{font-size:20px;padding-left:7px}.objective{top:85px;font-size:10px;max-width:95vw;text-align:center;white-space:normal;width:max-content}.action-area{gap:6px;right:13px}.action{width:64px;height:64px}.action.tag{width:78px;height:78px}.action.jump{width:54px;height:54px}.action b{font-size:24px}.action strong{font-size:9px}#joystick{width:110px;height:110px;left:18px;bottom:25px}#stick{left:27px;top:27px}.bottom-hint{font-size:6px;letter-spacing:.5px}.lobby-card{padding:15px;max-height:85vh;overflow:auto}.lobby-title h2{font-size:25px}.teams{gap:8px}.team h3{font-size:12px;padding:10px 7px}.roster{padding:6px;gap:5px}.player-tile{font-size:8px;padding:6px}.room-options{gap:5px}.room-options>div{font-size:9px;gap:5px;padding:8px 5px}.room-options span{font-size:18px}.host-controls{flex-wrap:wrap}.host-controls .primary{font-size:12px}.code-pill{font-size:11px}.code-pill b{font-size:16px}.result-card{padding:24px}.wide{display:none}}
.room-options>button{display:flex;align-items:center;justify-content:center;gap:12px;flex:1;padding:13px 9px;border:0;border-radius:13px;background:#f1eddf;color:#112443;font-size:12px}
@media(max-height:500px){.topbar{padding:10px 22px}.wordmark{font-size:11px}.wordmark b{font-size:21px}.screen{padding:64px 22px 10px}.home-card{max-height:calc(100vh - 75px);overflow:auto;padding:10px 16px}.home-card h1{font-size:29px}.home-card>p{font-size:11px}.lobby-card{max-height:calc(100vh - 75px);overflow:auto}.hud-top{padding:10px 18px}.role-card,.score-card,.time-card{padding:6px 12px;border-radius:13px}.hud-top strong{font-size:20px}.time-card strong{font-size:25px}.objective{top:85px;font-size:10px}.action-area{bottom:20px}.action{width:65px;height:65px}.action.tag{width:78px;height:78px}.action.jump{width:55px;height:55px}.keyboard{bottom:25px;left:25px}.keyboard span{width:24px;height:24px}.bottom-hint{bottom:9px;font-size:7px}.world-caption{bottom:12%}}

.player-tile img{display:block;width:65px;max-width:100%;height:65px;object-fit:cover;border-radius:9px}.roster{max-height:230px;overflow:auto}
@media(max-height:500px){.player-tile img{width:42px;height:42px}.roster{max-height:130px}}

#hide-curtain{position:absolute;inset:0;background:#e7eee0;display:flex;align-items:center;justify-content:center;text-align:center}#hide-curtain span{font-size:70px;color:#07a594}#hide-curtain h2{font-size:38px;letter-spacing:-1px;margin:12px 0}#hide-curtain p{font-size:14px}

#crosshair.confirmed i{border-color:#ffc554;transform:scale(1.35)}
.playing #scene{cursor:crosshair}

.mall-guide{position:absolute;left:30px;top:130px;background:#163840df;border:1px solid #c7ddca55;padding:9px;border-radius:13px;width:164px;color:#e5e5cb;box-shadow:0 5px 22px #122b3b44}.mall-guide span{display:block;font-size:11px;font-weight:900;letter-spacing:.6px;margin:0 0 7px}.mall-guide canvas{display:block;width:144px;height:108px;border-radius:5px;opacity:.85}.mall-guide small{font-size:6px;letter-spacing:.65px;display:block;margin-top:7px}@media(max-width:700px){.mall-guide{top:132px;left:12px;width:auto;padding:7px 10px}.mall-guide canvas,.mall-guide small{display:none}.mall-guide span{margin:0;font-size:9px}}

#practice-area{width:100%;padding:8px 12px;border-radius:9px;background:#fffaf0;border:1px solid #c4cebd;color:#31534e;font:inherit;font-size:12px}.home-card{max-height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:thin}
/* Store directory, round summary and compact play utilities. */
#home{background:linear-gradient(90deg,#fcf6e9fa 0%,#fcf6e9ee 35%,#254d4bab 72%);gap:6vw;justify-content:space-between}.home-card{flex-shrink:0}.store-plan{width:min(580px,48vw);padding:25px 28px;background:#faf5e8f5;border:1px solid #fff8e9;border-radius:24px;box-shadow:0 25px 80px #0c292c50;max-height:calc(100vh - 125px);overflow:auto}.plan-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.open-badge{font-size:8px;font-weight:900;letter-spacing:1px;background:#d9ead9;color:#397565;border-radius:20px;padding:8px}.store-plan h2{font-size:37px;letter-spacing:-1.3px;line-height:1.05;margin:20px 0 10px}.store-plan>p{font-size:11px;margin:0 0 18px}.store-plan svg{width:100%;display:block;border:8px solid #e8e5d7;border-radius:12px;background:#e8e5d7}.department-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.department-buttons button{border:1px solid #bccdc0;background:#fffaf0;border-radius:7px;font-size:9px;color:#496e61;padding:7px 9px}.department-buttons button[aria-pressed=true]{background:#174f4d;color:#fff3d1;border-color:#174f4d}.plan-legend{display:flex;gap:14px;font-size:8px;color:#6d8172;margin-top:15px}.plan-footer{border-top:1px solid #d5dbcb;margin-top:18px;padding-top:14px;display:flex;justify-content:space-between;gap:10px}.plan-footer b{font-size:9px;letter-spacing:1px}.plan-footer span{font-size:9px;color:#748275}.mall-guide{left:auto;right:30px;top:130px}.utility-bar{position:absolute;left:30px;top:130px;display:flex;flex-direction:column;gap:7px;max-width:185px}.utility-bar button,.voice-panel button{background:#153d46eb;border:1px solid #c1ddc565;color:#fff2d1;border-radius:10px;padding:10px;font-size:11px;font-weight:800;text-align:left}.utility-bar button small{display:block;font-size:8px;margin-top:5px;color:#a8cbbf}.utility-bar #power{border-color:#e3ba69;color:#ffe0a3}.utility-bar #finish-practice{font-size:9px;background:#365756b0;padding:7px 10px}.voice-panel{position:absolute;left:30px;top:330px;width:185px;display:flex;flex-wrap:wrap;gap:5px;pointer-events:auto}.voice-panel button{font-size:9px;padding:8px}.voice-panel small{font-size:9px;line-height:1.5;color:#f8e8bf;text-shadow:0 1px 3px #153a39}.result-card{width:470px;max-height:calc(100vh - 110px);overflow:auto;padding:22px}.result-icon{font-size:36px;margin-bottom:8px}.result-card h2{margin:12px 0;font-size:26px}#round-score{font-size:28px;font-weight:1000;color:#0a9b86;margin:15px 0}#leaderboard{max-height:185px;overflow:auto;background:#edf0df;border-radius:12px;padding:8px 14px}#leaderboard>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:11px;border-bottom:1px solid #d8dfce}#leaderboard b{color:#367c6a}#restart-note{font-size:9px;color:#6b8270;display:block;margin-top:10px}
@media(max-width:900px){#home{gap:3vw}.store-plan{padding:18px;width:45vw}.plan-heading{display:block}.open-badge{display:inline-block;margin-top:8px}.plan-legend,.plan-footer{flex-wrap:wrap;gap:7px}.store-plan h2{font-size:28px}.home-card{width:43vw;max-width:43vw}.home-card h1{font-size:34px}}
@media(max-width:700px){#home{overflow-y:auto;display:block;padding:90px 20px 25px}.home-card{width:100%;max-width:none;max-height:none;margin:0 auto 20px}.store-plan{width:100%;max-height:none;margin:auto}.utility-bar{left:12px;top:130px;max-width:135px}.utility-bar button{font-size:9px;padding:8px}.voice-panel{left:12px;top:315px;width:140px}.mall-guide{left:auto;right:12px;top:130px;max-width:130px}.mall-guide canvas{display:block;width:110px;height:82px;margin-top:6px}.mall-guide small{display:none}.bottom-hint{max-width:45vw;white-space:normal;text-align:center}.result-card{max-height:calc(100vh - 110px)}}
.personal-score{position:absolute;top:165px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;border:1px solid #ead6a477;background:#173d46db;color:#ffedbd;padding:8px 13px;border-radius:20px;box-shadow:0 3px 12px #102f3640}.personal-score strong{font-size:15px;font-variant-numeric:tabular-nums}.personal-score span{font-size:9px;color:#c6e0cb}#score-breakdown{font-size:10px;margin:6px 0 12px}@media(max-width:700px){.personal-score{top:113px;padding:6px 10px;width:max-content;max-width:95vw}.personal-score strong{font-size:12px}.personal-score span{font-size:8px}}

/* Town entry: map stays alongside the setup; mobile puts it before the form. */
#home{padding:95px 4vw 24px;gap:3vw;align-items:center;background:linear-gradient(90deg,#f8f3e9f5 0%,#f8f3e9ed 42%,#23474d9c 100%)}
.home-card{width:460px;max-width:44vw;max-height:calc(100vh - 120px);padding:4px 12px 12px 0}.home-card h1{font-size:36px;margin:10px 0;letter-spacing:-1.4px}.home-card>p{font-size:12px;margin-bottom:10px}.map-chip{margin:10px 0;padding:9px 12px}
.character-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 7px}.character-heading .field-label{margin:0;font-size:8px}.character-heading>span:last-child{font-size:9px;color:#52766a;font-weight:700}
.character-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.character-choice{position:relative;padding:0 0 7px;border:2px solid #d8dfcc;border-radius:12px;background:#edf0e4;overflow:hidden;color:#456358;font-weight:800;font-size:10px;transition:transform .15s,border-color .15s}.character-choice img{width:100%;height:98px;object-fit:cover;display:block}.character-choice[aria-pressed=true]{border-color:#00a58f;background:#007e73;color:#fff;box-shadow:0 3px 0 #007e7330}.character-choice[aria-pressed=true]:after{content:'✓';position:absolute;right:5px;top:5px;border-radius:50%;background:#00a58f;color:white;width:15px;height:15px;font-size:10px;line-height:15px}.character-choice:hover{transform:translateY(-2px)}
.store-plan{width:min(640px,49vw);max-height:calc(100vh - 120px);padding:22px;background:#f7f4e9f5}.store-plan h2{font-size:34px;margin:13px 0 8px}.store-plan>p{font-size:10px;margin-bottom:12px}.store-plan svg{max-height:42vh;border-width:5px}.department-buttons button{font-size:9px;padding:7px 8px}.plan-footer{margin-top:12px;padding-top:10px}
@media(max-height:800px) and (min-width:701px){.home-card .eyebrow{font-size:8px}.home-card h1{font-size:29px}.home-card>p{display:none}.home-foot{margin-top:10px}.field-label{margin-top:10px}.character-choice img{height:80px}.character-heading{margin-top:9px}.home-card .primary{padding:11px}.home-card .secondary{padding:9px}.map-chip{margin:7px 0}.home-card input{padding:8px 12px}.home-card .outline{padding:9px}.home-card .split{margin-bottom:8px}}
@media(max-width:700px){#home{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:82px 16px 22px;overflow:auto;gap:16px}.store-plan{order:0;width:100%;max-height:none;padding:17px;margin:0}.store-plan h2{font-size:25px;margin:8px 0}.store-plan h2 br{display:none}.store-plan svg{max-height:31vh}.store-plan .plan-footer,.store-plan .open-badge{display:none}.plan-heading{display:flex}.department-buttons{gap:4px;margin-top:8px}.department-buttons button{font-size:8px;padding:6px}.store-plan>p{font-size:9px}.plan-legend{font-size:7px;margin-top:9px}.home-card{order:1;width:100%;max-width:none;max-height:none;padding:17px;margin:0}.home-card h1{font-size:29px}.home-card>p,.home-card>.eyebrow{display:none}.character-choice img{height:90px}.character-heading>span:last-child{font-size:8px}.home-card .field-label{font-size:8px}}
@media(max-width:700px){.store-plan{flex:0 0 auto;overflow:visible}.home-card{flex:0 0 auto}}
/* First-person field layout: unobstructed centre, restrained surfaces and clear type. */
:root{--teal:#63857a;--navy:#e5e9e5;--coral:#b87959}
body{color:#e5e9e5;font-family:Arial,Helvetica,sans-serif}.wordmark{color:#e1e7df;text-shadow:0 2px 12px #10201e}.round-button{border:1px solid #788a7b;background:#25332ce0;color:#f0ead8}.edition{background:#25332ce0;color:#bccbbd}
#home{background:linear-gradient(90deg,#18241ff5 0%,#23312be6 45%,#19292373 100%);gap:4vw}.home-card{width:490px;max-width:47vw}.home-card h1{font-weight:700;font-size:35px;letter-spacing:-1px;color:#f1eee2}.home-card h1 em{color:#c3b58c}.home-card .eyebrow{color:#aeb9a7;letter-spacing:2px}.map-chip{background:#253a308c;border-color:#566755;border-radius:8px}.map-chip strong{color:#dfdfcd}.map-chip div>span,.home-foot{color:#a2b09d}.map-icon{background:#405144;color:#c6c9a9}.map-status{color:#c2c990}.field-label{color:#b1bba6}.home-card input,#practice-area{background:#1e2c25;color:#dfe2d5;border-color:#506251;border-radius:5px}.character-heading>span:last-child{color:#c2bca1}.character-choice{border-radius:7px;border-color:#58665c;background:#424c47;color:#d8ded5}.character-choice img{height:130px;object-fit:cover}.character-choice[aria-pressed=true]{background:#697b60;border-color:#d2c69b}.character-choice[aria-pressed=true]:after{background:#8a9b75;color:#10211a}.primary{background:#899973;border:1px solid #a1ac8b;border-bottom:3px solid #4b6348;box-shadow:0 4px 15px #06130f66;text-shadow:none;border-radius:7px;color:#17291c;font-weight:800}.primary small{color:#293e29}.secondary{color:#bdc8b3}.outline{background:#27382dbd;border-color:#64745c;border-radius:6px;color:#dae0cf}.join-row button{color:#b4c0a7}
.store-plan{background:#e2e2d6ed;border-color:#d1d5c1;border-radius:12px;color:#243c30;box-shadow:0 20px 60px #101c1d66}.store-plan h2{font-size:30px;font-weight:700;color:#263c30}.store-plan .eyebrow{color:#617465}.store-plan svg{border-color:#c3ccb8;background:#c3ccb8}.store-plan p{color:#4e6455}.open-badge{background:#c5cfba;color:#426047}
.hud-top{padding:18px 22px}.role-card,.score-card,.time-card{background:#1a2522bc;border:1px solid #e1e5d14d;border-radius:5px;box-shadow:none;padding:8px 12px;color:#ecefdf;gap:9px}.role-card>span,.score-card>span{display:none}.hud-top small,.score-card small{color:#bdc8ae;font-size:8px;letter-spacing:1.4px}.hud-top strong{font-size:19px;font-weight:600}.time-card{min-width:100px}.time-card strong{font-size:25px}.score-card button{color:#d7dfcb;border-left-color:#9fb09b50;font-size:22px}.objective{top:85px;background:transparent;color:#e5e7da;text-shadow:0 1px 4px #09160e;padding:3px;font-size:11px;box-shadow:none;border-radius:0}.personal-score{top:114px;background:#1c2d2699;border:0;border-radius:4px;padding:6px 10px;box-shadow:none}.personal-score strong{font-size:13px;color:#e2dbb3}.personal-score span{color:#b4c6af;font-size:8px}
.mall-guide{top:95px;right:22px;background:#172721bb;border:1px solid #bbc8b240;border-radius:5px;box-shadow:none;padding:8px;width:146px}.mall-guide canvas{width:128px;height:100px;opacity:.75}.mall-guide span{font-size:9px;font-weight:500;color:#d7dcc9}.utility-bar{left:22px;top:auto;bottom:115px;max-width:145px}.utility-bar button,.voice-panel button{background:#1c2b23c4;border:1px solid #c3ccb73b;border-radius:4px;padding:7px;color:#d9e2c9;font-size:9px}.utility-bar button small{font-size:7px;color:#9eb29b}.utility-bar #power{border-color:#b8af7359;color:#d8d0a4}.voice-panel{top:auto;bottom:270px;left:22px}.action-area{right:20px;bottom:24px;gap:8px}.action,.action.tag,.action.jump{border-radius:6px;background:#24382bb0;border:1px solid #b5c4a660;box-shadow:none;width:62px;height:54px}.action.tag{width:80px;background:#64734dcc}.action b{font-size:20px}.action strong{font-size:9px;letter-spacing:.8px}.action small{font-size:7px;margin-top:2px}.keyboard{left:22px;bottom:25px}.keyboard span{width:24px;height:24px;border:1px solid #c9d2b660;border-radius:3px;background:#1b2b2288;font-size:9px}.keyboard small{font-size:7px}.bottom-hint{font-size:7px;bottom:22px;color:#e1e7d2;letter-spacing:1px}#crosshair{width:14px;height:14px;filter:drop-shadow(0 1px 1px #111)}#crosshair i{width:5px;height:5px;border-width:1px;border-radius:0}
.lobby-card,.result-card,dialog{background:#e8e7dcf5;color:#263c33;border-color:#c7c9b4}.player-tile,.outline{color:#dce1cf}.player-tile{color:#244449}.code-pill{color:#233d30}#toast{background:#243429e8;border:1px solid #bfc7ab66;border-radius:5px;font-size:11px;padding:10px 16px}
@media(max-height:800px) and (min-width:701px){.character-choice img{height:112px}.home-card h1{font-size:31px}.home-card{max-height:calc(100vh - 115px)}}
@media(max-width:700px){#home{background:#1b2b24e8;padding-top:82px}.home-card{background:#21332bec;max-width:none;width:100%;border-radius:12px}.home-card h1{font-size:27px}.character-choice img{height:105px}.store-plan h2{font-size:24px}.hud-top{padding:10px}.hud-top small{font-size:6px}.hud-top strong{font-size:14px}.time-card{min-width:70px}.time-card strong{font-size:20px}.objective{top:72px;font-size:9px;max-width:65vw}.personal-score{top:96px;padding:5px 8px}.personal-score strong{font-size:11px}.personal-score span{font-size:7px}.mall-guide{top:134px;right:10px;max-width:110px;width:auto}.mall-guide canvas{width:92px;height:72px}.utility-bar{left:10px;top:auto;bottom:160px;max-width:125px}.voice-panel{left:10px;bottom:300px;top:auto}.action-area{right:10px;bottom:25px;gap:5px}.action,.action.jump{width:52px;height:52px}.action.tag{width:64px;height:55px}.bottom-hint{display:none}#joystick{width:100px;height:100px;bottom:26px;left:14px;border-width:1px;background:#1b2e2266}}

.home-card>p{color:#b8c3b8}.lobby-card .eyebrow,.result-card .eyebrow{color:#5a6d5e}

/* The world canvas belongs exclusively to gameplay, never the entry/lobby/results. */
#scene{visibility:hidden}body.playing #scene{visibility:visible}
body{background:#1d322f}#home{background:radial-gradient(ellipse at 80% 20%,#46635a,#213b35 60%,#192c28)}
#lobby,#results{background:linear-gradient(135deg,#294b43,#182e29)}

#prop-picker{width:min(640px,94vw);max-height:88vh;padding:24px;border:1px solid #a9b9a2;border-radius:16px;overflow:auto;box-shadow:0 24px 80px #081c24aa}
#prop-picker::backdrop{background:#102c29bb;backdrop-filter:blur(5px)}
#prop-picker h2{margin:10px 0;font-size:28px}#prop-picker p{font-size:13px;line-height:1.5}#prop-picker small{display:block;margin-top:14px;color:#52695c}
#prop-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}
#prop-options button{background:#f4f2e7;color:#26463c;border:2px solid #c3ceba;border-radius:10px;padding:12px 5px;font-size:11px;font-weight:bold;min-height:84px}
#prop-options button span{display:block;font-size:30px;margin-bottom:6px}#prop-options button[aria-pressed=true]{border-color:#168a78;background:#d3e4d6}#prop-options button:hover{border-color:#168a78}
#respawn-banner{position:fixed;z-index:12;left:50%;top:40%;transform:translate(-50%,-50%);padding:24px;border:1px solid #bbc8a1;background:#18352eef;border-radius:12px;text-align:center;color:#f1e9d1;pointer-events:none}
@media(max-width:600px){#prop-options{grid-template-columns:repeat(3,1fr)}#prop-picker{padding:16px}#prop-picker h2{font-size:23px}}

.mode-picker{display:flex;gap:8px;margin-top:12px}.mode-picker button{flex:1;padding:10px 6px;border:1px solid #65867b;border-radius:8px;background:#213e35;color:#cbd7c5;font-weight:bold;font-size:12px}.mode-picker button[aria-pressed=true]{background:#ced9ab;border-color:#e9efc8;color:#263725;box-shadow:0 2px 0 #101e1a}#mode-description{display:block!important;font-size:11px;margin:8px 0;color:#c2ccb7}
#combat-status{position:fixed;bottom:65px;left:50%;transform:translateX(-50%);padding:10px 14px;background:#132a24dd;border:1px solid #a0b88c66;border-radius:8px;min-width:220px;text-align:center;pointer-events:none}#combat-status strong{display:block;color:#dfefc1;font-size:15px}#combat-status progress{display:block;width:100%;height:8px;margin:6px 0;accent-color:#a6d471}#combat-status small{font-size:9px;color:#c5d2bd}
.zombie-portrait{display:grid;place-items:center;font-size:48px;background:#c0caa7;border-radius:12px;min-height:70px}
@media(max-width:700px){#combat-status{bottom:95px;min-width:160px;padding:7px}#combat-status small{font-size:7px}.mode-picker button{font-size:10px}}

#starting-team{margin:12px 0}#starting-team small{display:block;font-size:10px;color:#71807a;margin-top:5px}#starting-team select,#lobby-team{width:100%;padding:10px;border:1px solid #9caf9d;border-radius:8px;background:#fffaf0;color:#193a3d}#day-status{display:block;color:#e8d69b;margin-bottom:5px}#lobby-team-choice{margin:10px 0;font-size:12px}
