/* Shared system. Edit these tokens to re-theme every page. */
:root{color-scheme:dark;--bg:#191b1b;--surface:#222525;--surface-2:#2a2c2b;--ink:#f1ecdf;--muted:#b9b6aa;--amber:#e6b36d;--tan:#b9a88a;--red:#d78378;--purple:#b3a0cc;--line:#41433e;--max:1240px;--sans:Arial,Helvetica,sans-serif;--mono:'Courier New',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--amber);color:var(--bg)}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--amber)}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.06;letter-spacing:-.045em}h1{font-size:clamp(3.3rem,7.7vw,6.7rem);font-weight:900}h2{font-size:clamp(2rem,4.3vw,3.55rem)}h3{font-size:1.6rem}p+p{margin-top:1rem}p{max-width:65ch}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--amber);outline-offset:6px;border-radius:2px}.wrap{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.skip{position:fixed;left:20px;top:-100px;z-index:99;background:var(--amber);color:var(--bg);padding:12px 20px}.skip:focus{top:10px}.site-header{position:sticky;top:0;z-index:20;background:rgba(25,27,27,.97);border-bottom:1px solid var(--line)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:800;font-size:17px;letter-spacing:-.02em}.monogram{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--tan);font-size:18px;color:var(--amber)}.wordmark small{display:block;font:11px/1.4 var(--mono);letter-spacing:.13em;color:var(--muted)}nav{display:flex;gap:27px;align-items:center}nav a{font-size:14px;text-decoration:none;padding:31px 0 27px;border-bottom:3px solid transparent}nav a[aria-current=page]{border-bottom-color:var(--amber);color:var(--amber)}.menu-toggle{display:none;border:1px solid var(--line);padding:8px 14px;color:var(--ink);background:var(--surface)}.eyebrow,.tag,.label{font:12px/1.5 var(--mono);letter-spacing:.13em;text-transform:uppercase}.eyebrow{color:var(--amber);margin-bottom:25px;display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';width:23px;height:2px;background:var(--amber)}.muted{color:var(--muted)}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:66px;padding:64px 0 60px;align-items:center}.hero h1 span{display:block;color:var(--amber)}.hero .intro{font-size:19px;margin:26px 0;color:var(--muted);max-width:43ch}.hero .identity{font-size:16px;color:var(--ink);margin-top:25px}.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;gap:30px;align-items:center;justify-content:space-between;padding:13px 21px;border:1px solid var(--amber);background:var(--amber);color:#1b1d1c;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s}.button:hover{background:var(--ink);color:var(--bg);transform:translateY(-2px)}.text-link{font-size:14px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--line);padding:8px 0}.portrait-frame{position:relative;border:1px solid #5a5347;padding:13px;background:repeating-linear-gradient(0deg,#34332d 0,#34332d 1px,#30312e 1px,#30312e 4px);transform:rotate(1deg)}.portrait-frame img{width:100%;aspect-ratio:4/4.7;object-fit:cover;object-position:center 30%}.portrait-frame figcaption{font:12px/1.5 var(--mono);letter-spacing:.08em;padding:12px 4px 0;display:flex;justify-content:space-between;color:#e1d3b9}.brand-seal{position:absolute;bottom:54px;left:-37px;width:116px;height:144px;border:5px solid var(--bg);background:var(--bg);transform:rotate(-7deg);box-shadow:0 8px 24px #0005}.brand-seal img{width:100%;height:100%;object-fit:cover}.index-strip{border-block:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;padding:18px 0;font:12px/1.5 var(--mono);letter-spacing:.08em;color:var(--muted)}.index-strip b{color:var(--ink);font-weight:400}.section{padding-block:78px;border-bottom:1px solid var(--line)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:35px}.section-head .eyebrow{margin-bottom:13px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.project-card{display:block;text-decoration:none;background:var(--surface);border:1px solid var(--line);position:relative;transition:transform .2s,border-color .2s}.project-card:hover{border-color:var(--tan);transform:translateY(-4px);color:var(--ink)}.project-art{height:165px;display:flex;align-items:center;justify-content:space-between;padding:28px 32px;border-bottom:1px solid var(--line);background:radial-gradient(#a7926d22 1px,transparent 1px) 0 0/12px 12px,#302f29;overflow:hidden}.project-art strong{font-size:clamp(2.7rem,4.5vw,4.5rem);letter-spacing:-.055em;line-height:.95}.project-art>span{font:14px var(--mono);align-self:flex-start;color:var(--muted)}.project-art.purple{background-color:#302b35}.project-art.red{background-color:#352c29}.project-art.green{background-color:#283330}.card-body{padding:25px 30px 28px}.card-body .label{color:var(--tan);margin-bottom:12px}.card-body h3{margin-bottom:14px}.card-body p{color:var(--muted);font-size:16px}.card-foot{display:flex;justify-content:space-between;gap:20px;margin-top:24px;font:12px var(--mono);color:var(--amber)}.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.split p{color:var(--muted);margin-top:22px}.life-photo{border:1px solid var(--line);padding:10px;background:var(--surface);transform:rotate(-1deg)}.life-photo img{aspect-ratio:5/4;object-fit:cover;object-position:center 43%}.life-photo figcaption{font:12px/1.5 var(--mono);padding:12px 6px 2px;color:var(--tan)}.quote{border-left:3px solid var(--amber);padding-left:26px;margin:30px 0 0;font-weight:700;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.3;letter-spacing:-.03em}.quote small{display:block;font-size:16px;margin-top:14px;color:var(--amber);letter-spacing:0}.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.note{border-top:2px solid var(--tan);padding-top:20px}.note:nth-child(2){border-color:var(--purple)}.note:nth-child(3){border-color:var(--red)}.note .label{color:var(--muted);margin-bottom:15px}.note h3{font-size:1.4rem;margin-bottom:15px}.note p{font-size:16px;color:var(--muted)}.career-strip{display:grid;grid-template-columns:1fr 2fr;gap:45px;padding:35px;background:var(--surface);border:1px solid var(--line);margin-top:35px}.career-strip strong{display:block;font-size:25px;line-height:1.25}.career-strip p{font-size:16px;color:var(--muted)}.page-intro{padding:64px 0 48px;max-width:960px}.page-intro h1{font-size:clamp(3.2rem,6.8vw,6rem)}.page-intro .lead{margin-top:27px;font-size:20px;max-width:60ch;color:var(--muted)}.page-number{color:var(--tan);font:12px var(--mono);margin-bottom:30px}.prose h2{margin-bottom:24px}.prose p{color:var(--muted)}.timeline{list-style:none;margin:30px 0 0;padding:0}.timeline li{display:grid;grid-template-columns:180px 1fr;gap:30px;border-top:1px solid var(--line);padding:27px 0}.timeline .date{font:13px var(--mono);color:var(--amber)}.timeline h3{font-size:23px;margin-bottom:10px}.timeline p{color:var(--muted);font-size:16px}.manifesto{background:#b5a383;color:#22251f;padding:45px;position:relative}.manifesto p{color:#30332c}.manifesto .label{margin-bottom:20px}.manifesto h2{font-size:clamp(2rem,4vw,3.5rem)}.project-detail{display:grid;grid-template-columns:1fr 1.1fr;gap:55px;align-items:start;padding:46px 0;border-top:1px solid var(--line);scroll-margin-top:110px}.project-detail .project-art{height:260px;border:1px solid var(--line)}.project-detail .label{color:var(--tan);margin-bottom:18px}.project-detail h2{font-size:2.5rem;margin-bottom:23px}.project-detail p{color:var(--muted)}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:23px}.tag{border:1px solid var(--line);padding:5px 9px;letter-spacing:.04em;color:var(--muted);font-size:11px}.status-note{font-size:14px!important;border-left:2px solid var(--tan);padding-left:15px;margin-top:25px;color:var(--tan)!important}.bench-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.bench{padding:30px;border:1px solid var(--line);background:var(--surface)}.bench .label{color:var(--amber);margin-bottom:35px}.bench h3{margin-bottom:18px}.bench p{color:var(--muted);font-size:16px}.bench.wide{grid-column:1/-1;background:radial-gradient(#b7a07718 1px,transparent 1px) 0 0/14px 14px,var(--surface)}.field-list{list-style:none;margin:22px 0 0;padding:0}.field-list li{display:flex;justify-content:space-between;gap:25px;padding:17px 0;border-top:1px solid var(--line)}.field-list span{color:var(--muted);text-align:right}.contact-board{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;padding-bottom:65px}.contact-row{border-block-start:1px solid var(--line);padding:23px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.contact-row h2{font-size:24px}.contact-row p{font-size:14px;color:var(--muted);margin-top:6px}.pill{border:1px solid var(--line);padding:5px 11px;white-space:nowrap;color:var(--tan);font:12px var(--mono)}.contact-aside{background:var(--surface);border:1px solid var(--line);padding:35px}.contact-aside h2{font-size:30px;margin:18px 0}.contact-aside p{font-size:16px;color:var(--muted)}.next{display:flex;justify-content:space-between;gap:40px;align-items:center;padding:50px 0}.next h2{font-size:clamp(1.8rem,3vw,2.7rem)}.site-footer{border-top:1px solid var(--line);padding:27px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;font:12px/1.7 var(--mono);color:var(--muted)}.footer-inner a{font-size:12px}.footer-inner strong{color:var(--ink)}.fade-in{animation:arrive .55s ease-out both}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.hero{gap:90px}.hero .portrait-frame{max-width:505px}}
@media(max-width:950px){.wrap{width:calc(100% - 48px)}.hero{gap:35px}nav{gap:18px}.hero h1{font-size:4.4rem}.hero .intro{font-size:17px}.wordmark small{display:none}.brand-seal{width:88px;height:113px;left:-20px}.split{gap:35px}.project-art{padding:24px}.project-detail{gap:30px}}
@media(max-width:720px){.wrap{width:calc(100% - 36px)}.header-inner{min-height:73px;flex-wrap:wrap;gap:0}.js .menu-toggle{display:block}.site-header nav{width:100%;display:flex;flex-wrap:wrap;gap:0;justify-content:space-between}.site-header nav a{padding:12px 6px;font-size:14px}.js .site-header nav{display:none;padding-bottom:14px}.js .site-header nav.is-open{display:flex}.hero{grid-template-columns:1fr;padding:43px 0 35px;gap:38px}.hero h1{font-size:clamp(3.5rem,15vw,5.9rem)}.hero .intro{font-size:18px}.hero .portrait-frame{width:88%;margin-left:auto;margin-right:2%;max-width:450px}.hero .portrait-frame img{aspect-ratio:4/4.2}.brand-seal{width:105px;height:131px;left:-30px}.index-strip{flex-wrap:wrap;gap:9px 20px}.section{padding-block:48px}.section-head{align-items:start;flex-direction:column;gap:14px}.project-grid,.split,.notes,.career-strip,.project-detail,.bench-grid,.contact-board{grid-template-columns:1fr}.project-grid{gap:18px}.project-art{height:150px}.project-art strong{font-size:3.5rem}.split{gap:35px}.notes{gap:30px}.career-strip{gap:20px;padding:25px}.page-intro{padding:43px 0 36px}.page-intro .lead{font-size:18px}.timeline li{grid-template-columns:1fr;gap:12px}.manifesto{padding:28px}.project-detail{gap:25px;padding:32px 0}.project-detail .project-art{height:190px}.bench{padding:25px}.bench.wide{grid-column:auto}.field-list li{flex-direction:column;gap:4px}.field-list span{text-align:left}.contact-board{gap:20px}.contact-row{flex-wrap:wrap}.next{flex-direction:column;align-items:start;gap:25px}.footer-inner{align-items:start;flex-direction:column;gap:10px}.quote{margin-left:0}.actions{gap:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Custom 404: a playful character in a workshop terminal, using the untouched photo. */
.error-scene{min-height:calc(100vh - 200px);display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center;padding:70px 0}.error-code{font-size:clamp(6rem,11vw,10rem);font-weight:900;line-height:1;letter-spacing:-.07em;color:var(--tan)}.error-code span{display:block;font:12px var(--mono);letter-spacing:.15em;margin:13px 0 28px;color:var(--muted)}.error-copy h1{font-size:clamp(3rem,5.5vw,5rem)}.error-copy .lead{font-size:23px;color:var(--amber);margin:14px 0 22px}.security-console{border:1px solid #62594a;background:repeating-linear-gradient(0deg,#363834,#363834 1px,#323430 1px,#323430 4px);padding:14px;box-shadow:10px 12px 0 #1116;transform:rotate(1deg)}.console-bar,.console-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:7px 5px 15px;font:11px/1.5 var(--mono);letter-spacing:.05em;color:var(--tan)}.console-light{color:var(--amber)}.security-screen{background:#131815;border:2px solid #0e100f;padding:23px;box-shadow:inset 0 0 45px #0009;overflow:hidden}.screen-label{font:12px var(--mono);color:var(--amber);text-align:center;letter-spacing:.16em}.nedry-character{position:relative;width:65%;max-width:235px;margin:35px auto 27px;transform-origin:center bottom}.nedry-character img{aspect-ratio:1/1.15;object-fit:cover;object-position:center 33%;border:2px solid var(--tan)}.speech{position:absolute;right:-35px;top:-15px;background:var(--amber);padding:8px 12px;color:var(--bg);font:bold 14px var(--mono);transform:rotate(-4deg)}.is-playing{animation:ah-ah 1.3s steps(3,end) 3}.screen-message{color:var(--amber);font:bold 24px/1.3 var(--mono);text-align:center;letter-spacing:.04em}.screen-message span{display:block;color:var(--muted);font:10px/1.5 var(--mono);letter-spacing:.08em;margin-top:9px}.console-bottom{padding:15px 5px 2px;font-size:10px}.replay-gag{display:none;font:12px var(--mono);border:1px solid var(--tan);background:transparent;color:var(--ink);padding:8px 12px;cursor:pointer;white-space:nowrap}.js .replay-gag{display:block}.replay-gag:hover{background:var(--amber);color:var(--bg)}@keyframes ah-ah{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg) translateX(-5px)}75%{transform:rotate(4deg) translateX(5px)}}@media(max-width:720px){.error-scene{grid-template-columns:1fr;gap:40px;padding:40px 0 55px}.security-console{max-width:470px;width:calc(100% - 10px)}.security-screen{padding:23px 14px}.screen-message{font-size:21px}.error-copy .lead{font-size:21px}}@media(prefers-reduced-motion:reduce){.is-playing{animation:none}.js .replay-gag{display:none}}

/* Isolated character derivative blends into the black terminal; no photo rectangle. */
.security-screen{background:#000}.nedry-character{width:72%;max-width:235px}.nedry-character img{aspect-ratio:auto;height:auto;border:0;object-fit:contain;mix-blend-mode:lighten}.nedry-character{isolation:isolate}.sport-pair{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:32px}.sport-pair article{border-top:2px solid var(--tan);padding-top:23px}.sport-pair article:last-child{border-color:var(--purple)}.sport-pair h3{margin-bottom:15px}.sport-pair p{color:var(--muted)}@media(max-width:720px){.sport-pair{grid-template-columns:1fr}}

/* Single-page workshop. Photos belong to the composition; no decorative brand stamps. */
.portrait-frame,.life-photo{transform:none}.portrait-frame{padding:0;background:none;border:0}.portrait-frame img{border-radius:3px}.portrait-frame figcaption{padding-top:14px}.brand-seal{display:none}.chapter{scroll-margin-top:88px;padding-top:24px;border-bottom:1px solid var(--line)}.chapter>.page-intro{padding-bottom:35px}.section-title{font-size:clamp(2.8rem,6vw,5.5rem)}.chapter .section:last-child{border-bottom:0}.chapter .page-intro+.section{padding-top:20px}.chapter .page-number{display:none}.project-fold{border-top:1px solid var(--line);scroll-margin-top:108px}.project-fold:last-of-type{border-bottom:1px solid var(--line)}.project-fold summary{display:grid;grid-template-columns:1fr 1.4fr auto;gap:24px;align-items:center;list-style:none;cursor:pointer;padding:30px 18px;transition:background .2s}.project-fold summary::-webkit-details-marker,.story-fold summary::-webkit-details-marker{display:none}.project-fold summary:hover,.project-fold[open] summary{background:var(--surface)}.project-fold summary .label{font-size:11px;color:var(--tan)}.fold-title{font-size:clamp(1.6rem,3vw,2.5rem);font-weight:700;letter-spacing:-.045em}.fold-action{font:12px var(--mono);color:var(--amber);display:flex;align-items:center;gap:20px}.fold-action b{font-size:24px;font-weight:400;transition:transform .2s}.project-fold[open] .fold-action b{transform:rotate(45deg)}.fold-body{padding:10px 28px 32px;max-width:850px}.fold-body h3{display:none}.fold-body p{color:var(--muted)}.story-fold{border-block:1px solid var(--line);margin:30px 0}.story-fold summary{list-style:none;padding:25px 10px;font-size:23px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;gap:25px}.story-fold summary span{color:var(--amber)}.about-story .prose{max-width:850px}.chapter .contact-board{padding-top:10px}.chapter .page-intro .lead{font-size:18px}.site-header:after{content:'';display:block;height:2px;background:var(--amber);width:var(--scroll-progress,0%);position:absolute;bottom:0;left:0}.chapter:target>.page-intro .eyebrow{color:var(--ink)}nav a[aria-current=location]{border-bottom-color:var(--amber);color:var(--amber)}@media(max-width:720px){.project-fold summary{grid-template-columns:1fr auto;gap:12px;padding:24px 8px}.project-fold summary .label{grid-column:1/-1}.fold-action{font-size:11px;gap:10px}.fold-body{padding:8px 12px 26px}.chapter{scroll-margin-top:75px}.chapter>.page-intro{padding-top:36px}.story-fold summary{font-size:20px}.chapter .section{padding-block:40px}}
