@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Unbounded:wght@500;600;700;800&display=swap');

:root {
  --ink: #071b20;
  --ink-soft: #0b252a;
  --paper: #eff5df;
  --muted: #93a9a2;
  --lime: #c8f06d;
  --lime-bright: #dcff86;
  --coral: #ff826c;
  --line: rgba(218, 240, 224, .16);
  --display: 'Unbounded', 'Arial Black', sans-serif;
  --body: 'Manrope', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: var(--body); overflow-x: hidden; }
body.game-open { overflow: hidden; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--lime); outline-offset: 5px; }
::selection { background: var(--lime); color: var(--ink); }
.noise { position: fixed; inset: 0; opacity: .045; pointer-events: none; z-index: 100; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }

.site-header { height: 92px; max-width: 1500px; margin: 0 auto; padding: 0 4vw; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); position: relative; z-index: 10; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-family: var(--display); font-weight: 800; font-size: 20px; letter-spacing: -.8px; }
.brand-mark { width: 36px; color: var(--lime); }
.brand sup { font: 500 8px var(--body); align-self: flex-start; margin: 2px 0 0 -5px; }
.main-nav { display: flex; gap: 35px; font-size: 12px; font-weight: 600; color: #b7c7bd; }
.main-nav a { transition: color .2s; }
.main-nav a:hover { color: var(--lime); }
.header-actions { display: flex; align-items: center; gap: 14px; }
.icon-button { border: 1px solid var(--line); width: 42px; height: 42px; display: grid; place-items: center; background: transparent; border-radius: 50%; cursor: pointer; transition: background .2s, border-color .2s; }
.icon-button:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.4); }
.icon-button svg { width: 20px; height: 20px; }
.sound-off { display: none; }
.sound-muted .sound-on { display: none; }
.sound-muted .sound-off { display: block; }
.button { border: 0; cursor: pointer; display: inline-flex; justify-content: center; align-items: center; gap: 25px; text-transform: uppercase; font-size: 11px; letter-spacing: .8px; font-weight: 800; transition: transform .2s, background .2s, color .2s; }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0) scale(.98); }
.button-small { background: var(--paper); color: var(--ink); min-height: 42px; padding: 0 20px; border-radius: 2px; }
.button-small:hover { background: var(--lime); }
.button-primary { min-height: 58px; padding: 0 27px; color: var(--ink); background: var(--lime); border-radius: 2px; box-shadow: 0 8px 30px rgba(183, 237, 94, .08); }
.button-primary:hover { background: var(--lime-bright); box-shadow: 0 8px 35px rgba(183, 237, 94, .15); }
.button-arrow { font-size: 19px; font-weight: 400; }
.text-link { border: 0; padding: 0; background: none; cursor: pointer; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; border-bottom: 1px solid rgba(238,245,223,.35); padding-bottom: 5px; }
.text-link span { margin-left: 12px; }
.text-link:hover { color: var(--lime); border-color: var(--lime); }

.hero { max-width: 1500px; min-height: 735px; padding: 55px 4vw 65px; margin: 0 auto; display: grid; grid-template-columns: .83fr 1.17fr; gap: 5vw; align-items: center; position: relative; }
.hero-copy { position: relative; z-index: 2; padding-bottom: 8px; }
.eyebrow, .section-index { font-size: 10px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: #a7bcb2; }
.status-dot { display: inline-block; width: 6px; height: 6px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--lime); box-shadow: 0 0 12px var(--lime); animation: pulse 2s infinite; }
h1, h2 { font-family: var(--display); margin: 0; letter-spacing: -.075em; line-height: .92; }
h1 { font-size: clamp(67px, 7.2vw, 112px); margin: 25px 0 28px; }
h1 em, h2 em { color: var(--lime); font-style: normal; }
.hero-description { max-width: 445px; color: #a9bdb4; font-size: 15px; line-height: 1.75; margin: 0; }
.hero-actions { margin-top: 33px; display: flex; align-items: center; gap: 29px; }
.hero-stats { display: flex; gap: 30px; border-top: 1px solid var(--line); margin-top: 42px; padding-top: 23px; max-width: 450px; }
.hero-stats > div { display: flex; gap: 9px; align-items: center; }
.hero-stats strong { color: var(--paper); font-family: var(--display); font-size: 25px; font-weight: 500; letter-spacing: -1px; }
.hero-stats span { color: #789087; text-transform: uppercase; font-size: 8px; line-height: 1.6; letter-spacing: 1px; }

.specimen-stage { height: 570px; position: relative; border: 1px solid rgba(181, 220, 198, .18); border-radius: 48% 48% 4px 4px / 21% 21% 4px 4px; background: radial-gradient(ellipse at 50% 45%, rgba(67, 120, 99, .23), transparent 62%), linear-gradient(155deg, rgba(255,255,255,.025), transparent); overflow: hidden; isolation: isolate; }
.specimen-stage::before { content: ''; position: absolute; inset: 0; opacity: .09; background-image: linear-gradient(rgba(190,230,209,.4) 1px, transparent 1px), linear-gradient(90deg, rgba(190,230,209,.4) 1px, transparent 1px); background-size: 55px 55px; mask-image: linear-gradient(to bottom, black, transparent 85%); }
.stage-topline { position: absolute; top: 26px; left: 9%; right: 7%; display: flex; justify-content: space-between; z-index: 3; font-size: 8px; letter-spacing: 1.7px; color: #8ca49b; }
.live-label { color: var(--lime); }
.live-label i { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); margin-right: 5px; }
.depth-ruler { position: absolute; right: 20px; top: 24%; bottom: 22%; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; color: #66827a; font-size: 7px; letter-spacing: 1px; }
.depth-ruler i { width: 8px; height: 1px; background: #46645d; }
.depth-ruler i:nth-of-type(2n) { width: 4px; }
.hero-fish { width: 105%; height: auto; position: absolute; left: -5%; top: 9%; z-index: 2; overflow: visible; }
.fish-float { animation: fishFloat 5s ease-in-out infinite; transform-origin: center; }
.tail { animation: tailWave 2.2s ease-in-out infinite; transform-origin: 500px 260px; }
.antenna { animation: antenna 3s ease-in-out infinite; transform-origin: 265px 143px; }
.lure { animation: lure 2s ease-in-out infinite; }
.hero-pupil { animation: look 6s ease-in-out infinite; }
.bubbles { animation: bubbles 5s ease-in-out infinite; }
.orbit { position: absolute; border: 1px solid rgba(189, 235, 207, .09); border-radius: 50%; left: 50%; top: 48%; transform: translate(-50%, -50%) rotate(-14deg); }
.orbit-one { width: 79%; height: 49%; }
.orbit-two { width: 55%; height: 75%; transform: translate(-50%, -50%) rotate(31deg); }
.annotation { position: absolute; z-index: 4; display: flex; align-items: center; font-size: 7px; color: #95ada3; letter-spacing: .7px; text-transform: uppercase; line-height: 1.6; }
.annotation span { width: 22px; height: 22px; border: 1px solid #577168; border-radius: 50%; display: grid; place-items: center; font-size: 7px; }
.annotation i { display: block; height: 1px; width: 55px; background: #577168; }
.annotation b { font-weight: 500; }
.annotation-a { left: 7%; top: 22%; }
.annotation-a i { width: 42px; }
.annotation-a b { margin-left: 8px; }
.annotation-b { right: 8%; bottom: 23%; }
.annotation-b b { margin-left: 8px; }
.stage-caption { position: absolute; bottom: 20px; left: 25px; right: 25px; padding-top: 13px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; color: #789088; font-size: 8px; letter-spacing: 1px; z-index: 3; }
.scroll-note { position: absolute; bottom: 18px; left: 4vw; color: #526e67; font-size: 7px; letter-spacing: 1.6px; }
.scroll-note span { margin-left: 12px; color: var(--lime); }

.ticker { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; padding: 17px 0; transform: rotate(-1deg) scale(1.02); background: var(--lime); color: var(--ink); }
.ticker-track { display: flex; align-items: center; gap: 36px; white-space: nowrap; width: max-content; animation: ticker 24s linear infinite; }
.ticker span { font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: -.4px; }
.ticker i { font-style: normal; font-size: 20px; }

.species-section { max-width: 1400px; padding: 130px 4vw 100px; margin: 0 auto; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 45px; }
h2 { font-size: clamp(37px, 4.2vw, 62px); margin-top: 19px; }
.section-heading > p { width: 320px; margin: 0 0 5px; color: #8fa79d; font-size: 13px; line-height: 1.8; }
.species-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.species-card { height: 410px; position: relative; overflow: hidden; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; transition: transform .3s; }
.species-card:hover { transform: translateY(-7px); }
.card-lime { background: #c9ed75; color: #142c25; }
.card-coral { background: #ed806d; color: #3a1e1e; }
.card-blue { background: #8cbbb9; color: #102d2d; }
.card-top { display: flex; justify-content: space-between; font-size: 8px; letter-spacing: 1.2px; font-weight: 800; }
.card-bottom { display: flex; align-items: flex-end; justify-content: space-between; position: relative; z-index: 2; }
.card-bottom h3 { font-family: var(--display); font-size: 25px; margin: 0 0 9px; letter-spacing: -1.5px; }
.card-bottom p { font-size: 10px; line-height: 1.5; max-width: 200px; margin: 0; opacity: .75; }
.danger-scale { font-size: 9px; letter-spacing: 2px; white-space: nowrap; }
.catalog-note { text-align: right; font-size: 9px; color: #6d8980; letter-spacing: .5px; }
.mini-fish { position: absolute; left: 50%; top: 47%; transform: translate(-50%, -50%); width: 230px; height: 180px; transition: transform .4s; }
.species-card:hover .mini-fish { transform: translate(-50%, -50%) rotate(-4deg) scale(1.05); }
.mini-body { position: absolute; width: 155px; height: 130px; background: #335c42; border-radius: 49% 52% 46% 48%; left: 20px; top: 25px; box-shadow: inset 8px 10px 0 rgba(255,255,255,.08), 0 18px 20px rgba(30,60,30,.13); }
.mini-tail { position: absolute; width: 90px; height: 105px; background: #335c42; right: 1px; top: 36px; clip-path: polygon(0 50%, 100% 0, 82% 50%, 100% 100%); }
.mini-eye { position: absolute; left: 29px; top: 26px; width: 48px; height: 52px; background: #f3f7d6; border-radius: 50%; }
.mini-eye::after { content: ''; position: absolute; width: 19px; height: 25px; border-radius: 50%; background: #0b2722; left: 12px; top: 16px; }
.mini-mouth { position: absolute; left: 12px; bottom: 26px; width: 39px; height: 16px; border-bottom: 4px solid #142c25; border-radius: 50%; }
.mini-body b { position: absolute; width: 13px; height: 13px; background: #274c38; border-radius: 50%; right: 35px; top: 45px; }
.mini-body b:nth-of-type(2) { right: 18px; top: 74px; width: 8px; height: 8px; }
.mini-body b:nth-of-type(3) { right: 61px; top: 91px; width: 9px; height: 9px; }
.jaw-body { position: absolute; width: 173px; height: 110px; background: #5b3031; left: 5px; top: 40px; border-radius: 48% 35% 45% 50%; }
.jaw-tail { position: absolute; width: 100px; height: 110px; background: #5b3031; right: -7px; top: 38px; clip-path: polygon(0 50%, 100% 0, 80% 50%, 100% 100%); }
.jaw-body i { position: absolute; width: 44px; height: 44px; border-radius: 50%; background: #f8e5ba; left: 32px; top: 13px; }
.jaw-body i::after { content: ''; position: absolute; width: 17px; height: 21px; border-radius: 50%; background: #23191b; left: 18px; top: 13px; }
.teeth { position: absolute; left: 0; bottom: 19px; color: #ffebc9; font-size: 16px; letter-spacing: 1px; transform: rotate(180deg); }
.jaw-body b { position: absolute; background: #5b3031; width: 26px; height: 50px; top: -29px; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.jaw-body b:nth-of-type(1) { left: 72px; }.jaw-body b:nth-of-type(2) { left: 103px; top: -35px; }.jaw-body b:nth-of-type(3) { left: 130px; top: -20px; }
.oracle-ring { position: absolute; width: 180px; height: 180px; border: 1px solid rgba(16,45,45,.4); border-radius: 50%; left: 27px; top: 0; }
.oracle-ring::after { content: ''; position: absolute; inset: 12px; border: 1px dashed rgba(16,45,45,.35); border-radius: 50%; animation: spin 20s linear infinite; }
.oracle-body { position: absolute; width: 144px; height: 144px; border: 12px solid #244f50; border-radius: 43% 57% 52% 48%; left: 45px; top: 17px; background: #bad5c5; box-shadow: inset 0 0 0 9px #679c91; }
.oracle-body i { position: absolute; width: 63px; height: 70px; border-radius: 50%; background: #eef4d7; left: 28px; top: 22px; }
.oracle-body i::after { content: ''; position: absolute; width: 25px; height: 33px; border-radius: 50%; background: #153e3d; left: 20px; top: 20px; }
.oracle-body b { position: absolute; width: 15px; height: 45px; background: #244f50; bottom: -47px; left: 23px; border-radius: 0 0 100% 0; transform: rotate(13deg); }
.oracle-body b:nth-of-type(2) { left: 50px; height: 57px; transform: rotate(-7deg); }.oracle-body b:nth-of-type(3) { left: 77px; height: 48px; transform: rotate(-15deg); }.oracle-body b:nth-of-type(4) { left: 102px; height: 35px; transform: rotate(-25deg); }

.how-section { max-width: 1400px; margin: 0 auto; padding: 90px 4vw 120px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; border-top: 1px solid var(--line); }
.how-heading h2 { font-size: clamp(36px, 4vw, 58px); }
.how-heading > p { max-width: 360px; color: #8fa79d; font-size: 13px; line-height: 1.8; margin-top: 27px; }
kbd { font: 600 9px var(--body); border: 1px solid #46635c; border-radius: 3px; padding: 2px 5px; margin-left: 3px; color: #b6c9c0; }
.rules-list { border-top: 1px solid var(--line); }
.rules-list article { min-height: 125px; display: grid; grid-template-columns: 38px 1fr 45px; gap: 15px; align-items: center; border-bottom: 1px solid var(--line); }
.rule-number { color: #638077; font-size: 9px; align-self: start; margin-top: 30px; }
.rules-list h3 { font-family: var(--display); font-size: 13px; margin: 0 0 10px; letter-spacing: -.5px; }
.rules-list p { margin: 0; color: #8fa79d; font-size: 11px; line-height: 1.6; max-width: 390px; }
.rule-icon { color: var(--lime); font-family: var(--display); font-size: 24px; text-align: right; }
.how-section > .button { grid-column: 2; justify-self: start; margin-top: -40px; }
.about-section { padding: 100px 4vw 45px; max-width: 1400px; margin: 0 auto; }
.about-section blockquote { font-family: var(--display); font-size: clamp(25px, 3.5vw, 48px); line-height: 1.35; letter-spacing: -2px; margin: 45px 0 85px; }
.about-section blockquote em { color: var(--coral); font-style: normal; }
.about-meta { border-top: 1px solid var(--line); padding-top: 18px; display: flex; justify-content: space-between; font-size: 7px; color: #6d8980; letter-spacing: 1.1px; }
.site-footer { max-width: 1500px; margin: 50px auto 0; height: 105px; padding: 0 4vw; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.site-footer > span { color: #57736b; font-size: 8px; letter-spacing: 1.2px; }
.site-footer .text-link { font-size: 8px; }

.game-screen { position: fixed; inset: 0; z-index: 1000; background: #061b22; display: none; overflow: hidden; touch-action: none; }
.game-screen.active { display: block; }
#game-canvas { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; }
.game-vignette { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 150px rgba(0, 5, 12, .55); }
.game-hud { position: absolute; inset: 0; pointer-events: none; padding: 25px 32px; }
.hud-top { display: flex; justify-content: space-between; align-items: flex-start; }
.hud-brand { font-family: var(--display); font-size: 18px; font-weight: 800; letter-spacing: -1px; }
.hud-brand span { color: var(--lime); font: 8px var(--body); vertical-align: top; margin-left: 3px; }
.score-block { position: absolute; left: 50%; top: 23px; transform: translateX(-50%); text-align: center; }
.score-block > span { display: block; font-size: 7px; letter-spacing: 2px; color: #86a49a; }
.score-block strong { display: block; font-family: var(--display); font-size: 28px; letter-spacing: 2px; margin: 3px 0; }
.score-block small { font-size: 7px; color: #718e85; letter-spacing: 1.5px; }
.score-block small b { color: #a5bbb2; font-weight: 500; }
.hud-actions { display: flex; gap: 8px; pointer-events: auto; }
.hud-actions .icon-button { background: rgba(5, 24, 29, .35); backdrop-filter: blur(8px); }
.evolution-panel { position: absolute; left: 32px; top: 90px; width: 180px; }
.evolution-label { display: flex; justify-content: space-between; font-size: 8px; letter-spacing: 1px; }
.evolution-label span { color: var(--lime); font-weight: 800; }
.evolution-label b { font-weight: 500; color: #8aa59b; }
.progress-track { height: 3px; background: rgba(255,255,255,.13); margin-top: 10px; overflow: hidden; }
.progress-track > div { width: 0; height: 100%; background: var(--lime); box-shadow: 0 0 10px var(--lime); transition: width .25s; }
.progress-hint { display: block; margin-top: 7px; color: #587a72; font-size: 6px; letter-spacing: 1.5px; }
.combo { position: absolute; top: 45%; right: 34px; width: 80px; text-align: right; opacity: 0; transform: translateX(15px); transition: opacity .2s, transform .2s; }
.combo.visible { opacity: 1; transform: translateX(0); }
.combo > span { font-size: 7px; color: #94aca2; letter-spacing: 2px; }
.combo strong { display: block; color: var(--lime); font-family: var(--display); font-size: 37px; letter-spacing: -2px; }
.combo-timer { height: 2px; background: rgba(255,255,255,.12); margin-top: 5px; }
.combo-timer i { display: block; height: 100%; background: var(--lime); width: 100%; }
.dash-panel { position: absolute; bottom: 28px; left: 32px; width: 120px; color: #79968c; font-size: 7px; letter-spacing: 1.4px; }
.dash-track { margin-top: 9px; height: 3px; background: rgba(255,255,255,.13); }
.dash-track i { display: block; width: 100%; height: 100%; background: var(--lime); }
.game-tip { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); color: #6b8b81; font-size: 8px; letter-spacing: .8px; white-space: nowrap; }
.safe-dot, .danger-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; margin: 0 5px 1px 12px; }
.safe-dot { background: var(--lime); box-shadow: 0 0 7px var(--lime); }.danger-dot { background: var(--coral); box-shadow: 0 0 7px var(--coral); }
.mobile-dash { display: none; position: absolute; bottom: 25px; right: 22px; width: 76px; height: 76px; border: 1px solid rgba(200,240,109,.5); border-radius: 50%; background: rgba(9,36,40,.6); color: var(--lime); font-size: 9px; font-weight: 800; letter-spacing: 1px; backdrop-filter: blur(8px); }
.game-modal { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; padding: 25px; background: rgba(2, 13, 18, .7); backdrop-filter: blur(9px); pointer-events: auto; }
.game-modal.visible { display: flex; }
.modal-card { width: min(540px, 100%); padding: 40px; background: #0b252a; border: 1px solid rgba(207, 241, 218, .19); box-shadow: 0 30px 100px rgba(0,0,0,.4); text-align: center; animation: modalIn .35s ease-out; }
.modal-eyebrow { color: var(--lime); font-size: 8px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; }
.modal-card h2 { font-size: clamp(29px, 5vw, 47px); margin: 16px 0; letter-spacing: -2.5px; }
.modal-card > p { color: #90aaa0; font-size: 12px; line-height: 1.7; margin: 0 auto 25px; max-width: 390px; }
.modal-card .button { margin: 8px 4px 0; }
.modal-secondary { background: transparent; border: 1px solid #38534d; color: #a8bcb3; min-height: 58px; padding: 0 22px; }
.results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); margin: 27px 0 20px; }
.results > div { background: #0b252a; padding: 18px 8px; }
.results strong { display: block; font-family: var(--display); font-size: 21px; }
.results span { display: block; color: #77968b; font-size: 7px; letter-spacing: 1.3px; margin-top: 7px; }
.new-record { display: inline-block; color: var(--ink); background: var(--lime); padding: 5px 9px; font-size: 7px; font-weight: 800; letter-spacing: 1px; transform: rotate(-2deg); }
.mutation-card { width: min(850px, 100%); }
.mutation-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 27px; }
.mutation-option { position: relative; min-height: 190px; padding: 25px 18px 20px; border: 1px solid #355149; background: #0d2c30; color: var(--paper); cursor: pointer; text-align: left; transition: background .2s, border-color .2s, transform .2s; }
.mutation-option:hover { background: #163a38; border-color: var(--lime); transform: translateY(-4px); }
.mutation-option .mutation-icon { display: block; color: var(--lime); font-size: 30px; height: 44px; }
.mutation-option strong { display: block; font-family: var(--display); font-size: 12px; margin: 12px 0; letter-spacing: -.4px; }
.mutation-option p { color: #8fa99f; font-size: 10px; line-height: 1.6; margin: 0; }
.mutation-option small { position: absolute; bottom: 13px; right: 14px; color: #577c70; font-size: 8px; }
.mutation-toast { position: absolute; top: 25%; left: 50%; transform: translate(-50%, -15px); padding: 10px 18px; background: var(--lime); color: var(--ink); font-size: 9px; font-weight: 800; letter-spacing: 1.5px; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.mutation-toast.visible { opacity: 1; transform: translate(-50%, 0); }

@keyframes fishFloat { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-16px) rotate(1.5deg); } }
@keyframes tailWave { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(7deg); } }
@keyframes antenna { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } }
@keyframes lure { 0%,100% { opacity: .7; } 50% { opacity: 1; } }
@keyframes look { 0%,35%,100% { transform: translateX(0); } 45%,70% { transform: translateX(17px); } }
@keyframes bubbles { 0%,100% { transform: translateY(8px); opacity: .2; } 50% { transform: translateY(-9px); opacity: .55; } }
@keyframes pulse { 50% { opacity: .4; box-shadow: 0 0 3px var(--lime); } }
@keyframes ticker { to { transform: translateX(-50%); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes modalIn { from { opacity: 0; transform: translateY(15px) scale(.98); } to { opacity: 1; transform: none; } }

@media (min-width: 1500px) { .hero { min-height: calc(100vh - 92px); max-height: 900px; } }
@media (max-width: 1050px) {
  .hero { grid-template-columns: .9fr 1.1fr; gap: 25px; min-height: 650px; }
  .specimen-stage { height: 480px; }
  .hero-fish { top: 15%; }
  .annotation { display: none; }
  .hero-stats { gap: 17px; }
  .hero-stats strong { font-size: 21px; }
  .species-card { height: 355px; }
  .mini-fish { transform: translate(-50%,-50%) scale(.8); }
  .species-card:hover .mini-fish { transform: translate(-50%,-50%) rotate(-4deg) scale(.85); }
  .card-bottom { display: block; }
  .danger-scale { display: block; margin-top: 12px; }
}
@media (max-width: 760px) {
  .site-header { height: 75px; padding: 0 20px; }
  .main-nav { display: none; }
  .brand { font-size: 16px; }.brand-mark { width: 30px; }
  .header-actions { gap: 8px; }.header-actions .icon-button { display: none; }
  .button-small { min-height: 38px; padding: 0 15px; }
  .hero { display: flex; flex-direction: column; padding: 48px 20px 55px; gap: 42px; }
  .hero-copy { width: 100%; }
  h1 { font-size: clamp(64px, 20vw, 100px); margin-top: 22px; }
  .hero-description { font-size: 13px; max-width: 90%; }
  .hero-actions { gap: 20px; flex-wrap: wrap; }
  .hero-stats { max-width: none; justify-content: space-between; gap: 8px; }
  .hero-stats > div { gap: 6px; }.hero-stats strong { font-size: 20px; }.hero-stats span { font-size: 7px; }
  .specimen-stage { width: 100%; height: 430px; }
  .hero-fish { width: 115%; left: -9%; top: 12%; }
  .stage-caption { left: 16px; right: 16px; font-size: 6px; }
  .scroll-note { display: none; }
  .ticker-track { gap: 25px; }.ticker span { font-size: 11px; }
  .species-section { padding: 90px 20px 65px; }
  .section-heading { display: block; }.section-heading > p { width: auto; margin-top: 25px; max-width: 400px; }
  h2 { font-size: 38px; }
  .species-grid { grid-template-columns: 1fr; gap: 12px; }
  .species-card { height: 330px; }
  .mini-fish { transform: translate(-50%,-50%) scale(.9); }
  .card-bottom { display: flex; }.danger-scale { margin-top: 0; }
  .catalog-note { text-align: left; line-height: 1.5; }
  .how-section { display: block; padding: 70px 20px 85px; }
  .rules-list { margin-top: 45px; }.rules-list article { grid-template-columns: 25px 1fr 35px; gap: 8px; }
  .how-section > .button { margin-top: 35px; }
  .about-section { padding: 65px 20px 35px; }.about-section blockquote { letter-spacing: -1.3px; margin: 35px 0 55px; }
  .about-meta { display: block; line-height: 1.8; }.about-meta span { display: block; }
  .site-footer { margin-top: 25px; height: 100px; padding: 0 20px; }.site-footer > span { display: none; }
  .site-footer .text-link { max-width: 140px; text-align: right; line-height: 1.6; }
  .game-hud { padding: 18px; }
  .hud-brand { font-size: 14px; }.hud-actions .icon-button { width: 36px; height: 36px; }
  .score-block { top: 17px; }.score-block strong { font-size: 22px; }
  .evolution-panel { left: 18px; top: 72px; width: 145px; }
  .dash-panel { display: none; }.mobile-dash { display: block; }
  .game-tip { bottom: 19px; font-size: 6px; left: 18px; transform: none; }
  .combo { right: 18px; top: 26%; }
  .modal-card { padding: 28px 20px; }
  .mutation-options { grid-template-columns: 1fr; gap: 7px; }
  .mutation-option { min-height: 94px; padding: 14px 15px 12px 68px; }
  .mutation-option .mutation-icon { position: absolute; left: 19px; top: 21px; }
  .mutation-option strong { margin: 3px 0 7px; }.mutation-option p { font-size: 9px; }
  .mutation-card h2 { margin: 10px 0; }
}
@media (max-height: 650px) and (min-width: 761px) {
  .modal-card { padding: 24px; }.modal-card h2 { margin: 10px; }.results { margin: 15px 0; }
  .mutation-option { min-height: 155px; }.mutation-options { margin-top: 15px; }
}
.hero-description { color: #bbccc3; font-size: 17px; line-height: 1.7; }
.section-heading > p, .how-heading > p { color: #a9bdb3; font-size: 15px; }
.card-bottom p { font-size: 12px; line-height: 1.6; opacity: .85; }
.catalog-note { color: #91a9a0; font-size: 11px; }
.rules-list p { color: #a9bdb3; font-size: 14px; line-height: 1.65; }
.modal-card > p { color: #adc0b7; font-size: 14px; }
.mutation-option p { color: #adc0b7; font-size: 12px; }
.game-tip { color: #96afa5; font-size: 10px; }
.dash-panel { color: #96afa5; font-size: 9px; }
.progress-hint { color: #87a198; font-size: 8px; }
.volume-slider { --volume: 65%; appearance: none; -webkit-appearance: none; width: 78px; height: 18px; margin: 0; background: transparent; cursor: pointer; pointer-events: auto; }
.volume-slider::-webkit-slider-runnable-track { height: 3px; border-radius: 3px; background: linear-gradient(to right, var(--lime) var(--volume), rgba(255,255,255,.18) var(--volume)); }
.volume-slider::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 12px; height: 12px; margin-top: -4.5px; border: 0; border-radius: 50%; background: var(--paper); box-shadow: 0 0 0 3px rgba(200,240,109,.08); }
.volume-slider::-moz-range-track { height: 3px; border-radius: 3px; background: rgba(255,255,255,.18); }
.volume-slider::-moz-range-progress { height: 3px; border-radius: 3px; background: var(--lime); }
.volume-slider::-moz-range-thumb { width: 12px; height: 12px; border: 0; border-radius: 50%; background: var(--paper); }
.volume-slider:focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; border-radius: 3px; }
.hud-actions { position: relative; }
.dash-panel { width: 170px; }
.pause-volume { display: flex; align-items: center; gap: 22px; margin: 0 0 22px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pause-volume > span { flex-shrink: 0; color: #adc0b7; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.pause-volume .volume-slider { flex: 1; width: auto; }
@media (max-width: 760px) {
  .hero-description { font-size: 15px; max-width: 100%; }
  .section-heading > p, .how-heading > p { font-size: 14px; }
  .rules-list p { font-size: 13px; }
  .mutation-option p { font-size: 11px; }
  .game-tip { font-size: 7px; }
  .header-actions .volume-slider { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
