:root{color-scheme:light;color:#263238;background:#f6f3ec;font-family:"M Plus Rounded 1c",Hiragino Maru Gothic ProN,Yu Gothic,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 80% 0,#e6efe4 0,#0000 32rem),#f6f3ec;min-width:320px;min-height:100vh;margin:0}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}.topbar{justify-content:space-between;align-items:center;max-width:1040px;height:72px;margin:auto;padding:0 24px;display:flex}.brand,.text-button,.icon-button{color:#31454a;background:0 0;border:0}.brand{font-size:1rem;font-weight:700}.topbar-actions{align-items:center;gap:8px;display:flex}.coin{color:#826629;background:#f1e4bf;border-radius:999px;padding:7px 10px;font-size:.9rem}.icon-button{border-radius:50%;width:36px;height:36px;font-size:1.2rem}.map-screen,.wardrobe-screen,.settings-screen,.typing-screen,.result-screen{width:min(100% - 32px,920px);margin:28px auto 56px}.map-hero,.screen-heading{background:#dce8e0;border-radius:28px;justify-content:space-between;align-items:center;min-height:190px;padding:32px;display:flex;overflow:hidden}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#52766b;margin:0 0 8px;font-size:.78rem;font-weight:700}.map-hero h1,.screen-heading h1,.result-screen h1,.settings-screen h1{margin:0;font-size:clamp(1.7rem,4vw,2.45rem);line-height:1.3}.map-hero p:not(.eyebrow),.screen-heading p:not(.eyebrow){color:#516366;margin:10px 0 0}.avatar{filter:drop-shadow(0 8px 8px #30463b22);flex:none;width:96px;height:118px;position:relative}.avatar-head{z-index:2;border:3px solid #31454a;border-radius:48% 48% 44% 44%;width:56px;height:55px;position:absolute;top:18px;left:21px}.avatar-body{z-index:1;border:3px solid #31454a;border-radius:42% 42% 18px 18px;width:68px;height:58px;position:absolute;bottom:5px;left:15px}.avatar-eye{z-index:3;background:#31454a;border-radius:50%;width:5px;height:7px;position:absolute;top:42px}.avatar-eye.left{left:40px}.avatar-eye.right{left:58px}.avatar-headmark{z-index:4;text-align:center;color:#d1a341;width:100%;font-size:28px;position:absolute;top:-5px;transform:rotate(-12deg)}.path-line{border-left:3px dashed #a7b79c;height:34px;margin-left:43px}.stage-list{gap:14px;display:grid}.stage-card{background:#fffdf8;border:1px solid #d8d5ca;border-radius:18px;grid-template-columns:48px 1fr auto;align-items:center;gap:16px;padding:20px 22px;display:grid}.stage-card h2{margin:0;font-size:1.07rem}.stage-card p{color:#607073;margin:6px 0;font-size:.91rem}.stage-number{color:#6c958a;font-weight:700}.stage-progress{align-items:center;gap:9px;display:flex}.stage-medals{align-items:center;gap:4px;display:flex}.medal{color:#9aa7a0;background:#f5f4ef;border:1.5px solid #b9c4bd;border-radius:50%;place-items:center;width:21px;height:21px;font-size:.63rem;font-weight:700;display:grid}.medal.earned.careful{color:#725113;background:#f4df9d;border-color:#c29535;box-shadow:0 1px 3px #b6882544}.medal.earned.speed{color:#255f58;background:#bfe0d5;border-color:#57938b;box-shadow:0 1px 3px #43877e44}.medal.earned.gold{color:#5e4107;background:#e9bd48;border-color:#b78119;box-shadow:0 1px 4px #b6882566}.dev-stage-selector{color:#5b7169;border:1px dashed #b8c8bf;border-radius:12px;margin-top:22px;padding:12px 14px;font-size:.82rem}.dev-stage-selector summary{cursor:pointer;font-weight:700}.dev-stage-selector div{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.dev-stage-selector .secondary-button{min-height:32px;padding:5px 9px;font-size:.78rem}.primary-button,.secondary-button,.danger-button{border:1px solid #0000;border-radius:12px;min-height:44px;padding:10px 17px;font-weight:700}.primary-button:active{box-shadow:none;transform:translateY(2px)}.text-button{padding:10px 0;font-weight:700}.danger-button{color:#914b46;background:#fff6f4;border-color:#dfaaa3;margin-top:28px}.typing-screen{margin-top:10px;margin-bottom:24px}.typing-top{color:#657473;justify-content:space-between;font-size:.9rem;display:flex}.typing-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:270px;padding:22px 16px 12px;display:flex}.problem-title{color:#59736d;margin:10px 0 7px;font-weight:700}.problem-text{letter-spacing:.08em;overflow-wrap:anywhere;max-width:100%;max-height:2.4em;margin:0;font-size:clamp(2rem,7vw,3.6rem);font-weight:700;line-height:1.2;overflow:hidden}.input-guide{letter-spacing:.08em;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;min-height:42px;max-height:2.6em;margin:12px 0 0;font-family:Roboto Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1.4rem,4vw,2rem);line-height:1.3;overflow:hidden}.scroll-inner{transition:transform .35s;display:block}.reduce-motion .scroll-inner{transition:none}.input-guide-typed{color:#91a4a0}.input-guide-next{color:#d19b2d;text-underline-offset:8px;text-decoration:underline}.shortcut-button kbd{font:inherit;background:#fff;border:1px solid #aec0b6;border-bottom-width:2px;border-radius:4px;padding:1px 4px;font-size:.9em}.keyboard-area{width:min(100%,650px);min-height:174px;margin:0 auto;position:relative}.keyboard-guide{background:#e8ebe4;border-radius:20px;width:100%;margin:0 auto;padding:13px 16px 12px}.key-row{justify-content:center;gap:5px;margin:4px 0;display:flex}.keycap{color:#61716e;text-align:center;background:#fbfaf6;border:1px solid #c4cbc4;border-bottom-width:3px;border-radius:7px;min-width:34px;padding:7px 5px;font-family:Roboto Mono,ui-monospace,monospace;font-size:.8rem;font-weight:700}.keycap.expected{color:#634b14;background:#f6dfa4;border-color:#c8952e;transform:translateY(-2px);box-shadow:0 3px 7px #c8952e44}.keycap.space{min-width:200px}.guide-companion{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;width:178px;display:flex;position:absolute;top:-8px;left:-108px}.guide-companion .avatar{transform-origin:0 0;width:58px;height:72px;margin:0 0 -20px 10px;transform:scale(.72)}.speech-bubble{color:#46685f;background:#fffdf8;border:1px solid #b8c9bf;border-radius:12px;width:172px;margin:0;padding:8px 10px;font-size:.77rem;font-weight:700;line-height:1.45;box-shadow:0 3px 10px #30463b12}.speech-bubble:before{content:"";border:6px solid #0000;border-right-color:#b8c9bf;position:absolute;top:41px;left:43px;transform:translate(-11px)}.finger-guide{border-top:1px solid #ced7cf;justify-content:center;gap:28px;margin-top:9px;padding-top:8px;display:flex}.hand-group{align-items:center;gap:6px;display:flex}.hand-label{color:#6b7d78;font-size:.7rem;font-weight:700}.hand{width:76px;height:38px;position:relative}.hand .palm{background:#f9faf6;border:1.5px solid #9caea5;border-radius:8px 8px 4px 4px;width:48px;height:18px;position:absolute;bottom:0;left:12px}.hand .finger{background:#f9faf6;border:1.5px solid #9caea5;border-bottom:0;border-radius:7px 7px 0 0;width:10px;position:absolute;bottom:15px}.hand .pinky{height:17px;left:12px}.hand .ring{height:25px;left:24px}.hand .middle{height:30px;left:36px}.hand .index{height:27px;left:48px}.hand .thumb{border-bottom:1.5px solid #9caea5;border-radius:7px;width:11px;height:17px;bottom:3px;left:59px;transform:rotate(42deg)}.hand.right{transform:scaleX(-1)}.hand .finger.active{background:#f6dfa4;border-color:#c8952e;box-shadow:0 0 0 3px #f6dfa477}.hand.right+*{transform:scaleX(-1)}.reward-overlay{z-index:10;backdrop-filter:blur(4px);background:#26363a66;place-items:center;padding:24px;animation:.2s ease-out overlay-in;display:grid;position:fixed;inset:0}.reward-card{text-align:center;background:#fffdf8;border:1px solid #d5dfd5;border-radius:26px;width:min(100%,420px);padding:23px 28px 22px;animation:.3s cubic-bezier(.2,.9,.3,1.1) card-in;box-shadow:0 18px 55px #20333755}.reward-card>.avatar{transform-origin:top;height:72px;margin:0 auto -12px;transform:scale(.62)}.result-glow{color:#d19b2d;height:27px;font-size:2.7rem;line-height:.75;animation:2s ease-in-out infinite float}.reward-card h1{margin:6px 0;font-size:clamp(1.55rem,6vw,2rem);line-height:1.25}.reward-card p:not(.eyebrow){color:#5b6e6a;margin:9px 0;font-size:.9rem}.found-item{color:#6c5722;text-align:left;background:#faf1d6;border:1px solid #e0cf9a;border-radius:14px;grid-template-columns:35px 1fr auto;align-items:center;gap:8px;margin:12px auto 8px;padding:8px 12px;display:grid}.found-item span{color:#c8952e;font-size:1.45rem}.found-item strong{font-size:.9rem}.found-item small{font-weight:700}.new-medals{color:#527068;background:#f0f4ed;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin:10px auto 7px;padding:7px 10px;font-size:.76rem;font-weight:700;display:flex}.new-medals .medal{width:25px;height:25px;font-size:.7rem}.next-route-group{color:#41685f;text-align:left;background:#eaf3ed;border:1px solid #bcd4c8;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:13px 0 8px;padding:10px 11px 10px 14px;display:flex}.next-route-group span,.next-route-group strong{display:block}.next-route-group span{font-size:.72rem;font-weight:700}.next-route-group strong{margin-top:2px;font-size:.96rem}.route-button{flex:none;min-height:36px;padding:7px 10px;font-size:.82rem}.route-button kbd{color:#335c54;font:inherit;background:#f7fcf8;border:1px solid #b3c9be;border-radius:4px;margin-left:3px;padding:1px 4px;font-size:.8em}.result-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:13px;display:flex}.shortcut-button{flex-direction:column;align-items:center;gap:3px;min-width:104px;display:flex}.shortcut-button small{opacity:.82;font-size:.7rem}.primary-button.shortcut-button small{color:#e7f0ec}.reduce-motion *{transition:none!important;animation:none!important}.item-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:22px;display:grid}.item-card{text-align:center;background:#fffdf8;border:1px solid #dbd7cb;border-radius:18px;padding:16px}.item-card h2{margin:9px 0 4px;font-size:1rem}.item-card p{color:#71807d;min-height:20px;margin:0 0 10px;font-size:.82rem}.item-preview{background:var(--item-color,#e4d6a4);color:#735b20;border:2px solid #455e5a;border-radius:50%;place-items:center;width:64px;height:64px;margin:auto;font-size:28px;display:grid}.back-button{margin-top:18px}.settings-screen{max-width:650px}.settings-list{border:1px solid #d8d5ca;border-radius:16px;margin-top:22px;overflow:hidden}.setting-row{color:#31454a;text-align:left;background:#fffdf8;border:0;border-bottom:1px solid #e5e2d9;justify-content:space-between;width:100%;padding:18px;display:flex}.setting-row:last-child{border-bottom:0}@keyframes float{50%{transform:translateY(-6px)rotate(5deg)}}@keyframes overlay-in{0%{opacity:0}}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.96)}}@media (width<=560px){.topbar{padding:0 16px}.brand{font-size:.84rem}.map-screen,.wardrobe-screen,.settings-screen,.typing-screen,.result-screen{width:min(100% - 24px,920px);margin-top:12px}.map-hero,.screen-heading{padding:24px 20px}.avatar{transform-origin:100%;margin-right:-10px;transform:scale(.8)}.stage-card{grid-template-columns:34px 1fr;gap:10px}.stage-card .secondary-button{grid-column:2;justify-self:start}.typing-stage{min-height:235px;padding-top:15px}.keyboard-area{min-height:174px;padding:0}.guide-companion{width:180px;display:block;top:-45px;left:4px}.guide-companion .avatar{margin:0;position:absolute;top:0;left:0;transform:scale(.57)}.speech-bubble{width:160px;padding:6px 9px;font-size:.7rem;position:absolute;top:2px;left:42px}.speech-bubble:before{display:none}.keycap{min-width:27px;padding:7px 3px;font-size:.7rem}.keycap.space{min-width:160px}.finger-guide{gap:10px}.hand-group{gap:3px}.hand-label{font-size:.62rem}.hand{transform-origin:50%;width:67px;transform:scale(.86)}.hand.right{transform:scaleX(-1)scale(.86)}.item-grid{grid-template-columns:repeat(2,1fr)}}:root{color-scheme:dark;color:#e8f1ed;background:#031426}body{background:radial-gradient(circle at 72% -16%,#0f4160 0,#0000 34rem),radial-gradient(circle at 12% 90%,#082d46 0,#0000 40rem),#031426}.brand,.text-button,.icon-button{color:#e8f1ed}.coin{color:#ffd36e;background:#172335;border:1px solid #9b7225}.icon-button{border:1px solid #29485a}.icon-button:hover,.brand:hover{background:#143348}.map-screen,.wardrobe-screen,.settings-screen,.typing-screen,.result-screen,.aquarium-screen{color:#e8f1ed}.map-hero,.screen-heading{background:linear-gradient(135deg,#09243a,#051a2c);border:1px solid #245169}.eyebrow{color:#6ec5cf}.map-hero p:not(.eyebrow),.screen-heading p:not(.eyebrow){color:#b9d0d3}.map-lead{color:#a7c6c5;margin:24px 0 11px;font-size:.86rem;font-weight:700}.stage-card{background:#071d30;border-color:#254b61}.stage-card.current{border-color:#48a6ad;box-shadow:0 5px 18px #0c7d8a35}.stage-card.locked{color:#6d8591;background:#071724}.stage-card p{color:#a7c1c5}.stage-card small{color:#88a6ac}.stage-number{color:#5bc5d0}.medal{color:#73919a;background:#0b2636;border-color:#547783}.medal.earned.careful{color:#ffe19b;background:#584720}.medal.earned.speed{color:#bdeff0;background:#174b55;border-color:#579fa9}.medal.earned.gold{color:#fff0aa;background:#7b5514}.primary-button{color:#efffff;background:#126c7a;box-shadow:0 3px #084653}.secondary-button{color:#c6edf0;background:#0b2a3c;border-color:#31647a}.danger-button{color:#ffc0b7;background:#391d27;border-color:#9a5753}.hero-action{margin-top:18px}.hero-action small{color:#bde9eb;margin-left:7px}.sea-hero{min-height:250px;position:relative}.sea-hero>div:first-child{z-index:1;max-width:48%;position:relative}.aquarium-preview{isolation:isolate;background:linear-gradient(155deg,#0c4160 0%,#062a45 52%,#04192e 100%);border:1px solid #34758d;border-radius:22px;min-height:230px;position:relative;overflow:hidden;box-shadow:inset 0 0 48px #02111f,0 12px 28px #01101e55}.sea-hero .aquarium-preview{width:46%;min-width:310px}.aquarium-preview:before{content:"";z-index:-1;background:linear-gradient(110deg,#0000 22%,#83d1e017 28%,#0000 35%),radial-gradient(at 50% 0,#a4e5f01a,#0000 55%);position:absolute;inset:0}.aquarium-preview p{color:#b4d3d4;text-align:center;place-items:center;margin:0;padding:36px;font-size:.9rem;display:grid;position:absolute;inset:0}.water-shine{opacity:.58;background:repeating-linear-gradient(100deg,#0000 0 18px,#b2f1fa1a 19px 25px,#0000 26px 45px);height:24%;position:absolute;inset:0 0 auto}.aquarium-sand{z-index:-1;clip-path:polygon(0 39%,12% 52%,29% 38%,44% 63%,62% 41%,78% 60%,100% 35%,100% 100%,0 100%);background:linear-gradient(#14506499,#0c3442);height:22%;position:absolute;bottom:0;left:0;right:0}.fish-visual{width:52px;height:34px;animation:fish-swim var(--swim-duration,5s) ease-in-out var(--swim-delay,0s) infinite alternate;display:block;position:absolute}.fish-visual.roaming{transform-origin:0 0;transform:scale(var(--fish-scale,1));will-change:transform;animation:none}.fish-art{position:absolute;inset:0}.fish-visual.is-flipped .fish-art{transform:scaleX(-1)}.fish-visual.movement-drift{animation-name:fish-drift}.fish-visual.small{width:43px;height:29px}.fish-visual.large{width:62px;height:40px}.fish-visual .fish-body{border:2px solid color-mix(in srgb, var(--fish), #081b29 38%);background:linear-gradient(145deg, var(--accent) 0 18%, var(--fish) 20% 100%);border-radius:52% 44% 45% 52%;position:absolute;inset:6px 6px 5px 11px}.fish-visual .fish-tail{background:var(--fish);border-radius:3px 70%;width:17px;height:16px;position:absolute;top:10px;left:1px;transform:rotate(-45deg)}.fish-visual .fish-eye{z-index:1;background:#082030;border-radius:50%;width:4px;height:4px;position:absolute;top:13px;right:10px}.fish-visual.long{width:64px}.fish-visual.tall{width:44px;height:48px}.fish-visual.tall .fish-body{border-radius:45% 45% 55% 55%}.fish-visual.muted{opacity:calc(.22 + var(--progress,.3));filter:grayscale(.7)blur(1px)}.aquarium-screen{width:min(100% - 32px,920px);margin:28px auto 56px}.aquarium-heading{align-items:flex-end}.aquarium-screen>.aquarium-preview{min-height:390px;margin-top:18px}.collection-heading{justify-content:space-between;align-items:end;gap:16px;margin:26px 0 12px;display:flex}.collection-heading h2{margin:0;font-size:1.22rem}.fish-collection{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.fish-card{background:#071d30;border:1px solid #254b61;border-radius:15px;align-items:center;gap:12px;min-height:110px;padding:14px;display:flex}.fish-card .fish-visual,.fish-found-item .fish-visual{flex:none;animation:none;position:relative;top:auto!important;left:auto!important}.unknown-fish-visual{flex:0 0 58px;place-items:center;width:58px;height:58px;display:grid}.unknown-fish-visual img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated}.fish-card h3{margin:0 0 5px;font-size:.96rem}.fish-card p,.fish-card small{color:#a7c6c5;margin:0;font-size:.78rem}.fish-card small{color:#f0ca72;margin-top:5px;display:block}.empty-collection{color:#a7c6c5;text-align:center;border:1px dashed #396076;border-radius:15px;grid-column:1/-1;margin:0;padding:28px}.typing-top{color:#aac4c7}.sea-typing-stage{background:radial-gradient(at 82% 16%,#12617a55,#0000 34%),#04182b;border:1px solid #16465d;border-radius:22px;position:relative;overflow:hidden}.sea-typing-stage .eyebrow,.sea-typing-stage .problem-title,.sea-typing-stage .problem-text,.sea-typing-stage .input-guide{z-index:1;position:relative}.problem-title{color:#96c7c8}.input-guide-rest{color:#e8f1ed}.fishing-progress{z-index:0;pointer-events:none;position:absolute;inset:0}.fishing-progress .fishing-line{width:1px;height:var(--line-height);background:linear-gradient(#bce5d7,#c8952e);position:absolute;top:0;right:17%}.fishing-progress .fish-visual{opacity:var(--fish-opacity);left:var(--fish-left)!important;top:var(--fish-top)!important}.keyboard-guide{background:#092539;border:1px solid #34576a}.keycap{color:#d1e2df;background:#0d3045;border-color:#416778}.keycap.expected{color:#fff2c3;background:#7b5818;border-color:#d6a93e}.speech-bubble{color:#d0e5df;background:#082237;border-color:#3a6676}.finger-guide{border-color:#31576a}.hand .palm,.hand .finger{background:#0d3045;border-color:#68909a}.hand-label{color:#a5c4c4}.reward-overlay{background:#00111caa}.reward-card{background:#061d30;border-color:#2b6074;box-shadow:0 18px 55px #000b14bb}.reward-card p:not(.eyebrow){color:#bed5d4}.found-item{color:#d9eeea;background:#0b2c40;border-color:#34657a}.fish-found-item{grid-template-columns:48px 1fr auto}.new-medals{color:#bce1dc;background:#0d3040}.next-route-group{color:#c8ebe3;background:#0b3440;border-color:#2c6975}.route-button kbd,.shortcut-button kbd{color:#d7f2ed;background:#082438;border-color:#4d7d88}.wardrobe-screen .screen-heading{background:linear-gradient(135deg,#09243a,#051a2c)}.item-card{background:#071d30;border-color:#254b61}.item-card.equipped{background:#093540;border-color:#3d8990}.item-card p{color:#a7c6c5}.setting-row{color:#e8f1ed;background:#071d30;border-color:#254b61}.settings-list{border-color:#254b61}.setting-row strong{color:#82d0d1}@keyframes fish-swim{0%{transform:translate(0)rotate(0)}50%{transform:translate(calc(var(--swim-x,7px) * .55), var(--swim-y,-7px)) rotate(var(--swim-rot,0deg))}to{transform:translate(var(--swim-x,7px), calc(var(--swim-y,-7px) * .35)) rotate(0deg)}}@keyframes fish-drift{0%{transform:translate(0)rotate(0)}50%{transform:translate(calc(var(--swim-x,7px) * .3), calc(var(--swim-y,-7px) * 1.7)) rotate(calc(var(--swim-rot,0deg) * -1))}to{transform:translate(calc(var(--swim-x,7px) * .5), calc(var(--swim-y,-7px) * .8)) rotate(0deg)}}@media (width<=640px){.sea-hero{display:block}.sea-hero>div:first-child{max-width:none}.sea-hero .aquarium-preview{width:auto;min-width:0;min-height:180px;margin-top:19px}.aquarium-screen{width:min(100% - 24px,920px);margin-top:12px}.aquarium-screen>.aquarium-preview{min-height:270px}.fish-collection{grid-template-columns:1fr}.collection-heading{align-items:center}.fishing-progress .fish-visual{transform:scale(.72)}.topbar-actions{gap:4px}.icon-button{width:32px;height:32px}}.stage-progress{flex-wrap:wrap}.fish-discovery{color:#83cfd1!important}.fish-card.undiscovered{background:#061827;border-style:dashed}.fish-card{position:relative;overflow:hidden}.fish-card.rare{background:linear-gradient(160deg,#241b06,#0a1c2c 60%);border-color:#e6b23c}.fish-card.rare.undiscovered{border-style:dashed}.rare-ribbon{color:#3a2606;letter-spacing:.1em;background:linear-gradient(120deg,#ffd66b,#e79a2b);border-bottom-left-radius:10px;padding:2px 10px;font-size:.62rem;font-weight:700;position:absolute;top:0;right:0;box-shadow:0 2px 8px #0006}.unknown-fish-visual.rare{position:relative}.unknown-fish-visual.rare img{filter:brightness(.75)sepia(.5)hue-rotate(-18deg)saturate(1.4)}.unknown-rare-mark{color:#ffd66b;text-shadow:0 1px 4px #000a;place-items:center;font-size:1.5rem;font-weight:700;display:grid;position:absolute;inset:0}.reward-card.fish-reward.rare{border-color:#e6b23c;box-shadow:0 18px 55px #7a5510aa,0 0 0 1px #ffd66b55}.rare-eyebrow{color:#ffcf5f!important}.map-region-tabs{flex-wrap:wrap;gap:8px;margin:17px 0 -2px;display:flex}.map-region-tab{color:#b9dadd;background:#071d30;border:1px solid #315f73;border-radius:999px;min-height:36px;padding:7px 13px;font-weight:700}.map-region-tab.selected{color:#efffff;background:#0d4656;border-color:#63c8ce}.intro-screen{background:radial-gradient(at 50% 15%,#15516a 0,#0000 34rem),#031426;place-items:center;min-height:100vh;padding:24px;display:grid}.intro-card{text-align:center;background:#071f34;border:1px solid #2d667b;border-radius:28px;width:min(100%,430px);padding:35px 30px 28px;box-shadow:0 20px 60px #000b14aa}.intro-card .avatar{margin:0 auto 2px}.intro-card h1{margin:4px 0 10px;font-size:clamp(1.75rem,7vw,2.3rem);line-height:1.32}.intro-card p:not(.eyebrow){color:#bed5d4;margin:0;line-height:1.65}.intro-start{width:min(100%,250px);margin:22px auto 4px}.intro-skip{color:#9bc8ca;margin:4px auto 0;display:block}.first-aquarium-button{width:100%;margin:8px 0 2px}.first-catch-card{padding-top:34px}.first-catch-card .reward-fish{width:78px;height:54px;margin:4px auto 8px;animation:5s ease-in-out infinite alternate fish-swim;display:block;position:relative;top:auto!important;left:auto!important}.first-catch-card p:not(.eyebrow){margin:4px 0 17px}.first-next-stage-button{width:100%;min-height:39px;margin-top:8px;padding-block:7px;font-size:.83rem}.first-next-stage-button small{color:#92c7c8;margin-top:2px;font-size:.7rem;display:block}.first-next-stage-button kbd{color:#d7f2ed;font:inherit;background:#082438;border:1px solid #4d7d88;border-radius:4px;padding:1px 4px}.tank-tabs{flex-wrap:wrap;gap:8px;margin:17px 0 -2px;display:flex}.tank-tab{color:#b9dadd;background:#071d30;border:1px solid #315f73;border-radius:999px;min-height:36px;padding:7px 13px;font-weight:700}.tank-tab.selected{color:#efffff;background:#0d4656;border-color:#63c8ce}.tank-fish-list{grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:12px;display:grid}.tank-fish-card{background:#071d30;border:1px solid #2a566b;border-radius:15px;grid-template-columns:58px 1fr auto;align-items:center;gap:10px;min-height:104px;padding:13px;display:grid}.tank-fish-card .fish-visual{animation:none;position:relative;top:auto!important;left:auto!important}.tank-fish-card h3{margin:0 0 5px;font-size:.92rem}.tank-fish-card p{color:#a7c6c5;margin:0;font-size:.76rem}.release-button,.release-result-button{color:#9cc8c9;text-underline-offset:3px;background:0 0;border:0;font-size:.73rem;font-weight:700;text-decoration:underline}.release-button:hover,.release-result-button:hover{color:#f0ca72}.fish-book-heading{margin-top:30px}.reward-fish-slot{width:fit-content;margin:0 auto;display:block;position:relative}.new-fish-badge{z-index:4;color:#fff1b8;letter-spacing:.06em;background:#7a5414;border:1px solid #f0c75b;border-radius:999px;padding:3px 6px;font-size:.58rem;font-weight:700;position:absolute;top:-13px;right:-21px;transform:rotate(8deg)}.fish-found-item{position:relative}.card-badge{top:-8px;right:8px}.release-result-button{margin:0 auto 5px}.first-catch-card .new-fish-badge{top:-14px;right:-23px}.fish-reward .reward-fish{width:72px;height:48px;margin:0 auto 7px;animation:5s ease-in-out infinite alternate fish-swim;display:block;position:relative;top:auto!important;left:auto!important}@media (width<=640px){.tank-fish-list{grid-template-columns:1fr}.tank-fish-card{grid-template-columns:54px 1fr}.tank-fish-card .release-button{grid-column:2;justify-self:start;padding:0}}.release-confirm-overlay{z-index:30;backdrop-filter:blur(5px);background:#000e18bb;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.release-confirm-card{text-align:center;background:#08243a;border:1px solid #3a6d80;border-radius:22px;width:min(100%,340px);padding:26px 25px 22px;box-shadow:0 20px 60px #000a13cc}.release-confirm-card .fish-visual{width:66px;height:44px;margin:0 auto 8px;animation:5s ease-in-out infinite alternate fish-swim;display:block;position:relative;top:auto!important;left:auto!important}.release-confirm-card h2{margin:3px 0 9px;font-size:1.35rem;line-height:1.35}.release-confirm-card p:not(.eyebrow){color:#bdd4d4;margin:0;font-size:.86rem;line-height:1.55}.release-confirm-actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:20px;display:grid}.release-confirm-actions .primary-button,.release-confirm-actions .secondary-button{min-width:0;padding-inline:8px}.app-shell{isolation:isolate;min-height:100vh;position:relative}.app-shell:has(.typing-screen){flex-direction:column;justify-content:safe center;align-items:center;display:flex}body:has(.screen-aquarium){background:#253f43}.app-shell.screen-aquarium:before{content:"";z-index:-1;image-rendering:pixelated;pointer-events:none;background-color:#253f43;background-image:linear-gradient(#071f2652 0%,#04161d8f 100%),url(/backgrounds/aquarium-room.png);background-position:50%,50%;background-size:cover,cover;position:fixed;inset:0}.screen-aquarium .topbar,.screen-aquarium .screen-heading,.screen-aquarium .collection-heading{text-shadow:0 1px 4px #132c32}body:has(.region-backdrop-tidepool){background:radial-gradient(circle at 50% 45%,#176e74 0%,#0d4857 48rem,#062d3d 76rem)}.app-shell.region-backdrop-tidepool:before{content:"";z-index:-1;width:100%;height:clamp(360px,42.9vw,820px);image-rendering:pixelated;pointer-events:none;background-color:#76cbc7;background-image:url(/backgrounds/tidepool.png);background-position:bottom;background-size:cover;position:fixed;bottom:-1px;left:0;right:0;mask-image:linear-gradient(#0000 0%,#0003 18%,#000b 42%,#000 62% 100%)}.region-backdrop-tidepool .brand,.region-backdrop-tidepool .text-button,.region-backdrop-tidepool .icon-button{color:#f4fff9;text-shadow:0 1px 4px #073744}.region-backdrop-tidepool .coin{color:#fff0ac;background:#23626bd9;border-color:#7cb5a2}.region-backdrop-tidepool .icon-button{background:#185665a3;border-color:#75aaa2}.region-tidepool .map-hero{background:linear-gradient(135deg,#277681d6,#144d60ca);border-color:#8fc6b4;box-shadow:0 14px 34px #03263166}.region-tidepool .map-hero .eyebrow,.region-tidepool .typing-stage-name{color:#bce8c2}.region-tidepool .map-hero p:not(.eyebrow){color:#ddf1e8}.region-tidepool .map-hero .primary-button{background:#2b8b85;box-shadow:0 3px #17635f}.region-tidepool .map-lead{color:#ddf4e8;text-shadow:0 1px 4px #073744}.region-tidepool .stage-card{background:linear-gradient(105deg,#185160e8,#103d4fe8);border-color:#63969a;box-shadow:0 8px 22px #0326314f}.region-tidepool .stage-card.current{border-color:#a4d9c5;box-shadow:0 8px 24px #2b857273}.region-tidepool .stage-card:nth-child(3n+2){background:linear-gradient(105deg,#1d5d68e8,#14495ae8)}.region-tidepool .stage-number{color:#b9e7b7}.region-tidepool .stage-card p{color:#cbe0da}.region-tidepool .stage-card small{color:#b2cec7}.region-tidepool .stage-card .secondary-button{color:#effff8;background:#1c5c68;border-color:#7db1a9}.region-tidepool .map-region-tab{color:#dff2ec;background:#174b59d9;border-color:#679a99}.region-tidepool .map-region-tab.selected{color:#fff;background:#2c7e79;border-color:#a7d9c5}.region-tidepool .aquarium-preview{image-rendering:pixelated;background-color:#76cbc7;background-image:linear-gradient(#f0fff01f 0%,#17475638 100%),url(/backgrounds/tidepool.png);background-position:50%;background-size:cover;border-color:#9bcfbc;box-shadow:inset 0 0 30px #17475652,0 12px 28px #03263155}.region-tidepool .aquarium-preview:before{background:linear-gradient(#f1fff22b 0%,#0000 34%,#16455224 100%)}.region-tidepool .aquarium-preview p{color:#f4fff9;text-shadow:0 1px 5px #174756}.region-tidepool .water-shine{opacity:.14}.region-tidepool .aquarium-sand{display:none}.region-tidepool .sea-typing-stage{background-color:#155968;background-image:linear-gradient(#1b6570bd 0%,#104657d9 100%);border-color:#7fb2a9;box-shadow:0 14px 34px #03263166}.region-tidepool .sea-typing-stage .problem-title{color:#d9eee7}.region-tidepool .keyboard-guide{background:#164d5de8;border-color:#6fa29f;box-shadow:0 10px 26px #03263155}.region-tidepool .keycap{color:#eaf5f0;background:#1b5b69;border-color:#70a19f}.region-tidepool .keycap.expected{color:#fff5cf;background:#8a682b;border-color:#e1bc68}.region-tidepool .speech-bubble{color:#e9f5ef;background:#185463e8;border-color:#75aaa1}.region-tidepool .fishing-progress .fishing-line{background:linear-gradient(#f1fff1,#edce76)}body:has(.region-backdrop-shallows){background:radial-gradient(circle at 50% 45%,#0d6374 0%,#0a4158 48rem,#05283b 76rem)}.app-shell.region-backdrop-shallows:before{content:"";z-index:-1;width:100%;height:clamp(360px,42.9vw,820px);image-rendering:pixelated;pointer-events:none;background-color:#0a596f;background-image:url(/backgrounds/shallows.png);background-position:bottom;background-size:cover;position:fixed;bottom:-1px;left:0;right:0;mask-image:linear-gradient(#0000 0%,#0003 18%,#000b 42%,#000 62% 100%)}.region-backdrop-shallows .brand,.region-backdrop-shallows .text-button,.region-backdrop-shallows .icon-button{color:#effffb;text-shadow:0 1px 4px #063043}.region-backdrop-shallows .coin{color:#fff0ac;background:#0c5261d9;border-color:#5ca6a5}.region-backdrop-shallows .icon-button{background:#0b4a5aa3;border-color:#5c9ca6}.region-shallows .map-hero{background:linear-gradient(135deg,#0b6070d4,#0a4055c7);border-color:#74bbb7;box-shadow:0 14px 34px #01182266}.region-shallows .screen-heading{background:linear-gradient(135deg,#0d4b56,#082c43);border-color:#397f83}.region-shallows .map-hero p:not(.eyebrow){color:#d1eeea}.region-shallows .map-hero .primary-button{background:#168492;box-shadow:0 3px #0a5d68}.region-shallows .map-lead{color:#c5efe8;text-shadow:0 1px 4px #063043}.region-shallows .stage-card{background:linear-gradient(105deg,#0c4357e8,#0a354ae8);border-color:#4f8995;box-shadow:0 8px 22px #0323344f}.region-shallows .stage-card.current{border-color:#80d5cf;box-shadow:0 8px 24px #0b718073}.region-shallows .stage-card:nth-child(3n+2){background:linear-gradient(105deg,#105064e8,#0b3b50e8)}.region-shallows .stage-number{color:#8ce4dc}.region-shallows .stage-card p{color:#c1dddd}.region-shallows .stage-card small{color:#a9cbca}.region-shallows .stage-card .secondary-button{color:#e7fffb;background:#105064;border-color:#68aeb1}.region-shallows .map-region-tab{color:#d2eeea;background:#0b4254d9;border-color:#57939e}.region-shallows .map-region-tab.selected{color:#fff;background:#147381;border-color:#8adbd3}.region-shallows .aquarium-preview{image-rendering:pixelated;background-color:#0a596f;background-image:linear-gradient(#06334808 0%,#03283a2e 100%),url(/backgrounds/shallows.png);background-position:50%;background-size:cover;border-color:#72c8bd;box-shadow:inset 0 0 32px #03243566,0 12px 28px #01101e55}.region-shallows .aquarium-preview:before{background:linear-gradient(#d9fff21a 0%,#0000 35%,#02283a1f 100%)}.region-shallows .water-shine{opacity:.18}.region-shallows .aquarium-sand{display:none}.region-shallows .sea-typing-stage{background-color:#0a5264;background-image:linear-gradient(#0c5b6ab8 0%,#073e52d4 100%);border-color:#6eb9b7;box-shadow:0 14px 34px #01182266}.region-shallows .sea-typing-stage .problem-title{color:#c9efea}.region-shallows .keyboard-guide{background:#0b4358e8;border-color:#5b9da5;box-shadow:0 10px 26px #02233355}.region-shallows .keycap{color:#e2f3ef;background:#10536a;border-color:#5993a0}.region-shallows .keycap.expected{color:#fff4c8;background:#896421;border-color:#e0b557}.region-shallows .speech-bubble{color:#e0f3ee;background:#0d4c5ee8;border-color:#5c9e9f}.region-shallows .fishing-progress .fishing-line{background:linear-gradient(#e4fff2,#e2c66f)}.app-shell:is(.region-backdrop-coral-forest,.region-backdrop-sea-cave,.region-backdrop-deep-sea):before{content:"";z-index:-1;width:100%;height:clamp(360px,42.9vw,820px);image-rendering:pixelated;pointer-events:none;background-position:bottom;background-size:cover;position:fixed;bottom:-1px;left:0;right:0;mask-image:linear-gradient(#0000 0%,#0003 18%,#000b 42%,#000 62% 100%)}.region-backdrop-coral-forest .brand,.region-backdrop-coral-forest .text-button,.region-backdrop-coral-forest .icon-button,.region-backdrop-sea-cave .brand,.region-backdrop-sea-cave .text-button,.region-backdrop-sea-cave .icon-button,.region-backdrop-deep-sea .brand,.region-backdrop-deep-sea .text-button,.region-backdrop-deep-sea .icon-button{color:#efffff;text-shadow:0 1px 4px #020d18}body:has(.region-backdrop-coral-forest){background:radial-gradient(circle at 50% 45%,#21576a 0%,#123d54 48rem,#08283d 76rem)}.app-shell.region-backdrop-coral-forest:before{background-color:#16566a;background-image:url(/backgrounds/coral-forest.png)}body:has(.region-backdrop-sea-cave){background:radial-gradient(circle at 50% 45%,#15394b 0%,#0b2638 48rem,#041521 76rem)}.app-shell.region-backdrop-sea-cave:before{background-color:#0b2c40;background-image:url(/backgrounds/sea-cave.png)}body:has(.region-backdrop-deep-sea){background:radial-gradient(circle at 50% 45%,#0a1b32 0%,#050e20 48rem,#01050d 76rem)}.app-shell.region-backdrop-deep-sea:before{background-color:#061226;background-image:url(/backgrounds/deep-sea.png)}.region-coral-forest .map-hero,.region-coral-forest .screen-heading{background:linear-gradient(135deg,#5b3045,#17374a);border-color:#9a5f68}.region-coral-forest .aquarium-preview{image-rendering:pixelated;background-color:#16566a;background-image:linear-gradient(#ffd9b814 0%,#32192c35 100%),url(/backgrounds/coral-forest.png);background-position:50%;background-size:cover;border-color:#c77a72;box-shadow:inset 0 0 48px #32192c99,0 12px 28px #01101e55}.region-coral-forest .aquarium-preview:before{background:linear-gradient(110deg,#0000 17%,#fff1c84a 25%,#0000 34%),radial-gradient(at 50% 0,#ffdca75c,#0000 60%)}.region-coral-forest .aquarium-sand{display:none}.region-coral-forest .water-shine{opacity:.11}.region-coral-forest .sea-typing-stage{background:radial-gradient(at 82% 16%,#df8b7055,#0000 36%),#173348;border-color:#a85f69}.region-coral-forest .fishing-progress .fishing-line{background:linear-gradient(#fff3d8,#ef9b78)}.region-coral-forest .stage-card{background:linear-gradient(105deg,#151f35,#10283a);border-color:#65475b}.region-coral-forest .stage-card.current{border-color:#df8d7b;box-shadow:0 5px 18px #ba5f6b35}.region-coral-forest .stage-number{color:#f2a183}.region-coral-forest .stage-card:nth-child(3n+2){background:linear-gradient(105deg,#1c2438,#173040)}.region-sea-cave .map-hero,.region-sea-cave .screen-heading{background:linear-gradient(135deg,#23323c,#101d2b);border-color:#4c6470}.region-sea-cave .aquarium-preview{image-rendering:pixelated;background-color:#0b2c40;background-image:linear-gradient(#b9e8ff0a 0%,#01070d30 100%),url(/backgrounds/sea-cave.png);background-position:50%;background-size:cover;border-color:#5d7684;box-shadow:inset 0 0 60px #01070d,0 12px 28px #00060c66}.region-sea-cave .aquarium-preview:before{background:linear-gradient(96deg,#0000 38%,#cfe9ff2e 43%,#cfe9ff12 47%,#0000 52%),radial-gradient(at 44% 0,#a8d4f03d,#0000 52%)}.region-sea-cave .aquarium-sand{display:none}.region-sea-cave .water-shine{opacity:.07}.region-sea-cave .sea-typing-stage{background:radial-gradient(at 26% 8%,#9fd0ea38,#0000 40%),#101f2a;border-color:#55707e}.region-sea-cave .fishing-progress .fishing-line{background:linear-gradient(#dff2ff,#7fb3c9)}.region-sea-cave .stage-card{background:linear-gradient(105deg,#16222c,#101c26);border-color:#3d5461}.region-sea-cave .stage-card.current{border-color:#8fc4dd;box-shadow:0 5px 18px #5f93aa35}.region-sea-cave .stage-number{color:#93cbe4}.region-sea-cave .stage-card:nth-child(3n+2){background:linear-gradient(105deg,#1a2733,#14202b)}.region-deep-sea .map-hero,.region-deep-sea .screen-heading{background:linear-gradient(135deg,#141d33,#070c18);border-color:#2f4a63}.region-deep-sea .aquarium-preview{image-rendering:pixelated;background-color:#061226;background-image:linear-gradient(#4fd8c808 0%,#01040a30 100%),url(/backgrounds/deep-sea.png);background-position:50%;background-size:cover;border-color:#3a5578;box-shadow:inset 0 0 72px #01040a,0 12px 28px #00030966}.region-deep-sea .aquarium-preview:before{background:radial-gradient(at 68% 12%,#4fd8c83a,#0000 46%),radial-gradient(at 22% 82%,#3a6fd42a,#0000 44%)}.region-deep-sea .aquarium-sand{display:none}.region-deep-sea .water-shine{opacity:.035}.region-deep-sea .sea-typing-stage{background:radial-gradient(at 74% 12%,#3fd8c033,#0000 38%),#0a1122;border-color:#37527a}.region-deep-sea .fishing-progress .fishing-line{background:linear-gradient(#b8f0e4,#4f8fb0)}.region-deep-sea .stage-card{background:linear-gradient(105deg,#111a2e,#0b1526);border-color:#2c4262}.region-deep-sea .stage-card.current{border-color:#5fd6c4;box-shadow:0 5px 18px #3f9fa035}.region-deep-sea .stage-number{color:#6fe0cc}.region-deep-sea .stage-card:nth-child(3n+2){background:linear-gradient(105deg,#131d33,#0d1728)}@media (width<=560px){.app-shell.screen-aquarium:before{background-position:50%,22%}.input-guide{letter-spacing:.04em;max-width:100%;font-size:clamp(1.05rem,5.2vw,1.4rem)}.keyboard-guide{padding-inline:7px}.key-row{gap:2px}.keycap{min-width:22px;padding-inline:2px}}.fish-visual.has-sprite{width:60px;height:60px}.fish-visual.has-sprite.small{width:52px;height:52px}.fish-visual.has-sprite.large{width:64px;height:64px}.fish-sprite{background-image:var(--sprite-image);image-rendering:pixelated;animation:fish-sprite-frames var(--sprite-duration,1s) step-end infinite;animation-delay:var(--sprite-delay,0s);background-position:0 0;background-repeat:no-repeat;background-size:400% 100%;position:absolute;inset:0}.fish-card .fish-visual.has-sprite,.tank-fish-card .fish-visual.has-sprite{width:58px;height:58px}.fish-found-item .fish-visual.has-sprite{width:48px;height:48px}.first-catch-card .reward-fish.has-sprite,.fish-reward .reward-fish.has-sprite{width:80px;height:80px}.release-confirm-card .fish-visual.has-sprite{width:70px;height:70px}@keyframes fish-sprite-frames{0%{background-position-x:0%}25%{background-position-x:33.333%}50%{background-position-x:66.667%}75%,to{background-position-x:100%}}@keyframes keycap-pop{0%{transform:translateY(0)scale(1)}25%{transform:translateY(3px)scale(.92)}60%{transform:translateY(-5px)scale(1.1)}to{transform:translateY(0)scale(1)}}@keyframes keycap-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.keyboard-guide .keycap.pressed{color:#eafffb;background:#12586f;border-color:#7fd4c6;animation:.2s ease-out keycap-pop}.keyboard-guide .keycap.wrong{color:#ffdcd5;background:#7a2723;border-color:#e2604f;animation:.32s ease-in-out keycap-shake}.reduce-motion .keyboard-guide .keycap.pressed,.reduce-motion .keyboard-guide .keycap.wrong{animation:none}.problem-text-typed{color:#7f9d99}@media (prefers-reduced-motion:reduce){.fish-visual,.fish-sprite,.keyboard-guide .keycap.pressed,.keyboard-guide .keycap.wrong{animation:none!important}}ruby{ruby-align:center;line-height:1}rt{color:inherit;letter-spacing:.02em;font-size:.36em;font-weight:700;line-height:1}@supports (background:-webkit-named-image(i)){rt{transform:translateY(.5em)}}.stage-medals{gap:6px}.medal-tooltip{cursor:help;outline:none;place-items:center;display:inline-grid;position:relative}.medal-tooltip:before,.medal-tooltip:after{z-index:30;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s,transform .12s,visibility .12s;position:absolute}.medal-tooltip:before{content:"";background:#eff8f5;border-bottom:1px solid #75b7b3;border-right:1px solid #75b7b3;width:8px;height:8px;bottom:calc(100% + 6px);right:8px;transform:translateY(3px)rotate(45deg)}.medal-tooltip:after{content:attr(data-tooltip);color:#12313b;letter-spacing:.02em;text-align:left;white-space:normal;background:#eff8f5;border:1px solid #75b7b3;border-radius:5px 5px 5px 1px;width:max-content;max-width:min(190px,100vw - 24px);padding:7px 9px;font-size:.7rem;font-weight:700;line-height:1.45;bottom:calc(100% + 10px);right:-4px;transform:translateY(3px);box-shadow:3px 3px #00172266}.medal-tooltip:hover:before,.medal-tooltip:hover:after,.medal-tooltip:focus-visible:before,.medal-tooltip:focus-visible:after{opacity:1;visibility:visible;transform:translateY(0)rotate(45deg)}.medal-tooltip:hover:after,.medal-tooltip:focus-visible:after{transform:translateY(0)}.medal-tooltip:focus-visible{outline-offset:3px;outline:2px solid #f0ca72}.medal{--medal-border:#547783;--medal-face:#0b2636;--medal-ink:#73919a;--medal-detail:#466570;isolation:isolate;background:var(--medal-border);width:28px;height:28px;color:var(--medal-ink);clip-path:polygon(4px 0,calc(100% - 4px) 0,100% 4px,100% calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,0 calc(100% - 4px),0 4px);border:0;border-radius:0;place-items:center;display:grid;position:relative}.medal:before{content:"";z-index:0;background:var(--medal-face);clip-path:polygon(3px 0,calc(100% - 3px) 0,100% 3px,100% calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,0 calc(100% - 3px),0 3px);position:absolute;inset:2px}.medal-pattern{z-index:1;fill:currentColor;width:18px;height:18px;display:block;position:relative}.medal-pattern-detail{fill:var(--medal-detail)}.medal.earned.careful,.medal.earned.speed,.medal.earned.gold{background:var(--medal-border);color:var(--medal-ink);box-shadow:none;border:0}.medal.earned.careful{--medal-border:#d6a43d;--medal-face:#584720;--medal-ink:#ffe19b;--medal-detail:#f6c956;filter:drop-shadow(2px 2px #241b0c)}.medal.earned.speed{--medal-border:#61b5bc;--medal-face:#174b55;--medal-ink:#c9ffff;--medal-detail:#59d6d8;filter:drop-shadow(2px 2px #08242b)}.medal.earned.gold{--medal-border:#f1c85c;--medal-face:#7b5514;--medal-ink:#fff0aa;--medal-detail:#f7bd32;filter:drop-shadow(2px 2px #342207)}.new-medals .medal{width:32px;height:32px}.new-medals .medal-pattern{width:21px;height:21px}button:focus-visible{outline-offset:3px;outline:3px solid #f0ca72}.ui-icon{flex:none;display:block}.topbar{border-bottom:1px solid #1c4257;height:78px}.brand,.nav-button{color:#e8f1ed;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:7px 10px;font-weight:700;display:inline-flex}.brand{font-size:.92rem}.nav-button{color:#c4dad9;flex-direction:column;gap:1px;min-width:58px;font-size:.66rem}.brand:hover,.nav-button:hover{color:#fff;background:#143348}.topbar-actions{gap:3px}.coin{border-radius:7px;align-items:center;gap:4px;font-weight:700;display:inline-flex}.region-backdrop-shallows .nav-button{color:#effffb;text-shadow:0 1px 4px #063043}.region-backdrop-tidepool .nav-button{color:#f4fff9;text-shadow:0 1px 4px #073744}.primary-button,.secondary-button,.danger-button{border-radius:7px}.text-button{align-items:center;gap:3px;display:inline-flex}.map-screen,.wardrobe-screen,.settings-screen,.typing-screen,.aquarium-screen{width:min(100% - 40px,980px)}.map-hero{border-radius:4px 4px 32px;min-height:290px;padding:38px}.map-hero-copy{z-index:2;width:47%;max-width:410px;position:relative}.map-hero h1{letter-spacing:.02em;margin:2px 0 11px;font-size:clamp(2.6rem,6vw,4rem);line-height:1.08}.map-hero-copy>p:not(.eyebrow){max-width:34em;font-size:1rem;line-height:1.8}.aquarium-feature{width:48%;min-width:330px;padding-bottom:21px;position:relative}.sea-hero .aquarium-feature .aquarium-preview{width:100%;min-width:0;min-height:230px}.aquarium-attached-button{z-index:5;color:#efffff;background:#0d4055;border:1px solid #67aeba;border-radius:5px;align-items:center;gap:8px;min-height:47px;padding:9px 13px 9px 12px;display:flex;position:absolute;bottom:0;right:18px;box-shadow:0 8px 20px #00172299}.aquarium-attached-button strong{font-size:.9rem}.aquarium-attached-button small{color:#b9dcdd;border-left:1px solid #5d8995;padding-left:8px;font-weight:700}.region-navigation{border-top:1px solid #21495d;border-bottom:1px solid #21495d;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;min-height:73px;margin:18px 0 8px;display:grid}.region-arrow-slot{justify-content:flex-start;min-width:0;display:flex}.region-arrow-slot.next-slot{justify-content:flex-end}.region-arrow{color:#d8efec;text-align:left;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;min-height:48px;padding:5px 2px;display:flex}.region-arrow.next{text-align:right}.region-arrow:hover{color:#fff;border-bottom-color:#74cbc9}.region-arrow strong{margin-top:2px;font-size:1.2rem;display:block}.region-dots{justify-content:center;align-items:stretch;gap:3px;display:flex}.region-dot{color:#78989e;background:0 0;border:0;border-bottom:2px solid #0000;min-width:74px;min-height:40px;padding:5px 9px;font-size:.9rem;font-weight:700}.region-dot span{letter-spacing:.08em;font-family:Roboto Mono,ui-monospace,monospace;font-size:.58rem;display:block}.region-dot.selected{color:#efffff;border-bottom-color:#68c4c5}.map-screen.region-tidepool .region-navigation{border-color:#4f8788}.map-screen.region-tidepool .region-dot{color:#a9c9c3}.map-screen.region-tidepool .region-dot.selected{color:#f4fff9;border-bottom-color:#a7d9c5}.section-intro{margin:38px 0 14px}.section-intro .eyebrow{margin-bottom:4px}.section-intro h2{margin:0;font-size:clamp(1.65rem,4vw,2.35rem);line-height:1.25}.map-screen .stage-list{background:linear-gradient(100deg,#06283edb,#0a3b4fc4);border-top:1px solid #3a6475;border-bottom:1px solid #244b60;gap:0;padding-inline:0;display:grid;position:relative;box-shadow:0 18px 42px #00162344}.map-screen .stage-card,.map-screen.region-shallows .stage-card,.map-screen.region-coral-forest .stage-card{border-radius:0;grid-template-columns:58px minmax(0,1fr) auto;gap:18px;min-height:124px;padding:24px 28px;box-shadow:none!important;background:0 0!important;border-top:0!important;border-bottom:1px solid #294e61!important;border-left:4px solid #0000!important;border-right:0!important}.map-screen .stage-card.current{background:linear-gradient(90deg,#0c536044,#0000 58%)!important;border-left-color:#6bc8c7!important}.map-screen.region-tidepool .stage-list{background:linear-gradient(100deg,#164b59e6,#103f50d9);border-color:#55898d;box-shadow:0 18px 42px #0326314d}.map-screen.region-tidepool .stage-card{border-bottom-color:#46757b!important}.map-screen.region-tidepool .stage-card.current{background:linear-gradient(90deg,#398f7b4d,#0000 58%)!important;border-left-color:#a4d9c5!important}.map-screen .stage-card.locked{opacity:.58}.stage-number{border:1px solid #3c6978;border-radius:50%;place-items:center;width:42px;height:42px;font-family:Roboto Mono,ui-monospace,monospace;font-size:.78rem;display:grid}.stage-copy h3{margin:0;font-size:1.18rem;line-height:1.45}.stage-copy>p{color:#a7c1c5;max-width:46em;margin:6px 0 9px;font-size:.9rem;line-height:1.6}.stage-progress{row-gap:6px}.stage-action{color:#bce7e7;background:0 0;border:0;border-bottom:1px solid #487688;align-items:center;gap:5px;min-height:42px;padding:8px 5px 7px 12px;font-weight:700;display:flex}.stage-action:hover{color:#fff;border-bottom-color:#7ad7d3}.stage-action.primary{color:#fff;background:#126c7a;border:1px solid #39929b;border-radius:6px;padding-inline:14px 9px;box-shadow:0 3px #084653}.map-screen.region-tidepool .stage-action{color:#dff2ec;border-bottom-color:#6b9d98}.map-screen.region-tidepool .stage-action.primary{background:#2b817c;border-color:#72b3a8;box-shadow:0 3px #195f5c}.screen-heading{border-radius:0;min-height:180px;padding:24px 0 28px;background:0 0!important;border:0!important;border-bottom:1px solid #285064!important}.screen-heading h1{margin:0;font-size:clamp(2.1rem,5vw,3.3rem);line-height:1.18}.screen-heading p:not(.eyebrow){max-width:42em;font-size:.96rem;line-height:1.75}.item-card{border-radius:4px 18px 4px 4px}.aquarium-main{margin-top:24px;padding-bottom:24px;position:relative}.aquarium-screen>.aquarium-main .aquarium-preview{border-radius:4px 4px 26px;min-height:410px;margin:0}.aquarium-depart-button{z-index:6;justify-content:space-between;align-items:center;gap:14px;min-width:190px;display:flex;position:absolute;bottom:0;right:20px;box-shadow:0 9px 22px #00131eaa,0 3px #084653}.collection-heading{border-bottom:1px solid #2c5366;padding-bottom:9px}.collection-heading h2{font-size:1.55rem}.fish-card,.tank-fish-card{border-radius:4px 14px 4px 4px}.tank-fish-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tank-fish-card{grid-template-columns:58px minmax(0,1fr)}.tank-fish-card .release-button{grid-column:2;justify-self:start;padding:0}.tank-fish-card p{line-height:1.75}.fish-card .release-button{margin-top:7px;padding:0;display:inline-block}.typing-screen{margin-top:0;margin-bottom:14px;padding-top:14px}.typing-top{grid-template-columns:1fr auto 1fr;align-items:center;min-height:0;margin-bottom:14px;display:grid}.typing-top .exit-lesson-button{justify-self:start}.exit-lesson-button{color:#e8f1ed;background:#0b2b40cc;border:1px solid #2f6b83;border-radius:999px;gap:4px;padding:9px 16px 9px 11px;font-size:.92rem}.exit-lesson-button:hover{color:#fff;background:#12435e;border-color:#5ba9bd}.exit-lesson-button:active{transform:translateY(1px)}.region-backdrop-shallows .exit-lesson-button{color:#e8f1ed;text-shadow:none}.region-backdrop-shallows .exit-lesson-button:hover{color:#fff}.typing-stage-name{justify-content:center;align-items:center;gap:8px;min-width:0;margin:0;font-size:.86rem;display:flex}.typing-stage-label{min-width:0}.typing-stage-number{color:#5bc5d0;letter-spacing:.06em;border:1px solid #2f6b83;border-radius:999px;padding:1px 7px;font-family:Roboto Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.typing-count{letter-spacing:.08em;white-space:nowrap;color:#fff;font-size:.8rem}.typing-count strong{color:#f0ca72;font-size:1.12rem}.typing-stage{height:220px;padding:16px 20px 14px}.sea-typing-stage{border-radius:4px 4px 30px}.problem-title{margin:7px 0 5px;font-size:1rem}.problem-text{font-size:max(2rem, calc(clamp(2.5rem, 6.4vw, 3.9rem) * 12 / max(var(--problem-length,12), 12)))}.input-guide{font-size:max(1.5rem, calc(clamp(1.65rem, 4vw, 2.25rem) * 24 / max(var(--guide-length,24), 24)));margin-top:10px}.keyboard-section{margin-top:18px}.keyboard-section-label{color:#8eb7b8;letter-spacing:.12em;grid-template-columns:1fr auto 1fr;align-items:center;gap:13px;width:min(100%,760px);margin:0 auto 11px;font-size:.72rem;font-weight:700;display:grid}.keyboard-section-label>.section-rule{background:#31566a;height:1px}.keyboard-area{width:min(100%,720px)}.keyboard-guide{background:#071e31;border-radius:7px;padding:11px 20px 9px;box-shadow:0 16px 36px #00111d66}.keyboard-guide .key-row{margin:2px 0}.keyboard-guide .finger-guide{margin-top:5px;padding-top:6px}.guide-companion{top:-12px;left:-96px}.reward-card{border-radius:8px 8px 28px;position:relative}.fish-reward{padding:30px 28px 24px}.fish-reward .reward-fish{margin-bottom:12px}.fish-reward h1{margin:2px 0 9px}.fish-reward .result-message{margin:0 0 17px}.fish-reward .new-medals{margin:0 auto 17px}.fish-reward .next-route-group{margin:0 0 12px}.dialog-close{color:#c9dfdf;background:#09283b;border:1px solid #31596c;border-radius:50%;place-items:center;width:38px;height:38px;padding:0;display:grid;position:absolute;top:11px;right:11px}.dialog-close:hover{color:#fff;border-color:#6ebfc1}.first-aquarium-button{justify-content:center;align-items:center;gap:8px;display:flex}.shortcut-button{border-radius:6px;min-width:132px}.intro-card p:not(.eyebrow){line-height:2}@media (width<=760px){.map-screen,.wardrobe-screen,.settings-screen,.typing-screen,.aquarium-screen{width:min(100% - 24px,980px)}.topbar{padding:0 10px}.brand{padding-inline:6px}.nav-button{min-width:48px;padding-inline:4px}.coin{padding-inline:7px}.map-hero{padding:28px 20px 32px;display:block}.map-hero-copy{width:auto;max-width:none}.map-hero h1{font-size:clamp(2.45rem,13vw,3.7rem)}.aquarium-feature{width:auto;min-width:0;margin-top:24px}.region-navigation{grid-template-columns:1fr auto 1fr;gap:5px}.region-arrow strong{font-size:.76rem}.region-arrow small{font-size:.57rem}.region-dots{gap:0}.region-dot{width:32px;min-width:32px;padding-inline:2px;font-size:0}.region-dot span{font-size:.58rem}.map-screen .stage-card,.map-screen.region-shallows .stage-card,.map-screen.region-coral-forest .stage-card{grid-template-columns:42px minmax(0,1fr);gap:11px;padding:20px}.stage-number{width:34px;height:34px;font-size:.68rem}.stage-copy h3{font-size:1.04rem}.stage-action{grid-column:2;justify-self:start;margin-top:3px}.screen-heading{padding-inline:4px}.screen-heading h1{font-size:clamp(1.95rem,9vw,2.7rem)}.aquarium-screen>.aquarium-main .aquarium-preview{min-height:280px}.aquarium-depart-button{min-width:174px;right:12px}.typing-stage{height:auto;min-height:220px;padding-inline:12px}.problem-text{font-size:max(1.75rem, calc(clamp(2.25rem, 12vw, 3.45rem) * 12 / max(var(--problem-length,12), 12)))}.keyboard-section{margin-top:30px}.keyboard-section-label{margin-bottom:55px}.guide-companion{top:-45px;left:4px}}@media (width<=430px){.coin{display:none}.brand span{font-size:.76rem}.nav-button span{font-size:.6rem}.topbar-actions{gap:0}.aquarium-attached-button{right:10px}.region-arrow{gap:2px}.region-arrow .ui-icon{width:18px}.region-arrow strong{text-overflow:ellipsis;white-space:nowrap;max-width:64px;overflow:hidden}}.keyboard-area{box-sizing:border-box}.guide-companion{z-index:2;pointer-events:none;width:280px;height:210px;display:block;position:absolute;inset:auto auto -5px -100px}.guide-turtle{width:150px;height:auto;image-rendering:pixelated;filter:drop-shadow(0 4px 2px #00111d66);animation:3.2s ease-in-out infinite guide-turtle-bob;display:block;position:absolute;bottom:10px;left:0;transform:translateY(2px)}.typing-screen .guide-companion .speech-bubble{box-sizing:border-box;color:#eef6e9;letter-spacing:.015em;white-space:pre-line;overflow-wrap:anywhere;background:#061b29;border:2px solid #8a7444;border-radius:12px 12px 12px 4px;width:max-content;max-width:235px;margin:0;padding:10px 14px;font-size:.82rem;font-weight:700;line-height:1.55;position:absolute;bottom:122px;left:0;box-shadow:0 4px #00111dcc,0 9px 22px #00111d66}.speech-bubble:before,.speech-bubble:after{content:"";border-style:solid;width:0;height:0;position:absolute;top:auto;left:78%;transform:translate(-50%)}.speech-bubble:before{border-width:13px 10px 0;border-color:#8a7444 #0000 #0000;bottom:-13px}.speech-bubble:after{border-width:10px 8px 0;border-color:#061b29 #0000 #0000;bottom:-9px}@keyframes guide-turtle-bob{0%,to{transform:translateY(2px)}50%{transform:translateY(-5px)}}.reduce-motion .guide-turtle{animation:none;transform:none}@media (prefers-reduced-motion:reduce){.guide-turtle{animation:none;transform:none}}@media (width<=760px){.keyboard-section-label{margin-bottom:11px}.keyboard-area{padding-top:72px}.guide-companion{width:238px;height:auto;inset:0 auto -3px -14px}.guide-turtle{width:118px}.speech-bubble{width:max-content;max-width:210px;padding:8px 10px;font-size:.72rem;line-height:1.45;top:0;bottom:auto;left:8px}.speech-bubble:before,.speech-bubble:after{left:64%}}
