:root{--c-bg:#04080a;--c-bg-deep:#010405;--c-panel:#0b1418;--c-panel-hi:#14232866;--c-line:#2a4a54;--c-line-hi:#437d89;--c-text:#d8e8e3;--c-text-dim:#88a5a2;--c-text-mute:#6b8886;--c-culture:#45e0c8;--c-shark:#9ae86a;--c-score:#ffb454;--c-danger:#ff5f4a;--c-boss:#ff7ab0;--c-chief:#c79bff;--c-common:#8ba3a1;--c-uncommon:#6fd98a;--c-rare:#5fb2ff;--c-legendary:#ffcf5c;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--r-1:3px;--r-2:5px;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:22px;--fs-xl:34px;--font-display:"Dela Gothic One", "Hiragino Sans", sans-serif;--font-ui:"DotGothic16", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-num:"DotGothic16", ui-monospace, monospace;--sprite-size:22px;--sprite-rendering:pixelated}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-ui);font-size:var(--fs-sm);-webkit-font-smoothing:none;font-smooth:never}body:before,body:after{content:"";pointer-events:none;z-index:100;position:fixed;inset:0}body:before{background:radial-gradient(120% 80% at 50% -10%, var(--air-top,#0f2b30) 0%, transparent 58%), radial-gradient(110% 100% at 50% 120%, var(--air-bottom,#000) 0%, transparent 62%), radial-gradient(140% 110% at 50% 50%, transparent 42%, #000c 100%);transition:background .9s ease-out}:root[data-ascending=true] body:before,html[data-ascending=true] body:before{background:radial-gradient(130% 90% at 50% -20%, var(--air-top,#5a90c0) 0%, transparent 66%), radial-gradient(100% 80% at 50% 130%, var(--air-bottom,#0a1626) 0%, transparent 55%), radial-gradient(150% 120% at 50% 40%, transparent 50%, #0009 100%)}body:after{opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}@media (prefers-reduced-motion:reduce){body:after{opacity:.08}}.app{gap:var(--sp-3);height:100%;padding:var(--sp-3);grid-template:"hud hud hud""produce invasion stock"1fr/260px 1fr 300px;max-width:1400px;margin:0 auto;display:grid}.area-hud{grid-area:hud}.area-produce{grid-area:produce;min-width:0;min-height:0}.area-invasion{grid-area:invasion;min-width:0;min-height:0}.area-stock{grid-area:stock;min-width:0;min-height:0}.col{gap:var(--sp-3);flex-direction:column;min-height:0;display:flex}@media (width<=1000px){.app{grid-template-columns:1fr;grid-template-areas:"hud""produce""invasion""stock";height:auto}}.copyright{left:max(var(--sp-3), env(safe-area-inset-left));bottom:max(1px, env(safe-area-inset-bottom));z-index:101;font-family:var(--font-num);letter-spacing:.04em;color:var(--c-text-mute);opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none;margin:0;font-size:10px;line-height:1;position:fixed}.panel{background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-2);padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;min-width:0;min-height:0;display:flex}.panel-title{font-size:var(--fs-xs);letter-spacing:.18em;color:var(--c-text-dim);text-transform:uppercase}.scroll{min-height:0;overflow-y:auto}.col>.panel.scroll{max-height:52vh}@media (width>=1001px){.col>.panel.scroll{flex:1 1 0;min-height:0;max-height:none}.col>.panel:not(.scroll){flex:none}}.sprite{width:var(--sprite-size);height:var(--sprite-size);font-size:calc(var(--sprite-size) * .8);image-rendering:var(--sprite-rendering);background-position:50%;background-repeat:no-repeat;background-size:contain;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.stat{align-items:center;gap:var(--sp-2);display:flex}.stat-label{color:var(--c-text-dim);font-size:var(--fs-xs)}.stat-value{font-family:var(--font-num);font-size:var(--fs-md);margin-left:auto}.stat-rate{color:var(--c-text-mute);font-size:var(--fs-xs);font-family:var(--font-num)}.stat[data-kind=culture] .stat-value{color:var(--c-culture)}.stat[data-kind=shark] .stat-value{color:var(--c-shark)}.stat[data-kind=score] .stat-value{color:var(--c-score)}.hud{align-items:center;gap:var(--sp-4);background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-2);padding:var(--sp-2) var(--sp-4);display:flex}.hud-phase{font-size:var(--fs-xs);letter-spacing:.16em;color:var(--c-text-dim)}.hud-depth{font-size:var(--fs-lg);font-family:var(--font-display);letter-spacing:.02em}.hud-depth-name{color:var(--c-text-dim);font-size:var(--fs-xs);margin-left:var(--sp-2)}.hud-timer{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:.04em;margin-left:auto}.hud-timer[data-warn=true]{color:var(--c-danger)}.speed{gap:var(--sp-1);display:flex}.speed button{font-family:var(--font-num);color:var(--c-text-dim);border:1px solid var(--c-line);border-radius:var(--r-1);padding:2px var(--sp-2);cursor:pointer;background:0 0}.speed button[data-active=true],.autobuy button[data-active=true]{color:var(--c-culture);border-color:var(--c-culture);background:color-mix(in srgb, var(--c-culture) 14%, transparent);box-shadow:0 0 8px 0 color-mix(in srgb, var(--c-culture) 25%, transparent)}.autobuy{gap:var(--sp-1);margin-left:var(--sp-2);padding-left:var(--sp-2);border-left:1px solid var(--c-line);display:flex}.autobuy button{font-family:var(--font-ui);font-size:var(--fs-xs);color:var(--c-text-dim);border:1px solid var(--c-line);border-radius:var(--r-1);padding:2px var(--sp-2);background:0 0}.buy-auto[data-idle=true]{opacity:.35}.click-area{border:1px solid var(--c-line-hi);border-radius:var(--r-2);background:radial-gradient(90% 120% at 50% 0%, #12313380 0%, transparent 70%), var(--c-bg-deep);width:100%;color:var(--c-culture);font-family:var(--font-ui);font-size:var(--fs-md);padding:var(--sp-5) var(--sp-3);cursor:pointer;align-items:center;gap:var(--sp-2);-webkit-user-select:none;user-select:none;flex-direction:column;transition:border-color .12s,background-color 60ms;display:flex;position:relative;overflow:hidden}.click-area:hover{border-color:var(--c-culture)}.click-area:active{background-color:#16383a}.click-area .sprite{--sprite-size:48px}.click-label{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:.04em}.click-hint{color:var(--c-text-dim);font-size:var(--fs-xs);font-family:var(--font-num)}.click-crit{color:var(--c-legendary);font-size:var(--fs-xs);font-family:var(--font-num)}.click-area.is-hit{animation:.18s steps(3,end) click-pulse}@keyframes click-pulse{0%{box-shadow:inset 0 0 #45e0c800}40%{box-shadow:inset 0 0 40px #45e0c840}to{box-shadow:inset 0 0 #45e0c800}}.pop[data-crit=true]{color:var(--c-score);font-size:var(--fs-lg);text-shadow:0 0 10px #ffb45499}.pop{left:var(--px);top:var(--py);pointer-events:none;font-family:var(--font-display);font-size:var(--fs-md);color:var(--c-culture);text-shadow:0 0 6px #45e0c866;white-space:nowrap;animation:.7s ease-out forwards pop-rise;position:absolute;transform:translate(-50%,-50%)}@keyframes pop-rise{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.1)}to{opacity:0;transform:translate(calc(-50% + var(--drift)), -190%) scale(1)}}@media (prefers-reduced-motion:reduce){.click-area.is-hit{animation:none}.pop[data-crit=true]{color:var(--c-score);font-size:var(--fs-lg);text-shadow:0 0 10px #ffb45499}.pop{animation-duration:.26s}}.buy{align-items:center;gap:var(--sp-2);text-align:left;border:1px solid var(--c-line);border-radius:var(--r-1);width:100%;padding:var(--sp-2);color:var(--c-text);font-family:var(--font-ui);font-size:var(--fs-sm);cursor:pointer;background:0 0;display:flex}.buy:hover:not(:disabled){border-color:var(--c-line-hi);background:var(--c-panel-hi)}.buy:disabled{opacity:.4;cursor:default}.buy-name{flex-direction:column;min-width:0;display:flex}.buy-effect{color:var(--c-text-mute);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.buy-right{text-align:right;white-space:nowrap;flex-direction:column;flex:none;margin-left:auto;display:flex}.buy-cost{font-family:var(--font-num);color:var(--c-culture)}.buy-owned{font-family:var(--font-num);color:var(--c-text-mute);font-size:var(--fs-xs)}.target{gap:var(--sp-2);flex-direction:column;display:flex}.target-head{align-items:center;gap:var(--sp-2);flex-wrap:nowrap;display:flex}.target-name{font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.target-name[data-boss=true]{color:var(--c-boss)}.bar{background:var(--c-bg-deep);border-radius:var(--r-1);border:1px solid var(--c-line);height:14px;overflow:hidden}.bar-fill{background:var(--c-danger);height:100%;transition:width 80ms linear}.bar-fill[data-boss=true]{background:var(--c-boss)}.target-hp{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--c-text-dim);white-space:nowrap;flex:none;margin-left:auto}.progress-dots{flex-wrap:nowrap;gap:3px;display:flex}.dot{background:var(--c-line);border-radius:2px;flex:0 auto;width:9px;min-width:2px;height:9px}.dot[data-done=true]{background:var(--c-danger)}.dot[data-boss=true]{background:var(--c-boss);width:16px;min-width:6px}.launch-info{gap:var(--sp-4);color:var(--c-text-dim);font-size:var(--fs-xs);font-family:var(--font-num);white-space:nowrap;display:flex}.stack{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;display:flex}.stack-name{font-size:var(--fs-sm)}.stack-count{font-family:var(--font-num);margin-left:auto}.stack-power{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--c-text-mute);text-align:right;min-width:64px}.empty-note{color:var(--c-text-mute);font-size:var(--fs-xs);line-height:1.7}.stack[data-empty=true]{opacity:.42}.stack[data-empty=true] .stack-count{color:var(--c-text-mute)}.mut-list{gap:var(--sp-1);flex-wrap:wrap;display:flex}.mut{border:1px solid var(--c-line);border-radius:var(--r-1);padding:2px var(--sp-2);font-size:var(--fs-xs);align-items:center;gap:4px;display:inline-flex}.mut[data-rarity=uncommon]{border-color:var(--c-uncommon);color:var(--c-uncommon)}.mut[data-rarity=rare]{border-color:var(--c-rare);color:var(--c-rare)}.mut[data-rarity=legendary]{border-color:var(--c-legendary);color:var(--c-legendary)}.mut-rank{font-family:var(--font-num);opacity:.75}.overlay{background:color-mix(in srgb, var(--c-bg-deep) 88%, transparent);padding:var(--sp-5);z-index:10;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--c-panel);border:1px solid var(--c-line-hi);border-radius:var(--r-2);padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;width:100%;max-width:760px;display:flex}.modal-title{font-size:var(--fs-lg);font-family:var(--font-display);letter-spacing:.02em}.modal-sub{color:var(--c-text-dim);font-size:var(--fs-xs)}.cards{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=700px){.cards{grid-template-columns:1fr}}.card{background:var(--c-bg-deep);border:1px solid var(--c-line);border-radius:var(--r-2);padding:var(--sp-4);gap:var(--sp-2);cursor:pointer;color:var(--c-text);font-family:var(--font-ui);text-align:left;flex-direction:column;display:flex}.card:hover{border-color:var(--c-line-hi);background:var(--c-panel)}.card .sprite{--sprite-size:34px}.card-name{font-size:var(--fs-md)}.card-rarity{font-size:var(--fs-xs);letter-spacing:.1em}.card[data-kind=derived]{border-left:3px solid var(--c-boss);background:linear-gradient(180deg, #ff7ab01f, var(--c-bg-deep) 45%);box-shadow:0 0 14px 0 color-mix(in srgb, var(--c-boss) 30%, transparent)}.card[data-kind=derived] .card-rarity,.card[data-kind=derived] .card-upgrade{color:var(--c-boss)}.card[data-kind=policy]{border-left:3px solid var(--c-culture);background:linear-gradient(180deg, #45e0c814, var(--c-bg-deep) 40%)}.card[data-kind=policy] .card-rarity,.modal[data-draft=policy] .modal-title{color:var(--c-culture)}.card[data-kind=risk]{border-left:3px solid var(--c-danger);background:linear-gradient(180deg, #ff5f4a1a, var(--c-bg-deep) 40%)}.card[data-kind=risk] .card-rarity,.card-cost{color:var(--c-danger)}.card-cost{font-size:var(--fs-xs)}.modal[data-draft=risk] .modal-title{color:var(--c-danger)}.modal[data-draft=risk] .cards{grid-template-columns:repeat(2,1fr)}.draft-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.card[data-rarity=common]{border-left:3px solid var(--c-common)}.card[data-rarity=uncommon]{border-left:3px solid var(--c-uncommon)}.card[data-rarity=rare]{border-left:3px solid var(--c-rare)}.card[data-rarity=legendary]{border-left:3px solid var(--c-legendary)}.card[data-rarity=common] .card-rarity{color:var(--c-common)}.card[data-rarity=uncommon] .card-rarity{color:var(--c-uncommon)}.card[data-rarity=rare] .card-rarity{color:var(--c-rare)}.card[data-rarity=legendary] .card-rarity{color:var(--c-legendary)}.card-effect{color:var(--c-text-dim);font-size:var(--fs-xs);font-family:var(--font-num)}.card-upgrade{color:var(--c-score);font-size:var(--fs-xs)}.result-grid{gap:var(--sp-2) var(--sp-5);grid-template-columns:repeat(2,1fr);display:grid}.result-row{align-items:baseline;gap:var(--sp-2);display:flex}.result-row .stat-label{min-width:96px}.result-row .num{font-size:var(--fs-md);margin-left:auto}.result-boss{align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb, var(--c-boss) 45%, var(--c-line));border-radius:var(--r-1);color:var(--c-text-dim);display:flex}.result-boss .num{font-size:var(--fs-lg);color:var(--c-boss);margin-left:auto}.btn{background:var(--c-panel-hi);border:1px solid var(--c-line-hi);color:var(--c-text);border-radius:var(--r-1);padding:var(--sp-2) var(--sp-5);cursor:pointer;font-family:var(--font-ui);font-size:var(--fs-md);align-self:flex-start}.btn:hover{background:var(--c-line)}.ct{width:168px;height:168px;margin:var(--sp-2) auto;position:relative}.ct-svg{width:100%;height:100%;transform:rotate(-90deg)}.ct-track{fill:none;stroke:var(--c-line);stroke-width:6px}.ct-fill{fill:none;stroke:var(--c-culture);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .12s linear}.ct-center{justify-content:center;align-items:center;gap:var(--sp-1);flex-direction:column;display:flex;position:absolute;inset:0}.ct-value{font-family:var(--font-display);font-size:var(--fs-xl)}.ct-caption{color:var(--c-text-mute);font-size:var(--fs-xs);letter-spacing:.1em}.tally{align-items:baseline;gap:var(--sp-2);display:flex}.tally-value{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--c-shark)}.tally-unit{color:var(--c-text-mute);font-size:var(--fs-xs)}.tally-species{color:var(--c-text-dim);font-size:var(--fs-xs);font-family:var(--font-num);margin-left:auto}.viewer{border:1px solid var(--c-line);border-radius:var(--r-1);background:linear-gradient(180deg, var(--c-bg-deep), var(--c-panel));height:132px;position:relative;overflow:hidden}.viewer-canvas{--viewer-ground:var(--c-line-hi);width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.viewer{display:none}}.lab{max-width:1100px;padding:var(--sp-5) var(--sp-3);gap:var(--sp-4);flex-direction:column;margin:0 auto;display:flex}.lab-head{align-items:center;gap:var(--sp-5);background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-2);padding:var(--sp-4);flex-wrap:wrap;display:flex}.lab-budget{align-items:baseline;gap:var(--sp-2);display:flex}.lab-budget-value{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--c-score)}.lab-stats{color:var(--c-text-dim);font-size:var(--fs-xs);font-family:var(--font-num);flex-direction:column;gap:2px;margin-left:auto;display:flex}.tree-heads,.tree{--b-prod:#45e0c8;--b-spec:#9ae86a;--b-raid:#ff7a4a;--b-lab:#5fb2ff;--b-fam:#ffcf5c;--b-ops:#a0b8c4}[data-branch=prod]{--accent:var(--b-prod)}[data-branch=spec]{--accent:var(--b-spec)}[data-branch=raid]{--accent:var(--b-raid)}[data-branch=lab]{--accent:var(--b-lab)}[data-branch=fam]{--accent:var(--b-fam)}[data-branch=ops]{--accent:var(--b-ops)}.tree-heads{gap:var(--sp-2);max-width:100%;display:grid}.tree-head{padding:var(--sp-2) var(--sp-3);border-top:2px solid var(--accent,var(--c-line-hi));background:linear-gradient(180deg, color-mix(in srgb, var(--accent,#fff) 12%, transparent), transparent);flex-direction:column;gap:2px;display:flex}.tree-head-name{font-family:var(--font-display);font-size:var(--fs-md);color:var(--accent,var(--c-text))}.tree-head-sub{color:var(--c-text-dim);font-size:var(--fs-xs)}.tree{gap:var(--sp-3) var(--sp-2);padding:var(--sp-3) 0;background-image:linear-gradient(var(--c-line) 1px, transparent 1px), linear-gradient(90deg, var(--c-line) 1px, transparent 1px);background-position:-1px -1px;background-size:32px 32px;align-items:stretch;display:grid;position:relative}.tree:after{content:"";pointer-events:none;background:radial-gradient(120% 80% at 50% 50%, transparent 30%, var(--c-bg) 100%);position:absolute;inset:0}.tree-wires{pointer-events:none;position:absolute;inset:0;overflow:visible}.wire{fill:none;stroke:var(--c-line);stroke-width:2px}.wire[data-on=true]{stroke:var(--accent,var(--c-culture));opacity:.8;filter:drop-shadow(0 0 4px var(--accent,var(--c-culture)))}.node{z-index:1;gap:var(--sp-1);text-align:left;padding:var(--sp-2) var(--sp-3);background:var(--c-panel);border:1px solid var(--c-line);border-left:3px solid var(--c-line);border-radius:var(--r-2);color:var(--c-text);font-family:var(--font-ui);font-size:var(--fs-sm);cursor:pointer;flex-direction:column;transition:border-color .12s,transform .12s,background-color .12s,box-shadow .2s;display:flex;position:relative}.node:hover:not(:disabled){transform:translateY(-2px)}.node:disabled{cursor:default}.node[data-locked=true]{opacity:.28;border-left-color:var(--c-line)}.node[data-buyable=true]{border-color:var(--c-score);background:color-mix(in srgb, var(--c-score) 10%, var(--c-panel));animation:2.4s ease-in-out infinite node-ready}.node[data-buyable=true] .node-cost{color:var(--c-score);font-weight:700}@keyframes node-ready{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--c-score) 0%, transparent)}50%{box-shadow:0 0 16px 0 color-mix(in srgb, var(--c-score) 45%, transparent)}}.node[data-short=true]{opacity:.72}.node[data-short=true] .node-cost{color:var(--c-text-mute)}.node-short{color:var(--c-text-mute);font-size:var(--fs-xs);margin-left:auto}.node[data-taken=true]{border-left-color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--c-line));background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 14%, transparent), var(--c-panel) 60%)}.node[data-taken=true] .node-name{color:var(--accent)}.node-preview{right:var(--sp-2);top:var(--sp-2);opacity:.85;position:absolute}.node-preview canvas{image-rendering:pixelated}.node-name{align-items:baseline;gap:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-sm);display:flex}.node-lv{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--c-text-dim);margin-left:auto}.node-detail{color:var(--c-text-dim);font-size:var(--fs-xs);line-height:1.5}.node-cost{align-items:center;gap:var(--sp-2);font-family:var(--font-num);font-size:var(--fs-xs);color:var(--c-score);margin-top:auto;display:flex}.node-mark{color:var(--accent);font-family:var(--font-ui)}@media (width<=900px){.tree,.tree-heads{grid-template-columns:repeat(2,1fr)!important}.tree{background-image:none;grid-template-rows:none!important}.node{grid-area:auto!important}.tree-head{grid-column:auto!important}.tree-wires{display:none}}@media (prefers-reduced-motion:reduce){.node[data-buyable=true]{box-shadow:0 0 10px 0 color-mix(in srgb, var(--c-score) 40%, transparent);animation:none}}.award{color:var(--c-score)}.buy-row{align-items:stretch;gap:var(--sp-1);display:flex}.buy-row .buy{flex:1;min-width:0}.buy-auto{border:1px solid var(--c-line);border-radius:var(--r-1);width:34px;color:var(--c-text-mute);font-size:var(--fs-md);cursor:pointer;background:0 0;flex:none}.buy-auto:hover{border-color:var(--c-line-hi);color:var(--c-text)}.buy-auto[data-on=true]{color:var(--c-culture);border-color:var(--c-culture)}.reroll{border:1px dashed var(--c-line-hi);border-radius:var(--r-1);color:var(--c-text-dim);padding:var(--sp-1) var(--sp-3);font-family:var(--font-ui);font-size:var(--fs-xs);cursor:pointer;background:0 0;align-self:flex-start}.reroll:hover{color:var(--c-text);border-color:var(--c-text-dim)}.reserve{font-size:var(--fs-xs);font-family:var(--font-num);color:var(--c-score);border:1px solid var(--c-score);border-radius:var(--r-1);padding:2px var(--sp-2)}.reserve[data-spent=true]{color:var(--c-text-mute);border-color:var(--c-line)}.dbg-toggle,.dbg{left:max(var(--sp-3), env(safe-area-inset-left));bottom:calc(max(1px, env(safe-area-inset-bottom)) + var(--sp-5));z-index:50;font-family:var(--font-num);font-size:var(--fs-xs);position:fixed}.dbg-toggle{background:var(--c-panel);border:1px solid var(--c-line-hi);border-radius:var(--r-1);color:var(--c-text-mute);padding:var(--sp-1) var(--sp-2);cursor:pointer;opacity:.5}.dbg-toggle:hover{opacity:1}.dbg{background:var(--c-panel);border:1px solid var(--c-line-hi);border-radius:var(--r-2);width:240px;padding:var(--sp-2);gap:var(--sp-2);flex-direction:column;display:flex}.dbg-head{color:var(--c-text-mute);letter-spacing:.12em;align-items:center;display:flex}.dbg-head button{color:var(--c-text-dim);cursor:pointer;font-size:var(--fs-md);background:0 0;border:0;margin-left:auto}.dbg-row{color:var(--c-text-dim)}.dbg-btns{gap:var(--sp-1);flex-direction:column;display:flex}.dbg-btns button{background:var(--c-bg-deep);border:1px solid var(--c-line);border-radius:var(--r-1);color:var(--c-text);padding:var(--sp-1) var(--sp-2);cursor:pointer;font-family:var(--font-ui);font-size:var(--fs-xs);text-align:left}.dbg-btns button:hover{border-color:var(--c-line-hi);background:var(--c-panel-hi)}.dbg-btns button[data-active=true]{border-color:var(--c-culture);color:var(--c-culture)}.dbg-btns .dbg-danger{border-color:var(--c-danger);color:var(--c-danger)}.slab{max-width:1000px;max-height:88vh;overflow-y:auto}.slab-head{align-items:center;gap:var(--sp-4);display:flex}.slab-head .btn{margin-left:auto}.slab-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.slab-cell{align-items:center;gap:var(--sp-1);background:var(--c-bg-deep);border:1px solid var(--c-line);border-radius:var(--r-1);padding:var(--sp-2);flex-direction:column;display:flex}.slab-cell canvas{image-rendering:pixelated;max-width:100%;height:auto}.slab-cell span{color:var(--c-text-dim);font-size:var(--fs-xs);text-align:center}.shark-icon{image-rendering:pixelated;flex:none}.shark-icon[data-grow],.sprite[data-grow]{z-index:1;position:relative}.panel.is-primary{border-color:var(--c-line-hi);background:linear-gradient(180deg, var(--air-glow,#45e0c822) 0%, transparent 22%), var(--c-panel)}.panel.is-primary:before{content:"";height:1px;margin:calc(var(--sp-3) * -1) calc(var(--sp-3) * -1) 0;background:linear-gradient(90deg, transparent, var(--air-accent,#45e0c8), transparent);opacity:.55;display:block}.gauge{background:var(--c-bg-deep);border:1px solid var(--c-line);border-radius:var(--r-1);height:8px;overflow:hidden}.gauge-fill{background:linear-gradient(90deg, var(--c-culture), var(--c-shark));height:100%;transition:width .2s linear}.log{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.log-row{align-items:center;gap:var(--sp-3);font-size:var(--fs-xs);padding:2px 0;padding-left:var(--sp-2);border-left:2px solid #0000;animation:.22s ease-out log-in;display:flex}.log-time{font-family:var(--font-num);color:var(--c-text-mute);flex:none}.log-text{color:var(--c-text-dim)}.log-icon{flex:none;justify-content:flex-start;align-items:center;width:52px;display:flex}.log-icon canvas{image-rendering:pixelated}.log-row[data-kind=hit]{border-left-color:var(--c-line-hi)}.log-row[data-kind=boss]{border-left-color:var(--c-boss)}.log-row[data-kind=boss] .log-text{color:var(--c-boss)}.log-row[data-kind=depth]{border-left-color:var(--c-culture)}.log-row[data-kind=depth] .log-text{color:var(--c-culture)}.log-row[data-kind=draft]{border-left-color:var(--c-uncommon)}.log-row[data-kind=draft] .log-text{color:var(--c-uncommon)}.log-row[data-kind=policy]{border-left-color:var(--c-culture)}.log-row[data-kind=policy] .log-text{color:var(--c-culture)}.log-row[data-kind=risk]{border-left-color:var(--c-danger)}.log-row[data-kind=risk] .log-text{color:var(--c-danger)}.log-row[data-kind=birth]{border-left-color:var(--c-legendary)}.log-row[data-kind=birth] .log-text{color:var(--c-legendary)}.log-row[data-kind=record]{border-left-color:var(--c-legendary);background:linear-gradient(90deg, color-mix(in srgb, var(--c-legendary) 14%, transparent), transparent 70%)}.log-row[data-kind=record] .log-text{color:var(--c-legendary);font-weight:700}.log-row[data-kind=system]{border-left-color:var(--c-danger)}.log-row[data-kind=system] .log-text{color:var(--c-danger)}@keyframes log-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.viewer-empty{color:var(--c-text-mute);font-size:var(--fs-xs);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hud-standby{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--c-text-mute);letter-spacing:.08em;margin-left:auto}.buy{border-left:3px solid #0000}.buy[data-afford=true]{border-left-color:var(--c-culture)}.buy[data-afford=true] .buy-cost{color:var(--c-culture)}.buy[data-afford=false] .buy-cost{color:var(--c-text-mute)}.overlay{animation:.18s ease-out overlay-in}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{animation:.26s cubic-bezier(.2,.9,.3,1) modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.cards .card{animation:.32s ease-out backwards card-in}.cards .card:first-child{animation-delay:60ms}.cards .card:nth-child(2){animation-delay:.13s}.cards .card:nth-child(3){animation-delay:.2s}.cards .card:nth-child(4){animation-delay:.27s}@keyframes card-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.card{transition:border-color .12s,background-color .12s,transform .12s}.card:hover{transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.overlay,.modal,.cards .card,.log-row{animation:none}.card:hover{transform:none}}.depth-fx{pointer-events:none;z-index:90;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.depth-fx-flash{position:absolute;inset:0}.depth-fx[data-kind=depth] .depth-fx-flash{background:radial-gradient(120% 90% at 50% 50%, var(--air-accent,#45e0c8) 0%, transparent 65%);animation:.7s ease-out forwards fx-depth}@keyframes fx-depth{0%{opacity:0}12%{opacity:.3}to{opacity:0}}.depth-fx[data-kind=invert] .depth-fx-flash{background:#fff;animation:2.6s cubic-bezier(.1,.8,.2,1) forwards fx-invert}@keyframes fx-invert{0%{opacity:0}6%{opacity:.92}22%{opacity:.35}to{opacity:0}}.depth-fx-notice{align-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-5);flex-direction:column;animation:2.6s ease-out forwards fx-notice;display:flex;position:relative}.depth-fx-alarm{font-family:var(--font-display);letter-spacing:.14em;color:#0b1418;text-shadow:0 0 24px #fff;font-size:44px}.depth-fx-sub{font-size:var(--fs-sm);color:#0b1418;opacity:.8}@keyframes fx-notice{0%{opacity:0;transform:scale(1.14)}10%{opacity:1;transform:scale(1)}70%{opacity:1}to{opacity:0;transform:scale(.99)}}@media (prefers-reduced-motion:reduce){.depth-fx[data-kind=invert] .depth-fx-flash{animation-duration:.5s}.depth-fx-notice{animation-duration:1.6s}.depth-fx[data-kind=depth]{display:none}}.gauges{gap:var(--sp-2);flex-direction:column;display:flex}.gauge-row{align-items:center;gap:var(--sp-2);display:flex}.gauge-label{font-size:var(--fs-xs);color:var(--c-text-dim);flex:none;min-width:68px}.gauge-row .gauge{flex:auto}.gauge-left{text-align:right;min-width:82px;font-family:var(--font-num);font-size:var(--fs-xs);color:var(--c-text-mute);flex:none}.gauge-row[data-kind=mutation] .gauge-fill{background:linear-gradient(90deg, var(--c-shark), var(--c-legendary))}.gauge-row[data-kind=policy] .gauge-fill{background:linear-gradient(90deg, var(--c-culture), #9fe8ff)}.champion{border:1px solid var(--c-legendary);border-radius:var(--r-2);padding:var(--sp-3) var(--sp-4);background:linear-gradient(120deg, #ffcf5c14, var(--c-bg-deep) 55%)}.champion-body{align-items:center;gap:var(--sp-4);display:flex}.champion-body canvas{image-rendering:pixelated;flex:none}.champion-info{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.champion-name{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--c-legendary);word-break:break-all;line-height:1.35}.champion-stats{gap:var(--sp-4);font-family:var(--font-num);font-size:var(--fs-xs);color:var(--c-text-dim);flex-wrap:wrap;display:flex}.card-effect[data-unknown=true]{color:var(--c-text-mute);font-style:italic}.audio{right:max(var(--sp-3), env(safe-area-inset-right));bottom:max(var(--sp-2), env(safe-area-inset-bottom));z-index:101;align-items:flex-end;gap:var(--sp-2);flex-direction:column;display:flex;position:fixed}.audio-toggle{background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-1);cursor:pointer;opacity:.55;place-items:center;width:36px;height:36px;padding:0;transition:opacity .15s,border-color .15s;display:grid}.audio-toggle:hover,.audio-toggle[data-open=true]{opacity:1;border-color:var(--c-line-hi)}.audio-toggle[data-muted=true]{border-color:color-mix(in srgb, var(--c-danger) 45%, var(--c-line));opacity:.8}.audio-body{gap:var(--sp-1);background:color-mix(in srgb, var(--c-panel) 92%, black);border-color:var(--c-line-hi);width:190px}.audio-row{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--c-text-dim);grid-template-columns:3.5em 1fr 2em;display:grid}.audio-value{font-family:var(--font-num);text-align:right;color:var(--c-text-mute)}.audio-row input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:14px}.audio-row input[type=range]::-webkit-slider-runnable-track{background:var(--c-line);border-radius:2px;height:3px}.audio-row input[type=range]::-moz-range-track{background:var(--c-line);border-radius:2px;height:3px}.audio-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--c-culture);border:0;border-radius:1px;width:9px;height:13px;margin-top:-5px}.audio-row input[type=range]::-moz-range-thumb{background:var(--c-culture);border:0;border-radius:1px;width:9px;height:13px}.audio-mute{margin-top:var(--sp-1);padding:2px var(--sp-2);font-size:var(--fs-xs);color:var(--c-text-dim);border:1px solid var(--c-line);border-radius:var(--r-1);cursor:pointer;background:0 0}.audio-mute[data-on=true]{color:var(--c-danger);border-color:var(--c-danger);background:color-mix(in srgb, var(--c-danger) 14%, transparent)}.title{justify-content:center;align-items:center;gap:var(--sp-5);min-height:100dvh;padding:var(--sp-5) var(--sp-4);background:radial-gradient(ellipse at 50% 35%, #45e0c814, transparent 60%), var(--c-bg);flex-direction:column;display:flex}.title-logo{align-items:center;gap:var(--sp-3);flex-direction:column;display:flex}.title-name{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:.04em;color:var(--c-text);text-align:center;text-shadow:0 0 18px #45e0c855;margin:0;font-weight:400}.title-menu{gap:var(--sp-2);flex-direction:column;width:min(280px,100%);display:flex}.title-item{padding:var(--sp-3) var(--sp-4);font-family:var(--font-ui);font-size:var(--fs-md);color:var(--c-text);background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-1);cursor:pointer;transition:border-color .12s,background-color .12s}.title-item:hover,.title-item:focus-visible{border-color:var(--c-line-hi);background:var(--c-line)}.title-item[data-primary=true]{color:var(--c-culture);border-color:color-mix(in srgb, var(--c-culture) 55%, var(--c-line))}.dialog{max-width:520px;max-height:calc(100dvh - 2 * var(--sp-5));overflow-y:auto}.dialog .btn{align-self:center}.help-steps{gap:var(--sp-3);flex-direction:column;margin:0;padding-left:1.6em;display:flex}.help-step::marker{font-family:var(--font-num);color:var(--c-culture)}.help-head{font-size:var(--fs-md);color:var(--c-text)}.help-body{font-size:var(--fs-sm);color:var(--c-text-dim);line-height:1.6}.title-options{gap:var(--sp-2);flex-direction:column;display:flex}.title-options .audio-row{font-size:var(--fs-sm);grid-template-columns:5em 1fr 2.5em}.title-options .audio-mute{align-self:flex-start}.badge{min-width:1.5em;height:1.5em;margin-left:var(--sp-2);padding:0 var(--sp-1);background:var(--c-score);color:var(--c-bg-deep);font-family:var(--font-num);font-size:var(--fs-xs);vertical-align:middle;border-radius:999px;place-items:center;line-height:1;display:inline-grid}.codex-open{font-family:var(--font-ui);font-size:var(--fs-sm);color:var(--c-text-dim);border:1px solid var(--c-line);border-radius:var(--r-1);padding:2px var(--sp-3);cursor:pointer;background:0 0;align-items:center;display:inline-flex}.codex-open:hover{color:var(--c-text);border-color:var(--c-line-hi)}.dialog.codex{max-width:760px}.codex-head{align-items:baseline;gap:var(--sp-4);display:flex}.codex-progress{white-space:nowrap;color:var(--c-culture);margin-left:auto}.codex-family{gap:var(--sp-2);flex-direction:column;display:flex}.codex-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.codex-entry{align-items:center;column-gap:var(--sp-2);padding:var(--sp-2);background:var(--c-bg-deep);border:1px solid var(--c-line);border-radius:var(--r-1);border-left-width:3px;grid-template-columns:auto 1fr;grid-template-areas:"icon name""icon rarity""reward reward";row-gap:2px;display:grid}.codex-entry[data-found=false]{border-left-color:var(--c-line);grid-template-areas:"icon name"}.codex-entry[data-found=false] .shark-icon{filter:brightness(0)invert(.45);opacity:.5}.codex-entry[data-found=false] .codex-name{color:var(--c-text-mute)}.codex-entry[data-rarity=common]{border-left-color:var(--c-common)}.codex-entry[data-rarity=uncommon]{border-left-color:var(--c-uncommon)}.codex-entry[data-rarity=rare]{border-left-color:var(--c-rare)}.codex-entry[data-rarity=legendary]{border-left-color:var(--c-legendary)}.codex-icon{grid-area:icon;place-items:center;min-width:48px;display:grid}.codex-name{font-size:var(--fs-sm);grid-area:name}.codex-rarity{font-size:var(--fs-xs);letter-spacing:.1em;color:var(--c-text-mute);grid-area:rarity}.codex-claim,.codex-claimed{margin-top:var(--sp-1);font-size:var(--fs-xs);text-align:center;grid-area:reward}.codex-claim{font-family:var(--font-num);padding:2px var(--sp-2);background:color-mix(in srgb, var(--c-score) 14%, transparent);color:var(--c-score);border:1px solid var(--c-score);border-radius:var(--r-1);cursor:pointer}.codex-claim:hover{background:color-mix(in srgb, var(--c-score) 26%, transparent)}.codex-claimed{color:var(--c-text-mute)}.codex-entry[data-derived=true]{border-left-color:var(--c-boss)}.codex-recipe{font-size:var(--fs-xs);color:var(--c-text-dim);grid-area:rarity}.codex-entry[data-found=false][data-derived=true]{grid-template-areas:"icon name""icon rarity"}.overlay:has(>.codex){z-index:20}.chief{gap:var(--sp-2);flex-direction:column;display:flex}.chief-speaker{font-size:var(--fs-xs);letter-spacing:.1em;color:var(--c-chief)}.chief-line{margin:0;line-height:1.7}.chief-line strong{color:var(--c-chief)}.modal[data-draft=chief]{border-left:3px solid var(--c-chief);max-width:520px}.modal[data-draft=chief] .btn{align-self:flex-end}.chief-notice{left:50%;bottom:var(--sp-4);width:min(520px, calc(100vw - 2 * var(--sp-4)));z-index:9;background:var(--c-panel);border:1px solid var(--c-line-hi);border-left:3px solid var(--c-chief);border-radius:var(--r-2);padding:var(--sp-3) calc(var(--sp-4) + 20px) var(--sp-3) var(--sp-4);box-shadow:0 6px 24px 0 color-mix(in srgb, var(--c-bg-deep) 80%, transparent);font-size:var(--fs-sm);animation:.26s ease-out chief-in;position:fixed;transform:translate(-50%)}@keyframes chief-in{0%{opacity:0;transform:translate(-50%,10px)}}.chief-close{top:var(--sp-1);right:var(--sp-2);color:var(--c-text-dim);font-size:var(--fs-md);cursor:pointer;background:0 0;border:0;position:absolute}.chief-close:hover{color:var(--c-text)}[data-tutorial-focus]{outline:2px solid var(--c-chief);outline-offset:2px;animation:1.2s ease-in-out infinite tutorial-pulse}@keyframes tutorial-pulse{50%{box-shadow:0 0 14px 0 color-mix(in srgb, var(--c-chief) 55%, transparent);outline-color:#0000}}@media (prefers-reduced-motion:reduce){[data-tutorial-focus],.chief-notice{animation:none}}.log-row[data-kind=chief]{border-left-color:var(--c-chief)}.log-row[data-kind=chief] .log-text{color:var(--c-chief)}.tutorial-lock{z-index:10;background:color-mix(in srgb, var(--c-bg-deep) 78%, transparent);position:fixed;inset:0}body:has(.tutorial-lock) [data-tutorial-focus]{z-index:11;position:relative}.risk-toggle{font-family:var(--font-ui);font-size:var(--fs-sm);color:var(--c-text-dim);border:1px solid var(--c-line);border-radius:var(--r-1);padding:2px var(--sp-3);cursor:pointer;background:0 0}.risk-toggle[data-on=true]{color:var(--c-danger);border-color:var(--c-danger)}@media (width<=1000px) and (height<=620px) and (orientation:landscape){:root{--fs-xs:10px;--fs-sm:12px;--fs-md:14px;--fs-lg:16px;--fs-xl:22px;--sp-3:8px;--sp-4:10px;--sp-5:12px;--sprite-size:18px}body{overscroll-behavior:none;-webkit-text-size-adjust:100%}.app,.lab{-webkit-user-select:none;user-select:none}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app{gap:var(--sp-1);height:100%;padding:var(--sp-1) max(var(--sp-1), env(safe-area-inset-right)) var(--sp-1) max(var(--sp-1), env(safe-area-inset-left));grid-template-columns:248px 1fr 196px;grid-template-areas:"produce hud hud""produce invasion stock";overflow:hidden}.col>.panel.scroll{flex:1 1 0;min-height:0;max-height:none}.col>.panel:not(.scroll){flex:none}.col{gap:var(--sp-1)}.panel{padding:var(--sp-2);gap:var(--sp-1)}.gauges{gap:var(--sp-1)}.gauge-label{min-width:52px}.gauge-left{min-width:62px}.gauge{height:6px}.tally{padding:0}.tally-value{font-size:var(--fs-md)}.area-produce>.panel.scroll{min-height:140px}.area-produce>.panel:not(.scroll){flex:0 auto;gap:2px;min-height:0;overflow-y:auto}.area-produce>.panel:not(.scroll)>.panel-title,.tally{display:none}.area-stock>.panel:not(.scroll){flex:0 auto;max-height:76px;overflow-y:auto}.mut{padding:1px var(--sp-1);gap:2px}.mut .sprite{--sprite-size:14px}.buy{padding:var(--sp-1) var(--sp-2);gap:var(--sp-1)}.buy .sprite{--sprite-size:16px}.hud{padding:var(--sp-1) var(--sp-2);gap:var(--sp-3)}.hud-timer{font-size:var(--fs-lg)}.hud-standby{display:none}.click-area{place-content:center;gap:var(--sp-1) var(--sp-2);padding:var(--sp-2);min-height:84px;font-size:var(--fs-sm);flex-flow:wrap}.click-area .sprite{--sprite-size:28px}.click-label{font-size:var(--fs-md)}.click-area .sprite,.click-label{order:0}.click-hint,.click-crit{order:1}.click-hint{margin-left:auto}.click-crit{margin-right:auto}.ct{width:108px;height:108px;margin:0 auto}.progress-dots{gap:2px}.viewer{height:84px}.stack{flex-wrap:wrap;align-items:center;row-gap:0;padding:2px 0}.stack-name{min-width:0;font-size:var(--fs-xs);color:var(--c-text-dim);overflow-wrap:anywhere;flex-basis:100%;order:1;line-height:1.3}.stack .shark-icon{height:18px}.overlay{padding:var(--sp-2)}.modal{padding:var(--sp-2) var(--sp-3);gap:var(--sp-1);max-height:100%;overflow-y:auto}.modal>.cards{flex:auto;min-height:210px}.card{justify-content:center}.modal>.btn{bottom:calc(var(--sp-2) * -1);background:var(--c-panel);position:sticky}.champion{padding:var(--sp-2)}.cards{gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.card{padding:var(--sp-2);gap:2px}.card .sprite{--sprite-size:56px}.card .shark-icon{align-self:stretch;width:100%;height:auto}.card-name{font-size:var(--fs-sm)}.champion-body canvas{height:40px}.lab{height:100%;padding:var(--sp-2);gap:var(--sp-2);overflow-y:auto}.lab-head{gap:var(--sp-3);padding:var(--sp-2)}.lab-budget-value{font-size:var(--fs-lg)}.node{padding:var(--sp-1) var(--sp-2);gap:2px}.node-preview{display:none}.tree,.tree-heads{grid-template-columns:repeat(4,1fr)!important}.tree-head{padding:var(--sp-1) var(--sp-2)}.tree-head-sub{display:none}.copyright{left:max(var(--sp-1), env(safe-area-inset-left));opacity:.28;font-size:8px}.chief-notice{left:auto;right:max(var(--sp-2), env(safe-area-inset-right));bottom:var(--sp-2);width:min(360px,46vw);padding:var(--sp-2) calc(var(--sp-3) + 16px) var(--sp-2) var(--sp-3);font-size:var(--fs-xs);transform:none}@keyframes chief-in{0%{opacity:0;transform:translateY(10px)}}}
