@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-ext-400-normal-C_uLvvQ5.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-400-normal-Bh0R7Dhr.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-vietnamese-400-normal-ByoDsISC.woff2) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-500-normal-CEVyPk4Y.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2) format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--slate: #374151;--paper: #e6e6e6;--coral: #e1645e;--font-sans: "Space Grotesk Variable", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--ease-out: cubic-bezier(.16, 1, .3, 1);--gutter: clamp(1.25rem, 4vw, 3.5rem);--section-pad-top: clamp(2.5rem, 6vh, 4.5rem);--section-pad-bottom: clamp(2.5rem, 7vh, 5rem);--section-content-gap: clamp(1.25rem, 3vh, 2rem);--accent: var(--coral);--on-accent: #fff;--code-bg: color-mix(in srgb, var(--slate) 92%, black);--code-fg: var(--paper);--code-muted: color-mix(in srgb, var(--paper) 45%, var(--slate))}:root,[data-theme=light]{color-scheme:light;--bg: var(--paper);--fg: var(--slate);--fg-muted: color-mix(in srgb, var(--slate) 68%, var(--paper));--dot: color-mix(in srgb, var(--slate) 38%, var(--paper));--surface: color-mix(in srgb, var(--paper) 45%, white);--border: color-mix(in srgb, var(--slate) 16%, transparent);--shadow: 0 30px 80px -30px color-mix(in srgb, var(--slate) 45%, transparent)}[data-theme=dark]{color-scheme:dark;--bg: color-mix(in srgb, var(--slate) 45%, #0b0d12);--fg: var(--paper);--fg-muted: color-mix(in srgb, var(--paper) 62%, var(--slate));--dot: color-mix(in srgb, var(--paper) 30%, var(--slate));--surface: color-mix(in srgb, var(--slate) 75%, #0b0d12);--border: color-mix(in srgb, var(--paper) 12%, transparent);--shadow: 0 30px 80px -30px rgb(0 0 0 / .7);--code-bg: color-mix(in srgb, var(--slate) 88%, #0b0d12)}@keyframes blink{50%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}}@keyframes text-swap{0%{opacity:0;transform:translateY(.35em)}}@keyframes char-in{0%{opacity:0;transform:translateY(.5em)}}@keyframes select-sweep{0%{background-size:0% 100%}}@keyframes select-text{0%{color:var(--fg)}}*,*:before,*:after{box-sizing:border-box;margin:0}html{--cursor-default: url(/cursors/arrow.svg) 5 4, auto;--cursor-pointer: url(/cursors/pointer.svg) 7 6, pointer;--cursor-text: url(/cursors/text.svg) 10 14, text;scroll-behavior:smooth;-webkit-text-size-adjust:100%;cursor:var(--cursor-default)}:where(p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,figcaption,input,textarea,[contenteditable]){cursor:var(--cursor-text)}:where([role=img],[aria-hidden=true]),:where([role=img],[aria-hidden=true]) *{cursor:var(--cursor-default)}:where(a[href],button,label,summary,select,[role=button]),:where(a[href],button,label,summary,[role=button]) *{cursor:var(--cursor-pointer)}@media (forced-colors: active){html,html *{cursor:auto}}body{min-height:100svh;background:var(--bg);color:var(--fg);font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0}::selection{background:var(--accent);color:var(--on-accent)}.paper-sheet{background:repeating-linear-gradient(125deg,rgb(0 0 0 / .018) 0 6px,transparent 6px 12px),#f7f5ef;color:#374151}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.theme-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--border);border-radius:8px;background:var(--bg);transition:border-color .25s}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle svg{width:20px;height:20px;transition:transform .4s var(--ease-out);overflow:visible}.theme-toggle:hover svg{transform:rotate(-20deg)}.theme-toggle__core{fill:var(--fg);transform-origin:center;transition:r .5s var(--ease-out),fill .3s}.theme-toggle__bite{transition:cx .5s var(--ease-out),cy .5s var(--ease-out)}.theme-toggle__rays{stroke:var(--fg);stroke-width:2;stroke-linecap:round;transform-origin:center;transition:transform .5s var(--ease-out),opacity .3s}.theme-toggle[data-dark=true] .theme-toggle__core{r:9;fill:var(--accent)}.theme-toggle[data-dark=true] .theme-toggle__bite{cx:17;cy:7}.theme-toggle[data-dark=true] .theme-toggle__rays{opacity:0;transform:rotate(-90deg) scale(.4)}.navbar{position:fixed;inset:1rem var(--gutter) auto;z-index:50;display:flex;align-items:stretch;height:58px;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 12px 30px -22px color-mix(in srgb,black 60%,transparent);animation:nav-in .9s var(--ease-out) both}.navbar__logo{display:flex;align-items:center;padding:0 1.4rem;font-family:var(--font-mono);font-weight:500;font-size:1.05rem;letter-spacing:-.02em}.navbar__bracket{color:var(--fg-muted);transition:color .3s}.navbar__logo:hover .navbar__bracket,.navbar__dot{color:var(--accent)}.navbar__nav{display:flex;margin-left:auto}.navbar__nav ul{display:flex;padding:0;list-style:none}.navbar__nav a{position:relative;display:flex;align-items:center;height:100%;padding:0 1.6rem;border-left:1px solid var(--border);font-size:.95rem;transition:background-color .25s,color .25s}.navbar__nav a:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}.navbar__nav a:hover{background:var(--bg);color:var(--accent)}.navbar__nav a:hover:before{transform:scaleX(1)}.navbar__actions{display:flex;align-items:center;padding:0 .75rem;border-left:1px solid var(--border)}@keyframes nav-in{0%{opacity:0;transform:translateY(-120%)}}@media (max-width: 640px){.navbar__nav{display:none}.navbar__actions{margin-left:auto}}.button-link{padding:.95rem 1.5rem;border-radius:6px;font-weight:500;transition:background-color .25s,color .25s,box-shadow .25s}.button-link--primary{background:var(--fg);color:var(--bg)}.button-link--primary:hover{background:var(--accent);color:var(--on-accent)}.button-link--accent{background:var(--p-accent, var(--accent));color:var(--p-accent-fg, var(--on-accent))}.button-link--accent:hover{filter:brightness(1.08);box-shadow:0 10px 24px -12px var(--p-accent, var(--accent))}.button-link--ghost{color:var(--fg);box-shadow:inset 0 0 0 1.5px var(--fg)}.button-link--ghost:hover{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.bouncing-period{display:inline-block;color:var(--accent);cursor:var(--cursor-pointer)}.bouncing-period__dot{display:inline-block;transform-origin:50% 80%}.bouncing-period__dot[data-bouncing=true]{animation:period-bounce .8s infinite}@keyframes period-bounce{0%,to{transform:none}8%{transform:translateY(0) scale(1.25,.75);animation-timing-function:cubic-bezier(.2,.6,.4,1)}48%{transform:translateY(-.45em) scale(.92,1.08);animation-timing-function:cubic-bezier(.6,0,.8,.4)}86%{transform:translateY(0) scale(1.25,.75)}}.split-word{display:inline-block;white-space:nowrap}.section-header{width:100%;max-width:1400px;margin:0 auto;padding-bottom:clamp(1.25rem,3vh,2rem)}.section-header__title{font-size:clamp(2.6rem,6vw,4.5rem);font-weight:700;letter-spacing:-.04em}.section-header[data-size=md] .section-header__title{font-size:clamp(2.3rem,4.4vw,3.8rem);line-height:1.05}.section-header__title .split-char{display:inline-block}.section-header__lede{margin-top:.6rem;max-width:52ch;color:var(--fg-muted);font-size:clamp(.95rem,1.1vw,1.05rem)}.js .section-header[data-revealed=false] .section-header__title .split-char,.js .section-header[data-revealed=false] .section-header__title .bouncing-period,.js .section-header[data-revealed=false] .section-header__lede{opacity:0}.js .section-header[data-revealed=true] .section-header__title .split-char{animation:char-in .9s calc(var(--i) * 45ms) var(--ease-out) backwards}.js .section-header[data-revealed=true] .section-header__title .bouncing-period{transform-origin:bottom;animation:period-drop .7s .8s var(--ease-out) backwards}.js .section-header[data-revealed=true] .section-header__lede{animation:rise .8s .4s var(--ease-out) backwards}@keyframes period-drop{0%{opacity:0;transform:translateY(-1.4em)}70%{opacity:1;transform:translateY(0) scale(1.15,.7)}85%{transform:scale(.95,1.1)}to{transform:none}}@media (min-width: 1024px) and (max-height: 860px){.section-header__title{font-size:clamp(2rem,6vh,3.2rem)}.section-header__lede{margin-top:.4rem}.section-header{padding-bottom:clamp(1rem,2.4vh,1.5rem)}}.facts__title{color:var(--fg-muted);font-family:var(--font-mono);font-size:.78rem;font-weight:400}.facts__list{margin:.8rem 0 0}.facts__row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.facts__row dt{color:var(--fg-muted);font-size:.85rem}.facts__row dd{margin:0;font-size:.92rem;font-weight:600;text-align:right}.bface--back{gap:1rem;padding:2rem 1.4rem 1.2rem;transform:rotateY(180deg)}.bface__back-title{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.bface__skills{display:flex;flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none}.bface__skills li{display:flex;align-items:flex-start;gap:.65rem}.bface__skills svg{width:1.15rem;height:1.15rem;flex:none;margin-top:.1rem}.bface__skills circle{fill:var(--slate)}.bface__skills path{fill:none;stroke:var(--paper);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.bface__skills strong{display:block;font-size:.9rem;line-height:1.2}.bface__skills small{color:#6b7280;font-size:.72rem}.bface__sign{margin-top:auto;padding-top:.8rem;border-top:1px dashed rgb(55 65 81 / .25);font-family:ui-serif,Georgia,serif;font-size:1.3rem;font-style:italic}.bface__sign small{display:block;color:#6b7280;font-family:var(--font-sans);font-size:.68rem;font-style:normal}.bface--front{align-items:center;padding-bottom:1rem;text-align:center}.bface__head{display:flex;align-items:center;gap:.7rem;align-self:stretch;padding:1.6rem 1.1rem .9rem;background:var(--slate);color:var(--paper);text-align:left}.bface__head strong{display:block;font-size:.95rem;line-height:1.1}.bface__head small{color:color-mix(in srgb,var(--paper) 65%,transparent);font-size:.68rem}.bface__logo{flex:none;padding:.35rem .55rem;border-radius:8px;background:var(--paper);color:var(--slate);font-family:var(--font-mono);font-size:.72rem;font-weight:600}.bface__logo b{color:var(--coral)}.bface__photo{width:46%;aspect-ratio:4 / 5;height:auto;margin-top:.9rem;border:3px solid #fff;border-radius:14px;object-fit:cover;box-shadow:0 6px 16px -6px #00000059}.bface__name{margin-top:.85rem;font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.bface__role{margin-top:.1rem;color:var(--coral);font-size:.85rem;font-weight:600}.bface__fields{display:grid;grid-template-columns:repeat(3,1fr);align-self:stretch;margin:.9rem 1.1rem 0;padding-top:.7rem;border-top:1px dashed rgb(55 65 81 / .25)}.bface__fields dt{color:#6b7280;font-size:.62rem}.bface__fields dd{margin:0;font-size:.78rem;font-weight:700}.bface__foot{display:flex;align-items:center;justify-content:center;align-self:stretch;margin:auto 1.1rem 0;padding-top:.6rem}.bface__barcode{width:58%;height:22px;background:repeating-linear-gradient(90deg,#374151 0 2px,transparent 2px 4px,#374151 4px 5px,transparent 5px 8px,#374151 8px 11px,transparent 11px 12px);opacity:.85}.bface__holo{width:30px;height:30px;border-radius:50%;background:conic-gradient(from calc(var(--px, 0) * 360deg),#e1645e,#f2c14e,#61dafb,#a78bfa,#e1645e);box-shadow:inset 0 0 0 2px #fff9;opacity:.8}.badge{--badge-w: 290px;--badge-flip: .9s cubic-bezier(.34, 1.32, .64, 1);display:flex;flex-direction:column;align-items:center;perspective:1400px}.badge__lanyard{display:grid;place-items:center;width:30px;height:130px;background:repeating-linear-gradient(0deg,rgb(255 255 255 / .08) 0 2px,transparent 2px 5px),var(--coral);-webkit-mask-image:linear-gradient(transparent,#000 45%);mask-image:linear-gradient(transparent,#000 45%)}.badge__lanyard span{color:#ffffffd9;font-family:var(--font-mono);font-size:.6rem;white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg) translateY(-14px)}.badge__clip{z-index:1;width:44px;height:24px;margin-top:-6px;border-radius:7px;background:linear-gradient(180deg,#d9dbe0,#9aa0ab);box-shadow:inset 0 -2px #00000026,0 2px 4px #00000040}.badge__swing{margin-top:-8px;transform-origin:50% -40px;transform:rotateX(calc(var(--py, 0) * -10deg)) rotateY(calc(var(--px, 0) * 16deg));transition:transform .5s var(--ease-out);transform-style:preserve-3d;animation:badge-swing-a 1.1s var(--ease-out)}.badge__swing[data-flipped=true]{animation-name:badge-swing-b}.badge__swing:hover{--lift: -6px}.badge__card{position:relative;width:var(--badge-w);aspect-ratio:290 / 450;transform:translateY(var(--lift, 0)) rotateY(0);transform-style:preserve-3d;transition:transform var(--badge-flip);cursor:var(--cursor-pointer)}.badge__swing[data-flipped=true] .badge__card{transform:translateY(var(--lift, 0)) rotateY(180deg)}.badge__card:focus-visible{outline:none}.badge__card:focus-visible .bface{outline:2px solid var(--accent);outline-offset:4px}.bface{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;border-radius:18px;box-shadow:0 1px #fff9 inset,0 30px 60px -24px #00000073;backface-visibility:hidden;-webkit-backface-visibility:hidden}.bface:before{content:"";position:absolute;z-index:1;top:9px;left:50%;width:46px;height:7px;border-radius:4px;background:#0000002e;transform:translate(-50%)}.badge__hint{margin-top:1.2rem;color:var(--fg-muted);font-family:var(--font-mono);font-size:.72rem}@keyframes badge-swing-a{30%{rotate:z -3deg}65%{rotate:z 1.5deg}}@keyframes badge-swing-b{30%{rotate:z 3deg}65%{rotate:z -1.5deg}}@media (prefers-reduced-motion: reduce){.badge__swing,.badge__card{transition:none;animation:none}}.about{position:relative;overflow-x:clip;padding:var(--section-pad-top) var(--gutter) var(--section-pad-bottom);scroll-margin-top:calc(var(--projects-top, 98px) - 1rem)}.about__grid{display:grid;grid-template-columns:minmax(0,5fr) auto minmax(220px,3fr);gap:clamp(2rem,4vw,4.5rem);align-items:center;max-width:1400px;margin:0 auto}.about__bio{max-width:52ch;margin-top:.9rem;color:var(--fg-muted)}.about__intro .about__bio:first-of-type{margin-top:var(--section-content-gap)}.about__links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}.js .about[data-revealed=false] :is(.about__bio,.about__links,.facts),.js .about[data-revealed=false] .badge{opacity:0}.js .about[data-revealed=false] .badge__swing{animation:none}.js .about[data-revealed=true] :is(.about__bio,.about__links){animation:rise .5s .35s var(--ease-out) backwards}.js .about[data-revealed=true] .badge{animation:badge-drop .7s .15s var(--ease-out) backwards}.js .about[data-revealed=true] .facts{animation:rise .5s .5s var(--ease-out) backwards}@keyframes badge-drop{0%{opacity:0;transform:translateY(-70px)}}@media (max-width: 1199px){.about__grid{grid-template-columns:minmax(0,1fr) auto}.facts{grid-column:1 / -1}}@media (max-width: 767px){.about__grid{grid-template-columns:minmax(0,1fr)}.badge{justify-self:center}}@media (prefers-reduced-motion: reduce){.js .about[data-revealed] :is(.about__bio,.about__links,.facts,.badge){animation:none}}.dot-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;width:100%;height:100%}.showcase-cursor{position:absolute;top:0;left:0;z-index:10;pointer-events:none;opacity:0;transition:transform .95s cubic-bezier(.65,0,.35,1),opacity .4s}.showcase-cursor[data-visible=true]{opacity:1}.showcase-cursor svg{display:block;width:1.7em;height:1.7em;fill:var(--coral);stroke:#fff;stroke-width:1.4;stroke-linejoin:round;filter:drop-shadow(0 3px 6px rgb(0 0 0 / .25));transform-origin:20% 15%;transition:transform .15s var(--ease-out)}.showcase-cursor[data-clicking=true] svg{transform:scale(.85)}.showcase-cursor__label{position:absolute;top:1.45em;left:1.25em;padding:.25em .6em;border-radius:0 6px 6px;background:var(--coral);color:#fff;font-size:.78em;font-weight:500;white-space:nowrap}.pipeline{display:flex;align-items:center;gap:.4rem;margin:0 0 1.5rem;padding:.6rem;list-style:none;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 30px -22px color-mix(in srgb,black 60%,transparent)}.pipeline__step{position:relative;display:flex;flex:1;align-items:center;gap:.75rem;min-width:0;padding:.55rem .65rem .8rem;border-radius:8px;transition:background-color .4s}.pipeline__step[data-state=active]{background:var(--bg)}.pipeline__node{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:8px;color:var(--fg-muted);transition:background-color .4s,border-color .4s,color .4s,box-shadow .4s}.pipeline__node svg{width:1.15rem;height:1.15rem}.pipeline__step[data-state=active] .pipeline__node{border-color:var(--accent);background:var(--accent);color:var(--on-accent);box-shadow:0 8px 20px -8px var(--accent)}.pipeline__step[data-state=done] .pipeline__node{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.pipeline__text{display:grid;min-width:0;line-height:1.25}.pipeline__text strong{font-size:.98rem;color:var(--fg-muted);transition:color .4s}.pipeline__step:not([data-state=todo]) .pipeline__text strong{color:var(--fg)}.pipeline__text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:.72rem;color:var(--fg-muted)}.pipeline__progress{position:absolute;inset:auto .65rem .35rem;height:2px;overflow:hidden;border-radius:2px;background:var(--border);opacity:0;transition:opacity .3s}.pipeline__progress:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform:scaleX(0);transform-origin:left}.pipeline__step[data-state=active] .pipeline__progress{opacity:1}.pipeline__step[data-state=active] .pipeline__progress:after{animation:step-progress var(--duration) linear forwards}@keyframes step-progress{to{transform:scaleX(1)}}@media (max-width: 560px){.pipeline__text span{display:none}.pipeline__node{width:2.1rem;height:2.1rem}.pipeline__step{gap:.5rem}}.board{--pad: .7em;--gap: .8em;--shift: calc(100% + var(--pad) * 2 + var(--gap));--drag-ease: cubic-bezier(.65, 0, .35, 1);display:grid;flex:1;grid-template-columns:1fr 1fr;align-items:start;gap:var(--gap);padding:1.1em;background:var(--bg)}.board [data-on],.board[data-on]{transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}.board[data-on=false]{opacity:0}.board [data-on=false]{opacity:0;transform:translateY(.5em)}.board__column{display:grid;gap:.6em;padding:var(--pad);border-radius:8px;background:color-mix(in srgb,var(--fg) 6%,transparent)}.board__header{display:flex;align-items:center;justify-content:space-between;padding:.1em .2em .2em;font-size:.9em;font-weight:700}.board__count{display:grid;place-items:center;min-width:1.6em;height:1.6em;border-radius:50%;background:color-mix(in srgb,var(--fg) 10%,transparent);font-family:var(--font-mono);font-size:.8em;font-weight:400;animation:text-swap .4s var(--ease-out)}.board__card,.board__drop,.board__skeleton{height:3.7em;border-radius:6px}.board__card{position:relative;z-index:2;display:flex;align-items:center;gap:.7em;padding:0 .8em;border:1px solid var(--coral);background:var(--surface);box-shadow:0 6px 14px -10px #0006}.board .board__card[data-on=true]{transition:transform .95s var(--drag-ease),box-shadow .3s,opacity .4s}.board .board__card[data-moved=true]{transform:translate(var(--shift))}.board .board__card[data-lifted=true]{box-shadow:0 18px 30px -14px #00000080;transform:rotate(-3deg) scale(1.04)}.board .board__card[data-lifted=true][data-moved=true]{transform:translate(var(--shift)) rotate(-3deg) scale(1.04)}.board__avatar{display:grid;place-items:center;flex:none;width:2em;height:2em;border-radius:50%;background:var(--coral);color:#fff;font-size:.75em;font-weight:700}.board__card-text{display:grid;line-height:1.25}.board__card-text strong{font-size:.9em}.board__card-text span{color:var(--fg-muted);font-size:.75em;animation:text-swap .4s var(--ease-out)}.board__drop{border:1.5px dashed transparent;transition:border-color .3s,background-color .3s}.board__drop[data-hover=true]{border-color:var(--coral);background:color-mix(in srgb,var(--coral) 8%,transparent)}.board__skeleton{background:color-mix(in srgb,var(--fg) 7%,transparent)}.code-editor{padding:.9em 0 1.1em;font-family:var(--font-mono);font-size:.86em;line-height:1.75;overflow:hidden}.code-line{display:flex;padding-right:1em;min-height:1.75em}.code-line[data-active=true]{background:color-mix(in srgb,var(--paper) 5%,transparent)}.code-line[data-flash=true]{animation:line-flash 1.6s var(--ease-out)}.code-line__no{flex:none;width:2.8em;padding-right:1em;text-align:right;color:color-mix(in srgb,var(--paper) 25%,transparent)}.code-line__content{white-space:pre}.tok--kw{color:var(--coral)}.tok--type{color:color-mix(in srgb,var(--coral) 45%,var(--paper))}.tok--var{color:var(--paper)}.tok--prop{color:color-mix(in srgb,var(--paper) 70%,var(--slate))}.tok--str{color:color-mix(in srgb,var(--coral) 22%,var(--paper))}.tok--fn{color:var(--paper);text-underline-offset:3px}.tok--punc{color:var(--code-muted)}.caret{display:inline-block;width:.55em;height:1.15em;margin-left:1px;vertical-align:-.2em;background:var(--coral)}.caret[data-idle=true]{animation:blink 1s steps(1) infinite}@keyframes line-flash{0%,35%{background:color-mix(in srgb,var(--coral) 28%,transparent)}}.design{position:relative;flex:1;padding:1.6em 1.2em 1em;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:2.2em 2.2em}.design__label{position:absolute;top:.35em;left:1.2em;color:var(--fg-muted);font-family:var(--font-mono);font-size:.75em}.design__frame{display:grid;grid-template-columns:1fr 1fr;gap:.7em;height:100%;padding:.7em;border-radius:4px;background:var(--bg);box-shadow:0 0 0 1px var(--border)}.design__column{display:flex;flex-direction:column;gap:.5em;padding:.5em;border-radius:4px;background:color-mix(in srgb,var(--fg) 6%,transparent)}.design__heading{width:45%;height:.55em;border-radius:2px;background:color-mix(in srgb,var(--fg) 25%,transparent)}.design__slot{position:relative;height:2.4em;border-radius:3px;background:color-mix(in srgb,var(--fg) 10%,transparent)}.design__slot[data-card=true]{background:color-mix(in srgb,var(--coral) 30%,var(--bg))}.selection{position:absolute;top:-.3em;right:-.3em;bottom:-.3em;left:-.3em;border:1px solid var(--coral);opacity:0;transform:scale(1.1);transition:opacity .3s .4s,transform .45s .4s var(--ease-out)}.design[data-active=true] .selection{opacity:1;transform:none}.selection i{position:absolute;width:.5em;height:.5em;border:1px solid var(--coral);background:var(--bg)}.selection i:nth-child(1){top:-.25em;left:-.25em}.selection i:nth-child(2){top:-.25em;right:-.25em}.selection i:nth-child(3){bottom:-.25em;left:-.25em}.selection i:nth-child(4){bottom:-.25em;right:-.25em}.selection__tag{position:absolute;left:-1px;bottom:calc(100% + .35em);padding:.1em .45em;border-radius:3px;background:var(--coral);color:#fff;font-family:var(--font-mono);font-size:.7em;white-space:nowrap}.window{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}.window>:not(.window__bar){transition:opacity .4s}.window[data-active=false]>:not(.window__bar){opacity:.5}.window__bar{display:flex;flex:none;align-items:flex-end;padding-top:.45em;background:color-mix(in srgb,var(--fg) 6%,var(--surface))}.window__lights{display:flex;gap:.5em;align-self:center;padding:0 1.1em}.window__lights i{width:.8em;height:.8em;border-radius:50%;background:color-mix(in srgb,var(--fg) 22%,transparent)}.window__lights i:first-child{background:var(--coral)}.window__tab{padding:.5em 1.2em .6em;border-top:2px solid transparent;background:var(--surface);font-family:var(--font-mono);font-size:.85em;transition:border-color .3s}.window[data-active=true] .window__tab{border-top-color:var(--coral)}.window__url{position:relative;flex:1;align-self:center;margin:0 1em .45em 0;padding:.35em .9em;overflow:hidden;border-radius:6px;background:var(--surface);color:var(--fg-muted);font-family:var(--font-mono);font-size:.8em}.window__reload{position:absolute;inset:auto 0 0;height:2px;background:var(--coral);transform:scaleX(0);transform-origin:left}.window__reload[data-on=true]{animation:reload .6s var(--ease-out)}.window--code{border-color:color-mix(in srgb,var(--paper) 10%,transparent);background:var(--code-bg);color:var(--code-fg)}.window--code .window__bar{background:color-mix(in srgb,black 20%,var(--code-bg))}.window--code .window__tab{background:var(--code-bg)}@keyframes reload{0%{transform:scaleX(0)}70%{transform:scaleX(1);opacity:1}to{transform:scaleX(1);opacity:0}}.showcase-wrap{animation:stage-in 1.1s .5s var(--ease-out) both}.showcase{--px: 0;--py: 0;position:relative;container-type:inline-size;aspect-ratio:10 / 9;width:100%;font-size:clamp(9px,2.15cqw,13.5px)}.showcase__layer{position:absolute;z-index:1;transform:translate3d(calc(var(--px) * var(--depth) * -1px),calc(var(--py) * var(--depth) * -1px),0);transition:transform .6s var(--ease-out),box-shadow .4s}.showcase__layer[data-active=true]{z-index:4}.showcase__design{top:0;left:0;width:54%;height:44%}.showcase__code{left:0;bottom:0;width:64%}.showcase__browser{top:23%;right:0;width:62%}.showcase[data-phase=reset] .board,.showcase[data-phase=reset] .code-editor{opacity:0;transition:opacity .5s}@keyframes stage-in{0%{opacity:0;transform:translateY(40px)}}@media (max-width: 480px){.showcase__code{width:88%}}.hero-headline{margin-top:clamp(1.5rem,3vh,2.25rem);font-size:clamp(1.2rem,2.1vw,1.85rem);font-weight:500;line-height:1.3;letter-spacing:-.02em;animation:rise .9s .7s var(--ease-out) both}.hero-headline>span{display:block}.hero-headline__accent{color:var(--accent)}.hero-title{display:flex;flex-direction:column;font-size:clamp(3.4rem,10.5vw,9.5rem);font-weight:700;line-height:.86;letter-spacing:-.055em}.hero-title__name{display:inline-block}.hero-title__row{display:inline-flex;align-items:baseline}.hero-title .split-char{display:inline-block;transition:transform .45s var(--ease-out),color .3s,-webkit-text-stroke-color .3s;animation:char-in .9s calc(.2s + var(--i) * .04s) var(--ease-out) backwards}.hero-title .split-char:hover{transform:translateY(-.08em) rotate(-4deg);color:var(--accent)}.hero-title__name--outline .split-char{color:transparent;-webkit-text-stroke:2px var(--fg)}.hero-title__name--outline .split-char:hover{-webkit-text-stroke-color:var(--accent)}.hero-title .bouncing-period{animation:char-in .9s .85s var(--ease-out) backwards}.hero-title__role{margin-top:clamp(1.25rem,2.5vh,1.75rem);font-size:clamp(1.35rem,2.6vw,2.4rem);line-height:1.1;letter-spacing:-.03em}.hero-title__role-text{padding:.06em .3em .1em;color:var(--on-accent);background:linear-gradient(var(--accent),var(--accent)) no-repeat left / 100% 100%;box-decoration-break:clone;-webkit-box-decoration-break:clone;animation:select-sweep .7s 1s var(--ease-out) backwards,select-text .3s 1s backwards}@media (max-width: 640px){.hero-title__name--outline .split-char{-webkit-text-stroke-width:1.5px}}.hero{position:relative;isolation:isolate;display:grid;align-content:center;min-height:100svh;padding:clamp(6rem,12vh,8rem) var(--gutter) var(--section-pad-bottom);overflow:hidden}.hero__vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 60% 70% at 18% 50%,var(--bg) 25%,transparent 75%),linear-gradient(to top,var(--bg),transparent 25%)}.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,5rem);max-width:1400px;width:100%;margin:0 auto}.hero__intro{margin-top:1.25rem;max-width:52ch;color:var(--fg-muted);font-size:clamp(.95rem,1.1vw,1.05rem);animation:rise .9s .85s var(--ease-out) both}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.5rem;animation:rise .9s 1s var(--ease-out) both}@media (max-width: 1024px){.hero__grid{grid-template-columns:minmax(0,1fr)}.hero__visual{max-width:620px}.hero__vignette{background:radial-gradient(ellipse 90% 50% at 30% 30%,var(--bg) 30%,transparent 80%),linear-gradient(to top,var(--bg),transparent 25%)}}@font-face{font-family:Big Shoulders Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/big-shoulders-vietnamese-wght-normal-Cu-DDijC.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/big-shoulders-latin-ext-wght-normal-C7duU6kR.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Big Shoulders Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/big-shoulders-latin-wght-normal-D2Rs5vCJ.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.fc-bid{display:flex;flex-direction:column;gap:.55rem}.fc-bid__time{display:flex;align-items:center;justify-content:space-between}.fc-bid__label{color:var(--fc-muted);font-size:.66rem;font-weight:600}.fc-bid__sec{display:inline-block;font-family:var(--fc-font-display);font-size:1.5rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.fc-bid__sec[data-low=true]{color:var(--fc-whistle);animation:fc-tick-pulse .3s ease-out both}.fc-bid__row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.fc-bid__btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:.55rem 0;border:2px solid var(--fc-ink);border-radius:2px;background:var(--fc-whistle);box-shadow:2px 2px 0 0 var(--fc-ink);color:#fff;font-family:var(--fc-font-display);font-weight:800;line-height:1;cursor:var(--cursor-pointer);transition:transform .1s,box-shadow .1s,background-color .1s}.fc-bid__btn:hover:not(:disabled){background:var(--fc-ink)}.fc-bid__btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}.fc-bid__btn:disabled{transform:none;box-shadow:none;cursor:var(--cursor-default);opacity:.4}.fc-bid__inc{font-size:1.15rem}.fc-bid__to{margin-top:.2rem;font-family:var(--fc-font-sans);font-size:.62rem;font-weight:700;opacity:.8}.fc-bid__hint{margin:0;color:var(--fc-muted);font-size:.66rem}.fc-next{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:100%;overflow:hidden;padding:.65rem 0;border:2px solid var(--fc-ink);border-radius:2px;background:var(--fc-pitch);box-shadow:2px 2px 0 0 var(--fc-ink);color:#fff;font-family:var(--fc-font-display);font-size:1.15rem;font-weight:800;line-height:1;cursor:var(--cursor-pointer);transition:transform .1s,box-shadow .1s,background-color .1s}.fc-next:hover{background:var(--fc-pitch-deep)}.fc-next:active{transform:translate(2px,2px);box-shadow:none}.fc-next svg{width:.95rem;height:.95rem}.fc-next__drain{position:absolute;right:0;bottom:0;left:0;height:.3rem;background:var(--fc-highlight);transform-origin:left;animation:fc-drain 2.4s linear both}@keyframes fc-tick-pulse{0%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes fc-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion: reduce){.fc-bid__sec[data-low=true],.fc-next__drain{animation:none}}.fc-badge{position:relative;display:inline-flex;flex:none;align-items:center;justify-content:center;overflow:hidden;border:2px solid var(--fc-ink);font-family:var(--fc-font-display);font-weight:900;line-height:1}.fc-badge[data-size=sm]{width:1.4rem;height:1.4rem;font-size:.62rem}.fc-badge[data-size=md]{width:1.9rem;height:1.9rem;font-size:.78rem}.fc-badge__band{position:absolute;right:0;bottom:0;left:0;height:28%}.fc-badge__mono{position:relative}.fc-hist__head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:.35rem;border-bottom:2px solid var(--fc-ink)}.fc-hist__title{font-family:var(--fc-font-display);font-size:1rem;font-weight:800;line-height:1}.fc-hist__count{color:var(--fc-muted);font-size:.64rem;font-weight:600;font-variant-numeric:tabular-nums}.fc-hist__list{margin:0;padding:0;list-style:none}.fc-hist__item{display:flex;align-items:center;gap:.45rem;padding:.35rem 0;border-bottom:2px solid var(--fc-line);color:var(--fc-ink-soft);font-size:.66rem}.fc-hist__item[data-top=true]{margin:0 -.4rem;padding-right:.4rem;padding-left:.4rem;background:var(--fc-surface);color:var(--fc-ink);font-weight:700}.fc-hist__item[data-top=true][data-mine=true]{background:var(--fc-highlight)}.fc-hist__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-hist__lead{flex:none;padding:.1rem .3rem;border:2px solid var(--fc-ink);background:var(--fc-canvas);font-family:var(--fc-font-display);font-size:.56rem;font-weight:800;line-height:1;text-transform:uppercase}.fc-hist__delta{flex:none;width:1.9rem;color:var(--fc-muted);font-size:.62rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.fc-hist__item[data-top=true] .fc-hist__delta{color:var(--fc-ink)}.fc-hist__amt{flex:none;width:2.9rem;font-family:var(--fc-font-display);font-size:.85rem;font-weight:800;text-align:right;font-variant-numeric:tabular-nums;line-height:1}.fc-hist__amt small{font-size:.6rem}.fc-hist__item[data-top=true] .fc-hist__amt{font-size:1.05rem}@media (prefers-reduced-motion: no-preference){.fc-hist__item{animation:fc-reveal .26s ease-out both}@keyframes fc-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}.fc-pcard{position:relative;padding:.85rem;border:2px solid var(--fc-ink);box-shadow:4px 4px 0 0 var(--fc-ink)}.fc-pcard[data-tier=bronze]{--fc-pcard-muted: #5e3410;background:#d9a577;color:#5e3410}.fc-pcard[data-tier=silver]{--fc-pcard-muted: #3f474c;background:#d5dadd;color:#3f474c}.fc-pcard[data-tier=gold]{--fc-pcard-muted: #5a4300;background:#f4cf55;color:#5a4300}.fc-pcard[data-tier=elite]{--fc-pcard-muted: rgba(244, 238, 223, .75);background:var(--fc-ink);color:var(--fc-highlight)}.fc-pcard__frame{position:absolute;top:.4rem;right:.4rem;bottom:.4rem;left:.4rem;border:1px solid rgba(255,210,63,.6);pointer-events:none}.fc-pcard__top{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.fc-pcard__ovr{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.fc-pcard__num{font-family:var(--fc-font-display);font-size:3.1rem;font-weight:900;font-variant-numeric:tabular-nums}.fc-pcard__role{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;margin-top:.2rem;color:#fff;font-family:var(--fc-font-display);font-size:.72rem;font-weight:800;line-height:1}.fc-pcard__role[data-role=P]{background:var(--fc-role-p)}.fc-pcard__role[data-role=D]{background:var(--fc-role-d)}.fc-pcard__role[data-role=C]{background:var(--fc-role-c)}.fc-pcard__role[data-role=A]{background:var(--fc-role-a)}.fc-pcard__head{min-width:0;text-align:right}.fc-pcard__team{overflow:hidden;font-family:var(--fc-font-display);font-size:1.05rem;font-weight:800;line-height:1;text-overflow:ellipsis;white-space:nowrap}.fc-pcard__sub{display:flex;justify-content:flex-end;gap:.35rem;margin-top:.25rem;color:var(--fc-pcard-muted);font-size:.62rem}.fc-pcard__name{position:relative;margin-top:.9rem}.fc-pcard__first{color:var(--fc-pcard-muted);font-size:.78rem;line-height:1}.fc-pcard__surname{font-family:var(--fc-font-display);font-size:2.4rem;font-weight:900;line-height:.95}.fc-pcard[data-tier=elite] .fc-pcard__surname,.fc-pcard[data-tier=elite] .fc-pcard__value{color:var(--fc-canvas)}.fc-pcard__stats{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin-top:.9rem;padding-top:.5rem;border-top:2px solid rgba(21,32,26,.2)}.fc-pcard[data-tier=elite] .fc-pcard__stats{border-color:#f4eedf40}.fc-pcard__stat{text-align:center;line-height:1.1}.fc-pcard__value{display:block;font-family:var(--fc-font-display);font-size:1.3rem;font-weight:800;font-variant-numeric:tabular-nums}.fc-pcard__label{color:var(--fc-pcard-muted);font-size:.58rem;font-weight:600}.fc-price{border:2px solid var(--fc-ink)}.fc-price[data-tone=canvas]{background:var(--fc-canvas);color:var(--fc-ink)}.fc-price[data-tone=highlight]{background:var(--fc-highlight);color:var(--fc-ink)}.fc-price[data-tone=whistle]{background:var(--fc-whistle);color:#fff}.fc-price[data-tone=ink]{background:var(--fc-ink);color:var(--fc-canvas)}.fc-price[data-shake=true]{animation:fc-shake .42s ease-out both}.fc-price__row{display:flex;align-items:stretch}.fc-price__info{flex:1;min-width:0;padding:.55rem .7rem}.fc-price__label{display:block;font-size:.66rem;font-weight:700;opacity:.8}.fc-price__team{display:flex;align-items:center;gap:.5rem;min-width:0;margin-top:.2rem}.fc-price[data-tone=whistle] .fc-badge,.fc-price[data-tone=ink] .fc-badge{border-color:currentColor}.fc-price__name{overflow:hidden;font-family:var(--fc-font-display);font-size:1.05rem;font-weight:800;line-height:1;text-overflow:ellipsis;white-space:nowrap}.fc-price__amount{display:flex;flex:none;align-items:baseline;gap:.2rem;padding:.35rem .7rem;border-left:2px solid var(--fc-ink)}.fc-price[data-tone=ink] .fc-price__amount,.fc-price[data-tone=whistle] .fc-price__amount{border-color:currentColor}.fc-price__bid{display:inline-block;font-family:var(--fc-font-display);font-size:2.3rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1;animation:fc-stamp .42s ease-out both}.fc-price__cr{font-family:var(--fc-font-display);font-size:1.05rem;font-weight:800}.fc-price__bar{height:.55rem;border-top:2px solid var(--fc-ink);background:var(--fc-canvas)}.fc-price__bar i{display:block;height:100%;transition:width .1s linear}.fc-price__bar i[data-tone=low]{background:var(--fc-whistle)}.fc-price__bar i[data-tone=mine]{background:var(--fc-ink)}.fc-price__bar i[data-tone=bot]{background:var(--fc-pitch)}@keyframes fc-stamp{0%{opacity:0;transform:scale(1.6)}60%{opacity:1;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fc-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@media (prefers-reduced-motion: reduce){.fc-price[data-shake=true],.fc-price__bid{animation:none}.fc-price__bar i{transition:none}}.fc-stamp{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.fc-stamp__tag{padding:.35rem 1rem;border:3px solid var(--fc-whistle);background:var(--fc-canvas);box-shadow:4px 4px 0 0 var(--fc-ink);color:var(--fc-whistle);font-family:var(--fc-font-display);font-size:2.4rem;font-weight:900;line-height:1;transform:rotate(-12deg)}.fc-stamp__tag[data-yours=true]{border-color:var(--fc-ink);background:var(--fc-highlight);color:var(--fc-ink)}@media (prefers-reduced-motion: no-preference){.fc-stamp__tag{animation:fc-stamp-tilt .48s cubic-bezier(.2,.9,.3,1.2) both}@keyframes fc-stamp-tilt{0%{opacity:0;transform:rotate(-12deg) scale(2)}60%{opacity:1;transform:rotate(-12deg) scale(.94)}to{opacity:1;transform:rotate(-12deg) scale(1)}}}.fc-teams__title{padding-bottom:.4rem;border-bottom:2px solid var(--fc-ink);font-family:var(--fc-font-display);font-size:1.2rem;font-weight:800;line-height:1}.fc-teams__list{margin:0;padding:0;list-style:none}.fc-teams__row{padding:.45rem .3rem;border-bottom:2px solid var(--fc-line);transition:background-color .15s}.fc-teams__row[data-tone=mine]{background:var(--fc-highlight)}.fc-teams__row[data-tone=bot]{background:#e24a1226}.fc-teams__main{display:flex;align-items:center;gap:.5rem}.fc-teams__id{flex:1;min-width:0}.fc-teams__name{display:block;overflow:hidden;font-size:.66rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.fc-teams__name[data-you=true]{color:var(--fc-pitch);font-weight:700}.fc-teams__status{font-size:.58rem;font-weight:700}.fc-teams__status[data-tone=bot]{color:var(--fc-whistle-deep)}.fc-teams__sub{display:block;overflow:hidden;color:var(--fc-muted);font-size:.56rem;text-overflow:ellipsis;white-space:nowrap}.fc-teams__credits{flex:none;text-align:right;line-height:1}.fc-teams__credits b{display:block;font-family:var(--fc-font-display);font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums}.fc-teams__credits small{color:var(--fc-muted);font-size:.52rem;font-weight:600}.fc-teams__slots{display:flex;gap:.15rem;margin-top:.4rem}.fc-teams__slot{flex:1;height:.4rem;border:1px solid var(--fc-ink);background:transparent}.fc-teams__slot[data-role=P][data-filled=true]{background:var(--fc-role-p)}.fc-teams__slot[data-role=D][data-filled=true]{background:var(--fc-role-d)}.fc-teams__slot[data-role=C][data-filled=true]{background:var(--fc-role-c)}.fc-teams__slot[data-role=A][data-filled=true]{background:var(--fc-role-a)}.fc-shell{container-type:inline-size;min-height:100%}.fc-demo{--fc-canvas: #f4eedf;--fc-surface: #eae1ca;--fc-ink: #15201a;--fc-ink-soft: #3a463f;--fc-muted: #5c665f;--fc-line: #ddd3bc;--fc-pitch: #0b7a43;--fc-pitch-deep: #07492a;--fc-whistle: #e24a12;--fc-whistle-deep: #b2370a;--fc-highlight: #ffd23f;--fc-role-p: #e08a00;--fc-role-d: #23955a;--fc-role-c: #2f6dcf;--fc-role-a: #c8322a;--fc-font-display: "Big Shoulders Variable", "Arial Narrow", sans-serif;--fc-font-sans: "Public Sans Variable", sans-serif;display:flex;flex-direction:column;min-height:100%;background:var(--fc-canvas);color:var(--fc-ink);font-family:var(--fc-font-sans);font-size:.75rem;line-height:1.45}.fc-nav{display:flex;align-items:center;gap:.9rem;padding:.45rem .7rem;border-bottom:4px solid var(--fc-ink);background:var(--fc-pitch-deep);color:var(--fc-canvas)}.fc-nav__brand{display:flex;flex:none;align-items:center;gap:.45rem}.fc-nav__mark{width:1.75rem;height:1.75rem}.fc-nav__word{font-family:var(--fc-font-display);font-size:1.25rem;font-weight:800;line-height:1}.fc-nav__trail{display:flex;align-items:center;gap:.15rem;margin:0;padding:0;font-family:var(--fc-font-display);font-size:.8rem;font-weight:700;list-style:none}.fc-nav__step{display:flex;align-items:center;gap:.15rem}.fc-nav__sep{width:.85rem;height:2px;background:#f4eedf40}.fc-nav__label{padding:.1rem .35rem;color:#f4eedf73;line-height:1}.fc-nav__label[data-active=true]{background:var(--fc-highlight);color:var(--fc-ink)}.fc-nav__side{display:flex;gap:.9rem;margin-left:auto}.fc-nav__stat{text-align:right;line-height:1}.fc-nav__stat small{display:block;color:#f4eedf99;font-size:.55rem;font-weight:600}.fc-nav__stat b{font-family:var(--fc-font-display);font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums}.fc-body{display:grid;flex:1;grid-template-columns:minmax(0,11fr) minmax(0,9fr)}.fc-stage{display:flex;flex-direction:column;gap:.7rem;min-width:0;padding:.8rem;border-right:2px solid var(--fc-ink)}.fc-side{min-width:0;padding:.8rem}.fc-stage__title{font-family:var(--fc-font-display);font-size:1.7rem;font-weight:900;line-height:1}.fc-stage__card{position:relative}@media (prefers-reduced-motion: no-preference){.fc-stage__card{animation:fc-drop .52s cubic-bezier(.2,.9,.3,1.1) both}@keyframes fc-drop{0%{opacity:0;transform:translateY(-40px) rotate(-4deg) scale(1.08)}70%{opacity:1;transform:translateY(3px) rotate(.5deg) scale(.99)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}}@container (max-width: 520px){.fc-nav__trail{display:none}.fc-body{grid-template-columns:1fr}.fc-stage{border-right:0;border-bottom:2px solid var(--fc-ink)}}.menu-day{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:.6rem .65rem;border-radius:10px;background:var(--p-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--p-fg) 8%,transparent);overflow:hidden}.menu-day__head{display:flex;align-items:center;gap:.45rem}.menu-day__name{font-family:var(--p-font-display);font-size:.85rem;font-weight:700}.menu-day__today{padding:.1rem .4rem;border-radius:4px;background:var(--day-color);color:#fff;font-size:.58rem;font-weight:700}.menu-day__meal{display:flex;flex-direction:column;gap:.2rem}.menu-day__mealname{color:var(--p-muted);font-size:.62rem;font-weight:600;letter-spacing:.06em}.menu-day__slot{height:3.4em;overflow:hidden;border-radius:7px;background:color-mix(in srgb,var(--day-color) 8%,var(--p-surface))}.menu-dish{display:flex;align-items:flex-start;gap:.4rem;height:3.4em;padding:.4rem .5rem}.menu-dish__strip .menu-dish{flex:none}.menu-dish__strip{display:flex;flex-direction:column;animation:menu-spin 1.15s var(--delay, 0ms) var(--ease-out) both}.menu-dish__emoji{font-size:1rem;line-height:1.2}.menu-dish__name{display:block;font-size:.74rem;font-weight:600;line-height:1.15}.menu-dish__meta{display:flex;gap:.5rem;margin-top:.15rem;color:var(--p-muted);font-size:.62rem}@keyframes menu-spin{0%{transform:translateY(0)}82%{transform:translateY(calc(var(--shift) - 5px))}to{transform:translateY(var(--shift))}}.menu-demo{display:flex;flex-direction:column;gap:.85rem;padding:clamp(1rem,2.2vw,1.6rem)}.menu-demo__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem}.menu-demo__title{font-family:var(--p-font-display);font-size:1.5rem;font-weight:700;letter-spacing:-.01em}.menu-demo__regen{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.05rem;border-radius:999px;background:linear-gradient(135deg,var(--p-accent),#f2704d);color:var(--p-accent-fg);font-size:.85rem;font-weight:600;white-space:nowrap;box-shadow:0 8px 20px -8px var(--p-accent);transition:transform .2s,filter .2s}.menu-demo__regen:hover{transform:translateY(-1px);filter:brightness(1.05)}.menu-demo__regen:disabled{opacity:.7}.menu-demo__regen svg{width:1em;height:1em}.menu-demo__targets{display:flex;flex-wrap:wrap;gap:.35rem;padding:0;list-style:none}.menu-demo__targets li{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .6rem;border-radius:7px;background:var(--p-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--p-fg) 10%,transparent);color:var(--p-muted);font-size:.72rem}.menu-demo__targets b{color:var(--p-fg);font-weight:600}.menu-demo__check{width:.85em;height:.85em}.menu-demo__check[data-ok=true]{color:#2e9e6b}.menu-demo__check[data-ok=false]{color:#d97706}.menu-demo__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;align-items:start}@media (max-width: 560px){.menu-demo__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.pd-cube__scene{perspective:700px}.pd-cube{position:relative;width:110px;height:110px;transform-style:preserve-3d;transform:rotateX(calc(-18deg + var(--py, 0) * -14deg)) rotateY(calc(24deg + var(--px, 0) * 16deg));transition:transform .25s ease-out}.pd-cube[data-bounce=true]{animation:cube-bounce .9s var(--ease-out)}.pd-cube__face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border:2px solid #d8b52e;border-radius:16px;background:var(--p-accent);color:var(--p-accent-fg);font-size:2.4rem;font-weight:800}.pd-cube__face--front{transform:translateZ(55px)}.pd-cube__face--back{transform:rotateY(180deg) translateZ(55px)}.pd-cube__face--right{transform:rotateY(90deg) translateZ(55px)}.pd-cube__face--left{transform:rotateY(-90deg) translateZ(55px)}.pd-cube__face--top{transform:rotateX(90deg) translateZ(55px)}.pd-cube__face--bottom{transform:rotateX(-90deg) translateZ(55px)}.pd-cube__shadow{display:block;width:88px;height:16px;margin:26px auto 0;border-radius:50%;background:#3c3a2838;filter:blur(4px)}.pd-xp{position:absolute;top:8%;right:4%;color:#b8860b;font-size:1.05rem;font-weight:800;opacity:0;pointer-events:none}.pd-xp[data-on=true]{animation:xp-rise 1.6s var(--ease-out) both}@keyframes cube-bounce{0%{transform:rotateX(-18deg) rotateY(24deg) translateY(0) scale(1)}35%{transform:rotateX(-18deg) rotateY(24deg) translateY(-30px) scale(1.06)}60%{transform:rotateX(-18deg) rotateY(24deg) translateY(5px) scale(.97)}to{transform:rotateX(-18deg) rotateY(24deg) translateY(0) scale(1)}}@keyframes xp-rise{0%{opacity:0;transform:translateY(12px)}25%{opacity:1}to{opacity:0;transform:translateY(-30px)}}.path-list{display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0;width:100%;list-style:none}.path-list li{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:8px;background:var(--p-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--p-fg) 8%,transparent);font-size:.7rem}.path-list__tag{display:grid;flex:none;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .25rem;border-radius:6px;background:color-mix(in srgb,var(--p-accent) 30%,var(--p-surface));color:var(--p-fg);font-size:.58rem;font-weight:800}.path-list li[data-active=true] .path-list__tag{background:var(--p-accent);color:var(--p-accent-fg)}.path-list__name{font-weight:700}.path-list__status{margin-left:auto;color:var(--p-muted);font-size:.62rem}.pd-tests{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none}.pd-tests li{display:flex;align-items:center;gap:.5rem;padding:.4rem .65rem;border-radius:7px;background:var(--p-surface);color:var(--p-muted);font-family:var(--font-mono);font-size:.7rem;transition:color .3s,background-color .3s}.pd-tests li[data-state=pass]{color:#2e7d32}.pd-tests__icon{width:.95em;height:.95em;flex:none}.pd-tests__icon[data-state=run]{color:var(--p-fg)}.pd-tests__console{margin:0;padding:.4rem .65rem;border-radius:7px;background:#2c2a1e;color:#8fce6f;font-family:var(--font-mono);font-size:.68rem;opacity:0;transition:opacity .4s}.pd-tests__console[data-on=true]{opacity:1}.pd-demo{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:1rem;padding:clamp(1rem,2.2vw,1.6rem)}.pd-demo__main{display:flex;flex-direction:column;gap:.65rem;min-width:0}.pd-demo__level{display:flex;align-items:center;gap:.6rem;font-size:.7rem;font-weight:600}.pd-demo__levelbar{flex:1;height:8px;overflow:hidden;border-radius:4px;background:color-mix(in srgb,var(--p-fg) 10%,transparent)}.pd-demo__levelbar i{display:block;height:100%;border-radius:4px;background:var(--p-accent);transition:width .8s var(--ease-out)}.pd-demo__prompt{font-size:.8rem;font-weight:600}.pd-demo__editor{overflow:hidden;border-radius:10px;background:#2c2a1e;box-shadow:0 10px 24px -14px #3c3a2880}.pd-demo__filebar{display:flex;align-items:center;justify-content:space-between;padding:.4rem .7rem;background:#00000040}.pd-demo__file{color:#d8d4b8;font-family:var(--font-mono);font-size:.7rem}.pd-demo__run{padding:.3rem .9rem;border-radius:6px;background:var(--p-accent);color:var(--p-accent-fg);font-size:.75rem;font-weight:700;transition:filter .2s}.pd-demo__run:hover:not(:disabled){filter:brightness(1.08)}.pd-demo__run:disabled{opacity:.55}.pd-demo__code{min-height:5.4em;padding:.8rem .9rem;color:#f2efdc;font-family:var(--font-mono);font-size:.78rem;line-height:1.7;white-space:pre-wrap}.pd-demo__caret{display:inline-block;width:.5em;height:1em;margin-left:1px;vertical-align:-.15em;background:var(--p-accent);opacity:0}.pd-demo__caret[data-on=true]{opacity:1;animation:blink 1s step-end infinite}.pd-demo__side{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:.8rem;min-width:0}.pd-demo__cubebox{position:relative;display:grid;flex:1;place-items:center;min-height:150px}@media (max-width: 560px){.pd-demo{grid-template-columns:1fr}.pd-demo__code{font-size:.68rem}}.stip-controls{display:flex;flex-direction:column;gap:.8rem;padding:1.1rem;border-radius:12px;background:var(--p-surface);box-shadow:0 1px 3px color-mix(in srgb,var(--p-fg) 12%,transparent)}.stip-controls__label{color:var(--p-muted);font-size:.72rem;font-weight:600}.stip-controls__ral{font-size:1.7rem;font-weight:700;letter-spacing:-.02em}.stip-controls input[type=range]{width:100%;accent-color:var(--p-fg)}.stip-controls__btns{display:flex;gap:.45rem}.stip-controls__btns button{padding:.4rem .8rem;border-radius:8px;background:color-mix(in srgb,var(--p-fg) 8%,var(--p-surface));color:var(--p-fg);font-size:.8rem;font-weight:600;transition:background-color .2s,color .2s}.stip-controls__btns button:hover,.stip-controls__btns button[data-current=true]{background:var(--p-fg);color:var(--p-accent-fg)}.stip-controls__mensilita{display:flex;flex-direction:column;gap:.4rem}.stip-controls__mensilita .stip-controls__btns button{flex:1}.stip-controls__note{margin-top:auto;color:var(--p-muted);font-size:.68rem}.stip-donut{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:.9rem;border-radius:12px;background:var(--p-surface);box-shadow:0 1px 3px color-mix(in srgb,var(--p-fg) 12%,transparent);min-height:0}.stip-donut__svg{width:clamp(130px,12vw,165px);height:auto;flex:none}.stip-donut__svg circle[stroke-dasharray]{transition:stroke-dasharray .7s var(--ease-out),stroke-dashoffset .7s var(--ease-out)}.stip-donut__figure{position:relative;display:grid;place-items:center}.stip-donut__center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.stip-donut__center span{display:block;color:var(--p-muted);font-size:.62rem}.stip-donut__center b{font-size:.95rem}.stip-donut__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem .7rem;padding:0;color:var(--p-muted);font-size:.68rem;list-style:none}.stip-donut__legend i{display:inline-block;width:.6rem;height:.6rem;margin-right:.3rem;border-radius:2px}.salary-breakdown{display:flex;flex-direction:column;margin:0;padding:.85rem 1rem;border-radius:12px;background:var(--p-surface);box-shadow:0 1px 3px color-mix(in srgb,var(--p-fg) 12%,transparent);list-style:none;font-size:.78rem}.salary-breakdown__head{margin-bottom:.4rem;font-size:.7rem;font-weight:700}.salary-breakdown li:not(.salary-breakdown__head){display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem 0;border-top:1px solid color-mix(in srgb,var(--p-fg) 8%,transparent)}.salary-breakdown small{display:block;color:var(--p-muted);font-size:.64rem}.salary-breakdown b{color:#c0392b;font-weight:700;font-variant-numeric:tabular-nums}.stip-demo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:.9rem;padding:clamp(1rem,2.2vw,1.6rem)}.stip-demo__results{display:grid;grid-template-rows:auto auto 1fr;gap:.8rem;min-height:0}.stip-demo__net{padding:.9rem 1.1rem;border-radius:12px;background:var(--p-fg);color:var(--p-accent-fg)}.stip-demo__net span,.stip-demo__net small{display:block;opacity:.75;font-size:.72rem}.stip-demo__net strong{display:block;font-size:2rem;font-weight:700;letter-spacing:-.02em}.stip-demo__row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.stip-demo__row>div{padding:.75rem 1rem;border-radius:12px;background:color-mix(in srgb,var(--p-fg) 14%,var(--p-surface))}.stip-demo__row span,.stip-demo__row small{display:block;color:var(--p-muted);font-size:.68rem}.stip-demo__row b{font-size:1.15rem;font-weight:700}.stip-demo__row .stip-demo__cost{color:#c0392b}.stip-demo__detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.8rem;min-height:0;align-items:stretch}@media (max-width: 720px){.stip-demo__detail{grid-template-columns:1fr}}@media (max-width: 560px){.stip-demo{grid-template-columns:1fr}}.spine{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:1.4rem 0 1.1rem;color:var(--fg);font:inherit;cursor:var(--cursor-pointer);transition:opacity .4s .35s var(--ease-out),visibility 0s .35s}.book[data-open=true] .spine{visibility:hidden;opacity:0;transition:opacity .25s var(--ease-out),visibility 0s .25s}.spine__mark{width:12px;height:12px;flex:none;border-radius:3px;background:var(--p-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--p-fg) 20%,transparent)}.spine__title{flex:1;min-height:0;overflow:hidden;font-size:1.3rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg)}.spine__plus{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:var(--fg);color:var(--bg);transition:transform .35s var(--ease-out)}.spine__plus svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.spine:hover .spine__plus,.spine:focus-visible .spine__plus{transform:rotate(90deg)}.spine:focus-visible{outline-offset:-4px}@media (max-width: 1023px){.spine{position:static;flex-direction:row;gap:.8rem;padding:1rem 1.1rem;text-align:left}.book[data-open=true] .spine{visibility:visible;opacity:1}.spine__title{font-size:1.15rem;writing-mode:horizontal-tb;transform:none;text-overflow:ellipsis}.spine__plus{width:30px;height:30px}.book[data-open=true] .spine__plus{transform:rotate(45deg)}}@media (prefers-reduced-motion: reduce){.spine,.book[data-open=true] .spine,.spine__plus{transition:none}}.pinfo{display:flex;flex-direction:column;align-items:flex-start;min-width:0;color:var(--fg)}.pinfo__name{font-size:clamp(2rem,3.4vw,3.2rem);font-weight:700;line-height:1.02;letter-spacing:-.04em}.pinfo__tagline{margin-top:1rem;font-size:1.05rem;font-weight:500}.pinfo__desc{margin-top:.6rem;max-width:44ch;color:var(--fg-muted);font-size:.95rem}.pinfo__stack{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:1.2rem;padding:0;color:var(--fg-muted);font-family:var(--font-mono);font-size:.78rem;list-style:none}.pinfo__status{display:flex;align-items:center;gap:.5rem;margin-top:1rem;color:var(--fg-muted);font-size:.82rem}.pinfo__status i{width:.55rem;height:.55rem;border-radius:50%;background:var(--p-accent)}.pinfo__links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:auto;padding-top:1.5rem}.book[data-open=true] .pinfo>*{animation:rise .55s calc(.4s + var(--n, 0) * .06s) var(--ease-out) backwards}.pinfo>:nth-child(2){--n: 1}.pinfo>:nth-child(3){--n: 2}.pinfo>:nth-child(4){--n: 3}.pinfo>:nth-child(5){--n: 4}.pinfo>:nth-child(6){--n: 5}@media (max-width: 1023px){.pinfo__name{display:none}.pinfo__tagline,.pinfo__links{margin-top:0}}@media (prefers-reduced-motion: reduce){.book[data-open=true] .pinfo>*{animation:none}}.pwin{display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--p-bg);box-shadow:var(--shadow)}.pwin__bar{display:flex;flex:none;align-items:center;padding:.45em 0;border-bottom:1px solid color-mix(in srgb,var(--p-fg) 14%,transparent);background:color-mix(in srgb,var(--p-fg) 9%,var(--p-bg))}.pwin__bar .window__lights i:nth-child(2){background:#f2b53d}.pwin__bar .window__lights i:nth-child(3){background:#2e9e6b}.pwin__domain{margin-right:1em;padding:.3em .9em;border-radius:6px;background:color-mix(in srgb,var(--p-fg) 7%,var(--p-bg));color:var(--p-muted);font-family:var(--font-mono);font-size:.78em}.pwin__caret{display:inline-block;width:.5em;height:1em;margin-left:1px;vertical-align:-.15em;background:var(--p-muted);opacity:0}.pwin__caret[data-on=true]{opacity:1;animation:blink 1s step-end infinite}.pwin__demo{flex:1;min-height:0;overflow:auto;color:var(--p-fg);clip-path:circle(0% at 50% 100%);transition:clip-path .3s var(--ease-out)}.book[data-open=true] .pwin__demo{clip-path:circle(150% at 50% 100%);transition:clip-path .7s .5s var(--book-ease)}@media (max-width: 1023px){.pwin__demo{max-height:520px}}@media (prefers-reduced-motion: reduce){.pwin__demo,.book[data-open=true] .pwin__demo{transition:none}}html:not(.js) .book[data-open=true] .pwin__demo{clip-path:none}.book{position:relative;flex:0 0 var(--spine);min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:20px;background:var(--surface);scroll-margin-top:var(--projects-top);transition:flex-grow var(--book-time) var(--book-ease),background-color var(--book-time) var(--book-ease)}.book[data-open=true]{flex-grow:1;background:color-mix(in srgb,var(--p-accent) 5%,var(--surface))}.book__pages{position:absolute;inset:0 auto 0 0;width:calc(100cqw - (var(--books) - 1) * (var(--spine) + var(--shelf-gap)));opacity:0;transform:translate(-12px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.book[data-open=true] .book__pages{opacity:1;transform:none;transition:opacity .5s .35s var(--ease-out),transform .6s .35s var(--ease-out)}.book__inner{display:grid;grid-template-columns:minmax(260px,4fr) minmax(0,7fr);grid-template-rows:minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem);height:100%;padding:clamp(1.5rem,3vw,2.5rem)}.js .projects[data-revealed=false] .book{opacity:0;transform:translateY(32px)}.js .projects[data-revealed=true] .book{animation:rise .45s calc(.2s + var(--i) * .07s) var(--ease-out) backwards}@media (max-width: 1023px){.book{display:grid;flex:none;grid-template-rows:auto 0fr;border-radius:16px;transition:grid-template-rows var(--book-time) var(--book-ease),background-color var(--book-time) var(--book-ease)}.book[data-open=true]{grid-template-rows:auto 1fr}.book__pages{position:static;width:auto;min-height:0;overflow:hidden}.book__inner{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;height:auto;padding:0 1.1rem 1.25rem}}@media (prefers-reduced-motion: reduce){.book,.book__pages,.book[data-open=true] .book__pages{transition:none}}.projects{--projects-top: calc(58px + 2.5rem) ;position:relative;overflow-x:clip;padding:var(--section-pad-top) var(--gutter) var(--section-pad-bottom);scroll-margin-top:calc(var(--projects-top) - 1rem)}.shelf{--spine: 84px;--shelf-gap: .75rem;--book-ease: cubic-bezier(.65, 0, .35, 1);--book-time: .85s;display:flex;gap:var(--shelf-gap);max-width:1400px;height:clamp(560px,calc(100svh - var(--projects-top) - 3rem),700px);margin:var(--section-content-gap) auto 0;container-type:inline-size}@media (max-width: 1023px){.shelf{flex-direction:column;height:auto}}.grid{position:absolute;inset:0 0 0 calc(var(--label-w) + var(--col-gap));pointer-events:none}.grid__axis{position:absolute;inset:0 0 auto;height:1.6rem;color:var(--fg-muted);font-family:var(--font-mono);font-size:.7rem}.grid__axis span{position:absolute;left:var(--x);transform:translate(-50%)}.grid__axis span:first-child{transform:none}.grid__today{color:var(--accent);transform:translate(-100%)!important}.grid__plot{position:absolute;top:2rem;right:0;bottom:0;left:0}.grid__line{position:absolute;top:0;bottom:0;left:var(--x);width:1px;background:var(--border)}.grid__band{position:absolute;top:0;bottom:0;left:var(--from);width:calc(var(--to) - var(--from));border-left:1px dashed color-mix(in srgb,var(--c) 55%,transparent);background:linear-gradient(color-mix(in srgb,var(--c) 9%,transparent),transparent 85%);opacity:.55;transition:opacity .3s var(--ease-out)}.grid__band[data-lit=true]{opacity:1;background:linear-gradient(color-mix(in srgb,var(--c) 20%,transparent),transparent)}.matrix[data-focus=true] .grid__band:not([data-lit=true]){opacity:.2}.js .stack[data-revealed=false] .grid{opacity:0}.js .stack[data-revealed=true] .grid{animation:fade-in .6s .2s var(--ease-out) backwards}@keyframes fade-in{0%{opacity:0}}@media (max-width: 767px){.grid__axis span:nth-child(2n):not(.grid__today),.grid__axis span:nth-last-child(2){visibility:hidden}}@media (prefers-reduced-motion: reduce){.js .stack[data-revealed=true] .grid{animation:none}.grid__band{transition:none}}.legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none}.legend__item{display:flex;align-items:flex-start;gap:.7rem;width:100%;height:100%;padding:.85rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;text-align:left;cursor:var(--cursor-pointer);transition:border-color .25s var(--ease-out),transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}.legend__item i{width:10px;height:10px;flex:none;margin-top:.35rem;border-radius:3px;background:var(--c)}.legend__item strong{display:block;font-size:.95rem}.legend__item small{color:var(--fg-muted);font-size:.75rem}.legend__item[data-lit=true]{border-color:var(--c);box-shadow:0 10px 24px -16px var(--c);transform:translateY(-2px)}@media (max-width: 1023px){.legend{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){.legend__item{transition:none}}.stip{position:absolute;z-index:5;top:calc(100% - 4px);left:calc(var(--label-w) + var(--col-gap) + min(var(--from),50%));width:min(340px,100%);padding:.9rem 1rem;border:1px solid var(--border);border:3px solid var(--c);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),visibility 0s .2s}.srow[data-active=true] .stip{visibility:visible;opacity:1;transform:none;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out)}.stip__head{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem}.stip__head span{color:var(--fg-muted);font-family:var(--font-mono);font-size:.75rem}.stip__note{margin-top:.4rem;color:var(--fg-muted);font-size:.82rem}.stip__meta{display:grid;gap:.5rem;margin:.7rem 0 0;font-size:.8rem}.stip__meta dt{color:var(--fg-muted);font-size:.7rem}.stip__meta dd{display:flex;flex-wrap:wrap;gap:.2rem .8rem;margin:0;font-weight:600}.stip__meta a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}@media (max-width: 767px){.stip{position:static;grid-column:1 / -1;display:none;width:auto;margin:.4rem 0 .8rem}.srow[data-active=true] .stip{display:block}}@media (prefers-reduced-motion: reduce){.stip,.srow[data-active=true] .stip{transition:none}}.srow{position:relative;display:grid;grid-template-columns:var(--label-w) minmax(0,1fr);column-gap:var(--col-gap);align-items:center;min-height:var(--row-h);transition:opacity .3s var(--ease-out)}.srow[data-dim=true]{opacity:.3}.srow__label{display:flex;align-items:center;gap:.6rem;min-width:0;padding:.35rem .5rem;margin-left:-.5rem;border-radius:8px;color:var(--fg);font:inherit;text-align:left;cursor:var(--cursor-pointer);transition:background-color .2s}.srow[data-active=true] .srow__label{background:color-mix(in srgb,var(--c) 12%,transparent)}.srow__label svg{width:18px;height:18px;flex:none;fill:var(--c)}.srow__text{display:flex;flex:1;align-items:baseline;gap:.5rem;min-width:0}.srow__name{overflow:hidden;font-size:.92rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.srow__years{margin-left:auto;flex:none;color:var(--fg-muted);font-family:var(--font-mono);font-size:.72rem}.srow__track{position:relative;height:10px}.srow__bar,.srow__seg{position:absolute;top:0;bottom:0;left:var(--from);width:calc(var(--to) - var(--from));border-radius:999px;background:var(--c)}.srow__bar{transform-origin:left;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}.srow__bar[data-faded=true]{opacity:.25}.srow__seg{box-shadow:0 0 14px -2px var(--c);animation:seg-in .35s var(--ease-out)}.srow[data-active=true] .srow__bar{box-shadow:0 0 16px -2px var(--c);transform:scaleY(1.4)}.js .stack[data-revealed=false] .srow__bar{transform:scaleX(0)}.js .stack[data-revealed=true] .srow__bar{animation:bar-draw .9s calc(.35s + var(--i) * .06s) cubic-bezier(.65,0,.35,1) backwards}.js .stack[data-revealed=false] .srow__label{opacity:0}.js .stack[data-revealed=true] .srow__label{animation:rise .4s calc(.3s + var(--i) * .04s) var(--ease-out) backwards}@keyframes bar-draw{0%{transform:scaleX(0)}}@keyframes seg-in{0%{opacity:0;transform:scaleY(.4)}}@media (max-width: 767px){.srow__text{flex-direction:column;gap:0}.srow__name{max-width:100%;font-size:.85rem}.srow__years{margin-left:0;font-size:.65rem}}@media (prefers-reduced-motion: reduce){.srow,.srow__bar{transition:none}.js .stack[data-revealed] :is(.srow__bar,.srow__label,.srow__seg){animation:none}}.matrix{--label-w: 210px;--col-gap: 1.25rem;--row-h: 36px;max-width:1400px;margin:var(--section-content-gap) auto 0}.matrix__chart{position:relative;margin-top:2rem;padding:2.4rem 0 .5rem}.matrix__group+.matrix__group{margin-top:1rem}.matrix__cat{position:relative;width:var(--label-w);padding:.5rem 0 .25rem;color:var(--fg-muted);font-family:var(--font-mono);font-size:.75rem;font-weight:400}.matrix__rows{margin:0;padding:0;list-style:none}.js .stack[data-revealed=false] .matrix__cat,.js .stack[data-revealed=false] .legend{opacity:0}.js .stack[data-revealed=true] .matrix__cat{animation:rise .4s .3s var(--ease-out) backwards}.js .stack[data-revealed=true] .legend{animation:rise .5s .25s var(--ease-out) backwards}@media (max-width: 767px){.matrix{--label-w: 128px;--col-gap: .75rem}}@media (prefers-reduced-motion: reduce){.js .stack[data-revealed] :is(.matrix__cat,.legend){animation:none}}.stack{position:relative;isolation:isolate;overflow-x:clip;padding:var(--section-pad-top) var(--gutter) var(--section-pad-bottom);scroll-margin-top:calc(var(--projects-top, 98px) - 1rem)}.cl{--fill: #181717;--on-fill: #f7f5ef;position:relative;display:flex;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--fg);overflow:hidden;text-decoration:none;cursor:var(--cursor-pointer)}.cl[data-id=linkedin]{--fill: #0a66c2;--on-fill: #fff}[data-theme=dark] .cl[data-id=github]{--fill: #e6e6e6;--on-fill: #181717}.cl:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--fill);transform:scaleX(0);transform-origin:left;transition:transform .22s var(--ease-out)}.cl:hover:before,.cl:focus-visible:before{transform:scaleX(1)}.cl>*{position:relative}.cl:hover,.cl:focus-visible{color:var(--on-fill);border-color:transparent}.cl__icon{width:1.9rem;height:1.9rem;flex-shrink:0;transition:transform .18s var(--ease-out)}.cl:hover .cl__icon,.cl:focus-visible .cl__icon{transform:scale(1.12)}.cl__name{font-weight:600;font-size:1.05rem}.cl__handle{font-family:var(--font-mono);font-size:.82rem;opacity:.7;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cl__arrow{width:1.15rem;height:1.15rem;margin-left:auto;flex-shrink:0;transition:transform .18s var(--ease-out)}.cl:hover .cl__arrow,.cl:focus-visible .cl__arrow{transform:rotate(45deg)}@media (prefers-reduced-motion: reduce){.cl:before,.cl__icon,.cl__arrow{transition:none}}.contacts{position:relative;overflow-x:clip;padding:var(--section-pad-top) var(--gutter) var(--section-pad-bottom);scroll-margin-top:calc(var(--projects-top, 98px) - 1rem)}.contacts__card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:clamp(1.5rem,4vw,4rem);max-width:1400px;margin:var(--section-content-gap) auto 0;padding:clamp(1.75rem,4vw,3.25rem) clamp(1.5rem,4vw,3.5rem) 0;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.contacts__body{align-self:center;padding-bottom:clamp(1.75rem,4vw,3.25rem)}.contacts__title{font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}.contacts__text{max-width:56ch;margin-top:.9rem;color:var(--fg-muted)}.contacts__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin:2rem 0 0;padding:0;list-style:none}.contacts__visual{position:relative;align-self:end;justify-self:end;width:min(200px,100%);margin-top:clamp(-10rem,-8vw,-3rem);margin-right:calc(-1*clamp(1.5rem,4vw,3.5rem));line-height:0}.contacts__blob{position:absolute;top:0;right:-12%;bottom:0;left:-12%;border-radius:50%;background:radial-gradient(closest-side,rgb(225 100 94 / .2),transparent 72%)}.contacts__img{position:relative;width:100%;height:auto;transform-origin:50% 100%;transition:transform .2s var(--ease-out)}.contacts__visual:hover .contacts__img,.contacts:has(.cl:hover) .contacts__img,.contacts:has(.cl:focus-visible) .contacts__img{transform:rotate(-4deg)}.contacts__bubble{position:absolute;top:14%;right:74%;padding:.45rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:.8rem;line-height:1.3;white-space:nowrap;box-shadow:0 6px 18px #0000001f;transition:opacity .25s var(--ease-out) .45s,transform .25s var(--ease-out) .45s}@keyframes contacts-rise{0%{transform:translateY(70px) rotate(-7deg)}70%{transform:translateY(-6px) rotate(1.5deg)}to{transform:translateY(0) rotate(0)}}.js .contacts[data-revealed=false] .contacts__img{opacity:0;transform:translateY(70px) rotate(-7deg)}.js .contacts[data-revealed=true] .contacts__img{animation:contacts-rise .55s var(--ease-out) both}.js .contacts[data-revealed=false] .contacts__bubble{opacity:0;transform:translateY(8px)}@media (max-width: 1023px){.contacts__card{grid-template-columns:minmax(0,1fr)}.contacts__body{padding-bottom:0}.contacts__visual{justify-self:end;width:min(190px,58vw);margin-top:0}.contacts__bubble{top:4%;right:auto;left:58%}}@media (max-width: 560px){.contacts__links{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.js .contacts[data-revealed=false] .contacts__img,.js .contacts[data-revealed=false] .contacts__bubble{opacity:1;transform:none}.js .contacts[data-revealed=true] .contacts__img{animation:none}}.footer{padding:0 var(--gutter);border-top:1px solid var(--border)}.footer__row{display:flex;align-items:center;gap:1rem;max-width:1400px;margin:0 auto;padding:1.1rem 0;font-size:.82rem;color:var(--fg-muted)}.footer__logo{font-family:var(--font-mono);font-weight:700;color:var(--fg)}.footer__dot{color:var(--accent)}.footer__top{margin-left:auto;color:var(--fg-muted);text-decoration:none;cursor:var(--cursor-pointer);transition:color .15s}.footer__top:hover{color:var(--accent)}
