@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-opsz-normal-CfYZpDVp.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-opsz-normal-BFQXbQ-f.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-opsz-normal-BmPQvyvo.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-opsz-normal-BM0NlUE_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-opsz-normal-Ci9T9ieq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-opsz-normal-BwkfbSeq.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--fs-12:.75rem;--fs-15:.9375rem;--fs-17:1.0625rem;--fs-22:1.375rem;--fs-28:1.75rem;--fs-34:2.125rem;--fs-48:3rem;--fs-72:4.5rem;--lh-tight:1.1;--lh-body:1.5;--track-display:-.03em;--track-title:-.02em;--track-body:-.011em;--r-xs:8px;--r-sm:12px;--r-card:22px;--r-sheet:28px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-24:96px;--page-max:1120px;--gutter:clamp(16px, 4vw, 40px);--ease-spring:linear(0, .063 2.4%, .235 5.3%, .466 8.9%, .702 13%, .873 17.4%, .983 22.3%, 1.035 27.2%, 1.052 31.7%, 1.047 37.2%, 1.02 46.6%, 1.004 56.3%, .998 70%, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-1:.35s;--dur-2:.55s;--dur-fade:.15s;--bar-h:56px}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f5f7;--bg-elev:#fff;--surface:#fff;--surface-2:#f5f5f7;--surface-3:#e8e8ed;--text:#1d1d1f;--text-2:#6e6e73;--text-3:#86868b;--accent:#06c;--accent-on-fill:#0062c4;--accent-fill:#0071e3;--accent-hover:#0077ed;--accent-soft:#0071e31a;--on-accent:#fff;--separator:#0000001a;--fill:#7878801f;--fill-2:#78788033;--glass:#fafafcb8;--glass-border:#00000014;--ring:inset 0 0 0 1px #0000000a;--shadow-1:0 1px 2px #0000000f, 0 8px 24px #0000001f;--shadow-2:0 2px 6px #00000014, 0 24px 60px #0000002e;--focus:0 0 0 4px #0071e359;--scrim:#00000052}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--bg-elev:#0b0b0f;--surface:#1c1c1e;--surface-2:#2c2c2e;--surface-3:#3a3a3c;--text:#f5f5f7;--text-2:#a1a1a6;--text-3:#8e8e93;--accent:#2997ff;--accent-on-fill:#4aa8ff;--accent-fill:#0071e3;--accent-hover:#0a7cf0;--accent-soft:#0a84ff29;--on-accent:#fff;--separator:#ffffff1f;--fill:#7878803d;--fill-2:#7878805c;--glass:#161618b8;--glass-border:#ffffff14;--ring:inset 0 0 0 1px #ffffff14;--shadow-1:0 1px 2px #0000004d, 0 8px 24px #0006;--shadow-2:0 2px 6px #0006, 0 24px 60px #0009;--focus:0 0 0 4px #0a84ff73;--scrim:#0000008c}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--bg-elev:#0b0b0f;--surface:#1c1c1e;--surface-2:#2c2c2e;--surface-3:#3a3a3c;--text:#f5f5f7;--text-2:#a1a1a6;--text-3:#8e8e93;--accent:#2997ff;--accent-on-fill:#4aa8ff;--accent-fill:#0071e3;--accent-hover:#0a7cf0;--accent-soft:#0a84ff29;--on-accent:#fff;--separator:#ffffff1f;--fill:#7878803d;--fill-2:#7878805c;--glass:#161618b8;--glass-border:#ffffff14;--ring:inset 0 0 0 1px #ffffff14;--shadow-1:0 1px 2px #0000004d, 0 8px 24px #0006;--shadow-2:0 2px 6px #0006, 0 24px 60px #0009;--focus:0 0 0 4px #0a84ff73;--scrim:#0000008c}@media (prefers-reduced-motion:reduce){:root{--dur-1:var(--dur-fade);--dur-2:var(--dur-fade);--ease-spring:linear}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar-h) + 16px);background:var(--bg)}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--fs-17);line-height:var(--lh-body);letter-spacing:var(--track-body);font-optical-sizing:auto;font-feature-settings:"cv11", "ss01";color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);margin:0;overflow-x:hidden}h1,h2,h3{line-height:var(--lh-tight);letter-spacing:var(--track-title);font-weight:700}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}:focus-visible{box-shadow:var(--focus);border-radius:var(--r-xs);outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;overflow:hidden;position:absolute!important}.skip{z-index:100;border-radius:var(--r-pill);background:var(--accent-fill);color:var(--on-accent);padding:10px 16px;font-weight:600;position:absolute;top:-60px;left:12px}.skip:focus{top:10px}.btn{--h:44px;height:var(--h);border-radius:var(--r-pill);font:600 var(--fs-15) / 1 var(--font-sans);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease-out);border:0;justify-content:center;align-items:center;gap:6px;padding:0 20px;display:inline-flex;text-decoration:none!important}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent-fill);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--fill);color:var(--accent-on-fill)}.btn-secondary:hover{background:var(--fill-2)}.btn-plain{color:var(--accent);background:0 0;padding:0 8px}.btn-sm{--h:32px;font-size:var(--fs-15);padding:0 14px}.btn-lg{--h:50px;font-size:var(--fs-17);padding:0 28px}.btn-icon{width:36px;height:36px;color:var(--text);font:600 13px/1 var(--font-sans);cursor:pointer;transition:background-color var(--dur-1) var(--ease-out);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.btn-icon:hover{background:var(--fill)}.btn-icon svg{width:20px;height:20px}.bar{z-index:30;height:var(--bar-h);background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--glass-border);position:sticky;top:0}.bar-inner{justify-content:space-between;align-items:center;gap:var(--sp-3);height:100%;max-width:var(--page-max);padding:0 var(--gutter);margin:0 auto;display:flex}.bar-brand{min-width:0;font-size:var(--fs-17);letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;margin:0;font-weight:650;display:flex}.bar-brand .monogram{filter:drop-shadow(0 1px 1.5px #0000002e);flex-shrink:0}.bar-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.theme-icon-dark,[data-theme=dark] .theme-icon-light{display:none}[data-theme=dark] .theme-icon-dark{display:block}@media (max-width:599px){.lbl-long{display:none}.bar-name{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.bar-actions{gap:4px}.bar-actions .btn-sm{padding:0 12px}}#main{outline:none}#scene-view{position:relative}.stage{border-radius:var(--r-card);box-shadow:var(--shadow-2), var(--ring);background:radial-gradient(70% 60% at 45% 35%,#10204a 0%,#0000 70%),radial-gradient(60% 50% at 85% 90%,#ffb5470f,#0000 70%),#05070f}.hint{left:50%;bottom:var(--sp-6);z-index:15;border-radius:var(--r-pill);background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);max-width:calc(100vw - 32px);box-shadow:var(--shadow-1), inset 0 0 0 1px var(--glass-border);color:var(--text);font-size:var(--fs-15);text-align:center;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);margin:0;padding:10px 18px;font-weight:500;position:fixed;transform:translate(-50%)}.hint.is-hidden{opacity:0;transform:translate(-50%,12px)}.mode-recruiter .hint{display:none}dialog#panel{border-radius:var(--r-sheet);background:var(--surface);width:min(720px,100vw - 48px);max-width:100vw;height:min(860px,100dvh - 64px);max-height:100dvh;color:var(--text);box-shadow:var(--shadow-2), var(--ring);border:0;margin:auto;padding:0;position:fixed;inset:0;overflow:hidden}dialog#panel[open]{animation:panel-in var(--dur-2) var(--ease-spring)}dialog#panel.vt[open]{animation:none}dialog#panel::backdrop{background:var(--scrim)}@keyframes panel-in{0%{opacity:0;transform:translateY(16px)scale(.97)}}::view-transition-group(sheet){animation-duration:var(--dur-2);animation-timing-function:cubic-bezier(.2,.9,.25,1)}::view-transition-old(sheet){object-fit:cover;height:100%;animation-duration:.3s}::view-transition-new(sheet){object-fit:cover;height:100%;animation-duration:.3s}::view-transition-old(root){animation-duration:.25s}::view-transition-new(root){animation-duration:.25s}.panel-inner{flex-direction:column;height:100%;display:flex}.panel-head{padding:var(--sp-8) 72px var(--sp-4) var(--sp-8);position:relative}.panel-kicker{margin:0 0 var(--sp-1);font-size:var(--fs-12);color:var(--text-2);text-transform:uppercase;letter-spacing:.02em;font-weight:600}#panel-title{font-size:var(--fs-34);letter-spacing:var(--track-display);margin:0}.panel-close{top:var(--sp-6);right:var(--sp-6);background:var(--fill);width:32px;height:32px;color:var(--text-2);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:15px;font-weight:700;display:grid;position:absolute}.panel-close:hover{background:var(--fill-2);color:var(--text)}.panel-body{padding:0 var(--sp-8) var(--sp-10);overscroll-behavior:contain;flex:1;overflow-y:auto}.panel-body p{margin:0 0 var(--sp-3)}.panel-body .lead{font-size:var(--fs-17);font-weight:600}.panel-actions{flex-wrap:wrap;gap:10px;display:flex;margin-top:var(--sp-5)!important}.sub{margin-top:var(--sp-8)}.sub-title{margin:0 0 var(--sp-3);font-size:var(--fs-22)}.verified-badge{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-on-fill);font-size:var(--fs-15);align-items:center;gap:8px;padding:8px 14px;font-weight:600;display:inline-flex}.list{gap:var(--sp-4);margin:0;padding:0;list-style:none;display:grid}.list.inline{flex-wrap:wrap;gap:6px 24px;display:flex}.item-title{margin:0 0 var(--sp-1);font-size:var(--fs-17);letter-spacing:-.015em;line-height:1.3}.item-title .at{color:var(--text-2);font-weight:500}.item p{margin:0 0 6px}.meta{font-size:var(--fs-15);color:var(--text-2);font-variant-numeric:tabular-nums}.context{color:var(--text-2)}.bullets{margin:6px 0 0;padding-left:20px}.bullets li+li{margin-top:4px}.links{font-size:var(--fs-15)}.tags{margin:var(--sp-2) 0;flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.tags li,.chip{border-radius:var(--r-pill);background:var(--fill);color:var(--text);font-size:var(--fs-12);padding:4px 12px;font-weight:600;line-height:1.5;display:inline-block}.chips{flex-wrap:wrap;gap:6px;display:flex}.skills{gap:var(--sp-3);margin:0;display:grid}.skills dt{font-weight:650;font-size:var(--fs-15)}.skills dd{color:var(--text-2);font-size:var(--fs-15);margin:0}.contact-list{margin:var(--sp-2) 0;font-size:var(--fs-15);flex-wrap:wrap;gap:4px 20px;padding:0;list-style:none;display:flex}.timeline{padding-left:24px;position:relative}.timeline:before{content:"";background:var(--separator);border-radius:2px;width:2px;position:absolute;top:8px;bottom:8px;left:5px}.timeline .job{position:relative}.timeline .job:before{content:"";background:var(--accent-fill);width:12px;height:12px;box-shadow:0 0 0 4px var(--surface);border-radius:50%;position:absolute;top:5px;left:-24px}.cert.pending .item-title:after{content:""}.term{font:14px/1.55 var(--font-mono);letter-spacing:0;color:#e5e5ea;border-radius:var(--r-sm);padding:var(--sp-4);background:#0b0b0f;box-shadow:inset 0 0 0 1px #ffffff1a}.term-log{white-space:pre-wrap;word-break:break-word;max-height:50vh;overflow-y:auto}.term-log p{margin:0 0 4px!important}.term-log .echo{color:#64d2ff}.term-log .err{color:#ff6961}.term-line{align-items:center;gap:8px;margin-top:6px;display:flex}.term-prompt{color:#30d158;white-space:nowrap}.term-line input{color:#f5f5f7;min-width:0;font:inherit;caret-color:#0a84ff;background:0 0;border:0;flex:1;padding:4px 0}.term-line input:focus-visible{box-shadow:none;outline:none}.term:focus-within{box-shadow:inset 0 0 0 1px #0a84ffcc}#recruiter-view{padding:var(--sp-10) var(--gutter) var(--sp-16)}.sheet{background:var(--surface);max-width:820px;color:var(--text);border-radius:var(--r-card);box-shadow:var(--shadow-1), var(--ring);margin:0 auto;padding:clamp(24px,5vw,56px)}.sheet h2{margin:var(--sp-10) 0 var(--sp-4);font-size:var(--fs-22)}.sheet .sheet-name{letter-spacing:var(--track-display);outline:none;margin:0;font-size:clamp(34px,5vw,48px)}.sheet-headline{margin:var(--sp-2) 0 var(--sp-3);color:var(--text-2);font-size:var(--fs-17)}.foot{padding:var(--sp-6) var(--gutter) var(--sp-8);color:var(--text-3);font-size:var(--fs-12);text-align:center}.foot p{margin:0}@media (max-width:767px){.stage{border-radius:var(--r-card)}dialog#panel{border-radius:var(--r-sheet) var(--r-sheet) 0 0;width:100vw;height:88dvh;margin:0;inset:auto 0 0}@keyframes panel-in{0%{opacity:0;transform:translateY(48px)}}.panel-head{padding:var(--sp-6) 64px var(--sp-3) var(--sp-5)}.panel-close{top:var(--sp-5);right:var(--sp-5)}#panel-title{font-size:var(--fs-28)}.panel-body{padding:0 var(--sp-5) var(--sp-8)}.hint{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-property:opacity,background-color,color!important;transition-duration:var(--dur-fade)!important;scroll-behavior:auto!important;animation:none!important}.hint{transition:none!important}}@media print{html,body{color:#000;background:#fff}.bar,#scene-view,.hint,.foot,dialog,.no-print,.skip{display:none!important}#recruiter-view,#recruiter-view[hidden]{padding:0;display:block!important}.sheet{box-shadow:none;max-width:none;padding:0}.sheet a{color:inherit}}.stage{--amber:#ffb547;width:min(100%, calc((100vh - var(--bar-h) - 48px) * 1400 / 1060));aspect-ratio:1400/1060;min-width:min(100%,880px);margin:0 auto;position:relative}.scene-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.hotspots{position:absolute;inset:0}.hotspot{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;margin:0;padding:0;position:absolute}.hs-chip{left:50%;top:var(--beacon-y,8%);width:36px;height:36px;transition:transform var(--dur-1) var(--ease-spring);background:linear-gradient(#343a52c7,#121628c7);border-radius:50%;place-items:center;margin:-18px 0 0 -18px;display:grid;position:absolute;box-shadow:inset 0 0 0 1px #ffffff38,inset 0 1px #ffffff47,0 6px 16px #00000059}.hs-chip svg{width:22px;height:22px;display:block}.hotspot:hover .hs-chip,.hotspot:focus-visible .hs-chip{transform:scale(1.14)}.hotspot:focus-visible .hs-chip{box-shadow:inset 0 0 0 1px #fff6, 0 0 0 3px var(--accent-fill)}.hotspot:focus-visible{box-shadow:inset 0 0 0 2px #fff9,0 0 0 4px #0a84ff99}.hs-label{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%);color:#f5f5f7;font:600 var(--fs-15) / 1.2 var(--font-sans);letter-spacing:-.01em;white-space:nowrap;opacity:0;pointer-events:none;background:#1c1c1ec7;padding:7px 14px;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);box-shadow:inset 0 0 0 1px #ffffff24,0 8px 24px #00000059}.hotspot:hover .hs-label,.hotspot:focus-visible .hs-label{opacity:1;transform:translate(-50%)}@media (max-width:767px){.stage{width:100%;min-width:0;margin:0 0 var(--sp-4)}.hotspots{display:none}}.scene-svg .arm-wave,.scene-svg .face,.scene-svg .check,.scene-svg .verified,.scene-svg .edge{opacity:0}.scene-svg .rrg-path{stroke-dasharray:1;stroke-dashoffset:0}.scene-svg .torso,.scene-svg .arm,.scene-svg .arm-stretch,.scene-svg .head-inner,.scene-svg .shield-body,.scene-svg .ring,.scene-svg .float,.scene-svg .dust,.scene-svg .folder,.scene-svg .pin,.scene-svg .code,.scene-svg .sun,.scene-svg .win-pane,.scene-svg .steam,.scene-svg .verified{transform-box:fill-box;transform-origin:50%}.scene-svg .dust{animation:dust calc(9s + var(--i) * .37s) ease-in-out calc(var(--i) * -.9s) infinite}@keyframes dust{0%,to{opacity:.15;transform:translate(0)}50%{transform:translate(var(--dx), var(--dy));opacity:.85}}.scene-svg .beam{opacity:.8;transition:opacity .6s}@keyframes breathe{0%,to{opacity:.75}50%{opacity:1}}.scene-svg .sun{animation:6s ease-in-out infinite sun}@keyframes sun{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.scene-svg .led{animation:led 2.6s steps(1, end) calc(var(--i) * -.37s) infinite}@keyframes led{0%,to{opacity:1}40%{opacity:.25}55%{opacity:1}80%{opacity:.5}}.scene-svg .flicker{animation:5.3s linear infinite flicker}@keyframes flicker{0%,18%,22%,61%,63%,to{opacity:1}20%{opacity:.78}62%{opacity:.88}}.scene-svg .screen-glow{animation:4.5s ease-in-out infinite breathe}.scene-svg .code{transform-origin:0%;animation:typing 6s steps(12, end) calc(var(--i) * .45s) infinite}@keyframes typing{0%{transform:scaleX(0)}30%,92%{transform:scaleX(1)}to{transform:scaleX(0)}}.scene-svg .torso{transform-origin:50% 100%;animation:4.2s ease-in-out infinite breath}@keyframes breath{0%,to{transform:scale(1)}50%{transform:scale(1.015,1.03)}}.scene-svg .arm-type{animation:.42s ease-in-out infinite alternate tap}.scene-svg .arm-left{animation:.5s ease-in-out -.2s infinite alternate tap}@keyframes tap{0%{transform:translateY(0)}to{transform:translateY(-2.5px)}}.scene-svg .steam{animation:3.2s ease-in-out infinite steam}@keyframes steam{0%{opacity:0;transform:translateY(4px)}40%{opacity:.5}to{opacity:0;transform:translateY(-10px)}}.scene-svg .neon{animation:9s linear infinite neon}@keyframes neon{0%,71%,73%,75%,to{opacity:1}72%,74%{opacity:.35}}.scene-svg .float{animation:5s ease-in-out infinite float}.scene-svg .shield-body{animation:4.5s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.scene-svg .term-shadow{animation:5s ease-in-out infinite breathe}.scene-svg .cursor{animation:1.05s step-end infinite blink}@keyframes blink{50%{opacity:0}}.scene-svg .ring{animation:3s ease-out infinite ring}@keyframes ring{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.35)}}.scene-svg .emitter{animation:3s ease-in-out infinite breathe}.scene-svg .node{animation:node 3.4s ease-in-out calc(var(--i) * -.5s) infinite}@keyframes node{0%,to{opacity:.75}50%{opacity:1}}.scene-svg .rrg-dot{animation:1.6s ease-in-out infinite breathe}body:has(#panel[open]) .scene-svg *{animation-play-state:paused}#obj-about.is-active .arm-type{opacity:0}#obj-about.is-active .arm-wave{opacity:1;transform-origin:0 100%;animation:.5s ease-in-out infinite alternate wave}@keyframes wave{0%{transform:rotate(-10deg)}to{transform:rotate(14deg)}}#obj-about.is-active .face{opacity:1}#obj-about.is-active .head-inner{transform:translate(3px)rotate(6deg)}.scene-svg .head-inner,.scene-svg .face,.scene-svg .arm-wave,.scene-svg .arm-type{transition:opacity .2s,transform .3s}#obj-infra.is-active .led{animation:led-seq 1.4s ease-out calc(var(--i) * 45ms) infinite}@keyframes led-seq{0%{opacity:.1}12%{opacity:1}to{opacity:.35}}#obj-security.is-active .shield-body{animation:.9s ease-in-out infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.09)}}#obj-security.is-active .lock{opacity:0}#obj-security.is-active .check{opacity:1}#obj-security.is-active .verified{opacity:1;transform:translateY(-4px)}.scene-svg .lock,.scene-svg .check,.scene-svg .verified{transition:opacity .25s,transform .3s}#obj-ai.is-active .edge{animation:edge 1.5s ease-in-out calc(var(--i) * .12s) infinite}@keyframes edge{0%,to{opacity:0}30%{opacity:1}60%{opacity:.2}}#obj-projects.is-active .rrg-path{animation:1.6s ease-in-out infinite alternate draw}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}#obj-experience.is-active .folder{animation:folder .5s cubic-bezier(.3, 1.6, .5, 1) calc(var(--i) * .14s) both}@keyframes folder{to{transform:translateY(-12px)rotate(-5deg)}}#obj-certs.is-active .pin{animation:pin .55s cubic-bezier(.5, 0, .7, 1.4) calc(var(--i) * .13s) both}@keyframes pin{0%{opacity:0;transform:translateY(-46px)}to{opacity:1;transform:translateY(0)}}#obj-terminal.is-active .cursor{animation-duration:.5s}#obj-terminal.is-active .float{animation-duration:1.8s}#obj-contact .win-pane{transform-origin:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1)}#obj-contact.is-active .win-pane{transform:scaleX(.16)}#obj-contact.is-active~.beam{opacity:1}#obj-contact .win-glow{opacity:.85;transition:opacity .6s}#obj-contact.is-active .win-glow{opacity:1}.hotspot:hover,.hotspot:focus-visible{box-shadow:none;background:0 0;outline:none}.scene-svg>g{transition:filter .35s,opacity .35s}.scene-svg.has-lit>g:not(.is-lit){opacity:.5}.scene-svg.has-lit>g:not(.is-lit) *{animation-play-state:paused}.scene-svg>g.is-lit{filter:brightness(1.18)drop-shadow(0 0 10px #34e0ff8c)}.scene-svg .beam-vol,.scene-svg .beam-patch{animation:6s ease-in-out infinite sunlight}@keyframes sunlight{0%,to{opacity:.8}50%{opacity:1}}.scene-svg .beam-patch-wrap{opacity:.8;transition:opacity .6s}#obj-contact.is-active~.floor-layer .beam-patch-wrap{opacity:1}.scene-svg .zz-plant .zz-sway{transform-box:fill-box;transform-origin:50% 100%;animation:7s ease-in-out infinite zz-sway}@keyframes zz-sway{0%,to{rotate:-1deg}50%{rotate:1deg}}.scene-svg .stars circle{animation:twinkle calc(2.6s + var(--i) * .13s) ease-in-out calc(var(--i) * -.41s) infinite}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.35}}.scene-svg #obj-contact .lit{transition:opacity 2s}@media (prefers-reduced-motion:reduce){.scene-svg>g,.scene-svg #obj-contact .lit{transition:none!important}.scene-svg .beam-vol,.scene-svg .beam-patch,.scene-svg .zz-plant .zz-sway,.scene-svg .stars circle{animation:none}}.scene-svg .room-warm{opacity:0;pointer-events:none;transition:opacity 1.2s}.scene-svg.lights-on .room-warm{opacity:1}.scene-svg .screen-dim{opacity:0;transition:opacity .8s}.scene-svg.lights-on .screen-dim{opacity:.45}.scene-svg .arm-stretch{opacity:0;transition:opacity .3s}.scene-svg.lights-on .arm-type,.scene-svg.lights-on .arm-left{opacity:0}.scene-svg.lights-on .arm-stretch{opacity:1;transform-origin:50% 100%;animation:2.6s ease-in-out both stretch}.scene-svg.lights-on #obj-about.is-active .arm-stretch{opacity:0}@keyframes stretch{0%{transform:translateY(18px)scaleY(.7)}35%{transform:translateY(-6px)scaleY(1.06)}60%{transform:translateY(-3px)scaleY(1.02)}to{transform:none}}.scene-svg.lights-on .torso{animation:2.6s ease-in-out stretch-torso,4.2s ease-in-out 2.6s infinite breath}@keyframes stretch-torso{35%{transform:scale(1.02,1.05)}to{transform:none}}.product{max-width:var(--page-max);padding:0 var(--gutter) var(--sp-16);margin:0 auto}.bar-cta{visibility:hidden;opacity:0;max-width:0;transition:max-width var(--dur-1) var(--ease-out), padding var(--dur-1) var(--ease-out), margin var(--dur-1) var(--ease-out), opacity var(--dur-1) var(--ease-out), visibility 0s linear var(--dur-1);margin-left:-6px;overflow:hidden;padding-inline:0!important}.cta-out .bar-cta,.mode-recruiter .bar-cta{visibility:visible;opacity:1;max-width:220px;transition:max-width var(--dur-1) var(--ease-out), padding var(--dur-1) var(--ease-out), margin var(--dur-1) var(--ease-out), opacity var(--dur-1) var(--ease-out), visibility 0s;margin-left:0;padding-inline:14px!important}.product-head{gap:var(--sp-5) var(--sp-8);padding:var(--sp-10) 0 var(--sp-6);grid-template-columns:auto 1fr;align-items:center;display:grid}.ph-icon .monogram{filter:drop-shadow(0 2px 4px #00000024)drop-shadow(0 16px 32px #0058c747);width:clamp(104px,14vw,160px);height:auto;display:block}.ph-name{font-size:clamp(2.5rem, 5.6vw, var(--fs-72));letter-spacing:var(--track-display);margin:0;line-height:1.02}.ph-sub{margin:var(--sp-2) 0 var(--sp-5);font-size:clamp(var(--fs-17), 1.8vw, var(--fs-22));color:var(--text-2);letter-spacing:-.015em;font-weight:500;line-height:1.35}.ph-actions{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.ph-note{font-size:var(--fs-12);color:var(--text-2);font-weight:500}.ph-desc{grid-column:1/-1;max-width:780px}.ph-desc-text{color:var(--text);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.ph-desc-text.is-open{display:block}.btn-more{margin-top:var(--sp-1);color:var(--accent);font:600 var(--fs-15) / 1.4 var(--font-sans);cursor:pointer;background:0 0;border:0;padding:4px 0}.stats{padding:var(--sp-4) 0;scrollbar-width:none;border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);margin:0;list-style:none;display:flex;overflow-x:auto}.stats::-webkit-scrollbar{display:none}.stats li{padding:var(--sp-1) var(--sp-3);text-align:center;flex-direction:column;flex:1 0 128px;align-items:center;gap:2px;display:flex}.stats li+li{border-left:1px solid var(--separator)}.st-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);font-size:11px;font-weight:600}.st-value{font-size:var(--fs-22);letter-spacing:-.02em;color:var(--text-2);white-space:nowrap;font-weight:700}.st-sub{font-size:var(--fs-12);color:var(--text-2);white-space:nowrap}.hero{--hero-s0:.92;margin-top:var(--sp-8)}@media (min-width:768px){.hero{--hero-s0:.86}}@media (min-width:1200px){.hero{--hero-s0:.8}}.hero-band{will-change:transform;transform-origin:50%;background:radial-gradient(60% 70% at 45% 35%,#10204a 0%,#0000 70%),radial-gradient(50% 50% at 85% 90%,#ffb5470f,#0000 70%),#05070f;border-radius:clamp(20px,2.4vw,32px);padding:clamp(12px,2.4vw,36px) 0;position:relative}.hero-band .stage{box-shadow:none;background:0 0;border-radius:0}@supports (animation-timeline:view()){.hero-band{animation:linear both hero-expand;animation-timeline:view();animation-range:entry cover 50%}}@keyframes hero-expand{0%{transform:scale(var(--hero-s0))}to{transform:none}}.hero-band.js-expand{transform:scale(var(--hero-s0));transition:transform .8s var(--ease-out)}.hero-band.js-expand.is-expanded{transform:none}.stage-tilt{transition:transform .6s var(--ease-out);transform:none}.hero-band.is-tilting:not(:has(.scene-svg.has-lit)) .stage-tilt{transform:perspective(1800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}.hero-band.is-tilting .scene-svg:not(.has-lit) *{animation-play-state:paused}.light-switch{z-index:5;border-radius:var(--r-pill);color:#f5f5f7;font:600 var(--fs-15) / 1 var(--font-sans);cursor:pointer;background:linear-gradient(#2c3042d1,#161a2cd1);border:0;align-items:center;gap:10px;padding:7px 16px 7px 8px;display:flex;position:absolute;top:clamp(12px,2vw,28px);right:clamp(12px,2vw,28px);box-shadow:inset 0 0 0 1px #ffffff2e,inset 0 1px #ffffff38,0 8px 24px #00000059}.light-switch:focus-visible{box-shadow:inset 0 0 0 1px #fff6,0 0 0 4px #0a84ff99}.ls-track{width:40px;height:24px;transition:background-color var(--dur-1) var(--ease-out);background:#78788073;border-radius:12px;position:relative}.ls-knob{width:20px;height:20px;transition:transform var(--dur-1) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #0000004d}.light-switch[aria-checked=true] .ls-track{background:#ffb547}.light-switch[aria-checked=true] .ls-knob{transform:translate(16px)}@media (max-width:767px){.light-switch{font-size:var(--fs-12);padding:5px 12px 5px 6px}}@media (prefers-reduced-motion:reduce){.hero-band,.hero-band.js-expand{animation:none!important;transform:none!important}.stage-tilt{transform:none!important}}.sec{margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--separator)}.sec-head{justify-content:space-between;align-items:baseline;gap:var(--sp-4);display:flex}.sec-title{margin:0 0 var(--sp-5);font-size:var(--fs-28);letter-spacing:var(--track-title)}.sec-meta{font-size:var(--fs-15);color:var(--text-2)}.shelf{padding:var(--sp-2) var(--sp-4) 0;justify-content:space-between;gap:var(--sp-5);scroll-snap-type:x mandatory;scrollbar-width:none;margin:0;list-style:none;display:flex;position:relative;overflow-x:auto}.shelf::-webkit-scrollbar{display:none}.shelf:before{content:"";left:0;right:0;top:calc(var(--sp-2) + 80px);pointer-events:none;background:linear-gradient(90deg,#7dd3fc42,#ffffff80 40%,#c4b5fd4d);border-radius:12px;min-width:100%;height:20px;position:absolute;box-shadow:inset 0 1px #ffffffd9,0 14px 28px #00000012}[data-theme=dark] .shelf:before{background:linear-gradient(90deg,#38bdf829,#ffffff24 40%,#a78bfa2e);box-shadow:inset 0 1px #ffffff47,0 14px 28px #0006}.shelf li{scroll-snap-align:start;flex-shrink:0}.app{width:96px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:relative}.app .app-icon{filter:drop-shadow(0 2px 3px #00000024)drop-shadow(0 10px 18px #00000024);-webkit-box-reflect:below 2px linear-gradient(transparent 72%, #fff3);transition:transform var(--dur-1) var(--ease-spring);display:block}.app:hover .app-icon{transform:translateY(-4px)}.app:active .app-icon{transform:scale(.94)}.app:focus-visible{box-shadow:none}.app:focus-visible .app-icon{outline:3px solid var(--accent);outline-offset:3px;border-radius:24px}.app-name{font-size:var(--fs-12);text-align:center;color:var(--text-2);margin-top:40px;font-weight:600;line-height:1.25}.carousel-nav{gap:var(--sp-2);display:flex}.nav-btn{background:var(--fill);width:36px;height:36px;color:var(--text);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.nav-btn:hover{background:var(--fill-2)}.nav-btn svg,.cr-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.carousel{margin:0 calc(var(--gutter) * -1);padding:var(--sp-2) var(--gutter) var(--sp-5);gap:var(--sp-5);scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:thin;list-style:none;display:flex;overflow-x:auto}.carousel:focus-visible{box-shadow:var(--focus)}.pcard{scroll-snap-align:start;border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1), var(--ring);flex-direction:column;flex:0 0 min(400px,84%);display:flex;overflow:hidden}.pcard-art{background:linear-gradient(135deg, var(--a), var(--b));height:188px;padding:26px 26px 0;position:relative;overflow:hidden}.pcard-art:after{content:"";background:radial-gradient(90% 70% at 20% 0,#ffffff47,#0000 60%);position:absolute;inset:0}.pcard-window{z-index:1;background:#ffffffe6;border-radius:14px 14px 0 0;height:100%;padding:12px 14px;display:block;position:relative;box-shadow:0 18px 40px #00000038}.pcard-window .dots{vertical-align:middle;gap:5px;display:inline-flex}.pcard-window .dots i{background:#d1d1d6;border-radius:50%;width:8px;height:8px}.pcard-wtitle{color:#6e6e73;vertical-align:middle;margin-left:10px;font-size:11px;font-weight:600}.pcard-window .bars{gap:9px;margin-top:18px;display:grid}.pcard-window .bars i{background:linear-gradient(90deg, var(--a), var(--b));opacity:.35;border-radius:4px;height:8px}.pcard-window .bars i:first-child{opacity:.7}.pcard-chips{z-index:2;gap:6px;display:flex;position:absolute;bottom:16px;right:18px}.pcard-chips b{border-radius:var(--r-pill);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1c1c1ec7;padding:4px 10px;font-size:11px;font-weight:600}.pcard-body{gap:var(--sp-2);padding:var(--sp-5);flex-direction:column;flex:1;display:flex}.pcard-title{font-size:var(--fs-17);letter-spacing:-.015em;margin:0;line-height:1.3}.pcard-desc{font-size:var(--fs-15);color:var(--text-2);margin:0}.pcard-links{padding-top:var(--sp-2);gap:var(--sp-1) var(--sp-4);font-size:var(--fs-15);flex-wrap:wrap;margin:auto 0 0;font-weight:600;display:flex}.link-group{color:var(--text-2);font-weight:500}.news-list{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));margin:0;padding:0;list-style:none;display:grid}.news-list li{padding:var(--sp-5);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1), var(--ring)}.news-label{font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.03em;color:var(--accent);font-weight:600}.news-title{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--fs-17);letter-spacing:-.015em;line-height:1.3}.news-meta{font-size:var(--fs-15);color:var(--text-2);margin:0}.version-list{margin:0;padding:0;list-style:none}.version{padding:var(--sp-5) 0}.version+.version{border-top:1px solid var(--separator)}.v-head{align-items:baseline;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.v-tag{border-radius:var(--r-pill);background:var(--fill);color:var(--accent-on-fill);font-size:var(--fs-12);font-variant-numeric:tabular-nums;padding:2px 10px;font-weight:700}.v-company{font-size:var(--fs-17);letter-spacing:-.015em;margin:0}.v-date{font-size:var(--fs-15);color:var(--text-2);font-variant-numeric:tabular-nums;margin-left:auto}.v-role{margin:var(--sp-1) 0 0;font-weight:600;font-size:var(--fs-15)}.v-context{margin:var(--sp-1) 0 0;font-size:var(--fs-15);color:var(--text-2)}.v-notes{margin:var(--sp-2) 0 0;font-size:var(--fs-15);padding-left:20px}.v-notes li+li{margin-top:4px}.info-list{column-gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));margin:0;display:grid}.info-list>div{padding:var(--sp-3) 0;border-bottom:1px solid var(--separator)}.info-list dt{font-size:var(--fs-12);color:var(--text-2);font-weight:600}.info-list dd{font-size:var(--fs-15);margin:2px 0 0}.contact-card{padding:var(--sp-8);border-radius:var(--r-sheet);background:var(--surface);box-shadow:var(--shadow-1), var(--ring);border-top:0}.contact-lead{margin:calc(var(--sp-3) * -1) 0 var(--sp-5);color:var(--text-2)}.contact-rows{margin:0 0 var(--sp-6);padding:0;list-style:none}.contact-rows li+li{border-top:1px solid var(--separator)}.contact-rows a{align-items:center;gap:var(--sp-4);padding:var(--sp-3) 0;color:var(--text);display:flex;text-decoration:none!important}.cr-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-on-fill);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.cr-text{flex-direction:column;min-width:0;display:flex}.cr-label{font-size:var(--fs-12);color:var(--text-2);font-weight:600}.cr-value{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.cr-chev{color:var(--text-3);margin-left:auto;font-size:22px}.contact-actions{gap:var(--sp-3);flex-wrap:wrap;display:flex}@media (max-width:767px){.product-head{gap:var(--sp-4);padding-top:var(--sp-6);grid-template-columns:auto 1fr;align-items:start}.ph-icon .monogram{width:96px}.ph-name{font-size:2rem}.ph-sub{font-size:var(--fs-15);margin-bottom:0}.ph-main{display:contents}.ph-icon{grid-row:span 2;align-self:start}.ph-name,.ph-sub{grid-column:2}.ph-name{align-self:end}.ph-sub{align-self:start}.ph-actions{grid-column:1/-1}.ph-actions .btn-lg{flex:1}.ph-note{text-align:center;width:100%}.shelf{justify-content:flex-start}.shelf:before{width:calc(96px * 8 + var(--sp-5) * 7 + var(--sp-8))}.contact-card{padding:var(--sp-6) var(--sp-5)}.v-date{width:100%;margin-left:0}}
