:root{--paper:#f8f5ee;--ink:#244d60;--muted:#7c9294;--line:#d7e1dd;--scene:#dff2ef;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--ink);outline-offset:5px}.page{max-width:1200px;padding:0 48px;margin:0 auto}.masthead{height:106px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:11px;font-size:25px;font-weight:760;letter-spacing:-1.15px;text-decoration:none;color:var(--ink)}.wordmark svg{width:39px;height:39px;stroke:currentColor;fill:none;stroke-width:2.1;stroke-linecap:round}.wordmark svg circle{fill:currentColor;stroke:none}.wordmark-dot{color:#8d9484}.edition{font:9px/1.9 var(--sans);letter-spacing:1.9px;text-align:right}.edition span{display:block;color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:flex-end;padding:46px 0 34px}.eyebrow{font-size:9px;letter-spacing:2.25px;margin:0 0 18px;display:flex;align-items:center;gap:9px}.tiny-star{font-size:17px;line-height:1}h1{font:normal 58px/.99 var(--serif);letter-spacing:-2.5px;margin:0}.intro-copy{font-size:13px;line-height:1.9;margin:0 14px 5px 24px}.intro-copy span{color:var(--muted);display:block;margin-top:8px;font-size:11px}.game-shell{position:relative;background:var(--scene);border:1px solid #bec3b5;border-radius:13px;overflow:hidden}.game-hud{position:absolute;top:0;left:0;right:0;z-index:2;padding:23px 27px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.depth{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:1.5px;color:#6e7769;padding-top:4px}.depth-dot{width:5px;height:5px;background:#76836e;border-radius:50%}.scores{display:flex;gap:30px}.scores>div{display:flex;flex-direction:column;gap:6px;text-align:right}.scores span{font-size:8px;letter-spacing:1.5px;color:#7b8275}.scores strong{font:20px/1 ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:1px}.scores small{font:9px var(--sans);letter-spacing:0;color:#7b8275}.best-score strong{color:#71796a}.playfield{height:390px;position:relative;touch-action:none;user-select:none;-webkit-user-select:none}canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px!important}.game-overlay{position:absolute;inset:78px 0 auto;display:flex;align-items:center;flex-direction:column;text-align:center;pointer-events:none}.game-overlay[hidden]{display:none}.overlay-kicker{font-size:8px;letter-spacing:2px;color:#777f6f;margin:0 0 10px}.game-overlay h2{font:normal 34px/1.13 var(--serif);letter-spacing:-1px;margin:0}.game-overlay>p:not(.overlay-kicker){font-size:11px;color:#757c6c;margin:13px 15px 17px}.primary-button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:6px;padding:12px 18px;font-size:11px;display:flex;gap:25px;align-items:center;cursor:pointer;pointer-events:auto;transition:transform .15s,background .15s}.primary-button:hover{background:#42483b;transform:translateY(-1px)}.primary-button span{font-size:17px;line-height:12px}.overlay-hint{font-size:7px;letter-spacing:1.3px;color:#889080;margin-top:12px}.game-toolbar{height:53px;border-top:1px solid #cbd0c0;display:flex;align-items:center;justify-content:space-between;padding:0 23px;background:rgba(246,245,239,.5)}.game-toolbar p{display:flex;gap:8px;align-items:center;font-size:10px;color:#747c6b;margin:0}.keycap{border:1px solid #c1c7b7;border-radius:3px;padding:1px 5px;font-size:12px;color:var(--ink)}.toolbar-separator{color:#aab09f}.hold-hint{margin-left:5px;color:#909785}.toolbar-actions{display:flex;gap:10px;align-items:center}.icon-button{display:grid;place-items:center;width:30px;height:32px;border:0;background:none;color:#535e48;border-radius:5px;cursor:pointer}.icon-button:hover{background:#dfe3d6}.icon-button:disabled{opacity:.3;cursor:default}.icon-button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.action-divider{height:14px;width:1px;background:#ccd0c4}.mobile-control{display:none}.under-game{display:flex;align-items:center;justify-content:space-between;padding:16px 2px}.under-game p{font:italic 13px var(--serif);margin:0;display:flex;align-items:center;gap:9px;color:#6e7765}.under-game svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.1}.under-game>span{font-size:7px;letter-spacing:1.6px;color:#89917e}.notes{display:grid;grid-template-columns:repeat(3,1fr);padding:26px 0 29px;gap:24px}.notes article{display:flex;gap:13px}.note-number{font:10px ui-monospace,monospace;color:#9a9e91;padding-top:3px}.notes h3{font-size:12px;font-weight:500;margin:0 0 8px}.notes p{font-size:10px;line-height:1.85;color:#828777;margin:0}footer{border-top:1px solid var(--line);padding:22px 0 28px;display:flex;justify-content:space-between;align-items:center;color:#929789;font-size:8px}footer>span:first-child{font-size:7px;letter-spacing:1.7px}footer>span:last-child{display:flex;align-items:center;gap:14px}footer svg{width:34px;height:12px;stroke:currentColor;fill:none;stroke-width:1.1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.milestone{position:absolute;left:50%;top:100px;transform:translateX(-50%);font:italic 20px var(--serif);color:#59644d;opacity:0;pointer-events:none}.milestone.show{animation:milestone 2s ease both}@keyframes milestone{0%,100%{opacity:0;transform:translate(-50%,8px)}20%,80%{opacity:1;transform:translate(-50%,0)}}
@media(min-width:1400px){.page{max-width:1250px}.intro{padding-top:54px}.playfield{height:420px}}
@media(max-width:760px){.page{padding:0 23px}.masthead{height:80px}.wordmark{font-size:22px}.wordmark svg{width:33px;height:33px}.edition{font-size:7px;letter-spacing:1.2px}.intro{padding:32px 0 25px;align-items:flex-start;gap:14px}h1{font-size:43px;letter-spacing:-1.8px}.eyebrow{font-size:7px;letter-spacing:1.5px;margin-bottom:13px}.intro-copy{font-size:10px;margin:28px 0 0;line-height:1.8}.intro-copy span{font-size:9px;max-width:155px}.playfield{height:420px}.game-hud{padding:20px}.depth{font-size:7px;letter-spacing:1px}.scores{gap:18px}.scores strong{font-size:17px}.scores span{font-size:7px}.notes{gap:16px}.notes article{gap:8px}.notes h3{font-size:10px}.notes p{font-size:9px}.hold-hint{display:none}.under-game>span{font-size:6px;letter-spacing:1px}}
@media(max-width:480px){.page{padding:0 16px}.masthead{height:72px}.edition{font-size:6px;letter-spacing:1px}.edition span{font-size:6px}.wordmark{font-size:21px;gap:7px}.wordmark svg{width:30px;height:30px}.intro{padding:28px 0 24px}.intro-copy{max-width:132px;font-size:9px;margin-top:27px}.desktop-break{display:none}.intro-copy span{font-size:8px;margin-top:7px}h1{font-size:39px}.eyebrow{font-size:6px;letter-spacing:1.05px;gap:5px}.tiny-star{font-size:13px}.playfield{height:430px}.game-hud{padding:18px 17px}.depth{max-width:80px;line-height:1.5;font-size:6px;align-items:flex-start;gap:5px}.depth-dot{flex-shrink:0;margin-top:2px}.scores{gap:16px}.game-overlay{top:98px}.game-overlay h2{font-size:31px}.game-overlay>p:not(.overlay-kicker){font-size:10px;margin-bottom:18px}.game-toolbar{height:51px;padding:0 12px}.game-toolbar p{font-size:9px;gap:6px}.desktop-control{display:none}.mobile-control{display:inline}.keycap{padding:1px 4px}.toolbar-actions{gap:4px}.under-game{padding:15px 0}.under-game p{font-size:12px}.under-game>span{display:none}.notes{grid-template-columns:1fr;padding:20px 0 25px;gap:21px}.notes article{gap:14px}.notes h3{font-size:11px;margin-bottom:4px}.notes p{font-size:10px}.notes p br{display:none}.note-number{font-size:9px}.notes article:not(:last-child){padding-bottom:18px;border-bottom:1px solid var(--line)}footer{padding:18px 0 22px;font-size:7px}footer>span:first-child{font-size:6px;letter-spacing:1px}footer svg{display:none}}
@media(prefers-reduced-motion:reduce){.primary-button{transition:none}.milestone.show{animation:none;opacity:1}}
.icon-button{width:44px;height:44px}
@media(max-width:480px){.intro{display:block}.intro-copy{max-width:none;font-size:11px;margin:14px 0 0}.intro-copy br{display:none}.intro-copy span{display:none}h1{font-size:39px}.toolbar-actions{gap:0}.game-toolbar{padding-right:5px}}

/* Reef palette and lightweight in-game ability indicators. */
.wordmark-dot,.tiny-star{color:#ba87c4}.wordmark svg{color:#936da6}
.game-shell{border-color:#a1c8cb}.depth,.scores span,.scores small{color:#5c8b93}.depth-dot{background:#55a7a7}.best-score strong{color:#6c929a}
.game-overlay{top:114px}.overlay-kicker{color:#668f99}.game-overlay>p:not(.overlay-kicker),.overlay-hint{color:#668994}.primary-button{background:#315e75;border-color:#315e75}.primary-button:hover{background:#457b93}
.game-toolbar{border-color:#b7d6d4;background:#edf5ef}.game-toolbar p{color:#648791}.keycap{border-color:#b7d0ce}.icon-button{color:#477e8b}.icon-button:hover{background:#d4e9e4}.action-divider{background:#c0d6d2}
.ability-hud{position:absolute;top:71px;left:27px;right:27px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;color:#5e8a93}
.power-status{display:flex;align-items:center;gap:7px}.power-symbol{font-size:22px;color:#d6a855}.power-status>div{width:127px}.power-status>div>span{display:block;font-size:7px;letter-spacing:1px;line-height:1.5}.power-track{height:4px;margin-top:6px;border-radius:6px;background:#bcdad8;overflow:hidden}.power-track>span{display:block;height:100%;width:0;background:#e6b657;border-radius:6px}
.jump-status{display:flex;align-items:center;gap:5px}.jump-status>span{font-size:7px;letter-spacing:1px;margin-right:3px}.jump-status i{width:7px;height:7px;border-radius:50%;background:#af8bbb;border:1px solid #a17cab}.jump-status i.used{background:transparent;border-color:#b0c9cc}
.is-powered .power-symbol{color:#b77bd1}.is-powered .power-track>span{background:linear-gradient(90deg,#ef789c,#f3a56b,#efd770,#7dcba7,#73bbdf,#b48bdc)}.is-powered #power-label{color:#8755a1}.is-powered{border-color:#b59ad0}.is-powered .game-toolbar{background:#f5eef8;border-color:#dbcae5}
.milestone{top:110px;max-width:90%;width:max-content;background:rgba(244,252,248,.9);padding:7px 12px;border:1px solid #bddbd9;border-radius:20px;font:12px var(--sans);color:#3b7d8c;z-index:3}
.notes article:nth-child(1) .note-number{color:#ab81bb}.notes article:nth-child(2) .note-number{color:#cd9c49}.notes article:nth-child(3) .note-number{color:#4e9da5}
@media(max-width:760px){.ability-hud{left:20px;right:20px;top:67px}}
@media(max-width:480px){.ability-hud{left:17px;right:17px;top:68px}.game-overlay{top:116px}.power-status>div{width:115px}.power-status>div>span{font-size:6px}.jump-status>span{font-size:6px}.jump-status i{width:6px;height:6px}.milestone{top:105px;font-size:10px}.game-overlay h2{font-size:29px}.game-overlay>p:not(.overlay-kicker){margin-top:10px;margin-bottom:14px}.hold-hint{display:none}}
.game-options{display:flex;align-items:center;justify-content:space-between;margin:0 1px 12px;gap:12px}.game-options>span{font-size:7px;letter-spacing:1.5px;color:var(--muted)}.theme-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px}.theme-switch button{border:0;border-radius:4px;background:transparent;color:#73878b;padding:9px 13px;min-height:38px;font-size:10px;cursor:pointer}.theme-switch button[aria-pressed=true]{background:#315e75;color:#fff}.theme-switch button:hover:not([aria-pressed=true]){background:#e4eeea}
body.mono{--paper:#f5f4f0;--ink:#292e31;--muted:#7f8584;--line:#d5d8d4;--scene:#e8ebe8}body.mono .page{filter:grayscale(1)}.mono .is-powered .power-track>span{background:#454e53}.mono .is-powered #power-label{color:#3d464b}.mono .is-powered .power-symbol{color:#454e53}.mono .is-powered .game-toolbar{background:#e5e7e4}.mono .is-powered{border-color:#7d888b}
.theme-switch button{min-height:44px}

/* The mobile game fills the screen; the lower touch area continues the seabed. */
body.mobile-game{overflow:hidden;overscroll-behavior:none}
.mobile-game .page{height:100vh;height:100svh;max-width:none;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:8px}
.mobile-game .masthead{height:40px;flex-shrink:0;border:0}
.mobile-game .wordmark{font-size:23px;gap:8px}
.mobile-game .wordmark svg{width:32px;height:32px}
.mobile-game .intro,.mobile-game .edition,.mobile-game .under-game,.mobile-game .notes,.mobile-game footer{display:none}
.mobile-game main{display:flex;flex-direction:column;flex:1;min-height:0;gap:8px}
.mobile-game .game-options{margin:0;flex-shrink:0}
.mobile-game .game-options>span{font-size:9px;letter-spacing:1px}
.mobile-game .theme-switch{padding:2px;gap:2px}
.mobile-game .theme-switch button{min-height:44px;padding:8px 15px;font-size:12px}
.mobile-game .game-shell{display:flex;flex-direction:column;flex:1;min-height:0;border-radius:20px}
.mobile-game .playfield{height:auto;min-height:0;flex:1;overflow:hidden}
.mobile-game .game-hud{padding:17px 18px}
.mobile-game .depth{display:none}
.mobile-game .scores{width:100%;justify-content:space-between;gap:12px}
.mobile-game .scores>div{text-align:left;gap:5px}
.mobile-game .scores>.best-score{text-align:right}
.mobile-game .scores span{font-size:9px;letter-spacing:1px}
.mobile-game .scores strong{font-size:23px}
.mobile-game .scores small{font-size:11px}
.mobile-game .ability-hud{top:74px;left:18px;right:18px}
.mobile-game .power-status>div{width:135px}
.mobile-game .power-status>div>span{font-size:9px;letter-spacing:.4px}
.mobile-game .jump-status>span{font-size:9px}
.mobile-game .jump-status i{width:8px;height:8px}
.mobile-game .game-overlay{inset:104px 14px 55px;justify-content:center;gap:0}
.mobile-game .game-overlay h2{font-size:clamp(27px,6vw,38px);line-height:1.13}
.mobile-game .overlay-kicker{font-size:9px;letter-spacing:1.4px;margin-bottom:12px}
.mobile-game .game-overlay>p:not(.overlay-kicker){font-size:12px;line-height:1.5;margin:13px 0 18px;max-width:280px}
.mobile-game .primary-button{min-height:50px;min-width:180px;justify-content:space-between;font-size:14px;padding:12px 20px;border-radius:14px}
.mobile-game .overlay-hint{font-size:8px;letter-spacing:.6px;line-height:1.5;max-width:230px;margin-top:12px}
.mobile-game .milestone{top:111px;font-size:11px;z-index:3}
.mobile-game .icon-button{width:46px;height:54px;background:rgba(255,255,255,.4);border:1px solid #c1d8d7;border-radius:14px}
.mobile-game .icon-button svg{width:21px;height:21px}
@media(min-width:700px) and (min-height:600px){
  .mobile-game .page{padding:20px 24px max(20px,env(safe-area-inset-bottom));gap:14px;max-width:1180px}
  .mobile-game main{gap:14px}
  .mobile-game .masthead{height:44px}
  .mobile-game .game-hud{padding:22px 26px}
  .mobile-game .ability-hud{top:85px;left:26px;right:26px}
  .mobile-game .icon-button{width:60px;height:64px}
}
@media(max-height:500px){
  .mobile-game .page{padding-top:max(6px,env(safe-area-inset-top));gap:4px}
  .mobile-game .masthead{display:none}
  .mobile-game main{gap:4px}
  .mobile-game .game-options>span{font-size:9px}
  .mobile-game .game-hud{padding:10px 16px}
  .mobile-game .scores strong{font-size:18px}
  .mobile-game .scores span{font-size:8px}
  .mobile-game .ability-hud{top:14px;left:32%;right:32%}
  .mobile-game .power-status>div{width:120px}
  .mobile-game .jump-status>span{display:none}
  .mobile-game .icon-button{height:48px;width:48px}
  .mobile-game .game-overlay{inset:52px 12px 36px}
  .mobile-game .game-overlay h2{font-size:23px}
  .mobile-game .game-overlay h2 br{display:none}
  .mobile-game .overlay-kicker,.mobile-game .overlay-hint{display:none}
  .mobile-game .game-overlay>p:not(.overlay-kicker){font-size:11px;max-width:none;margin:6px 0 9px}
  .mobile-game .primary-button{min-height:44px;font-size:12px;padding:9px 18px}
  .mobile-game .milestone{top:52px;font-size:10px}
}
@media(max-height:340px){
  .mobile-game .game-overlay{inset:48px 12px 22px}
  .mobile-game .game-overlay h2{font-size:20px;margin-bottom:8px}
  .mobile-game .game-overlay>p:not(.overlay-kicker){display:none}
}

.primary-button{min-height:44px}
.game-hud .icon-button{pointer-events:auto;flex-shrink:0}
.mobile-game .game-hud .icon-button{width:44px;height:44px;border:0;background:rgba(255,255,255,.24);border-radius:50%}
.mobile-game .playfield{--seabed-extension:94px}
@media(min-width:700px) and (min-height:600px){.mobile-game .playfield{--seabed-extension:108px}}
@media(max-height:500px){.mobile-game .playfield{--seabed-extension:62px}}

.game-hud .depth{display:none}
.game-hud .scores{width:100%;justify-content:space-between}
.hud-controls{position:absolute;left:50%;top:20px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;pointer-events:auto}
.hud-controls .icon-button{width:44px;height:44px}
.mobile-game .hud-controls{top:17px}
@media(min-width:700px) and (min-height:600px){.mobile-game .hud-controls{top:22px}}
@media(max-height:500px){
  .mobile-game .hud-controls{top:10px}
  .mobile-game .ability-hud{top:64px;left:18px;right:18px}
  .mobile-game .game-overlay{inset:94px 12px 30px}
  .mobile-game .milestone{top:86px}
}
@media(max-height:340px){.mobile-game .game-overlay{inset:84px 12px 18px}}
@media(max-width:360px){
  .mobile-game .game-hud{padding-left:14px;padding-right:14px}
  .mobile-game .scores strong{font-size:19px;letter-spacing:.5px}
  .mobile-game .scores small{font-size:9px}
}
#overlay[data-screen="welcome"] .primary-button{margin-top:24px}
.mobile-game #overlay[data-screen="welcome"] .overlay-kicker{display:block}
@media(max-height:500px){
  .mobile-game #overlay[data-screen="welcome"] .overlay-kicker{margin-bottom:8px;font-size:9px}
  #overlay[data-screen="welcome"] .primary-button{margin-top:12px}
}
