:root{--color-letterbox:#111;--color-bg:#2a2a2a;--color-surface:#3a3a3a;--color-text:#ddd;--color-text-dim:#999;--color-accent:#888;--font-body:system-ui, sans-serif;--font-mono:ui-monospace, monospace;--space-1:calc(4px * var(--u));--space-2:calc(8px * var(--u));--space-3:calc(16px * var(--u));--font-size-body:calc(16px * var(--u));--font-size-small:calc(12px * var(--u));--z-overlay:100;--stage-w:100vw;--stage-h:100vh;--stage-x:0px;--stage-y:0px;--u:1;--stage-safe-top:env(safe-area-inset-top,0px);--stage-safe-right:env(safe-area-inset-right,0px);--stage-safe-bottom:env(safe-area-inset-bottom,0px);--stage-safe-left:env(safe-area-inset-left,0px);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}html,body{overscroll-behavior:none;background:var(--color-letterbox);height:100dvh;color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-body);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;margin:0;overflow:hidden}input,textarea{-webkit-user-select:text;user-select:text}[hidden]{display:none!important}#app{left:var(--stage-x);top:var(--stage-y);width:var(--stage-w);height:var(--stage-h);background:var(--color-bg);contain:strict;position:fixed;overflow:clip}.screen{box-sizing:border-box;padding:var(--stage-safe-top) var(--stage-safe-right) var(--stage-safe-bottom) var(--stage-safe-left);flex-direction:column;display:flex;position:absolute;inset:0}#overlay{z-index:var(--z-overlay);pointer-events:none;position:fixed;inset:0}#overlay>*{pointer-events:auto}.debug-button{top:calc(var(--safe-top) + 8px);right:calc(var(--safe-right) + 8px);min-width:44px;min-height:44px;position:fixed}.profiler-panel{top:calc(var(--safe-top) + 8px);left:calc(var(--safe-left) + 8px);font:11px/1.3 var(--font-mono);font-variant-numeric:tabular-nums;white-space:pre;color:#fff;background:#0009;margin:0;padding:4px 6px;position:fixed;pointer-events:none!important}.debug-dialog{max-width:min(90vw,360px);color:var(--color-text);background:var(--color-surface)}.debug-dialog[open]{flex-direction:column;display:flex;overflow:hidden}.debug-dialog__body{min-height:0;position:relative}.debug-dialog pre{font:11px/1.3 var(--font-mono);white-space:pre-wrap}.safe-probe{visibility:hidden;pointer-events:none;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);position:fixed}.screen[data-screen=loading]{background-color:var(--c-charcoal,#1e1b19);background-image:url(../assets/ui/bg_loading_108098872840.webp);background-position:top;background-repeat:no-repeat;background-size:100%}.loading{min-height:0;padding:0 var(--gutter,calc(12px * var(--u))) calc(24px * var(--u));flex-direction:column;flex:1;align-items:center;display:flex}.loading:before{content:"";flex:0 63%;min-height:0}.loading__body{width:min(calc(322px * var(--u)), 100%);flex-direction:column;flex:none;align-items:stretch;display:flex}.loading__caption{margin:0 0 calc(9px * var(--u));text-align:center;font:400 var(--fs-s,calc(13px * var(--u))) / 1 var(--font-ui,serif);letter-spacing:.32em;text-indent:.32em;color:var(--c-taupe,#8a7f73)}.loading-bar{--k:1.25;--loading-flare-core:#fff8df;--loading-flare-light:#ffd19a;--loading-flare-halo:#e6844a66;box-sizing:border-box;height:calc(16px * var(--k) * var(--u));border-style:solid;border-width:calc(4px * var(--k) * var(--u)) calc(9px * var(--k) * var(--u));border-image:url(../assets/ui/gauge_frame.webp) 8 18 fill / calc(4px * var(--k) * var(--u)) calc(9px * var(--k) * var(--u));position:relative}.loading-bar:after{content:"";z-index:1;inset:calc(-4px * var(--k) * var(--u)) calc(-9px * var(--k) * var(--u));pointer-events:none;border-style:solid;border-width:calc(4px * var(--k) * var(--u)) calc(9px * var(--k) * var(--u));border-image:url(../assets/ui/gauge_frame_rim.webp) 8 18 fill / calc(4px * var(--k) * var(--u)) calc(9px * var(--k) * var(--u));position:absolute}.loading-bar__groove,.loading-bar__track{inset:calc(-1px * var(--k) * var(--u)) calc(-5px * var(--k) * var(--u));position:absolute}.loading-bar__groove{border-radius:calc(5px * var(--k) * var(--u));overflow:hidden}.loading-bar__fill{transform-origin:0;will-change:transform;background:url(../assets/ui/gauge_fill_health.webp) 50%/100% 100% no-repeat;position:absolute;inset:0;transform:scaleX(0)}.loading-bar__track{z-index:2;pointer-events:none;mix-blend-mode:screen;mix-blend-mode:plus-lighter;will-change:transform;transform:translate(0)}.loading-bar__tip{width:calc(12px * var(--u));height:calc(34px * var(--u));margin:calc(-17px * var(--u)) 0 0 calc(-6px * var(--u));background:radial-gradient(ellipse at center, var(--loading-flare-core) 0% 12%, var(--loading-flare-light) 24%, var(--loading-flare-halo) 48%, transparent 72%);animation:1.6s ease-in-out infinite loading-flare;position:absolute;top:50%;left:0}@keyframes loading-flare{0%,to{opacity:.58;transform:scale(.85,.88)}50%{opacity:1;transform:scale(1.1,1.12)}}.screen[hidden] .loading-bar__tip{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.loading-bar__tip{opacity:.8;animation:none}}.loading__status{align-items:baseline;gap:calc(10px * var(--u));margin:calc(8px * var(--u)) 0 0;font:400 var(--fs-s,calc(13px * var(--u))) / 1.3 var(--font-ui,serif);color:var(--c-bone,#d2c9ba);display:flex}.loading__stage{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;flex:1;min-width:0;overflow:hidden}.loading__percent{text-align:right;font-variant-numeric:tabular-nums;min-width:4ch;color:var(--c-taupe,#8a7f73);flex:none}.loading-tip{box-sizing:border-box;column-gap:calc(12px * var(--u));min-height:calc(92px * var(--u));margin-top:calc(22px * var(--u));padding:calc(6px * var(--u)) calc(4px * var(--u));border-style:solid;border-width:calc(16px * var(--u));border-image:url(../assets/ui/panel_log.webp) 64 fill / calc(16px * var(--u));color:var(--c-ink,#2a2420);grid-template-columns:auto 1fr;align-items:start;display:grid}.loading-tip__label{align-items:center;gap:calc(7px * var(--u));font:600 var(--fs-m,calc(15px * var(--u))) / 1.35 var(--font-ui,serif);letter-spacing:.08em;display:inline-flex}.loading-tip__mark{width:calc(8px * var(--u));height:calc(8px * var(--u));background:var(--c-blood,#8a1c1c);transform:rotate(45deg)}.loading-tip__text{font:400 var(--fs-s,calc(13px * var(--u))) / 1.55 var(--font-body,serif);word-break:keep-all;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}.common-popup{box-sizing:border-box;width:calc(var(--stage-w) - var(--stage-safe-left) - var(--stage-safe-right) - 24px * var(--u));max-width:calc(366px * var(--u));max-height:calc(var(--stage-h) - var(--stage-safe-top) - var(--stage-safe-bottom) - 32px * var(--u));padding:calc(6px * var(--u));border:calc(24px * var(--u)) solid transparent;border-image:url(../assets/ui/common_popup_e950f8a14f40.webp) 64 fill / calc(24px * var(--u));color:var(--c-bone);font-family:var(--font-body);background:0 0;margin:auto;position:fixed;inset:0;overflow:hidden}.common-popup[open]{gap:calc(16px * var(--u));flex-direction:column;display:flex}.common-popup::backdrop{background:#0c0a09e0}.common-popup__header{justify-content:center;align-items:center;gap:calc(12px * var(--u));padding-bottom:calc(14px * var(--u));border-bottom:1px solid var(--c-greybrown);flex:none;display:flex}.common-popup__header h2{font:600 var(--fs-xl) / 1.3 var(--font-ui);letter-spacing:.12em;margin:0}.common-popup__body{min-height:0;padding-right:calc(8px * var(--u));font-size:var(--fs-s);overflow-wrap:anywhere;word-break:keep-all;flex:auto;line-height:1.65}.common-popup__body:focus-visible{outline:1px solid var(--c-taupe);outline-offset:-1px}.common-popup__footer{flex:none}.credits{padding-bottom:calc(2px * var(--u))}.credits>section{margin-top:calc(18px * var(--u))}.credits h3{margin:0 0 calc(6px * var(--u));color:var(--c-taupe);font:600 var(--fs-s) / 1.5 var(--font-ui);letter-spacing:.12em}.credits p,.credits dl{margin:0}.credits dt{margin-top:calc(12px * var(--u));font-weight:700}.credits dd{margin:calc(3px * var(--u)) 0 0}.credits__intro{text-align:center}.credits .credits__thanks{margin-top:calc(24px * var(--u));padding-top:calc(14px * var(--u));border-top:1px solid var(--c-greybrown);text-align:center;color:var(--c-taupe)}
