:root{--bg:#0a0a0b;--bg-elev:#111113;--bg-panel:#0f0f12;--text:#ece8dc;--text-dim:#9b9486;--text-muted:#5a554c;--accent:#d4ff3a;--accent-glow:#d4ff3a59;--accent-soft:#d4ff3a14;--rust:#ff5e2a;--rust-soft:#ff5e2a1a;--border:#ece8dc17;--border-strong:#ece8dc2e;--sans:"Fraunces", Georgia, serif;--display:"Fraunces", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:16px/1.55 var(--mono);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{background:var(--bg);margin:0;padding:0;overflow-x:hidden}body{min-height:100svh;position:relative}body:before{content:"";pointer-events:none;z-index:100;opacity:.12;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.4 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:99;background:radial-gradient(#0000 40%,#0000008c 100%);position:fixed;inset:0}#root{width:100%;min-height:100svh;position:relative}::selection{background:var(--accent);color:var(--bg)}h1,h2,h3,h4{font-family:var(--display);color:var(--text);margin:0;font-weight:400}p{margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}hr{border:0;border-top:1px solid var(--border)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.mono{font-family:var(--mono)}.display{font-family:var(--display)}.eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:10px;font-size:11px;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 12px var(--accent-glow);border-radius:50%}.tag{font-family:var(--mono);letter-spacing:.08em;border:1px solid var(--border-strong);color:var(--text-dim);text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:inline-flex}.container{width:100%;max-width:1360px;margin:0 auto;padding:0 32px}@media (width<=700px){.container{padding:0 20px}}.section{padding:120px 0;position:relative}@media (width<=700px){.section{padding:80px 0}}.section-title{font-family:var(--display);letter-spacing:-.03em;font-size:clamp(48px,7vw,96px);font-weight:300;line-height:.95}.section-title em{color:var(--accent);font-style:italic;font-weight:300}.gridlines{pointer-events:none;background-image:linear-gradient(to right, var(--border) 1px, transparent 1px), linear-gradient(to bottom, var(--border) 1px, transparent 1px);opacity:.4;background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 85%);mask-image:radial-gradient(#000 30%,#0000 85%)}@keyframes blink{50%{opacity:0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes ticker{0%{opacity:.3}to{opacity:1}}.nav{z-index:50;-webkit-backdrop-filter:blur(6px);background:linear-gradient(#0a0a0bd9,#0000);padding:18px 0;position:fixed;top:0;left:0;right:0}.nav-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.nav-mark{font-family:var(--mono);letter-spacing:.04em;color:var(--text);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.mark-glyph{color:var(--accent);text-shadow:0 0 14px var(--accent-glow);font-size:18px;animation:3s ease-in-out infinite floaty}.mark-dot{color:var(--accent)}.nav-links{font-family:var(--mono);letter-spacing:.05em;color:var(--text-dim);gap:28px;font-size:12px;display:flex}.nav-links a{padding:4px 2px;transition:color .2s;position:relative}.nav-links a:hover{color:var(--accent)}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .3s;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover:after{transform:scaleX(1)}.nav-status{font-family:var(--mono);color:var(--text-dim);letter-spacing:.08em;align-items:center;gap:8px;font-size:11px;display:flex}.nav-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent-glow);border-radius:50%;animation:2s ease-in-out infinite blink}@media (width<=900px){.nav-links{display:none}}.hero{width:100%;min-height:100svh;padding-top:90px;position:relative;overflow:hidden}.hero-scene{z-index:1;opacity:.95;width:70%;position:absolute;top:0;bottom:0;right:-6%;-webkit-mask-image:radial-gradient(70% 80% at 60%,#000 40%,#0000 80%);mask-image:radial-gradient(70% 80% at 60%,#000 40%,#0000 80%)}@media (width<=900px){.hero-scene{opacity:.35;width:100%;right:0}}.hero-grid{z-index:2;pointer-events:none;background-image:linear-gradient(to right, var(--border) 1px, transparent 1px), linear-gradient(to bottom, var(--border) 1px, transparent 1px);opacity:.5;background-size:120px 120px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#0000 20%,#000 90%);mask-image:radial-gradient(#0000 20%,#000 90%)}.hero-content{z-index:3;pointer-events:none;flex-direction:column;justify-content:space-between;min-height:calc(100svh - 90px);padding-top:40px;padding-bottom:40px;display:flex;position:relative}.hero-content>*{pointer-events:auto}.hero-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-coords{color:var(--text-dim);letter-spacing:.15em;font-size:11px}.hero-title{font-family:var(--display);letter-spacing:-.045em;color:var(--text);margin:40px 0;font-size:clamp(72px,15vw,220px);font-weight:300;line-height:.88}.hero-title .line{display:block;overflow:hidden}.hero-title .line>span{animation:1s cubic-bezier(.19,1,.22,1) both rise;display:inline-block}.hero-title .line:nth-child(2)>span{animation-delay:.12s}.hero-title .line:nth-child(3)>span{animation-delay:.24s}.hero-title .italic{color:var(--accent);font-style:italic;font-weight:300;position:relative}.hero-sub{grid-template-columns:auto 1fr;align-items:start;gap:40px 60px;max-width:1000px;animation:1s cubic-bezier(.19,1,.22,1) .36s both rise;display:grid}.hero-role{color:var(--text);letter-spacing:.02em;white-space:nowrap;font-size:14px}.prompt{color:var(--accent);margin-right:8px}.role-accent{color:var(--rust);margin-left:6px}.cursor-blink{color:var(--accent);animation:1s step-end infinite blink;display:inline-block}.hero-summary{font-family:var(--display);color:var(--text-dim);max-width:620px;font-size:clamp(18px,2vw,24px);font-weight:300;line-height:1.45}.hero-summary em{color:var(--text);font-style:italic}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:40px;animation:1s cubic-bezier(.19,1,.22,1) .5s both rise;display:flex}.btn{font-family:var(--mono);letter-spacing:.04em;border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f0f1299;border-radius:2px;align-items:center;gap:10px;padding:14px 20px;font-size:13px;transition:all .2s;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover{color:var(--accent);background:0 0}.btn-arrow{transition:transform .2s}.btn:hover .btn-arrow{transform:translate(4px)}.hero-footer{border-top:1px dashed var(--border);grid-template-columns:repeat(3,1fr);gap:24px;padding-top:24px;animation:1s cubic-bezier(.19,1,.22,1) .62s both rise;display:grid}.hero-footer-col{flex-direction:column;gap:6px;display:flex}.hero-footer-col .label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);font-size:10px}.hero-footer-col .value{font-family:var(--mono);color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.hero-footer-col .dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent-glow);border-radius:50%;animation:1.5s ease-in-out infinite blink}.hero-scroll{z-index:4;font-family:var(--mono);text-transform:uppercase;letter-spacing:.25em;color:var(--text-dim);writing-mode:vertical-rl;flex-direction:column;align-items:center;gap:10px;font-size:10px;display:flex;position:absolute;bottom:24px;right:32px}.scroll-line{background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:60px}@media (width<=900px){.hero-sub{grid-template-columns:1fr;gap:20px}.hero-footer{grid-template-columns:1fr}.hero-scroll{display:none}}.marquee{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-elev);padding:18px 0;position:relative;overflow:hidden}.marquee-mask{width:max-content;animation:40s linear infinite marquee;display:flex}.marquee-track{gap:60px;padding-right:60px;display:flex}.marquee-item{font-family:var(--mono);letter-spacing:.15em;color:var(--text);white-space:nowrap;align-items:center;gap:16px;font-size:14px;display:inline-flex}.marquee-star{color:var(--accent);font-size:14px}.marquee:hover .marquee-mask{animation-play-state:paused}.about-grid{grid-template-columns:280px 1fr;align-items:start;gap:80px;display:grid}.about-aside{flex-direction:column;gap:32px;display:flex;position:sticky;top:120px}.about-id{border:1px solid var(--border);background:var(--bg-panel);border-radius:4px;flex-direction:column;gap:8px;padding:18px;font-size:12px;display:flex}.about-id .k{color:var(--text-muted)}.about-id .v{color:var(--text)}.about-id .accent{color:var(--accent)}.about-id .accent:before{content:"● ";animation:1.5s ease-in-out infinite blink}.about-main{flex-direction:column;gap:60px;display:flex}.about-body{font-family:var(--display);color:var(--text-dim);flex-direction:column;gap:20px;max-width:720px;font-size:clamp(17px,1.6vw,22px);font-weight:300;line-height:1.55;display:flex}.about-body .hl{color:var(--text);font-style:italic;position:relative}.about-body .hl:after{content:"";background:var(--accent);opacity:.5;height:1px;position:absolute;bottom:-1px;left:0;right:0}.about-stats{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.stat{border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:28px 20px;transition:background .2s;display:flex}.stat:last-child{border-right:0}.stat:hover{background:var(--accent-soft)}.stat-n{font-family:var(--display);letter-spacing:-.03em;color:var(--text);font-size:clamp(36px,4vw,56px);font-weight:300;line-height:1}.stat-n .stat-sub{color:var(--text-dim);font-size:.4em;font-style:italic}.stat-l{font-family:var(--mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:10px;line-height:1.4}@media (width<=900px){.about-grid{grid-template-columns:1fr;gap:40px}.about-aside{position:static}.about-stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:first-child,.stat:nth-child(2){border-bottom:1px solid var(--border)}}.skills{background:linear-gradient(to bottom, var(--bg) 0%, var(--bg-elev) 50%, var(--bg) 100%)}.skills-header{grid-template-columns:auto 1fr auto;align-items:end;gap:40px;margin-bottom:64px;display:grid}.skills-lede{font-family:var(--display);color:var(--text-dim);text-align:right;max-width:360px;font-size:clamp(16px,1.4vw,20px);font-weight:300;line-height:1.5}.skills-table{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}.skills-table-head,.skills-row{border-bottom:1px solid var(--border);grid-template-columns:60px 200px 1fr 80px;align-items:center;gap:24px;padding:18px 0;display:grid}.skills-table-head{font-family:var(--mono);letter-spacing:.25em;color:var(--text-muted);background:var(--bg-elev);padding:12px 18px;font-size:10px}.skills-row{padding-left:18px;padding-right:18px;transition:background .2s,color .2s}.skills-row:hover{background:var(--accent-soft)}.skills-row:last-child{border-bottom:0}.row-idx{font-family:var(--mono);color:var(--text-muted);letter-spacing:.1em;font-size:11px}.row-label{font-family:var(--display);letter-spacing:-.01em;color:var(--text);align-items:center;gap:14px;font-size:clamp(20px,2vw,28px);font-weight:300;display:flex}.row-glyph{color:var(--accent);font-size:16px;animation:4s ease-in-out infinite floaty}.row-items{flex-wrap:wrap;gap:8px;display:flex}.chip{font-family:var(--mono);letter-spacing:.05em;border:1px solid var(--border-strong);color:var(--text-dim);background:#0f0f1299;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;transition:all .2s;display:inline-flex}.chip:hover{color:var(--bg);background:var(--accent);border-color:var(--accent)}.row-count{font-family:var(--mono);color:var(--text-dim);text-align:right;font-size:13px}.skills-row:hover .row-count{color:var(--accent)}@media (width<=900px){.skills-header{grid-template-columns:1fr;gap:20px}.skills-lede{text-align:left;max-width:100%}.skills-table-head{display:none}.skills-row{grid-template-rows:auto auto;grid-template-columns:40px 1fr 40px;gap:8px 14px}.row-items{grid-column:1/-1}}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:64px;display:flex}.projects-list{flex-direction:column;gap:0;display:flex}.project{border-top:1px solid var(--border);grid-template-columns:80px 380px 1fr;align-items:start;gap:40px;padding:56px 0;display:grid;position:relative}.project:last-child{border-bottom:1px solid var(--border)}.project:hover .project-title{color:var(--accent)}.project-index{font-family:var(--mono);color:var(--text-muted);letter-spacing:.1em;padding-top:8px;font-size:12px}.project-visual{aspect-ratio:1;border:1px solid var(--border);background:radial-gradient(#d4ff3a0f,#0000 70%);width:100%;position:relative;overflow:hidden}.project-visual-frame{pointer-events:none;position:absolute;inset:0}.project-visual-frame>span{border-color:var(--accent);border-style:solid;border-width:0;width:14px;height:14px;position:absolute}.frame-tl{border-top-width:1px;border-left-width:1px;top:8px;left:8px}.frame-tr{border-top-width:1px;border-right-width:1px;top:8px;right:8px}.frame-bl{border-bottom-width:1px;border-left-width:1px;bottom:8px;left:8px}.frame-br{border-bottom-width:1px;border-right-width:1px;bottom:8px;right:8px}.project-body{flex-direction:column;gap:28px;padding-top:8px;display:flex}.project-head{flex-direction:column;gap:14px;display:flex}.project-title{font-family:var(--display);letter-spacing:-.025em;color:var(--text);font-size:clamp(32px,4vw,56px);font-weight:300;line-height:1;transition:color .3s}.project-stack{flex-wrap:wrap;gap:8px;display:flex}.stack-chip{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--text-dim);padding:4px 10px;font-size:10px}.project-features{grid-template-columns:repeat(2,1fr);gap:10px 24px;margin:0;padding:0;list-style:none;display:grid}.project-features li{font-family:var(--mono);color:var(--text-dim);align-items:baseline;gap:10px;font-size:13px;display:flex}.feat-glyph{color:var(--accent);font-size:10px}.project-achievement{background:var(--rust-soft);border-left:2px solid var(--rust);align-items:center;gap:14px;width:fit-content;padding:10px 16px;display:inline-flex}.ach-label{font-family:var(--mono);letter-spacing:.25em;color:var(--rust);font-size:10px;font-weight:600}.ach-value{font-family:var(--display);color:var(--text);font-size:17px;font-style:italic}@media (width<=1100px){.project{grid-template-rows:auto auto;grid-template-columns:60px 1fr;gap:20px}.project-visual{grid-column:2;max-width:320px}.project-body{grid-column:1/-1}}@media (width<=700px){.project-features{grid-template-columns:1fr}.project-visual{max-width:100%}}.edu-grid{grid-template-columns:380px 1fr;align-items:start;gap:80px;display:grid}.edu-header{flex-direction:column;gap:24px;display:flex;position:sticky;top:120px}.edu-columns{grid-template-columns:1fr 1fr;gap:60px;display:grid}.edu-col-title{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-strong);margin-bottom:28px;padding-bottom:16px;font-size:11px}.edu-list{flex-direction:column;gap:40px;display:flex}.edu-item-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.edu-duration{font-family:var(--mono);letter-spacing:.1em;color:var(--accent);border:1px solid var(--accent);background:var(--accent-soft);border-radius:2px;padding:3px 8px;font-size:11px}.edu-line{background:linear-gradient(to right, var(--accent), transparent);opacity:.3;flex:1;height:1px}.edu-degree{font-family:var(--display);letter-spacing:-.01em;color:var(--text);margin-bottom:4px;font-size:clamp(20px,1.8vw,26px);font-weight:300}.edu-inst{font-family:var(--mono);color:var(--text-dim);margin-bottom:12px;font-size:12px}.edu-course{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.edu-course li{font-family:var(--mono);border:1px dashed var(--border-strong);color:var(--text-dim);padding:3px 8px;font-size:11px}.certs{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.cert{border-bottom:1px solid var(--border);grid-template-columns:40px 1fr;align-items:center;gap:16px;padding:16px 0;transition:padding .2s;display:grid}.cert:hover{padding-left:8px}.cert:hover .cert-name{color:var(--accent)}.cert-num{font-family:var(--mono);color:var(--text-muted);letter-spacing:.15em;font-size:11px}.cert-name{font-family:var(--display);color:var(--text);font-size:clamp(15px,1.3vw,18px);line-height:1.3;transition:color .2s}@media (width<=1100px){.edu-grid{grid-template-columns:1fr;gap:40px}.edu-header{position:static}.edu-columns{grid-template-columns:1fr}}.contact{padding-bottom:0;position:relative;overflow:hidden}.contact-inner{z-index:2;flex-direction:column;gap:48px;display:flex;position:relative}.contact-title{font-family:var(--display);letter-spacing:-.045em;color:var(--text);font-size:clamp(60px,9vw,140px);font-weight:300;line-height:.92}.contact-title em{color:var(--accent);font-style:italic}.contact-email{font-family:var(--display);color:var(--text);border-top:1px solid var(--border);border-bottom:1px solid var(--border);letter-spacing:-.02em;align-items:baseline;gap:12px;width:100%;padding:20px 0;font-size:clamp(28px,4vw,52px);font-style:italic;font-weight:300;transition:color .3s,padding .3s;display:inline-flex}.contact-email:hover{color:var(--accent);padding-left:16px}.email-text{flex:1}.email-arrow{font-family:var(--mono);font-size:.7em;transition:transform .3s}.contact-email:hover .email-arrow{transform:translate(6px,-6px)}.contact-grid{grid-template-columns:repeat(3,1fr);gap:40px;padding-top:24px;display:grid}.contact-col{font-family:var(--mono);color:var(--text);flex-direction:column;gap:10px;font-size:14px;display:flex}.contact-col a{border-bottom:1px dashed var(--border);align-items:baseline;gap:12px;padding:6px 0;transition:all .2s;display:flex}.contact-col a:hover{color:var(--accent);border-color:var(--accent);padding-left:4px}.col-label{letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:10px}.dim{color:var(--text-muted);font-size:12px}.p-label{min-width:80px;color:var(--text-dim);font-size:12px}.p-handle{flex:1}.p-arrow{transition:transform .2s}.contact-col a:hover .p-arrow{transform:translate(4px)}.foot{border-top:1px solid var(--border);margin-top:80px;padding:24px 0}.foot-inner{color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;font-size:11px;display:flex}.foot-center .accent{color:var(--accent)}@media (width<=900px){.contact-grid{grid-template-columns:1fr}.foot-inner{flex-direction:column;align-items:flex-start}}.custom-cursor,.custom-cursor body,.custom-cursor a,.custom-cursor button{cursor:none!important}.cursor-dot,.cursor-ring{pointer-events:none;z-index:9999;will-change:transform;mix-blend-mode:difference;position:fixed;top:0;left:0;transform:translate(-100px,-100px)}.cursor-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 16px var(--accent-glow);border-radius:50%;margin:-3px 0 0 -3px}.cursor-ring{border:1px solid var(--accent);border-radius:50%;width:32px;height:32px;margin:-16px 0 0 -16px;transition:width .2s,height .2s,margin .2s,background .2s}.cursor-ring.hover{background:#d4ff3a14;width:56px;height:56px;margin:-28px 0 0 -28px}@media (pointer:coarse){.cursor-dot,.cursor-ring{display:none}}
