:root,[data-theme=dark]{--bg: #1c1c1b;--bg-surface: #232321;--bg-card: #272725;--bg-nav: transparent;--bg-nav-scrolled: rgba(7, 7, 7, .96);--border: #38382f;--border-mid: #4e4e43;--ink: #e8e0d0;--ink-muted: #9e9688;--ink-faint: #5a5a52;--amber: #c8973a;--amber-dim: #8a6525;--rust: #a84e2f;--sage: #6a8c6e;--cream: #f0e8d8;--grain-opacity: .055}[data-theme=light]{--bg: #f5f0e8;--bg-surface: #ede8de;--bg-card: #e8e2d8;--bg-nav: transparent;--bg-nav-scrolled: rgba(245, 240, 232, .96);--border: #cdc8bc;--border-mid: #b8b3a8;--ink: #2a2820;--ink-muted: #5c5850;--ink-faint: #9e9a92;--amber: #a07020;--amber-dim: #c89040;--rust: #8a3a20;--sage: #4a6c4e;--cream: #18181a;--grain-opacity: .035}:root{--font-display: "Fraunces", Georgia, serif;--font-body: "Libre Baskerville", Georgia, serif;--font-mono: "IBM Plex Mono", "Courier New", monospace;--grain-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.75;min-height:100vh;position:relative}body:before{content:"";position:fixed;inset:0;background-image:var(--grain-url);background-size:200px 200px;pointer-events:none;z-index:9999;opacity:var(--grain-opacity, .055)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--cream)}h1{font-size:clamp(2.5rem,6vw,4.5rem)}h2{font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:900}h3{font-size:clamp(1.1rem,2vw,1.4rem)}p{margin-bottom:1.25rem}p:last-child{margin-bottom:0}a{color:var(--amber);text-decoration:none;transition:color .2s ease}a:hover{color:var(--cream)}strong{font-weight:700;color:var(--cream)}code,pre{font-family:var(--font-mono);font-size:.85em}.container{max-width:860px;margin:0 auto;padding:0 1.5rem}.container--wide{max-width:1100px;margin:0 auto;padding:0 1.5rem}section{padding:5rem 0;border-top:1px solid var(--border)}section:first-of-type{border-top:none}.section-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:.75rem;display:block}.nav{position:sticky;top:0;z-index:100;background-color:var(--bg-nav);backdrop-filter:blur(0px);border-bottom:1px solid transparent;padding:1rem 0;transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease}.nav--scrolled{background-color:var(--bg-nav-scrolled);backdrop-filter:blur(10px);border-bottom-color:var(--border)}.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav__logo{display:flex;align-items:center;gap:.75rem;color:var(--cream);text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:.01em;flex-shrink:0}.nav__logo svg{width:32px;height:32px;flex-shrink:0}.nav__logo:hover{color:var(--cream)}.nav__links{display:flex;list-style:none;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.nav__links a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);text-decoration:none;padding:.35rem .6rem;border-radius:2px;transition:color .15s,background .15s}.nav__links a:hover{color:var(--cream);background:var(--bg-surface)}.nav__right{display:flex;align-items:center;gap:.5rem}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-mid);border-radius:2px;color:var(--ink-muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s;flex-shrink:0;padding:0}.theme-toggle:hover{color:var(--cream);border-color:var(--amber);background:var(--bg-surface)}.theme-toggle__icon--moon{display:block}.theme-toggle__icon--sun,[data-theme=light] .theme-toggle__icon--moon{display:none}[data-theme=light] .theme-toggle__icon--sun{display:block}.hero{padding:0 0 5rem;border-top:none;position:relative;overflow:hidden}.hero__eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--amber);margin-bottom:1.25rem;display:block}.hero__name{font-size:clamp(3rem,8vw,5.5rem);font-weight:900;line-height:1;color:var(--cream);margin-bottom:.5rem;letter-spacing:-.02em}.hero__title{font-family:var(--font-mono);font-size:clamp(.6rem,.77vw,.95rem);color:var(--ink-muted);letter-spacing:.08em;margin-bottom:2rem;margin-left:3px;text-transform:uppercase}.hero__bio{max-width:560px;font-size:1.05rem;color:var(--ink);line-height:1.8;margin-bottom:2.5rem}.hero__cta{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:.65rem 1.25rem;border-radius:2px;transition:all .2s ease;cursor:pointer;border:none}.btn--primary{background:var(--amber);color:var(--bg);font-weight:500}.btn--primary:hover{background:var(--cream);color:var(--bg)}.btn--ghost{background:transparent;color:var(--ink-muted);border:1px solid var(--border-mid)}.btn--ghost:hover{color:var(--cream);border-color:var(--amber)}.ruled{display:flex;align-items:center;gap:1rem;margin-bottom:3rem}.ruled h2{white-space:nowrap}.ruled:after{content:"";flex:1;height:1px;background:var(--border)}.experience-list{display:flex;flex-direction:column;gap:0}.exp-item{display:grid;grid-template-columns:1fr;gap:.25rem;padding:2rem 0;border-bottom:1px solid var(--border);position:relative}.exp-item:first-child{border-top:1px solid var(--border)}@media (min-width: 640px){.exp-item{grid-template-columns:200px 1fr;gap:0 2rem}}.exp-item__meta{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-muted);line-height:1.6;padding-top:.15rem}.exp-item__company{color:var(--amber);display:block;margin-bottom:.15rem;font-size:.78rem}.exp-item__dates{color:var(--ink-faint);display:block}.exp-item__role{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--cream);margin-bottom:.5rem}.exp-item__desc{font-size:.9rem;color:var(--ink-muted);line-height:1.7}.exp-item__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.tag{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--border);padding:.2rem .5rem;border-radius:2px}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem}.skill-group h3{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--amber);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.skill-group ul{list-style:none;display:flex;flex-direction:column;gap:.3rem}.skill-group li{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-muted);padding-left:.75rem;position:relative}.skill-group li:before{content:"—";position:absolute;left:0;color:var(--ink-faint)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.project-card{background:var(--bg-card);border:1px solid var(--border);padding:1.5rem;border-radius:2px;transition:border-color .2s;position:relative}.project-card:not(.project-card--inactive):hover{border-color:var(--amber-dim)}.project-card--inactive{opacity:.45}.project-card__coming{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--border);padding:.15rem .4rem;border-radius:2px;position:absolute;top:1rem;right:1rem}.project-card__icon{font-size:1.5rem;margin-bottom:1rem;display:block;line-height:1}.project-card h3{font-size:1rem;margin-bottom:.5rem;color:var(--cream)}.project-card p{font-size:.85rem;color:var(--ink-muted);margin-bottom:1rem;line-height:1.6}.project-card__link{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}.stats-strip{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--border);border-radius:2px;overflow:hidden;background:var(--bg-card)}.stat-item{flex:1 1 160px;padding:1.5rem;border-right:1px solid var(--border);text-align:center}.stat-item:last-child{border-right:none}.stat-item__value{font-family:var(--font-display);font-size:2.2rem;font-weight:900;color:var(--amber);line-height:1;margin-bottom:.25rem;display:block}.stat-item__label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint)}.contact-grid{display:grid;gap:1rem}@media (min-width: 640px){.contact-grid{grid-template-columns:1fr 1fr}}.contact-link{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:2px;text-decoration:none;color:var(--ink);transition:border-color .2s,background .2s}.contact-link:hover{border-color:var(--amber);color:var(--ink);background:var(--bg-surface)}.contact-link__icon{width:36px;height:36px;border-radius:2px;background:var(--bg-surface);border:1px solid var(--border-mid);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--amber)}.contact-link__label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-bottom:.15rem}.contact-link__value{font-size:.9rem;color:var(--cream)}.footer{border-top:1px solid var(--border);padding:2rem 0;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;color:var(--ink-faint);text-transform:uppercase}.footer__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.coming-soon-card{background:var(--bg-card);border:1px dashed var(--border-mid);border-radius:2px;padding:3rem 2rem;text-align:center}.coming-soon-card p{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin:0}.coming-soon-card .icon{font-size:2rem;margin-bottom:1rem;display:block;opacity:.4}@media (max-width: 600px){section{padding:3.5rem 0}.hero{padding:3rem 0}.nav__logo span{display:none}.nav__links a{font-size:.71rem}}
