:root{--water-deep:#3d6068;--water-shallow:#6a958f;--reed-green:#4a5d3a;--dock-warm:#6b4a32;--moonlight:#c8c4b2;--ui-gold:#c8a85c;--ink-charcoal:#1a1a1a;--panel-bg:rgba(17,22,22,.78)}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--water-deep);color:var(--moonlight);font-family:Inter,Manrope,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overscroll-behavior:none}body{min-height:100dvh;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}a,body,button{touch-action:manipulation}button{min-height:44px;border:1px solid rgba(200,168,92,.55);border-radius:8px;background:rgba(200,168,92,.16);color:var(--moonlight);font:inherit}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.home-shell,.route-placeholder{display:grid;min-height:100dvh;place-items:center;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 20%,rgba(200,168,92,.12),transparent 28rem),linear-gradient(145deg,var(--water-shallow),var(--water-deep))}.splash-credit-screen,.splash-title-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;width:100%;min-height:100dvh;border:0;border-radius:0;background:#030711;color:var(--moonlight);cursor:pointer;overflow:hidden;transition:opacity .26s ease}.splash-credit-screen.is-fading,.splash-title-screen.is-fading{opacity:0}.splash-title-image{width:100%;height:100%;object-fit:contain;-moz-user-select:none;user-select:none;-webkit-user-select:none}.splash-credit-screen{padding:24px;background:radial-gradient(circle at 50% 16%,rgba(200,168,92,.2),transparent 28rem),radial-gradient(circle at 24% 78%,rgba(106,149,143,.38),transparent 24rem),linear-gradient(180deg,#07131a,#030711)}.splash-credit-card{display:flex;flex-direction:column;align-items:center;width:min(88vw,390px);padding:30px 24px;border:1px solid rgba(200,168,92,.36);border-radius:18px;background:rgba(17,22,22,.78);box-shadow:0 24px 80px rgba(0,0,0,.42),inset 0 0 42px rgba(200,168,92,.08);text-align:center}.splash-kicker{color:var(--ui-gold);font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.splash-title{margin-top:10px;color:#fff8df;font-family:Georgia,Times New Roman,serif;font-size:1.55rem;font-weight:700;line-height:1.12}.splash-copy{margin-top:16px;color:hsla(49,17%,74%,.78);font-size:.94rem;line-height:1.55}.splash-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}.splash-links a{border:1px solid rgba(200,168,92,.56);padding:9px 14px;color:#f2d98c;font-size:.84rem;text-decoration:none}.splash-hint,.splash-links a{border-radius:999px;font-weight:800}.splash-hint{position:absolute;left:50%;bottom:max(28px,calc(env(safe-area-inset-bottom) + 20px));transform:translateX(-50%);z-index:50;padding:11px 24px;background:rgba(17,22,22,.66);border:1px solid rgba(200,168,92,.55);box-shadow:0 0 18px rgba(200,168,92,.28);color:var(--ui-gold);font-size:1.1rem;letter-spacing:.1em;text-indent:.1em;text-transform:uppercase;text-align:center;white-space:nowrap;animation:splashHintPulse 1.7s ease-in-out infinite}@keyframes splashHintPulse{0%,to{transform:translateX(-50%) scale(1);opacity:.82;box-shadow:0 0 14px rgba(200,168,92,.22)}50%{transform:translateX(-50%) scale(1.06);opacity:1;box-shadow:0 0 26px rgba(200,168,92,.45)}}@media (prefers-reduced-motion:reduce){.splash-hint{animation:none;transform:translateX(-50%);opacity:1}}.begin-gate,.placeholder-copy{width:min(100%,420px);text-align:center}.wordmark{margin:0;color:var(--ui-gold);font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,16vw,5.2rem);font-style:italic;font-weight:400;letter-spacing:0}.tap-copy{margin:20px 0 0;font-size:1rem;font-weight:500}.begin-button{justify-content:center;margin-top:28px;padding:0 18px;text-decoration:none}.begin-button,.offline-status{display:inline-flex;align-items:center}.offline-status{flex-direction:column;gap:8px;margin:28px auto 0;padding:0;color:hsla(49,17%,74%,.7);font-size:.82rem;letter-spacing:.04em}.offline-status[data-status=ready] .offline-status-label{color:var(--ui-gold)}.offline-status-label{display:inline-block}.offline-status-clear{min-height:32px;padding:0 12px;border:1px dashed hsla(49,17%,74%,.32);border-radius:6px;background:transparent;color:hsla(49,17%,74%,.78);font-size:.78rem;cursor:pointer}.offline-status-clear:disabled{opacity:.55;cursor:progress}.pwa-update-prompt{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 16px);transform:translateX(-50%);z-index:1000;min-height:40px;padding:0 18px;border:1px solid var(--ui-gold);border-radius:999px;background:var(--panel-bg);color:var(--ui-gold);font-size:.82rem;letter-spacing:.03em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 20px rgba(0,0,0,.35);animation:pwa-update-rise .28s ease-out}.pwa-update-prompt:active{transform:translateX(-50%) scale(.97)}@keyframes pwa-update-rise{0%{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.dev-page{display:grid;min-height:100dvh;grid-gap:18px;gap:18px;padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));background:linear-gradient(rgba(26,43,48,.82),rgba(26,43,48,.94)),radial-gradient(circle at 30% 10%,rgba(200,168,92,.16),transparent 26rem),var(--water-deep)}@media (min-width:860px){.dev-page{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;padding-inline:32px}}.dev-panel{border:1px solid hsla(49,17%,74%,.18);border-radius:8px;background:var(--panel-bg);padding:18px}.eyebrow{margin:0 0 8px;color:var(--ui-gold);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.dev-panel h1,.dev-panel h2{margin:0 0 14px;font-size:clamp(1.5rem,7vw,2rem);letter-spacing:0}.dev-facts{display:grid;grid-gap:12px;gap:12px;margin:0 0 18px}.dev-facts div{min-width:0}.dev-facts dt{margin-bottom:4px;color:hsla(49,17%,74%,.72);font-size:.82rem}.dev-facts dd{margin:0;overflow-wrap:anywhere}.qr-wrap{display:grid;width:264px;max-width:100%;aspect-ratio:1;place-items:center;margin:0 auto 18px;border-radius:8px;background:#f5f0df;color:var(--ink-charcoal)}.qr-wrap img{display:block;max-width:100%;height:auto}.primary-action{width:100%;padding-inline:14px}.copy-hint{min-height:20px;margin:10px 0 0;color:hsla(49,17%,74%,.8);font-size:.9rem;overflow-wrap:anywhere}.manual-checklist{display:grid;grid-gap:12px;gap:12px;margin:0;padding-left:22px}.manual-checklist label{display:grid;grid-template-columns:24px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.manual-checklist input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--ui-gold)}.game-root{position:relative;width:100%;height:100dvh;overflow:hidden;background:var(--water-deep);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}.game-canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important;touch-action:none}.line-overlay{inset:0;width:100%;height:100%;overflow:visible}.line-overlay,.preview-dot{position:absolute;pointer-events:none}.preview-dot{left:0;top:0;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:999px;background:var(--ui-gold);box-shadow:0 0 12px rgba(200,168,92,.62)}.aim-spread-ring{border-radius:50%;border:1.5px dashed rgba(200,168,92,.5);background:radial-gradient(closest-side,rgba(200,168,92,.1),rgba(200,168,92,0))}.aim-spread-ring,.bite-halo{position:absolute;left:0;top:0;pointer-events:none}.bite-halo{width:0;height:0}.bite-halo-ring{left:0;top:0;width:44px;height:44px;margin:-22px 0 0 -22px;border:2px solid rgba(232,84,84,.98);border-radius:999px;box-shadow:0 0 12px rgba(232,84,84,.75),inset 0 0 6px rgba(232,84,84,.35);transform-origin:center;animation:biteHaloPulse .48s ease-in-out infinite}.bite-halo-ring,.focus-ring,.focus-vignette{position:absolute;pointer-events:none}.focus-vignette{inset:0;background:radial-gradient(circle at 50% 48%,transparent 34%,rgba(10,14,14,.34) 100%);mix-blend-mode:multiply}.focus-ring{left:0;top:0;width:64px;height:64px;border:1px solid hsla(49,17%,74%,.42);border-radius:999px;box-shadow:0 0 18px hsla(49,17%,74%,.16);animation:focusRingFade 4s ease-out forwards}@keyframes focusRingFade{0%{opacity:.56}to{opacity:0}}@keyframes biteHaloPulse{0%{transform:scale(.85);opacity:.85}50%{transform:scale(1.15);opacity:1}to{transform:scale(.85);opacity:.85}}.cue-prompt{position:absolute;left:50%;bottom:calc(max(22%, env(safe-area-inset-bottom)) + 28px);transform:translateX(-50%);padding:10px 18px;border-radius:999px;background:rgba(10,14,14,.78);color:var(--moonlight);font-family:Georgia,Times New Roman,serif;font-size:1.4rem;font-style:italic;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;white-space:nowrap}.cue-prompt.tap{color:#ffd6a8;border:2px solid rgba(232,84,84,.85);box-shadow:0 0 22px rgba(232,84,84,.55);animation:cuePromptTap .32s ease-in-out infinite alternate}.cue-prompt.reel{color:var(--ui-gold);border:1px solid rgba(200,168,92,.55);animation:cuePromptReel .7s ease-in-out infinite alternate}.cue-prompt.ease{color:#ffb0a8;border:2px solid rgba(232,84,84,.7);box-shadow:0 0 22px rgba(232,84,84,.45)}@keyframes cuePromptTap{0%{transform:translateX(-50%) scale(1)}to{transform:translateX(-50%) scale(1.08)}}@keyframes cuePromptReel{0%{transform:translateX(-50%) scale(1);opacity:.72}to{transform:translateX(-50%) scale(1.06);opacity:1}}.tension-bar{position:absolute;right:max(12px,env(safe-area-inset-right));top:22%;bottom:28%;width:10px;border-radius:6px;background:rgba(10,14,14,.55);border:1px solid hsla(49,17%,74%,.22);pointer-events:none;overflow:hidden}.gear-select{position:absolute;left:max(12px,env(safe-area-inset-left));bottom:max(16px,calc(env(safe-area-inset-bottom) + 12px));flex-direction:column;z-index:6;animation:gear-fade-in .28s ease-out}.gear-row,.gear-select{display:flex;gap:8px}.gear-glyph{width:40px;height:40px;display:grid;place-items:center;padding:0;border-radius:10px;background:rgba(10,14,14,.42);border:1px solid hsla(49,17%,74%,.18);color:hsla(49,17%,74%,.5);cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease;-webkit-tap-highlight-color:transparent}.gear-glyph.selected{color:var(--moonlight);border-color:hsla(49,17%,74%,.6);background:rgba(20,28,28,.6);box-shadow:inset 0 -2px 0 0 hsla(43,71%,69%,.7)}@keyframes gear-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.gear-help{align-self:flex-start;width:28px;height:28px;display:grid;place-items:center;padding:0;border-radius:50%;background:rgba(10,14,14,.42);border:1px solid hsla(49,17%,74%,.18);color:hsla(49,17%,74%,.5);font-size:15px;line-height:1;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease;-webkit-tap-highlight-color:transparent}.gear-help.open{color:var(--moonlight);border-color:hsla(49,17%,74%,.6);background:rgba(20,28,28,.6)}.gear-explainer{position:absolute;left:0;bottom:calc(100% + 10px);width:min(360px,calc(100vw - 24px));padding:22px 24px;border-radius:16px;background:rgba(7,11,11,.94);border:1px solid hsla(49,17%,74%,.26);color:hsla(49,17%,74%,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 14px 40px rgba(0,0,0,.55);animation:gear-fade-in .22s ease-out;font-size:15px;line-height:1.55}.gear-explainer-lead{margin:0 0 16px;font-size:14px;color:hsla(49,17%,74%,.66);font-style:italic}.gear-explainer h3{margin:16px 0 7px;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:hsla(43,71%,69%,.82);font-weight:600}.gear-explainer ul{margin:0;padding:0;list-style:none}.gear-explainer li{display:flex;align-items:flex-start;gap:10px;margin:0 0 7px}.gear-explainer li:last-child{margin-bottom:0}.gear-explainer-glyph{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;margin-top:1px;border-radius:8px;background:rgba(20,28,28,.6);border:1px solid hsla(49,17%,74%,.18);color:var(--moonlight)}.gear-explainer-glyph svg{width:20px;height:20px}.gear-explainer b{color:var(--moonlight);font-weight:600}.tension-bar-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,#d8d4c2 0,#e8c878 55%,#c84848);border-radius:6px;transition:height 90ms linear}.tension-bar-mark{position:absolute;left:-3px;right:-3px;height:2px;background:hsla(49,17%,74%,.55)}.tension-bar-mark.danger{background:rgba(232,84,84,.85)}.splash-gate{position:absolute;inset:0;display:grid;width:100%;height:100%;min-height:100dvh;place-items:center;border:0;border-radius:0;background:#000;color:var(--ui-gold);cursor:pointer;overflow:hidden;animation:splashIn .8s ease-out both}.splash-gate:before{position:absolute;inset:0;content:"";background:url(/images/reel-mobile-splash.png?v=20260525-game-splash) 50%/cover no-repeat}.splash-gate span{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}@keyframes splashIn{0%{opacity:0}to{opacity:1}}.debug-hud{position:absolute;left:max(10px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));display:grid;grid-template-columns:repeat(2,minmax(0,auto));grid-gap:3px 10px;gap:3px 10px;max-width:min(92vw,360px);padding:8px 10px;border:1px solid hsla(49,17%,74%,.22);border-radius:6px;background:rgba(10,14,14,.68);color:var(--moonlight);font-size:.68rem;line-height:1.2;pointer-events:none}.restore-overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.68)}.restore-overlay,.result-card{padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));color:var(--moonlight);text-align:center}.result-card{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:radial-gradient(120% 80% at 50% 38%,rgba(20,32,38,.86),rgba(0,0,0,.9));animation:result-rise .62s cubic-bezier(.16,1,.3,1) both}.result-trophy{width:min(74vw,320px);height:min(42vw,188px);margin-bottom:4px;display:grid;place-items:center;animation:trophy-glow 4.5s ease-in-out infinite}.fish-portrait{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.55))}.result-eyebrow{margin:0;font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(200,168,92,.85)}.result-headline{margin:2px 0 0;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:600;letter-spacing:.01em}.result-meta{margin:5px 0 0;font-size:1.05rem}.result-fight{margin:3px 0 0;font-size:.9rem;opacity:.72}.result-lure{margin:3px 0 16px;font-size:.95rem;opacity:.6}.result-lure,.result-miss-text{font-family:Georgia,Times New Roman,serif;font-style:italic}.result-miss-text{width:min(100%,360px);margin:0 0 18px;white-space:pre-line;font-size:1.28rem;line-height:1.4}.result-card button,.result-cast-again{min-width:150px;padding:0 18px}.result-cast-again:disabled{opacity:.45}@keyframes result-rise{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes trophy-glow{0%,to{filter:drop-shadow(0 6px 18px rgba(0,0,0,.55))}50%{filter:drop-shadow(0 0 18px rgba(205,216,224,.22))}}.result-card--inline{position:relative;inset:auto;min-height:380px;border-radius:16px;border:1px solid rgba(205,216,224,.12);background:radial-gradient(120% 90% at 50% 34%,rgba(20,32,38,.92),rgba(8,14,18,.96));padding:24px 18px 22px;animation:none}.caught-preview{min-height:100dvh;padding:28px 18px 64px;background:#0a1014;color:var(--moonlight)}.caught-preview-head{max-width:960px;margin:0 auto 22px;text-align:center}.caught-preview-head h1{margin:0 0 6px;font-size:1.35rem}.caught-preview-head p{margin:0 0 8px;opacity:.7;font-size:.9rem}.caught-preview-head a{color:rgba(200,168,92,.9)}.caught-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));grid-gap:18px;gap:18px;max-width:960px;margin:0 auto}.caught-preview-nav{font-size:.82rem;opacity:.8}.caught-preview-nav a{color:rgba(200,168,92,.9)}.result-actions{display:flex;gap:12px;align-items:center;justify-content:center}.result-share{min-width:120px;padding:0 16px;background:transparent;border:1px solid rgba(200,168,92,.5);color:rgba(232,238,243,.92)}.result-share:disabled{opacity:.6}.result-journal-link{margin-top:12px;font-size:.82rem;letter-spacing:.02em;color:rgba(200,168,92,.82);text-decoration:none}.journal{min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 18px max(40px,env(safe-area-inset-bottom));background:#0a1014;color:var(--moonlight)}.journal-head{max-width:560px;margin:0 auto 18px;text-align:center}.journal-head h1{margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:1.6rem}.journal-totals{margin:0 0 4px;font-size:.9rem;opacity:.7}.journal-best{margin:0 0 8px;font-size:.85rem;letter-spacing:.04em;color:rgba(200,168,92,.85)}.journal-back{font-size:.85rem;color:rgba(200,168,92,.9);text-decoration:none}.journal-empty{max-width:560px;margin:14vh auto 0;text-align:center}.journal-empty p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.3rem}.journal-empty-sub{opacity:.6;font-style:italic}.journal-cta{display:inline-block;margin-top:16px;color:rgba(200,168,92,.92);text-decoration:none}.journal-list{list-style:none;margin:0 auto;padding:0;max-width:560px;display:flex;flex-direction:column;gap:10px}.journal-entry{display:flex;align-items:center;gap:14px;padding:10px 8px;border-bottom:1px solid rgba(205,216,224,.08);color:inherit;text-decoration:none;border-radius:10px;transition:background .12s ease}.journal-entry:active,.journal-entry:hover{background:rgba(205,216,224,.05)}.journal-entry-chevron{flex:0 0 auto;margin-left:4px;font-size:1.5rem;line-height:1;color:rgba(200,168,92,.7)}.journal-entry-fish{width:116px;height:70px;flex:0 0 auto;display:grid;place-items:center}.journal-entry-fish .fish-portrait{width:100%;height:100%;object-fit:contain}.journal-entry-body{flex:1 1 auto;min-width:0}.journal-entry-name{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.2rem;font-weight:600}.journal-entry-meta{margin:2px 0 0;font-size:.92rem}.journal-entry-fight{margin:2px 0 0;font-size:.8rem;opacity:.7}.journal-entry-when{margin:2px 0 0;font-size:.72rem;opacity:.45}.catch-detail{position:relative;min-height:100dvh;background:#0a1014}.catch-detail-missing{position:absolute;inset:0;display:grid;place-content:center;grid-gap:12px;gap:12px;text-align:center;color:var(--moonlight)}.tune-page{min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));background:linear-gradient(145deg,var(--water-deep),var(--water-shallow))}.tune-header{display:grid;grid-gap:10px;gap:10px;margin:0 auto 16px;max-width:920px}.tune-header h1{margin:0;font-size:2rem;letter-spacing:0}.tune-header input,.tune-row input{min-height:44px;border:1px solid hsla(49,17%,74%,.22);border-radius:6px;background:rgba(17,22,22,.72);color:var(--moonlight);font:inherit}.tune-header input{padding:0 12px}.tune-grid{display:grid;grid-gap:8px;gap:8px;max-width:920px;margin:0 auto}.tune-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-gap:8px;gap:8px;align-items:center}.tune-row span{overflow-wrap:anywhere;font-size:.86rem}.tune-row input{min-width:0;padding:0 10px}@media (max-width:640px){.debug-hud,.tune-row{grid-template-columns:1fr}}