:root{--hud-h:64px;--dock-h:92px}@media (max-width:767px){:root{--hud-h:58px;--dock-h:78px}}.game-hud{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:8px;height:var(--hud-h);padding:0 10px;pointer-events:none;background:linear-gradient(180deg,rgba(10,24,48,.28),rgba(10,24,48,0))}@media (min-width:768px){.game-hud{padding:0 16px}}.game-hud>*{pointer-events:auto}.game-hud__side{display:flex;align-items:center;gap:6px;min-width:0}@media (min-width:768px){.game-hud__side{gap:8px}}.game-hud__center{position:absolute;left:50%;transform:translateX(-50%)}.hud-logo{display:inline-flex;align-items:center;height:42px;padding:0 14px}.hud-btn{display:inline-grid;place-items:center}.hud-btn,.hud-btn-wrap>a,.hud-btn-wrap>button,.hud-user>a,.hud-user>button{align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:#ffffff;color:#14171c;box-shadow:0 3px 0 rgba(10,30,60,.16),0 8px 18px -10px rgba(10,30,60,.6);transition:transform .12s ease}.hud-btn-wrap>a:hover,.hud-btn-wrap>button:hover,.hud-btn:hover{transform:translateY(-1px)}.hud-btn-wrap>a:active,.hud-btn-wrap>button:active,.hud-btn:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(10,30,60,.16)}.hud-user>a.lg\:inline-flex{width:auto;padding:0 14px}.dark .hud-btn,.dark .hud-btn-wrap>a,.dark .hud-btn-wrap>button,.dark .hud-user>a,.dark .hud-user>button{background:#16223d;color:#eef2fa}@media (max-width:639px){.hud-logo{height:44px}.hud-btn,.hud-btn-wrap>a,.hud-btn-wrap>button,.hud-user>a,.hud-user>button{width:44px;height:44px}.game-hud__side{gap:8px}}@media (max-width:339px){.game-hud__side{gap:4px}.game-root .game-hud.game-hud{padding-inline:8px}}@media (max-width:639px){.hud-btn{flex:none}}.game-dock{position:fixed;inset:auto 0 0 0;z-index:40;display:flex;justify-content:center;padding:0 8px calc(8px + env(safe-area-inset-bottom));pointer-events:none}.game-dock__tray{pointer-events:auto;display:flex;gap:4px;max-width:100%;padding:6px;overflow-x:auto;scrollbar-width:none;border-radius:26px;background:rgba(255,255,255,.94);box-shadow:0 4px 0 rgba(10,30,60,.14),0 18px 36px -14px rgba(10,30,60,.6),inset 0 1px 0 #ffffff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-dock__tray::-webkit-scrollbar{display:none}.dark .game-dock__tray{background:rgba(17,27,49,.94);box-shadow:0 4px 0 rgba(0,0,0,.45),0 18px 36px -14px rgba(0,0,0,.8)}.dock-btn{display:flex;flex-direction:column;align-items:center;gap:1px;flex:0 0 auto;width:74px;padding:5px 2px 6px;border-radius:20px;font-family:var(--font-game),var(--font-sans);font-size:13px;font-weight:600;color:var(--foreground);transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease}.dock-btn span{text-align:center;line-height:1.15;text-wrap:balance}.dock-btn img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(10,30,60,.28));transition:transform .18s ease}.dock-btn:hover img{transform:translateY(-3px) scale(1.06)}.dock-btn[data-active]{color:var(--district-fg);background:var(--district);transform:translateY(-8px);box-shadow:0 4px 0 color-mix(in srgb,var(--district) 60%,#000000),0 14px 22px -10px rgba(10,30,60,.6)}.dock-btn--hero:not([data-active]){color:#ffffff;background:linear-gradient(180deg,#ff5d51,#d11e1b);box-shadow:0 3px 0 #9e1411}@media (max-width:767px){.game-dock__tray{gap:4px;padding:4px;border-radius:22px}.dock-btn{width:calc((100vw - 52px) / 7);min-width:44px;font-size:10.5px}.dock-btn img{width:32px;height:32px}.dock-btn--hero{font-size:9px}.dock-btn[data-active]{transform:translateY(-5px)}}html[data-game-mode=scene],html[data-game-mode=scene] body{overflow:hidden;overscroll-behavior:none}.game-scene-slot{position:fixed;inset:0;z-index:1}.city-stage.scene-stage,.scene-root{position:absolute;inset:0}.city-stage.scene-stage{height:auto;touch-action:none}.scene-controls{bottom:calc(var(--dock-h) + 130px)}@media (min-width:768px){.scene-controls{top:50%;bottom:auto;transform:translateY(-50%)}}.scene-info{bottom:calc(var(--dock-h) + 14px)}.scene-weather{top:calc(var(--hud-h) + 6px);max-width:calc(100% - 1.5rem)}@media (max-width:767px){.scene-weather svg{width:26px;height:26px}}.game-backdrop{position:fixed;inset:0;z-index:0;filter:blur(2px) saturate(1.05);transform:scale(1.03)}.game-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,42,.35),rgba(8,20,42,.55))}.game-window-slot{position:relative;z-index:10;min-height:100svh;padding:calc(var(--hud-h) + 8px) 8px calc(var(--dock-h) + 18px)}@media (min-width:768px){.game-window-slot{padding:calc(var(--hud-h) + 14px) 20px calc(var(--dock-h) + 24px)}}.game-window{max-width:1240px;margin:0 auto;border-radius:28px;background:var(--background);overflow:clip;box-shadow:0 6px 0 rgba(10,30,60,.18),0 34px 70px -24px rgba(4,12,28,.85);animation:game-window-in .32s cubic-bezier(.2,.9,.3,1.15) both}@keyframes game-window-in{0%{opacity:.4;transform:translateY(14px) scale(.985)}}@media (prefers-reduced-motion:reduce){.game-window{animation:none}}.game-window__bar{position:sticky;top:var(--hud-h);z-index:20;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 12px;color:var(--district-fg);background:var(--district);box-shadow:inset 0 -3px 0 rgba(0,0,0,.12)}.game-window__icon{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(0,0,0,.3))}.game-window__place{font-family:var(--font-game),var(--font-sans);font-size:19px;font-weight:700;line-height:1.1}.game-window__role{font-size:12px;font-weight:600;opacity:.85}.game-window__close{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:999px;color:#ffffff;background:linear-gradient(180deg,#ff5d51,#d11e1b);box-shadow:0 3px 0 #9e1411,0 8px 14px -6px rgba(0,0,0,.5);transition:transform .12s ease}.game-window__close:active{transform:translateY(2px);box-shadow:0 1px 0 #9e1411}@media (max-width:639px){.game-window__close{width:44px;height:44px}}.game-window__body{min-height:50vh}[data-ui=game] [data-chat-launcher]{bottom:calc(var(--dock-h) + 14px)}html[data-game-mode=window] [data-chat-launcher]{transform:scale(.8);transform-origin:bottom right}@media (max-width:767px){html[data-game-mode=window] [data-chat-launcher]{right:8px;transform:scale(.6)}html[data-game-mode] .game-root [data-chat-launcher][data-open]{transform:none}}[data-ui=game] .chat-panel{bottom:calc(var(--dock-h) + 84px);max-height:calc(100dvh - var(--hud-h) - var(--dock-h) - 110px)}@media screen and (width >= 48rem){.game-root{--glass-backdrop:linear-gradient(color-mix(in srgb,var(--foundation-black) 30%,transparent),color-mix(in srgb,var(--foundation-black) 58%,transparent)),var(--foundation-black) url(/brand/foundation-backdrop.jpg) center /cover no-repeat}.game-root .game-backdrop{background:var(--glass-backdrop);filter:none;transform:none}.game-root .game-window-slot:before{content:"";position:fixed;inset:0;z-index:1;background:var(--glass-backdrop);clip-path:inset(0 0 calc(100% - var(--hud-h)) 0);pointer-events:none}.game-root .game-backdrop img,.game-root .game-backdrop:after{display:none}.game-root .game-window[data-glass]{border:1px solid color-mix(in srgb,white 16%,transparent);border-radius:28px;background:color-mix(in srgb,var(--foundation-black) 58%,transparent);box-shadow:0 30px 70px -42px black;color:white;--background:transparent;--foreground:white;--muted-foreground:color-mix(in srgb,white 76%,transparent);--border:color-mix(in srgb,white 22%,transparent)}.game-root .game-window[data-glass] .game-window__bar{border-bottom:1px solid color-mix(in srgb,white 12%,transparent);background:color-mix(in srgb,white 6%,var(--foundation-black));box-shadow:none;color:white}.game-root .game-window[data-glass] .game-window__place{color:white}.game-root .game-window[data-glass] .game-window__role{color:color-mix(in srgb,white 72%,transparent)}.game-root .game-window[data-glass] .game-window__close{border:1px solid color-mix(in srgb,white 26%,transparent);background:color-mix(in srgb,white 10%,transparent);box-shadow:none;color:white}.game-root .game-window[data-glass] :where(.bg-surface,.bg-surface-2,.card,.card-2,.bg-white,.bg-card,.bg-popover):not(.bg-brand-soft,.bg-success-soft,.bg-warning-soft,.bg-info-soft){--background:var(--sheet-background);--foreground:var(--sheet-foreground);--muted-foreground:var(--sheet-muted-foreground);--border:var(--sheet-border);color:var(--foreground)}.game-root .game-window[data-glass] :where(.bg-foreground):not(:where(.bg-surface,.bg-surface-2,.card,.card-2,.bg-white,.bg-card,.bg-popover) *){--background:var(--foundation-black)}}