html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--cream:#f3eedf;--cream-deep:#e6dfc8;--olive-ink:#232b17;--olive:#6b7a3a;--olive-light:#a3ae72;--jade:#2e9e7a;--jade-light:#9fd8c2;--bg:var(--cream);--surface:var(--cream-deep);--text:var(--olive-ink);--text-muted:var(--olive);--border:color-mix(in srgb, var(--olive) 35%, transparent);--accent:var(--jade);--glow:var(--jade-light);--cta-gradient:linear-gradient(120deg, var(--olive) 0%, var(--jade) 100%);--font-display:"Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-body:"Manrope", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-label:.75rem;--fs-small:.875rem;--fs-body:clamp(1rem, .95rem + .25vw, 1.125rem);--fs-h2:clamp(2.4rem, 1.6rem + 3.6vw, 4.75rem);--fs-hero:clamp(3.4rem, 1.8rem + 8vw, 9.5rem);--gutter:clamp(16px, 4vw, 56px);--nav-h:72px;--radius:18px;--radius-pill:999px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1)}[data-theme=dark]{--bg:var(--olive-ink);--text:var(--cream);--text-muted:var(--olive-light);--border:color-mix(in srgb, var(--olive-light) 35%, transparent)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--cream)}html.is-locked{overflow:hidden}html.lenis{touch-action:pinch-zoom}body{background:var(--cream);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color .6s var(--ease-out);margin:0;line-height:1.6;overflow-x:clip}::selection{background:var(--jade-light);color:var(--olive-ink)}a{color:inherit}:focus-visible{outline:2px solid var(--jade);outline-offset:3px;border-radius:4px}[tabindex="-1"]:focus{outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;border-radius:var(--radius-pill);background:var(--olive-ink);color:var(--cream);font-size:var(--fs-small);transition:transform .3s var(--ease-out);padding:.6rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.webgl{z-index:0;pointer-events:none;position:fixed;inset:0}.webgl canvas{display:block}.no-webgl .webgl{display:none}main,.footer{z-index:1;position:relative}h1,h2{font-family:var(--font-display);font-optical-sizing:auto;font-variation-settings:"SOFT" 30, "WONK" 0;letter-spacing:-.028em;text-wrap:balance;margin:0;font-weight:360;line-height:.98}h1 em,h2 em{font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--accent);padding-right:.04em;font-style:italic;font-weight:330}[data-theme=dark] h1 em,[data-theme=dark] h2 em{color:var(--jade-light)}.chapter__label{font-size:var(--fs-label);letter-spacing:.24em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.85em;margin:0;font-weight:700;display:flex}.chapter__label:before{content:"";background:currentColor;width:28px;height:1px}.line-mask{margin:0 -.08em -.12em;padding:0 .08em .12em}.btn{isolation:isolate;border:1px solid var(--border);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--bg) 55%, transparent);color:var(--text);font:inherit;font-size:var(--fs-small);letter-spacing:.03em;cursor:pointer;transition:color .5s var(--ease-out), border-color .5s var(--ease-out);align-items:center;gap:.6em;padding:.72rem 1.25rem;font-weight:650;line-height:1.25;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";z-index:-1;background:var(--cta-gradient);opacity:0;transition:opacity .6s var(--ease-out);position:absolute;inset:0}.btn:hover,.btn:focus-visible{color:var(--cream);border-color:#0000}.btn:hover:before,.btn:focus-visible:before{opacity:1}.btn--large{padding:1rem 1.7rem;font-size:1rem}.roll{vertical-align:top;display:inline-block;position:relative}.roll__inner{height:1.25em;line-height:1.25em;display:block;overflow:hidden}.roll__line{white-space:nowrap;display:block}.roll__char{transition:transform .6s var(--ease-out);transition-delay:calc(var(--i) * 16ms);display:inline-block}a:hover .roll__char,button:hover .roll__char,a:focus-visible .roll__char,button:focus-visible .roll__char{transform:translateY(-100%)}.nav{z-index:50;height:var(--nav-h);padding:0 var(--gutter);color:var(--text);transition:color .5s var(--ease-out);justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.nav:before{content:"";z-index:-1;background:linear-gradient(to bottom, color-mix(in srgb, var(--bg) 92%, transparent), color-mix(in srgb, var(--bg) 60%, transparent) 55%, transparent);pointer-events:none;transition:opacity .5s var(--ease-out);position:absolute;inset:0 0 -24px}.menu-open .nav:before{opacity:0}.menu-open .nav{--text:var(--cream);--border:color-mix(in srgb, var(--cream) 30%, transparent);--bg:var(--olive-ink)}.nav__brand{color:inherit;font-size:var(--fs-small);letter-spacing:.02em;align-items:center;gap:.75rem;font-weight:700;text-decoration:none;display:flex}.nav__logo{width:46px;height:auto;display:block}.nav__actions{align-items:center;gap:.35rem;display:flex}.nav__link{color:inherit;font:inherit;font-size:var(--fs-small);letter-spacing:.03em;cursor:pointer;background:0 0;border:0;padding:.7rem 1rem;font-weight:650}.menu{z-index:40;padding:calc(var(--nav-h) + 1.5rem) var(--gutter) 2rem;background:var(--olive-ink);color:var(--cream);clip-path:inset(0 0 100%);visibility:hidden;touch-action:pan-y pinch-zoom;transition:clip-path .85s var(--ease-in-out), visibility 0s linear .85s;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.menu.is-open{clip-path:inset(0);visibility:visible;transition:clip-path .85s var(--ease-in-out), visibility 0s linear 0s}.menu__list{width:min(1120px,100%);margin:0 auto;padding:0;list-style:none}.menu__item{border-top:1px solid color-mix(in srgb, var(--cream) 16%, transparent);opacity:0;transition:opacity .5s var(--ease-out), transform .8s var(--ease-out);transform:translateY(28px)}.menu.is-open .menu__item{opacity:1;transition-delay:calc(.28s + var(--i) * 55ms);transform:none}.menu__item:last-child{border-bottom:1px solid color-mix(in srgb, var(--cream) 16%, transparent)}.menu__link{color:inherit;grid-template-columns:4.5rem 1fr minmax(0,34ch);align-items:baseline;gap:1.5rem;padding:clamp(.7rem,1.6vh,1.15rem) 0;text-decoration:none;display:grid}.menu__num{font-size:var(--fs-label);letter-spacing:.2em;color:var(--olive-light);font-weight:700}.menu__title{font-family:var(--font-display);letter-spacing:-.02em;transition:color .4s var(--ease-out), transform .6s var(--ease-out);font-size:clamp(1.9rem,1rem + 2.8vw,3.6rem);font-weight:340;line-height:1}.menu__link:hover .menu__title,.menu__link:focus-visible .menu__title{color:var(--jade-light);font-variation-settings:"SOFT" 100, "WONK" 1;font-style:italic;transform:translate(.3em)}.menu__line{color:var(--olive-light);font-size:var(--fs-small);text-align:right}.preloader{z-index:100;place-items:center;display:grid;position:fixed;inset:0}.preloader__bg{background:var(--cream);position:absolute;inset:0}.preloader__logo{will-change:transform;width:min(44vw,300px);position:relative}.preloader__logo svg{width:100%;height:auto;display:block;overflow:visible}.preloader__logo path,.preloader__logo circle{stroke:var(--jade);stroke-width:2.6px;stroke-linejoin:round}.preloader__meta{right:var(--gutter);bottom:clamp(1.25rem,4vh,2.5rem);left:var(--gutter);color:var(--olive-ink);justify-content:space-between;align-items:flex-end;display:flex;position:absolute}.preloader__caption{font-size:var(--fs-small);font-weight:650;line-height:1.4}.preloader__caption em{font-family:var(--font-display);color:var(--olive);font-weight:400}.preloader__count{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:clamp(3rem,2rem + 5vw,7rem);font-weight:300;line-height:.85}.progress{top:50%;right:calc(var(--gutter) * .6);z-index:30;color:var(--text);font-size:var(--fs-label);letter-spacing:.1em;transition:color .5s var(--ease-out);pointer-events:none;flex-direction:column;align-items:center;gap:.7rem;font-weight:700;display:flex;position:fixed;transform:translateY(-50%)}.progress__current{height:1.2em;font-family:var(--font-display);letter-spacing:0;font-size:1.6rem;font-weight:400;line-height:1.2;overflow:hidden}.progress__num{animation:progress-in .7s var(--ease-out);display:block}@keyframes progress-in{0%{transform:translateY(100%)}}.progress__track{background:var(--border);width:1px;height:110px;position:relative;overflow:hidden}.progress__fill{background:var(--accent);transform:scaleY(var(--p,0));transform-origin:top;position:absolute;inset:0}.progress__total{color:var(--text-muted)}.progress__label{color:var(--text-muted);letter-spacing:.26em;text-transform:uppercase;writing-mode:vertical-rl;margin-top:.4rem;font-size:.62rem}.chapter{min-height:125vh;padding:0 var(--gutter);color:var(--text);align-items:center;display:flex;position:relative}.chapter__content{width:min(560px,44vw);padding:2rem 0;position:relative}.chapter__content:before{content:"";z-index:-1;background:radial-gradient(closest-side, color-mix(in srgb, var(--bg) 78%, transparent), transparent);pointer-events:none;position:absolute;inset:-20% -35% -20% -45%}.chapter__title{font-size:var(--fs-h2);margin:1.1rem 0 1.5rem}.chapter__body p{max-width:44ch;color:color-mix(in srgb, var(--text) 86%, transparent);margin:0 0 1em}.chapter__meta{flex-wrap:wrap;align-items:center;gap:1.1rem 1.5rem;margin-top:1.8rem;display:flex}.tags{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);letter-spacing:.02em;padding:.32rem .8rem;font-size:.78rem;font-weight:650}.link-cta__arrow{transition:transform .5s var(--ease-out)}.link-cta:hover .link-cta__arrow,.link-text:hover .link-cta__arrow{transform:translate(2px,-2px)}.link-text{border-bottom:1px solid var(--border);color:var(--text);font-size:var(--fs-small);align-items:center;gap:.4em;padding-bottom:2px;font-weight:650;line-height:1.25;text-decoration:none;display:inline-flex}.chapter--hello{min-height:100svh;padding-top:calc(var(--nav-h) + 1.5rem);align-items:stretch;padding-bottom:clamp(1.5rem,5vh,3rem)}.hello{grid-template-rows:auto 1fr auto;grid-template-columns:1fr minmax(240px,360px);gap:1.5rem clamp(2rem,5vw,5rem);width:100%;display:grid}.hello__label{grid-column:1/-1}.hello__title{font-size:var(--fs-hero);letter-spacing:-.04em;grid-row:3;align-self:end;font-weight:330;line-height:.88}.hello__intro{grid-row:3;align-self:end;padding-bottom:.8rem}.hello__intro p{color:color-mix(in srgb, var(--text) 86%, transparent);margin:0 0 .8em}.hello__scroll{top:50%;left:var(--gutter);color:var(--text-muted);letter-spacing:.26em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.75rem;font-size:.62rem;font-weight:700;display:flex;position:absolute}.hello__scroll span:first-child{writing-mode:vertical-rl}.hello__scroll-line{background:var(--border);width:1px;height:64px;position:relative;overflow:hidden}.hello__scroll-line:after{content:"";background:var(--accent);animation:scroll-hint 2.4s var(--ease-in-out) infinite;position:absolute;inset:0}@keyframes scroll-hint{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}.caption{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--cream-deep) 60%, transparent);max-width:460px;margin:1.6rem 0 0;padding:1rem 1.15rem}.caption__row{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.75rem;font-weight:700;display:flex}.caption__wave{align-items:center;gap:2px;height:16px;display:inline-flex}.caption__wave span{background:var(--jade);width:2px;height:100%;animation:1.1s ease-in-out infinite wave;animation-delay:calc(var(--i) * -.13s);border-radius:2px}@keyframes wave{0%,to{transform:scaleY(.25)}50%{transform:scaleY(1)}}.caption__arrow{color:var(--jade)}.caption__out{white-space:nowrap;text-align:right;min-height:1.6em;margin:.6rem 0 .2rem;font-size:1.25rem;line-height:1.5}.caption__caret{vertical-align:-.15em;background:var(--jade);width:2px;height:1.1em;margin-inline-start:3px;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}.caption__gloss{color:var(--text-muted);font-size:var(--fs-small)}.caption__note{letter-spacing:.1em;text-transform:uppercase;opacity:.75;margin-left:.4rem;font-size:.7rem}.pipeline{counter-reset:agent;flex-wrap:wrap;gap:.4rem;margin:1.4rem 0 0;padding:0;list-style:none;display:flex}.pipeline li{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);transition:color .5s var(--ease-out), border-color .5s var(--ease-out), background-color .5s var(--ease-out);align-items:center;gap:.45rem;padding:.38rem .85rem;font-size:.8rem;font-weight:650;display:inline-flex}.pipeline li:not(:last-child):after{content:"→";color:var(--border);margin-left:.35rem}.pipeline__dot{background:var(--olive-light);width:7px;height:7px;transition:background-color .5s var(--ease-out), box-shadow .5s var(--ease-out);border-radius:50%}.pipeline li.is-lit{border-color:color-mix(in srgb, var(--jade) 55%, transparent);background:color-mix(in srgb, var(--jade-light) 28%, transparent);color:var(--olive-ink)}.pipeline li.is-lit .pipeline__dot{background:var(--jade);box-shadow:0 0 0 4px color-mix(in srgb, var(--jade-light) 60%, transparent)}.points{gap:.9rem;margin:1.6rem 0 0;padding:0;list-style:none;display:grid}.points li{border-top:1px solid var(--border);grid-template-columns:2.4rem 1fr;column-gap:.4rem;padding-top:.9rem;display:grid}.points__num{color:var(--jade-light);font-size:var(--fs-label);letter-spacing:.15em;grid-row:span 2;padding-top:.25rem;font-weight:700}.points strong{font-family:var(--font-display);font-size:1.25rem;font-weight:450}.points span:last-child{color:var(--text-muted);font-size:var(--fs-small)}.gallery-section{padding:8vh var(--gutter) 14vh}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.75rem,1.6vw,1.4rem);width:min(1060px,100%);margin:0 auto;padding:0;list-style:none;display:grid}.tile{aspect-ratio:1/1.05;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(165deg, var(--cream-deep), color-mix(in srgb, var(--olive-light) 45%, var(--cream-deep)));transition:transform .7s var(--ease-out);position:relative;overflow:hidden}.tile:nth-child(3n+2){background:linear-gradient(165deg, var(--cream), color-mix(in srgb, var(--jade-light) 55%, var(--cream)));transform:translateY(4vh)}.tile:hover{transform:translateY(-6px)}.tile:nth-child(3n+2):hover{transform:translateY(calc(4vh - 6px))}.tile__link{color:var(--olive-ink);flex-direction:column;justify-content:flex-end;gap:.15rem;padding:1.1rem;text-decoration:none;display:flex;position:absolute;inset:0}.tile__img{z-index:0;transition:transform .9s var(--ease-out);position:absolute}.tile__kind,.tile__title,.tile__cta{z-index:2}.tile--cover .tile__img{object-fit:cover;width:100%;height:70%;inset:0 0 auto}.tile--cover .tile__link:before{content:"";z-index:1;background:linear-gradient(to top, var(--cream-deep) 0%, var(--cream-deep) 30%, transparent 44%);position:absolute;inset:0}.tile--contain .tile__img{object-fit:contain;width:72%;height:54%;filter:drop-shadow(0 14px 18px color-mix(in srgb, var(--olive-ink) 18%, transparent));inset:12% 14% 34%}.tile:hover .tile__img{transform:scale(1.04)}.tile--contain:hover .tile__img{transform:translateY(-4px)scale(1.03)}.tile__cta{color:var(--jade);letter-spacing:.02em;margin-top:.35rem;font-size:.78rem;font-weight:700;position:relative}.tile__kind{color:var(--olive);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;font-weight:700;position:relative}.tile__title{font-family:var(--font-display);font-size:1.25rem;position:relative}.contact{padding:12vh var(--gutter) 4vh;text-align:center;justify-content:center;display:flex}.contact__inner{flex-direction:column;align-items:center;width:min(900px,100%);display:flex}.contact__title{margin:1.2rem 0;font-size:clamp(2.6rem,1.6rem + 4.6vw,6rem)}.contact__text{max-width:42ch;color:color-mix(in srgb, var(--text) 86%, transparent);margin:0 0 2rem}.contact__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem 1.6rem;display:flex}.contact__link{font-size:var(--fs-small);border-bottom:1px solid var(--border);padding-bottom:2px;font-weight:650;text-decoration:none}.footer{min-height:38vh;padding:0 var(--gutter) 1.6rem;flex-direction:column;justify-content:flex-end;align-items:center;gap:2rem;display:flex}.footer__rest{opacity:0;width:clamp(150px,22vw,240px)}.footer__rest svg{width:100%;height:auto;display:block}.no-webgl .footer__rest,.reduced .footer__rest{opacity:1!important}.footer__bar{border-top:1px solid var(--border);width:100%;color:var(--text-muted);font-size:var(--fs-small);justify-content:space-between;padding-top:1.2rem;display:flex}.footer__top{text-decoration:none}.debug{z-index:300;color:var(--cream);pointer-events:none;background:#232b17db;border-radius:10px;margin:0;padding:.7rem .9rem;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;bottom:.75rem;left:.75rem}@media (width<=767px){:root{--nav-h:62px}.nav__name{display:none}.nav__logo{width:40px}.nav__link{padding:.6rem .7rem}.nav__cta{padding:.55rem 1rem}.chapter{align-items:flex-end;min-height:150vh;padding-bottom:20vh}.chapter__content{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 86%, transparent);width:100%;padding:1.4rem 1.25rem 1.5rem}.chapter__content:before{display:none}.chapter__title{margin:.9rem 0 1rem}.caption__out{white-space:normal;font-size:1.1rem}.chapter--hello{align-items:stretch;min-height:100svh;padding-bottom:3.5rem}.hello{grid-template-rows:auto 1fr auto auto;grid-template-columns:1fr;gap:1rem}.hello__title{grid-row:3}.hello__intro{grid-row:4;padding-bottom:0}.hello__scroll{display:none}.progress{border:1px solid var(--border);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--bg) 85%, transparent);flex-direction:row;gap:.6rem;padding:.3rem .85rem;inset:auto auto .9rem 50%;transform:translate(-50%)}.progress__current{font-size:1rem}.progress__track{width:54px;height:1px}.progress__fill{transform:scaleX(var(--p,0));transform-origin:0}.progress__label{display:none}.menu__link{grid-template-columns:2.6rem 1fr;gap:.2rem .8rem}.menu__line{text-align:left;grid-column:2}.gallery{grid-template-columns:minmax(0,1fr)}.tile{aspect-ratio:16/11}.tile:nth-child(3n+2),.tile:nth-child(3n+2):hover{transform:none}.tile--cover .tile__img{height:50%}.tile--cover .tile__link:before{background:linear-gradient(to top, var(--cream-deep) 0%, var(--cream-deep) 50%, transparent 58%)}.tile--contain .tile__img{width:60%;height:48%;inset:10% 20% 42%}.footer__bar{flex-direction:column;align-items:center;gap:.4rem;padding-bottom:2.4rem}}.reduced [data-reveal]{opacity:0;transition:opacity .7s}.reduced [data-reveal].is-revealed{opacity:1}.reduced .roll__char,.reduced .menu__item,.reduced .menu__title,.reduced .tile,.reduced .tile__img{transition:none;transform:none!important}.reduced .menu{clip-path:none;transition:visibility}.reduced .caption__wave span,.reduced .hello__scroll-line:after,.reduced .caption__caret,.reduced .progress__num{animation:none}
