:root{--ink: #07090f;--deep: #0a0e16;--panel: #0f141e;--panel2: #151b28;--line: #1e2634;--line2: #2c3648;--ctl: #55647d;--snow: #edf2f9;--dim: #9ba9be;--faint: #8496ad;--ember: #ffb454;--ember-hi: #ffc884;--aqua: #5ccfe6;--mint: #95e6cb;--coral: #f07178;--lilac: #d2a6ff;--veil: rgba(10, 14, 22, .62);--font-display: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--header-h: 72px;--ease: cubic-bezier(.22, 1, .36, 1);--dur-fast: .18s;--dur: .3s;--dur-slow: .75s;--tap: 44px;--r-card: 16px;--r-sm: 10px;--r-ctl: 999px;--elev-2: 0 2px 6px rgba(0, 0, 0, .32), 0 24px 48px -26px rgba(0, 0, 0, .92);--elev-3: 0 4px 12px rgba(0, 0, 0, .35), 0 36px 80px -32px rgba(0, 0, 0, .95);--lift: inset 0 1px 0 rgba(237, 242, 249, .055)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 20px);-webkit-text-size-adjust:100%}body{background:var(--ink);color:var(--snow);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}::selection{background:var(--ember);color:var(--ink)}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}strong{font-weight:600}p{text-wrap:pretty}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:120;transform:translateY(calc(-100% - 1.5rem));background:var(--ember);color:var(--ink);padding:.75rem 1.15rem;font-family:var(--font-mono);font-size:13px;font-weight:600;transition:transform var(--dur) var(--ease)}.skip-link:focus-visible{transform:none;outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--line2)}:focus-visible{outline:2px solid var(--ember);outline-offset:3px}#main:focus{outline:none}.tnum{font-variant-numeric:tabular-nums}.ic{width:18px;height:18px;flex:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.t-ember{color:var(--ember)}.t-aqua{color:var(--aqua)}.t-mint{color:var(--mint)}.t-lilac{color:var(--lilac)}.t-faint{color:var(--faint)}.t-dim{color:var(--dim)}.container{max-width:72rem;margin:0 auto;padding:0 1.25rem}@media(min-width:640px){.container{padding:0 2rem}}.section{padding:5rem 1.25rem}@media(min-width:640px){.section{padding:7rem 2rem}}.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(to right,rgba(147,161,181,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(147,161,181,.055) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(ellipse 90% 62% at 50% 0%,#000 35%,transparent 78%);mask-image:radial-gradient(ellipse 90% 62% at 50% 0%,#000 35%,transparent 78%)}.glow{position:fixed;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:0}.glow-ember{width:560px;height:560px;top:-130px;left:-10%;background:radial-gradient(circle,rgba(255,180,84,.13),transparent 65%);animation:drift 16s ease-in-out infinite alternate}.glow-aqua{width:520px;height:520px;top:38%;right:-12%;background:radial-gradient(circle,rgba(92,207,230,.09),transparent 65%);animation:drift 20s ease-in-out infinite alternate-reverse}.glow-mint{width:640px;height:640px;bottom:-220px;left:-12%;background:radial-gradient(circle,rgba(149,230,203,.07),transparent 65%);animation:drift 26s ease-in-out infinite alternate}#spotlight{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(560px circle at var(--mx, 50%) var(--my, 28%),rgba(255,180,84,.085),rgba(92,207,230,.045) 42%,transparent 66%)}@media(hover:none){#spotlight{display:none}}.bg-noise{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E")}#progress{position:fixed;left:0;top:0;z-index:95;height:3px;width:0;background:linear-gradient(90deg,var(--ember),var(--aqua))}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(40px,30px,0) scale(1.12)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes marqueeMove{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes pulseMint{0%{box-shadow:0 0 #95e6cb8c}70%{box-shadow:0 0 0 9px #95e6cb00}to{box-shadow:0 0 #95e6cb00}}@keyframes pulseEmber{0%{box-shadow:0 0 #ffb45480}70%{box-shadow:0 0 0 10px #ffb45400}to{box-shadow:0 0 #ffb45400}}@keyframes floaty{0%{transform:translateY(0)}to{transform:translateY(-9px)}}.pulse-ember{animation:pulseEmber 2.6s ease-out infinite}.floaty{animation:floaty 5.5s ease-in-out infinite alternate}.floaty-slow{animation:floaty 8s ease-in-out infinite alternate-reverse}.js .reveal{opacity:0;transition:opacity var(--dur-slow) ease}.js .reveal:where(.is-in,.is-visible){opacity:1;transform:none}.js .hero .reveal{opacity:1}.sweep{background-image:linear-gradient(currentColor,currentColor);background-size:0% 1.5px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .35s cubic-bezier(.22,1,.36,1);padding-bottom:2px}a:hover>.sweep,.sweep:hover{background-size:100% 1.5px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.dot-mint{background:var(--mint);animation:pulseMint 2.2s ease-out infinite}.dot-ember{background:var(--ember)}#siteNav{position:fixed;inset:0 0 auto;z-index:80;padding:.65rem 1rem}#siteNav.scrolled{background:linear-gradient(180deg,#07090fb8,#07090f00)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:calc(var(--header-h) - 1.3rem);gap:1.25rem;max-width:70rem;margin-inline:auto;padding-inline:1.1rem;border:1px solid rgba(237,242,249,.1);border-radius:var(--r-ctl);background:#0f141eb8;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 20px 44px -32px #000000f2;transition:border-color var(--dur) ease,background var(--dur) ease}#siteNav.scrolled .nav-inner{border-color:#edf2f929;background:#0f141edb}.nav-right{display:flex;align-items:center;gap:.75rem}.lang-switch{display:inline-flex;align-items:center;gap:.35rem;height:36px;padding:0 .7rem;border:1px solid var(--line2);font-family:var(--font-mono);font-size:12px;line-height:1;transition:border-color var(--dur-fast) ease}.lang-switch:hover{border-color:var(--faint)}.lang-switch i{font-style:normal;color:var(--line2)}.lang-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;color:var(--faint);padding:.45rem .15rem;transition:color var(--dur-fast) ease}.lang-switch a:hover{color:var(--snow)}.lang-switch a[aria-current=true]{color:var(--ember)}@media(max-width:479px){.nav-inner{gap:.75rem}.lang-switch{border-color:transparent;padding:0 .35rem}.lang-switch:hover{border-color:transparent}}.logo{display:flex;align-items:center;gap:.75rem}.logo-mark{display:grid;place-items:center;width:36px;height:36px;background:linear-gradient(135deg,var(--ember-hi),var(--ember));color:var(--ink);font-family:var(--font-mono);font-weight:700;font-size:18px;box-shadow:var(--lift);transition:transform .3s ease}.logo:hover .logo-mark{transform:rotate(-6deg)}.logo-text{font-family:var(--font-mono);font-size:14px}.nav-links{display:none;gap:.35rem}@media(min-width:1024px){.nav-links{display:flex}}.nav-links a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 .6rem;border:1px solid transparent;font-family:var(--font-mono);font-size:13px;color:var(--dim);transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease,background var(--dur-fast) ease}.nav-links a:hover{color:var(--snow);border-color:var(--line2)}.nav-links a.nav-active{color:var(--ember);border-color:#ffb45473;background:#ffb45414}.nav-links a.nav-active .sweep{background-size:100% 1.5px}.menu-btn{display:grid;place-items:center;width:var(--tap);height:var(--tap);border:1px solid var(--line2);transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease}.menu-btn:hover{border-color:var(--ember)}.menu-btn:active{background:#ffb4541a}.menu-btn svg{width:20px;height:20px}@media(min-width:1024px){.menu-btn{display:none}}.mobile-menu{margin-top:.4rem;border:1px solid rgba(237,242,249,.1);border-radius:var(--r-card);background:#0f141ef5;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:.5rem 1.25rem 1.25rem;max-height:calc(100dvh - var(--header-h) - 1.6rem);overflow-y:auto}.mobile-menu:not([hidden]){animation:menuIn var(--dur) var(--ease)}@keyframes menuIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.mobile-menu a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:.65rem 0;border-bottom:1px solid rgba(35,43,58,.6);font-family:var(--font-mono);font-size:14px;color:var(--dim);transition:color var(--dur-fast) ease,padding-left var(--dur-fast) ease}.mobile-menu a:hover{color:var(--ember);padding-left:.35rem}.mobile-menu a[aria-current=location]{color:var(--ember)}.mobile-menu a i{font-style:normal;color:var(--faint);margin-right:.8rem}.mobile-menu a b{display:inline-flex;align-items:center;color:var(--ember);font-weight:400}.mobile-menu a b svg{width:16px;height:16px;display:block}.mobile-menu .menu-lang{border-bottom:none;color:var(--ember);border-top:1px solid var(--line);margin-top:.5rem;padding-top:.9rem}html.menu-open,html.menu-open body{overflow:hidden}.hero{padding-top:8rem;padding-bottom:4.5rem;position:relative;z-index:1}@media(min-width:640px){.hero{padding-top:10rem}}.hero-grid{display:grid;gap:3.5rem;align-items:center}@media(min-width:1024px){.hero-grid{grid-template-columns:7fr 5fr}}.hero-kicker{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:13px;color:var(--dim);letter-spacing:.06em;border:1px solid var(--line);background:var(--panel);padding:.5rem .85rem;box-shadow:var(--lift);transition:border-color var(--dur) ease,color var(--dur) ease}.js .reveal.hero-kicker{transition:opacity var(--dur-slow) ease,transform var(--dur-slow) var(--ease),border-color var(--dur) ease,color var(--dur) ease}.hero-title{margin-top:1.75rem;font-family:var(--font-display);font-weight:700;font-size:clamp(3rem,8.2vw,5.5rem);line-height:.95;letter-spacing:-.035em;text-wrap:balance}.hero-title .line{display:block;min-height:1em;width:100%;text-align:left}.hero-lead{margin-top:2rem;max-width:34rem;font-size:1.125rem;color:var(--dim)}.hero-lead strong{color:var(--snow);font-weight:500}.hero-cta{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:var(--tap);padding:.75rem 1.5rem;font-family:var(--font-display);font-weight:600;font-size:15px;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur) ease,background var(--dur-fast) ease,color var(--dur-fast) ease,border-color var(--dur-fast) ease}.btn:active{transform:translateY(0) scale(.98);transition-duration:.08s}.btn-primary{background:linear-gradient(180deg,var(--ember-hi),var(--ember));color:var(--ink);box-shadow:var(--lift)}.btn-primary:hover{transform:translateY(-2px);background:linear-gradient(180deg,#ffd7a4,var(--ember-hi));box-shadow:var(--lift),0 16px 42px -14px #ffb45499}.btn-primary .ic{transition:transform var(--dur) var(--ease)}.btn-primary:hover .ic{transform:translateY(2px)}.btn-primary:active{box-shadow:var(--lift),0 6px 18px -10px #ffb45499}.btn-ghost{border:1px solid var(--line2);color:var(--snow);background:#edf2f905;font-family:var(--font-mono);font-weight:400;font-size:14px}.btn-ghost:hover{transform:translateY(-2px);border-color:#5ccfe699;color:var(--aqua);background:#5ccfe612}.btn-ghost:active{transform:translateY(0) scale(.98)}.hero-stats{margin-top:3rem;display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 1.5rem}@media(min-width:640px){.hero-stats{grid-template-columns:repeat(4,1fr)}}.stat{border-left:2px solid var(--line);padding-left:1rem;display:flex;flex-direction:column-reverse;transition:border-color var(--dur) ease}.stat dd{font-family:var(--font-display);font-weight:600;font-size:clamp(1.75rem,4vw,2.1rem);line-height:1.1;letter-spacing:-.02em}.stat dt{margin-top:.35rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.hero-right{position:relative;align-self:start}.terminal{border:1px solid var(--line);background:var(--deep);box-shadow:var(--elev-3);overflow:hidden;transition:transform .5s ease}@media(min-width:1024px){.terminal{transform:rotate(1.4deg)}.hero-right:hover .terminal{transform:rotate(0)}}.terminal-head{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--line);background:var(--panel)}.t-dot{width:12px;height:12px;border-radius:50%;flex:none}.hdot-coral{background:#f07178}.hdot-ember{background:#ffb454}.hdot-mint{background:#95e6cb}.terminal-title{margin-left:.75rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:11px;color:var(--faint)}.terminal-live{margin-left:auto;flex:none;display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:10px;color:var(--mint)}.terminal-live .dot{width:6px;height:6px}.terminal-body{min-height:372px;padding:1.25rem;font-family:var(--font-mono);font-size:13px;line-height:1.9}.prompt b,.prompt i{font-weight:400;font-style:normal}.term-cursor{display:inline-block;width:8px;height:15px;margin-left:2px;background:var(--ember);vertical-align:-2px;animation:blink 1s step-end infinite}.badge-top{position:absolute;top:-1.5rem;right:.5rem;border:1px solid var(--line);background:var(--panel);padding:.65rem 1rem;box-shadow:var(--elev-2)}.badge-top p{font-family:var(--font-mono);font-size:11px;color:var(--faint)}.badge-top strong{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.badge-bottom{position:absolute;bottom:-1.5rem;left:-.75rem;display:flex;align-items:center;gap:.75rem;border:1px solid var(--line);background:var(--panel);padding:.75rem 1rem;box-shadow:var(--elev-2)}.badge-bottom p{font-family:var(--font-display);font-size:14px;font-weight:600}.badge-bottom small{font-family:var(--font-mono);font-size:10px;color:var(--faint)}@media(max-width:639px){.badge-top,.badge-bottom{display:none}}.marquee{position:relative;z-index:1;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--veil);padding:1rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.marquee-track{display:flex;width:max-content;animation:marqueeMove 30s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-row{display:flex;align-items:center;flex:none}.marquee-row span{padding:0 1.5rem;white-space:nowrap;font-family:var(--font-mono);font-size:14px;text-transform:uppercase;letter-spacing:.2em;color:var(--dim)}.marquee-row .star{width:10px;height:10px;fill:var(--ember);flex:none}@supports (-webkit-text-stroke: 1px #000){.marquee-row span:nth-of-type(2n){color:transparent;-webkit-text-stroke:1px rgba(147,161,181,.65)}}.sec-no{display:flex;align-items:center;gap:.75rem;font-family:var(--font-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember)}.sec-no:before{content:"";flex:none;width:7px;height:7px;background:currentColor;box-shadow:0 0 0 4px #ffb45424}.sec-no:after{content:"";height:1px;flex:1;min-width:3.5rem;max-width:12rem;background:linear-gradient(90deg,var(--line2),transparent)}.sec-title{margin-top:1rem;font-family:var(--font-display);font-weight:600;font-size:clamp(2.35rem,5.4vw,3.5rem);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}.sec-lead{margin-top:1.25rem;color:var(--dim);max-width:34rem}.sec-lead strong{color:var(--snow);font-weight:500}.sec-head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem}.sec-aside{max-width:18rem;font-family:var(--font-mono);font-size:13px;color:var(--faint)}.gh-strip{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.1rem;padding:.7rem 1.2rem;border:1px solid rgba(237,242,249,.1);border-radius:var(--r-card);background-color:#0f141ee6}.gh-ava{width:38px;height:38px;border-radius:50%;border:1px solid var(--line2);object-fit:cover;background:var(--deep)}.gh-ava[hidden]{display:none}.gh-handle{display:inline-flex;align-items:center;min-height:24px;font-family:var(--font-mono);font-size:13px;color:var(--snow);text-decoration:none;transition:color .25s ease}.gh-handle b{color:var(--ember);font-weight:500}.gh-handle:hover{color:var(--ember)}.gh-sep{align-self:stretch;width:1px;background:var(--line)}.gh-stat{display:flex;flex-direction:column;gap:.2rem}.gh-stat strong{font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1;color:var(--snow)}.gh-stat span{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.proj-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:2.5rem}.proj-note{font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--faint);max-width:26rem}@media(max-width:639px){.gh-strip{width:100%;justify-content:space-between}.gh-sep{display:none}}.sticky-grid{display:grid;gap:3.5rem}@media(min-width:1024px){.sticky-grid{grid-template-columns:5fr 7fr;gap:5rem}}.sticky-inner{position:relative}@media(min-width:1024px){.sticky-inner{position:sticky;top:110px}}.sticky-inner .btn-ghost{margin-top:2rem}.svc-list{display:grid}.svc{position:relative;display:grid;grid-template-columns:4.5rem 1fr;gap:0 1.25rem;padding:1.75rem 0;border-bottom:1px solid var(--line);transition:background var(--dur) ease,transform var(--dur-fast) var(--ease),padding var(--dur-fast) var(--ease)}.svc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--ember),var(--aqua));transform:scaleY(0);transform-origin:top center;transition:transform var(--dur) var(--ease)}.svc:first-child{border-top:1px solid var(--line)}.svc:hover{background:var(--panel)}.svc:hover:before{transform:scaleY(1)}.svc-no{font-family:var(--font-mono);font-size:14px;padding-top:.35rem;transition:letter-spacing var(--dur) ease,transform var(--dur) ease}.svc:hover .svc-no{letter-spacing:.08em;transform:translate(2px)}.svc-body h3{font-family:var(--font-display);font-weight:600;font-size:1.4rem;letter-spacing:-.015em;text-wrap:balance}.svc-body p{margin-top:.5rem;color:var(--dim);font-size:15px}@media(min-width:640px){.svc-body p{max-width:46ch}}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.chip{display:inline-flex;align-items:center;min-height:28px;border:1px solid var(--line2);color:var(--dim);padding:.3rem .7rem;font-family:var(--font-mono);font-size:12px;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.svc:hover .chip,.card:hover .chip,.card:focus-within .chip{color:var(--snow);border-color:var(--faint)}.band{position:relative;z-index:1;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--veil)}.section-grid{display:grid;gap:3.5rem;padding:5rem 1.25rem}@media(min-width:640px){.section-grid{padding:7rem 2rem}}@media(min-width:1024px){.section-grid{grid-template-columns:5fr 7fr;gap:4.5rem}}.bento{margin-top:3.5rem;display:grid;gap:1.25rem;grid-template-columns:1fr}@media(min-width:1024px){.bento{grid-template-columns:repeat(12,1fr)}}@media(min-width:1024px){.card-a{grid-column:span 7}.card-b{grid-column:span 5}}.card{position:relative;overflow:hidden;display:flex;flex-direction:column;height:100%;border:1px solid var(--line);background:var(--panel);padding:1.75rem;transition:transform var(--dur-fast) var(--ease),border-color var(--dur) ease,box-shadow var(--dur) ease}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:max(2px,calc(var(--r-card) * 2));background-image:linear-gradient(90deg,var(--ember),var(--aqua) 55%,var(--mint));background-size:100% 2px;background-repeat:no-repeat;pointer-events:none;transform:scaleX(0);transform-origin:left center;transition:transform var(--dur) var(--ease)}.card:hover,.card:focus-within{background-color:var(--panel);transform:translateY(-6px);border-color:var(--line2);box-shadow:var(--elev-2)}.card:hover:before,.card:focus-within:before{transform:scaleX(1)}.card:active{transform:translateY(-2px);transition-duration:.08s}.card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.card-kind{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.15em}.card-arrow{color:var(--faint);opacity:0;transition:opacity var(--dur) ease,transform var(--dur) var(--ease),color var(--dur) ease}.card:hover .card-arrow,.card:focus-within .card-arrow{opacity:1;transform:translate(2px,-2px);color:var(--ember)}.card h3{margin-top:1.5rem;font-family:var(--font-display);font-weight:600;font-size:1.7rem;letter-spacing:-.015em;text-wrap:balance}.card>p{margin-top:.75rem;flex:1;color:var(--dim)}.card .chips{margin-top:1.25rem}.timeline{margin-top:3rem;position:relative;list-style:none;border-left:1px solid var(--line);padding-left:2.5rem;display:grid;gap:1.25rem}.timeline>li{position:relative;border:1px solid var(--line);padding:1.5rem;transition:background-color var(--dur) ease,border-color var(--dur) ease,background-size var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) ease}.timeline>li:hover{background-color:var(--panel);border-color:var(--line2);transform:translateY(-6px);box-shadow:var(--elev-2)}.tl-dot{position:absolute;left:-2.875rem;top:1.7rem;width:11px;height:11px;border-radius:50%;border:2px solid var(--line2);background:var(--ink)}.tl-now{border:none;background:var(--ember);animation:pulseEmber 2.6s ease-out infinite}.tl-head{display:flex;align-items:flex-start;gap:1rem}.tl-monogram{flex:none;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line2);background:var(--deep);font-family:var(--font-mono);font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--aqua);transition:border-color var(--dur) ease,color var(--dur) ease}.timeline>li:hover .tl-monogram{border-color:#5ccfe680;color:var(--ember)}.timeline>li:hover .tl-arrow{opacity:1;transform:translate(2px,-2px);color:var(--ember)}.tl-period{transition:color var(--dur) ease}.timeline>li:hover .tl-period{color:var(--ember-hi)}.tl-meta{min-width:0;flex:1}.tl-period{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember)}.timeline h3{margin-top:.45rem;font-family:var(--font-display);font-weight:600;font-size:1.35rem;letter-spacing:-.015em;text-wrap:balance}.tl-ctx{margin-top:.2rem;font-family:var(--font-mono);font-size:12px;color:var(--faint)}.timeline ul{margin-top:1rem;list-style:none;display:grid;gap:.5rem}.timeline ul li{display:flex;gap:.75rem;font-size:15px;color:var(--dim);border:none;background:none;padding:0}.timeline ul li:before{content:none}.timeline ul i{font-style:normal;color:var(--faint);font-family:var(--font-mono)}.skills{margin-top:2.5rem;display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:640px){.skills{grid-template-columns:1fr 1fr}}.contact-grid{display:grid;gap:3.5rem}@media(min-width:1024px){.contact-grid{grid-template-columns:7fr 5fr;gap:4.5rem}}.contact-title{font-size:clamp(2.4rem,6vw,4.2rem)}.big-mail{margin-top:2.5rem;display:inline-flex;flex-wrap:wrap;align-items:center;gap:1rem;border-bottom:2px solid var(--line);padding-bottom:.75rem;transition:border-color .3s ease}.big-mail:hover{border-color:var(--ember)}.big-mail .ic{width:28px;height:28px;color:var(--faint);transition:color .3s ease}.big-mail:hover .ic{color:var(--ember)}.big-mail>span:nth-child(2){font-family:var(--font-display);font-weight:600;font-size:clamp(1.35rem,3.4vw,2.25rem);transition:color .3s ease}.big-mail:hover>span:nth-child(2){color:var(--ember)}.big-mail-arrow{font-family:var(--font-mono);color:var(--faint);transition:transform .3s ease,color .3s ease}.big-mail-arrow svg{width:22px;height:22px;display:block}.big-mail:hover .big-mail-arrow{transform:translate(4px);color:var(--ember)}.channels{margin-top:3rem;display:grid;gap:clamp(.7rem,2vw,1rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.channel{display:flex;align-items:center;gap:clamp(.75rem,2.5vw,1rem);min-width:0;border:1px solid var(--line);background:var(--panel);padding:clamp(.9rem,2.5vw,1.25rem);transition:transform var(--dur-fast) var(--ease),border-color var(--dur) ease,background var(--dur) ease}.channel:hover,.channel:focus-visible{transform:translateY(-4px);background-color:var(--panel2)}.channel:active{transform:translateY(-1px) scale(.99);transition-duration:.08s}.ch-ic{display:grid;place-items:center;flex:none;width:clamp(40px,10vw,46px);height:clamp(40px,10vw,46px);border:1px solid var(--line);color:var(--dim);transition:color .3s ease,border-color .3s ease,background .3s ease}.channel>span:last-child{flex:1;min-width:0}.channel small{display:block;font-family:var(--font-mono);font-size:clamp(10px,2.6vw,11px);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);overflow-wrap:anywhere}.channel strong{display:block;margin-top:.15rem;font-family:var(--font-mono);font-weight:400;font-size:clamp(12.5px,3.4vw,14px);overflow-wrap:anywhere;word-break:break-word}.channel:nth-child(1):hover{border-color:#e8eef659}.channel:nth-child(1):hover .ch-ic{color:var(--snow);border-color:#e8eef666;background:#e8eef60f}.channel:nth-child(2):hover{border-color:#5ccfe680}.channel:nth-child(2):hover .ch-ic{color:var(--aqua);border-color:#5ccfe680;background:#5ccfe612}.channel:nth-child(3):hover{border-color:#d2a6ff80}.channel:nth-child(3):hover .ch-ic{color:var(--lilac);border-color:#d2a6ff80;background:#d2a6ff12}.channel:nth-child(4):hover{border-color:#f0717880}.channel:nth-child(4):hover .ch-ic{color:var(--coral);border-color:#f0717880;background:#f0717812}.status-card{border:1px solid var(--line);background:var(--ink);padding:1.75rem}.status-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.25rem;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px}.status-head p:first-child{letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.status-head .t-mint{display:flex;align-items:center;gap:.5rem}.status-list{list-style:none}.status-list>div{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--line)}.status-list>div:last-child{border-bottom:none}.status-list dt{font-family:var(--font-mono);font-size:13px;color:var(--faint)}.status-list dd{font-family:var(--font-mono);font-size:13px}.status-cmd{margin-top:.5rem;border:1px dashed var(--line);padding:1rem;font-family:var(--font-mono);font-size:12px;line-height:1.9;color:var(--dim)}.footer{margin-top:6rem}.footer-word{user-select:none;text-align:center;white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:clamp(2.2rem,11vw,10.5rem);letter-spacing:-.03em;line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(155,169,190,.4)}.footer-bar{margin-top:2rem;padding-top:1.75rem;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:1rem;font-family:var(--font-mono);font-size:12px;color:var(--faint)}@media(min-width:640px){.footer-bar{flex-direction:row;justify-content:space-between}}.footer-links a{display:inline-flex;align-items:center;min-height:24px;transition:color .25s ease}.footer-links a:hover{color:var(--ember)}.footer-links i{font-style:normal;margin:0 .75rem;color:var(--line2)}#toTop{display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap);padding:0 .25rem;color:var(--dim);font-family:var(--font-mono);font-size:12px;transition:color var(--dur-fast) ease}#toTop:hover{color:var(--ember)}#toTop span{display:inline-flex;align-items:center;transition:transform .3s ease}#toTop span svg{width:16px;height:16px;display:block}#toTop:hover span{transform:translateY(-3px)}.skill-group{border:1px solid var(--line);background:var(--panel);padding:1.35rem 1.5rem;transition:transform var(--dur-fast) var(--ease),border-color var(--dur) ease,background var(--dur) ease}.skill-group:hover{transform:translateY(-4px);border-color:var(--line2);background-color:var(--panel2)}.sg-head{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}.sg-ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line2);background:var(--deep);transition:border-color var(--dur) ease,background var(--dur) ease}.sg-ic svg{width:18px;height:18px;display:block}.skill-group:hover .sg-ic{border-color:currentColor;background:var(--panel)}.sg-title{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.2em;margin-bottom:0}.skill-group .chips{margin-top:0}.hero-grid>*,.bento>*,.contact-grid>*,.section-grid>*,.sticky-grid>*{min-width:0}.channel strong,.status-list dd,.big-mail,.timeline h3{overflow-wrap:break-word}@media(max-width:639px){.hero{padding-top:7rem;padding-bottom:3.5rem}.hero-title{font-size:clamp(2.6rem,11.5vw,3.4rem)}.hero-lead{font-size:1rem}.hero-stats{gap:1.25rem 1rem}.stat dd{font-size:1.5rem}.terminal-body{min-height:320px;font-size:12px}.section,.section-grid{padding:4rem 1.25rem}.footer{margin-top:3.5rem}.svc{grid-template-columns:3.25rem 1fr;padding:1.35rem 0}.svc-body h3{font-size:1.2rem}.card{padding:1.35rem}.card h3{font-size:1.4rem}.timeline{padding-left:1.5rem}.timeline>li{padding:1.25rem}.tl-dot{left:-1.82rem}.tl-monogram{width:40px;height:40px;font-size:13px}.status-list>div{flex-wrap:wrap;gap:.25rem}.big-mail{gap:.75rem}.btn{width:100%;justify-content:center}}@media(max-height:500px){.terminal-body{min-height:auto}}.project-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.7rem;border:1px solid var(--line);background:var(--panel);padding:clamp(1.3rem,2.4vw,1.75rem);transition:transform var(--dur-fast) var(--ease),border-color var(--dur) ease,box-shadow var(--dur) ease}.project-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ember),var(--aqua));transform:scaleX(0);transform-origin:left center;transition:transform var(--dur) var(--ease)}.project-card:hover,.project-card:focus-within{transform:translateY(-5px);border-color:var(--line2);box-shadow:var(--elev-2)}.project-card:hover:after,.project-card:focus-within:after,.project-card.is-featured:after{transform:scaleX(1)}.js .project-card.reveal{transition-duration:.45s}.js .timeline>li.reveal,.js .card.reveal{transition:opacity .45s var(--ease),transform .45s var(--ease),box-shadow .45s ease,background-color .45s ease,border-color .45s ease,background-size var(--dur) var(--ease)}.js .card.reveal:active{transition-duration:.08s}.project-num{position:absolute;top:clamp(1.3rem,2.4vw,1.75rem);right:clamp(1.3rem,2.4vw,1.75rem);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--faint)}.pc-head{display:flex;align-items:center;gap:.9rem;min-width:0;padding-right:3rem}.project-mark{flex:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(237,242,249,.14);border-radius:var(--r-sm);background:linear-gradient(135deg,#ffb45429,#5ccfe61a);font-family:var(--font-mono);font-weight:600;font-size:.95rem;color:var(--aqua)}.project-name{font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,1.8vw,1.25rem);letter-spacing:-.01em;overflow-wrap:anywhere;min-width:0}.project-desc{font-size:14px;line-height:1.65;color:var(--dim);flex:1}.project-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-top:.35rem}.pc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem 1rem;font-family:var(--font-mono);font-size:11px;color:var(--faint)}.pc-meta:empty{display:none}.pc-tag{display:inline-flex;align-items:center;gap:.4rem;letter-spacing:.1em;text-transform:uppercase}.pc-dot{width:9px;height:9px;border-radius:50%;background:var(--faint);box-shadow:0 0 0 3px #edf2f90f}.project-link{position:static;display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:12px;color:var(--ember);border:1px solid rgba(255,180,84,.5);padding:.35rem .85rem;border-radius:var(--r-ctl);transition:background .25s ease,border-color .25s ease}.project-link:after{content:"";position:absolute;inset:0}.project-link:hover{background:#ffb45414;border-color:#ffb45499}.project-card.is-featured .project-mark{width:56px;height:56px;font-size:1.1rem}.project-card.is-featured .project-name{font-size:clamp(1.3rem,2.4vw,1.65rem)}.project-card.is-featured .project-num{display:none}@media(min-width:768px){.project-card.is-featured{flex-direction:row;align-items:center;gap:1.75rem}.project-card.is-featured .pc-head{flex:none}.project-card.is-featured .project-desc{flex:1}.project-card.is-featured .project-foot{flex:none;flex-direction:column;align-items:flex-end;margin-top:0;gap:.6rem}}#github-projects-container{display:grid;gap:1.25rem;grid-template-columns:1fr}@media(min-width:768px){#github-projects-container{grid-template-columns:repeat(2,1fr)}#github-projects-container .project-card:last-child:nth-child(2n){grid-column:span 2}}@media(min-width:1024px){#github-projects-container{grid-template-columns:repeat(3,1fr)}#github-projects-container .project-card:last-child:nth-child(3n){grid-column:span 2}#github-projects-container .project-card:last-child:nth-child(3n+2){grid-column:span 3}}.project-card.is-featured{grid-column:1 / -1}.projects-empty{font-family:var(--font-mono);font-size:14px;color:var(--faint);border:1px dashed var(--line2);background:var(--panel);padding:clamp(2rem,5vw,3.5rem) 1.5rem;text-align:center}.projects-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem 0;font-family:var(--font-mono);font-size:14px;color:var(--dim)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--ember);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card-wide{grid-column:1 / -1}a.chip{display:inline-flex;border-color:var(--ctl);transition:color .25s ease,border-color .25s ease,transform .25s ease}a.chip:hover{color:var(--ember);border-color:#ffb45480;transform:translateY(-2px)}.edu-grid{margin-top:3rem;display:grid;gap:2.5rem}@media(min-width:1024px){.edu-grid{grid-template-columns:5fr 7fr;gap:4rem}}.edu{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--panel);padding:clamp(1.5rem,4vw,2.25rem);border-left:3px solid var(--ember)}.edu-ic{position:absolute;top:1.15rem;right:1.15rem;color:var(--snow);opacity:.16;transition:opacity var(--dur) ease,color var(--dur) ease,transform var(--dur) var(--ease);pointer-events:none}.edu-ic svg{width:clamp(44px,7vw,64px);height:auto;display:block}.edu:hover .edu-ic{opacity:.4;color:var(--ember);transform:translateY(-3px)}.edu-tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase}.edu h3{margin-top:.6rem;font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,3.5vw,2rem)}.edu-dept{margin-top:.25rem;color:var(--dim);font-size:1rem}.edu-gpa{margin-top:1rem;font-family:var(--font-mono);font-size:14px;color:var(--faint)}.edu-gpa strong{color:var(--ember);font-weight:600;font-size:1.25rem;margin-left:.35rem}.certs{display:grid;gap:.875rem;align-content:start}.cert{display:flex;align-items:center;gap:1.25rem;border:1px solid var(--line);background:var(--panel);padding:clamp(.85rem,2.5vw,1.1rem) clamp(1rem,3vw,1.35rem);transition:transform .3s ease,border-color .3s ease}.cert:hover{transform:translate(4px);border-color:#5ccfe673}.cert-year{flex:none;font-family:var(--font-mono);font-size:13px;color:var(--aqua);border:1px solid rgba(92,207,230,.3);padding:.3rem .6rem;min-width:3.6rem;text-align:center}.cert strong{display:block;font-family:var(--font-body);font-weight:600;font-size:15px;overflow-wrap:anywhere}.cert small{display:block;margin-top:.1rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.card,.skill-group,.project-card,.edu,.cert,.channel,.timeline>li,.status-card,.badge-top,.badge-bottom,.terminal,.terminal-head,.projects-empty{background-image:linear-gradient(180deg,#edf2f90e,#edf2f900 130px)}.card,.skill-group,.project-card,.channel,.timeline>li,.cert,.status-card,.terminal,.terminal-head,.badge-top,.badge-bottom,.hero-kicker,.projects-empty,.edu{background-color:#0f141eeb}.card,.skill-group,.project-card,.timeline>li,.cert,.status-card,.terminal,.badge-top,.badge-bottom,.hero-kicker,.projects-empty{border-color:#edf2f91a}.channel,.btn-ghost,.lang-switch,.menu-btn{border-color:var(--ctl)}.card:hover,.skill-group:hover,.project-card:hover,.timeline>li:hover,.cert:hover,.status-card:hover{border-color:#edf2f938}.card:focus-within,.project-card:focus-within{border-color:#ffb45473}.card,.skill-group,.project-card,.channel,.timeline>li,.cert,.status-card,.terminal,.projects-empty,.edu,.badge-top,.badge-bottom{border-radius:var(--r-card)}.hero-kicker,.chip,.btn,.lang-switch,.menu-btn{border-radius:var(--r-ctl)}.tl-monogram{border-radius:50%}.sg-ic,.ch-ic{border-radius:var(--r-sm)}.card:before,.project-card:after{border-radius:inherit}.timeline>li{background-image:linear-gradient(90deg,var(--ember),var(--aqua) 55%,var(--mint)),linear-gradient(180deg,#edf2f90e,#edf2f900 130px);background-size:0% 2px,auto;background-repeat:no-repeat,no-repeat}.timeline>li:hover{background-size:100% 2px,auto}html.anim-paused .glow,html.anim-paused .marquee-track,html.anim-paused .floaty,html.anim-paused .floaty-slow,html.anim-paused .dot-mint,html.anim-paused .pulse-ember,html.anim-paused .tl-now,html.anim-paused .term-cursor{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .reveal{opacity:1!important;transform:none!important}.marquee-track,.floaty,.floaty-slow{animation:none!important}}
