:root{color-scheme:light;--grid: rgba(30, 41, 90, .035);--hover: rgba(30, 41, 90, .05);--glass: rgba(255, 255, 255, .88);--nav-glass: rgba(255, 255, 255, .85);--nav-solid: rgba(255, 255, 255, .98);--stage-a: #ffffff;--stage-b: #eef3ff;--ink-mix: #0d1530;--ctf-bg: #fff7e0;--grad-a: #0891b2;--grad-b: #6d28d9;--grad-c: #2563eb;--bg: #f5f8ff;--surface: #ffffff;--surface-2: #f1f5ff;--border: rgba(30, 41, 90, .1);--border-strong: rgba(30, 41, 90, .18);--text: #0d1530;--muted: #4a5578;--dim: #6b7699;--accent: #0891b2;--accent-bright: #22d3ee;--accent-2: #6d28d9;--danger: #e11d48;--ok: #059669;--shadow: 0 1px 2px rgba(16, 24, 64, .06), 0 8px 24px rgba(16, 24, 64, .06);--shadow-lg: 0 24px 60px rgba(16, 24, 64, .14);--radius: 16px;--sans: "Inter", system-ui, sans-serif;--display: "Space Grotesk", "Inter", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--max: 1160px;--term-bg: #0b0f17}:root[data-theme=dark]{color-scheme:dark;--bg: #070d24;--surface: #0f1a3d;--surface-2: #14214b;--border: rgba(148, 163, 255, .14);--border-strong: rgba(148, 163, 255, .28);--text: #eaf0ff;--muted: #a8b3d9;--dim: #8590b8;--accent: #22d3ee;--accent-2: #a78bfa;--danger: #ff4d6d;--ok: #34d399;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .45);--grid: rgba(148, 163, 255, .05);--hover: rgba(255, 255, 255, .06);--glass: rgba(15, 26, 61, .85);--nav-glass: rgba(7, 13, 36, .82);--nav-solid: rgba(7, 13, 36, .97);--stage-a: #111c44;--stage-b: #0a1230;--ink-mix: #ffffff;--ctf-bg: rgba(255, 184, 0, .12);--grad-a: #22d3ee;--grad-b: #a78bfa;--grad-c: #60a5fa}:root[data-theme=dark] .soc-legend .lx{color:#4ade80}:root[data-theme=dark] .soc-legend .wn{color:#60a5fa}:root[data-theme=dark] .thm-name{color:#34d399}:root[data-theme=dark] .cert.ctf .cert-group{color:#fbbf24}:root[data-theme=dark] .tl-type.work{background:#22d3ee1f}:root[data-theme=dark] .tl-type.edu{background:#a78bfa29}:root[data-theme=dark] .eyebrow{background:#34d3991a;border-color:#34d3994d}body{transition:background-color .35s ease,color .35s ease}.theme-toggle{width:40px;height:40px;border-radius:10px;cursor:pointer;flex:none;display:grid;place-items:center;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);transition:border-color .2s,color .2s,transform .2s}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle:active{transform:scale(.94)}.theme-toggle svg{width:19px;height:19px}.theme-toggle .moon,.theme-toggle .term{display:none}:root[data-theme=dark] .theme-toggle .sun,:root[data-theme=root] .theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .moon{display:block}:root[data-theme=root] .theme-toggle .term{display:block}.theme-picker{position:relative}.theme-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:176px;display:grid;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s,transform .18s}.theme-menu.open{opacity:1;transform:none;pointer-events:auto}.theme-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;font:500 14px var(--sans);color:var(--text);background:none;border:0;border-radius:8px;padding:9px 10px}.theme-menu button:hover{background:var(--hover)}.theme-menu button[aria-checked=true]{color:var(--accent);font-weight:600}.theme-menu button[aria-checked=true]:after{content:"✓";margin-left:auto}.theme-menu small{color:var(--dim);font-size:11px;font-family:var(--mono)}.theme-menu .sw{width:18px;height:18px;border-radius:5px;border:1px solid var(--border-strong);flex:none}.sw-light{background:linear-gradient(135deg,#fff 50%,#22d3ee 50%)}.sw-dark{background:linear-gradient(135deg,#070d24 50%,#a78bfa 50%)}.sw-root{background:linear-gradient(135deg,#050505 50%,#1f8bff 50%)}:root[data-theme=root]{color-scheme:dark;--bg: #050505;--surface: #0c0c0c;--surface-2: #131313;--border: rgba(255, 255, 255, .09);--border-strong: rgba(31, 139, 255, .45);--text: #ececec;--muted: #a3a3a3;--dim: #777777;--accent: #1f8bff;--accent-bright: #1f8bff;--accent-2: #ffffff;--danger: #ff1f3d;--ok: #3dff7a;--shadow: none;--shadow-lg: 0 0 0 1px rgba(31, 139, 255, .12), 0 20px 50px rgba(0, 0, 0, .7);--grid: rgba(255, 255, 255, .025);--hover: rgba(31, 139, 255, .1);--glass: rgba(8, 8, 8, .9);--nav-glass: rgba(5, 5, 5, .88);--nav-solid: rgba(5, 5, 5, .98);--stage-a: #0d0d0d;--stage-b: #050505;--ink-mix: #ffffff;--ctf-bg: rgba(31, 139, 255, .12);--grad-a: #1f8bff;--grad-b: #ffffff;--grad-c: #7cc4ff;--radius: 2px;--display: "JetBrains Mono", ui-monospace, monospace}:root[data-theme=root] body{background:radial-gradient(900px 500px at 75% 0%,rgba(31,139,255,.1),transparent 65%),linear-gradient(var(--grid) 1px,transparent 1px) 0 0 / 44px 44px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0 / 44px 44px,var(--bg)}:root[data-theme=root] body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.025) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55));animation:crtFlicker 6s infinite steps(1)}@keyframes crtFlicker{0%,96%,to{opacity:1}97%{opacity:.75}98%{opacity:1}99%{opacity:.85}}:root[data-theme=root] ::selection{background:#1f8bff;color:#000}:root[data-theme=root] h1,:root[data-theme=root] h2,:root[data-theme=root] h3{letter-spacing:-.03em}:root[data-theme=root] .section-head h2{text-transform:lowercase;display:inline-block;border-bottom:3px solid var(--accent);padding-bottom:6px}:root[data-theme=root] .section-head h2:before{content:"> ";color:var(--accent)}:root[data-theme=root] .kicker{color:var(--accent)}:root[data-theme=root] .kicker:before{content:"// "}:root[data-theme=root] .hero h1{text-transform:lowercase;position:relative;font-weight:700}:root[data-theme=root] .hero h1:before{content:attr(data-prompt);display:block;font-size:15px;font-weight:600;letter-spacing:0;color:var(--accent);margin-bottom:12px}:root[data-theme=root] .hero h1:after{content:"_";color:var(--accent);animation:blinkCur 1s steps(1) infinite;margin-left:4px}@keyframes blinkCur{50%{opacity:0}}:root[data-theme=root] .hero-role{background:none;color:var(--text);-webkit-text-fill-color:currentColor}:root[data-theme=root] .hero-role:before{content:"[";color:var(--accent);margin-right:6px}:root[data-theme=root] .hero-role:after{content:"]";color:var(--accent);margin-left:6px}:root[data-theme=root] .stat b{-webkit-text-fill-color:currentColor;color:#fff;background:none}:root[data-theme=root] .stat b:first-letter{color:var(--accent)}:root[data-theme=root] .hero h1,:root[data-theme=root] .section-head h2{animation:glitchShift 7s infinite}@keyframes glitchShift{0%,93%,to{transform:none;text-shadow:none;clip-path:none}94%{transform:translate(-3px,1px);text-shadow:3px 0 #1f8bff,-3px 0 #00e5ff;clip-path:inset(10% 0 55% 0)}95%{transform:translate(3px,-1px);text-shadow:-3px 0 #1f8bff,3px 0 #00e5ff;clip-path:inset(55% 0 8% 0)}96%{transform:translate(-1px);text-shadow:2px 0 #1f8bff;clip-path:none}}:root[data-theme=root] .btn{border-radius:0;font-family:var(--mono);text-transform:lowercase;letter-spacing:.02em}:root[data-theme=root] .btn.primary{background:var(--accent);color:#000;box-shadow:0 0 22px #1f8bff59}:root[data-theme=root] .btn.primary:hover{background:#fff;color:#000;box-shadow:0 0 26px #ffffff40}:root[data-theme=root] .btn.ghost{background:transparent;border-color:#ffffff40}:root[data-theme=root] .btn.ghost:hover{border-color:var(--accent);color:var(--accent)}:root[data-theme=root] .logo-mark{background:var(--accent);color:#000;border-radius:0}:root[data-theme=root] .nav-links a{font-family:var(--mono);font-size:13.5px;text-transform:lowercase;border-radius:0}:root[data-theme=root] .nav-links a.active{background:none;color:var(--accent);box-shadow:inset 0 -2px var(--accent)}:root[data-theme=root] .theme-toggle,:root[data-theme=root] .menu-toggle,:root[data-theme=root] .theme-menu,:root[data-theme=root] .theme-menu button{border-radius:0}:root[data-theme=root] .eyebrow{border-radius:0;background:transparent;border-color:#3dff7a59;font-family:var(--mono);font-size:12.5px}:root[data-theme=root] .stats,:root[data-theme=root] .tl-body,:root[data-theme=root] .project-inner,:root[data-theme=root] .skill,:root[data-theme=root] .cert,:root[data-theme=root] .facts div,:root[data-theme=root] .thm-card,:root[data-theme=root] .contact-card,:root[data-theme=root] .soc-stage,:root[data-theme=root] .console,:root[data-theme=root] .world-card,:root[data-theme=root] .globe-card,:root[data-theme=root] .contact-links a{border-radius:0}:root[data-theme=root] .project-inner{background:var(--surface);border-top:2px solid var(--accent)}:root[data-theme=root] .project:hover .project-inner,:root[data-theme=root] .skill:hover,:root[data-theme=root] .tl-body:hover{box-shadow:0 0 0 1px var(--accent),0 0 30px #1f8bff2e}:root[data-theme=root] .project-num,:root[data-theme=root] .metric{color:#fff;border-radius:0}:root[data-theme=root] .metric{background:#1f8bff24}:root[data-theme=root] .tags span,:root[data-theme=root] .chips span{border-radius:0;font-family:var(--mono);font-size:12.5px;background:transparent}:root[data-theme=root] .sdot{border-radius:0;background:var(--accent);box-shadow:0 0 8px var(--accent)}:root[data-theme=root] .skill h3{font-family:var(--mono);text-transform:lowercase}:root[data-theme=root] .tl-type,:root[data-theme=root] .tl-type.work,:root[data-theme=root] .tl-type.edu{border-radius:0;background:#1f8bff1f;color:var(--accent)}:root[data-theme=root] .timeline:before{background:var(--accent);opacity:.5}:root[data-theme=root] .timeline>li:before{border-radius:0;background:#000;border-color:var(--accent);box-shadow:0 0 10px #1f8bff99}:root[data-theme=root] .soc-legend span,:root[data-theme=root] .soc-hint{border-radius:0}:root[data-theme=root] .soc-legend .lx{color:#3dff7a}:root[data-theme=root] .soc-legend .sm{color:#1f8bff}:root[data-theme=root] .soc-legend .wn{color:#fff}:root[data-theme=root] .thm-name{color:#3dff7a}:root[data-theme=root] .cert.ctf .cert-group{color:var(--accent)}:root[data-theme=root] .world-card{background:linear-gradient(135deg,#00081a,#050505);border:1px solid var(--border-strong)}:root[data-theme=root] .world-card .kicker{color:var(--accent)}:root[data-theme=root] .photo-inner{border-radius:0;border-color:#000;box-shadow:0 0 0 1px var(--accent),0 0 40px #1f8bff33}:root[data-theme=root] .photo-inner img{filter:grayscale(1) contrast(1.15) brightness(.95)}:root[data-theme=root] .photo-inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;mix-blend-mode:multiply;background:linear-gradient(180deg,#1f8bff59,#1f8bff26)}:root[data-theme=root] .photo-tag{border-radius:0;font-family:var(--mono)}:root[data-theme=root] .photo-tag b{color:var(--accent)}@media (prefers-reduced-motion: reduce){:root[data-theme=root] body:after,:root[data-theme=root] .hero h1,:root[data-theme=root] .section-head h2{animation:none}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;background:radial-gradient(1100px 520px at 85% -10%,rgba(109,40,217,.1),transparent 60%),radial-gradient(900px 480px at -10% 15%,rgba(34,211,238,.14),transparent 60%),linear-gradient(var(--grid) 1px,transparent 1px) 0 0 / 44px 44px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0 / 44px 44px,var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{max-width:100%;display:block}.hero>*,.about-grid>*,.timeline>li>*,.world-card>*,.site-nav>*,.consoles>*,.thm-card>*{min-width:0}a{color:inherit}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.12;margin:0}::selection{background:#22d3ee59}.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#fff;padding:8px 14px;border-radius:8px;z-index:100}.skip:focus{left:8px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:15px;text-decoration:none;padding:12px 20px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}.btn.sm{padding:8px 14px;font-size:14px}.btn.primary{background:linear-gradient(135deg,#0891b2,#2563eb);color:#fff;box-shadow:0 8px 20px #2563eb40}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px #2563eb52}.btn.ghost{border-color:var(--border-strong);color:var(--text);background:var(--surface)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.site-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:24px;max-width:calc(var(--max) + 48px);margin:0 auto;padding:14px 24px}.site-nav:before{content:"";position:fixed;left:0;right:0;top:0;height:68px;z-index:-1;background:#f5f8ff00;transition:background .3s,backdrop-filter .3s,border-color .3s;border-bottom:1px solid transparent}.site-nav.scrolled:before{background:var(--nav-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--border)}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-weight:700;font-size:18px}.logo-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent-bright),var(--accent-2));color:#fff;font-size:14px}.nav-links{display:flex;gap:2px;margin-left:auto}.nav-links a{text-decoration:none;color:var(--muted);font-size:14.5px;font-weight:500;padding:8px 11px;border-radius:8px;transition:color .2s,background .2s}.nav-links a:hover{color:var(--text);background:var(--hover)}.nav-links a.active{color:var(--accent);background:#0891b214}.nav-cta{display:flex;gap:8px}.menu-toggle{display:none;margin-left:auto;width:42px;height:42px;border-radius:10px;cursor:pointer;background:var(--surface);border:1px solid var(--border-strong);flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-toggle i{width:18px;height:2px;background:var(--text);transition:transform .25s,opacity .25s}.site-nav.open .menu-toggle i:nth-child(1){transform:translateY(7px) rotate(45deg)}.site-nav.open .menu-toggle i:nth-child(2){opacity:0}.site-nav.open .menu-toggle i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 1180px){.menu-toggle{display:flex;margin-left:8px;order:2}.theme-toggle{margin-left:auto;order:1}.site-nav .nav-links{order:3}.site-nav .nav-cta{order:4}.nav-links,.nav-cta{display:none}.site-nav.open:before{background:var(--nav-solid);height:100vh}.site-nav.open{flex-wrap:wrap}.site-nav.open .nav-links,.site-nav.open .nav-cta{display:flex;flex-direction:column;width:100%;margin:0}.site-nav.open .nav-links a{font-size:18px;padding:12px 6px}.site-nav.open .nav-cta{flex-direction:row;padding-top:8px}}main{max-width:calc(var(--max) + 48px);margin:0 auto;padding:0 24px}@media (max-width: 600px){main,.site-nav{padding-left:16px;padding-right:16px}}.section{padding:96px 0 0}.section-head{margin-bottom:36px}.kicker{font-family:var(--mono);font-size:13px;color:var(--accent);letter-spacing:.06em;margin:0 0 10px;text-transform:uppercase;font-weight:600}.section-head h2{font-size:clamp(30px,4vw,44px)}.section-sub{color:var(--muted);font-size:17px;max-width:680px;margin:14px 0 0}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;align-items:center;min-height:min(calc(100vh - 68px),860px);padding:24px 0 40px}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;font-size:13.5px;font-weight:600;color:var(--ok);background:#05966914;border:1px solid rgba(5,150,105,.25);padding:6px 14px;border-radius:999px}.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);animation:ping 2s infinite}@keyframes ping{0%{box-shadow:0 0 #05966980}70%,to{box-shadow:0 0 0 8px #05966900}}.hero h1{font-size:clamp(40px,6.2vw,74px);font-weight:700}.hero-role{font-family:var(--display);font-size:clamp(19px,2.2vw,24px);font-weight:600;margin:16px 0 0;background:linear-gradient(90deg,var(--grad-a),var(--grad-b));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-tagline{color:var(--muted);font-size:18px;max-width:520px;margin:16px 0 30px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-links{list-style:none;padding:0;margin:28px 0 0;display:flex;gap:22px;flex-wrap:wrap}.hero-links a{text-decoration:none;color:var(--muted);font-weight:500;font-size:15px;border-bottom:1px solid var(--border-strong);padding-bottom:2px}.hero-links a:hover{color:var(--accent);border-color:var(--accent)}.hero-3d{position:relative;aspect-ratio:1;width:100%;max-width:600px;justify-self:center}#globe,#crt{width:100%;height:100%;display:block;touch-action:pan-y}#swarm{width:100%;height:100%;display:block;cursor:crosshair;touch-action:pan-y}#last-target.swap{animation:swapIn .45s ease}@keyframes swapIn{0%{opacity:0;transform:translateY(6px)}}.globe-card{position:absolute;left:4%;bottom:8%;display:flex;align-items:center;gap:16px;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow-lg)}.globe-card small{display:block;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}.globe-card b{font-family:var(--mono);font-size:22px;color:var(--accent)}.globe-card .last span{font-weight:600;font-size:14px}.globe-card .last{padding-left:16px;border-left:1px solid var(--border)}.globe-card .live{width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:0 0 10px #e11d4899;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.3}}.globe-hint{position:absolute;right:6%;top:6%;margin:0;font-family:var(--mono);font-size:11px;color:var(--dim)}@media (max-width: 900px){.hero{grid-template-columns:minmax(0,1fr);min-height:auto;padding-top:32px}.hero-3d{max-width:460px;order:-1;margin-bottom:-20px}}.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.stat{padding:26px 24px;border-right:1px solid var(--border)}.stat:last-child{border-right:0}.stat b{display:block;font-family:var(--display);font-size:36px;line-height:1.1;background:linear-gradient(90deg,var(--grad-a),var(--grad-c));-webkit-background-clip:text;background-clip:text;color:transparent}.stat span{color:var(--muted);font-size:14px}@media (max-width: 760px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--border)}}.soc-stage{position:relative;border-radius:22px;overflow:hidden;background:radial-gradient(700px 300px at 50% 30%,rgba(34,211,238,.16),transparent 70%),linear-gradient(180deg,var(--stage-a),var(--stage-b));border:1px solid var(--border);box-shadow:var(--shadow-lg)}#soc-desk{display:block;width:100%;aspect-ratio:16 / 7.4;touch-action:pan-y}@media (max-width: 760px){#soc-desk{aspect-ratio:4 / 3}}.soc-legend{position:absolute;left:16px;top:14px;display:flex;gap:8px;flex-wrap:wrap}.soc-legend span{font-family:var(--mono);font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--glass);border:1px solid var(--border)}.soc-legend .lx{color:#15803d}.soc-legend .sm{color:var(--accent)}.soc-legend .wn{color:#1d4ed8}.soc-hint{position:absolute;right:16px;bottom:12px;margin:0;font-family:var(--mono);font-size:12px;color:var(--muted);background:var(--glass);border:1px solid var(--border);padding:4px 10px;border-radius:999px}@media (max-width: 600px){.soc-legend span:nth-child(n+2){display:none}}.consoles{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}@media (max-width: 900px){.consoles{grid-template-columns:1fr}}.console{border-radius:14px;overflow:hidden;background:var(--term-bg);box-shadow:var(--shadow-lg);border:1px solid rgba(13,21,48,.4)}.console-bar{display:flex;align-items:center;gap:6px;padding:9px 12px;background:#161b26;font-family:var(--mono);font-size:12px;color:#8b96ad}.console-bar i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.console-bar i:nth-child(2){background:#febc2e}.console-bar i:nth-child(3){background:#28c840}.console-bar span{margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-bar.win{background:#1d2638;color:#c9d4ea}.console-bar.win span{margin-left:0}.console-body{font-family:var(--mono);font-size:12px;line-height:1.7;padding:10px 14px 12px;height:228px;overflow:hidden;color:#c9d1d9}.console-body .row{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:rowIn .35s ease}@keyframes rowIn{0%{opacity:0;transform:translateY(4px)}}.console-body .info{color:#c9d1d9}.console-body .ok{color:#3fb950}.console-body .warn{color:#e3b341}.console-body .alert{color:#ff6b81}.console-body .block{color:#58a6ff}.windows .console-body{background:#121826}.windows .row{display:grid;grid-template-columns:104px 64px 44px 84px 1fr;gap:8px}.windows .row>*{overflow:hidden;text-overflow:ellipsis}.windows .lvl.ok{color:#3fb950}.windows .lvl.warn{color:#e3b341}.windows .lvl.alert{color:#ff6b81}.windows .lvl.info{color:#58a6ff}.windows .t{color:#8b96ad}.windows b{color:#fff}.windows .src{color:#93a2bf}@media (max-width: 520px){.windows .row{grid-template-columns:92px 40px 1fr}.windows .t,.windows .src{display:none}}.about-grid{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start}@media (max-width: 860px){.about-grid{grid-template-columns:1fr;gap:32px}#about-photo{max-width:320px}}.about-body p{color:var(--muted);font-size:17px;margin:0 0 16px}.about-body strong{color:var(--text);font-weight:600}.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0 0}.facts div{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}.facts dt{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}.facts dd{margin:4px 0 0;font-weight:500;font-size:15px}@media (max-width: 560px){.facts{grid-template-columns:1fr}}.photo-card{perspective:1000px}.photo-inner{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4 / 5;border:4px solid var(--surface);box-shadow:var(--shadow-lg),0 0 0 1px var(--border);transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1);--gx: 50%;--gy: 20%}.photo-card.tilting .photo-inner{transition:transform .1s}.photo-inner img{width:100%;height:100%;object-fit:cover}.photo-inner .glare{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle at var(--gx) var(--gy),rgba(255,255,255,.5),transparent 50%)}.photo-inner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,rgba(13,21,48,.55))}.photo-tag{position:absolute;left:16px;bottom:16px;z-index:1;transform:translateZ(40px);color:#fff;font-size:14px;background:#0d153099;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 12px;border-radius:999px}.photo-tag b{color:var(--accent-bright)}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;left:180px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--accent-bright),var(--accent-2));opacity:.35}.timeline>li{display:grid;grid-template-columns:180px 1fr;gap:40px;padding:0 0 32px;position:relative}.timeline>li:before{content:"";position:absolute;left:175px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);box-shadow:0 0 0 4px #0891b21f}.tl-meta{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.tl-period{font-family:var(--mono);font-size:13px;color:var(--muted)}.tl-type{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:999px}.tl-type.work{background:#0891b21a;color:var(--accent)}.tl-type.edu{background:#6d28d91a;color:var(--accent-2)}.tl-body{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow)}.tl-body h3{font-size:21px}.tl-org{color:var(--accent);font-weight:600;margin:4px 0 0;font-size:15px}.tl-body ul{margin:14px 0 0;padding-left:18px;color:var(--muted)}.tl-body li{margin-bottom:6px}@media (max-width: 760px){.timeline:before{left:5px}.timeline>li{grid-template-columns:1fr;gap:10px;padding-left:28px}.timeline>li:before{left:0}.tl-meta{flex-direction:row;align-items:center}}.projects{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 860px){.projects{grid-template-columns:1fr}}.project{perspective:1200px;--ink: color-mix(in srgb, var(--c) 45%, var(--ink-mix))}.project-inner{position:relative;height:100%;padding:28px;border-radius:var(--radius);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,var(--surface)),var(--surface) 55%);border:1px solid var(--border);border-top:4px solid var(--c);box-shadow:var(--shadow);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s;transform-style:preserve-3d;--gx: 50%;--gy: 0%}.project-inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(400px circle at var(--gx) var(--gy),color-mix(in srgb,var(--c) 16%,transparent),transparent 60%)}.project:hover .project-inner{box-shadow:var(--shadow-lg)}.project:hover .project-inner:before{opacity:1}.project.tilting .project-inner{transition:transform .1s,box-shadow .3s}.project-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}.project-num{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink);border:1px solid color-mix(in srgb,var(--c) 60%,transparent);border-radius:8px;padding:2px 8px}.project-kicker{font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.project h3{font-size:26px;transform:translateZ(20px)}.metric{display:inline-block;margin:12px 0 0;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink);background:color-mix(in srgb,var(--c) 16%,var(--surface));padding:4px 10px;border-radius:8px}.project-desc{color:var(--muted);margin:14px 0 18px;font-size:15.5px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{font-size:13px;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.project-links{display:flex;gap:16px;margin-top:20px}.project-links a{color:var(--ink);font-weight:700;text-decoration:none;font-size:15px}.project-links a:hover{text-decoration:underline}.skills{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 960px){.skills{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.skills{grid-template-columns:1fr}}.skill{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s}.skill:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.skill h3{font-size:18px;display:flex;align-items:center;gap:10px;margin-bottom:14px}.sdot{width:10px;height:10px;border-radius:3px;background:var(--c);box-shadow:0 0 8px var(--c)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips span{font-size:13.5px;padding:5px 10px;border-radius:8px;background:color-mix(in srgb,var(--c) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 30%,transparent);color:var(--text)}.certs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 960px){.certs{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.certs{grid-template-columns:1fr}}.cert{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.cert-group{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.cert p{margin:8px 0 0;font-weight:600;font-size:16px;line-height:1.45}.cert small{display:block;margin-top:8px;color:var(--muted);font-size:13.5px}.cert.ctf{background:linear-gradient(150deg,var(--ctf-bg),var(--surface) 60%);border-color:#d9770659}.cert.ctf .cert-group{color:#b45309}.thm-card{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding:44px;border-radius:22px;border:1px solid rgba(5,150,105,.25);box-shadow:var(--shadow-lg);background:radial-gradient(500px 260px at 0% 0%,rgba(16,185,129,.14),transparent 70%),radial-gradient(500px 260px at 100% 100%,rgba(236,72,153,.1),transparent 70%),var(--surface)}.thm-text h2{font-size:clamp(28px,3.4vw,40px)}.thm-name{color:#059669}.thm-text p{color:var(--muted);margin:14px 0 24px}.thm-actions{display:flex;gap:12px;flex-wrap:wrap}.thm-menu{background:#0a0f1f;border:2px solid #ffb800;border-radius:14px;padding:22px 24px;color:#eaf2ff;box-shadow:0 0 30px #ffb8002e;font-family:var(--mono)}.thm-menu-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed rgba(255,184,0,.4);padding-bottom:12px;margin-bottom:8px}.thm-menu-head span{color:#ffb800;font-weight:600;font-size:18px;text-transform:uppercase;letter-spacing:.06em;text-shadow:0 0 12px rgba(255,184,0,.5)}.thm-menu-head small{color:#8b96ad;font-size:12px}.thm-menu ul{list-style:none;margin:0;padding:0}.thm-menu li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dotted rgba(255,255,255,.12);font-size:14px}.thm-menu li span{color:#eaf2ff;font-family:var(--sans);font-weight:500}.thm-menu li b{font-weight:600;font-size:13px;white-space:nowrap}.thm-menu li.done b{color:#39ff88}.thm-menu li.wip b{color:#ffb800}.thm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-top:14px}.thm-stats:empty{display:none}.thm-stats div{text-align:center;border:1px solid rgba(57,255,136,.3);border-radius:10px;padding:8px}.thm-stats b{display:block;color:#39ff88;font-size:20px}.thm-stats span{font-size:11px;color:#8b96ad}@media (max-width: 860px){.thm-card{grid-template-columns:1fr;padding:28px;gap:28px}}@media (max-width: 480px){.thm-menu li{flex-direction:column;gap:2px}}.world-card{display:grid;grid-template-columns:1fr 1.1fr;align-items:stretch;text-decoration:none;color:#eaf0ff;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#1e1b4b,#0c4a6e);transition:transform .3s,box-shadow .3s}.world-card:hover{transform:translateY(-4px)}.world-card .kicker{color:#67e8f9}.world-text{padding:44px}.world-text h2{font-size:clamp(28px,3.4vw,40px)}.world-text p{color:#c7d2fe;margin:14px 0 24px}.world-img{min-height:280px}.world-img img{width:100%;height:100%;object-fit:cover}@media (max-width: 860px){.world-card{grid-template-columns:1fr}.world-text{padding:28px}.world-img{order:-1;max-height:260px}}.contact{padding-bottom:96px}.contact-card{text-align:center;padding:64px 32px;border-radius:24px;box-shadow:var(--shadow-lg);background:radial-gradient(600px 300px at 50% 0%,rgba(34,211,238,.18),transparent 70%),radial-gradient(500px 260px at 100% 100%,rgba(109,40,217,.1),transparent 70%),var(--surface);border:1px solid var(--border)}.contact-card h2{font-size:clamp(32px,4.6vw,52px)}#contact-text p{color:var(--muted);font-size:18px;max-width:620px;margin:16px auto 28px}#contact-text strong{color:var(--text)}.contact-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.contact-links{list-style:none;padding:0;margin:36px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;max-width:820px;text-align:left}.contact-links a{display:flex;flex-direction:column;text-decoration:none;padding:14px 16px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);transition:border-color .2s,background .2s}.contact-links a:hover{border-color:var(--accent);background:var(--surface)}.contact-links span:first-child{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}.contact-links span:last-child{font-weight:500;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 600px){.contact-card{padding:44px 20px}}.footer{max-width:calc(var(--max) + 48px);margin:0 auto;padding:28px 24px 40px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--border);color:var(--dim);font-size:14px}.footer p{margin:0}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{color:var(--accent)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}.eyebrow .dot,.globe-card .live,.console-body .row{animation:none}}.nav-links a,.btn{white-space:nowrap}:root[data-theme=root] .nav-links a{font-size:13px;padding:8px 9px}:root[data-theme=root] .nav-cta .btn.sm{padding:8px 12px;font-size:13px}.swarm-wrap{position:relative;width:min(420px,100%);aspect-ratio:1;margin:-24px auto 4px}.swarm-card{left:50%;bottom:2%;transform:translate(-50%);white-space:nowrap;text-align:left}@media (max-width: 600px){.swarm-wrap{width:min(320px,100%)}}
