@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#fafaf7;--ink:#131313;--yellow:#ffe500;--line:#d5d5cf;--muted:#62625d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,"Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #766a00;outline-offset:7px}::selection{background:var(--yellow);color:var(--ink)}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:var(--yellow);padding:16px}.skip:focus{top:10px}header{display:flex;align-items:center;justify-content:space-between;padding:30px 4.5%;gap:24px;min-height:100px}.wordmark{font-size:20px;font-weight:800;letter-spacing:-1px}.wordmark span{font-size:12px;vertical-align:top;margin-left:3px}header nav{display:flex;gap:40px;font-size:14px}header nav a{position:relative}header nav a:after{content:'';height:2px;background:var(--ink);position:absolute;bottom:-7px;left:0;width:0;transition:width .25s}header nav a:hover:after{width:100%}.edition,.micro{font-size:12px;line-height:1.65;letter-spacing:.06em}.hero{min-height:calc(100svh - 100px);position:relative;margin:0 4.5%;padding-top:36px;display:flex;flex-direction:column;justify-content:flex-end}.hero-label{position:absolute;left:0;top:80px}.hero-side{position:absolute;right:0;top:180px;text-align:right}.hero-art{position:absolute;width:38%;max-width:560px;left:38%;top:20px;perspective:1000px}.petals{display:grid;grid-template-columns:repeat(3,1fr);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .2s ease-out}.petals i{display:block;aspect-ratio:1;border-radius:50%;background:var(--yellow);animation:breathe 5s ease-in-out infinite}.petals i:nth-child(2){animation-delay:-1s}.petals i:nth-child(3){animation-delay:-2s}.petals i:nth-child(4){animation-delay:-3s}.petals i:nth-child(5){animation-delay:-4s}.petals i:hover{border-radius:15%;transition:border-radius .4s}.art-caption{display:block;text-align:right;font-size:12px;margin-top:16px;letter-spacing:.08em}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;position:relative;pointer-events:none;padding-top:210px}h1{font-size:clamp(90px,14.5vw,240px);font-weight:800;line-height:.86;letter-spacing:-.085em;margin:0}.outline{color:var(--ink)}.hero-note{max-width:220px;margin-bottom:12px;pointer-events:auto}.hero-note p{line-height:1.8;font-size:16px}.round-link{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border:0;background:var(--yellow);border-radius:50%;font-size:30px;margin-top:28px;transition:border-radius .4s ease,transform .4s ease}.round-link:hover,.round-link:focus-visible{border-radius:20%;transform:translateY(4px)}.hero-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:35px;padding:20px 0}.work{padding:130px 4.5% 100px}.section-head{display:grid;grid-template-columns:1fr 1.6fr 1fr;align-items:start;gap:30px}.section-head h2,.about h2{font-size:clamp(40px,5vw,80px);line-height:1.15;font-weight:500;letter-spacing:-.06em;margin:0}.yellow-dot{color:#b8a600}.section-head p{font-size:14px;line-height:1.9;color:var(--muted);align-self:end;margin:0}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:56px 0 30px}.filters button{border:1px solid var(--line);border-radius:50px;padding:11px 23px;background:transparent;font-size:14px;transition:background .2s}.filters button:hover{background:#eaeae4}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}sup{font-size:10px;margin-left:8px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:65px 28px}.project[hidden]{display:none}.cover{position:relative;overflow:hidden;aspect-ratio:4/3;background:#eee}.cover img,.detail-art img{width:100%;height:100%;object-fit:cover;display:block}.art{height:100%;width:100%;position:relative;overflow:hidden;transition:transform .6s}.project-link:hover .art,.project-link:hover img{transform:scale(1.025)}.art-form{background:var(--yellow);display:flex;align-items:flex-end;padding:7%}.art-form span{font-size:clamp(42px,6.4vw,110px);font-weight:800;line-height:.88;letter-spacing:-.07em;z-index:1}.orbit{position:absolute;right:8%;top:10%;width:55%;aspect-ratio:1;border-radius:50%;border:1px solid #333;box-shadow:18px 18px 0 -1px var(--yellow),18px 18px 0 0 #333,36px 36px 0 -1px var(--yellow),36px 36px 0 0 #333}.art-type{background:#302dc7;color:#e5ffb6;padding:5% 8%;display:flex;align-items:center}.art-type>span{font-size:clamp(80px,13vw,230px);line-height:.8;font-weight:800;letter-spacing:-.09em;transform:rotate(-10deg)}.art-type i{position:absolute;right:6%;bottom:6%;font-style:normal;font-size:12px;writing-mode:vertical-rl}.art-motion{background:#1d1e1e;color:#eee;padding:5%;display:flex;align-items:center;justify-content:space-between}.art-motion>span{font-size:clamp(60px,10vw,160px);line-height:.9;font-weight:800;letter-spacing:-.07em;z-index:1}.rings{position:absolute;width:60%;aspect-ratio:1;right:-4%;border-radius:50%;background:repeating-radial-gradient(ellipse at center,transparent 0 15px,#d1edb5 16px 18px,transparent 19px 30px);transform:rotate(-25deg) scaleX(.7)}.view{position:absolute;bottom:22px;right:22px;background:white;padding:13px 20px;border-radius:30px;font-size:14px;opacity:0;transform:translateY(10px);transition:.25s}.project-link:hover .view,.project-link:focus-visible .view{opacity:1;transform:none}.project-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:20px 0 10px}.project h3{font-size:25px;letter-spacing:-.04em;margin:0}.project p{font-size:14px;line-height:1.8;color:var(--muted);margin-top:9px}.about{border-top:1px solid var(--line);padding:100px 4.5%;display:grid;grid-template-columns:1fr 2.6fr;gap:30px}.about p{font-size:20px;line-height:1.9;max-width:660px;margin-top:40px}.about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:35px}.about-tags span{font-size:12px;border:1px solid var(--line);border-radius:30px;padding:10px 17px}.contact{background:var(--yellow);padding:65px 4.5%}.contact>a{display:flex;align-items:center;justify-content:space-between;font-size:clamp(90px,15vw,230px);font-weight:800;line-height:.88;letter-spacing:-.08em;margin-top:45px}.contact-arrow{font-weight:400;transition:transform .3s}.contact>a:hover .contact-arrow{transform:translate(10px,-10px)}.contact p{margin-top:35px;font-size:14px}footer{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:35px 4.5% 105px}footer>span,footer>a:last-child{font-size:12px}.dock{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;gap:13px;background:#f4f4f0dc;backdrop-filter:blur(18px);border:1px solid #ffffffaa;border-radius:40px;padding:9px 13px;box-shadow:0 4px 25px #0002;font-size:14px}.dock>a{border-radius:24px;padding:10px 17px;white-space:nowrap}.dock>a:hover,.dock>a.selected{background:var(--ink);color:white}.dock>span{color:#888}.cursor{position:fixed;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;background:#92929250;pointer-events:none;z-index:30;opacity:0}.cursor.visible{opacity:1}.detail{padding:60px 4.5%}.detail-head{max-width:1000px;padding:40px 0 65px}.detail h1{font-size:clamp(45px,7vw,110px);line-height:1.1;letter-spacing:-.06em;margin:25px 0}.detail-head p{font-size:20px;line-height:1.7}.detail-art{aspect-ratio:16/10;max-height:850px;overflow:hidden}.detail-body{display:grid;grid-template-columns:1fr 2fr;padding:70px 0;gap:30px}.detail-body p{font-size:20px;line-height:1.9;margin:0;max-width:760px}.next{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:35px 0;font-size:30px}.next:hover{color:#796d00}@keyframes breathe{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.42;transform:scale(.94)}}@media(min-width:1600px){.hero{min-height:850px}.hero-art{top:55px}}@media(max-width:800px){header{padding:25px 5%;min-height:85px}header nav{gap:18px;font-size:12px}.edition{display:none}.wordmark{font-size:17px}.hero{margin:0 5%;min-height:760px}.hero-label{top:20px}.hero-side{top:150px}.hero-art{top:145px;left:19%;width:65%}.hero-bottom{padding-top:420px;align-items:flex-end}h1{font-size:22vw}.hero-note{max-width:125px}.hero-note p{font-size:14px}.round-link{width:48px;height:48px}.hero-foot{gap:20px;font-size:10px}.hero-foot span:last-child{max-width:95px;text-align:right}.section-head{grid-template-columns:1fr}.section-head h2{font-size:50px}.section-head p{margin-top:0}.work{padding:80px 5%}.filters{margin-top:30px;gap:8px}.filters button{padding:10px 15px}.projects{grid-template-columns:1fr;gap:35px}.art-form span{font-size:18vw}.art-type>span{font-size:34vw}.art-motion>span{font-size:20vw}.view{opacity:1;transform:none;padding:10px 15px;bottom:15px;right:15px}.about{grid-template-columns:1fr;padding:65px 5%}.about p{font-size:17px}.contact{padding:50px 5%}.contact>a{font-size:23vw}.contact-arrow{font-size:22vw}footer{flex-wrap:wrap;padding:30px 5% 110px}footer>span{order:3;width:100%}.detail{padding:30px 5%}.detail-head{padding:20px 0 40px}.detail-art{aspect-ratio:4/3}.detail-body{grid-template-columns:1fr;padding:40px 0}.detail-body p,.detail-head p{font-size:17px}.cursor{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.cursor{display:none}}

/* Reserve the longest phrase so typing never shifts adjacent content. */
.page-transition{position:fixed;inset:0;z-index:9999;pointer-events:none;background:var(--yellow);transform:translate3d(101%,0,0);transition:transform .52s cubic-bezier(.76,0,.24,1);will-change:transform}
html.page-entering .page-transition,html.page-leaving .page-transition{transform:translate3d(0,0,0)}
html.page-entered .page-transition{transform:translate3d(-101%,0,0)}
.page-transition.is-reset{transition:none}
.transition-mark{position:absolute;left:50%;top:50%;width:clamp(260px,34vw,560px);transform:translate(-50%,-58%)}
.transition-arrow{display:block;width:100%;height:auto}
.transition-signature{position:absolute;right:0;top:calc(100% + 8px);text-align:right;font:700 clamp(11px,.9vw,14px)/1.35 Manrope,Arial,sans-serif;letter-spacing:.03em}
@media(max-width:600px){.transition-mark{width:min(72vw,360px)}.transition-signature{font-size:10px}}
@media(prefers-reduced-motion:reduce){.page-transition{display:none}}

.animated-title{font-size:clamp(80px,13vw,210px);min-width:5.1ch;letter-spacing:-.07em}.title-line{display:block;min-height:.92em;line-height:.92;white-space:nowrap}
@media(max-width:800px){.animated-title{font-size:19vw;min-width:0}.hero-bottom{gap:18px}.hero-note{flex-shrink:0;max-width:110px}.section-head h2,.about h2{font-size:clamp(36px,7vw,60px)}}
@media(max-width:420px){.hero-bottom{flex-wrap:wrap}.hero-note{max-width:none;display:flex;align-items:center;justify-content:space-between;width:100%;gap:20px}.hero-note .round-link{margin-top:0}.hero-bottom{padding-top:380px}.hero{min-height:780px}}



/* Contact shutters: staggered right-to-left strips over the yellow panel. */
.organizations{padding:110px 4.5% 120px;background:#151515;color:#f6f5ef}
.organizations-heading{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:30px;align-items:end;padding-bottom:58px}
.organizations-heading h2{font-size:clamp(44px,5.8vw,92px);font-weight:500;line-height:1.02;letter-spacing:-.06em;margin:0}
.organizations-heading>p{max-width:390px;justify-self:end;font-size:16px;line-height:1.7;color:#aaa;margin:0}
.organization-list{border-top:1px solid #ffffff4a}
.organization-row{display:grid;grid-template-columns:44px minmax(110px,180px) minmax(260px,1.35fr) minmax(190px,.75fr) auto;gap:clamp(18px,2.2vw,34px);align-items:center;padding:34px 18px 36px 0;border-bottom:1px solid #ffffff4a;transition:background .28s ease,color .28s ease,padding .38s cubic-bezier(.22,1,.36,1)}
.organization-logo{display:flex;align-items:center;justify-content:center;width:100%;height:112px;margin:0;overflow:hidden;background:#050505;border:1px solid #ffffff38;transition:border-color .28s ease,transform .38s cubic-bezier(.22,1,.36,1)}.organization-logo img{display:block;width:100%;height:100%;object-fit:contain}.organization-logo-wide{aspect-ratio:16/9;height:auto}.organization-logo-wide img{object-fit:cover}.organization-logo-square{width:112px}.organization-row:hover .organization-logo,.organization-row:focus-visible .organization-logo{border-color:#0009;transform:translateY(-3px)}
.organization-logo-pixel img{image-rendering:pixelated}
.organization-index,.organization-type,.organization-visit{font-size:12px;line-height:1.5;letter-spacing:.06em}.organization-index{align-self:start;color:#9b9b95}.organization-type{display:block;color:#aaa;margin-bottom:16px}
.organization-row h3{font-size:clamp(34px,4.6vw,70px);font-weight:600;line-height:.96;letter-spacing:-.055em;margin:0}.organization-row>p{font-size:clamp(18px,2vw,28px);font-weight:500;line-height:1.25;letter-spacing:-.03em;margin:0}.organization-visit{justify-self:end;padding-bottom:5px;border-bottom:1px solid currentColor}
.organization-row:hover,.organization-row:focus-visible{background:var(--yellow);color:var(--ink);padding-left:18px}.organization-row:hover .organization-index,.organization-row:hover .organization-type,.organization-row:focus-visible .organization-index,.organization-row:focus-visible .organization-type{color:#494500}
@media(max-width:1100px){.organization-row{grid-template-columns:44px minmax(105px,150px) minmax(230px,1fr) minmax(160px,.7fr)}.organization-visit{grid-column:3;justify-self:start}.organization-row>p{align-self:end}}
@media(max-width:760px){.organizations-heading{grid-template-columns:1fr 1.6fr}.organizations-heading>p{grid-column:2;justify-self:start}.organization-row{grid-template-columns:34px minmax(92px,120px) 1fr;gap:16px;padding:28px 0}.organization-logo{grid-column:2;grid-row:1/4}.organization-logo-square{width:100%;height:auto;aspect-ratio:1}.organization-name,.organization-row>p,.organization-visit{grid-column:3}.organization-row>p{font-size:20px}.organization-visit{justify-self:start}.organization-row:hover,.organization-row:focus-visible{padding-left:10px;padding-right:10px}}
@media(max-width:600px){.organizations{padding:74px 5% 82px}.organizations-heading{display:block;padding-bottom:34px}.organizations-heading h2{margin:18px 0 24px}.organizations-heading>p{font-size:16px}.organization-row{grid-template-columns:28px 82px 1fr;gap:12px;padding:26px 0 28px}.organization-row h3{font-size:clamp(30px,9vw,40px)}.organization-type{font-size:10px;margin-bottom:10px}.organization-row>p{font-size:18px;margin-top:4px}.organization-visit{font-size:10px}.organization-logo{grid-column:2;grid-row:1/4}.organization-name,.organization-row>p,.organization-visit{grid-column:3}}
.contact-svg-arrow,.inline-svg-arrow,.hero-svg-arrow{display:block;background:currentColor;-webkit-mask:url('assets/union-arrow.svg') center/contain no-repeat;mask:url('assets/union-arrow.svg') center/contain no-repeat}
.inline-svg-arrow{display:inline-block;width:.78em;height:.78em;margin-left:.12em;vertical-align:-.05em;transform:rotate(0deg)}
.hero-svg-arrow{width:30px;height:30px;transform:rotate(135deg)}
.contact-arrow.contact-svg-arrow{width:clamp(180px,25vw,340px);height:clamp(180px,25vw,340px);flex:0 0 auto;transform:rotate(0deg)}
.contact-trigger:hover .contact-arrow,.contact-trigger:focus-visible .contact-arrow{transform:translate(10px,-10px) rotate(0deg)}
.contact-strip[href] .strip-end.contact-svg-arrow{width:clamp(34px,4vw,58px);height:clamp(34px,4vw,58px);flex:0 0 auto;font-size:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.contact{position:relative;overflow:hidden;isolation:isolate}
.contact-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;border:0;background:transparent;text-align:left;font-size:clamp(90px,15vw,230px);font-weight:800;line-height:.88;letter-spacing:-.08em;margin-top:45px}
.contact-trigger:focus-visible{outline-offset:8px}
.contact-links{position:absolute;inset:0;display:grid;grid-template-rows:repeat(4,1fr);pointer-events:none}
.contact-strip{position:relative;display:flex;align-items:center;gap:28px;padding:20px 4.5%;color:var(--yellow);background:#202020;box-shadow:inset 0 24px 28px -13px #000;transform:translateX(101%);transition:transform .72s cubic-bezier(.65,0,.35,1),background .25s,color .25s;transition-delay:calc(80ms + (3 - var(--order))*65ms),0ms,0ms;min-height:0;will-change:transform}
.contact.is-open .contact-strip{transform:translateX(0);transition:transform .78s cubic-bezier(.22,1,.36,1),background .25s,color .25s;transition-delay:calc(var(--order)*75ms),0ms,0ms}
.contact.is-open .contact-links{pointer-events:auto}
.strip-number{font-size:12px;align-self:flex-start;padding-top:10px;opacity:.6}
.strip-name{font-size:clamp(32px,5.4vw,80px);font-weight:700;letter-spacing:-.055em;line-height:1.1}
.strip-end{margin-left:auto;font-size:14px;letter-spacing:0}
.contact-strip[href]:hover,.contact-strip[href]:focus-visible{background:#303030;color:white;outline-offset:-6px}
.contact-strip[href] .strip-end{font-size:40px}
.contact-strip[aria-disabled=true]{cursor:default}
@media(max-width:800px){.contact-trigger{font-size:23vw}.contact-arrow.contact-svg-arrow{width:28vw;height:28vw}.contact-strip{padding:18px 5%;gap:16px}.strip-end{font-size:12px}.strip-number{padding-top:4px}.strip-name{font-size:clamp(28px,8vw,54px)}}

/* Keep panels painted throughout exit; inert handles hidden-link accessibility. */
.contact-strip>span{opacity:0;transform:translateX(18px);transition:opacity .22s ease,transform .4s ease;transition-delay:calc((3 - var(--order))*65ms)}
.contact.is-open .contact-strip>span{opacity:1;transform:translateX(0);transition-delay:calc(170ms + var(--order)*75ms)}
.contact.is-open .contact-strip>.strip-number{opacity:.6}

/* Overlap adjacent compositor layers to cover fractional-pixel grid seams. */
.contact-links{gap:0;grid-template-rows:repeat(4,minmax(0,1fr))}
.contact-strip:not(:last-child){margin-bottom:-1px}

.brand-logo{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;line-height:1}.brand-logo img{display:block;width:.74em;height:.74em}.brand-logo .brand-name{font-size:inherit;line-height:1;margin:0;vertical-align:baseline}@supports (height:1cap){.brand-logo img{width:1cap;height:1cap}.brand-logo .brand-name{text-box-trim:trim-both;text-box-edge:cap alphabetic}}



header nav{align-items:center}.nav-logo{display:inline-flex;align-items:center;justify-content:center}.nav-logo img{display:block;width:1em;height:1em}@supports(height:1cap){.nav-logo img{width:1cap;height:1cap}}header nav .nav-logo:after{display:none}


/* A continuous yellow-to-transparent field reaching the hero baseline. */
.hero{isolation:isolate}.hero-gradient{position:absolute;z-index:-1;pointer-events:none;left:38%;top:20px;bottom:0;width:38%;background:linear-gradient(180deg,#ffe500 0%,rgba(255,229,0,.8) 25%,rgba(255,229,0,.35) 62%,rgba(255,229,0,0) 100%)}
@media(min-width:1600px){.hero-gradient{top:55px}}@media(max-width:800px){.hero-gradient{left:19%;top:145px;width:65%}}


/* Align the scroll control with the right edge of its accompanying copy. */
.hero-note{text-align:right}.hero-note .round-link{margin-left:auto}



/* Swiss editorial grid: twelve columns, consistent rules and image captions. */
.case-study{--rule:#b9b9b2;max-width:1560px;margin:0 auto;padding:42px 4.5% 80px;font-family:Arial,Helvetica,sans-serif}
.case-study .micro{font-size:12px;font-weight:600;letter-spacing:.035em;line-height:1.5}
.case-intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;border-top:2px solid var(--ink);padding:22px 0 48px}
.case-intro>.micro{grid-column:1/4;padding-top:8px}
.case-study .case-intro h1{grid-column:4/-1;font-size:clamp(52px,6.8vw,108px);font-weight:600;letter-spacing:-.055em;line-height:.98;margin:0;max-width:900px}
.case-deck{grid-column:4/11;font-size:24px;line-height:1.35;letter-spacing:-.025em;margin:0;max-width:600px}
.case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding:20px 0 36px;border-top:1px solid var(--rule)}
.case-facts dt{font-size:12px;font-weight:600;letter-spacing:.03em;margin-bottom:12px}.case-facts dd{font-size:15px;line-height:1.5;margin:0}
.case-cover{margin:0 0 44px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 24px;background:#10271f}
.case-cover>img{grid-column:4/-1;width:100%;height:auto;max-height:630px;object-fit:cover;object-position:center;display:block}
.cover-caption{grid-column:1/-1;display:grid;grid-template-columns:1fr 3fr auto;gap:24px;padding:13px 0;background:var(--paper);font-size:12px;line-height:1.5;border-bottom:1px solid var(--rule)}
.case-outcome{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:20px 0 36px;border-bottom:1px solid var(--rule)}
.case-outcome>.micro{grid-column:1/4}.case-outcome>p{grid-column:4/11;font-size:22px;letter-spacing:-.02em;line-height:1.45;margin:0}
.case-nav{display:flex;flex-wrap:wrap;gap:12px 28px;padding:20px 0 44px;font-size:14px}.case-nav a{border-bottom:1px solid transparent}.case-nav a:hover{border-color:var(--ink)}
.case-section{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:28px 0 50px;border-top:1px solid var(--rule);scroll-margin-top:30px}
.case-section>.micro{grid-column:1/4;padding-top:5px}.case-section>div{grid-column:4/11}
.case-section h2{font-size:clamp(28px,3vw,44px);font-weight:500;line-height:1.08;letter-spacing:-.04em;margin:0 0 28px}
.case-section p{font-size:17px;line-height:1.65;max-width:68ch;margin:0 0 18px}.case-section p:last-child{margin-bottom:0}
.case-list{padding:0;margin:26px 0;list-style:none}.case-list li{font-size:16px;line-height:1.6;padding:14px 0;border-top:1px solid var(--rule)}.case-list strong{font-weight:600}
.case-section .case-note{font-size:14px;line-height:1.6;color:var(--muted);max-width:68ch}
.case-figure{margin:0 0 42px;min-width:0}.case-figure a{display:block}.case-figure img{display:block;width:100%;height:auto;background:#10271f}.case-figure figcaption{display:block;font-size:13px;line-height:1.5;margin:0;padding:12px 0;border-bottom:1px solid var(--rule);color:var(--muted)}
.act-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:2px solid var(--ink);margin-bottom:48px}.act-grid article{padding:18px 0 24px;border-bottom:1px solid var(--rule)}
.act-grid h3,.decision-grid h3{font-size:25px;line-height:1.15;letter-spacing:-.035em;font-weight:500;margin:18px 0}.act-grid p,.decision-grid p{font-size:16px;line-height:1.6;margin:0}
.decision-grid{display:block;margin-bottom:48px}.decision-grid>article{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px 24px;padding:24px 0 32px;border-top:1px solid var(--rule)}
.decision-grid>article>.micro{grid-column:1/4;grid-row:1/4}.decision-grid h3{grid-column:4/8;margin:0}.decision-grid>article>p{grid-column:4/8}.decision-grid .case-figure,.decision-grid .motion-demo{grid-column:9/-1;grid-row:1/4;margin:0;align-self:start}
.motion-demo{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.motion-demo summary{cursor:pointer;font-size:14px;line-height:1.5;padding:14px 0;display:flex;justify-content:space-between;gap:12px}.motion-demo img{display:block;width:100%;height:auto}.motion-demo[open] summary span{transform:rotate(45deg)}
.case-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:12px}.case-gallery img{aspect-ratio:1;object-fit:contain}.case-source{display:inline-block;border-bottom:1px solid var(--ink);font-size:14px;margin-top:18px}.case-study .next{font-size:24px;letter-spacing:-.03em;padding:22px 0;margin-top:10px;border-top:2px solid var(--ink)}
.showcase-evidence{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:28px 0 16px;border-top:2px solid var(--ink)}.showcase-evidence>header{display:block;grid-column:1/4;padding:0;min-height:0}.showcase-evidence h2{font-size:clamp(28px,3vw,44px);font-weight:500;line-height:1.08;letter-spacing:-.04em;margin:20px 0}.showcase-evidence header p{font-size:15px;line-height:1.6;margin:0}.showcase-photos{grid-column:4/-1;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.76fr);gap:24px;align-items:start}.showcase-photos .case-figure{margin:0}.showcase-photos img{width:100%;height:auto;object-fit:cover}.showcase-photos .case-figure:first-child img{aspect-ratio:2.16}.showcase-photos .case-figure:last-child img{aspect-ratio:.462;max-height:720px}
.project-construction .cover:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0 38%,rgba(0,0,0,.16) 38.2% 38.8%,transparent 39% 61%,rgba(0,0,0,.16) 61.2% 61.8%,transparent 62%);z-index:2;pointer-events:none}.construction-tape{position:absolute;z-index:3;left:-12%;top:45%;width:124%;height:54px;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;background:var(--yellow);border:2px solid var(--ink);box-shadow:0 10px 22px #0004;color:var(--ink);font-size:13px;font-weight:800;letter-spacing:.08em;pointer-events:none}.tape-a{transform:rotate(18deg)}.tape-b{transform:rotate(-18deg)}.project-construction .view{z-index:4;background:var(--ink);color:var(--yellow);opacity:1;transform:none;text-transform:uppercase;font-weight:700}.project-construction .cover img{filter:saturate(.82) brightness(.8)}
.blu-cover img{object-position:center 64%}.blu-acts{margin-top:0}.blu-character-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:28px}.blu-character-grid .case-figure{margin:0}.blu-character-grid .case-figure:nth-child(1){grid-column:1/7}.blu-character-grid .case-figure:nth-child(2){grid-column:7/-1}.blu-character-grid .case-figure:nth-child(3){grid-column:4/10}.blu-character-grid img{aspect-ratio:1.28;object-fit:contain;background:#f2f1eb}.blu-environment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:28px}.blu-environment-grid .case-figure{margin:0}.blu-environment-grid img{width:100%;height:auto;background:#f2f1eb}.storyboard-act{padding:42px 0 22px;border-top:2px solid var(--ink)}.storyboard-act-heading{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:34px}.storyboard-act-heading>.micro{grid-column:1/4}.storyboard-act-heading h3{grid-column:4/9;font-size:clamp(34px,4vw,58px);font-weight:500;line-height:1.05;letter-spacing:-.045em;margin:0}.storyboard-act-heading p{grid-column:9/-1;font-size:16px;line-height:1.6;margin:0}.storyboard-overview{margin-bottom:30px}.storyboard-overview img{width:100%;height:auto;background:#f2f1eb}.storyboard-act-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:54px}.storyboard-act-notes article{padding-top:18px;border-top:1px solid var(--rule)}.storyboard-act-notes h4{font-size:24px;line-height:1.15;letter-spacing:-.03em;font-weight:500;margin:18px 0}.storyboard-act-notes p{font-size:16px;line-height:1.6;margin:0}.blu-video{position:relative;aspect-ratio:16/9;background:#111;margin:0 0 64px}.blu-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.blu-source-links{display:flex;gap:22px;flex-wrap:wrap}.blu-case .case-outcome{border-bottom:0}
@media(max-width:900px){.case-study{padding-top:24px}.case-intro{gap:18px;padding-bottom:30px}.case-intro>.micro{grid-column:1/-1}.case-study .case-intro h1{grid-column:1/-1;font-size:clamp(46px,9vw,76px)}.case-deck{grid-column:1/11;font-size:21px}.case-facts{grid-template-columns:1fr 1fr}.case-cover>img{grid-column:1/-1;max-height:500px}.case-outcome>p,.case-section>div{grid-column:4/-1}.decision-grid>article>.micro{grid-column:1/-1;grid-row:auto}.decision-grid h3,.decision-grid>article>p{grid-column:1/7}.decision-grid .case-figure,.decision-grid .motion-demo{grid-column:8/-1;grid-row:2/4}.case-gallery{grid-template-columns:1fr 1fr}.case-gallery>.case-figure:first-child{grid-column:1/-1}.case-gallery>.case-figure:first-child img{aspect-ratio:1.7}.showcase-evidence{display:block}.showcase-evidence>header{margin-bottom:32px}.showcase-evidence header p{max-width:52ch}.showcase-photos{grid-template-columns:1fr}.showcase-photos .case-figure:last-child{width:62%;margin-left:auto}}
@media(max-width:600px){.case-intro,.case-facts,.case-section,.case-outcome,.decision-grid>article{gap:18px}.case-facts dd{font-size:14px}.cover-caption{grid-template-columns:auto 1fr}.cover-caption>span:last-child{display:none}.case-section>.micro,.case-section>div,.case-outcome>.micro,.case-outcome>p{grid-column:1/-1}.case-section{padding:22px 0 32px}.case-section h2{font-size:30px;margin-bottom:22px}.case-outcome>p{font-size:20px}.case-section p{font-size:16px}.act-grid{grid-template-columns:1fr;gap:0}.act-grid article{padding:20px 0}.decision-grid h3,.decision-grid>article>p,.decision-grid .case-figure,.decision-grid .motion-demo{grid-column:1/-1;grid-row:auto}.case-gallery{grid-template-columns:1fr}.case-gallery>.case-figure:first-child{grid-column:auto}.case-gallery>.case-figure:first-child img{aspect-ratio:1}.case-nav{gap:14px 22px;padding-bottom:30px}.showcase-evidence{display:block}.showcase-evidence>header{margin-bottom:28px}.showcase-evidence h2{font-size:30px}.showcase-photos{display:block}.showcase-photos .case-figure{margin-bottom:28px}.showcase-photos .case-figure:last-child{width:76%;margin-left:auto}.showcase-photos .case-figure:last-child img{max-height:none}}
@media(max-width:900px){.blu-character-grid{grid-template-columns:1fr 1fr}.blu-character-grid .case-figure:nth-child(n){grid-column:auto}.blu-character-grid .case-figure:last-child{grid-column:1/-1;width:60%;margin-left:auto;margin-right:auto}.blu-environment-grid{grid-template-columns:1fr}.storyboard-act-heading>.micro{grid-column:1/4}.storyboard-act-heading h3{grid-column:4/9}.storyboard-act-heading p{grid-column:9/-1}.storyboard-act-notes{grid-template-columns:1fr 1fr}.storyboard-act-notes article:last-child{grid-column:1/-1}}
@media(max-width:600px){.construction-tape{height:42px;font-size:10px}.blu-character-grid,.blu-environment-grid{grid-template-columns:1fr}.blu-character-grid .case-figure:last-child{grid-column:auto;width:100%}.blu-character-grid img,.blu-environment-grid img{aspect-ratio:auto}.storyboard-act{padding-top:30px}.storyboard-act-heading{display:block}.storyboard-act-heading h3{font-size:34px;margin:18px 0}.storyboard-act-notes{display:block}.storyboard-act-notes article{padding:20px 0}.blu-video{margin-bottom:42px}}
.blu-source-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:26px}.blu-source-links .case-source{font-size:clamp(20px,2vw,28px);font-weight:800;line-height:1.15;letter-spacing:-.025em;margin:0;padding:8px 10px;border-bottom:2px solid var(--ink);transition:background-color .2s ease}.blu-source-links .case-source:hover,.blu-source-links .case-source:focus-visible{background:var(--yellow)}

/* The Last of the Stars: game-jam process and playable outcome. */
.stars-case{--stars-orange:#ff7138;--stars-navy:#00142f}.stars-intro h1{max-width:980px}.stars-cover{background:var(--stars-navy)}.stars-cover>img{grid-column:1/-1;max-height:none;aspect-ratio:2.4;object-fit:cover}.stars-case .case-outcome{border-bottom:0}
.stars-loop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 58px;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}.stars-loop-grid article{padding:24px 24px 32px 0;border-right:1px solid var(--rule)}.stars-loop-grid article+article{padding-left:24px}.stars-loop-grid article:last-child{border-right:0}.stars-loop-grid h3{font-size:clamp(26px,2.7vw,40px);font-weight:500;line-height:1.08;letter-spacing:-.04em;margin:38px 0 18px}.stars-loop-grid p{font-size:16px;line-height:1.6;margin:0;max-width:38ch}
.stars-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:58px}.stars-process-grid .case-figure{margin:0}.stars-process-grid img{width:100%;aspect-ratio:2/3;object-fit:cover;background:#d47c12}
.stars-gameplay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:58px}.stars-gameplay-grid .case-figure{margin:0}.stars-gameplay-grid .case-figure:first-child{grid-column:1/-1}.stars-gameplay-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--stars-navy)}
.stars-team dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-top:1px solid var(--rule)}.stars-team dl>div{padding:18px 18px 20px 0;border-bottom:1px solid var(--rule)}.stars-team dl>div:nth-child(odd){border-right:1px solid var(--rule)}.stars-team dl>div:nth-child(even){padding-left:18px}.stars-team dt{font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:8px}.stars-team dd{font-size:16px;line-height:1.45;margin:0}
.stars-source-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:28px}.stars-source-links .case-source{font-size:clamp(20px,2vw,28px);font-weight:800;line-height:1.15;letter-spacing:-.025em;margin:0;padding:8px 10px;border-bottom:2px solid var(--ink);transition:background-color .2s ease}.stars-source-links .case-source:hover,.stars-source-links .case-source:focus-visible{background:var(--yellow)}
@media(max-width:900px){.stars-process-grid{grid-template-columns:1fr 1fr}.stars-process-grid .case-figure:first-child{grid-column:1/-1;width:60%;margin:0 auto}.stars-loop-grid{grid-template-columns:1fr}.stars-loop-grid article,.stars-loop-grid article+article{padding:22px 0 26px;border-right:0;border-bottom:1px solid var(--rule)}.stars-loop-grid article:last-child{border-bottom:0}.stars-loop-grid h3{margin-top:20px}.stars-cover>img{aspect-ratio:2.1}}
@media(max-width:600px){.stars-process-grid,.stars-gameplay-grid{display:block}.stars-process-grid .case-figure,.stars-process-grid .case-figure:first-child,.stars-gameplay-grid .case-figure{width:100%;margin:0 0 32px}.stars-gameplay-grid img{aspect-ratio:auto}.stars-team dl{grid-template-columns:1fr}.stars-team dl>div:nth-child(odd){border-right:0}.stars-team dl>div:nth-child(even){padding-left:0}.stars-cover>img{aspect-ratio:1.55}.stars-source-links .case-source{font-size:20px}}

/* Private GA4 dashboard. The route is intentionally absent from public navigation. */
.analytics-header{border-bottom:1px solid var(--line)}
.analytics-page{padding:54px 4.5% 90px;max-width:1600px;margin:0 auto}
.analytics-intro{display:grid;grid-template-columns:1fr 1.65fr 1fr;gap:30px;align-items:end;margin-bottom:44px}
.analytics-intro h1{font-size:clamp(54px,7.5vw,118px);line-height:.88;letter-spacing:-.075em}
.analytics-intro>div{max-width:390px;justify-self:end}.analytics-intro p{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 20px}
.analytics-open{display:inline-block;background:var(--yellow);padding:13px 17px;font-size:14px;font-weight:800;transition:background-color .2s,color .2s}.analytics-open:hover,.analytics-open:focus-visible{background:var(--ink);color:white}
.analytics-frame{position:relative;width:100%;height:min(78vh,920px);min-height:640px;border:2px solid var(--ink);background:#eee;box-shadow:16px 16px 0 var(--yellow);overflow:hidden}
.analytics-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.analytics-note{margin:32px 0 0;font-size:13px;line-height:1.65;color:var(--muted)}
@media(max-width:900px){.analytics-intro{grid-template-columns:1fr 1.6fr}.analytics-intro>div{grid-column:2;justify-self:start}.analytics-frame{min-height:600px}}
@media(max-width:600px){.analytics-page{padding:38px 5% 70px}.analytics-intro{display:block}.analytics-intro h1{margin:18px 0 28px}.analytics-intro>div{max-width:none}.analytics-frame{height:72vh;min-height:520px;box-shadow:8px 8px 0 var(--yellow)}}

/* Personal work: an irregular, dense image wall between case studies and profile. */
.personal-work{padding:120px 4.5% 130px;background:#171717;color:#f5f4ed;scroll-margin-top:20px}
.personal-heading{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:30px;align-items:end;padding-bottom:54px;border-bottom:1px solid #ffffff35}
.personal-heading h2{font-size:clamp(44px,5.8vw,92px);font-weight:500;line-height:1.02;letter-spacing:-.06em;margin:0}
.personal-heading>div{max-width:360px;justify-self:end}.personal-heading p{font-size:14px;line-height:1.8;color:#b8b8b1;margin:0 0 22px}.personal-heading a{display:inline-block;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:14px}.personal-heading a:hover,.personal-heading a:focus-visible{color:var(--yellow)}
.personal-masonry{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:"tower tower tower tower hero hero hero hero hero hero hero hero" "tower tower tower tower romero romero romero romero landscape landscape landscape landscape" "quad quad quad quad quad quad quad quad quad quad quad quad" "motion motion motion motion motion motion motion motion motion motion motion motion";grid-template-rows:clamp(330px,37vw,590px) clamp(260px,28vw,440px) clamp(220px,23vw,350px) clamp(330px,37vw,590px);gap:64px 24px;margin-top:54px}
.personal-piece{min-width:0}.personal-piece-hero{grid-area:hero}.personal-piece-tower{grid-area:tower}.personal-piece-romero{grid-area:romero}.personal-piece-landscape{grid-area:landscape}.personal-piece-quad{grid-area:quad}.personal-piece-motion{grid-area:motion;width:100%}
.personal-piece>a{display:flex;flex-direction:column;height:100%}.personal-piece-media{position:relative;flex:1;min-height:0;margin:0;overflow:hidden;background:#262626}.personal-piece-media>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.22,1,.36,1),filter .3s ease}.personal-piece-tower .personal-piece-media>img{object-position:center top}.personal-piece-composite{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr;gap:2px}.personal-piece-composite>img{min-width:0;min-height:0}
.personal-piece-media figcaption{position:absolute;inset:auto 0 0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--yellow);color:var(--ink);font-size:13px;font-weight:800;text-transform:uppercase;transform:translateY(102%);transition:transform .38s cubic-bezier(.22,1,.36,1)}.personal-piece-media figcaption span:last-child{font-size:24px;line-height:1}.personal-piece-label{display:grid;grid-template-columns:1fr auto;gap:7px 20px;padding-top:15px;border-top:1px solid #ffffff45}.personal-piece-label>span{font-size:10px;line-height:1.45;letter-spacing:.045em;text-transform:uppercase;color:#aaa}.personal-piece-label>span:last-child{grid-column:2;grid-row:1;text-align:right}.personal-piece-label h3{grid-column:1/-1;font-size:clamp(18px,1.75vw,27px);line-height:1.1;letter-spacing:-.045em;margin:0;color:#f5f4ed}.personal-piece a:hover img,.personal-piece a:focus-visible img{transform:scale(1.025);filter:saturate(1.08)}.personal-piece a:hover figcaption,.personal-piece a:focus-visible figcaption{transform:none}

/* Standalone personal project pages. */
.personal-detail{max-width:1560px;margin:0 auto;padding:42px 4.5% 90px}
.personal-detail-intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:24px 0 55px;border-top:2px solid var(--ink)}.personal-detail-intro>.micro{grid-column:1/4;padding-top:8px}.personal-detail-intro h1{grid-column:4/-1;font-size:clamp(48px,7vw,112px);font-weight:600;line-height:.96;letter-spacing:-.065em;margin:0}.personal-detail-intro p{grid-column:4/10;font-size:21px;line-height:1.5;letter-spacing:-.025em;margin:12px 0 0}
.personal-detail-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0;padding:20px 0 36px;border-top:1px solid var(--line)}.personal-detail-facts div{min-width:0}.personal-detail-facts dt{font-size:11px;font-weight:700;letter-spacing:.05em;margin-bottom:10px}.personal-detail-facts dd{font-size:14px;line-height:1.55;margin:0}
.personal-detail-statement{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:28px 0 58px;border-top:1px solid var(--line)}.personal-detail-statement>.micro{grid-column:1/4}.personal-detail-statement>div{grid-column:4/10}.personal-detail-statement p{font-size:20px;line-height:1.65;letter-spacing:-.015em;margin:0}.personal-detail-statement .personal-credit{margin-top:24px;padding:16px 18px;background:var(--yellow);font-size:13px;line-height:1.55;font-weight:600;letter-spacing:0}
.personal-source-quote{margin:32px 0 0;padding:25px 30px;border-left:5px solid var(--ink);background:#eeeae1}.personal-source-quote p{font-size:clamp(16px,1.6vw,20px);line-height:1.6}.personal-source-quote cite{display:block;margin-top:18px;font-size:12px;font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.personal-detail-images{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:44px 24px}.personal-detail-figure{grid-column:3/11;margin:0}.personal-detail-figure:nth-child(3n+2){grid-column:1/8}.personal-detail-figure:nth-child(3n){grid-column:6/-1}.personal-detail-figure.personal-detail-lead{grid-column:1/-1}.personal-detail-figure img{display:block;width:100%;height:auto;background:#e8e8e2}.personal-detail-figure figcaption{padding:12px 0;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.04em;color:var(--muted)}
.personal-detail-images-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}.personal-detail-images-grid .personal-detail-figure:nth-child(n){grid-column:auto;margin:0}.personal-detail-images-grid .personal-detail-figure img{aspect-ratio:16/9;object-fit:cover}
.personal-detail-images-hecor{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}.personal-detail-images-hecor .personal-detail-figure:nth-child(n){grid-column:auto;margin:0}.personal-detail-images-hecor .personal-detail-figure.personal-detail-lead{grid-column:1/-1}.personal-detail-images-hecor .personal-detail-figure:not(.personal-detail-lead) img{aspect-ratio:4/3;object-fit:cover;background:#050505}
.personal-detail-video{margin:0 0 52px}.personal-detail-video video{display:block;width:100%;aspect-ratio:16/9;background:#050505}.personal-detail-video figcaption{padding:12px 0;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.04em;color:var(--muted)}
.personal-detail-images-mo{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}.personal-detail-images-mo .personal-detail-figure:nth-child(n){grid-column:auto;margin:0}.personal-detail-images-mo .personal-detail-figure:nth-child(-n+2) img{aspect-ratio:4/5;object-fit:cover;object-position:center top}.personal-detail-images-mo .personal-detail-figure:nth-child(3){grid-column:1/-1}
.personal-detail-links{display:flex;flex-direction:column;margin-top:70px;border-top:2px solid var(--ink)}.personal-detail-links a{display:flex;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line);font-size:clamp(20px,2.2vw,32px);font-weight:700;letter-spacing:-.035em}.personal-detail-links a:hover,.personal-detail-links a:focus-visible{background:var(--yellow);padding-left:12px;padding-right:12px}

@media(max-width:900px){.personal-heading{grid-template-columns:1fr 1.5fr}.personal-heading>div{grid-column:2;justify-self:start}.personal-masonry{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-areas:"hero hero hero hero hero hero hero hero" "tower tower tower tower romero romero romero romero" "tower tower tower tower landscape landscape landscape landscape" "quad quad quad quad quad quad quad quad" "motion motion motion motion motion motion motion motion";grid-template-rows:440px 320px 320px 200px 440px;gap:50px 20px}.personal-piece-motion{width:100%}.personal-detail-intro>.micro{grid-column:1/-1}.personal-detail-intro h1{grid-column:1/-1}.personal-detail-intro p{grid-column:1/10}.personal-detail-statement>div{grid-column:4/-1}}
@media(max-width:600px){header nav{gap:11px;font-size:10px}.personal-work{padding:74px 5% 84px}.personal-heading{display:block;padding-bottom:34px}.personal-heading h2{margin:18px 0 24px}.personal-heading>div{max-width:none}.personal-masonry{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"hero hero" "tower romero" "tower landscape" "quad quad" "motion motion";grid-template-rows:310px 260px 260px 350px 310px;gap:38px 14px;margin-top:32px}.personal-piece-motion{width:100%}.personal-piece-composite{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.personal-piece-label{gap:6px 10px}.personal-piece-label>span{font-size:8px}.personal-piece-label h3{font-size:17px}.personal-piece-media figcaption{padding:12px 14px;font-size:11px;transform:none;opacity:0;transition:opacity .25s}.personal-piece a:hover figcaption,.personal-piece a:focus-visible figcaption{opacity:1}.personal-detail{padding:24px 5% 70px}.personal-detail-intro{display:block;padding-bottom:36px}.personal-detail-intro h1{font-size:clamp(42px,13vw,68px);margin:18px 0 24px}.personal-detail-intro p{font-size:18px}.personal-detail-facts{grid-template-columns:1fr}.personal-detail-facts div{padding-bottom:8px}.personal-detail-statement{display:block;padding-bottom:42px}.personal-detail-statement>div{margin-top:20px}.personal-detail-statement p{font-size:17px}.personal-detail-video{margin-bottom:38px}.personal-detail-images{display:block}.personal-detail-figure,.personal-detail-figure:nth-child(n){margin:0 0 34px}.personal-detail-links{margin-top:46px}.personal-detail-links a{font-size:19px}.dock{gap:2px;padding:7px}.dock>span{display:none}.dock>a{padding:9px 10px;font-size:12px}}

/* Resume preview and downloads. */
.resume-header{border-bottom:1px solid var(--line)}
.resume-page{max-width:1600px;margin:0 auto;padding:54px 4.5% 96px}
.resume-intro{display:grid;grid-template-columns:1fr 1.65fr 1fr;gap:30px;align-items:end;margin-bottom:44px}
.resume-intro h1{font-size:clamp(64px,9vw,142px);line-height:.86;letter-spacing:-.075em;margin:0}
.resume-intro>div{justify-self:end;width:min(100%,410px)}
.resume-intro p{font-size:16px;line-height:1.65;margin:0 0 22px}
.resume-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.resume-actions a{display:flex;justify-content:space-between;background:var(--yellow);padding:14px 17px;font-size:15px;font-weight:800;transition:background-color .2s,color .2s,padding .2s}
.resume-actions a:hover,.resume-actions a:focus-visible{background:var(--ink);color:white;padding-left:22px;padding-right:22px}
.resume-preview{margin:0}
.resume-sheet{display:block;width:min(100%,1100px);margin:0 auto;border:2px solid var(--ink);background:white;box-shadow:16px 16px 0 var(--yellow);overflow:hidden}
.resume-sheet img{display:block;width:100%;height:auto}
.resume-preview p{margin:30px 0 0;font-size:13px;color:var(--muted)}
.resume-preview p a{color:var(--ink);font-weight:700;border-bottom:1px solid currentColor}
@media(max-width:900px){.resume-intro{grid-template-columns:1fr 1.6fr}.resume-intro>div{grid-column:2;justify-self:start}}
@media(max-width:600px){.resume-page{padding:38px 5% 72px}.resume-intro{display:block}.resume-intro h1{font-size:20vw;margin:18px 0 28px}.resume-intro>div{width:100%}.resume-sheet{box-shadow:8px 8px 0 var(--yellow)}}
@media(max-width:380px){header{gap:9px}.wordmark{font-size:14px}header nav{gap:6px;font-size:8px}}

/* Keep small-screen navigation within the viewport. */
html,body{overflow-x:clip}
@media(max-width:600px){
  header{flex-wrap:wrap}
  header nav{order:3;width:100%;justify-content:space-between;gap:8px}
  .dock{width:calc(100% - 20px);max-width:430px;justify-content:space-between;gap:0;font-size:clamp(9px,2.6vw,12px)}
  .dock>a{padding:9px clamp(4px,1.6vw,10px)}
  .organization-row h3{overflow-wrap:anywhere}
}
