@font-face{font-family:Gontserrat;src:url('/assets/Gontserrat-Regular.ttf')}@font-face{font-family:Gontserrat;src:url('/assets/Gontserrat-Bold.ttf');font-weight:700}
:root{--green:#09c400;--ink:#111;--paper:#fbfaef;--muted:#858585}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Gontserrat,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.nav{position:fixed;z-index:50;top:0;left:0;width:100%;padding:34px 5.5vw;display:flex;justify-content:flex-end;gap:4px;font-size:22px;mix-blend-mode:multiply}.nav a{position:relative}.nav a.active{font-weight:700}.nav a:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--green);transition:.3s}.nav a:hover:after{width:100%}.page{min-height:100vh}.green{color:var(--green)}
.hero{position:relative;height:100vh;min-height:720px;overflow:hidden}.intro{position:absolute;left:5.2vw;bottom:12vh;z-index:10;width:min(450px,36vw)}.intro h1{font-size:54px;line-height:.9;margin:0 0 14px;font-weight:400}.intro p{font-size:17px;line-height:1.35;color:#999}.motion-label{position:absolute;z-index:15;background:var(--green);color:#fff;padding:4px 10px;font-size:18px}.drag-label{top:22%;left:74%}.scroll-label{top:35%;right:6%}.orbit{position:absolute;inset:-10% -20% 0 8%;transform:rotate(-5deg)}.card{position:absolute;width:280px;aspect-ratio:4/5;overflow:hidden;background:#ddd;box-shadow:0 18px 40px #0001;animation:travel 22s linear infinite;filter:grayscale(1);transition:filter .5s,transform .5s}.card img{width:100%;height:100%;object-fit:cover}.card:nth-child(1){left:6%;top:12%;--r:-12deg;animation-delay:-1s}.card:nth-child(2){left:28%;top:20%;--r:-5deg;animation-delay:-5s}.card:nth-child(3){left:49%;top:28%;--r:6deg;animation-delay:-9s}.card:nth-child(4){left:70%;top:38%;--r:12deg;animation-delay:-13s}.card:nth-child(5){left:91%;top:47%;--r:17deg;animation-delay:-17s}.card.active{filter:grayscale(0);z-index:5}@keyframes travel{0%{transform:translateX(42vw) rotate(var(--r))}100%{transform:translateX(-88vw) rotate(var(--r))}}@media(prefers-reduced-motion:reduce){.card{animation:none}.orbit{transform:none}}
.about{display:flex;align-items:flex-end;padding:130px 7vw 7vh}.about-copy{width:min(1220px,100%)}.about-copy .lead{font-size:24px;line-height:1.45;margin-bottom:34px}.about-copy p{font-size:21px;line-height:1.45;max-width:1200px}.timeline{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;margin-top:60px}.timeline p{font-size:18px;margin:0 0 26px}.year{color:#858585}.award{font-weight:700;font-style:italic}
.work-page{padding:90px 5.5vw 0}.category-dock{position:relative;width:520px;margin-top:0;z-index:10}.category{display:block;width:480px;height:58px;margin:18px 0;padding:0 14px;border:0;background:var(--green);color:#fff;text-align:left;font-size:52px;line-height:58px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:width .45s cubic-bezier(.2,.8,.2,1),color .25s}.category:nth-child(1){width:250px}.category:nth-child(2){width:345px}.category:nth-child(3){width:290px}.category:nth-child(4){width:220px}.category:hover,.category:focus{width:520px;outline:none}.project-stage{min-height:70vh;display:flex;align-items:flex-end;padding:80px 0 90px}.project-list{width:100%;text-align:center}.project-link{display:block;font-size:clamp(48px,7vw,110px);line-height:1.06;font-weight:700;font-style:italic;color:#888;transition:.35s;letter-spacing:-.03em}.project-link.highlight{color:#111;transform:translateX(-10px)}.dots{font-size:65px;color:#888;line-height:.4}
.contact{border-top:1px solid var(--green);padding:70px 5.5vw 55px;display:flex;align-items:flex-end;gap:25px}.contact strong{font-size:72px;line-height:.86;color:var(--green)}.contact p{color:var(--green);font-size:18px;margin:0 0 5px}
.detail{padding:130px 5.5vw 80px}.detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:70px}.eyebrow{color:var(--green);font-size:16px}.detail h1{font-size:clamp(52px,8vw,120px);line-height:.85;margin:15px 0}.detail-intro{font-size:20px;line-height:1.5}.detail-cover{height:70vh;min-height:520px;width:100%;object-fit:cover;filter:grayscale(.1)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}.detail-grid img{width:100%;height:58vh;object-fit:cover}.back{display:inline-block;margin-top:60px;color:var(--green);font-size:24px}
@media(max-width:760px){.nav{padding:22px 20px;font-size:17px}.hero{min-height:650px}.intro{left:22px;bottom:55px;width:75vw}.intro h1{font-size:42px}.intro p{font-size:15px}.orbit{inset:8% -85% 0 -20%;transform:scale(.78) rotate(-5deg)}.card{width:210px}.motion-label{font-size:14px}.about{padding:120px 24px 50px;align-items:flex-start}.about-copy .lead,.about-copy p{font-size:18px}.timeline{grid-template-columns:1fr;gap:0;margin-top:40px}.work-page{padding:95px 22px 0}.category-dock{width:100%}.category{font-size:32px;height:46px;line-height:46px;max-width:100%}.category:nth-child(1){width:52%}.category:nth-child(2){width:72%}.category:nth-child(3){width:62%}.category:nth-child(4){width:48%}.category:hover,.category:focus{width:100%}.project-stage{min-height:58vh}.project-link{font-size:44px}.contact{padding:50px 22px;display:block}.contact strong{font-size:52px}.contact p{margin-top:15px}.detail{padding:110px 22px 55px}.detail-hero{grid-template-columns:1fr;gap:15px}.detail-cover{height:55vh;min-height:380px}.detail-grid{grid-template-columns:1fr}.detail-grid img{height:50vh}}

/* Landing — looping studio-style image field */
.landing-body{overflow-x:clip}.loop-hero{position:relative;height:100vh;min-height:700px;overflow:hidden}.loop-track{position:absolute;inset:0}.loop-card{position:absolute;top:-210px;left:0;width:clamp(210px,22vw,330px);aspect-ratio:4/5;overflow:hidden;background:#ddd;filter:grayscale(1);opacity:.78;box-shadow:0 22px 55px #00000012;will-change:transform,filter;transition:filter .5s,opacity .5s,box-shadow .5s}.loop-card img{width:100%;height:100%;object-fit:cover}.loop-card.is-focus,.loop-card:hover{filter:grayscale(0);opacity:1;z-index:4;box-shadow:0 28px 65px #00000024}.cursor-scroll{position:fixed;z-index:80;top:0;left:0;background:var(--green);color:#fff;padding:4px 10px;font-size:18px;pointer-events:none;opacity:0;will-change:transform;transition:opacity .2s}.cursor-scroll.visible{opacity:1}.landing-info{padding:40px 0 0}.landing-bio{width:min(470px,80vw);margin:0 0 100px 5.2vw}.landing-bio h1{font-size:54px;font-weight:400;line-height:.9;margin:0 0 16px}.landing-bio p{font-size:17px;line-height:1.32;color:#aaa;margin:0}.landing-categories a{min-height:94px;border-bottom:1px solid var(--green);display:flex;align-items:center;color:var(--green);padding:10px 5.8vw;gap:16px}.landing-categories a:nth-child(2){justify-content:center}.landing-categories a:nth-child(3),.landing-categories a:nth-child(4){justify-content:flex-end}.landing-categories small{font-size:16px}.landing-categories span{font-size:clamp(38px,4.2vw,64px)}.landing-contact{min-height:310px;padding:82px 4vw 48px;display:flex;align-items:flex-end;gap:24px;overflow:hidden}.landing-contact strong{color:var(--green);font-size:clamp(60px,6.7vw,104px);line-height:.82}.contact-details{color:var(--green);font-size:clamp(17px,1.7vw,27px);padding-bottom:4px;will-change:transform}.contact-details a:hover{text-decoration:underline}
@media(max-width:760px){.loop-hero{height:82vh;min-height:620px}.loop-card{top:-120px;width:210px}.cursor-scroll{display:none}.landing-bio{margin:0 22px 75px;width:auto}.landing-bio h1{font-size:44px}.landing-bio p{font-size:16px}.landing-categories a{min-height:74px;padding:10px 22px;justify-content:flex-start!important}.landing-categories span{font-size:30px}.landing-contact{min-height:310px;padding:60px 22px 38px;display:block}.landing-contact strong{font-size:58px}.contact-details{font-size:17px;margin-top:24px}.loop-card:nth-child(n+5){display:none}}

/* Landing prototype: 8 stepped frames */
.step-hero{position:relative;height:100vh;min-height:720px;overflow:hidden}.frame-track{position:absolute;inset:0}.mock-frame{--step-x:clamp(125px,14.5vw,230px);--step-y:clamp(64px,9vh,105px);position:absolute;z-index:calc(20 - var(--p));right:-9vw;bottom:-15vh;width:clamp(330px,34vw,530px);aspect-ratio:1.25/1;border:2px solid #242424;background:#cfcfcf;color:#111;filter:grayscale(1);opacity:.76;box-shadow:0 22px 55px #00000018;transform:translate3d(calc(var(--p) * var(--step-x) * -1),calc(var(--p) * var(--step-y) * -1),0) rotate(calc((var(--p) - 3) * -1.2deg));transition:transform .88s cubic-bezier(.22,.76,.25,1),filter .42s,opacity .42s,background .42s;will-change:transform}.mock-frame span{position:absolute;top:18px;left:20px;font-size:16px}.mock-frame.tone-1,.mock-frame.tone-5{background:#ed7855}.mock-frame.tone-2,.mock-frame.tone-6{background:#74bdb5}.mock-frame.tone-3,.mock-frame.tone-7{background:#d9c064}.mock-frame.tone-4,.mock-frame.tone-8{background:#9790c8}.mock-frame.is-focus{filter:grayscale(0);opacity:1;z-index:30;box-shadow:0 30px 70px #00000026}.mock-frame.no-transition{transition:none}.cursor-action{position:fixed;z-index:90;top:0;left:0;background:var(--green);color:#fff;padding:4px 10px;font-size:18px;pointer-events:none;opacity:0;will-change:transform;transition:opacity .18s}.cursor-action.visible{opacity:1}.hero-bio{position:absolute;z-index:45;left:5.2vw;bottom:6vh;margin:0}.hero-bio p{transition:color .28s,background-size .35s;background:linear-gradient(transparent 8%,#09c40022 8%,#09c40022 94%,transparent 94%) no-repeat;background-size:0 100%}.hero-bio:hover p{color:#111;background-size:100% 100%}.landing-info{padding-top:0}.landing-contact{gap:18px}.contact-details{transform:translate3d(62vw,0,0)}
@media(max-width:760px){.step-hero{min-height:680px}.mock-frame{--step-x:88px;--step-y:63px;right:-150px;bottom:4vh;width:300px}.mock-frame:nth-child(n+7){display:none}.hero-bio{left:22px;bottom:36px;width:72vw}.hero-bio h1{font-size:42px}.hero-bio p{font-size:15px}.cursor-action{display:none}}

/* Home motion refinement */
.step-hero{height:112vh;min-height:820px;overflow:visible}.frame-track{position:sticky;top:0;height:100vh;overflow:clip}.mock-frame{--step-x:25vw;--step-y:14vh;right:-40vw;bottom:-30vh;width:clamp(340px,33.333vw,540px);transform:translate3d(calc(var(--p) * var(--step-x) * -1),calc(var(--p) * var(--step-y) * -1),0) rotate(calc((var(--p) - 3) * -1.5deg));filter:grayscale(1);transition:transform .82s cubic-bezier(.2,.72,.24,1),filter .3s,opacity .3s}.mock-frame.is-moving{filter:grayscale(1) blur(5px);transform:translate3d(calc(var(--p) * var(--step-x) * -1),calc(var(--p) * var(--step-y) * -1),0) rotate(calc(-20deg + (var(--p) - 3) * -1.5deg))}.mock-frame.is-focus:not(.is-moving){filter:grayscale(0) blur(0)}.hero-bio{position:sticky;top:calc(100vh - 270px);bottom:auto;margin-top:-270px}.cursor-action{transition:opacity .18s,filter .08s}.landing-contact{display:block;padding:82px 4vw 48px}.hello-lock{display:inline-flex;flex-direction:column;align-items:flex-start}.landing-contact .hello-top,.hello-bottom>strong{display:block;color:var(--green);font-size:clamp(60px,6.7vw,104px);line-height:.82}.hello-bottom{display:flex;align-items:flex-end;gap:clamp(18px,1.7vw,28px)}.hello-bottom .contact-details{padding-bottom:.08em}
@media(max-width:760px){.step-hero{height:105vh;min-height:720px}.frame-track{height:82vh}.mock-frame{--step-x:104px;--step-y:66px;right:-170px;bottom:-6vh;width:300px}.mock-frame.is-moving{filter:grayscale(1) blur(3px)}.hero-bio{position:absolute;top:auto;bottom:28px;margin:0}.landing-contact{padding:60px 22px 38px}.landing-contact .hello-top,.hello-bottom>strong{font-size:58px}.hello-bottom{display:block}.hello-bottom .contact-details{margin-top:24px}}

/* Flat landing flow and persistent frame angles */
.step-hero{height:100vh;min-height:760px;overflow:visible;margin-bottom:7vh}.frame-track{position:relative;top:auto;height:100%;overflow:visible}.mock-frame{--step-x:22vw;--step-y:12vh;right:-33vw;bottom:2vh;transform:translate3d(calc(var(--p) * var(--step-x) * -1),calc(var(--p) * var(--step-y) * -1),0) rotate(var(--angle));filter:grayscale(1);transition:transform .82s cubic-bezier(.2,.72,.24,1),filter .36s,opacity .36s}.mock-frame.is-focus{filter:grayscale(0)}.mock-frame.is-moving{filter:grayscale(1);transform:translate3d(calc(var(--p) * var(--step-x) * -1),calc(var(--p) * var(--step-y) * -1),0) rotate(var(--angle))}.hero-bio{position:absolute;top:auto;bottom:4vh;margin:0}.cursor-action{filter:none!important;transition:opacity .16s;z-index:96}.cursor-echo{position:fixed;z-index:91;top:0;left:0;width:76px;height:30px;background:var(--green);pointer-events:none;opacity:0;will-change:transform;transition:opacity .18s}.cursor-echo.visible{opacity:.15}.cursor-echo.visible.echo-1{opacity:.34}.cursor-echo.visible.echo-2{opacity:.25}.cursor-echo.visible.echo-3{opacity:.18}.cursor-echo.visible.echo-4{opacity:.11}
@media(max-width:760px){.step-hero{height:92vh;min-height:690px;margin-bottom:4vh}.frame-track{height:100%;overflow:visible}.mock-frame{--step-x:58vw;--step-y:9vh;right:-58vw;bottom:18vh;width:300px}.hero-bio{bottom:3vh}.cursor-echo{display:none}}

/* Character horse morph */
.hero-bio{width:min(520px,40vw)}.hero-bio .morph-text{position:relative;width:100%;height:220px;margin:0;cursor:default;outline:none;background:none;color:var(--green);animation:horse-prance 1.05s ease-in-out infinite;transform-origin:50% 80%;transition:none}.morph-letter{position:absolute;top:0;left:0;display:block;font-size:12px;line-height:1;font-weight:700;color:var(--green);opacity:.92;transform:translate3d(var(--hx),var(--hy),0);transition:transform .72s cubic-bezier(.2,.75,.2,1),opacity .4s,color .35s;transition-delay:var(--delay);will-change:transform}.morph-text.is-reading{animation:none}.morph-text.is-reading .morph-letter{font-size:16px;font-weight:400;line-height:1.32;color:#777;opacity:var(--read-opacity);transform:translate3d(var(--tx),var(--ty),0)}@keyframes horse-prance{0%,100%{transform:translateY(0) rotate(-.35deg)}45%{transform:translateY(-5px) rotate(.45deg)}65%{transform:translateY(-2px) rotate(-.15deg)}}
@media(max-width:760px){.hero-bio{width:72vw}.hero-bio .morph-text{height:175px}.morph-letter{font-size:9px}.morph-text.is-reading .morph-letter{font-size:13px}}
@media(prefers-reduced-motion:reduce){.hero-bio .morph-text{animation:none}.morph-letter{transition:none}}

/* Taller racing horse */
.hero-bio h1{position:relative;z-index:12}.hero-bio .morph-text{z-index:2;height:300px;margin-top:-45px;animation:race-body .56s steps(4,end) infinite}.morph-letter{transform-origin:center;animation-duration:.56s;animation-timing-function:steps(4,end);animation-iteration-count:infinite}.morph-letter.front-leg{animation-name:front-stride}.morph-letter.rear-leg{animation-name:rear-stride}.morph-letter.mid-leg{animation-name:mid-stride}.morph-letter.horse-body{animation-name:body-drive}.morph-text.is-reading{margin-top:-45px}.morph-text.is-reading .morph-letter{animation:none;translate:0 0}@keyframes race-body{0%,100%{transform:translate3d(0,0,0) rotate(-.25deg)}25%{transform:translate3d(3px,-5px,0) rotate(.2deg)}50%{transform:translate3d(7px,-1px,0) rotate(-.1deg)}75%{transform:translate3d(3px,-7px,0) rotate(.25deg)}}@keyframes front-stride{0%,100%{translate:-7px -2px}25%{translate:7px 7px}50%{translate:10px -5px}75%{translate:-5px 8px}}@keyframes rear-stride{0%,100%{translate:9px 7px}25%{translate:-8px -4px}50%{translate:-10px 8px}75%{translate:7px -5px}}@keyframes mid-stride{0%,100%{translate:3px 4px}50%{translate:-4px -3px}}@keyframes body-drive{0%,100%{translate:0 0}50%{translate:2px -2px}}
@media(max-width:760px){.hero-bio .morph-text{height:225px;margin-top:-34px}.morph-text.is-reading{margin-top:-34px}}
@media(prefers-reduced-motion:reduce){.morph-letter{animation:none!important}}

/* First-load race-in sequence */
.hero-bio .morph-text{animation:none}.hero-bio .morph-text.horse-enter{animation:horse-arrive 2.35s cubic-bezier(.16,.72,.22,1) both,race-body .56s steps(4,end) 2.35s infinite}.hero-bio .morph-text.horse-enter.is-reading{animation:none}@keyframes horse-arrive{0%{transform:translate3d(-115vw,8px,0) scale(.94);opacity:0}8%{opacity:1}72%{transform:translate3d(22px,-4px,0) scale(1)}86%{transform:translate3d(-8px,0,0) scale(1)}100%{transform:translate3d(0,0,0) scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.hero-bio .morph-text.horse-enter{animation:none}}

/* Eight-phase gallop: every body mass flexes with the stride, not only the legs. */
.hero-bio .morph-text.horse-enter{animation:horse-arrive 2.35s cubic-bezier(.16,.72,.22,1) both,whole-horse-gallop .64s linear 2.35s infinite;transform-origin:52% 62%}
.morph-letter{animation-duration:.64s;animation-timing-function:linear;animation-iteration-count:infinite;transform-origin:center}
.morph-letter.horse-head{animation-name:gallop-head}.morph-letter.horse-neck{animation-name:gallop-neck}.morph-letter.horse-shoulder{animation-name:gallop-shoulder}.morph-letter.horse-torso{animation-name:gallop-torso}.morph-letter.horse-rump{animation-name:gallop-rump}.morph-letter.horse-tail{animation-name:gallop-tail}
.morph-text.is-reading .morph-letter{animation:none;translate:0 0;scale:1;rotate:0deg}
@keyframes whole-horse-gallop{0%,100%{transform:translate3d(0,-5px,0) scaleX(1.04) scaleY(.965) rotate(-.5deg)}12.5%{transform:translate3d(3px,-2px,0) scaleX(1.015) scaleY(.985) rotate(-.15deg)}25%{transform:translate3d(6px,3px,0) scaleX(.975) scaleY(1.035) rotate(.35deg)}37.5%{transform:translate3d(8px,5px,0) scaleX(.95) scaleY(1.065) rotate(.55deg)}50%{transform:translate3d(7px,1px,0) scaleX(.98) scaleY(1.02) rotate(.15deg)}62.5%{transform:translate3d(5px,-5px,0) scaleX(1.025) scaleY(.975) rotate(-.4deg)}75%{transform:translate3d(2px,-8px,0) scaleX(1.055) scaleY(.95) rotate(-.65deg)}87.5%{transform:translate3d(0,-7px,0) scaleX(1.045) scaleY(.96) rotate(-.55deg)}}
@keyframes gallop-head{0%,100%{translate:7px -2px;rotate:-2deg}12.5%{translate:5px 0;rotate:-1deg}25%{translate:1px 4px;rotate:2deg}37.5%{translate:-2px 6px;rotate:4deg}50%{translate:1px 3px;rotate:2deg}62.5%{translate:5px -2px;rotate:-2deg}75%{translate:9px -6px;rotate:-4deg}87.5%{translate:10px -4px;rotate:-3deg}}
@keyframes gallop-neck{0%,100%{translate:5px -2px;scale:1.025 .98;rotate:-1deg}25%{translate:0 3px;scale:.985 1.03;rotate:1.5deg}37.5%{translate:-2px 5px;scale:.97 1.045;rotate:2deg}62.5%{translate:3px -2px;scale:1.02 .985;rotate:-1deg}75%{translate:7px -5px;scale:1.035 .97;rotate:-2deg}}
@keyframes gallop-shoulder{0%,100%{translate:3px -1px;scale:1.02 .98}25%{translate:-1px 3px;scale:.98 1.03}37.5%{translate:-2px 5px;scale:.965 1.05}62.5%{translate:2px -2px;scale:1.015 .985}75%{translate:5px -5px;scale:1.03 .97}}
@keyframes gallop-torso{0%,100%{translate:0 0;scale:1.035 .975}25%{translate:2px 2px;scale:.985 1.025}37.5%{translate:4px 4px;scale:.965 1.045}50%{translate:3px 1px;scale:.99 1.015}75%{translate:-1px -4px;scale:1.045 .965}}
@keyframes gallop-rump{0%,100%{translate:-4px 0;scale:1.03 .98;rotate:1deg}25%{translate:2px 3px;scale:.985 1.025;rotate:-1deg}37.5%{translate:5px 5px;scale:.97 1.04;rotate:-2deg}62.5%{translate:0 -2px;scale:1.02 .98;rotate:.5deg}75%{translate:-5px -5px;scale:1.04 .965;rotate:2deg}}
@keyframes gallop-tail{0%,100%{translate:-10px -3px;rotate:-5deg}12.5%{translate:-13px -6px;rotate:-8deg}25%{translate:-8px 1px;rotate:1deg}37.5%{translate:-2px 5px;rotate:7deg}50%{translate:2px 2px;rotate:4deg}62.5%{translate:-3px -4px;rotate:-3deg}75%{translate:-11px -8px;rotate:-10deg}87.5%{translate:-14px -6px;rotate:-8deg}}
@keyframes front-stride{0%,100%{translate:-13px -7px;rotate:-8deg;scale:1.04 .96}12.5%{translate:-7px -2px;rotate:-3deg}25%{translate:3px 9px;rotate:9deg;scale:.98 1.04}37.5%{translate:14px 12px;rotate:14deg;scale:.96 1.06}50%{translate:17px 2px;rotate:8deg}62.5%{translate:10px -9px;rotate:-5deg}75%{translate:-1px -13px;rotate:-12deg;scale:1.05 .94}87.5%{translate:-10px -10px;rotate:-10deg}}
@keyframes rear-stride{0%,100%{translate:15px 9px;rotate:10deg;scale:.97 1.05}12.5%{translate:8px 2px;rotate:4deg}25%{translate:-3px -9px;rotate:-8deg;scale:1.04 .95}37.5%{translate:-14px -8px;rotate:-13deg}50%{translate:-17px 4px;rotate:-8deg;scale:.97 1.05}62.5%{translate:-9px 13px;rotate:5deg}75%{translate:3px 12px;rotate:12deg}87.5%{translate:13px 8px;rotate:12deg}}
@keyframes mid-stride{0%,100%{translate:5px 5px;rotate:3deg}12.5%{translate:0 -1px;rotate:-2deg}25%{translate:-6px -7px;rotate:-7deg}37.5%{translate:-10px 0;rotate:-4deg}50%{translate:-5px 8px;rotate:5deg}62.5%{translate:3px 9px;rotate:8deg}75%{translate:9px 1px;rotate:3deg}87.5%{translate:8px -4px;rotate:-3deg}}

/* Four complete ASCII poses, swapped as a single connected silhouette. */
.hero-bio .morph-text.ascii-mode{display:grid;align-items:start;height:300px;margin-top:-45px;overflow:visible;color:var(--green)}
.ascii-horse,.ascii-copy{grid-area:1/1;transition:opacity .38s ease,transform .48s cubic-bezier(.2,.75,.2,1)}
.ascii-horse{position:relative;z-index:1;margin:0;padding-top:6px;color:var(--green);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(6px,.55vw,8.5px);font-weight:400;line-height:.82;letter-spacing:.08em;white-space:pre;transform:scaleX(1.04);transform-origin:left 58%;opacity:1;will-change:transform}
.ascii-horse[data-phase="1"]{transform:translate3d(0,0,0)}
.ascii-horse[data-phase="2"]{transform:translate3d(2px,4px,0)}
.ascii-horse[data-phase="3"]{transform:translate3d(1px,2px,0)}
.ascii-horse[data-phase="4"]{transform:translate3d(3px,-5px,0)}
.ascii-copy{display:block;padding-top:60px;color:#777;font-size:16px;font-weight:400;line-height:1.32;opacity:0;transform:translateY(12px)}
.morph-text.ascii-mode.is-reading .ascii-horse{opacity:0;transform:scaleX(1.08) translateY(-8px)}
.morph-text.ascii-mode.is-reading .ascii-copy{opacity:1;transform:translateY(0)}
.hero-bio .morph-text.ascii-mode.horse-enter{animation:horse-arrive 2.35s cubic-bezier(.16,.72,.22,1) both}
@media(max-width:760px){.hero-bio .morph-text.ascii-mode{height:225px;margin-top:-34px}.ascii-horse{padding-top:8px;font-size:5.5px;line-height:.8}.ascii-copy{padding-top:42px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.hero-bio .morph-text.ascii-mode.horse-enter{animation:none}}

/* Scroll-led categories and social footer */
.landing-info{margin-top:-6vh;padding-top:0}.landing-categories{position:relative}.landing-categories a{position:relative;isolation:isolate;min-height:18vh;color:#dfded4;border-color:#deddd2;transition:color .55s ease,border-color .55s ease,opacity .55s ease}.landing-categories a small,.landing-categories a>span:not(.category-thumbs){position:relative;z-index:3;transition:color .55s ease}.landing-categories a.is-scroll-active{border-color:var(--green)}.landing-categories a.is-scroll-active small{color:#111}.landing-categories a.is-scroll-active>span:not(.category-thumbs){color:var(--green)}.category-thumbs{position:relative;z-index:2;flex:0 0 clamp(112px,10vw,158px);width:clamp(112px,10vw,158px);aspect-ratio:1;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}.landing-categories a.is-scroll-active .category-thumbs{opacity:1;visibility:visible;transition-delay:0s}.landing-categories a:nth-child(n+2) .category-thumbs{order:-1}.category-thumbs i{position:absolute;inset:5px;display:block;width:calc(100% - 10px);height:calc(100% - 10px);background:#d5d5d2;border:1.5px solid #242424;box-shadow:0 12px 26px #00000012;transition:opacity .12s linear;will-change:opacity}.category-thumbs i:nth-child(1){transform:translate(-8px,8px);background:#c7c7c4}.category-thumbs i:nth-child(2){transform:translate(0,0);background:#d1d1ce}.category-thumbs i:nth-child(3){transform:translate(8px,-8px);background:#dededb}
.landing-contact{position:relative;padding-top:clamp(140px,13vh,190px)}.social-links{position:absolute;right:4vw;bottom:52px;display:flex;align-items:center;gap:15px}.social-links a{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--green);color:var(--green);transition:background .25s,color .25s,transform .25s}.social-links a:hover,.social-links a:focus-visible{background:var(--green);color:var(--paper);transform:translateY(-3px);outline:none}.social-links svg{width:32px;height:32px;fill:currentColor}.social-links rect,.social-links circle{fill:none;stroke:currentColor;stroke-width:2}.social-links .fill-dot{fill:currentColor;stroke:none}
@media(max-width:760px){.landing-info{margin-top:-3vh;padding-top:0}.landing-categories a{min-height:17vh;gap:10px}.category-thumbs{flex-basis:82px;width:82px}.landing-contact{padding-top:110px}.social-links{position:static;margin-top:38px}.social-links a{width:50px;height:50px}.social-links svg{width:28px;height:28px}}
.landing-body .hero-bio{position:fixed;top:calc(100vh - 270px);bottom:auto;left:5.2vw;margin:0;z-index:70;transform-origin:left top;will-change:transform}.landing-body .ascii-horse{left:-24px}.landing-body .mock-frame{pointer-events:none;cursor:default}.landing-categories a{min-height:25vh}.category-thumbs{flex:0 0 clamp(180px,16vw,250px);width:clamp(180px,16vw,250px);pointer-events:auto}.category-thumbs i{inset:0;width:100%;height:100%;background:#d4d4d0;border:1.5px solid var(--green);box-shadow:none;transform:none!important}.category-thumbs i:nth-child(1){background:#c9c9c5}.category-thumbs i:nth-child(2){background:#d4d4d0}.category-thumbs i:nth-child(3){background:#deded9}
@media(max-width:760px){.landing-body .hero-bio{top:calc(100vh - 235px);left:22px}.landing-body .ascii-horse{left:-12px}.landing-categories a{min-height:22vh}.category-thumbs{flex-basis:120px;width:120px}}
.landing-info{position:relative;overflow:visible}.landing-categories{position:relative;z-index:2}.ascii-eye-motion{position:absolute;z-index:1;top:21vh;left:-3.2vw;margin:0;color:rgba(9,196,0,.16);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(12px,1.08vw,17px);font-weight:400;line-height:.88;letter-spacing:.07em;white-space:pre;pointer-events:none;user-select:none}.landing-contact{min-height:390px}.landing-contact .hello-lock{position:absolute;z-index:2;left:4vw;bottom:48px}.landing-contact .social-links{z-index:3}
@media(max-width:760px){.ascii-eye-motion{top:25vh;left:-11vw;font-size:8px;line-height:.84;opacity:.82}.landing-contact{min-height:360px}.landing-contact .hello-lock{left:22px;bottom:38px}}
.landing-contact{min-height:clamp(620px,76vh,760px);overflow:visible}.ascii-eye-motion.eye-secondary{z-index:1;top:-5vh;left:-5vw;color:rgba(9,196,0,.085);font-size:clamp(24px,2.2vw,34px);line-height:.82;letter-spacing:.045em;transform:none}.landing-contact .hello-lock{z-index:4}.landing-contact .social-links{z-index:5}
@media(max-width:760px){.landing-contact{min-height:570px}.ascii-eye-motion.eye-secondary{top:-2vh;left:-18vw;font-size:16px;line-height:.8;opacity:1}}
.ascii-eye-motion.eye-secondary{top:-38vh;font-family:Gontserrat,Arial,sans-serif;font-weight:400;letter-spacing:.02em}.corner-brand{position:fixed;z-index:60;top:28px;left:5.5vw;width:310px;height:150px;pointer-events:none}.corner-brand>a{position:relative;z-index:3;display:inline-block;pointer-events:auto;font-size:38px;line-height:1;font-weight:400}.corner-brand>a:after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:2px;background:var(--green);transition:width .3s}.corner-brand>a:hover:after,.corner-brand>a:focus-visible:after{width:100%}.corner-horse{position:absolute;z-index:1;top:28px;left:2px;margin:0;color:rgba(9,196,0,.58);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:5.8px;font-weight:400;line-height:.86;letter-spacing:.05em;white-space:pre;pointer-events:none}.about{display:block;min-height:100vh;padding:40vh 6.5vw 7vh}.about-copy{width:min(1280px,100%)}.about-copy .lead{max-width:1260px;font-size:25px;line-height:1.42;margin:0 0 32px}.about-copy>p{max-width:1260px;font-size:21px;line-height:1.42;margin:0 0 28px}.timeline{grid-template-columns:1.25fr 1fr;gap:10vw;margin-top:72px}.timeline-label{display:block;margin-bottom:22px;color:var(--green);font-size:14px;letter-spacing:.08em}.timeline p{font-size:18px;line-height:1.32;margin:0 0 28px}.award{color:var(--green);font-style:normal}.work-page{padding-top:175px}
@media(max-width:760px){.ascii-eye-motion.eye-secondary{top:-24vh;font-family:Gontserrat,Arial,sans-serif}.corner-brand{top:20px;left:22px;width:210px;height:110px}.corner-brand>a{font-size:28px}.corner-horse{top:24px;font-size:4px}.about{padding:34vh 22px 55px}.about-copy .lead,.about-copy>p{font-size:18px}.timeline{grid-template-columns:1fr;gap:22px;margin-top:48px}.timeline-label{margin-bottom:16px}.work-page{padding-top:140px}}
.ascii-eye-motion.eye-secondary{top:-38vh;left:-3vw;color:rgba(9,196,0,.045);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(12px,1.1vw,17px);font-weight:300;line-height:.82;letter-spacing:.045em}.corner-brand{top:15px;left:5.2vw;width:140px;height:70px}.corner-brand>a{font-size:16px}.corner-horse{top:15px;left:-2px;font-size:2.5px;line-height:.86;letter-spacing:.04em}.about{padding:40vh 7vw 7vh}.about-copy{width:100%}.about-copy .lead,.about-copy>p{max-width:1320px;font-size:clamp(21px,1.7vw,27px);line-height:1.35;font-weight:400}.about-copy .lead{margin:0 0 38px}.about-copy .greeting{display:block;margin-bottom:38px}.about-copy>p{margin:0 0 38px}.timeline{grid-template-columns:1.25fr 1fr;gap:12vw;margin-top:118px}.timeline p{font-size:clamp(17px,1.35vw,21px);line-height:1.25;font-weight:400;margin:0 0 28px}.year{color:#8b8b8b}.award{color:var(--green);font-weight:700;font-style:normal}
@media(max-width:760px){.ascii-eye-motion.eye-secondary{top:-20vh;left:-12vw;font-size:9px;font-weight:300}.corner-brand{top:12px;left:22px;width:105px;height:54px}.corner-brand>a{font-size:14px}.corner-horse{top:14px;left:-2px;font-size:1.9px}.about{padding:32vh 22px 55px}.about-copy .lead,.about-copy>p{font-size:18px}.about-copy .greeting{margin-bottom:28px}.timeline{grid-template-columns:1fr;gap:18px;margin-top:72px}.timeline p{font-size:16px}.work-page{padding-top:110px}}

/* Final scale and spacing alignment */
.ascii-eye-motion.eye-secondary{top:-43vh;left:-4vw;color:rgba(9,196,0,.09);font-size:clamp(18px,1.65vw,25px);font-weight:300;line-height:.82;letter-spacing:.045em}
.landing-contact{min-height:clamp(450px,56vh,570px);padding-top:clamp(78px,8vh,118px)}
.landing-contact .hello-lock{bottom:38px}
.corner-brand{top:18px;left:5.2vw;width:156px;height:82px}
.corner-brand>a{font-size:16px;text-transform:lowercase}
.corner-horse{top:16px;left:-24px;font-size:2.55px;line-height:.82;letter-spacing:.08em;transform:scaleX(1.04);transform-origin:left top;color:var(--green)}
.about{padding:15vh 7vw 3vh}
.about-avatar{width:clamp(150px,12vw,190px);height:clamp(92px,7.5vw,122px);object-fit:cover;object-position:54% 58%;margin:0 0 20px}
.about-copy .lead{margin-bottom:25px}
.about-copy .greeting{margin-bottom:25px}
.about-copy>p{margin-bottom:25px}
.timeline{margin-top:54px}
.timeline p{margin-bottom:20px}
@media(max-width:760px){.ascii-eye-motion.eye-secondary{top:-24vh;left:-16vw;font-size:13px;color:rgba(9,196,0,.085)}.landing-contact{min-height:470px;padding-top:76px}.corner-brand{top:12px;left:22px;width:118px;height:60px}.corner-brand>a{font-size:14px}.corner-horse{top:14px;left:-13px;font-size:1.9px}.about{padding:19vh 22px 40px}.about-avatar{width:150px;height:96px;margin-bottom:18px}.about-copy .greeting{margin-bottom:22px}.timeline{margin-top:48px}}

/* Compact footer and single-screen about refinement */
.landing-contact{min-height:clamp(360px,44vh,450px);padding-top:42px}
.landing-contact .hello-lock{bottom:118px}
.landing-contact .social-links{bottom:126px}
.about{padding:10vh 7vw 2vh}
.about-copy .lead{font-size:clamp(18px,1.35vw,21px);line-height:1.32;margin-bottom:19px}
.about-copy .greeting{margin-bottom:20px}
.about-copy>p{font-size:clamp(17px,1.25vw,20px);line-height:1.31;margin-bottom:19px}
.timeline{margin-top:38px}
.timeline p{font-size:clamp(15px,1.12vw,18px);line-height:1.22;margin-bottom:16px}
@media(max-width:760px){.landing-contact{min-height:410px;padding-top:54px}.landing-contact .hello-lock{bottom:72px}.landing-contact .social-links{bottom:auto}.about{padding:16vh 22px 36px}.about-copy .lead,.about-copy>p{font-size:17px}.about-copy .greeting{margin-bottom:18px}.timeline{margin-top:36px}.timeline p{font-size:15px}}

/* About separation and compact work overview */
.about{padding:24vh 7vw 2vh;align-items:flex-start}
.about-copy{max-width:none}
.timeline{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.award{display:block;max-width:660px;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none;line-height:1.22}
.work-body{min-height:100vh}
.work-page{min-height:72vh;padding:138px 5.5vw 18px;display:grid;grid-template-columns:minmax(245px,34%) 1fr;gap:5vw;align-items:start}
.work-page .category-dock{width:auto;margin:30px 0 0;z-index:20}
.work-page .category{position:relative;display:block;width:230px;max-width:calc(100vw - 44px);height:46px;margin:12px 0;padding:0 12px;border:0;background:var(--green);color:#fff;text-align:left;font-size:clamp(26px,2.4vw,38px);line-height:46px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:width .48s cubic-bezier(.2,.8,.2,1)}
.work-page .category:nth-child(n){width:230px}
.work-page .category:hover,.work-page .category:focus-visible{width:min(var(--expanded-width),calc(100vw - 44px));outline:none}
.work-page .project-stage{min-height:0;padding:24px 0 18px;display:flex;align-items:flex-end;align-self:stretch}
.work-page .project-list{width:100%;text-align:left}
.work-page .project-link{display:block;font-size:clamp(34px,4.65vw,70px);line-height:.98;font-weight:400;font-style:normal;letter-spacing:-.025em;color:rgba(17,17,17,.09);transition:color .32s ease,transform .32s ease}
.work-page .project-link:hover,.work-page .project-link:focus-visible,.work-page .project-link.highlight{color:rgba(17,17,17,.78);transform:translateX(5px);outline:none}
.work-page .dots{display:block;margin-top:2px;font-size:44px;color:rgba(17,17,17,.12);line-height:.45}
.work-contact{position:relative;min-height:28vh;height:28vh;padding:28px 4vw;border-top:1px solid var(--green);overflow:hidden}
.work-contact .hello-lock{position:absolute;left:4vw;bottom:30px}
.work-contact .hello-top,.work-contact .hello-bottom>strong{font-size:clamp(42px,4.8vw,72px)}
.work-contact .contact-details{transform:none;color:var(--green);font-size:clamp(15px,1.25vw,20px)}
.work-contact .social-links{right:4vw;bottom:34px}
.sand-letter{position:fixed;z-index:120;color:rgba(9,196,0,.3);font-family:Gontserrat,Arial,sans-serif;font-size:11px;font-style:normal;font-weight:400;line-height:1;pointer-events:none;animation:sand-scatter .9s cubic-bezier(.14,.65,.25,1) forwards;will-change:transform,opacity}
@keyframes sand-scatter{0%{transform:translate3d(0,0,0) rotate(0);opacity:.7}38%{opacity:.48}100%{transform:translate3d(var(--sand-x),var(--sand-y),0) rotate(var(--sand-r));opacity:0}}
@media(max-width:760px){.about{padding:24vh 22px 36px}.timeline{grid-template-columns:1fr}.work-page{min-height:auto;padding:112px 22px 34px;display:block}.work-page .category-dock{margin-top:22px}.work-page .category{height:42px;line-height:42px;font-size:26px}.work-page .project-stage{padding:42px 0 12px}.work-page .project-link{font-size:36px;line-height:1.04}.work-contact{height:auto;min-height:330px;padding:46px 22px}.work-contact .hello-lock{left:22px;bottom:100px}.work-contact .social-links{margin-top:0;position:absolute;left:22px;right:auto;bottom:28px}}

/* Global cursor, unified about copy, and full-screen work index */
.about-copy .lead,.about-copy>p{font-size:clamp(17px,1.22vw,20px);line-height:1.32;font-weight:400}
.work-page{min-height:100vh;padding-top:104px;padding-bottom:24px}
.work-page .category-dock{margin-top:6px}
.work-page .category{padding-left:13px;padding-right:13px}
.work-page .project-list{text-align:right}
.work-page .project-link{font-weight:700;text-transform:uppercase;text-align:right;color:rgba(17,17,17,.09)}
.work-page .project-name{display:block;font-size:clamp(27px,3.75vw,58px);line-height:1.01;font-weight:700;text-transform:uppercase;text-align:right;letter-spacing:-.025em;color:rgba(17,17,17,.09);pointer-events:none;transition:color .32s ease,transform .32s ease}
.work-page .project-name.highlight{color:rgba(17,17,17,.78);transform:translateX(-5px)}
.category-art-stack{position:absolute;z-index:3;top:104px;right:5.5vw;width:clamp(250px,22vw,340px);aspect-ratio:1;overflow:hidden;background:#d7d7d1;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .16s ease,transform .22s steps(3,end),visibility 0s linear .22s;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 66%,rgba(0,0,0,.82) 76%,rgba(0,0,0,.35) 90%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 66%,rgba(0,0,0,.82) 76%,rgba(0,0,0,.35) 90%,transparent 100%)}
.category-art-stack.is-active{opacity:1;visibility:visible;transform:translateY(0) rotate(0);transition-delay:0s}
.category-art-stack .placeholder-frame{position:absolute;inset:0;display:block;overflow:hidden;border:1px solid var(--green);background:#d5d5d0;opacity:0;transform:translate(0,0) rotate(0);will-change:opacity,transform}
.category-art-stack .placeholder-frame:before,.category-art-stack .placeholder-frame:after{content:"";position:absolute;background:rgba(9,196,0,.28)}
.category-art-stack .placeholder-frame:before{left:-12%;top:49.8%;width:124%;height:1px;transform:rotate(45deg)}
.category-art-stack .placeholder-frame:after{left:-12%;top:49.8%;width:124%;height:1px;transform:rotate(-45deg)}
.category-art-stack .placeholder-frame span{position:absolute;z-index:2;left:14px;bottom:12px;color:#191919;font:400 12px/1 Gontserrat,Arial,sans-serif;letter-spacing:.08em}
.category-art-stack .tone-b{background:#cdcfca}.category-art-stack .tone-c{background:#dad6ca}.category-art-stack .tone-d{background:#c9d3c9}
.category-art-stack.is-active .placeholder-frame{animation:category-placeholder-cycle .75s steps(1,end) infinite both}
.category-art-stack.is-active .placeholder-frame:nth-child(2){animation-delay:-.1875s}
.category-art-stack.is-active .placeholder-frame:nth-child(3){animation-delay:-.375s}
.category-art-stack.is-active .placeholder-frame:nth-child(4){animation-delay:-.5625s}
@keyframes category-placeholder-cycle{0%,24.99%{opacity:1;transform:translate(0,0) rotate(0)}25%,100%{opacity:0;transform:translate(5px,-4px) rotate(.7deg)}}
.work-contact{min-height:32vh;height:32vh}
.sand-letter{color:rgba(9,196,0,.68)}
@keyframes sand-scatter{0%{transform:translate3d(0,0,0) rotate(0);opacity:.95}38%{opacity:.72}100%{transform:translate3d(var(--sand-x),var(--sand-y),0) rotate(var(--sand-r));opacity:0}}
@media(max-width:760px){.about-copy .lead,.about-copy>p{font-size:17px}.work-page{min-height:100vh;padding-top:98px}.work-page .project-list,.work-page .project-link,.work-page .project-name{text-align:left}.work-page .project-name{font-size:30px}.category-art-stack{display:none}.work-contact{min-height:330px;height:auto}}

/* Data-driven project detail blocks. Existing visual language is intentionally inherited. */
.project-blocks{width:100%}
.project-block{width:100%;margin-top:20px}
.project-block:first-child{margin-top:0}
.project-block figure{margin:0}
.project-block img{display:block;width:100%;height:auto;object-fit:contain;filter:grayscale(.1)}
.project-full-image img{width:100%;height:auto}
.project-two-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.project-three-images{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.project-portrait-image figure{max-width:68%;margin-inline:auto}.project-square-image figure{max-width:min(100%,1100px);margin-inline:auto}
.project-video video,.project-video-placeholder{display:block;width:100%;height:auto;aspect-ratio:var(--video-ratio,16 / 9);object-fit:contain;background:#d7d7d1;border:1px solid var(--green)}
.project-video-placeholder{position:relative;background:linear-gradient(135deg,#d4d8d1,#e2ded2)}
.project-video-placeholder span{position:absolute;left:18px;bottom:16px;color:#171717;font-size:12px;letter-spacing:.08em}
.project-text{padding:clamp(42px,7vw,100px) 0;max-width:980px}
.project-text h2,.project-image-text h2{font-size:clamp(32px,4vw,64px);line-height:1;margin:0 0 24px}
.project-text p,.project-image-text p{font-size:20px;line-height:1.5;margin:0 0 1em}
.project-caption{display:block;margin-top:10px;font-size:13px;line-height:1.4;color:#777}
.project-image-text{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,80px);align-items:center;padding:clamp(34px,5vw,74px) 0}
.project-image-text.is-text-left .project-image-text-media{order:2}
.project-image-text-copy{max-width:650px}
.project-spacer{margin:0}
.project-spacer--small{height:clamp(28px,4vw,58px)}
.project-spacer--medium{height:clamp(58px,8vw,118px)}
.project-spacer--large{height:clamp(96px,13vw,190px)}
@media(max-width:760px){.project-two-images,.project-three-images,.project-image-text{grid-template-columns:1fr}.project-portrait-image figure{max-width:100%}.project-image-text.is-text-left .project-image-text-media{order:0}.project-text p,.project-image-text p{font-size:17px}.project-block{margin-top:14px}}

/* Decorative ASCII sunflower and work eye */
.about{position:relative;z-index:2}
.about-copy{position:relative;z-index:2}
.ascii-sunflower{position:fixed;z-index:0;right:-3.5vw;top:auto;bottom:-4vh;margin:0;color:rgba(9,196,0,.235);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(13px,1.1vw,18px);font-weight:400;line-height:.84;letter-spacing:.055em;white-space:pre;pointer-events:none;user-select:none;transform:scale(1.04);transform-origin:right bottom}
.work-page{position:relative}
.work-eye{z-index:1;top:auto;left:-3.5vw;bottom:7vh;font-size:clamp(8px,.72vw,11px);line-height:.84;letter-spacing:.065em;color:rgba(9,196,0,.19)}
.work-page .category-dock,.work-page .project-stage{position:relative;z-index:2}
.work-contact .hello-lock{bottom:102px}
.work-contact .social-links{bottom:106px}
@media(max-width:760px){.ascii-sunflower{right:-48vw;top:auto;bottom:-1vh;font-size:10px;color:rgba(9,196,0,.19)}.work-eye{left:-14vw;bottom:5vh;font-size:7px;color:rgba(9,196,0,.17)}.work-contact .hello-lock{bottom:112px}.work-contact .social-links{bottom:28px}}

/* Project showcase templates */
.showcase-body{min-height:100vh;background:var(--paper);overflow-x:hidden}
.showcase-nav{position:fixed;z-index:80;top:26px;left:calc(5vw - 12px);display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;font-size:18px;line-height:1;color:#111;cursor:pointer}
.showcase-nav .arrow{font-size:24px;transform:translateY(-1px)}
.showcase-shell{width:100%;min-height:100vh;padding:120px 5vw 6vh;display:grid;grid-template-columns:minmax(235px,1fr) repeat(2,minmax(0,1.62fr));gap:2.5vw}
.showcase-sidebar{position:relative;z-index:2;min-height:calc(100vh - 170px);display:flex;flex-direction:column}
.showcase-kicker{margin:0 0 22px;color:var(--green);font-size:13px;letter-spacing:.09em;text-transform:uppercase}
.project-tabs{display:grid;gap:0}
.showcase-project{appearance:none;width:100%;padding:14px 0 15px;border:0;border-bottom:1px solid #d9d8ca;background:transparent;color:#d4d3c5;font:700 clamp(24px,2.25vw,37px)/1.18 Gontserrat,Arial,sans-serif;text-align:left;text-transform:uppercase;overflow-wrap:anywhere;cursor:pointer;transition:color .3s ease}
.showcase-project:hover,.showcase-project:focus-visible,.showcase-project.is-active{color:#111;outline:none}
.project-description{max-width:32ch;margin:24px 0 0;font-size:15px;line-height:1.35;color:#171717}
.brand-canvas{grid-column:2/4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;column-gap:30px;row-gap:30px;align-content:start;padding:0 10px 8vh 0;scrollbar-width:thin;scrollbar-color:var(--green) transparent}
.brand-frame,.gallery-preview,.art-thumb{position:relative;overflow:hidden;border:1px solid rgba(9,196,0,.52);background:#d8d8d1;transition:background .35s ease,color .35s ease,transform .35s ease}
.brand-frame{min-height:46vh}
.brand-frame:before,.gallery-preview:before,.art-thumb:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0 47%,rgba(9,196,0,.22) 47.3% 47.7%,transparent 48% 100%)}
.brand-frame span,.gallery-preview span,.art-thumb span{position:absolute;left:14px;bottom:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.brand-frame:first-child{grid-column:1/3;min-height:68vh;background:#cecec7}
.brand-frame:nth-child(4n+1){grid-column:1/3;min-height:58vh}
.branding-showcase{height:100vh;overflow:hidden}
.branding-showcase .showcase-shell{height:100vh;min-height:0;overflow:hidden}
.branding-showcase .showcase-sidebar{height:calc(100vh - 170px);position:sticky;top:120px;align-self:start}
.branding-showcase .brand-canvas{height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain}
.brand-frame.warm,.gallery-preview.warm{background:#cfc9bb}.brand-frame.cool,.gallery-preview.cool{background:#c7cfca}.brand-frame.green,.gallery-preview.green{background:#b9d2b5}
.gallery-sidebar .project-description{margin-bottom:25px}
.art-grid{margin-top:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.art-thumb{appearance:none;aspect-ratio:1;padding:0;border-color:#c6c5ba;background:#c9c9c4;filter:grayscale(1);cursor:pointer}
.art-thumb:hover,.art-thumb:focus-visible,.art-thumb.is-active{background:var(--green);border-color:var(--green);filter:none;outline:none}
.art-thumb span{left:6px;bottom:5px;font-size:9px;color:#111}
.gallery-stage{grid-column:2/4;min-height:calc(100vh - 170px);display:grid;place-items:stretch}
.gallery-preview{min-height:72vh;background:#d2d2cc}
.gallery-preview span{left:22px;bottom:20px;font-size:15px}
@media(max-width:820px){.showcase-nav{top:24px;left:22px}.showcase-shell{padding:88px 22px 36px;display:block}.showcase-sidebar{min-height:auto}.project-description{max-width:48ch}.brand-canvas,.gallery-stage{margin-top:34px;grid-template-columns:1fr}.brand-frame:first-child,.brand-frame:nth-child(4n+1){grid-column:auto;min-height:52vh}.brand-frame{min-height:38vh}.art-grid{margin-top:24px;grid-template-columns:repeat(4,1fr)}.gallery-preview{min-height:58vh}.branding-showcase{height:auto;overflow-x:hidden;overflow-y:auto}.branding-showcase .showcase-shell{height:auto;overflow:visible}.branding-showcase .showcase-sidebar{height:auto;position:static}.branding-showcase .brand-canvas{height:auto;overflow:visible}}

.cms-project-card{display:block;color:inherit;text-decoration:none;margin-bottom:2rem}.cms-project-card img{display:block;width:100%;height:auto;margin-bottom:1rem}.project-tabs a.showcase-project{display:block;text-decoration:none;color:inherit}
