/* Motion direction: cinematic opening, editorial reveals, restrained depth. */
.work-grid .image-window{display:block;padding:0}.work-grid .image-window .case-cursor{padding:0;font-size:9px;letter-spacing:1px;margin:0}
:root{--ease:cubic-bezier(.2,.75,.2,1);--scene-progress:0;--hero-shift:0px;--scroll-progress:0;--pointer-x:50%;--pointer-y:50%}
body{overflow-x:clip}.reading-progress{position:fixed;inset:0 auto auto 0;height:2px;width:100%;z-index:100;background:#9ecbd5;transform:scaleX(var(--scroll-progress));transform-origin:left;pointer-events:none}
header{position:fixed;transition:top .6s var(--ease),height .6s var(--ease),background .5s,color .5s,border-color .5s,box-shadow .5s;will-change:auto}header.scrolled{top:12px;height:64px;background:#faf8f4ed;color:#252d28;border-color:#d2d8cf;box-shadow:0 8px 36px #23382c0b}header.scrolled .logo span{border-color:#bcc7bb}header.scrolled .nav-cta{color:#fff}nav>a:not(.nav-cta){position:relative}nav>a:not(.nav-cta):after{content:'';position:absolute;bottom:-7px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}nav>a:hover:after,nav>a:focus-visible:after{transform:scaleX(1)}
.hero{isolation:isolate;min-height:800px;padding-bottom:130px}.hero-image{inset:-35px 0;background:linear-gradient(90deg,#15231b9c,#15231b20),url('assets/hero.webp') center/cover;transform:translate3d(0,var(--hero-shift),0) scale(1.05);will-change:transform}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101e19c7 0%,#18241e55 57%,#15261f12),linear-gradient(0deg,#0e1b16bf,transparent 78%)}.hero-video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease;filter:saturate(.82)}.video-ready .hero-video{opacity:1}.hero-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.06;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.65' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-frame{position:absolute;top:140px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.8px;opacity:.6}.hero-frame:before{content:'';position:absolute;top:-14px;left:0;width:26px;height:1px;background:currentColor}.hero-content{z-index:2}.hero h1{font-size:clamp(50px,6.3vw,94px);line-height:1.06;max-width:1100px;letter-spacing:-3.8px}.title-line{display:block;overflow:clip;padding-bottom:.14em;margin-bottom:-.14em}.title-line>span{display:inline-block;vertical-align:bottom}.motion-on .title-line>span{animation:line-in 1.3s var(--ease) both}.motion-on .title-line:nth-child(2)>span{animation-delay:.14s}.motion-on .title-line:nth-child(3)>span{animation-delay:.28s}.motion-on .hero-content>.eyebrow,.motion-on .hero-bottom{animation:soft-in 1.3s var(--ease) .45s both}.hero h1 em{background:linear-gradient(105deg,#e0ece6 12%,#88b9c7 45%,#e1eee8 78%);background-size:230% 100%;background-clip:text;-webkit-background-clip:text;color:transparent}.motion-on .hero h1 em{animation:light-pass 9s ease-in-out infinite}.hero-controls{position:absolute;bottom:54px;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;z-index:3}.motion-toggle{color:#fff;background:#ffffff0c;border:1px solid #ffffff45;border-radius:40px;display:flex;align-items:center;gap:12px;font:inherit;font-size:10px;letter-spacing:.6px;padding:11px 17px;min-height:42px;backdrop-filter:blur(10px)}.motion-toggle:hover{background:#ffffff24}.play-symbol{width:12px;text-align:center;font-size:10px}.scroll-cue{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:8px;letter-spacing:2px}.scroll-cue i{font-style:normal;font-size:19px;border:1px solid #ffffff60;border-radius:50%;width:38px;height:38px;display:grid;place-items:center}.motion-on .scroll-cue i{animation:scroll-hint 2.5s ease-in-out infinite}.hero-note{bottom:20px;font-size:7px;left:7%;right:auto;opacity:.65}
.button,.nav-cta{position:relative;overflow:hidden;transition:background .3s,box-shadow .3s,translate .5s var(--ease),transform .3s}.button:before,.nav-cta:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 15%,#ffffff2b 48%,transparent 80%);transform:translateX(-130%);transition:transform .7s var(--ease);pointer-events:none}.button:hover:before,.nav-cta:hover:before{transform:translateX(130%)}.button:hover{box-shadow:0 12px 28px #12221a14}.button span,.nav-cta span{transition:transform .4s var(--ease)}.button:hover span,.nav-cta:hover span{transform:translate(3px,-3px)}
.ribbon{position:relative;overflow:hidden;padding-top:32px;padding-bottom:32px}.ribbon:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,#7d9c9e,transparent);transform:translateX(-100%)}.motion-on .ribbon:after{animation:ribbon-light 9s linear infinite}.motion-on .dot{animation:spin 20s linear infinite}.dot{display:inline-block;font-weight:300}.reveal{opacity:1;transform:none}.motion-on .reveal.pending{opacity:0;transform:translateY(30px)}.motion-on .reveal{transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--reveal-delay,0ms)}
.work-grid{perspective:1200px}.work-grid>a{position:relative;min-width:0}.image-window{overflow:hidden;position:relative;isolation:isolate;background:#e5e7df}.image-window:after{content:'';position:absolute;inset:0;border:1px solid #ffffff20;pointer-events:none;box-shadow:inset 0 0 80px #1d28200b}.work-grid img{transition:transform 1.1s var(--ease),filter 1.1s var(--ease);transform:scale(1.035);filter:saturate(.82)}.work-grid a:hover img,.work-grid a:focus-visible img{transform:scale(1.09);filter:saturate(1)}.work-grid a>div:not(.image-window){transition:color .3s}.work-grid a:hover>div{color:#527c84}.case-cursor{position:absolute;left:var(--pointer-x);top:var(--pointer-y);translate:-50% -50%;width:86px;height:86px;border-radius:50%;background:#faf8f4e8;backdrop-filter:blur(5px);display:grid;place-content:center;text-align:center;gap:5px;color:#263d36;font-size:9px;letter-spacing:1px;pointer-events:none;opacity:0;scale:.75;transition:opacity .3s,scale .5s var(--ease);z-index:2}.case-cursor b{font-size:25px;font-weight:300}.motion-on .work-grid a:hover .case-cursor{opacity:1;scale:1}
.areas>a{position:relative;isolation:isolate;transition:padding .5s var(--ease)}.areas>a:before{content:'';position:absolute;inset:0 -18px;background:#dce5dd;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease)}.areas>a:hover:before,.areas>a:focus-visible:before{transform:scaleY(1)}.areas>a:hover{padding-left:10px;padding-right:10px}.areas b{transition:transform .45s var(--ease)}.areas>a:hover b{transform:rotate(45deg)}
.manifesto{position:relative;isolation:isolate;overflow:hidden;background:#a9c4c5;padding-top:125px;padding-bottom:125px}.manifesto:before,.manifesto:after{content:'';position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.manifesto:before{height:700px;width:700px;top:-500px;left:calc(50% - 350px);border:1px solid #f5f6ef88;box-shadow:0 0 0 75px #ffffff0e,0 0 0 150px #ffffff0a;transform:translateY(calc(var(--scene-progress)*140px))}.manifesto:after{inset:0;border-radius:0;background:radial-gradient(ellipse at var(--pointer-x) var(--pointer-y),#e5eee391,transparent 63%);opacity:.6}.manifesto>p:last-child{font-size:clamp(40px,5.3vw,78px);letter-spacing:-2.5px;position:relative}.manifesto em{color:#36565e}.form-shell{position:relative;padding:30px;border:1px solid #dde1d6;border-radius:8px;background:linear-gradient(140deg,#ffffff8c,#ffffff00);box-shadow:0 12px 50px #23362c04}.steps li[aria-current]:after{background:#6d9faa}.fields input,.fields select,.fields textarea{transition:border-color .25s,box-shadow .25s,background .25s}.fields input:focus,.fields select:focus,.fields textarea:focus{background:#fff;border-color:#6c9aa4;box-shadow:0 0 0 4px #6d9faa12}.motion-on fieldset:not([hidden]){animation:soft-in .45s var(--ease)}.text-link{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .4s}.text-link:hover{background-size:100% 1px}footer{position:relative}footer:before{content:'';width:70px;height:2px;background:#7e9fa5;position:absolute;top:-1px;left:7%}
@keyframes line-in{from{transform:translateY(115%) rotate(2deg);opacity:.3}to{transform:none;opacity:1}}@keyframes soft-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes light-pass{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes scroll-hint{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ribbon-light{to{transform:translateX(100%)}}
@media(max-width:1000px){.hero h1{font-size:clamp(48px,7.7vw,70px);letter-spacing:-2.8px}.hero-frame{top:125px}.form-shell{padding:24px}}
@media(max-width:650px){.hero{min-height:790px;padding-top:185px;padding-bottom:135px}.hero h1{font-size:clamp(34px,8.5vw,55px);letter-spacing:-1.8px;line-height:1.13}.hero-frame{top:115px;left:6%;right:6%}.hero-frame span:last-child{display:none}.hero-controls{left:6%;right:6%;bottom:54px}.hero-note{left:6%;font-size:6px;letter-spacing:.8px;max-width:88%}.hero-bottom p{font-size:14px}.scroll-cue{gap:10px;font-size:7px}.motion-toggle{font-size:9px}.hero-video{object-position:58% center}.hero-image{transform:none!important}.manifesto{padding:85px 6%}.manifesto>p:last-child{font-size:38px;letter-spacing:-1.5px}.form-shell{padding:22px 18px}.case-cursor{display:none}.form-actions{gap:8px}.form-actions .button{padding:15px 18px;font-size:12px}.areas>a:before{inset:0 -10px}.application{gap:30px}}
body:not(.motion-on) .hero-image{transform:none}body:not(.motion-on) .reveal.pending{opacity:1;transform:none}body:not(.motion-on) .manifesto:before{transform:none}body:not(.motion-on) .work-grid img{transition:none}body:not(.motion-on) .button,body:not(.motion-on) .nav-cta{translate:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.pending{opacity:1!important;transform:none!important}.hero-image{transform:none!important}}
