/* Public pages share the product font and theme; nothing below styles workspaces. */
.public-site{--pub-bg:#f8f9fb;--pub-surface:rgba(255,255,255,.72);--pub-text:#20252d;--pub-muted:#637080;--pub-line:rgba(75,85,99,.16);--pub-soft:#eef1f5;--pub-accent:#2861aa;--pub-radius:22px;background:var(--pub-bg);color:var(--pub-text);font:14px/1.65 var(--font-ui,ui-sans-serif),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100dvh;isolation:isolate}
[data-theme=dark] .public-site{--pub-bg:#151719;--pub-surface:rgba(34,37,41,.8);--pub-text:#eef1f5;--pub-muted:#a9b1bc;--pub-line:rgba(180,191,208,.17);--pub-soft:#22262b;--pub-accent:#9fc5f5}
html:has(>.public-document),html:has(body>.public-site),body:has(>.public-site){margin:0;overscroll-behavior:none}body:has(>.public-site){background:#f8f9fb}[data-theme=dark] body:has(>.public-site){background:#151719}
.public-site *{box-sizing:border-box}.public-site a{color:inherit;text-decoration:none}.public-site button,.public-site summary{font:inherit}.public-site a:focus-visible,.public-site button:focus-visible,.public-site summary:focus-visible{outline:2px solid var(--pub-accent);outline-offset:4px}.public-site h1,.public-site h2,.public-site h3,.public-site p{margin:0}.public-site h1,.public-site h2,.public-site h3{line-height:1.16;letter-spacing:-.035em;color:var(--pub-text)}.public-site h1{font-size:clamp(34px,4.2vw,58px);font-weight:650}.public-site h2{font-size:clamp(25px,3vw,37px);font-weight:620}.public-site h3{font-size:21px;font-weight:600}.public-site p{color:var(--pub-muted)}.public-site p+p{margin-top:14px}.public-site .brand-dark{display:none}[data-theme=dark] .public-site .brand-dark{display:block}[data-theme=dark] .public-site .brand-light{display:none}
.public-header-space{position:sticky;top:0;z-index:60;padding:12px 24px 0;height:76px;flex-shrink:0}.public-header{max-width:1280px;margin:auto;border:1px solid var(--pub-line);border-radius:18px;background:var(--pub-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:box-shadow 180ms,background 180ms}.public-header.is-scrolled{box-shadow:0 5px 20px #0000000b}.public-nav{display:flex;align-items:center;padding:9px 14px;gap:26px;min-height:52px}.public-brand{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-weight:650;letter-spacing:-.035em;font-size:18px}.public-nav>nav{display:flex;align-items:center;gap:19px;margin:auto;font-size:12px;font-weight:500}.public-nav>nav>a,.public-menu>summary{padding:7px 0;cursor:pointer;white-space:nowrap}.public-nav>nav>a>span,.public-menu>summary>span{display:inline-block;transition:transform 180ms,color 180ms}.public-nav>nav>a:hover>span,.public-menu>summary:hover>span{transform:translateY(-1px);color:var(--pub-accent)}.public-menu{position:relative}.public-menu>summary{display:flex;align-items:center;gap:5px;list-style:none}.public-menu>summary::-webkit-details-marker{display:none}.public-menu svg{transition:transform 180ms}.public-menu[open] svg{transform:rotate(180deg)}.public-menu-panel{position:absolute;top:calc(100% + 13px);left:-18px;width:270px;max-height:min(520px,72dvh);overflow-y:auto;overscroll-behavior:none;padding:9px;border:1px solid var(--pub-line);border-radius:18px;background:var(--pub-bg);box-shadow:0 12px 34px #00000015;animation:public-menu-in 180ms cubic-bezier(.22,1,.36,1)}.public-menu-panel a{display:block;padding:9px 12px;border-radius:10px}.public-menu-panel a:hover,.public-menu-panel a:focus-visible{background:var(--pub-soft)}.public-menu-panel small{display:block;color:var(--pub-muted);font-size:11px;font-weight:400}.public-menu-panel .menu-heading{font-size:11px;color:var(--pub-muted);border-bottom:1px solid var(--pub-line);border-radius:0;margin-bottom:4px;padding-bottom:12px}.public-nav-actions{display:flex;align-items:center;gap:12px}.public-theme{display:grid;place-items:center;border:0;background:transparent;color:var(--pub-muted);width:28px;height:30px;border-radius:9px;cursor:pointer}.public-theme:hover{background:var(--pub-soft)}.public-skip{position:absolute;top:-100px}.public-skip:focus{top:10px;left:25px;background:var(--pub-bg);padding:12px;z-index:100}.public-site .public-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--pub-text);color:var(--pub-bg);border:1px solid transparent;border-radius:12px;padding:11px 19px;font-size:13px;font-weight:550;white-space:nowrap;transition:opacity 180ms,background 180ms}.public-site .public-button:hover{opacity:.85}.public-site .public-button:active{opacity:.72}.public-site .public-button.small{padding:8px 13px;font-size:12px;border-radius:10px}.public-site .public-link{color:var(--pub-accent);font-size:13px;font-weight:550;display:inline-block}.public-link:hover{text-decoration:underline;text-underline-offset:4px}
.public-main{max-width:1180px;margin:auto;padding:0 40px}.public-hero{padding:76px 0 62px}.home-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:38px;align-items:center;min-height:440px}.home-hero h1{font-size:clamp(34px,3.6vw,48px)}.public-site h1>span{color:var(--pub-muted)}.public-site .public-eyebrow{font-size:10px;font-weight:650;letter-spacing:.13em;color:var(--pub-muted);margin-bottom:16px}.public-intro{font-size:17px;line-height:1.7;max-width:680px;margin-top:22px!important}.public-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:25px}.public-site .public-note{font-size:11px;margin-top:15px;max-width:650px}.product-media{margin:0;min-width:0}.product-media img,.product-media video{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;object-position:top;border:1px solid var(--pub-line);border-radius:14px;background:var(--pub-soft)}.product-media figcaption{color:var(--pub-muted);font-size:10px;padding:9px 4px 0;line-height:1.5}.public-section{padding:54px 0;border-top:1px solid var(--pub-line)}.section-intro{max-width:640px;margin-bottom:28px}.section-intro p:last-child{margin-top:13px}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product-card{display:flex;flex-direction:column;gap:24px;border-radius:var(--pub-radius);padding:28px;background:var(--pub-surface);border:1px solid var(--pub-line);transition:background 180ms}.product-card:hover{background:var(--pub-soft)}.product-card p{font-size:13px;margin-top:12px}.product-card .public-link{margin-top:15px}.product-card-lead{grid-column:1/-1;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:40px}.product-card .product-media{margin-top:auto}.product-card-lead .product-media{margin:0}.product-card .product-media img{border-radius:10px}.rationale,.demo-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px}.rationale .public-link,.demo-section .public-link{margin-top:18px;margin-right:24px}.demo-section h2{margin-bottom:18px}.tutorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.tutorial-card{display:block}.tutorial-card>div{padding:17px 2px}.tutorial-card h3{font-size:21px}.tutorial-card p{font-size:12px;margin-top:12px}.tutorial-card .public-link{margin-top:15px}.tutorial-card img{transition:filter 180ms}.tutorial-card:hover img{filter:brightness(1.03)}.section-more{margin-top:22px}.home-reference{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}.home-reference p{margin-top:16px}.reference-links{margin-top:20px;display:grid;gap:8px}.reference-links a{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--pub-line);font-size:13px}.home-reference .public-link{margin-top:18px}.education-callout{padding:40px;border:1px solid var(--pub-line);background:var(--pub-surface);border-radius:var(--pub-radius);margin:20px 0 50px}.education-callout p:not(.public-eyebrow){max-width:600px;margin:16px 0}.final-callout{text-align:center;padding:48px 0 65px}.final-callout h2{margin-bottom:24px}.final-callout a+a{margin-left:22px}.public-footer{max-width:1180px;margin:auto;padding:38px 40px 25px;border-top:1px solid var(--pub-line);display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px}.public-footer p{font-size:12px;margin-top:15px}.public-footer nav{display:flex;flex-direction:column;gap:10px;font-size:12px}.public-footer nav a:hover{color:var(--pub-accent)}.public-footer .public-legal{grid-column:1/-1;font-size:10px;border-top:1px solid var(--pub-line);padding-top:20px;margin-top:15px}
.public-breadcrumb{display:flex;gap:8px;font-size:11px;color:var(--pub-muted);padding-top:32px}.public-breadcrumb a:hover{color:var(--pub-accent)}.feature-hero{padding:35px 0 40px;max-width:850px}.feature-hero h1{max-width:830px}.feature-wide{margin-bottom:44px}.feature-sections{display:grid;grid-template-columns:1fr 1fr;gap:36px 45px;padding:44px 0}.feature-sections h2{font-size:24px;margin-bottom:15px}.feature-sections p{font-size:14px}.feature-workflow{display:grid;grid-template-columns:1fr 2fr;gap:35px}.feature-workflow ol{margin:0;padding-left:22px;color:var(--pub-muted)}.feature-workflow li{padding-left:10px;margin-bottom:15px}.public-faq details{border-bottom:1px solid var(--pub-line);padding:16px 0}.public-faq summary{cursor:pointer;font-weight:550}.public-faq p{padding:13px 20px 0 0;max-width:850px}.public-faq h2{margin-bottom:14px}.related-links{display:flex;gap:14px 30px;flex-wrap:wrap;margin-top:20px}.public-article{max-width:850px}.public-article section{margin-bottom:35px}.public-article h2{font-size:25px;margin-bottom:14px}.tutorial-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:50px;margin:35px 0}.tutorial-aside h2{font-size:20px;margin-bottom:18px}.tutorial-aside ul{padding-left:18px;font-size:13px;color:var(--pub-muted)}.tutorial-aside li{margin-bottom:10px}.tutorial-body h2{font-size:27px;margin:0 0 20px}.tutorial-body h3{font-size:19px;margin-bottom:12px}.tutorial-body section{margin-bottom:40px}.tutorial-body ol{padding-left:22px}.tutorial-body li{padding-left:6px;margin-bottom:22px}.public-table{border-collapse:separate;border-spacing:0;text-align:left;width:100%;min-width:38rem;font-size:12px}.public-table td,.public-table th{padding:12px 15px;border-bottom:1px solid var(--pub-line);vertical-align:top}.public-table th{font-weight:600;background:var(--pub-soft);color:var(--pub-text)}.public-table td{color:var(--pub-muted)}.public-table tr:last-child td{border-bottom:0}.public-code{border:1px solid var(--pub-line);background:var(--pub-surface);border-radius:15px;overflow:hidden;margin:20px 0}.public-code header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--pub-line);font-size:11px}.public-code button{border:1px solid var(--pub-line);border-radius:8px;background:var(--pub-soft);color:var(--pub-text);padding:4px 10px;cursor:pointer}.public-code pre{margin:0;padding:20px;overflow:auto;overscroll-behavior:none;font:12px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2}.public-code code{font:inherit}.public-facts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--pub-line);border-radius:18px;padding:24px;gap:25px;margin:20px 0 40px;background:var(--pub-surface)}.public-facts dt{font-size:10px;color:var(--pub-muted);margin-bottom:6px}.public-facts dd{margin:0;font-size:15px;font-weight:550}.board-grid,.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-bottom:45px}.board-card,.resource-card{padding:26px;border:1px solid var(--pub-line);border-radius:18px;background:var(--pub-surface)}.board-card h2,.resource-card h2{font-size:22px;margin-bottom:15px}.board-card p,.resource-card p{font-size:13px;margin-bottom:18px}.board-card .board-spec{font:11px ui-monospace,monospace;line-height:1.8}.library-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:22px 0 45px}.library-card{padding:24px;border:1px solid var(--pub-line);border-radius:18px;background:var(--pub-surface)}.library-card h2{font-size:20px}.library-card h2 small{font-size:11px;color:var(--pub-muted);font-weight:400;letter-spacing:0;margin-left:8px}.library-card p{font-size:12px;margin-top:12px}.library-card details{margin-top:14px;font-size:12px}.library-card summary{cursor:pointer;color:var(--pub-accent)}.library-card ul{font-size:11px;color:var(--pub-muted);padding-left:18px}.library-search{display:block;max-width:430px;margin:20px 0}.library-search input{width:100%;padding:12px 14px;border:1px solid var(--pub-line);border-radius:12px;color:var(--pub-text);background:var(--pub-surface);font:inherit}.public-site [hidden]{display:none!important}.feature-layout-terminal .feature-wide{max-width:980px}.public-site .inline-code{font-family:ui-monospace,monospace;font-size:12px}
@keyframes public-menu-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}/* Native root snapshots suppress hit testing during navigation. Use the live DOM reveal instead. */
@view-transition{navigation:none}
@media(min-width:1600px){.public-main,.public-footer{max-width:1260px}}
@media(max-width:1050px){.public-nav{gap:14px}.public-nav>nav{gap:12px;font-size:11px}.public-nav .public-brand{font-size:16px}.public-nav-actions{gap:6px}.home-hero{gap:24px}.public-main{padding:0 28px}.home-hero h1{font-size:37px}.public-header-space{padding-left:15px;padding-right:15px}.public-menu-panel{width:240px}.rationale,.demo-section,.home-reference{gap:35px}}
@media(max-width:800px){.public-header-space{height:auto;padding-top:8px;padding-bottom:8px}.public-nav{flex-wrap:wrap;padding:10px 12px;gap:8px 15px}.public-nav>nav{order:3;width:100%;justify-content:space-between;gap:8px}.public-nav-actions{margin-left:auto}.public-menu-panel{position:fixed;top:110px;left:16px;right:16px;width:auto;max-height:65dvh}.public-hero{padding-top:38px}.home-hero{grid-template-columns:1fr}.home-hero h1{font-size:42px}.home-hero>.product-media{max-width:650px;margin-top:16px}.public-intro{font-size:16px}.product-card-lead{grid-template-columns:1fr}.tutorial-grid{grid-template-columns:1fr}.tutorial-card{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.tutorial-card>div{padding:2px}.tutorial-layout{grid-template-columns:1fr;gap:15px}.tutorial-aside{max-width:600px}.public-facts{grid-template-columns:1fr 1fr}.board-grid,.resource-grid{grid-template-columns:1fr}.public-section{padding:35px 0}.education-callout{padding:28px}.public-footer{padding:30px 28px}.feature-workflow{grid-template-columns:1fr}}
@media(max-width:520px){.public-main{padding:0 20px}.public-nav>nav{font-size:10px;gap:0 5px;flex-wrap:wrap}.public-menu>summary{gap:3px}.home-hero h1{font-size:35px}.product-grid,.feature-sections,.rationale,.demo-section,.home-reference,.library-list{grid-template-columns:1fr}.product-card{padding:22px}.tutorial-card{display:block}.tutorial-card>div{padding-top:14px}.public-footer{grid-template-columns:1fr 1fr;padding:28px 20px}.public-footer>div{grid-column:1/-1}.public-actions{gap:14px}.public-table td,.public-table th{padding:10px}.public-code pre{padding:14px;font-size:11px}.final-callout a+a{display:block;margin:17px 0 0}.public-facts{padding:18px}.public-hero h1{font-size:35px}}
@media(prefers-reduced-motion:reduce){.public-site *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.public-nav>nav>a:hover>span,.public-menu>summary:hover>span{transform:none}::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Rounded, persistent navigation states; shared geometry for pointer and keyboard. */
.public-nav>nav>a,.public-menu>summary{border-radius:12px;padding:7px 8px;transition:background 180ms,color 180ms}
.public-nav>nav{gap:8px}
.public-nav>nav>a:hover,.public-nav>nav>a[aria-current],.public-menu>summary:hover,.public-menu[open]>summary,.public-menu[data-active]>summary{background:var(--pub-soft);color:var(--pub-text)}
.public-site .public-nav :is(a,summary,button):focus-visible{outline:2px solid var(--pub-accent);outline-offset:2px;border-radius:12px}
.public-menu-panel{background:var(--pub-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);top:calc(100% + 8px);left:0}
.public-menu-panel a{animation:public-menu-in 180ms ease-out both}
.public-menu-panel a:nth-child(2){animation-delay:12ms}.public-menu-panel a:nth-child(3){animation-delay:24ms}.public-menu-panel a:nth-child(n+4){animation-delay:36ms}




@media(max-width:1050px){.public-nav>nav{gap:4px}}
@media(max-width:520px){.public-nav>nav{gap:0}.public-nav>nav>a,.public-menu>summary{padding:7px 4px}}
@media(prefers-reduced-motion:reduce){.public-site *{animation:none!important;transition:none!important}}
/* Cross-document snapshots must never intercept clicks on the arriving page. */
::view-transition,::view-transition-group(root),::view-transition-image-pair(root),::view-transition-old(root),::view-transition-new(root){pointer-events:none}

/* Reference tables share one boundary. Rows stay in document flow; only a
   genuinely constrained parent should limit height. Never trap vertical input
   in a horizontal-only scroller: it must reach the enclosing page/dialog. */
.public-main,.tutorial-body{min-width:0;min-height:0}
.public-table-wrap{
  min-width:0;min-height:0;max-width:100%;overflow:auto;
  overscroll-behavior-x:none;overscroll-behavior-y:auto;
  margin:22px 0;border:1px solid var(--pub-line);border-radius:14px;
  /* Local covers hide the subtle edge cues at the corresponding endpoints. */
  background:
    linear-gradient(to right,var(--pub-bg) 30%,transparent) left/28px 100% local,
    linear-gradient(to left,var(--pub-bg) 30%,transparent) right/28px 100% local,
    linear-gradient(to right,var(--pub-line),transparent) left/12px 100% scroll,
    linear-gradient(to left,var(--pub-line),transparent) right/12px 100% scroll;
  background-repeat:no-repeat;
}
.public-table-wrap:focus-visible{outline:2px solid var(--pub-accent);outline-offset:3px}
/* Useful when this shared table is placed inside an already-constrained UI.
   No fixed height is imposed on normal reference pages. Opaque header avoids
   overlapping text; no sticky first column obscures narrow screens. */
.public-table thead th{position:sticky;top:0;z-index:1}
.public-site{--public-nav-offset:92px}
.public-main [id]{scroll-margin-top:var(--public-nav-offset)}
.public-facts>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:800px){.public-site{--public-nav-offset:140px}}

/* Let the existing public links wrap only when their natural width cannot fit.
   The measured navigation offset keeps board anchors clear of the extra row. */
@media(max-width:380px){
  .public-nav>nav{flex-wrap:wrap;justify-content:flex-start;row-gap:4px}
  .public-site{--public-nav-offset:180px}
}

/* Guided project library: public, progressively enhanced, and theme-token based. */
.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.hub-card{min-width:0;display:flex;flex-direction:column;background:var(--pub-surface);border:1px solid var(--pub-line);border-radius:18px;overflow:hidden;transition:transform 180ms,background 180ms}.hub-card:hover{background:var(--pub-soft)}.hub-card-image{display:block;border-radius:17px 17px 0 0;overflow:hidden}.hub-card-image .product-media img{border:0;border-radius:0;aspect-ratio:8/5;object-fit:contain;background:#f4f6f7}.hub-card-body{display:flex;flex-direction:column;flex:1;padding:18px;gap:10px}.hub-card-body h3{font-size:20px;line-height:1.2}.hub-card-body p{font-size:12px;margin:0!important}.hub-card-body .hub-category{font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--pub-accent)}.hub-card-body .hub-meta,.hub-card-body .hub-parts{font-size:11px}.hub-card-body .hub-parts{margin-top:auto!important;padding-top:5px}.hub-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding-top:8px}.hub-card-actions>a:last-child{font-size:11px;border:1px solid var(--pub-line);padding:5px 9px;border-radius:9px}.hub-card-actions>a:last-child:hover{background:var(--pub-surface)}.hub-featured{padding:0 0 42px}.hub-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin:0 0 22px}.hub-section-heading h2{font-size:27px}.hub-section-heading p{font-size:12px}.hub-library{padding:35px 0 50px;border-top:1px solid var(--pub-line)}.hub-discovery{margin-bottom:24px}.hub-search{display:block;max-width:540px;font-size:12px;font-weight:550}.hub-search input{display:block;width:100%;margin-top:7px;padding:11px 14px;border:1px solid var(--pub-line);border-radius:12px;background:var(--pub-surface);color:var(--pub-text);font:inherit}.hub-search input:focus-visible{outline:2px solid var(--pub-accent);outline-offset:3px}.hub-filter{border:0;padding:0;margin:16px 0;display:flex;gap:7px;flex-wrap:wrap}.hub-filter legend{font-size:11px;color:var(--pub-muted);margin-bottom:8px}.hub-filter button,.hub-result-line button{border:1px solid var(--pub-line);border-radius:10px;padding:6px 11px;background:var(--pub-surface);color:var(--pub-text);font-size:11px;cursor:pointer;transition:background 180ms,border-color 180ms}.hub-filter button:hover{background:var(--pub-soft)}.hub-filter button[aria-pressed=true],.hub-filter button[aria-pressed=true]:hover{background:color-mix(in srgb,var(--pub-accent) 12%,var(--pub-bg));border-color:color-mix(in srgb,var(--pub-accent) 55%,var(--pub-line));color:var(--pub-accent)}.hub-result-line{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--pub-muted)}.hub-result-line>span{margin-left:auto}.hub-empty{padding:35px 0}.hub-support-note{padding-top:22px}.hub-card :is(a,button):focus-visible{outline-offset:-3px;border-radius:10px}
@media(max-width:1000px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-section-heading{align-items:start;flex-direction:column;gap:8px}}
@media(max-width:600px){.hub-grid{grid-template-columns:minmax(0,1fr)}.hub-card-body{padding:17px}.hub-result-line>span{margin-left:0;width:100%}}
@media(prefers-reduced-motion:reduce){.hub-card:hover{transform:none}}

/* Motion changes pixels, never dimensions. Text is complete in initial HTML. */

.home-hero h1 .hero-line{display:inline-block;vertical-align:baseline}
.home-hero h1 .hero-line-first{color:var(--pub-text)}
.product-media-motion img{transition:transform 320ms cubic-bezier(.22,1,.36,1);transform-origin:center}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .hub-card:hover{transform:translateY(-2px)}
 .product-media-motion:hover img{transform:scale(1.025)}
 [data-theme=dark] .hub-card:hover{transform:translateY(-2px)}
 .hub-card .product-media-motion:hover img,.hub-card:hover .product-media-motion img{transform:scale(1.025);box-shadow:none}
}
/* Keep the established fast page entrance. No click interception or route delay. */
@media(prefers-reduced-motion:reduce){.home-hero .hero-line{clip-path:none}.product-media-motion img{transform:none;box-shadow:none}}

/* Public product storytelling; never applied to the working tool surfaces. */
.media-sequence{min-width:0}
.sequence-stage{display:grid;min-width:0}
.sequence-slide{grid-area:1/1;min-width:0}
.sequence-slide .product-media figcaption{min-height:3.9em}
.sequence-controls{display:flex;align-items:center;gap:12px;min-height:42px;visibility:hidden}
.media-sequence[data-enhanced] .sequence-controls{visibility:visible}
.sequence-controls [role=tablist]{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin;padding:5px}
.public-site .sequence-controls button{border:0;border-radius:10px;background:transparent;color:var(--pub-muted);font:inherit;font-size:11px;cursor:pointer;padding:7px 10px;white-space:nowrap;transition:background 180ms,color 180ms;flex-shrink:0}
.public-site .sequence-controls button:hover,.public-site .sequence-controls button[aria-selected=true]{color:var(--pub-text);background:var(--pub-soft)}
.public-site .sequence-controls button[aria-selected=true]{font-weight:600}
.public-site .sequence-controls button:focus-visible{outline:2px solid var(--pub-accent);outline-offset:1px}
.public-site .sequence-controls button:disabled{cursor:default;opacity:.65}
.sequence-track{display:block;height:2px;border-radius:2px;background:var(--pub-line);margin-top:5px;overflow:hidden}
.sequence-track>span{display:block;height:100%;background:var(--pub-muted);transform:scaleX(0);transform-origin:left}
[aria-selected=true] .sequence-track>span{transform:scaleX(1)}
.product-story{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:start;margin:36px 0}
.story-media{position:sticky;top:var(--public-nav-offset,96px);min-width:0}
.story-copy{min-width:0}
.story-copy>section{padding:32px 0;min-height:45vh;scroll-margin-top:var(--public-nav-offset,96px)}
.story-copy h2{font-size:clamp(25px,2.7vw,34px);margin:12px 0 18px}
.story-copy .public-eyebrow{font-size:10px}
.product-section-nav{display:flex;flex-wrap:wrap;gap:8px 20px;margin:25px 0;font-size:11px;color:var(--pub-muted)}
.product-section-nav a{border-radius:8px;padding:4px 0;text-decoration:underline;text-decoration-color:var(--pub-line);text-underline-offset:5px}
.product-section-nav a:hover{color:var(--pub-text);text-decoration-color:currentColor}
.feature-sections>section{scroll-margin-top:var(--public-nav-offset,96px)}
.public-header.is-scrolled{background:var(--pub-bg)}
@media(max-width:800px),(max-height:650px){.product-story{display:block}.story-media{position:static}.story-copy>section{min-height:0;padding:26px 0}.sequence-controls{gap:3px}.public-site .sequence-controls button{padding:7px 8px}}
@media(prefers-reduced-motion:reduce){.story-media{position:static}.story-copy>section{min-height:0}.sequence-slide{transform:none}}

.public-nav{transition:padding 220ms cubic-bezier(.22,1,.36,1)}
.public-header.is-scrolled .public-nav{padding-top:7px;padding-bottom:7px;min-height:50px}
.product-media img,.product-media video{object-fit:contain}
.sequence-stage{isolation:isolate}
.sequence-slide{position:relative;align-self:start}
.sequence-controls [role=tablist]>button{flex:1;text-align:left}
.sequence-track>span{background:var(--pub-accent)}
.media-sequence{touch-action:pan-y pinch-zoom}
.story-copy>section{transition:color 240ms}
.story-copy [data-story-active]>.public-eyebrow{color:var(--pub-accent)}
@media(min-width:801px) and (min-height:651px){
 .story-media .sequence-stage{max-width:min(100%,calc((100dvh - var(--public-nav-offset,96px) - 138px)*1.45));margin-inline:auto}
}
@media(max-width:800px),(max-height:650px){
 .story-media .sequence-stage{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
 .public-main,.public-site *{animation:none!important;transition:none!important}
 .product-story{display:block}.story-media{position:static}.story-copy>section{min-height:0!important}
 .product-media-motion:hover img{transform:none!important}
}

/* Reference tools reuse the established type, color, spacing and focus system. */
.reference-controls{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:22px 0 12px}
.reference-controls label{display:grid;gap:6px;font-size:12px;color:var(--pub-muted)}
.reference-controls input,.reference-controls select,.reference-controls button,.pin-select,[data-analytics-preferences] button{font:inherit;color:var(--pub-text);background:var(--pub-surface);border:1px solid var(--pub-line);border-radius:9px;padding:8px 12px}
.reference-controls button,.pin-select,[data-analytics-preferences] button{cursor:pointer}
.pin-select{font-size:12px;padding:5px 9px;white-space:nowrap}
.pin-select[aria-pressed=true]{color:var(--pub-accent);background:var(--pub-soft)}
[data-pin-count],[data-pin-selection]{font-size:12px;margin:10px 0}
.board-signal-diagram{max-width:960px}
.board-signal-diagram img{aspect-ratio:960/650;height:auto;object-fit:contain}
.public-article ul,.public-article ol{color:var(--pub-muted);padding-left:23px}
.public-article li{margin-bottom:14px}
.guide-steps h3{margin:14px 0 10px}
.public-article>section{padding:18px 0}
.public-note code{overflow-wrap:anywhere;font-size:10px}
.public-section>p>code,.public-article code{overflow-wrap:anywhere}
.education-callout>.public-link{margin-right:18px;margin-bottom:6px}
[data-analytics-preferences] button{margin:10px 12px 10px 0;font-size:12px}
@media(max-width:520px){.reference-controls>label{width:100%}.reference-controls input,.reference-controls select{width:100%}.board-signal-diagram{overflow:auto}.public-facts{overflow-wrap:anywhere}}
/* The publication uses the product's existing tokens; no workspace styles. */
.feature-layout-blog-index .feature-hero h1{white-space:pre-line;max-width:850px;font-size:clamp(40px,6vw,72px);line-height:1.06;letter-spacing:-.045em}.feature-layout-blog-post .feature-hero{max-width:950px;margin:auto}.feature-layout-blog-post .feature-hero h1{font-size:clamp(34px,4.7vw,58px);line-height:1.1;letter-spacing:-.035em}.blog-cover{display:block;width:100%;height:auto;border-radius:18px;border:1px solid var(--pub-line);background:#f4f7f8}.blog-featured{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:42px;padding:0 0 54px;border-bottom:1px solid var(--pub-line)}.blog-featured h2{font-size:34px;letter-spacing:-.025em;line-height:1.15;margin:14px 0}.blog-featured p{color:var(--pub-muted);line-height:1.65}.blog-featured .public-link{display:block;margin-top:20px}.blog-kicker{font-size:11px!important;letter-spacing:.055em;color:var(--pub-muted);line-height:1.5}.blog-kicker span{padding:0 7px}.blog-discovery{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:42px 0 22px;align-items:end}.blog-discovery h2,.blog-list-heading h2{font-size:24px;letter-spacing:-.025em}.blog-discovery p{font-size:13px;max-width:510px;line-height:1.65;color:var(--pub-muted);margin-top:12px}.public-site .blog-discovery p a,.public-site .blog-editorial-note a,.public-site .blog-prose a{color:var(--pub-accent);text-decoration:underline;text-underline-offset:3px}.blog-tools{display:grid;grid-template-columns:1.5fr 1fr;gap:12px}.blog-tools label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--pub-muted)}.blog-tools input,.blog-tools select{font:inherit;font-size:13px;width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid var(--pub-line);border-radius:10px;color:var(--pub-text);background:var(--pub-surface)}.blog-topics{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 40px;font-size:12px}.blog-topics>span{color:var(--pub-muted);margin-right:6px}.blog-topics a{padding:7px 11px;border:1px solid var(--pub-line);border-radius:30px}.blog-list-heading{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;border-bottom:1px solid var(--pub-line)}.blog-list-heading p{font-size:12px;color:var(--pub-muted)}.blog-reading-list{display:grid;grid-template-columns:1fr 1fr;column-gap:38px}.blog-reading-list article{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;position:relative;padding:28px 0 32px;border-bottom:1px solid var(--pub-line);align-items:start}.blog-row-image img{display:block;width:100%;height:auto;border:1px solid var(--pub-line);border-radius:8px}.blog-reading-list h3{font-size:19px;line-height:1.3;letter-spacing:-.02em;margin:8px 0 10px}.blog-reading-list article>div>p:not(.blog-kicker){font-size:12px;line-height:1.65;color:var(--pub-muted)}.blog-row-number{display:block;margin-top:12px;font:10px ui-monospace,monospace;color:var(--pub-muted)}.blog-editorial-note,.blog-project-matches{padding:40px 0;border-bottom:1px solid var(--pub-line)}.blog-editorial-note h2,.blog-project-matches h2{font-size:22px;margin-bottom:14px}.blog-editorial-note p,.blog-project-matches p{font-size:13px;line-height:1.8;color:var(--pub-muted);max-width:800px;margin-top:10px}.blog-byline{display:flex;flex-wrap:wrap;gap:10px 24px;max-width:950px;margin:0 auto 24px;font-size:11px;color:var(--pub-muted)}.blog-hero-figure{margin:0 0 48px}.blog-hero-figure figcaption{font-size:11px;color:var(--pub-muted);margin-top:12px;text-align:center}.blog-article-layout{display:grid;grid-template-columns:215px minmax(0,750px);gap:60px;justify-content:center;align-items:start}.blog-contents{position:sticky;top:105px;font-size:12px;padding-top:6px}.blog-contents nav{display:flex;flex-direction:column;gap:13px;margin:18px 0 25px;line-height:1.5}.blog-contents nav a{color:var(--pub-muted)}.blog-contents nav a:hover{color:var(--pub-text)}.blog-prose{font-size:16px;line-height:1.85;min-width:0}.blog-prose p{margin:0 0 22px}.blog-prose h2{font-size:27px;line-height:1.25;letter-spacing:-.025em;margin:50px 0 19px;scroll-margin-top:110px}.blog-prose h2:first-of-type{margin-top:30px}.blog-prose :not(pre)>code{font-size:.9em;background:var(--pub-soft);padding:2px 5px;border-radius:4px}.blog-prose pre{font-size:13px;line-height:1.7;overflow:auto;max-height:650px;overscroll-behavior:auto;tab-size:2}.blog-prose .public-code{margin:26px 0}.blog-prose .public-code header{font-size:11px}.blog-test-note{padding:18px 20px;border-left:3px solid var(--pub-accent);background:var(--pub-soft);font-size:12px;line-height:1.7;color:var(--pub-muted)}.blog-table{overflow:auto;max-width:100%}.blog-references{border-top:1px solid var(--pub-line);margin-top:42px;padding-top:8px;font-size:13px}.blog-references ul{padding-left:20px}.blog-related{margin-top:42px;padding-bottom:15px}.blog-related>a{display:grid;grid-template-columns:1fr auto;gap:7px 12px;border-top:1px solid var(--pub-line);padding:19px 0;text-decoration:none!important}.blog-related>a>span:first-child{grid-column:1 / -1;font-size:10px;letter-spacing:.06em;color:var(--pub-muted)}.blog-related strong{font-size:17px;line-height:1.4;font-weight:550}.blog-related>a>span:last-child{grid-column:2;grid-row:2}.feature-layout-blog-post .feature-workflow,.feature-layout-blog-index .feature-workflow{display:none}
@media(max-width:1000px){.blog-reading-list{grid-template-columns:1fr}.blog-reading-list article{grid-template-columns:200px minmax(0,1fr)}.blog-article-layout{grid-template-columns:170px minmax(0,1fr);gap:32px}.blog-featured{gap:26px}.blog-featured h2{font-size:28px}.blog-tools{grid-template-columns:1fr}.blog-prose{font-size:15px}}
@media(max-width:700px){.blog-featured{grid-template-columns:1fr;gap:22px;padding-bottom:30px}.blog-featured h2{font-size:29px}.blog-discovery{grid-template-columns:1fr;gap:22px;padding-top:30px}.blog-tools{grid-template-columns:1fr}.blog-reading-list article{grid-template-columns:104px minmax(0,1fr);gap:16px}.blog-reading-list h3{font-size:18px}.blog-article-layout{display:block}.blog-contents{position:static;padding:18px 0 24px;border-block:1px solid var(--pub-line);margin-bottom:24px}.blog-contents nav{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.blog-hero-figure{margin-bottom:26px}.blog-prose h2{font-size:25px}.blog-prose pre{font-size:12px}.blog-byline{gap:8px 16px}.blog-topics{gap:8px}.blog-test-note{padding:14px}.public-breadcrumb{flex-wrap:wrap;line-height:1.6}.blog-hero-figure figcaption{text-align:left}}
.blog-demo{margin:40px 0;padding:0 0 25px;border-block:1px solid var(--pub-line)}.blog-demo p{font-size:14px;color:var(--pub-muted)}.blog-demo iframe{width:100%;height:680px;border:1px solid var(--pub-line);border-radius:12px;background:var(--pub-bg)}.blog-demo [data-blog-demo-close]{margin:16px 0 10px;border:1px solid var(--pub-line);padding:8px 12px;border-radius:8px;background:var(--pub-surface);color:var(--pub-text);cursor:pointer}.blog-demo button:disabled{opacity:.5;cursor:default}
.blog-hero-figure figcaption a{color:var(--pub-accent);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

/* One entrance sequence. Complete semantic HTML is never rewritten. */
@keyframes public-enter-heading{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes public-enter-copy{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
/* Keep the hero's LCP media paintable during its short settling motion. */
@keyframes public-enter-media{from{opacity:.8;transform:translateX(14px) scale(.985)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes public-enter-stacked-media{from{opacity:.8;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes public-enter-action{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .public-main>.public-hero h1{animation:public-enter-heading 480ms cubic-bezier(.22,1,.36,1) both}
 .public-main>.public-hero .public-intro{animation:public-enter-copy 260ms 100ms cubic-bezier(.22,1,.36,1) both}
 .home-hero>:is(.product-media,.media-sequence){animation:public-enter-media 380ms 140ms cubic-bezier(.22,1,.36,1) both}
 .feature-hero+:is(.feature-wide,.product-media){animation:public-enter-stacked-media 320ms 140ms cubic-bezier(.22,1,.36,1) both}
 .public-main>.public-hero .public-actions>*{animation:public-enter-action 220ms 330ms cubic-bezier(.22,1,.36,1) both}
 .public-main>.public-hero .public-actions>:nth-child(2){animation-delay:390ms}
 .public-main>.public-hero .public-actions>:nth-child(n+3){animation-delay:450ms}
 .public-main>.public-hero .public-actions>:focus-visible{animation:none}
}
@media(prefers-reduced-motion:no-preference) and (max-width:800px){
 .public-main>.public-hero h1{animation-duration:360ms}
 .public-main>.public-hero .public-intro{animation-duration:240ms;animation-delay:80ms}
 .home-hero>:is(.product-media,.media-sequence){animation-name:public-enter-stacked-media;animation-duration:300ms}
 .public-main>.public-hero .public-actions>*{animation-duration:200ms;animation-delay:300ms}
 .public-main>.public-hero .public-actions>:nth-child(2){animation-delay:360ms}
}
