/* The Canadian-life shell (Milestone 2, flag life_scene). Everything is scoped under .game-shell so no legacy selector is edited.
   Tokens are SceneRuntime's (--sr-*). One frame: rail, status bar, the place filling the rest, the week rail; sheets open over the
   place and close back to it. The page never scrolls: sheets and decisions scroll inside themselves. */
.game-shell{--gs-rail:52px;--gs-week:60px;--gs-pad:clamp(10px,2vw,22px);position:fixed;inset:0;z-index:20;display:grid;grid-template-rows:var(--gs-rail) auto minmax(0,1fr) auto;height:100dvh;background:var(--sr-night,#111410);color:#f4eee2;font:15px/1.45 var(--sr-font,system-ui,sans-serif);overflow:hidden}
.game-shell *{box-sizing:border-box}
.game-shell :where(h1,h2,h3,p,small,b,span,button,li){font-family:var(--sr-font,system-ui,sans-serif);text-transform:none;letter-spacing:normal;text-shadow:none}
body:has(.game-shell){overflow:hidden;background:var(--sr-night,#111410)}
body:has(.game-shell)>footer{display:none}
main:has(.game-shell){max-width:none;padding:0;margin:0}
.game-shell button{cursor:pointer;touch-action:manipulation;width:auto;margin:0}
.game-shell>*{min-width:0;max-width:none;margin:0}
.game-shell :focus-visible{outline:3px solid var(--sr-focus,#80c8ec);outline-offset:2px}

/* rail */
.gs-rail{display:flex;align-items:center;gap:12px;padding:0 var(--gs-pad);background:#111410f2;border-bottom:1px solid #ffffff1f;z-index:12}
.gs-brand{flex:none;min-width:48px;min-height:44px;padding:0 10px;border:1px solid #e4bd6890;border-radius:8px;background:transparent;color:var(--sr-gold,#e4bd68);font:600 18px/1 var(--sr-font)!important;letter-spacing:.04em}
.gs-brand span{color:#9e9a8e;padding:0 2px}
.gs-where{min-width:0;margin:0;display:grid;gap:1px}.gs-where strong{font-size:14px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-where span{font-size:12px;color:#c9c2b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-tools{margin-left:auto;display:flex;gap:6px}
.gs-tools button{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;padding:0 12px;border:1px solid #ffffff2b;border-radius:8px;background:#24271f;color:#f1ebdd;font-size:13px;font-weight:600}
.gs-tools button i{font-style:normal;color:var(--sr-gold,#e4bd68);font-size:15px}
.gs-tools button:hover{background:#34382f}
.gs-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#d65a3a;color:#fff;font-size:11px;font-weight:700;line-height:19px;text-align:center}

/* status bar: SceneRuntime's life status, flattened into the frame */
.game-shell .sr-status{margin:0;border-radius:0;border-inline:0;border-top:0;max-width:none;z-index:11}

/* the stage holds whatever the place draws: the room fills it and the menus sit over it */
.gs-stage{position:relative;min-height:0;overflow:hidden;container-type:size;background:radial-gradient(ellipse at 50% 40%,#232720,#0d0f0c 78%)}
.gs-stage::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;transition:background .6s}
.game-shell[data-part=morning] .gs-stage::after{background:linear-gradient(180deg,#ffd58a22,transparent 40%)}
.game-shell[data-part=evening] .gs-stage::after{background:linear-gradient(180deg,#1b2a6c33,#0b0f2a40)}
.game-shell .hubwrap{display:block!important;position:relative;width:100%;height:100%;margin:0;padding:0;max-width:none}
.game-shell .hubwrap>.hubstage{position:absolute;inset:0;display:grid;place-items:center;width:auto!important;min-width:0;margin:0}
.game-shell .hubroom{--arn:.8;width:min(100cqw,calc(100cqh * var(--arn)))!important;max-width:none!important;height:auto;margin:0!important;border:0!important;box-shadow:0 12px 50px #000a!important;border-radius:6px;overflow:visible}
.game-shell .hubroom.map,.game-shell .hubroom.place:not(.placeroom){--arn:1.7778}
.game-shell .hall-wide .hubroom,.game-shell .hubwrap.hall-wide .hubroom{--arn:1.5}
.game-shell .hubroom .scene{width:100%!important;max-height:none!important;border-radius:6px}
.game-shell .hubside,.game-shell .community-tools,.game-shell .community-head{display:none!important}
.game-shell .settlement-note{display:none}
/* the menu of what you tapped */
.game-shell .hall-ctx{position:absolute;order:0;z-index:6;right:var(--gs-pad);top:var(--gs-pad);width:min(390px,calc(100% - 2 * var(--gs-pad)));max-height:calc(100% - 2 * var(--gs-pad));margin:0;padding:0;overflow:auto;border:1px solid #ffffff2e;border-radius:12px;background:#171a16f4;box-shadow:0 18px 50px #000c;backdrop-filter:blur(10px)}
.game-shell .hall-ctx::before{display:none!important}
.game-shell .hall-ctx .objmenu{margin:0;padding:12px;border:0;border-radius:12px;background:transparent;box-shadow:none;color:#f4eee2}
.game-shell .hall-ctx .objmenu h3,.game-shell .hall-ctx .objmenu .lbl{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase!important;color:#f0cf82}
.game-shell .hall-ctx .objmenu li button,.game-shell .hall-ctx button.primary{width:100%;min-height:48px;margin:5px 0;padding:9px 12px;border:1px solid #ffffff2b;border-radius:9px;background:#272a22;color:#f4eee2;text-align:left;font-size:14px;font-weight:600;box-shadow:none}
.game-shell .hall-ctx .objmenu li button:hover{background:#363a30;border-color:#e4bd6880}
.game-shell .hall-ctx .objmenu li button small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:#c4bdad}
.game-shell .hall-ctx .objmenu li button.closed{border-style:dashed;color:#a8a293;background:transparent}
.game-shell .hall-ctx .menux{width:44px;min-height:44px;border:1px solid #ffffff2b;border-radius:8px;background:transparent;color:#f4eee2;font-size:20px}
.game-shell .hall-ctx .roomline.refused{margin:0;padding:9px 12px;background:#3a1a14;border-left:3px solid #ff9b78;color:#ffd3c4;border-radius:12px 12px 0 0}
.game-shell .hall-ctx .talkpanel,.game-shell .hall-ctx .boardpanel,.game-shell .hall-ctx .phonepanel{margin:0;padding:12px;border:0;background:transparent;box-shadow:none;color:#f4eee2}
.game-shell .hall-ctx .phonepanel{display:none}
.game-shell .hall-ctx button .am,.game-shell .hall-ctx .mut,.game-shell .hall-ctx .objhead .mut{display:block;margin-top:2px;font-size:12px;font-weight:400;color:#d8d1c0!important}
.game-shell .hall-ctx .objhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.game-shell .hall-ctx .objhead b{font-size:15px;color:#fff}.game-shell .hall-ctx .objhead .mut{display:inline}
.game-shell .hall-ctx .trkmini{margin:6px 0;font-size:12px;color:#c4bdad}.game-shell .hall-ctx .trkmini .bar{height:6px;background:#ffffff1f;border-radius:3px;margin-top:4px;overflow:hidden}.game-shell .hall-ctx .trkmini .bar i{display:block;height:100%;background:#e4bd68}
.game-shell .hall-ctx details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase!important;color:#f0cf82}
/* the older markers inside the room use the pixel font: set them in the shell's face */
.game-shell :is(.momentmark,.whotag,.spotlbl,.pop,.said,.bubnext,.roomline){font-family:var(--sr-font)!important;text-transform:none;letter-spacing:normal}
/* hotspots: the same glowing gold dot pointer as the airport and home-country scenes (scene-runtime .sr-hotspot) */
.game-shell .hubroom .spot{background:transparent!important;border-radius:12px;animation:none}
.game-shell .hubroom .spot::before{content:"";position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:3px solid #fff0b2;border-radius:50%;background:radial-gradient(circle,#ffe093 0 4px,#282716 5px);box-shadow:0 0 0 5px #e4bd6852,0 0 22px 8px #f6ca4a99;animation:sr-target-pulse 1.8s ease-in-out infinite;transition:transform .15s,border-color .15s}
.game-shell .hubroom .spot:hover::before,.game-shell .hubroom .spot:focus-visible::before{transform:scale(1.12);border-color:#fff}
.game-shell .hubroom .spot:focus-visible{outline:none}.game-shell .hubroom .spot:focus-visible::before{outline:3px solid var(--sr-focus,#8fd0ff);outline-offset:3px}
.game-shell .hubroom .spot.on::before,.game-shell .hubroom .spot.busy::before{border-color:#a8d8a2;background:radial-gradient(circle,#c7efb7 0 4px,#1b3b29 5px);box-shadow:0 0 0 4px #a8d8a233;animation:none}
.game-shell .hubroom .spot.off::before{border-color:#8d97aa;background:radial-gradient(circle,#c3bcae 0 4px,#232428 5px);box-shadow:none;animation:none;opacity:.7}
.game-shell .hubroom .spotlbl{position:absolute;left:50%;top:50%;bottom:auto;transform:translate(-50%,-190%);max-width:220px;padding:6px 9px;border:1px solid #ffffff35;border-radius:6px;background:#121511ed;color:#fff8e8;font:600 11px/1.2 var(--sr-font)!important;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.game-shell .hubroom .spot:hover .spotlbl,.game-shell .hubroom .spot:focus-visible .spotlbl,.game-shell .hubroom .spot.moment .spotlbl{opacity:1;display:block}
.game-shell .hubroom .spot.on .spotlbl,.game-shell .hubroom .spot.busy .spotlbl{display:none}
@media(hover:none),(pointer:coarse),(max-width:700px){.game-shell .hubroom .spotlbl{opacity:1;font-size:9px;padding:4px 6px;background:#131713d9;border-color:#ffffff24}.game-shell .hubroom .spot::before{width:34px;height:34px;margin:-17px 0 0 -17px}}
/* the city map names its places without a hover: there is nothing else to say which pin is which */
.game-shell .hubroom.map .spotlbl{opacity:1;display:block;font-size:12px;padding:5px 9px}.game-shell .hubroom.map .spotlbl>*{margin-left:6px;font-weight:400;opacity:.85}.game-shell .hubroom.map .spot.on .spotlbl,.game-shell .hubroom.map .spot.busy .spotlbl{display:block}
@media(prefers-reduced-motion:reduce){.game-shell .hubroom .spot::before{animation:none}}

/* today chip: the one thing worth knowing, never a modal */
.gs-chip{position:absolute;z-index:5;left:var(--gs-pad);top:var(--gs-pad);max-width:min(360px,calc(100% - 2 * var(--gs-pad) - 8px));display:grid;gap:2px;padding:9px 13px;border:1px solid #ffffff2b;border-left:3px solid var(--sr-gold,#e4bd68);border-radius:9px;background:#131713d4;color:#fff8e9;text-align:left;backdrop-filter:blur(8px)}
.gs-chip small{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase!important;color:#f0cf82}.gs-chip span{font-size:13px;line-height:1.35}
.gs-chip.is-warning{border-left-color:#ff9b78}
.gs-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* week rail */
.gs-week{display:grid;grid-template-columns:minmax(150px,auto) minmax(0,1fr) auto;align-items:center;gap:14px;min-height:var(--gs-week);padding:8px var(--gs-pad) max(8px,env(safe-area-inset-bottom));background:#111410f2;border-top:1px solid #ffffff1f;z-index:12}
.gs-blocks p{margin:4px 0 0;font-size:12px;color:#d0c9b9}.gs-blocks b{color:#fff}
.gs-cells{display:flex;gap:3px}.gs-cells i{flex:1;min-width:10px;max-width:26px;height:8px;border-radius:2px;background:#ffffff1c}
.gs-cells .b-work{background:#d6a145}.gs-cells .b-study{background:#6aa8e0}.gs-cells .b-community{background:#e07a8a}.gs-cells .b-rest{background:#7cc08a}.gs-cells .b-errands{background:#b79ae0}
.gs-who.gs-face{padding:0;overflow:hidden;background:#1d2018}.gs-who.gs-face svg{width:100%;height:100%;display:block}
.gs-circle{list-style:none;margin:0;padding:0;display:grid;gap:10px}.gs-circle-row{display:flex;gap:12px;align-items:flex-start}.gs-circle-text{display:grid;gap:3px;min-width:0}.gs-circle-text>span{font-size:12px;color:#c9c2b2}
.gs-trust{display:flex;align-items:center;gap:8px}.gs-trust small{font-size:11px;color:#c4bdad}.gs-pips{display:inline-flex;gap:4px}.gs-pips i{width:9px;height:9px;border-radius:50%;background:#ffffff26}.gs-pips i.on{background:#e4bd68}
.gs-help{font-size:11px;color:#9fd2a0}.gs-want{justify-self:start;width:auto;max-width:100%;margin:2px 0 0;min-height:44px;padding:8px 12px;border:1px solid #ffffff2b;border-radius:9px;background:#272a22;color:#f4eee2;text-align:left;font-size:13px;font-weight:600}.gs-want:hover:not(:disabled){background:#363a30;border-color:#e4bd6880}.gs-want:disabled{opacity:.55;cursor:default}
.gs-want-said{margin:0 0 8px;padding:9px 12px;border-left:3px solid #e4bd68;background:#1d2018;border-radius:6px;color:#fff8e9}
.ef-paperdoc{margin:10px 0 4px;padding:8px 12px 10px;border:1px solid #ffffff2b;border-radius:8px;background:#f4ecd8;color:#2a241a}.ef-paperdoc h3{margin:0 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.ef-paperdoc-head,.ef-paperdoc-row{display:grid;grid-template-columns:minmax(70px,.8fr) 1.1fr 1.1fr;gap:8px;align-items:baseline}.ef-paperdoc-head{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6b5f48;padding-bottom:2px}
.ef-paperdoc-row{padding:3px 0;border-top:1px dotted #b9ab8c;font-size:12px}.ef-paperdoc-row .k{color:#6b5f48;font-size:12px}.ef-paperdoc-row .f{font-weight:700}.ef-paperdoc-row .t small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ef-paperdoc-row .t{position:relative}
.ef-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;padding-top:8px;border-top:1px dashed #b9ab8c}.ef-points>p{grid-column:1/-1;margin:0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b5f48}.ef-points .pchoice{margin-top:0;min-height:44px;padding:6px 8px;font-size:12px;justify-content:center;text-align:center;flex-wrap:wrap}
.ef-held-note{margin:0 0 8px;font-size:12px;color:#6b5f48}
.ef-choices .pchoice.is-held{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}.ef-choices .pchoice.is-held::after{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:#3f765833;pointer-events:none}
.ef-choices .pchoice.is-holding::after{animation:ef-held-fill .7s linear forwards}.ef-choices .pchoice.is-nudged::before{content:attr(data-hint);position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:#8a473a;background:#fffdf6;padding:2px 6px;border-radius:5px}
@keyframes ef-held-fill{from{width:0}to{width:100%}}
@media(prefers-reduced-motion:reduce){.ef-choices .pchoice.is-holding::after{animation:none;width:100%}}
.gs-due{display:grid;gap:3px;min-width:0;font-size:12px;color:#e8e1cf}.gs-due-line{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}.gs-due-dot{flex:none;width:9px;height:9px;border-radius:50%;background:#8fb98f}
.gs-due-line.is-near .gs-due-dot{background:#e4bd68}.gs-due-line.is-urgent .gs-due-dot{background:#ff9b78}.gs-due-line.is-urgent{color:#ffd3c4}
.gs-due-more{justify-self:start;width:auto;max-width:max-content;margin:0;padding:0;border:0;background:none;color:#cbbf9d;font:inherit;font-size:11px;text-decoration:underline;cursor:pointer}
.gs-warn{margin:0;display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:#ffb89e}.gs-warn i{flex:none;width:20px;height:20px;border-radius:50%;background:#d65a3a;color:#fff;font-style:normal;font-weight:700;text-align:center;line-height:20px}
.gs-actions{display:flex;gap:8px}.gs-actions button{min-height:44px;padding:0 16px;border:1px solid #ffffff2e;border-radius:9px;background:#272a22;color:#f4eee2;font-size:14px;font-weight:600}
.gs-actions .primary{background:#3f7658;border-color:#7fb391;color:#fff}.gs-actions .primary:hover{background:#4a8a68}.gs-actions button:disabled{opacity:.45}

/* sheets */
.gs-sheet{position:absolute;z-index:30;right:var(--gs-pad);top:calc(var(--gs-rail) + var(--gs-pad) + 38px);max-height:calc(100% - var(--gs-rail) - var(--gs-week) - 2 * var(--gs-pad) - 38px);width:min(430px,calc(100% - 2 * var(--gs-pad)));display:flex;flex-direction:column;border:1px solid #ffffff33;border-radius:14px;background:#171a16f8;box-shadow:0 22px 60px #000d;backdrop-filter:blur(12px);color:#f4eee2;overflow:hidden;animation:gs-in .16s ease-out}
.gs-sheet.is-wide{width:min(560px,calc(100% - 2 * var(--gs-pad)));right:50%;transform:translateX(50%)}
.gs-sheet>header{display:flex;align-items:flex-start;gap:10px;padding:14px 16px 8px}.gs-sheet>header>div{flex:1;min-width:0}
.gs-sheet h2{margin:0;font-size:18px;line-height:1.25}.gs-sheet small{display:block;margin-bottom:3px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase!important;color:#f0cf82}
.gs-x{flex:none;width:44px;height:44px;border:1px solid #ffffff2b;border-radius:9px;background:transparent;color:#f4eee2;font-size:22px;line-height:1}
.gs-sheet-body{flex:1;min-height:0;overflow:auto;padding:4px 16px 16px;display:grid;gap:12px;align-content:start}
.gs-sheet-body section{display:grid;gap:5px}.gs-sheet-body p,.gs-sheet-body ul{margin:0}.gs-sheet-body ul{padding-left:0;list-style:none;display:grid;gap:5px}.gs-sheet-body li{font-size:14px}
.gs-sheet .mut,.gs-sheet .mut span{color:#bdb6a6}
.gs-first{padding:10px 12px;border:1px solid #ffffff22;border-left:3px solid var(--sr-gold,#e4bd68);border-radius:9px;background:#ffffff0d}.gs-first.is-warning{border-left-color:#ff9b78}
.gs-sheet button.primary{min-height:46px;padding:0 16px;border:1px solid #7fb391;border-radius:9px;background:#3f7658;color:#fff;font-size:14px;font-weight:600}
.gs-sheet button.soft{min-height:44px;padding:0 14px;border:1px solid #ffffff2e;border-radius:9px;background:#272a22;color:#f4eee2;font-size:14px;font-weight:600}
.gs-sheet .linkb{background:none;border:0;color:#9fd0ee;text-decoration:underline;padding:6px 2px;min-height:44px;font-size:13px}
.gs-meter{height:8px;border-radius:4px;background:#ffffff1f;overflow:hidden}.gs-meter i{display:block;height:100%;background:linear-gradient(90deg,#7cc08a,#e4bd68);border-radius:4px}
.gs-rows{display:grid;gap:10px}.gs-rows li{display:grid;gap:5px;padding:9px 10px;border:1px solid #ffffff1f;border-radius:9px}.gs-rows li>div:first-child{display:flex;justify-content:space-between;gap:10px}.gs-rows b{font-size:14px}.gs-rows span{font-size:12px;color:#c9c2b2}.gs-rows small{margin:0;text-transform:none!important;letter-spacing:normal;font-weight:400;color:#bdb6a6}
.gs-rows li.is-done{opacity:.72}.gs-rows li.is-missed{border-color:#ff9b7866}.gs-rows li.is-near{border-color:#e4bd6899}
.gs-bank{display:grid;gap:12px}.gs-balance{padding:14px;border-radius:10px;background:#0e100d;border:1px solid #ffffff1f;display:grid;gap:2px}.gs-balance strong{font-size:32px;line-height:1.1;color:#cfeacb}.gs-balance strong.neg{color:#ffb89e}.gs-balance span{font-size:12px;color:#c9c2b2}
.gs-bank li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid #ffffff14}.gs-bank li b{font-variant-numeric:tabular-nums}
.gs-apps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.gs-apps button{position:relative;display:grid;justify-items:center;gap:6px;min-height:92px;padding:14px 8px;border:1px solid #ffffff2b;border-radius:12px;background:#272a22;color:#f4eee2;font-size:14px;font-weight:600}.gs-apps i{font-style:normal;font-size:26px;color:var(--sr-gold,#e4bd68)}
.gs-back{justify-self:start;min-height:44px;padding:0 10px;border:0;background:none;color:#9fd0ee;font-size:14px}
.gs-thread{display:grid;gap:8px}.gs-bubble{max-width:92%;padding:9px 12px;border-radius:12px;background:#2c3027;border:1px solid #ffffff1a}.gs-bubble p{margin:2px 0 0;font-size:14px}.gs-bubble b{font-size:12px;color:#f0cf82}.gs-bubble.is-mom{background:#2a3a30;border-color:#7fb39155}.gs-bubble.is-you{justify-self:end;background:#3a3526}
.gs-call{display:flex;align-items:center;gap:12px}.gs-call>div:last-child{display:grid}.gs-call span{font-size:12px;color:#c9c2b2}.gs-who{width:48px;height:48px;border-radius:50%;background:#2a3a30;border:2px solid #7fb391;display:grid;place-items:center;font-size:13px;font-weight:700}
.gs-replies{display:grid;gap:8px}.gs-replies button{min-height:48px;padding:10px 14px;border:1px solid #ffffff2e;border-radius:10px;background:#272a22;color:#f4eee2;font-size:14px;font-weight:600;text-align:left}.gs-replies button:hover:not(:disabled){background:#363a30;border-color:#e4bd6880}.gs-replies button:disabled{opacity:.45}
.gs-warn-line{padding:9px 12px;border-left:3px solid #ff9b78;background:#3a1a14;border-radius:6px;font-size:13px;color:#ffd3c4}
.gs-chips{display:flex;flex-wrap:wrap;gap:6px}.gs-chips span,.gs-delta li{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#ffffff14}.gs-chips .up,.gs-delta .up{color:#bfe7b5}.gs-chips .dn,.gs-delta .dn{color:#ffb89e}
.gs-delta{display:flex!important;flex-wrap:wrap;gap:8px!important}.gs-delta li{display:flex;gap:8px;padding:6px 12px}

.gs-hunt li{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #ffffff14}.gs-hunt i{flex:none;width:24px;height:24px;border-radius:50%;background:#ffffff14;font-style:normal;text-align:center;line-height:24px;color:#f0cf82}.gs-hunt .is-done i{background:#3f7658;color:#fff}.gs-hunt .is-later{opacity:.6}
.gs-people{display:grid;gap:10px}.gs-people li{display:flex;gap:12px;align-items:center;padding:9px 10px;border:1px solid #ffffff1f;border-radius:10px}.gs-people li>div:last-child{display:grid;gap:1px}.gs-people span{font-size:12px;color:#d0c9b9}.gs-people small{margin:0;text-transform:none!important;letter-spacing:normal;font-weight:400;color:#bdb6a6}
/* crafts: a paper panel, the same family as the story decision panel */
.craft{display:grid;gap:12px;padding:18px;background:var(--sr-paper,#f5f0e4);color:var(--sr-ink,#27271f);border-radius:14px;max-height:100%;overflow:auto}
.craft header{display:grid;gap:4px}.craft h2{margin:0;font-size:20px;color:var(--sr-ink,#27271f)}.craft header p{margin:0;font-size:14px;color:#4b4a3d}.craft-kicker{font-size:11px!important;font-weight:700;letter-spacing:.14em;text-transform:uppercase!important;color:#8a6a1e!important}
.craft-hint{padding:7px 10px;border-radius:7px;background:#e8dfc6;font-size:13px!important}.craft-cap{margin:0;font-size:14px;font-weight:600}
.craft fieldset{display:grid;gap:8px;margin:0;padding:0;border:0}.craft legend{margin-bottom:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase!important;color:#6a5a2c}
.craft label{display:flex;align-items:center;gap:12px;min-height:50px;padding:10px 12px;border:2px solid #d9cbaa;border-radius:10px;background:#fffaf0;color:var(--sr-ink,#27271f);font-size:14px;cursor:pointer}
.craft label:hover{border-color:#b9a36a}.craft label:has(input:checked){border-color:#3f7658;background:#e3efe4}
.game-shell .craft input[type=checkbox]{flex:none;appearance:none;-webkit-appearance:none;display:grid;place-items:center;width:24px;height:24px;min-width:24px;min-height:24px;margin:0;padding:0;border:2px solid #8a7a50;border-radius:6px;background:#fff}
.game-shell .craft input[type=checkbox]:checked{background:#3f7658;border-color:#2c5a41}.game-shell .craft input[type=checkbox]:checked::after{content:"\2713";color:#fff;font:700 15px/1 var(--sr-font)}
.craft button{min-height:48px;padding:0 16px;border:2px solid #b9a36a;border-radius:10px;background:#fff7e0;color:var(--sr-ink,#27271f);font-size:14px;font-weight:700}
.game-shell .craft button.primary{background:#3f7658;border-color:#2c5a41;color:#fff}.game-shell .craft button.soft{border-color:#d9cbaa;background:transparent;font-weight:600;color:var(--sr-ink,#27271f)}
.craft-reveal{display:grid;gap:6px;margin:0;padding:0;list-style:none}.craft-reveal li{display:grid;gap:2px;padding:8px 10px;border-radius:8px;background:#fffaf0;border-left:4px solid #b9a36a;font-size:13px}.craft-reveal li em{font-style:normal;color:#5a594a}
.craft-reveal li.is-right{border-left-color:#3f7658}.craft-reveal li.is-wrong{border-left-color:#c0502f}.craft-reveal li.is-picked{border-left-color:#3f7658}
.craft .gs-chips span{background:#e8dfc6}.craft .gs-chips .up{color:#245a38}.craft .gs-chips .dn{color:#a2391b}

/* a story moment plays over the place it happened in */
.gs-backdrop{position:absolute;inset:0;pointer-events:none;filter:saturate(.8) brightness(.55)}
.gs-moment{position:absolute;inset:0;z-index:8;overflow:auto;display:grid;place-items:center;padding:var(--gs-pad)}
.gs-moment>*{max-width:min(660px,100%)}
.gs-moment .card,.gs-moment .ev,.gs-moment .result{background:var(--sr-paper,#f5f0e4);color:var(--sr-ink,#27271f);border-radius:14px}

@keyframes gs-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.gs-sheet{animation:none}.gs-stage::after{transition:none}}
body.battery-saver .gs-sheet,body.no-fx .gs-sheet{animation:none}

/* phone and small windows: bottom sheets, a lighter rail */
@media(max-width:700px){
  .game-shell{--gs-rail:46px;--gs-week:58px}
  .gs-tools button span{display:none}.gs-tools button{padding:0 8px;min-width:38px}.gs-tools{gap:4px}.gs-rail{gap:6px}.gs-brand{min-width:44px;padding:0 6px;font-size:16px!important}.gs-where{min-width:72px}
  .gs-where span{font-size:11px}
  .gs-week{grid-template-columns:1fr auto;gap:8px}.gs-warn{display:none}
  .gs-due{grid-column:1/-1;order:-1;grid-template-columns:1fr auto;align-items:center}.gs-due-line:nth-of-type(n+2){display:none}
  .game-shell:has([data-obligations]){--gs-week:84px}
  .gs-actions button{padding:0 12px;font-size:13px}
  .gs-sheet,.gs-sheet.is-wide{left:0;right:0;top:auto;bottom:var(--gs-week);width:auto;transform:none;max-height:min(70%,560px);border-radius:16px 16px 0 0}
  .game-shell .hall-ctx{left:0;right:0;top:auto;bottom:0;width:auto;max-height:56%;border-radius:16px 16px 0 0}
  .gs-chip{max-width:calc(100% - 20px)}
  .game-shell .sr-status-primary{padding-inline:8px}
}
@media(max-width:340px){.gs-where span{display:none}}
@media(max-height:520px) and (orientation:landscape){.game-shell{--gs-rail:42px;--gs-week:50px}.gs-tools button span{display:none}.gs-blocks p{display:none}}

/* ---- milestone screens still drawn by the older markup (arc card, season recap, ending, your room, passport, goals): the same
   family as the shell. Only in Canadian life with life_scene on; the older stylesheet is not edited, its variables are re-pointed. ---- */
body.life-skin:not(:has(.game-shell)){--px:var(--sr-font);--display:var(--sr-font);--read:var(--sr-font);background:var(--sr-night,#111410);color:#f4eee2;overflow:hidden}
body.life-skin:not(:has(.game-shell))>footer{display:none}
body.life-skin:not(:has(.game-shell)) main{position:fixed;inset:0;max-width:none;margin:0;padding:clamp(16px,4vw,56px) clamp(16px,4vw,40px);overflow:auto;overscroll-behavior:contain;z-index:20;background:var(--sr-night,#111410)}
body.life-skin:not(:has(.game-shell)) main>*{max-width:720px;margin-inline:auto}
body.life-skin:not(:has(.game-shell)) :is(h1,h2,h3,button,.lbl,summary,.badge,.pill){font-family:var(--sr-font);text-transform:none;letter-spacing:normal;text-shadow:none}
body.life-skin:not(:has(.game-shell)) :is(h1,h2){font-weight:700;line-height:1.2}
body.life-skin:not(:has(.game-shell)) :is(.card,.arccard,.statbox,.recap,.ending,.lesson,.saveprompt,.box){border:1px solid #ffffff26;border-radius:12px;box-shadow:none;background:#171a16;color:#f4eee2}
body.life-skin:not(:has(.game-shell)) button{border:1px solid #ffffff2b;border-radius:10px;box-shadow:none;background:#272a22;color:#f4eee2;min-height:48px;font-size:15px;font-weight:600}
body.life-skin:not(:has(.game-shell)) button.primary{background:#3f7658;border-color:#7fb391;color:#fff}
body.life-skin:not(:has(.game-shell)) button:hover:not(:disabled){filter:brightness(1.12)}
body.life-skin:not(:has(.game-shell)) :focus-visible{outline:3px solid var(--sr-focus,#80c8ec);outline-offset:2px}
body.life-skin:not(:has(.game-shell)) :is(.rlines li,.roadstamp,.dhow li,.rcard,.stat){background:#1f231d;border:1px solid #ffffff1c;border-radius:10px;box-shadow:none;color:#f4eee2}
body.life-skin:not(:has(.game-shell)) .roadstamp{background:#1d2b22;border-color:#7fb39166}
body.life-skin:not(:has(.game-shell)) .rhook{color:#f0cf82;text-transform:none;font-weight:600}
body.life-skin:not(:has(.game-shell)) button.linkb{background:none;border:0;text-decoration:underline;color:#9fd0ee;min-height:44px;width:auto;font-weight:500}
body.life-skin:not(:has(.game-shell)) .lbl{color:#f0cf82;font-size:12px;font-weight:700}

/* story events met as a letter, a phone message, a person, a noticeboard or a bank notice (web/event-frame.js) */
.gs-moment:has(.ef){align-content:end;justify-items:center;gap:8px}
.game-shell:has(.ef) .gs-backdrop{filter:saturate(.9) brightness(.78)}
.ef{width:min(600px,100%);border-radius:16px;overflow:hidden;box-shadow:0 18px 50px #000a,0 0 0 1px #ffffff26;color:var(--ef-ink,#27271f);font-family:var(--sr-font);background:#f5f0e4}
.ef-head{display:flex;justify-content:space-between;gap:10px;padding:8px 14px;background:#171a16;color:#f0cf82;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase!important}
.ef-where{color:#c9c2b5;font-weight:600;letter-spacing:.04em;text-transform:none!important;text-align:right}
.ef-title{margin:0 0 6px;font-size:18px;line-height:1.25;color:inherit;font-family:var(--sr-font)!important;text-transform:none!important;letter-spacing:normal!important}
.ef-body p{margin:0 0 8px;font-size:15px;line-height:1.5}
.ef-body p:last-child{margin-bottom:0}
.ef-paper{padding:16px 18px;background:#fffdf6;background-image:repeating-linear-gradient(transparent 0 27px,#0000000a 27px 28px)}
.ef-letterhead{display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid #27271f33;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase!important;color:#5a5a4c}.ef-letterhead em{font-style:normal;font-weight:600;text-transform:none!important}
.ef-portal{background:#eef4f7;border-left:6px solid #2879a7}.ef-form{background:#fffef8;border:2px dashed #27271f44;margin:8px}
.ef-phone{padding:14px 16px;background:#1d2a2f;color:#eef6f6}
.ef-from{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ef-from i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#2186cf;color:#fff;font-style:normal;font-weight:700}.ef-from b{display:block;font-size:14px}.ef-from small{color:#9fb7bb;font-size:11px}
.ef-phone .ef-title{color:#fff}.ef-phone .ef-body{padding:11px 13px;border-radius:4px 14px 14px 14px;background:#e8f0f2;color:#1b282b}
.ef-talk .ef-speaker{padding:12px 16px 0;background:#2a2c25;color:#fff8e9}.ef-talk .evwho{margin:0}.ef-talk .evwho b{color:#fff}
.ef-talk .ef-title{padding:6px 16px 0;margin:0;background:#2a2c25;color:#f0cf82;font-size:13px;letter-spacing:.08em;text-transform:uppercase!important}
.ef-say{padding:6px 16px 14px;background:#2a2c25;color:#fff8e9}.ef-talk .ef-look{padding:0 16px 12px;background:#2a2c25}
.ef-pin{position:relative;margin:12px;padding:16px 16px 14px;border-radius:6px;background:#fffdf6;box-shadow:0 3px 8px #0004;transform:rotate(-.4deg)}.ef-board{background:#a87b4a}
.ef-pin i{position:absolute;left:50%;top:-7px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#d65a3a;box-shadow:0 2px 3px #0006}.ef-pin small{display:block;margin-bottom:4px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase!important;color:#7d6a45}
.ef-board{background:#a87b4a}
.ef-stmt{padding:0 0 14px;background:#fff}.ef-stmt .ef-title,.ef-stmt .ef-body,.ef-stmt .ef-look{margin-left:16px;margin-right:16px}.ef-stmt .ef-title{margin-top:12px}
.ef-bank{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 16px;background:#1f6b43;color:#fff;font-size:13px;font-weight:700}.ef-bank b{font-variant-numeric:tabular-nums;font-size:14px}
.ef-look{margin-top:10px}.ef-lookbtn{min-height:44px;padding:0 14px;border:1px dashed currentColor;border-radius:9px;background:transparent;color:inherit;font:600 13px var(--sr-font);cursor:pointer}
.ef-phone .ef-lookbtn{color:#9fd0ff}.ef-clues{margin:8px 0 0;padding:10px 12px 10px 28px;border-radius:9px;background:#fff7d6;color:#3d3a1e;font-size:13px;line-height:1.5}.ef-clues li+li{margin-top:3px}
.ef-choices{padding:10px 12px 12px;background:#f5f0e4;border-top:1px solid #0002;color:#27271f}.ef-choices .pchoice{margin-top:6px}.ef-choices .pchoice:first-child{margin-top:0}
@media(max-width:700px){.ef-body p{font-size:14px}.ef-title{font-size:16px}.gs-moment:has(.ef){padding:8px}}
.ef-ribbon{padding:5px 14px;background:#c0432b;color:#fff;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase!important}.ef-ribbon-aha{background:#2f7d4f}.ef-ribbon-moment{background:#6b4fa0}
.ef-choices .pchoice{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:10px 12px;border:2px solid #d9cbaa;border-radius:10px;background:#fffdf6;color:#27271f;font:600 14px/1.35 var(--sr-font)!important;text-align:left;text-transform:none!important;letter-spacing:normal!important;box-shadow:none;cursor:pointer}
.ef-choices .pchoice span{font:inherit!important;color:inherit;text-transform:none!important}.ef-choices .pchoice .key{flex:none;padding:1px 6px;border-radius:5px;background:#27271f14;color:#5a5a4c;font-size:11px!important}
.ef-choices .pchoice:hover{border-color:#3f7658;background:#f2f8f1}.ef-choices .pchoice:focus-visible{outline:3px solid #2879a7;outline-offset:2px}
.ef-choices .pchoice.islocked{opacity:.6;cursor:not-allowed}.ef-choices .pchoice .need{display:block;font-size:12px;color:#8a473a}.ef-choices .pchoice .seen{display:block;font-size:11px;color:#5a5a4c}
.ef-choices .pchoice.big::after{display:none}
/* first-use hints: small, one at a time, never over the week rail */
.gs-hint{position:absolute;z-index:6;left:50%;bottom:var(--gs-pad);transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 2 * var(--gs-pad));padding:8px 8px 8px 14px;border:1px solid #f0cf8299;border-radius:12px;background:#131713ee;color:#fff8e9;font-size:13px;line-height:1.4;box-shadow:0 8px 24px #0008}
.gs-hint button{flex:none;min-height:44px;padding:0 14px;border:1px solid #ffffff3a;border-radius:9px;background:#272a22;color:#f0cf82;font:700 13px var(--sr-font)}
.craft-first{margin:0 0 8px;padding:8px 10px;border-left:3px solid #e4bd68;background:#fff7d6;color:#3d3a1e;font-size:13px}
@media(max-width:700px){.gs-hint{flex-direction:column;align-items:stretch;width:calc(100% - 2 * var(--gs-pad));font-size:12px;padding:8px 10px;gap:6px}.gs-hint button{min-height:44px}}
/* a long message scrolls inside itself; the choices stay in reach under it */
.ef{display:flex;flex-direction:column;max-height:calc(100dvh - 190px)}.ef-main{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.ef-choices{flex:none;max-height:46dvh;overflow:auto}
@media(max-width:700px){.ef{max-height:calc(100dvh - 150px)}}
@media(max-width:700px){.ef-choices .pchoice .key{display:none}.ef-choices .pchoice{min-height:44px;padding:8px 10px}.ef-choices{padding:8px;max-height:40dvh}.ef-phone{padding:10px 12px}.ef-paper{padding:12px 14px}}
@media(max-width:700px){.ef{max-height:calc(100dvh - 205px)}}
/* on a short screen the last result shrinks to what you chose, so the new message keeps the room */
@media(max-height:700px){.gs-moment:has(.ef) .result.compact{padding:6px 10px}.gs-moment:has(.ef) .result.compact>:not(.who):not(.rsim){display:none}.gs-moment:has(.ef) .result.compact .who{margin:0;font-size:12px}.ef{max-height:calc(100dvh - 180px)}}

.gs-pin{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;padding:0;min-height:18px;text-align:left}.gs-where{min-width:0}.gs-objective{font-weight:600}

@media(max-width:600px){
 .game-shell:has(.gs-pin){--gs-rail:68px}
 .gs-rail:has(.gs-pin){position:relative;padding-bottom:22px}
 .gs-pin{position:absolute;left:10px;right:10px;bottom:2px;width:calc(100% - 20px);font-size:12px}
 .gs-pin .gs-pin-detail{display:none}
}

.gs-pin{border:0;background:transparent;color:#e8cf86;border-radius:0}

/* Milestone 4 (E1): the two new frame kinds, the quiet frame with its skip, and the result strip that replaces the older result card */
.ef-place{padding:14px 16px 12px;background:#fffdf6;color:#27271f}.ef-place .ef-speaker{margin-bottom:8px}.ef-place .ef-title{color:#27271f}
.ef-scene .ef-head{background:#1f3b34}
.ef-art{position:relative;height:clamp(84px,18dvh,150px);overflow:hidden;background:#171a16}.ef-art>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ef-art svg{display:block;width:100%;height:100%}
.ef-reflect{padding:14px 18px 12px;background:#fffdf6;color:#27271f}.ef-reflect .ef-speaker{margin-bottom:8px}.ef-moment .ef-head{background:#2b2540;color:#e8d6ff}
.ef-choices .skip{display:block;width:100%;min-height:44px;margin-top:8px;padding:8px 12px;border:1px dashed #5a5a4c;border-radius:10px;background:transparent;color:#5a5a4c;font:600 13px var(--sr-font)!important;text-align:center;text-transform:none!important;letter-spacing:normal!important;cursor:pointer}
.ef-choices .skip:hover{background:#27271f0d}.ef-choices .skip:focus-visible{outline:3px solid #2879a7;outline-offset:2px}
.ef-result{display:flex;gap:10px;width:min(600px,100%);padding:9px 12px;border-radius:14px;background:#171a16e6;color:#f5f0e4;font-family:var(--sr-font);box-shadow:0 8px 24px #0008,0 0 0 1px #ffffff1f}
.ef-result.good{border-left:5px solid #5fb37f}.ef-result.bad{border-left:5px solid #d6694f}.ef-result.quiet{border-left:5px solid #8a95a5}
.ef-rface{flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;background:#2a2c25}.ef-rface svg{width:100%;height:100%;display:block}
.ef-rbody{min-width:0;flex:1}.ef-rbody p{margin:0 0 4px;font-size:13px;line-height:1.4}.ef-rwho{font-weight:700;color:#f0cf82}.ef-rtext{color:#f5f0e4}
.ef-rlabel{font-size:11px!important;font-weight:800;letter-spacing:.1em;text-transform:uppercase!important;color:#e8d6ff}.ef-rmut{color:#c9c2b5;font-size:12px!important}
.ef-delta{display:flex;flex-wrap:wrap;gap:4px}.ef-delta .d{padding:2px 8px;border-radius:99px;background:#ffffff1a;font-size:12px;font-weight:700}.ef-delta .d.up{color:#8fe0ab}.ef-delta .d.dn{color:#ffa593}
.ef-tip{color:#cfe3ee;font-size:12px!important}.ef-chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}
.ef-rbtns{display:flex;gap:8px;margin-top:6px}.ef-rbtns button{min-height:44px;padding:0 14px;border:1px solid #f0cf82;border-radius:9px;background:transparent;color:#f0cf82;font:700 13px var(--sr-font);cursor:pointer}.ef-rbtns button:focus-visible{outline:3px solid #7cc4ff;outline-offset:2px}
.ef-result.compact{max-height:30dvh;overflow:auto}
@media(max-height:700px){.ef-result.compact .ef-delta,.ef-result.compact .ef-tip,.ef-result.compact .ef-rmut,.ef-result.compact .ef-rlabel{display:none}.ef-art{height:64px}}
@media(max-height:640px){.ef-art{height:44px}.ef-result.compact .ef-rtext{display:none}.ef-result.compact{padding:6px 10px}.ef-rface{width:32px;height:32px}.ef-head{padding:5px 12px}.ef-choices .skip{min-height:40px;margin-top:6px}}
body.calm .ef-result,body.calm .ef{animation:none!important;transition:none!important}

/* Milestone 4 (I2): the milestone card, small and optional, docked over the stage; the two buttons are the only things it asks for */
.ui-cel{position:absolute;left:12px;bottom:12px;z-index:7;display:flex;align-items:center;gap:10px;max-width:min(440px,calc(100% - 24px));padding:10px 12px;border-radius:14px;border:1px solid #e4bd68;background:#171a16f2;color:#f4eee2;box-shadow:0 10px 30px #000a;font-family:var(--sr-font)}
.ui-cel-mark{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e4bd68;color:#27271f;font-size:18px}
.ui-cel-text{min-width:0;flex:1}.ui-cel-text b{display:block;font-size:14px;color:#f0cf82}.ui-cel-text p{margin:2px 0 0;font-size:12px;line-height:1.35;color:#c9c2b5}
.ui-cel-btns{display:flex;gap:6px;flex:none}.ui-cel-btns button{min-height:44px;min-width:44px;padding:0 12px;border:1px solid #ffffff33;border-radius:10px;background:#272a22;color:#f4eee2;font:600 13px var(--sr-font);cursor:pointer}.ui-cel-btns button:focus-visible{outline:3px solid #8fd0ff;outline-offset:2px}
body:not(.calm) .ui-cel{animation:cel-in 420ms var(--ui-ease,ease-out)}@keyframes cel-in{from{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}
@media(max-width:700px){.ui-cel{left:8px;right:8px;max-width:none;bottom:8px}.ui-cel-text p{display:none}}

/* Interaction overhaul: in a conversation, the person's words are a speech bubble pointing up at them (the speaker row above); the rest is narration */
.ef-convo .ef-tell{margin:0 0 8px;color:#d8d0bd;font-size:.92em}
.ef-convo .ef-bubble{position:relative;margin:4px 0 10px;padding:9px 12px;border-radius:12px;background:#f5f0e4;color:#27271f;font-weight:600;line-height:1.4}
.ef-convo .ef-bubble::before{content:'';position:absolute;left:18px;top:-7px;border:7px solid transparent;border-bottom-color:#f5f0e4;border-top:0}

/* the speaker button every shell header carries, and the panel it opens (web/audio-panel.js) */
.snd-mini,.fd .fd-top button.snd-mini{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;flex:none;min-width:44px;min-height:44px;margin:0;padding:0 10px;border:1px solid #ffffff2b;border-radius:8px;background:#24271f;color:#f1ebdd;font:600 12px/1 var(--sr-font,system-ui,sans-serif);cursor:pointer}
.snd-mini i{font-style:normal;color:var(--sr-gold,#e4bd68);font-size:16px}.snd-mini.is-muted i{color:#ff8f7a}
.snd-mini:hover{background:#34382f}.snd-mini:focus-visible{outline:2px solid var(--sr-focus,#80c8ec);outline-offset:2px}
.sr-header .snd-mini{margin-left:auto}.sr-header .snd-mini + .sr-exit{margin-left:0!important}.sr-header .sr-menu-trigger + .snd-mini{margin-left:8px}.sr-header .sr-menu-trigger{margin-left:auto!important}
.gs-tools .snd-mini{background:#24271f}
.fd-top{display:flex;align-items:center;gap:12px}.fd .fd-top .snd-mini{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));background:#10131099;backdrop-filter:blur(6px);z-index:4}
@media(max-width:700px){.snd-mini span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.snd-mini{padding:0 8px}}
.aud-panel{position:fixed;z-index:80;top:calc(env(safe-area-inset-top,0px) + 66px);right:8px;width:min(300px,calc(100vw - 16px));padding:12px;border:1px solid #ffffff2e;border-radius:12px;background:#151813f5;color:#f5efdf;box-shadow:0 18px 50px #000a;backdrop-filter:blur(10px);font:13px/1.35 var(--sr-font,system-ui,sans-serif)}
.aud-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.aud-head strong{font-size:14px}
.aud-close{width:44px;flex:none;min-width:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:#f5efdf;font-size:22px;cursor:pointer}
.aud-rows{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.aud-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:6px 10px;border:1px solid #76715e;border-radius:8px;background:#292d25;color:#fff8e9;font:600 13px var(--sr-font,system-ui,sans-serif);cursor:pointer;text-align:left}
.aud-row b{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#7ee2a3}.aud-row[aria-pressed="false"] b{color:#ff8f7a}
.aud-row:focus-visible,.aud-close:focus-visible,.aud-vol input:focus-visible{outline:2px solid var(--sr-focus,#80c8ec);outline-offset:2px}
.aud-vol{display:grid;gap:4px;margin-top:10px;font-size:12px;color:#d3c9b2}.aud-vol input{width:100%;min-height:44px;accent-color:#e4bd68}
/* playing it by hand (hub rules 9): the Pin button in the Goals sheet was a full-width box, and the Home label on the map ran off the left edge */
.gs-rows li>button[data-gs-pin]{justify-self:start;width:auto;min-height:30px;padding:4px 14px;font:600 12px/1.2 var(--sr-font);border:1px solid #ffffff2e;border-radius:6px;background:transparent;color:#e8cf86}
.game-shell .hubroom.map .maploc[data-object="map_home"] .spotlbl{left:0;transform:translate(0,-190%)}
/* when someone is speaking in the room the line about what you did goes to the top, so the two never print over each other */
.hall-toast.top{bottom:auto;top:6px}
/* the glowing marker never sits on a face: a person's marker floats above their head, and an object someone is standing at gives its marker to them */
.game-shell .hubroom .spot.haswho::before{display:none}
.game-shell .hubroom .spot.hallwho::before{top:0;width:26px;height:26px;margin:-30px 0 0 -13px;border-width:2px;box-shadow:0 0 0 3px #e4bd6852,0 0 14px 5px #f6ca4a88}
.game-shell .hubroom .spot.hallwho.sel::before{display:none}
.game-shell .hubroom .spot.haswho .spotlbl{display:none}
