@font-face{font-family:Space;src:url('assets/space-grotesk.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{--bg:#121412;--fg:#f0f0e9;--muted:#92998e;--line:#33392f;--accent:#ceef83;--panel:#1c2119;--ink:#17210a;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--fg);font-family:Space,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.light{--bg:#f2f1e9;--fg:#20271c;--muted:#656d60;--line:#c9cec0;--accent:#56752c;--panel:#e3e7d9;--ink:#fff;color-scheme:light}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap{max-width:1320px;margin:auto;padding-left:60px;padding-right:60px}.mono{font:10px/1.6 ui-monospace,monospace;letter-spacing:1.3px}.header{height:112px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:42px;font-weight:700;letter-spacing:-5px}.wordmark span{color:var(--accent)}nav{display:flex;gap:36px;font-size:13px}nav a{padding:12px 0}nav span{color:var(--accent);margin-left:8px}.theme-toggle{border:1px solid var(--line);width:42px;height:42px;border-radius:50%;background:transparent;display:grid;place-items:center}.theme-toggle:hover{background:var(--panel)}.hero{padding-top:42px;position:relative;isolation:isolate;overflow:hidden}.hero-top{display:flex;align-items:center;justify-content:space-between}.eyebrow{font:10px/1.6 ui-monospace,monospace;letter-spacing:1.8px;display:inline-flex;align-items:center;gap:10px}.eyebrow i{height:6px;width:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px #ceef8310}.index{color:var(--muted)}h1{font-size:clamp(80px,15.5vw,210px);line-height:1;letter-spacing:-.09em;font-weight:500;margin:48px 0 20px;position:relative;z-index:1}.period{color:var(--accent)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;position:relative;z-index:1;margin-top:16px;padding-bottom:70px}.hero-bottom p{font-size:22px;line-height:1.45;font-weight:400;letter-spacing:-.5px}.round-link{display:flex;align-items:center;gap:28px;font:10px ui-monospace,monospace;letter-spacing:1px}.arrow{width:60px;height:60px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font:28px Space;transition:background .2s,transform .2s}.round-link:hover .arrow{background:var(--accent);color:var(--ink);transform:translateY(4px)}.art{position:relative;height:370px;margin:0 0 80px;background:radial-gradient(ellipse at center,#35422655,transparent 70%),#181d15;border:1px solid #333d29;overflow:hidden}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#6c854014 1px,transparent 1px),linear-gradient(90deg,#6c854014 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse,black,transparent 85%)}.orbit{position:absolute;width:600px;height:500px;top:50%;left:50%;transform:translate(-50%,-50%)}.rings{transform-origin:300px 250px;animation:rotate 45s linear infinite;stroke-width:1.3}.art-tag{position:absolute;left:25px;bottom:22px;color:#a2b28c;font-size:9px}.art-cross{position:absolute;right:24px;top:15px;color:#a2b28c;font-size:24px;font-weight:300}@keyframes rotate{to{transform:rotate(360deg)}}.ticker{background:var(--accent);color:var(--ink);overflow:hidden;padding:20px 0;white-space:nowrap}.ticker>div{width:max-content;font-size:16px;letter-spacing:1px;word-spacing:10px}.ticker span{margin:0 35px;font-size:23px;vertical-align:middle}.section{padding-top:100px;padding-bottom:100px}.section-label{display:flex;justify-content:space-between;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:55px}h2{font-size:clamp(36px,4.4vw,60px);font-weight:400;line-height:1.1;letter-spacing:-2.7px;margin:0}em{font-style:normal;color:var(--accent)}.about-text p{font-size:15px;line-height:1.9;color:var(--muted);margin:20px 0}.about-text .lead{font-size:23px;line-height:1.5;color:var(--fg);margin-top:0;letter-spacing:-.5px}.interests{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.interests span{border:1px solid var(--line);padding:9px 13px;border-radius:30px;font-size:11px}.projects{padding-top:10px}.projects-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:50px 0}.projects-heading h2 span{color:var(--accent)}.projects-heading p{color:var(--muted);font-size:13px;line-height:1.8}.project{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;margin-top:40px;align-items:center}.project+.project{margin-top:70px}.project-visual{min-width:0;height:340px;background:var(--panel);position:relative;display:flex;align-items:center;justify-content:center;padding:35px}.mini-window{width:85%;background:#ecefe3;border-radius:8px;color:#202818;transform:rotate(-5deg);box-shadow:10px 20px 50px #0003;border:1px solid #f5f7ee}.mini-toolbar{display:flex;align-items:center;gap:5px;padding:12px;border-bottom:1px solid #ced5c2}.mini-toolbar i{width:5px;height:5px;border-radius:50%;background:#b2bda2}.mini-toolbar span{font-size:8px;margin-left:auto;color:#7c8772}.mini-page{padding:25px}.mini-page>.mono{font-size:7px;letter-spacing:1px}.mini-page strong{display:block;font-size:40px;font-weight:500;line-height:1.1;letter-spacing:-2px;margin:15px 0 20px}.mini-page strong span{float:right;font-size:30px;color:#6e873c}.mini-line{background:#cbd3bd;height:5px;width:90%;margin:8px 0}.mini-line.short{width:65%}.visual-note{position:absolute;bottom:16px;left:20px;color:var(--muted);font-size:8px}.project-info{padding-right:15px}.project-number{color:var(--muted);font-size:9px}h3{font-size:32px;letter-spacing:-1.3px;font-weight:400;margin:16px 0}.project-info p{font-size:14px;line-height:1.85;color:var(--muted);max-width:370px}.project-tags{display:flex;gap:18px;color:var(--accent);font-size:8px;margin-top:28px}.project-server .project-visual{background:#252e1d}.terminal-art{width:96%;border:1px solid #4f5d3d;border-radius:7px;background:#141a10;transform:rotate(3deg);color:#e0e8d3;box-shadow:10px 20px 50px #0003}.terminal-head{padding:12px 15px;border-bottom:1px solid #35412b;font-size:8px;display:flex;justify-content:space-between;color:#97ac7e}.terminal-head span:last-child{color:#ceef83;font-size:7px}.terminal-lines{padding:16px;font-size:10px;letter-spacing:0}.terminal-lines p{margin:13px 0}.terminal-lines b{color:#ceef83;margin-right:12px}.terminal-lines>span{font-size:8px;color:#94a97c}.terminal-divider{height:1px;background:#35412b;margin:22px 0 16px}.cursor{animation:blink 1.3s steps(1) infinite;color:#ceef83}@keyframes blink{50%{opacity:0}}.closing{padding-top:30px;padding-bottom:85px}.closing>.eyebrow{color:var(--muted)}.closing>p{position:relative;font-size:clamp(42px,6.4vw,84px);letter-spacing:-4px;line-height:1.1;margin:30px 0 45px}.closing-star{position:absolute;right:25px;top:15px;color:var(--accent);font-size:100px;font-weight:300}.closing-bottom{border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}.share{background:transparent;border:0;border-bottom:1px solid var(--muted);padding:10px 0;color:var(--fg)}.share span{margin-left:18px;color:var(--accent)}.footer{display:flex;justify-content:space-between;align-items:center;padding-top:30px;padding-bottom:35px;border-top:1px solid var(--line)}.footer-logo{font-size:23px;letter-spacing:-1px}.footer-logo span{color:var(--accent)}.footer p{color:var(--muted);font-size:10px}.footer>.mono{font-size:9px;color:var(--muted)}.skip{position:fixed;left:10px;top:-100px;background:var(--accent);color:var(--ink);padding:15px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){h1{font-size:210px}}@media(max-width:800px){.wrap{padding-left:26px;padding-right:26px}.header{height:86px}.hero{padding-top:30px}.index{display:none}h1{font-size:17vw;margin:35px 0 15px}.hero-bottom{padding-bottom:35px}.hero-bottom p{font-size:18px}.round-link{gap:14px}.round-link>span:first-child{display:none}.arrow{width:48px;height:48px}.art{height:290px;margin-bottom:50px}.orbit{width:480px;height:400px}.section{padding-top:65px;padding-bottom:65px}.section-label{font-size:9px}.section-label>span:last-child{display:none}.about-grid{grid-template-columns:1fr;gap:28px;margin-top:35px}h2{letter-spacing:-1.7px}.about-text .lead{font-size:21px}.projects{padding-top:0}.projects-heading{margin:32px 0;display:block}.projects-heading p{margin-top:25px}.project{grid-template-columns:1fr;gap:25px}.project-visual{height:320px}.project+.project{margin-top:50px}.project-info{padding:0}.project-info p{max-width:none}.closing{padding-top:25px;padding-bottom:55px}.closing>p{letter-spacing:-2px;padding-right:30px}.closing-star{font-size:55px;right:0;top:10px}.footer{flex-wrap:wrap;gap:16px}.footer p{order:3;width:100%;margin:0}.ticker{padding:14px 0}.ticker>div{font-size:12px}.ticker span{margin:0 18px}.mini-page strong{font-size:36px}}
@media(max-width:400px){nav{gap:20px;font-size:12px}.theme-toggle{width:36px;height:36px}.eyebrow{font-size:8px}.project-visual{height:275px;padding:25px}.closing-star{display:none}.closing-bottom{align-items:flex-start;gap:12px}.closing-bottom>span:first-child{padding-top:10px}.about-text .lead{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Photography and the original brush wordmark. */
:root{--bg:#111411;--fg:#f5f4ed;--accent:#d1e8a5;--panel:#1a2018}
.header{height:94px}.brand-photo{position:relative;display:block;overflow:hidden;width:180px;height:55px;flex-shrink:0}.brand-photo img{position:absolute;max-width:none;width:210px;height:210px;left:-16px;top:-79px;filter:invert(1);mix-blend-mode:screen}.light .brand-photo img{filter:none;mix-blend-mode:multiply}
.photo-hero{padding-top:15px}.photo-intro{display:flex;justify-content:space-between;gap:16px;padding-bottom:22px}.ride-photo{position:relative;max-width:1600px;margin:0 auto;isolation:isolate}.ride-image{display:block;width:100%;height:auto;aspect-ratio:3/2}.ride-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#080d0ad9 0%,#080d0a8c 26%,transparent 61%);z-index:0}.photo-copy{position:absolute;z-index:1;left:clamp(28px,6vw,100px);top:clamp(30px,5vw,80px);color:#fff;max-width:48%}.photo-copy>.eyebrow{font-size:9px;letter-spacing:2.4px;color:#e6edda}.photo-copy h1{font-size:clamp(54px,7.5vw,112px);line-height:.98;letter-spacing:-.075em;margin:30px 0 25px;font-weight:500}.photo-copy h1 span{color:#d1e8a5}.photo-copy p{font-size:clamp(14px,1.4vw,20px);line-height:1.7;color:#e4e7df;letter-spacing:-.3px}.photo-discover{display:inline-flex;align-items:center;gap:30px;margin-top:25px;border-bottom:1px solid #ffffff60;padding:12px 0;font:10px ui-monospace,monospace;letter-spacing:1.2px}.photo-discover span{font:26px Space;color:#d1e8a5;transition:transform .2s}.photo-discover:hover span{transform:translate(3px,3px)}.photo-caption{position:absolute;z-index:1;left:clamp(28px,6vw,100px);bottom:25px;color:white;display:flex;gap:28px;font-size:8px;text-shadow:0 1px 4px #000}.ticker{padding:17px 0}.about-grid{gap:75px}.footer .brand-photo{width:145px;height:44px}.footer .brand-photo img{width:169px;height:169px;left:-13px;top:-64px}
@media(max-width:800px){.header{height:82px}.brand-photo{width:135px;height:42px}.brand-photo img{width:158px;height:158px;left:-12px;top:-59px}.photo-intro{padding-top:5px;padding-bottom:18px}.photo-intro .eyebrow{font-size:8px}.ride-photo{display:flex;flex-direction:column}.ride-photo::after{display:none}.ride-image{order:2}.photo-copy{position:static;order:1;max-width:none;padding:24px 26px 35px;background:var(--bg);color:var(--fg)}.photo-copy>.eyebrow{color:var(--muted);font-size:8px}.photo-copy h1{font-size:clamp(58px,12vw,88px);margin:22px 0 18px;letter-spacing:-.075em}.photo-copy h1 span{color:var(--accent)}.photo-copy p{color:var(--muted);font-size:16px;line-height:1.6}.photo-discover{margin-top:8px;border-color:var(--line)}.photo-discover span{color:var(--accent)}.photo-caption{position:static;order:3;background:var(--bg);color:var(--muted);padding:15px 26px;text-shadow:none;justify-content:space-between;gap:14px;font-size:7px}.photo-caption>span:last-child{max-width:60%;text-align:right}.about-grid{gap:28px}}
@media(max-width:400px){.header nav{gap:16px}.header{gap:12px}.brand-photo{width:110px;height:34px}.brand-photo img{width:128px;height:128px;left:-10px;top:-48px}.header nav{font-size:11px}.theme-toggle{width:34px;height:34px}.photo-copy{padding-top:16px}.photo-copy h1{font-size:58px}}
