@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-500-normal.ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-greek-500-normal.JMMifIXV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-500-normal.CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-vietnamese-500-normal.e4dixQRQ.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-500-normal.BEb3_waV.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff");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{--gray-950:#0b0d10;--gray-900:#11151a;--gray-850:#171c23;--gray-800:#1e242c;--gray-700:#343c47;--gray-400:#8b93a1;--gray-300:#b8bec8;--gray-200:#c9ced6;--gray-100:#e6e8eb;--red-400:#f29a9a;--amber-400:#f2c46d;--green-400:#7dd3a8;--mint-500:#7dd3a8;--surface-base:var(--gray-950);--surface-raised:var(--gray-900);--surface-raised-2:var(--gray-850);--surface-sunken:#090b0d;--border-subtle:var(--gray-800);--border-strong:var(--gray-700);--content-primary:var(--gray-100);--content-body:var(--gray-200);--content-secondary:var(--gray-400);--content-soft:var(--gray-300);--action:var(--accent,var(--mint-500));--on-action:#06100b;--action-soft:color-mix(in srgb, var(--action) 13%, transparent);--action-line:color-mix(in srgb, var(--action) 38%, transparent);--focus-ring:var(--action);--feedback-success:var(--green-400);--feedback-warning:var(--amber-400);--feedback-danger:var(--red-400);--scrim:#050709b8;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-caption:.75rem;--text-sm:.875rem;--text-body:1rem;--text-lg:1.125rem;--text-h3:1.25rem;--text-h2:clamp(1.5rem, 2.2vw, 1.8rem);--text-h1:clamp(2rem, 4.4vw, 3.4rem);--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.25rem;--s-6:1.5rem;--s-8:2rem;--s-10:2.5rem;--s-12:3rem;--s-16:4rem;--s-20:5rem;--s-24:6rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--shadow-2:0 8px 28px -12px #0009;--shadow-4:0 24px 64px -16px #000000bf;--ease-standard:cubic-bezier(.22, 1, .36, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--t-instant:90ms;--t-fast:.16s;--t-base:.24s;--t-slow:.38s;--t-deliberate:.9s;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--s-8)}body{background:var(--surface-base);color:var(--content-primary);font:400 var(--text-body)/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,p,figure{margin:0}::selection{background:var(--action);color:var(--on-action)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.skip-link{left:var(--s-4);top:var(--s-4);z-index:100;background:var(--action);color:var(--on-action);padding:var(--s-3) var(--s-4);border-radius:var(--radius-md);font-weight:500;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:none}.progress{z-index:60;pointer-events:none;height:2px;position:fixed;inset:0 0 auto}.progress i{background:var(--action);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.shell{grid-template-columns:minmax(280px,400px) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);max-width:1280px;margin:0 auto;padding:0 clamp(.75rem,2vw,1.5rem);display:grid}.rail{overscroll-behavior:contain;align-self:start;gap:var(--s-8);height:100dvh;padding:clamp(2.5rem, 7vh, 5rem) var(--s-4) var(--s-8) 0;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.rail-main{gap:var(--s-8);flex-direction:column;display:flex}.rail-foot{margin-top:auto}.identity>*{transform-origin:50%;width:fit-content}.rail .avatar{object-fit:cover;border:1px solid var(--border-strong);background:var(--border-strong);border-radius:50%;width:112px;height:112px;display:block}.avatar-wrap{margin-bottom:var(--s-6);border-radius:50%}.identity>img.avatar{margin-bottom:var(--s-6)}.avatar-svg{overflow:visible}.id-links{margin:var(--s-5) 0 0;gap:var(--s-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.id-links a{border:1px solid var(--border-strong);border-radius:var(--radius-full);min-height:2rem;font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.04em;color:var(--content-soft);transition:color var(--t-fast), border-color var(--t-fast), background var(--t-fast);align-items:center;gap:.35em;padding:0 .8rem;display:inline-flex}.id-links a span{color:var(--content-secondary);transition:transform var(--t-base) var(--ease-standard), color var(--t-fast)}.id-links a:hover{color:var(--action);border-color:var(--action-line);background:var(--action-soft)}.id-links a:hover span{color:var(--action);transform:translate(2px,-2px)}.rail-rest{gap:var(--s-8);flex-direction:column;display:flex}.rail .name{white-space:nowrap;letter-spacing:-.025em;font-size:clamp(2rem,3.2vw,2.5rem);font-weight:600;line-height:1.08}.rail .role{margin-top:var(--s-2);font-weight:500}.rail .summary{margin-top:var(--s-2);color:var(--content-secondary);max-width:30ch;font-size:var(--text-sm)}.nav a{align-items:center;gap:var(--s-4);min-height:2rem;padding:var(--s-1) 0;font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--content-secondary);transition:color var(--t-base) var(--ease-standard);display:flex}.nav a:before{content:"";opacity:.5;width:1.5rem;height:1px;transition:width var(--t-slow) var(--ease-standard), opacity var(--t-slow) var(--ease-standard);background:currentColor}.nav a:hover,.nav a.active{color:var(--content-primary)}.nav a:hover:before,.nav a.active:before{opacity:1;width:3.25rem}.nav a.active,.nav a[aria-current=page]{color:var(--action)}.stack h2{font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--content-secondary);margin-bottom:var(--s-3)}.stack dl{gap:var(--s-2) var(--s-3);font-size:var(--text-sm);grid-template-columns:6.5rem minmax(0,1fr);margin:0;display:grid}.stack dt{color:var(--content-secondary);font-family:var(--font-mono);font-size:var(--text-caption);padding-top:.2rem}.stack dd{color:var(--content-body);flex-wrap:wrap;gap:.1em .4em;margin:0;display:flex}.stack dd span{white-space:nowrap}.stack dd span:not(:last-child):after{content:"·";color:var(--content-secondary);margin-left:.4em}.socials{gap:var(--s-1) var(--s-5);font:500 var(--text-sm)/1 var(--font-mono);color:var(--content-secondary);flex-wrap:wrap;display:flex}.socials a{min-height:2rem;transition:color var(--t-fast);align-items:center;display:inline-flex}.socials a:hover{color:var(--action)}.socials a.mail{overflow-wrap:anywhere;flex-basis:100%;min-width:0;line-height:1.3}.content{padding:clamp(2.5rem, 7vh, 5rem) 0 var(--s-16);min-width:0}.content>section{margin-bottom:clamp(4.5rem,12vh,7rem)}.section-title{font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--content-secondary);margin-bottom:var(--s-8);align-items:center;gap:var(--s-4);display:flex}.section-title:after{content:"";background:var(--border-subtle);transform-origin:0;flex:1;height:1px}.js .section-title:after{transition:transform 1.1s var(--ease-standard) .15s;transform:scaleX(0)}.js .section-title.in:after{transform:scaleX(1)}.section-title b{color:var(--action);font-weight:500}.hero-title{font-size:var(--text-h1);letter-spacing:-.03em;margin-bottom:var(--s-6);font-weight:600;line-height:1.06}.hero-title .line{padding-bottom:.1em;display:block;overflow:hidden}.hero-title .line span{display:block}.hero-title .line:last-child span{color:var(--action)}.js .hero-title .line span{animation:rise var(--t-deliberate) var(--ease-standard) forwards;animation-delay:calc(.1s + var(--i,0) * .14s);transform:translateY(105%)}@keyframes rise{to{transform:none}}.about p{color:var(--content-body);max-width:62ch}.about p+p{margin-top:var(--s-4)}.status{align-items:center;gap:var(--s-3);margin-top:var(--s-6);font:400 var(--text-sm)/1.3 var(--font-mono);color:var(--content-secondary);display:inline-flex}.status:before{content:"";background:var(--action);border-radius:50%;flex:none;width:7px;height:7px;animation:2.4s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--action-line)}70%{box-shadow:0 0 0 9px #0000}to{box-shadow:0 0 #0000}}.btn-link{align-items:center;gap:var(--s-2);min-height:2.75rem;font:500 var(--text-sm)/1 var(--font-mono);color:var(--action);display:inline-flex}.btn-link span{transition:transform var(--t-base) var(--ease-standard)}.btn-link:hover span{transform:translate(3px,-3px)}.about-actions{gap:var(--s-2) var(--s-6);margin-top:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.flow{margin:var(--s-10) 0 0;max-width:560px}.flow svg{width:100%;height:auto;display:block;overflow:visible}.flow-line{stroke:var(--border-subtle);stroke-width:1.5px;stroke-dasharray:3 5}.flow-node{fill:var(--surface-raised);stroke:var(--border-strong);transition:stroke var(--t-base)}.flow:hover .flow-node{stroke:var(--action-line)}.flow-label{font:500 11px var(--font-mono);fill:var(--content-secondary)}.flow-caption{font:400 10px var(--font-mono);fill:var(--content-secondary)}.flow-dot{fill:var(--action)}.js [data-reveal]{opacity:0;transition:opacity .8s var(--ease-standard), transform .8s var(--ease-standard);transform:translateY(18px)}.js [data-reveal].in{opacity:1;transform:none}.js [data-stagger]>*{transition-delay:calc(min(var(--i,0), 5) * 70ms)}.timeline{padding-left:var(--s-8);--tl:0;position:relative}.timeline:before,.timeline:after{content:"";width:1px;position:absolute;top:6px;left:0}.timeline:before{background:var(--border-subtle);bottom:0}.timeline:after{height:calc(var(--tl) * (100% - 6px));background:var(--action)}.tl-item{padding-bottom:var(--s-10);position:relative}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";left:calc(-1 * var(--s-8) - 3px);background:var(--surface-base);border:1px solid var(--content-secondary);width:7px;height:7px;transition:transform var(--t-base) var(--ease-standard), background var(--t-base);border-radius:50%;position:absolute;top:7px}.tl-item.work:before{border-color:var(--action)}.tl-item:hover:before{background:var(--action);transform:scale(1.6)}.tl-meta{gap:var(--s-2) var(--s-4);font:400 var(--text-caption)/1.4 var(--font-mono);color:var(--content-secondary);text-transform:uppercase;letter-spacing:.06em;flex-wrap:wrap;display:flex}.tl-kind{color:var(--action)}.tl-item h3{font-size:var(--text-lg);margin-top:var(--s-2);font-weight:600}.tl-item h3 span{color:var(--content-secondary);font-weight:400}.tl-item ul{margin-top:var(--s-3);color:var(--content-soft)}.tl-item li{padding-left:var(--s-5);margin-top:var(--s-1);position:relative}.tl-item li:before{content:"–";color:var(--content-secondary);position:absolute;left:0}.tags{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.tag{font:500 var(--text-caption)/1 var(--font-mono);border-radius:var(--radius-full);background:var(--action-soft);color:var(--action);padding:.4rem .65rem}.card-list{gap:var(--s-2);flex-direction:column;display:flex}.card{--mx:50%;--my:50%;--px:0;--py:0;gap:var(--s-6);padding:var(--s-4);margin:0 calc(-1 * var(--s-4));border-radius:var(--radius-lg);isolation:isolate;transition:background var(--t-base) var(--ease-standard), opacity var(--t-base) var(--ease-standard);grid-template-columns:minmax(150px,220px) 1fr;align-items:start;display:grid;position:relative}.card:before{content:"";z-index:-1;border-radius:inherit;opacity:0;background:radial-gradient(420px circle at var(--mx) var(--my), color-mix(in srgb, var(--action) 11%, transparent), transparent 70%), var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-subtle);transition:opacity var(--t-base) var(--ease-standard);position:absolute;inset:0}.card:hover:before,.card:focus-within:before{opacity:1}.card-body{min-width:0}.card-kicker{font:400 var(--text-caption)/1.4 var(--font-mono);color:var(--content-secondary);letter-spacing:.04em}.card-kicker .kind{color:var(--action);text-transform:uppercase;letter-spacing:.08em;margin-right:var(--s-2)}.card h3{font-size:var(--text-lg);margin-top:var(--s-1);align-items:baseline;gap:var(--s-2);font-weight:600;line-height:1.3;display:flex}.card h3 a:after{content:"";border-radius:inherit;position:absolute;inset:0}.card h3 .arrow{color:var(--content-secondary);transition:transform var(--t-base) var(--ease-standard), color var(--t-base)}.card:hover h3 .arrow,.card:focus-within h3 .arrow{color:var(--action);transform:translate(3px,-3px)}.card p{margin-top:var(--s-2);color:var(--content-soft);max-width:60ch;font-size:.97rem}.card .result{color:var(--content-secondary);font-size:var(--text-sm)}.card .tags{margin-top:var(--s-3)}@media (hover:hover){.dim-list:hover .dim-item:not(:hover):not(:focus-within){opacity:.5}}.dim-item{transition:opacity var(--t-base) var(--ease-standard)}.thumb{aspect-ratio:16/10;border-radius:var(--radius-md);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-subtle);isolation:isolate;position:relative;overflow:hidden}.thumb-in{transform:translate3d(calc(var(--px) * -8px), calc(var(--py) * -6px), 0) scale(1);transition:transform var(--t-slow) var(--ease-standard);will-change:transform;position:absolute;inset:-6%}.card:hover .thumb-in{transform:translate3d(calc(var(--px) * -8px), calc(var(--py) * -6px), 0) scale(1.05)}.thumb img{object-fit:cover;width:100%;height:100%}.thumb:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff0f}.js .card .thumb{clip-path:inset(0 0 100% 0 round var(--radius-md));transition:clip-path 1s var(--ease-standard) .1s}.js .card.in .thumb{clip-path:inset(0 0 0 0 round var(--radius-md))}.thumb-ph{background:linear-gradient(var(--border-subtle) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px) 0 0 / 24px 24px, var(--surface-raised);place-items:center;width:100%;height:100%;display:grid}.thumb-ph span{font:500 clamp(1.4rem, 3vw, 2rem)/1 var(--font-mono);color:var(--action);background:var(--surface-base);padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--action-line);letter-spacing:-.04em}@supports (animation-timeline:view()){.thumb img{animation:linear both drift view();animation-range:cover}@keyframes drift{0%{transform:translateY(-4%)}to{transform:translateY(4%)}}}.foot{color:var(--content-secondary);font:400 var(--text-sm)/1.6 var(--font-mono);padding-top:var(--s-8);border-top:1px solid var(--border-subtle);gap:var(--s-2) var(--s-6);flex-wrap:wrap;justify-content:space-between;display:flex}.foot a:hover{color:var(--action)}.page{max-width:760px;padding:clamp(1.5rem, 6vh, 4rem) clamp(1rem, 4vw, 2rem) var(--s-20);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:var(--s-4);margin-bottom:var(--s-10);font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--content-secondary);display:flex}.topbar a{min-height:2.75rem;transition:color var(--t-fast);align-items:center;display:inline-flex}.topbar a:hover{color:var(--action)}.crumbs ol{gap:var(--s-1) var(--s-2);flex-wrap:wrap;display:flex}.crumbs li+li:before{content:"/";margin-right:var(--s-2);opacity:.5}.page h1{letter-spacing:-.028em;font-size:clamp(1.9rem,4.4vw,2.75rem);font-weight:600;line-height:1.1}.lede{color:var(--content-soft);font-size:var(--text-lg);margin-top:var(--s-4);max-width:60ch;line-height:1.55}.meta{margin-top:var(--s-4);gap:var(--s-1) var(--s-4);font:400 var(--text-sm)/1.5 var(--font-mono);color:var(--content-secondary);flex-wrap:wrap;display:flex}.hero-img{margin-top:var(--s-8);aspect-ratio:16/9;border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-subtle);position:relative;overflow:hidden}.hero-img img{object-fit:cover;width:100%;height:100%}.hero-img .thumb-ph span{font-size:clamp(2rem,6vw,3.5rem)}.facts{margin:var(--s-8) 0 0;gap:var(--s-4) var(--s-6);padding:var(--s-5) 0;border-block:1px solid var(--border-subtle);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.facts dt{font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--content-secondary)}.facts dd{margin:var(--s-2) 0 0;color:var(--content-body);font-size:var(--text-sm);overflow-wrap:anywhere}.actions{gap:var(--s-3);margin-top:var(--s-6);flex-wrap:wrap;display:flex}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:2.75rem;padding:0 var(--s-5);border-radius:var(--radius-md);font:500 var(--text-sm)/1 var(--font-sans);border:1px solid var(--border-strong);color:var(--content-primary);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);background:0 0;display:inline-flex}.btn:hover{border-color:var(--action);color:var(--action)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--action);color:var(--on-action);border-color:var(--action)}.btn-primary:hover{background:color-mix(in srgb, var(--action) 86%, white);color:var(--on-action)}.toc{margin-top:var(--s-8);padding:var(--s-4) var(--s-5);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-subtle)}.toc h2{font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--content-secondary);margin-bottom:var(--s-3)}.toc a{padding:var(--s-1) 0;color:var(--content-soft);font-size:var(--text-sm);display:block}.toc a:hover{color:var(--action)}.toc .l3{padding-left:var(--s-4)}.from-project{margin-top:var(--s-3);font:400 var(--text-sm)/1.5 var(--font-mono);color:var(--content-secondary)}.from-project a{color:var(--content-primary);text-decoration:underline;text-decoration-color:var(--action-line);text-underline-offset:3px}.from-project a:hover{color:var(--action)}.related{margin-top:var(--s-16);padding-top:var(--s-10);border-top:1px solid var(--border-subtle)}.related .post-list{margin-top:var(--s-6)}.pager{gap:var(--s-3);margin-top:var(--s-16);grid-template-columns:1fr 1fr;display:grid}.pager a{padding:var(--s-4) var(--s-5);border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--border-subtle);transition:background var(--t-base), box-shadow var(--t-base);display:block}.pager a:hover{background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--action-line)}.pager small{font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--content-secondary);margin-bottom:var(--s-2);display:block}.pager .next{text-align:right;grid-column:2}.pager span{font-weight:500}.draft-banner{margin-bottom:var(--s-6);padding:var(--s-3) var(--s-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--feedback-warning) 12%, transparent);color:var(--feedback-warning);font:500 var(--text-sm)/1.4 var(--font-mono);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--feedback-warning) 40%, transparent)}.post-list{margin-top:var(--s-12);gap:var(--s-1);flex-direction:column;display:flex}.post{padding:var(--s-5);margin:0 calc(-1 * var(--s-5));border-radius:var(--radius-lg);transition:background var(--t-base);display:block;position:relative}.post:hover,.post:focus-within{background:var(--surface-raised)}.post h3{font-size:var(--text-lg);margin-top:var(--s-1);gap:var(--s-2);align-items:baseline;font-weight:600;display:flex}.post h3 a:after{content:"";position:absolute;inset:0}.post h3 .arrow{color:var(--content-secondary);transition:transform var(--t-base) var(--ease-standard), color var(--t-base)}.post:hover .arrow{color:var(--action);transform:translate(3px,-3px)}.post p{color:var(--content-soft);margin-top:var(--s-2);font-size:.97rem}.more{margin-top:var(--s-6)}.logo{border-radius:22%;flex:none;display:inline-block}.topbar a:has(.logo),.crumbs a:has(.logo){gap:var(--s-2)}.foot-id{align-items:center;gap:var(--s-2);display:inline-flex}.empty{padding:var(--s-8);border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--border-subtle);color:var(--content-secondary)}.prose{margin-top:var(--s-10);color:var(--content-body);max-width:68ch}.prose>*+*{margin-top:1.15rem}.prose h2{font-size:var(--text-h2);letter-spacing:-.02em;color:var(--content-primary);margin-top:2.6rem;line-height:1.25}.prose h3{font-size:var(--text-h3);color:var(--content-primary);margin-top:2rem}.prose h4{color:var(--content-primary);margin-top:1.5rem}.prose a{color:var(--action);border-bottom:1px solid var(--action-line);transition:border-color var(--t-fast)}.prose a:hover{border-color:var(--action)}.prose ul,.prose ol{list-style:revert;padding-left:1.4rem}.prose li+li{margin-top:.3rem}.prose code{font:400 .88em var(--font-mono);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-subtle);border-radius:var(--radius-sm);padding:.14em .42em}.prose pre{padding:var(--s-4) var(--s-5);border-radius:var(--radius-md);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-subtle);font-size:.85rem;line-height:1.65;overflow-x:auto}.prose pre code{box-shadow:none;font-size:inherit;background:0 0;padding:0}.shiki,.shiki span{color:var(--shiki-dark)}.shiki{background-color:#0000!important}.prose blockquote{padding-left:var(--s-4);border-left:2px solid var(--action);color:var(--content-secondary);margin-left:0}.prose hr{border:0;border-top:1px solid var(--border-subtle)}.prose img{border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--border-subtle);height:auto}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);display:block;overflow-x:auto}.prose th,.prose td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border-subtle);text-align:left}.cursor{z-index:90;pointer-events:none;opacity:0;transition:opacity var(--t-base);mix-blend-mode:normal;position:fixed;top:0;left:0}.cursor.on{opacity:1}.cursor-ring{border:1px solid var(--action);width:32px;height:32px;transition:transform var(--t-base) var(--ease-standard), background var(--t-base), border-color var(--t-base);border-radius:50%;place-items:center;display:grid;position:absolute;top:-16px;left:-16px}.cursor-dot{background:var(--action);border-radius:50%;width:4px;height:4px;position:absolute;top:-2px;left:-2px}.cursor-label{font:500 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-action);opacity:0;transition:opacity var(--t-fast)}.cursor.is-link .cursor-ring{background:var(--action-soft);transform:scale(1.5)}.cursor.has-label .cursor-ring{background:color-mix(in srgb, var(--action) 92%, transparent);transform:scale(1.9)}.cursor.has-label .cursor-label{opacity:1}.cursor.has-label .cursor-dot{opacity:0}.cursor.is-down .cursor-ring{transform:scale(.8)}.cursor.is-text{opacity:0}@view-transition{navigation:auto}::view-transition-old(root){animation:.16s var(--ease-exit) both vt-out}::view-transition-new(root){animation:.32s var(--ease-standard) 60ms both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(8px)}}::view-transition-group(.morph){animation-duration:.52s;animation-timing-function:var(--ease-standard)}@media (width<=900px){.shell{grid-template-columns:1fr;gap:0}.rail{height:auto;padding:var(--s-12) 0 0;position:static;overflow:visible}.rail .summary{max-width:none}.rail .nav{display:none}.content{padding-top:var(--s-10)}}@media (width<=640px){.card{gap:var(--s-4);margin:0 calc(-1 * var(--s-3));padding:var(--s-3);grid-template-columns:1fr}.thumb{max-width:420px}.pager{grid-template-columns:1fr}.pager .next{text-align:left;grid-column:1}}@media (hover:none){.cursor{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}@view-transition{navigation:none}.js .hero-title .line span,.js [data-reveal]{opacity:1;transform:none}.js .card .thumb{clip-path:none}.js .section-title:after{transform:none}.flow-dot,.cursor{display:none}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media print{body{color:#000;background:#fff}.rail .nav,.socials,.progress,.cursor,.flow,.actions,.pager,.skip-link{display:none!important}.shell{display:block}.rail{height:auto;position:static;overflow:visible}.js [data-reveal]{opacity:1!important;transform:none!important}a[href^=http]:after{content:" (" attr(href) ")";color:#444;font-size:.8em}.card:before{display:none}}.hero-spacer{display:none}.js.hero-on .hero-spacer{display:block}.rail{z-index:2}.hero-on:not(.hero-done) .rail{overflow:visible}.hero-on [data-morph]{backface-visibility:hidden}.hero-on:not(.hero-done) .rail-rest{pointer-events:none}.js.hero-on [data-content]>:not([data-hero-spacer]){opacity:0}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(42rem circle at 50% 42%, var(--action-soft), transparent 70%);opacity:var(--hero,0);position:fixed;inset:0}.scroll-hint{display:none}.hero-on .scroll-hint{z-index:3;font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--content-secondary);flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.hero-done .scroll-hint{visibility:hidden}.scroll-hint i{background:linear-gradient(var(--action), transparent);width:1px;height:34px;animation:hint 1.8s var(--ease-standard) infinite;transform-origin:top}@keyframes hint{0%{transform:scaleY(0)}50%{transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}@media (width<=900px){.identity{text-align:center;min-height:100svh;padding-bottom:var(--s-12);flex-direction:column;justify-content:center;align-items:center;display:flex}.identity .avatar{width:168px;height:168px}.identity .summary{max-width:34ch}.rail{padding-top:0}.rail-rest{margin-top:var(--s-4)}.id-links{justify-content:center}}.branch-legend{align-items:center;gap:var(--s-2) var(--s-5);margin-bottom:var(--s-5);font:400 var(--text-caption)/1.3 var(--font-mono);color:var(--content-secondary);flex-wrap:wrap;display:flex}.branch-legend .lg{align-items:center;gap:var(--s-2);color:var(--content-soft);display:inline-flex}.branch-legend .lg:before{content:"";background:var(--edu);border-radius:3px;width:18px;height:6px}.branch-legend .lg.work:before{background:var(--action)}.branch-legend .lg-note{margin-left:auto}.branch-wrap{--edu:var(--gray-300)}.branch{margin-bottom:var(--s-6);position:relative}.branch-svg{position:absolute;inset:0;overflow:visible}.br-grid{stroke:var(--border-subtle);stroke-width:1px;stroke-dasharray:2 4}.br-year{font:500 11px var(--font-mono);fill:var(--content-secondary);letter-spacing:.04em}.br-now{stroke:var(--action);stroke-width:1px;stroke-dasharray:4 3;opacity:.7}.br-now-t{font:500 10px var(--font-mono);fill:var(--action);text-transform:uppercase;letter-spacing:.1em}.br-bar rect{fill:var(--edu);opacity:.55}.br-bar circle{fill:var(--surface-base);stroke:var(--edu);stroke-width:2px}.br-bar.work rect{fill:var(--action);opacity:.75}.br-bar.work circle{stroke:var(--action)}.br-bar .br-head{fill:var(--action);stroke:none;animation:2.4s ease-out infinite pulse}.br-bar.education .br-head{fill:var(--edu)}.br-curve{fill:none;stroke:var(--edu);stroke-width:2.5px;stroke-linecap:round;opacity:.7}.br-curve.work{stroke:var(--action)}.br-leader{fill:none;stroke:var(--border-strong);stroke-width:1px}.br-bar,.br-curve,.br-leader,.br-label{transition:opacity var(--t-base) var(--ease-standard)}.br-bar rect{transition:opacity var(--t-base), filter var(--t-base)}.br-bar.on rect,.br-bar.hot rect{opacity:1;filter:drop-shadow(0 0 6px var(--action-line))}.br-leader.on,.br-leader.hot{stroke:var(--action-line)}.branch.hovering .br-bar:not(.hot),.branch.hovering .br-curve:not(.hot),.branch.hovering .br-leader:not(.hot),.branch.hovering .br-label:not(.hot){opacity:.35}.br-label{padding:var(--s-2) var(--s-4);border-radius:var(--radius-md);min-width:0;transition:background var(--t-base), border-color var(--t-base), opacity var(--t-base);border:1px solid #0000;flex-direction:column;justify-content:center;gap:4px;display:flex;position:absolute;right:0}.br-label>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.br-kicker{font:400 var(--text-caption)/1.3 var(--font-mono);color:var(--content-secondary)}.br-kicker b{color:var(--edu);text-transform:uppercase;letter-spacing:.06em;margin-right:.35em;font-weight:500}.br-label.work .br-kicker b{color:var(--action)}.br-title{color:var(--content-primary);font-weight:600}.br-org{font-size:var(--text-sm);color:var(--content-secondary)}.br-label:hover,.br-label.hot{background:var(--surface-raised);border-color:var(--border-subtle)}.br-label.on{background:var(--surface-raised);border-color:var(--action-line)}.br-bar,.br-curve{cursor:pointer}.tl-details{gap:var(--s-6);margin:0;padding:0;list-style:none;display:grid}.tl-details .tl-item{padding:var(--s-5) var(--s-6);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised)}.tl-details .tl-item:before,.tl-details.picking>li[data-placed]:not(.on){display:none}.tl-details.picking>li.on{animation:tl-in .38s var(--ease-standard)}@keyframes tl-in{0%{opacity:0;transform:translateY(6px)}}@media (width<=640px){.branch-legend .lg-note{width:100%;margin-left:0}.br-dates{display:none}.tl-details .tl-item{padding:var(--s-4)}}.ps{--d-easy:var(--action);--d-medium:#e3b35b;--d-hard:#ec7a72;--d-other:var(--gray-400)}.ps .d-easy{--c:var(--d-easy)}.ps .d-medium{--c:var(--d-medium)}.ps .d-hard{--c:var(--d-hard)}.ps .d-other{--c:var(--d-other)}.ps-head{gap:var(--s-8);padding-bottom:var(--s-8);border-bottom:1px solid var(--border-subtle);grid-template-columns:auto 1fr;align-items:end;display:grid}.ps-total{gap:var(--s-2);flex-direction:column;display:flex}.ps-num{font:600 clamp(3rem, 6vw, 4.5rem)/.9 var(--font-mono);letter-spacing:-.03em;color:var(--content-primary)}.ps-cap{font:400 var(--text-sm)/1.3 var(--font-mono);color:var(--content-secondary)}.ps-cap b{color:var(--content-primary);font-weight:500}.ps-split{min-width:0;padding-bottom:.3rem}.ps-bar{border-radius:var(--radius-full);gap:3px;height:10px;display:flex;overflow:hidden}.ps-bar i{width:var(--w);background:var(--c);display:block}.ps-legend{gap:var(--s-2) var(--s-6);margin-top:var(--s-4);font:400 var(--text-caption)/1 var(--font-mono);color:var(--content-secondary);flex-wrap:wrap;display:flex}.ps-legend li{align-items:center;gap:var(--s-2);display:inline-flex}.ps-legend li:before{content:"";background:var(--c);border-radius:2px;width:8px;height:8px}.ps-legend b{color:var(--content-primary);font-weight:500}.ps-cards{gap:var(--s-4);padding:var(--s-8) 0;grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr));display:grid}.ps-card{gap:var(--s-2);padding:var(--s-6);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);transition:border-color var(--t-base);flex-direction:column;display:flex}.ps-card:hover{border-color:var(--border-strong)}.ps-name{font:500 var(--text-caption)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--content-secondary)}.ps-big{align-items:baseline;gap:0 var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.ps-big b{font:600 2.25rem/1 var(--font-mono);letter-spacing:-.02em;color:var(--content-primary)}.ps-of{font:500 var(--text-lg)/1 var(--font-mono);color:var(--content-secondary)}.ps-unit{margin-top:var(--s-2);font:400 var(--text-caption)/1.2 var(--font-mono);color:var(--content-secondary);flex-basis:100%}.ps-progress{border-radius:var(--radius-full);background:var(--surface-sunken);height:4px;display:block;overflow:hidden}.ps-progress i{height:100%;width:var(--w);background:var(--action);border-radius:inherit;display:block}.ps-sub{min-height:1.2em;font:400 var(--text-caption)/1.3 var(--font-mono);color:var(--content-soft)}.ps-mix{padding-top:var(--s-4);border-top:1px solid var(--border-subtle);margin-top:auto}.ps-bar-sm{gap:2px;height:6px}.ps-mix-t{gap:var(--s-1) var(--s-3);margin-top:var(--s-3);font:400 var(--text-caption)/1.2 var(--font-mono);color:var(--content-secondary);flex-wrap:wrap;display:flex}.ps-mix-t span:before{content:"";background:var(--c);vertical-align:1px;border-radius:2px;width:6px;height:6px;margin-right:5px;display:inline-block}.ps-mix-none{padding-top:var(--s-4);border-top:1px solid var(--border-subtle);font:400 var(--text-caption)/1.3 var(--font-mono);color:var(--content-soft);margin-top:auto}.js .ps-bar i,.js .ps-progress i{transform-origin:0;transition:transform 1s var(--ease-standard) .25s;transform:scaleX(0)}.js .in .ps-bar i,.js .in .ps-progress i{transform:none}.ps-foot{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-6);flex-wrap:wrap;display:flex}.ps-note{font:400 var(--text-caption)/1.3 var(--font-mono);color:var(--content-soft)}@media (width<=640px){.ps-head{gap:var(--s-6);grid-template-columns:1fr}.ps-cards{gap:var(--s-3);grid-template-columns:1fr 1fr}.ps-card{padding:var(--s-4)}.ps-big b{font-size:1.75rem}}@media (prefers-reduced-motion:reduce){.js .ps-bar i,.js .ps-progress i{transition:none;transform:none}}.resume-modal{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-raised);width:min(960px,100vw - 2rem);max-width:none;height:min(90dvh,1100px);max-height:none;color:var(--content-body);box-shadow:var(--shadow-4);padding:0;overflow:hidden}.resume-modal[open]{flex-direction:column;display:flex}.resume-modal::backdrop{background:var(--scrim);backdrop-filter:blur(3px)}html:has(.resume-modal[open]){overflow:hidden}.rm-bar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.rm-bar h2{font:600 var(--text-body)/1.2 var(--font-sans);color:var(--content-primary);margin:0}.rm-actions{gap:var(--s-2);flex-wrap:wrap;display:flex}.rm-btn{min-height:2.5rem;padding:0 var(--s-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--content-primary);font:500 var(--text-sm)/1 var(--font-mono);cursor:pointer;background:0 0;align-items:center;text-decoration:none;display:inline-flex}.rm-btn:hover{border-color:var(--action-line);background:var(--action-soft)}.rm-btn.primary{background:var(--action);color:var(--on-action);border-color:#0000}.rm-btn.primary:hover{filter:brightness(1.08);background:var(--action)}.rm-frame{background:#fff;border:0;flex:1;width:100%;min-height:0}
