:root{--bg:#14181d;--ink:#cdd5de;--button:#bcc7d3;--muted:#969faa;--line:#272e36;--gutter:clamp(24px,7.78vw,150px);font-family:'Plus Jakarta Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:7px}button svg,a svg{width:24px;height:24px;flex-shrink:0}button{border:0}h1,h2,h3,p{margin:0}p{font-size:16px;line-height:1.6}img{display:block;max-width:100%}.wrap{width:calc(100% - var(--gutter)*2);max-width:1616px;margin-inline:auto}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.muted{color:var(--muted)}.quiet{font-size:12px;line-height:1.5;color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.08em;line-height:1.5;display:block}.placeholder-tag{display:inline-block;font-size:10px;letter-spacing:.09em;color:var(--muted);border:1px solid var(--line);padding:7px 9px}.display{font-size:clamp(80px,10vw,190px);line-height:.93;letter-spacing:-.07em;font-weight:600}.wordmark{display:flex;flex-direction:column;align-items:flex-start;font-size:20px;letter-spacing:.23em;font-weight:700;line-height:.98}.wordmark>span{display:flex;align-items:center;gap:0}.logo-pixel{width:.67em;height:.67em;border-radius:50%;background:var(--ink);margin-right:.2em;margin-left:.02em;display:inline-block}.hero-shell{height:100svh;min-height:780px}.hero{height:100svh;min-height:780px;position:relative;overflow:hidden}.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 26%;filter:brightness(.6)}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,29,.12),rgba(20,24,29,.07) 25%,rgba(20,24,29,.2) 65%,rgba(20,24,29,.76)),linear-gradient(90deg,rgba(20,24,29,.4),transparent 40%,rgba(20,24,29,.26));pointer-events:none}.topbar{position:relative;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;padding-top:30px}.desktop-contact{font-size:10px;letter-spacing:.02em;border-bottom:1px solid rgba(205,213,222,.2);padding:7px 0}.mobile-nav{display:none}.hero-content{position:absolute;top:37%;left:0;right:0}.hero-line{display:flex;align-items:center;gap:24px}.hero-word{display:block;font-size:clamp(88px,11.35vw,190px);line-height:.93;letter-spacing:-.068em;font-weight:700;white-space:nowrap}.line-one{justify-content:space-between}.line-two{justify-content:flex-end;margin-top:8px}.line-three{justify-content:flex-end;margin-top:8px;gap:42px}.line-three .hero-word{margin-right:auto;margin-left:7%}.hero-intro{font-size:14px;line-height:1.5;max-width:262px;margin-right:22px;margin-left:14%}.stat-tile{width:110px;height:110px;flex-shrink:0;align-self:center;background:linear-gradient(160deg,rgba(20,24,29,.8) 25%,rgba(70,84,101,.65));border:1px solid rgba(205,213,222,.07);box-shadow:0 10px 30px #0001;padding:18px 13px;font-size:10px;line-height:1.5;display:flex;flex-direction:column;justify-content:flex-start}.hero-down{font-size:150px;line-height:.8;margin-right:5px}.hero-bottom{position:absolute;bottom:35px;left:0;right:0;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.floating-nav{position:fixed;z-index:50;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:26px;padding:8px 8px 8px 22px;border:1px solid rgba(205,213,222,.07);background:rgba(23,28,34,.8);backdrop-filter:blur(15px);border-radius:3px;box-shadow:0 8px 25px #0002}.floating-nav>a{font-size:10px;color:var(--muted);transition:color .2s}.floating-nav>a:hover{color:var(--ink)}.contact-button{display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(160deg,rgba(20,24,29,.9) 25%,rgba(70,84,101,.75));border:1px solid rgba(205,213,222,.14);color:var(--ink);border-radius:3px;padding:12px 17px;font-weight:800;font-size:10px;white-space:nowrap;transition:background .25s,transform .25s}.contact-button img{width:26px;height:30px;object-fit:cover;object-position:center 12%;border-radius:2px}.contact-button svg{width:0;opacity:0;transition:width .25s,opacity .25s}.contact-button:hover{background:#d5dee8;transform:translateY(-2px)}.contact-button:hover svg{width:20px;opacity:1}.services-scene{height:270vh;min-height:1900px;position:relative;background:var(--bg);isolation:isolate}.service-sticky{height:100vh;position:sticky;top:0;display:grid;grid-template-columns:1fr 2.25fr;align-content:center;gap:45px}.service-sticky>.eyebrow{padding-top:11px}.read-reveal{font-size:clamp(34px,5vw,80px);font-weight:500;line-height:1.06;letter-spacing:-.045em}.reveal-word{display:inline-block;white-space:nowrap}.reveal-word span{opacity:.17;transition:opacity .08s linear}.service-small{font-size:14px;margin-top:28px;max-width:400px}.passing-work{position:absolute;inset:80vh 0 0;pointer-events:none}.passing-card{position:absolute;width:31%;height:360px;border-radius:3px;box-shadow:0 20px 80px #0004;overflow:hidden}.card-0{top:0;left:0}.card-1{top:200px;right:0}.card-2{top:570px;left:35%}.card-3{top:990px;left:0}.card-4{top:1150px;right:0}.project-art{height:100%;width:100%;min-height:240px;position:relative;overflow:hidden;display:grid;place-items:center;isolation:isolate}.project-art.olive{--art-bg:#314332;--art-ink:#f5f0ce;--paper:#dce2bd;--dark:#304732;background:var(--art-bg)}.project-art.purple{--art-bg:#6150a2;--art-ink:#fff9ee;--paper:#191527;--dark:#e0d5f1;background:var(--art-bg)}.project-art.sand{--art-bg:#b5a98f;--art-ink:#2a2a24;--paper:#efece2;--dark:#36382e;background:var(--art-bg)}.art-orbit{position:absolute;width:85%;aspect-ratio:1;left:26%;top:22%;border:1px solid color-mix(in srgb,var(--art-ink) 24%,transparent);border-radius:50%;box-shadow:0 0 0 40px color-mix(in srgb,var(--art-ink) 5%,transparent),0 0 0 80px color-mix(in srgb,var(--art-ink) 3%,transparent);transform:rotate(-25deg);z-index:-1}.mini-site{width:80%;height:74%;min-height:180px;display:flex;flex-direction:column;position:relative;background:var(--paper);color:var(--dark);box-shadow:0 26px 50px #0003;transform:rotate(-4deg) translateY(2%);transition:transform 1s cubic-bezier(.2,.75,.25,1);overflow:hidden}.mini-header{padding:4% 6%;border-bottom:1px solid currentColor;display:flex;align-items:center;justify-content:space-between;gap:10px}.mini-header>strong{font-weight:800;font-size:clamp(12px,2vw,24px);letter-spacing:-.06em}.mini-header sup{font-size:.35em;margin-left:3px}.mini-header>span{font-size:7px;white-space:nowrap}.mini-header>b{font-size:16px}.mini-body{padding:7% 7% 8%;display:flex;flex-direction:column;align-items:flex-start;flex:1;position:relative}.mini-label{font-size:7px;letter-spacing:.18em}.mini-title{font-size:clamp(20px,3.5vw,56px);font-weight:500;letter-spacing:-.05em;line-height:1.04;margin-top:8%;z-index:1}.mini-sub{font-size:8px;max-width:150px;line-height:1.5;margin-top:5%;opacity:.75}.mini-link{display:flex;align-items:center;gap:12px;font-size:8px;margin-top:7%;border-bottom:1px solid currentColor;padding-bottom:3px}.mini-link svg{width:12px;height:12px}.mini-lower{padding:4% 6%;border-top:1px solid currentColor;display:flex;justify-content:space-between;font-size:6px}.art-label{position:absolute;bottom:20px;left:22px;font-size:8px;letter-spacing:.08em;color:var(--art-ink);opacity:.8}.purple .mini-site{border-radius:8px;transform:rotate(5deg);width:77%;height:77%;border:5px solid #292138}.purple .mini-body{background:radial-gradient(ellipse at 100% 100%,#65508d,transparent 75%)}.purple .mini-title{font-weight:600}.sand .mini-site{transform:rotate(-2deg)}.sand .mini-title{font-family:Georgia,serif;font-size:clamp(24px,4vw,64px);font-weight:400;letter-spacing:-.04em}.sand .mini-header{border:0}.sand .mini-body:after{content:'';position:absolute;right:8%;bottom:12%;width:25%;height:25%;border:1px solid currentColor;border-radius:50%}.variant-1 .mini-site{transform:rotate(4deg) scale(1.08)}.variant-1.purple .mini-site{transform:rotate(-6deg) scale(1.05)}.featured{position:relative}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;padding:90px 0 45px;gap:30px}.section-heading>div{padding-bottom:7px}.section-heading .quiet{margin-top:12px}.featured-project{height:100vh;min-height:680px;position:sticky;top:0;background:var(--bg);padding-top:50px;padding-bottom:70px}.feature-link{height:100%;display:grid;grid-template-columns:1.2fr 1fr;gap:5.5%;align-items:center;border-top:1px solid var(--line);padding-top:55px}.feature-visual{height:100%;max-height:700px;overflow:hidden;border-radius:5px}.feature-copy{height:100%;display:flex;flex-direction:column;align-items:flex-start;padding:7% 5% 3% 0}.feature-number{font-size:66px;line-height:1;letter-spacing:-.06em;margin-bottom:30px}.feature-copy h3{font-weight:500;font-size:clamp(24px,2.25vw,40px);line-height:1.23;letter-spacing:-.035em;max-width:380px}.feature-copy p{font-size:14px;margin-top:25px}.feature-copy .placeholder-tag{margin-top:22px}.feature-continue{margin-top:auto;display:flex;align-items:center;gap:14px;font-size:12px;color:var(--muted)}.feature-link:hover .mini-site{transform:rotate(0) scale(1.04)}.approach{padding:150px 0 70px}.approach-top{display:grid;grid-template-columns:1fr 2.25fr;gap:45px;align-items:start}.approach-top>.eyebrow{padding-top:11px}.approach-intro{font-size:17px;line-height:1.6;color:var(--muted);max-width:470px;margin-top:32px}.approach-steps{list-style:none;margin:90px 0 0;padding:64px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.approach-step{display:flex;flex-direction:column;align-items:flex-start;max-width:330px}.step-number{font-size:11px;letter-spacing:.08em;color:var(--muted);margin-bottom:46px}.approach-step h3{font-size:clamp(20px,1.55vw,24px);font-weight:500;line-height:1.25;letter-spacing:-.03em}.approach-step p{font-size:15px;margin-top:16px}.approach-step:nth-child(2){transition-delay:.12s}.approach-step:nth-child(3){transition-delay:.24s}.testimonials-scene{position:relative;min-height:270vh;padding-top:120px}.testimonials-heading{position:sticky;top:0;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.testimonials-heading .display{font-size:clamp(95px,14vw,245px);line-height:.91;letter-spacing:-.06em;margin-top:30px}.quote-stack{position:relative;margin-top:-20vh;display:flex;flex-direction:column;align-items:center;gap:35vh;padding-bottom:15vh}.quote-card{width:min(460px,80vw);padding:35px 34px 30px;background:linear-gradient(145deg,#191e24 55%,#323c48);border:1px solid #272e36;box-shadow:0 20px 60px #0003}.quote-number{font-size:52px;letter-spacing:-.06em;display:block;margin-bottom:24px}.quote-card h3{font-size:27px;line-height:1.2;font-weight:500;margin:23px 0 12px}.quote-card p{font-size:17px;line-height:1.5}.quote-person{display:flex;gap:12px;align-items:center;font-size:12px;margin-top:30px}.person-square{width:38px;height:42px;background:var(--button);opacity:.3}.quote-person div>span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.about{padding:130px 0 80px}.about-start{display:grid;grid-template-columns:1fr 1fr 1fr;gap:55px 35px}.about-start h2{grid-column:1/4;max-width:1100px;margin-bottom:45px}.about-start>.eyebrow{padding-top:5px}.about-portrait{width:100%;height:440px;object-fit:cover;object-position:center 20%;filter:brightness(.8);border-radius:3px}.about-story{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:22px}.personal-row{display:grid;grid-template-columns:1fr 2fr;gap:45px;padding:100px 0;border-bottom:1px solid var(--line)}.personal-row>div:first-child{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:24px}.personal-row p{font-size:15px;max-width:250px}.photo-window{overflow:hidden;margin-right:calc(-1*var(--gutter))}.photo-track{display:flex;gap:24px;width:max-content;animation:photo-drift 50s linear infinite}.photo-window:hover .photo-track{animation-play-state:paused}.photo-placeholder{height:280px;width:245px;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;background:#242c35;border:1px solid #36414e;position:relative}.photo-placeholder>span{position:absolute;top:20px;left:24px;font-size:60px;letter-spacing:-.07em;opacity:.16}.photo-placeholder p{font-size:23px;letter-spacing:-.04em}.photo-placeholder small{font-size:8px;letter-spacing:.1em;color:var(--muted);margin-top:12px}.photo-1{background:#333e4a}.photo-2{background:#262f39}.photo-3{background:#303944}.photo-4{background:#2a333e}@keyframes photo-drift{to{transform:translateX(-50%)}}.about-focus{display:grid;grid-template-columns:1.5fr 1fr;gap:12%;padding:110px 0 90px}.focus-side{padding-top:8px;display:flex;flex-direction:column;gap:30px}.focus-side>p:first-of-type{font-size:24px;line-height:1.5;letter-spacing:-.03em}.focus-side>p:last-child{font-size:15px}.experience-row{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:35px 0;border-top:1px solid var(--line)}.experience-row p{font-size:13px;max-width:360px;color:var(--muted)}.contact-scene{height:100vh;min-height:780px;position:relative;overflow:hidden;display:grid;place-items:center}.contact-collage{position:absolute;inset:0;pointer-events:none}.collage-card{position:absolute;width:19%;height:210px;opacity:.3;filter:brightness(.72) saturate(.85);border-radius:3px;overflow:hidden}.collage-card .mini-title{font-size:25px}.collage-card .mini-site{min-height:130px}.collage-card .project-art{min-height:0}.collage-card .mini-header>span,.collage-card .mini-sub,.collage-card .mini-link,.collage-card .mini-lower{display:none}.collage-card .art-label{font-size:6px;bottom:10px;left:10px}.collage-0{top:13%;left:5%}.collage-1{bottom:12%;right:5%;width:17%;height:190px;opacity:.24}.contact-center{position:relative;z-index:2;text-align:center;max-width:980px;padding:0 20px;display:flex;flex-direction:column;align-items:center}.contact-center .eyebrow{color:var(--muted);margin-bottom:34px}.contact-center h2{font-weight:500;font-size:clamp(44px,6.6vw,118px);line-height:.98;letter-spacing:-.055em;text-wrap:balance}.contact-lead{font-size:17px;line-height:1.6;color:var(--muted);max-width:440px;margin-top:30px;text-wrap:balance}.contact-actions{display:flex;gap:12px;justify-content:center;margin-top:44px}.outline-button{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #414e5e;background:#14181dcc;padding:16px 20px;border-radius:3px;font-size:10px}.outline-button:hover{background:#242d38}.site-footer{padding-top:90px;padding-bottom:110px}.footer-top{display:grid;grid-template-columns:1.4fr 1fr;gap:50px;align-items:start}.wordmark-large{font-size:clamp(44px,5.9vw,100px);letter-spacing:.17em;line-height:1.03}.footer-contact h2{font-size:clamp(26px,3vw,46px);font-weight:500;letter-spacing:-.04em;margin-bottom:22px}.footer-contact>button{display:flex;align-items:center;gap:12px;background:none;padding:0;font-size:16px;color:var(--muted)}.footer-contact>.quiet{display:block;margin-top:12px}.footer-middle{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:40px;margin-top:110px;margin-bottom:80px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:24px;letter-spacing:-.04em}.footer-links>.eyebrow{margin-bottom:20px;letter-spacing:0;color:var(--muted)}.footer-links>.muted{font-size:17px;letter-spacing:0;line-height:1.6}.footer-links a:hover{color:#e6edf5}.footer-tiles{display:flex;align-items:flex-end;justify-content:flex-end;gap:20px}.footer-tiles>div{display:flex;flex-direction:column;justify-content:space-between;width:170px;height:180px;padding:20px;font-size:10px;line-height:1.5;background:linear-gradient(155deg,#151a20 20%,#303b47);border:1px solid #272e36;border-radius:3px;transition:transform .5s}.footer-tiles>div:hover{transform:translateY(-12px) rotate(-3deg)}.footer-tiles>div>span{font-size:15px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:30px;font-size:10px;color:var(--muted)}.footer-bottom>a:nth-child(2){font-size:10px}.reveal{opacity:0;transform:translateY(45px);transition:opacity .8s,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}.char-clip{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.15em;margin-bottom:-.15em;padding-right:.035em;margin-right:-.035em}.char-clip>span{display:inline-block;transform:translateY(115%);transition:transform .9s cubic-bezier(.25,.8,.2,1);transition-delay:calc(var(--char-index)*.035s)}.hero-ready .hero-word .char-clip>span,.in-view .char-clip>span{transform:translateY(0)}.hero-intro,.hero .stat-tile,.hero .amp,.hero-down{opacity:0;transform:translateY(30px);transition:opacity .7s .35s,transform .7s .35s}.hero-ready .hero-intro,.hero-ready .hero .stat-tile,.hero-ready .hero .amp,.hero-ready .hero-down{opacity:1;transform:translateY(0)}.intro-overlay{position:fixed;inset:0;background:#14181d;z-index:1000;display:grid;place-items:center;transition:background .6s}.intro-out{background:transparent;pointer-events:none}
.wordmark-intro{overflow:hidden}
.intro-name{display:flex;flex-direction:column;gap:.03em;font-size:clamp(42px,8vw,108px);font-weight:700;line-height:1.04;letter-spacing:-.055em;animation:intro-name-appear .7s cubic-bezier(.16,1,.3,1) both}
.intro-name>div{display:flex;justify-content:center}
.intro-letter,.intro-o{display:inline-flex;align-items:center;justify-content:center;width:.91em;height:1.08em;position:relative;will-change:transform;flex-shrink:0}
.intro-letter{z-index:1}
.intro-o{z-index:3;border-radius:50%;background:var(--bg);transition:background .5s,border-radius .6s}
.intro-o>span{transition:opacity .4s}
.intro-o-settle{background:var(--ink);border-radius:50%}
.intro-o-settle>span{opacity:0}
.intro-skip{position:absolute;bottom:35px;right:var(--gutter);padding:12px 0;background:none;font-size:11px;color:var(--muted);transition:opacity .2s}
.intro-out .intro-name{animation:none;opacity:0;transition:opacity .6s}.intro-out .intro-skip{opacity:0;transition:opacity .6s}
@keyframes intro-name-appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
.preview-marker{position:fixed;right:18px;bottom:4px;z-index:51;font-size:8px;letter-spacing:.15em;color:#8491a1;pointer-events:none}.cursor-pixel{width:10px;height:10px;background:var(--ink);position:fixed;left:0;top:0;z-index:100;pointer-events:none;border-radius:1px;opacity:0;transition:opacity .2s}.cursor-pixel.visible{opacity:.9}.cursor-pixel.over-project{opacity:0}.cursor-preview{position:fixed;top:0;left:0;pointer-events:none;z-index:100;opacity:0;transition:opacity .2s}.cursor-preview.visible{opacity:1}.cursor-preview>span{background:var(--ink);color:var(--bg);padding:18px 20px;display:flex;align-items:center;gap:18px;font-size:10px;box-shadow:0 10px 40px #0003}.cursor-preview svg{width:25px;height:25px}.contact-dialog{border:1px solid #465366;background:var(--bg);color:var(--ink);max-width:600px;width:calc(100% - 40px);padding:60px}.contact-dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}.contact-dialog h2{font-size:40px;line-height:1.1;letter-spacing:-.04em;margin:30px 0}.contact-dialog p{color:var(--muted);margin-bottom:25px}.dialog-close{position:absolute;right:15px;top:8px;background:none;font-size:32px;padding:10px}.case-header{padding-top:60px;padding-bottom:80px}.back-link{font-size:11px;display:inline-block;border:1px solid var(--line);padding:18px 25px}.case-header>.placeholder-tag{float:right;margin-top:10px}.case-header h1{font-size:clamp(40px,5vw,80px);line-height:1.1;font-weight:500;letter-spacing:-.055em;margin:55px 0 38px}.case-lead{font-size:18px;max-width:650px}.case-meta{display:flex;gap:80px;margin-top:55px}.case-meta span{font-size:12px}.case-meta p{color:var(--muted);margin-top:15px}.case-cover{height:600px}.case-cover>.project-art{border-radius:6px}.case-cover .mini-site{width:70%;height:80%}.case-cover .mini-title{font-size:70px}.case-cover .mini-sub{font-size:12px;max-width:300px}.case-body{padding-top:90px}.case-section{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;padding:40px 0}.case-section h2{font-size:14px;font-weight:500;letter-spacing:.3em}.case-section p{font-size:18px}.case-section p+p{margin-top:20px}.case-image{height:600px;margin:70px 0}.case-image .project-art{border-radius:6px}.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:70px 0}.case-detail{height:550px;overflow:hidden}.next-case{display:block;border-top:1px solid var(--line);padding:50px 0 20px;margin-top:80px}.next-case>span{font-size:10px;color:var(--muted)}.next-case strong{font-size:40px;font-weight:500;letter-spacing:-.04em;display:flex;align-items:center;justify-content:space-between;margin-top:20px}.next-case svg{width:50px;height:50px}.archive-page{height:100svh;overflow:hidden;position:relative}.archive-label{position:absolute;top:20px;left:30px;right:30px;z-index:5;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.07em;pointer-events:none;text-shadow:0 1px 10px var(--bg)}.archive-label>span:last-child{color:var(--muted);letter-spacing:0}.archive-stage{height:calc(100% - 100px);overflow:hidden;position:relative;touch-action:none;cursor:grab}.archive-stage.dragging{cursor:grabbing}.archive-plane{position:absolute;display:grid;grid-template-columns:repeat(8,280px);gap:60px 35px;will-change:transform;padding:60px}.archive-item{width:280px;height:235px;user-select:none;-webkit-user-drag:none}.archive-item .project-art{min-height:0}.archive-item .mini-title{font-size:27px}.archive-item .mini-header>strong{font-size:17px}.archive-item .mini-site{min-height:0}.archive-item .mini-header>span,.archive-item .mini-sub,.archive-item .mini-link,.archive-item .mini-lower{display:none}.archive-item .art-label{font-size:7px;left:12px;bottom:12px}.archive-item:hover .mini-site{transform:rotate(0) scale(1.08)}.archive-footer{position:absolute;bottom:0;left:0;right:0;height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 45px;background:var(--bg);font-size:12px}.archive-footer>span{font-size:8px;color:var(--muted);margin-right:120px}.archive-footer button{font-size:12px;background:none;padding:12px}.is-archive .floating-nav{bottom:18px}.is-archive .preview-marker{display:none}
@media(min-width:1600px){.hero-content{top:34%}.hero-intro{font-size:17px;max-width:310px}.stat-tile{width:135px;height:135px;font-size:12px}.hero-line{gap:35px}}
@media(max-width:1259px){:root{--gutter:5vw}.hero-shell,.hero{min-height:700px}.hero-content{top:39%}.hero-word{font-size:11.7vw}.hero-line{gap:16px}.stat-tile{width:90px;height:90px;font-size:8px;padding:14px 10px}.hero-intro{font-size:12px;max-width:210px;margin-left:8%;margin-right:12px}.hero-down{font-size:120px}.line-three{gap:25px}.service-sticky{gap:28px}.passing-card{height:290px}.feature-number{font-size:55px}.feature-copy h3{font-size:29px}.approach-top{gap:28px}.approach-steps{gap:28px}.about-start{gap:40px 25px}.about-portrait{height:370px}.wordmark-large{font-size:6.5vw}.footer-tiles>div{width:140px;height:160px}.archive-footer>span{display:none}}
@media(max-width:809px){:root{--gutter:20px}.hero-shell,.hero{height:100svh;min-height:760px}.hero-photo{object-position:50% 17%;filter:brightness(.62)}.hero-shade{background:linear-gradient(180deg,#14181d11 0%,#14181d44 33%,#14181dbe 60%,#14181dfa 98%)}.topbar{padding-top:26px}.wordmark{font-size:19px}.desktop-contact{display:none}.mobile-nav{display:flex;flex-direction:column;align-items:flex-end;gap:16px;font-size:10px}.hero-content{top:auto;bottom:22%;display:flex;flex-direction:column}.hero-word{font-size:clamp(44px,11.9vw,95px);letter-spacing:-.07em}.hero-line{gap:12px}.line-one{justify-content:flex-start;order:2}.line-one .stat-tile{display:none}.line-one .amp{margin-left:3px}.line-two{order:1;display:contents}.hero-intro{order:0;font-size:12px;line-height:1.55;max-width:250px;margin:0 0 28px;align-self:flex-start}.line-two>.hero-word{order:3;text-align:right;margin-top:7px}.line-three{order:4;margin-top:7px;justify-content:flex-end;gap:20px}.line-three>.hero-word{margin:0}.line-three .stat-tile{position:absolute;bottom:9%;left:0;width:94px;height:60px;padding:12px 8px;font-size:8px}.hero-down{font-size:60px;margin-right:0}.hero-bottom{bottom:24px;font-size:9px;display:none}.floating-nav{padding:7px;bottom:18px;gap:0}.floating-nav>a{display:none}.contact-button{font-size:10px;padding:12px 22px}.services-scene{height:2200px;min-height:0}.service-sticky{grid-template-columns:1fr;height:100svh;gap:30px;align-content:center}.read-reveal{font-size:36px;line-height:1.12;letter-spacing:-.045em}.service-small{font-size:13px;max-width:270px;line-height:1.6}.passing-work{top:85vh}.passing-card{width:53%;height:225px}.card-0{top:0;left:0}.card-1{top:230px;right:0}.card-2{top:480px;left:15%}.card-3{top:750px;left:0}.card-4{top:1000px;right:0}.passing-card .mini-site{min-height:140px}.mini-header>span{display:none}.mini-title{font-size:30px}.mini-sub{font-size:7px}.mini-header>strong{font-size:17px}.art-label{font-size:7px;left:14px;bottom:13px}.display{font-size:clamp(56px,13vw,110px);letter-spacing:-.07em}.section-heading{padding:70px 0 35px;flex-direction:column-reverse;align-items:flex-start;gap:14px}.section-heading>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:0}.section-heading .quiet{font-size:10px;margin:0}.eyebrow{font-size:10px}.featured-project{position:relative;height:auto;min-height:0;padding:0 0 55px}.feature-link{display:flex;flex-direction:column;gap:20px;border:0;padding:0;align-items:stretch}.feature-visual{height:390px;max-height:none}.feature-visual .mini-title{font-size:44px}.feature-copy{height:auto;padding:0}.feature-number{display:none}.feature-copy h3{font-size:23px;max-width:350px}.feature-copy p{font-size:12px;margin-top:12px}.feature-copy .placeholder-tag{margin-top:15px;font-size:8px}.feature-continue{margin-top:18px;font-size:11px}.approach{padding:85px 0 40px}.approach-top{grid-template-columns:1fr;gap:22px}.approach-top>.eyebrow{padding-top:0}.approach-intro{font-size:15px;margin-top:20px;max-width:340px}.approach-steps{grid-template-columns:1fr;gap:42px;margin-top:50px;padding-top:42px}.approach-step{max-width:400px}.step-number{margin-bottom:18px}.approach-step h3{font-size:21px}.approach-step p{font-size:14px;margin-top:12px}.testimonials-scene{min-height:0;margin-top:10px;padding:65px 0}.testimonials-heading{height:auto;position:relative;top:auto}.testimonials-heading .display{font-size:16vw;margin-top:25px}.quote-stack{margin-top:45px;gap:20px;padding:0 20px}.quote-card{width:100%;padding:28px}.quote-number{font-size:40px;margin-bottom:20px}.quote-card h3{font-size:25px}.quote-card p{font-size:15px}.about{padding:70px 0 30px}.about-start{grid-template-columns:1fr;gap:25px}.about-start h2{grid-column:auto;margin-bottom:10px}.about-portrait{height:440px;width:100%;object-position:center 20%}.about-story{gap:16px}.about-story p{font-size:15px}.personal-row{grid-template-columns:1fr;padding:65px 0;gap:30px}.personal-row>div:first-child{gap:16px}.photo-window{margin-left:0}.photo-placeholder{width:200px;height:240px}.photo-track{gap:16px}.about-focus{grid-template-columns:1fr;padding:70px 0 50px;gap:35px}.focus-side{gap:20px}.focus-side>p:first-of-type{font-size:22px}.experience-row{flex-direction:column;align-items:flex-start;gap:15px;padding:25px 0}.contact-scene{min-height:620px;height:85svh}.collage-card{width:42%;height:150px;opacity:.26}.collage-card .mini-title{font-size:18px}.collage-card .mini-site{min-height:90px}.collage-card .mini-header>strong{font-size:12px}.collage-card .mini-label{font-size:4px}.collage-card .art-label{display:none}.collage-0{top:5%;left:-10%}.collage-1{bottom:5%;right:-12%;width:40%;height:140px}.contact-center{padding:0 8px}.contact-center .eyebrow{margin-bottom:22px}.contact-center h2{font-size:clamp(36px,11.5vw,54px)}.contact-lead{font-size:15px;margin-top:20px;max-width:320px}.contact-actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:34px;width:min(100%,300px)}.contact-actions .contact-button{padding:12px 16px}.outline-button{font-size:9px;padding:14px}.outline-button svg{width:18px}.site-footer{padding-top:45px;padding-bottom:120px}.footer-top{grid-template-columns:1fr;gap:45px}.wordmark-large{font-size:48px;letter-spacing:.16em}.footer-contact h2{font-size:30px;margin-bottom:18px}.footer-contact>button{font-size:14px}.footer-middle{grid-template-columns:1fr 1fr;margin:50px 0 40px;gap:30px}.footer-links{font-size:20px}.footer-links>.muted{font-size:14px}.footer-tiles{display:none}.footer-bottom{flex-direction:column;align-items:flex-start;gap:20px;font-size:9px;padding-top:25px}.footer-bottom>a:nth-child(2){font-size:9px}.cursor-pixel,.cursor-preview{display:none}.contact-dialog{padding:40px 26px}.contact-dialog h2{font-size:33px}.contact-dialog p{font-size:15px}.case-header{padding-top:35px;padding-bottom:45px}.case-header>.placeholder-tag{float:none;display:table;margin-top:25px;font-size:9px}.case-header h1{font-size:40px;margin:25px 0}.case-lead{font-size:16px}.case-meta{gap:25px;justify-content:space-between;margin-top:35px}.case-meta span{font-size:10px}.case-meta p{font-size:12px;margin-top:10px}.case-cover{height:390px}.case-cover .mini-site{height:76%;width:86%}.case-cover .mini-title{font-size:39px}.case-cover .mini-sub{font-size:9px}.case-body{padding-top:35px}.case-section{grid-template-columns:1fr;gap:22px;padding:25px 0}.case-section h2{font-size:11px}.case-section p{font-size:15px}.case-image{height:350px;margin:35px 0}.case-pair{gap:15px;margin:35px 0}.case-detail{height:260px}.case-detail .mini-site{min-height:160px}.case-detail .mini-title{font-size:23px}.case-detail .mini-sub{display:none}.case-detail .art-label{font-size:5px;left:6px}.next-case{margin-top:40px;padding-top:30px}.next-case strong{font-size:28px}.next-case svg{width:35px}.archive-plane{grid-template-columns:repeat(8,200px);gap:35px 20px;padding:50px 20px}.archive-item{width:200px;height:190px}.archive-item .mini-title{font-size:23px}.archive-label{top:15px;left:20px;right:20px;font-size:9px;gap:25px}.archive-label>span:last-child{max-width:140px;text-align:right;line-height:1.5}.archive-stage{height:calc(100% - 80px)}.archive-footer{height:80px;padding:0 20px;font-size:11px}.archive-footer button{font-size:11px}.is-archive .floating-nav{display:none}.preview-marker{font-size:7px;right:9px;bottom:5px}}
/* Keep the portrait's full head visible on wide screens and layer the next scene over it. */
@media(min-width:810px){.hero-photo{height:140%;width:auto;max-width:none;left:50%;transform:translateX(-50%);object-fit:contain;object-position:center top;top:0;mask-image:linear-gradient(90deg,transparent 0%,#000 16%,#000 84%,transparent 100%)}.hero-shell{position:sticky;top:0;z-index:0}.services-scene,.featured,.approach,.testimonials-scene,.about,.contact-scene,.site-footer{position:relative;z-index:1;background:var(--bg)}.featured:before,.approach:before,.about:before,.site-footer:before{content:'';position:absolute;inset:0 calc(-1*var(--gutter));background:var(--bg);z-index:-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.char-clip>span{transform:none}.reveal-word span{opacity:1!important}.hero-intro,.hero .stat-tile,.hero .amp,.hero-down{opacity:1;transform:none}.photo-track{animation:none}.photo-window{overflow-x:auto}.photo-track>div:nth-child(n+6){display:none}.cursor-pixel,.cursor-preview{display:none}}

.archive-label>span{background:rgba(20,24,29,.88);padding:8px 10px;backdrop-filter:blur(8px)}

/* The texture sits over the portrait, beneath crisp navigation and type. */
.hero-grain{position:absolute;inset:0;pointer-events:none;opacity:.29;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23808080' filter='url(%23grain)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px 180px}
.hero-shade{background:linear-gradient(180deg,rgba(20,24,29,.12),rgba(20,24,29,.07) 25%,rgba(20,24,29,.2) 65%,rgba(20,24,29,.9)),radial-gradient(ellipse at 50% 35%,transparent 25%,rgba(20,24,29,.68) 100%)}
.hero-word .char-clip>span{transform-origin:50% 100%;transform:translateY(105%) scale(.76,.2);transition:none;will-change:transform}
.hero-ready .hero-word .char-clip>span{animation:hero-letter-scale 1.4s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word-delay,0s) + var(--char-index)*.055s)}
.line-one{--word-delay:.06s}.line-two{--word-delay:.23s}.line-three{--word-delay:.4s}
@keyframes hero-letter-scale{0%{transform:translateY(105%) scale(.76,.2)}65%{transform:translateY(0) scale(1,1.045)}100%{transform:translateY(0) scale(1,1)}}
@media(max-width:809px){.hero-shade{background:linear-gradient(180deg,#14181d11 0%,#14181d44 33%,#14181dbe 60%,#14181d 100%)}.hero-grain{opacity:.25}}
@media(prefers-reduced-motion:reduce){.hero-word .char-clip>span,.hero-ready .hero-word .char-clip>span{animation:none;transform:none;will-change:auto}}

/* The outer word responds to scrolling; individual letters retain their entrance. */
.hero-word{scale:var(--hero-scroll-scale,1);transform-origin:center center}
@media(prefers-reduced-motion:reduce){.hero-word{scale:1}}

/* Approved concept assets: retain the portfolio's existing motion and visual system. */
.project-photographic{padding:0;isolation:isolate}.project-photographic>img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.concept-cover{height:auto;aspect-ratio:1440/1000;max-width:1440px}.concept-cover>.project-art{height:100%}.project-presentation-pair{grid-template-columns:1216fr 592fr;gap:20px;align-items:start}.project-presentation-pair>img{width:100%;height:auto;border-radius:6px}.concept-fullpage{margin:70px 0}.concept-fullpage>img{width:100%;height:auto;border-radius:6px}.concept-fullpage figcaption,.concept-credit{font-size:12px;color:var(--muted);margin-top:15px}.concept-credit a{text-decoration:underline}.case-meta>div{min-width:0;max-width:430px}.case-section p{max-width:70ch}.feature-copy h3{font-size:clamp(24px,2.5vw,44px)}
@media(max-width:700px){.project-presentation-pair{grid-template-columns:1fr;gap:15px}.project-presentation-pair>img:last-child{width:70%;justify-self:center}.concept-cover{height:auto;aspect-ratio:1440/1000}.concept-fullpage{margin:35px 0}.case-meta{flex-wrap:wrap}.feature-copy h3{font-size:25px}}

.feature-visual .project-photographic>img{object-fit:contain;object-position:center}.feature-visual .project-photographic.olive{background:#e8f6f1}.feature-visual .project-photographic.purple{background:#fcf6da}.feature-visual .project-photographic.sand{background:#faf7f2}

/* Preserve screenshot proportions in every animated card, not only Featured. */
.project-art.project-photographic{min-height:0}
.project-art.project-photographic>img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;object-position:center}
.project-art.project-photographic.olive{background:#e8f6f1}
.project-art.project-photographic.purple{background:#fcf6da}
.project-art.project-photographic.sand{background:#faf7f2}
.passing-card{height:auto;aspect-ratio:1440/1000}
.passing-card .project-photographic{position:absolute;inset:0}

.feature-visual:has(.showcase){height:auto;aspect-ratio:1;align-self:center}.showcase,.showcase video{width:100%;height:100%;display:block}.showcase video{object-fit:contain;background:var(--bg)}

/* Complete source frames, replacing presentation assets with baked-in crops. */
.complete-pair{grid-template-columns:1fr 1fr;align-items:center;gap:24px}.complete-pair>img{width:100%;height:auto;object-fit:contain;border-radius:6px;min-width:0}.complete-desktop-mobile{grid-template-columns:minmax(0,1fr) minmax(0,.32fr);align-items:center}.complete-desktop-mobile>img:last-child{max-width:390px;justify-self:center}@media(max-width:700px){.complete-pair{grid-template-columns:1fr;gap:24px}.complete-desktop-mobile>img:last-child{width:70%;max-width:390px}}

.showcase iframe{display:block;width:100%;height:100%;border:0;pointer-events:none}

/* A compact, conversational approach section. */
.approach{padding:100px 0 65px}.approach-top{display:block}.approach-top>.eyebrow{padding:0;margin-bottom:24px}.approach-top h2{font-size:clamp(36px,4.6vw,68px);line-height:1.08;letter-spacing:-.045em;max-width:900px}.approach-intro{max-width:660px;margin-top:22px;font-size:17px}.approach-steps{display:block;margin-top:42px;padding:0;border-top:1px solid var(--line)}.approach-step{display:grid;grid-template-columns:48px minmax(220px,.9fr) minmax(0,1.3fr);gap:28px;align-items:start;max-width:none;padding:30px 0;border-bottom:1px solid var(--line)}.approach-step .step-number{margin:5px 0 0}.approach-step h3{font-size:24px;line-height:1.3}.approach-step p{margin:0;font-size:16px;max-width:570px}.approach-step:nth-child(n){transition-delay:0s}@media(max-width:700px){.approach{padding:65px 0 35px}.approach-top h2{font-size:38px}.approach-intro{font-size:15px;margin-top:18px}.approach-steps{margin-top:30px}.approach-step{grid-template-columns:28px minmax(0,1fr);gap:10px 14px;padding:24px 0}.approach-step h3{font-size:22px}.approach-step p{grid-column:2;font-size:15px}.approach-step .step-number{margin-top:5px}}

/* 2026-10-18: testimonials without heading, initials avatars */
.testimonials-scene{min-height:0;padding:140px 0 120px}.testimonials-scene .quote-stack{margin-top:0;gap:22vh;padding-bottom:0}.person-square{width:42px;height:42px;border-radius:50%;opacity:1;background:#272e36;color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.06em;font-weight:600}
@media(max-width:809px){.testimonials-scene{padding:65px 0}.testimonials-scene .quote-stack{gap:20px}}
img.person-square{object-fit:cover;padding:0}

/* Personal photos retain their original framing. */
.personal-photo{margin:0;flex:0 0 auto;height:280px;overflow:hidden;border-radius:4px}.personal-photo img{display:block;height:100%;width:auto;max-width:none}.photo-track{align-items:center}
@media(max-width:809px){.personal-photo{height:240px}}
@media(prefers-reduced-motion:reduce){.photo-track>.personal-photo[aria-hidden="true"]{display:none}}

/* Fixed frames prevent offscreen photos collapsing before decoding. */
.personal-photo{width:280px;height:280px;background:#242c35}
.personal-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.personal-photo img[src*="mountains"]{object-position:28% center}
.personal-photo img[src*="travels"]{object-position:35% 65%}
.personal-photo img[src*="reading"]{object-position:center 75%}
.photo-track{animation-play-state:paused}
.photo-track.photos-ready{animation-play-state:running}
.photo-window:hover .photo-track{animation-play-state:paused}
@keyframes photo-drift{to{transform:translateX(calc(-50% - 12px))}}
@media(max-width:809px){.personal-photo{width:240px;height:240px}@keyframes photo-drift{to{transform:translateX(calc(-50% - 8px))}}}

/* 2026-10-18: Approach Option 1 (pinned steps, Rotabird visuals). Overrides the compact approach block above. */
/* Breakpoint fixes: switch at 809/810 like the rest of the site; heading never drops below 38px. */
.approach{padding:100px 0 65px}
.approach-top{display:block}
.approach-top>.eyebrow{padding:0;margin-bottom:24px}
.approach-top h2{font-size:clamp(38px,4.6vw,68px);line-height:1.08;letter-spacing:-.045em;max-width:900px}
.approach-intro{max-width:660px;margin-top:22px;font-size:17px}
@media(max-width:809px){
 .approach{padding:65px 0 35px}
 .approach-top h2{font-size:38px}
 .approach-intro{font-size:15px;margin-top:18px}
}

/* Step label, set like .step-number / .eyebrow. */
.step-label{display:block;font-size:11px;letter-spacing:.08em;line-height:1.5;color:var(--muted)}

/* Media frame: same radius as .feature-visual, caption as .quiet. */
.step-media{margin:0;min-width:0;display:flex;flex-direction:column}
.step-media>img{width:100%;flex:1 1 auto;min-height:0;border-radius:5px;overflow:hidden}
.step-media>img{display:block;object-fit:cover;object-position:50% 30%;background:#191e24}
.step-media figcaption{font-size:12px;line-height:1.5;color:var(--muted);margin-top:12px;flex:0 0 auto}
/* OPTION 1: Pinned steps (v2, 18 Oct). Desktop with motion = pinned stage; mobile + reduced motion = plain list.
   Step visuals: Rotabird concept, 10:9 images (assets/approach/rb-step0N-*). */

/* ---------- Plain list (≤809px, and any width with reduced motion) ---------- */
.approach--pinned .approach-rail{display:none}
.approach--pinned .approach-steps{list-style:none;display:block;margin:42px 0 0;padding:0;border-top:1px solid var(--line)}
.approach--pinned .approach-step{display:grid;grid-template-columns:48px minmax(220px,.9fr) minmax(0,1.3fr);gap:28px;align-items:start;max-width:none;padding:30px 0;border-bottom:1px solid var(--line)}
.approach--pinned .approach-step:nth-child(n){transition-delay:0s}
.approach--pinned .step-number{font-size:11px;letter-spacing:.08em;color:var(--muted);margin:5px 0 0}
.approach--pinned .step-label{display:block;margin-bottom:8px}
.approach--pinned .approach-step h3{font-size:24px;font-weight:500;line-height:1.3;letter-spacing:-.03em}
.approach--pinned .approach-step p{margin-top:12px;font-size:16px;max-width:470px}
.approach--pinned .step-media{width:100%;max-width:440px;justify-self:end}
.approach--pinned .step-media>img{aspect-ratio:10/9;flex:none;height:auto}
@media(max-width:809px){
 .approach--pinned .approach-steps{margin-top:30px}
 .approach--pinned .approach-step{grid-template-columns:28px minmax(0,1fr);gap:10px 14px;padding:24px 0}
 .approach--pinned .approach-step h3{font-size:22px}
 .approach--pinned .approach-step p{font-size:15px;margin-top:2px}
 .approach--pinned .step-label{margin-bottom:4px}
 .approach--pinned .approach-step>:not(.step-number){grid-column:2}
 .approach--pinned .step-media{max-width:none;justify-self:stretch;margin-top:14px}
 /* WALLNUT-style image reveal per row, on the existing .reveal → .in-view hook */
}
@media(max-width:809px) and (prefers-reduced-motion:no-preference){
 .approach--pinned .step-media>*:first-child{clip-path:inset(100% 0 0 0);transition:clip-path .9s cubic-bezier(.2,.7,.2,1) .2s}
 .approach--pinned .step-media>img{transform:scale(1.08);transition:clip-path .9s cubic-bezier(.2,.7,.2,1) .2s,transform 1.2s cubic-bezier(.2,.7,.2,1) .2s}
 .approach--pinned .approach-step.in-view .step-media>*:first-child{clip-path:inset(0)}
 .approach--pinned .approach-step.in-view .step-media>img{transform:none}
}

/* ---------- Pinned stage (≥810px with motion) ---------- */
@media(min-width:810px) and (prefers-reduced-motion:no-preference){
 .approach--pinned{padding-bottom:0}
 .approach-scene{position:relative;height:320svh;margin-top:64px} /* 100vh stage + 4 steps x 55vh of scroll */
 .approach-stage{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:128px minmax(0,1fr);column-gap:28px;align-items:center;
  --media-h:min(100svh - 240px,620px);--travel:calc(var(--media-h) - var(--text-h));--text-h:230px}
 @media(max-width:1259px){.approach-stage{--text-h:270px}}
 .approach--pinned .approach-rail{display:block;position:relative;height:var(--media-h)}
 .rail-track{position:absolute;left:0;top:0;height:var(--travel);width:1px;background:var(--line)}
 .rail-fill{position:absolute;inset:0;background:var(--ink);transform-origin:top;transform:scaleY(var(--fill,0));transition:transform .15s linear}
 .rail-step{position:absolute;left:-12px;background:none;padding:10px 0 10px 12px;font-size:11px;letter-spacing:.08em;line-height:1;color:var(--muted);display:flex;align-items:center;gap:13px;transform:translateY(-50%);transition:color .2s}
 .rail-step:before{content:'';width:7px;height:7px;margin-left:-3px;background:var(--bg);border:1px solid var(--muted);border-radius:1px;transition:background .2s,border-color .2s}
 .rail-step:nth-of-type(1){top:0}.rail-step:nth-of-type(2){top:calc(var(--travel)/3)}.rail-step:nth-of-type(3){top:calc(var(--travel)*2/3)}.rail-step:nth-of-type(4){top:var(--travel)}
 .rail-step:hover,.rail-step.is-active{color:var(--ink)}
 .rail-step.is-active:before{background:var(--ink);border-color:var(--ink)}
 .rail-step .n{padding-left:5px}
 .rail-step .t{margin-left:-3px;text-transform:uppercase}

 .approach--pinned .approach-steps{margin:0;border:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:var(--media-h)}
 .approach--pinned .approach-step{grid-area:1/1;grid-template-columns:minmax(220px,.9fr) minmax(0,1.3fr);gap:28px;align-items:end;padding:0;border:0;height:100%;min-height:0;pointer-events:none}
 .approach--pinned .approach-step.reveal{opacity:1;transform:none;transition:none}
 .approach--pinned .approach-step.is-active{pointer-events:auto}
 .approach--pinned .step-number{display:none}
 /* the active step's label sits level with its own tick on the rail */
 .approach--pinned .step-text{align-self:start;margin-top:-12px;transform:translateY(calc(var(--travel) * var(--k) / 3))}
 .approach--pinned .step-label{display:none} /* the rail carries the step name */
 .approach--pinned .approach-step h3{font-size:clamp(24px,2.5vw,44px);line-height:1.23;letter-spacing:-.035em;max-width:420px;margin-top:-.2em;text-wrap:balance} /* first line level with its tick */
 .approach--pinned .approach-step p{font-size:16px;margin-top:22px;max-width:400px}
 .approach--pinned .step-media{height:100%;max-width:none;justify-self:stretch;justify-content:flex-start}
 /* identical 10:9 frame for every step; shrinks with the stage height so the caption always fits */
 .approach--pinned .step-media>img{flex:0 0 auto;width:min(100%,calc((var(--media-h) - 34px)*10/9));height:auto;aspect-ratio:10/9}
 /* crossfade, with the site's reveal values (45px, .8s / .9s cubic-bezier(.2,.7,.2,1)) */
 .approach--pinned .step-text>*{opacity:0;transform:translateY(45px);transition:opacity .8s,transform .9s cubic-bezier(.2,.7,.2,1)}
 .approach--pinned .step-text>h3{transition-delay:.06s}.approach--pinned .step-text>p{transition-delay:.12s}
 .approach--pinned .is-past .step-text>*{transform:translateY(-45px);transition-delay:0s}
 .approach--pinned .is-active .step-text>*{opacity:1;transform:none}
 /* visuals: crossfade + slight scale. The incoming visual fades in on top; the outgoing one waits, then fades. */
 .approach--pinned .approach-step.is-active{z-index:1}
 .approach--pinned .step-media{opacity:0;transition:opacity .5s .3s}
 .approach--pinned .step-media>img{transform:scale(1.035);transform-origin:50% 55%;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
 .approach--pinned .is-past .step-media>img{transform:scale(.985)}
 .approach--pinned .is-active .step-media{opacity:1;transition:opacity .7s cubic-bezier(.2,.7,.2,1) 0s}
 .approach--pinned .is-active .step-media>img{transform:none}
}

/* Mobile editorial pass: compact project captions and scroll-led imagery. */
@media(max-width:809px){
 .featured-project{padding-bottom:56px}
 .feature-link{gap:0}
 .feature-visual:has(.showcase){width:100%;overflow:hidden;border-radius:8px}
 .feature-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:20px 0 0}
 .feature-copy h3{grid-column:1/-1;grid-row:2;font-size:clamp(23px,6.2vw,34px);line-height:1.18;letter-spacing:-.035em;max-width:100%;margin:0}
 .feature-copy p{grid-column:1;grid-row:3;font-size:11px;margin:0;align-self:end}
 .feature-copy .placeholder-tag{grid-column:1;grid-row:4;justify-self:start;border:0;padding:0;margin:0;font-size:9px;letter-spacing:.05em;color:#aab4be}
 .feature-continue{grid-column:2;grid-row:3/5;align-self:center;margin:0;gap:9px;font-size:11px;min-height:48px}
 .feature-continue svg{width:40px;height:40px;padding:10px;border-radius:50%;background:#cdd5de;color:#14181d}
 .feature-link:active .feature-continue svg{transform:scale(.9)}
 .feature-link:focus-visible{outline:2px solid #cdd5de;outline-offset:6px}
 .services-scene{height:1650px}
 .passing-work{top:65svh}
 .passing-card{width:65%}
 .card-0{top:0}.card-1{top:180px}.card-2{top:360px;left:8%}.card-3{top:540px}.card-4{top:720px}
 .approach--pinned .approach-steps{border:0}
 .approach--pinned .approach-step{grid-template-columns:38px minmax(0,1fr);border:0;padding:16px 0 36px;gap:14px}
 .approach--pinned .approach-step .step-media{grid-column:1/-1;grid-row:1;margin:0;overflow:hidden;border-radius:8px}
 .approach--pinned .step-number{grid-column:1;grid-row:2;font-size:26px;line-height:1.2;letter-spacing:-.06em;color:#cdd5de;margin:0}
 .approach--pinned .step-text{grid-column:2;grid-row:2}
 .approach--pinned .step-label{display:none}
 .approach--pinned .approach-step p{margin-top:10px;line-height:1.6}
 .approach--pinned .step-media figcaption{padding:10px 0 0;font-size:10px}
 .about-story{line-height:1.65}
}
@media(max-width:809px) and (prefers-reduced-motion:no-preference){
 .feature-visual .showcase{transform:translate3d(0,var(--mobile-shift,0px),0) scale(1.035);transform-origin:center}
 .feature-continue svg{transition:transform .3s,background .3s}
 .featured-project.mobile-in-focus .feature-continue svg{transform:rotate(-35deg);background:#eef2f5}
 .feature-copy:before{content:'';grid-column:1/-1;grid-row:1;height:2px;background:#cdd5de;transform:scaleX(var(--mobile-progress,0));transform-origin:left;margin-bottom:6px}
}

/* Visible mobile scene choreography, driven by native scrolling. */
@media(max-width:809px) and (prefers-reduced-motion:no-preference){
 .feature-visual:has(.showcase){transform:scale(calc(.86 + var(--mobile-enter,1)*.14)) rotate(calc((1 - var(--mobile-enter,1))*3deg));transform-origin:50% 100%}
 .feature-visual .showcase{transform:none}
 .approach--pinned .approach-step.reveal{opacity:1;transform:none;transition:none}
 .approach--pinned .step-media{transform:translateX(calc((1 - var(--work-enter,1))*48px)) rotate(calc((1 - var(--work-enter,1))*4deg)) scale(calc(.88 + var(--work-enter,1)*.12));transform-origin:center;transition:none}
 .approach--pinned .approach-step:nth-child(even) .step-media{transform:translateX(calc((1 - var(--work-enter,1))*-48px)) rotate(calc((1 - var(--work-enter,1))*-4deg)) scale(calc(.88 + var(--work-enter,1)*.12))}
 .approach--pinned .step-media>img,.approach--pinned .approach-step.in-view .step-media>img{clip-path:none;transform:none;transition:none}
 .approach--pinned .step-text{transform:translateY(calc((1 - var(--work-enter,1))*24px))}
}
@media(max-width:809px){.approach--pinned{overflow-x:clip}}

/* About introduction: portrait and a direct personal introduction. */
.about-start.about-introduction{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:24px clamp(36px,6vw,100px);align-items:center}
.about-introduction>.eyebrow{grid-column:1/-1;padding:0;margin-bottom:4px}
.about-introduction .about-portrait{height:auto;aspect-ratio:4/5;max-height:650px;object-fit:cover;object-position:center;filter:none;border-radius:6px}
.about-introduction .about-story{gap:22px;justify-content:center;max-width:610px}
.about-introduction .about-story h2{grid-column:auto;font-size:clamp(38px,4.3vw,68px);font-weight:500;line-height:1.04;letter-spacing:-.055em;margin:0 0 10px;max-width:100%}
.about-introduction .about-story p{font-size:16px;line-height:1.65;max-width:46ch;margin:0}
.about-introduction .about-story .about-lead{font-size:clamp(18px,1.6vw,23px);line-height:1.45;color:var(--ink);letter-spacing:-.02em}
.about-introduction .about-work-link{display:inline-flex;align-items:center;gap:18px;min-height:48px;margin-top:5px;font-size:14px;border-bottom:1px solid var(--muted)}
.about-work-link svg{width:22px;height:22px;transition:transform .25s}
.about-work-link:hover svg{transform:translateX(4px)}
.about-work-link:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
@media(max-width:809px){
 .about-start.about-introduction{grid-template-columns:1fr;gap:24px}
 .about-introduction .about-portrait{width:100%;max-height:490px;object-position:center 25%}
 .about-introduction .about-story{gap:20px;max-width:100%;padding-top:6px}
 .about-introduction .about-story h2{font-size:clamp(38px,10.5vw,58px);margin-bottom:4px}
 .about-introduction .about-story .about-lead{font-size:19px}
 .about-introduction .about-story p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.about-work-link svg{transition:none}}

/* One services section: concrete reasons to get in touch. */
.service-needs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:36px}
.service-needs h3{font-size:17px;font-weight:500;line-height:1.35;margin:0 0 10px;letter-spacing:-.025em}
.service-needs p{font-size:14px;line-height:1.6;color:var(--muted);margin:0;max-width:28ch}
@media(max-width:809px){
 .service-needs{grid-template-columns:1fr;gap:18px;margin-top:26px}
 .service-needs h3{font-size:16px;margin-bottom:4px}
 .service-needs p{font-size:14px;line-height:1.45;max-width:38ch}
 .services-scene .service-sticky{gap:20px}
 .services-scene .read-reveal{font-size:clamp(28px,8vw,36px)}
}
@media(max-width:809px) and (max-height:650px) and (prefers-reduced-motion:no-preference){
 .services-scene .service-sticky{height:auto;min-height:100svh;padding-top:30px;padding-bottom:30px;position:relative}
}

/* Confirmed experience figures. */
.experience-row .experience-stat{display:flex;flex-direction:column;gap:10px}
.experience-stat strong{font-size:clamp(48px,5vw,76px);line-height:1;font-weight:500;letter-spacing:-.06em}
.experience-stat span{font-size:14px;color:var(--muted)}
@media(max-width:809px){
 .experience-row{display:grid;grid-template-columns:1fr 1fr;gap:26px 20px}
 .experience-row>.eyebrow{grid-column:1/-1}
 .experience-stat strong{font-size:54px}
}

/* Experience integrated into the introduction rather than a separate section. */
.hero .hero-stat{justify-content:center;gap:8px}
.hero-stat strong{font-size:clamp(30px,3vw,48px);line-height:1;font-weight:500;letter-spacing:-.05em}
.hero-stat span{font-size:11px;line-height:1.3}
.hero-mobile-stats{display:none}
.about-introduction .about-stats{display:flex;gap:42px;margin-top:4px}
.about-stats .experience-stat{display:flex;flex-direction:column;gap:8px}
.about-stats .experience-stat strong{font-size:42px}
.about-stats .experience-stat span{font-size:12px}
@media(max-width:809px){
 .hero-mobile-stats{display:flex;position:absolute;bottom:24px;left:0;right:0;gap:32px}
 .hero-mobile-stats>div{display:flex;align-items:center;gap:10px}
 .hero-mobile-stats strong{font-size:32px;font-weight:500;line-height:1;letter-spacing:-.05em}
 .hero-mobile-stats span{font-size:11px;line-height:1.3;max-width:80px;color:var(--muted)}
 .about-introduction .about-stats{gap:36px}
}

/* Compact hero figures; mobile gets the same boxed treatment. */
.hero .hero-stat strong{font-size:clamp(26px,2.5vw,40px)}
.hero .hero-stat span{font-size:10px;line-height:1.35}
@media(max-width:809px){
 .hero-mobile-stats{gap:12px;bottom:18px}
 .hero-mobile-stats>div{min-width:130px;min-height:64px;padding:10px 12px;gap:10px;background:linear-gradient(160deg,rgba(20,24,29,.9) 25%,rgba(70,84,101,.75));border:1px solid rgba(205,213,222,.14);color:var(--ink);border-radius:3px}
 .hero-mobile-stats strong{font-size:27px}
 .hero-mobile-stats span{font-size:10px;max-width:72px;color:var(--ink)}
}

/* Homepage previews float behind the contact invitation. */
.contact-homepages{position:absolute;inset:0;pointer-events:none;overflow:hidden;--flight-height:100vh}
.contact-homepages:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(20,24,29,.94) 0%,rgba(20,24,29,.75) 28%,rgba(20,24,29,.15) 66%,transparent 85%)}
.homepage-flight{position:absolute;top:100%;width:clamp(150px,20vw,310px);opacity:0;border:1px solid #cdd5de18;border-radius:5px;overflow:hidden;background:#20262e;box-shadow:0 12px 30px #0003}
.homepage-flight img{display:block;width:100%;height:auto}
.flight-0{left:3%;--tilt:-8deg}.flight-1{left:37%;width:17vw;--tilt:5deg}.flight-2{right:2%;--tilt:7deg}
.flight-3{left:17%;width:17vw;--tilt:6deg}.flight-4{right:18%;width:18vw;--tilt:-7deg}.flight-5{left:-4%;--tilt:4deg}
.flight-6{right:-3%;--tilt:-5deg}.flight-7{left:43%;width:15vw;--tilt:-6deg}.flight-8{left:27%;width:16vw;--tilt:5deg}
@media(prefers-reduced-motion:no-preference){
 .homepage-flight{animation:homepage-fly var(--flight-duration) linear infinite;animation-delay:var(--flight-delay);animation-play-state:paused}
 .homepages-playing .homepage-flight{animation-play-state:running}
 @keyframes homepage-fly{0%{transform:translate3d(0,0,0) rotate(var(--tilt));opacity:0}8%{opacity:.65}88%{opacity:.65}100%{transform:translate3d(22px,calc(-1 * var(--flight-height) - 420px),0) rotate(calc(var(--tilt) * -1));opacity:0}}
}
@media(max-width:809px){
 .contact-homepages{--flight-height:800px}
 .homepage-flight{width:40vw;max-width:220px}
 .homepage-flight:nth-child(n+5){display:none}
 .flight-0{left:-8%}.flight-1{left:65%}.flight-2{right:-8%}.flight-3{left:-3%}
 .contact-homepages:after{background:radial-gradient(ellipse at center,rgba(20,24,29,.97) 0%,rgba(20,24,29,.86) 36%,rgba(20,24,29,.3) 75%)}
}
@media(prefers-reduced-motion:reduce){
 .homepage-flight{display:none}
 .homepage-flight:first-child,.homepage-flight:nth-child(3){display:block;top:12%;opacity:.24;transform:rotate(-5deg)}
 .homepage-flight:nth-child(3){top:auto;bottom:10%;transform:rotate(6deg)}
}

/* Twenty unique homepage concepts in the archive. */
.archive-plane{grid-template-columns:repeat(5,320px);gap:42px 30px;padding:85px 50px}
.archive-item.archive-homepage{width:320px;height:auto;display:block;border-radius:5px;overflow:hidden;background:#1d232b}
.archive-homepage>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.archive-caption{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;font-size:11px;line-height:1.4}
.archive-caption strong{font-weight:500}.archive-caption>span{color:var(--muted)}
.concept-dialog{width:min(1200px,94vw);max-height:92svh;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);padding:18px;margin:auto;overflow:auto}
.concept-dialog::backdrop{background:#080b10e8}
.concept-dialog header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}
.concept-dialog h2{font-size:22px;font-weight:500;margin:0}
.concept-dialog p{font-size:12px;color:var(--muted);margin:6px 0 0}
.concept-dialog button{width:44px;height:44px;border:1px solid var(--line);background:transparent;font-size:26px;flex-shrink:0}
.concept-dialog>img{display:block;width:100%;height:auto}
@media(max-width:809px){
 .archive-plane{grid-template-columns:repeat(5,250px);gap:28px 20px;padding:85px 20px}
 .archive-item.archive-homepage{width:250px}
 .archive-caption{flex-direction:column;gap:3px;padding:10px 12px}
 .archive-label>span:last-child{max-width:200px}
 .archive-footer>span{font-size:10px;max-width:90px;text-align:center}
 .concept-dialog{padding:12px}.concept-dialog h2{font-size:19px}
}

/* Staggered contact previews: equal pace prevents cards overtaking each other. */
.contact-homepages{--flight-height:max(780px,100vh)}
.contact-homepages .homepage-flight{width:clamp(150px,19vw,290px);aspect-ratio:3/2;left:auto;right:auto;--tilt:0deg}
.homepage-flight img{width:100%;height:100%;object-fit:contain}
.contact-homepages .flight-0{left:3%;--tilt:-3deg}
.contact-homepages .flight-1{right:5%;--tilt:3deg}
.contact-homepages .flight-2{left:10%;--tilt:2deg}
.contact-homepages .flight-3{right:2%;--tilt:-2deg}
.contact-homepages .flight-4{left:4%;--tilt:-2deg}
.contact-homepages .flight-5{right:11%;--tilt:2deg}
.contact-homepages .flight-6{left:12%;--tilt:3deg}
.contact-homepages .flight-7{right:4%;--tilt:-3deg}
@keyframes homepage-fly{0%{transform:translate3d(0,0,0) rotate(var(--tilt));opacity:0}10%,84%{opacity:.55}100%{transform:translate3d(0,calc(-1 * var(--flight-height) - 280px),0) rotate(var(--tilt));opacity:0}}
@media(max-width:809px){
 .contact-homepages{--flight-height:max(620px,85svh)}
 .contact-homepages .homepage-flight{width:39vw;max-width:210px;animation-delay:calc(var(--flight-delay) * 2)}
 .contact-homepages .flight-0{left:3%}.contact-homepages .flight-1{right:2%;left:auto}
 .contact-homepages .flight-2{left:9%;right:auto}.contact-homepages .flight-3{right:8%;left:auto}
}

/* A small pixel world at the closing edge of the site. */
.site-footer{padding-bottom:0}
.footer-landscape{width:100vw;position:relative;left:50%;margin-left:-50vw;margin-top:48px;overflow:hidden;line-height:0;background:var(--bg)}
.pixel-world{display:block;width:100%;height:auto;min-height:260px}
.footer-landscape .pixel-cloud,.footer-landscape .pixel-reflection{animation-play-state:paused}
@media(prefers-reduced-motion:no-preference){
 .footer-landscape .pixel-cloud{animation:pixel-cloud-drift 18s ease-in-out infinite alternate;animation-play-state:paused}
 .footer-landscape .pixel-reflection{animation:pixel-water-light 7s ease-in-out infinite alternate;animation-play-state:paused}
 .footer-landscape.landscape-visible .pixel-cloud,.footer-landscape.landscape-visible .pixel-reflection{animation-play-state:running}
 @keyframes pixel-cloud-drift{to{transform:translateX(12px)}}
 @keyframes pixel-water-light{from{opacity:.45}to{opacity:.85}}
}
@media(max-width:809px){
 .site-footer{padding-bottom:0}
 .footer-landscape{height:280px;margin-top:24px}
 .pixel-world{height:280px;width:896px;max-width:none;position:relative;left:50%;transform:translateX(-50%)}
}

/* Illustrated ivory closing chapter. */
.site-footer{--bg:#eee6d5;--ink:#263f50;--muted:#586c78;--line:#c9c4b5;background:var(--bg);color:var(--ink);padding-top:72px;padding-bottom:0}
.site-footer:before{background:var(--bg)}
.site-footer .footer-links a:hover{color:#a25f43}
.site-footer .footer-tiles>div{background:transparent;border-color:#c4c0b3;color:#263f50}
.site-footer .footer-middle{margin-top:64px;margin-bottom:48px}
.site-footer .footer-landscape{height:clamp(360px,49vw,760px);margin-top:0;background:#eee6d5}
.footer-landscape:before{content:'';position:absolute;z-index:1;inset:0 0 auto;height:18%;background:linear-gradient(#eee6d5,transparent);pointer-events:none}
.footer-illustration{display:block;width:100%;height:100%;object-fit:cover;object-position:center 63%}
@media(max-width:809px){
.site-footer{padding-top:48px}
.site-footer .footer-top{gap:30px}
.site-footer .footer-middle{margin-top:40px;margin-bottom:32px}
.site-footer .footer-landscape{height:370px;margin-top:14px}
.footer-illustration{object-position:46% 65%}
}
.site-footer{box-shadow:0 0 0 100vmax #eee6d5;clip-path:inset(0 -100vmax)}

/* Compact landscape with a fine pixel finish. */
.site-footer .footer-landscape{height:clamp(240px,24vw,340px)}
.footer-illustration{object-position:center 63%;image-rendering:pixelated}
@media(max-width:809px){.site-footer .footer-landscape{height:220px}.footer-illustration{object-position:46% 62%}}

/* Anchor the desktop About portrait at the top when its height is capped. */
@media(min-width:810px){.about-introduction .about-portrait{object-position:center top}}

@media(min-width:810px){.about-introduction .about-portrait{width:90%;max-height:590px;justify-self:start;object-position:center top}}

/* Art-directed compositions, shown completely at their natural proportions. */
.site-footer .footer-landscape{height:auto;margin-top:12px}
.footer-landscape picture{display:block}
.footer-illustration{width:100%;height:auto;object-fit:contain;image-rendering:auto}
.footer-landscape:before{height:6%;opacity:.65}
.site-footer{background-color:#eee6d5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%239d8b6e' opacity='.055' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}

/* Blend painted paper gently into the footer above it. */
.footer-landscape:before{height:32%;opacity:1;background:linear-gradient(to bottom,#eee6d5 0%,rgba(238,230,213,.96) 12%,rgba(238,230,213,.72) 38%,rgba(238,230,213,.26) 72%,rgba(238,230,213,0) 100%)}

/* Optical wordmark balance and a truly circular intro hub. */
.logo-pixel{width:.62em;height:.62em;aspect-ratio:1;vertical-align:.035em;margin-left:.025em;margin-right:.235em}
.intro-o{width:.74em;height:.74em;aspect-ratio:1;margin:0 .085em;align-self:center;flex:0 0 .74em;border-radius:50%;transform-origin:center}

/* Social icons: inherit each section’s existing palette. */
.studio-socials{display:flex;align-items:center;gap:8px}
.studio-socials a{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:inherit;border:1px solid transparent;border-radius:50%;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}
.studio-socials svg{width:19px;height:19px;display:block}
.studio-socials a:hover{color:inherit;background:color-mix(in srgb,currentColor 7%,transparent);border-color:color-mix(in srgb,currentColor 18%,transparent);transform:translateY(-2px)}
.studio-socials a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.contact-center>.studio-socials{justify-content:center;margin-top:24px}
@media(prefers-reduced-motion:reduce){.studio-socials a{transition:none}.studio-socials a:hover{transform:none}}

/* Testimonials: quiet oversized typography behind the reviews. */
.testimonials-scene{isolation:isolate;padding:110px 0 100px;--testimonial-opacity:.29}
.testimonial-intro{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:90px}
.testimonial-intro p{font-size:16px;color:var(--muted);max-width:330px;margin:0}
.testimonial-backdrop{position:absolute;inset:220px 0 100px;pointer-events:none;z-index:0}
.testimonial-backdrop h2{position:sticky;top:28vh;margin:0;text-align:center;font-size:clamp(80px,15vw,250px);font-weight:500;letter-spacing:-.065em;line-height:.85;opacity:var(--testimonial-opacity);color:var(--ink)}
.testimonials-scene .quote-stack{position:relative;z-index:1;gap:18vh;padding:35px 24px 50px}
.testimonials-scene .quote-card{background:linear-gradient(145deg,#1c2229,#232c35);border:1px solid #3b444e;border-radius:3px}
.quote-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.quote-topline .quote-number{font-size:11px;letter-spacing:.13em;color:var(--muted)}
.quote-mark{font-family:Georgia,serif;font-size:48px;line-height:1;color:#87939e;opacity:.6}
@media(min-width:810px){.testimonials-scene .quote-card:nth-child(odd){margin-left:-16vw}.testimonials-scene .quote-card:nth-child(even){margin-left:16vw}}
@media(max-width:809px){.testimonial-intro{display:block;margin-bottom:50px}.testimonial-intro p{margin-top:16px;font-size:14px;max-width:250px}.testimonial-backdrop{inset:180px 0 80px}.testimonial-backdrop h2{font-size:20vw;top:32vh}}
@media(prefers-reduced-motion:reduce){.testimonial-backdrop h2{opacity:.25}}
@media(max-width:809px){.testimonials-scene .testimonial-intro{margin-bottom:150px}.testimonial-backdrop{top:190px}.testimonial-backdrop h2{top:18vh}}

/* Contact link and readable mobile testimonial heading. */
.contact-email{display:inline-flex;align-items:center;gap:12px;font-size:clamp(16px,3vw,24px);margin:14px 0;color:inherit;text-decoration:underline;text-underline-offset:5px}
.contact-email:hover{opacity:.8}
@media(max-width:809px){.testimonial-backdrop h2{opacity:1;color:#87929f}}
