:root{--safe-top-raw: env(safe-area-inset-top, 0px);--safe-right-raw: env(safe-area-inset-right, 0px);--safe-bottom-raw: env(safe-area-inset-bottom, 0px);--safe-left-raw: env(safe-area-inset-left, 0px);--vp-w: 100vw;--vp-h: 100vh;--stage-w: 100vw;--stage-h: 56.25vw;--scale: 1;--safe-top: 0px;--safe-right: 0px;--safe-bottom: 0px;--safe-left: 0px;--water-top: #7fd8ff;--water-bottom: #2196c4;--salvage: #ffb300;--pearl: #ffffff;--relic: #78ffd6;--accent: #4dd0e1;--ink: #04121f;--paper: #eaf6ff;--panel-bg: rgba(4, 18, 31, .72);--dock-bg: rgba(4, 18, 31, .5);--panel-edge: rgba(77, 208, 225, .28);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--water-bottom)}*{touch-action:manipulation}body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none;color:var(--paper);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}#app{position:fixed;inset:0}.atmosphere{position:absolute;inset:0;background:linear-gradient(180deg,var(--water-top) 0%,var(--water-bottom) 100%)}.stage{position:absolute;left:50%;top:50%;width:var(--stage-w);height:var(--stage-h);transform:translate(-50%,-50%);display:flex;flex-direction:column;padding:calc(var(--safe-top) + .5rem) calc(var(--safe-right) + .75rem) calc(var(--safe-bottom) + .5rem) calc(var(--safe-left) + .75rem);pointer-events:none}.stage>*{pointer-events:auto}:root[data-orientation=portrait] .stage{height:var(--vp-h);width:var(--vp-w)}.input-locked{pointer-events:none!important}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.dive{display:flex;flex-direction:column;flex:1;min-height:0}.hud{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex:0 0 auto}.hud-depth{display:flex;flex-direction:column;gap:.1rem}.depth-value{font-size:clamp(2rem,8.5vw,3.4rem);font-weight:800;line-height:1;letter-spacing:-.02em;text-shadow:0 2px 12px rgba(0,0,0,.35)}.depth-value.is-milestone{animation:milestone .7s var(--ease-out)}@keyframes milestone{0%{transform:scale(1)}28%{transform:scale(1.14);text-shadow:0 2px 26px rgba(255,255,255,.55)}to{transform:scale(1)}}.currency-value.is-spent{animation:spent .48s var(--ease-out)}@keyframes spent{0%{transform:scale(1)}30%{transform:scale(1.18);filter:brightness(1.5)}to{transform:scale(1)}}.currency-value{display:inline-block}.depth-stats{display:flex;align-items:baseline;gap:.55rem}.depth-rate{font-size:clamp(.7rem,2.8vw,.9rem);font-weight:600;opacity:.62;transition:color .2s var(--ease-out)}.depth-rate.is-boosted{color:var(--salvage);opacity:1}.depth-lamp{font-size:clamp(.62rem,2.4vw,.78rem);font-weight:700;letter-spacing:.04em;opacity:.42;white-space:nowrap;transition:color .2s var(--ease-out),opacity .2s var(--ease-out)}.depth-lamp.is-lit{color:var(--accent);opacity:1}.hud-currencies{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.hud-goals{display:flex;gap:.55rem;margin-top:.45rem;pointer-events:none}.hud-goals[hidden]{display:none}.hud-goal{display:flex;flex-direction:column;align-items:center;gap:.1rem;pointer-events:auto;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.hud-goal:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.hud-goal .donut{width:clamp(2.1rem,8vw,2.9rem);height:clamp(2.1rem,8vw,2.9rem);fill:none}.hud-goal .donut-track{stroke:#ffffff29}.hud-goal .donut-fill{stroke:var(--accent);transition:stroke-dasharray .38s var(--ease-out)}.hud-goal-relics .donut-fill{stroke:var(--relic)}.hud-goal-count{font-size:clamp(.55rem,2.1vw,.66rem);font-weight:700;letter-spacing:.04em;opacity:.65;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.hud-goal .donut-fill{transition:none}}.currency{display:flex;align-items:baseline;gap:.35rem;font-size:clamp(.95rem,3.6vw,1.25rem);font-weight:700}.currency-icon{font-size:.85em}.currency-salvage .currency-icon,.currency-salvage .currency-value{color:var(--salvage)}.currency-pearl .currency-icon,.currency-pearl .currency-value{color:var(--pearl)}.currency-relic .currency-icon,.currency-relic .currency-value{color:var(--relic)}.site-toast{position:absolute;top:26%;left:50%;padding:.4rem .8rem;border-radius:999px;background:var(--relic);color:var(--ink);font-size:.82rem;font-weight:800;white-space:nowrap;pointer-events:none;animation:site-toast 2.4s var(--ease-out) forwards}.site-toast.is-denied{background:#081622eb;border:1px solid rgba(255,255,255,.35);color:var(--paper);font-weight:700}@keyframes site-toast{0%{opacity:0;transform:translate(-50%,10px) scale(.9)}14%,76%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-18px) scale(1)}}.currency-rate{font-size:.62em;font-weight:600;opacity:.6}.dive-centre{flex:1;min-height:0;display:grid;place-items:center;position:relative}.dive-centre{cursor:pointer;touch-action:manipulation}.bubbles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bubble{position:absolute;border-radius:50%;background:#ffffff80;border:1px solid rgba(255,255,255,.7);animation:bubble-rise .9s var(--ease-out) forwards}@keyframes bubble-rise{0%{opacity:.9;transform:translate(0) scale(.5)}to{opacity:0;transform:translate(var(--drift, 0),-90px) scale(1.1)}}.tap-gain{position:absolute;transform:translate(-50%);font-size:.8rem;font-weight:800;color:var(--paper);text-shadow:0 1px 6px rgba(0,0,0,.5);pointer-events:none;animation:tap-gain-rise .8s var(--ease-out) forwards}@keyframes tap-gain-rise{0%{opacity:0;transform:translate(-50%,6px) scale(.85)}22%{opacity:1;transform:translate(-50%,-4px) scale(1)}to{opacity:0;transform:translate(-50%,-34px) scale(1)}}.dive-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.sub{width:clamp(7rem,32vw,12rem);height:auto;overflow:visible;animation:sub-bob 3s var(--ease-in-out) infinite,sub-tilt 4.3s var(--ease-in-out) infinite}:root[data-vh=short] .sub{width:clamp(5rem,22vh,9rem)}:root[data-vh=short] .depth-value{font-size:clamp(1.4rem,7vh,2.2rem)}:root[data-vh=short] .hud-goals{margin-top:.2rem}:root[data-vh=short] .hud-goal .donut{width:clamp(1.5rem,6vh,2.1rem);height:clamp(1.5rem,6vh,2.1rem)}@keyframes sub-bob{0%,to{transform:translate(var(--sub-x, 0px),-4px) rotate(var(--sub-bank, 0rad))}50%{transform:translate(var(--sub-x, 0px),4px) rotate(var(--sub-bank, 0rad))}}@keyframes sub-tilt{0%,to{rotate:-1.5deg}50%{rotate:1.5deg}}.sub.is-lurching{animation:sub-lurch .38s var(--ease-out),sub-tilt 4.3s var(--ease-in-out) infinite}.sub.is-launching{animation:sub-launch .7s var(--ease-out),sub-tilt 4.3s var(--ease-in-out) infinite}@keyframes sub-launch{0%{transform:translate(var(--sub-x, 0px),-46px) rotate(var(--sub-bank, 0rad)) scale(.82);opacity:0}55%{opacity:1}70%{transform:translate(var(--sub-x, 0px),6px) rotate(var(--sub-bank, 0rad)) scale(1.04)}to{transform:translate(var(--sub-x, 0px)) rotate(var(--sub-bank, 0rad)) scale(1);opacity:1}}@keyframes sub-lurch{0%{transform:translate(var(--sub-x, 0px)) rotate(var(--sub-bank, 0rad)) scale(1)}30%{transform:translate(var(--sub-x, 0px),14px) rotate(var(--sub-bank, 0rad)) scale(1.06,.94)}to{transform:translate(var(--sub-x, 0px)) rotate(var(--sub-bank, 0rad)) scale(1)}}.sub-hull{fill:var(--hull, var(--salvage));stroke:var(--ink);stroke-width:3;stroke-linejoin:round}.sub-fin{fill:var(--hull-fin, #e08e00);stroke:var(--ink);stroke-width:3;stroke-linejoin:round}.sub-tower{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.sub-port{fill:var(--paper);stroke:var(--ink);stroke-width:3}.sub-port-inner{fill:var(--hull-port, var(--accent));opacity:.85}.sub-rivet{fill:var(--ink);opacity:.35}.sub-glow{fill:var(--paper);opacity:calc(var(--light, 0) * .26);filter:blur(14px)}.band-label{position:absolute;bottom:12%;font-size:clamp(.68rem,2.6vw,.85rem);font-weight:700;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;opacity:.5}.band-label.is-entering{animation:band-announce 2.4s var(--ease-out)}@keyframes band-announce{0%{opacity:0;transform:translateY(10px) scale(.94);letter-spacing:.12em}18%{opacity:1;transform:translateY(0) scale(1.06)}70%{opacity:1;transform:scale(1)}to{opacity:.5;transform:scale(1);letter-spacing:.32em}}.atmosphere.has-glow:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 22% 30%,var(--glow) 0%,transparent 1.6%),radial-gradient(circle at 74% 62%,var(--glow) 0%,transparent 1.3%),radial-gradient(circle at 46% 82%,var(--glow) 0%,transparent 1.1%),radial-gradient(circle at 88% 18%,var(--glow) 0%,transparent 1.2%),radial-gradient(circle at 12% 68%,var(--glow) 0%,transparent 1%),radial-gradient(circle at 62% 12%,var(--glow) 0%,transparent 1.1%),radial-gradient(circle at 34% 52%,var(--glow) 0%,transparent .9%),radial-gradient(circle at 92% 78%,var(--glow) 0%,transparent 1%);opacity:.42;animation:motes 14s ease-in-out infinite alternate;will-change:transform,opacity;transform:translateZ(0)}@keyframes motes{0%{transform:translateZ(0) scale(1);opacity:.32}to{transform:translate3d(2%,-3%,0) scale(1.08);opacity:.6}}.atmosphere:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 30%,rgba(0,0,0,calc(var(--light, 0) * .5)) 78%,rgba(0,0,0,calc(var(--light, 0) * .78)) 100%);transition:background 1.2s linear}.sub{cursor:pointer}.sub.is-torching .sub-port-inner{fill:#fff6d5}.dock{flex:0 0 auto;display:flex;gap:.5rem;align-items:stretch;width:100%;max-width:46rem;margin-inline:auto;position:relative;z-index:16}.dock-btn{position:relative;flex:1 1 auto;min-width:0;min-height:3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.5rem .4rem;border:1px solid var(--panel-edge);border-radius:.9rem;background:var(--dock-bg);color:var(--paper);font:inherit;font-size:clamp(.66rem,2.7vw,.8rem);font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,.6);cursor:pointer;transition:transform 90ms var(--ease-out),background .16s var(--ease-out),opacity .16s var(--ease-out)}.dock-btn:active:not(:disabled){transform:scale(.96)}.dock-btn:disabled{opacity:.4;cursor:default}.dock-btn.is-primary{background:#4dd0e19e;border-color:#4dd0e180;color:var(--ink);text-shadow:none}.dock-btn-icon{flex:0 0 auto;width:3rem;font-size:1.1rem;letter-spacing:0}.badge-log{background:var(--accent);animation-name:badge-pulse-log}@keyframes badge-pulse-log{0%{box-shadow:0 0 #4dd0e199}70%{box-shadow:0 0 0 .5rem #4dd0e100}to{box-shadow:0 0 #4dd0e100}}.dock-btn .dock-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-btn .dock-sub{font-size:.78em;font-weight:600;letter-spacing:.04em;text-transform:none;opacity:.7;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:30rem){#dock-goals .dock-sub{display:none}}@media(max-width:21rem){.dock-sub{display:none}.dock-btn{min-height:2.6rem;padding:.35rem .25rem;letter-spacing:.05em}.dock-btn-icon{width:2.4rem}}:root[data-vh=short] .dock-btn{min-height:2.25rem;padding:.3rem}:root[data-vh=short] .dock-sub{display:none}:root[data-vh=short] .dock-btn-icon{width:2.4rem}:root[data-vh=short] .surface-btn{bottom:.35rem;padding:.45rem 1.1rem}.dock-btn.is-hinting{animation:hint-pulse 1.4s var(--ease-in-out) infinite}@keyframes hint-pulse{0%,to{transform:scale(1);box-shadow:0 0 #4dd0e18c}50%{transform:scale(1.03);box-shadow:0 0 0 .7rem #4dd0e100}}.hint-arrow{position:absolute;left:0;bottom:calc(100% + .45rem);max-width:min(16rem,calc(var(--vp-w) - 1.5rem));display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .75rem;border-radius:.6rem;background:var(--paper);color:var(--ink);font-size:.7rem;font-weight:800;letter-spacing:.02em;text-transform:none;white-space:nowrap;animation:hint-bob 1.4s var(--ease-in-out) infinite}.dock-btn.is-hinting:after{content:"";position:absolute;left:50%;bottom:calc(100% - .25rem);transform:translate(-50%);border:.35rem solid transparent;border-top-color:var(--paper);pointer-events:none}@keyframes hint-bob{0%,to{transform:translate(0)}50%{transform:translateY(-4px)}}.dock-btn .badge{position:absolute;top:-.15rem;right:-.15rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--salvage);box-shadow:0 0 #ffb300b3;animation:badge-pulse 2s ease-out infinite}.dock-btn .badge[hidden]{display:none!important}@keyframes badge-pulse{0%{box-shadow:0 0 #ffb30099}70%{box-shadow:0 0 0 .5rem #ffb30000}to{box-shadow:0 0 #ffb30000}}.boost-btn{position:absolute;right:0;bottom:18%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;width:3.6rem;height:3.6rem;padding:0;border:1px solid var(--panel-edge);border-radius:50%;background:var(--dock-bg);color:var(--paper);font:inherit;font-size:.55rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:transform 90ms var(--ease-out),opacity .2s var(--ease-out)}.boost-btn .boost-icon{font-size:1.15rem;line-height:1}.boost-btn:active:not(:disabled){transform:scale(.94)}.boost-btn.is-ready{border-color:var(--salvage);color:var(--salvage);animation:boost-ready 2.4s var(--ease-in-out) infinite}.boost-btn.is-active{border-color:var(--salvage);background:var(--salvage);color:var(--ink)}.boost-btn:disabled{opacity:.45;cursor:default}@keyframes boost-ready{0%,to{box-shadow:0 0 #ffb30080}60%{box-shadow:0 0 0 .8rem #ffb30000}}.surface-btn{position:absolute;left:50%;bottom:.75rem;transform:translate(-50%);padding:.7rem 1.6rem;border:0;border-radius:999px;background:var(--paper);color:var(--ink);font:inherit;font-size:clamp(.75rem,3vw,.92rem);font-weight:800;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;animation:surface-pulse 2.6s var(--ease-in-out) infinite}.surface-btn:active{transform:translate(-50%) scale(.96)}.surface-btn small{display:block;font-size:.72em;font-weight:600;letter-spacing:.04em;text-transform:none;opacity:.66}@keyframes surface-pulse{0%,to{box-shadow:0 0 #eaf6ff66}60%{box-shadow:0 0 0 .9rem #eaf6ff00}}.panel{position:fixed;top:0;bottom:0;z-index:20;display:flex;flex-direction:column;width:min(85%,26rem);background:linear-gradient(to bottom,rgba(4,18,31,.12) 0%,transparent 18%,transparent 82%,rgba(4,18,31,.12) 100%),var(--panel-bg);padding:calc(var(--safe-top) + .75rem) calc(var(--safe-right) + .75rem) calc(var(--safe-bottom) + .75rem) calc(var(--safe-left) + .75rem);transition:transform .26s var(--ease-out)}.panel-crew{right:0;border-left:1px solid var(--panel-edge);transform:translate(100%)}.panel-crew.is-open{transform:translate(0)}.panel-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid var(--panel-edge)}.panel-head h2{font-size:1.05rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.panel-head-actions{display:flex;align-items:center;gap:.5rem}.buy-mode,.panel-close{border:1px solid var(--panel-edge);border-radius:.5rem;background:transparent;color:var(--paper);font:inherit;font-size:.8rem;font-weight:700;padding:.35rem .7rem;cursor:pointer;transition:transform 90ms var(--ease-out)}.buy-mode:active,.panel-close:active{transform:scale(.94)}.panel-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.4rem;padding-top:.6rem}.crew-row{display:flex;align-items:center;gap:.7rem;width:100%;padding:.55rem .6rem;border:1px solid transparent;border-radius:.7rem;background:#ffffff0a;color:var(--paper);font:inherit;text-align:left;cursor:pointer;transition:transform 90ms var(--ease-out),background .16s var(--ease-out),border-color .16s var(--ease-out)}.crew-row.is-affordable{border-color:#ffb3008c;background:#ffb30017}.crew-row:active:not(:disabled){transform:scale(.98)}.crew-row:disabled{cursor:default}.crew-row.is-locked{opacity:.45}.crew-row.is-maxed{opacity:.75}.crew-row.is-denied{animation:shake .26s var(--ease-out)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.crew-portrait{flex:0 0 auto;width:2.6rem;height:2.6rem;display:block}.crew-portrait svg{width:100%;height:100%;display:block}.crew-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.crew-name{display:flex;align-items:baseline;gap:.4rem;font-size:.92rem;font-weight:700}.crew-role{font-size:.68rem;font-weight:600;opacity:.5;text-transform:uppercase;letter-spacing:.06em}.crew-effect,.crew-lock{font-size:.7rem;opacity:.62}.crew-lock{color:var(--accent);opacity:.8}.crew-buy{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.crew-level{font-size:.66rem;font-weight:700;opacity:.5;letter-spacing:.06em}.crew-cost{font-size:.86rem;font-weight:800;color:var(--salvage)}.is-locked .crew-cost,.is-maxed .crew-cost{color:var(--paper);opacity:.55}.panel-goals{left:0;border-right:1px solid var(--panel-edge);transform:translate(-100%)}.panel-goals.is-open{transform:translate(0)}.goal-list{gap:1.1rem}.goal{display:flex;flex-direction:column;gap:.5rem;padding:.9rem 1rem;border:1px solid var(--panel-edge);border-radius:.8rem;background:#ffffff08}.goal-head{display:flex;align-items:baseline;gap:.6rem;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.goal-head:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:.4rem}.goal-chevron{margin-left:.1rem;font-size:1rem;opacity:.5;transition:transform .18s var(--ease-out)}.goal.is-expanded .goal-chevron{transform:rotate(90deg)}.goal-index{flex:0 0 1.3rem;height:1.3rem;display:grid;place-items:center;border-radius:999px;background:#ffffff1a;font-size:.68rem;font-weight:800}.goal-title{font-size:.92rem;font-weight:800}.goal-count{margin-left:auto;font-size:.86rem;font-weight:800;color:var(--salvage);font-variant-numeric:tabular-nums}.goal-hint{font-size:.8rem;line-height:1.4;opacity:.78}.goal.is-done .goal-title{text-decoration:line-through;opacity:.7}.goal-finished{padding:.6rem .2rem;font-size:.82rem;text-align:center;opacity:.7}.goal-finished[hidden],.goal-detail{display:none}.goal.is-expanded .goal-detail{display:grid;gap:.55rem;padding-top:.5rem;justify-items:stretch}.goal-donut{justify-self:center}.goal-donut .donut{width:4.6rem;height:4.6rem;fill:none}.goal-donut .donut-track{stroke:#ffffff29}.goal-donut .donut-fill{stroke:var(--accent);transition:stroke-dasharray .38s var(--ease-out)}.goal[data-goal=relics] .goal-donut .donut-fill{stroke:var(--relic)}.goal-segments{display:grid;gap:.4rem}.goal-seg{display:flex;align-items:center;gap:.5rem;font-size:.76rem}.goal-seg-label{flex:0 0 7.5rem;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-bar{flex:1;height:.35rem;border-radius:999px;background:#ffffff1a;overflow:hidden}.goal-bar-fill{display:block;height:100%;width:0;border-radius:999px;background:var(--accent);transition:width .38s var(--ease-out)}.goal-seg-count{flex:0 0 2.6rem;text-align:right;font-variant-numeric:tabular-nums;opacity:.75}.goal-claim{flex:0 0 auto;border-radius:.5rem;border:1px solid var(--panel-edge);padding:.22rem .5rem;font:inherit;font-size:.72rem;font-weight:800;cursor:pointer;background:#ffffff0f;color:var(--ink)}.goal-claim[hidden]{display:none}.goal-claim.is-ready{background:var(--accent);border-color:var(--accent);color:#04222a;animation:goal-claim-pulse 1.8s var(--ease-in-out) infinite}.goal-claim.is-claimed{opacity:.45;cursor:default;animation:none}.goal-claim.is-denied{animation:goal-claim-deny .32s var(--ease-out)}.goal-claim-all{justify-self:stretch;width:100%;padding:.4rem;font-size:.78rem}@keyframes goal-claim-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.22)}}@keyframes goal-claim-deny{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.goal-bar-fill,.goal-chevron,.goal-donut .donut-fill{transition:none}.goal-claim.is-ready,.goal-claim.is-denied{animation:none}}.scrim{position:fixed;inset:0;z-index:15;background:#02080e8c;opacity:0;pointer-events:none;transition:opacity .24s var(--ease-out)}.scrim.is-open{opacity:1;pointer-events:auto}.modal{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;color:var(--paper);overflow:visible}.modal::backdrop{background:#02080eb8}.modal-card{width:min(92vw,24rem);max-height:88vh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.9rem;padding:1.25rem;border:1px solid var(--panel-edge);border-radius:1rem;background:#071522;box-shadow:0 24px 60px #0000008c}.modal.is-open .modal-card{animation:modal-in .26s var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.modal-title{font-size:1.15rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.modal-lead{font-size:.85rem;line-height:1.5;opacity:.7}.modal-fine{font-size:.72rem;line-height:1.45;color:#ff8f80}.modal-tabs{display:flex;gap:.35rem;padding-bottom:.7rem;border-bottom:1px solid var(--panel-edge)}.modal-tab{flex:1;padding:.5rem .6rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:var(--paper);font:inherit;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.5;cursor:pointer;transition:opacity .14s var(--ease-out),background .14s var(--ease-out)}.modal-tab.is-active{opacity:1;background:#4dd0e11f;border-color:var(--panel-edge)}.modal-pane{display:flex;flex-direction:column;gap:.9rem}.rules{display:flex;flex-direction:column;gap:.8rem;list-style:none}.rule{display:flex;align-items:baseline;gap:.6rem}.rule-icon{flex:0 0 1rem;text-align:center;font-weight:800;color:var(--accent)}.rule-text{font-size:.8rem;line-height:1.5;opacity:.82}.rule-title{display:block;margin-bottom:.1rem;font-size:.82rem;font-weight:800;letter-spacing:.02em;opacity:1;color:var(--paper)}.rule-text b:not(.rule-title){font-weight:800;color:var(--salvage)}.ledger{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem}.ledger>div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.07)}.ledger dt{opacity:.62}.ledger dd{font-weight:700}.ledger .is-loss dd{color:#ff9d8f}.ledger .is-keep dd{color:var(--accent)}.surface-reward{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:1rem;border-radius:.85rem;background:#ffffff0f}.surface-pearls{font-size:2.4rem;font-weight:800;line-height:1;color:var(--pearl)}.surface-pearls-label{font-size:.7rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;opacity:.6}.surface-bonus{margin-top:.4rem;font-size:.72rem;opacity:.65}.modal-actions{display:flex;gap:.5rem}.modal-actions-stack{flex-direction:column}.btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.75rem 1rem;border:1px solid transparent;border-radius:.7rem;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer;transition:transform 90ms var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn small{font-size:.68em;font-weight:600;opacity:.7}.btn-primary{background:var(--accent);color:var(--ink)}.btn-ghost{background:transparent;border-color:var(--panel-edge);color:var(--paper)}.btn-danger{background:transparent;border-color:#ff786480;color:#ff8f80}.toggle{display:flex;align-items:center;gap:.65rem;font-size:.88rem;font-weight:600;cursor:pointer}.toggle input{width:1.15rem;height:1.15rem;accent-color:var(--accent)}.panel-log{left:0;border-right:1px solid var(--panel-edge);transform:translate(-100%)}.panel-log.is-open{transform:translate(0)}.log-count{font-size:.78rem;font-weight:700;opacity:.6}.log-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.5rem;align-content:start}.log-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.6rem .4rem;border:1px solid transparent;border-radius:.7rem;background:#ffffff0d;color:var(--paper);font:inherit;cursor:pointer;transition:transform 90ms var(--ease-out),background .16s var(--ease-out)}.log-card:active:not(:disabled){transform:scale(.97)}.log-card.is-locked{opacity:.42;cursor:default}.log-card.is-expanded{grid-column:1 / -1;background:#4dd0e11a;border-color:var(--panel-edge)}.log-sci{font-style:italic;font-size:.62rem;line-height:1.1;opacity:.62;text-align:center;overflow-wrap:anywhere}.log-art{width:100%;aspect-ratio:5 / 3;display:grid;place-items:center}.log-art svg{width:100%;height:100%}.log-art path,.passer path,.unlock-toast path{fill-rule:evenodd}.log-art svg{animation:log-float 3.4s var(--ease-in-out) infinite,log-breathe 4.6s var(--ease-in-out) infinite}.log-card:nth-child(3n+2) .log-art svg{animation-delay:-1.8s,-2.6s}.log-card:nth-child(3n) .log-art svg{animation-delay:-3.4s,-4.9s}@keyframes log-float{0%,to{transform:translateY(-7%) rotate(-4deg) scale(.96)}50%{transform:translateY(7%) rotate(4deg) scale(1.04)}}@keyframes log-breathe{0%,to{filter:brightness(.85) saturate(.9)}50%{filter:brightness(1.22) saturate(1.18)}}.log-card.is-expanded .log-art svg{animation-play-state:paused}.log-q{font-size:1.3rem;font-weight:800;opacity:.5}.log-name{font-size:.76rem;font-weight:700;text-align:center;line-height:1.2}.log-depth{font-size:.64rem;opacity:.5}.log-note{margin-top:.35rem;font-size:.76rem;line-height:1.5;text-align:left;opacity:.82}.unlock-flash{position:fixed;inset:0;z-index:40;pointer-events:none;background:#fff;opacity:0}.unlock-flash.is-firing{animation:unlock-wash .62s var(--ease-out)}@keyframes unlock-wash{0%{opacity:0}12%{opacity:.45}to{opacity:0}}.unlock-toasts{position:fixed;left:50%;top:18%;z-index:41;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;pointer-events:none;max-height:64vh;overflow:hidden}.unlock-toast{flex:0 0 auto;display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;border-radius:999px;background:#061420f0;border:1px solid var(--creature, var(--panel-edge));color:var(--paper);font-size:.82rem;font-weight:800;pointer-events:none;animation:toast 3s var(--ease-out) forwards}.unlock-toast svg{width:2rem;height:1.4rem}.unlock-toast path{fill:var(--creature, var(--paper))}.unlock-toast.is-relic{border-radius:.7rem;padding:.55rem 1.1rem}.unlock-toast small{display:block;margin-top:.1rem;font-size:.68rem;font-weight:600;letter-spacing:.04em;opacity:.72}.log-tabs{display:flex;gap:.4rem;padding:0 1rem .6rem;border-bottom:1px solid var(--panel-edge)}.log-tab{flex:1;padding:.45rem .6rem;border:1px solid transparent;border-radius:.5rem;background:transparent;color:var(--paper);opacity:.55;font:inherit;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.log-tab.is-active{opacity:1;border-color:var(--panel-edge);background:#ffffff0f}@media(hover:hover){.log-tab:hover{opacity:.85}}@keyframes toast{0%{opacity:0;transform:translateY(-12px) scale(.94)}10%,80%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(1)}}.log-art svg{perspective:240px}.cg-part{transform-box:view-box;transform-origin:50% 50%;transform-style:preserve-3d}.cg-spec{transform-box:view-box;transform-origin:50% 50%}.log-card{--sweep: 14deg}.log-card.is-expanded{--sweep: 32deg}.log-card.is-animating .cg-part{animation:cg-turn 5.2s var(--ease-in-out) infinite;animation-delay:calc(var(--d, 0) * -.6s)}.log-card.is-animating .cg-spec{animation:cg-spec-turn 5.2s var(--ease-in-out) infinite;animation-delay:calc(var(--d, 0) * -.6s)}@keyframes cg-turn{0%,to{transform:translateZ(calc(var(--d, 0) * 16px)) rotateY(calc(var(--sweep) * -1))}50%{transform:translateZ(calc(var(--d, 0) * 16px)) rotateY(var(--sweep))}}@keyframes cg-spec-turn{0%,to{transform:rotateY(calc(var(--sweep) * .6))}50%{transform:rotateY(calc(var(--sweep) * -.6))}}@media(prefers-reduced-motion:reduce){.log-card.is-animating .cg-part,.log-card.is-animating .cg-spec,.log-art svg{animation:none}}.log-art .log-sprite{width:100%;height:100%;object-fit:contain;animation:log-float 3.4s var(--ease-in-out) infinite,log-breathe 4.6s var(--ease-in-out) infinite}.log-card:nth-child(3n+2) .log-art .log-sprite{animation-delay:-1.1s,-1.5s}.log-card:nth-child(3n+3) .log-art .log-sprite{animation-delay:-2.2s,-3s}.panel-hangar{right:0;border-left:1px solid var(--panel-edge);transform:translate(100%)}.panel-hangar.is-open{transform:translate(0)}.hangar-pearls{font-size:.82rem;font-weight:800;color:var(--pearl)}.hull-row{display:flex;align-items:center;gap:.7rem;padding:.6rem;border:1px solid transparent;border-radius:.7rem;background:#ffffff0a;transition:background .16s var(--ease-out),border-color .16s var(--ease-out),opacity .16s var(--ease-out)}.hull-row:not(.is-owned):not(.is-affordable){opacity:.5}.hull-row.is-affordable{border-color:#ffffff73;background:#ffffff14}.hull-row.is-active{border-color:var(--accent);background:#4dd0e11a}.hull-row.is-queued{border-color:var(--salvage);background:#ffb3001a}.hull-row.is-queued .hull-action{color:var(--salvage)}.hangar-note{flex:0 0 auto;margin-top:.6rem;padding:.5rem .65rem;border-radius:.5rem;background:#ffb3001f;border:1px solid rgba(255,179,0,.3);font-size:.72rem;line-height:1.4;color:var(--salvage)}.hull-row.is-denied{animation:shake .26s var(--ease-out)}.hull-swatch{flex:0 0 auto;width:3.4rem;height:2.4rem;display:grid;place-items:center}.hull-swatch .sub{width:100%;height:auto;animation:none}.hull-swatch .sub-hull{fill:var(--swatch)}.hull-swatch .sub-fin{fill:var(--swatch-fin)}.hull-swatch .sub-port-inner{fill:var(--swatch-port)}.hull-swatch .sub-glow{opacity:0}.hull-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.hull-name{font-size:.92rem;font-weight:800}.hull-flavour{font-size:.7rem;line-height:1.35;opacity:.6}.hull-stats{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.1rem;font-size:.66rem;font-weight:700;opacity:.75}.hull-species{color:var(--salvage)}.hull-req{color:var(--relic)}.hull-action{flex:0 0 auto;min-width:4.6rem;padding:.5rem .6rem;border:1px solid var(--panel-edge);border-radius:.55rem;background:transparent;color:var(--paper);font:inherit;font-size:.76rem;font-weight:800;cursor:pointer;transition:transform 90ms var(--ease-out)}.hull-action:active:not(:disabled){transform:scale(.95)}.hull-action:disabled{opacity:.55;cursor:default}.is-affordable .hull-action{background:var(--pearl);border-color:transparent;color:var(--ink)}.hangar-section{margin-top:1rem;font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;opacity:.7}.hangar-sub{margin-bottom:.5rem;font-size:.68rem;opacity:.5}.refit-row{display:flex;align-items:center;gap:.7rem;width:100%;margin-bottom:.4rem;padding:.5rem .6rem;border:1px solid transparent;border-radius:.65rem;background:#ffffff0a;color:var(--paper);font:inherit;text-align:left;cursor:pointer;transition:transform 90ms var(--ease-out),background .16s var(--ease-out),border-color .16s var(--ease-out)}.refit-row.is-affordable{border-color:#ffffff6b;background:#ffffff14}.refit-row:active:not(:disabled){transform:scale(.98)}.refit-row:disabled{cursor:default}.refit-row:disabled:not(.is-maxed){opacity:.5}.refit-row.is-maxed{opacity:.7}.refit-row.is-denied{animation:shake .26s var(--ease-out)}.refit-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.refit-name{font-size:.86rem;font-weight:700}.refit-level{margin-left:.4rem;font-size:.7rem;font-weight:700;opacity:.5}.refit-desc{font-size:.69rem;line-height:1.35;opacity:.6}.refit-cost{flex:0 0 auto;font-size:.84rem;font-weight:800;color:var(--pearl)}.is-maxed .refit-cost{color:var(--paper);opacity:.5}.is-locked .refit-cost{color:var(--paper);opacity:.55;font-size:.72rem;font-weight:700}.badge-hangar{background:var(--pearl);animation-name:badge-pulse-hangar}@keyframes badge-pulse-hangar{0%{box-shadow:0 0 #fff9}70%{box-shadow:0 0 0 .5rem #fff0}to{box-shadow:0 0 #fff0}}.briefing{position:absolute;left:50%;top:12%;z-index:5;transform:translate(-50%);width:min(88%,22rem);display:flex;flex-direction:column;gap:.5rem;padding:.85rem 1rem .7rem;border:1px solid var(--panel-edge);border-radius:.85rem;background:#04121fd1;box-shadow:0 12px 32px #0006;cursor:pointer;animation:briefing-in .42s var(--ease-out)}.briefing.is-out{animation:briefing-out .38s var(--ease-out) forwards}@keyframes briefing-in{0%{opacity:0;transform:translate(-50%,-14px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes briefing-out{0%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-12px) scale(.98)}}.briefing-title{font-size:.72rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;opacity:.55}.briefing-lines{display:flex;flex-direction:column;gap:.45rem;list-style:none}.briefing-lines li{display:flex;align-items:baseline;gap:.55rem;font-size:.84rem;line-height:1.35}.briefing-lines b{font-weight:800;color:var(--salvage)}.briefing-icon{flex:0 0 1rem;text-align:center;font-weight:800;color:var(--accent)}.briefing-key{margin-left:auto;flex:0 0 auto;padding:.05rem .4rem;border:1px solid rgba(255,255,255,.28);border-bottom-width:2px;border-radius:.3rem;background:#ffffff14;font-family:inherit;font-size:.66rem;font-weight:700;letter-spacing:.06em;opacity:.8}.briefing-goals{display:flex;gap:.9rem;padding-top:.5rem;border-top:1px solid var(--panel-edge);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}.briefing-goal b{font-weight:800;color:var(--salvage);font-variant-numeric:tabular-nums}.briefing-goal.is-done b{color:var(--accent)}.briefing-note{padding-top:.6rem;border-top:1px solid var(--panel-edge);font-size:.95rem;line-height:1.45;opacity:1;text-shadow:0 0 12px rgba(255,179,0,.22)}.briefing-glow{color:var(--salvage);font-weight:800;opacity:1;text-shadow:0 0 6px rgba(255,179,0,.85),0 0 18px rgba(255,179,0,.45);animation:note-glow 1.4s var(--ease-in-out) infinite}@keyframes note-glow{0%,to{text-shadow:0 0 5px rgba(255,179,0,.55),0 0 14px rgba(255,179,0,.25)}50%{text-shadow:0 0 8px rgba(255,179,0,1),0 0 22px rgba(255,179,0,.6)}}.briefing-note+.briefing-goals{padding-top:.35rem;border-top:none}.briefing-dismiss{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;opacity:.35;text-align:right}@media(prefers-reduced-motion:reduce){.briefing,.briefing.is-out,.briefing-glow{animation:none}}
