@font-face{font-family:Manrope;src:url('assets/fonts/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}@font-face{font-family:Bodoni;src:url('assets/fonts/bodoni-moda.ttf') format('truetype');font-weight:400 900;font-display:swap}
:root{--paper:#f5f5ed;--ink:#292d21;--lime:#8FAF56;--muted:#b5b9a9;--sans:Manrope,Arial,sans-serif;--serif:Bodoni,Georgia,serif;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #859e00;outline-offset:6px}button{border:0}h1,h2,h3,p{margin:0}em{font-family:var(--serif);font-weight:400;font-style:normal}img{max-width:100%;display:block}::selection{background:var(--lime);color:var(--ink)}[hidden]{display:none!important}.skip-link{position:fixed;left:15px;top:-80px;z-index:100;background:var(--lime);padding:15px}.skip-link:focus{top:15px}.header{position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:23px 30px;transition:color .35s;pointer-events:none}.header>*{pointer-events:auto}.header.on-dark{color:var(--paper)}.wordmark{display:flex;flex-direction:column;line-height:.86;width:max-content}.wordmark span{font:400 22px/.95 var(--serif);letter-spacing:-1px}.wordmark b{font-size:26px;letter-spacing:-1.5px;font-weight:800}.header-mark{position:absolute;left:50%;transform:translateX(-50%);font:italic 46px/.8 var(--serif);letter-spacing:-6px}.header-actions{display:flex;gap:8px;align-items:center}.book{background:var(--lime);color:var(--ink);padding:17px 20px;border-radius:7px;font-size:12px;font-weight:800;display:flex;gap:22px}.book span{font-size:19px;line-height:16px}.menu-button{width:51px;height:51px;border-radius:7px;border:1px solid #292d2140;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-button span{background:var(--ink);height:2px;width:18px;transition:transform .3s}.menu-button span:first-child{transform:translateX(4px)}.menu-button span:last-child{transform:translateX(-4px)}.menu-button[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.menu{position:fixed;z-index:25;inset:0;background:var(--lime);padding:140px 8vw 40px;overflow:auto}.menu>a{display:flex;align-items:center;border-bottom:1px solid #292d2140;font-size:clamp(30px,5.5vw,78px);letter-spacing:-3px;padding:13px 0}.menu small{font-size:12px;letter-spacing:0;margin-right:35px}.menu>a span{margin-left:auto}.menu>p{font-size:12px;margin-top:35px}.menu-open{overflow:hidden}.eyebrow,.tiny-label,.section-label{font-size:10px;font-weight:700;letter-spacing:.06em}.hero{height:125svh;min-height:850px;position:relative}.hero-stage{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;background:var(--paper)}.contours{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.45}.hero-kicker{position:absolute;top:19%;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.13em;white-space:nowrap}.hero h1{position:absolute;left:0;right:0;top:26%;text-align:center;line-height:.8;letter-spacing:-.065em;transform:translateY(calc(var(--hero-progress,0)*-65px));will-change:transform}.hero h1 span{font:400 clamp(55px,10.8vw,170px)/.95 var(--serif);letter-spacing:-.055em;display:block}.hero h1 b{font-size:clamp(90px,17vw,260px);font-weight:800;display:block;letter-spacing:-.075em}.hero-person{position:absolute;height:82%;width:auto;max-width:none;bottom:-7%;left:50%;transform:translateX(-50%) translateY(calc(var(--hero-progress,0)*35px)) scale(calc(1 + var(--hero-progress,0)*.07));transform-origin:50% 100%;z-index:2;will-change:transform}.hero-side{position:absolute;left:5%;bottom:20%;z-index:3}.hero-side p{font:400 26px/1.05 var(--serif);margin-top:12px}.round-link{border:1px solid #292d2140;border-radius:50%;display:grid;place-items:center;width:45px;height:45px;margin-top:22px;font-size:21px;transition:background .2s,transform .3s}.round-link:hover{background:var(--lime);transform:translateY(4px)}.hero-identity{position:absolute;right:4%;bottom:22%;font-size:11px;line-height:1.7;z-index:3}.hero-bottom{position:absolute;bottom:0;left:0;right:0;z-index:4;display:flex;justify-content:space-between;padding:22px 30px;font-size:9px;letter-spacing:.04em;background:var(--paper)}.hero-bottom a span{margin-left:12px}.dark{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}.about{padding:90px 0 130px}.section-label{display:flex;justify-content:center;align-items:center;gap:12px}.mini-mark{font:italic 32px var(--serif);letter-spacing:-4px;margin-right:8px}.oversized{margin:50px -9% 0;white-space:nowrap;text-align:center;line-height:.84;position:relative;transform:translateX(calc(var(--about-progress,0)*-5%));will-change:transform}.oversized span{font:400 10.5vw/.9 var(--serif);color:var(--lime);display:block;letter-spacing:-.045em}.oversized b{font-size:11.2vw;letter-spacing:-.075em}.about-center{position:relative;width:44%;margin:-25px auto 0}.portrait-editorial{height:440px;overflow:hidden;background:#55594b;position:relative}.portrait-editorial img{height:118%;width:auto;margin:0 auto;filter:grayscale(1);object-fit:contain}.photo-caption{position:absolute;bottom:20px;left:20px;font-size:9px;letter-spacing:.05em}.editorial-mark{position:absolute;color:var(--lime);font:italic 210px/.8 var(--serif);letter-spacing:-35px;bottom:-20px;right:-90px;transform:rotate(-12deg)}.about-text{position:relative;max-width:660px;margin:100px auto 0;text-align:center;padding:0 20px}.about-text h2{font-size:35px;line-height:1.2;letter-spacing:-1.5px;margin:28px 0}.about-text h2 em{font-size:1.15em}.about-text>p:not(.eyebrow){font-size:15px;line-height:1.8;color:#c4c7b9;max-width:470px;margin:auto}.text-link{font-size:10px;display:inline-flex;gap:45px;align-items:center;border-bottom:1px solid #ffffff50;padding:18px 0;margin-top:25px}.text-link span{font-size:24px;color:var(--lime)}.trajectory{padding:110px 5vw 45px}.trajectory-heading{position:relative}.trajectory-heading h2{margin:40px 0 35px;line-height:.95;letter-spacing:-.05em}.trajectory-heading h2 span{font:400 7.5vw/.95 var(--serif);display:block}.trajectory-heading h2 b{font-size:8vw;letter-spacing:-.065em}.trajectory-heading>p:last-child{font-size:13px;line-height:1.7;text-align:right}.timeline{display:grid;grid-template-columns:1.05fr 1fr;gap:9%;margin-top:65px}.timeline-sticky{height:650px;max-height:90vh;position:sticky;top:95px;display:flex;flex-direction:column;justify-content:center}.giant-year{font-size:clamp(100px,20vw,330px);font-weight:800;line-height:.85;letter-spacing:-.09em;margin:35px 0 40px}.giant-year>span{display:block;color:#899578}.year-nav{display:flex;gap:0;border-bottom:1px solid #292d2130;justify-content:space-between}.year-nav a{font-size:12px;padding:14px 8px;position:relative}.year-nav a.active{font-weight:800}.year-nav a.active:after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:4px;background:var(--ink)}.timeline-count{display:flex;align-items:center;gap:10px;font-size:9px;margin-top:22px}.timeline-count i{height:1px;background:#292d2130;flex:1}.chapters{min-width:0}.chapter{min-height:80svh;display:flex;flex-direction:column;justify-content:center;padding:65px 0;border-bottom:1px solid #292d2125;scroll-margin-top:80px}.chapter-index{font-size:10px;font-weight:700}.chapter-symbol{height:130px;display:flex;align-items:center;justify-content:space-between;font-size:105px;font-family:var(--serif);color:#7c886d}.chapter-symbol span{font:10px/1.5 var(--sans);color:var(--ink);text-align:right}.chapter h3{font-size:clamp(29px,3.3vw,51px);font-weight:600;letter-spacing:-.05em;line-height:1.06;margin:20px 0 25px}.chapter h3 em{font-size:1.15em}.chapter>p:not(.mobile-year){font-size:14px;line-height:1.85;max-width:390px}.mobile-year{display:none}.sources{font-size:9px;line-height:2;margin-top:60px;display:flex;gap:25px;flex-wrap:wrap}.sources a{text-decoration:underline;text-underline-offset:4px}.ect{padding:95px 5vw 120px}.ect-top{position:relative;display:flex;justify-content:space-between;font-size:10px}.ect-title{position:relative;display:flex;justify-content:space-between;margin:75px 0 85px}.ect-title h2{font-size:8.5vw;font-weight:800;line-height:.95;letter-spacing:-.06em}.ect-title h2 em{font-size:1.04em}.ect-title b{color:var(--lime)}.ect-arrow{font-size:11vw;color:var(--lime);align-self:end;line-height:1}.ect-body{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:12%}.ect-intro>p{font-size:28px;line-height:1.2;letter-spacing:-.04em}.ect-intro em{font-size:1.3em;color:var(--lime)}.ect-intro>span{display:block;max-width:330px;color:#c4c7b9;font-size:13px;line-height:1.85;margin-top:30px}details{border-top:1px solid #ffffff30}summary{cursor:pointer;display:flex;align-items:center;gap:18px;padding:25px 0;font-size:16px;list-style:none}summary::-webkit-details-marker{display:none}summary small{font-size:9px;color:#b5b9a9}summary span{margin-left:auto;font-size:26px;font-weight:300;color:var(--lime);transition:transform .3s}details[open] summary span{transform:rotate(45deg)}details p{font-size:13px;line-height:1.8;color:#c4c7b9;padding:0 30px 25px}.ect-sources{border-top:1px solid #ffffff30;padding-top:25px;display:flex;flex-wrap:wrap;gap:18px;font-size:9px;color:#c4c7b9}.contact{background:var(--lime);padding:85px 5vw 75px}.contact h2{font-size:9.2vw;letter-spacing:-.07em;line-height:.95;margin:70px 0}.contact h2 em{font-size:1.05em;letter-spacing:-.06em}.contact-bottom{display:flex;align-items:end;justify-content:space-between}.contact-bottom>p{font-size:13px;line-height:1.7}.contact-button{display:flex;gap:65px;align-items:center;padding:22px 0;border-bottom:1px solid var(--ink);transition:gap .3s}.contact-button:hover{gap:90px}.contact-button>span{font-size:20px;font-weight:800;letter-spacing:-.04em}.contact-button small{display:block;font-size:9px;letter-spacing:.03em;margin-top:8px;font-weight:500}.contact-button b{font-size:50px;line-height:1}footer{background:var(--ink);color:var(--paper);padding:55px 5vw 25px}.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:50px}.footer-top p{font-size:11px;line-height:1.8}.footer-top>a:last-child{font-size:9px}.footer-bottom{border-top:1px solid #ffffff25;padding-top:20px;display:flex;justify-content:space-between;font-size:8px;color:var(--muted)}.reading-progress{position:fixed;left:0;top:0;height:3px;background:var(--lime);width:var(--read,0%);z-index:45}.intro{position:fixed;inset:0;z-index:60;background:var(--lime);display:grid;place-items:center;transition:clip-path .8s cubic-bezier(.77,0,.18,1);clip-path:inset(0)}.intro.leaving{clip-path:inset(0 0 100% 0);pointer-events:none}.intro-name{display:flex;flex-direction:column;line-height:.83;text-align:center;letter-spacing:-.06em}.intro-name span{font:400 8vw/.9 var(--serif)}.intro-name b{font-size:12vw;letter-spacing:-.07em}.intro-bottom{position:absolute;bottom:35px;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;font-size:10px}.intro-bottom button{background:none;font-size:11px}.intro-bottom>span:last-child{font-size:28px;font-weight:700}.reveal{transition:opacity .8s,transform .8s}.motion .reveal:not(.visible){opacity:0;transform:translateY(30px)}
@media(min-width:1600px){.hero-person{height:87%;bottom:-10%}.hero-stage{max-height:1100px}.about-center{max-width:750px}.portrait-editorial{height:550px}.timeline-sticky{height:800px}}
@media(max-width:900px){.header{padding:20px}.wordmark span{font-size:18px}.wordmark b{font-size:22px}.hero-person{height:72%;bottom:0}.hero-side{left:4%;bottom:14%}.hero-side p{font-size:23px}.hero-identity{right:3%;bottom:15%;font-size:9px}.hero h1{top:29%}.about-center{width:60%}.portrait-editorial{height:380px}.timeline{gap:7%}.timeline-sticky{height:550px}.chapter{min-height:70vh}.ect-body{gap:6%}.contact-button{gap:30px}.contact-button>span{font-size:17px}}
@media(max-width:600px){html{scroll-padding-top:85px}.header{padding:18px 16px}.wordmark span{font-size:14px;letter-spacing:-.7px}.wordmark b{font-size:18px;letter-spacing:-1px}.header-mark{display:none}.book{padding:14px 13px;font-size:10px;gap:12px}.menu-button{width:43px;height:43px}.menu{padding:130px 22px 30px}.menu>a{font-size:32px;letter-spacing:-1.5px;padding:22px 0}.menu small{margin-right:18px}.menu>p{font-size:10px;line-height:1.8}.hero{height:105svh;min-height:700px}.hero-stage{height:100svh;min-height:670px}.hero-kicker{top:19%;font-size:8px}.hero h1{top:25%;line-height:.9}.hero h1 span{font-size:11.3vw}.hero h1 b{font-size:18vw}.hero-person{height:64%;bottom:6%;max-width:none}.hero-side{bottom:16%;left:20px}.hero-side .tiny-label{font-size:7px}.hero-side p{font-size:17px;line-height:1.1;max-width:110px}.round-link{width:34px;height:34px;font-size:16px;margin-top:15px;background:#f5f5edb0}.hero-identity{bottom:7%;right:18px;font-size:8px;line-height:1.5;background:#f5f5edc9;padding:8px 10px}.hero-bottom{padding:17px 18px;font-size:7px}.hero-bottom>span:last-child{display:none}.about{padding:65px 0 80px}.oversized{margin:40px -35% 0}.oversized span{font-size:16vw}.oversized b{font-size:16.8vw}.about-center{width:70%;margin:10px auto 0}.portrait-editorial{height:300px}.editorial-mark{font-size:130px;letter-spacing:-22px;right:-35px;bottom:-8px}.photo-caption{font-size:6px;left:12px}.about-text{margin-top:65px}.about-text h2{font-size:26px}.about-text>p:not(.eyebrow){font-size:13px;max-width:315px}.trajectory{padding:70px 22px 40px}.trajectory-heading h2{margin:30px 0}.trajectory-heading h2 span{font-size:11vw}.trajectory-heading h2 b{font-size:10.6vw;line-height:1.1;display:block}.trajectory-heading>p:last-child{text-align:left;font-size:12px}.timeline{display:block;margin-top:35px}.timeline-sticky{height:auto;max-height:none;position:relative;top:auto;display:block}.timeline-sticky>.eyebrow,.giant-year,.timeline-count{display:none}.year-nav{gap:0;margin-bottom:10px}.year-nav a{font-size:10px;padding:14px 10px}.chapter{min-height:0;padding:45px 0 55px}.chapter-symbol{height:85px;font-size:80px}.chapter-symbol span{font-size:9px}.mobile-year{display:block;font-size:60px!important;line-height:1;letter-spacing:-5px;font-weight:800;color:#859276;margin:20px 0 0}.chapter h3{font-size:32px;margin:20px 0}.chapter>p:not(.mobile-year){font-size:13px;line-height:1.8}.sources{margin-top:30px;gap:12px;font-size:8px}.ect{padding:65px 22px 70px}.ect-top>span{display:none}.ect-title{margin:40px 0 45px}.ect-title h2{font-size:10.8vw}.ect-arrow{font-size:14vw}.ect-body{grid-template-columns:1fr;gap:40px}.ect-intro>p{font-size:25px}.ect-intro>span{font-size:13px;max-width:none;margin-top:22px}summary{font-size:14px;padding:22px 0}details p{padding-left:28px}.contact{padding:55px 22px}.contact h2{font-size:11vw;margin:45px 0;line-height:1}.contact-bottom{display:block}.contact-bottom>p{font-size:12px}.contact-button{justify-content:space-between;margin-top:30px;gap:10px}.contact-button:hover{gap:10px}.contact-button>span{font-size:18px}.contact-button b{font-size:40px}footer{padding:40px 22px 20px}.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-bottom:30px}.footer-top p{font-size:9px}.footer-top>a:last-child{font-size:8px}.footer-bottom{gap:20px;font-size:7px;line-height:1.6}.footer-bottom span:last-child{text-align:right;max-width:150px}.intro-bottom{font-size:7px}.intro-bottom button{font-size:9px}.intro-bottom>span:last-child{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero{height:100svh;min-height:670px}.hero-stage{position:relative}.hero-person{transform:translateX(-50%)!important}.hero h1,.oversized,.motion .reveal:not(.visible){transform:none!important;opacity:1!important}}
@media(max-width:600px){.hero-side{background:var(--paper);padding:11px 13px;border-radius:3px;bottom:17%;left:18px}.hero-side p{font-size:15px}.hero-side .round-link{margin-top:10px;width:29px;height:29px}.hero-side .tiny-label{font-size:6px}}
.header.scrolled{background:transparent;padding-bottom:32px}.header.scrolled.on-dark{background:transparent}.menu-open .header{background:transparent}

/* Cinematic motion system: native scroll, bounded scene transitions. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.loading{overflow:hidden}.intro{transition:clip-path 1.05s cubic-bezier(.76,0,.24,1)}
.intro::before{content:'';position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--load,0));transform-origin:left;opacity:.07;pointer-events:none}
.intro::after{content:'';position:absolute;left:4%;right:4%;bottom:95px;height:1px;background:var(--ink);transform:scaleX(var(--load,0));transform-origin:left}
.intro-name{overflow:hidden}.intro-name span{animation:load-type 1s var(--motion-ease) both}.intro-name b{animation:load-type 1.1s .12s var(--motion-ease) both}
.intro.leaving .intro-name{transform:translateY(-80px) scale(.94);opacity:0;transition:transform .8s var(--motion-ease),opacity .55s}
@keyframes load-type{from{transform:translateY(110%) rotate(3deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
.opening:not(.entrance) .hero h1,.opening:not(.entrance) .hero-person,.opening:not(.entrance) .hero-side,.opening:not(.entrance) .hero-identity{opacity:0}
.opening.entrance .hero h1 span{animation:hero-type 1.4s .35s var(--motion-ease) both}.opening.entrance .hero h1 b{animation:hero-type 1.5s .5s var(--motion-ease) both}
.opening.entrance .hero-person{animation:portrait-arrival 1.8s .2s var(--motion-ease) both}
.opening.entrance .hero-side,.opening.entrance .hero-identity{animation:side-arrival 1s 1s var(--motion-ease) both}
@keyframes hero-type{from{clip-path:inset(100% 0 0);translate:0 70px}to{clip-path:inset(0);translate:0 0}}
@keyframes portrait-arrival{from{opacity:0;filter:blur(7px);translate:0 120px}to{opacity:1;filter:blur(0);translate:0 0}}
@keyframes side-arrival{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.motion .hero{height:155svh}.motion .hero-stage{transform:scale(calc(1 - var(--hero-progress,0)*.055));transform-origin:center 25%;border-radius:0 0 calc(var(--hero-progress,0)*44px) calc(var(--hero-progress,0)*44px)}
.motion .hero{background:var(--ink)}
.motion .hero h1{transform:translateY(calc(var(--hero-progress,0)*-125px)) scale(calc(1 + var(--hero-progress,0)*.06));opacity:calc(1 - var(--hero-progress,0)*.65)}
.motion .hero-person{transform:translateX(calc(-50% + var(--pointer-x,0px))) translateY(calc(var(--hero-progress,0)*60px + var(--pointer-y,0px))) scale(calc(1 + var(--hero-progress,0)*.12));transition:filter .5s}
.hero-person{will-change:transform}.hero-side,.hero-identity{transition:opacity .3s}.motion .hero-side,.motion .hero-identity{opacity:calc(1 - var(--hero-progress,0)*.8)}
.motion .hero .contours{transform:translateY(calc(var(--hero-progress,0)*-55px));will-change:transform}
.motion .about{margin-top:-1px}.motion .about-center{transform:translateY(calc((.45 - var(--about-progress,0))*100px)) rotate(calc((.45 - var(--about-progress,0))*-4deg));will-change:transform}
.motion .portrait-editorial{clip-path:inset(calc((1 - var(--scene-enter,1))*25%) calc((1 - var(--scene-enter,1))*20%));transform:scale(calc(.93 + var(--scene-enter,1)*.07))}
.motion .portrait-editorial img{transform:translateY(calc((var(--about-progress,0) - .4)*-55px)) scale(1.05)}
.motion .editorial-mark{transform:rotate(calc(-18deg + var(--about-progress,0)*15deg)) translateX(calc((.5 - var(--about-progress,0))*65px))}
.motion .oversized{transform:translateX(calc((var(--about-progress,0) - .25)*-13%))}.motion .oversized b{display:block;transform:translateX(calc((var(--about-progress,0) - .25)*20%))}
.motion .trajectory{position:relative;background:var(--paper);clip-path:polygon(0 calc((1 - var(--scene-enter,1))*90px),50% 0,100% calc((1 - var(--scene-enter,1))*90px),100% 100%,0 100%)}
.motion .trajectory-heading h2,.motion .ect-title,.motion .contact h2{transition:clip-path 1.3s var(--motion-ease),transform 1.3s var(--motion-ease),opacity .9s}
.motion .trajectory-heading h2:not(.visible),.motion .ect-title:not(.visible),.motion .contact h2:not(.visible){clip-path:inset(100% 0 0);transform:translateY(65px);opacity:1}
.motion .trajectory-heading h2.visible,.motion .ect-title.visible,.motion .contact h2.visible{clip-path:inset(-10% -5%)}
.giant-year{overflow:hidden}#year-tail{transform-origin:50% 50%;will-change:transform}
.year-nav a::before{content:'';position:absolute;inset:0;background:var(--lime);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--motion-ease);z-index:-1}.year-nav a{isolation:isolate}.year-nav a.active::before{transform:scaleY(1)}
.chapter-symbol{transition:color .6s}.chapter.current .chapter-symbol{color:#4d6040}.motion .chapter-symbol{transform:translateY(calc((1 - var(--chapter-enter,1))*35px));opacity:calc(.3 + var(--chapter-enter,1)*.7)}
.motion .chapter-symbol>span{transform:translateX(calc((1 - var(--chapter-enter,1))*25px))}
.chapter .reveal{transition:transform 1s var(--motion-ease),opacity .8s}.chapter>p.reveal{transition-delay:.12s}
.motion .ect{clip-path:polygon(0 calc((1 - var(--scene-enter,1))*100px),100% 0,100% 100%,0 100%)}
.motion .ect .contours{transform:translateY(calc((var(--scene-travel,.5) - .5)*80px))}.motion .ect-arrow{transform:rotate(calc((1 - var(--scene-enter,1))*-65deg));transition:color .3s}
.questions.reveal{transition-delay:.15s}.reveal{transition-timing-function:var(--motion-ease)}
.contact{position:relative;overflow:hidden;isolation:isolate}.contact::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--lime)}
.motion .contact{background:var(--ink);color:var(--ink)}.motion .contact::before{clip-path:ellipse(calc(20% + var(--scene-enter,1)*100%) calc(20% + var(--scene-enter,1)*110%) at 50% 0)}
.motion .contact>.eyebrow{opacity:var(--scene-enter,1)}.motion .contact h2{transform-origin:0 100%}.contact-button b{transition:transform .6s var(--motion-ease)}.contact-button:hover b{transform:translate(7px,-7px) rotate(4deg)}
.book,.round-link,.contact-button{transition:translate .35s var(--motion-ease),background .25s,gap .3s}.book:hover{filter:brightness(1.12)}.text-link span{transition:transform .4s var(--motion-ease)}.text-link:hover span{transform:translate(6px,6px)}
.footer-top.reveal{transition-duration:1.1s}footer{position:relative}.footer-bottom{transition:opacity .6s}
@media(max-width:600px){.motion .hero{height:120svh;min-height:760px}.motion .hero-stage{transform:none;border-radius:0}.motion .hero h1{transform:translateY(calc(var(--hero-progress,0)*-45px));opacity:calc(1 - var(--hero-progress,0)*.4)}.motion .hero-person{transform:translateX(-50%) translateY(calc(var(--hero-progress,0)*25px)) scale(calc(1 + var(--hero-progress,0)*.04))}.motion .about-center{transform:translateY(calc((.45 - var(--about-progress,0))*30px))}.motion .trajectory,.motion .ect{clip-path:none}.motion .contact::before{clip-path:ellipse(calc(50% + var(--scene-enter,1)*80%) calc(30% + var(--scene-enter,1)*100%) at 50% 0)}.intro::after{bottom:75px}}
@media(prefers-reduced-motion:reduce){.loading{overflow:auto}.hero{background:var(--paper)}.intro{display:none!important}.hero-stage,.hero h1,.about-center,.portrait-editorial,.portrait-editorial img,.editorial-mark,.oversized,.oversized b,.chapter-symbol,.chapter-symbol>span,.ect-arrow,.contours{transform:none!important}.hero-person{transform:translateX(-50%)!important}.hero-side,.hero-identity,.hero h1,.hero-person,.reveal{opacity:1!important;translate:none!important}.trajectory,.ect,.contact::before,.reveal{clip-path:none!important}.contact{background:var(--lime)!important}.menu{clip-path:none!important}}

/* Rhythm audit: earlier legibility, shorter holds and continuous chapter feedback. */
body{overflow-x:clip}
.intro{transition-duration:.75s}.intro-name span{animation-duration:.7s}.intro-name b{animation-duration:.8s;animation-delay:.08s}
.opening.entrance .hero h1 span{animation-duration:1s;animation-delay:.12s}.opening.entrance .hero h1 b{animation-duration:1.05s;animation-delay:.22s}
.opening.entrance .hero-person{animation-duration:1.25s;animation-delay:.08s;animation-fill-mode:backwards}
.opening.entrance .hero-side,.opening.entrance .hero-identity{animation-duration:.65s;animation-delay:.5s;animation-fill-mode:backwards}
.motion .hero{height:140svh}.motion .hero-stage{border-radius:0 0 calc(var(--hero-progress,0)*22px) calc(var(--hero-progress,0)*22px)}
.about{padding-bottom:100px}.about-text{margin-top:75px}.motion .about-center{transform:translateY(calc((.45 - var(--about-progress,0))*135px)) rotate(calc((.45 - var(--about-progress,0))*-5deg))}
.motion .oversized{transform:translateX(calc((var(--about-progress,0) - .25)*-18%))}.motion .oversized b{transform:translateX(calc((var(--about-progress,0) - .25)*28%))}
.motion .trajectory-heading h2,.motion .ect-title,.motion .contact h2{transition-duration:.72s,.72s,.45s}
.motion .trajectory-heading h2:not(.visible),.motion .ect-title:not(.visible),.motion .contact h2:not(.visible){transform:translateY(28px)}
.reveal,.chapter .reveal{transition-duration:.55s,.55s}.chapter>p.reveal{transition-delay:.04s}.questions.reveal{transition-delay:.05s}
.motion .reveal:not(.visible){transform:translateY(18px)}
.chapter{min-height:max(560px,62svh);padding:45px 0;position:relative}
.chapter::after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#859276;transform:scaleX(var(--chapter-enter,0));transform-origin:left}
.chapter-index{position:relative;padding-left:15px}.chapter-index::before{content:'';position:absolute;left:0;top:2px;width:5px;height:8px;background:#899578;transition:height .3s,background .3s}
.chapter.current .chapter-index::before{height:12px;background:var(--ink)}
.timeline-count i{position:relative;overflow:hidden}.timeline-count i::after{content:'';position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--timeline-progress,0));transform-origin:left}
.timeline-count{font-variant-numeric:tabular-nums}.giant-year{font-variant-numeric:tabular-nums}
.ect-title h2 b{display:inline-block;transform:translateX(calc((1 - var(--scene-enter,1))*45px))}
.motion .ect{clip-path:polygon(0 calc((1 - var(--scene-enter,1))*125px),100% 0,100% 100%,0 100%)}
.motion .contact::before{clip-path:ellipse(calc(25% + var(--scene-enter,1)*100%) calc(30% + var(--scene-enter,1)*105%) at 50% 0)}
.footer-top{position:relative}.footer-top::before{content:'';position:absolute;left:0;top:-25px;width:45px;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--motion-ease)}.footer-top.visible::before{transform:scaleX(1)}
@media(max-width:900px) and (min-width:601px){.chapter{min-height:560px}.timeline-sticky{height:580px}.giant-year{font-size:22vw}}
@media(max-width:600px){
  .motion .hero{height:108svh;min-height:700px}.hero-side{padding:9px 11px;bottom:17%}.hero-side p{font-size:14px}
  .about{padding-bottom:65px}.about-text{margin-top:55px}.motion .about-center{transform:translateY(calc((.45 - var(--about-progress,0))*28px))}
  .motion .oversized{transform:translateX(calc((var(--about-progress,0) - .25)*-10%))}.motion .oversized b{transform:translateX(calc((var(--about-progress,0) - .25)*18%))}
  .timeline-sticky{position:sticky;top:72px;z-index:12;background:var(--paper);padding:4px 0 0;margin:0 -2px;box-shadow:0 10px 15px var(--paper)}
  .year-nav{margin-bottom:0}.year-nav a{min-height:44px;display:grid;place-items:center;padding:12px 9px}.chapter{min-height:0;padding:30px 0 38px;scroll-margin-top:145px}
  .chapter-symbol{height:70px;font-size:68px}.motion .chapter-symbol>span{transform:none}.mobile-year{font-size:54px!important;margin-top:15px}
  .chapter h3{margin:16px 0}.motion .trajectory-heading h2,.motion .ect-title,.motion .contact h2,.reveal,.chapter .reveal{transition-duration:.4s,.4s,.3s;transition-delay:0s}
  .motion .reveal:not(.visible){transform:translateY(12px)}.motion .trajectory{clip-path:none}
  .motion .ect{clip-path:polygon(0 calc((1 - var(--scene-enter,1))*36px),100% 0,100% 100%,0 100%)}
  .ect-title h2 b{transform:translateX(calc((1 - var(--scene-enter,1))*18px))}
  .motion .contact::before{clip-path:ellipse(calc(55% + var(--scene-enter,1)*70%) calc(50% + var(--scene-enter,1)*95%) at 50% 0)}
}
@media(prefers-reduced-motion:reduce){
  .ect-title h2 b{transform:none}.chapter::after{transform:scaleX(1)}.footer-top::before{transform:scaleX(1)}
}

/* Faster first-scroll exit: the white stage gives way to the dark chapter. */
.motion .hero{height:118svh}
.motion .hero-stage{transform:translateY(calc(var(--hero-progress,0)*-30px)) scale(calc(1 - var(--hero-progress,0)*.13));transform-origin:center 20%;border-radius:0 0 calc(var(--hero-progress,0)*30px) calc(var(--hero-progress,0)*30px)}
@media(max-width:600px){
 .motion .hero{height:104svh;min-height:700px}
 .motion .hero-stage{transform:translateY(calc(var(--hero-progress,0)*-14px)) scale(calc(1 - var(--hero-progress,0)*.06));border-radius:0 0 calc(var(--hero-progress,0)*18px) calc(var(--hero-progress,0)*18px)}
}
@media(prefers-reduced-motion:reduce){.motion .hero-stage{transform:none!important}}

/* Compact opening frame: reveal dark side gutters early in the first scroll. */
.motion .hero{height:110svh}
.motion .hero-stage{transform:translateY(calc(var(--hero-frame,0)*-48px)) scale(calc(1 - var(--hero-frame,0)*.26));transform-origin:center 18%;border-radius:calc(var(--hero-frame,0)*24px)}
@media(max-width:600px){
 .motion .hero{height:102svh;min-height:700px}
 .motion .hero-stage{transform:translateY(calc(var(--hero-frame,0)*-22px)) scale(calc(1 - var(--hero-frame,0)*.16));border-radius:calc(var(--hero-frame,0)*18px)}
}
@media(prefers-reduced-motion:reduce){.motion .hero-stage{transform:none!important;border-radius:0}}
.motion .about{margin-top:-10svh;position:relative;z-index:1}
@media(max-width:600px){.motion .about{margin-top:-2svh}}
@media(prefers-reduced-motion:reduce){.motion .about{margin-top:0}}

/* Hold the portrait while the frame contracts; the next chapter covers its
   lower edge instead of leaving the scaled-away height as empty space. */
.motion .hero{height:134svh;min-height:0}
.motion .hero-stage{transform:translateY(calc(var(--hero-frame,0)*88px)) scale(calc(1 - var(--hero-frame,0)*.26));transform-origin:center top}
.motion .hero-person{transform:translateX(calc(-50% + var(--pointer-x,0px))) translateY(calc(var(--hero-progress,0)*14px + var(--pointer-y,0px))) scale(calc(1 + var(--hero-progress,0)*.02))}
.motion .about{margin-top:-34svh;padding-top:40px}
@media(max-width:600px){
 .motion .hero{height:134svh;min-height:0}
 .motion .hero-stage{transform:translateY(calc(var(--hero-frame,0)*72px)) scale(calc(1 - var(--hero-frame,0)*.16));transform-origin:center top}
 .motion .hero-person{transform:translateX(-50%) translateY(calc(var(--hero-progress,0)*8px))}
 .motion .about{margin-top:-34svh;padding-top:30px}
}
@media(prefers-reduced-motion:reduce){.motion .hero{height:100svh}.motion .hero-stage{transform:none!important}.motion .about{margin-top:0}}

/* Two independent type planes, scrubbed by the same native scroll as the frame. */
.motion .about .oversized{transform:none;overflow:visible}
.motion .about .oversized>span,.motion .about .oversized>b{display:block;transform-origin:center;transition:none;will-change:transform,clip-path}
.motion .about .oversized>span{transform:translate3d(calc((1 - var(--type-one,1))*-9vw),calc((1 - var(--type-one,1))*55px),0) scale(calc(.96 + var(--type-one,1)*.04));clip-path:inset(0 0 calc((1 - var(--type-one,1))*100%) 0);opacity:calc(.35 + var(--type-one,1)*.65)}
.motion .about .oversized>b{transform:translate3d(calc((1 - var(--type-two,1))*10vw),calc((1 - var(--type-two,1))*65px),0);clip-path:inset(0 0 calc((1 - var(--type-two,1))*100%) 0);opacity:calc(.25 + var(--type-two,1)*.75)}
@media(max-width:600px){
 .motion .about .oversized>span{transform:translate3d(calc((1 - var(--type-one,1))*-5vw),calc((1 - var(--type-one,1))*28px),0)}
 .motion .about .oversized>b{transform:translate3d(calc((1 - var(--type-two,1))*6vw),calc((1 - var(--type-two,1))*34px),0)}
}
@media(prefers-reduced-motion:reduce){.about .oversized>span,.about .oversized>b{transform:none!important;clip-path:none!important;opacity:1!important;will-change:auto}}

/* Editorial portrait: keep the face inside the moving frame. */
.portrait-editorial img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.motion .portrait-editorial img{transform:translateY(calc((var(--about-progress,0) - .4)*-8px)) scale(1.02)}
@media(prefers-reduced-motion:reduce){.motion .portrait-editorial img{transform:none}}

/* Rogoni monogram lockup: a compact, etched mark for the persistent header. */
.wordmark{display:block;flex:0 1 auto;width:max-content}
.wordmark img{display:block;width:clamp(190px,20vw,238px);height:auto}
@media(max-width:900px){.wordmark img{width:clamp(176px,24vw,210px)}}
@media(max-width:600px){.wordmark img{width:clamp(128px,36vw,150px)}}

.wordmark img.logo-inverse{display:none}.header.on-dark .wordmark img.logo-light{display:none}.header.on-dark .wordmark img.logo-inverse{display:block}


/* Navigation surface while scrolling. */
.header{transition:color .3s,background-color .3s,box-shadow .3s;}
.header.scrolled{background:var(--paper);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(41,45,33,.10);padding-bottom:23px;}
.header.scrolled.on-dark{background:var(--ink);box-shadow:0 1px 0 rgba(245,245,237,.10);}
.menu-open .header{background:var(--lime);box-shadow:none;backdrop-filter:none;}
@media(max-width:900px){.header.scrolled{padding-bottom:20px;}}
@media(max-width:600px){.header.scrolled{padding-bottom:18px;}}

.footer-bottom{align-items:center;gap:20px;}
.developer-credit{display:inline-flex;align-items:center;gap:9px;flex-shrink:0;}
.developer-credit img{width:82px;height:26px;object-fit:contain;}
.developer-credit:hover{opacity:.75;}
@media(max-width:600px){.footer-bottom{flex-direction:column;align-items:flex-start;gap:16px;}.footer-bottom>span:last-child{max-width:none;text-align:left;}.developer-credit span{max-width:none;text-align:left;}}

/* Preserve the full editorial portrait instead of cropping it into a tall frame. */
.portrait-editorial{height:auto;aspect-ratio:3 / 2;}
.portrait-editorial img{width:100%;height:100%;object-fit:contain;object-position:center;}
.motion .portrait-editorial img{transform:none;}
@media(max-width:600px){.about-center{width:88%;}.portrait-editorial{height:auto;aspect-ratio:3 / 2;}}
/* Celular: os textos grandes cabem inteiros na tela e os acentos das maiúsculas não são recortados pela animação de revelar. */
@media(max-width:600px){.oversized{margin:40px 4vw 0;white-space:normal}.oversized span{line-height:.95}.oversized b{line-height:.9}.editorial-mark{right:16px}}
@media(max-width:600px){.hero h1 span,.oversized span,.oversized b{padding-top:.3em;margin-top:-.3em}.intro-name{padding-top:4vw;margin-top:-4vw}}
