@font-face{font-family:Bungee;src:url('/fonts/bungee-400.woff2');font-display:swap}:root{color-scheme:dark;--cream:#fff0ce;--gold:#f4c45b;--mint:#83ddbd;--muted:#aac3c7}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 30% 0,#24424c,#0c1922 70%);color:var(--cream);font:15px/1.5 system-ui;min-height:100dvh}main{max-width:1220px;margin:auto;padding:16px 24px 32px}a{color:var(--mint)}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,.button-link{font:800 13px system-ui;color:var(--cream);cursor:pointer;min-height:44px;padding:10px 16px;border:1px solid #66858b;border-radius:10px;background:linear-gradient(#34555d,#1f3943);box-shadow:inset 0 1px #ffffff20,0 3px 0 #08151c;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s,filter .12s}button:hover,.button-link:hover{filter:brightness(1.15)}button:active,.button-link:active{transform:translateY(2px)}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{cursor:wait;opacity:.55}header{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #52777c44;padding-bottom:12px}.brand{font:12px Bungee;color:var(--cream);text-decoration:none}.chapter{color:var(--muted);font-size:10px;letter-spacing:2px;font-weight:800}.header-actions{display:flex;gap:8px}.header-actions button{min-width:66px}.title{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:18px 0 16px}.eyebrow,.speaker{font-size:10px;letter-spacing:1.7px;color:var(--gold);font-weight:850;margin:0 0 5px}h1{font:clamp(22px,3.2vw,38px)/1.15 Bungee;margin:0;letter-spacing:-.5px}.title-note{margin:7px 0 0;color:var(--muted);font-size:12px}.best{font-size:11px;color:var(--muted);white-space:nowrap}.best b{color:var(--gold);font-size:17px;display:block;text-align:right}.arcade-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:22px;align-items:start}.arcade-play{min-width:0;border:1px solid #63878a88;border-radius:18px;background:#10252e;overflow:hidden;box-shadow:0 18px 45px #0005}.world-hud{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:linear-gradient(#24414a,#173039);border-bottom:1px solid #6a8f8b55}.score{display:flex;align-items:baseline;gap:9px}.score b{font:26px/1 Bungee;color:var(--gold);font-variant-numeric:tabular-nums}.score span{font-size:10px;font-weight:850;letter-spacing:1.5px;color:var(--muted)}.progress{display:flex;gap:12px;align-items:center}.progress span{font-size:11px;font-weight:750;color:#d8e9dd}.progress span:first-child{color:var(--mint)}.stage{position:relative;isolation:isolate;background:#dcc7a1}.stage>canvas{display:block;width:100%;height:auto;touch-action:none;outline-offset:-5px}.tip{padding:10px 15px;background:#15333b;border-top:1px solid #668b8a66;color:#d6e7dd;font-size:12px;min-height:42px;display:flex;align-items:center;gap:10px}.tip:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}.paused{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:25px;background:linear-gradient(#10212a12,#10212a55);z-index:2}.paused[hidden]{display:none}.overlay-card{max-width:330px;padding:23px;border-radius:16px;border:1px solid #ffe7a699;background:linear-gradient(145deg,#163f42f5,#13262cf5);box-shadow:0 15px 45px #09131c77,inset 0 1px #ffffff18}.overlay-card b{display:block;font:22px/1.25 Bungee}.overlay-card p{font-size:12px;color:#c6ddd6;margin:12px 0 18px}.primary{background:linear-gradient(#ffe298,#e7b544);color:#273328;border-color:#ffe6a0;box-shadow:inset 0 1px #fff5d5,0 4px 0 #796328;min-height:49px}.overlay-card .primary{width:100%;font-size:15px}.playbar{display:flex;align-items:center;gap:15px;padding:13px 16px;background:linear-gradient(110deg,#203a43,#142a34)}.joystick{position:relative;flex:none;width:104px;height:104px;border-radius:50%;background:radial-gradient(circle at 44% 36%,#57717a,#17313c 65%,#0b202b);border:2px solid #8ba3a0;box-shadow:inset 0 4px 10px #09171d,0 3px 0 #07141e,0 0 0 5px #071b2680;touch-action:none;user-select:none}.knob{position:absolute;width:36px;height:36px;left:32px;top:32px;z-index:2;border-radius:50%;border:1px solid #f8df97;background:radial-gradient(circle at 36% 25%,#fff2c8,#e5b343 75%);box-shadow:0 4px 0 #786328,0 7px 9px #0006;pointer-events:none}.joystick button{position:absolute;min-height:0;width:36px;height:36px;padding:0;border:0;box-shadow:none;background:none;border-radius:50%;touch-action:none}.up{top:0;left:32px}.down{bottom:0;left:32px}.left{left:0;top:32px}.right{right:0;top:32px}.direction-icon{display:block;width:8px;height:8px;border-left:2px solid #d3e0d2;border-top:2px solid #d3e0d2;transform:rotate(45deg)}.down .direction-icon{transform:rotate(225deg)}.left .direction-icon{transform:rotate(-45deg)}.right .direction-icon{transform:rotate(135deg)}.comms{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.portrait{width:48px;height:48px;flex:none;overflow:hidden;border-radius:50%;background:#6f9c86;border:2px solid #a7d5bd}.portrait canvas{width:48px;height:48px;display:block}.comms p{margin:0}.comms #line{font-size:12px;color:#e0ecdd;line-height:1.4}.comms .speaker{font-size:9px;margin-bottom:4px}.hint{font-size:11px;color:var(--muted)}.control-hint{padding:0 16px 12px;margin:0;text-align:center;background:#152d36;font-size:10px;color:#a4c2c2}.neighborhood-panel{min-width:0;background:linear-gradient(140deg,#233f46,#152e37);border:1px solid #658b8680;border-radius:18px;overflow:hidden;box-shadow:0 16px 32px #0003}.neighborhood-moments{padding:16px 18px}.milestone-list{display:grid;gap:8px;margin:12px 0 15px}.milestone{display:flex;gap:10px;align-items:center;border:1px solid #67807844;border-radius:9px;padding:9px 10px;color:#adbfbb;font-size:11px}.milestone b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#1c3036;color:#a5bfbd;font-size:10px}.milestone.done{color:#e2f1de;border-color:#89d3b75c;background:#234b46}.milestone.done b{background:#78c9a6;color:#18352f}.neighborhood-moments .button-link{width:100%}.actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:18px 0 8px}#save{font-size:11px;color:var(--muted);text-align:center;margin:12px 0}details{max-width:750px;margin:18px auto;color:#96b4b9;font-size:11px}summary{cursor:pointer;text-align:center}details p{line-height:1.7}.care-orb{position:fixed;width:14px;height:14px;border-radius:50%;background:#b5ffd1;box-shadow:0 0 16px #7df0b7;border:2px solid #f8ffdf;pointer-events:none;z-index:20}dialog{max-width:600px;width:calc(100% - 28px);max-height:85dvh;color:var(--cream);background:linear-gradient(145deg,#23474b,#122731);border:1px solid #99cbb7;border-radius:18px;padding:25px;box-shadow:0 25px 80px #0008}dialog::backdrop{background:#07151edb}dialog h2{font:25px/1.2 Bungee}dialog p{font-size:14px}#close{float:right}.outreach-caption{padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:8px}.outreach-title{font:17px/1.2 Bungee;margin:0}.outreach-total{font-size:10px;white-space:nowrap;color:var(--mint);font-weight:850}.outreach-next{padding:13px 18px;margin:0;font-size:12px;color:#d4e2d9;background:#18343b}.outreach-progress{height:5px;background:#0d232d}.outreach-progress span{display:block;height:100%;background:linear-gradient(90deg,#61bb94,#a7e8b2);width:0;transition:width .5s}outreach-neighborhood{display:block}outreach-neighborhood canvas{display:block;width:100%;height:auto;background:#aab798}.achievement{animation:achievement .55s ease-out}@keyframes achievement{50%{box-shadow:0 0 30px #80dfad99}}@media(max-width:900px){main{max-width:760px;padding:12px 16px}.arcade-layout{grid-template-columns:1fr;gap:18px}.chapter{display:none}.neighborhood-panel{display:grid;grid-template-columns:1.3fr 1fr}.neighborhood-moments{padding:15px}.outreach-title{font-size:15px}.outreach-caption{padding:13px}.outreach-next{padding:12px 13px;font-size:11px}}@media(max-width:540px){main{padding:9px 10px 24px}.brand{font-size:10px}.header-actions button{min-width:58px;padding:8px 10px;font-size:11px}header{padding-bottom:9px;gap:6px}.title{margin:13px 0 12px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:22px}.title-note{font-size:10px;max-width:245px}.best{font-size:9px}.best b{font-size:15px}.world-hud{padding:10px 12px}.score b{font-size:23px}.progress{gap:8px}.progress span{font-size:9px}.score span{font-size:9px}.arcade-play{border-radius:13px}.tip{font-size:11px;padding:8px 11px;min-height:42px}.playbar{padding:12px;gap:12px}.portrait{display:none}.comms #line{font-size:11px}.joystick{width:100px;height:100px}.knob{left:30px;top:30px}.up,.down{left:30px}.left,.right{top:30px}.control-hint{font-size:9px;padding-bottom:10px}.overlay-card{max-width:260px;padding:17px}.overlay-card b{font-size:18px}.overlay-card p{font-size:11px}.neighborhood-panel{display:block}.neighborhood-moments{padding:13px 15px}.milestone-list{grid-template-columns:1fr 1fr;gap:6px}.milestone{padding:7px;font-size:10px;gap:6px}.outreach-title{font-size:16px}.outreach-caption{padding:14px 15px}.outreach-next{padding:12px 15px}.outreach-total{font-size:9px}dialog h2{font-size:21px}dialog p{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.outreach-caption-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.outreach-explore{min-height:44px;font-size:10px;padding:4px 12px;border-radius:7px}.outreach-expanded{width:min(1060px,calc(100% - 24px),calc((100dvh - 190px)*1.778));max-width:1060px;padding:0;border:1px solid #97d2b1;border-radius:17px;background:#14313b;color:#fff0ce;overflow:auto;max-height:92dvh;box-shadow:0 30px 100px #0009}.outreach-expanded::backdrop{background:#07151ee8;backdrop-filter:blur(5px)}.outreach-expanded-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;gap:15px}.outreach-expanded h2{margin:0;font:clamp(17px,2.5vw,25px)/1.2 Bungee,system-ui}.outreach-expanded canvas{width:100%;height:auto;display:block}.outreach-expanded-next{padding:15px 22px;margin:0;color:#d4e7d9;font-size:13px}.outreach-expanded-heading button{font:800 12px system-ui;min-height:44px;border:1px solid #91ac9c;border-radius:9px;color:#fff0ce;background:linear-gradient(#3c605b,#23413f);padding:10px 15px;cursor:pointer;flex:none}.outreach-expanded-heading .eyebrow{color:#f4c45b;font-size:10px;letter-spacing:1.5px;margin:0 0 5px}@media(max-width:540px){.outreach-expanded-heading{padding:13px;gap:10px}.outreach-expanded-heading button{max-width:95px;font-size:11px}.outreach-caption-actions{gap:4px}.outreach-explore{min-height:44px}.outreach-expanded-next{padding:13px;font-size:12px}}

.best small{display:block;margin-top:3px;font-size:10px;color:var(--mint)}@media(max-width:540px){.best small{font-size:8px}}

header{padding-top:env(safe-area-inset-top)}main{padding-bottom:max(24px,env(safe-area-inset-bottom))}.joystick.active{border-color:#ffe5a0;box-shadow:inset 0 4px 10px #09171d,0 3px 0 #07141e,0 0 0 5px #e7bb4330}.joystick.active .knob{filter:brightness(1.09)}

.paused[data-mode="pause"]{place-content:start center;padding-top:16px;background:#10212a12}.paused[data-mode="pause"] .overlay-card{padding:13px 18px;max-width:310px}.paused[data-mode="pause"] .overlay-card b{font-size:18px}.paused[data-mode="pause"] .overlay-card p{margin:6px 0 10px}.paused[data-mode="pause"] .primary{min-height:44px;font-size:13px}

.service-story{display:grid;grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);align-items:center;overflow:hidden;border:1px solid #7b9d8760;border-radius:12px;background:#19383e;margin:10px 0}.service-story canvas{display:block;width:100%;height:auto}.service-story>div{padding:10px 14px}.service-story b{color:#a8edc4;font-size:13px}.service-story p{color:#c5d8ce;font-size:11px;line-height:1.4;margin:4px 0 0}@media(max-width:600px){.service-story{grid-template-columns:1fr}.service-story canvas{max-height:105px;object-fit:contain;background:#e5dab4}.service-story>div{padding:8px 12px}.service-story b{font-size:12px}.service-story p{font-size:10px}}

.paused[data-mode="festival"]{place-content:end center;padding:0 12px 12px;background:transparent;pointer-events:none}.paused[data-mode="festival"] .overlay-card{pointer-events:auto;max-width:470px;padding:12px 20px;background:#153d39ee;border-color:#b6ecc7;box-shadow:0 5px 30px #15352b66}.paused[data-mode="festival"] .overlay-card b{font-size:18px}.paused[data-mode="festival"] .overlay-card p{font-size:11px;margin:5px 0 9px}@media(max-width:540px){.paused[data-mode="festival"] .overlay-card{padding:9px 12px}.paused[data-mode="festival"] .overlay-card b{font-size:14px}.paused[data-mode="festival"] .primary{min-height:44px;padding:8px 15px;font-size:12px}}

.arcade-play.festival .service-story,.arcade-play.festival .joystick,.arcade-play.festival .control-hint{display:none}.arcade-play.festival .playbar{padding:12px 16px}