@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./playfair-display-cyrillic-wght-normal-5WvUvBgz.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./playfair-display-vietnamese-wght-normal-Cabi7G8-.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:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./playfair-display-latin-ext-wght-normal-CT1r92Rl.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:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./playfair-display-latin-wght-normal-BOwq7MWX.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:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(./playfair-display-cyrillic-wght-italic-D5dBZ3aJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(./playfair-display-vietnamese-wght-italic-DUEcMSM3.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:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(./playfair-display-latin-ext-wght-italic-ze_cPdSg.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:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(./playfair-display-latin-wght-italic-DmbndNpe.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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./caveat-cyrillic-ext-wght-normal-DiMfzA-V.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./caveat-cyrillic-wght-normal-D5lnP6kL.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./caveat-latin-ext-wght-normal-Byk3UhVp.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./caveat-latin-wght-normal-C1hSzPvX.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}:root{--color-bg: #f4f2ed;--color-fg: #2a1e1a;--color-primary: #4d332b;--color-primary-fg: #f5ece9;--color-muted: #e4d3ce;--color-muted-fg: #5a4b46;--color-accent: #e1c7c1;--color-accent-fg: #2a1e1a;--color-btn: #5d291c;--color-btn-fg: #fff6f3;--color-border: #d0c0bb;--color-hairline: rgb(0 0 0 / .12);--color-brick: #a33a1c;--color-danger: #b3261e;--chart-1: #f05100;--chart-2: #009588;--chart-3: #104e64;--photo-filter: grayscale(.9) contrast(1.12) sepia(.35) hue-rotate(-12deg) saturate(1.25);--font-display: "Playfair Display Variable", "Playfair Display", "Times New Roman", Georgia, serif;--font-mono: "JetBrains Mono Variable", "JetBrains Mono", "Cascadia Mono", Consolas, ui-monospace, monospace;--font-hand: "Caveat Variable", "Caveat", "Segoe Script", cursive;--step--1: clamp(.82rem, .79rem + .15vw, .9rem);--step-0: clamp(1rem, .96rem + .2vw, 1.125rem);--step-1: clamp(1.18rem, 1.1rem + .4vw, 1.4rem);--step-2: clamp(1.4rem, 1.25rem + .75vw, 1.9rem);--step-3: clamp(1.7rem, 1.4rem + 1.5vw, 2.6rem);--size-hero: clamp(3rem, 1.6rem + 6.4vw, 6.5rem);--size-giant: clamp(4rem, 14vw, 20rem);--container: 1280px;--gutter: clamp(1.5rem, .9rem + 2.6vw, 6rem);--section-y: clamp(4rem, 2.5rem + 6vw, 6rem);--grid-cell: 32px;--radius: .5rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-jelly: cubic-bezier(.22, 1.4, .36, 1);--dur-micro: .15s;--dur-small: .3s;--dur-medium: .5s;--dur-hero: .8s}:root[data-theme=dark]{--color-bg: #041716;--color-fg: #a3dbcf;--color-primary: #00a692;--color-primary-fg: #00100c;--color-muted: #00372f;--color-muted-fg: #6cb5a6;--color-accent: #00473c;--color-accent-fg: #a3dbcf;--color-btn: #00a692;--color-btn-fg: #00100c;--color-border: #00463c;--color-hairline: rgb(163 219 207 / .12);--color-brick: #e2603f;--color-danger: #ff7a6b;--chart-1: #00bb7f;--chart-2: #1447e6;--chart-3: #f99c00;--photo-filter: grayscale(.85) contrast(1.15) sepia(.25) hue-rotate(120deg) saturate(1.4)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html.lenis{scroll-behavior:auto}body{min-height:100svh;background:var(--color-bg);color:var(--color-fg);font-family:var(--font-display);font-size:var(--step-0);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background-color var(--dur-medium) var(--ease-out),color var(--dur-medium) var(--ease-out)}img,svg,video{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-weight:800;line-height:.95;text-wrap:balance}p{text-wrap:pretty}::selection{background:var(--color-accent);color:var(--color-accent-fg)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}body:after{content:"";position:fixed;inset:0;z-index:-10;pointer-events:none;background-image:linear-gradient(90deg,var(--color-hairline) 1px,transparent 1px),linear-gradient(var(--color-hairline) 1px,transparent 1px);background-size:var(--grid-cell) var(--grid-cell);animation:gridPulse 6s var(--ease-in-out) infinite}@keyframes gridPulse{0%,to{opacity:.35}50%{opacity:.55}}.section{position:relative;width:100%;padding-inline:var(--gutter);padding-block:var(--section-y)}.container{position:relative;z-index:1;width:100%;max-width:var(--container);margin-inline:auto}.measure{max-width:48ch}.chip-label{display:inline-block;padding:.4rem 1.1rem;border:2px solid var(--color-border);border-radius:999px;font-size:var(--step--1);font-weight:500;transition:transform var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.chip-label:hover{transform:scale(1.05);border-color:var(--color-primary);color:var(--color-primary)}.mono-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;color:var(--color-muted-fg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body:after{animation:none;opacity:.4}.split-host,.reveal,.giant-letter{visibility:visible!important;opacity:1!important;transform:none!important}}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:200;padding:.6rem 1rem;border:1px solid var(--color-primary);border-radius:var(--radius, 4px);background:var(--color-bg);color:var(--color-fg);font-family:var(--font-mono);font-size:var(--step--1);text-decoration:none;transform:translateY(-160%);transition:transform var(--dur-small, .2s) var(--ease-out, ease)}.skip-link:focus-visible{transform:translateY(0)}html{scroll-padding-top:5rem}main:focus,main:focus-visible{outline:none}.wave{position:fixed;inset:-20% 0 -10%;z-index:400;pointer-events:none;visibility:hidden;transform:translateY(110%)}.wave.is-active{visibility:visible}.wave.is-in{animation:waveIn .56s cubic-bezier(.5,0,.2,1) forwards}.wave.is-out{animation:waveOut .62s cubic-bezier(.6,0,.25,1) forwards}.wave.is-covering{transform:translateY(0)}@keyframes waveIn{0%{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes waveOut{0%{transform:translateY(0)}to{transform:translateY(-110%)}}.wave__svg{position:absolute;inset:0;width:100%;height:100%}.wave__back{fill:var(--color-primary);opacity:.55;transition:d .32s cubic-bezier(.4,0,.2,1)}.wave__front{fill:var(--color-accent);transition:d .28s cubic-bezier(.4,0,.2,1)}.wave__foam{position:absolute;left:0;right:0;top:12%;height:0}.wave__drop{position:absolute;top:0;border-radius:50%;background:var(--color-accent);opacity:0;animation:waveDrop .75s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:var(--delay, 0s)}.wave.is-in .wave__drop{animation-name:waveDrop}@keyframes waveDrop{0%{opacity:0;transform:translate(0) scale(.4)}25%{opacity:.9}to{opacity:0;transform:translate(var(--dx, 0),var(--dy, -80px)) scale(1)}}html.vt-theme::view-transition-old(root){z-index:1}html.vt-theme::view-transition-new(root){z-index:2;animation:themeReveal .55s cubic-bezier(.3,0,.2,1) forwards}@keyframes themeReveal{0%{clip-path:circle(0 at var(--vt-x, 50%) var(--vt-y, 50%))}to{clip-path:circle(var(--vt-r, 150vmax) at var(--vt-x, 50%) var(--vt-y, 50%))}}@media(prefers-reduced-motion:reduce){.wave{display:none}html.vt-theme::view-transition-new(root){animation:none}}.footer{background:color-mix(in srgb,var(--color-muted) 55%,var(--color-bg));padding:var(--section-y) var(--gutter) 2rem}.footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:3rem}.footer__head{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.28em;color:var(--color-muted-fg);margin-bottom:1.1rem}.footer__nav a{display:inline-flex;align-items:center;gap:.6rem;padding-block:.4rem;font-size:var(--step--1);transition:color var(--dur-micro) var(--ease-out)}.footer__nav a:before{content:"";width:1rem;height:1px;background:currentColor;transition:width var(--dur-small) var(--ease-out)}.footer__nav a:hover{color:var(--color-primary)}.footer__nav a:hover:before{width:1.75rem}.social-row{display:flex;align-items:center;gap:1rem;padding-block:.9rem;border-bottom:1px solid color-mix(in srgb,var(--color-border) 60%,transparent)}.social-row__num{font-family:var(--font-mono);font-size:.65rem;color:var(--color-muted-fg)}.social-row__name{flex:1;font-size:var(--step-1);font-weight:700}.social-row__go{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--color-border);border-radius:50%;color:var(--color-primary);transition:transform var(--dur-small) var(--ease-out),background-color var(--dur-small) var(--ease-out),color var(--dur-small) var(--ease-out)}.social-row:hover .social-row__go{transform:translate(2px,-2px);background:var(--color-primary);color:var(--color-primary-fg)}.footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid color-mix(in srgb,var(--color-border) 50%,transparent);font-size:var(--step--1);color:var(--color-muted-fg)}.footer__head--gap{margin-top:2rem}.footer__mail{font-size:var(--step-0)}.footer__where{margin:.2rem 0 0;color:var(--color-muted-fg)}.footer__links{display:grid;gap:.15rem}.footer__links--pages{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));column-gap:1.5rem}.footer__built{white-space:nowrap;padding-right:clamp(3rem,6vw,4.5rem)}@media(pointer:coarse){.social-row{min-height:44px}}.footer__fine{display:grid;gap:.1rem;margin-top:2rem;font-size:var(--step--1)}.footer__fine a{color:var(--color-muted-fg);transition:color var(--dur-micro) var(--ease-out)}.footer__fine a:hover{color:var(--color-primary)}.footer__back{display:inline-block;margin-top:1.5rem;font-size:var(--step-0);font-weight:600}.page{display:flex;flex-direction:column;min-height:100svh}.page__top{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);flex-wrap:wrap;padding:1.25rem var(--gutter);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--color-bg) 96%,transparent)}.page__home{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;white-space:nowrap;transition:color var(--dur-micro) var(--ease-out)}.page__home:hover{color:var(--color-primary)}.page__nav{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;flex:1;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.page__nav a{position:relative;padding-block:.3rem;color:var(--color-muted-fg);transition:color var(--dur-micro) var(--ease-out)}.page__nav a:hover,.page__nav a[aria-current=page]{color:var(--color-primary)}.page__nav a[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:currentColor}.page__tools{display:flex;gap:.5rem}.page__btn{width:2.1rem;height:2.1rem;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:50%;background:transparent;font-family:var(--font-mono);font-size:.66rem;font-weight:700;cursor:pointer;transition:border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.page__btn:hover{border-color:var(--color-primary);color:var(--color-primary);transform:scale(1.08)}.page__body{flex:1;width:100%;max-width:52rem;margin-inline:auto;padding:clamp(2.5rem,7vw,5rem) var(--gutter)}.page__body--wide{max-width:var(--container)}.page__title{font-size:clamp(2.4rem,8vw,4.5rem);font-weight:800;line-height:1;letter-spacing:-.02em}.page__lead{margin-top:1.25rem;max-width:46ch;font-size:var(--step-2);line-height:1.45;color:var(--color-muted-fg)}.page__section{margin-top:clamp(2.5rem,6vw,4rem);padding-top:1.75rem;border-top:1px solid var(--color-border)}.page__section h2{font-size:var(--step-2);font-weight:800}.page__section p{margin-top:.9rem;font-size:var(--step-0);line-height:1.65;max-width:64ch}.page__bottom{margin-top:clamp(4rem,10vw,7rem);padding:var(--section-y) var(--gutter) 2rem;color:var(--color-muted-fg)}.page__bottom a:hover{color:var(--color-primary)}.mono-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--color-muted-fg)}.tag{padding:.2rem .6rem;border:1px solid var(--color-border);border-radius:999px;font-family:var(--font-mono);font-size:.68rem;color:var(--color-muted-fg)}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.65rem 1.4rem;border:2px solid var(--color-border);border-radius:999px;background:transparent;font-size:var(--step--1);cursor:pointer;transition:transform var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.btn:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px)}.btn--solid{background:var(--color-btn);border-color:var(--color-btn);color:var(--color-btn-fg)}.btn--solid:hover{color:var(--color-btn-fg);filter:brightness(1.1)}.note-hint{padding:1.25rem 1.5rem;border:1px dashed var(--color-border);border-radius:var(--radius);font-size:var(--step--1);color:var(--color-muted-fg);line-height:1.6}.page__nav a{display:inline-flex;align-items:center;min-height:24px}@media(pointer:coarse){.page__nav a{min-height:40px}}.rise{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease-out, ease) calc(var(--i, 0) * 60ms),transform .5s var(--ease-out, ease) calc(var(--i, 0) * 60ms)}.rise.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.rise{opacity:1;transform:none;transition:none}}.read-progress{position:fixed;top:0;left:0;z-index:40;width:100%;height:2px;background:var(--color-primary);transform:scaleX(0);transform-origin:0 50%;will-change:transform;pointer-events:none}@media(prefers-reduced-motion:reduce){.read-progress{display:none}}@media print{.rise{opacity:1!important;transform:none!important;transition:none!important}.read-progress,.skip-link,.page__top,.page__bottom{display:none!important}}.lab-defs{position:absolute;width:0;height:0}.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1px;margin-top:clamp(2rem,5vw,3rem);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-border);overflow:hidden}.lab-card{display:flex;flex-direction:column;gap:1rem;padding:clamp(1.1rem,2.5vw,1.6rem);background:var(--color-bg)}.lab-card__head{display:flex;flex-direction:column;gap:.35rem}.lab-card__tech{color:var(--color-muted-fg)}.lab-card__title{margin:0;font-size:var(--step-0);font-weight:600}.lab-card__stage{display:grid;place-items:center;min-height:140px;padding:1rem;border:1px dashed var(--color-border);border-radius:var(--radius)}.lab-card__text{margin:0;color:var(--color-muted-fg);font-size:var(--step--1);line-height:1.5}.lab-card__stage:has(.lab-magnet){min-height:170px}.lab-magnet{will-change:transform}.lab-fill{position:relative;isolation:isolate;overflow:hidden}.lab-fill:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--color-btn);clip-path:circle(0% at var(--x, 50%) var(--y, 50%));transition:clip-path var(--dur-medium) var(--ease-out)}.lab-fill:hover,.lab-fill:focus-visible{border-color:var(--color-btn);color:var(--color-btn-fg)}.lab-fill:hover:before,.lab-fill:focus-visible:before{clip-path:circle(140% at var(--x, 50%) var(--y, 50%))}.lab-roll__box{display:block;height:1.4em;overflow:hidden}.lab-roll__line{display:block;height:1.4em;line-height:1.4em;transition:transform var(--dur-small) var(--ease-out)}.lab-roll:hover .lab-roll__line,.lab-roll:focus-visible .lab-roll__line{transform:translateY(-100%)}.lab-ripple{position:relative;overflow:hidden}.lab-ripple__wave{position:absolute;border-radius:50%;background:currentcolor;opacity:.35;pointer-events:none;animation:lab-ripple .62s var(--ease-out) forwards}@keyframes lab-ripple{0%{transform:scale(0);opacity:.35}to{transform:scale(1);opacity:0}}.lab-state{position:relative;min-width:11rem;justify-content:center}.lab-state[data-state=done]{border-color:var(--color-primary);color:var(--color-primary)}.lab-state__spin{width:1em;height:1em;border:2px solid currentcolor;border-top-color:transparent;border-radius:50%;opacity:0;animation:lab-spin .7s linear infinite}.lab-state[data-state=busy] .lab-state__spin{opacity:1}.lab-state[data-state=idle] .lab-state__spin,.lab-state[data-state=done] .lab-state__spin{animation-play-state:paused}@keyframes lab-spin{to{transform:rotate(1turn)}}.lab-state__check{position:absolute;right:1rem;width:1.1em;height:1.1em;fill:none;stroke:currentcolor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0}.lab-state__check path{stroke-dasharray:26;stroke-dashoffset:26}.lab-state[data-state=done] .lab-state__check{opacity:1}.lab-state[data-state=done] .lab-state__check path{animation:lab-draw .42s var(--ease-out) forwards}@keyframes lab-draw{to{stroke-dashoffset:0}}.lab-goo{padding:0;border:0;background:none;cursor:pointer}.lab-goo__track{display:block;position:relative;width:5.5rem;height:2.75rem;border:2px solid var(--color-border);border-radius:999px;background:var(--color-muted);transition:border-color var(--dur-micro) var(--ease-out)}.lab-goo:hover .lab-goo__track,.lab-goo:focus-visible .lab-goo__track{border-color:var(--color-primary)}.lab-goo__blob{position:absolute;top:50%;left:.3rem;width:1.85rem;height:1.85rem;border-radius:50%;background:var(--color-btn);transform:translateY(-50%);filter:url(#lab-goo-filter);transition:left var(--dur-medium) var(--ease-jelly)}.lab-goo__blob--trail{width:1.5rem;height:1.5rem;transition-duration:.7s;transition-delay:60ms}.lab-goo[aria-checked=true] .lab-goo__blob{left:3.05rem;background:var(--color-primary)}.lab-goo[aria-checked=true] .lab-goo__blob--trail{left:3.2rem}.lab-card__stage:has(.lab-tilt){perspective:700px}.lab-tilt{display:flex;flex-direction:column;gap:.4rem;position:relative;width:min(100%,15rem);padding:1.4rem 1.2rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted);transform:rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transform-style:preserve-3d;transition:transform var(--dur-small) var(--ease-out);overflow:hidden}.lab-tilt:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--gx, 50%) var(--gy, 50%),rgb(255 255 255 / .35),transparent 55%);opacity:0;transition:opacity var(--dur-small) var(--ease-out);pointer-events:none}.lab-tilt:hover:after{opacity:1}.lab-tilt__title{font-family:var(--font-display);font-size:var(--step-1);line-height:1.1}.lab-cipher__text{display:inline-block;min-width:9ch;font-family:var(--font-mono);letter-spacing:.06em;text-align:center}@media(prefers-reduced-motion:reduce){.lab-fill:before,.lab-roll__line,.lab-goo__blob,.lab-tilt,.lab-tilt:after{transition-duration:1ms}.lab-state__spin{animation:none}.lab-state__check path{stroke-dashoffset:0;animation:none}.lab-scroll__item{animation:none;opacity:1}}.lab__hint{max-width:46ch;margin:1.25rem auto 0;text-align:center;color:var(--color-muted-fg)}.lab__more{margin-top:clamp(1.5rem,4vw,2.5rem);text-align:center}.lab-section{margin-top:clamp(3rem,8vw,5rem);font-family:var(--font-display);font-size:var(--step-2);font-weight:800}.lab-section:first-of-type{margin-top:clamp(2rem,5vw,3rem)}.lab-section+.lab-grid{margin-top:1.25rem}.lab-note{margin:.6rem 0 0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--color-muted-fg);text-align:center}.lab-flip{display:flex;flex-direction:column;align-items:center;gap:1rem}.lab-flip__grid{display:grid;grid-template-columns:repeat(3,3rem);gap:.5rem;margin:0;padding:0;list-style:none}.lab-flip__item{display:grid;place-items:center;height:3rem;border-radius:var(--radius);background:var(--color-muted);color:var(--color-fg);font-family:var(--font-mono);font-size:var(--step--1)}.lab-vt{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.lab-vt__stage{display:flex;justify-content:flex-start;width:min(100%,15rem);padding:.5rem;border:1px dashed var(--color-border);border-radius:var(--radius)}.lab-vt__stage.is-alt{justify-content:flex-end}.lab-vt__box{width:2.5rem;height:2.5rem;border-radius:var(--radius);background:var(--color-btn);view-transition-name:lab-vt-box}.lab-vt__stage.is-alt .lab-vt__box{width:4.5rem;border-radius:999px;background:var(--color-primary)}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-group(lab-vt-box){animation-duration:.45s;animation-timing-function:cubic-bezier(.16,1,.3,1)}.lab-scroll{width:100%}.lab-scroll__strip{display:flex;gap:.6rem;padding:.5rem 45%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.lab-scroll__item{flex:0 0 2.5rem;height:2.5rem;border-radius:var(--radius);background:var(--color-btn);scroll-snap-align:center;animation:lab-scroll-in linear both;animation-timeline:view(inline);animation-range:entry 10% cover 40%}@keyframes lab-scroll-in{0%{opacity:.12;transform:scale(.5)}to{opacity:1;transform:none}}.lab-discrete{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}.lab-discrete__box{margin:0;padding:.7rem 1rem;border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-muted);font-size:var(--step--1);text-align:center;transition:opacity var(--dur-small) var(--ease-out),transform var(--dur-small) var(--ease-out),display var(--dur-small) allow-discrete}@starting-style{.lab-discrete__box{opacity:0;transform:translateY(-8px)}}.lab-discrete__box[hidden]{display:none;opacity:0;transform:translateY(-8px)}.lab-anchor{display:flex;flex-direction:column;align-items:center;gap:.75rem}.lab-anchor__btn{anchor-name:--lab-anchor-btn}.lab-anchor__tip{position:absolute;position-anchor:--lab-anchor-btn;bottom:anchor(top);justify-self:anchor-center;margin-bottom:.5rem;padding:.35rem .7rem;border-radius:var(--radius);background:var(--color-btn);color:var(--color-btn-fg);font-family:var(--font-mono);font-size:.68rem;white-space:nowrap;opacity:0;transition:opacity var(--dur-micro) var(--ease-out);pointer-events:none}.lab-anchor__btn:hover~.lab-anchor__tip,.lab-anchor__btn:focus-visible~.lab-anchor__tip{opacity:1}.lab-size{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.lab-size__panel{interpolate-size:allow-keywords;height:0;overflow:hidden;width:min(100%,16rem);transition:height var(--dur-small) var(--ease-out)}.lab-size__panel.is-open{height:auto}.lab-size__panel p{margin:0;padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--step--1)}.lab-spring{display:grid;place-items:center;width:min(100%,16rem);height:3.5rem;border:1px dashed var(--color-border);border-radius:999px}.lab-spring__puck{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-btn);cursor:grab;touch-action:none;will-change:transform}.lab-spring__puck:active{cursor:grabbing}.lab-morph{display:flex;flex-direction:column;align-items:center;gap:.9rem}.lab-morph svg{width:3.5rem;height:3.5rem}.lab-morph path{fill:var(--color-btn);transition:d var(--dur-medium) var(--ease-jelly)}@media(prefers-reduced-motion:reduce){.lab-discrete__box,.lab-size__panel,.lab-morph path{transition-duration:1ms}}.be-grid{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr))}.be-stage{align-content:center;min-height:210px;padding:1.25rem}.be-card{gap:.85rem}.be-code{display:block;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted);font-family:var(--font-mono);font-size:.72rem;line-height:1.5;color:var(--color-fg);overflow-x:auto;white-space:pre}.be-controls{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.be-controls__label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--color-muted-fg)}.be-lock .lab-goo__track{width:3.6rem;height:1.9rem}.be-lock .lab-goo__blob{width:1.2rem;height:1.2rem;left:.25rem}.be-lock .lab-goo__blob--trail{width:.95rem;height:.95rem}.be-lock[aria-checked=true] .lab-goo__blob{left:2.1rem}.be-lock[aria-checked=true] .lab-goo__blob--trail{left:2.2rem}.be-stats{margin:.75rem 0 0;font-family:var(--font-mono);font-size:.74rem;text-align:center;color:var(--color-muted-fg)}.be-stats.is-bad{color:var(--color-danger)}.be-race{width:100%}.be-race__lanes{display:grid;gap:.5rem}.be-lane{display:grid;grid-template-columns:4.5rem repeat(3,1fr);align-items:center;gap:.4rem}.be-lane__name{font-family:var(--font-mono);font-size:.7rem;color:var(--color-muted-fg)}.be-lane__step{padding:.4rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-mono);font-size:.66rem;line-height:1.3;text-align:center;color:var(--color-muted-fg);opacity:.45;transition:opacity var(--dur-small) var(--ease-out),border-color var(--dur-small) var(--ease-out),color var(--dur-small) var(--ease-out)}.be-lane__step.is-on{opacity:1;border-color:var(--color-primary);color:var(--color-fg)}.be-lane__step.is-wait{border-style:dashed;border-color:var(--color-border);color:var(--color-muted-fg)}.be-lane__step.is-bad{border-color:var(--color-danger);color:var(--color-danger)}.be-balance{margin:.85rem 0 0;text-align:center;font-family:var(--font-mono);font-size:.78rem;color:var(--color-muted-fg)}.be-balance strong{font-size:var(--step-1);color:var(--color-fg);transition:color var(--dur-small) var(--ease-out)}.be-balance strong.is-bad{color:var(--color-danger)}.be-verdict{margin:.35rem 0 0;min-height:1.2em;text-align:center;font-size:var(--step--1)}.be-verdict.is-ok{color:var(--color-primary)}.be-verdict.is-bad{color:var(--color-danger)}.be-queue{width:100%}.be-queue__canvas{display:block;width:100%;height:120px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}.be-slider{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.72rem;color:var(--color-muted-fg)}.be-slider input{width:7rem;accent-color:var(--color-primary)}.be-bucket{display:flex;flex-direction:column;align-items:center}.be-bucket__row{display:flex;gap:.5rem}.be-bucket__dot{width:1.6rem;height:1.6rem;border:2px solid var(--color-border);border-radius:50%;background:transparent;transition:background-color var(--dur-small) var(--ease-out),border-color var(--dur-small) var(--ease-out),transform var(--dur-small) var(--ease-jelly)}.be-bucket__dot.is-full{background:var(--color-primary);border-color:var(--color-primary);transform:scale(1.05)}.be-bucket .btn{margin-top:1rem}.be-audit{width:100%}.be-term{min-height:6.5rem;padding:.7rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted);font-family:var(--font-mono);font-size:.7rem;line-height:1.7;overflow-y:auto}.be-term__line{color:var(--color-muted-fg);white-space:pre-wrap}.be-term__line.is-bad{color:var(--color-danger)}.be-op{padding:.4rem .9rem;font-family:var(--font-mono);font-size:.7rem}@media(prefers-reduced-motion:reduce){.be-lane__step,.be-balance strong,.be-bucket__dot{transition-duration:1ms}}.demos{display:grid;gap:clamp(2.5rem,6vw,4rem);margin-top:clamp(2.5rem,6vw,4rem)}.demo{padding-top:1.75rem;border-top:1px solid var(--color-border)}.demo__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.demo__title{font-size:var(--step-2);font-weight:800}.demo__text{margin-top:.75rem;font-size:var(--step-0);line-height:1.6;color:var(--color-muted-fg);max-width:62ch}.demo__input{display:block;margin-top:1rem;padding:.6rem 1rem;width:min(20rem,100%);border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-fg);font-size:var(--step--1)}.demo__input:focus{outline:none;border-color:var(--color-primary)}.demo__canvas{display:block;width:100%;height:min(52vh,26rem);margin-top:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);touch-action:none;cursor:crosshair}
