:root,html[data-theme=light]{--bg:#f4f6f8;--bg-elevated:#fff;--bg-panel:#fafbfd;--ink:#0b0f15;--line:#0b0f1514;--line-strong:#0b0f152e;--text:#0b0f15;--text-muted:#4b5565;--text-dim:#758195;--cyan:#ea3815;--cyan-dim:#ea38151a;--accent:#ea3815;--accent-dim:#ea38151a;--amber:#15803d;--amber-dim:#15803d1a;--violet:#475569;--nav-glass:#f4f6f8d1;--mobile-glass:#fafbfdf5;--overlay:#0b0f1566;--grid-line:#0b0f150a;--shadow-ink:#0b0f1514;--card-wash:#f4f6f8b3;--marquee-em:#ea3815;--scene-ink:#0b0f15;--scene-signal:#ea3815;--scene-oxide:#15803d;--font-display:"Bricolage Grotesque", system-ui, -apple-system, sans-serif;--font-body:"Public Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--nav-h:64px;--radius-sm:8px;--radius-md:14px;--radius-lg:18px;--radius-pill:9999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}html[data-theme=dark]{--bg:#090c10;--bg-elevated:#121720;--bg-panel:#18202c;--ink:#f0f4f8;--line:#f0f4f814;--line-strong:#f0f4f82e;--text:#f0f4f8;--text-muted:#8c9bb0;--text-dim:#5a687a;--cyan:#ff4d2e;--cyan-dim:#ff4d2e24;--accent:#ff4d2e;--accent-dim:#ff4d2e24;--amber:#22c55e;--amber-dim:#22c55e1f;--violet:#818cf8;--nav-glass:#090c10d1;--mobile-glass:#121720f7;--overlay:#000000a6;--grid-line:#f0f4f80a;--shadow-ink:#00000073;--card-wash:#121720a6;--marquee-em:#ff6b4a;--scene-ink:#f0f4f8;--scene-signal:#ff4d2e;--scene-oxide:#22c55e}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--accent-dim) transparent}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{background:var(--accent);color:#fff}.noise{pointer-events:none;z-index:9998;opacity:.035;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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.grid-bg{pointer-events:none;z-index:0;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:56px 56px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 30%,#000 20%,#0000 75%);mask-image:radial-gradient(circle at 50% 30%,#000 20%,#0000 75%)}.aurora{pointer-events:none;z-index:0;background:radial-gradient(ellipse 40% 30% at 85% 12%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%), radial-gradient(ellipse 35% 30% at 15% 75%, color-mix(in srgb, var(--amber) 8%, transparent), transparent 60%);position:fixed;inset:0}.app-shell{z-index:1;opacity:0;transition:opacity .6s ease, transform .6s var(--ease-out);position:relative;transform:translateY(8px)}.app-shell.is-ready{opacity:1;transform:none}#root{min-height:100vh}a{color:inherit;text-decoration:none}img,canvas{max-width:100%;display:block}.section{max-width:1280px;margin:0 auto;padding:clamp(4.5rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem);position:relative}.section-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:var(--accent-dim);align-items:center;gap:.5rem;margin-bottom:.85rem;padding:.25rem .65rem;font-size:.68rem;display:inline-flex}.section-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin-bottom:.75rem;font-size:clamp(2rem,4.2vw,3.25rem);font-weight:700;line-height:1.12}.section-lead{color:var(--text-muted);max-width:42rem;margin-bottom:2.75rem;font-size:1.05rem;line-height:1.6}.scroll-progress{background:var(--accent);z-index:500;transform-origin:0;height:2.5px;position:fixed;top:0;left:0}.nav{z-index:100;height:var(--nav-h);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:0 clamp(1.25rem,4vw,3.5rem);transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{background:var(--nav-glass);-webkit-backdrop-filter:blur(16px)saturate(180%);border-bottom-color:var(--line);box-shadow:0 4px 20px -4px var(--shadow-ink)}.nav-brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:.55rem;font-size:1.12rem;font-weight:800;transition:opacity .2s;display:flex}.nav-brand:hover{opacity:.88}.brand-monogram{background:var(--accent);color:#fff;width:26px;height:26px;box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:6px;justify-content:center;align-items:center;font-size:.82rem;font-weight:800;display:inline-flex}.nav-brand span:not(.brand-monogram){color:var(--accent)}.nav-capsule{align-items:center;display:flex}.nav-links{background:var(--line);border-radius:var(--radius-pill);border:1px solid var(--line-strong);align-items:center;gap:.2rem;padding:.25rem;list-style:none;display:flex}.nav-link-item{position:relative}.nav-link-btn{z-index:1;color:var(--text-muted);border-radius:var(--radius-pill);justify-content:center;align-items:center;padding:.4rem .9rem;font-size:.82rem;font-weight:500;transition:color .2s;display:inline-flex;position:relative}.nav-link-btn:hover{color:var(--ink)}.nav-link-btn.active{color:var(--ink);font-weight:600}.nav-pill-bg{border-radius:var(--radius-pill);background:var(--bg-elevated);box-shadow:0 2px 8px var(--shadow-ink);border:1px solid var(--line-strong);z-index:-1;position:absolute;inset:0}.nav-link-text{z-index:2;position:relative}.nav-actions{align-items:center;gap:.55rem;display:flex}.nav-theme,.nav-github,.nav-cmd{border-radius:var(--radius-sm);border:1px solid var(--line-strong);height:36px;color:var(--text-muted);background:var(--bg-elevated);justify-content:center;align-items:center;transition:color .2s,border-color .2s,background .2s,transform .2s;display:inline-flex}.nav-theme{width:36px}.nav-theme:hover{color:var(--ink);border-color:var(--ink);transform:rotate(12deg)}.nav-github{width:36px}.nav-github:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.nav-cmd{font-family:var(--font-mono);gap:.45rem;padding:0 .75rem;font-size:.72rem}.nav-cmd kbd{font:inherit;border:1px solid var(--line-strong);background:var(--bg-panel);border-radius:4px;padding:.05rem .35rem}.nav-cmd:hover{color:var(--ink);border-color:var(--ink)}.nav-cta{border-radius:var(--radius-pill);background:var(--accent);color:#fff;transition:transform .25s var(--ease-out), filter .25s;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.82rem;font-weight:600;display:inline-flex}.nav-cta:hover{filter:brightness(1.1);transform:translateY(-1px)}.nav-mobile-tools{align-items:center;gap:.4rem;display:none}.nav-toggle{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);width:36px;height:36px;color:var(--ink);justify-content:center;align-items:center;display:none}@media (width<=880px){.nav-links,.nav-actions{display:none}.nav-mobile-tools,.nav-toggle{display:flex}.nav-mobile{inset:var(--nav-h) 0 0 0;background:var(--mobile-glass);-webkit-backdrop-filter:blur(20px);z-index:99;flex-direction:column;gap:.75rem;padding:2rem;display:flex;position:fixed}.nav-mobile button,.nav-mobile a{font-family:var(--font-display);border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);padding:.75rem 0;font-size:1.5rem;font-weight:600}}.hero{min-height:100dvh;padding:calc(var(--nav-h) + 2rem) clamp(1.25rem, 4vw, 3.5rem) 3.5rem;grid-template-columns:1.15fr .85fr;align-items:center;gap:2.5rem;max-width:1320px;margin:0 auto;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero-status{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--amber) 30%, transparent);background:var(--amber-dim);align-items:center;gap:.55rem;margin-bottom:1.5rem;padding:.35rem .85rem;font-size:.72rem;display:inline-flex}.hero-status-dot{background:var(--amber);border-radius:50%;width:7px;height:7px;animation:2.5s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.hero-brand{font-family:var(--font-display);letter-spacing:-.04em;white-space:nowrap;color:var(--ink);margin-bottom:1rem;font-size:clamp(2.5rem,7vw,5.5rem);font-weight:800;line-height:.95}.hero-brand .accent{color:var(--accent)}.hero-role{font-family:var(--font-display);color:var(--text-muted);max-width:36rem;margin-bottom:1.25rem;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:600;line-height:1.35}.hero-actions{flex-wrap:wrap;gap:.85rem;margin-bottom:2.25rem;display:flex}.btn-primary{border-radius:var(--radius-pill);background:var(--accent);color:#fff;letter-spacing:.01em;transition:transform .25s var(--ease-out), filter .25s;align-items:center;gap:.55rem;padding:.85rem 1.5rem;font-size:.88rem;font-weight:600;display:inline-flex}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-2px)}.btn-ghost{border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--bg-elevated);color:var(--ink);transition:border-color .25s, transform .25s var(--ease-out), background .25s;align-items:center;gap:.55rem;padding:.85rem 1.5rem;font-size:.88rem;font-weight:600;display:inline-flex}.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}.hero-meta{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.04em;flex-wrap:wrap;gap:1.5rem;font-size:.72rem;display:flex}.hero-meta strong{color:var(--text-muted);font-weight:600}.hero-meta a{transition:color .2s}.hero-meta a:hover{color:var(--accent)}.hero-cmd-tip{align-items:center;gap:.35rem;display:inline-flex}.hero-cmd-tip kbd{font-family:var(--font-mono);border:1px solid var(--line-strong);background:var(--bg-panel);border-radius:4px;padding:.05rem .35rem;font-size:.75em}.hero-visual{height:min(68vh,580px);min-height:360px;position:relative}.hero-visual-stage{position:absolute;inset:-6% -4%;overflow:visible;-webkit-mask-image:radial-gradient(70% 68% at 52% 48%,#000 30%,#0000 75%);mask-image:radial-gradient(70% 68% at 52% 48%,#000 30%,#0000 75%)}.hero-visual-stage canvas{width:100%!important;height:100%!important}.hero-visual-caption{z-index:2;pointer-events:none;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);justify-content:space-between;gap:1rem;font-size:.68rem;display:flex;position:absolute;bottom:12%;left:12%;right:12%}@media (width<=960px){.hero{padding-top:calc(var(--nav-h) + 1.5rem);grid-template-columns:1fr;min-height:auto}.hero-visual{order:-1;height:38vh;min-height:260px}}.kinetic-line{font-family:var(--font-display);letter-spacing:-.03em;flex-wrap:wrap;align-items:baseline;gap:.45rem;margin:.35rem 0 1rem;font-size:clamp(1.35rem,3.2vw,2rem);font-weight:700;line-height:1.15;display:flex}.kinetic-static{color:var(--text-muted)}.kinetic-slot{place-items:center start;min-width:5.5ch;height:1.2em;display:inline-grid;overflow:hidden}.kinetic-word{color:var(--accent);grid-area:1/1;display:inline-block}.marquee{border-block:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);margin:0;overflow:hidden}.marquee-track{width:max-content;padding:.85rem 0;animation:36s linear infinite marquee-move;display:flex}.marquee-track span{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;text-transform:uppercase;align-items:center;gap:1.25rem;padding:0 1.25rem;font-size:clamp(.95rem,2vw,1.25rem);font-weight:700;display:inline-flex}.marquee-track em{color:var(--accent);font-style:normal;font-weight:900}@keyframes marquee-move{0%{transform:translate(0)}to{transform:translate(-50%)}}.about-grid{grid-template-columns:1.25fr .75fr;align-items:start;gap:3rem;display:grid}.about-text p{color:var(--text-muted);margin-bottom:1.25rem;font-size:1.05rem;line-height:1.68}.stat-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.stat-cell{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-md);transition:border-color .25s, transform .25s var(--ease-out);padding:1.4rem 1.25rem}.stat-cell:hover{border-color:var(--line-strong);transform:translateY(-2px)}.stat-value{font-family:var(--font-display);color:var(--accent);letter-spacing:-.03em;margin-bottom:.4rem;font-size:2.2rem;font-weight:800;line-height:1}.stat-label{color:var(--text-dim);font-size:.8rem;line-height:1.35}@media (width<=800px){.about-grid{grid-template-columns:1fr;gap:2rem}}.skills-layout{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:2.5rem;display:grid}.radar-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:1.25rem;position:relative;overflow:hidden}.radar-glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 15%, transparent), transparent 65%);pointer-events:none;position:absolute;inset:10% 15%}.radar-wrap{aspect-ratio:1;z-index:1;width:100%;max-width:360px;margin:0 auto;position:relative}.radar-metrics{z-index:1;gap:.5rem;margin-top:.5rem;display:grid;position:relative}.radar-metric{text-align:left;border-radius:var(--radius-sm);border:1px solid #0000;width:100%;padding:.45rem .65rem;transition:border-color .2s,background .2s,opacity .2s}.radar-metric:hover,.radar-metric.active{border-color:var(--line-strong);background:var(--bg-panel)}.radar-metric-top{font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:.35rem;font-size:.7rem;display:flex}.radar-bar{border-radius:var(--radius-pill);background:var(--line);height:4px;overflow:hidden}.radar-bar-fill{border-radius:var(--radius-pill);height:100%}.skill-groups{flex-direction:column;gap:1.25rem;display:flex}.skill-filter{flex-wrap:wrap;gap:.4rem;display:flex}.skill-filter-btn{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--text-dim);background:var(--bg-elevated);justify-content:center;align-items:center;padding:.4rem .85rem;font-size:.68rem;transition:color .2s,border-color .2s;display:inline-flex;position:relative}.skill-filter-btn:hover{color:var(--ink);border-color:var(--line-strong)}.skill-filter-btn.active{color:#fff;border-color:var(--accent)}.filter-pill-bg{border-radius:var(--radius-pill);background:var(--accent);box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 35%, transparent);z-index:1;position:absolute;inset:-1px}.filter-btn-text{z-index:2;position:relative}.skill-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.skill-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-elevated);transition:border-color .25s, transform .25s var(--ease-out);padding:1.25rem;position:relative;overflow:hidden}.skill-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}.skill-card-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.95rem;display:flex}.skill-card-head h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:1.05rem;font-weight:700}.skill-card-head p{color:var(--text-dim);font-size:.78rem}.skill-count{font-family:var(--font-mono);color:var(--accent);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:var(--accent-dim);flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.72rem;display:inline-flex}.skill-chips{flex-wrap:wrap;gap:.4rem;display:flex}.skill-chip{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-panel);color:var(--text-muted);align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.78rem;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.skill-chip:hover{border-color:var(--accent);color:var(--ink);background:var(--accent-dim)}.skill-chip.featured{border-color:color-mix(in srgb, var(--accent) 35%, transparent);color:var(--ink)}.skill-chip-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}@media (width<=1100px){.skills-layout{grid-template-columns:1fr}}@media (width<=700px){.skill-cards{grid-template-columns:1fr}}.timeline{flex-direction:column;gap:1.5rem;display:flex;position:relative}.timeline-item{grid-template-columns:28px 1fr;align-items:stretch;gap:1.25rem;display:grid;position:relative}.timeline-rail{justify-content:center;display:flex;position:relative}.timeline-rail:before{content:"";background:var(--line-strong);width:2px;position:absolute;top:18px;bottom:-1.5rem;left:50%;transform:translate(-50%)}.timeline-item:last-child .timeline-rail:before{display:none}.timeline-dot{z-index:1;border:2px solid var(--accent);background:var(--bg);width:16px;height:16px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;margin-top:1.35rem;position:relative}.timeline-item.current .timeline-dot{background:var(--accent)}.timeline-pulse{border:1px solid var(--accent);border-radius:50%;animation:2.2s ease-out infinite exp-pulse;position:absolute;inset:-6px}@keyframes exp-pulse{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.exp-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elevated);transition:border-color .3s, box-shadow .3s, transform .25s var(--ease-out);padding:1.5rem 1.6rem;position:relative;overflow:hidden}.timeline-item.is-hot .exp-card{border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 12px 30px -10px var(--shadow-ink)}.exp-card-glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 15%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:200px;height:200px;position:absolute;top:-30%;right:-10%}.exp-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.9rem;display:flex}.exp-badges{flex-wrap:wrap;gap:.4rem;display:flex}.exp-live,.exp-focus{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill);padding:.25rem .55rem;font-size:.65rem}.exp-live{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:var(--accent-dim)}.exp-focus{color:var(--amber);border:1px solid color-mix(in srgb, var(--amber) 35%, transparent);background:var(--amber-dim)}.exp-period{font-family:var(--font-mono);color:var(--text-dim);font-size:.75rem}.exp-header{margin-bottom:1rem}.exp-role{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin-bottom:.25rem;font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:700}.exp-company{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.92rem;display:flex}.exp-company strong{color:var(--ink);font-weight:600}.exp-list{flex-direction:column;gap:.65rem;margin-bottom:1.25rem;list-style:none;display:flex}.exp-list li{color:var(--text-muted);align-items:flex-start;gap:.75rem;font-size:.92rem;line-height:1.55;display:flex}.exp-bullet{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.5rem}.exp-tags{border-top:1px solid var(--line);flex-wrap:wrap;gap:.4rem;padding-top:1rem;display:flex}.exp-tags span{font-family:var(--font-mono);border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-dim);background:var(--bg-panel);padding:.25rem .55rem;font-size:.68rem}.projects-section{z-index:1;position:relative}.section-header-compact{margin-bottom:2.75rem}.section-tag-mono{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:var(--accent-dim);align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.25rem .65rem;font-size:.68rem;display:inline-flex}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem;display:grid}.project-bento-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elevated);transition:border-color .3s ease, box-shadow .3s ease, transform .25s var(--ease-out);flex-direction:column;padding:1.75rem;display:flex;position:relative;overflow:hidden}.project-bento-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 16px 36px -12px var(--shadow-ink);transform:translateY(-3px)}.project-bento-card:before{content:"";border-radius:inherit;background:radial-gradient(450px circle at var(--mouse-x,-500px) var(--mouse-y,-500px), color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);opacity:0;pointer-events:none;z-index:0;transition:opacity .4s;position:absolute;inset:0}.project-bento-card:hover:before{opacity:1}.card-spotlight{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:200px;height:200px;position:absolute;top:0;right:0}.project-card-header{z-index:1;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.95rem;display:flex;position:relative}.project-index-num{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.35rem;font-size:.68rem;display:block}.project-card-title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);font-size:1.35rem;font-weight:700;line-height:1.2}.project-card-subtitle{color:var(--text-muted);margin-top:.2rem;font-size:.82rem}.project-status-pill{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill);flex-shrink:0;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.65rem;font-weight:600;display:inline-flex}.project-status-pill.production{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:var(--accent-dim)}.project-status-pill.privacy{color:#3b82f6;background:#3b82f61a;border:1px solid #3b82f659}.project-status-pill.published{color:var(--amber);border:1px solid color-mix(in srgb, var(--amber) 35%, transparent);background:var(--amber-dim)}.status-live-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:2s infinite pulse-dot}.project-card-summary{z-index:1;color:var(--text-muted);margin-bottom:1.25rem;font-size:.92rem;line-height:1.58;position:relative}.interactive-console{z-index:1;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg-panel);flex-direction:column;gap:.75rem;margin-bottom:1.25rem;padding:1rem 1.15rem;display:flex;position:relative}.console-top-bar{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.console-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.4rem;font-size:.68rem;font-weight:600;display:inline-flex}.console-action-btn{font-family:var(--font-mono);letter-spacing:.06em;border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.65rem;font-weight:600;transition:background .2s,transform .15s;display:inline-flex}.console-action-btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}.console-action-btn.is-running{opacity:.8;pointer-events:none}.spin-icon{animation:1s linear infinite spin-kf}@keyframes spin-kf{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scan-circuit-visual{justify-content:space-between;align-items:center;gap:.35rem;padding:.6rem 0;display:flex;overflow-x:auto}.scan-node{border-radius:var(--radius-sm);font-family:var(--font-mono);border:1px solid var(--line-strong);background:var(--bg-elevated);color:var(--text-muted);white-space:nowrap;padding:.35rem .55rem;font-size:.65rem;font-weight:600}.scan-node.scan-in,.scan-node.scan-out{border-color:var(--line-strong);color:var(--text-dim);background:0 0}.scan-node.fault-cell{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);box-shadow:0 0 12px color-mix(in srgb, var(--accent) 35%, transparent)}.scan-path-line{background:var(--line-strong);flex:1;min-width:14px;height:2px;position:relative}.scan-path-line.active{background:color-mix(in srgb, var(--amber) 60%, transparent)}.scan-path-line.alert{background:var(--accent)}.pulse-fault{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.8s infinite exp-pulse;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.console-telemetry-output{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--line);color:var(--text-muted);align-items:center;gap:.5rem;padding:.4rem .65rem;font-size:.72rem;display:flex}.telemetry-prompt{color:var(--accent);font-weight:700}.telemetry-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quant-toggle-group{background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--line);gap:.25rem;padding:.15rem;display:flex}.quant-toggle-btn{font-family:var(--font-mono);color:var(--text-dim);border-radius:4px;padding:.15rem .45rem;font-size:.62rem;transition:background .15s,color .15s}.quant-toggle-btn.active{background:var(--accent);color:#fff;font-weight:600}.audio-inference-row{grid-template-columns:120px 1fr;align-items:center;gap:1rem;display:grid}.waveform-box{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:.4rem;padding:.5rem;display:flex}.waveform-title{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.08em;font-size:.58rem}.waveform-bars{align-items:center;gap:3px;height:28px;display:flex}.wave-bar{background:var(--accent);border-radius:2px;flex:1;width:3px}.inference-stats-block{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.stat-subitem{flex-direction:column;gap:.15rem;display:flex}.stat-subitem-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-dim);font-size:.58rem}.stat-subitem-val{font-family:var(--font-mono);color:var(--ink);font-size:.78rem;font-weight:600}.stat-subitem-val.accent{color:var(--accent)}.stat-subitem-val.success{color:var(--amber)}.console-confidence-tag{font-family:var(--font-mono);color:var(--amber);background:var(--amber-dim);border:1px solid color-mix(in srgb, var(--amber) 30%, transparent);border-radius:var(--radius-pill);padding:.15rem .45rem;font-size:.65rem}.frame-scrubber-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.frame-cell{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);text-align:left;flex-direction:column;gap:.4rem;padding:.5rem;transition:border-color .2s,background .2s;display:flex}.frame-cell:hover,.frame-cell.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--bg-elevated))}.frame-cell-top{font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;font-size:.62rem;display:flex}.frame-heatmap-box{background:linear-gradient(90deg,#22c55e40,#ff4d2e59);border-radius:4px;height:22px;position:relative;overflow:hidden}.heatmap-node-marker{background:var(--accent);border:1.5px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:65%}.frame-cell-footer{font-family:var(--font-mono);color:var(--text-dim);justify-content:space-between;font-size:.62rem;display:flex}.frame-cell-footer strong{color:var(--ink)}.blockchain-ledger-track{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.block-pill{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;flex:1;gap:.15rem;padding:.45rem .6rem;display:flex}.block-pill.verified{border-color:color-mix(in srgb, var(--amber) 40%, transparent)}.block-pill.active-block{border-color:var(--accent);background:var(--accent-dim)}.block-num{font-family:var(--font-mono);color:var(--ink);font-size:.62rem;font-weight:700}.block-hash{font-family:var(--font-mono);color:var(--text-dim);font-size:.58rem}.block-check{font-family:var(--font-mono);color:var(--amber);font-size:.58rem;font-weight:600}.block-check.mining{color:var(--accent)}.block-chain-link{background:var(--line-strong);width:14px;height:2px}.project-feature-bullets{z-index:1;flex-direction:column;flex:1;gap:.5rem;margin-bottom:1.35rem;display:flex;position:relative}.feature-bullet{color:var(--text-muted);align-items:flex-start;gap:.6rem;font-size:.84rem;line-height:1.45;display:flex}.bullet-icon{color:var(--accent);flex-shrink:0;margin-top:.15rem}.project-card-footer{z-index:1;border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1.15rem;display:flex;position:relative}.project-stack-tags{flex-wrap:wrap;gap:.35rem;display:flex}.tech-badge{font-family:var(--font-mono);border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-dim);background:var(--bg-panel);padding:.2rem .5rem;font-size:.65rem}.blueprint-inspect-btn{color:var(--ink);border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--bg-panel);white-space:nowrap;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.78rem;font-weight:600;transition:color .2s,border-color .2s,background .2s,transform .2s;display:inline-flex}.blueprint-inspect-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim);transform:translateY(-1px)}@media (width<=960px){.projects-grid{grid-template-columns:1fr;gap:1.5rem}}.blueprint-overlay{z-index:600;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.blueprint-backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(12px);cursor:pointer;position:absolute;inset:0}.blueprint-panel{z-index:1;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);width:min(840px,100%);max-height:85vh;box-shadow:0 28px 70px -15px var(--shadow-ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.blueprint-header{border-bottom:1px solid var(--line);background:var(--bg-panel);justify-content:space-between;align-items:flex-start;gap:1.25rem;padding:1.5rem 1.75rem;display:flex}.blueprint-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:var(--accent-dim);border-radius:var(--radius-pill);margin-bottom:.5rem;padding:.2rem .55rem;font-size:.65rem;display:inline-block}.blueprint-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:800;line-height:1.2}.blueprint-focus{font-family:var(--font-mono);color:var(--text-muted);margin-top:.25rem;font-size:.78rem;display:block}.blueprint-close-btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-elevated);width:34px;height:34px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,border-color .2s;display:inline-flex}.blueprint-close-btn:hover{color:var(--ink);border-color:var(--ink)}.blueprint-body{flex-direction:column;gap:1.75rem;padding:1.75rem;display:flex;overflow-y:auto}.blueprint-subhead{font-family:var(--font-display);color:var(--ink);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1.05rem;font-weight:700;display:flex}.blueprint-desc{color:var(--text-muted);font-size:.95rem;line-height:1.65}.blueprint-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.blueprint-card{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--bg-panel);padding:1rem}.blueprint-step-num{font-family:var(--font-mono);color:var(--accent);margin-bottom:.35rem;font-size:.65rem;font-weight:700;display:block}.blueprint-card-text{color:var(--text-muted);font-size:.85rem;line-height:1.5}.blueprint-stack-pills{flex-wrap:wrap;gap:.5rem;display:flex}.blueprint-pill{font-family:var(--font-mono);border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--bg-panel);color:var(--ink);padding:.35rem .75rem;font-size:.75rem}.blueprint-terminal-box{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#06080b;overflow:hidden}.blueprint-terminal-head{font-family:var(--font-mono);letter-spacing:.08em;color:#8b949e;background:#0d1117;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.6rem 1rem;font-size:.68rem;display:flex}.terminal-live-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse-dot}.blueprint-code{font-family:var(--font-mono);color:#c9d1d9;white-space:pre-wrap;padding:1.25rem;font-size:.75rem;line-height:1.7;overflow-x:auto}.blueprint-footer{border-top:1px solid var(--line);background:var(--bg-panel);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.75rem;display:flex}.blueprint-footer-note{font-family:var(--font-mono);color:var(--text-dim);align-items:center;gap:.45rem;font-size:.72rem;display:flex}.blueprint-note-icon{color:var(--accent)}.blueprint-cta-btn{border-radius:var(--radius-pill);background:var(--accent);color:#fff;align-items:center;gap:.4rem;padding:.55rem 1.15rem;font-size:.85rem;font-weight:600;transition:transform .2s,filter .2s;display:inline-flex}.blueprint-cta-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}@media (width<=700px){.blueprint-grid{grid-template-columns:1fr}}.hero-scroll-cue{font-family:var(--font-mono);letter-spacing:.12em;color:var(--text-dim);cursor:pointer;grid-column:1/-1;align-items:center;gap:.5rem;width:fit-content;margin-top:-1rem;font-size:.65rem;transition:color .2s,transform .2s;display:flex}.hero-scroll-cue:hover{color:var(--accent);transform:translateY(2px)}.scroll-arrow{animation:2s ease-in-out infinite bounce-cue}@keyframes bounce-cue{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.hero-headline-wrap{margin-bottom:.75rem}.hero-accent-mark,.tip-sparkle{color:var(--accent)}.caption-live-indicator{align-items:center;gap:.4rem;display:flex}.caption-pulse{background:var(--amber);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse-dot}.caption-time{color:var(--text-muted);font-weight:600}.pub-list{flex-direction:column;gap:1rem;margin-bottom:2rem;display:flex}.pub-item{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-md);transition:border-color .25s, transform .25s var(--ease-out);grid-template-columns:auto 1fr auto;align-items:start;gap:1.25rem;padding:1.4rem 1.6rem;display:grid}.pub-item:hover{border-color:var(--line-strong);transform:translateY(-2px)}.pub-index{font-family:var(--font-mono);color:var(--accent);padding-top:.15rem;font-size:.75rem}.pub-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin-bottom:.35rem;font-size:1.08rem;font-weight:600}.pub-venue{color:var(--text-dim);font-size:.85rem;line-height:1.45}.pub-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);border:1px solid color-mix(in srgb, var(--amber) 30%, transparent);background:var(--amber-dim);border-radius:var(--radius-pill);white-space:nowrap;padding:.25rem .55rem;font-size:.65rem}.edu-block{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.edu-card,.achieve-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-elevated);padding:1.5rem 1.6rem}.edu-card h3,.achieve-card h3{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.85rem;font-size:.7rem}.edu-degree{font-family:var(--font-display);color:var(--ink);margin-bottom:.35rem;font-size:1.15rem;font-weight:700}.edu-school{color:var(--text-muted);margin-bottom:.35rem;font-size:.92rem}.edu-period{font-family:var(--font-mono);color:var(--text-dim);font-size:.75rem}.achieve-card ul{flex-direction:column;gap:.75rem;list-style:none;display:flex}.achieve-card li{color:var(--text-muted);padding-left:1rem;font-size:.92rem;line-height:1.45;position:relative}.achieve-card li:before{content:"";background:var(--amber);border-radius:50%;width:5px;height:5px;position:absolute;top:.45rem;left:0}@media (width<=800px){.pub-item{grid-template-columns:auto 1fr}.pub-badge{grid-column:2}.edu-block{grid-template-columns:1fr}}.contact-section{text-align:center;padding-bottom:5rem}.contact-section .section-title{max-width:22ch;margin-left:auto;margin-right:auto}.contact-section .section-lead{margin-left:auto;margin-right:auto}.contact-links{flex-wrap:wrap;justify-content:center;gap:.85rem;margin-bottom:3.5rem;display:flex}.contact-link{border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--bg-elevated);color:var(--ink);transition:border-color .25s, transform .25s var(--ease-out), background .25s;align-items:center;gap:.6rem;padding:.85rem 1.4rem;font-size:.9rem;font-weight:600;display:inline-flex}.contact-link:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}.contact-link svg{color:var(--accent)}.footer{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.05em;flex-wrap:wrap;justify-content:space-between;gap:1rem;max-width:1280px;margin:0 auto;padding:1.75rem clamp(1.25rem,4vw,3.5rem);font-size:.72rem;display:flex}.footer a{color:var(--text-dim);transition:color .2s}.footer a:hover{color:var(--accent)}.terminal-layer{z-index:400;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.terminal-backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(8px);cursor:pointer;border:none;position:absolute;inset:0}.terminal{z-index:1;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--bg-panel);width:min(580px,100%);box-shadow:0 24px 60px -12px var(--shadow-ink);position:relative;overflow:hidden}.terminal-head{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--bg-elevated);color:var(--text-muted);justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.72rem;display:flex}.terminal-head button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);padding:.25rem .5rem;font-size:.65rem}.terminal-input-row{font-family:var(--font-mono);align-items:center;gap:.65rem;padding:1rem 1rem .35rem;display:flex}.terminal-input-row span{color:var(--accent);font-weight:600}.terminal-input-row input{font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.terminal-hint{color:var(--text-dim);padding:0 1rem .85rem;font-size:.78rem}.terminal-list{border-top:1px solid var(--line);max-height:280px;list-style:none;overflow-y:auto}.terminal-list button{text-align:left;border-bottom:1px solid var(--line);width:100%;font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;gap:1rem;padding:.8rem 1rem;font-size:.82rem;transition:background .15s,color .15s;display:flex}.terminal-list button em{color:var(--text-dim);font-style:normal}.terminal-list button.active,.terminal-list button:hover{background:var(--accent-dim);color:var(--ink)}.terminal-list button.active span,.terminal-list button:hover span{color:var(--accent)}.window-layer{z-index:300;padding:calc(var(--nav-h) + .75rem) 1rem 1.25rem;place-items:center;display:grid;position:fixed;inset:0}.window-backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(8px);cursor:pointer;border:none;position:absolute;inset:0}.floating-window{z-index:1;width:min(1040px,100%);height:min(860px, calc(100dvh - var(--nav-h) - 1.5rem));max-height:calc(100dvh - var(--nav-h) - 1.5rem);border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--bg-panel);min-height:0;box-shadow:0 28px 70px -15px var(--shadow-ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.window-chrome{border-bottom:1px solid var(--line);background:var(--bg-elevated);flex-shrink:0;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.85rem 1.2rem;display:grid}.window-traffic{align-items:center;gap:.45rem;display:flex}.traffic{color:#0000;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;transition:color .2s;display:inline-flex}.traffic.close{background:#ef4444}.traffic.minimize{background:#f59e0b}.traffic.maximize{background:#10b981}.window-traffic:hover .traffic{color:#fff}.window-title-wrap{justify-content:center;align-items:center;gap:.75rem;display:flex}.window-code{font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);font-size:.68rem}.window-title{font-family:var(--font-display);color:var(--ink);font-size:.95rem;font-weight:700}.window-esc{font-family:var(--font-mono);color:var(--text-dim);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.68rem}.window-esc:hover{color:var(--ink);border-color:var(--line-strong)}.window-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--accent-dim) transparent;flex:1;min-height:0;overflow:hidden auto}.window-body .section{max-width:none;margin:0;padding:1.75rem clamp(1.25rem,3vw,2.25rem) 2.25rem}.window-body .section-title{font-size:clamp(1.55rem,3vw,2.2rem)}.window-body .skills-layout,.window-body .about-grid,.window-body .edu-block{grid-template-columns:1fr}.intro-loader{z-index:5000;background:var(--ink);color:var(--bg);place-items:center;display:grid;position:fixed;inset:0}.intro-loader-inner{width:min(420px,86vw)}.intro-path{font-family:var(--font-mono);letter-spacing:.12em;opacity:.6;margin-bottom:1.25rem;font-size:.75rem}.intro-words{font-family:var(--font-display);letter-spacing:-.04em;flex-direction:column;margin-bottom:1.75rem;font-size:clamp(2.6rem,8vw,4.2rem);font-weight:800;line-height:.95;display:flex}.intro-bar{background:var(--accent);transform-origin:0;border-radius:var(--radius-pill);height:3px}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
