:root{
  --radius:.5rem;
  --background:#fefefe;
  --foreground:#1a1a1a;
  --card:#ffffff;
  --secondary:#f4f4f4;
  --muted-foreground:#737373;
  --border:#e6e6e6;
  --input:#e6e6e6;
  --dot:#dc2626;
  --destructive:#dc2626;
  --emerald:#10b981;
  --font-sans:"Inter",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
}
html.dark{
  --background:#0a0a0a;
  --foreground:#fafafa;
  --card:#141414;
  --secondary:#1f1f1f;
  --muted-foreground:#a3a3a3;
  --border:rgba(255,255,255,.12);
  --input:rgba(255,255,255,.15);
  --dot:#ef4444;
}
*{box-sizing:border-box;border-color:var(--border)}
html,body{margin:0;padding:0}
body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{max-width:100%;display:block}

.mono{font-family:var(--font-mono)}
.fg{color:var(--foreground)}
.muted{color:var(--muted-foreground)}
.label-mono{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}
.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:9999px;background:var(--dot);box-shadow:0 0 0 4px color-mix(in oklab,var(--dot) 18%,transparent);vertical-align:middle}

/* LOADER */
.loader{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;overflow:hidden;background:var(--background);padding:0 1.5rem;transition:opacity .7s}
.loader.hide{opacity:0;pointer-events:none}
.bg-grid{position:absolute;inset:0;opacity:.6;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%);mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%)}
.bg-aurora{position:absolute;inset:0;background:radial-gradient(40rem 30rem at 12% 18%,color-mix(in oklab,var(--dot) 22%,transparent),transparent 60%),radial-gradient(36rem 28rem at 88% 30%,color-mix(in oklab,var(--dot) 14%,transparent),transparent 65%),radial-gradient(32rem 26rem at 50% 100%,color-mix(in oklab,var(--dot) 18%,transparent),transparent 70%);filter:blur(2px);animation:aurora 18s ease-in-out infinite alternate;pointer-events:none}
@keyframes aurora{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(2%,-1%,0) scale(1.06)}100%{transform:translate3d(-2%,1%,0) scale(1.02)}}
.nf-wrap{position:relative}
.nf-glow{position:absolute;inset:0;z-index:-1;filter:blur(48px);background:radial-gradient(ellipse at center,rgba(229,9,20,.55),transparent 60%);animation:nf-glow 1.2s ease-in-out infinite}
@keyframes nf-glow{0%,100%{opacity:.35}50%{opacity:.8}}
.nf-title{font-family:var(--font-mono);font-weight:900;letter-spacing:-.02em;color:#E50914;margin:0;font-size:clamp(3rem,9vw,8rem);line-height:1}
.nf-letter{display:inline-block;animation:nf-letter .5s cubic-bezier(.2,.8,.2,1) both;text-shadow:0 0 24px rgba(229,9,20,.45)}
@keyframes nf-letter{0%{transform:translateY(40%) scaleY(.6);opacity:0;letter-spacing:.6em;filter:blur(6px)}55%,100%{transform:translateY(0) scaleY(1);opacity:1;letter-spacing:.02em;filter:blur(0)}}
.nf-sweep{position:absolute;left:0;right:0;bottom:-2px;height:3px;background:linear-gradient(90deg,transparent,#E50914 30%,#fff 50%,#E50914 70%,transparent);animation:nf-sweep .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:.12s;transform-origin:left center}
@keyframes nf-sweep{0%{transform:scaleX(0);opacity:0}40%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
.boot-bars{position:relative;display:flex;align-items:flex-end;gap:6px}
.boot-bar{display:inline-block;width:4px;background:var(--foreground);border-radius:2px;animation:boot-bar .7s ease-in-out infinite}
@keyframes boot-bar{0%{transform:scaleY(.2);opacity:.4}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.2);opacity:.4}}
.boot-label{position:relative;display:flex;align-items:center;gap:.75rem}
.boot-bar-wrap{position:relative;height:2px;width:16rem;max-width:80vw;overflow:hidden;border-radius:9999px;background:var(--border)}
.boot-progress{height:100%;width:0;background:linear-gradient(90deg,#E50914,var(--foreground));transition:width .075s}
.boot-hint{position:relative;font-size:.75rem}
.caret{display:inline-block;width:8px;height:.9em;background:var(--foreground);vertical-align:middle;margin-left:4px;animation:blink 1s steps(1) infinite}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}

/* App */
.app{min-height:100vh;opacity:0;transition:opacity .7s}
.app.ready{opacity:1}

/* Scroll progress + spotlight + matrix */
.scroll-progress{position:fixed;inset:0 0 auto 0;top:0;height:2px;z-index:60;background:transparent}
#scrollBar{height:100%;width:0;background:linear-gradient(90deg,#E50914,var(--dot),var(--foreground));box-shadow:0 0 10px color-mix(in oklab,var(--dot) 60%,transparent);transition:width .075s}
.spotlight{position:fixed;inset:0;pointer-events:none;z-index:55;display:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),color-mix(in oklab,var(--dot) 12%,transparent),transparent 60%);mix-blend-mode:screen}
@media(min-width:768px){.spotlight{display:block}}
.matrix-canvas{position:fixed;inset:0;z-index:58;pointer-events:none;mix-blend-mode:screen;display:none}
.matrix-canvas.on{display:block}

/* NAV */
.nav{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--background) 85%,transparent);backdrop-filter:blur(8px)}
.nav-inner{max-width:80rem;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:3.5rem;padding:0 1rem}
@media(min-width:640px){.nav-inner{padding:0 1.5rem}}
.brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;letter-spacing:-.01em;font-size:.95rem}
.tabs-desktop{display:none;gap:.25rem;align-items:center}
@media(min-width:1024px){.tabs-desktop{display:flex}}
.tab-btn{border-radius:9999px;padding:.375rem .75rem;font-size:.875rem;color:var(--muted-foreground);transition:.2s}
.tab-btn:hover{color:var(--foreground)}
.tab-btn.active{background:var(--foreground);color:var(--background)}
.nav-right{display:flex;align-items:center;gap:.5rem}
.clock{display:none;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:9999px;padding:.375rem .75rem;font-family:var(--font-mono);font-size:.75rem;color:var(--muted-foreground)}
@media(min-width:1280px){.clock{display:inline-flex}}
.theme-btn{position:relative;display:inline-flex;height:36px;width:36px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:9999px;transition:.2s}
.theme-btn:hover{background:var(--secondary)}
.btn-ghost{display:none;border:1px solid var(--border);border-radius:9999px;padding:.375rem .75rem;font-size:.75rem;font-weight:500}
.btn-ghost:hover{background:var(--secondary)}
@media(min-width:640px){.btn-ghost{display:inline-flex}}
.btn-primary{display:none;background:var(--foreground);color:var(--background);border-radius:9999px;padding:.375rem 1rem;font-size:.875rem;font-weight:500}
.btn-primary:hover{opacity:.9}
@media(min-width:640px){.btn-primary{display:inline-flex}}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;height:36px;width:36px;border:1px solid var(--border);border-radius:9999px;font-size:1.1rem;line-height:1;transition:.2s}
.menu-btn:hover{background:var(--secondary)}
@media(min-width:1024px){.menu-btn{display:none}}
.mobile-menu{position:absolute;top:3.5rem;left:0;right:0;display:none;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--background) 95%,transparent);backdrop-filter:blur(8px);z-index:39}
.mobile-menu.open{display:flex}
.mobile-menu .tab-btn{text-align:left;padding:.625rem .875rem;border-radius:.5rem}
.mobile-menu .mm-actions{display:flex;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}
.mobile-menu .mm-actions .btn-ghost,.mobile-menu .mm-actions .btn-primary{display:inline-flex;flex:1;justify-content:center}
@media(min-width:1024px){.mobile-menu{display:none !important}}


/* MAIN */
.main{max-width:80rem;margin:0 auto;padding:0 1rem}
@media(min-width:640px){.main{padding:0 1.5rem}}
.rise{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.fade-up{animation:fade-up .5s ease-out both}
@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Hero */
.section{padding:4rem 0}
@media(min-width:768px){.section{padding:6rem 0}}
.section.home{position:relative;padding-top:3rem;padding-bottom:4rem}
@media(min-width:768px){.section.home{padding-top:5rem;padding-bottom:6rem}}
.home-bg{pointer-events:none;position:absolute;inset:0 0 -20% 0;overflow:hidden;z-index:-1}
.hero-kicker{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}
.hero-type{font-weight:800;letter-spacing:-.06em;line-height:.85;margin:0}
.hero-type .accent{display:inline-block;color:var(--dot);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
h1.hero-type{font-size:clamp(4rem,16vw,14rem)}
.hero-lead{margin-top:1.5rem;max-width:36rem;font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
@media(min-width:768px){.hero-lead{font-size:1.875rem}}
.hero-desc{margin-top:1rem;max-width:36rem;color:var(--muted-foreground);font-size:.95rem}
@media(min-width:768px){.hero-desc{font-size:1.125rem}}
.hero-form{margin-top:2rem;display:flex;flex-direction:column;gap:.75rem;max-width:36rem}
@media(min-width:640px){.hero-form{flex-direction:row}}
.hero-input{flex:1;display:flex;align-items:center;border:1px solid var(--input);background:color-mix(in oklab,var(--card) 80%,transparent);border-radius:.375rem;padding:.75rem 1rem;font-family:var(--font-mono);font-size:.875rem;backdrop-filter:blur(4px)}
.hero-input input{flex:1;background:transparent;border:0;outline:0;min-width:0;color:inherit}
.hero-input input::placeholder{color:var(--muted-foreground)}
.btn-sweep{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;background:var(--foreground);color:var(--background);padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;transition:.2s}
.btn-sweep:hover{opacity:.9}
.btn-sweep .arrow{transition:transform .2s}
.btn-sweep:hover .arrow{transform:translateX(4px)}
.hero-avail{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}

/* Marquee */
.marquee{margin-top:3.5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.5rem 0;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:3rem;padding-right:3rem;flex-shrink:0;animation:marquee 28s linear infinite}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.marquee-item{display:flex;align-items:center;gap:.75rem;flex-shrink:0;opacity:.8}
.marquee-item img{height:24px;width:24px;object-fit:contain}

/* Section header */
.sec-header{margin-bottom:2.5rem}
.sec-kicker{margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem}
.sec-title{max-width:48rem;font-size:clamp(1.875rem,4vw,3.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}

/* About */
.about-grid{display:grid;gap:2.5rem;margin-top:2.5rem}
@media(min-width:768px){.about-grid{grid-template-columns:repeat(3,1fr)}}
.about-grid p{color:color-mix(in oklab,var(--foreground) 80%,transparent);margin:0;line-height:1.6}
.counter-grid{margin-top:3.5rem;display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.counter-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:768px){.counter-grid{grid-template-columns:repeat(4,1fr)}}
.counter-card{position:relative;overflow:hidden;border:1px solid var(--border);background:var(--card);border-radius:.5rem;padding:1.5rem;transition:.3s}
.counter-card:hover{transform:translateY(-4px);border-color:color-mix(in oklab,var(--foreground) 30%,transparent)}
.counter-card .num{font-size:clamp(2.25rem,4vw,3rem);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}

/* Projects */
.projects{overflow:hidden;border-radius:.5rem;border:1px solid var(--border);background:var(--card)}
.project{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:.75rem;align-items:baseline;padding:1.5rem 1rem;border-bottom:1px solid var(--border);transition:background .2s}
.project:last-child{border-bottom:0}
.project:hover{background:var(--secondary)}
@media(min-width:640px){.project{padding:1.75rem 1.5rem;gap:1rem}}
.project::before{content:"";position:absolute;left:0;top:0;height:100%;width:2px;background:var(--dot);transform-origin:top;transform:scaleY(0);transition:transform .5s}
.project:hover::before{transform:scaleY(1)}
.project .pn{grid-column:span 2;font-family:var(--font-mono);font-size:.875rem;color:var(--muted-foreground)}
@media(min-width:768px){.project .pn{grid-column:span 1}}
.project .pt{grid-column:span 10}
@media(min-width:768px){.project .pt{grid-column:span 5}}
.project h3{font-size:1.125rem;font-weight:600;letter-spacing:-.01em;margin:0;transition:color .2s}
@media(min-width:768px){.project h3{font-size:1.5rem}}
.project:hover h3{color:var(--dot)}
.project .pd{grid-column:span 12;font-size:.875rem;color:var(--muted-foreground)}
@media(min-width:768px){.project .pd{grid-column:span 4}}
.project .pmeta{grid-column:span 12;display:flex;align-items:center;justify-content:space-between}
@media(min-width:768px){.project .pmeta{grid-column:span 2;justify-content:flex-end}}
.project .arr{margin-left:1rem;font-size:.875rem;transition:transform .2s}
.project:hover .arr{transform:translateX(8px)}

/* Stack */
.stack-grid{display:grid;grid-template-columns:repeat(2,1fr);border-left:1px solid var(--border);border-top:1px solid var(--border)}
@media(min-width:640px){.stack-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:768px){.stack-grid{grid-template-columns:repeat(5,1fr)}}
.stack-cell{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:var(--card);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:1rem;transition:.4s cubic-bezier(.2,.7,.2,1)}
.stack-cell:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 20px 50px -20px color-mix(in oklab,var(--dot) 35%,transparent)}
.stack-cell img{height:32px;width:32px;object-fit:contain;transition:.5s}
.stack-cell:hover img{transform:scale(1.1) rotate(-6deg)}
.status-grid{margin-top:3rem;display:grid;gap:1.5rem;grid-template-columns:1fr}
@media(min-width:768px){.status-grid{grid-template-columns:repeat(3,1fr)}}
.status-card{border:1px solid var(--border);background:var(--card);border-radius:.5rem;padding:1.5rem}
.status-card .v{font-size:1.125rem;font-weight:500;margin-top:.75rem}

/* Resume */
.avail-banner{position:relative;overflow:hidden;border-radius:.5rem;border:1px solid color-mix(in oklab,var(--emerald) 30%,transparent);background:color-mix(in oklab,var(--emerald) 5%,transparent);padding:1.25rem}
.avail-banner .row{display:flex;flex-direction:column;gap:1rem}
@media(min-width:640px){.avail-banner .row{flex-direction:row;align-items:center;justify-content:space-between}}
.avail-banner .ping{position:relative;display:inline-flex;width:10px;height:10px;margin-top:6px}
.avail-banner .ping::before{content:"";position:absolute;inset:0;border-radius:9999px;background:#4ade80;opacity:.75;animation:ping 1.4s cubic-bezier(0,0,.2,1) infinite}
.avail-banner .ping::after{content:"";position:relative;inline-size:10px;block-size:10px;border-radius:9999px;background:var(--emerald);display:inline-block}
@keyframes ping{75%,100%{transform:scale(2);opacity:0}}
.resume-actions{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}
@media(min-width:640px){.resume-actions{flex-direction:row;align-items:center;justify-content:space-between}}
.resume-body{margin-top:2rem;overflow:hidden;border-radius:.5rem;border:1px solid var(--border);background:var(--card);padding:1.5rem}
@media(min-width:640px){.resume-body{padding:2.5rem}}
.resume-body header{border-bottom:1px solid var(--border);padding-bottom:1.5rem}
.resume-body h3{font-size:1.5rem;font-weight:600;letter-spacing:-.01em;margin:0}
.resume-sec{margin-top:2rem;border-top:1px solid var(--border);padding-top:1.5rem}
.resume-sec .head{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem}
.resume-sec h4{font-size:1.125rem;font-weight:600;margin:0}
.skill-grid{display:grid;gap:.75rem;grid-template-columns:1fr}
@media(min-width:640px){.skill-grid{grid-template-columns:repeat(2,1fr)}}
.skill-card{border:1px solid var(--border);background:var(--background);border-radius:.375rem;padding:1rem}
.job{margin-bottom:1.5rem}
.job:last-child{margin-bottom:0}
.job .jrow{display:flex;flex-direction:column;gap:.25rem}
@media(min-width:640px){.job .jrow{flex-direction:row;align-items:baseline;justify-content:space-between}}
.job ul{margin-top:.75rem;padding-left:0;list-style:none}
.job li{display:flex;gap:.75rem;font-size:.875rem;color:var(--muted-foreground);margin-bottom:.5rem;line-height:1.5}
.job li::before{content:"";width:4px;height:4px;border-radius:9999px;background:color-mix(in oklab,var(--foreground) 60%,transparent);margin-top:9px;flex-shrink:0}

/* FAQ */
.faq{overflow:hidden;border-radius:.5rem;border:1px solid var(--border);background:var(--card)}
.faq details{padding:1.25rem 1rem;border-bottom:1px solid var(--border)}
.faq details:last-child{border-bottom:0}
.faq details[open]{background:color-mix(in oklab,var(--secondary) 60%,transparent)}
@media(min-width:640px){.faq details{padding:1.25rem 1.5rem}}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq .qh{display:flex;align-items:center;gap:1rem}
.faq .qh .n{font-family:var(--font-mono);font-size:.75rem;color:var(--muted-foreground)}
.faq .qh .q{font-size:1rem;font-weight:500}
@media(min-width:640px){.faq .qh .q{font-size:1.125rem}}
.faq .plus{font-size:1.25rem;color:var(--muted-foreground);transition:transform .2s}
.faq details[open] .plus{transform:rotate(45deg)}
.faq .a{margin-top:1rem;padding-left:2rem;color:var(--muted-foreground);font-size:.95rem;max-width:48rem}

/* Contact */
.contact-kicker{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}
.copy-row{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.copy-btn{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:9999px;padding:.5rem 1rem;font-family:var(--font-mono);font-size:.8rem;transition:.2s}
.copy-btn:hover{background:var(--secondary)}
.linkedin-btn{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:9999px;padding:.5rem 1rem;font-family:var(--font-mono);font-size:.8rem;transition:.2s}
.linkedin-btn:hover{background:var(--secondary)}
.kbd{border:1px solid var(--border);background:var(--secondary);border-radius:.25rem;padding:2px 6px;font-family:var(--font-mono);font-size:10px}
.contact-form{position:relative;margin-top:2.5rem;display:grid;gap:.75rem;max-width:42rem}
.contact-form input,.contact-form textarea{border:1px solid var(--input);background:var(--card);border-radius:.375rem;padding:.75rem 1rem;font-family:var(--font-mono);font-size:.875rem;outline:none;color:inherit;transition:border-color .2s;resize:vertical;font:.875rem var(--font-mono)}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--foreground)}
.contact-form .honeypot{position:absolute;opacity:0;pointer-events:none}
.contact-row{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}
@media(min-width:640px){.contact-row{flex-direction:row;align-items:center;justify-content:space-between}}
.send-btn{width:100%;border-radius:9999px;background:var(--foreground);color:var(--background);padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;transition:.2s}
.send-btn:hover{opacity:.9}
.send-btn:disabled{opacity:.5;cursor:not-allowed}
@media(min-width:640px){.send-btn{width:auto}}
.msg-success{font-size:.875rem;color:#16a34a}
.msg-error{font-size:.875rem;color:var(--destructive)}

/* Footer */
.footer{border-top:1px solid var(--border)}
.footer-inner{max-width:80rem;margin:0 auto;padding:2.5rem 1rem;display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem}
@media(min-width:768px){.footer-inner{flex-direction:row;align-items:center;justify-content:space-between;padding:2.5rem 1.5rem}}
.footer-links{display:flex;flex-wrap:wrap;gap:1.5rem;font-size:.875rem;color:var(--muted-foreground)}
.footer-links a:hover{color:var(--foreground)}
