:root{--bg: #0b0b0b;--fg: #f4f2ee;--muted: #a8a39b;--ink: #16150f;--ink-soft: #4a4842;--maxw: 1180px;--font-display: "Jost", "Futura", "Century Gothic", sans-serif;--font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-serif: Georgia, "Times New Roman", serif;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-weight:300;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{display:block;max-width:100%}.site-head{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1.4rem 1.8rem;mix-blend-mode:difference;color:#fff}.site-head a{color:#fff;text-decoration:none}.brand{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400}.nav{display:flex;gap:1.6rem}.nav a{font-family:var(--font-display);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;opacity:.85;transition:opacity .3s var(--ease)}.nav a:hover{opacity:1}.feature{position:relative;height:100vh;min-height:560px;overflow:hidden;display:flex;align-items:center}.feature__media{position:absolute;inset:-12% 0;z-index:0}.feature__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);will-change:transform}.feature__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,#0000008c,#0000000d 40%,#0000 60%),linear-gradient(to bottom,#00000059,#0000 22%)}.feature__caption{position:relative;z-index:2;padding:0 1.8rem;max-width:var(--maxw);margin:0 auto;width:100%;text-align:center;will-change:transform}.feature__title{font-family:var(--font-display);font-size:clamp(2.6rem,7.5vw,5.6rem);font-weight:300;letter-spacing:.04em;text-transform:uppercase;line-height:1;color:#fff}.feature__venue{margin-top:.8rem;font-family:var(--font-display);color:#f2efe9;font-size:clamp(.8rem,1.6vw,1rem);letter-spacing:.22em;text-transform:uppercase}.scroll-cue{position:absolute;bottom:1.8rem;left:0;right:0;z-index:3;text-align:center;font-family:var(--font-display);font-size:.64rem;letter-spacing:.32em;text-transform:uppercase;color:#ffffffd9}.scroll-cue:after{content:"";display:block;width:1px;height:34px;margin:.8rem auto 0;background:linear-gradient(to bottom,#ffffffb3,#fff0);animation:cue 2.4s var(--ease) infinite}@keyframes cue{0%,to{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}.interstitial{background:#fff;color:var(--ink)}.interstitial__inner{max-width:var(--maxw);margin:0 auto;padding:5.5rem 1.8rem;will-change:transform}.credit{text-align:right;color:var(--ink);font-size:.9rem;letter-spacing:.02em}.interstitial blockquote{margin:2.2rem auto 0;max-width:34ch;font-family:var(--font-serif);font-style:italic;font-size:clamp(1.2rem,2.6vw,1.9rem);line-height:1.32;text-align:center;color:var(--ink)}.interstitial blockquote cite{display:block;margin-top:.8rem;font-family:var(--font-display);font-style:normal;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.block-title{margin-top:2.6rem;text-align:center;font-family:var(--font-display);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;color:var(--ink-soft)}.proj-list{list-style:none;margin:1.4rem auto 0;max-width:760px}.proj-list li{padding:.85rem 0;border-top:1px solid rgba(0,0,0,.12);display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.proj-list li:last-child{border-bottom:1px solid rgba(0,0,0,.12)}.proj-list .t{font-family:var(--font-display);font-size:1.25rem;font-weight:400;letter-spacing:.02em}.proj-list .v{color:var(--ink-soft);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.bio-text{margin:2.2rem auto 0;max-width:680px;font-size:1.02rem;line-height:1.95;color:var(--ink-soft);text-align:left}.inter-link{display:inline-block;margin:2.4rem auto 0;font-family:var(--font-display);font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px}.inter-center{text-align:center}.contact{background:#fff;color:var(--ink)}.contact__inner{max-width:var(--maxw);margin:0 auto;padding:6rem 1.8rem 7rem;text-align:center}.contact h2{font-family:var(--font-display);font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;color:var(--ink-soft)}.contact .email{display:inline-block;margin-top:1.4rem;font-family:var(--font-display);font-size:clamp(1.4rem,4vw,2.4rem);font-weight:300;color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(0,0,0,.3);padding-bottom:3px}.contact .rep{margin-top:2.6rem;font-size:.95rem;line-height:1.7;color:var(--ink-soft)}.contact .rep a{color:var(--ink)}.resume{background:#fff;color:var(--ink);min-height:100vh;padding:8rem 1.8rem 6rem}.resume__inner{max-width:880px;margin:0 auto}.resume h1{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.4rem);font-weight:300;letter-spacing:.04em;text-transform:uppercase;text-align:center;margin-bottom:3rem}.resume__section{margin-top:3rem}.resume__section h2{font-family:var(--font-display);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;color:var(--ink-soft);padding-bottom:.8rem;border-bottom:1px solid rgba(0,0,0,.18)}.resume__row{display:grid;grid-template-columns:1fr auto;gap:.4rem 1.5rem;padding:.85rem 0;border-bottom:1px solid rgba(0,0,0,.08)}.resume__row .show{font-family:var(--font-display);font-size:1.08rem;font-weight:400}.resume__row .yr{color:var(--ink-soft);font-variant-numeric:tabular-nums}.resume__row .meta{grid-column:1 / -1;color:var(--ink-soft);font-size:.88rem}.resume__back{display:block;text-align:center;margin-top:3.5rem;font-family:var(--font-display);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}.reveal.in{opacity:1;transform:none}@media (max-width: 600px){.proj-list li{flex-direction:column;gap:.2rem}.resume__row{grid-template-columns:1fr}.resume__row .yr{order:3}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.feature__media img{transform:scale(1)}.reveal{opacity:1;transform:none;transition:none}.scroll-cue:after{animation:none}}
