@font-face{font-family:'Instrument Sans';src:url('/fonts/instrument-sans-var.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:'Instrument Sans';src:url('/fonts/instrument-sans-italic-var.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap}@font-face{font-family:'JetBrains Mono';src:url('/fonts/jetbrains-mono-var.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap}:root{--accent:#2e6bff;--accent-ink:#1f56d8;--accent-soft:#eef3ff;--accent-2:#7aa2ff;--text-1:#0f172a;--text-2:#475569;--text-3:#64748b;--ink:#0b1220;--paper:#f5f6f8;--surface:#ffffff;--line:#e3e7ee;--line-strong:#c9d1dc;--grid:rgba(15,23,42,0.045);--caution-bg:#fff8eb;--caution-line:#e0a52a;--caution-text:#5b4210;--sans:'Instrument Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--step--1:0.875rem;--step-0:1.0625rem;--step-1:1.1875rem;--step-2:1.3125rem;--step-3:clamp(1.5rem,1.3rem + 0.8vw,1.875rem);--step-4:clamp(1.875rem,1.45rem + 1.7vw,2.75rem);--step-5:clamp(2.5rem,1.7rem + 3.4vw,4.25rem);--wrap:1180px;--gutter:clamp(16px,4vw,32px);--section:clamp(64px,8vw,112px);--header-h:68px;--r-sm:6px;--r:9px;--r-lg:14px;--shadow-card:0 1px 2px rgba(15,23,42,0.04),0 12px 32px -20px rgba(15,23,42,0.25);--shadow-window:0 40px 90px -40px rgba(2,6,23,0.45),0 0 0 1px rgba(15,23,42,0.08);--shadow-btn:0 1px 2px rgba(15,23,42,0.08),0 8px 18px -10px rgba(46,107,255,0.7)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;background:var(--surface);color:var(--text-1);font-family:var(--sans);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,svg,video{max-width:100%;height:auto;display:block}[hidden]{display:none !important}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-0.02em;line-height:1.15;text-wrap:balance;color:var(--text-1)}h1{font-size:var(--step-5);letter-spacing:-0.035em;line-height:1.04}h2{font-size:var(--step-4);letter-spacing:-0.03em;line-height:1.08}h3{font-size:var(--step-1);line-height:1.3}p{margin:0;text-wrap:pretty}a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:0.18em}a:hover{color:var(--accent)}ul,ol{margin:0;padding:0}[role='list']{list-style:none}strong{font-weight:600}.mono{font-family:var(--mono);font-size:0.84em;letter-spacing:0;font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}::selection{background:#d6e2ff;color:var(--text-1)}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--surface);color:var(--text-1);padding:10px 16px;border-radius:var(--r);font-weight:600;box-shadow:var(--shadow-card)}.skip-link:focus{top:12px}.wrap{width:100%;max-width:calc(var(--wrap) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}.narrow{max-width:calc(780px + 2 * var(--gutter))}.section{padding-block:var(--section)}.section.tight{padding-block:calc(var(--section) * 0.6)}.section.flush-top{padding-top:0}.tint,.shade{background:var(--paper);border-block:1px solid var(--line)}.tint + .tint,.shade + .shade,.tint + .shade,.shade + .tint{border-top:0}.section-head{max-width:760px;margin-bottom:clamp(36px,4.5vw,56px)}.section-head p{margin-top:18px;color:var(--text-2);font-size:var(--step-1);line-height:1.55;max-width:64ch}.section-head-row{max-width:none;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px}.small-title{font-size:var(--step-1);letter-spacing:-0.01em;margin-bottom:20px}.lead{font-size:var(--step-2);line-height:1.55;color:var(--text-2);max-width:62ch}.fine{font-size:var(--step--1);color:var(--text-3)}.two-col{display:grid;gap:24px 64px}.two-col>div>* + *{margin-top:1em}.two-col>div>h2 + *{margin-top:20px}@media (min-width:900px){.two-col{grid-template-columns:1fr 1fr}.two-col-wide{grid-template-columns:minmax(0,1fr) minmax(0,1.85fr)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:42px;padding:0 18px;border-radius:var(--r);border:1px solid transparent;font:600 0.95rem/1 var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color 0.15s ease,border-color 0.15s ease,color 0.15s ease,box-shadow 0.15s ease,transform 0.15s ease}.btn:active{transform:translateY(1px)}.btn-lg{height:48px;padding:0 22px;font-size:1rem}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-btn)}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.btn-outline{background:var(--surface);border-color:var(--line-strong);color:var(--text-1)}.btn-outline:hover{background:var(--paper);border-color:#b3bdcb;color:var(--text-1)}.link-arrow{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:none;color:var(--accent-ink)}.link-arrow:hover{color:var(--accent)}.i-arrow{width:16px;height:16px;flex:none;transition:transform 0.15s ease}a:hover .i-arrow{transform:translateX(3px)}.site-header{position:sticky;top:0;z-index:50;view-transition-name:site-header;background:rgba(255,255,255,0.86);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:24px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text-1);text-decoration:none;flex:none}.brand:hover{color:var(--text-1)}.logo-mark{width:28px;height:28px;flex:none}.wordmark{font:600 1.1875rem/1 var(--sans);letter-spacing:-0.02em}.wordmark span{color:var(--accent)}.nav-toggle{display:inline-flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);color:var(--text-1);border-radius:var(--r);height:40px;padding:0 12px;font:600 0.95rem var(--sans);cursor:pointer}.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:16px;height:1.5px;background:currentColor;position:relative;transition:transform 0.2s ease}.nav-toggle-bars::before,.nav-toggle-bars::after{content:'';position:absolute;left:0}.nav-toggle-bars::before{top:-5px}.nav-toggle-bars::after{top:5px}.nav-toggle[aria-expanded='true'] .nav-toggle-bars{background:transparent}.nav-toggle[aria-expanded='true'] .nav-toggle-bars::before{transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded='true'] .nav-toggle-bars::after{transform:translateY(-5px) rotate(-45deg)}.nav-panel{display:none}.no-js .nav-toggle{display:none}.no-js .nav-panel{display:block}.nav-list{list-style:none}.nav-list>li>a{color:var(--text-1);text-decoration:none;font-weight:500}.nav-list>li>a:hover{color:var(--accent-ink)}.nav-list>li>a[aria-current='page']{color:var(--accent-ink)}.menu-toggle{background:none;border:0;color:var(--text-3);padding:6px;cursor:pointer;border-radius:var(--r-sm)}.menu-toggle svg{width:12px;height:12px;transition:transform 0.2s ease}.menu-toggle[aria-expanded='true'] svg{transform:rotate(180deg)}.menu{display:none}.menu.is-open{display:block}.menu-list{list-style:none}.menu-list a{display:block;text-decoration:none;color:var(--text-1)}.menu-list strong{display:block;font-weight:600}.menu-list span{display:block;font-size:var(--step--1);line-height:1.45;color:var(--text-2)}.menu-foot{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:var(--step--1);font-weight:600}@media (max-width:999.98px){.nav-panel.is-open{display:block;position:absolute;left:0;right:0;top:var(--header-h);background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 24px 40px -24px rgba(15,23,42,0.25);max-height:calc(100vh - var(--header-h));overflow-y:auto;padding:8px var(--gutter) 28px}.no-js .nav-panel{position:static}.no-js .header-inner{height:auto;flex-wrap:wrap;padding-block:14px}.nav-list>li{border-bottom:1px solid var(--line)}.nav-list>li>a{display:inline-block;padding:14px 0;font-size:1.0625rem}.has-menu{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.menu-toggle{padding:12px}.menu{flex-basis:100%;padding-bottom:12px}.menu-list a{padding:9px 0 9px 14px;border-left:1px solid var(--line)}.menu-list span{display:none}.menu-foot{padding:12px 0 4px 14px}.nav-cta{margin-top:20px;width:100%}}@media (min-width:1000px){.nav-toggle{display:none}.nav-panel,.no-js .nav-panel{display:flex;align-items:center;gap:28px}.nav-list{display:flex;align-items:center;gap:26px}.nav-list>li>a{font-size:0.975rem;padding-block:8px}.has-menu{position:relative;display:flex;align-items:center;gap:2px}.menu{position:absolute;top:calc(100% + 16px);left:-24px;width:min(720px,80vw);background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:0 24px 48px -20px rgba(15,23,42,0.3);padding:10px}.menu::before{content:'';position:absolute;top:-16px;left:0;right:0;height:16px}.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:2px}.menu-list a{padding:12px 14px;border-radius:var(--r)}.menu-list a:hover{background:var(--paper)}.menu-list span{margin-top:2px}.menu-list .is-secondary{grid-column:1 / -1;border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.menu-foot{padding:12px 14px 6px;border-top:1px solid var(--line);margin-top:6px}.nav-cta{height:40px;padding:0 16px}}.hero,.page-hero,.cta-band{background-color:var(--surface);background-image:radial-gradient(900px 420px at 88% -10%,rgba(46,107,255,0.09),transparent 70%),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;background-position:0 0,-1px -1px,-1px -1px}.hero{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(56px,7vw,96px);border-bottom:1px solid var(--line)}.hero-copy{max-width:860px;margin:0 auto;text-align:center}.hero h1{max-width:14em;margin-inline:auto}.hero .lead{margin:26px auto 0;max-width:60ch}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero .hero-actions{justify-content:center}.hero-checks{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;margin-top:26px;font-size:0.925rem;color:var(--text-2)}.hero-checks li{display:inline-flex;align-items:center;gap:8px}.hero-checks .icon{width:16px;height:16px;flex:none;color:var(--accent);stroke-width:2.2}.hero-visual{max-width:1040px;margin:clamp(48px,6vw,72px) auto 0}@media (min-width:1024px){.hero-grid{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:56px;align-items:center}.hero-copy{max-width:none;margin:0;text-align:left}.hero h1{font-size:clamp(2.5rem,1.4rem + 2.2vw,3.5rem);max-width:none;margin-inline:0}.hero .lead{margin:24px 0 0;font-size:var(--step-1)}.hero .hero-actions{justify-content:flex-start}.hero-checks{flex-direction:column;align-items:flex-start;gap:10px;margin-top:28px}.hero-visual{max-width:none;margin:0}.hero .demo-tablist{justify-content:flex-start;gap:6px}.hero .demo-tab{height:34px;padding:0 12px;gap:7px;font-size:0.875rem}.hero .demo-caption{flex-direction:column;gap:6px}.hero .demo-note{text-align:left;margin-top:14px}}.demo-tablist{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:18px}.no-js .demo-tablist{display:none}.no-js .demo-panel[hidden]{display:block !important}.no-js .demo-panel + .demo-panel{margin-top:40px}.demo-tab{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text-1);font:600 0.925rem var(--sans);cursor:pointer;transition:background-color 0.15s ease,border-color 0.15s ease,color 0.15s ease}.demo-tab:hover{border-color:var(--line-strong)}.demo-tab-break{flex-basis:100%;height:0}.demo-tab-dot{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 18%,transparent)}.demo-tab[aria-selected='true']{background:var(--text-1);border-color:var(--text-1);color:#fff}.demo-caption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin-top:18px;padding-inline:4px;color:var(--text-2);font-size:0.975rem}.demo-caption strong{color:var(--text-1)}.demo-note{margin-top:20px;text-align:center;font-size:var(--step--1);color:var(--text-3)}.player{--acc:var(--accent)}.window{border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-window);overflow:hidden;border:1px solid var(--line)}.window-bar{display:flex;align-items:center;gap:14px;height:40px;padding:0 14px;background:#f8fafc;border-bottom:1px solid var(--line)}.dots{display:inline-flex;gap:6px}.dots i{width:10px;height:10px;border-radius:50%;background:#d7dde6}.window-url{font-size:0.75rem;color:var(--text-3);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:3px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.player-frame{position:relative;aspect-ratio:16 / 9;background:var(--ink)}.player-video{width:100%;height:100%;object-fit:contain;background:var(--ink)}.player-video:fullscreen{background:#000}.player-start{position:absolute;inset:0;border:0;padding:0;cursor:pointer;background:transparent;color:var(--text-1);font:inherit}.no-js .player-start,.player.is-started .player-start{display:none}.player-start-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(56px,7vw,76px);height:clamp(56px,7vw,76px);border-radius:50%;background:var(--surface);display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(2,6,23,0.45),0 0 0 8px rgba(255,255,255,0.35);transition:transform 0.2s ease}.player-start-icon svg{width:34%;height:34%;margin-left:6%;color:var(--text-1)}.player-start:hover .player-start-icon{transform:translate(-50%,-50%) scale(1.06)}.player-chip{position:absolute;left:clamp(10px,2vw,18px);bottom:clamp(10px,2vw,18px);display:inline-flex;gap:12px;align-items:center;background:rgba(15,23,42,0.82);color:#fff;padding:7px 12px;border-radius:8px;font-size:0.875rem;font-weight:500}.player-chip .mono{opacity:0.8}.player-start:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}@media (max-width:560px){.player-chip{display:none}.window-bar{height:34px}.window-url{display:none}}.chapters{margin-top:28px}.chapters-title{font-size:var(--step-0);letter-spacing:-0.01em;margin-bottom:10px}.chapter-list{list-style:none;display:grid;gap:0 32px}@media (min-width:720px){.chapter-list{grid-template-columns:1fr 1fr}}@media (min-width:1100px){.chapter-list{grid-template-columns:1fr 1fr 1fr}}.chapter-list button{width:100%;display:flex;gap:14px;align-items:baseline;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:10px 0 10px 12px;font:inherit;font-size:0.95rem;color:var(--text-1);cursor:pointer;position:relative}.chapter-list button::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:transparent}.chapter-list button:hover{color:var(--accent-ink)}.chapter-list .mono{color:var(--text-3);min-width:3.2em}.chapter-list button[aria-current='true']{font-weight:600}.chapter-list button[aria-current='true']::before{background:var(--acc)}.video-context{margin-top:20px;font-size:var(--step--1);color:var(--text-3);max-width:80ch}.card-grid{display:grid;gap:20px}@media (min-width:700px){.card-grid-3{grid-template-columns:1fr 1fr}}@media (min-width:1040px){.card-grid-3{grid-template-columns:repeat(3,1fr)}}.card-grid>li{display:flex}.card{display:flex;flex-direction:column;gap:10px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:clamp(22px,2.4vw,28px)}.card h3{font-size:1.125rem;letter-spacing:-0.015em;margin-top:8px}.card p{color:var(--text-2);font-size:0.985rem;flex:1}.card .link-arrow{margin-top:8px;font-size:0.95rem}.card-link{text-decoration:none;color:inherit;transition:border-color 0.15s ease,box-shadow 0.15s ease,transform 0.15s ease}.card-link:hover{border-color:#c7d6fb;box-shadow:0 1px 2px rgba(15,23,42,0.04),0 18px 40px -22px rgba(31,86,216,0.4);color:inherit}.icon-tile{width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;border:1px solid #dfe8ff}.icon-tile .icon{width:22px;height:22px;flex:none}.icon{width:22px;height:22px}.service-compact{display:grid;gap:12px}@media (min-width:640px){.service-compact{grid-template-columns:1fr 1fr}}@media (min-width:1024px){.service-compact{grid-template-columns:repeat(3,1fr)}}.service-chip{display:flex;align-items:center;gap:14px;height:100%;padding:14px 18px 14px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);color:var(--text-1);text-decoration:none;transition:border-color 0.15s ease,box-shadow 0.15s ease}.service-chip:hover{border-color:#c7d6fb;color:var(--accent-ink);box-shadow:0 1px 2px rgba(15,23,42,0.04),0 14px 30px -20px rgba(31,86,216,0.4)}.service-chip .icon-tile{flex:none}.service-chip-name{flex:1;font-weight:600;line-height:1.3}.service-chip>svg:last-child{flex:none;width:16px;height:16px;color:var(--accent)}.service-aside{margin-top:28px;color:var(--text-2);text-align:center}.card-photo{padding:0;gap:0;overflow:hidden}.card-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--paper);border-bottom:1px solid var(--line)}.card-body{display:flex;flex-direction:column;gap:10px;flex:1;padding:clamp(20px,2.2vw,26px)}.card-photo h3{margin-top:0}.hero-split{display:grid;gap:36px 56px;align-items:center}@media (min-width:960px){.hero-split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.hero-photo{margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-window);background:var(--paper)}.hero-photo img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.about-diagram{margin:0;padding:clamp(16px,3vw,28px) clamp(12px,3vw,28px) clamp(14px,2.4vw,22px);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-window);background:var(--surface)}@media (min-width:960px){.hero-split-diagram{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero-split-diagram .about-diagram{justify-self:end;width:100%;max-width:540px}}.dg-svg{display:block;width:100%;height:auto;font-family:var(--sans)}.dg-stacked{display:none;max-width:420px;margin:0 auto}@media (max-width:560px){.dg-wide{display:none}.dg-stacked{display:block}}.dg-link{fill:none;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round}.dg-migrate{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-dasharray:5 5;stroke-linecap:round}.dg-arrow{fill:var(--accent)}.dg-label{font-size:13px;font-weight:500;fill:var(--accent-ink)}.dg-node{fill:var(--accent);stroke:var(--surface);stroke-width:2.5}.dg-core{fill:var(--paper);stroke:var(--line-strong);stroke-width:1.5}.dg-core-title{font-size:19px;font-weight:650;fill:var(--text-1);letter-spacing:-0.01em}.dg-piece rect{fill:var(--accent-soft);stroke:var(--accent-2);stroke-width:1.5}.dg-source rect{fill:var(--paper);stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:4 3}.dg-title{font-size:16.5px;font-weight:650;fill:var(--text-1);letter-spacing:-0.01em}.dg-stacked .dg-title{font-size:15.5px}.dg-sub{font-size:13.5px;fill:var(--text-2)}.dg-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:14px;font-size:var(--step--1);color:var(--text-2)}.dg-key{display:inline-flex;align-items:center;gap:8px}.dg-key::before{content:'';width:14px;height:14px;border-radius:4px;border:1.5px solid}.dg-key-ours::before{background:var(--accent-soft);border-color:var(--accent-2)}.dg-key-yours::before{background:var(--paper);border-color:var(--line-strong)}.dg-key-migrate::before{width:20px;height:0;border:0;border-top:2.2px dashed var(--accent);border-radius:0}.post-banner{margin:clamp(28px,4vw,40px) 0 0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-card);background:var(--paper)}.post-banner img{width:100%;aspect-ratio:21 / 9;object-fit:cover}.credit-list{display:grid;gap:16px}@media (min-width:760px){.credit-list{grid-template-columns:1fr 1fr}}.credit{flex-direction:row;align-items:center;gap:18px;padding:14px}.credit-img{width:40%;max-width:220px;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--r);flex:none}.credit p{color:var(--text-2);font-size:0.95rem}.credit-title{font-weight:600}.credit-note{margin-top:28px;max-width:80ch}.split{display:grid;gap:40px 64px;align-items:center}@media (min-width:960px){.split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.split-text>* + *{margin-top:18px}.split-text h2{max-width:16em}.split-text p{color:var(--text-2);font-size:var(--step-0);line-height:1.65}.card-list h3{margin:0 0 6px}.card-list .check-list{margin:8px 0 0;gap:14px}.card-list .check-list li{color:var(--text-2)}.card-list .check-list strong{color:var(--text-1)}.steps{display:grid;gap:32px}@media (min-width:720px){.steps{grid-template-columns:1fr 1fr}}@media (min-width:1100px){.steps{grid-template-columns:repeat(4,1fr)}}.steps li{border-left:1px solid var(--line-strong);padding:2px 0 2px 20px}.step-n{display:block;color:var(--accent-ink);margin-bottom:10px;font-size:0.85rem}.steps h3{margin-bottom:8px;font-size:1.125rem}.steps p{color:var(--text-2);font-size:0.975rem}.steps-detailed .step-more{margin-top:12px;color:var(--text-1)}@media (min-width:1100px){.steps-detailed{grid-template-columns:1fr 1fr;gap:44px 56px}}.deploy{margin-top:clamp(44px,6vw,64px);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,3vw,36px)}.deploy h3{font-size:var(--step-2)}.deploy-list{display:grid;gap:16px;margin-top:20px}@media (min-width:820px){.deploy-list{grid-template-columns:repeat(3,1fr)}}.deploy-list li{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.deploy-list span{color:var(--text-2);font-size:0.95rem}.deploy .fine{margin-top:20px}.post-list{display:grid;gap:20px}@media (min-width:760px){.post-list{grid-template-columns:1fr 1fr}}@media (min-width:1080px){.post-list{grid-template-columns:repeat(3,1fr)}}.post-list>li{display:flex}.post-item{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:24px}.post-item h2,.post-item h3{font-size:1.1875rem;line-height:1.3;letter-spacing:-0.015em;margin:12px 0 10px}.post-item h2 a,.post-item h3 a{color:var(--text-1);text-decoration:none}.post-item h2 a:hover,.post-item h3 a:hover{color:var(--accent-ink)}.post-item p:last-child{color:var(--text-2);font-size:0.95rem}.post-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--step--1);color:var(--text-3)}.post-meta span:first-child{color:var(--accent-ink);font-weight:600}.topic-line{margin-top:18px;color:var(--text-3);font-size:var(--step--1)}.topic-line span{color:var(--text-1)}.cta-band{padding-block:clamp(72px,9vw,120px);border-top:1px solid var(--line)}.cta-inner{max-width:760px;margin:0 auto;text-align:center}.cta-band h2{font-size:clamp(2rem,1.4rem + 2.6vw,3.25rem);letter-spacing:-0.035em}.cta-band p{margin:18px auto 0;color:var(--text-2);font-size:var(--step-1);max-width:58ch}.cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px}.site-footer{background:var(--paper);color:var(--text-2);border-top:1px solid var(--line);font-size:0.95rem}.footer-top{display:grid;gap:40px;padding:64px 0 44px}@media (min-width:960px){.footer-top{grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);gap:48px}}.footer-brand p{margin-top:16px;max-width:320px;color:var(--text-3);line-height:1.55}.footer-cols{display:grid;gap:28px 24px;grid-template-columns:1fr 1fr}@media (min-width:760px){.footer-cols{grid-template-columns:1.3fr 1fr 0.8fr 1.1fr}}.footer-cols h2{font-size:0.9rem;letter-spacing:0;margin-bottom:14px}.footer-cols ul{list-style:none;display:grid;gap:9px}.footer-cols a{color:var(--text-2);text-decoration:none}.footer-cols a:hover{color:var(--text-1)}.footer-legal{border-top:1px solid var(--line);padding:24px 0 36px;display:grid;gap:8px;font-size:0.8125rem;color:var(--text-3)}.covers{display:grid;gap:16px;margin:0}@media (min-width:700px){.covers{grid-template-columns:1fr 1fr}}@media (min-width:1080px){.covers{grid-template-columns:repeat(3,1fr)}}.covers>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--shadow-card)}.covers dt{font-weight:600;margin-bottom:6px}.covers dd{margin:0;color:var(--text-2);font-size:0.975rem}.situations{display:grid;gap:0;border-top:1px solid var(--line)}.situations li{padding:16px 0 16px 32px;border-bottom:1px solid var(--line);position:relative;font-size:var(--step-1);line-height:1.5}.situations li::before{content:'';position:absolute;left:2px;top:1.15em;width:16px;height:16px;border-radius:50%;background:var(--accent-soft);box-shadow:inset 0 0 0 5px var(--accent-soft),inset 0 0 0 16px var(--accent)}.check-list{list-style:none;display:grid;gap:10px;margin:14px 0 20px}.check-list li{padding-left:28px;position:relative}.check-list li::before{content:'';position:absolute;left:2px;top:0.5em;width:10px;height:6px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 20px}.tag-list li{font-size:var(--step--1);padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);background:var(--surface)}.status-note{margin-top:28px;max-width:72ch;background:var(--caution-bg);border:1px solid #f3dfb4;border-radius:var(--r);padding:14px 18px;color:var(--caution-text);font-size:0.95rem}.status-note strong{color:#3f2d06}.prose{max-width:68ch}.prose>* + *{margin-top:1.1em}.prose h2{font-size:var(--step-3);margin-top:2em}.prose h2:first-child{margin-top:0}.prose h3{margin-top:1.8em}.prose h2 + *,.prose h3 + *{margin-top:0.7em}.prose ul,.prose ol{padding-left:1.3em}.prose li + li{margin-top:0.45em}.prose li::marker{color:var(--text-3)}.prose p{color:var(--text-2)}.prose blockquote{margin-inline:0;padding-left:20px;border-left:3px solid var(--line-strong);color:var(--text-2)}.prose aside.note{background:var(--accent-soft);border:1px solid #dfe8ff;padding:14px 18px;border-radius:var(--r);font-size:0.95em}.prose table{width:100%;border-collapse:collapse;font-size:0.9rem;line-height:1.45;display:block;overflow-x:auto}.prose thead th{background:var(--paper);text-align:left;font-weight:600}.prose th,.prose td{border:1px solid var(--line);padding:10px 12px;vertical-align:top;min-width:140px}@media (min-width:900px){.prose table{display:table}}.side-links{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:24px;align-self:start}.side-title{font-size:var(--step-0);letter-spacing:-0.01em;margin:0 0 10px}.side-links ul + .side-title{margin-top:26px}.side-links ul{list-style:none;display:grid;gap:12px}.side-links a{font-weight:600;text-decoration:none}.side-links a:hover{text-decoration:underline}.side-links li span{display:block;color:var(--text-2);font-size:var(--step--1)}.related-grid{display:grid;gap:12px}@media (min-width:640px){.related-grid{grid-template-columns:1fr 1fr}}@media (min-width:1000px){.related-grid{grid-template-columns:repeat(3,1fr)}}.related-card{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);text-decoration:none;color:var(--text-1);transition:border-color 0.15s ease}.related-card:hover{border-color:#c7d6fb;color:var(--text-1)}.related-card:hover strong{color:var(--accent-ink)}.related-kind{font-size:var(--step--1);color:var(--text-3)}.related-card strong{line-height:1.35}.faq-list{margin-top:24px;display:grid;gap:10px}.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.faq summary{list-style:none;cursor:pointer;padding:18px 52px 18px 22px;font-weight:600;font-size:var(--step-0);position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'';position:absolute;right:24px;top:50%;width:9px;height:9px;margin-top:-7px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(45deg);transition:transform 0.2s ease}.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}.faq summary:hover{color:var(--accent-ink)}.faq-a{padding:0 22px 20px;color:var(--text-2);max-width:70ch}.service-rows{display:grid;gap:16px}.service-row{display:grid;gap:12px 48px;padding:clamp(24px,3vw,36px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}@media (min-width:900px){.service-row{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr)}}.service-row h2{font-size:var(--step-3)}.service-row h2 a{color:var(--text-1);text-decoration:none}.service-row h2 a:hover{color:var(--accent-ink)}.service-row p{color:var(--text-2)}.demo-feature{display:grid;gap:32px 56px;align-items:center}@media (min-width:960px){.demo-feature{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}}.demo-feature-text p{color:var(--text-2)}.demo-feature-text p + p,.demo-feature-text p + .link-arrow{margin-top:16px}.demo-feature-text h2 + p{margin-top:18px}.acc-list{display:grid;gap:clamp(48px,7vw,88px)}.acc-item{display:grid;gap:24px 56px;align-items:center}@media (min-width:900px){.acc-item{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.acc-item:nth-child(even) .acc-media{order:2}}.acc-media{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-window);border:1px solid var(--line);background:var(--ink)}.acc-media img{transition:transform 0.4s ease;width:100%}.acc-media:hover img{transform:scale(1.015)}.acc-duration{position:absolute;right:12px;bottom:12px;background:rgba(15,23,42,0.82);color:#fff;padding:3px 8px;border-radius:var(--r-sm)}.acc-line{display:inline-flex;align-items:center;gap:10px;color:var(--text-3);margin-bottom:12px}.acc-line span{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 18%,transparent)}.acc-text h2{font-size:var(--step-3)}.acc-text h2 a{color:var(--text-1);text-decoration:none}.acc-text h2 a:hover{color:var(--accent-ink)}.acc-text>p:not(.acc-line):not(.demo-tagline){color:var(--text-2)}.acc-text .fine{margin-top:12px}.acc-text .link-arrow{margin-top:18px}.demo-tagline{font-size:var(--step-1);color:var(--text-1);margin:12px 0 14px;line-height:1.45}.acc-hero .acc-line{margin-bottom:16px}.watch{padding-top:clamp(40px,5vw,64px)}.stills{list-style:none;display:grid;gap:32px 28px}@media (min-width:700px){.stills{grid-template-columns:1fr 1fr}}.stills figure{margin:0}.stills a{display:block;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);transition:box-shadow 0.15s ease}.stills img{width:100%}.stills a:hover{box-shadow:0 18px 40px -22px rgba(15,23,42,0.45)}.stills figcaption{margin-top:10px;font-size:var(--step--1);color:var(--text-2)}.lightbox{border:0;padding:0;background:var(--surface);color:var(--text-2);border-radius:var(--r-lg);max-width:min(1600px,94vw);width:100%;box-shadow:0 30px 80px rgba(2,6,23,0.4)}.lightbox::backdrop{background:rgba(15,23,42,0.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox img{width:100%;max-height:82vh;object-fit:contain;background:var(--paper)}.lightbox p{padding:12px 18px 16px;font-size:var(--step--1)}.lightbox-close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text-1);font-size:24px;line-height:1;cursor:pointer;box-shadow:var(--shadow-card)}.facts{margin:0;display:grid;border-top:1px solid var(--line)}.facts>div{display:grid;grid-template-columns:9rem 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.facts dt{color:var(--text-3)}.facts dd{margin:0}.page-hero{padding-block:clamp(40px,6vw,80px) clamp(44px,6vw,72px);border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2.25rem,1.6rem + 2.6vw,3.5rem);max-width:20em}.page-hero .lead{margin-top:22px}.page-hero .hero-actions{margin-top:32px}.crumbs{margin-bottom:26px;font-size:var(--step--1)}.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 0;color:var(--text-3)}.crumbs li + li::before{content:'/';margin:0 10px;color:var(--line-strong)}.crumbs a{color:var(--text-3);text-decoration:none}.crumbs a:hover{color:var(--accent-ink);text-decoration:underline}.crumbs [aria-current]{color:var(--text-1)}.byline{margin-top:20px;color:var(--text-3);font-size:var(--step--1)}.post-hero h1{max-width:24em;margin-top:14px}.post-grid{display:grid;gap:32px 72px;padding-block:clamp(40px,6vw,72px) var(--section)}@media (min-width:1040px){.post-grid{grid-template-columns:240px minmax(0,1fr)}}.post-aside{min-width:0}.toc{font-size:0.9rem}@media (min-width:1040px){.toc{position:sticky;top:calc(var(--header-h) + 28px)}}.toc h2{font-size:0.9rem;letter-spacing:0;margin-bottom:10px}.toc ol{list-style:none;display:grid;gap:2px}.toc a{display:block;padding:5px 0 5px 12px;border-left:2px solid var(--line);color:var(--text-3);text-decoration:none;line-height:1.35}.toc a:hover{color:var(--accent-ink);border-color:var(--line-strong)}.toc a[aria-current='true']{color:var(--text-1);border-color:var(--accent)}.article-body{font-size:1.125rem;line-height:1.75;max-width:70ch}.article-body p,.article-body li{color:#334155}.article-body h2{font-size:var(--step-3);line-height:1.2}.article-body h3{font-size:1.125rem}.article-body li + li{margin-top:0.5em}.post-faq{margin-top:3em;padding-top:0.2em;border-top:1px solid var(--line)}.post-faq h3{font-size:1.0625rem}.post-about{margin-top:3em;padding:24px;background:var(--accent-soft);border:1px solid #dfe8ff;border-radius:var(--r-lg);font-size:1rem;line-height:1.6}.post-about p{color:var(--text-2)}.post-about .btn{margin-top:16px}.contact-grid{display:grid;gap:48px 64px}@media (min-width:980px){.contact-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}}.tally-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:clamp(20px,3.5vw,36px)}.tally-wrap iframe{display:block;width:100%;border:0;min-height:520px}.contact-aside h2{font-size:var(--step-0);letter-spacing:-0.01em;margin-bottom:12px}.contact-aside h2:not(:first-child){margin-top:34px}.next-steps{padding-left:1.4em;display:grid;gap:10px;color:var(--text-2)}.next-steps li::marker{color:var(--accent-ink);font-family:var(--mono);font-size:0.9em}.contact-aside .check-list{color:var(--text-2)}.spectrum{margin:0;display:grid;grid-template-areas:'peaks' 'band' 'scale' 'caption'}.spectrum-band{grid-area:band;position:relative;height:clamp(56px,8vw,88px);border-radius:var(--r-sm);overflow:hidden;background-color:var(--surface);border:1px solid var(--line);background-image:linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:2.941% 100%}.spectrum .line{position:absolute;top:0;bottom:0;left:var(--x);width:calc(1px + 2px * var(--w));transform:translateX(-50%);background:var(--c);opacity:calc(0.55 + 0.45 * var(--w));animation:line-in 1100ms cubic-bezier(0.2,0.7,0.2,1) both;animation-delay:calc(200ms + var(--i) * 90ms)}@keyframes line-in{0%{opacity:0;transform:translateX(-50%) scaleY(0.04)}100%{transform:translateX(-50%) scaleY(1)}}.spectrum-scale{grid-area:scale;position:relative;height:28px;margin-top:4px}.spectrum-scale .tick{position:absolute;left:var(--x);top:0;width:1px;height:4px;background:var(--line-strong)}.spectrum-scale .tick.major{height:8px;background:var(--text-3)}.spectrum-scale b{position:absolute;top:11px;left:0;transform:translateX(-50%);font:400 11px/1 var(--mono);color:var(--text-3)}.spectrum-peaks{grid-area:peaks;position:relative;height:20px}.spectrum-peaks span{position:absolute;left:var(--x);bottom:5px;transform:translateX(-50%);font:400 11px/1 var(--mono);color:var(--text-3);white-space:nowrap}.spectrum figcaption{grid-area:caption;justify-self:end;font:400 11px/1 var(--mono);color:var(--text-3);margin-top:2px}@media (max-width:640px){.spectrum-peaks span:nth-child(2),.spectrum-peaks span:nth-child(4){display:none}}.spectrum-compact .spectrum-band{height:40px}.not-found{padding-block:clamp(64px,10vw,140px)}.not-found .spectrum{margin-top:48px}.nf-links{list-style:none;display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px;font-weight:600}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:180ms}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}@view-transition{navigation:none}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media print{.site-header,.site-footer,.cta-band,.post-aside,.player-start,.hero-actions,.post-about .btn{display:none !important}.article-body{max-width:none}}