@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/bricolage.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:400;font-display:swap;src:url(fonts/DMSans_400Regular.ttf) format('truetype')}
@font-face{font-family:'DM Sans';font-weight:600;font-display:swap;src:url(fonts/DMSans_600SemiBold.ttf) format('truetype')}
@font-face{font-family:'DM Sans';font-weight:700;font-display:swap;src:url(fonts/DMSans_700Bold.ttf) format('truetype')}
@font-face{font-family:'DM Mono';font-weight:400;font-display:swap;src:url(fonts/DMMono_400Regular.ttf) format('truetype')}
@font-face{font-family:'DM Mono';font-weight:500;font-display:swap;src:url(fonts/DMMono_500Medium.ttf) format('truetype')}

:root{
  --ground:#0B1912;
  --ground-2:#102419;
  --raised:#1F3A2C;
  --track-ink:#2F4A3B;
  --line:rgba(207,227,214,.14);
  --text:#F4F8F5;
  --muted:#A9C2B3;
  --sage:#CFE3D6;
  --bg:#EEF2EC;
  --ink:#15291F;
  --ink-muted:#4D5E54;
  --accent:#FFC845;
  --accent-soft:#FFF2C9;
  --done:#1F6B4A;
  --track:#DCE4DE;
  --display:'Bricolage Grotesque','DM Sans',system-ui,sans-serif;
  --body:'DM Sans',system-ui,sans-serif;
  --mono:'DM Mono',ui-monospace,monospace;
  --gutter:clamp(16px,4vw,56px);
  --max:1240px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--ground);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:clip;-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%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)'/%3E%3C/svg%3E")}
a{color:inherit}
img,svg{display:block}
::selection{background:var(--accent);color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--accent);color:var(--ink);padding:10px 16px;border-radius:999px;font-weight:700;text-decoration:none}
.skip:focus{left:16px}
.mono{font-family:var(--mono);font-size:13px;letter-spacing:.02em}
.muted{color:var(--muted)}

/* mark */
.mark{width:28px;height:28px}
.mark path{fill:none;stroke:currentColor;stroke-width:15;stroke-linecap:round}
.mark circle{fill:var(--accent)}

/* nav: liquid glass pill */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:clamp(12px,3vw,32px);
  width:min(calc(100% - 24px),760px);padding:8px 8px 8px 18px;border-radius:999px;
  background:rgba(16,36,25,.55);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);
  border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 40px rgba(0,0,0,.35)}
.nav-brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.03em;color:var(--text)}
.nav nav{display:flex;gap:4px;margin-left:auto}
.nav nav a{text-decoration:none;color:var(--muted);font-size:15px;padding:10px 12px;border-radius:999px;transition:color .2s,background .2s}
.nav nav a:hover{color:var(--text);background:rgba(255,255,255,.07)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;background:var(--accent);color:var(--ink);font-weight:700;font-size:17px;text-decoration:none;
  box-shadow:0 0 0 0 rgba(255,200,69,.5),0 12px 30px -10px rgba(255,200,69,.6);transition:transform .25s var(--ease),box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 0 0 6px rgba(255,200,69,.16),0 18px 40px -12px rgba(255,200,69,.7)}
.btn-ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--sage)}
.btn-small{min-height:44px;padding:0 20px;font-size:15px}

/* hero */
.hero{position:relative;overflow-x:clip;overflow-y:visible;min-height:100svh;max-width:var(--max);margin:0 auto;padding:132px var(--gutter) 80px;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero-glow{position:absolute;inset:-10% -20% auto;height:90%;z-index:-1;pointer-events:none;
  background:radial-gradient(50% 50% at 70% 35%,rgba(46,100,71,.65),transparent 70%),radial-gradient(30% 30% at 72% 52%,rgba(255,200,69,.16),transparent 70%)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;font-family:var(--mono);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--sage);
  padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.dot-live{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(255,200,69,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(255,200,69,0)}100%{box-shadow:0 0 0 0 rgba(255,200,69,0)}}
.wordmark{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(88px,15vw,200px);line-height:.86;letter-spacing:-.06em;display:flex;align-items:baseline}
.flip{display:inline-block;color:var(--accent);transform:rotate(180deg) translateY(-.08em);animation:flipin 1.1s var(--ease) both .2s}
@keyframes flipin{from{transform:rotate(0deg) translateY(0)}to{transform:rotate(180deg) translateY(-.08em)}}
.lede{margin:28px 0 0;font-family:var(--display);font-weight:600;font-size:clamp(26px,3.2vw,38px);line-height:1.12;letter-spacing:-.02em;max-width:16ch}
.lede em{font-style:normal;color:var(--accent)}
.sub{margin:18px 0 0;color:var(--muted);max-width:44ch;font-size:18px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

.hero-visual{position:relative;height:640px}
.big-mark{position:absolute;width:74%;aspect-ratio:1;right:-10%;top:2%;opacity:.95;filter:drop-shadow(0 30px 60px rgba(0,0,0,.4))}
.big-mark svg{width:100%;height:100%}
.rep{animation:rep 2.6s cubic-bezier(.5,0,.3,1) infinite}
@keyframes rep{0%,12%{transform:translateY(0)}42%,60%{transform:translateY(-27px)}90%,100%{transform:translateY(0)}}

/* phone mockups, drawn in the app's own system */
.phone{border-radius:44px;padding:10px;background:linear-gradient(160deg,#2a3a31,#0d1611);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 40px 80px -20px rgba(0,0,0,.6)}
.screen{border-radius:35px;overflow:hidden;height:100%}
.phone-hero{position:absolute;left:-2%;bottom:0;width:286px;height:580px;transform:rotate(-6deg);animation:floaty 7s ease-in-out infinite}
@keyframes floaty{50%{transform:rotate(-6deg) translateY(-12px)}}
.today{background:var(--bg);color:var(--ink);padding:44px 16px 16px;display:flex;flex-direction:column;gap:12px;font-size:13px}
.today-head{display:flex;justify-content:space-between;align-items:center}
.today .muted{color:var(--ink-muted)}
.streak{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12px}
.streak i{width:8px;height:8px;border-radius:50%;background:var(--done)}
.today-title{margin:0;font-family:var(--display);font-weight:700;font-size:25px;line-height:1.05;letter-spacing:-.02em}
.card{background:#fff;border-radius:22px;padding:12px;display:flex;flex-direction:column;gap:6px}
.card-head{display:flex;justify-content:space-between;align-items:baseline;padding:2px 4px 4px}
.card-title{font-family:var(--display);font-weight:700;font-size:15px}
.row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:8px 6px;border-radius:14px}
.row-hl{background:var(--accent-soft)}
.thumb{width:34px;height:34px;border-radius:11px;background:var(--bg)}
.row-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.ex{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap}
.row .mono{font-size:11px;text-align:right;line-height:1.3;color:var(--ink)}
.row small{color:var(--ink-muted);font-size:9px}
.chip{font-size:9px;font-weight:700;background:var(--accent);color:var(--ink);padding:2px 7px;border-radius:999px}
.phone-cta{margin-top:auto;display:flex;align-items:center;justify-content:center;height:46px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;font-size:14px}

/* 7-segment progress bar: --done segments done, the next one is "you are here" */
.seg{--g:3px;display:block;height:5px;width:100%;border-radius:3px;
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 calc(100%/7 - var(--g)),transparent 0 calc(100%/7));
  mask:repeating-linear-gradient(90deg,#000 0 calc(100%/7 - var(--g)),transparent 0 calc(100%/7))}
.seg{background:linear-gradient(90deg,#1F6B4A 0 calc(var(--done)*100%/7),#FFC845 0 calc(var(--now)*100%/7),#DCE4DE 0)}
.seg-ink{background:linear-gradient(90deg,#fff 0 calc(var(--done)*100%/7),#FFC845 0 calc(var(--now)*100%/7),#2F4A3B 0);height:8px}
.seg-inline{width:110px}
.seg-big{height:8px;--g:5px;margin-top:auto;transform-origin:left;background:linear-gradient(90deg,var(--accent),#7FD1A5)}

.float-chip{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:18px;font-size:14px;color:var(--text);
  background:rgba(31,58,44,.55);backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 20px 40px -12px rgba(0,0,0,.5)}
.float-chip b{background:var(--accent);color:var(--ink);padding:3px 9px;border-radius:999px;font-size:12px}
.chip-a{right:-4%;top:72%;animation:floaty2 6s ease-in-out infinite}
.chip-b{right:2%;bottom:0;animation:floaty2 8s ease-in-out infinite reverse}
.chip-b .seg{background:linear-gradient(90deg,#fff 0 calc(var(--done)*100%/7),#FFC845 0 calc(var(--now)*100%/7),#2F4A3B 0)}
@keyframes floaty2{50%{transform:translateY(-10px)}}

/* marquee */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:22px 0;background:var(--ground-2)}
.marquee-track{display:flex;align-items:center;gap:28px;width:max-content;animation:marq 40s linear infinite;font-family:var(--display);font-weight:700;font-size:clamp(26px,3.4vw,42px);letter-spacing:-.02em;white-space:nowrap}
.marquee-track i{width:14px;height:14px;border-radius:50%;background:var(--accent);flex:none}
.marquee-track span:nth-of-type(4n+2){color:transparent;-webkit-text-stroke:1.5px var(--sage)}
@keyframes marq{to{transform:translateX(-50%)}}

/* sections */
.section{max-width:var(--max);margin:0 auto;padding:clamp(96px,14vw,168px) var(--gutter) 0}
.label{margin:0 0 20px;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.h2{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(40px,6.4vw,84px);line-height:.98;letter-spacing:-.045em;max-width:18ch}
.soft{color:var(--muted);font-weight:600}

.steps{list-style:none;margin:64px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;counter-reset:s}
.step{position:relative;padding:32px 28px 36px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid var(--line);overflow:hidden}
.step::before{content:"";position:absolute;inset:auto -30% -60% auto;width:240px;height:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,200,69,.14),transparent);transition:transform .6s var(--ease)}
.step:hover::before{transform:translate(-30px,-30px) scale(1.2)}
.step-n{font-family:var(--mono);font-size:56px;font-weight:500;letter-spacing:-.04em;color:var(--accent);line-height:1}
.step h3{margin:28px 0 10px;font-family:var(--display);font-size:26px;line-height:1.1;letter-spacing:-.02em}
.step p{margin:0;color:var(--muted)}

/* ladder scroll story */
.climb{position:relative;height:340vh;margin-top:clamp(96px,14vw,168px)}
.climb-sticky{position:sticky;top:0;height:100svh;max-width:var(--max);margin:0 auto;padding:96px var(--gutter) 40px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.climb-text{color:var(--muted);max-width:38ch;margin:24px 0 0;font-size:19px}
.climb-now{margin-top:40px;display:flex;flex-direction:column;gap:6px;padding:24px 26px;border-radius:24px;background:rgba(255,255,255,.04);border:1px solid var(--line);max-width:420px}
.climb-now b{color:var(--accent);font-weight:500}
.climb-name{font-family:var(--display);font-weight:800;font-size:clamp(30px,3.4vw,44px);letter-spacing:-.03em;line-height:1.05}
.climb-target{font-size:16px;color:var(--sage)}
.ladder{position:relative;height:min(76svh,640px);width:min(100%,420px);justify-self:center}
.rail{position:absolute;top:0;bottom:0;width:14px;border-radius:999px;background:linear-gradient(180deg,rgba(207,227,214,.35),rgba(207,227,214,.85))}
.rail-l{left:18%}.rail-r{right:18%}
.rungs{list-style:none;margin:0;padding:0;position:absolute;inset:4% 0;display:flex;flex-direction:column;justify-content:space-between}
.rungs li{position:relative;height:14px}
.rung{position:absolute;left:18%;right:18%;height:14px;border-radius:999px;background:var(--track-ink);transition:background .35s,box-shadow .35s}
.rungs li.is-done .rung{background:#fff}
.rungs li.is-now .rung{background:var(--accent);box-shadow:0 0 30px rgba(255,200,69,.6)}
.rung-label{position:absolute;right:calc(82% + 14px);top:50%;transform:translateY(-50%);white-space:nowrap;font-family:var(--mono);font-size:13px;color:var(--muted);transition:color .3s}
.rungs li:nth-child(even) .rung-label{right:auto;left:calc(82% + 14px)}
.rungs li.is-now .rung-label{color:var(--accent)}
.rungs li.is-done .rung-label{color:var(--text)}
.climber{position:absolute;left:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 8px rgba(255,200,69,.15),0 0 50px rgba(255,200,69,.7);top:var(--y,96%);transition:top .55s cubic-bezier(.5,0,.3,1.4)}

/* bento */
.bento{margin-top:64px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(240px,auto);gap:16px}
.tile{position:relative;display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:28px;border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%),rgba(255,200,69,.12),transparent 45%),linear-gradient(180deg,#14301f,#0f2218)}
.tile h3{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(34px,3.6vw,48px);letter-spacing:-.04em;line-height:1}
.path{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;color:var(--sage);font-size:15px}
.path svg{width:18px;height:18px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tile-note{margin:0;color:var(--muted);font-size:14px}
.tile-push{grid-column:span 2}
.tile-pull{grid-column:span 2;grid-row:span 2;background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%),rgba(255,200,69,.16),transparent 45%),linear-gradient(160deg,#1F6B4A,#0f2218 70%)}
.tile-pull h3{font-size:clamp(56px,7vw,104px)}
.tile-squat,.tile-core{grid-column:span 1}
.tile-phone{grid-column:span 4;flex-direction:row;align-items:center;gap:48px;padding:40px 48px;background:linear-gradient(120deg,#15291F,#0B1912)}
.tile-phone-copy h3{font-size:clamp(36px,4.4vw,60px)}
.tile-phone-copy p{color:var(--muted);max-width:36ch;margin:14px 0 0;font-size:18px}
.phone-small{width:230px;height:420px;flex:none;transform:rotate(4deg)}
.levelup{background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:56px 18px 18px}
.lu-label{background:var(--accent);color:var(--ink);padding:3px 9px;border-radius:999px;font-size:10px}
.lu-num{font-family:var(--mono);font-size:72px;font-weight:500;letter-spacing:-.05em;line-height:1;margin-top:18px}
.lu-num small{font-size:16px;color:var(--sage);letter-spacing:0}
.lu-title{font-family:var(--display);font-weight:800;font-size:24px;line-height:1.05;letter-spacing:-.02em}
.lu-ex{font-size:12px;color:var(--sage)}
.levelup .seg{margin-top:10px}
.lu-cta{margin-top:auto;width:100%;height:42px;border-radius:999px;background:var(--accent);color:var(--ink);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}

/* goals */
.goals-intro{color:var(--muted);max-width:52ch;font-size:19px;margin:24px 0 0}
.goal-rail{margin:48px calc(var(--gutter)*-1) 0;padding:8px var(--gutter) 24px;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.goal-rail::-webkit-scrollbar{display:none}
.goal{flex:0 0 min(320px,80vw);scroll-snap-align:start;display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:28px;min-height:400px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.01));border:1px solid var(--line);transition:transform .4s var(--ease),border-color .3s}
.goal:hover{transform:translateY(-6px);border-color:rgba(255,200,69,.45)}
.goal-n{font-family:var(--mono);font-size:13px;color:var(--accent)}
.goal-fig{width:100%;height:120px;margin:12px 0 18px}
.goal-fig line{stroke-linecap:round}
.goal-fig .prop{stroke:rgba(207,227,214,.45);stroke-width:4}
.goal-fig .arm{stroke:var(--sage);stroke-width:6}
.goal-fig line.core{stroke:var(--accent);stroke-width:9}
.goal-fig circle{fill:var(--text)}
.goal h3{margin:0;font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.03em;line-height:1}
.goal p{margin:0;color:var(--muted);font-size:15px}
.goal .mono{font-size:11px}

/* principles: glass over a moving blob */
.principles{position:relative}
.principles::before{content:"";position:absolute;z-index:-1;left:20%;top:40%;width:60%;height:50%;border-radius:50%;filter:blur(80px);
  background:conic-gradient(from 0deg,rgba(255,200,69,.35),rgba(31,107,74,.7),rgba(207,227,214,.25),rgba(255,200,69,.35));animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.glass-grid{margin-top:64px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.glass{padding:32px;border-radius:28px;background:rgba(16,36,25,.45);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);
  border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.glass svg{width:44px;height:44px;padding:10px;border-radius:14px;background:var(--accent);fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.glass h3{margin:22px 0 8px;font-family:var(--display);font-size:28px;letter-spacing:-.02em;line-height:1.1}
.glass p{margin:0;color:var(--muted)}

/* levels */
.level-row{list-style:none;margin:64px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.level-row li{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:22px 18px;border-radius:24px;background:rgba(255,255,255,.035);border:1px solid var(--line)}
.level-row b{font-family:var(--display);font-size:22px;letter-spacing:-.02em}
.level-row .mono{font-size:11px}
.badge{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;font-family:var(--mono);font-weight:500;font-size:18px;margin-bottom:10px;color:var(--ink)}
.b1{background:#DCE4DE}.b2{background:#CFE3D6}.b3{background:#9FCDB2}.b4{background:#5FB08A}.b5{background:#FFDD86}.b6{background:var(--accent);box-shadow:0 0 30px rgba(255,200,69,.55)}

/* final */
.final{position:relative;margin-top:clamp(120px,16vw,200px);padding:120px var(--gutter) 140px;text-align:center;display:flex;flex-direction:column;align-items:center;overflow:hidden;border-top:1px solid var(--line)}
.final-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(40% 50% at 50% 20%,rgba(46,100,71,.7),transparent 70%)}
.final-mark{width:120px;height:120px;margin-bottom:28px}
.final-mark path{fill:none;stroke:var(--sage);stroke-width:15;stroke-linecap:round}
.final-mark circle{fill:var(--accent)}
.final-title{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(52px,10vw,148px);line-height:.92;letter-spacing:-.055em}
.flip-word{color:var(--accent)}
.final-sub{color:var(--muted);font-size:19px;max-width:44ch;margin:28px 0 36px}
.store-badge{display:inline-flex;align-items:center;gap:12px;padding:12px 24px 12px 18px;border-radius:16px;background:#000;border:1px solid rgba(255,255,255,.25);text-align:left}
.store-badge svg{width:28px;height:28px;fill:#fff}
.store-badge span{display:flex;flex-direction:column;font-weight:600;font-size:21px;line-height:1.1}
.store-badge small{font-size:11px;font-weight:400;color:#ccc}

.footer{max-width:var(--max);margin:0 auto;padding:32px var(--gutter) 48px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);font-size:15px}
.footer a{color:var(--sage)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* responsive */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;padding-top:120px}
  .hero-visual{height:560px}
  .big-mark{width:70%;right:-4%}
  .steps{grid-template-columns:1fr}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile-push,.tile-pull{grid-column:span 2;grid-row:auto}
  .tile-phone{grid-column:span 2;flex-direction:column;align-items:flex-start;padding:32px}
  .level-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .climb-sticky{grid-template-columns:1fr;align-content:center;gap:20px;padding-top:104px}
  .climb-text{display:none}
  .climb-now{margin-top:16px}
  .ladder{height:52svh}
}
@media (max-width:640px){
  body{font-size:16px}
  .nav nav{display:none}
  .nav-brand{margin-right:auto}
  .hero-visual{height:520px}
  .phone-hero{zoom:.8;left:0}
  .big-mark{width:80%;right:-10%;top:-4%}
  .chip-a{top:auto;bottom:22%;right:0}
  .chip-b{display:none}
  .bento{grid-template-columns:1fr}
  .tile-push,.tile-pull,.tile-squat,.tile-core,.tile-phone{grid-column:span 1}
  .glass-grid{grid-template-columns:1fr}
  .level-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rail-l{left:4%}.rail-r{left:40%;right:auto}
  .rung{left:4%;right:auto;width:calc(36% + 14px)}
  .rung-label,.rungs li:nth-child(even) .rung-label{right:auto;left:calc(40% + 28px);font-size:12px}
  .climber{left:calc(22% + 7px)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rep{transform:translateY(-27px)}
  .reveal{opacity:1;transform:none}
}
