:root{--color-bg: #050d0b;--color-bg-soft: #0a1512;--color-mint: #5fd9b0;--color-mint-dim: rgba(95, 217, 176, .45);--color-ember: #f2a33c;--color-sand: #ece7da;--color-white: #ffffff;--text-primary: #ece7da;--text-body: #cfd9d4;--text-muted: #9dbdb2;--text-faint: #6b8c83;--text-accent: #5fd9b0;--text-warm: #f2a33c;--surface-card: rgba(7, 17, 14, .72);--surface-hover: rgba(13, 31, 25, .82);--surface-accent: rgba(95, 217, 176, .05);--surface-warm: rgba(242, 163, 60, .08);--border: rgba(236, 231, 218, .1);--border-accent: rgba(95, 217, 176, .45);--border-warm: rgba(242, 163, 60, .5);--font-display: "Syne", sans-serif;--font-body: "Outfit", sans-serif;--font-mono: "JetBrains Mono", monospace;--text-10: 10px;--text-11: 11px;--text-12: 12px;--text-13: 13px;--text-sm: 13.5px;--text-base: 16px;--text-md: 17px;--text-lg: clamp(19px, 2.5vw, 25px);--text-xl: clamp(28px, 4.4vw, 44px);--text-hero: clamp(48px, 10vw, 118px);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--space-16: 64px;--max-w: 1140px;--pad-x: clamp(20px, 5vw, 56px);--bg: var(--color-bg);--bg-soft: var(--color-bg-soft);--mint: var(--color-mint);--mint-dim: var(--color-mint-dim);--ember: var(--color-ember);--sand: var(--text-primary);--muted: var(--text-muted);--line: var(--border);--card: var(--surface-card)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}body{background:var(--bg);color:var(--sand);font-family:var(--font-body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--mint);color:var(--bg)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:3px;border-radius:2px}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.scene-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.scene-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(5,13,11,.78) 0%,rgba(5,13,11,.25) 42%,transparent 65%)}@media (max-width: 900px){.scene-wrap:before{background:#050d0b8c}}.scene-dim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:var(--bg);opacity:0}.proj-card:hover{background:var(--surface-hover)}.page{position:relative;z-index:1}.mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.mono b{color:var(--mint);font-weight:500}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;transition:opacity .6s ease,visibility .6s}.preloader.done{opacity:0;visibility:hidden;pointer-events:none}.preloader .count{font-family:var(--font-display);font-weight:800;font-size:clamp(64px,14vw,140px);line-height:1;color:var(--mint);font-variant-numeric:tabular-nums}.preloader .label{color:var(--muted)}.preloader .bar{width:min(320px,60vw);height:2px;background:var(--line);overflow:hidden}.preloader .bar i{display:block;height:100%;background:var(--mint);transform-origin:left;transition:transform .1s linear}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:transparent}.scroll-progress i{display:block;height:100%;background:var(--mint);transform-origin:left;transform:scaleX(0)}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:90;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);display:none}@media (hover: hover) and (pointer: fine){.cursor-dot,.cursor-ring{display:block}}.cursor-dot{width:6px;height:6px;background:var(--mint)}.cursor-ring{width:34px;height:34px;border:1px solid var(--mint-dim);transition:width .25s,height .25s,border-color .25s,background .25s}.cursor-ring.hovering{width:56px;height:56px;border-color:var(--ember);background:var(--surface-warm)}nav{position:fixed;top:0;left:0;right:0;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050d0b8c;border-bottom:1px solid var(--line)}.nav-inner{max-width:var(--max-w);margin:0 auto;padding:16px var(--pad-x);display:flex;align-items:center;justify-content:space-between;gap:16px}.logo{font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.06em}.logo .dot{color:var(--ember)}.nav-links{display:flex;gap:28px;align-items:center}.nav-links a{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color .2s}.nav-links a:hover,.nav-links a.nav-active{color:var(--mint)}.nav-cta.nav-active{background:var(--mint)!important;color:var(--bg)!important;border-color:var(--mint)!important}.nav-cta{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--mint-dim);padding:9px 18px;color:var(--mint);transition:background .2s,color .2s,border-color .2s}.nav-cta:hover{background:var(--mint);color:var(--bg);border-color:var(--mint)}@media (max-width: 760px){.nav-links a:not(.nav-cta){display:none}}.skip-link{position:fixed;top:-100%;left:50%;transform:translate(-50%);background:var(--mint);color:var(--bg);font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;padding:10px 24px;z-index:200;border-radius:0 0 4px 4px;transition:top .2s}.skip-link:focus{top:0;outline:2px solid var(--ember);outline-offset:2px}.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;padding:6px;flex-shrink:0}@media (max-width: 760px){.nav-burger{display:flex}}.nav-burger span{display:block;width:22px;height:1.5px;background:var(--sand);border-radius:1px;transition:transform .3s ease,opacity .3s ease;transform-origin:center}.nav-burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.nav-mobile{position:fixed;top:0;right:0;bottom:0;left:0;z-index:48;background:var(--color-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(28px,6vh,44px);opacity:0;pointer-events:none;visibility:hidden;transition:opacity .35s ease,visibility .35s}.nav-mobile.open{opacity:1;pointer-events:auto;visibility:visible}.nav-mobile a{font-family:var(--font-display);font-weight:700;font-size:clamp(32px,10vw,52px);text-transform:uppercase;letter-spacing:-.02em;color:var(--text-primary);transition:color .2s;position:relative}.nav-mobile a:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--mint);transition:width .3s cubic-bezier(.22,1,.36,1)}.nav-mobile a:hover{color:var(--mint)}.nav-mobile a:hover:after{width:100%}.nav-mobile .nav-mobile-cta{color:var(--mint)}@media (min-width: 761px){.nav-mobile{display:none}}.hero{position:relative;min-height:100svh;max-width:var(--max-w);margin:0 auto;padding:140px var(--pad-x) 80px;display:flex;flex-direction:column;justify-content:center}.hero-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:30px;opacity:0;animation:rise-in .9s .15s ease forwards}.hero-eyebrow:after{content:"";width:80px;height:1px;background:var(--mint-dim)}.hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(48px,10vw,118px);line-height:.96;letter-spacing:-.02em;text-transform:uppercase}.hero h1 .line{display:block;overflow:hidden}.hero h1 .line span{display:block;transform:translateY(110%);animation:line-up 1s cubic-bezier(.22,1,.36,1) forwards}.hero h1 .line:nth-child(2) span{animation-delay:.12s;color:var(--mint)}.hero h1 .line .stroke{color:transparent;-webkit-text-stroke:1.5px var(--sand);position:relative}.hero h1 .line .stroke:before,.hero h1 .line .stroke:after{content:"ENGINEER";position:absolute;top:0;left:0;width:100%;color:transparent;pointer-events:none;opacity:0}.hero h1 .line .stroke:before{-webkit-text-stroke:1.5px var(--ember);clip-path:polygon(0 18%,100% 18%,100% 46%,0 46%);animation:glitch-a 8s steps(1) infinite}.hero h1 .line .stroke:after{-webkit-text-stroke:1.5px var(--mint);clip-path:polygon(0 60%,100% 60%,100% 84%,0 84%);animation:glitch-b 8s steps(1) infinite}.hero-sub{margin-top:38px;max-width:600px;display:grid;grid-template-columns:auto 1fr;gap:20px;opacity:0;animation:rise-in .9s .5s ease forwards}.hero-rule{width:3px;background:var(--ember)}.hero-sub p{font-size:clamp(16px,2vw,19px);color:var(--sand)}.hero-sub strong{font-weight:600;color:var(--color-white)}.hero-meta{margin-top:34px;display:flex;flex-wrap:wrap;gap:26px;opacity:0;animation:rise-in .9s .65s ease forwards}.hero-actions{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:rise-in .9s .8s ease forwards}.btn{font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:15px 30px;display:inline-block;position:relative;overflow:hidden;transition:color .3s,border-color .3s,transform .2s}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .3s cubic-bezier(.22,1,.36,1)}.btn-primary{background:var(--mint);color:var(--bg)}.btn-primary:before{background:var(--ember)}.btn-primary:hover:before{transform:scaleY(1)}.btn-ghost{border:1px solid var(--line);color:var(--sand)}.btn-ghost:before{background:var(--sand)}.btn-ghost:hover{color:var(--bg)}.btn-ghost:hover:before{transform:scaleY(1)}.hero-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;animation:rise-in 1s 1.4s ease forwards}.hero-scroll-hint .wheel{width:1px;height:44px;background:var(--line);position:relative;overflow:hidden}.hero-scroll-hint .wheel:after{content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;background:var(--mint);animation:scroll-drip 1.8s ease-in-out infinite}@keyframes line-up{to{transform:translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes scroll-drip{0%{top:-40%}to{top:110%}}@keyframes glitch-a{0%,93%,to{opacity:0;transform:none}94%{opacity:1;transform:translate(-4px) skew(-3deg)}95%{opacity:1;transform:translate(3px)}96%{opacity:0}}@keyframes glitch-b{0%,93%,to{opacity:0;transform:none}94%{opacity:1;transform:translate(4px)}95%{opacity:1;transform:translate(-2px) skew(2deg)}96%{opacity:0}}section{position:relative;max-width:var(--max-w);margin:0 auto;padding:clamp(80px,12vh,140px) var(--pad-x)}.sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:56px;border-top:1px solid var(--line);padding-top:20px}.sec-index{font-family:var(--font-mono);font-size:12px;color:var(--ember);letter-spacing:.12em}h2{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,4.4vw,44px);letter-spacing:-.01em;text-transform:uppercase}.sec-note{margin-left:auto;text-align:right;display:none}@media (min-width: 760px){.sec-note{display:block}}.reveal{opacity:0;transform:translateY(36px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:none}.about-grid{display:grid;gap:52px;grid-template-columns:1fr}@media (min-width: 880px){.about-grid{grid-template-columns:1.5fr 1fr}}.about-copy p{font-size:17px;color:var(--text-body);margin-bottom:20px}.about-copy strong{color:var(--sand)}.spec-table{border:1px solid var(--line);background:var(--card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.spec-row{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.spec-row:last-child{border-bottom:none}.spec-row dt{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}.spec-row dd{font-size:14.5px;font-weight:500}.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--mint-dim);border-top:none;background:#5fd9b012;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stat{padding:18px;border-right:1px solid var(--line)}.stat:last-child{border-right:none}.stat .num{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1;color:var(--mint)}.stat .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px}.work-item{display:grid;grid-template-columns:1fr;gap:8px;padding:30px 0;border-bottom:1px solid var(--line);position:relative;transition:padding .3s}@media (min-width: 760px){.work-item{grid-template-columns:175px 1fr auto;gap:24px;align-items:baseline}}.work-item:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:#5fd9b00a;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,1,.36,1);z-index:-1}.work-item:hover:before{transform:scaleX(1)}.work-item:hover{padding-left:14px}.work-role{font-family:var(--font-display);font-weight:700;font-size:clamp(19px,2.5vw,25px)}.work-co{font-size:14px;color:var(--muted);margin-top:4px}.work-period{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--text-faint);margin-left:6px}.work-live{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mint);vertical-align:middle;margin:0 5px 1px 8px;animation:pulse-live 2s ease-in-out infinite}@keyframes pulse-live{0%,to{box-shadow:0 0 #5fd9b08c}50%{box-shadow:0 0 0 5px #5fd9b000}}.work-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ember)}.proj-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}.chip{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);padding:8px 16px;transition:all .2s}.chip:hover{border-color:var(--mint);color:var(--mint)}.chip.active{background:var(--mint);border-color:var(--mint);color:var(--bg)}.proj-grid{display:grid;gap:20px;grid-template-columns:1fr}@media (min-width: 640px){.proj-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1000px){.proj-grid{grid-template-columns:repeat(3,1fr)}}.proj-card{position:relative;display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--line);padding:26px 24px 22px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transform-style:preserve-3d;will-change:transform;transition:border-color .25s,background .25s}.proj-card:hover{border-color:var(--mint-dim);background:var(--surface-accent)}.proj-card.hide{display:none}.proj-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.proj-cat{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ember)}.proj-arrow{font-family:var(--font-mono);font-size:14px;color:var(--muted);transition:color .2s,transform .2s}.proj-card:hover .proj-arrow{color:var(--mint);transform:translate(3px,-3px)}.proj-name{font-family:var(--font-display);font-weight:700;font-size:20px;line-height:1.2}.proj-desc{font-size:13.5px;color:var(--muted);flex:1}.proj-stack{font-family:var(--font-mono);font-size:11px;color:var(--mint);letter-spacing:.04em}.skills-section{max-width:none;padding-left:0;padding-right:0}.skills-inner{max-width:var(--max-w);margin:0 auto;padding:0 var(--pad-x)}.marquee{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-top:-1px}.marquee-track{display:flex;gap:0;flex-shrink:0;min-width:100%;animation:marquee var(--dur, 30s) linear infinite}.marquee.rev .marquee-track{animation-direction:reverse}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{display:flex;align-items:center;gap:28px;padding:0 28px;font-family:var(--font-display);font-weight:700;font-size:clamp(22px,3.4vw,34px);text-transform:uppercase;color:var(--sand);white-space:nowrap}.marquee-item.ghost{color:transparent;-webkit-text-stroke:1px var(--muted)}.marquee-item .sep{color:var(--ember);font-size:.6em}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-100%)}}.skill-cats{display:grid;gap:14px;grid-template-columns:1fr;margin-top:48px}@media (min-width: 760px){.skill-cats{grid-template-columns:repeat(2,1fr)}}.skill-cat{border:1px solid var(--line);background:var(--card);padding:18px 20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.skill-cat h3{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--mint);margin-bottom:10px}.skill-cat p{font-size:14px;color:var(--text-body)}.lead-grid{display:grid;gap:20px;grid-template-columns:1fr}@media (min-width: 760px){.lead-grid{grid-template-columns:repeat(2,1fr)}}.lead-card{border:1px solid var(--line);background:var(--card);padding:28px 26px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .25s,transform .25s}.lead-card:hover{border-color:var(--mint-dim);transform:translateY(-4px)}.lead-card h3{font-family:var(--font-display);font-weight:700;font-size:19px;margin:8px 0 4px}.lead-org{font-size:13px;color:var(--muted);margin-bottom:12px}.lead-card p{font-size:14px;color:var(--text-body)}.lead-award{display:inline-block;margin-top:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ember);border:1px dashed var(--border-warm);padding:6px 12px}.contact{max-width:none;padding:0;border-top:1px solid var(--line)}.contact-inner{max-width:var(--max-w);margin:0 auto;padding:clamp(90px,14vh,150px) var(--pad-x)}.contact h2{font-size:clamp(40px,7.5vw,84px);line-height:1.02;margin:20px 0 16px}.contact h2 em{font-style:normal;color:var(--mint)}.contact-sub{color:var(--muted);max-width:480px;font-size:16px}.contact-links{margin-top:56px;display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}@media (min-width: 760px){.contact-links{grid-template-columns:repeat(2,1fr);gap:0 56px}}.c-link{display:flex;justify-content:space-between;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);transition:padding .25s,color .25s}.c-link:hover{color:var(--mint);padding-left:14px}.c-link .k{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.c-link .v{font-size:15px;font-weight:500}footer{border-top:1px solid var(--line)}.foot-inner{max-width:var(--max-w);margin:0 auto;padding:28px var(--pad-x);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
