:root{--bg:#0b0a09;--bg-soft:#12110f;--bg-elevated:#1a1815;--fg:#f3efe8;--fg-muted:#9c968c;--fg-faint:#6b665e;--accent:#d4a574;--accent-soft:#d4a57424;--accent-line:#d4a57459;--line:#f3efe814;--line-strong:#f3efe824;--steel:#7a9e9a;--glow-warm:#d4a5742e;--glow-cool:#7a9e9a1f;--font-display:"Syne", system-ui, sans-serif;--font-serif:"Instrument Serif", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--space:clamp(1.25rem, 4vw, 2.5rem);--max:72rem;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:dark}body{min-height:100vh;font-family:var(--font-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.65;overflow-x:hidden}body:before{content:"";z-index:-2;background:radial-gradient(ellipse 80% 55% at 12% -10%, var(--glow-warm), transparent 55%), radial-gradient(ellipse 60% 45% at 95% 8%, var(--glow-cool), transparent 50%), radial-gradient(ellipse 50% 40% at 50% 100%, #d4a5740f, transparent 55%), var(--bg);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;opacity:.35;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px;position:fixed;inset:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{background:var(--accent);color:var(--bg)}.shell{width:min(100% - var(--space) * 2, var(--max));margin-inline:auto}.section{padding-block:clamp(4.5rem,12vw,8rem)}.section-head{align-items:baseline;gap:1rem;margin-bottom:clamp(2rem,5vw,3.25rem);display:flex}.section-index{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:500}.section-title{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.1}.nav{z-index:100;padding:1rem var(--space);transition:background .4s var(--ease), backdrop-filter .4s var(--ease), border-color .4s;border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.nav.is-scrolled{backdrop-filter:blur(16px)saturate(1.2);border-bottom-color:var(--line);background:#0b0a09b8}.nav-inner{width:min(100%, var(--max));justify-content:space-between;align-items:center;gap:1.5rem;margin-inline:auto;display:flex}.nav-brand{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-size:1rem;font-weight:800}.nav-brand span{color:var(--accent)}.nav-links{align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-links a{letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted);padding:.45rem .75rem;font-size:.8125rem;font-weight:500;transition:color .25s;display:block}.nav-links a:hover,.nav-links a:focus-visible{color:var(--fg)}.nav-cta{letter-spacing:.04em;text-transform:uppercase;background:var(--accent);transition:transform .3s var(--ease), background .25s;border-radius:999px;align-items:center;padding:.55rem 1rem;font-size:.8125rem;font-weight:600;display:inline-flex;color:var(--bg)!important}.nav-cta:hover{background:var(--fg);transform:translateY(-1px)}.nav-toggle{border:1px solid var(--line-strong);border-radius:.5rem;place-items:center;width:2.5rem;height:2.5rem;display:none}.nav-toggle span,.nav-toggle span:before,.nav-toggle span:after{background:var(--fg);width:1.1rem;height:1.5px;transition:transform .3s var(--ease);display:block;position:relative}.nav-toggle span:before,.nav-toggle span:after{content:"";position:absolute;left:0}.nav-toggle span:before{top:-5px}.nav-toggle span:after{top:5px}.hero{min-height:100svh;padding:7rem var(--space) clamp(3rem, 8vw, 5rem);align-items:end;display:grid;position:relative;overflow:hidden}.hero-atmosphere{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-atmosphere .orb{filter:blur(80px);animation:drift 18s var(--ease) infinite alternate;border-radius:50%;position:absolute}.hero-atmosphere .orb-1{background:var(--glow-warm);width:min(55vw,520px);height:min(55vw,520px);top:8%;right:-8%}.hero-atmosphere .orb-2{background:var(--glow-cool);width:min(40vw,380px);height:min(40vw,380px);animation-duration:22s;animation-delay:-6s;bottom:15%;left:-5%}.hero-grid{background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.55;background-size:72px 72px;position:absolute;inset:0;mask-image:radial-gradient(70% 60% at 50% 40%,#000,#0000)}.hero-inner{z-index:1;width:min(100%, var(--max));margin-inline:auto;position:relative}.hero-brand{font-family:var(--font-display);letter-spacing:-.05em;text-transform:uppercase;max-width:12ch;margin:0 0 1.25rem;font-size:clamp(3.5rem,14vw,9.5rem);font-weight:800;line-height:.88}.hero-brand .accent{color:var(--accent)}.hero-copy{gap:1.5rem;max-width:34rem;margin-top:clamp(1.5rem,4vw,2.5rem);display:grid}.hero-headline{font-family:var(--font-serif);color:var(--fg);margin:0;font-size:clamp(1.35rem,3vw,1.85rem);font-style:italic;font-weight:400;line-height:1.35}.hero-lede{color:var(--fg-muted);max-width:32rem;margin:0;font-size:1.05rem}.hero-actions{flex-wrap:wrap;gap:.85rem;margin-top:.5rem;display:flex}.btn{letter-spacing:.03em;transition:transform .3s var(--ease), background .25s, color .25s, border-color .25s;border-radius:999px;align-items:center;gap:.5rem;padding:.85rem 1.35rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--fg);transform:translateY(-2px)}.btn-ghost{border:1px solid var(--line-strong);color:var(--fg);background:#f3efe808}.btn-ghost:hover{border-color:var(--accent-line);background:var(--accent-soft);transform:translateY(-2px)}.hero-meta{border-top:1px solid var(--line);flex-wrap:wrap;gap:1.5rem 2.5rem;margin-top:clamp(2.5rem,6vw,4rem);padding-top:1.5rem;display:flex}.hero-meta dt{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint);margin:0;font-size:.7rem;font-weight:500}.hero-meta dd{font-family:var(--font-display);margin:.25rem 0 0;font-size:.95rem;font-weight:600}.about-grid{grid-template-columns:1fr;align-items:start;gap:clamp(2rem,5vw,4rem);display:grid}@media (width>=860px){.about-grid{grid-template-columns:1.15fr .85fr}}.about-body{color:var(--fg-muted);font-size:1.125rem}.about-body :is(p,ul,ol){margin:0 0 1.25rem}.about-body :is(p,li):last-child{margin-bottom:0}.about-body strong{color:var(--fg);font-weight:600}.about-aside{gap:1.25rem;display:grid}.skill-cloud{flex-wrap:wrap;gap:.5rem;display:flex}.skill{color:var(--fg-muted);border:1px solid var(--line);background:#f3efe805;border-radius:999px;padding:.4rem .75rem;font-size:.8rem;font-weight:500;transition:border-color .25s,color .25s,background .25s}.skill:hover{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.availability{border:1px solid var(--accent-line);background:linear-gradient(145deg, var(--accent-soft), transparent 70%);border-radius:1rem;padding:1.25rem 1.35rem}.availability-label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 .35rem;font-size:.7rem;font-weight:600}.availability p{font-family:var(--font-serif);margin:0;font-size:1.2rem;font-style:italic}.timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.job{border-top:1px solid var(--line);transition:background .35s var(--ease);gap:.75rem 2rem;padding:1.75rem 0;display:grid}.job:last-child{border-bottom:1px solid var(--line)}.job:hover{background:linear-gradient(90deg, var(--accent-soft), transparent 60%)}@media (width>=720px){.job{grid-template-columns:10.5rem 1fr;padding:2rem 1rem}}.job-dates{letter-spacing:.04em;color:var(--fg-faint);padding-top:.35rem;font-size:.8rem;font-weight:500}.job-dates .now{color:var(--accent)}.job-role{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:700}.job-company{color:var(--accent);margin:.15rem 0 0;font-size:.95rem;font-weight:500}.job-location{color:var(--fg-faint);margin:.2rem 0 0;font-size:.8rem}.job-body{color:var(--fg-muted);margin-top:.75rem;font-size:.975rem}.job-body p{margin:0}.job-stack{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.tag{letter-spacing:.04em;text-transform:uppercase;color:var(--fg-faint);border:1px solid var(--line);border-radius:.35rem;padding:.25rem .55rem;font-size:.72rem;font-weight:500}.projects-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.project{border:1px solid var(--line);transition:border-color .35s var(--ease), transform .35s var(--ease), background .35s;background:#f3efe804;border-radius:1.15rem;padding:clamp(1.5rem,3vw,2rem);display:block}.project:hover{border-color:var(--accent-line);background:var(--accent-soft);transform:translateY(-3px)}.project-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.65rem;display:flex}.project-title{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:700}.project-year{color:var(--fg-faint);font-size:.8rem;font-weight:500}.project-tagline{font-family:var(--font-serif);color:var(--fg);margin:0 0 .85rem;font-size:1.15rem;font-style:italic}.project-body{color:var(--fg-muted);margin:0;font-size:.975rem}.project-body p{margin:0}.project-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding-top:1rem;display:flex}.project-links{gap:1rem;display:flex}.project-links a{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:.8rem;font-weight:600;transition:color .2s}.project-links a:hover{color:var(--fg)}.connect{position:relative;overflow:hidden}.connect-panel{border:1px solid var(--line-strong);background:linear-gradient(160deg, var(--accent-soft), transparent 45%), var(--bg-soft);border-radius:1.5rem;padding:clamp(2.5rem,6vw,4rem)}.connect-title{font-family:var(--font-display);letter-spacing:-.04em;max-width:14ch;margin:0 0 .75rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.05}.connect-lede{max-width:32rem;color:var(--fg-muted);margin:0 0 2rem;font-size:1.1rem}.socials{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.socials a{border:1px solid var(--line-strong);transition:border-color .25s, background .25s, transform .3s var(--ease);background:#0b0a0966;border-radius:999px;align-items:center;gap:.55rem;padding:.85rem 1.25rem;font-size:.9rem;font-weight:600;display:inline-flex}.socials a:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.socials svg{opacity:.85;width:1.1rem;height:1.1rem}.footer{padding:2rem var(--space) 3rem;border-top:1px solid var(--line)}.footer-inner{width:min(100%, var(--max));color:var(--fg-faint);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-inline:auto;font-size:.85rem;display:flex}.footer a:hover{color:var(--accent)}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(-4%,6%)scale(1.08)}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.hero-brand,.hero-copy,.hero-meta{animation:rise 1s var(--ease) both}.hero-copy{animation-delay:.12s}.hero-meta{animation-delay:.24s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-atmosphere .orb,.hero-brand,.hero-copy,.hero-meta{animation:none}.reveal{opacity:1;transition:none;transform:none}}@media (width<=760px){.nav-toggle{display:grid}.nav-links{top:4.25rem;left:var(--space);right:var(--space);border:1px solid var(--line-strong);backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease), transform .3s var(--ease);background:#12110ff5;border-radius:1rem;flex-direction:column;align-items:stretch;gap:.25rem;padding:.75rem;position:fixed;transform:translateY(-8px)}.nav.is-open .nav-links{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-links a{padding:.85rem 1rem}.nav-cta{justify-content:center;margin-top:.35rem}.nav.is-open .nav-toggle span{background:0 0}.nav.is-open .nav-toggle span:before{top:0;transform:rotate(45deg)}.nav.is-open .nav-toggle span:after{top:0;transform:rotate(-45deg)}}.connect-email[data-astro-cid-s7v4yh22]{color:var(--fg-faint);margin:1.75rem 0 0;font-size:.9rem}.connect-email[data-astro-cid-s7v4yh22] a[data-astro-cid-s7v4yh22]{color:var(--accent)}.connect-email[data-astro-cid-s7v4yh22] a[data-astro-cid-s7v4yh22]:hover{color:var(--fg)}
