:root{--bg: #050505;--surface: rgba(14, 14, 16, .82);--surface-2: #0d0d0f;--surface-3: #141417;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #ededed;--text-bright: #ffffff;--text-dim: #adb7be;--text-faint: #8d96a2;--accent: #2dd4bf;--accent-rgb: 45, 212, 191;--accent-2: #38bdf8;--accent-2-rgb: 56, 189, 248;--green: #22c55e;--green-rgb: 34, 197, 94;--amber: #ffb800;--rose: #ff2e88;--accent-glow: rgba(var(--accent-rgb), .35);--grad: linear-gradient(90deg, var(--accent), var(--accent-2));--sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Doto", "Geist Mono", ui-monospace, monospace;--code: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--page: 1240px;--gutter: clamp(18px, 4vw, 40px);--radius: 14px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.32, .72, 0, 1);--topbar-h: 52px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-h) + 16px);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--mono);font-size:16px;font-weight:700;line-height:1.55;letter-spacing:.02em;text-transform:uppercase;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img,svg,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}::selection{background:rgba(var(--accent-rgb),.3);color:var(--text-bright)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shell{position:relative;min-height:100vh}.page{position:relative;z-index:1;width:min(var(--page),100% - 2 * var(--gutter));margin:0 auto}@media (min-width: 1100px){.page{width:min(var(--page),100% - 240px)}}.section{position:relative;padding-block:clamp(70px,10vw,130px)}.hero,.section{--grad: linear-gradient(90deg, var(--accent), var(--accent-2))}.hero{--accent: #2dd4bf;--accent-rgb: 45, 212, 191;--accent-2: #38bdf8;--accent-2-rgb: 56, 189, 248}.sec-about{--accent: #8b5cf6;--accent-rgb: 139, 92, 246;--accent-2: #ec4899;--accent-2-rgb: 236, 72, 153}.sec-services{--accent: #f97316;--accent-rgb: 249, 115, 22;--accent-2: #facc15;--accent-2-rgb: 250, 204, 21}.sec-references{--accent: #38bdf8;--accent-rgb: 56, 189, 248;--accent-2: #818cf8;--accent-2-rgb: 129, 140, 248}.sec-experience{--accent: #3b82f6;--accent-rgb: 59, 130, 246;--accent-2: #06b6d4;--accent-2-rgb: 6, 182, 212}.sec-skills{--accent: #10b981;--accent-rgb: 16, 185, 129;--accent-2: #84cc16;--accent-2-rgb: 132, 204, 22}.sec-projects{--accent: #ec4899;--accent-rgb: 236, 72, 153;--accent-2: #f97316;--accent-2-rgb: 249, 115, 22}.sec-education{--accent: #f59e0b;--accent-rgb: 245, 158, 11;--accent-2: #ef4444;--accent-2-rgb: 239, 68, 68}.sec-ask{--accent: #e879f9;--accent-rgb: 232, 121, 249;--accent-2: #6366f1;--accent-2-rgb: 99, 102, 241}.sec-contact{--accent: #84cc16;--accent-rgb: 132, 204, 22;--accent-2: #10b981;--accent-2-rgb: 16, 185, 129}.section-head{margin-bottom:clamp(40px,6vw,70px);text-align:center}.section-label{margin:0 0 14px;font-size:14px;letter-spacing:.5em;color:var(--accent)}.section-title-row{display:flex;align-items:center;gap:clamp(14px,3vw,32px)}.section-title{margin:0;font-family:var(--sans);font-size:clamp(34px,6vw,64px);font-weight:800;line-height:1.05;letter-spacing:-.04em;text-transform:uppercase;color:var(--text-bright);white-space:nowrap}.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.rule{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.55))}.rule:last-child{background:linear-gradient(90deg,rgba(var(--accent-rgb),.55),transparent)}@media (max-width: 560px){.section-title{white-space:normal}.rule{display:none}.section-label{letter-spacing:.3em}}.card{position:relative;isolation:isolate;background:var(--surface);border:1px solid #1d1d21;border-radius:var(--radius);box-shadow:0 8px 32px #00000059;transition:translate .4s ease,box-shadow .4s ease,border-color .4s ease}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:radial-gradient(700px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(var(--accent-rgb),.1),transparent 40%);opacity:0;transition:opacity .4s ease;pointer-events:none}.card:hover:before{opacity:1}.card:hover{translate:0 -4px;border-color:rgba(var(--accent-rgb),.45);box-shadow:0 15px 40px #00000073}.card.no-lift:hover{translate:none}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:5px;border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.08);font-size:13px;color:color-mix(in srgb,var(--accent) 70%,#fff);white-space:nowrap;transition:color .15s,border-color .15s,box-shadow .15s}.chip:hover{color:#fff;border-color:var(--accent);background:rgba(var(--accent-rgb),.2)}.chips{display:flex;flex-wrap:wrap;gap:7px}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;border:1px solid rgba(var(--accent-2-rgb),.45);background:rgba(var(--accent-2-rgb),.12);font-size:12.5px;color:color-mix(in srgb,var(--accent-2) 70%,#fff);white-space:nowrap}.badge.live{color:var(--green);border-color:rgba(var(--green-rgb),.45);background:rgba(var(--green-rgb),.08)}.dot-live{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:blip 1.6s ease-in-out infinite}.badge.live .dot-live{background:var(--green);box-shadow:0 0 10px var(--green)}@keyframes blip{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.btn,.neon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px;border:1.5px solid var(--accent);background:var(--accent);font-size:15px;font-weight:800;letter-spacing:.06em;color:#0b0b0f;cursor:pointer;transition:transform .25s var(--ease-out),filter .25s,background .25s,color .25s}.btn:hover,.neon-btn:hover{transform:translateY(-2px);filter:brightness(1.12)}.btn:active,.neon-btn:active{transform:translateY(0)}.btn.ghost{border-color:var(--accent-2);background:transparent;color:var(--accent-2)}.btn.ghost:hover{background:var(--accent-2);color:#0b0b0f;filter:none}.neon-btn.small{min-height:34px;padding:0 14px;font-size:13px}[data-reveal]{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .8s var(--ease-out) var(--reveal-delay, 0ms),transform .8s var(--ease-out) var(--reveal-delay, 0ms),filter .8s var(--ease-out) var(--reveal-delay, 0ms),translate .4s ease,box-shadow .4s ease,border-color .4s ease}[data-reveal].is-in{opacity:1;transform:none;filter:none}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:26px 0 calc(26px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(var(--accent-rgb),.18);font-size:13px;color:var(--text-faint);letter-spacing:.04em}.footer a:hover{color:var(--accent)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}[data-reveal]{opacity:1;transform:none;filter:none}}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.splash-cursor{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.ruler{position:absolute;top:0;width:48px;z-index:2;display:none;overflow:hidden;border-inline:1px dashed var(--border);background-color:#ffffff05;background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.12) 0 1px,transparent 1px 10px);background-size:8px 100%;background-repeat:no-repeat;pointer-events:none}.ruler-left{left:0;background-position:left top}.ruler-right{right:0;background-position:right top}@media (min-width: 1100px){.ruler{display:block}}.ruler-tick{position:absolute;left:0;right:0;padding:3px 4px 0 22px;font-size:9px;line-height:1.15;white-space:pre;color:var(--text-faint);opacity:.75}.ruler-tick:before{content:"";position:absolute;top:0;left:0;width:18px;height:1px;background:var(--border-strong)}.ruler-right .ruler-tick{padding:3px 22px 0 4px;text-align:right}.ruler-right .ruler-tick:before{left:auto;right:0}.ruler-marker{position:absolute;top:0;left:0;right:0;height:1px;background:var(--accent);box-shadow:0 0 8px var(--accent);opacity:0;transition:opacity .2s;will-change:transform}.ruler-marker span{position:absolute;top:-16px;left:4px;font-family:var(--mono);font-size:9px;color:var(--accent)}.ruler-right .ruler-marker span{left:auto;right:4px}.progress-bar{position:fixed;top:0;left:0;right:0;z-index:70;height:calc(var(--topbar-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:transparent;pointer-events:none;opacity:0;transform:translateY(-100%);transition:opacity .35s var(--ease-out),transform .45s var(--ease-out)}.progress-bar.is-shown{opacity:1;transform:none;pointer-events:auto}.progress-track,.progress-toggle,.progress-pct{box-shadow:0 6px 24px -6px #000000b3}.progress-pct{padding:4px 8px;border-radius:7px;background:#06070a8c;text-align:center}.progress-inner{display:flex;align-items:center;gap:12px;height:var(--topbar-h);max-width:1080px;margin:0 auto;padding:0 var(--gutter)}.progress-pct{min-width:58px;font-family:var(--mono);font-size:14px;font-weight:700;color:var(--amber);font-variant-numeric:tabular-nums}.progress-pct .arrow{color:var(--accent-2)}.progress-track{position:relative;flex:1;height:26px;border-radius:7px;background:#171b26;border:1px solid var(--border-strong);overflow:hidden}.progress-fill{position:absolute;inset:0 auto 0 0;display:flex;align-items:center;justify-content:flex-end;overflow:hidden;padding:0 6px;border-radius:6px 0 0 6px;background:var(--bar, var(--accent));transition:width .12s linear,background-color .5s ease}.progress-fill code{font-family:var(--mono);font-size:13.5px;font-weight:700;color:#070910;white-space:nowrap}.caret{animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.progress-remaining{position:absolute;top:50%;right:9px;transform:translateY(-50%);font-family:var(--mono);font-size:13.5px;color:#fff;pointer-events:none;transition:opacity .2s}.progress-remaining .short{display:none}.progress-menu{position:relative}.progress-toggle{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;border:1px solid var(--border-strong);background:#171b26;cursor:pointer;transition:background .15s}.progress-toggle:hover{background:#222838}.progress-toggle svg{transition:transform .2s}.progress-toggle.open svg{transform:rotate(180deg)}.progress-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:240px;margin:0;padding:6px;list-style:none;border-radius:12px;border:1px solid var(--border-strong);background:#0e1017f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 20px 50px -10px #000000b3;animation:drop .18s var(--ease-out)}@keyframes drop{0%{opacity:0;transform:translateY(-6px) scale(.98)}}.progress-dropdown button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;font-family:var(--mono);font-size:14px;color:var(--text-dim);text-align:left;cursor:pointer}.progress-dropdown button:hover{background:#ffffff0d;color:var(--text-bright)}.progress-dropdown button.is-current{color:var(--accent)}.progress-dropdown .idx{color:var(--text-faint);font-size:12.5px}.progress-dropdown .lbl{flex:1}.progress-dropdown .done{color:var(--accent-2)}.progress-dropdown .now{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}@media (max-width: 640px){.progress-remaining .long{display:none}.progress-remaining .short{display:inline}.progress-pct{min-width:50px;font-size:13.5px}}.site-header{position:relative;z-index:5;padding-top:18px}.site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}.brand{display:flex;align-items:center;gap:12px}.brand-avatar{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.5);background:#111}.brand-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--text-bright)}.brand-role{font-size:12px;letter-spacing:.12em;color:var(--text-faint)}.header-actions{display:flex;align-items:center;gap:10px}.lang-toggle{display:flex;padding:3px;border-radius:999px;border:1px solid var(--border-strong);background:#ffffff05}.lang-toggle button{padding:3px 11px;border:0;border-radius:999px;background:none;font-size:13px;letter-spacing:.06em;color:var(--text-faint);cursor:pointer;transition:background .18s,color .18s}.lang-toggle button:hover{color:var(--text)}.lang-toggle button.on{background:var(--accent);color:#0b0b0f}.social-rail{position:fixed;right:62px;bottom:0;z-index:40;display:none;flex-direction:column;align-items:center;gap:18px}.social-rail a{color:var(--text-dim);transition:color .2s,transform .2s var(--ease-out),filter .2s}.social-rail a:hover{color:var(--accent);transform:translateY(-3px)}.rail-line{width:1px;height:110px;background:linear-gradient(var(--text-dim),transparent)}@media (min-width: 1100px){.social-rail{display:flex}}.hero{display:flex;align-items:center;min-height:calc(100svh - 76px);padding-block:48px}.hero-inner{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:32px;width:100%}.hero-copy{padding-block:8px;min-width:0}.identity-stage{--identity-slide: clamp(64px, 6vw, 88px);display:grid;grid-template-columns:max-content;grid-template-rows:repeat(3,1fr);align-items:center;isolation:isolate;margin-bottom:24px}.identity{z-index:2;grid-area:1 / 1 / 4;display:grid;grid-template-rows:subgrid;margin:0;padding-right:var(--identity-slide);font:500 clamp(64px,7.6vw,106px) / 1.06 var(--sans);letter-spacing:-.045em;text-transform:none}.identity button{display:block;place-self:center stretch;padding:0 0 4px;border:0;background:none;font:inherit;letter-spacing:inherit;text-align:left;color:var(--text);cursor:pointer}.identity button span{display:inline-block;transition:transform .7s var(--ease-spring),color .2s,text-shadow .2s}.identity button[data-active=true] span{color:var(--accent)}.identity-stage[data-ready=true] .identity button[data-active=true] span{transform:translate(var(--identity-slide))}.identity button:focus-visible{outline-offset:-2px}.word-art{z-index:1;grid-column:1;justify-self:start;width:calc(var(--identity-slide) - 8px);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-12px) scale(.92);transition:opacity .25s,transform .7s var(--ease-spring),visibility 0s .25s}.word-art[data-active=true]{opacity:1;visibility:visible;transform:translate(0) scale(1);transition-delay:80ms,0s,0s}.iso{width:100%;overflow:visible}.iso path{stroke:var(--text);stroke-width:.85;stroke-linejoin:round;stroke-linecap:round}.iso .plate{fill:var(--bg)}.iso .detail{fill:none;stroke:#8b939c;stroke-width:.6}.iso .dash{fill:none;stroke:#8b939c;stroke-width:.6;stroke-dasharray:1.4 1.6}.iso .accent-fill{fill:var(--accent);stroke:var(--accent)}.iso .lens{fill:rgba(var(--accent-rgb),.12);stroke:var(--text)}.iso .handle{fill:none;stroke:var(--text);stroke-width:1.6}.iso .plate-line{fill:none;stroke:var(--bg);stroke-width:.8}.iso .pen{fill:none;stroke:var(--text);stroke-width:2.4}.iso .pen-cap{fill:none;stroke:var(--accent);stroke-width:2.6}.iso .bug-line{fill:none;stroke:#f43f5e;stroke-width:.9}.iso .fixed-line{fill:none;stroke:var(--accent);stroke-width:1.3}.iso .bug-dot{fill:#f43f5e;stroke:#f43f5e}.iso .accent-line{fill:none;stroke:var(--accent);stroke-width:.9}.hero-intro{max-width:30em;margin:0 0 30px;font-size:clamp(16px,1.5vw,19px);line-height:1.6;color:var(--text-dim)}.hero-cta{display:inline-flex;align-items:center;min-height:44px;padding:12px 18px;background:var(--accent);font-size:15px;font-weight:800;letter-spacing:.04em;color:#0b0b0f;transition:background .25s,transform .2s var(--ease-out)}.hero-cta:hover{background:var(--accent-2);transform:translateY(-1px)}.hero-availability{margin:14px 0 0;font-size:13px;color:var(--text-faint)}.hero-portrait{min-width:0}.photo-scene{position:relative;width:100%;isolation:isolate}.photo-blob{position:absolute;top:8%;right:6%;bottom:0;left:6%;z-index:-1;border-radius:46% 54% 42% 58%/52% 44% 56% 48%;background:radial-gradient(circle at 30% 30%,rgba(var(--accent-rgb),.55),transparent 60%),radial-gradient(circle at 75% 65%,rgba(var(--accent-2-rgb),.5),transparent 60%),radial-gradient(circle at 40% 85%,rgba(59,130,246,.4),transparent 60%);filter:blur(40px);opacity:.75;animation:blob 14s ease-in-out infinite alternate}@keyframes blob{to{border-radius:58% 42% 55% 45%/45% 58% 42% 55%;transform:rotate(14deg) scale(1.05)}}.photo-scroll,.photo-pointer{width:100%;will-change:transform}.photo-pointer{transition:transform .6s cubic-bezier(.215,.61,.355,1)}.photo-pointer img{width:min(100%,560px);height:auto;margin:0 auto;-webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent 99%);mask-image:linear-gradient(to bottom,#000 78%,transparent 99%)}@media (min-width: 1500px){.hero-inner{gap:48px}}@media (max-width: 1000px){.hero-inner{gap:16px}.identity{font-size:clamp(44px,6.5vw,65px)}}@media (max-width: 700px){.hero{padding-block:28px;min-height:0}.hero-inner{grid-template-columns:1fr;align-content:center;gap:20px;text-align:center}.hero-copy{display:contents}.identity-stage{--identity-slide: 60px;grid-row:1;justify-self:center;margin:0;text-align:left}.identity{font-size:clamp(38px,10vw,56px);line-height:1.05}.identity button{padding:0}.hero-portrait{grid-row:2;justify-self:center;width:min(82%,40svh)}.hero-intro{grid-row:3;margin:0 auto}.hero-cta{grid-row:4;justify-self:center}.hero-availability{grid-row:5;margin:0}.brand-role{display:none}}.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(20px,3.5vw,34px);align-items:start}.about-grid>*{min-width:0}.about-text{margin:0 0 22px;font-size:16px;line-height:1.8;color:var(--text-dim)}.facts{margin:0;border-top:1px dashed var(--border)}.facts div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--border)}.facts dt{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.facts dd{margin:0;font-size:14.5px;text-align:right;overflow-wrap:anywhere}.facts a:hover{color:var(--accent)}.editor-wrap{position:relative}.editor-halo{position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;z-index:-1;border-radius:22px;background:linear-gradient(120deg,rgba(var(--accent-rgb),.22),rgba(var(--accent-2-rgb),.12));filter:blur(26px);opacity:.7}.editor{overflow:hidden;border-radius:14px;border:1px solid var(--border-strong);background:#0a0c12;box-shadow:0 30px 60px -25px #000c}.editor-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#10131b;border-bottom:1px solid var(--border)}.lights{display:flex;gap:7px}.lights i{width:11px;height:11px;border-radius:50%;background:var(--border-strong)}.editor .lights i:nth-child(1){background:#ff5f57cc}.editor .lights i:nth-child(2){background:#febc2ecc}.editor .lights i:nth-child(3){background:#28c840cc}.editor-file{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13.5px;color:var(--text-dim)}.pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:blip 1.6s ease-in-out infinite}.editor-lang{font-family:var(--mono);font-size:12px;color:var(--text-faint);letter-spacing:.08em}.editor-body{position:relative;padding:14px 16px 16px 6px;overflow-x:auto;font-family:var(--mono);font-size:clamp(11.5px,1.35vw,13px);line-height:1.8}.code-line{display:flex;white-space:pre;min-height:1.8em;opacity:0;clip-path:inset(0 100% 0 0)}.code-line.on{animation:typeLine .42s steps(22,end) forwards}@keyframes typeLine{0%{opacity:1;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}.code-line:first-child:not(.on){opacity:1;clip-path:none}.ln{flex:none;width:2.6em;padding-right:1em;text-align:right;color:var(--text-faint);opacity:.55;-webkit-user-select:none;user-select:none}.block-caret{display:inline-block;width:.55em;height:1.15em;margin-left:2px;align-self:center;background:var(--accent);animation:caret 1s steps(1) infinite}.block-caret.trailing{margin-left:2.6em}.tk-kw{color:#c792ea}.tk-ty{color:#ffcb6b}.tk-str{color:#5ef0c0}.tk-fn{color:#82aaff}.tk-attr{color:#8fb0ff}.tk-tag{color:#ff8fa8}.tk-num{color:#f9a26c}.tk-cm{color:var(--text-faint);font-style:italic}.tk-ok{color:var(--accent-2)}.tk-dim{color:var(--text-faint)}.editor-output{padding:12px 16px;border-top:1px dashed var(--border);background:#07080d;font-family:var(--mono);font-size:13.5px;line-height:1.7;max-height:260px;overflow:auto}.out-line{white-space:pre-wrap;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}}.editor-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid var(--border);background:#0d1017}.run-btn,.ghost-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:9px;font-family:var(--mono);font-size:14px;cursor:pointer;transition:background .2s,border-color .2s,opacity .2s}.run-btn{border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.1);color:var(--accent)}.run-btn:hover:not(:disabled){background:rgba(var(--accent-rgb),.2);border-color:rgba(var(--accent-rgb),.6)}.run-btn svg{transition:transform .2s}.run-btn:hover:not(:disabled) svg{transform:scale(1.15)}.ghost-btn{border:1px solid var(--border-strong);background:none;color:var(--text-dim)}.ghost-btn:hover:not(:disabled){border-color:rgba(var(--accent-rgb),.4);color:var(--text)}.run-btn:disabled,.ghost-btn:disabled{opacity:.4;cursor:not-allowed}.editor-status{margin-left:auto;font-family:var(--mono);font-size:12.5px;color:var(--text-faint)}@media (max-width: 820px){.about-grid{grid-template-columns:1fr}}@property --angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:clamp(30px,5vw,44px)}.stat-float{animation:float 6s ease-in-out infinite}@keyframes float{50%{translate:0 -7px}}.stat-card{position:relative;height:100%;border-radius:18px;border:1px solid var(--border);background:radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%),color-mix(in srgb,var(--c) 16%,transparent),transparent 70%),var(--surface);transform:perspective(700px) rotateX(var(--tx, 0deg)) rotateY(var(--ty, 0deg));transition:transform .25s var(--ease-out),border-color .25s}.stat-card:hover{border-color:color-mix(in srgb,var(--c) 30%,transparent)}.stat-border{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;padding:1px;border-radius:inherit;background:conic-gradient(from var(--angle),transparent 0 68%,var(--c) 86%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.35;animation:angle 5s linear infinite;transition:opacity .3s;pointer-events:none}.stat-card:hover .stat-border{opacity:1}@keyframes angle{to{--angle: 360deg}}.stat-tilt{position:relative;z-index:1;padding:22px 12px 20px;text-align:center}.stat-orbit{position:relative;display:grid;place-items:center;width:clamp(78px,9vw,96px);aspect-ratio:1;margin:0 auto 14px}.stat-glow{position:absolute;top:-15%;right:-15%;bottom:-15%;left:-15%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 18%,transparent),transparent 70%);animation:glow 3.2s ease-in-out infinite}@keyframes glow{50%{opacity:.45;transform:scale(.92)}}.orbit{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;stroke:var(--c)}.orbit circle[fill=none]{opacity:.3}.orbit .fill{fill:var(--c);stroke:none}.spin{animation:spin linear infinite}.spin-rev{animation:spin linear infinite reverse}@keyframes spin{to{transform:rotate(360deg)}}.stat-number{position:relative;margin:0;font-size:clamp(24px,3vw,30px);font-weight:700;letter-spacing:-.03em;color:var(--c);font-variant-numeric:tabular-nums;text-shadow:0 0 24px color-mix(in srgb,var(--c) 45%,transparent)}.stat-label{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:500;line-height:1.3;color:var(--text-dim)}.stat-label svg{flex:none;color:var(--c);opacity:.7}@media (max-width: 760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.comp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.comp-card{display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(120% 70% at 0% 0%,rgba(var(--accent-rgb),.08),transparent 55%),var(--surface)}.comp-visual{position:relative;display:grid;place-items:center;min-height:170px;padding:14px;border-bottom:1px solid var(--border);background:radial-gradient(60% 70% at 50% 55%,rgba(var(--accent-rgb),.16),transparent 70%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0 / 18px 18px,linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0 / 18px 18px}.comp-num{position:absolute;top:10px;right:14px;font-family:var(--sans);font-size:44px;font-weight:800;line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(var(--accent-rgb),.35);pointer-events:none}.comp-body{display:flex;flex:1;flex-direction:column;gap:12px;padding:20px 22px 22px}.comp-head{display:flex;align-items:center;gap:12px}.comp-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#0b0b0f;transition:transform .4s var(--ease-out)}.comp-card:hover .comp-icon{transform:rotate(-8deg) scale(1.08)}.comp-title{margin:0;font-family:var(--sans);font-size:19px;font-weight:700;line-height:1.2;letter-spacing:-.015em;text-transform:none;color:var(--text-bright)}.comp-desc{flex:1;margin:0;font-size:14px;color:var(--text-dim)}.viz{width:100%;max-width:300px;height:auto;overflow:visible;transition:transform .6s var(--ease-out)}.comp-card:hover .viz{transform:scale(1.04)}.viz-edge{fill:none;stroke:rgba(var(--accent-rgb),.45);stroke-width:1.2;stroke-dasharray:3 4;animation:viz-flow 1.4s linear infinite}@keyframes viz-flow{to{stroke-dashoffset:-14}}.viz-packet{fill:var(--accent-2)}.viz-node{fill:#0d0d11;stroke:rgba(var(--accent-rgb),.55);stroke-width:1.2}.viz-node.strong{fill:var(--accent);stroke:var(--accent)}.viz-node.strong-line{stroke:var(--accent);stroke-width:1.5}.viz-label{font-family:var(--code);font-size:9px;text-anchor:middle;fill:var(--text-dim);text-transform:none}.viz-label.dark{font-weight:700;fill:#0b0b0f}.viz-label.faint{fill:var(--text-faint)}.viz-ring{fill:none;stroke:rgba(var(--accent-rgb),.5);stroke-width:1.2;transform-box:fill-box;transform-origin:center}.viz-ring.dashed{stroke-dasharray:4 6}.viz-core{fill:var(--accent)}.spin-slow{stroke-dasharray:2 10;animation:spin 24s linear infinite}.spin-rev-slow{animation:spin 18s linear infinite reverse}.viz-scan{stroke:var(--accent-2);stroke-width:1.4;opacity:.85}.viz-bar{fill:rgba(var(--accent-rgb),.55)}.viz-line{fill:#ffffff24}.viz-dot{fill:#ffffff40}.viz-caret{fill:var(--accent-2);animation:caret 1s steps(1) infinite}.viz-check{fill:none;stroke:var(--accent-2);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:46;stroke-dashoffset:46;animation:viz-check 3.2s ease-in-out infinite}@keyframes viz-check{15%,80%{stroke-dashoffset:0}95%,to{stroke-dashoffset:46}}.viz-pulse{fill:none;stroke:var(--accent);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:viz-pulse 2.6s ease-out infinite}.viz-pulse.late{animation-delay:1.3s}@keyframes viz-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}.viz-orbit{transform-origin:125px 70px;animation:spin 16s linear infinite}@media (max-width: 1000px){.comp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.comp-grid{grid-template-columns:1fr}}.xp-role{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.xp-role-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08);color:var(--accent)}.xp-role h3{margin:0;font-size:18px;font-weight:650;letter-spacing:-.01em;color:var(--text-bright)}.xp-company{margin:0;font-size:14.5px;color:var(--text-dim)}.xp-role-period{font-family:var(--mono);font-size:13.5px;color:var(--text-faint);white-space:nowrap}.xp-lead{margin:14px 0 22px;padding-left:14px;border-left:2px solid rgba(var(--accent-rgb),.4);font-size:15.5px;color:var(--text-dim)}.xp-timeline{position:relative;display:grid;gap:14px;padding-left:22px}.xp-timeline:before{content:"";position:absolute;top:8px;bottom:8px;left:6px;border-left:1px dashed var(--border-strong)}.xp-card{border-radius:18px}.xp-node{position:absolute;top:36px;left:-21px;width:9px;height:9px;border-radius:50%;border:1px solid var(--accent);background:var(--bg)}.xp-card.open .xp-node{background:var(--accent);box-shadow:0 0 10px var(--accent)}.xp-head{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:0;background:none;text-align:left;cursor:pointer}.xp-logo{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:12px;border:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:15px;font-weight:700}.xp-title{display:flex;flex:1;flex-direction:column;min-width:0}.xp-name{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:16.5px;font-weight:650;color:var(--text-bright)}.xp-sub{font-size:14px;color:var(--text-dim)}.xp-side{display:flex;align-items:center;gap:10px}.xp-period{font-family:var(--mono);font-size:13px;color:var(--text-faint);white-space:nowrap}.xp-chevron{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--border);color:var(--text-dim);transition:transform .3s var(--ease-out),color .2s}.xp-card.open .xp-chevron{transform:rotate(180deg);color:var(--accent)}.xp-head:hover .xp-chevron{color:var(--text-bright)}.xp-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease-out)}.xp-card.open .xp-body{grid-template-rows:1fr}.xp-body-inner{overflow:hidden;padding:0 18px 0 78px}.xp-card.open .xp-body-inner{padding-bottom:18px}.xp-list{margin:2px 0 16px;padding:14px 0 0;list-style:none;border-top:1px dashed var(--border)}.xp-list li{position:relative;margin-bottom:9px;padding-left:16px;font-size:15px;color:var(--text-dim)}.xp-list li:before{content:"";position:absolute;top:.72em;left:2px;width:5px;height:5px;border-radius:50%;background:var(--text-faint)}.sub-head{display:flex;align-items:center;gap:8px;margin:36px 0 14px;font-family:var(--mono);font-size:13.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.interns{display:grid;gap:10px;margin:0;padding:0;list-style:none}.intern{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:14px 16px;border-radius:12px;border:1px dashed var(--border-strong);background:#ffffff04;transition:border-color .2s}.intern:hover{border-color:rgba(var(--accent-rgb),.4)}.intern-period{padding-top:2px;font-family:var(--mono);font-size:13.5px;color:var(--text-faint)}.intern-role{margin:0;font-size:15.5px;font-weight:600}.intern-role span{font-weight:400;color:var(--text-dim)}.intern-desc{margin:2px 0 0;font-size:14.5px;color:var(--text-dim)}@media (max-width: 640px){.xp-role{grid-template-columns:auto 1fr}.xp-role-period{grid-column:2}.xp-timeline{padding-left:16px}.xp-node{left:-15px}.xp-head{flex-wrap:wrap;padding:14px}.xp-side{width:100%;padding-left:60px;justify-content:flex-start;flex-wrap:wrap}.xp-chevron{margin-left:auto}.xp-body-inner{padding:0 14px}.intern{grid-template-columns:1fr;gap:4px}}.skill-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.skill-filter button{padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:#ffffff05;font-family:var(--mono);font-size:13px;color:var(--text-dim);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.skill-filter button:hover{color:var(--text-bright);border-color:var(--border-strong)}.skill-filter button.on{color:var(--accent);border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.1)}.skill-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px dashed var(--border)}@media (max-width: 760px){.skill-row{grid-template-columns:minmax(0,1fr);gap:12px}.skill-label .count{margin-left:4px}}.skill-label{display:flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.skill-label .idx{color:var(--accent)}.skill-label .count{margin-left:auto;padding:0 6px;border-radius:5px;background:#ffffff0d;font-size:12px;color:var(--text-faint)}.skill-boxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.skill-box{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:84px;padding:10px 6px 9px;overflow:hidden;border-radius:12px;border:1px solid rgba(var(--accent-rgb),.18);background:#ffffff08;text-align:center;cursor:default;transition:transform .45s var(--ease-out),border-color .45s ease,box-shadow .45s ease;animation:pop .4s var(--ease-out) backwards}.skill-fill{position:absolute;top:0;left:-50%;z-index:-1;width:200%;aspect-ratio:1;border-radius:42% 58% 45% 55%/52% 48%;background:linear-gradient(180deg,var(--accent),var(--accent-2));transform:translateY(105%) rotate(0);transition:transform .75s cubic-bezier(.22,1,.36,1);will-change:transform}.skill-logo{width:26px;height:26px;object-fit:contain;transition:transform .45s var(--ease-out)}.skill-logo.invert{filter:invert(1) hue-rotate(180deg)}.skill-logo.line{color:var(--accent);transition:transform .45s var(--ease-out),color .3s}.skill-name{max-width:100%;font-size:11px;line-height:1.2;letter-spacing:0;overflow-wrap:anywhere;-webkit-hyphens:manual;hyphens:manual;color:var(--text);transition:color .3s}@media (hover: hover){.skill-box:hover .skill-fill{transform:translateY(-30%) rotate(170deg)}.skill-box:hover{transform:translateY(-4px);border-color:rgba(var(--accent-rgb),.6);box-shadow:0 12px 28px #00000073}.skill-box:hover .skill-logo{transform:scale(1.12)}.skill-box:hover .skill-logo.line,.skill-box:hover .skill-name{color:#fff}}@media (max-width: 520px){.skill-boxes{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-box{min-height:80px}}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project{display:flex;flex-direction:column;gap:10px;padding:22px}.projects{grid-template-columns:repeat(6,minmax(0,1fr))}.project{grid-column:span 3}.project.has-thumb{grid-column:span 2}.project-thumb{overflow:hidden;margin-bottom:6px;border-radius:10px;border:1px solid var(--border-strong);background:#0c0c10}.thumb-bar{display:flex;align-items:center;gap:5px;padding:7px 10px;border-bottom:1px solid var(--border);background:#121218;font-size:11px;color:var(--text-faint)}.thumb-bar i{width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.thumb-bar span{margin-left:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-transform:none}.thumb-img{aspect-ratio:16 / 10;overflow:hidden}.thumb-img img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .6s var(--ease-out)}.project:hover .thumb-img img{transform:scale(1.04)}.project-top{display:flex;align-items:center;gap:10px}.project-idx{font-family:var(--mono);font-size:12.5px;color:var(--accent)}.project-tag{flex:1;min-width:0;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.project-go{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--border);color:var(--text-dim);transition:transform .3s var(--ease-out),color .2s,border-color .2s}.project:hover .project-go{transform:rotate(45deg);color:var(--accent);border-color:rgba(var(--accent-rgb),.5)}.project-name{margin:0;font-size:19px;font-weight:650;letter-spacing:-.015em;color:var(--text-bright)}.project-desc{flex:1;margin:0;font-size:15px;color:var(--text-dim)}@media (max-width: 1000px){.project.has-thumb{grid-column:span 3}.project.has-thumb:nth-child(3){grid-column:1 / -1}}@media (max-width: 680px){.projects{grid-template-columns:1fr}.project,.project.has-thumb{grid-column:1 / -1}}.refs{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:stretch}.ref-feature{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:26px;min-height:340px;margin:0;padding:clamp(28px,4vw,44px);overflow:hidden;background:radial-gradient(90% 90% at 100% 0%,rgba(var(--accent-2-rgb),.14),transparent 60%),radial-gradient(80% 80% at 0% 100%,rgba(var(--accent-rgb),.12),transparent 60%),var(--surface)}.ref-bigmark{position:absolute;top:-38px;right:18px;font-family:Georgia,Times New Roman,serif;font-size:240px;line-height:1;background:linear-gradient(160deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.35;pointer-events:none}.ref-quote{position:relative;margin:0;padding-top:18px;font-family:var(--mono);font-size:clamp(16px,1.55vw,20px);font-weight:700;line-height:1.6;letter-spacing:.02em;color:var(--text-bright);animation:ref-in .7s var(--ease-out)}.ref-caption{display:flex;align-items:center;gap:14px;animation:ref-in .7s var(--ease-out) .1s both}@keyframes ref-in{0%{opacity:0;transform:translateY(12px);filter:blur(6px)}}.ref-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}.ref-list li{flex:1;display:flex}.ref-person{position:relative;display:flex;flex:1;align-items:center;gap:14px;padding:16px 18px 20px;overflow:hidden;border-radius:var(--radius);border:1px solid #1d1d21;background:var(--surface);text-align:left;cursor:pointer;transition:border-color .3s,background .3s,transform .3s var(--ease-out)}.ref-person:hover{border-color:rgba(var(--accent-rgb),.35);transform:translate(-3px)}.ref-person.on{border-color:rgba(var(--accent-rgb),.6);background:linear-gradient(90deg,rgba(var(--accent-rgb),.1),rgba(var(--accent-2-rgb),.04)),var(--surface)}.ref-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));font-family:var(--sans);font-size:15px;font-weight:700;text-transform:none;color:#0b0b0f;filter:grayscale(.7) brightness(.8);transition:filter .3s}.ref-person.on .ref-avatar,.ref-avatar.lg{filter:none}.ref-avatar.lg{width:52px;height:52px;font-size:18px;box-shadow:0 0 0 4px rgba(var(--accent-rgb),.15)}.ref-meta{display:flex;flex-direction:column;min-width:0}.ref-name{font-family:var(--mono);font-size:16px;font-weight:800;color:var(--text-bright)}.ref-role{font-size:12px;color:var(--text-faint)}.ref-progress{position:absolute;left:18px;right:18px;bottom:9px;height:2px;overflow:hidden;border-radius:2px;background:#ffffff0f}.ref-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:left;animation:ref-progress linear forwards}@keyframes ref-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (max-width: 900px){.refs{grid-template-columns:1fr}.ref-feature{min-height:0}}.edu{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:stretch}.edu>.langs{grid-column:1 / -1}.lang-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 36px}.edu-timeline{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;margin:0;padding:0;list-style:none}.edu-timeline:before{content:"";position:absolute;top:16px;bottom:16px;left:15px;border-left:1px dashed var(--border-strong)}.edu-item{position:relative;padding-left:46px}.edu-node{position:absolute;top:14px;left:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.45);background:var(--surface-2);color:var(--accent)}.edu-node.alt{border-color:#ffc66d73;color:var(--amber)}.edu-card{padding:16px 18px}.edu-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}.edu-row h3{margin:0;font-size:16.5px;font-weight:600;color:var(--text-bright)}.edu-period{font-family:var(--mono);font-size:13px;color:var(--text-faint)}.edu-school{margin:4px 0 0;font-size:14.5px;color:var(--text)}.edu-school span{color:var(--text-faint)}.edu-desc{margin:8px 0 0;font-size:14.5px;color:var(--text-dim)}.langs{padding:18px}.langs .sub-head{margin:0 0 4px}.lang-row{margin-top:16px}.lang-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px}.lang-name{font-size:15px;font-weight:600}.lang-level{font-size:13.5px;color:var(--text-dim)}.lang-bar{position:relative;height:8px;margin-top:8px;overflow:hidden;border-radius:99px;background:#ffffff0f}.lang-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:none;transition:width 1.4s var(--ease-out)}.lang-bar i{position:absolute;top:0;bottom:0;width:2px;background:var(--surface-2)}.journey{padding:18px}.journey .sub-head{margin:0 0 14px}.journey-list{position:relative;margin:0;padding:0;list-style:none}.journey-list:before{content:"";position:absolute;top:10px;bottom:10px;left:57px;width:2px;border-radius:2px;background:linear-gradient(var(--accent),var(--accent-2));opacity:.55}.journey-step{position:relative;display:grid;grid-template-columns:46px 32px 1fr;align-items:start;padding:7px 0}.journey-year{padding-top:3px;font-size:13px;color:var(--text-faint);font-variant-numeric:tabular-nums}.journey-node{z-index:1;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--accent);background:var(--bg);color:var(--accent)}.journey-step.k-intern .journey-node{border-color:#a78bfa;color:#a78bfa}.journey-step.k-training .journey-node{border-color:var(--accent-2);color:var(--accent-2)}.journey-step.k-work .journey-node{border-color:#2dd4bf;background:#2dd4bf;color:#062b27}.journey-step.k-work .journey-year{color:#2dd4bf}.journey-text{display:flex;flex-direction:column;min-width:0}.journey-title{font-size:13.5px;line-height:1.35;color:var(--text)}.journey-place{font-size:12px;line-height:1.35;color:var(--text-faint)}@media (max-width: 760px){.edu,.lang-grid{grid-template-columns:1fr}}.askme{padding:16px 18px 18px;border-radius:14px}.askme-corner{position:absolute;width:16px;height:16px;border:1px solid var(--accent-2);opacity:.5}.askme-corner.tl{top:-1px;left:-1px;border-right:0;border-bottom:0;border-top-left-radius:14px}.askme-corner.br{right:-1px;bottom:-1px;border-left:0;border-top:0;border-bottom-right-radius:14px}.askme-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--border);font-family:var(--mono);font-size:13.5px;color:var(--text-dim)}.askme-head .lights i{width:10px;height:10px}.askme-head .lights i.on{background:var(--accent-2);box-shadow:none}.askme-title{letter-spacing:.04em;white-space:nowrap}.askme-ready{display:flex;align-items:center;gap:6px}.askme-log{display:flex;flex-direction:column;gap:14px;height:340px;padding:4px 4px 12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.msg{max-width:92%;animation:fadeIn .25s ease-out}.msg-who{margin-bottom:4px;font-family:var(--mono);font-size:12.5px;letter-spacing:.05em;color:var(--text-faint)}.msg-text{font-size:15px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}.msg-you{align-self:flex-end;text-align:right}.msg-you .msg-who{color:var(--accent)}.msg-you .msg-text{display:inline-block;padding:7px 12px;border-radius:10px;border:1px solid rgba(var(--accent-rgb),.25);background:rgba(var(--accent-rgb),.08);color:var(--text-bright);text-align:left}.msg-bora .msg-who,.msg-bora .caret{color:var(--accent-2)}.thinking{display:flex;gap:4px;padding:6px 0}.thinking i{width:6px;height:6px;border-radius:50%;background:var(--accent-2);animation:bounce 1s ease-in-out infinite}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}.askme-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0 12px;border-top:1px dashed var(--border)}.askme-suggest button{padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-family:var(--mono);font-size:13px;color:var(--text-dim);white-space:nowrap;cursor:pointer;transition:color .15s,border-color .15s}.askme-suggest button:hover:not(:disabled){color:var(--accent-2);border-color:var(--accent-2)}.askme-suggest button:disabled{opacity:.4;cursor:not-allowed}.askme form{margin:0}.askme-input{display:flex;align-items:center;gap:8px;padding:9px 10px 9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);transition:border-color .15s}.askme-input:focus-within{border-color:var(--accent-2)}.askme-input .prompt{font-family:var(--mono);font-size:15px;color:var(--accent-2)}.askme-input input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:var(--mono);font-size:14.5px;color:var(--text-bright)}.askme-input input::placeholder{color:var(--text-faint)}.askme-input .send{flex:none;padding:6px 10px;border-radius:6px;border:1px solid var(--border-strong);background:none;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--text-dim);cursor:pointer;transition:color .15s,border-color .15s}.askme-input .send:hover:not(:disabled){color:var(--accent-2);border-color:var(--accent-2)}.askme-input .send:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 520px){.askme{padding:14px}.askme-log{height:300px}.askme-input .send .long{display:none}.askme-input input{font-size:16px}}.contact-avail{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:18px;padding:18px 20px;border-radius:var(--radius);background:radial-gradient(80% 120% at 0% 0%,rgba(var(--green-rgb),.12),transparent 60%),var(--surface)}.contact-avail:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;padding:1px;border-radius:inherit;background:conic-gradient(from var(--angle),rgba(var(--green-rgb),.15) 0 55%,var(--green) 75%,var(--accent) 85%,rgba(var(--green-rgb),.15) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:angle 6s linear infinite}.contact-avail p{margin:0;font-size:14.5px;color:var(--text-dim)}.contact-lead{max-width:46ch;margin:0 0 18px;font-size:clamp(17px,2.2vw,20px);line-height:1.5;color:var(--text)}.contact-mail{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px}.contact-ico{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:11px;border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.1);color:var(--accent)}.contact-mail-text{display:flex;flex:1;flex-direction:column;min-width:0}.contact .k{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.contact-mail-text a{font-size:clamp(16px,2.4vw,19px);font-weight:600;color:var(--text-bright);overflow-wrap:anywhere;transition:color .15s}.contact-mail-text a:hover{color:var(--accent)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin:12px 0 22px}.contact-link{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;gap:1px 12px;padding:14px 16px}.contact-link .contact-ico{grid-row:span 2;width:40px;height:40px;border-color:color-mix(in srgb,var(--ic) 45%,transparent);background:color-mix(in srgb,var(--ic) 16%,transparent);color:var(--ic)}.contact-link .k{grid-column:2}.contact-link .v{grid-column:2;font-size:15px;overflow-wrap:anywhere}.contact-link .go{grid-column:3;grid-row:1 / span 2;color:var(--text-faint);transition:transform .25s,color .2s}a.contact-link:hover .go{transform:rotate(45deg);color:var(--accent)}.contact-cv{display:flex;flex-wrap:wrap;gap:10px}.contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(18px,3vw,32px);align-items:stretch}.globe-card{position:relative;display:flex;flex-direction:column;min-height:420px;padding:22px 22px 0;overflow:hidden;background:radial-gradient(120% 80% at 50% 110%,rgba(var(--accent-rgb),.12),transparent 60%),#08090b}.globe-label{margin:0 0 8px;font-size:13px;letter-spacing:.18em;color:var(--text-faint)}.globe-title{position:relative;z-index:1;margin:0;font-family:var(--sans);font-size:clamp(20px,2.2vw,26px);font-weight:700;letter-spacing:-.02em;line-height:1.25;text-transform:none;color:var(--text-bright)}.globe-title span{color:var(--text-faint)}.globe-wrap{position:relative;flex:1;min-height:300px;margin:10px -22px 0}.globe-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;cursor:grab;touch-action:pan-y}.globe-canvas:active{cursor:grabbing}@media (max-width: 900px){.contact-layout{grid-template-columns:1fr}.globe-card{min-height:380px}}.ruler-tick,.ruler-marker span,.editor-body,.editor-output{font-family:var(--code);font-weight:400;text-transform:none;letter-spacing:0}.editor-output{font-size:12.5px}.stat-number{font-family:var(--sans);font-weight:700;letter-spacing:-.03em}.xp-name,.project-name,.xp-role h3,.edu-row h3{font-weight:900;letter-spacing:.01em}.section-title .dud{font-family:var(--code);font-weight:500;color:var(--text-faint)}.section-title .grad .dud{color:var(--accent);opacity:.75}.contact-grid>.contact-link:last-child:nth-child(odd){grid-column:1 / -1}@media (max-width: 520px){.contact-mail .btn{width:100%}.contact-mail-text a{font-size:15px}}.copy-sign{font-family:var(--sans);font-weight:500}.music-dock{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:45;display:flex;align-items:center;gap:10px}@media (min-width: 1100px){.music-dock{right:104px;bottom:24px}}.music-btn{position:relative;display:grid;place-items:center;flex:none;width:56px;height:56px;padding:0;border:1px solid rgba(45,212,191,.35);border-radius:50%;background:#050505;cursor:pointer;box-shadow:0 10px 30px #0000008c,0 0 18px #2dd4bf26;transition:transform .25s var(--ease-out),border-color .25s,box-shadow .25s}.music-btn:hover{transform:scale(1.08);border-color:#2dd4bfb3}.mini-globe{position:relative;z-index:1;display:block;opacity:.8;transition:opacity .3s}.music-btn:hover .mini-globe,.music-dock.is-playing .mini-globe{opacity:1}.music-dock.is-playing .music-btn{border-color:#2dd4bfbf;box-shadow:0 10px 30px #0000008c,0 0 26px #2dd4bf59}.music-btn:active{transform:scale(.96)}.music-btn svg{position:relative;z-index:1}.music-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid #2dd4bf;opacity:0;pointer-events:none}.music-dock.is-playing .music-ring{animation:music-pulse 1.6s ease-out infinite}@keyframes music-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.music-vol{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;border-radius:999px;border:1px solid rgba(45,212,191,.35);background:#080a0ceb;box-shadow:0 10px 30px #00000080;opacity:0;visibility:hidden;transform:translate(14px);transition:opacity .25s ease,transform .35s var(--ease-out),visibility 0s .25s}.music-dock.vol-open .music-vol{opacity:1;visibility:visible;transform:none;transition-delay:0s}.music-mute{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:transparent;color:#2dd4bf;cursor:pointer}.music-mute:hover{background:#2dd4bf1f}.music-vol input[type=range]{width:120px;height:4px;margin:0;border-radius:999px;background:linear-gradient(90deg,#2dd4bf var(--vol, 60%),rgba(255,255,255,.16) var(--vol, 60%));-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.music-vol input[type=range]::-webkit-slider-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#e9fffb;box-shadow:0 0 0 3px #2dd4bf73;-webkit-appearance:none;-moz-appearance:none;appearance:none}.music-vol input[type=range]::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#e9fffb;box-shadow:0 0 0 3px #2dd4bf73}@media (hover: none){.music-vol{display:none}}
