*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%}body{background-color:var(--bg);color:var(--ink);font-family:var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:linear-gradient(#f3eee409 1px,#0000 1px),linear-gradient(90deg,#f3eee409 1px,#0000 1px);background-size:72px 72px;background-attachment:fixed;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}:root{--bg:#08090c;--bg-2:#0f1117;--bg-3:#161922;--ink:#f3eee4;--muted:#a39e91;--faint:#6d695f;--line:#f3eee41a;--line-strong:#f3eee433;--amber:#e3b56a;--amber-2:#c9923f;--teal:#7dcebf;--danger:#d46a4c;--sans:"Outfit", system-ui, sans-serif;--serif:"Fraunces", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--pad:clamp(1.25rem, 4vw, 2.75rem);--max:1180px;--nav-h:64px;--ease:cubic-bezier(.22, 1, .36, 1)}::selection{background:var(--amber);color:var(--bg)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}.grain{pointer-events:none;z-index:80;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' 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");position:fixed;inset:0}.cursor{background:var(--amber);pointer-events:none;z-index:100;mix-blend-mode:difference;border-radius:50%;width:12px;height:12px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-ring{pointer-events:none;z-index:99;width:40px;height:40px;transition:width .25s var(--ease), height .25s var(--ease), opacity .25s;border:1px solid #e3b56a8c;border-radius:50%;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-ring.is-hover{opacity:.7;width:64px;height:64px}@media (pointer:fine){body,a,button{cursor:none}}@media (pointer:coarse){.cursor,.cursor-ring{display:none}}.intro{z-index:90;background:var(--bg);place-items:center;display:grid;position:fixed;inset:0}.intro-inner{text-align:center}.intro-mark{font-family:var(--serif);letter-spacing:-.04em;color:var(--ink);font-size:clamp(3rem,8vw,5.5rem);font-weight:600}.intro-line{background:var(--amber);width:0;height:1px;animation:intro-grow .8s var(--ease) .35s forwards;margin:1.1rem auto 0}.intro-kicker{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--amber);margin-top:.9rem;font-size:.72rem}@keyframes intro-grow{to{width:140px}}.nav{z-index:40;height:var(--nav-h);padding:0 var(--pad);mix-blend-mode:normal;transition:background .35s var(--ease), border-color .35s, backdrop-filter .35s;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.nav.is-scrolled{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom-color:var(--line);background:#08090cb8}.nav-brand{font-family:var(--serif);align-items:baseline;gap:.55rem;font-size:1.15rem;font-weight:600;display:flex}.nav-brand span{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-size:.68rem}.nav-links{align-items:center;gap:1.6rem;display:flex}.nav-links a{color:var(--muted);font-size:.86rem;transition:color .2s}.nav-links a:hover,.nav-links a.is-active{color:var(--ink)}.nav-clock{font-family:var(--mono);letter-spacing:.08em;color:var(--amber);font-size:.72rem}.nav-toggle{border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;width:42px;height:42px;display:none}.nav-mobile{display:none}@media (width<=1100px){.nav-clock{display:none}}@media (width<=1024px){.nav-links,.nav-clock{display:none}.nav-toggle{place-items:center;display:grid}.nav-mobile{inset:var(--nav-h) 0 0 0;padding:2rem var(--pad);z-index:39;background:#08090cf5;flex-direction:column;gap:1.1rem;display:flex;position:fixed}.nav-mobile a{font-family:var(--serif);font-size:2rem}}.wrap{width:min(var(--max), calc(100% - var(--pad) * 2));margin-inline:auto}.reveal{height:100%}.section{scroll-margin-top:calc(var(--nav-h) + .75rem);padding:clamp(2.5rem,4.5vw,3.75rem) 0;position:relative}.kicker{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--amber);margin:0 0 .45rem;font-size:.7rem}.section-head .kicker{margin-bottom:.3rem}.section-title{font-family:var(--serif);letter-spacing:-.03em;margin:0;font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:600;line-height:1.1}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:.85rem;display:flex}.section-head p{max-width:34ch;color:var(--muted);margin:0}.hero{min-height:unset;padding:calc(var(--nav-h) + .85rem) 0 2rem;scroll-margin-top:0}.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(240px,320px);align-items:center;gap:clamp(1.25rem,3vw,2.5rem);display:grid}.hero-meta{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:.45rem 1rem;margin-bottom:.85rem;font-size:.7rem;display:flex}.hero-meta .dot{color:var(--teal)}.hero h1{font-family:var(--serif);letter-spacing:-.045em;margin:0 0 .85rem;font-size:clamp(2.5rem,6vw,5rem);font-weight:600;line-height:.92}.hero h1 em{color:var(--amber);font-style:italic;font-weight:500}.hero-lead{color:var(--muted);max-width:42ch;margin:0 0 1.35rem;font-size:1.05rem}.hero-actions{flex-wrap:wrap;gap:.85rem;display:flex}.btn{cursor:pointer;transition:transform .25s var(--ease), background .25s, border-color .25s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.3rem;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--amber);color:#1a140c;font-weight:600}.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--amber)}.portrait{justify-self:end;width:100%;position:relative}.portrait-frame{aspect-ratio:1;border:1px solid var(--line-strong);background:var(--bg-2);position:relative;overflow:hidden}.portrait-frame img{object-fit:cover;object-position:50% 18%;filter:grayscale(.25)contrast(1.06);width:100%;height:100%}.portrait-frame:after{content:"";pointer-events:none;background:linear-gradient(#0000 50%,#08090c8c),repeating-linear-gradient(#0000 0 2px,#08090c1f 2px 3px);position:absolute;inset:0}.hud-corner{border:1.5px solid var(--amber);z-index:2;width:18px;height:18px;position:absolute}.hud-corner.tl{border-bottom:0;border-right:0;top:10px;left:10px}.hud-corner.tr{border-bottom:0;border-left:0;top:10px;right:10px}.hud-corner.bl{border-top:0;border-right:0;bottom:10px;left:10px}.hud-corner.br{border-top:0;border-left:0;bottom:10px;right:10px}.portrait-caption{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);justify-content:space-between;margin-top:.7rem;font-size:.68rem;display:flex}.portrait-status{color:var(--teal)}.scroll-hint{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--faint);align-items:center;gap:.8rem;margin-top:1.35rem;font-size:.68rem;display:flex}.scroll-hint .bar{background:var(--line-strong);width:48px;height:1px;position:relative;overflow:hidden}.scroll-hint .bar:after{content:"";background:var(--amber);animation:scan 1.8s var(--ease) infinite;position:absolute;inset:0}@keyframes scan{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (width<=1024px){.hero{padding-top:calc(var(--nav-h) + .75rem);padding-bottom:1.5rem}.hero-grid{gap:1.25rem}.scroll-hint{display:none}}@media (width<=900px){.hero-grid{grid-template-columns:1fr}.portrait{justify-self:start;max-width:220px}.hero h1{font-size:clamp(2.4rem,11vw,3.2rem)}.hero-lead{margin-bottom:1.15rem;font-size:1rem}.section{padding:2.25rem 0}.section-head{margin-bottom:1.15rem}}.marquee{border-block:1px solid var(--line);background:var(--bg-2);padding:.7rem 0;overflow:hidden}.marquee-track{gap:2.4rem;width:max-content;animation:28s linear infinite marquee;display:flex}.marquee-item{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:.78rem}.marquee-item span{color:var(--amber);margin-right:2.4rem}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.about-grid{grid-template-columns:1.4fr .8fr;align-items:stretch;gap:1.5rem;display:grid}.about-copy p{color:var(--muted);margin:0 0 .85rem;font-size:1.02rem}.about-copy p:first-child{color:var(--ink);font-size:1.12rem}.about-copy p:last-child{margin-bottom:0}.stats{gap:.7rem;height:100%;display:grid}.stat{border:1px solid var(--line);background:linear-gradient(#e3b56a0d,#0000);padding:.95rem 1.1rem}.stat b{font-family:var(--serif);letter-spacing:-.03em;color:var(--amber);font-size:1.75rem;font-weight:600;display:block}.stat span{color:var(--muted);font-size:.9rem}@media (width<=800px){.about-grid,.section-head{flex-direction:column;grid-template-columns:1fr;align-items:start}}.timeline{gap:0;display:grid}.job{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,200px) 1fr;align-items:start;gap:1.25rem;padding:1.25rem 0;display:grid;position:relative}.job:first-child{border-top:1px solid var(--line)}.job-meta{min-width:0;font-family:var(--mono);color:var(--faint);flex-direction:column;align-items:flex-start;gap:.28rem;font-size:.78rem;display:flex}.job-meta .company{color:var(--ink);font-family:var(--sans);margin-bottom:.15rem;font-size:1.05rem;font-weight:500}.job-period,.job-location{line-height:1.45;display:block}.job h3{margin:0 0 .5rem;font-size:1.15rem;font-weight:500;line-height:1.3}.job ul{margin:0;padding:0;list-style:none}.job li{color:var(--muted);margin-bottom:.35rem;padding-left:1rem;position:relative}.job li:last-child{margin-bottom:0}.job li:before{content:"";background:var(--amber);width:6px;height:1px;position:absolute;top:.7em;left:0}.badge{color:var(--teal);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;border:1px solid #7dcebf66;align-items:center;width:fit-content;margin-top:.4rem;padding:.2rem .55rem;font-size:.65rem;display:inline-flex}@media (width<=720px){.job{grid-template-columns:1fr;gap:.6rem}}.work-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:.9rem;display:grid}.card{border:1px solid var(--line);background:var(--bg-2);height:100%;min-height:0;transition:border-color .3s, transform .35s var(--ease), background .3s;flex-direction:column;padding:1.25rem;display:flex}.card:hover{background:#13161e;border-color:#e3b56a73;transform:translateY(-4px)}.card-top{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);justify-content:space-between;gap:.75rem;font-size:.65rem;display:flex}.card-top span:last-child{text-align:right;max-width:70%}.card h3{font-family:var(--serif);letter-spacing:-.02em;margin:.9rem 0 .5rem;font-size:1.45rem;font-weight:600}.card p{color:var(--muted);flex:1;margin:0 0 1.3rem}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tag{font-family:var(--mono);letter-spacing:.08em;border:1px solid var(--line);color:var(--muted);padding:.28rem .5rem;font-size:.65rem}@media (width<=980px){.work-grid{grid-template-columns:1fr}}.skill-grid{grid-template-columns:repeat(4,1fr);align-items:start;gap:.9rem;display:grid}.skill-col h3{color:var(--amber);font-size:.78rem;font-weight:500;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .55rem}.skill-col ul{margin:0;padding:0;list-style:none}.skill-col li{border-bottom:1px solid var(--line);color:var(--muted);padding:.4rem 0;font-size:.95rem}@media (width<=900px){.skill-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.skill-grid{grid-template-columns:1fr}}.edu-card{border:1px solid var(--line);background:radial-gradient(1200px 200px at 0% 0%, #e3b56a14, transparent 50%), var(--bg-2);grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem 2rem;padding:1.4rem 1.5rem;display:grid}.edu-card h3{font-family:var(--serif);margin:0 0 .25rem;font-size:1.5rem;font-weight:600}.edu-card .field{color:var(--ink);margin-bottom:.5rem}.edu-card p{color:var(--muted);margin:.15rem 0}.edu-notes{margin-top:.65rem!important}.certs{margin:0;padding:0;list-style:none}.certs li{border-bottom:1px solid var(--line);color:var(--muted);padding:.5rem 0;font-size:.92rem}@media (width<=800px){.edu-card{grid-template-columns:1fr}}.contact-box{grid-template-columns:1.1fr .9fr;align-items:center;gap:1.5rem;display:grid}.contact-box h2{font-family:var(--serif);letter-spacing:-.035em;margin:0 0 .7rem;font-size:clamp(2rem,4.5vw,3.1rem);line-height:.98}.contact-box h2 em{color:var(--amber);font-style:italic}.contact-links{flex-direction:column;gap:.7rem;display:flex}.contact-link{border:1px solid var(--line);justify-content:space-between;align-items:center;padding:.9rem 1rem;transition:border-color .25s,background .25s;display:flex}.contact-link:hover{border-color:var(--amber);background:#e3b56a0d}.contact-link small{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-size:.68rem}@media (width<=800px){.contact-box{grid-template-columns:1fr}.footer{flex-direction:column;gap:.35rem}}.footer{width:min(var(--max), calc(100% - var(--pad) * 2));border-top:1px solid var(--line);font-family:var(--mono);letter-spacing:.08em;color:var(--faint);justify-content:space-between;gap:1rem;margin-inline:auto;padding:1.1rem 0 1.6rem;font-size:.72rem;display:flex}#contact.section{padding-bottom:2rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track,.scroll-hint .bar:after,.intro-line{animation:none}.cursor,.cursor-ring{display:none}}
