/* Monochrome motion system. All color is controlled by these tokens. */
:root{--bg:#000;--paper:#fff;--muted:#a5a5a5;--line:#ffffff2b;--accent:#fff;--surface:#111;--inverse:#000;--gutter:clamp(22px,4.5vw,90px);--wash:#fff}
:root[data-theme=light]{--bg:#fdfbff;--paper:#302a3b;--muted:#736b7c;--line:#302a3b30;--accent:#d6bde4;--surface:#f1eaf7;--inverse:#fdfbff;--wash:#d6bde4;color-scheme:light}
body{background:var(--bg);color:var(--paper);max-width:none;overflow-x:clip;transition:background-color .6s,color .6s}body::after{opacity:.045;background-size:130px;z-index:70}.ambient-sky{display:none}html{scroll-padding-top:80px}a,button{touch-action:manipulation}.header{position:absolute;top:0;width:100%;z-index:35;min-height:90px;padding:25px var(--gutter)}.header-role{display:none}.monogram{font-size:38px}.monogram span{color:var(--paper)}.header nav{gap:30px;font-size:12px;align-items:center}.theme-switch{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:24px;background:none;padding:9px 13px;font-size:11px;line-height:1}.theme-dot{width:11px;height:11px;border-radius:50%;background:linear-gradient(90deg,var(--paper) 50%,transparent 50%);border:1px solid var(--paper)}.header nav .theme-switch:hover{background:var(--surface)}.reading-progress{position:fixed;top:0;left:0;height:1px;z-index:90;background:var(--paper);transform-origin:left;transform:scaleX(var(--page-progress,0));width:100%}.section-label,.section-marker,.chapter-label{color:var(--muted)}.chapter-label{display:flex;justify-content:space-between;gap:25px;padding-top:22px;border-top:1px solid var(--line);font-size:10px}.chapter-label>span:last-child{display:none}.chapter-space{padding-top:100px;padding-bottom:100px}.opening.custom-opening{height:max(780px,100svh);min-height:100svh;padding-top:132px;padding-bottom:38px;display:flex;flex-direction:column;position:relative;isolation:isolate;overflow:clip}.hero-top>p{font-size:20px;line-height:1.4;letter-spacing:-.035em}.hero-top em{font-size:1.25em}.custom-name{width:100%;height:min(48vw,65svh);margin-top:auto;margin-bottom:auto;position:relative;line-height:1}.name-art{width:100%;height:100%;display:block;overflow:visible}.name-row{transform-box:fill-box;transform-origin:center}.row-first{transform:translate3d(calc(var(--hero-progress,0)*-9vw),calc(var(--hero-progress,0)*-40px),0)}.row-last{translate:calc(var(--hero-progress,0)*10vw) calc(var(--hero-progress,0)*30px)}.glyph{transform-box:fill-box;transform-origin:center;will-change:translate,rotate}.a-bar{transform-box:fill-box;transform-origin:center;translate:0 calc(var(--hero-progress,0)*-30px)}.glyph-g{transform-box:fill-box;transform-origin:center}.g-aperture{transform-box:fill-box;transform-origin:center;rotate:calc(var(--hero-progress,0)*180deg)}.hero-foot{display:flex;align-items:center;gap:35px;position:relative}.hero-foot>.mono{font-size:9px;color:var(--muted)}.hero-foot-rule{height:1px;flex:1;background:var(--line)}.scroll-invite{display:flex;align-items:center;gap:20px;font-size:12px}.scroll-invite span{border:1px solid var(--line);border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-size:23px;transition:transform .5s}.scroll-invite:hover span{transform:translateY(5px)}.intro-curtain{display:none;position:fixed;inset:0;z-index:150;background:var(--bg);color:var(--paper);overflow:hidden;align-items:center;justify-content:center}.intro-pending .intro-curtain{display:flex;animation:curtain-exit .75s 1.65s cubic-bezier(.76,0,.24,1) forwards}.intro-symbol{width:clamp(170px,24vw,350px);height:clamp(170px,24vw,350px);position:relative;z-index:2}.intro-symbol svg{width:100%;height:100%;overflow:visible}.intro-shape{transform-origin:120px 120px;animation:opening-shape 1.8s cubic-bezier(.4,0,.2,1) both}.intro-letter{animation:opening-letter 1.4s .15s cubic-bezier(.2,.8,.2,1) both}.intro-line{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line);transform-origin:left;animation:opening-line 1.4s ease both}.intro-label{position:absolute;left:var(--gutter);bottom:40px;font-size:11px}.skip-intro{position:absolute;right:var(--gutter);bottom:30px;border:0;background:none;padding:10px 0;font-size:11px}.intro-pending .custom-name{animation:name-arrive 1s 1.85s cubic-bezier(.16,1,.3,1) both}
@keyframes opening-shape{0%{transform:rotate(-90deg) scale(.2);stroke-width:8;opacity:0}35%{opacity:1}70%{transform:rotate(90deg) scale(1);stroke-width:1}100%{transform:rotate(180deg) scale(4);opacity:0}}@keyframes opening-letter{0%{clip-path:inset(100% 0 0);transform:translateY(30px)}70%,100%{clip-path:inset(0);transform:translateY(0)}}@keyframes opening-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes curtain-exit{to{clip-path:inset(0 0 100% 0);visibility:hidden}}@keyframes name-arrive{from{clip-path:inset(100% 0 0);transform:translateY(55px)}to{clip-path:inset(0);transform:translateY(0)}}
.mind-chapter{position:relative;padding-top:55px;padding-bottom:80px}.mind-sticky{padding:90px 0;min-height:600px;display:flex;flex-direction:column;justify-content:center}.reading-statement{font:400 clamp(45px,6.7vw,112px)/1.12 Arial,Helvetica,sans-serif;letter-spacing:-.055em;max-width:1500px}.reading-statement em{font-size:1.12em;letter-spacing:-.03em}.reading-word{display:inline-block;vertical-align:baseline;will-change:opacity,filter,transform}.mind-bottom{display:flex;justify-content:space-between;gap:60px;margin-top:65px}.mind-bottom p{font-size:14px;line-height:1.8;max-width:340px;color:var(--muted)}.motion-ready:not(.motion-paused) .mind-chapter{height:190svh}.motion-ready:not(.motion-paused) .mind-sticky{height:100svh;position:sticky;top:0;padding:70px 0}.selected-heading{display:flex;justify-content:space-between;align-items:center;gap:60px;margin:60px 0 40px}.selected-heading h2{font:400 clamp(90px,13vw,210px)/.82 Arial,sans-serif;letter-spacing:-.07em}.selected-heading h2 em{display:inline-block;font:italic 1.2em/.92 Editorial,serif;letter-spacing:-.04em;margin-left:.55em}.selected-heading>p{font-size:13px;line-height:1.8;color:var(--muted);max-width:260px}.selected-heading .text-link{margin-top:20px;color:var(--paper)}.work-track{display:grid;grid-template-columns:1fr 1fr;gap:70px 40px;padding:0 var(--gutter)}.work-card{min-width:0;transform:perspective(1400px) rotateY(var(--barrel-angle,0deg)) translateZ(var(--barrel-depth,0px));transform-origin:center;will-change:transform}.work-card-top{display:flex;justify-content:space-between;gap:20px;font:10px Arial;color:var(--muted);margin-bottom:14px}.work-card-top>span:last-child{text-align:right}.work-image{display:block;position:relative;overflow:clip;border:1px solid var(--line);border-radius:var(--barrel-radius,4px);transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));will-change:transform}.work-image::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,50%),#ffffff14,transparent 65%);opacity:0;transition:opacity .5s;pointer-events:none}.work-image:hover::after{opacity:1}.work-image .project-visual{aspect-ratio:1.8;transform:none}.project-visual{background:#101010!important;color:#fff;filter:grayscale(1);--project-color:#101010!important}.project-visual::after{box-shadow:none}.visual-caption{color:#a0a0a0;font-size:9px}.visual-cta{display:none}.case-badge{position:absolute;right:20px;bottom:20px;background:#fff;color:#000;font-size:11px;border-radius:25px;padding:10px 16px;transform:translateY(70px);transition:transform .4s;z-index:5}.work-image:hover .case-badge,.work-image:focus-visible .case-badge{transform:none}.voice-word,.voice-bottom em,.voice-dot,.proof-seal div,.proof-tagline em,.stars-word,.route-word,.code-art pre{color:#fff}.wave i,.wave i:nth-child(3n),.wave i:nth-child(5n){background:#fff;box-shadow:none;animation:voice-breathe 2s var(--delay) ease-in-out infinite alternate;animation-play-state:paused}.wave i:nth-child(3n){opacity:.6}.project-visual[data-visible=true] .wave i{animation-play-state:running}.proof-seal{border-color:#ffffff70;box-shadow:0 0 0 15px #ffffff05,0 0 0 35px #ffffff03}.redacted{background:#6c6c6c}.proof-private>span,.proof-public>span,.proof-private small,.proof-public small,.route-word small,.route-time>span,.stars-word>span,.code-art>span{color:#a0a0a0}.route-map g{stroke:#999;stroke-opacity:.2}.route-line{stroke:#fff;stroke-dasharray:1100;stroke-dashoffset:calc((1 - var(--art-progress,1))*1000);transition:stroke-dashoffset 1.5s}.route-map circle{fill:#fff;stroke:#fff}.visual-stars .star-chart{opacity:.55;mix-blend-mode:screen}.visual-stars::before{border-color:#fff2}.work-card-copy{display:flex;justify-content:space-between;gap:30px;padding-top:22px}.work-card-copy h3{font:400 28px/1.2 Arial;letter-spacing:-.04em;white-space:nowrap}.work-card-copy p{font-size:12px;line-height:1.8;color:var(--muted);max-width:310px}.work-meter{display:none}.work-pin{perspective:1600px}.work-track{transform-style:preserve-3d}.award-hero{padding-top:60px}.award-stamp{display:inline-block;font-size:10px;color:var(--muted);border-left:1px solid var(--line);padding-left:18px;margin-bottom:35px}.award-hero h2,.profile-heading h2{font:400 clamp(60px,7.5vw,130px)/1 Arial;letter-spacing:-.065em}.award-hero h2 em,.profile-heading h2 em{font-size:1.17em;letter-spacing:-.035em}.award-feature{display:grid;grid-template-columns:1fr 1.4fr;gap:90px;align-items:center;margin:75px 0 85px}.award-year{font:600 clamp(120px,17vw,260px)/.75 Display,sans-serif;letter-spacing:-.02em;position:relative}.award-year>span{display:block;font:italic .55em/1 Editorial,serif;text-align:right;margin-right:15%}.award-feature h3{font-size:32px;letter-spacing:-.04em;margin-bottom:18px}.award-feature p{font-size:16px;line-height:1.8}.award-feature .award-detail{font-size:13px;color:var(--muted);margin:20px 0}.award-feature .mono{display:block;color:var(--muted);font-size:9px;margin-top:25px}.award-list>div{display:grid;grid-template-columns:1fr 2fr 1.5fr;gap:30px;padding:30px 0;border-top:1px solid var(--line);align-items:center;position:relative}.award-list>div::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:calc(var(--line-progress,0)*100%);background:var(--paper);opacity:.25}.award-list .mono{font-size:9px;color:var(--muted)}.award-list h3{font-size:clamp(22px,2.2vw,35px);line-height:1.15;letter-spacing:-.035em}.award-list p{font-size:12px;line-height:1.8;color:var(--muted)}.profile-heading{display:flex;justify-content:space-between;align-items:center;gap:60px;margin:65px 0 90px}.profile-heading h2{font-size:clamp(65px,9vw,145px)}.profile-age{font:italic clamp(120px,17vw,250px)/.75 Editorial,serif;position:relative;padding-right:30px}.profile-age>span{font:9px/1.5 'Courier New',monospace;position:absolute;right:0;bottom:-40px;white-space:nowrap;color:var(--muted)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:14%}.profile-intro>.mono{display:block;font-size:9px;color:var(--muted);margin-bottom:25px}.profile-intro>p:first-of-type{font-size:clamp(24px,2.5vw,40px);line-height:1.4;letter-spacing:-.035em}.profile-intro>p+p{font-size:15px;line-height:1.8;color:var(--muted);margin-top:25px}.profile-facts{display:flex;gap:50px;border-top:1px solid var(--line);padding-top:20px;margin-top:40px}.profile-facts strong{display:block;font:italic 65px/1.2 Editorial,serif;font-weight:400}.profile-facts span{font-size:11px;color:var(--muted);display:block;max-width:130px}.timeline>div{position:relative;padding:0 0 30px 25px;border-left:1px solid var(--line)}.timeline>div::before{content:'';position:absolute;width:5px;height:5px;background:var(--paper);border-radius:50%;left:-3px;top:5px}.timeline .mono{font-size:9px;color:var(--muted)}.timeline h3{font-size:23px;letter-spacing:-.035em;margin:10px 0}.timeline p{font-size:13px;line-height:1.8;color:var(--muted)}.offscreen{margin-top:90px;padding-top:30px;border-top:1px solid var(--line)}.offscreen>.mono{font-size:10px;color:var(--muted)}.interest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:65px;margin-top:35px}.interest-symbol,.drum-pad{font-size:90px;line-height:1.3;height:125px;display:block}.ink{font-family:Editorial,serif;font-style:italic}.drum-pad{border:1px solid var(--line);border-radius:50%;width:110px;height:110px;line-height:1;background:var(--surface);font-family:Editorial,serif;font-style:italic;transform:rotate(-25deg);transition:transform .2s,background .2s;margin-bottom:15px}.drum-pad.hit{transform:rotate(-10deg) scale(.9);background:var(--accent);color:var(--bg)}.interest-grid h3{font-size:22px;letter-spacing:-.035em;margin:12px 0}.interest-grid p,.club-note{font-size:13px;line-height:1.8;color:var(--muted)}.club-note{margin-top:45px;max-width:650px}.tap-hint{font-size:10px;display:block;margin-top:5px}.capabilities{position:relative;overflow:clip}.capabilities-title>.mono{display:block;text-align:center;color:var(--muted);font-size:9px}.capabilities-title h2{font:400 clamp(70px,10vw,170px)/.95 Arial;letter-spacing:-.065em;text-align:center;margin:45px 0 75px}.text-mask{display:block;overflow:clip;padding-bottom:.13em;margin-bottom:-.13em}.text-mask>span,.text-mask>em{display:block;transform:translateY(var(--mask-y,0%));filter:blur(var(--mask-blur,0px));will-change:transform,filter}.text-mask em{font-size:1.14em;letter-spacing:-.035em}.capability-list{margin-left:22%;max-width:1000px}.capability-list>div{display:grid;grid-template-columns:.6fr 1.2fr 1.2fr;gap:30px;padding:30px 0;border-top:1px solid var(--line);align-items:center}.capability-list>div>span{font:9px/1.6 'Courier New',monospace;color:var(--muted)}.capability-list h3{font-size:26px;letter-spacing:-.035em;line-height:1.2}.capability-list p{font-size:12px;line-height:1.8;color:var(--muted)}.project-index{border-top:1px solid var(--line)}.index-heading h2{font-size:clamp(45px,5.5vw,85px);line-height:1.05;max-width:850px}.index-heading .section-label{margin-bottom:25px}.index-row:hover{color:var(--paper);background:var(--surface)}.index-after{display:flex;justify-content:space-between;gap:25px;margin-top:35px;font-size:12px;color:var(--muted)}.resume-section{display:grid;grid-template-columns:1fr .7fr;gap:13%;align-items:center;min-height:100svh;perspective:1600px;padding-top:120px;padding-bottom:120px;border-top:1px solid var(--line);overflow:clip}.resume-copy>.mono{font-size:9px;color:var(--muted);display:block}.resume-copy h2{font:400 clamp(70px,9vw,150px)/.94 Arial;letter-spacing:-.06em;margin:35px 0}.resume-copy h2 em{font-size:1.2em}.resume-copy>p{font-size:16px;line-height:1.8;max-width:350px;color:var(--muted)}.resume-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin:30px 0 50px}.solid-link{background:var(--paper);color:var(--bg);display:inline-block;padding:16px 23px;border-radius:30px;font-size:12px;transition:transform .3s}.solid-link:hover{transform:translateY(-3px)}.resume-paper{position:relative;align-self:center;transform-style:preserve-3d;transform:perspective(1500px) rotateX(calc(5deg - var(--paper-scroll,0)*8deg + var(--tilt-x,0deg))) rotateY(calc(-17deg + var(--paper-scroll,0)*28deg + var(--tilt-y,0deg)));box-shadow:2px 3px 0 #bbb,4px 6px 0 #ddd,6px 9px 0 #999,25px 40px 70px #0007;background:white;will-change:transform}.resume-paper img{display:block;width:100%;height:auto;aspect-ratio:596/843;object-fit:contain}.resume-paper>span{position:absolute;right:-18px;bottom:30px;padding:14px 18px;background:#000;color:#fff;border:1px solid #fff5;font:9px 'Courier New',monospace;transform:translateZ(25px)}.paper-edge{position:absolute;inset:0;border:1px solid #ffffff80;pointer-events:none}.resume-page{padding-top:140px;padding-bottom:100px}.resume-page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin:50px 0}.resume-page h1{font:400 clamp(65px,8vw,130px)/.95 Arial;letter-spacing:-.06em;margin-top:25px}.resume-page h1 em{font-size:1.15em}.resume-page-heading p{font-size:14px;line-height:1.8;color:var(--muted)}.resume-page-heading .solid-link{margin:25px 0 15px}.resume-page-heading .text-link{display:block}.resume-document{max-width:1100px;margin:auto;background:var(--surface);padding:12px;border:1px solid var(--line)}.resume-document object{width:100%;height:1000px;display:block}.resume-document img{width:100%;height:auto}.mobile-resume{display:none}.contact{background:var(--bg);padding-top:70px;padding-bottom:40px;position:relative;overflow:clip}.contact-title{font-size:clamp(90px,17vw,290px);clip-path:inset(var(--contact-mask,0%) 0 0 0);transform:translateY(calc(var(--footer-progress,0)*-25px));color:var(--paper)}.contact-title em,.contact-title>span{color:var(--paper)}.contact-details{margin-bottom:75px}.footer-bottom>div{gap:25px;align-items:center;flex-wrap:wrap}.footer-bottom button{font-size:10px;border:0;background:none;color:var(--muted);padding:5px 0}.case-study{padding-top:100px}.case-narrative>p,.project-note p{color:var(--muted)}.project-note{background:var(--surface)}.next-project:hover{background:var(--surface)}.not-found{padding-top:150px}.cinematic-element{transform:translate3d(0,var(--enter-y,0px),0);opacity:var(--enter-opacity,1);will-change:transform,opacity}.page-shape{position:relative;padding:90px var(--gutter);overflow:clip;min-height:400px;background:var(--paper);color:var(--bg)}.page-shape h2{font:400 clamp(45px,6vw,100px)/1.06 Arial;letter-spacing:-.05em;max-width:800px;position:relative;z-index:2}.page-shape h2 em{font-size:1.2em}.shape-track{position:relative;margin-top:50px;height:160px;border-bottom:1px solid currentColor;opacity:.9}.rolling-shape{position:absolute;width:150px;height:150px;bottom:0;left:calc(var(--shape-progress,0)*80%);transform:rotate(calc(var(--shape-progress,0)*540deg));border:1px solid currentColor;background:var(--bg);color:var(--paper);display:grid;place-items:center;border-radius:calc(var(--shape-progress,0)*50%);will-change:transform,left,border-radius}.rolling-shape span{font:italic 40px Editorial,serif;transform:rotate(calc(var(--shape-progress,0)*-540deg))}.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}.motion-paused .cinematic-element,.motion-paused .reading-word{opacity:1!important;transform:none!important;filter:none!important}.motion-paused .work-track,.motion-paused .work-card,.motion-paused .work-image,.motion-paused .contact-title{transform:none!important}.motion-paused .text-mask>span,.motion-paused .text-mask>em{transform:none!important;filter:none!important}.motion-paused .work-scroll{height:auto!important}.motion-paused .resume-paper{transform:perspective(1600px) rotateY(-5deg)!important}
[data-theme=light] .project-visual{background:#f1eaf7!important;color:#302a3b;filter:none;--project-color:#f1eaf7!important}[data-theme=light] .voice-word,[data-theme=light] .voice-bottom em,[data-theme=light] .voice-dot,[data-theme=light] .proof-word,[data-theme=light] .proof-seal div,[data-theme=light] .proof-public strong,[data-theme=light] .proof-tagline em,[data-theme=light] .route-word,[data-theme=light] .route-time,[data-theme=light] .stars-word,[data-theme=light] .code-art pre{color:#51415e}[data-theme=light] .wave i,[data-theme=light] .wave i:nth-child(3n),[data-theme=light] .wave i:nth-child(5n){background:#98a4d8}[data-theme=light] .visual-caption,[data-theme=light] .proof-private>span,[data-theme=light] .proof-public>span,[data-theme=light] .proof-private small,[data-theme=light] .proof-public small,[data-theme=light] .route-word small,[data-theme=light] .route-time>span,[data-theme=light] .stars-word>span,[data-theme=light] .code-art>span{color:#756582}[data-theme=light] .proof-seal{border-color:#98a4d870}[data-theme=light] .redacted{background:#ce90c8}[data-theme=light] .route-line{stroke:#98a4d8}[data-theme=light] .route-map circle{fill:#98a4d8;stroke:#98a4d8}[data-theme=light] .star-chart{filter:invert(1);mix-blend-mode:multiply;opacity:.55}[data-theme=light] .page-shape{background:#d6bde4;color:#302a3b}[data-theme=light] .rolling-shape{background:#302a3b;color:#d6bde4}[data-theme=light] .solid-link{background:#d6bde4;color:#302a3b}
@keyframes voice-breathe{from{transform:scaleY(.6)}to{transform:scaleY(1.05)}}
@media(min-width:901px){.motion-ready:not(.motion-paused) .work-scroll{height:var(--work-height,340svh)}.motion-ready:not(.motion-paused) .work-pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.motion-ready:not(.motion-paused) .work-track{display:flex;gap:6vw;width:max-content;padding:0 12vw;transform:translate3d(var(--work-x,0px),0,0);will-change:transform}.motion-ready:not(.motion-paused) .work-card{width:min(65vw,980px);flex-shrink:0}.motion-ready:not(.motion-paused) .work-card .project-visual{max-height:58svh;aspect-ratio:1.85}.motion-ready:not(.motion-paused) .work-meter{display:flex;justify-content:space-between;margin:35px var(--gutter) 0;color:var(--muted);font-size:9px}}
@media(max-width:1100px){.work-card-copy{display:block}.work-card-copy p{margin-top:10px}.profile-grid{gap:8%}.award-feature{gap:50px}.interest-grid{gap:35px}.capability-list{margin-left:5%}.resume-section{gap:8%}.custom-name{height:min(48vw,60svh)}}
@media(max-width:900px){.work-track{display:flex;flex-direction:column;gap:65px}.work-card{width:100%;transform:perspective(1000px) rotateX(var(--barrel-angle,0deg))}.work-card:nth-child(even){width:92%;margin-left:8%}.case-badge{transform:none}.profile-grid{grid-template-columns:1fr;gap:55px}.profile-intro{max-width:650px}.timeline{display:grid;grid-template-columns:1fr 1fr;gap:20px}.resume-section{grid-template-columns:1fr .8fr}.resume-copy h2{font-size:90px}.award-list>div{grid-template-columns:.8fr 1.5fr 1.3fr}.selected-heading{gap:35px}}
@media(max-width:650px){html{scroll-padding-top:24px}.header{padding:21px var(--gutter);min-height:75px}.monogram{font-size:33px}.header nav{gap:17px;font-size:11px}.header nav a:last-of-type{display:none}.theme-switch{font-size:10px;padding:8px 10px;gap:6px}.theme-dot{width:10px;height:10px}.opening.custom-opening{padding-top:120px;height:max(650px,100svh);padding-bottom:28px}.hero-top>p{font-size:23px;line-height:1.35}.custom-name{height:51vw;width:calc(100% + 8px);margin-left:-4px;margin-top:auto;margin-bottom:auto;scale:1.02}.hero-foot{gap:16px}.hero-foot>.mono{display:none}.scroll-invite{font-size:11px;gap:13px}.scroll-invite span{width:33px;height:33px;font-size:21px}.hero-foot-rule{max-width:40%;margin-left:auto}.intro-label{bottom:30px;font-size:9px}.skip-intro{bottom:20px;font-size:10px}.chapter-space{padding-top:65px;padding-bottom:65px}.chapter-label{font-size:9px}.mind-chapter{padding-top:35px;padding-bottom:40px}.reading-statement{font-size:10.2vw;line-height:1.16;letter-spacing:-.055em}.mind-sticky{padding:55px 0;min-height:0}.mind-bottom{margin-top:40px;display:block}.mind-bottom p{font-size:12px;max-width:280px}.mind-bottom p+p{display:none}.motion-ready:not(.motion-paused) .mind-chapter{height:185svh}.motion-ready:not(.motion-paused) .mind-sticky{height:92svh;min-height:520px;padding-top:25px}.selected-heading{margin:40px 0;gap:25px;align-items:flex-end}.selected-heading h2{font-size:20vw}.selected-heading h2 em{margin-left:.1em}.selected-heading>p{font-size:10px;max-width:125px;margin:0}.selected-heading .text-link{font-size:10px;margin-top:12px}.work-track{gap:55px}.work-card:nth-child(even){width:100%;margin:0}.work-card-top{font-size:8px;gap:15px}.work-card-top>span:first-child{max-width:65%}.work-image{transform:none!important}.work-image .project-visual{aspect-ratio:1.12}.work-card-copy{display:block;padding-top:17px}.work-card-copy h3{font-size:25px}.work-card-copy p{font-size:12px;line-height:1.7;max-width:300px}.case-badge{font-size:9px;right:12px;bottom:12px;padding:8px 12px}.visual-caption{font-size:8px}.proof-tagline{bottom:13%}.voice-bottom{bottom:10%}.voice-bottom>span:first-child{font-size:20px}.stars-word{bottom:17%}.award-hero{padding-top:40px}.award-stamp{font-size:9px;margin-bottom:25px}.award-hero h2,.profile-heading h2{font-size:12.5vw;line-height:1.06}.award-feature{grid-template-columns:1fr;gap:35px;margin:50px 0}.award-year{display:flex;align-items:center;gap:25px;font-size:35vw}.award-year>span{font-size:.55em;margin:0}.award-feature h3{font-size:26px}.award-feature p{font-size:14px}.award-feature .award-detail{font-size:12px}.award-feature .mono{font-size:8px}.award-list>div{grid-template-columns:1fr;gap:10px;padding:25px 0}.award-list .mono{font-size:8px}.award-list h3{font-size:25px}.award-list p{font-size:12px}.profile-heading{margin:45px 0 65px;gap:20px}.profile-age{font-size:23vw;padding-right:3px}.profile-age>span{font-size:7px;bottom:-30px}.profile-intro>p:first-of-type{font-size:26px}.profile-intro>p+p{font-size:14px}.profile-facts{gap:40px;margin-top:30px}.profile-facts strong{font-size:55px}.timeline{grid-template-columns:1fr;gap:0}.timeline h3{font-size:21px}.timeline p{font-size:13px}.offscreen{margin-top:50px}.offscreen>.mono{font-size:9px}.interest-grid{grid-template-columns:1fr;gap:35px;margin-top:25px}.interest-grid>div{position:relative;padding-left:85px;min-height:95px}.interest-symbol,.drum-pad{position:absolute;left:0;top:0;font-size:65px;width:65px;height:85px}.drum-pad{width:62px;height:62px;font-size:54px;top:12px}.interest-grid h3{font-size:21px}.interest-grid p{font-size:12px}.club-note{font-size:12px;margin-top:35px}.capabilities-title>.mono{font-size:8px}.capabilities-title h2{font-size:15vw;margin:30px 0 45px}.capability-list{margin-left:0}.capability-list>div{grid-template-columns:1fr;gap:13px;padding:25px 0}.capability-list h3{font-size:27px}.capability-list>div>span{font-size:8px}.index-heading{display:block}.index-heading h2{font-size:42px;max-width:none}.index-heading .section-label{font-size:8px}.index-count{display:block;margin-top:25px;font-size:9px}.index-after{flex-direction:column;font-size:12px}.resume-section{grid-template-columns:1fr;min-height:0;gap:50px;padding-top:65px;padding-bottom:75px}.resume-copy h2{font-size:21vw;margin:28px 0}.resume-copy>p{font-size:14px;max-width:300px}.resume-actions{margin:25px 0 30px;gap:20px}.solid-link{font-size:11px;padding:15px 20px}.resume-paper{width:min(85%,350px);margin:auto;transform:perspective(1600px) rotateY(calc(-4deg + var(--paper-scroll,0)*7deg)) rotateZ(-1deg)!important;box-shadow:1px 2px 0 #bbb,3px 4px 0 #ddd,5px 6px 0 #999,12px 25px 40px #0004}.resume-paper img{width:100%;height:auto;aspect-ratio:596/843}.resume-paper>span{font-size:8px;right:-8px;bottom:20px;padding:11px 13px;transform:translateZ(8px)}.contact{padding-top:50px;padding-bottom:30px}.contact .section-marker{font-size:8px}.contact-title{font-size:22vw}.contact-details{margin-bottom:55px}.footer-bottom>div{margin-left:0;gap:20px}.case-study{padding-top:80px}.resume-page{padding-top:110px;padding-bottom:60px}.resume-page-heading{display:block;margin:35px 0}.resume-page h1{font-size:20vw;margin:20px 0 30px}.resume-page-heading .mono{font-size:9px}.resume-page-heading p{font-size:13px}.resume-document{padding:6px}.resume-document object{display:none}.mobile-resume{display:block}.not-found{padding-top:130px}.page-shape{padding:60px var(--gutter);min-height:360px}.page-shape h2{font-size:11vw}.shape-track{height:100px;margin-top:40px}.rolling-shape{width:90px;height:90px;left:calc(var(--shape-progress,0)*70%)}.rolling-shape span{font-size:28px}}
@media(prefers-reduced-motion:reduce){.intro-curtain{display:none!important}.reading-word,.cinematic-element{opacity:1!important;filter:none!important;transform:none!important}.text-mask>span,.text-mask>em{filter:none!important;transform:none!important}.row-first,.row-last{translate:none!important;transform:none!important}.work-card,.work-image,.work-track,.contact-title{transform:none!important}.motion-ready .mind-chapter{height:auto!important}.motion-ready .mind-sticky{position:static!important;height:auto!important;min-height:0!important}.work-scroll{height:auto!important}.work-pin{position:static!important;height:auto!important}.work-track{display:grid!important;width:auto!important;grid-template-columns:1fr!important}.work-card{width:100%!important}.work-meter{display:none!important}.resume-paper{transform:none!important}.contact-title{clip-path:none}.a-bar,.g-aperture{translate:none;rotate:none}}

/* Opening and flexible project sheets. */
.type-opening{height:max(820px,100svh);min-height:100svh;padding-top:135px;padding-bottom:38px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:clip}.elastic-name{font-weight:400;line-height:.8;letter-spacing:-.08em;position:relative;width:100%;margin:35px 0 40px;z-index:2}.name-mask{display:block;overflow:clip;padding:20px 18px 50px;margin:-20px -18px -50px;transform:translate3d(var(--name-shift,0px),0,0)}.elastic-word{display:block;width:max-content;white-space:nowrap;line-height:.86}.first-word{font:400 clamp(140px,20.6vw,420px)/.86 Arial,Helvetica,sans-serif;letter-spacing:-.09em}.last-mask{margin-top:0;margin-left:35%;padding-right:45px;padding-bottom:60px}.last-word{font:italic clamp(180px,29vw,590px)/.84 Editorial,Georgia,serif;letter-spacing:-.055em;color:var(--paper)}.elastic-letter{display:inline-block;transform-origin:50% 75%;will-change:transform}.type-opening .hero-foot{margin-top:auto}.intro-pending .paper-intro{display:block;animation:none;background:transparent;perspective:1400px;pointer-events:none}.paper-half{position:absolute;left:0;width:100%;height:50.2%;background:#f5f5f0;color:#111;overflow:hidden;backface-visibility:hidden}.paper-upper{top:0;transform-origin:50% 0%;animation:paper-open-top .85s 1.65s cubic-bezier(.65,0,.2,1) forwards}.paper-lower{bottom:0;transform-origin:50% 100%;animation:paper-open-bottom .85s 1.65s cubic-bezier(.65,0,.2,1) forwards}.paper-half::after{content:'';position:absolute;inset:0;background-image:url('/assets/grain.svg');opacity:.09;pointer-events:none}.paper-name{position:absolute;left:6%;right:6%;top:22%;font:400 clamp(60px,13vw,220px)/1 Arial;letter-spacing:-.075em;white-space:nowrap;animation:paper-type-in .6s cubic-bezier(.2,.8,.2,1) both}.paper-name em{font-size:1.15em;letter-spacing:-.04em}.cut-track{position:absolute;left:0;width:100%;height:50px;top:calc(50% - 25px);color:#111;animation:cut-away .15s 1.65s forwards}.cut-dashes{position:absolute;top:24px;left:0;right:0;height:1px;background:repeating-linear-gradient(90deg,#222 0 7px,transparent 7px 14px);opacity:.35}.cut-complete{position:absolute;left:0;top:24px;height:1px;background:#111;width:100%;transform:scaleX(0);transform-origin:left;animation:paper-cut 1.35s .2s cubic-bezier(.4,0,.2,1) forwards}.paper-scissors{position:absolute;top:2px;left:-50px;width:60px;height:45px;animation:scissor-travel 1.35s .2s cubic-bezier(.4,0,.2,1) forwards}.scissor-blade{transform-origin:29px 23px}.blade-one{animation:snip .22s linear infinite alternate}.blade-two{animation:snip .22s linear infinite alternate-reverse}.paper-note{position:absolute;bottom:35px;left:var(--gutter);font:italic 26px Editorial,serif;color:#111;animation:cut-away .15s 1.65s forwards}.paper-intro .skip-intro{color:#111;pointer-events:auto;animation:cut-away .15s 1.65s forwards}.intro-pending .elastic-name{animation:paper-page-reveal 1s 1.85s cubic-bezier(.2,.8,.2,1) both}.intro-curtain:not(.paper-intro){display:none!important}
@keyframes paper-cut{to{transform:scaleX(1)}}@keyframes scissor-travel{to{left:calc(100% + 15px)}}@keyframes snip{from{rotate:-6deg}to{rotate:6deg}}@keyframes cut-away{to{opacity:0;visibility:hidden}}@keyframes paper-open-top{to{transform:translateY(-105%) rotateX(12deg)}}@keyframes paper-open-bottom{to{transform:translateY(105%) rotateX(-12deg)}}@keyframes paper-type-in{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes paper-page-reveal{from{opacity:.4;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.work-image.flexible-sheet{overflow:visible;border:0;border-radius:0;transform:none!important;perspective:1600px;isolation:isolate}.flexible-sheet::after{display:none}.sheet-source{visibility:hidden;pointer-events:none}.sheet-surface{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none;perspective:1800px}.sheet-slice{position:absolute;top:0;height:100%;overflow:hidden;transform-origin:50% 50%;backface-visibility:hidden;will-change:transform}.sheet-art{position:absolute;left:0;top:0;height:100%;overflow:hidden;pointer-events:none}.sheet-art>.project-visual{width:100%;height:100%;max-height:none!important;aspect-ratio:auto!important;overflow:hidden}.sheet-neutral{filter:grayscale(1)}.sheet-color{clip-path:circle(var(--ink-radius,0px) at var(--ink-x,50%) var(--ink-y,50%));will-change:clip-path}.sheet-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0000,#0004);opacity:var(--shade,0);pointer-events:none}.flexible-sheet .case-badge{right:22px;bottom:22px;transform:none;opacity:0;transition:opacity .25s;background:var(--paper);color:var(--bg);z-index:20}.flexible-sheet:hover .case-badge,.flexible-sheet:focus-visible .case-badge{opacity:1}.work-image .sheet-color .project-visual{filter:none!important;color:#fff;--project-color:var(--card-color)!important;background:var(--card-color)!important}.work-image[data-project=pineyard]{--card-color:#1e53e5}.work-image[data-project=starforge]{--card-color:#40308e}.work-image[data-project=credent]{--card-color:#101422}.work-image[data-project=safeher]{--card-color:#eee7d8}.work-image[data-project=fusion]{--card-color:#ed631c}.work-image .sheet-color .visual-voice{background:radial-gradient(ellipse at 70% 50%,#447cff,#153bb1)!important}.work-image .sheet-color .visual-stars{background:radial-gradient(ellipse at 70% 45%,#6a52c4,#24175d)!important}.work-image .sheet-color .visual-proof{background:radial-gradient(ellipse at 70% 110%,#315795,transparent 65%),#090b10!important}.work-image .sheet-color .visual-code{background:radial-gradient(ellipse at 80% 10%,#ff994b,#d2440f)!important}.work-image .sheet-color .voice-word,.work-image .sheet-color .voice-dot,.work-image .sheet-color .voice-bottom em,.work-image .sheet-color .proof-word,.work-image .sheet-color .proof-public strong,.work-image .sheet-color .proof-tagline em,.work-image .sheet-color .stars-word,.work-image .sheet-color .code-art pre{color:#fff}.work-image .sheet-color .wave i,.work-image .sheet-color .wave i:nth-child(3n),.work-image .sheet-color .wave i:nth-child(5n){background:#e2edff}.work-image .sheet-color .visual-caption,.work-image .sheet-color .stars-word>span,.work-image .sheet-color .code-art>span{color:#eee6ff}.work-image .sheet-color .star-chart{filter:none;mix-blend-mode:screen}.work-image .sheet-color .proof-seal{border-color:#bfcee780}.work-image .sheet-color .proof-seal div{color:#dae6ff}.work-image .sheet-color .visual-route{background:radial-gradient(ellipse at 65% 25%,#fffdf5,#e5dcc6)!important;color:#413626}.work-image .sheet-color .route-word,.work-image .sheet-color .route-time{color:#413626}.work-image .sheet-color .route-word>span{color:#a7803b}.work-image .sheet-color .route-word small,.work-image .sheet-color .route-time>span,.work-image .sheet-color .visual-route .visual-caption{color:#8a7857}.work-image .sheet-color .route-line{stroke:#b38b45}.work-image .sheet-color .route-map circle{stroke:#b38b45;fill:#b38b45}.work-image .sheet-color .route-map g{stroke:#9b896a}.work-card{transform-style:preserve-3d}.sheet-surface .wave i{animation:none!important}.sheet-surface .visual-cta{display:none}.sheet-surface .project-visual::before,.sheet-surface .project-visual::after{pointer-events:none}
@media(max-width:1100px){.last-mask{margin-left:29%}.first-word{font-size:22vw}.last-word{font-size:30vw}}
@media(max-width:650px){.type-opening{height:max(650px,100svh);padding-top:120px;padding-bottom:28px}.elastic-name{margin-top:auto;margin-bottom:auto}.first-word{font-size:28vw}.last-word{font-size:42vw}.last-mask{margin-left:16%;margin-top:8px}.name-mask{padding-top:14px}.type-opening .hero-foot{margin-top:0}.paper-name{font-size:15vw;top:32%;left:7%;right:7%}.paper-note{font-size:23px;bottom:30px}.paper-scissors{width:48px;height:36px;top:7px}.flexible-sheet .case-badge{font-size:9px;padding:8px 12px;bottom:14px;right:14px;opacity:1}}
@media(prefers-reduced-motion:reduce){.intro-pending .paper-intro{display:none}.sheet-slice{transform:none!important}.elastic-name,.name-mask,.elastic-letter{transform:none!important}.sheet-color{clip-path:circle(150% at 50% 50%)}}

/* A shared barrel, with no second transform on its cards. */
.work-card,.work-card:nth-child(even){transform:none;will-change:auto}
.work-pin{perspective:2200px;perspective-origin:50% 50%}.work-track,.work-card,.work-image.flexible-sheet{transform-style:preserve-3d}.work-image.flexible-sheet{perspective:none;isolation:auto}.sheet-surface{perspective:none;pointer-events:auto}.sheet-slice{pointer-events:auto}.sheet-neutral{filter:none}.sheet-color{clip-path:var(--ink-clip,inset(50%));will-change:auto}.sheet-surface *{animation:none!important;transition:none!important}.sheet-shade{background:linear-gradient(90deg,#0000,#0003)}
.flexible-sheet:hover .case-badge,.flexible-sheet:focus-visible .case-badge{opacity:0}.work-card.is-inked .case-badge{opacity:1;transform:translateY(0)}.flexible-sheet .case-badge{transform:translateY(5px);transition:opacity .18s,transform .25s;pointer-events:none}.work-card:focus-within .case-badge{opacity:1}
[data-theme=light] .sheet-neutral .visual-voice{background:#edf0fc!important}[data-theme=light] .sheet-neutral .visual-stars{background:#eee3f5!important}[data-theme=light] .sheet-neutral .visual-proof{background:#ffe8df!important}[data-theme=light] .sheet-neutral .visual-route{background:#fff3e8!important}[data-theme=light] .sheet-neutral .visual-code{background:#ffe8f2!important}
/* Keep labels quiet, but readable. */
.chapter-label,.section-marker,.section-label,.work-card-top,.work-meter{font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.6;letter-spacing:.06em;font-weight:500}.chapter-label{color:var(--paper);opacity:.75}
.type-opening{height:auto;min-height:max(820px,100svh);overflow-x:clip;overflow-y:visible}.type-opening .hero-foot{flex-shrink:0;min-height:52px;padding:5px 0 10px;overflow:visible}.scroll-invite{white-space:nowrap;flex-shrink:0}.scroll-invite span{flex-shrink:0;line-height:1;overflow:visible}.name-mask{will-change:transform;backface-visibility:hidden}.elastic-letter{will-change:auto}
/* Hand-drawn vector signature: each stroke follows the pen, then the veil lifts. */
.intro-curtain.signature-intro{display:none!important;background:var(--bg);color:var(--paper);pointer-events:auto}.intro-pending .intro-curtain.signature-intro{display:flex!important;animation:signature-veil .75s 2.75s cubic-bezier(.76,0,.24,1) forwards}.signature{width:min(70vw,820px);height:auto;overflow:visible}.signature-stroke{stroke-width:2.8;stroke-dasharray:1;stroke-dashoffset:1;animation:signature-write var(--duration) var(--start) cubic-bezier(.35,.05,.35,1) forwards}.signature-flourish{stroke-width:1.6}.signature-intro .skip-intro{color:var(--muted);font:12px Arial;bottom:35px}.intro-pending .elastic-name{animation:signature-page 1.1s 2.85s cubic-bezier(.16,1,.3,1) both}
@keyframes signature-write{to{stroke-dashoffset:0}}@keyframes signature-veil{0%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 100% 0);visibility:hidden}}@keyframes signature-page{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){.type-opening{min-height:max(650px,100svh)}.signature{width:88vw}.chapter-label,.section-marker,.section-label,.work-card-top,.work-meter{font-size:11px}.work-card.is-inked .case-badge{opacity:1}.type-opening .hero-foot{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){.intro-pending .intro-curtain.signature-intro{display:none!important}.name-mask{transform:none!important}.sheet-color{clip-path:var(--ink-clip,inset(50%))}}

.sheet-shade{display:none}.flexible-sheet .case-badge{transform:translate3d(0,5px,260px) scale(.88);transform-origin:100% 100%}.work-card.is-inked .case-badge{transform:translate3d(0,0,260px) scale(.88)}
[data-theme=light]{--bg:#fffaf7;--paper:#302638;--muted:#665d70;--surface:#d6bde4;--accent:#d6bde4;--line:#61516c35}
[data-theme=light] .type-opening{background:radial-gradient(ellipse at 88% 15%,#ffd5e9 0%,transparent 47%),radial-gradient(ellipse at 13% 80%,#fec0b3 0%,transparent 50%),#d6bde4}
[data-theme=light] .last-word{color:#fffaf7;text-shadow:0 2px 0 #ad81b020}
[data-theme=light] .theme-switch{background:#fff9;border-color:#ffffffa0}
[data-theme=light] .mind-chapter{background:#ffd5e9}
[data-theme=light] .selected-heading{padding-top:30px;padding-bottom:25px}
[data-theme=light] .selected-heading h2 em{color:#8066a0}
[data-theme=light] .work-pin{background:linear-gradient(135deg,#d6bde4,#98a4d8)}
[data-theme=light] .sheet-neutral .visual-voice{background:#d9e0ff!important}
[data-theme=light] .sheet-neutral .visual-stars{background:#d6bde4!important}
[data-theme=light] .sheet-neutral .visual-proof{background:#fec0b3!important}
[data-theme=light] .sheet-neutral .visual-route{background:#ffe4c5!important}
[data-theme=light] .sheet-neutral .visual-code{background:#ffd5e9!important}
[data-theme=light] .signature-intro{background:#d6bde4;color:#302638}
[data-theme=light] .solid-link{background:#d6bde4}
@media(max-width:900px){.flexible-sheet .case-badge,.work-card.is-inked .case-badge{transform:none}.sheet-shade{display:none}[data-theme=light] .work-pin{padding:25px 0}}

/* Light mode: white space, pastel lettering, no full-section washes. */
[data-theme=light]{--bg:#fff;--surface:#f7f4fa;--paper:#302a37;--muted:#706779;--accent:#d6bde4}
[data-theme=light] .type-opening,[data-theme=light] .mind-chapter,[data-theme=light] .work-pin,[data-theme=light] .intro-curtain.signature-intro{background:#fff}
[data-theme=light] .first-word{color:#98a4d8}[data-theme=light] .last-word{color:#ce90c8;text-shadow:none}
[data-theme=light] .hero-top em,[data-theme=light] .reading-statement em,[data-theme=light] .selected-heading h2 em{color:#b48bb9}
[data-theme=light] .signature{color:#98a4d8}[data-theme=light] .theme-switch{background:#f5eff9;border-color:#d6bde4}
[data-theme=light] .scroll-invite span{background:#ffd5e9;border-color:transparent;color:#695179}
[data-theme=light] .chapter-label{color:#78678a}

/* Cool light-mode accents, with neutral copy on white. */
[data-theme=light]{--accent:#aecdc7;--surface:#f0f6f5}
[data-theme=light] .first-word{color:#829bc3}[data-theme=light] .last-word{color:#88b6ae}
[data-theme=light] .hero-top em,[data-theme=light] .reading-statement em,[data-theme=light] .selected-heading h2 em{color:#658e86}
[data-theme=light] .theme-switch{background:#eff5f4;border-color:#bfd7d1}[data-theme=light] .scroll-invite span{background:#d7e8e3;color:#466d65}
[data-theme=light] .chapter-label{color:#627681}[data-theme=light] .solid-link{background:#c6ddd7}[data-theme=light] .signature{color:#829bc3}
.resume-document{margin:0 auto;padding:0;background:#fff;box-shadow:0 18px 70px #0002}.resume-document .resume-full-preview{display:block;width:100%;height:auto;aspect-ratio:2382/3369}.resume-document figcaption{padding:16px 20px;background:var(--bg);color:var(--muted);font:13px/1.6 Arial,sans-serif}
.resume-copy>.mono,.resume-page-heading .mono,.back-link.mono,.award-stamp{font:500 12px/1.6 Arial,sans-serif;letter-spacing:.04em}

@media(min-width:901px){.flexible-sheet .case-badge{right:65px;bottom:45px}}
