@font-face{font-family:Tomorrow;font-style:normal;font-weight:300;font-display:swap;src:url(../media/6fc15133adf248f8-s.p.0-cr2rv53tbnx.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Tomorrow;font-style:normal;font-weight:300;font-display:swap;src:url(../media/7151145091cbfab1-s.p.0a26yazx1e237.woff2)format("woff2");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:Tomorrow;font-style:normal;font-weight:400;font-display:swap;src:url(../media/719a0e4e133903c5-s.p.0zwy0iua3892_.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Tomorrow;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0f093cda20a2039c-s.p.1mfr-3f6io2fu.woff2)format("woff2");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:Tomorrow;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c7cb15a2c135f9ec-s.p.3_kqa2bwghy8c.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Tomorrow;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa2ae68def53b291-s.p.07mo05r3dlmhl.woff2)format("woff2");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:Tomorrow Fallback;src:local(Arial);ascent-override:93.46%;descent-override:18.69%;line-gap-override:0.0%;size-adjust:107%}.W3-Izq_className{font-family:Tomorrow,Tomorrow Fallback;font-style:normal}.W3-Izq_variable{--font-tomorrow:"Tomorrow", "Tomorrow Fallback"}
@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59dbefd7fc1c7996-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1aa0075df79066e6-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a79089bce1b24273-s.p.44dak0sams9f0.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b8dfa3d21eb22018-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/59dbefd7fc1c7996-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1aa0075df79066e6-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a79089bce1b24273-s.p.44dak0sams9f0.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b8dfa3d21eb22018-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/59dbefd7fc1c7996-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1aa0075df79066e6-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a79089bce1b24273-s.p.44dak0sams9f0.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b8dfa3d21eb22018-s.p.3lxpqujs87tck.woff2)format("woff2");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:Hanken Grotesk Fallback;src:local(Arial);ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.0%;size-adjust:100.94%}.QX2UZa_className{font-family:Hanken Grotesk,Hanken Grotesk Fallback;font-style:normal}.QX2UZa_variable{--font-hanken:"Hanken Grotesk", "Hanken Grotesk Fallback"}
@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/f4a4b720e2c65fc7-s.2zkj-p18lgxwi.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/45ffbcdffab553f3-s.2ffn2c0h-1t7r.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/a32bf90a071893d4-s.p.1ns0a980vcn85.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/72473373e412ffca-s.p.12ukhzf-lem3a.woff2)format("woff2");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:Martian Mono;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/f4a4b720e2c65fc7-s.2zkj-p18lgxwi.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Martian Mono;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/45ffbcdffab553f3-s.2ffn2c0h-1t7r.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Martian Mono;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/a32bf90a071893d4-s.p.1ns0a980vcn85.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Martian Mono;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/72473373e412ffca-s.p.12ukhzf-lem3a.woff2)format("woff2");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:Martian Mono Fallback;src:local(Arial);ascent-override:63.69%;descent-override:12.74%;line-gap-override:0.0%;size-adjust:157.02%}.ZsAK-W_className{font-family:Martian Mono,Martian Mono Fallback;font-style:normal}.ZsAK-W_variable{--font-martian:"Martian Mono", "Martian Mono Fallback"}
*,:before,:after{box-sizing:border-box}:root{--bg:#0c1119;--panel:#111823;--panel-raised:#1a2431;--surface:#283444;--line:#283444;--line-strong:#3a4a5e;--line-bright:#57708a;--steel:#718ea6;--muted:#8ca3b7;--soft:#a9bbcb;--text-2:#c3d0dc;--text:#d9e1e8;--accent:#7cc4f5;--font-display:var(--font-tomorrow), "Segoe UI", system-ui, sans-serif;--font-body:var(--font-hanken), system-ui, sans-serif;--font-mono:var(--font-martian), ui-monospace, "Cascadia Mono", monospace;--ease-out:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}a{color:var(--text)}a:hover{color:#fff}::selection{background:var(--steel);color:var(--bg)}section[id]{scroll-margin-top:84px}img{max-width:100%}.page{overflow-x:clip}.container{width:100%;max-width:1416px;margin-inline:auto;padding-inline:clamp(16px,4vw,48px)}.label{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.6875rem;line-height:1.5}.label--strong{color:var(--text)}.ico{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;flex:none;width:20px;height:20px}.ruler{background-image:repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px 10px);flex:auto;min-width:24px;height:10px;-webkit-mask-image:linear-gradient(90deg,#000,#0000);mask-image:linear-gradient(90deg,#000,#0000)}.cut{--c:18px;--line:var(--surface);--fill:var(--panel);isolation:isolate;background:var(--line);clip-path:polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)));transition:background .2s;position:relative}.cut:before{content:"";z-index:-1;background:var(--fill);clip-path:polygon(0 0, calc(100% - var(--c) + .586px) 0, 100% calc(var(--c) - .586px), 100% 100%, calc(var(--c) - .586px) 100%, 0 calc(100% - var(--c) + .586px));position:absolute;inset:1px}.cut.lit{--line:var(--line-bright)}.cut.is-on{--line:var(--accent)}.btn{--c:10px;min-height:48px;font-family:var(--font-display);letter-spacing:.02em;cursor:pointer;clip-path:polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)));border:0;justify-content:center;align-items:center;gap:10px;padding:10px 22px;font-size:.95rem;font-weight:500;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.btn.primary{background:var(--text);color:var(--bg)}.btn.primary:hover,.btn.primary:focus-visible{background:var(--accent);color:var(--bg)}.btn.ghost{background:var(--surface);color:var(--text)}.btn.ghost:hover,.btn.ghost:focus-visible{background:var(--line-strong);color:#fff}.btn[disabled]{opacity:.45;cursor:not-allowed}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chip{background:var(--surface);min-height:28px;color:var(--text);font-family:var(--font-mono);align-items:center;padding:3px 10px;font-size:.6875rem;line-height:1.4;display:inline-flex}.bullets{color:var(--text-2);flex-direction:column;gap:6px;margin:0;padding:0 0 0 18px;display:flex}.bullets li{text-wrap:pretty}.row{color:var(--text);text-decoration:none;transition:color .2s,padding-left .2s}.row:hover,.row:focus-visible{color:var(--accent);padding-left:8px}.mini{border:1px solid var(--line-strong);min-height:44px;color:var(--text);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:6px 12px;font-size:.6875rem;transition:border-color .2s}.mini:hover{border-color:var(--accent)}.mini:focus-visible,.filter:focus-visible,.seg:focus-visible,.track:focus-visible,.gh-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-header{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0c1119e6;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 24px;padding-block:8px;display:flex}.brand{min-height:44px;color:var(--text);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{width:28px;height:28px}.brand-name{font-family:var(--font-display);letter-spacing:.06em;font-size:.95rem;font-weight:500}.nav{flex-wrap:wrap;gap:2px;margin-inline:-12px;display:flex}.nav-link{min-height:44px;color:var(--soft);align-items:center;padding:0 12px;font-size:.95rem;text-decoration:none;transition:color .2s;display:inline-flex}.nav-link:hover,.nav-link:focus-visible{color:var(--accent)}.hero{border-bottom:1px solid var(--line);background:radial-gradient(60% 75% at 78% 38%,#718ea633,#0000 72%);position:relative;overflow:clip}.hero-canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hero-veil{pointer-events:none;background:linear-gradient(90deg, var(--bg) 8%, #0c1119b8 34%, #0c111900 60%);position:absolute;inset:0}.hero-inner{flex-direction:column;justify-content:center;gap:clamp(18px,2vw,26px);min-height:48rem;padding-block:clamp(56px,7vw,96px);display:flex;position:relative}.hero-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:clamp(3.2rem,7.5vw,6.5rem);font-weight:300;line-height:1.04}.hero-stack{color:var(--text-2);text-wrap:pretty;margin:0;font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.4}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.hero-note{text-align:right;pointer-events:none;max-width:calc(100% - 32px);margin:0;position:absolute;bottom:14px;right:clamp(16px,4vw,48px)}.section{border-bottom:1px solid var(--line)}.section-inner{padding-block:clamp(56px,8vw,104px)}.section-inner--tight{padding-block:clamp(44px,6vw,72px)}.section-head{align-items:center;gap:16px;margin-bottom:clamp(28px,4vw,48px);display:flex}.section-inner--tight .section-head{margin-bottom:clamp(20px,3vw,32px)}.section-title{font-family:var(--font-display);margin:0;font-size:clamp(1.9rem,4vw,3rem);font-weight:300;line-height:1.1}.skills-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"a m b""c m d";gap:14px 0;display:grid}.stage{background:radial-gradient(closest-side,#718ea621,#0000 80%);grid-area:m;min-height:430px;position:relative}.stage-canvas{touch-action:pan-y;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.stage-hint{text-align:center;pointer-events:none;margin:0;position:absolute;top:6px;left:0;right:0}.skill-card{flex-direction:column;gap:10px;min-width:0;padding:16px 18px 18px;display:flex}.skill-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding-right:10px;display:flex}.skill-card-title{font-family:var(--font-display);margin:0;font-size:1.3rem;font-weight:400;line-height:1.2}.timeline-intro{max-width:44em;color:var(--text-2);text-wrap:pretty;margin:0 0 clamp(28px,4vw,44px);font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.45}.rail{border-left:1px solid var(--line);flex-direction:column;gap:clamp(36px,5vw,56px);padding-left:24px;display:flex;position:relative}.rail.armed{border-left-color:#0000}.rail-line{background:var(--line-strong);pointer-events:none;width:1px;transform:scaleY(var(--rail-p,0));transform-origin:top;transition:transform .3s ease-out;display:none;position:absolute;top:0;bottom:0;left:-1px}.rail.armed .rail-line{display:block}.rail-item{flex-wrap:wrap;gap:10px clamp(24px,3vw,48px);display:flex;position:relative}.rail-item:before{content:"";background:var(--bg);border:1px solid var(--steel);width:9px;height:9px;position:absolute;top:5px;left:-30px;transform:rotate(45deg)}.rail-item.now:before{background:var(--accent);border-color:var(--accent)}.rail-item:after{content:"";border:1px solid var(--accent);opacity:0;pointer-events:none;width:9px;height:9px;position:absolute;top:5px;left:-30px;transform:rotate(45deg)}.rail.armed .rail-item:before{background:var(--bg);border-color:var(--line-bright);opacity:.45;transform:rotate(45deg)scale(.45)}.rail.armed .rail-item.is-seen:before{border-color:var(--steel);opacity:1;animation:.55s cubic-bezier(.2,.9,.3,1.3) both railNode}.rail.armed .rail-item.now.is-seen:before{background:var(--accent);border-color:var(--accent)}.rail.armed .rail-item.is-seen:after{animation:1.1s ease-out .1s both railPing}.rail.armed .rail-item.now.is-seen:after{animation:2.8s ease-out .1s infinite railPing}.rail.armed .rail-item>*>*{opacity:0;transition:opacity .7s ease, transform .7s var(--ease-out);transform:translateY(28px)}.rail.armed .rail-item.is-seen>*>*{opacity:1;transform:none}.rail.armed .rail-item.is-seen>*>:nth-child(2){transition-delay:90ms}.rail.armed .rail-item.is-seen>*>:nth-child(3){transition-delay:.18s}.rail.armed .rail-item.is-seen>*>:nth-child(4){transition-delay:.27s}.rail-meta{flex-direction:column;flex:170px;gap:4px;max-width:210px;display:flex}.rail-body{flex-direction:column;flex:999 440px;gap:8px;min-width:0;display:flex}.rail-title{font-family:var(--font-display);margin:0;font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:400;line-height:1.2}.rail-org{color:var(--text);margin:0;font-size:1.15rem}.rail-text{color:var(--text-2);text-wrap:pretty;max-width:44em;margin:4px 0 0}.work-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.work-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;padding:16px 24px 16px 22px;display:flex}.work-heading{flex-direction:column;flex:260px;gap:2px;min-width:0;display:flex}.work-name{font-family:var(--font-display);margin:0;font-size:1.4rem;font-weight:400;line-height:1.25}.work-summary{color:var(--soft);text-wrap:pretty;margin:0}.work-body{flex-direction:column;gap:14px;padding:2px 24px 24px 22px;display:flex}.work-what{color:var(--text);text-wrap:pretty;max-width:52em;margin:0}.stack-list{flex-direction:column;gap:6px;display:flex}.work-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;display:flex}.work-footer .row{align-items:center;min-height:44px;display:inline-flex}.languages{flex:999 440px;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px 24px;min-width:0;margin:0;display:grid}.languages div{flex-direction:column;gap:2px;display:flex}.languages dt{color:var(--text);font-weight:600}.languages dd{color:var(--soft);margin:0}.expand{--c:8px;min-height:44px;padding:8px 14px;font-size:.9rem}.chev{transition:transform .25s}.chev.is-open{transform:rotate(180deg)}.fold{opacity:0;visibility:hidden;transition:grid-template-rows .4s var(--ease-out), margin-top .4s var(--ease-out), opacity .22s ease, visibility 0s linear .4s;grid-template-rows:0fr;display:grid}.fold.is-open{opacity:1;visibility:visible;transition:grid-template-rows .4s var(--ease-out), margin-top .4s var(--ease-out), opacity .3s ease 60ms, visibility 0s;grid-template-rows:1fr}.fold-in{min-height:0;overflow:hidden}.fold.in-gap{margin-top:-14px}.fold.in-gap.is-open{margin-top:0}.fold.is-open li,.fold.is-open .node{animation:foldItem .42s var(--ease-out) both}.fold.is-open li:nth-child(2),.fold.is-open .node:nth-child(2){animation-delay:60ms}.fold.is-open li:nth-child(3),.fold.is-open .node:nth-child(3){animation-delay:.12s}.fold.is-open li:nth-child(4),.fold.is-open .node:nth-child(4){animation-delay:.18s}.fold.is-open li:nth-child(5),.fold.is-open .node:nth-child(5){animation-delay:.24s}.projects-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.filters{flex-wrap:wrap;gap:8px;display:flex}.filter{border:1px solid var(--line);min-height:44px;color:var(--soft);font:inherit;cursor:pointer;background:0 0;padding:8px 14px;font-size:.95rem;transition:background .2s,border-color .2s,color .2s}.filter:hover{border-color:var(--steel);color:var(--text)}.filter.is-on{background:var(--panel-raised);border-color:var(--accent);color:var(--text)}.carousel-nav{align-items:center;gap:10px;display:flex}.nav-btn{--c:8px;width:48px;padding:0}.track{scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;align-items:flex-start;gap:16px;display:flex;position:relative;overflow-x:auto}.track::-webkit-scrollbar{display:none}.slide{scroll-snap-align:start;flex-direction:column;flex:0 0 min(860px,94%);gap:14px;min-width:0;min-height:21rem;padding:clamp(20px,2.6vw,30px);display:flex}.track-end{flex:0 0 calc(100% - min(860px,94%) - 16px)}.slide-tag{margin:0;padding-right:12px}.slide-title{font-family:var(--font-display);margin:0;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:400;line-height:1.15}.slide-what{color:var(--text);text-wrap:pretty;max-width:52em;margin:0}.slide-details{flex-wrap:wrap;gap:20px 28px;padding-top:6px;display:flex}.slide-doing{flex-direction:column;flex:3 300px;gap:6px;min-width:0;display:flex}.slide-flow{flex-direction:column;flex:2 220px;gap:8px;min-width:0;display:flex}.slide-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:auto;padding-top:4px;display:flex}.repo-link{align-items:center;gap:10px;min-height:44px;display:inline-flex}.flow{flex-direction:column;display:flex}.node{background:var(--bg);border:1px solid var(--line-strong);color:var(--text);font-family:var(--font-mono);padding:8px 12px;font-size:.6875rem;line-height:1.45;position:relative}.node+.node{margin-top:18px}.node+.node:before{content:"";background:var(--line-bright);width:1px;height:18px;position:absolute;top:-19px;left:18px}.node+.node:after{content:"";background:var(--accent);width:4px;height:4px;animation:1.8s linear infinite drip;position:absolute;top:-19px;left:16.5px}.segments{gap:4px;margin-top:6px;display:flex}.seg{cursor:pointer;background:0 0;border:0;flex:1 1 0;align-items:center;min-width:20px;max-width:72px;min-height:44px;padding:0;display:flex}.seg span{background:var(--line-strong);width:100%;height:2px;transition:background .2s,height .2s;display:block}.seg:hover span{background:var(--steel)}.seg.is-on span{background:var(--accent);height:4px}.contact-grid{flex-wrap:wrap;align-items:flex-start;gap:clamp(24px,4vw,56px);display:flex}.contact-list{flex-direction:column;flex:400px;min-width:0;display:flex}.contact-email{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}.contact-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;min-height:68px;padding-block:10px;display:flex}.contact-email .contact-row{border-bottom:0;flex:260px;min-width:0}.contact-text{flex-direction:column;min-width:0;display:flex}.contact-value{overflow-wrap:anywhere}.gh-card{flex-direction:column;flex:min(440px,100%);gap:18px;min-width:0;padding:clamp(20px,2.6vw,28px);display:flex}.gh-head{align-items:center;gap:14px;padding-right:12px;display:flex}.gh-avatar{object-fit:cover;border:1px solid var(--line-bright);border-radius:50%;flex:none;width:64px;height:64px}.gh-id{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.gh-name{font-family:var(--font-display);overflow-wrap:anywhere;margin:0;font-size:1.3rem;font-weight:400;line-height:1.25}.gh-login{color:var(--soft);font-weight:300}.gh-role{color:var(--soft);margin:0}.gh-mark{width:26px;height:26px;color:var(--soft)}.gh-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(min(84px,100%),1fr));gap:12px 18px;margin:0;padding:14px 0;display:grid}.gh-stats div{flex-direction:column-reverse;justify-content:flex-end;gap:2px;display:flex}.gh-stats dt{color:var(--soft);font-size:.92rem;line-height:1.3}.gh-stats dd{font-family:var(--font-display);margin:0;font-size:2rem;font-weight:300;line-height:1.15}.gh-scroll{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;overflow-x:auto}.gh-grid{grid-template-rows:repeat(7,minmax(0,1fr));grid-template-columns:repeat(53,minmax(0,1fr));grid-auto-flow:column;gap:3px;min-width:480px;display:grid}.gh-cell{aspect-ratio:1;background:#1e2936;display:block}.gh-cell.l1{background:#34506b}.gh-cell.l2{background:#4f7c9f}.gh-cell.l3{background:#66a3cf}.gh-cell.l4{background:var(--accent)}.gh-key{flex:none;width:11px}.gh-caption{color:var(--soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 20px;font-size:.92rem;display:flex}.gh-legend{align-items:center;gap:4px;display:inline-flex}.gh-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.gh-buttons{flex-wrap:wrap;gap:10px;display:flex}.gh-read{color:var(--soft);font-size:.92rem}.site-footer{border-top:1px solid var(--line)}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 20px;padding-block:18px;display:flex}.footer-top{margin-right:-12px}.wipe{animation:wipe 1.05s var(--ease-out) both}.rise{animation:.8s both rise}@keyframes wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes railNode{0%{transform:rotate(45deg)scale(.45)}60%{transform:rotate(45deg)scale(1.5)}to{transform:rotate(45deg)scale(1)}}@keyframes railPing{0%{opacity:.8;transform:rotate(45deg)scale(1)}70%,to{opacity:0;transform:rotate(45deg)scale(3)}}@keyframes foldItem{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes drip{0%{opacity:0;top:-19px}30%{opacity:1}to{opacity:0;top:-3px}}@keyframes reveal{0%{opacity:.2;transform:translateY(18px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){.reveal{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 28%}}@media (max-width:1080px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"m m""a b""c d";gap:12px}.stage{height:clamp(320px,56vw,480px);min-height:0}}@media (max-width:720px){.site-header{position:static}.hero-veil{background:linear-gradient(#0c111973 40%,#0c111900 72%)}}@media (max-width:640px){.skills-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"m""a""b""c""d"}.contact-email .contact-row{flex-basis:100%}.contact-email .mini{margin:0 0 14px 34px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wipe,.rise,.reveal,.fold.is-open li,.fold.is-open .node{animation:none!important}.row,.btn,.filter,.chev,.fold,.fold.is-open{transition:none!important}.node+.node:after{display:none}}
