@font-face{font-family:Inter;src:url(/portfolio/inter-latin.woff2) format("woff2");font-style:normal;font-weight:300 800;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/portfolio/jetbrains-mono-latin.woff2) format("woff2");font-style:normal;font-weight:400 600;font-display:swap}:root{--bg:#090A12;--surface:#11131D;--surface-2:#181B28;--line:rgba(255,255,255,0.065);--line-strong:rgba(255,255,255,0.10);--accent:#7C5CFF;--accent-soft:rgba(124,92,255,0.12);--accent-glow:rgba(124,92,255,0.38);--accent-2:#6EDBFF;--accent-2-soft:rgba(110,219,255,0.10);--glass:rgba(255,255,255,0.035);--glass-strong:rgba(255,255,255,0.06);--glass-line:rgba(255,255,255,0.08);--text:#ECEDF3;--text-2:#B6B7C6;--text-3:#8A8B9A;--mono:"JetBrains Mono",ui-monospace,monospace;--sans:"Inter",-apple-system,system-ui,sans-serif;--maxw:1280px;--maxw-wide:1460px;--readw:760px;--gut:clamp(24px,5vw,76px);--s1:4px;--s2:8px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;--s7:64px;--s8:96px;--s9:128px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;letter-spacing:0}body:before{inset:0;background:radial-gradient(55% 72% at 9% 48%,rgba(119,59,255,.28),transparent 68%),radial-gradient(52% 78% at 100% 55%,rgba(35,143,168,.16),transparent 64%),linear-gradient(115deg,rgba(14,10,28,.9),rgba(7,8,15,.94) 50%,rgba(7,17,22,.96))}body:after,body:before{content:"";position:fixed;pointer-events:none;z-index:0}body:after{inset:-20%;background:radial-gradient(36% 46% at 16% 28%,rgba(124,92,255,.16),transparent 66%),radial-gradient(34% 42% at 86% 30%,rgba(110,219,255,.08),transparent 62%),radial-gradient(40% 44% at 70% 84%,rgba(124,92,255,.06),transparent 64%);filter:blur(42px) saturate(115%);opacity:.76;animation:auroraDrift 30s ease-in-out infinite alternate}@keyframes auroraDrift{0%{transform:translate3d(-2%,-1%,0) scale(1)}50%{transform:translate3d(3%,2%,0) scale(1.08)}to{transform:translate3d(-1%,3%,0) scale(1.04)}}@media (prefers-reduced-motion:reduce){body:after{animation:none}}::selection{background:var(--accent-soft);color:#fff}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{max-width:var(--maxw)}.wrap,.wrap-wide{margin:0 auto;padding-inline:var(--gut)}.wrap-wide{max-width:var(--maxw-wide)}.readable{max-width:var(--readw)}.grid12{display:grid;grid-template-columns:repeat(12,1fr);grid-column-gap:clamp(16px,2vw,32px);column-gap:clamp(16px,2vw,32px)}.eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);display:inline-flex;align-items:center;gap:12px}.eyebrow:before{content:"";width:24px;height:1px;background:var(--accent);opacity:.7}.reveal{opacity:0;transform:translateY(26px);will-change:opacity,transform}.reveal.in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.reveal-blur{opacity:0;filter:blur(16px);transform:translateY(22px) scale(.985);will-change:opacity,filter,transform}.reveal-blur.in{opacity:1;filter:blur(0);transform:none;transition:opacity 1.1s cubic-bezier(.16,1,.3,1),filter 1.1s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion:reduce){.reveal,.reveal-blur{opacity:1;transform:none;filter:none;transition:none}html{scroll-behavior:auto}}.btn{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:500;min-height:52px;padding:0 20px;border-radius:8px;border:1px solid transparent;box-sizing:border-box;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);letter-spacing:0}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 0 0 var(--accent-glow)}.btn-primary:hover{box-shadow:0 8px 30px -6px var(--accent-glow);transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line-strong)}.btn-ghost:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.02)}.hero-aside .btn-ghost{min-width:185px;justify-content:center}.hero-title{font-size:64px}.hero-copy{font-size:18px}.btn-shimmer{position:relative;isolation:isolate;overflow:hidden;min-width:207px;justify-content:center;border-radius:8px;color:#fff;border:1px solid rgba(132,96,255,.78);background:linear-gradient(180deg,rgba(69,39,139,.78),rgba(41,24,86,.78));box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 14px 36px -22px var(--accent-glow)}.btn-shimmer:before{content:"";position:absolute;inset:-160%;z-index:-2;background:conic-gradient(from 0deg,transparent 0 78%,rgba(178,150,255,.72) 90%,transparent 100%);animation:shimmerSpin 3.2s linear infinite}.btn-shimmer:after{content:"";position:absolute;inset:1px;z-index:-1;border-radius:7px;background:linear-gradient(180deg,rgba(49,31,101,.92),rgba(28,19,61,.92))}.btn-shimmer:hover{transform:translateY(-2px);border-color:rgba(124,92,255,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 14px 40px -10px var(--accent-glow)}.btn-shimmer:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}@keyframes shimmerSpin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.btn-shimmer:before{animation:none;background:conic-gradient(from 215deg,transparent 0 72%,rgba(178,150,255,.55) 86%,transparent 100%)}}.glass{background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.018));border:1px solid var(--glass-line);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 60px -34px rgba(0,0,0,.7)}.spot{position:relative}.spot:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(360px circle at var(--sx,50%) var(--sy,50%),rgba(124,92,255,.16),transparent 58%);opacity:0;transition:opacity .45s ease;z-index:0}.spot:hover:before{opacity:1}.tiltcard{transition:transform .55s cubic-bezier(.22,1,.36,1),border-color .45s ease,box-shadow .55s ease;transform-style:preserve-3d;will-change:transform}.tiltcard:hover{border-color:rgba(124,92,255,.34)!important;box-shadow:0 30px 70px -36px rgba(124,92,255,.28)!important}@media (prefers-reduced-motion:reduce){.tiltcard{transform:none!important}}@property --bg-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.gradient-border{position:relative;isolation:isolate}.gradient-border:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;background:conic-gradient(from var(--bg-angle),rgba(124,92,255,0) 0deg,var(--accent) 90deg,var(--accent-2) 180deg,rgba(124,92,255,0) 270deg,rgba(124,92,255,0) 1turn);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:bgAngle 7s linear infinite}@keyframes bgAngle{to{--bg-angle:360deg}}@media (prefers-reduced-motion:reduce){.gradient-border:before{animation:none}}.bento-card{animation:floatY var(--fdur,7s) ease-in-out infinite;animation-delay:var(--fdelay,0s)}@keyframes floatY{0%,to{translate:0 0}50%{translate:0 -9px}}@media (prefers-reduced-motion:reduce){.bento-card{animation:none}}.hero-flow{animation:mapDash 3.6s linear infinite}@media (prefers-reduced-motion:reduce){.hero-flow{animation:none}}.line-reveal{display:block;overflow:hidden}.line-reveal>span{display:block;transform:translateY(110%);transition:transform 1s cubic-bezier(.16,1,.3,1)}.line-reveal.in>span{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.line-reveal>span{transform:none}}.callout{animation:floatY var(--fdur,6s) ease-in-out infinite;animation-delay:var(--fdelay,0s)}@media (prefers-reduced-motion:reduce){.callout{animation:none}}.scaleIn{transform:scale(.94);opacity:0;transition:transform 1s cubic-bezier(.16,1,.3,1),opacity 1s ease}.scaleIn.in{transform:scale(1);opacity:1}@media (prefers-reduced-motion:reduce){.scaleIn{transform:none;opacity:1;transition:none}}.slideL{transform:translateX(-28px)}.slideL,.slideR{opacity:0;transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}.slideR{transform:translateX(28px)}.slideL.in,.slideR.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.slideL,.slideR{opacity:1;transform:none;transition:none}}#root{z-index:1;isolation:isolate}#root,.nav-link{position:relative}.nav-link.active,.nav-link:hover{color:var(--text)}.nav-link.active:after{content:"";position:absolute;left:50%;bottom:6px;width:6px;height:6px;transform:translateX(-50%);background:var(--accent);border-radius:99px;box-shadow:0 0 10px var(--accent-glow)}.footer-link:hover{color:var(--text)}.bg-orb{position:fixed;border-radius:50%;pointer-events:none;z-index:0;filter:blur(60px);will-change:transform}@media (prefers-reduced-motion:reduce){.bg-orb{display:none}}@media (max-width:900px){.hero-top{grid-template-columns:1fr!important;align-items:start!important;gap:28px!important;padding-inline:0!important}.hero-title{font-size:56px}}@media (max-width:820px){.os-grid{grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important;grid-template-areas:"store store" "clip mint" "api sys" "nova nova"!important}.os-grid .os-win{min-height:150px}.os-grid .os-win[data-depth="0.7"]{min-height:280px}.workspace-shot img{transform:scale(1.18)!important}}@media (max-width:520px){.os-grid{grid-template-columns:1fr!important;grid-template-areas:"store" "clip" "mint" "api" "sys" "nova"!important}.os-grid .os-win{min-height:200px}.os-grid .os-win[data-depth="0.9"],.os-grid .os-win[data-depth="1.1"],.os-grid .os-win[data-depth="1.2"]{min-height:0}}.scroll-line{width:1px;height:40px;background:linear-gradient(var(--text-3),transparent);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:linear-gradient(var(--accent),transparent);animation:scrollDown 2.2s cubic-bezier(.6,0,.4,1) infinite}@keyframes scrollDown{0%{transform:translateY(-100%)}60%,to{transform:translateY(260%)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.draw-path{stroke-dasharray:var(--len,1000);stroke-dashoffset:var(--len,1000);transition:stroke-dashoffset 1.1s cubic-bezier(.16,1,.3,1)}.draw-on .draw-path{stroke-dashoffset:0}.lift{transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .35s,box-shadow .35s}.lift:hover{transform:translateY(-4px);border-color:rgba(124,92,255,.4)!important;box-shadow:0 24px 60px -28px var(--accent-glow)}.proj-visual-sticky .proj-mock{transition:transform .72s cubic-bezier(.22,1,.36,1),border-color .45s ease,box-shadow .6s ease;transform-origin:center center;will-change:transform}.proj-visual:hover .proj-mock{transform:translateY(-2px) scale(1.006);border-color:rgba(124,92,255,.3)!important;box-shadow:0 38px 105px -40px rgba(124,92,255,.26),0 0 0 1px rgba(124,92,255,.05)!important}.cap-row:hover{background:var(--surface-2)!important}.map-node{transition:transform .35s cubic-bezier(.16,1,.3,1)}.map-detail{transition:opacity .3s ease,transform .3s ease}.map-line{transition:opacity .4s ease}.map-flow{animation:mapDash 3.4s linear infinite}@keyframes mapDash{to{stroke-dashoffset:-34}}@media (prefers-reduced-motion:reduce){.map-flow{animation:none}}.pipe-node{cursor:pointer;outline:none;transition:transform .4s cubic-bezier(.16,1,.3,1)}.pipe-node:focus-visible .pipe-dot{box-shadow:0 0 0 3px rgba(110,219,255,.5),0 16px 44px -12px var(--accent-glow)}.pipe-dot{transition:background .4s,border-color .4s,color .4s,box-shadow .4s,transform .4s cubic-bezier(.16,1,.3,1)}.pipe-detail-anim{animation:fadeUp .5s cubic-bezier(.16,1,.3,1)}[role=tablist].reveal:focus-visible{box-shadow:0 0 0 2px rgba(110,219,255,.4);border-radius:14px}.btn-primary{position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;inset:0;background:radial-gradient(120px 80px at var(--mx,50%) var(--my,50%),rgba(255,255,255,.22),transparent 70%);opacity:0;transition:opacity .3s}.btn-primary:hover:after{opacity:1}.sys-svg .draw-path{stroke-dasharray:1600;stroke-dashoffset:1600;transition:stroke-dashoffset 1.4s cubic-bezier(.16,1,.3,1)}.sys-flow.in .sys-svg .draw-path{stroke-dashoffset:0}@media (prefers-reduced-motion:reduce){.sys-svg .draw-path{stroke-dashoffset:0;transition:none}}.sys-pulse{position:absolute;top:-3px;left:0;width:8px;height:8px;margin-left:-4px;border-radius:99px;background:var(--accent);box-shadow:0 0 10px var(--accent-glow);animation:sysFlow 5.1s linear infinite}@keyframes sysFlow{0%{left:0;opacity:0}9%{opacity:1}91%{opacity:1}to{left:100%;opacity:0}}@media (prefers-reduced-motion:reduce){.sys-pulse{animation:none;opacity:0}}@media (max-width:1000px){.hero-grid{grid-template-columns:1fr!important;gap:48px!important}.hero-viz{order:-1;max-width:520px;margin-inline:auto;width:100%}.proc-grid{grid-template-columns:1fr 1fr!important}}@media (max-width:560px){.psc-grid{grid-template-columns:1fr 1fr!important;grid-template-areas:"fe fe" "ai ai" "cm api" "ps ps" "perf perf"!important}.proc-grid{grid-template-columns:1fr!important}}@media (max-width:860px){.proj-grid{grid-template-columns:1fr!important}.proj-grid .proj-content{order:2}.proj-grid .proj-visual{order:1}.exp-grid{grid-template-columns:1fr!important}.cred-stats{grid-template-columns:1fr 1fr!important;gap:32px!important}.cred-stats>div{border-left:none!important;padding-left:0!important}}@media (max-width:980px){.pipe-rail{overflow-x:auto;overflow-y:hidden;padding-bottom:10px}.sys-grid{min-width:680px}}@media (prefers-reduced-motion:reduce){.scroll-line:after{animation:none}}@media (max-width:640px){body{font-size:16px}.nav-links .nav-link{display:none}.nav-links .nav-link:last-child{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid rgba(124,92,255,.42);background:rgba(124,92,255,.1);color:var(--text)}.nav-links .nav-link:last-child:after{display:none}.site-brand{gap:12px!important}.brand-mark{width:42px!important;height:42px!important;font-size:18px!important}.nav-subtitle{display:none}.cred-stats{grid-template-columns:1fr!important}.hero-title{font-size:46px}.hero-copy{font-size:16px}.hero-aside .btn{width:100%}}@media (min-width:901px) and (max-width:1400px){.hero-top{grid-template-columns:minmax(0,1.35fr) minmax(440px,.9fr)!important;gap:clamp(32px,4vw,58px)!important}.hero-aside>.reveal{flex-wrap:nowrap!important}.hero-aside .btn{padding-inline:16px}.hero-aside .btn-ghost{min-width:180px}}@media (max-width:640px){.pipe-rail{overflow:visible!important;overflow-x:visible!important;padding-bottom:0!important;margin-bottom:32px!important;scrollbar-width:none}.pipe-rail::-webkit-scrollbar{display:none}.pipe-rail>div:first-child{display:none!important}.sys-grid{min-width:0!important;width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.pipe-node{display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;align-items:center!important;grid-gap:8px!important;gap:8px!important;min-height:60px;padding:8px!important;text-align:left!important;border:1px solid var(--line-strong)!important;border-radius:12px;background:rgba(17,19,29,.78)!important;transform:none!important}.pipe-node[aria-selected=true]{border-color:rgba(124,92,255,.62)!important;background:rgba(124,92,255,.12)!important;box-shadow:inset 0 0 0 1px rgba(124,92,255,.08)}.pipe-dot{width:40px!important;height:40px!important;margin:0!important;border-radius:10px!important;font-size:18px!important;transform:none!important}.pipe-node>div:last-child{min-width:0;font-size:12.5px!important;line-height:1.3!important}}