:root{--bg:#101311;--surface:#191d19;--surface2:#20261f;--text:#f0f1e9;--muted:#a5aca2;--line:#343b32;--accent:#d8ed97;--ink:#182013;--max:1400px;--sans:'Segoe UI',Arial,sans-serif;--display:Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}p,h1,h2,h3,h4{margin:0}p+p{margin-top:20px}h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.08;letter-spacing:-.045em}h2{font-size:clamp(38px,4.7vw,65px)}h3{font-size:30px}.wrap{width:min(calc(100% - 112px),var(--max));margin-inline:auto}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;line-height:1.5}.muted{color:var(--muted)}.accent{color:var(--accent)}.skip{position:fixed;left:20px;top:-100px;background:var(--accent);color:var(--ink);z-index:100;padding:12px 20px}.skip:focus{top:10px}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;font-size:17px;font-weight:600;letter-spacing:-.03em}.monogram{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--accent);color:var(--accent);font-family:var(--display);font-size:17px;font-weight:750;letter-spacing:-.08em}.nav{display:flex;align-items:center;gap:34px;font-size:14px}.nav a{transition:color .2s}.nav a:hover,.nav a[aria-current=page]{color:var(--accent)}.nav .nav-cv{border:1px solid var(--line);padding:9px 16px}.nav-cv:hover{border-color:var(--accent)}.nav-toggle{display:none;color:var(--text);background:none;border:1px solid var(--line);padding:8px 14px}.arrow{display:inline-block;margin-left:14px;transition:transform .2s}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:14px;font-weight:600;border-bottom:1px solid var(--line);padding-block:9px}.text-link:hover{color:var(--accent);border-color:var(--accent)}.text-link:hover .arrow{transform:translate(3px,-3px)}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:15px 22px;background:var(--accent);color:var(--ink);font-size:14px;font-weight:650;border:1px solid var(--accent);transition:background .2s,transform .2s}.btn:hover{background:#e7f7b8;transform:translateY(-2px)}.btn.secondary{color:var(--text);background:transparent;border-color:var(--line)}.btn.secondary:hover{border-color:var(--accent)}.section-top{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:46px}.section-top .eyebrow{color:var(--muted);margin-bottom:19px}.section-top>p{font-size:16px;color:var(--muted);max-width:330px}.hero{position:relative;display:grid;grid-template-columns:1.08fr 1fr;min-height:660px;align-items:center;padding-block:70px 60px;gap:40px}.hero-copy{position:relative;z-index:2}.hero-copy>.eyebrow{color:var(--accent);margin-bottom:26px}.hero h1{font-size:clamp(54px,6.3vw,92px);line-height:1.02;letter-spacing:-.065em;font-weight:550}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--accent);letter-spacing:-.055em}.hero-copy>p{color:var(--muted);max-width:420px;margin-top:28px;font-size:17px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:33px}.hero-art{position:relative;min-width:0;height:510px;margin:0 0 0 -35px}.hero-image{width:100%;height:100%;object-fit:cover;object-position:45% center;filter:brightness(.8);border-radius:160px 0 0 0}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,11,7,.88),transparent 50%);pointer-events:none;border-radius:160px 0 0 0}.hero-art .frame-note{position:absolute;left:30px;bottom:30px;z-index:1;right:30px;display:flex;justify-content:space-between;align-items:end;gap:12px}.frame-note .eyebrow{color:var(--accent);margin-bottom:8px}.frame-note strong{font-family:var(--display);font-size:25px;font-weight:500;letter-spacing:-.04em}.round-arrow{width:45px;height:45px;display:grid;place-items:center;border:1px solid #a0aa9470;border-radius:50%;flex-shrink:0}.frame-index{position:absolute;right:-16px;top:25px;padding:9px 15px;background:var(--accent);color:var(--ink);font-size:11px;letter-spacing:.12em;z-index:2}.experience-strip{display:flex;justify-content:space-between;gap:25px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:25px;color:var(--muted);font-size:14px}.experience-strip strong{color:var(--text);font-family:var(--display);font-size:18px;font-weight:650;letter-spacing:-.025em}.experience-strip span small{font-size:10px;letter-spacing:.1em;text-transform:uppercase;display:block}.selected{padding-top:112px}.project-feature{display:grid;grid-template-columns:1.45fr 1fr;border-top:1px solid var(--line);padding-top:25px;gap:48px}.project-visual{display:block;position:relative;overflow:hidden;background:var(--surface);aspect-ratio:1.6}.project-visual img{width:100%;height:100%;object-fit:cover;transition:transform .6s,filter .6s;filter:saturate(.85)}.project-visual:hover img{transform:scale(1.035);filter:saturate(1)}.project-visual .visual-label{position:absolute;top:20px;left:20px;background:rgba(16,19,17,.9);padding:8px 12px;font-size:11px;letter-spacing:.09em;text-transform:uppercase}.project-visual .round-arrow{position:absolute;bottom:20px;right:20px;background:var(--accent);color:var(--ink);border:0;transition:transform .2s}.project-visual:hover .round-arrow{transform:rotate(45deg)}.project-copy{padding-block:18px;display:flex;flex-direction:column;align-items:start;justify-content:center}.project-copy .eyebrow{color:var(--muted);margin-bottom:24px}.project-copy h3{font-size:clamp(32px,3.5vw,49px);margin-bottom:17px}.project-copy>p{font-size:16px;color:var(--muted);max-width:380px}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin:24px 0}.tag{font-size:11px;border:1px solid var(--line);padding:5px 9px;color:#c3cabb;letter-spacing:.015em}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:65px}.project-pair .project-copy{padding-top:25px}.project-pair .project-copy .eyebrow{margin-bottom:13px}.project-pair .project-copy h3{font-size:35px;margin-bottom:12px}.project-pair .project-copy>p{max-width:510px}.project-pair .project-visual{aspect-ratio:1.75}.selected-end{display:flex;justify-content:space-between;align-items:center;margin-top:32px;padding-top:28px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.approach{margin-top:110px;padding-block:70px;background:var(--accent);color:var(--ink)}.approach-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:80px}.approach h2{font-size:50px;margin-top:20px}.approach-items{display:grid;grid-template-columns:1fr 1fr;gap:35px}.approach-item{border-top:1px solid #18201350;padding-top:18px}.approach-item span{font-family:monospace;font-size:12px}.approach-item h3{font-size:22px;margin:18px 0 12px;letter-spacing:-.025em}.approach-item p{font-size:15px;line-height:1.7;opacity:.85}.about{padding-block:120px;display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.portrait-frame{position:relative;max-width:420px}.portrait-frame img{width:100%;aspect-ratio:.85;object-fit:cover;object-position:center 35%;filter:saturate(.65);border-radius:0 100px 0 0}.portrait-caption{margin-top:16px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.about h2{margin:22px 0 25px}.about-copy>p{color:var(--muted);font-size:17px;max-width:600px}.experience-list{margin:32px 0;border-top:1px solid var(--line)}.experience-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px}.experience-item strong{font-weight:550}.experience-item small{display:block;color:var(--muted);font-size:13px;margin-top:3px}.experience-item time{font-size:12px;color:var(--muted)}.contact{padding:70px 0 75px;border-top:1px solid var(--line)}.contact-main{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:25px}.contact h2{font-size:clamp(40px,5.2vw,72px);max-width:660px}.contact-links{margin-top:27px;display:flex;gap:35px;align-items:center;flex-wrap:wrap}.email-link{font-size:21px;color:var(--accent)}.email-link:hover{text-decoration:underline;text-underline-offset:6px}.copy-email{border:1px solid var(--line);background:transparent;color:var(--muted);padding:7px 12px;font-size:12px}.footer{border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.footer a:hover{color:var(--text)}.case-hero{padding-top:55px}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:42px;display:inline-block}.breadcrumb:hover{color:var(--accent)}.case-heading{display:flex;align-items:end;justify-content:space-between;gap:45px}.case-heading .eyebrow{color:var(--accent);margin-bottom:20px}.case-heading h1{font-size:clamp(50px,6.9vw,100px);font-weight:500}.case-heading>p{max-width:375px;color:var(--muted);font-size:17px;line-height:1.6}.case-meta{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:38px 0;padding-block:20px;gap:20px}.case-meta dt{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.case-meta dd{margin:0;font-size:14px}.case-cover{position:relative;aspect-ratio:2.15;background:var(--surface);overflow:hidden}.case-cover>img{width:100%;height:100%;object-fit:cover}.case-cover .play-video{position:absolute;left:32px;bottom:30px}.play-video{display:inline-flex;align-items:center;gap:15px;background:var(--accent);color:var(--ink);border:0;padding:14px 22px;font-size:14px;font-weight:600}.play-icon{font-size:12px}.media-caption{font-size:11px;color:var(--muted);margin-top:10px}.case-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:80px;margin-top:75px;margin-bottom:90px}.case-toc{position:sticky;top:30px;align-self:start}.case-toc .eyebrow{margin-bottom:20px;color:var(--muted)}.case-toc a{display:block;border-top:1px solid var(--line);padding:13px 0;font-size:13px;color:var(--muted)}.case-toc a:hover{color:var(--accent)}.case-toc a span{font-family:monospace;font-size:11px;margin-right:14px;color:var(--accent)}.case-section{padding-bottom:70px;margin-bottom:65px;border-bottom:1px solid var(--line);scroll-margin-top:35px}.case-section:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}.case-section h2{font-size:clamp(34px,3.7vw,49px);max-width:760px;margin:14px 0 27px}.case-section>.eyebrow{color:var(--accent)}.case-section>p{color:var(--muted);max-width:760px}.case-section p strong{color:var(--text);font-weight:500}.contributions{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:18px 32px;margin:28px 0}.contributions li{border-top:1px solid var(--line);padding-top:15px;font-size:15px}.contributions li span{display:block;color:var(--muted);font-size:14px;margin-top:5px}.ownership{border-left:2px solid var(--accent);padding:13px 0 13px 21px;font-size:14px;color:var(--muted);margin-top:28px;background:linear-gradient(90deg,#d8ed9708,transparent)}.ownership strong{color:var(--text);font-weight:500}.diagram{background:var(--surface);padding:30px;margin:30px 0;border:1px solid var(--line)}.diagram-title{display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:30px}.flow{display:flex;align-items:stretch;gap:15px}.node{flex:1;border:1px solid #515f42;background:var(--surface2);padding:20px 18px;min-width:0}.node small{font-size:10px;letter-spacing:.08em;color:var(--accent);display:block;margin-bottom:10px;text-transform:uppercase}.node strong{font-family:var(--display);font-size:17px;line-height:1.4;display:block;font-weight:500;letter-spacing:-.025em}.node p{font-size:12px;line-height:1.6;color:var(--muted);margin-top:10px}.connector{display:flex;align-items:center;color:var(--accent);font-size:20px}.diagram-note{font-size:12px;color:var(--muted);margin-top:22px;line-height:1.7}.decision-list{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:30px}.decision-list h3{font-size:21px;letter-spacing:-.025em;margin-bottom:12px}.decision-list p{font-size:15px;color:var(--muted)}.case-image{margin:30px 0 0}.case-image img{width:100%;aspect-ratio:1.78;object-fit:cover}.case-image figcaption{font-size:11px;color:var(--muted);margin-top:9px}.steps{margin-top:30px;counter-reset:steps}.step{display:grid;grid-template-columns:45px 1fr;gap:16px;border-top:1px solid var(--line);padding:23px 0;counter-increment:steps}.step:before{content:'0' counter(steps);color:var(--accent);font-size:13px;font-family:monospace;padding-top:4px}.step h3{font-size:23px;margin-bottom:10px}.step p{font-size:15px;color:var(--muted)}.next-project{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:45px 0;margin-bottom:40px}.next-project .eyebrow{color:var(--muted);margin-bottom:10px}.next-project h2{font-size:42px}.next-project:hover h2{color:var(--accent)}.next-project .round-arrow{width:65px;height:65px;font-size:25px}.archive-head{padding:65px 0 55px}.archive-head h1{font-size:clamp(54px,7vw,90px);margin:22px 0}.archive-head>p{max-width:610px;color:var(--muted)}.archive-label{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:20px 0;margin:30px 0;color:var(--accent)}.archive-label h2{font-size:32px}.archive-label span{font-size:12px;color:var(--muted)}.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 35px;margin-bottom:70px}.archive-card img{width:100%;aspect-ratio:1.78;object-fit:cover;background:var(--surface)}.archive-card .eyebrow{color:var(--muted);margin-top:22px}.archive-card h3{font-size:28px;margin:10px 0 15px}.archive-card p{color:var(--muted);font-size:15px}.archive-actions{display:flex;gap:25px;flex-wrap:wrap;margin-top:13px}.tabletop-row{display:grid;grid-template-columns:1fr 1.5fr auto;gap:50px;align-items:start;padding:28px 0;border-bottom:1px solid var(--line)}.tabletop-row h3{font-size:24px}.tabletop-row .eyebrow{font-size:10px;color:var(--accent);margin-bottom:9px}.tabletop-row p{font-size:15px;color:var(--muted)}.tabletop-row .text-link{white-space:nowrap;margin-top:0}.tabletop{margin-bottom:100px}.video-dialog{padding:0;background:#101311;color:var(--text);border:1px solid var(--line);width:min(1100px,94vw);max-width:94vw}.video-dialog::backdrop{background:#000d;backdrop-filter:blur(7px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;gap:15px;font-size:14px}.dialog-close{background:none;color:var(--text);border:1px solid var(--line);padding:5px 12px}.video-host{aspect-ratio:16/9;background:#000}.video-host iframe{width:100%;height:100%;border:0}.dialog-footer{padding:12px 20px;font-size:12px;color:var(--muted)}.dialog-footer a{text-decoration:underline}.reveal{animation:rise .7s ease both}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-art{animation:rise 1s .12s ease both}.in-view{transition:opacity .6s,transform .6s}.js-motion .in-view:not(.shown){opacity:0;transform:translateY(22px)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--ink);padding:10px 20px;z-index:100;font-size:14px;pointer-events:none}
@media(min-width:1600px){.hero{gap:70px;min-height:750px}.hero-art{height:600px}.hero h1{font-size:103px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{gap:20px;min-height:580px}.hero-art{height:440px;margin-left:-25px}.hero h1{font-size:65px}.hero-copy>p{font-size:16px}.hero-actions{gap:16px}.experience-strip{gap:15px}.experience-strip strong{font-size:15px}.project-feature{gap:30px}.project-copy h3{font-size:38px}.approach-layout{gap:40px}.about{gap:50px}.case-body{grid-template-columns:170px minmax(0,1fr);gap:40px}.flow{gap:9px}.node{padding:16px 12px}.diagram{padding:22px}.tabletop-row{gap:25px}}
@media(max-width:760px){body{font-size:16px}.wrap{width:calc(100% - 40px)}.site-header{height:76px}.brand{font-size:16px}.monogram{width:32px;height:32px;font-size:14px}.nav-toggle{display:block;font-size:13px}.nav{display:none;position:absolute;top:75px;left:-20px;right:-20px;background:var(--surface);padding:24px;align-items:stretch;gap:20px;flex-direction:column;border-bottom:1px solid var(--line)}.nav.is-open{display:flex}.nav .nav-cv{width:max-content}.hero{grid-template-columns:1fr;padding-top:47px;gap:38px}.hero h1{font-size:clamp(53px,10vw,76px)}.hero-copy>p{max-width:500px;margin-top:24px}.hero-art{height:350px;margin:0}.hero-image,.hero-art:after{border-radius:90px 0 0 0}.frame-index{right:0}.hero-art .frame-note{left:22px;right:22px;bottom:22px}.frame-note strong{font-size:23px}.hero-actions{gap:24px}.experience-strip{display:grid;grid-template-columns:1fr 1fr;gap:22px}.experience-strip>.eyebrow{grid-column:1/-1}.experience-strip strong{font-size:17px}.selected{padding-top:70px}.section-top{display:block;margin-bottom:32px}.section-top>p{margin-top:20px}.section-top h2{font-size:43px}.project-feature{grid-template-columns:1fr;gap:0}.project-copy{padding:26px 0 0}.project-copy .eyebrow{margin-bottom:16px}.project-copy>p{max-width:none}.project-pair{grid-template-columns:1fr;gap:46px;margin-top:45px}.project-pair .project-copy h3{font-size:33px}.project-pair .project-visual{aspect-ratio:1.6}.selected-end{align-items:start;gap:20px;flex-direction:column}.approach{margin-top:65px;padding:50px 0}.approach-layout{grid-template-columns:1fr;gap:35px}.approach h2{font-size:42px;max-width:300px}.approach-items{gap:28px 24px}.approach-item h3{font-size:20px}.about{padding:70px 0;grid-template-columns:1fr;gap:45px}.portrait-frame{max-width:none;display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:end}.portrait-frame img{max-height:350px;aspect-ratio:.85;border-radius:0 70px 0 0}.portrait-caption{flex-direction:column;gap:5px;font-size:12px;align-self:end}.about h2{font-size:43px}.experience-item{grid-template-columns:1fr}.experience-item time{margin-top:-5px}.contact{padding:48px 0}.contact-main{align-items:start;flex-direction:column}.contact h2{font-size:45px}.contact-links{gap:18px}.email-link{font-size:18px;overflow-wrap:anywhere}.footer{flex-direction:column;gap:7px}.case-hero{padding-top:32px}.breadcrumb{margin-bottom:32px}.case-heading{display:block}.case-heading h1{font-size:54px}.case-heading>p{margin-top:22px;max-width:none}.case-meta{grid-template-columns:1fr 1fr;gap:22px;margin:30px 0}.case-meta dd{font-size:13px}.case-cover{aspect-ratio:1.35}.case-cover .play-video{bottom:18px;left:18px}.play-video{padding:11px 15px;font-size:13px}.case-body{display:block;margin-top:35px}.case-toc{position:static;display:flex;flex-wrap:wrap;gap:0 20px;margin-bottom:45px}.case-toc .eyebrow{width:100%;margin-bottom:10px}.case-toc a{padding:8px 0;border:0;font-size:12px}.case-toc a span{margin-right:7px}.case-section{padding-bottom:42px;margin-bottom:40px}.case-section h2{font-size:36px}.contributions{grid-template-columns:1fr;gap:18px}.flow{flex-direction:column}.connector{justify-content:center;transform:rotate(90deg);height:18px}.diagram-title{font-size:10px;gap:10px}.node{padding:17px}.node strong{font-size:18px}.node p{font-size:13px}.decision-list{grid-template-columns:1fr;gap:26px}.next-project{padding:30px 0;gap:15px}.next-project h2{font-size:32px}.next-project .round-arrow{width:48px;height:48px}.archive-head{padding-top:43px}.archive-head h1{font-size:58px}.archive-grid{grid-template-columns:1fr;gap:40px}.archive-label h2{font-size:29px}.tabletop-row{grid-template-columns:1fr;gap:15px}.tabletop-row .text-link{justify-self:start}.dialog-header{padding:12px;font-size:12px}.dialog-footer{font-size:11px}.tag{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .in-view:not(.shown){opacity:1;transform:none}}

/* Four selected projects: one featured case and three supporting cards. */
@media(min-width:761px){.project-pair{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.project-pair .project-copy h3{font-size:30px}.project-pair .visual-label{left:12px;top:12px;font-size:9px;padding:6px 8px}.project-pair .project-copy .tag-row{margin:18px 0}.project-pair .project-visual{aspect-ratio:1.65}}
.hero h1{font-size:clamp(54px,5.6vw,86px)}
.trailer-cover{aspect-ratio:16/9;background:#000}.trailer-cover img{object-fit:contain}
@media(max-width:760px){.hero h1{font-size:clamp(49px,9.6vw,70px)}.project-pair{grid-template-columns:1fr}}

/* Existing prototype work: specific responsibilities and mechanics. */
.archive-card>p:not(.eyebrow){font-size:16px}.prototype-logic{margin:18px 0 0;padding-left:19px;color:var(--muted);font-size:16px;line-height:1.65}.prototype-logic li+li{margin-top:7px}.prototype-logic li::marker{color:var(--accent)}.prototype-image{margin:0}.prototype-image img{object-fit:contain}.prototype-image figcaption{font-size:13px;color:var(--muted);margin-top:8px}.prototype-reflection{margin-top:18px}.archive-card[id]{scroll-margin-top:30px}
.prototype-example{margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.prototype-example summary{cursor:pointer;color:var(--accent);font-size:15px}.prototype-example p{margin-top:14px;font-size:16px}.prototype-example code{font-size:.85em;overflow-wrap:anywhere}.prototype-example .example-source{font-size:13px}.prototype-example summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
