@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--bg:#0d0c0b;--bg-1:#131210;--bg-2:#1a1815;--bg-3:#211e1a;--line:#ece8e017;--line-2:#ece8e029;--text:#ece8e0;--text-dim:#a39c90;--text-mute:#6e685e;--accent:#4f8cff;--accent-2:#7fa9ff;--accent-rgb:79, 140, 255;--grad:linear-gradient(100deg, #4f8cff 0%, #7c8bff 25%, #9b6cff 50%, #b594ff 70%, #4f8cff 100%);--accent-dim:rgba(var(--accent-rgb), .14);--accent-line:rgba(var(--accent-rgb), .35);--font-sans:"Space Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--maxw:1240px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:18px;line-height:1.6;overflow-x:hidden}body:before{content:"";background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.5;pointer-events:none;z-index:0;background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 35%,#000 0%,#0000 78%);mask-image:radial-gradient(circle at 50% 35%,#000 0%,#0000 78%)}body:after{content:"";background:radial-gradient(120% 80% at 50% -10%, rgba(var(--accent-rgb),.1), transparent 60%);pointer-events:none;z-index:0;position:fixed;inset:0}::selection{background:var(--accent);color:#0d0c0b}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.progress{background:linear-gradient(90deg, var(--accent), var(--accent-2));z-index:200;width:0%;height:2px;box-shadow:0 0 12px rgba(var(--accent-rgb),.6);position:fixed;top:0;left:0}.glow{background:radial-gradient(circle, rgba(var(--accent-rgb),.1), transparent 65%);pointer-events:none;z-index:1;opacity:0;border-radius:50%;width:480px;height:480px;transition:opacity .4s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.nav{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(var(--bg), #0d0c0b00);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:20px clamp(20px,5vw,56px);transition:background .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{border-bottom:1px solid var(--line);background:#0d0c0bd1}.nav .brand{font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:12px;font-size:15px;font-weight:600;display:flex}.nav .brand-logo{object-fit:cover;width:36px;height:36px;box-shadow:0 0 0 1px #ffffff08 inset, 0 10px 24px -16px #000000e6, 0 0 18px -10px rgba(var(--accent-rgb),.9);background:#070707;border:1px solid #ece8e02e;border-radius:11px;flex:none}.nav .brand-name{line-height:1}.nav .brand .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%;animation:2.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.nav-links{align-items:center;gap:6px;display:flex}.nav-links a{font-family:var(--font-mono);color:var(--text-mute);letter-spacing:.02em;border-bottom:2px solid #0000;border-radius:0;padding:8px 14px;font-size:13px;transition:color .2s,border-color .2s;position:relative}.nav-links a:hover{color:var(--text)}.nav-links a.active{color:var(--text);border-bottom-color:var(--accent);background:0 0}.nav-links .nav-cta{font-family:var(--font-mono);background:var(--grad);transition:transform .2s, box-shadow .2s, background-position .55s var(--ease);background-position:0;background-size:200% 100%;border-bottom:0;border-radius:14px;font-size:13px;font-weight:600;color:#fff!important;padding:9px 16px!important}.nav-links .nav-cta:hover{background-position:100%;transform:translateY(-1px);box-shadow:0 8px 24px #7c6cff80}.nav-cta-label,.nav-toggle{display:none}.wrap{max-width:var(--maxw);z-index:2;margin:0 auto;padding:0 clamp(20px,5vw,56px);position:relative}section{z-index:2;position:relative}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);align-items:center;gap:10px;margin-bottom:22px;font-size:13px;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:26px;height:1px;display:inline-block}h2.section-title{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(34px,5vw,60px);font-weight:600;line-height:1.04}.section-head{max-width:760px;margin-bottom:64px}.section-head p{color:var(--text-dim);max-width:580px;margin-top:18px;font-size:19px}[data-reveal]{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);transform:translateY(34px)}[data-reveal].in{opacity:1;transform:none}[data-reveal-delay="1"]{transition-delay:80ms}[data-reveal-delay="2"]{transition-delay:.16s}[data-reveal-delay="3"]{transition-delay:.24s}[data-reveal-delay="4"]{transition-delay:.32s}[data-reveal-delay="5"]{transition-delay:.4s}.hero{align-items:center;min-height:100vh;padding:120px 0 80px;display:flex}.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(36px,5vw,68px);width:100%;display:grid}.hero-grid>div{min-width:0}.hero-grid.hero-centered{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center;max-width:min(940px,100%);margin:0 auto}.hero-centered .hero-copy{flex-direction:column;align-items:center;display:flex}.hero h1{letter-spacing:-.03em;font-size:clamp(46px,8.5vw,104px);font-weight:600;line-height:.96}.hero h1 .accent{color:var(--accent)}.hero h1 .grad{background:var(--grad);color:#0000;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 26px #7c8bff47);background-size:280% 100%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite gradFlow}@keyframes gradFlow{to{background-position:280%}}.hero .role-line{font-family:var(--font-mono);color:var(--text-dim);overflow-wrap:anywhere;max-width:100%;min-height:2.9em;margin-top:26px;font-size:clamp(15px,2.2vw,23px);line-height:1.45}.hero .role-line .prompt{color:var(--accent);margin-right:6px}.hero .role-line .typed{color:var(--text)}.hero .role-line .caret{background:var(--accent);width:9px;height:1.05em;margin-left:3px;animation:1s step-end infinite blink;display:inline-block;transform:translateY(3px)}@keyframes blink{50%{opacity:0}}.hero .lead{color:var(--text-dim);max-width:480px;margin-top:30px;font-size:19px}.hero-centered .lead{max-width:620px;margin-inline:auto}.hero .cta-row{flex-wrap:wrap;gap:14px;margin-top:38px;display:flex}.hero-centered .cta-row{justify-content:center}.btn{font-family:var(--font-mono);cursor:pointer;transition:all .2s var(--ease);border:1px solid var(--line-2);color:var(--text);background:0 0;border-radius:10px;align-items:center;gap:10px;padding:14px 24px;font-size:14px;display:inline-flex}.btn .arrow{transition:transform .2s}.btn:hover .arrow{transform:translate(4px)}.btn.primary{background:var(--grad);color:#fff;transition:background-position .55s var(--ease), transform .2s var(--ease), box-shadow .25s var(--ease);background-position:0;background-size:200% 100%;border:none;font-weight:600}.btn.primary:hover{background-position:100%;transform:translateY(-2px);box-shadow:0 16px 40px -14px #7c6cffb3}.btn.ghost:hover{border-color:var(--accent-line);background:var(--accent-dim)}.terminal{background:linear-gradient(180deg, var(--bg-2), var(--bg-1));border:1px solid var(--line-2);font-family:var(--font-mono);border-radius:14px;font-size:13.5px;overflow:hidden;box-shadow:0 30px 80px -30px #000c,inset 0 1px #ffffff08}.terminal .bar{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:13px 16px;display:flex}.terminal .bar .b{background:var(--bg-3);border-radius:50%;width:11px;height:11px}.terminal .bar .b:first-child{background:#ff5f57}.terminal .bar .b:nth-child(2){background:#febc2e}.terminal .bar .b:nth-child(3){background:#28c840}.terminal .bar .title{color:var(--text-mute);margin-left:8px;font-size:12px}.terminal .body{padding:20px;line-height:1.85}.terminal .cmt{color:var(--text-mute)}.terminal .k{color:var(--accent)}.terminal .s{color:#7fd3a0}.terminal .v{color:var(--text)}.terminal .p{color:#7aa2f7}.hero .terminal .ln{opacity:1;white-space:nowrap;border-right:2px solid #0000;width:fit-content;max-width:0;transition:max-width .6s steps(40,end);display:block;overflow:hidden;transform:none}.hero .terminal .ln.in{border-right-color:#0000;max-width:none}.hero .terminal .ln.typing{border-right-color:#4f8cff;animation:.85s step-end infinite termCaret}@keyframes termCaret{0%,to{border-right-color:#4f8cff}50%{border-right-color:#0000}}@media (prefers-reduced-motion:reduce){.hero .terminal .ln{max-width:none;transition:none}}.showreel{padding:clamp(96px,12vh,150px) 0;overflow:hidden}.showreel-head{text-align:center;max-width:1100px;margin:0 auto 42px}.showreel-head .eyebrow{justify-content:center}.showreel-head h2{letter-spacing:-.02em;text-wrap:balance;white-space:nowrap;font-size:clamp(34px,4.7vw,64px);font-weight:600;line-height:1.04}.showreel-head h2 .grad{background:var(--grad);color:#0000;-webkit-text-fill-color:transparent;background-size:260% 100%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite gradFlow}.showreel-sub{max-width:560px;color:var(--text-dim);text-wrap:balance;margin:18px auto 0;font-size:19px;line-height:1.7}.showreel-stage{z-index:2;width:min(1180px,100% - clamp(28px,8vw,112px));margin:0 auto;position:relative}.showreel-frame{--showreel-controls:44px;aspect-ratio:16/9;border:1px solid var(--line-2);box-shadow:0 34px 90px -44px #000000e6, 0 0 0 1px rgba(var(--accent-rgb),.08), inset 0 1px 0 #ffffff0a;background:#050505;border-radius:16px;position:relative;overflow:hidden}.showreel-frame:before{content:"";pointer-events:none;z-index:2;background:linear-gradient(180deg, #ffffff0f, transparent 12%), radial-gradient(80% 70% at 50% 0%, rgba(var(--accent-rgb),.14), transparent 70%);position:absolute;inset:0}.showreel-frame iframe{width:100%;height:calc(100% + var(--showreel-controls));background:#000;border:0;display:block;position:absolute;inset:0}.showreel-meta{color:var(--text-mute);font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;margin-top:18px;font-size:12px;display:flex}.sr-tag{color:var(--text-dim);align-items:center;gap:8px;display:inline-flex}.sr-led{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%}.sr-bar{background:var(--line-2);width:1px;height:14px}.about{padding:120px 0}.about-grid{width:100%;display:block}.about-copy{width:100%}.about-title{margin:24px 0 28px}.about .photo{border:1px solid var(--line-2);background:linear-gradient(135deg, rgba(var(--accent-rgb),.1), transparent 60%), repeating-linear-gradient(45deg, var(--bg-2) 0 12px, var(--bg-1) 12px 24px);aspect-ratio:4/5;border-radius:16px;position:relative;overflow:hidden}.about .photo img{object-fit:cover;object-position:top center;filter:grayscale(.2)contrast(1.02);width:100%;height:100%}.about .photo .frame-tag{font-family:var(--font-mono);color:var(--text);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d0c0bb3;border-radius:8px;padding:6px 11px;font-size:12px;position:absolute;bottom:14px;left:14px}.about p.body{color:var(--text-dim);font-size:20px;line-height:1.7}.about p.body strong{color:var(--text);font-weight:500}.about p.body+p.body{margin-top:22px}.about .sig{font-family:var(--font-mono);color:var(--text-mute);margin-top:30px;font-size:13px}.cmd-center{--violet:#a78bfa;--violet-soft:#a78bfa2e;--accent-soft:#4f8cff29;isolation:isolate;width:100%;padding:34px 28px 60px;position:relative}.cmd-center:before{content:"";background:radial-gradient(36% 28% at 28% 30%, var(--accent-soft), transparent 70%), radial-gradient(34% 30% at 78% 70%, var(--violet-soft), transparent 70%);filter:blur(6px);z-index:0;pointer-events:none;position:absolute;inset:0}.cmd-center .terminal{z-index:1;-webkit-backdrop-filter:blur(18px)saturate(1.1);background:linear-gradient(#141622d9,#0d0e16e6);border:1px solid #ece8e01a;border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px -30px #000000d9,inset 0 0 0 1px #ffffff05,inset 0 1px #ffffff0d,0 0 70px -20px #4f8cff4d}.cmd-center .t-bar{background:linear-gradient(#ffffff06,#0000);border-bottom:1px solid #ece8e012;align-items:center;gap:8px;padding:11px 14px;display:flex}.cmd-center .t-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px;display:inline-block}.cmd-center .t-dot.r{background:#ff5f56}.cmd-center .t-dot.y{background:#ffbd2e}.cmd-center .t-dot.g{background:#27c93f}.cmd-center .t-title{text-align:center;font-family:var(--font-mono);color:var(--text-mute);letter-spacing:.04em;flex:1;font-size:12px}.cmd-center .t-meta{font-family:var(--font-mono);color:var(--text-mute);letter-spacing:.06em;font-size:11px}.cmd-center .t-body{font-family:var(--font-mono);color:var(--text-dim);padding:18px 20px 22px;font-size:12.5px;line-height:1.85}.cmd-center .ln+.ln:not(.out){margin-top:6px}.cmd-center .terminal .ln{opacity:1;transform:none}.cmd-center .prompt{color:#4f8cff;margin-right:8px}.cmd-center .out{color:var(--text)}.cmd-center .out.muted{color:var(--text-dim)}.cmd-center .out.arrow{color:var(--text);padding-left:18px;position:relative}.cmd-center .out.arrow:before{content:"→";color:var(--violet);position:absolute;left:0}.cmd-center .hl-name{color:var(--text);letter-spacing:0;font-size:13.5px;font-weight:600}.cmd-center .out.chips{flex-wrap:wrap;gap:6px;padding:4px 0;line-height:1.4;display:flex}.cmd-center .chip{color:#9fc0ff;background:#4f8cff1a;border:1px solid #4f8cff38;border-radius:999px;padding:3px 9px;font-size:11px}.cmd-center .chip.violet{color:#c9bbff;background:#a78bfa1a;border-color:#a78bfa47}.cmd-center .status-row{align-items:center;gap:10px;display:flex}.cmd-center .pulse{background:#27c93f;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 10px #27c93fcc}.cmd-center .cursor-line{margin-top:6px}.cmd-center .cursor{vertical-align:-2px;background:#4f8cff;width:8px;height:14px;animation:1.05s step-end infinite blink;display:inline-block}.cmd-center .float-card{z-index:3;font-family:var(--font-mono);color:var(--text);-webkit-backdrop-filter:blur(14px)saturate(1.1);opacity:0;animation:.8s cubic-bezier(.2,.7,.2,1) forwards fcIn;animation-delay:var(--d,0s);background:linear-gradient(#1c1e2ceb,#10111aeb);border:1px solid #ece8e024;border-radius:12px;padding:11px 13px;position:absolute;transform:translateY(8px);box-shadow:0 20px 40px -18px #000000d9,inset 0 0 0 1px #ffffff05,inset 0 1px #ffffff0d}@keyframes fcIn{to{opacity:1;transform:none}}.cmd-center .fc-head{color:var(--text-mute);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:10.5px;display:flex}.cmd-center .fc-dot{background:#4f8cff;border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 8px #4f8cffcc}.cmd-center .fc-dot.violet{background:var(--violet);box-shadow:0 0 8px #a78bfacc}.cmd-center .fc-label{color:var(--text-dim);flex:1}.cmd-center .fc-meta{color:var(--text-mute)}.cmd-center .fc-foot{color:var(--text-mute);margin-top:8px;font-size:11px}.cmd-center .fc-num{color:var(--text);margin-right:4px;font-size:13px;font-weight:600}.cmd-center .commits{width:180px;top:-14px;left:-18px}.cmd-center .deploy{width:216px;top:46px;right:-22px}.cmd-center .ainet{width:188px;bottom:-20px;left:-20px}.cmd-center .api{width:210px;bottom:24px;right:-18px;overflow:hidden}.cmd-center .progress{display:none}.cmd-center .commit-graph{align-items:flex-end;gap:3px;height:30px;margin-top:9px;display:flex}.cmd-center .commit-graph span{height:calc(var(--h) * 100%);opacity:.85;transform-origin:bottom;background:linear-gradient(#4f8cff,#2b5fc7);border-radius:2px;flex:1;min-height:2px;animation:1.8s ease-in-out infinite barPulse}.cmd-center .commit-graph span:nth-child(3n){background:linear-gradient(180deg, var(--violet), #6a4fc7)}.cmd-center .commit-graph span:first-child{animation-delay:0s}.cmd-center .commit-graph span:nth-child(2){animation-delay:.1s}.cmd-center .commit-graph span:nth-child(3){animation-delay:.22s}.cmd-center .commit-graph span:nth-child(4){animation-delay:.36s}.cmd-center .commit-graph span:nth-child(5){animation-delay:.14s}.cmd-center .commit-graph span:nth-child(6){animation-delay:.28s}.cmd-center .commit-graph span:nth-child(7){animation-delay:.4s}.cmd-center .commit-graph span:nth-child(8){animation-delay:.18s}.cmd-center .commit-graph span:nth-child(9){animation-delay:.32s}.cmd-center .commit-graph span:nth-child(10){animation-delay:60ms}.cmd-center .commit-graph span:nth-child(11){animation-delay:.24s}.cmd-center .commit-graph span:nth-child(12){animation-delay:.38s}.cmd-center .commit-graph span:nth-child(13){animation-delay:.12s}.cmd-center .commit-graph span:nth-child(14){animation-delay:.3s}@keyframes barPulse{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.cmd-center .commit-graph span{animation:none}}.cmd-center .deploy .dp-row{align-items:center;gap:10px;display:flex}.cmd-center .dp-tick{color:#27c93f;background:#27c93f29;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;animation:2.6s ease-in-out infinite tickGlow;display:grid;box-shadow:0 0 14px #27c93f59}.cmd-center .dp-tick svg path{stroke-dasharray:16;stroke-dashoffset:16px;animation:2.6s ease-in-out infinite tickDraw}@keyframes tickDraw{0%{stroke-dashoffset:16px}35%{stroke-dashoffset:0}75%{stroke-dashoffset:0}to{stroke-dashoffset:16px}}@keyframes tickGlow{0%,to{background:#27c93f1f;box-shadow:0 0 10px #27c93f40}40%{background:#27c93f33;box-shadow:0 0 22px #27c93f8c}}@media (prefers-reduced-motion:reduce){.cmd-center .dp-tick,.cmd-center .dp-tick svg path{stroke-dashoffset:0;animation:none}}.cmd-center .dp-title{color:var(--text);font-size:12px}.cmd-center .dp-sub{color:var(--text-mute);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10.5px;overflow:hidden}.cmd-center .ainet .net{width:100%;height:auto;margin-top:8px;display:block}.cmd-center .ainet .net .links path{stroke-dasharray:6 80;stroke-dashoffset:0;animation:3.8s linear infinite netFlow}.cmd-center .ainet .net .links path:nth-child(2){animation-delay:-.4s}.cmd-center .ainet .net .links path:nth-child(3){animation-delay:-.8s}.cmd-center .ainet .net .links path:nth-child(4){animation-delay:-1.2s}.cmd-center .ainet .net .links path:nth-child(5){animation-delay:-1.6s}.cmd-center .ainet .net .links path:nth-child(6){animation-delay:-2s}.cmd-center .ainet .net .nodes-in circle{transform-origin:50%;transform-box:fill-box;animation:2.6s ease-in-out infinite nodePulse}.cmd-center .ainet .net .nodes-mid circle{transform-origin:50%;transform-box:fill-box;animation:2.6s ease-in-out .4s infinite nodePulse}.cmd-center .ainet .net .nodes-out circle{transform-origin:50%;transform-box:fill-box;animation:2.6s ease-in-out .8s infinite nodePulse}@keyframes netFlow{to{stroke-dashoffset:-86px}}@keyframes nodePulse{0%,to{r:3.1;opacity:.75}50%{r:4.2;opacity:1}}@media (prefers-reduced-motion:reduce){.cmd-center .ainet .net .links path,.cmd-center .ainet .net circle{animation:none}}.cmd-center .api .api-row{white-space:nowrap;border-bottom:1px dashed #ece8e014;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:8px;padding:5px 0;font-size:11px;display:grid;position:relative}.cmd-center .api .api-row:last-child{border-bottom:0}.cmd-center .api .api-row.dim{opacity:.55}.cmd-center .api .api-row:after{content:"";transform-origin:0;opacity:0;width:100%;height:1.5px;animation:4s cubic-bezier(.6,.05,.3,1) infinite apiFill;animation-delay:var(--start,0s);background:linear-gradient(90deg,#4f8cff00 0%,#4f8cff8c 55%,#a78bfaf2 92%,#fff 100%);border-radius:2px;position:absolute;bottom:-1px;left:0;transform:scaleX(0);box-shadow:0 0 8px #4f8cff73}@keyframes apiFill{0%{opacity:0;transform:scaleX(0)}4%{opacity:1}72%{opacity:1;transform:scaleX(1)}80%{opacity:1;transform:scaleX(1)}90%{opacity:0;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.cmd-center .api-method{letter-spacing:.06em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9.5px}.cmd-center .api-method.get{color:#9fc0ff;background:#4f8cff24}.cmd-center .api-method.post{color:#c9bbff;background:#a78bfa24}.cmd-center .api-path{color:var(--text-dim);text-overflow:ellipsis;flex:1;min-width:0;transition:opacity .35s;overflow:hidden}.cmd-center .api-status{color:#27c93f;text-align:right;animation:4s ease-in-out infinite statusPulse;animation-delay:var(--start,0s);border-radius:4px;flex-shrink:0;justify-self:end;padding:1px 5px;font-size:11px;transition:opacity .35s}@keyframes statusPulse{0%,68%{text-shadow:none;background:0 0}74%{text-shadow:0 0 10px #27c93fe6;background:#27c93f24}88%,to{text-shadow:none;background:0 0}}@media (prefers-reduced-motion:reduce){.cmd-center .api .api-row:after,.cmd-center .api-status{animation:none}.cmd-center .api .api-row:after{display:none}}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(5,1fr);gap:0;margin-top:88px;display:grid}.stat{border-left:1px solid var(--line);padding:34px 22px}.stat:first-child{border-left:none}.stat .num{letter-spacing:-.02em;font-size:clamp(34px,4vw,52px);font-weight:600;line-height:1}.stat .num .suffix{color:var(--accent)}.stat .lbl{font-family:var(--font-mono);color:var(--text-mute);letter-spacing:.02em;margin-top:12px;font-size:12.5px}.skills{padding:120px 0}.skills-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.skill-card{border:1px solid var(--line);background:var(--bg-1);border-radius:14px;padding:28px;transition:border-color .3s,transform .3s,background .3s}.skill-card:hover{border-color:var(--accent-line);background:var(--bg-2);transform:translateY(-4px)}.skill-card .ico{background:var(--accent-dim);width:42px;height:42px;color:var(--accent);font-family:var(--font-mono);border:1px solid var(--accent-line);border-radius:10px;place-items:center;margin-bottom:20px;font-size:18px;font-weight:600;display:grid}.skill-card h3{margin-bottom:8px;font-size:20px;font-weight:600}.skill-card p{color:var(--text-mute);font-size:14.5px;font-family:var(--font-mono)}.skill-tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.skill-tags span{font-family:var(--font-mono);color:var(--text-dim);border:1px solid var(--line-2);border-radius:7px;padding:5px 10px;font-size:12px}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);--gap:64px;margin-top:64px;padding:26px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee .track{gap:var(--gap);width:max-content;animation:28s linear infinite scrollx;display:flex}.marquee:hover .track{animation-play-state:paused}.marquee .item{font-family:var(--font-mono);color:var(--text-mute);gap:var(--gap);white-space:nowrap;align-items:center;font-size:17px;display:flex}.marquee .item:after{content:"◦";color:var(--accent)}@keyframes scrollx{to{transform:translateX(calc(-50% - var(--gap)/2))}}.work{position:relative}.work-sticky{flex-direction:column;justify-content:flex-start;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.work-head{pointer-events:none;flex:none;padding:clamp(92px,13vh,116px) clamp(20px,5vw,56px) 0;position:relative}.work-head .row{max-width:var(--maxw);justify-content:space-between;align-items:flex-end;margin:0 auto;display:flex}.work-progress{font-family:var(--font-mono);color:var(--text-mute);font-size:13px}.work-progress b{color:var(--accent)}.work-track{will-change:transform;align-items:stretch;gap:28px;margin:clamp(34px,5vh,58px) 0 0;padding:0 clamp(20px,5vw,56px);display:flex}.pcard{border:1px solid var(--line-2);background:var(--bg-1);border-radius:16px;flex:0 0 clamp(320px,42vw,560px);transition:border-color .3s;overflow:hidden}.pcard:hover{border-color:color-mix(in srgb, var(--theme) 45%, var(--line-2))}.pcard .pcard-visual{aspect-ratio:16/11;border-bottom:1px solid var(--line);background:radial-gradient(78% 70% at 50% 42%, color-mix(in srgb, var(--theme) 20%, transparent), transparent 72%), linear-gradient(180deg, var(--bg-2), var(--bg-1));place-items:center;display:grid;position:relative;overflow:hidden}.pcard .pcard-visual .pattern{pointer-events:none;background-image:radial-gradient(color-mix(in srgb, var(--theme) 26%, transparent) 1px, transparent 1.4px);opacity:.4;transition:opacity .5s var(--ease);background-size:17px 17px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(62% 60% at 50% 44%,#000,#0000 78%);mask-image:radial-gradient(62% 60% at 50% 44%,#000,#0000 78%)}.pcard .pcard-visual .glow{pointer-events:none;background:radial-gradient(circle, color-mix(in srgb, var(--theme) 60%, transparent), transparent 62%);filter:blur(34px);opacity:.5;width:230px;height:230px;transition:opacity .5s var(--ease), transform .6s var(--ease);border-radius:50%;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.pcard .pcard-visual .icon{z-index:2;width:118px;height:118px;color:color-mix(in srgb, var(--theme) 72%, #fff 28%);background:linear-gradient(160deg, color-mix(in srgb, var(--theme) 16%, transparent), color-mix(in srgb, var(--theme) 4%, transparent));border:1px solid color-mix(in srgb, var(--theme) 34%, transparent);box-shadow:0 18px 50px -16px color-mix(in srgb, var(--theme) 60%, transparent), inset 0 1px 0 #ffffff14;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);border-radius:26px;place-items:center;display:grid;position:relative}.pcard .pcard-visual .icon svg{width:60px;height:60px}.pcard .pcard-visual .ring{z-index:1;border:1px solid color-mix(in srgb, var(--theme) 22%, transparent);pointer-events:none;width:172px;height:172px;transition:transform .6s var(--ease), opacity .5s;border-radius:50%;position:absolute}.pcard:hover .pcard-visual .icon{border-color:color-mix(in srgb, var(--theme) 55%, transparent);box-shadow:0 24px 60px -14px color-mix(in srgb, var(--theme) 75%, transparent), inset 0 1px 0 #ffffff1a;transform:translateY(-4px)scale(1.05)}.pcard:hover .pcard-visual .glow{opacity:.78}.pcard:hover .pcard-visual .pattern{opacity:.55}.pcard:hover .pcard-visual .ring{transform:scale(1.08)}.pcard .pcard-visual .num{z-index:3;font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.04em;font-size:12px;position:absolute;top:16px;left:16px}.pcard .pcard-visual .badge{z-index:3;font-family:var(--font-mono);letter-spacing:.03em;color:color-mix(in srgb, var(--theme) 80%, #fff 20%);background:color-mix(in srgb, var(--theme) 13%, transparent);border:1px solid color-mix(in srgb, var(--theme) 32%, transparent);border-radius:100px;padding:5px 11px;font-size:11px;position:absolute;top:14px;right:14px}.pcard .meta{padding:24px 26px 26px}.pcard .meta .top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.pcard .meta h3{letter-spacing:-.01em;font-size:26px;font-weight:600}.pcard .meta .client{font-family:var(--font-mono);color:var(--text-mute);font-size:12.5px}.pcard .meta .desc{color:var(--text-dim);margin-top:12px;font-size:15.5px}.pcard .meta .stack{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.pcard .meta .stack span{font-family:var(--font-mono);color:var(--text-dim);border:1px solid var(--line);border-radius:6px;padding:4px 9px;font-size:11.5px}.pcard .meta .link{font-family:var(--font-mono);color:color-mix(in srgb, var(--theme) 78%, #fff 22%);align-items:center;gap:8px;margin-top:22px;font-size:13px;transition:gap .2s;display:inline-flex}.pcard .meta .link:hover{gap:13px}.work-track .pcard{border:1px solid var(--line);background:radial-gradient(90% 50% at 100% 0%, color-mix(in srgb, var(--theme) 5%, transparent), transparent 60%), linear-gradient(180deg, #ffffff08, transparent 34%), #0e0d0cbd;isolation:isolate;min-height:clamp(490px,48vh,540px);transition:border-color .35s var(--ease), transform .35s var(--ease), background .35s var(--ease), box-shadow .4s var(--ease);border-radius:22px;flex-direction:column;flex:0 0 clamp(360px,38vw,520px);justify-content:space-evenly;padding:28px 28px 24px;display:flex;position:relative;overflow:hidden}.work-track .pcard:before{content:"";border-radius:inherit;background:linear-gradient(135deg, color-mix(in srgb, var(--theme) 34%, transparent), transparent 28%, transparent 76%, #ffffff14);-webkit-mask-composite:xor;opacity:.42;transition:opacity .35s var(--ease);pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.work-track .pcard:hover{border-color:color-mix(in srgb, var(--theme) 26%, var(--line-2));box-shadow:0 0 0 1px color-mix(in srgb, var(--theme) 9%, transparent), 0 20px 58px -34px color-mix(in srgb, var(--theme) 34%, transparent), 0 8px 28px -20px #0000008c;transform:translateY(-2px)}.work-track .pcard:hover:before{opacity:1}.work-track .pcard-head,.work-track .pcard-viz,.work-track .pcard-rule{display:none}.work-track .pcard-viz{z-index:0;aspect-ratio:120/100;width:clamp(240px,48%,318px);color:var(--theme);opacity:.18;pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .45s var(--ease), transform .6s var(--ease), filter .45s var(--ease);position:absolute;top:-36px;right:-122px;-webkit-mask-image:radial-gradient(95% 95% at 78% 20%,#000 0% 48%,#0000 86%);mask-image:radial-gradient(95% 95% at 78% 20%,#000 0% 48%,#0000 86%)}.work-track .pcard-viz svg{width:100%;height:100%;display:block;overflow:visible}.work-track .pcard:hover .pcard-viz{opacity:.26;filter:brightness(1.08);transform:translate(-2px,1px)}.work-track .pcard-viz-neural{opacity:.18;width:clamp(260px,54%,342px);top:-42px;right:-104px;-webkit-mask-image:radial-gradient(102% 102% at 76% 18%,#000 0% 50%,#0000 88%);mask-image:radial-gradient(102% 102% at 76% 18%,#000 0% 50%,#0000 88%)}.work-track .pcard:hover .pcard-viz-neural{opacity:.26}@media (prefers-reduced-motion:no-preference){.work-track .pcard-viz-courier .v-route path{animation:4.8s linear infinite vCourierRoute}.work-track .pcard-viz-courier .v-plane{transform-origin:50%;transform-box:fill-box;animation:5s ease-in-out infinite vCourierPlane}.work-track .pcard-viz-courier .v-crate{transform-origin:50%;transform-box:fill-box;animation:5s ease-in-out infinite vCourierCrate}.work-track .pcard-viz-courier .v-courier-pulse{transform-origin:50%;transform-box:fill-box;animation:2.8s ease-in-out infinite vNodePulse}.work-track .pcard-viz-neural .v-nodes circle{transform-origin:50%;transform-box:fill-box;animation:4.2s ease-in-out infinite vNodePulse}.work-track .pcard-viz-neural .v-nodes circle:nth-child(2){animation-delay:.35s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(3){animation-delay:.7s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(4){animation-delay:1.05s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(5){animation-delay:1.4s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(6){animation-delay:1.75s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(7){animation-delay:2.1s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(8){animation-delay:2.45s}.work-track .pcard-viz-neural .v-nodes circle:nth-child(9){animation-delay:2.8s}.work-track .pcard-viz-neural .v-signal{opacity:0;animation:6s linear infinite vSignal}.work-track .pcard-viz-neural .v-signal-2{animation-delay:2s}.work-track .pcard-viz-neural .v-signal-3{animation-delay:4s}.work-track .pcard-viz-filter .v-packet{transform-origin:50%;transform-box:fill-box;opacity:0;animation:7s linear infinite vPacket}.work-track .pcard-viz-filter .v-packet:first-child{animation-duration:6.5s;animation-delay:0s}.work-track .pcard-viz-filter .v-packet:nth-child(2){animation-duration:8s;animation-delay:-1.8s}.work-track .pcard-viz-filter .v-packet:nth-child(3){animation-duration:7.2s;animation-delay:-3.6s}.work-track .pcard-viz-filter .v-packet:nth-child(4){animation-duration:7.8s;animation-delay:-5.4s}.work-track .pcard-viz-grid .v-cell{animation:6.5s ease-in-out infinite vCellPulse}.work-track .pcard-viz-grid .v-cell:nth-child(2){animation-delay:.9s}.work-track .pcard-viz-grid .v-cell:nth-child(3){animation-delay:1.8s}.work-track .pcard-viz-grid .v-cell:nth-child(4){animation-delay:2.7s}.work-track .pcard-viz-grid .v-cell:nth-child(5){animation-delay:3.6s}.work-track .pcard-viz-grid .v-cell:nth-child(6){animation-delay:4.5s}.work-track .pcard-viz-grid .v-shimmer{transform-origin:50%;transform-box:fill-box;animation:7.5s ease-in-out infinite vGridShim}.work-track .pcard-viz-wave .v-wave{animation:11s ease-in-out infinite vWave}.work-track .pcard-viz-wave .v-wave-2{animation-duration:13s;animation-delay:-1.2s}.work-track .pcard-viz-wave .v-wave-3{animation-duration:15s;animation-delay:-2.4s}.work-track .pcard-viz-wave .v-wave-4{animation-duration:17s;animation-delay:-3.6s}.work-track .pcard-viz-stack .v-layer{transform-origin:50%;transform-box:fill-box;animation:6s ease-in-out infinite vLayer}.work-track .pcard-viz-stack .v-layer-2{animation-delay:.4s}.work-track .pcard-viz-stack .v-layer-3{animation-delay:.8s}.work-track .pcard-viz-stack .v-layer-4{animation-delay:1.2s}.work-track .pcard-viz-dataflow .v-flow{animation:2.4s linear infinite vFlow}.work-track .pcard-viz-dataflow .v-flow-2{animation-delay:.6s}.work-track .pcard-viz-dataflow .v-flow-3{animation-delay:1.2s}.work-track .pcard-viz-dataflow .v-flow-4{animation-delay:1.8s}.work-track .pcard-viz-dataflow .v-lane-heads circle{transform-origin:50%;transform-box:fill-box;animation:4s ease-in-out infinite vNodePulse}.work-track .pcard-viz-dataflow .v-lane-heads circle:nth-child(2){animation-delay:.6s}.work-track .pcard-viz-dataflow .v-lane-heads circle:nth-child(3){animation-delay:1.2s}.work-track .pcard-viz-tree .v-leaves circle{transform-origin:50%;transform-box:fill-box;animation:5s ease-in-out infinite vLeaf}.work-track .pcard-viz-tree .v-leaves circle:first-child{animation-delay:0s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(2){animation-delay:.6s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(3){animation-delay:.75s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(4){animation-delay:.9s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(5){animation-delay:1.4s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(6){animation-delay:1.5s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(7){animation-delay:1.6s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(8){animation-delay:1.7s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(9){animation-delay:1.8s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(10){animation-delay:1.9s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(11){animation-delay:2s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(12){animation-delay:2.1s}.work-track .pcard-viz-tree .v-leaves circle:nth-child(13){animation-delay:2.2s}}@keyframes vNodePulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.45)}}@keyframes vSignal{0%{stroke-dashoffset:0;opacity:0}10%{opacity:1}85%{opacity:1}to{stroke-dashoffset:-113px;opacity:0}}@keyframes vPacket{0%{opacity:0;transform:translate(-6px)}10%{opacity:1}88%{opacity:1}to{opacity:0;transform:translate(108px)}}@keyframes vCellPulse{0%,to{opacity:.22}50%{opacity:.7}}@keyframes vGridShim{0%{opacity:0;transform:translate(0)}10%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(140px)}}@keyframes vWave{0%,to{transform:translate(0)translateY(0)}50%{transform:translate(-6px)translateY(-1.5px)}}@keyframes vLayer{0%,to{opacity:var(--o,.4);transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes vFlow{0%{stroke-dashoffset:0;opacity:0}20%{opacity:1}80%{opacity:1}to{stroke-dashoffset:-28px;opacity:0}}@keyframes vLeaf{0%,to{opacity:.55}50%{opacity:1}}@keyframes vCourierRoute{0%{stroke-dashoffset:0;opacity:.2}50%{opacity:.7}to{stroke-dashoffset:-52px;opacity:.2}}@keyframes vCourierPlane{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-3px,2px)rotate(-2deg)}}@keyframes vCourierCrate{0%,to{opacity:.58;transform:translateY(0)}50%{opacity:.76;transform:translateY(-1.5px)}}.work-track .pcard-head{z-index:1;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-mute);justify-content:space-between;align-items:center;font-size:10px;display:flex;position:relative}.work-track .pcard-status{border:1px solid var(--line);background:#ffffff05;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.work-track .pcard-status-dot{background:#3ddc7e;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.4s infinite pulse;box-shadow:0 0 0 3px #3ddc7e1f,0 0 8px #3ddc7e8c}.work-track .pcard-index{color:var(--text)}.work-track .pcard-index .pcard-of{color:var(--text-mute);opacity:.7;margin-left:2px}.work-track .pcard-index{display:none}.work-track .pcard-domain{z-index:1;border:1px solid var(--line);background:linear-gradient(90deg, color-mix(in srgb, var(--theme) 4%, transparent), transparent), #0d0c0b66;font-family:var(--font-mono);color:var(--text);transition:border-color .25s var(--ease), background .25s var(--ease), box-shadow .35s var(--ease), transform .25s var(--ease);border-radius:999px;align-items:center;gap:11px;margin-top:18px;padding:11px 13px;font-size:12.5px;display:flex;position:relative}.work-track .pcard-domain-bottom{margin-top:18px}.work-track .pcard-domain:hover{border-color:color-mix(in srgb, var(--theme) 34%, var(--line-2));background:linear-gradient(90deg, color-mix(in srgb, var(--theme) 7%, transparent), transparent), #0d0c0b9e;box-shadow:0 0 0 1px color-mix(in srgb, var(--theme) 14%, transparent), 0 0 20px -8px color-mix(in srgb, var(--theme) 26%, transparent)}.work-track .pcard-domain-dot{background:var(--theme);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--theme) 12%, transparent), 0 0 10px color-mix(in srgb, var(--theme) 50%, transparent);transition:box-shadow .35s var(--ease);border-radius:50%;flex-shrink:0;animation:2.6s ease-in-out infinite pcardDotPulse}.work-track .pcard:hover .pcard-domain-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--theme) 18%, transparent), 0 0 14px color-mix(in srgb, var(--theme) 65%, transparent)}@keyframes pcardDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.88)}}.work-track .pcard-domain-host{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.work-track .pcard-domain-arrow{color:var(--text-mute);transition:transform .25s var(--ease), color .2s;font-size:13px}.work-track .pcard-domain:hover .pcard-domain-arrow{color:color-mix(in srgb, var(--theme) 80%, var(--text));transform:translate(2px,-2px)}.work-track .pcard-rule{z-index:1;background:0 0;background-image:linear-gradient(90deg, color-mix(in srgb, var(--line) 78%, transparent) 0%, color-mix(in srgb, var(--line) 58%, transparent) 48%, transparent 86%);border:0;height:1px;margin:20px 0 0;position:relative}.work-track .pcard-body{z-index:1;padding-top:0;position:relative}.work-track .pcard-cat{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--theme) 72%, #fff 18%);font-size:10.5px;display:inline-block}.work-track .pcard-title{letter-spacing:-.018em;color:var(--text);text-wrap:balance;margin-top:12px;font-size:clamp(27px,2.2vw,34px);font-weight:600;line-height:1.08}.work-track .pcard-tagline{color:var(--text-dim);text-wrap:pretty;max-width:43ch;margin-top:14px;font-size:14.5px;line-height:1.62}.work-track .pcard-meta{z-index:1;border-top:1px solid color-mix(in srgb, var(--line) 76%, transparent);font-family:var(--font-mono);gap:12px;margin-top:0;padding-top:20px;font-size:11.5px;display:grid;position:relative}.work-track .pcard-role-line{flex-wrap:wrap;gap:8px;display:flex}.work-track .pcard-role-line span{border:1px solid color-mix(in srgb, var(--theme) 18%, var(--line));background:color-mix(in srgb, var(--theme) 5%, transparent);min-width:0;color:var(--text);border-radius:999px;align-items:center;padding:7px 10px;line-height:1;display:inline-flex}.work-track .pcard-stack-line{color:var(--text-dim);flex-wrap:wrap;gap:7px;display:flex}.work-track .pcard-stack-line span{border:1px solid var(--line);color:var(--text-dim);background:#ffffff05;border-radius:999px;align-items:center;padding:6px 9px;line-height:1;display:inline-flex;position:relative}.work-track .pcard-head{display:none}.work-hint{font-family:var(--font-mono);color:var(--text-mute);align-items:center;gap:8px;font-size:12px;display:flex}.work-end{flex-direction:column;flex:0 0 360px;justify-content:center;gap:18px;padding-left:20px;display:flex}.work-end h3{max-width:280px;font-size:30px;font-weight:600}.work-mobile-controls{display:none}.exp{padding:120px 0}.exp-wrap{max-width:840px;margin:0 auto;position:relative}.exp-line{background:var(--line-2);width:2px;position:absolute;top:6px;bottom:6px;left:7px}.exp-line .fill{background:linear-gradient(var(--accent),var(--accent-2));width:100%;height:0%;box-shadow:0 0 12px rgba(var(--accent-rgb),.5);position:absolute;top:0;left:0}.exp-item{padding:0 0 54px 48px;position:relative}.exp-item:last-child{padding-bottom:0}.exp-item .node{background:var(--bg);border:2px solid var(--line-2);width:16px;height:16px;transition:all .4s var(--ease);border-radius:50%;position:absolute;top:4px;left:0}.exp-item.lit .node{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px var(--accent-dim), 0 0 16px rgba(var(--accent-rgb),.6)}.exp-item .when{font-family:var(--font-mono);color:var(--accent);margin-bottom:7px;font-size:13px}.exp-item h3{font-size:23px;font-weight:600}.exp-item .org{color:var(--text-dim);margin-top:4px;font-size:16px}.exp-item.current h3:after{content:"NOW";font-family:var(--font-mono);vertical-align:middle;color:var(--accent);border:1px solid var(--accent-line);background:var(--accent-dim);letter-spacing:.08em;border-radius:6px;margin-left:12px;padding:3px 7px;font-size:10px}.writing{padding:120px 0}.posts{border-top:1px solid var(--line);gap:0;display:grid}.post{border-bottom:1px solid var(--line);transition:padding .3s var(--ease), background .3s;grid-template-columns:120px 1fr auto;align-items:center;gap:30px;padding:30px 6px;display:grid}.post:hover{background:linear-gradient(90deg,var(--accent-dim),transparent 60%);padding-left:22px}.post .cat{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.post h3{font-size:23px;font-weight:500;transition:color .2s}.post:hover h3{color:var(--accent)}.post .date{font-family:var(--font-mono);color:var(--text-mute);white-space:nowrap;font-size:13px}.github{padding:64px 0 76px}.gh-panel{border:1px solid var(--line-2);background:linear-gradient(180deg,var(--bg-1),var(--bg));border-radius:18px;padding:40px clamp(24px,4vw,50px);overflow:hidden}.gh-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.gh-top h3{font-size:30px;font-weight:600}.gh-top h3 span{color:var(--accent);font-family:var(--font-mono)}.gh-top p{color:var(--text-dim);max-width:420px;margin-top:10px}.gh-grid{grid-template-columns:repeat(auto-fill,13px);justify-content:start;gap:5px;margin-top:32px;display:grid}.gh-cell{background:var(--bg-3);border-radius:3px;width:13px;height:13px}.gh-legend{font-family:var(--font-mono);color:var(--text-mute);align-items:center;gap:10px;margin-top:16px;font-size:12px;display:flex}.gh-legend .scale{gap:4px;display:flex}.gh-legend .scale i{border-radius:3px;width:12px;height:12px;display:block}.contact{padding:130px 0 0}.contact-grid{max-width:var(--maxw);grid-template-columns:1fr 1.05fr;align-items:start;gap:clamp(36px,6vw,90px);margin:0 auto;display:grid}.contact-intro,.contact-form{min-width:0}.contact-intro h2{letter-spacing:-.03em;font-size:clamp(40px,5.4vw,76px);font-style:normal;font-weight:600;line-height:.98}.contact-intro h2 .accent{background:var(--grad);color:#0000;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 22px #7c8bff4d);background-size:280% 100%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite gradFlow}.contact-lead{color:var(--text-dim);max-width:440px;margin-top:26px;font-size:18px}.contact-cards{flex-direction:column;gap:12px;margin-top:44px;display:flex}.cc{border:1px solid var(--line);background:var(--bg-1);transition:border-color .22s var(--ease), background .22s var(--ease), transform .22s var(--ease);border-radius:14px;align-items:center;gap:16px;padding:16px 18px;display:flex}.cc:hover{border-color:var(--accent-line);background:var(--bg-2);transform:translateY(-2px)}.cc-ico{background:var(--accent-dim);width:44px;height:44px;color:var(--accent);border:1px solid var(--accent-line);border-radius:11px;flex:none;place-items:center;display:grid}.cc-ico svg{width:20px;height:20px}.cc-txt{flex-direction:column;gap:3px;min-width:0;display:flex}.cc-lbl{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute);font-size:11px}.cc-val{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-style:normal;overflow:hidden}.contact-form{border:1px solid var(--line-2);background:var(--bg-1);border-radius:20px;flex-direction:column;gap:22px;padding:clamp(26px,3vw,40px);display:flex;box-shadow:0 30px 80px -40px #000000b3}.field{flex-direction:column;gap:10px;display:flex}.field label{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-dim);font-size:13px}.contact-form input,.contact-form textarea{width:100%;font-family:var(--font-sans);color:var(--text);background:var(--bg);border:1px solid var(--line-2);resize:vertical;border-radius:12px;padding:15px 16px;font-size:16px;transition:border-color .2s,box-shadow .2s,background .2s}.contact-form textarea{min-height:140px;line-height:1.55}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-mute)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);background:var(--bg-1);box-shadow:0 0 0 4px var(--accent-dim);outline:none}:is(.contact-form input:user-invalid,.contact-form textarea:user-invalid){border-color:#ff5a5a99}.btn.primary.form-submit{color:#fff;background:var(--grad);transition:background-position .5s var(--ease), transform .2s var(--ease), box-shadow .25s var(--ease);background-position:0;background-size:200% 100%;border:none;justify-content:center;gap:11px;margin-top:2px;padding:17px 24px;font-size:15px;font-weight:600;box-shadow:0 18px 44px -16px #7c6cffb3}.btn.primary.form-submit:hover{background-position:100%;transform:translateY(-2px);box-shadow:0 22px 50px -16px #7c6cffd9}.form-submit .send-ico{flex:none;width:18px;height:18px}.btn.primary.form-submit:disabled{opacity:.6;cursor:progress}.form-note{text-align:center;font-family:var(--font-mono);color:var(--text-mute);overflow-wrap:anywhere;font-size:13px}.form-note a{color:var(--accent)}.form-note a:hover{text-decoration:underline}.form-note.is-ok{color:#3ddc7e}.form-note.is-err{color:#ff6b6b}.contact .meta-row{font-family:var(--font-mono);color:var(--text-mute);flex-wrap:wrap;gap:28px;margin-top:40px;font-size:13px;display:flex}.contact .meta-row .led{background:#3ddc7e;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block;box-shadow:0 0 8px #3ddc7e}@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px}}footer{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--text-mute);z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:120px;padding:34px clamp(20px,5vw,56px);font-size:12.5px;display:flex;position:relative}.footer-brand{align-items:center;gap:10px;display:inline-flex}.footer-brand img{object-fit:cover;width:24px;height:24px;box-shadow:0 0 14px -10px rgba(var(--accent-rgb),.9);border:1px solid #ece8e024;border-radius:7px;flex:none}footer a:hover{color:var(--accent)}.theme-fab{z-index:300;position:fixed;bottom:22px;right:22px}.theme-fab-btn{cursor:pointer;width:50px;height:50px;color:var(--accent);background:var(--bg-1);border:1px solid var(--accent-line);box-shadow:0 10px 30px -8px #0009, 0 0 0 4px var(--accent-dim);transition:transform .25s var(--ease), box-shadow .25s var(--ease);border-radius:50%;place-items:center;display:grid}.theme-fab-btn:hover{transform:translateY(-2px)rotate(-8deg)}.theme-fab-btn svg{width:22px;height:22px}.theme-pop{background:var(--bg-1);border:1px solid var(--line-2);opacity:0;transform-origin:100% 100%;pointer-events:none;width:228px;transition:opacity .2s var(--ease), transform .2s var(--ease);border-radius:16px;padding:16px;position:absolute;bottom:64px;right:0;transform:translateY(8px)scale(.96);box-shadow:0 24px 60px -20px #000000bf}.theme-fab.open .theme-pop{opacity:1;pointer-events:auto;transform:none}.theme-pop-head{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute);margin-bottom:14px;font-size:11px}.swatches{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.swatch{aspect-ratio:1;cursor:pointer;transition:transform .18s var(--ease), border-color .18s var(--ease);background:var(--sw);border:2px solid #0000;border-radius:10px;position:relative;box-shadow:inset 0 0 0 1px #ffffff14}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:var(--text)}.swatch.active:after{content:"";background:#0d0c0b;border-radius:50%;width:7px;height:7px;margin:auto;position:absolute;inset:0;box-shadow:0 0 0 2px #fff9}@media (max-width:680px){.theme-fab{bottom:14px;right:14px}}@media (max-width:980px){.hero-grid{grid-template-columns:1fr;gap:44px}.hero .terminal{order:2}.showreel{padding:96px 0}.showreel-stage{width:min(940px,100% - 40px)}.about-grid{grid-template-columns:1fr;gap:40px}.about .photo{max-width:380px}.cmd-center{max-width:520px;margin:0 auto;padding:30px 18px 50px}.cmd-center .commits{width:160px;top:-10px;left:-10px}.cmd-center .deploy{width:188px;top:36px;right:-14px}.cmd-center .ainet{width:170px;bottom:-14px;left:-14px}.cmd-center .api{width:188px;bottom:14px;right:-14px}.skills-grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(3,1fr)}.stat:nth-child(4){border-left:none}.stat{border-top:1px solid var(--line)}.stats{border-top:none}}@media (max-width:640px){.cmd-center{max-width:none;padding:24px 8px 40px}.cmd-center .terminal{border-radius:12px}.cmd-center .t-bar{padding:9px 12px}.cmd-center .t-title{font-size:11px}.cmd-center .t-meta{font-size:10px}.cmd-center .t-body{padding:14px 14px 18px;font-size:11.5px;line-height:1.8}.cmd-center .hl-name{font-size:12.5px}.cmd-center .float-card{padding:9px 11px}.cmd-center .commits{width:43%;top:-6px;left:-4px}.cmd-center .deploy{width:50%;top:30px;right:-6px}.cmd-center .ainet{width:45%;bottom:-8px;left:-6px}.cmd-center .api{width:50%;bottom:10px;right:-6px}.cmd-center .fc-head{font-size:9.5px}.cmd-center .fc-foot{font-size:10px}.cmd-center .fc-num{font-size:12px}.cmd-center .dp-title{font-size:11px;width:auto!important}.cmd-center .dp-sub{font-size:9.5px}.cmd-center .api .api-row{gap:6px;padding:4px 0;font-size:10px}.cmd-center .api-method{padding:2px 5px;font-size:9px}.cmd-center .api-status{font-size:10px}.cmd-center .commit-graph{gap:2px;height:24px}}@media (max-width:420px){.cmd-center{padding:22px 4px 36px}.cmd-center .deploy,.cmd-center .ainet{display:none}.cmd-center .commits{width:46%;top:-4px;left:-2px}.cmd-center .api{width:52%;bottom:-4px;right:-2px}.cmd-center .t-body{padding:12px 12px 16px;font-size:11px}}@media (max-width:680px){body{font-size:16px}.showreel{padding:84px 0}.showreel-head{margin-bottom:28px;padding:0 clamp(20px,5vw,56px)}.showreel-head h2{white-space:normal;font-size:clamp(31px,10vw,44px)}.showreel-sub{font-size:16px}.showreel-stage{width:calc(100% - 28px)}.showreel-frame{border-radius:12px}.showreel-meta{justify-content:flex-start;gap:8px 12px;width:calc(100% - 8px);margin:14px auto 0;font-size:11px}.sr-bar{display:none}.nav .brand{gap:10px}.nav .brand-logo{border-radius:10px;width:32px;height:32px}.nav-links{background:var(--bg-1);border:1px solid var(--line-2);opacity:0;visibility:hidden;transform-origin:100% 0;pointer-events:none;transition:opacity .28s var(--ease), transform .3s var(--ease), visibility .3s var(--ease);border-radius:14px;flex-direction:column;align-items:stretch;gap:2px;padding:22px 16px 20px;display:flex;position:absolute;top:calc(100% + 8px);left:16px;right:16px;transform:translateY(-10px)scale(.98);box-shadow:0 24px 50px -24px #000c}.nav-links.open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav-links a{text-align:center;opacity:0;transition:opacity .25s var(--ease), transform .25s var(--ease), color .2s, border-color .2s;padding:13px 14px;transform:translateY(6px)}.nav-links.open a{opacity:1;transform:none}.nav-links.open a:first-child{transition-delay:40ms}.nav-links.open a:nth-child(2){transition-delay:80ms}.nav-links.open a:nth-child(3){transition-delay:.12s}.nav-links.open a:nth-child(4){transition-delay:.16s}.nav-cta-label{text-align:center;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute);border-top:1px solid var(--line);opacity:0;transition:opacity .25s var(--ease), transform .25s var(--ease);margin:22px 4px 14px;padding-top:22px;font-size:11px;display:block;transform:translateY(6px)}.nav-links.open .nav-cta-label{opacity:1;transition-delay:.2s;transform:none}.nav-links .nav-cta{text-align:center;align-self:center;margin-top:0;padding:13px 26px!important}.nav-links.open .nav-cta{transition-delay:.24s}.nav-toggle{width:44px;height:40px;color:var(--text);background:var(--bg-2);border:1px solid var(--line-2);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;transition:border-color .2s,background .2s;display:inline-flex}.nav-toggle:hover{border-color:var(--accent-line)}.nav-toggle span{width:20px;height:2px;transition:transform .3s var(--ease), opacity .2s var(--ease);background:currentColor;border-radius:2px;display:block}.nav:has(.nav-links.open) .nav-toggle span:first-child{transform:translateY(7px)rotate(45deg)}.nav:has(.nav-links.open) .nav-toggle span:nth-child(2){opacity:0}.nav:has(.nav-links.open) .nav-toggle span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.skills-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(odd){border-left:none}.post{grid-template-columns:1fr;gap:8px;padding:22px 6px}.post .date{order:-1}.work-sticky{height:auto;padding:88px 0 54px;display:block;position:relative;overflow:visible}.work-track{scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;will-change:auto;flex-direction:row;align-items:stretch;gap:16px;margin:0;padding:0 20px 12px;scroll-padding-inline:20px;overflow:auto hidden;transform:none!important}.work-track::-webkit-scrollbar{display:none}.pcard{flex:none;width:auto}.work-track .pcard{scroll-snap-align:start;flex:0 0 min(84vw,340px);justify-content:flex-start;width:min(84vw,340px);min-height:0;padding:24px 22px 22px}.work-track .pcard-viz{opacity:.28;width:clamp(230px,68vw,286px);top:-18px;right:-104px}.work-track .pcard-viz-neural{opacity:.28;width:clamp(240px,72vw,300px);top:-26px;right:-94px}.work-track .pcard-title{font-size:clamp(25px,7vw,30px)}.work-track .pcard-tagline{margin-top:12px;font-size:14px;line-height:1.55}.work-track .pcard-meta{gap:10px;margin-top:28px;padding-top:18px}.work-track .pcard-domain{margin-top:16px}.work-head{padding:0 clamp(20px,5vw,56px) 28px;position:relative}.work-head .row{align-items:flex-end;gap:18px}.work-end{border:1px solid var(--line);scroll-snap-align:start;background:#0e0d0cbd;border-radius:22px;flex:0 0 min(76vw,300px);width:min(76vw,300px);min-height:0;padding:24px 20px}.work-end h3{max-width:none;font-size:24px}.work-mobile-controls{justify-content:center;gap:10px;padding:8px 20px 0;display:flex}.work-mobile-controls button{border:1px solid var(--line);width:44px;min-height:44px;color:var(--text);font-family:var(--font-mono);cursor:pointer;background:#0e0d0cbd;border-radius:999px;flex:0 0 44px;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:inline-flex}.work-control-icon{transform:translateY(-1px)}.work-mobile-controls button:active{transform:translateY(1px)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition-duration:1ms!important;animation-duration:1ms!important}[data-reveal]{opacity:1;transform:none}}@media (min-width:681px) and (max-height:820px){.work-head{padding-top:84px}.work-track{margin-top:clamp(26px,4vh,42px)}.work-track .pcard{min-height:clamp(450px,62vh,500px);padding:24px 24px 20px}.work-track .pcard-viz{width:clamp(238px,50%,300px);top:-24px;right:-92px}.work-track .pcard-viz-neural{width:clamp(258px,54%,320px);top:-30px;right:-84px}.work-track .pcard-title{font-size:clamp(23px,1.9vw,27px)}.work-track .pcard-tagline{margin-top:11px;font-size:14px}.work-track .pcard-domain{margin-top:18px;padding:10px 13px;font-size:12.5px}.work-track .pcard-rule{margin-top:20px}.work-track .pcard-body{padding-top:0}.work-track .pcard-meta{gap:8px;margin-top:0;padding-top:16px}}@media (min-width:681px) and (max-height:680px){.work-head{padding-top:74px}.work-head .section-title{font-size:30px}.work-track{margin-top:24px}.work-track .pcard{flex-basis:clamp(320px,38vw,460px);min-height:clamp(400px,66vh,450px);padding:20px 20px 18px}.work-track .pcard-viz{width:clamp(220px,48%,270px);top:-18px;right:-78px}.work-track .pcard-viz-neural{width:clamp(236px,52%,288px);top:-24px;right:-72px}.work-track .pcard-title{font-size:22px}.work-track .pcard-tagline{display:none}.work-track .pcard-body{padding-top:0}.work-track .pcard-rule{margin-top:16px}.work-track .pcard-domain{margin-top:14px}.work-track .pcard-meta{gap:7px;margin-top:0;padding-top:14px;font-size:11.5px}.work-track .pcard-role-line span{padding:6px 9px}.work-track .pcard-stack-line span{padding:5px 8px}}
