@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.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(/_astro/inter-cyrillic-wght-normal.DqGufNeO.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(/_astro/inter-greek-ext-wght-normal.DlzME5K_.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(/_astro/inter-greek-wght-normal.CkhJZR-_.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(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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(/_astro/inter-latin-wght-normal.Dx4kXJAl.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}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/sora-latin-ext-wght-normal.CawQDOvP.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:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/sora-latin-wght-normal.DdqRvwsR.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{--bg:#05080f;--bg-2:#0a1120;--surface:#0c1321ad;--surface-solid:#0c1321;--line:#a0c8d224;--line-strong:#a0c8d24d;--text:#e9f1f2;--muted:#a3b5bc;--faint:#73878f;--accent:#5ec9a2;--accent-hi:#a5f3d3;--accent-ink:#04130d;--coral:#ff8a70;--glow:#5ec9a252;--font-display:"Sora Variable", "Sora", system-ui, sans-serif;--font-body:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--wrap:1180px;--gutter:clamp(20px, 5vw, 56px);--radius:18px;color-scheme:dark}:root[data-theme=light]{--bg:#f3f7f5;--bg-2:#e3eee9;--surface:#fffc;--surface-solid:#fff;--line:#0c282221;--line-strong:#0c282247;--text:#0c1a18;--muted:#45585a;--faint:#6b7d7e;--accent:#17805a;--accent-hi:#0f5c40;--accent-ink:#fff;--coral:#cf4029;--glow:#17805a33;color-scheme:light}*,:before,:after{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}body{font-family:var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.65;overflow-x:hidden}body:before{content:"";z-index:-2;background:radial-gradient(60% 55% at 82% 8%, var(--glow), transparent 70%), radial-gradient(50% 45% at 6% 96%, #4678ff1f, transparent 70%), linear-gradient(180deg, var(--bg), var(--bg-2));position:fixed;inset:0}#scene{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.scene-fallback{z-index:-1;pointer-events:none;background-image:radial-gradient(var(--line-strong) 1px, transparent 1.4px);background-size:26px 26px;display:none;position:fixed;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 75% 30%,#000,#0000 75%);mask-image:radial-gradient(70% 60% at 75% 30%,#000,#0000 75%)}.no-scene .scene-fallback{display:block}.no-scene #scene{display:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;margin:0;line-height:1.08}p{margin:0}a{color:inherit}img{max-width:100%;height:auto;display:block}ul,ol{margin:0;padding:0;list-style:none}strong{color:var(--text);font-weight:650}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}::selection{background:var(--accent);color:var(--accent-ink)}.wrap{width:min(100% - 2 * var(--gutter), var(--wrap));margin-inline:auto}.skip{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:10px;padding:10px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:12px}.glass{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(10px)saturate(1.25)}.progress{z-index:60;background:linear-gradient(90deg, var(--accent), var(--accent-hi));transform-origin:0;height:2px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.nav{z-index:50;border-bottom:1px solid #0000;transition:background .3s,border-color .3s;position:fixed;inset:0 0 auto}.nav.scrolled{background:var(--surface);border-bottom-color:var(--line);backdrop-filter:blur(14px)saturate(1.3)}.nav-inner{align-items:center;gap:24px;height:68px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.3rem;font-weight:800;text-decoration:none}.brand span{color:var(--accent)}.nav-links{gap:4px;margin-left:auto;display:flex}.nav-links a{color:var(--muted);border-radius:999px;padding:8px 14px;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .2s,background .2s}.nav-links a:hover,.nav-links a.active{color:var(--text);background:var(--line)}.nav-actions{align-items:center;gap:12px;display:flex}.theme{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;width:52px;height:28px;padding:0;position:relative}.theme i{background:var(--accent);border-radius:50%;place-items:center;width:20px;height:20px;transition:transform .3s cubic-bezier(.3,1.4,.5,1);display:grid;position:absolute;top:3px;left:3px}.theme[aria-checked=true] i{transform:translate(24px)}.theme svg{width:12px;height:12px;color:var(--accent-ink)}.theme .sun,.theme[aria-checked=true] .moon{display:none}.theme[aria-checked=true] .sun{display:block}.btn{font:600 .95rem/1 var(--font-body);cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:999px;align-items:center;gap:9px;padding:12px 20px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s;display:inline-flex}.btn:hover{border-color:var(--accent);transform:translateY(-2px)}.btn svg{flex:none;width:17px;height:17px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 8px 30px -8px var(--glow)}.btn.primary:hover{box-shadow:0 12px 36px -6px var(--glow)}.btn.small{padding:9px 16px;font-size:.88rem}.pills{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--line-strong);color:var(--muted);background:var(--surface);border-radius:999px;padding:6px 13px;font-size:.84rem;font-weight:550}.hero{flex-direction:column;justify-content:center;min-height:100svh;padding:108px 0 40px;display:flex;position:relative;overflow-x:clip}.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:clamp(24px,5vw,72px);display:grid}.kicker{font:600 .82rem/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.hero h1{letter-spacing:-.045em;font-size:clamp(3rem,7.4vw,6rem);font-weight:800;line-height:.96}.hero h1 span{background:linear-gradient(100deg, var(--text) 5%, var(--accent-hi) 55%, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;padding-bottom:.08em;display:block}.role{font:600 clamp(1.1rem, 2vw, 1.4rem) / 1.3 var(--font-display);color:var(--accent);min-height:1.4em;margin-top:20px}.caret{background:var(--accent);vertical-align:-.16em;width:2px;height:1.05em;margin-left:3px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.lede{max-width:34.5em;color:var(--muted);margin-top:20px;font-size:1.08rem}.hero .pills{margin-top:22px}.cta-row{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.contacts{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}.contacts a{border:1px solid var(--line-strong);background:var(--surface);width:42px;height:42px;color:var(--muted);border-radius:50%;place-items:center;transition:color .2s,border-color .2s,transform .2s;display:grid}.contacts a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.contacts svg{width:18px;height:18px}.avail{color:var(--muted);align-items:center;gap:9px;margin-left:6px;font-size:.88rem;font-weight:550;display:inline-flex}.avail i{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 0 var(--glow);border-radius:50%;animation:2.2s infinite ping}@keyframes ping{70%{box-shadow:0 0 0 9px #0000}to{box-shadow:0 0 #0000}}.stage{aspect-ratio:1;perspective:1100px;width:min(100%,470px);margin-inline:auto;position:relative}.stage-inner{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;position:absolute;inset:0}.ring{border:1px solid var(--line-strong);border-radius:50%;position:absolute}.ring-1{background:radial-gradient(closest-side, var(--glow), transparent 78%);inset:4%;transform:translateZ(-70px)}.ring-2{border-style:dashed;border-color:var(--line);animation:60s linear infinite turn;inset:-7%;transform:translateZ(-130px)}@keyframes turn{to{transform:translateZ(-130px)rotate(360deg)}}.portrait{object-fit:contain;-webkit-mask-composite:source-in;filter:drop-shadow(0 22px 40px #00000073);width:100%;height:100%;position:absolute;inset:0;transform:translateZ(30px);-webkit-mask-image:linear-gradient(#000 74%,#0000 98%),linear-gradient(90deg,#0000,#000 9% 91%,#0000);mask-image:linear-gradient(#000 74%,#0000 98%),linear-gradient(90deg,#0000,#000 9% 91%,#0000);mask-composite:intersect}.chip{color:var(--muted);background:var(--surface);border:1px solid var(--line-strong);backdrop-filter:blur(10px);white-space:nowrap;border-radius:14px;flex-direction:column;gap:3px;padding:11px 15px;font-size:.78rem;line-height:1.2;display:flex;position:absolute;box-shadow:0 16px 40px -18px #0009}.chip b{font:700 1.12rem/1 var(--font-display);color:var(--text);letter-spacing:-.02em}.chip-a{top:15%;left:-5%;transform:translateZ(100px)}.chip-b{top:46%;right:-6%;transform:translateZ(120px)}.chip-c{bottom:9%;left:0;transform:translateZ(90px)}.chip-c b{color:var(--coral)}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:16px;margin-top:clamp(36px,6vh,64px);padding-top:28px;display:grid}.stats div{flex-direction:column;gap:6px;display:flex}.stats dt{color:var(--muted);order:2;font-size:.86rem}.stats dd{font:700 clamp(1.9rem, 3.6vw, 2.9rem) / 1 var(--font-display);letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums;margin:0}.section{padding:clamp(84px,13vh,150px) 0;position:relative}.eyebrow{font:600 .8rem/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;margin-bottom:16px;display:flex}.eyebrow:before{content:attr(data-num);font-family:var(--font-display);letter-spacing:0;color:var(--faint)}.eyebrow:after{content:"";background:var(--line-strong);width:46px;height:1px}.section h2{font-size:clamp(2.1rem,4.6vw,3.5rem);font-weight:700}.section h2 em{color:var(--accent);font-style:normal}.section-lede{max-width:36em;color:var(--muted);margin-top:18px}.col{max-width:640px}.timeline{gap:18px;margin-top:44px;display:grid;position:relative}.job{padding:24px 26px 24px 30px;position:relative}.job:before{content:"";background:linear-gradient(var(--accent), transparent);border-radius:3px;width:3px;position:absolute;top:26px;bottom:26px;left:0}.job-head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;display:flex}.job h3{letter-spacing:-.02em;font-size:1.22rem;font-weight:650}.job-when{color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.84rem;font-weight:600}.job-meta{color:var(--muted);margin-top:5px;font-size:.95rem}.now{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;align-items:center;gap:6px;margin-left:8px;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.now i{background:var(--accent);border-radius:50%;width:6px;height:6px}.job ul{gap:8px;margin-top:14px;display:grid}.job li{color:var(--muted);padding-left:20px;font-size:.97rem;position:relative}.job li:before{content:"";border:1.5px solid var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.72em;left:2px}.bus{align-items:center;min-height:100svh;display:flex}.bus .eyebrow,.bus h2 em{color:var(--coral)}.tiles{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:30px;display:grid}.tile{padding:18px 20px 18px 24px;position:relative}.tile:before{content:"";background:var(--coral);border-radius:3px;width:3px;position:absolute;top:20px;bottom:20px;left:0}.tile b{font:700 clamp(1.8rem, 3.2vw, 2.5rem) / 1 var(--font-display);letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums;display:block}.tile span{color:var(--muted);margin-top:7px;font-size:.88rem;line-height:1.35;display:block}.checks{gap:11px;margin-top:26px;display:grid}.checks li{color:var(--muted);padding-left:28px;font-size:.98rem;position:relative}.checks li:before{content:"";border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);width:14px;height:8px;position:absolute;top:.42em;left:2px;transform:rotate(-45deg)scale(.8)}.map-note{right:var(--gutter);max-width:250px;color:var(--faint);text-align:right;font-size:.8rem;line-height:1.45;position:absolute;bottom:4vh}.map-note b{color:var(--coral);font-weight:600}.scene-window{display:none}.scene-window p{color:var(--faint);text-align:center;max-width:270px;font-size:.8rem;line-height:1.45}.scene-window b{color:var(--coral);font-weight:600}.chart{--series:#e56b52;margin:14px 0 0;padding:20px 22px 14px}:root[data-theme=light] .chart{--series:#cf4029}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;display:flex}.chart figcaption b{font:650 1.02rem/1.25 var(--font-display);letter-spacing:-.01em;display:block}.chart figcaption span{color:var(--muted);font-size:.8rem}.seg{border:1px solid var(--line);background:var(--line);border-radius:999px;padding:3px;display:inline-flex}.seg button{color:var(--muted);font:600 .78rem/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 11px}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true]{background:var(--surface-solid);color:var(--text);box-shadow:0 0 0 1px var(--line-strong)}.chart-plot{cursor:crosshair;touch-action:pan-y;border-radius:8px;min-height:190px;margin-top:12px;position:relative}.chart-plot svg{display:block;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .axis{stroke:var(--line-strong);stroke-width:1px}.chart .tick{font:500 11px var(--font-body);fill:var(--faint);font-variant-numeric:tabular-nums}.chart .area{fill:var(--series);opacity:.1}.chart .line{fill:none;stroke:var(--series);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .dot{fill:var(--series);stroke:var(--surface-solid);stroke-width:2px}.chart .cross{stroke:var(--line-strong);stroke-width:1px}.chart .end{font:700 13px var(--font-body);fill:var(--text)}.chart-tip{z-index:2;pointer-events:none;background:var(--surface-solid);border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:10px;padding:8px 11px;font-size:.78rem;line-height:1.45;position:absolute;box-shadow:0 10px 30px -12px #0009}.chart-tip b{color:var(--text);font-size:.92rem;font-weight:650;display:block}.chart-tip i{background:var(--series);vertical-align:middle;border-radius:1px;width:12px;height:2px;margin-right:7px;display:inline-block}.chart-table{color:var(--muted);margin-top:6px;font-size:.82rem}.chart-table summary{cursor:pointer;width:fit-content;padding:4px 0}.chart-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}.chart-table th,.chart-table td{text-align:right;border-bottom:1px solid var(--line);padding:6px 8px;font-weight:400}.chart-table thead th{color:var(--text);font-weight:600}.chart-table th:first-child{text-align:left;padding-left:0}.chart-src{color:var(--faint);margin-top:8px;font-size:.74rem}.cards{perspective:1400px;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px;display:grid}.card{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;flex-direction:column;gap:12px;padding:26px;transition:transform .18s ease-out,border-color .2s;display:flex;position:relative;overflow:hidden}.card:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%), var(--glow), transparent 65%);transition:opacity .25s;position:absolute;inset:0}.card:hover{border-color:var(--line-strong)}.card:hover:after{opacity:.55}.card-icon{width:46px;height:46px;color:var(--accent);background:var(--line);border-radius:13px;place-items:center;display:grid;transform:translateZ(26px)}.card-icon svg{width:22px;height:22px}.card h3{font-size:1.28rem;font-weight:650;transform:translateZ(18px)}.card-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:.74rem;font-weight:650}.card p{color:var(--muted);font-size:.96rem}.card-link{color:var(--accent);z-index:1;margin-top:auto;padding-top:8px;font-size:.93rem;font-weight:600;text-decoration:none;position:relative}a.card-link:hover{text-underline-offset:4px;text-decoration:underline}.card-link.quiet{color:var(--faint)}.skills{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:44px;display:grid}.skill{padding:22px 24px}.skill h3{font:650 .78rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{color:var(--text);border:1px solid var(--line);background:var(--line);border-radius:10px;padding:6px 12px;font-size:.88rem;font-weight:500}.subhead{font:650 1.3rem/1.2 var(--font-display);letter-spacing:-.02em;margin-top:56px}.logos{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.logos li{border:1px solid var(--line);background:#fff;border-radius:14px;place-items:center;width:150px;height:58px;padding:12px 18px;display:grid}.logos img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:32px}.edu{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px;display:grid}.edu li{flex-direction:column;gap:8px;padding:22px 24px;display:flex}.edu-logo{background:#fff;border-radius:12px;place-items:center;width:52px;height:52px;margin-bottom:6px;padding:6px;display:grid}.edu-logo img{object-fit:contain;width:auto;max-height:40px}.edu h3{letter-spacing:-.01em;font-size:1.05rem;font-weight:650;line-height:1.25}.edu .uni{color:var(--accent);font-size:.9rem;font-weight:600}.edu p{color:var(--muted);font-size:.92rem}.badge{font:700 .66rem/1.5 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);vertical-align:2px;border-radius:999px;margin-left:6px;padding:2px 8px;display:inline-block}.langs{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.langs li{flex-direction:column;gap:4px;min-width:170px;padding:14px 20px;display:flex}.langs b{font:650 1rem/1.2 var(--font-display)}.langs span{color:var(--muted);font-size:.86rem}.dots{gap:5px;margin-top:6px;display:flex}.dots i{background:var(--line-strong);border-radius:2px;width:18px;height:4px}.dots i.on{background:var(--accent)}.contact{text-align:center;padding-bottom:clamp(60px,10vh,110px)}.contact .eyebrow{justify-content:center}.contact .eyebrow:after{display:none}.contact h2{letter-spacing:-.045em;font-size:clamp(2.5rem,6.4vw,5rem)}.contact .section-lede{margin-inline:auto}.mail{font:650 clamp(1.15rem, 2.8vw, 1.9rem) / 1.2 var(--font-display);letter-spacing:-.02em;color:var(--accent);border-bottom:2px solid var(--line-strong);overflow-wrap:anywhere;margin-top:30px;padding-bottom:6px;text-decoration:none;transition:border-color .2s;display:inline-block}.mail:hover{border-color:var(--accent)}.contact .contacts{justify-content:center;margin-top:30px}.footer{border-top:1px solid var(--line);color:var(--faint);padding:26px 0 34px;font-size:.86rem}.footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:10px 24px;display:flex}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{color:var(--accent)}.footer nav{gap:18px;display:flex}.case-hero{align-items:center;min-height:92svh;padding:120px 0 60px;display:flex}.case-hero h1{letter-spacing:-.04em;font-size:clamp(2.5rem,5.6vw,4.4rem);font-weight:800}.case-hero h1 em{color:var(--coral);font-style:normal}.back{color:var(--muted);align-items:center;gap:8px;margin-bottom:26px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.back:hover{color:var(--accent)}.facts{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:30px;display:grid}.prose{padding:clamp(56px,9vh,96px) 0}.prose h2{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:700}.prose .panel{margin-top:26px;padding:clamp(22px,3vw,34px)}.prose p+p{margin-top:14px}.prose p{color:var(--muted)}.steps{counter-reset:step;gap:14px;margin-top:8px;display:grid}.steps li{counter-increment:step;color:var(--muted);padding-left:48px;position:relative}.steps li:before{content:counter(step);width:32px;height:32px;font:700 .9rem/1 var(--font-display);color:var(--accent);background:var(--line);border-radius:10px;place-items:center;display:grid;position:absolute;top:0;left:0}.steps b{color:var(--text);font-weight:650}.stack{grid-template-columns:repeat(2,1fr);gap:12px 28px;display:grid}.stack div{border-bottom:1px solid var(--line);padding:12px 0}.stack dt{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-size:.76rem;font-weight:650}.stack dd{color:var(--text);margin:4px 0 0;font-size:.97rem}.js .reveal{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s);transform:translateY(26px)}.js .reveal.in{opacity:1;transform:none}@media (width<=1020px){.cards{grid-template-columns:1fr 1fr}.edu{grid-template-columns:1fr}.map-note{display:none}}@media (width<=820px){.nav-links{display:none}.nav-actions{margin-left:auto}.hero{padding-top:92px}.hero-grid{grid-template-columns:1fr}.stage{order:-1;width:min(72vw,300px)}.chip{padding:8px 11px;font-size:.7rem}.chip b{font-size:.95rem}.chip-a{left:-14%}.chip-b{right:-16%}.chip-c{left:-10%}.stats{grid-template-columns:1fr 1fr;gap:22px 16px}.avail{width:100%;margin-left:0}.cards,.skills,.stack{grid-template-columns:1fr}.bus{min-height:0}.scene-window{justify-content:center;align-items:flex-end;height:62svh;padding-bottom:6px;display:flex}.job-when{width:100%;margin-left:0}}@media (width<=420px){.tiles,.facts{grid-template-columns:1fr}.chip-b{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}@media print{:root,:root[data-theme=light]{--bg:#fff;--bg-2:#fff;--surface:#fff;--text:#111;--muted:#333;--faint:#555;--accent:#17805a;--accent-hi:#17805a;--coral:#b53a25;--line:#ddd;--line-strong:#bbb}html{background:#fff}body{font-size:10.5pt;line-height:1.45}body:before,#scene,.scene-fallback,.nav,.progress,.ring,.chip,.cta-row,.map-note,.theme,.skip,.footer nav,.seg,.chart-tip,.chart-table summary{display:none!important}.js .reveal{opacity:1!important;transform:none!important}.glass{backdrop-filter:none;box-shadow:none}.hero{min-height:0;padding:0 0 12pt}.hero-grid{grid-template-columns:1fr 120pt}.hero h1{font-size:30pt}.hero h1 span{color:var(--accent);background:0 0;-webkit-background-clip:border-box;background-clip:border-box}.stage{order:0;width:120pt}.portrait{filter:none}.section,.prose{padding:12pt 0}.bus{min-height:0;display:block}.section h2{font-size:16pt}.timeline,.cards,.skills,.tiles{gap:8pt;margin-top:10pt}.job,.card,.tile,.skill,.edu li,.langs li{break-inside:avoid;padding:8pt 10pt}.cards{grid-template-columns:repeat(3,1fr)}.contact h2{font-size:16pt}a[href^=http]:after{content:none}}
