:root{--paper:#f9f9f7;--white:#fff;--ink:#25232b;--muted:#67636e;--line:#dcd8e5;--accent:#b8a6ff;--purple:#6b4ec6;--font-body:'Bricolage Grotesque',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}img,video{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:600}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:3px solid var(--purple);outline-offset:4px}.shell{width:min(100% - clamp(36px,7vw,116px),1500px);margin-inline:auto}.skip-link{position:fixed;z-index:2000;top:-80px;left:20px;background:var(--white);padding:12px 18px;border:1px solid var(--ink)}.skip-link:focus{top:12px}
.site-header{position:relative;z-index:40;display:flex;align-items:center;justify-content:space-between;min-height:84px;padding:0 clamp(18px,3.5vw,58px);border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:inline-flex;align-items:baseline;gap:.17em;font-weight:800;font-size:1.65rem;line-height:1;letter-spacing:-.08em;text-decoration:none;white-space:nowrap}.brand span{font-weight:400;font-size:.57em;letter-spacing:-.045em}.site-nav{display:flex;align-items:center;gap:clamp(20px,2.6vw,44px)}.site-nav a{text-decoration:none;font-size:.94rem;font-weight:550}.site-nav a:not(.nav-contact):hover,.site-nav a[aria-current="page"]{color:var(--purple)}.site-nav .nav-contact{display:inline-flex;align-items:center;gap:2.5rem;background:var(--accent);padding:13px 16px 13px 20px;border-radius:2px}.site-nav .nav-contact:hover{background:#a892fa}.menu-toggle{display:none;background:none;border:0;font-weight:600}
.button{display:inline-flex;gap:2.5rem;align-items:center;justify-content:space-between;min-height:54px;background:var(--accent);border:1px solid var(--accent);padding:14px 18px;color:var(--ink);text-decoration:none;font-weight:650;border-radius:2px}.button:hover{background:#a894f3;border-color:#a894f3}.text-link{display:inline-flex;gap:1.2rem;align-items:center;width:max-content;max-width:100%;padding-bottom:5px;border-bottom:1px solid currentColor;font-weight:600;text-decoration:none}.text-link:hover{color:var(--purple)}.section-index{margin:0 0 23px;color:var(--purple);font-weight:600;font-size:.91rem;letter-spacing:-.01em}
.hero{min-height:min(760px,calc(100vh - 84px));display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:center;gap:clamp(48px,7vw,130px);padding-block:clamp(80px,10vw,150px)}.hero-overline{font-size:1.05rem;font-weight:550;margin-bottom:clamp(35px,4vw,70px)}.hero h1{font-size:clamp(4.4rem,7vw,8rem);line-height:.98;letter-spacing:-.035em;word-spacing:.035em;max-width:12ch;margin-bottom:38px}.hero-intro{max-width:560px;font-size:clamp(1.18rem,1.5vw,1.5rem);line-height:1.35;letter-spacing:-.025em;color:#494550}.hero-actions{display:flex;gap:27px;align-items:center;flex-wrap:wrap;margin-top:40px}.hero-art{align-self:stretch;min-height:490px;background:var(--accent);position:relative;overflow:hidden}.hero-art__frame{position:absolute;inset:30px;display:grid;place-items:center}.frame-corner{position:absolute;width:31px;height:31px;border-color:currentColor;pointer-events:none}.frame-corner--tl{left:0;top:0;border-top:2px solid;border-left:2px solid}.frame-corner--tr{right:0;top:0;border-top:2px solid;border-right:2px solid}.frame-corner--bl{left:0;bottom:0;border-bottom:2px solid;border-left:2px solid}.frame-corner--br{right:0;bottom:0;border-bottom:2px solid;border-right:2px solid}.hero-art__letter{font-size:clamp(18rem,38vw,40rem);font-weight:700;line-height:.7;letter-spacing:-.18em;transform:translateX(-.08em);animation:formShift 8s cubic-bezier(.76,0,.24,1) infinite alternate}.hero-art__caption{position:absolute;bottom:17px;left:24px;font-size:.88rem;font-weight:600}.hero-art .frame-corner{z-index:1}@keyframes formShift{0%{font-variation-settings:'wght' 300;transform:translateX(-.08em) rotate(-8deg) scale(.9)}50%{font-variation-settings:'wght' 800;transform:translateX(-.08em) rotate(0) scale(1.1)}100%{font-variation-settings:'wght' 450;transform:translateX(-.08em) rotate(8deg) scale(.92)}}
.work-section{padding-block:clamp(75px,10vw,160px)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:clamp(36px,5vw,70px)}.section-head h2{font-size:clamp(3.2rem,6.2vw,7rem);line-height:.96;letter-spacing:-.068em;margin:0}.section-head .text-link{margin-bottom:6px}.work-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(40px,5vw,80px) clamp(22px,3vw,48px);align-items:start}.work-card{display:block;text-decoration:none}.work-card:nth-child(4n+3){grid-column:1 / -1}.work-card__image{position:relative;aspect-ratio:1.2;background:#e6e1f1;overflow:hidden;color:var(--white)}.work-card--lead .work-card__image{aspect-ratio:1.18}.work-card:nth-child(4n+3) .work-card__image{aspect-ratio:2.1}.work-card__image img,.work-card__image video{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.work-card:hover .work-card__image img,.work-card:hover .work-card__image video{transform:scale(1.035)}.work-card__image .frame-corner{z-index:1;margin:20px;opacity:0;transform:scale(.6);transition:opacity .35s,transform .35s}.work-card:hover .frame-corner,.work-card:focus-visible .frame-corner{opacity:1;transform:scale(1)}.work-card__meta{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--ink);margin-top:14px;padding-top:12px}.work-card__meta h3{font-size:clamp(1.45rem,2vw,2.25rem);line-height:1.1;letter-spacing:-.045em;margin:0 0 5px}.work-card__meta p,.work-card__year{font-size:.91rem;color:var(--muted);margin:0}.work-card__meta p span{margin-inline:6px}.work-empty{min-height:460px;background:#ece8fa;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;padding:clamp(28px,5vw,75px);position:relative;overflow:hidden}.work-empty__shape{width:min(40vw,330px);aspect-ratio:1;position:relative;justify-self:center;transform:rotate(11deg)}.work-empty__shape span{position:absolute;width:38%;height:38%;border:20px solid var(--accent)}.work-empty__shape span:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.work-empty__shape span:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.work-empty__shape span:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.work-empty__shape span:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}.work-empty h2,.work-empty h3{font-size:clamp(2.5rem,4vw,4.6rem);line-height:1;letter-spacing:-.065em;max-width:10ch;margin-bottom:22px}.work-empty p{line-height:1.5;max-width:45ch;color:#524b63;margin-bottom:25px}
.practice-section{padding-block:clamp(75px,8vw,130px)}.section-note{max-width:33ch;font-size:1.12rem;line-height:1.4;color:var(--muted);margin:0}.practice-list{border-top:1px solid var(--ink)}.practice-list a{display:grid;grid-template-columns:minmax(230px,1fr) minmax(200px,.7fr) 40px;gap:30px;align-items:center;min-height:148px;border-bottom:1px solid var(--line);text-decoration:none}.practice-list a:hover{padding-inline:20px;background:#eee9fb}.practice-list span{font-size:clamp(2rem,3.7vw,4.1rem);letter-spacing:-.065em;font-weight:600;line-height:1}.practice-list p{max-width:34ch;color:var(--muted);line-height:1.35;margin:0}.practice-list b{font-size:1.55rem;font-weight:400;text-align:right}.about-teaser{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;padding-block:clamp(80px,11vw,170px);border-top:1px solid var(--line)}.about-teaser__mark{font-size:clamp(14rem,31vw,34rem);font-weight:700;letter-spacing:-.17em;line-height:.65;color:var(--accent)}.about-teaser h2{font-size:clamp(3rem,5.7vw,6.4rem);line-height:.96;letter-spacing:-.07em;margin-bottom:29px}.about-teaser p:not(.section-index){font-size:1.16rem;line-height:1.4;max-width:43ch;color:var(--muted);margin-bottom:27px}
.site-footer{background:#e5defb;padding:clamp(58px,8vw,120px) clamp(18px,3.5vw,58px) 34px}.footer-kicker{font-size:1rem;margin-bottom:20px}.footer-cta{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;font-size:clamp(4rem,10vw,12rem);line-height:.86;letter-spacing:-.085em;text-decoration:none;font-weight:650;border-bottom:1px solid var(--ink);padding-bottom:70px}.footer-cta span{font-size:.52em;line-height:1}.footer-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;align-items:end;padding-top:30px;font-size:.85rem}.footer-bottom p{margin:0;color:#5d546c}.footer-bottom>div{display:flex;gap:16px;justify-content:flex-end;flex-wrap:wrap}.footer-bottom a:not(.brand){text-decoration:none}.footer-bottom a:hover{text-decoration:underline}
.page-hero{padding-block:clamp(95px,10vw,165px) clamp(70px,8vw,130px)}.page-hero h1{font-size:clamp(5rem,10vw,11.8rem);letter-spacing:-.085em;line-height:.87;max-width:12ch;margin-bottom:40px}.page-hero>p:last-child{font-size:clamp(1.3rem,2vw,2rem);letter-spacing:-.025em;line-height:1.28;max-width:44ch;color:#4e4a55}.archive{padding-bottom:clamp(100px,12vw,180px)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:43px}.filter{border:1px solid var(--line);background:transparent;padding:10px 17px;border-radius:999px;color:var(--ink)}.filter:hover,.filter.is-active{background:var(--accent);border-color:var(--accent)}.work-grid--archive>div:nth-child(4n+3){grid-column:1/-1}.work-grid--archive .work-card:nth-child(4n+3){grid-column:auto}.work-grid--archive>div[hidden]{display:none}.case{padding-block:64px 150px}.back-link{text-decoration:none;border-bottom:1px solid;padding-bottom:3px}.case-header{padding-block:115px 75px}.case-header h1{font-size:clamp(5rem,10vw,11rem);letter-spacing:-.083em;line-height:.9;margin-bottom:34px}.case-header>p:last-child{font-size:clamp(1.5rem,2.4vw,2.6rem);line-height:1.25;max-width:35ch;color:var(--muted)}.case-lead{background:#ebe6f7}.case-lead img,.case-lead video{width:100%;max-height:84vh;object-fit:contain}.case-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;padding:30px 0 75px;border-bottom:1px solid var(--line)}.case-facts div{display:grid;gap:7px}.case-facts span{color:var(--muted);font-size:.9rem}.case-facts strong{font-weight:600}.case-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px 12vw;padding-block:100px}.case-story h2{font-size:clamp(2.7rem,4vw,4.8rem);letter-spacing:-.06em;margin-bottom:20px}.case-story p{font-size:1.18rem;line-height:1.5;max-width:55ch}.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.case-gallery figure{margin:0}.case-gallery figure:nth-child(3n){grid-column:1/-1}.case-gallery img,.case-gallery video{width:100%;background:#ebe6f7}.case-gallery figcaption{padding-top:10px;color:var(--muted);font-size:.88rem}.case-credits{border-top:1px solid var(--line);padding-top:25px;margin-top:70px;line-height:1.5}
.page-hero--about{border-bottom:1px solid var(--line)}.about-body{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding-block:clamp(90px,12vw,175px)}.about-body__mark{font-size:clamp(15rem,35vw,39rem);font-weight:700;line-height:.6;letter-spacing:-.18em;color:var(--accent)}.about-body h2{font-size:clamp(3rem,5vw,5.5rem);letter-spacing:-.065em;line-height:.96}.about-body p{font-size:1.18rem;line-height:1.5;max-width:45ch;color:var(--muted)}.about-body .button{margin-top:25px}.services-detail{padding-bottom:130px}.services-detail section{display:grid;grid-template-columns:14% 1fr;gap:45px;padding:55px 0;border-top:1px solid var(--ink);scroll-margin-top:30px}.services-detail section:last-child{border-bottom:1px solid var(--ink)}.services-detail__number{font-size:1.15rem;color:var(--purple)}.services-detail h2{font-size:clamp(3.2rem,6.4vw,7rem);letter-spacing:-.07em;line-height:.94;margin-bottom:22px}.services-detail p{font-size:1.18rem;line-height:1.45;max-width:52ch;color:var(--muted)}
.contact-page{display:grid;grid-template-columns:1fr .85fr;gap:8vw;padding-block:clamp(100px,11vw,175px) clamp(110px,13vw,200px)}.contact-page h1{font-size:clamp(5rem,9vw,10.5rem);line-height:.89;letter-spacing:-.085em;margin-bottom:38px}.contact-page>div:first-child>p:not(.section-index){max-width:30ch;font-size:1.45rem;line-height:1.32;color:var(--muted)}.contact-page .text-link{margin-top:23px}.contact-form-wrap{padding-top:40px}.contact-form-wrap form,.setup-card form{display:grid;gap:23px}.contact-form-wrap label,.setup-card label{display:grid;gap:8px;font-weight:600}.contact-form-wrap input,.contact-form-wrap textarea,.contact-form-wrap select,.setup-card input{width:100%;border:1px solid var(--line);background:var(--white);border-radius:2px;padding:15px 17px;color:var(--ink);outline:none}.contact-form-wrap input:focus,.contact-form-wrap textarea:focus,.contact-form-wrap select:focus,.setup-card input:focus{border-color:var(--purple);box-shadow:0 0 0 2px #b8a6ff77}.contact-form-wrap textarea{resize:vertical}.contact-form-wrap .button{justify-self:start}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;left:-9999px}.form-error{padding:14px 18px;background:#fbe8e8;color:#8b2222;border-left:3px solid #b63a3a}.success-message{padding:40px;background:#e5defb}.success-message h2{font-size:3rem;letter-spacing:-.06em}.setup-page{min-height:100vh;display:grid;place-items:center;padding:20px}.setup-card{width:min(100%,520px);background:var(--white);border:1px solid var(--line);padding:40px}.setup-card h1{font-size:2.8rem;letter-spacing:-.07em;margin-top:45px}.setup-card form{margin-top:35px}
.intro{display:none;position:fixed;inset:0;z-index:1000;background:var(--accent);color:var(--ink);overflow:hidden}.intro-ready .intro{display:grid;place-items:center}.intro-ready{overflow:hidden}.intro.is-leaving{opacity:0;transition:opacity .55s ease}.intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.intro[data-reel="video"] .intro-identity{display:none}.intro-identity{display:grid;justify-items:center;gap:14px;text-align:center}.intro-identity>p{font-size:clamp(2rem,4vw,4rem);font-weight:750;letter-spacing:-.08em;margin:0}.intro-identity>p span{font-size:.47em;font-weight:400;margin-left:.13em}.intro-identity>small{font-size:.9rem}.intro-mark{width:min(35vw,300px);aspect-ratio:1;position:relative;display:grid;place-items:center;animation:introTurn 3.6s cubic-bezier(.65,0,.25,1) both}.intro-mark span{position:absolute;width:35%;height:35%;border:6px solid var(--ink)}.intro-mark span:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.intro-mark span:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.intro-mark span:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.intro-mark span:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}.intro-mark b{font-size:clamp(10rem,23vw,20rem);letter-spacing:-.16em;transform:translateX(-.08em);font-weight:700;line-height:1}@keyframes introTurn{0%{transform:scale(.63) rotate(-21deg);opacity:.1}50%{transform:scale(1.13) rotate(3deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}.intro-top,.intro-bottom{position:absolute;left:clamp(22px,4vw,65px);right:clamp(22px,4vw,65px);display:flex;justify-content:space-between;align-items:center;font-weight:650}.intro-top{top:32px}.intro-bottom{bottom:30px;gap:30px}.intro-progress{flex:1;max-width:400px;height:2px;background:#25232b55}.intro-progress span{display:block;width:0;height:100%;background:var(--ink)}.intro-actions{display:flex;gap:9px}.intro-actions button{border:1px solid var(--ink);background:var(--paper);padding:11px 16px;color:var(--ink);font-weight:650}.intro-actions button:hover{background:var(--white)}.replay-button{border:0;background:none;padding:4px 0;border-bottom:1px solid;font-weight:600;color:var(--ink)}
@media(max-width:1000px){.hero{grid-template-columns:1fr .72fr;gap:35px}.hero h1{font-size:clamp(4.3rem,9vw,7rem)}.hero-art{min-height:420px}.practice-list a{grid-template-columns:1.2fr .8fr 25px}.case-facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.site-header{min-height:68px}.brand{font-size:1.45rem}.menu-toggle{display:block}.menu-toggle span{font-size:1.45rem;line-height:0;margin-left:9px}.site-nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--paper);padding:20px 24px 27px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:16px}.site-nav.is-open{display:flex}.site-nav a{font-size:1.2rem;padding:5px 0}.site-nav .nav-contact{justify-content:space-between;padding:14px 18px}.hero{grid-template-columns:1fr;padding-block:78px 0;gap:60px}.hero h1{font-size:clamp(4.4rem,14vw,7rem)}.hero-art{min-height:340px;margin-inline:-18px;width:calc(100% + 36px)}.hero-art__letter{font-size:23rem}.hero-art__frame{inset:23px}.section-head{display:block}.section-head .text-link{margin-top:26px}.section-head h2{font-size:clamp(3.3rem,11vw,5.8rem)}.work-grid{grid-template-columns:1fr;gap:46px}.work-card:nth-child(4n+3),.work-grid--archive>div:nth-child(4n+3){grid-column:auto}.work-card__image,.work-card--lead .work-card__image,.work-card:nth-child(4n+3) .work-card__image{aspect-ratio:1.15}.work-empty{grid-template-columns:1fr;padding:45px 28px}.work-empty__shape{width:170px;justify-self:start}.practice-list a{grid-template-columns:1fr 25px;gap:10px;padding:30px 0;min-height:0}.practice-list span{font-size:2.4rem}.practice-list p{grid-column:1;grid-row:2}.practice-list b{grid-column:2;grid-row:1}.about-teaser,.about-body{grid-template-columns:1fr;gap:40px}.about-teaser__mark,.about-body__mark{font-size:15rem}.footer-cta{font-size:clamp(4rem,12vw,7rem);padding-bottom:55px}.footer-bottom{grid-template-columns:1fr 1fr}.footer-bottom>div{grid-column:1/-1;justify-content:flex-start}.page-hero{padding-block:75px 65px}.page-hero h1{font-size:clamp(4.9rem,15vw,8rem)}.case{padding-block:40px 100px}.case-header{padding-block:90px 50px}.case-header h1{font-size:clamp(4.5rem,14vw,7rem)}.case-story,.case-gallery{grid-template-columns:1fr;gap:48px}.case-gallery figure:nth-child(3n){grid-column:auto}.services-detail section{grid-template-columns:1fr;gap:20px}.services-detail h2{font-size:3.8rem}.contact-page{grid-template-columns:1fr;gap:50px;padding-block:85px 120px}.contact-page h1{font-size:clamp(5rem,15vw,8rem)}.contact-form-wrap{padding-top:0}.intro-mark{width:50vw}.intro-mark b{font-size:28vw}.intro-bottom{align-items:flex-end}.intro-progress{display:none}}
@media(max-width:420px){.hero h1{font-size:15vw}.hero-actions{align-items:flex-start;flex-direction:column}.practice-list span{font-size:2rem}.footer-cta{font-size:13vw}.case-facts{gap:20px}.intro-top{font-size:.85rem}.intro-actions button{padding:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.intro-ready .intro{display:none}.intro-ready{overflow:auto}}
.reveal-pending{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--reveal-delay,0ms)}.reveal-pending.is-revealed{opacity:1;transform:none}html[data-motion="standard"] .reveal-pending{transform:translateY(15px);transition-duration:.5s}html[data-motion="off"] .reveal-pending{opacity:1;transform:none;transition:none}@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;transform:none;transition:none}}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
html[data-motion="standard"] .hero-art__letter{animation-iteration-count:1}
main:focus{outline:none}
.page-hero h1,.case-header h1,.contact-page h1,.section-head h2,.about-teaser h2,.about-body h2,.services-detail h2,.footer-cta{letter-spacing:-.035em;word-spacing:.04em}
.case-lead{margin:0}.case-lead figcaption{padding:12px 0;color:var(--muted);background:var(--paper);font-size:.9rem}
