:root{--night:#071b15;--night-2:#0d2d22;--forest:#0e5c3e;--green:#157a50;--lime:#b7f36b;--paper:#f3f0e7;--white:#fffdf8;--ink:#10231c;--muted:#6c7972;--line:rgba(16,35,28,.16);--ease:cubic-bezier(.2,.8,.2,1);--scroll:0;--chapter:0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--paper);font-family:Manrope,"Noto Sans KR",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .8s,color .8s}body[data-tone=paper]{background:var(--paper);color:var(--ink)}body[data-tone=lime]{background:#c7f47d;color:var(--ink)}body[data-tone=mist]{background:#dfe8df;color:var(--ink)}a{color:inherit}.skip-link{position:fixed;left:20px;top:-80px;z-index:999;background:var(--lime);color:var(--ink);padding:12px 18px;border-radius:99px;text-decoration:none}.skip-link:focus{top:12px}.noise{position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.028;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='.86' numOctaves='3' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.aurora i{position:absolute;width:55vw;aspect-ratio:1;border-radius:50%;filter:blur(100px);opacity:.12;background:var(--lime);left:-25vw;top:-20vw;transform:translate3d(calc(var(--mx,0)*.08),calc(var(--my,0)*.08),0)}.aurora i+ i{left:auto;top:auto;right:-26vw;bottom:-20vw;background:#31b687;opacity:.09}.nav{position:fixed;left:0;right:0;top:0;height:80px;padding:0 clamp(22px,4.5vw,72px);z-index:70;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(7,27,21,.2);backdrop-filter:blur(18px);transition:background .5s,color .5s,border .5s}.nav.light{background:rgba(243,240,231,.68);border-color:rgba(16,35,28,.12);color:var(--ink)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:-.04em}.brand img{width:31px;height:31px;object-fit:contain}.nav>p{position:absolute;left:50%;transform:translateX(-50%);font:9px "DM Mono";letter-spacing:.22em;opacity:.58}.nav-actions{display:flex;align-items:center;gap:13px}.motion-toggle{border:0;background:transparent;color:inherit;font:9px "DM Mono";letter-spacing:.08em;display:flex;align-items:center;gap:8px;cursor:pointer}.motion-toggle span{width:7px;height:7px;background:var(--lime);border-radius:50%;box-shadow:0 0 12px var(--lime)}.motion-toggle[aria-pressed=true] span{background:#88928d;box-shadow:none}.open-button{display:flex;align-items:center;gap:22px;text-decoration:none;border:1px solid currentColor;border-radius:99px;padding:11px 16px;font-size:11px;font-weight:700;transition:.25s}.open-button:hover{background:var(--lime);border-color:var(--lime);color:var(--ink);transform:translateY(-2px)}.rail{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:65;display:flex;flex-direction:column;align-items:center;gap:10px;font:8px "DM Mono";letter-spacing:.1em;color:currentColor;mix-blend-mode:difference}.rail i{height:120px;width:1px;background:rgba(255,255,255,.24);position:relative}.rail b{position:absolute;left:0;top:0;width:1px;height:calc(var(--scroll)*100%);background:white}.rail strong{font-weight:400}.chapter{min-height:110vh;position:relative;padding:130px clamp(34px,7vw,115px);isolation:isolate}.hero{min-height:100vh;display:flex;align-items:center;overflow:hidden;padding-top:120px}.hero-copy{position:relative;z-index:4;width:68%}.kicker{font:500 9px "DM Mono";letter-spacing:.23em;color:var(--lime);margin:0 0 27px}.hero h1{font-size:clamp(68px,9.9vw,160px);line-height:.79;letter-spacing:-.087em;font-weight:500;margin:0}.hero h1 span{display:inline-block}.hero h1 em,.finale h2 em{font-family:Georgia,serif;font-weight:400;color:var(--lime)}.hero-foot{margin:42px 0 0;display:flex;align-items:center;gap:clamp(40px,9vw,150px)}.hero-foot p{max-width:440px;color:#aebeb7;line-height:1.75;font-size:14px;margin:0}.hero-foot a{font:9px "DM Mono";letter-spacing:.15em;text-decoration:none;display:flex;align-items:center;gap:20px}.hero-foot a span{width:42px;height:42px;border:1px solid rgba(255,255,255,.35);border-radius:50%;display:grid;place-items:center;animation:bob 2s ease-in-out infinite}.seed-stage{position:absolute;right:-8vw;top:50%;transform:translateY(-48%);width:min(56vw,830px);aspect-ratio:1;z-index:1}.orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(183,243,107,.18);border-radius:50%}.orbit-a{width:83%;height:83%;transform:translate(-50%,-50%) rotate(45deg) scaleY(.43);animation:spinA 18s linear infinite}.orbit-b{width:62%;height:93%;transform:translate(-50%,-50%) rotate(-35deg) scaleX(.52);animation:spinB 24s linear infinite}.seed-leaf{position:absolute;left:50%;top:50%;width:32%;height:42%;transform:translate(-50%,-50%) rotate(11deg);border-radius:76% 16% 72% 22%;background:linear-gradient(145deg,#123c2e,#0f6c47);box-shadow:0 50px 120px rgba(0,0,0,.38),inset 20px 15px 35px rgba(255,255,255,.08);display:grid;place-items:center;overflow:hidden}.seed-leaf:after{content:"";position:absolute;left:48%;top:-10%;width:3px;height:125%;background:var(--lime);transform:rotate(27deg);box-shadow:0 0 25px rgba(183,243,107,.7)}.seed-leaf i{position:absolute;width:58%;height:2px;background:var(--lime);left:44%;top:43%;transform:rotate(-21deg);box-shadow:-12px 54px 0 -1px var(--lime),-6px -49px 0 -1px var(--lime)}.seed-leaf b{font-size:0}.seed-stage>p{position:absolute;right:12%;bottom:13%;font:8px/1.8 "DM Mono";letter-spacing:.16em;color:#96aaa1}.seed-stage>p b{color:var(--lime);font-weight:400}.particle{position:absolute;width:7px;height:7px;background:var(--lime);border-radius:50%;box-shadow:0 0 18px var(--lime);animation:drift 5s ease-in-out infinite}.p1{left:20%;top:28%}.p2{right:18%;top:34%;animation-delay:-2s}.p3{right:27%;bottom:16%;animation-delay:-3.5s}.scroll-cue{position:absolute;left:clamp(34px,7vw,115px);bottom:30px;font:8px "DM Mono";letter-spacing:.2em;display:flex;gap:15px;align-items:center;opacity:.58}.scroll-cue i{width:52px;height:1px;background:currentColor;animation:scan 2.4s infinite}.chapter-index{position:absolute;left:clamp(34px,7vw,115px);top:105px;display:flex;align-items:center;gap:14px;font:8px "DM Mono";letter-spacing:.15em;color:var(--forest)}.chapter-index i{width:55px;height:1px;background:currentColor;opacity:.35}.chapter-index b{font-weight:500}.chapter-copy{position:relative;z-index:5;max-width:650px}.chapter-copy .kicker{color:var(--forest)}.chapter-copy h2{font-size:clamp(58px,7.8vw,122px);line-height:.87;letter-spacing:-.075em;font-weight:500;margin:0 0 33px}.chapter-copy>p:last-child{font-size:15px;line-height:1.8;color:var(--muted);max-width:510px}.link-chapter{min-height:135vh;padding-top:30vh;background:var(--paper);color:var(--ink)}.link-chapter .chapter-copy{margin-left:4vw}.stage-card{background:rgba(255,253,248,.74);border:1px solid rgba(16,35,28,.13);box-shadow:0 40px 100px rgba(16,35,28,.13);backdrop-filter:blur(12px)}.link-stage{height:620px;width:min(880px,66vw);margin:-4vh 1vw 8vh auto;position:relative;border-radius:36px;overflow:hidden;transform:translate3d(0,var(--parallax,0),0) rotate(-1.5deg)}.note{position:absolute;width:265px;min-height:160px;padding:23px;background:var(--white);border:1px solid var(--line);border-radius:8px;z-index:2;box-shadow:0 25px 55px rgba(16,35,28,.11)}.note small{font:8px "DM Mono";letter-spacing:.14em;color:var(--forest)}.note h3{font-size:18px;letter-spacing:-.03em;margin:17px 0 10px}.note p{font-family:Georgia,serif;font-size:13px;line-height:1.55;color:var(--muted)}.note span{font:8px "DM Mono";color:var(--green);background:#e8f0e7;border-radius:99px;padding:5px 8px}.n1{left:5%;top:9%;transform:rotate(-5deg)}.n2{right:5%;top:11%;transform:rotate(4deg)}.n3{left:37%;bottom:7%;transform:rotate(-2deg)}.link-stage svg{position:absolute;inset:0;width:100%;height:100%}.link-stage path{fill:none;stroke:var(--forest);stroke-width:3;stroke-dasharray:8 11}.link-stage circle{fill:var(--lime);stroke:var(--forest);stroke-width:5}.link-pulse{position:absolute;left:51.5%;top:68%;width:30px;height:30px;border:2px solid var(--green);border-radius:50%;animation:pulse 2.1s infinite}.map-chapter{min-height:180vh;background:#c7f47d;color:var(--ink);padding-top:130px}.map-sticky{position:sticky;top:105px;min-height:calc(100vh - 130px);display:grid;grid-template-columns:.7fr 1.3fr;align-items:center;gap:4vw}.map-chapter .chapter-copy h2{font-size:clamp(52px,6vw,92px)}.graph{height:min(72vh,730px);position:relative}.graph svg{width:100%;height:100%;overflow:visible}.edges path{fill:none;stroke:rgba(14,92,62,.38);stroke-width:2;stroke-dasharray:5 9}.nodes circle{fill:#f4f1e8;stroke:var(--forest);stroke-width:5;transform-box:fill-box;transform-origin:center;animation:nodeBreath 4s ease-in-out infinite}.nodes circle:nth-child(3n){animation-delay:-1.5s}.nodes .core{fill:var(--forest);stroke:var(--paper);stroke-width:8;filter:drop-shadow(0 18px 20px rgba(14,92,62,.25))}.graph-label{position:absolute;background:var(--paper);border:1px solid rgba(16,35,28,.16);padding:13px 16px;border-radius:8px;box-shadow:0 13px 30px rgba(16,35,28,.12);display:grid;gap:4px}.graph-label b{font-size:11px}.graph-label span,.graph>p{font:7px "DM Mono";letter-spacing:.1em;color:var(--green)}.label-a{left:48%;top:39%}.label-b{right:4%;top:64%}.graph>p{position:absolute;right:0;bottom:0}.together-chapter{min-height:145vh;padding-top:27vh;background:var(--paper);color:var(--ink)}.together-chapter .chapter-copy{margin-left:auto;width:52%;padding-right:3vw}.editor-window{width:min(1050px,82vw);height:650px;margin:9vh auto 0;border-radius:20px;overflow:hidden;position:relative;display:grid;grid-template-columns:220px 1fr;grid-template-rows:54px 1fr;transform:translate3d(0,var(--parallax,0),0)}.editor-window>header{grid-column:1/-1;display:flex;align-items:center;padding:0 18px;background:#14382c;color:white;gap:7px}.editor-window>header i{width:7px;height:7px;border-radius:50%;background:#71867e}.editor-window>header i:first-child{background:var(--lime)}.editor-window>header span{margin-left:14px;font:8px "DM Mono";letter-spacing:.1em;opacity:.68}.editor-window>header b{margin-left:auto;font:8px "DM Mono";color:var(--lime);font-weight:500}.editor-sidebar{background:#173d30;color:white;padding:35px 24px;display:flex;flex-direction:column;gap:22px}.editor-sidebar span{font:7px "DM Mono";letter-spacing:.18em;opacity:.5}.editor-sidebar b,.editor-sidebar p{font-size:11px;margin:0}.editor-sidebar p{opacity:.45}.editor-page{background:var(--white);padding:65px clamp(35px,7vw,100px);position:relative}.editor-page small{font:7px "DM Mono";letter-spacing:.15em;color:var(--green)}.editor-page h3{font-size:clamp(33px,4vw,58px);line-height:.98;letter-spacing:-.06em;margin:35px 0}.editor-page p{font:17px/1.85 Georgia,serif;max-width:650px}.editor-page blockquote{margin:42px 0;padding:20px 26px;border-left:3px solid var(--green);font:italic 20px Georgia,serif;color:var(--green)}.editor-page mark{background:#d8ff8e}.ghost-line{opacity:.35}.cursor{position:absolute;z-index:3}.cursor i{display:block;width:2px;height:26px;background:currentColor}.cursor span{font:7px "DM Mono";background:currentColor;color:white;padding:5px 7px;border-radius:0 5px 5px 5px}.cursor-a{color:#0e8e5a;left:48%;top:44%;animation:cursorA 6s var(--ease) infinite}.cursor-b{color:#ef6a4c;left:65%;top:58%;animation:cursorB 7s var(--ease) -2s infinite}.cursor-c{color:#6c55c7;left:77%;top:35%;animation:cursorA 8s var(--ease) -4s infinite}.everywhere-chapter{min-height:150vh;background:#dfe8df;color:var(--ink);padding-top:25vh;overflow:hidden}.everywhere-chapter .chapter-copy{position:relative;z-index:4}.devices{height:700px;margin:-17vh -3vw 0 auto;width:min(920px,73vw);position:relative}.device{position:absolute;background:#10251e;padding:10px;box-shadow:0 40px 90px rgba(16,35,28,.22);z-index:2}.laptop{width:540px;height:335px;right:12%;top:19%;border-radius:18px;transform:perspective(1000px) rotateY(-13deg) rotateX(5deg)}.laptop:after{content:"";position:absolute;left:-50px;right:-50px;bottom:-18px;height:18px;background:#10251e;border-radius:0 0 20px 20px}.tablet{width:270px;height:360px;left:0;bottom:0;border-radius:24px;transform:rotate(-8deg)}.phone{width:155px;height:310px;right:1%;bottom:2%;border-radius:30px;transform:rotate(8deg)}.mini-app{height:100%;background:var(--white);display:grid;grid-template-columns:27% 1fr;overflow:hidden;border-radius:9px}.mini-app>i{background:var(--forest)}.mini-app article{padding:15%;display:flex;flex-direction:column;gap:14px}.mini-app small{font:6px "DM Mono";color:var(--green)}.mini-app b{height:5px;background:#cdd7d1;width:100%}.mini-app b:last-child{width:55%}.sync-ring{position:absolute;left:49%;top:51%;width:650px;height:300px;border:1px dashed rgba(14,92,62,.25);border-radius:50%;transform:translate(-50%,-50%) rotate(18deg);animation:spinA 18s linear infinite}.r2{width:480px;height:500px;transform:translate(-50%,-50%) rotate(-40deg);animation:spinB 23s linear infinite}.platform-marquee{position:absolute;left:0;right:0;bottom:3vh;overflow:hidden;border-top:1px solid rgba(16,35,28,.14);border-bottom:1px solid rgba(16,35,28,.14);padding:20px 0;transform:rotate(-2deg) scale(1.04)}.platform-marquee>div{width:max-content;display:flex;gap:35px;align-items:center;animation:marquee 17s linear infinite}.platform-marquee span{font-size:clamp(23px,3.5vw,50px);font-weight:600;letter-spacing:-.05em}.platform-marquee i{color:var(--forest)}.finale{min-height:110vh;background:var(--night);color:var(--paper);display:grid;place-items:center;text-align:center;overflow:hidden}.canopy{position:absolute;inset:0;opacity:.7}.canopy svg{width:100%;height:100%;filter:drop-shadow(0 0 20px rgba(183,243,107,.2))}.canopy path{fill:none;stroke:rgba(183,243,107,.4);stroke-width:3}.leaf-cloud{position:absolute;inset:-10%;background:radial-gradient(ellipse at 10% 10%,rgba(183,243,107,.15),transparent 22%),radial-gradient(ellipse at 80% 15%,rgba(31,134,91,.25),transparent 28%),radial-gradient(ellipse at 15% 75%,rgba(31,134,91,.16),transparent 24%),radial-gradient(ellipse at 90% 75%,rgba(183,243,107,.12),transparent 25%);filter:blur(8px)}.final-copy{position:relative;z-index:3}.final-copy .kicker{margin-bottom:35px}.final-copy h2{font-size:clamp(68px,9vw,140px);line-height:.84;letter-spacing:-.08em;font-weight:500;margin:0}.final-copy>p{color:#9eb0a8;margin:35px 0}.final-copy>div{display:flex;justify-content:center;gap:12px}.final-primary,.final-secondary{min-width:205px;padding:15px 20px;border-radius:99px;text-decoration:none;font-size:11px;font-weight:700;display:flex;justify-content:space-between;align-items:center;transition:.25s}.final-primary{background:var(--lime);color:var(--ink)}.final-secondary{border:1px solid rgba(255,255,255,.3)}.final-primary:hover,.final-secondary:hover{transform:translateY(-3px)}.finale footer{position:absolute;left:clamp(24px,4vw,65px);right:clamp(24px,4vw,65px);bottom:28px;display:flex;justify-content:space-between;font:7px "DM Mono";letter-spacing:.12em;color:#81958d}.finale footer a{text-decoration:none}.finale footer a:hover{color:var(--lime)}[data-reveal]{opacity:0;transform:translateY(38px);transition:opacity .9s,transform 1.1s var(--ease)}[data-reveal].visible{opacity:1;transform:none}.motion-paused *{animation-play-state:paused!important}.motion-paused [data-depth]{transform:none!important}@keyframes bob{50%{transform:translateY(7px)}}@keyframes scan{0%{transform:scaleX(0);transform-origin:left}49%{transform:scaleX(1);transform-origin:left}50%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}@keyframes spinA{to{rotate:360deg}}@keyframes spinB{to{rotate:-360deg}}@keyframes drift{50%{transform:translateY(-24px) scale(1.4);opacity:.45}}@keyframes pulse{from{transform:scale(.3);opacity:1}to{transform:scale(3);opacity:0}}@keyframes nodeBreath{50%{transform:scale(1.18)}}@keyframes cursorA{0%,20%,100%{transform:translate(0,0)}45%{transform:translate(60px,28px)}70%{transform:translate(-20px,65px)}}@keyframes cursorB{0%,20%,100%{transform:translate(0,0)}45%{transform:translate(-75px,35px)}75%{transform:translate(20px,-38px)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:900px){.nav>p{display:none}.hero-copy{width:82%}.seed-stage{opacity:.55;right:-30vw;width:90vw}.chapter{padding-left:35px;padding-right:35px}.map-sticky{grid-template-columns:1fr}.map-chapter .chapter-copy{max-width:530px}.graph{height:50vh}.together-chapter .chapter-copy{width:70%}.editor-window{width:94vw;grid-template-columns:170px 1fr}.devices{width:92vw}.laptop{right:4%}.rail{right:10px}}
@media(max-width:620px){.nav{height:66px;padding:0 17px}.brand span{font-size:16px}.motion-toggle{font-size:0;padding:8px}.open-button{padding:10px 12px}.open-button>span{display:none}.rail{display:none}.chapter{padding:100px 21px;min-height:105vh}.hero{padding-top:100px;align-items:flex-start}.hero-copy{width:100%;margin-top:11vh}.hero h1{font-size:clamp(57px,18vw,82px);line-height:.83}.hero-foot{display:block;margin-top:35px}.hero-foot p{max-width:85%;font-size:13px}.hero-foot a{margin-top:27px}.seed-stage{width:115vw;right:-48vw;top:65%;opacity:.44}.scroll-cue{left:21px}.chapter-index{left:21px;top:86px}.chapter-copy h2{font-size:52px}.chapter-copy>p:last-child{font-size:14px}.link-chapter{padding-top:23vh}.link-chapter .chapter-copy{margin-left:0}.link-stage{width:100%;height:540px;margin:7vh 0 0;transform:none;border-radius:22px}.note{width:190px;min-height:135px;padding:16px}.note h3{font-size:14px;margin:11px 0 7px}.note p{font-size:11px}.n1{left:3%;top:6%}.n2{right:2%;top:34%}.n3{left:8%;bottom:4%}.map-chapter{min-height:150vh}.map-sticky{top:85px;display:block}.graph{height:48vh;margin-top:4vh}.graph-label{padding:9px}.label-a{left:44%}.together-chapter{padding-top:20vh}.together-chapter .chapter-copy{width:100%;padding:0}.editor-window{width:100%;height:570px;margin-top:7vh;display:block;border-radius:14px}.editor-window>header{height:48px}.editor-sidebar{display:none}.editor-page{height:calc(100% - 48px);padding:40px 25px}.editor-page h3{font-size:36px}.editor-page p{font-size:15px}.editor-page blockquote{font-size:17px;margin:28px 0}.cursor-a{left:30%}.cursor-b{left:55%}.cursor-c{left:72%}.everywhere-chapter{padding-top:20vh;min-height:135vh}.devices{width:115vw;height:540px;margin:0 0 0 -18vw}.laptop{width:360px;height:225px;right:0;top:12%}.tablet{width:180px;height:240px;left:6%;bottom:2%}.phone{width:105px;height:220px;right:7%;bottom:0}.sync-ring{width:420px;height:220px}.r2{width:300px;height:360px}.platform-marquee{bottom:2vh}.final-copy h2{font-size:58px}.final-copy>div{flex-direction:column;align-items:center}.final-primary,.final-secondary{width:230px}.finale footer{justify-content:center}.finale footer b,.finale footer a{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.motion-toggle{display:none}}
.brand img{filter:brightness(0) invert(1)}.nav.light .brand img{filter:none}

/* Production navigation and the same Leaf artwork used by the Flutter app. */
.main-links{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:26px}.main-links a{font-size:12px;font-weight:700;text-decoration:none;opacity:.78;transition:opacity .2s,color .2s}.main-links a:hover{opacity:1;color:var(--lime)}.nav.light .main-links a:hover{color:var(--forest)}
.site-menu{display:none;border:0;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer}.mobile-main-links[hidden]{display:none}
.mobile-main-links{position:fixed;left:12px;right:12px;top:72px;z-index:69;padding:14px;background:rgba(243,240,231,.97);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 25px 70px rgba(7,27,21,.2);display:grid}.mobile-main-links a{padding:13px 15px;border-radius:10px;text-decoration:none;font-size:13px;font-weight:600}.mobile-main-links a:hover{background:#e3eadf;color:var(--forest)}
.seed-leaf{background:transparent!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}.seed-leaf:after,.seed-leaf>i,.seed-leaf>b{display:none!important}.seed-leaf img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 30px 45px rgba(0,0,0,.32)) drop-shadow(0 0 25px rgba(183,243,107,.18))}
@media(max-width:1120px){.main-links{gap:17px}.main-links a{font-size:11px}.motion-toggle{display:none}}
@media(max-width:820px){.main-links{display:none}.site-menu{display:block}}
@media(max-width:620px){.nav-actions{gap:8px}.mobile-main-links{top:72px}.seed-stage{opacity:.62}}

/* Softer graph hold: content keeps drifting while the sticky scene is active. */
.map-chapter{min-height:160vh;--map-progress:0;--map-exit:0;--map-copy-y:0px;--map-graph-y:0px;--map-scale:1;--map-opacity:1}
.map-sticky{top:clamp(82px,10vh,102px);opacity:var(--map-opacity);will-change:opacity}
.map-sticky .chapter-copy{transform:translate3d(0,var(--map-copy-y),0);will-change:transform}
.map-sticky .graph{transform:translate3d(0,var(--map-graph-y),0) scale(var(--map-scale));transform-origin:center;will-change:transform}

/* Fast, one-time type-on reveal for each chapter description. */
.typing-copy{min-height:3.6em}
.hero-foot .typing-copy{min-height:3.5em}
.final-copy .typing-copy{min-height:1.8em}
.typing-copy.typing-active:after{content:"";display:inline-block;width:1px;height:.95em;margin-left:3px;background:currentColor;vertical-align:-.12em;animation:typeCaret .62s steps(1,end) infinite}
@keyframes typeCaret{50%{opacity:0}}
@media(max-width:620px){.map-chapter{min-height:140vh}.map-sticky{top:76px}}
@media(prefers-reduced-motion:reduce){.map-sticky,.map-sticky .chapter-copy,.map-sticky .graph{transform:none!important;opacity:1!important}.typing-copy.typing-active:after{display:none}}
.finale footer nav{display:flex;gap:15px}@media(max-width:620px){.finale footer nav{display:none}}
