:root{--bg: #05070f;--panel: rgba(12, 16, 30, .72);--panel-solid: #0e1324;--border: rgba(160, 180, 255, .14);--text: #e8ecf8;--muted: #98a2bd;--accent: #6ea8ff;--accent-2: #9b8cff;--good: #5ad08a;--warn: #e3b341;--bad: #e0663f;--track: rgba(255, 255, 255, .12);--chip: rgba(255, 255, 255, .06);--chip-active: rgba(110, 168, 255, .22);--radius: 14px;--font-scale: 1;--side-w: 320px;--top-h: 60px;--tl-h: 150px;--tabs-h: 56px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:dark}:root[data-theme=light]{--panel: rgba(246, 248, 253, .82);--panel-solid: #f5f7fc;--border: rgba(30, 40, 80, .14);--text: #141a2c;--muted: #56607a;--accent: #2f6fe0;--accent-2: #6a55e8;--track: rgba(20, 30, 60, .14);--chip: rgba(20, 30, 60, .06);--chip-active: rgba(47, 111, 224, .16);color-scheme:light}:root.large-text{--font-scale: 1.2;--side-w: 360px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:calc(15px * var(--font-scale));-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,select{font:inherit;color:inherit}#viewport{position:fixed;inset:0;touch-action:none}#viewport canvas{display:block;width:100%;height:100%;outline:none}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 10px 40px #00000040}.topbar{position:fixed;top:calc(12px + var(--safe-t));left:16px;right:16px;height:48px;display:flex;align-items:center;gap:12px;z-index:10;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.02em;white-space:nowrap;text-shadow:0 1px 6px rgba(0,0,0,.6);color:#fff}.brand img{border-radius:8px}.name-input{flex:0 1 240px;min-width:0;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--panel);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-weight:600;text-align:center}.name-input:focus{outline:2px solid var(--accent);outline-offset:1px}.actions{margin-left:auto;display:flex;gap:8px}.btn,.icon-btn{height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--panel);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:600;transition:background .15s,transform .1s}.icon-btn{width:40px;padding:0;justify-content:center;font-size:1.1em}.btn:hover,.icon-btn:hover{background:var(--chip-active)}.btn:active,.icon-btn:active{transform:scale(.96)}.btn.primary{background:var(--accent);border-color:transparent;color:#fff}.btn.ghost{background:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.side{position:fixed;top:calc(84px + var(--safe-t));bottom:calc(var(--tl-h) + 28px);width:var(--side-w);overflow-y:auto;padding:16px;z-index:5;scrollbar-width:thin;transition:opacity .25s,transform .25s}.side.left{left:16px}.side.right{right:16px}.panel-title{margin:0 0 12px;font-size:1.05em}.sheet-handle,.settings-section{display:none}.settings-section.active{display:block}.settings-section>h3{font-size:1.05em!important;text-transform:none!important;letter-spacing:0!important;color:var(--text)!important;margin:2px 0 14px!important}.icon{flex:none;display:block}.panel-tabs{display:flex;flex-direction:column;gap:4px;width:76px;flex:none;padding:10px 6px;border-right:1px solid var(--border);overflow-y:auto;scrollbar-width:none}.panel-tab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 2px 7px;border:none;border-radius:12px;background:none;cursor:pointer;color:var(--muted);min-width:0;transition:background .15s,color .15s}.panel-tab:hover{background:var(--chip);color:var(--text)}.panel-tab.active{background:var(--chip-active);color:var(--accent)}.panel-tab-label{font-size:.7em;font-weight:600;line-height:1.1;text-align:center;white-space:nowrap}.panel-tab.active .panel-tab-label{color:var(--text)}.panel-tab[hidden]{display:none}.panel-content{flex:1;min-width:0;padding:16px;overflow-y:auto;scrollbar-width:thin}.advanced{margin-top:6px;border-top:1px solid var(--border);padding-top:10px}.advanced>summary{cursor:pointer;list-style:none;font-size:.86em;font-weight:600;color:var(--muted);padding:4px 0 10px;display:flex;align-items:center;gap:6px}.advanced>summary::-webkit-details-marker{display:none}.advanced>summary .icon{transition:transform .15s}.advanced[open]>summary .icon{transform:rotate(90deg)}.advanced>summary:hover{color:var(--text)}.settings-section h3,#report-body h3{margin:0 0 10px;font-size:.78em;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.control{margin-bottom:14px}.control-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}.control-head label,.control-head .label{font-weight:600}.control-head output,.control-head .switch{margin-left:auto}.control-head output{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.92em;text-align:right}.control-inline{display:flex;align-items:center;justify-content:space-between;gap:12px}.info-btn{width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:var(--chip);font-size:.72em;font-weight:700;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none}.info-btn:hover{color:var(--text);background:var(--chip-active)}.info-pop{position:fixed;z-index:60;padding:12px 14px;border-radius:12px;background:var(--panel-solid);border:1px solid var(--border);box-shadow:0 12px 40px #0006;font-size:.92em;line-height:1.45}.info-pop p{margin:6px 0 0;color:var(--muted)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer;touch-action:pan-y;--fill: 50%}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent) 0 var(--fill),var(--track) var(--fill) 100%)}input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent) 0 var(--fill),var(--track) var(--fill) 100%)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-8px;border-radius:50%;background:#fff;border:3px solid var(--accent);box-shadow:0 2px 8px #00000059}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--chip);cursor:pointer;font-size:.92em}.chip.active{background:var(--chip-active);border-color:var(--accent);font-weight:600}.star-dot{width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.switch{-webkit-appearance:none;appearance:none;width:42px;height:24px;border-radius:999px;background:var(--track);position:relative;cursor:pointer;flex:none;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}input[type=color]{width:44px;height:30px;border:1px solid var(--border);border-radius:8px;background:none;padding:2px;cursor:pointer}select{height:34px;border-radius:8px;border:1px solid var(--border);background:var(--chip);padding:0 8px}select option{background:var(--panel-solid)}.ring-details{margin-top:10px;padding-left:10px;border-left:2px solid var(--border)}.hz-bar{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,#e0663f73,#6ea8ff59);margin:2px 0 6px}.hz-zone{position:absolute;top:-2px;bottom:-2px;border-radius:4px;background:var(--good);box-shadow:0 0 10px var(--good)}.hz-text{font-size:.82em;color:var(--muted)}.hz-status{display:inline-flex;align-items:center;gap:4px;vertical-align:-2px;font-weight:700}.hz-status.in{color:var(--good)}.hz-status.close{color:var(--bad)}.hz-status.far{color:var(--accent)}.report-hero{display:flex;align-items:center;gap:14px;padding:12px;margin-bottom:10px;border-radius:14px;background:var(--chip)}.gauge-wrap{position:relative;width:84px;height:84px;flex:none}.gauge{width:100%;height:100%}.gauge-bg{stroke:var(--track)}.gauge-arc{transition:stroke-dashoffset .5s ease,stroke .5s}.gauge-center{position:absolute;inset:0;display:grid;place-items:center}.gauge-value{font-size:1.75em;font-weight:800;font-variant-numeric:tabular-nums}.hero-text{flex:1;min-width:0}.level-label{font-size:1.1em;font-weight:800;margin:2px 0 10px}.eyebrow{font-size:.7em;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.esi-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.esi-text{font-variant-numeric:tabular-nums}.esi-bar{height:6px;border-radius:3px;background:var(--track);margin-top:4px;overflow:hidden}.esi-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--good));transition:width .5s}.stage-card{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center;padding:12px;margin-bottom:10px;border-radius:14px;border:1px solid var(--border)}.stage-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--chip-active);color:var(--accent)}.stage-icon[data-stage="0"],.stage-icon[data-stage="1"]{background:#e0663f2e;color:var(--bad)}.stage-icon[data-stage="3"],.stage-icon[data-stage="4"],.stage-icon[data-stage="5"]{background:#5ad08a29;color:var(--good)}.stage-icon[data-stage="6"]{background:#e3b3412e;color:var(--warn)}.stage-text{display:flex;flex-direction:column;gap:2px;min-width:0}.stage-desc{color:var(--muted);font-size:.88em;line-height:1.35}.stage-alert{grid-column:1 / -1;display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:8px 10px;border-radius:10px;background:#e3b3411f;color:var(--warn);font-size:.86em;line-height:1.4}.stage-alert .icon{margin-top:2px}.stage-alert[hidden]{display:none}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.stat-card{padding:10px 12px;border-radius:12px;background:var(--chip);min-width:0}.stat-head{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78em;font-weight:600}.stat-value{font-size:1.2em;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums}.stat-sub{color:var(--muted);font-size:.74em;margin-top:2px;min-height:1em}.stat-card[data-state=liquid] .stat-value{color:var(--accent)}.stat-card[data-state=frozen] .stat-value{color:#8fd3ff}.stat-card[data-state=vapor] .stat-value{color:var(--bad)}.report-section{border-top:1px solid var(--border)}.report-section>summary{display:flex;align-items:center;gap:8px;padding:12px 2px;cursor:pointer;list-style:none;font-weight:700}.report-section>summary::-webkit-details-marker{display:none}.report-section>summary>.icon:first-child{color:var(--accent)}.report-section.hazards>summary>.icon:first-child{color:var(--warn)}.summary-title{flex:1}.report-section>summary>.icon:last-child{color:var(--muted);transition:transform .15s}.report-section[open]>summary>.icon:last-child{transform:rotate(90deg)}.count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--chip-active);font-size:.78em;display:grid;place-items:center}.count:empty{display:none}.count.warn{background:#e3b34133;color:var(--warn)}.report-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.9em;line-height:1.45}.report-list li{display:flex;gap:8px;align-items:flex-start}.report-list li .icon{margin-top:3px;color:var(--good)}.hazards .report-list li .icon{color:var(--warn)}.report-list li.empty-item,.report-list li.empty-item .icon{color:var(--muted)}.hazards .report-list li.empty-item .icon{color:var(--good)}.story-text{margin:0 0 12px;line-height:1.6;font-style:italic;color:var(--muted);font-size:.92em}.timeline{position:fixed;left:16px;right:16px;bottom:calc(16px + var(--safe-b));height:var(--tl-h);display:flex;flex-direction:column;gap:8px;padding:10px 16px 8px;z-index:6}.tl-top{display:flex;align-items:center;gap:14px;min-width:0}.tl-controls{display:flex;align-items:center;gap:6px;flex:none}.play-btn{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 45%,transparent)}.tl-btn{height:32px;min-width:32px;padding:0 8px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);background:var(--chip);cursor:pointer;color:var(--text)}.tl-btn:hover{background:var(--chip-active)}.speed-btn{font-size:.82em;font-weight:700;font-variant-numeric:tabular-nums;min-width:44px}.tl-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.tl-stage-icon{width:36px;height:36px;flex:none;border-radius:10px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 18%,transparent)}.tl-info-text{min-width:0}.tl-info-line{display:flex;align-items:baseline;gap:10px}.tl-stage-name{white-space:nowrap}.tl-age{color:var(--muted);font-size:.86em;font-variant-numeric:tabular-nums;white-space:nowrap}.tl-stage-desc{display:block;color:var(--muted);font-size:.82em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-stage-desc.warn{color:var(--warn)}.tl-next{display:flex;align-items:center;gap:6px;flex:none;padding:5px 10px;border-radius:999px;background:var(--chip);color:var(--muted);font-size:.8em;white-space:nowrap}.tl-next:empty{display:none}.tl-next.blocked{color:var(--bad)}.tl-track{position:relative;height:46px;margin:0 2px}.tl-graph-wrap{position:absolute;left:0;right:0;top:0;height:30px}.tl-graph{width:100%;height:100%;display:block}.tl-graph-area{fill:color-mix(in srgb,var(--good) 22%,transparent)}.tl-graph-line{fill:none;stroke:var(--good);stroke-width:1.6}.tl-graph-label{position:absolute;left:4px;top:0;font-size:.64em;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;pointer-events:none}.tl-segs{position:absolute;left:0;right:0;top:32px;height:10px;display:flex;gap:3px}.tl-seg{position:relative;flex:1;padding:0;border:none;border-radius:5px;overflow:hidden;cursor:pointer;background:color-mix(in srgb,var(--c) 22%,var(--track))}.tl-seg-fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--c)}.tl-seg.blocked{background:repeating-linear-gradient(45deg,#e0663f8c 0 4px,#e0663f1f 4px 8px)}.tl-seg.blocked .tl-seg-fill{opacity:.35}.tl-seg.current{box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 60%,transparent)}.tl-range{position:absolute;left:-11px;right:-11px;width:calc(100% + 22px);top:26px;height:22px;margin:0;z-index:3;background:transparent}.tl-range::-webkit-slider-runnable-track{background:transparent!important}.tl-range::-moz-range-track{background:transparent!important}.tl-markers{position:absolute;left:0;right:0;top:0;height:30px;z-index:2;pointer-events:none}.tl-marker{position:absolute;top:4px;width:20px;height:20px;margin-left:-10px;border-radius:50%;display:grid;place-items:center;background:var(--bad);color:#fff;border:2px solid var(--panel-solid);pointer-events:auto}.tl-marker.iceAge{background:#4f9be8}.tl-marker.flare{background:#d9a92a}.tl-hover{position:absolute;bottom:calc(100% + 6px);transform:translate(-50%);padding:4px 8px;border-radius:8px;background:var(--panel-solid);border:1px solid var(--border);font-size:.76em;white-space:nowrap;pointer-events:none;z-index:4}.tl-hover[hidden]{display:none}.tl-labels{display:flex;gap:3px;margin:0 2px}.tl-label{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:2px 0;border:none;background:none;cursor:pointer;color:var(--muted);font-size:.74em;white-space:nowrap;overflow:hidden}.tl-label .icon{color:color-mix(in srgb,var(--c) 55%,var(--muted))}.tl-label span{overflow:hidden;text-overflow:ellipsis}.tl-label.reached{color:var(--text)}.tl-label.reached .icon{color:var(--c)}.tl-label.current{font-weight:800}.tl-label.blocked{color:var(--bad);opacity:.75}.tl-label.blocked span{text-decoration:line-through}.muted,.empty{color:var(--muted)}.score{font-weight:600;font-size:.9em}kbd{display:inline-block;min-width:26px;padding:2px 6px;border-radius:6px;border:1px solid var(--border);background:var(--chip);font-family:inherit;font-size:.85em;text-align:center}#toast{position:fixed;left:50%;top:calc(84px + var(--safe-t));transform:translate(-50%,-10px);z-index:70;padding:10px 16px;border-radius:999px;background:var(--panel-solid);border:1px solid var(--border);box-shadow:0 8px 30px #00000059;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 32px);text-align:center}#toast.show{opacity:1;transform:translate(-50%)}.mobile-tabs{display:none}body.ui-hidden .side,body.ui-hidden .timeline,body.ui-hidden .topbar,body.ui-hidden .mobile-tabs{opacity:0;pointer-events:none}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{transition:none!important;animation:none!important}@media(max-width:760px),(max-width:1100px)and (orientation:portrait){.brand span{display:none}.topbar{left:12px;right:12px;gap:8px}.name-input{flex:1 1 auto}.topbar .btn{padding:0 12px}.btn-label{display:none}.side{top:auto;left:0!important;right:0!important;width:auto;bottom:calc(var(--tabs-h) + var(--safe-b));max-height:min(58dvh,520px);border-radius:18px 18px 0 0;border-bottom:none;padding:6px 16px 16px;transform:translateY(calc(100% + var(--tabs-h) + 40px));opacity:0;pointer-events:none;z-index:8}body[data-sheet=settings] #settings,body[data-sheet=report] #report{transform:none;opacity:1;pointer-events:auto}.sheet-handle{display:block;width:100%;height:22px;border:none;background:none;cursor:pointer;position:relative}.sheet-handle:after{content:"";position:absolute;left:50%;top:8px;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:var(--track)}#report{padding-top:16px}.panel-tabs,.settings-section{display:none}.settings-section.active{display:block;margin:0;padding:0;border:none}.timeline{left:8px;right:8px;bottom:calc(var(--tabs-h) + 8px + var(--safe-b));height:auto;padding:8px 10px 6px;gap:6px}body[data-sheet=settings] .timeline,body[data-sheet=report] .timeline{opacity:0;pointer-events:none}.tl-top{gap:8px}.tl-top>.info-btn,.speed-btn,.tl-next,.tl-stage-desc,.tl-label span,.tl-graph-label{display:none}.tl-btn{height:30px;min-width:30px;padding:0 6px}.play-btn{width:38px;height:38px}.tl-stage-icon{width:30px;height:30px}.tl-info-line{flex-direction:column;gap:0}.tl-track{height:38px}.tl-graph-wrap{height:22px}.tl-segs{top:25px;height:9px}.tl-markers{height:22px}.tl-marker{top:1px;width:18px;height:18px;margin-left:-9px}.tl-range{top:18px}.mobile-tabs{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(var(--tabs-h) + var(--safe-b));padding:0 6px var(--safe-b);gap:2px;background:var(--panel-solid);border-top:1px solid var(--border);z-index:9;overflow-x:auto;scrollbar-width:none}.mobile-tabs::-webkit-scrollbar{display:none}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1 1 0;min-width:0;border:none;background:none;font-size:.74em;font-weight:600;line-height:1.15;color:var(--muted);padding:0 2px;cursor:pointer;border-top:2px solid transparent}.tab.active{color:var(--accent);border-top-color:var(--accent)}.tab span{color:var(--text);font-size:.92em}.tab:not(.active) span{color:var(--muted)}.modal{max-height:88dvh}.album-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media(min-width:761px)and (max-width:1200px)and (orientation:landscape){:root{--side-w: 280px}}.small{font-size:.85em}.btn.small{height:32px;font-size:.85em;margin-top:8px}.mode-switch{display:inline-flex;padding:3px;border-radius:999px;border:1px solid var(--border);background:var(--panel);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mode-btn{border:none;background:none;height:32px;padding:0 12px;border-radius:999px;cursor:pointer;font-weight:600;font-size:.88em;color:var(--muted);white-space:nowrap}.mode-btn.active{background:var(--accent);color:#fff}.mission-hud{position:fixed;top:calc(84px + var(--safe-t));left:50%;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:10px;max-width:min(560px,calc(100% - 24px));padding:8px 14px;cursor:pointer;text-align:left;border-radius:14px}.mission-hud[hidden]{display:none}.mission-hud>.icon{color:var(--accent)}.hud-body{display:flex;flex-direction:column;gap:2px;min-width:0}.hud-goals{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.82em;color:var(--muted)}.goal.ok{color:var(--good);font-weight:600}@media(min-width:761px)and (orientation:landscape),(min-width:1101px){body:has(.mission-hud:not([hidden])) .side{top:calc(146px + var(--safe-t))}}.control.is-locked>:not(.lock-note):not(.control-head){display:none}.control.is-locked>.control-head{opacity:.45;pointer-events:none}.control.is-locked{margin-bottom:8px}.lock-note{display:flex;align-items:center;gap:6px;font-size:.8em;color:var(--warn);margin-top:4px}.lock-note:empty{display:none}.chip.locked{opacity:.45}.chip.locked:after{content:" 🔒";font-size:.8em}.sub-details{margin-top:10px;padding-left:10px;border-left:2px solid var(--border)}.sub-details[hidden]{display:none}.sub-details .control{margin-bottom:8px}.disaster-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.disaster-btn{display:flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:var(--chip);cursor:pointer;font-size:.86em;text-align:left}.disaster-btn:hover{border-color:var(--bad);background:#e0663f24}.disaster-btn .icon{color:var(--bad)}.timeline-markers{position:absolute;left:11px;right:11px;top:4px;height:0;z-index:3;pointer-events:none}.marker{position:absolute;top:0;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--bad);border:2px solid var(--panel-solid)}.marker.iceAge{background:#8fd3ff}.marker.flare{background:#ffd84d}.celebrate{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.celebrate span{position:absolute;top:-10px;left:var(--x);width:8px;height:14px;border-radius:2px;background:hsl(var(--h) 85% 62%);animation:confetti var(--d) ease-in forwards}@keyframes confetti{to{transform:translateY(105vh) rotate(540deg);opacity:.4}}.photo-bar{position:fixed;left:50%;bottom:calc(20px + var(--safe-b));transform:translate(-50%);z-index:30;display:none;align-items:center;gap:10px;padding:8px 10px 8px 16px;border-radius:999px;max-width:calc(100% - 24px)}.photo-hint{color:var(--muted);font-size:.88em}body.photo-mode .photo-bar{display:flex}body.photo-mode .side,body.photo-mode .timeline,body.photo-mode .topbar,body.photo-mode .mobile-tabs,body.photo-mode .mission-hud{opacity:0;pointer-events:none}@media(max-width:760px),(max-width:1100px)and (orientation:portrait){.mode-switch{display:none}.mission-hud{top:calc(66px + var(--safe-t));font-size:.88em}.photo-hint{display:none}.mobile-tabs .tab{flex:1 0 auto;min-width:58px}}body.surface-mode .surface-bar{display:flex}body.surface-mode .side,body.surface-mode .timeline,body.surface-mode .topbar,body.surface-mode .mobile-tabs,body.surface-mode .mission-hud{opacity:0;pointer-events:none}body.surface-mode #viewport{cursor:grab}@media(min-width:761px)and (orientation:landscape),(min-width:1101px){.side.left{bottom:auto;width:calc(var(--side-w) + 60px);max-height:calc(100dvh - 112px - var(--tl-h) - var(--safe-t));padding:0;display:flex;overflow:hidden}#settings-body{display:flex;flex:1;min-height:0;min-width:0}.sheet-handle{display:none}}.topbar.panel{top:calc(12px + var(--safe-t));left:16px;right:16px;height:60px;padding:0 10px 0 14px;gap:14px;pointer-events:auto;border-radius:18px}.brand{text-shadow:none;color:var(--text);font-size:1.02em}.brand img{border-radius:9px}.topbar-divider{width:1px;height:28px;background:var(--border);flex:none}.name-field{display:flex;align-items:center;gap:8px;flex:0 1 280px;min-width:0;height:40px;padding:0 6px 0 12px;border-radius:12px;border:1px solid transparent;background:var(--chip);cursor:text;transition:border-color .15s,background .15s}.name-field:hover{border-color:var(--border)}.name-field:focus-within{border-color:var(--accent);background:var(--panel-solid)}.name-icon{color:var(--muted);display:grid}.name-field .name-input{flex:1;min-width:0;height:100%;padding:0;border:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;text-align:left;font-weight:700;font-size:1em;outline:none}.name-score{flex:none;min-width:34px;height:26px;padding:0 8px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:.85em;font-variant-numeric:tabular-nums;background:var(--track)}.name-score[data-level=great]{background:#5ad08a33;color:var(--good)}.name-score[data-level=good]{background:#4fb6d833;color:#4fb6d8}.name-score[data-level=fair]{background:#e3b34133;color:var(--warn)}.name-score[data-level=poor]{background:#e0663f2e;color:var(--bad)}.topbar .mode-switch{background:var(--chip);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;border-radius:12px;padding:3px}.topbar .mode-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:9px}.toolbar{display:flex;height:40px;border-radius:12px;background:var(--chip);overflow:hidden}.tool-btn{display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:none;background:none;cursor:pointer;font-weight:600;color:var(--text);transition:background .15s}.tool-btn+.tool-btn{border-left:1px solid var(--border)}.tool-btn:hover{background:var(--chip-active)}.tool-btn:active{transform:none;background:color-mix(in srgb,var(--accent) 30%,transparent)}.tool-btn .icon{color:var(--accent)}.menu-btn{width:40px;height:40px;border-radius:12px;background:var(--chip);border:1px solid transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.menu-btn[aria-expanded=true]{background:var(--accent);color:#fff}.menu-pop{position:fixed;z-index:40;width:320px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 100px);overflow-y:auto;padding:8px;background:var(--panel-solid);border-radius:16px;box-shadow:0 18px 50px #00000073;transform-origin:top right;animation:menu-in .14s ease-out}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}}.menu-group+.menu-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.menu-group-title{padding:6px 10px 4px;font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.menu-item{width:100%;display:flex;align-items:center;gap:12px;padding:8px 10px;border:none;background:none;border-radius:12px;cursor:pointer;text-align:left}.menu-item:hover,.menu-item:focus-visible{background:var(--chip-active);outline:none}.menu-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--chip);color:var(--accent)}.menu-item:hover .menu-icon,.menu-item:focus-visible .menu-icon{background:var(--accent);color:#fff}.menu-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.menu-label{font-weight:700}.menu-desc{font-size:.78em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-badge{flex:none;padding:2px 8px;border-radius:999px;font-size:.74em;font-weight:700;background:var(--chip);color:var(--muted);font-variant-numeric:tabular-nums}.menu-key{flex:none;min-width:22px;font-size:.72em;color:var(--muted)}@media(max-width:1180px){.brand span,.topbar-divider{display:none}}@media(max-width:980px){.tool-btn .btn-label{display:none}}@media(max-width:760px),(max-width:1100px)and (orientation:portrait){.topbar.panel{left:8px;right:8px;top:calc(8px + var(--safe-t));height:54px;padding:0 7px 0 9px;gap:8px;border-radius:16px}.name-field{flex:1 1 auto;height:38px;padding-left:10px}.toolbar{height:38px}.tool-btn{padding:0 10px}.menu-btn{width:38px;height:38px}.menu-pop{width:calc(100vw - 16px);right:8px!important}.mission-hud,#toast{top:calc(70px + var(--safe-t))}}@media(pointer:coarse){.menu-key{display:none}}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#02040c8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in .14s ease-out}.modal-backdrop.closing{animation:fade-out .14s ease-in forwards}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.modal{display:flex;flex-direction:column;width:min(640px,100%);max-height:min(84dvh,820px);padding:0;overflow:hidden;background:var(--panel-solid);border-radius:20px;box-shadow:0 30px 80px #00000080;animation:modal-in .18s cubic-bezier(.2,.8,.3,1)}.modal.sm{width:min(460px,100%)}.modal.lg{width:min(880px,100%)}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}.modal-head{display:flex;align-items:center;gap:12px;padding:16px 16px 14px 18px;border-bottom:1px solid var(--border)}.modal-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.modal-titles{flex:1;min-width:0}.modal-titles h2{margin:0;font-size:1.15em}.modal-sub{margin:2px 0 0;color:var(--muted);font-size:.85em}.modal-close{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:10px;border:none;background:var(--chip);color:var(--muted);cursor:pointer}.modal-close:hover{background:var(--chip-active);color:var(--text)}.modal-body{padding:16px 18px 20px;overflow-y:auto;scrollbar-width:thin}.progress-pill{display:flex;align-items:center;gap:8px;flex:none;padding:6px 10px;border-radius:999px;background:var(--chip);font-size:.82em}.progress-pill-bar{width:60px;height:6px;border-radius:3px;background:var(--track);overflow:hidden}.progress-pill-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--good))}.count-chip{flex:none;padding:6px 10px;border-radius:999px;background:var(--chip);font-size:.82em;font-weight:600}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.72em;font-weight:700;background:var(--chip)}.tag.accent{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.tag.good{background:#5ad08a2e;color:var(--good)}.btn.block{width:100%;justify-content:center}.btn .icon{margin-left:-2px}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;text-align:center}.empty-state p{margin:0;color:var(--muted);max-width:320px}.empty-icon{width:60px;height:60px;display:grid;place-items:center;border-radius:18px;background:var(--chip);color:var(--muted);margin-bottom:6px}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.album-card{display:flex;flex-direction:column;gap:10px;padding:8px 8px 10px;border-radius:16px;background:var(--chip);border:1px solid var(--border)}.album-thumb{position:relative;padding:0;border:none;border-radius:12px;overflow:hidden;cursor:pointer;background:#000}.album-thumb img{width:100%;aspect-ratio:1;object-fit:cover;display:block;transition:transform .25s}.album-thumb:hover img{transform:scale(1.05)}.score-badge{position:absolute;top:8px;right:8px;min-width:32px;padding:3px 8px;border-radius:8px;font-weight:800;font-size:.82em;text-align:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#00000073;color:#fff}.score-badge[data-level=great]{color:#7be6a5}.score-badge[data-level=good]{color:#7dd3ef}.score-badge[data-level=fair]{color:#f0c869}.score-badge[data-level=poor]{color:#f08a66}.album-body{display:flex;align-items:center;gap:8px;padding:0 4px}.album-text{flex:1;min-width:0;display:flex;flex-direction:column}.album-text strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-icon-btn{height:32px;min-width:32px;padding:0 8px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;font-size:.78em;font-weight:700}.card-icon-btn.danger:hover,.card-icon-btn.armed{color:#fff;background:var(--bad);border-color:var(--bad)}.options{display:flex;flex-direction:column;gap:18px}.opt-group h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:.74em;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.opt-group{display:flex;flex-direction:column;gap:6px}.opt-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--chip)}.opt-row.stacked{flex-wrap:wrap}.opt-row.stacked .segmented{width:100%;margin-left:48px}.opt-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--chip-active);color:var(--accent)}.opt-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.opt-text label,.opt-text strong{font-weight:700;cursor:pointer}.opt-text span{color:var(--muted);font-size:.8em}.segmented{display:inline-flex;padding:3px;border-radius:10px;background:var(--panel-solid);border:1px solid var(--border);gap:2px}.segmented button{flex:1;height:30px;padding:0 12px;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--muted);font-weight:600;font-size:.86em;white-space:nowrap}.segmented button.active{background:var(--accent);color:#fff}.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}.shortcut{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--chip);font-size:.86em}.shortcut kbd{min-width:52px}.mission-list{display:flex;flex-direction:column;gap:10px}.mission{display:flex;align-items:flex-start;gap:14px;padding:14px;border-radius:14px;border:1px solid var(--border);background:var(--chip)}.mission>.btn{align-self:center}.mission.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.mission.locked{opacity:.5}.mission-num{width:36px;height:36px;flex:none;border-radius:12px;display:grid;place-items:center;font-weight:800;background:var(--chip-active);color:var(--accent)}.mission.done .mission-num{background:var(--good);color:#0b1a12}.mission-body{flex:1;min-width:0}.mission-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mission-body p{margin:4px 0 0;line-height:1.45}.unlock-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.chip-mini{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);font-size:.74em;color:var(--muted)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:16px 12px;border-radius:16px;border:1px solid var(--border);background:var(--chip)}.badge-img{position:relative}.badge img{width:96px;height:96px;display:block;filter:grayscale(1) brightness(.45);opacity:.7}.badge-lock{position:absolute;inset:0;display:grid;place-items:center;color:var(--text)}.badge.earned{border-color:color-mix(in srgb,var(--warn) 60%,transparent);background:radial-gradient(circle at 50% 25%,rgba(227,179,65,.14),var(--chip) 70%)}.badge.earned img{filter:drop-shadow(0 6px 14px rgba(227,179,65,.35));opacity:1}.encyclopedia{display:flex;flex-direction:column;gap:12px}.encyclopedia>p{margin:0}.search-field{display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;border-radius:12px;background:var(--chip);border:1px solid var(--border);color:var(--muted)}.search-field:focus-within{border-color:var(--accent)}.search-input{flex:1;height:100%;border:none;background:none;outline:none;color:var(--text)}.entry-list{display:flex;flex-direction:column;gap:6px}.entry{border-radius:12px;background:var(--chip);border:1px solid transparent}.entry[open]{border-color:var(--border)}.entry summary{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;font-weight:700}.entry summary::-webkit-details-marker{display:none}.entry summary>span{flex:1}.entry summary .icon:first-child{color:var(--accent)}.entry summary .icon:last-child{color:var(--muted);transition:transform .15s}.entry[open] summary .icon:last-child{transform:rotate(90deg)}.entry p{margin:0;padding:0 14px 14px 38px;line-height:1.55;color:var(--muted)}.entry.locked{display:flex;align-items:center;gap:10px;padding:11px 12px;color:var(--muted);font-style:italic;opacity:.7}.real-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.real-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;border:1px solid var(--border);background:var(--chip)}.real-card.seen{border-color:color-mix(in srgb,var(--good) 45%,transparent)}.real-head{display:flex;align-items:center;gap:10px}.real-head strong{flex:1;font-size:1.05em}.real-card p{margin:0;flex:1;color:var(--muted);line-height:1.5}.real-icon{width:40px;height:40px;flex:none;border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--c) 55%,white),var(--c) 55%,color-mix(in srgb,var(--c) 40%,black));box-shadow:0 0 14px color-mix(in srgb,var(--c) 40%,transparent)}.note{margin:14px 0 0}@media(max-width:760px),(max-width:1100px)and (orientation:portrait){.modal-backdrop{padding:0;place-items:end stretch}.modal,.modal.sm,.modal.lg{width:100%;max-height:90dvh;border-radius:20px 20px 0 0;padding-bottom:var(--safe-b);animation:sheet-in .22s cubic-bezier(.2,.8,.3,1)}@keyframes sheet-in{0%{transform:translateY(40px);opacity:0}}.modal-head{flex-wrap:wrap}.modal-head .progress-pill,.modal-head .count-chip{order:3;margin-left:52px}.modal-sub{display:none}.album-grid{grid-template-columns:repeat(2,1fr);gap:8px}.badge-grid{grid-template-columns:repeat(2,1fr)}.mission{flex-wrap:wrap}.mission>.btn{width:100%;justify-content:center}.opt-row.stacked .segmented{margin-left:0}}.surface-info{position:fixed;left:16px;top:calc(16px + var(--safe-t));z-index:30;display:none;flex-direction:column;gap:10px;max-width:min(360px,calc(100% - 32px));padding:12px 14px;border-radius:16px;animation:fade-in .4s ease-out}body.surface-mode .surface-info:not(:empty){display:flex}.surface-title{display:flex;align-items:center;gap:10px}.surface-title strong{display:block;font-size:1.1em}.surface-title span:not(.surface-icon){color:var(--muted);font-size:.85em}.surface-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.surface-chips{display:flex;flex-wrap:wrap;gap:6px}.surface-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--chip);font-size:.8em;font-weight:600}.surface-hint{color:var(--muted);font-size:.76em}@media(max-width:760px){.surface-info{left:8px;right:8px;top:calc(8px + var(--safe-t));max-width:none}}
