:root{--bg: #0c0c0b;--ink: #ece9df;--dim: rgba(236, 233, 223, .55);--line: rgba(236, 233, 223, .16);--acid: #d9ff3f;--acid-text: #d9ff3f;--on-acid: #0c0c0b;--font-display: "Syne", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--nav-h: 3.5rem;--gutter: clamp(1.25rem, 4vw, 3rem);color-scheme:dark}[data-theme=light]{--bg: #f2efe6;--ink: #15150f;--dim: rgba(21, 21, 15, .58);--line: rgba(21, 21, 15, .18);--acid: #d9ff3f;--acid-text: #5d6e00;--on-acid: #15150f;color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}body:after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}h1,h2,h3{font-family:var(--font-display);line-height:1;font-weight:800;letter-spacing:-.02em}a{color:inherit;text-decoration:none}::selection{background:var(--acid);color:var(--on-acid)}:focus-visible{outline:2px solid var(--acid-text);outline-offset:3px}.container{width:min(1180px,100% - 2 * var(--gutter));margin-inline:auto}.nav{position:fixed;inset:0 0 auto;z-index:100;display:grid;grid-template-columns:repeat(4,1fr);height:var(--nav-h);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav a{display:flex;align-items:center;justify-content:center;gap:.4em;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--dim);border-right:1px solid var(--line);transition:color .2s ease,background .2s ease}.nav a:last-child{border-right:0}.nav a sup{display:none;color:var(--acid-text);font-size:.8em}.nav a:hover{color:var(--ink)}.nav a[aria-current=true]{color:var(--ink);background:color-mix(in srgb,var(--acid) 9%,transparent)}.nav a[aria-current=true]:before{content:"*";color:var(--acid-text);font-family:var(--font-display);font-weight:800}@media(min-width:640px){.nav a sup{display:inline}}section{scroll-margin-top:var(--nav-h)}.sec{padding-block:clamp(5rem,14vh,9rem);border-top:1px solid var(--line)}.sec-head{display:flex;align-items:baseline;gap:1.25rem;padding-bottom:1.5rem;margin-bottom:clamp(2.5rem,6vh,4.5rem);border-bottom:1px solid var(--line)}.sec-num{color:var(--acid-text);font-size:.8rem;letter-spacing:.14em}.sec-head h2{font-size:clamp(2.4rem,6.5vw,5rem);text-transform:lowercase}.sec-head .sec-tag{margin-left:auto;display:none;color:var(--dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}@media(min-width:640px){.sec-head .sec-tag{display:block}}.hero{min-height:100svh;padding-top:var(--nav-h);display:flex;flex-direction:column;justify-content:center;position:relative}.wordmark{font-size:clamp(3.1rem,11.5vw,10.5rem);letter-spacing:-.05em;line-height:.92;text-transform:lowercase;white-space:nowrap}.wordmark .star{color:var(--acid-text);display:inline-block}.hero-sub{display:grid;gap:1.5rem;margin-top:clamp(2rem,5vh,3.5rem);max-width:64ch}.hero-sub .kicker{color:var(--acid-text);font-size:.78rem;text-transform:uppercase;letter-spacing:.16em}.hero-sub p{color:var(--dim);font-size:clamp(.95rem,1.4vw,1.1rem);text-wrap:balance}.hero-side{display:none;position:absolute;right:0;top:50%;translate:0 -50%;writing-mode:vertical-rl;color:var(--dim);font-size:.7rem;text-transform:uppercase;letter-spacing:.3em}@media(min-width:1100px){.hero-side{display:block}}.rise{display:block;overflow:hidden}.rise>*{display:block;translate:0 115%;animation:rise .7s cubic-bezier(.22,1,.36,1) forwards}.rise.d1>*{animation-delay:.08s}.rise.d2>*{animation-delay:.18s}.rise.d3>*{animation-delay:.28s}@keyframes rise{to{translate:0 0}}.marquee{border-block:1px solid var(--line);overflow:hidden;white-space:nowrap;padding-block:.7rem;user-select:none}.marquee-track{display:inline-block;animation:marquee 36s linear infinite}.marquee span{font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:var(--dim);padding-inline:1.5rem}.marquee span b{color:var(--acid-text);font-weight:400}@keyframes marquee{to{translate:-50% 0}}.about-grid{display:grid;gap:3rem}.about-copy{max-width:58ch;display:grid;gap:1.4rem}.about-copy em{font-style:normal;background:linear-gradient(transparent 62%,color-mix(in srgb,var(--acid) 55%,transparent) 0)}.fact-list{align-self:start;display:grid;gap:.9rem;font-size:.85rem;border-top:1px solid var(--line);padding-top:1.4rem}.fact-list div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:.9rem}.fact-list dt{color:var(--dim);text-transform:uppercase;font-size:.72rem;letter-spacing:.14em}.fact-list dd{text-align:right}@media(min-width:860px){.about-grid{grid-template-columns:1.6fr 1fr;gap:5rem}}.work-list{list-style:none;padding:0}.work-list li{border-bottom:1px solid var(--line)}.work-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"num  year arrow" "title title title" "tags tags tags";align-items:center;row-gap:.5rem;padding-block:1.6rem;transition:background .22s ease,color .22s ease}.work-row .num{grid-area:num;color:var(--acid-text);font-size:.78rem;letter-spacing:.14em}.work-row h3{grid-area:title;font-size:clamp(1.7rem,5vw,3.2rem);font-weight:700;text-transform:lowercase}.work-row .tags{grid-area:tags;color:var(--dim);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}.work-row .year{grid-area:year;color:var(--dim);font-size:.78rem;text-align:right}.work-row .arrow{grid-area:arrow;font-family:var(--font-display);font-weight:800;font-size:1.4rem;transition:translate .22s ease}.work-row:hover,.work-row:focus-visible{background:var(--acid);color:var(--on-acid);box-shadow:0 0 0 var(--gutter) var(--acid)}.work-row:hover .num,.work-row:hover .tags,.work-row:hover .year,.work-row:focus-visible .num,.work-row:focus-visible .tags,.work-row:focus-visible .year{color:var(--on-acid)}.work-row:hover .arrow,.work-row:focus-visible .arrow{translate:.4rem 0}@media(min-width:860px){.work-row{grid-template-columns:4rem 1fr auto 6rem 3rem;grid-template-areas:"num title tags year arrow";column-gap:1.5rem}.work-row .year{text-align:right}}.contact-lede{font-size:clamp(2rem,6vw,4.5rem);font-family:var(--font-display);font-weight:700;text-transform:lowercase;letter-spacing:-.02em;max-width:18ch;line-height:1.04}.email-link{display:inline-block;margin-top:2.5rem;font-family:var(--font-display);font-weight:700;font-size:clamp(1.15rem,3.4vw,2.4rem);letter-spacing:-.01em;overflow-wrap:anywhere;border-bottom:3px solid var(--acid);transition:background .2s ease,color .2s ease}.email-link:hover{background:var(--acid);color:var(--on-acid)}.social-row{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-top:3.5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}.social-row a{color:var(--dim);padding-block:.5rem;transition:color .2s ease}.social-row a:hover{color:var(--acid-text)}.social-row a:after{content:" ↗"}footer{border-top:1px solid var(--line);padding-block:1.4rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--dim)}footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem}.theme-toggle{position:fixed;right:1rem;bottom:1rem;z-index:110;min-height:44px;padding:.6rem .9rem;font:400 .72rem var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--dim);background:var(--bg);border:1px solid var(--line);cursor:pointer;transition:color .2s ease,border-color .2s ease}.theme-toggle:hover{color:var(--ink);border-color:var(--ink)}html.js .reveal{opacity:0;translate:0 26px;transition:opacity .6s ease,translate .6s cubic-bezier(.22,1,.36,1)}html.js .reveal.in{opacity:1;translate:0 0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.rise>*{translate:0 0;animation:none}.reveal{opacity:1;translate:0 0}.marquee-track{animation:none}}
