@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07090c;--bg-elevated:#0c0f14;--bg-card:#0e1218;--border:#ffffff14;--border-strong:#ffffff24;--text-primary:#f3f5f7;--text-secondary:#a7b0bb;--text-tertiary:#6b7480;--accent:#2dd4a7;--accent-soft:#2dd4a71f;--accent-strong:#4eeccb;--accent-line:#2dd4a759;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--shadow-glow:0 0 0 1px var(--border), 0 20px 60px -20px #0009;--ease-out:cubic-bezier(.16, 1, .3, 1);--nav-height:76px;--container-w:min(1240px, 92vw)}*{box-sizing:border-box}html{scroll-behavior:auto;background:var(--bg)}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}#root{position:relative;overflow-x:hidden}h1,h2,h3,h4,p,figure{margin:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}ul{margin:0;padding:0;list-style:none}body.cursor-none,body.cursor-none a,body.cursor-none button{cursor:none}::selection{background:var(--accent);color:#04120e}.container{width:var(--container-w);margin:0 auto}.section{padding:clamp(80px,12vw,140px) 0;position:relative}.section-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin-bottom:18px;font-size:12.5px;display:inline-flex}.section-label:before{content:"";background:var(--accent);width:20px;height:1px}.section-heading{letter-spacing:-.02em;color:var(--text-primary);font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.15}.section-heading .accent{color:var(--accent)}.section-sub{max-width:620px;color:var(--text-secondary);margin-top:18px;font-size:1.05rem;line-height:1.7}.mono{font-family:var(--font-mono)}.btn{transition:transform .35s var(--ease-out), background .3s ease, border-color .3s ease, color .3s ease;will-change:transform;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:14px 26px;font-size:.95rem;font-weight:600;display:inline-flex;position:relative}.btn-primary{background:var(--accent);color:#04120e}.btn-primary:hover{background:var(--accent-strong);transform:translateY(-2px)}.btn-secondary{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.btn-secondary:hover{border-color:var(--accent-line);background:var(--accent-soft);transform:translateY(-2px)}.grid-bg{pointer-events:none;background-image:linear-gradient(90deg,#ffffff09 1px,#0000 1px),linear-gradient(#ffffff09 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,#0000 100%);mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,#0000 100%)}.noise{opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:absolute;inset:0}.glass{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffffff0b,#ffffff04)}.tag{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-secondary);border:1px solid var(--border);background:#ffffff05;border-radius:999px;padding:5px 11px;font-size:.75rem}.skip-link{z-index:1000;background:var(--accent);color:#04120e;border-radius:var(--radius-sm);padding:12px 20px;font-size:.9rem;font-weight:600;transition:top .25s;position:fixed;top:-60px;left:16px}.skip-link:focus{top:16px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=760px){:root{--nav-height:66px}.section{padding:64px 0}}.loader{z-index:999;background:var(--bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader-inner{flex-direction:column;align-items:center;gap:14px;display:flex}.loader-name{letter-spacing:.08em;color:var(--text-primary);font-size:clamp(1.4rem,4vw,2rem);font-weight:600}.loader-role{letter-spacing:.18em;color:var(--accent);font-size:.75rem}.loader-bar{background:var(--border);border-radius:2px;width:180px;height:2px;margin-top:10px;overflow:hidden}.loader-bar-fill{transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--accent-strong));width:100%;height:100%}.cursor-dot,.cursor-ring{pointer-events:none;z-index:998;will-change:transform;position:fixed;top:0;left:0}.cursor-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px}.cursor-ring{border:1px solid var(--border-strong);width:40px;height:40px;transition:width .3s var(--ease-out), height .3s var(--ease-out), margin .3s var(--ease-out), border-color .3s ease, background .3s ease;border-radius:50%;justify-content:center;align-items:center;margin:-20px 0 0 -20px;display:flex}.cursor-ring-active{border-color:var(--accent-line);background:#2dd4a70f;width:76px;height:76px;margin:-38px 0 0 -38px}.cursor-label{letter-spacing:.1em;color:var(--accent);opacity:0;font-size:10px;transition:opacity .2s}.cursor-ring-active .cursor-label{opacity:1}@media (pointer:coarse){.cursor-dot,.cursor-ring{display:none}}.navbar{z-index:100;height:var(--nav-height);transition:height .4s var(--ease-out), background .4s ease, border-color .4s ease;border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.navbar-scrolled{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#07090cc7;height:64px}.navbar-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.navbar-brand{letter-spacing:.04em;color:var(--text-primary);font-size:1.1rem;font-weight:700}.navbar-brand-dot{color:var(--accent)}.navbar-links{align-items:center;gap:30px;display:flex}.navbar-link{color:var(--text-secondary);padding:6px 0;font-size:.9rem;transition:color .25s;position:relative}.navbar-link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .3s var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.navbar-link:hover{color:var(--text-primary)}.navbar-link:hover:after{transform:scaleX(1)}.navbar-link-active{color:var(--accent)}.navbar-link-active:after{transform:scaleX(1)}.navbar-actions{align-items:center;gap:16px;display:flex}.navbar-icon{width:36px;height:36px;color:var(--text-secondary);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;transition:color .25s,border-color .25s,transform .25s;display:inline-flex}.navbar-icon:hover{color:var(--accent);border-color:var(--accent-line);transform:translateY(-2px)}.navbar-cv{padding:10px 20px;font-size:.85rem}.navbar-burger{color:var(--text-primary);background:0 0;border:none;padding:6px;font-size:1.4rem;display:none}.navbar-mobile{top:var(--nav-height);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#050709fc;flex-direction:column;justify-content:center;gap:4px;padding:24px 6vw 60px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.navbar-mobile-link{border-bottom:1px solid var(--border);color:var(--text-secondary);padding:14px 4px;font-size:1.15rem}.navbar-mobile-cv{width:100%;margin-top:18px}.navbar-mobile-social{color:var(--text-secondary);gap:16px;margin-top:18px;font-size:1.3rem;display:flex}@media (width<=900px){.navbar-links,.navbar-cv{display:none}.navbar-burger{display:inline-flex}}.footer{border-top:1px solid var(--border);padding:40px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.footer-name{color:var(--text-primary);font-size:1rem;font-weight:700}.footer-title{color:var(--text-tertiary);margin-top:4px;font-size:.78rem}.footer-social{color:var(--text-secondary);gap:16px;font-size:1.1rem;display:flex}.footer-social a{transition:color .3s,transform .3s}.footer-social a:hover{color:var(--accent);transform:translateY(-2px)}.footer-copy{color:var(--text-tertiary);font-size:.76rem}.footer-copy-sep{color:var(--border-strong)}@media (width<=640px){.footer-inner{text-align:center;flex-direction:column}}.hero{min-height:100vh;padding-top:var(--nav-height);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero-scene-wrap{z-index:0;opacity:.55;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#00000059 32%,#000 58% 100%);mask-image:linear-gradient(90deg,#0000 0%,#00000059 32%,#000 58% 100%)}.hero-canvas{width:100%!important;height:100%!important}.hero-scene-fallback{background:radial-gradient(circle at 70% 30%,#2dd4a714,#0000 60%);position:absolute;inset:0}.hero-inner{z-index:2;grid-template-columns:1.15fr .85fr;align-items:center;gap:48px;padding:40px 0;display:grid;position:relative}.hero-greeting{color:var(--accent);letter-spacing:.08em;margin-bottom:6px;font-size:.95rem}.hero-name{letter-spacing:-.02em;color:var(--text-primary);min-height:1.1em;font-size:clamp(2.6rem,6.4vw,4.6rem);font-weight:800;line-height:1.02}.typewriter-caret{background:var(--accent);vertical-align:-.1em;width:3px;height:.85em;margin-left:4px;animation:.9s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.hero-title{color:var(--text-secondary);margin-top:14px;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:600}.hero-statement{max-width:540px;color:var(--text-secondary);margin-top:18px;font-size:1.05rem;line-height:1.7}.hero-cta-row{flex-wrap:wrap;gap:16px;margin-top:34px;display:flex}.hero-stats{flex-wrap:wrap;gap:36px;margin-top:56px;display:flex}.hero-stat{flex-direction:column;gap:4px;display:flex}.hero-stat-value{color:var(--accent);font-size:1.5rem;font-weight:700}.hero-stat-label{color:var(--text-tertiary);font-size:.78rem}.hero-visual{justify-content:center;align-items:center;min-height:420px;display:flex;position:relative}.hero-portrait{aspect-ratio:4/5;border-radius:var(--radius-lg);width:min(340px,80%);box-shadow:var(--shadow-glow);position:relative;overflow:hidden}.hero-portrait-img{object-fit:cover;object-position:top center;filter:grayscale(.25)saturate(.85)contrast(1.08)brightness(.94);width:100%;height:100%}.hero-portrait-duotone{mix-blend-mode:multiply;pointer-events:none;background:linear-gradient(155deg,#04080aeb 0%,#0a161452 45%,#04080ae0 100%);position:absolute;inset:0}.hero-portrait-glow{pointer-events:none;background:linear-gradient(#080c101a 0%,#0000 30% 58%,#07090ce6 100%),radial-gradient(circle at 50% 40%,#2dd4a738,#0000 62%);position:absolute;inset:0}.hero-code-card{border-radius:var(--radius-md);width:230px;color:var(--text-secondary);box-shadow:var(--shadow-glow);padding:16px 18px;font-size:.72rem;line-height:1.6;position:absolute;top:-6%;right:-8%}.hero-code-card pre{white-space:pre-wrap;margin:0}.hero-code-dots{gap:5px;margin-bottom:10px;display:flex}.hero-code-dots span{background:var(--border-strong);border-radius:50%;width:7px;height:7px}.hero-status{color:var(--text-secondary);box-shadow:var(--shadow-glow);border-radius:999px;align-items:center;gap:10px;padding:12px 18px;font-size:.8rem;display:flex;position:absolute;bottom:-6%;left:-6%}.hero-status-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%}.hero-scroll-indicator{z-index:2;letter-spacing:.16em;color:var(--text-tertiary);flex-direction:column;align-items:center;gap:6px;font-size:.7rem;animation:2.4s ease-in-out infinite bob;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}@media (width<=1080px){.hero-inner{text-align:left;grid-template-columns:1fr;gap:64px}.hero-visual{order:-1;min-height:340px}.hero-code-card{right:2%}.hero-status{left:2%}}@media (width<=640px){.hero{padding-top:calc(var(--nav-height) + 10px)}.hero-cta-row{flex-direction:column}.hero-cta-row .btn{width:100%}.hero-code-card{display:none}.hero-status{width:fit-content;margin-top:20px;position:static}.hero-visual{min-height:auto}.hero-stats{gap:22px}}.tilt-card{transition:transform .4s var(--ease-out);transform-style:preserve-3d;will-change:transform}.about{position:relative}.about-grid{grid-template-columns:1.2fr .8fr;align-items:start;gap:60px;display:grid}.about-lead{color:var(--text-primary);margin-top:22px;font-size:1.15rem;line-height:1.7}.about-body{color:var(--text-secondary);max-width:560px;margin-top:16px;font-size:1rem;line-height:1.75}.about-pillars{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:480px;margin-top:34px;display:grid}.about-pillar{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);background:#ffffff04;align-items:center;gap:10px;padding:12px 14px;font-size:.88rem;display:flex}.about-pillar svg{color:var(--accent);flex-shrink:0}.about-card{border-radius:var(--radius-lg);max-width:380px;margin-left:auto;padding:28px}.about-card-header{letter-spacing:.08em;color:var(--text-tertiary);border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:16px;padding-bottom:16px;font-size:.75rem;display:flex}.about-card-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.about-card-list{flex-direction:column;gap:13px;font-size:.82rem;display:flex}.about-card-list li{color:var(--text-tertiary);justify-content:space-between;gap:16px;display:flex}.about-card-list li span:last-child{color:var(--text-primary);text-align:right}.about-card-list li span.accent{color:var(--accent)}.about-card-footer{border-top:1px solid var(--border);color:var(--accent);letter-spacing:.05em;margin-top:20px;padding-top:16px;font-size:.7rem}@media (width<=900px){.about-grid{grid-template-columns:1fr}.about-card{max-width:100%;margin-left:0}.about-pillars{max-width:100%}}.capabilities{background:linear-gradient(#0000,#ffffff03 50%,#0000)}.capabilities-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:40px;display:flex}.capabilities-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:52px;display:grid}.capability-card{border-radius:var(--radius-md);min-height:200px;transition:transform .4s var(--ease-out), border-color .4s ease;flex-direction:column;padding:28px 24px;display:flex;position:relative}.capability-card:hover{border-color:var(--accent-line);transform:translateY(-6px)}.capability-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:44px;height:44px;color:var(--accent);justify-content:center;align-items:center;margin-bottom:20px;font-size:1.2rem;display:flex}.capability-title{color:var(--text-primary);margin-bottom:10px;font-size:1.05rem;font-weight:600}.capability-desc{color:var(--text-secondary);flex:1;font-size:.87rem;line-height:1.6}.capability-arrow{color:var(--text-tertiary);margin-top:16px;transition:color .3s,transform .3s}.capability-card:hover .capability-arrow{color:var(--accent);transform:translate(2px,-2px)}@media (width<=1080px){.capabilities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.capabilities-grid{grid-template-columns:1fr}}.timeline{margin-top:60px;padding-left:36px;position:relative}.timeline-track{background:var(--border);width:1px;position:absolute;top:6px;bottom:6px;left:5px}.timeline-track-fill{background:linear-gradient(180deg, var(--accent), var(--accent-strong));transform-origin:top;position:absolute;inset:0}.timeline-item{margin-bottom:40px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot-wrap{position:absolute;top:30px;left:-36px}.timeline-dot{background:var(--bg);border:2px solid var(--border-strong);border-radius:50%;width:11px;height:11px;display:block}.timeline-dot-current{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.timeline-card{border-radius:var(--radius-md);padding:26px 28px}.timeline-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.timeline-role{color:var(--text-primary);font-size:1.1rem;font-weight:600}.timeline-company{color:var(--accent);margin-top:4px;font-size:.88rem}.timeline-period{color:var(--text-tertiary);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:.75rem}.timeline-points{flex-direction:column;gap:9px;display:flex}.timeline-points li{color:var(--text-secondary);padding-left:18px;font-size:.9rem;line-height:1.6;position:relative}.timeline-points li:before{content:"";background:var(--accent);width:6px;height:1px;position:absolute;top:.6em;left:0}.timeline-tech{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}@media (width<=640px){.timeline{padding-left:28px}.timeline-dot-wrap{left:-28px}.timeline-card{padding:20px}}.project-visual{border-radius:var(--radius-lg);border:1px solid var(--border);background:radial-gradient(circle at 30% 20%, #2dd4a717, transparent 60%), var(--bg-elevated);justify-content:center;align-items:center;width:100%;height:100%;min-height:280px;display:flex;position:relative;overflow:hidden}.project-visual-grid{background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0}.pv-svg{z-index:1;width:74%;height:74%;position:relative}.pv-edge{stroke:var(--accent);stroke-width:.6px;opacity:.35;stroke-dasharray:4 3;animation:3.5s linear infinite pv-flow}@keyframes pv-flow{to{stroke-dashoffset:-70px}}.pv-node{fill:#bff5e6;stroke:var(--accent);stroke-width:1px;animation:2.6s ease-in-out infinite pv-pulse}@keyframes pv-pulse{0%,to{r:4;opacity:1}50%{r:5.4;opacity:.7}}.pv-waveform{z-index:1;align-items:center;gap:4px;height:60%;display:flex;position:relative}.pv-bar{background:linear-gradient(180deg, var(--accent-strong), var(--accent));border-radius:4px;width:4px;height:20%;animation:1.6s ease-in-out infinite pv-wave}@keyframes pv-wave{0%,to{opacity:.55;height:20%}50%{opacity:1;height:90%}}.pv-pipeline{z-index:1;flex-wrap:wrap;justify-content:center;align-items:center;gap:0;padding:0 12px;display:flex;position:relative}.pv-stage-wrap{align-items:center;display:flex}.pv-stage{letter-spacing:.06em;border:1px solid var(--accent-line);color:var(--accent);background:var(--accent-soft);animation:pv-fade-in .6s var(--ease-out) both;border-radius:999px;padding:9px 12px;font-size:.6rem}.pv-stage-connector{background:var(--border-strong);width:16px;height:1px}@keyframes pv-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pv-shield-wrap{justify-content:center;align-items:center;width:55%;height:55%;display:flex;position:relative}.pv-shield{fill:#2dd4a714;stroke:var(--accent);stroke-width:1.5px}.pv-check{fill:none;stroke:var(--accent-strong);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.pv-shield-ring{border:1px dashed var(--border-strong);border-radius:50%;animation:22s linear infinite pv-spin;position:absolute;inset:-18%}@keyframes pv-spin{to{transform:rotate(360deg)}}.pv-campaign{z-index:1;align-items:flex-end;gap:8px;height:55%;display:flex;position:relative}.pv-campaign-bar{background:linear-gradient(180deg, var(--accent-strong), var(--accent-soft));border-radius:4px 4px 0 0;width:10px;animation:2.4s ease-in-out infinite alternate pv-rise}@keyframes pv-rise{0%{transform:scaleY(.85)}to{transform:scaleY(1)}}.projects-head{max-width:720px}.projects-list{flex-direction:column;gap:100px;margin-top:70px;display:flex}.project-row{grid-template-columns:.95fr 1.05fr;align-items:center;gap:56px;display:grid}.project-row-rev{direction:rtl}.project-row-rev>*{direction:ltr}.project-visual-col{min-height:300px}.project-category{letter-spacing:.08em;color:var(--text-tertiary);text-transform:uppercase;font-size:.72rem}.project-name{color:var(--text-primary);letter-spacing:-.01em;margin-top:10px;font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:700}.project-tagline{color:var(--accent);margin-top:6px;font-size:1rem}.project-badge{font-size:.72rem;font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;margin-top:16px;padding:6px 14px;display:inline-flex}.project-badge-confidential{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft)}.project-desc{color:var(--text-secondary);margin-top:18px;font-size:.96rem;line-height:1.7}.project-highlights{flex-direction:column;gap:10px;margin-top:18px;display:flex}.project-highlights li{color:var(--text-secondary);padding-left:18px;font-size:.88rem;line-height:1.65;position:relative}.project-highlights li:before{content:"";background:var(--accent);width:6px;height:1px;position:absolute;top:.65em;left:0}.project-tech{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.project-metrics{flex-wrap:wrap;gap:28px;margin-top:26px;display:flex}.project-metric{flex-direction:column;gap:4px;display:flex}.project-metric-value{color:var(--accent);font-size:1.3rem;font-weight:700}.project-metric-label{color:var(--text-tertiary);font-size:.72rem}.project-link{color:var(--text-primary);border-bottom:1px solid var(--border-strong);align-items:center;gap:8px;margin-top:24px;padding-bottom:4px;font-size:.88rem;transition:color .3s,border-color .3s;display:inline-flex}.project-link:hover{color:var(--accent);border-color:var(--accent)}@media (width<=980px){.project-row,.project-row-rev{direction:ltr;grid-template-columns:1fr;gap:32px}.project-visual-col{min-height:240px}}.techstack-head{max-width:640px}.techstack-body{grid-template-columns:1.1fr .9fr;align-items:center;gap:50px;margin-top:60px;display:grid}.techstack-hub{aspect-ratio:1;width:100%;max-width:480px;margin:0 auto;position:relative}.techstack-lines{width:100%;height:100%;position:absolute;inset:0}.techstack-line{stroke:var(--border-strong);stroke-width:.4px;transition:stroke .3s,stroke-width .3s}.techstack-line-active{stroke:var(--accent);stroke-width:.7px}.techstack-center{border:1px solid var(--accent-line);width:108px;height:108px;color:var(--accent);letter-spacing:.06em;text-align:center;background:radial-gradient(circle,#2dd4a724,#2dd4a705);border-radius:50%;justify-content:center;align-items:center;font-size:.68rem;line-height:1.4;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.techstack-node{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);white-space:nowrap;transition:color .25s ease, border-color .25s ease, transform .25s var(--ease-out), background .25s ease;border-radius:999px;padding:9px 15px;font-size:.76rem;position:absolute;transform:translate(-50%,-50%)}.techstack-node:hover,.techstack-node-active{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft);transform:translate(-50%,-50%)scale(1.08)}.techstack-panel{border-radius:var(--radius-lg);min-height:220px;padding:30px 32px}.techstack-panel-title{color:var(--text-primary);font-size:1.2rem;font-weight:700}.techstack-panel-desc{color:var(--text-secondary);margin-top:12px;font-size:.9rem;line-height:1.65}.techstack-panel-items{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.techstack-mobile-list{display:none}@media (width<=900px){.techstack-body{grid-template-columns:1fr}.techstack-hub-col,.techstack-panel{display:none}.techstack-mobile-list{flex-direction:column;gap:10px;display:flex}.techstack-accordion{border-radius:var(--radius-md);padding:16px 18px}.techstack-accordion summary{color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:600}.techstack-accordion .techstack-panel-desc{margin-top:10px}}.metrics-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-top:52px;display:grid}.metric-card{border-radius:var(--radius-md);text-align:center;transition:transform .35s var(--ease-out), border-color .35s ease;flex-direction:column;align-items:center;gap:10px;padding:28px 18px;display:flex}.metric-card:hover{border-color:var(--accent-line);transform:translateY(-4px)}.metric-value{color:var(--accent);font-size:clamp(1.5rem,2.4vw,2rem);font-weight:800}.metric-label{color:var(--text-tertiary);font-size:.76rem;line-height:1.4}@media (width<=1080px){.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.education{padding-top:0}.education-card{border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:24px;margin-top:40px;padding:30px 32px;display:flex}.education-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:54px;height:54px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;display:flex}.education-content{flex:1;min-width:240px}.education-degree{color:var(--text-primary);font-size:1.05rem;font-weight:600}.education-school{color:var(--accent);margin-top:6px;font-size:.9rem}.education-detail{color:var(--text-tertiary);margin-top:6px;font-size:.85rem}.education-period{color:var(--text-tertiary);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:.78rem}.contact{text-align:center;position:relative;overflow:hidden}.contact-glow{pointer-events:none;background:radial-gradient(#2dd4a724,#0000 65%);width:900px;height:500px;position:absolute;top:20%;left:50%;transform:translate(-50%)}.contact-inner{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.contact-heading{font-size:clamp(2.1rem,5vw,3.4rem)}.contact-sub{text-align:center;margin:22px auto 0}.contact-actions{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:42px;display:flex}.contact-details{color:var(--text-tertiary);flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:40px;font-size:.9rem;display:flex}.contact-detail-link{color:var(--text-primary);border-bottom:1px solid var(--border-strong);align-items:center;gap:6px;padding-bottom:2px;transition:color .3s,border-color .3s;display:inline-flex}.contact-detail-link:hover{color:var(--accent);border-color:var(--accent)}.contact-detail-sep{color:var(--border-strong)}@media (width<=640px){.contact-actions{flex-direction:column;width:100%}.contact-actions .btn{width:100%}}
