@charset "UTF-8";
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");
:root{--paper:#fff;--ink:#252b32;--muted:#606973;--line:#e6e9ec;--soft:#f5f7f8;--accent:#ffd367;--accent-soft:#fff8e4;--coral:#ef826e;--blue:#b9def4;--green:#a9ca96;--code:#1f2630;--radius:12px;--sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif;--mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;--header:72px;--page-gutter:clamp(24px,3.5vw,64px)}
*{box-sizing:border-box}html{scroll-padding-top:100px;-webkit-text-size-adjust:100%;scrollbar-gutter:stable;-webkit-tap-highlight-color:transparent}body{margin:0;color:var(--ink);background:var(--paper);font:400 1rem/1.75 var(--sans);overflow-wrap:break-word}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:650;line-height:1.35;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(2.3rem,4vw,3.15rem)}h2{font-size:1.65rem}h3{font-size:1.125rem}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,select,summary{cursor:pointer}button{background:none;border:0}button:disabled{cursor:wait;opacity:.6}a,button,summary{touch-action:manipulation}button,a,input,select,textarea,summary,[tabindex]{outline-offset:4px}*:focus-visible{outline:3px solid #195ab3}::selection{background:#ffebad;color:var(--ink)}img{display:block;max-width:100%;height:auto}pre{margin:0;white-space:pre;direction:ltr;text-align:left}code,kbd{font-family:var(--mono)}code{font-size:.88em}p{color:var(--muted)}.icon{width:18px;height:18px;flex-shrink:0;vertical-align:-3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;inset-inline-start:16px;z-index:100;transform:translateY(-160%);padding:10px 20px;background:var(--ink);color:#fff;border-radius:8px}.skip-link:focus{transform:translateY(0)}.site-restate{--accent:var(--coral);--accent-soft:#fff1ed}.site-animated{--accent:var(--blue);--accent-soft:#edf7fd}
.site-header{position:sticky;top:0;z-index:30;height:var(--header);background:#fff;border-bottom:1px solid var(--line)}.header-inner{width:100%;min-height:var(--header);padding:0 var(--page-gutter);display:flex;align-items:center;gap:28px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:1.5rem;font-weight:650;line-height:1.2;letter-spacing:-.04em;white-space:nowrap;min-height:44px}.brand-mark{display:inline-grid;place-items:center;background:var(--accent);border:1.5px solid var(--ink);border-radius:7px;width:27px;height:27px;font-size:1.125rem;font-weight:700;letter-spacing:-.07em}.brand-mark.home{width:auto;border:0;background:none;font-size:1.6875rem}.version{font:0.6875rem var(--mono);padding:4px 6px;border:1px solid var(--line);border-radius:5px;color:var(--muted);letter-spacing:0}.top-nav{display:flex;align-items:center;gap:25px;margin-inline-start:auto;font-size:0.875rem;white-space:nowrap}.top-nav a{display:flex;align-items:center;min-height:44px;gap:4px}.top-nav [aria-current]{font-weight:650}.top-nav a:hover,.text-link:hover{color:#a54730}.header-actions{display:flex;align-items:center;gap:12px}.search-trigger{height:38px;min-height:44px;min-width:190px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--muted);font-size:0.8125rem}.search-trigger>span{display:flex;align-items:center;gap:8px}.search-trigger kbd{font-size:0.6875rem;background:var(--soft);padding:1px 4px;border-radius:3px}.language-control{display:flex;align-items:center;gap:6px}.language-control .icon{width:16px}.language-control select{font-size:0.875rem;padding:8px 2px;border:0;background:transparent;min-height:44px;max-width:104px}.icon-button{display:grid;place-items:center;width:44px;height:44px;border-radius:8px}.icon-button:hover{background:var(--soft)}.mobile-menu,.sidebar-close{display:none}
.hub-main{width:100%;padding:0 var(--page-gutter) 88px}.hub-intro{padding:70px 0 54px;max-width:750px}.eyebrow{display:flex;align-items:center;gap:8px;font-size:0.75rem;letter-spacing:.025em;font-weight:600;color:var(--muted);margin-bottom:18px}.status-dot{width:7px;height:7px;border-radius:100%;background:var(--accent);display:inline-block}.status-dot.coral{background:var(--coral)}.status-dot.blue{background:#64a9d4}.intro-description{font-size:1.0625rem;line-height:1.85;max-width:620px;margin-top:20px;word-break:keep-all;overflow-wrap:anywhere}.name-note{display:flex;align-items:baseline;gap:18px;margin-top:28px;max-width:650px;border-inline-start:2px solid var(--accent);padding-inline-start:14px}.name-note code{font-size:0.75rem;white-space:nowrap;color:var(--ink)}.name-note span{font-size:0.8125rem;line-height:1.75;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}.section-heading h2{font-size:1.3125rem}.section-index{font:0.6875rem var(--mono);color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2vw,36px);width:100%}.project-card{width:100%;max-width:none;border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:border-color .16s,box-shadow .16s}.project-card:hover{border-color:#bfc6cb;box-shadow:0 4px 16px #252b3206}.project-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-title h3{font-size:1.75rem;letter-spacing:-.045em}.pill{font:0.6875rem/1.6 var(--mono);padding:3px 7px;border:1px solid var(--line);border-radius:5px;color:var(--muted);white-space:nowrap}.project-art{height:134px;display:flex;align-items:center;justify-content:flex-start;margin:8px 0 14px;overflow:hidden}.project-art img{width:240px;height:150px;object-fit:contain}.project-card h4{font-size:1rem;margin-bottom:10px}.project-card>p{font-size:0.875rem;line-height:1.9;min-height:54px;word-break:keep-all;overflow-wrap:anywhere}.project-links{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:26px;margin-top:24px;border-top:1px solid var(--line);font-size:0.8125rem}.project-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px}.project-links>a:last-child{color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:8px;font-size:0.875rem;font-weight:550;min-height:44px}.site-footer{width:100%;padding:26px var(--page-gutter);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;color:var(--muted);font-size:0.75rem}.site-footer nav{display:flex;gap:24px}.site-footer a{display:inline-flex;gap:5px;align-items:center;min-height:44px}.footer-home>span{color:#a8afb6}
.landing-main{width:100%;padding:0 var(--page-gutter) 64px}.library-hero{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:48px;padding:64px 0 52px}.library-hero h1{font-size:clamp(2.25rem,3.8vw,3.2rem)}.library-hero .intro-description{font-size:1rem;max-width:540px}.hero-art{display:flex;align-items:center;justify-content:center}.hero-art img{width:100%;max-width:460px;aspect-ratio:4/3;object-fit:contain}.actions{display:flex;gap:12px;margin:26px 0 22px;flex-wrap:wrap}.button{display:inline-flex;min-height:44px;padding:9px 18px;gap:10px;align-items:center;justify-content:center;font-size:0.875rem;font-weight:550;border-radius:7px;border:1px solid transparent;transition:background .16s,box-shadow .16s}.button.primary{background:var(--ink);color:#fff}.button.primary:hover{background:#414951}.button.secondary{border-color:#cfd4d9;background:#fff}.button.secondary:hover{background:var(--soft)}.code-block{background:var(--code);color:#e8edf3;border-radius:var(--radius);overflow:hidden;min-width:0;margin:22px 0}.code-toolbar{height:40px;display:flex;align-items:center;justify-content:space-between;padding-inline:18px 8px;font:0.6875rem var(--mono);color:#aeb8c4}.copy-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 8px;border-radius:5px;color:#c2ccd7;font:0.6875rem var(--sans)}.copy-button:hover{background:#ffffff14;color:#fff}.copy-button .icon{width:14px;height:14px}.code-block pre{padding:10px 22px 24px;overflow-x:auto;max-width:100%;font:0.8125rem/1.9 var(--mono);tab-size:2}.code-block code{font:inherit}.syntax-keyword{color:#92d2ed}.syntax-string{color:#ecc0a6}.syntax-number{color:#c0dba0}.code-block.compact{background:var(--soft);color:var(--ink);border:1px solid var(--line);position:relative;border-radius:8px;margin:0;max-width:490px}.compact .code-toolbar{position:absolute;inset-inline-end:6px;top:0;bottom:0;height:auto;padding:0;background:var(--soft)}.compact .code-toolbar>span,.compact .copy-button>span{display:none}.compact .copy-button{min-height:44px;min-width:40px;color:var(--muted)}.compact pre{padding:13px 52px 13px 16px;font-size:0.75rem}.compact .syntax-keyword{color:var(--ink)}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-block:1px solid var(--line);padding:30px 0}.feature-number{font:0.6875rem/1 var(--mono);color:#78838c;margin-bottom:12px;display:inline-block}.feature-row h2{font-size:1rem;margin-bottom:8px}.feature-row p{font-size:0.875rem;line-height:1.75}.quick-start{padding:48px 0}.quick-start .section-heading h2{font-size:1.5625rem}.quick-start .section-heading p:not(.eyebrow){font-size:0.875rem;margin-top:10px}.quick-start .eyebrow{margin-bottom:10px}.code-demo-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:24px;align-items:stretch}.code-demo-grid>.code-block{margin:0}.learning-section{padding:12px 0 40px}.learning-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.learning-grid article{padding:24px;border-inline-end:1px solid var(--line);border-bottom:1px solid var(--line)}.learning-grid article:nth-child(3n){border-inline-end:0}.learning-grid article:nth-last-child(-n+3){border-bottom:0}.learning-grid h3{font-size:1rem;margin-bottom:12px}.learning-grid a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;font-size:0.8125rem;color:var(--muted)}.learning-grid a:hover{color:var(--ink)}.learning-grid a .icon{width:14px}.compatibility{display:flex;gap:24px;align-items:baseline;border-top:1px solid var(--line);padding-top:24px;font-size:0.8125rem}.compatibility strong{white-space:nowrap}.compatibility p{flex:1}.compatibility a{white-space:nowrap}
.docs-layout{display:grid;grid-template-columns:232px minmax(0,720px) 176px;max-width:1320px;margin:auto;gap:32px;padding:0 40px}.sidebar{position:sticky;top:var(--header);align-self:start;max-height:calc(100dvh - var(--header));overflow-y:auto;padding:30px 20px 28px 0;border-inline-end:1px solid var(--line);font-size:0.8125rem;scrollbar-width:thin}.nav-group{margin-bottom:21px}.nav-group-title{font-size:0.75rem;font-weight:650;color:var(--ink);margin-bottom:7px;padding-inline:10px}.nav-group a{display:block;padding:8px 10px;line-height:1.6;border-radius:6px;color:var(--muted);min-height:36px}.nav-group a:hover{background:var(--soft);color:var(--ink)}.nav-group [aria-current]{background:var(--accent-soft);color:var(--ink);font-weight:600}.article{min-width:0;padding-top:30px;padding-bottom:56px}.breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:0.75rem;color:var(--muted);margin-bottom:25px}.breadcrumb>span:first-of-type{color:#b3bbc2}.article-header{padding-bottom:26px;border-bottom:1px solid var(--line);margin-bottom:28px}.article-header .eyebrow{margin-bottom:10px;font:0.6875rem var(--mono)}.article-header h1{font-size:2.125rem;line-height:1.4}.article-lead{font-size:1.0625rem;margin-top:14px;line-height:1.8}.article-section{margin-top:35px;scroll-margin-top:100px}.article-section h2{font-size:1.375rem;margin-bottom:14px;line-height:1.5}.article-section h2 a:hover::after{content:' #';color:#a8afb6}.article-section p{font-size:0.9375rem;line-height:1.95;color:#48525c;margin-bottom:15px;word-break:keep-all;overflow-wrap:anywhere}.article-section ul{padding-inline-start:22px;color:var(--muted)}.article .code-block{margin:22px 0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;margin:20px 0}table{width:100%;border-collapse:collapse;font-size:0.8125rem;text-align:start}th,td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}thead th{background:var(--soft);font-weight:600}tbody th{font-weight:400}tbody td{color:var(--muted)}tbody tr:last-child>*{border-bottom:0}th code{font-size:0.75rem;overflow-wrap:anywhere}.callout{background:#fff9e8;border-inline-start:3px solid #e5bc51;padding:18px 20px;border-radius:0 8px 8px 0;font-size:0.875rem;margin:24px 0}.callout p{margin:6px 0 0}.toc{position:sticky;top:calc(var(--header) + 30px);align-self:start;border-inline-start:1px solid var(--line);padding-inline-start:18px;margin-top:38px;font-size:0.75rem}.toc>p{color:var(--ink);font-weight:650;margin-bottom:11px}.toc a{display:block;padding:6px 0;color:var(--muted);line-height:1.65}.toc a.active{color:#a54730;font-weight:600}.toc a:hover{color:var(--ink)}.related{margin-top:42px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.related h2{font-size:0.9375rem;margin-bottom:10px}.related a{display:flex;align-items:center;justify-content:space-between;padding:6px 0;min-height:40px;font-size:0.875rem}.pagination{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);padding-top:24px;margin-top:32px}.pagination a{min-width:0}.pagination a:last-child{text-align:end}.pagination span{display:block;font-size:0.6875rem;color:var(--muted);margin-bottom:4px}.pagination strong{font-size:0.8125rem;font-weight:550}.pagination .icon{width:14px}.article-meta{font-size:0.6875rem!important;margin-top:28px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.article-meta .icon{width:12px;height:12px}.mobile-toc{display:none}.sidebar-scrim{display:none}
.examples-main{max-width:1200px;margin:auto;padding:54px 40px 80px}.examples-main>h1{font-size:2.25rem}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin:32px 0 26px}.filter{border:1px solid var(--line);border-radius:7px;min-height:44px;padding:7px 14px;font-size:0.8125rem}.filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}.example-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:24px;align-items:start}.example-card{border:1px solid var(--line);border-radius:var(--radius);max-width:548px;min-width:0;overflow:hidden}.example-heading{padding:25px}.example-heading h2{font-size:1.25rem;margin:14px 0 10px}.example-heading p{font-size:0.875rem}.example-card>.demo{border-inline:0;border-radius:0;margin:0;min-height:300px}.example-code{padding:18px 24px;border-top:1px solid var(--line);font-size:0.8125rem}.example-code summary{min-height:32px}.example-code .code-block{margin-bottom:0}.example-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;border-top:1px solid var(--line);font-size:0.8125rem}.example-card[hidden]{display:none}.demo{border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0;min-height:230px;background:var(--paper);position:relative}.demo-fallback{font-size:0.875rem;color:var(--muted)}.demo h3{font-size:0.9375rem;margin-bottom:18px}.demo-counter-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.consumer{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:18px 12px;text-align:center}.consumer p{font-size:0.6875rem;line-height:1.5}.counter-value{display:block;font:600 2.375rem/1.5 var(--mono);color:var(--ink);margin:8px 0}.demo .button{font-size:0.75rem;padding:7px 11px;min-height:44px}.demo-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.demo-status{font-size:0.75rem;margin-top:14px;line-height:1.6}.demo textarea{resize:vertical;min-height:120px;width:100%;border:1px solid #cbd2d9;border-radius:6px;padding:12px;font-size:0.9375rem;background:white;line-height:1.7}.demo label{display:block;font-size:0.75rem;margin-bottom:7px}.demo-local{font-size:0.6875rem;margin-top:12px}.motion-stage{height:104px;display:flex;align-items:center;padding:0 10px;border-block:1px dashed var(--line);margin-bottom:22px;overflow:hidden}.motion-track{width:100%;height:3px;background:var(--line);position:relative}.motion-object{position:absolute;top:-13px;left:0;width:30px;height:30px;background:var(--blue);border:1.5px solid var(--ink);border-radius:6px}.demo-controls{display:flex;flex-wrap:wrap;gap:12px}.demo-controls>label{flex:1;min-width:90px;margin:0}.demo select,.demo input[type=number]{width:100%;border:1px solid #cbd2d9;padding:6px;border-radius:5px;font-size:0.8125rem;min-height:40px;margin-top:5px;background:white}.presence-stage{min-height:120px;padding:15px 0}.presence-message{padding:18px;background:#f0f6ed;border:1px solid #c8d9bd;border-radius:8px;font-size:0.875rem;color:var(--ink)}
.search-dialog{border:1px solid var(--line);padding:0;border-radius:14px;box-shadow:0 20px 80px #1018202b;width:min(640px,calc(100% - 32px));max-height:75dvh;margin:14vh auto auto;color:var(--ink);background:white}.search-dialog::backdrop{background:#20283055}.dialog-header{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:1rem}.search-input-wrap{margin:20px;display:flex;align-items:center;gap:10px;border:1px solid #b9c2ca;border-radius:8px;padding:0 12px}.search-input-wrap input{width:100%;border:0;min-height:48px;font-size:1rem;background:none;min-width:0}.search-input-wrap:focus-within{outline:3px solid #195ab3;outline-offset:2px}.search-input-wrap input:focus{outline:0}.search-status{font-size:0.75rem;margin:0 22px 14px}.search-results{max-height:44dvh;overflow:auto;padding:0 12px}.search-result{display:block;padding:14px 12px;border-top:1px solid var(--line);border-radius:6px}.search-result:hover,.search-result:focus{background:var(--soft)}.search-result small{display:block;font-size:0.6875rem;color:var(--muted);margin-bottom:4px}.search-result strong{display:block;font-size:0.9375rem}.search-result p{font-size:0.75rem;margin-top:5px;line-height:1.75}.dialog-footer{padding:12px 22px;background:var(--soft);font-size:0.6875rem;display:flex;gap:8px;color:var(--muted)}.dialog-footer kbd{border:1px solid var(--line);background:white;border-radius:3px;padding:0 4px}.not-found{max-width:720px;margin:auto;padding:100px 40px 160px}.not-found h1{font-size:2rem}.not-found p{margin:20px 0 30px}
@media(min-width:1600px){.hub-main{padding-top:16px}.hub-intro{padding-top:78px}}
@media(min-width:1200px){.project-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.65fr);column-gap:32px;align-items:start}.project-title,.project-card>h4,.project-card>p{grid-column:1}.project-art{grid-column:2;grid-row:1/span 3;height:180px;margin:0;justify-content:flex-end}.project-art img{width:100%;max-width:320px;height:180px}.project-links{grid-column:1/-1}}
@media(max-width:900px){.project-grid{grid-template-columns:1fr}}
@media(max-width:1180px){.header-inner{gap:20px;padding-inline:30px}.top-nav{gap:18px}.search-trigger{min-width:44px}.search-label,.search-trigger kbd{display:none}.search-trigger{justify-content:center;padding:0 12px}.docs-layout{grid-template-columns:210px minmax(0,1fr);padding-inline:30px;gap:32px}.toc{display:none}.mobile-toc{display:block;font-size:0.8125rem;border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin-bottom:30px}.mobile-toc a{display:block;padding:6px 0;color:var(--muted)}.mobile-toc summary{font-weight:550}.library-hero{gap:24px}.compatibility{gap:16px}.learning-grid{grid-template-columns:repeat(2,1fr)}.learning-grid article:nth-child(3n){border-inline-end:1px solid var(--line)}.learning-grid article:nth-child(2n){border-inline-end:0}.learning-grid article:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.learning-grid article:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:860px){.header-inner{padding-inline:20px;gap:14px}.brand{font-size:1.3125rem}.version{display:none}.top-nav{gap:14px;font-size:0.8125rem}.github-link{display:none!important}.header-actions{gap:5px}.language-control .icon{display:none}.language-control select{font-size:0.75rem;max-width:82px}.docs-layout{display:block;padding:0 24px;max-width:800px}.article{padding-top:24px}.sidebar{display:none;position:fixed;z-index:55;top:0;bottom:0;inset-inline-start:0;max-height:100dvh;width:min(320px,calc(100% - 56px));background:white;padding:65px 22px 24px}.sidebar-close{display:grid;position:absolute;top:12px;inset-inline-end:12px}.menu-open .sidebar{display:block}.menu-open .sidebar-scrim{display:block;position:fixed;z-index:50;inset:0;background:#20283066}.mobile-menu{display:grid}.nav-group a{min-height:44px;font-size:0.875rem}.nav-group-title{font-size:0.8125rem}.menu-open{overflow:hidden}.hub-main,.landing-main,.examples-main{padding-inline:24px}.hub-intro{padding:48px 0 38px}.hub-intro h1{font-size:2.4375rem}.library-hero{padding:42px 0 34px;gap:12px;grid-template-columns:1.3fr .8fr}.library-hero h1{font-size:2.125rem}.library-hero .intro-description{font-size:0.9375rem}.hero-art img{max-width:340px}.feature-row{gap:20px;padding:25px 0}.feature-row h2{font-size:0.9375rem}.feature-row p{font-size:0.8125rem}.code-demo-grid{grid-template-columns:1fr}.quick-start .section-heading h2{font-size:1.4375rem}.compatibility{flex-wrap:wrap}.compatibility p{flex-basis:70%}.site-footer{padding-inline:24px}.site-footer nav{gap:15px}.name-note{flex-direction:column;gap:5px}.project-card{padding:24px}.project-title{align-items:baseline}.project-title h3{font-size:1.625rem}.project-art{height:120px}.article-header h1{font-size:1.875rem}.article-section p{font-size:1rem}.examples-main>h1{font-size:1.9375rem}.code-block pre{font-size:0.75rem}}
@media(max-width:600px){:root{--header:64px}.header-inner{padding-inline:20px;gap:8px}.brand{font-size:1.1875rem;gap:7px}.brand-mark{width:24px;height:24px;font-size:1rem}.brand-mark.home{font-size:1.5rem}.top-nav{gap:12px;font-size:0.75rem}.header-actions{gap:0}.search-trigger{border:0;min-width:40px;padding:0 9px}.language-control select{max-width:70px}.hub-main{padding-inline:20px;padding-bottom:52px}.hub-intro{padding-top:40px}.hub-intro h1{font-size:2.1875rem}.eyebrow{font-size:0.6875rem}.intro-description{font-size:1rem;line-height:1.9;margin-top:18px}.section-heading{gap:14px}.section-heading h2{font-size:1.1875rem}.project-grid{grid-template-columns:1fr;gap:20px}.project-card{max-width:100%;padding:24px}.project-title h3{font-size:1.6875rem}.project-card>p{min-height:0;font-size:0.9375rem}.project-art{height:120px}.project-art img{width:220px;height:150px}.project-links{padding-top:16px;margin-top:20px}.site-footer{flex-direction:column;align-items:flex-start;gap:4px;padding:20px}.site-footer nav{gap:24px}.library-hero{display:flex;flex-direction:column;align-items:stretch;padding-top:35px;gap:12px}.hero-art{order:-1;display:none}.library-hero h1{font-size:2.125rem}.library-hero .intro-description{font-size:1rem}.landing-main{padding-inline:20px}.feature-row{display:block;padding:8px 0}.feature-row>div{position:relative;padding:20px 0 20px 30px;border-bottom:1px solid var(--line)}.feature-row>div:last-child{border-bottom:0}.feature-row .feature-number{position:absolute;left:0;top:27px}.feature-row h2{font-size:1rem}.feature-row p{font-size:0.875rem}.learning-grid{grid-template-columns:1fr}.learning-grid article{border-inline:0!important;border-bottom:1px solid var(--line)!important}.learning-grid article:last-child{border-bottom:0!important}.learning-grid a{font-size:0.875rem;min-height:44px}.quick-start{padding:32px 0}.quick-start .section-heading h2{font-size:1.4375rem}.learning-section .section-heading{align-items:flex-start;flex-direction:column;gap:4px}.compatibility{display:block}.compatibility p{margin:10px 0 15px}.compact pre{font-size:0.6875rem}.docs-layout{padding-inline:20px}.is-docs .top-nav{display:none}.is-docs .header-actions{margin-inline-start:auto}.breadcrumb{font-size:0.6875rem}.article-header h1{font-size:1.8125rem}.article-lead{font-size:1rem}.article-section h2{font-size:1.3125rem}.article-section p{line-height:1.9}.article .code-block{margin-inline:-4px}.code-block pre{padding:10px 16px 20px}.code-toolbar{padding-inline-start:16px}.toc{display:none}.pagination{gap:18px}.pagination strong{font-size:0.75rem}.related{padding:18px}.related a{font-size:0.875rem}.demo{padding:18px}.consumer{padding:14px 8px}.consumer p{font-size:0.6875rem}.demo-counter-grid{gap:10px}.counter-value{font-size:2rem}.examples-main{padding:35px 20px 50px}.examples-main>h1{font-size:1.875rem}.filter-bar{gap:8px}.filter{font-size:0.75rem;padding-inline:10px}.example-grid{grid-template-columns:1fr}.example-heading{padding:22px}.search-dialog{margin-top:9vh;max-height:82dvh}.search-results{max-height:52dvh}.not-found{padding:65px 20px 100px}}
[dir=rtl] .code-block pre,[dir=rtl] .motion-stage{direction:ltr}[dir=rtl] .icon-arrow{transform:scaleX(-1)}

/* Detailed learning: static explanations remain readable without JavaScript. */
.learning-goals{border:1px solid var(--line);border-radius:8px;padding:20px 24px;margin-block:24px 32px;font-size:1rem;line-height:1.8}
.learning-goals strong{font-size:1rem}.learning-goals ul{margin:10px 0 0;padding-inline-start:22px;color:var(--ink)}.learning-goals li::marker{color:#b44632}
.observation-result{border-inline-start:3px solid #557744;background:var(--soft);padding:18px 22px;margin-block:18px 26px;border-radius:0 8px 8px 0;min-width:0}
.observation-result strong{font-size:.875rem}.observation-result pre{font:.875rem/1.8 var(--mono);margin-block:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.article-section .observation-result p{margin:0;font-size:1rem}.article-section li{font-size:1rem;line-height:1.9;margin-block:6px}
.site-restate .toc{max-height:calc(100dvh - var(--header) - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;font-size:.875rem}
.site-restate .toc a{min-height:44px;display:flex;align-items:center}.site-restate .article .table-wrap{font-size:.875rem}.site-restate .article table,.site-restate .article th code{font-size:.875rem;line-height:1.8}
.site-restate .article .table-wrap td{min-width:10ch;overflow-wrap:anywhere}.site-restate .article .mobile-toc a{min-height:44px}
.site-restate .site-header{background:var(--paper)}.site-restate .article table{min-inline-size:36rem}.site-restate .article th code{overflow-wrap:normal;word-break:normal}
.batch-initial,.batch-result p{font-size:.875rem;line-height:1.8}.batch-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.batch-mode{min-width:0}.batch-mode>.button{width:100%;white-space:normal}.batch-result{margin-top:16px}.batch-result p{margin-block:10px}
.batch-result pre{font:.875rem/1.8 var(--mono);background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:600px){.learning-goals{padding:18px}.observation-result{padding:16px}.batch-comparison{grid-template-columns:1fr}.batch-mode+.batch-mode{padding-top:20px;border-top:1px solid var(--line)}}

/* Readable documentation and multilingual interface floor. */
.article-section p{font-size:1rem}.sidebar{font-size:0.875rem}.nav-group-title{font-size:0.8125rem}.top-nav{font-size:0.875rem}.project-card>p{font-size:1rem}.project-links{font-size:0.875rem}.feature-row p{font-size:0.9375rem}.learning-grid a{font-size:0.875rem}.example-heading p{font-size:1rem}.filter{font-size:0.875rem}.demo .button{font-size:0.875rem}.demo label{font-size:0.875rem}.consumer p{font-size:0.75rem}.demo-local{font-size:0.75rem}.demo-status{font-size:0.8125rem}.copy-button{min-height:40px;min-width:44px}.table-wrap{max-width:100%}

/* Text enlargement and long translations must reflow. */
.site-header{height:auto;min-height:var(--header)}.header-inner{flex-wrap:wrap;padding-block:8px}.header-actions{margin-inline-start:auto}.brand-mark{min-width:1.7rem;min-height:1.7rem}.project-title,.project-links,.site-footer nav{flex-wrap:wrap}.language-control select{max-width:8rem}.code-toolbar{height:auto;min-height:44px}.copy-button{min-height:44px}.feature-row p,.demo label,.consumer p,.demo-status,.demo-local,.name-note span,.nav-group-title,.language-control select,.pagination strong,.related a,.filter,.site-footer,.example-guide{font-size:.875rem}.code-block pre{font-size:.875rem}.feature-row>div{padding-inline-start:30px}.feature-row .feature-number{inset-inline-start:0;left:auto}.motion-track{direction:ltr}
@media(max-width:600px){.header-inner{gap:8px}.site-home .header-actions{margin-inline-start:auto}.top-nav{flex-wrap:wrap}.language-control select{max-width:6rem}.project-card{max-width:508px}.brand{white-space:normal}.demo-counter-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,110px),1fr))}}
/* Shared navigation state, designed in design/navigation.md before implementation. */
.route-progress{position:fixed;inset-block-start:0;inset-inline:0;z-index:100;height:2px;background:var(--coral,#ef826e);animation:route-pending 1.1s ease-in-out infinite;transform-origin:left;pointer-events:none}
@keyframes route-pending{0%{transform:scaleX(.12)}55%{transform:scaleX(.72)}100%{transform:scaleX(1)}}
.route-error{position:fixed;inset-inline-end:24px;inset-block-end:24px;z-index:110;max-width:min(420px,calc(100vw - 32px));padding:16px 20px;background:#fff;border:1px solid #68717c;border-radius:8px;box-shadow:0 3px 12px #252b3210;font-size:.875rem}
.route-error p{margin:0 0 8px}.route-error>div{display:flex;flex-wrap:wrap;gap:8px 16px}.route-error button,.route-error a{min-height:44px;display:inline-flex;align-items:center;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:4px}

/* Product-positioning slots: scoped to opted-in landing pages. */
.marketing-main { max-width: none; }
.marketing-main .button.primary { background: var(--coral); border-color: var(--coral); color: var(--ink); }
.marketing-main .button.primary:hover { background: #e87964; border-color: #e87964; }
.marketing-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; padding-block: 52px 36px; }
.marketing-hero > *, .reason-grid > *, .marketing-fit > * { min-width: 0; }
.marketing-hero h1 { font-size: clamp(2.25rem, 3.15vw, 2.875rem); line-height: 1.28; letter-spacing: -.05em; word-break: keep-all; overflow-wrap: anywhere; }
.marketing-hero .eyebrow { margin-bottom: 18px; font-size: .875rem; }
.marketing-promise { margin-top: 24px; font-size: 1.1875rem; font-weight: 600; color: var(--ink); line-height: 1.6; word-break: keep-all; }
.marketing-hero .intro-description { font-size: 1rem; line-height: 1.8; margin-top: 8px; }
.marketing-hero .actions { margin-block: 24px 18px; }
.marketing-pitch .code-block.compact { max-width: none; }
.marketing-proof > .code-block { margin: 0; }
.marketing-proof pre { white-space: pre; overflow-wrap: normal; line-height: 1.8; padding: 12px 24px 24px; }
.marketing-flow { list-style: none; display: flex; justify-content: space-between; margin: 24px 24px 0; padding: 0; }
.marketing-flow li { position: relative; display: flex; flex: 1; align-items: center; flex-direction: column; gap: 8px; font-size: .875rem; }
.marketing-flow li:not(:last-child)::after { content: ''; position: absolute; inset-inline-start: calc(50% + 28px); inset-block-start: 14px; width: calc(100% - 56px); height: 1px; background: #aab2ba; }
.flow-shape { display: block; width: 28px; height: 28px; border: 1.5px solid var(--ink); background: var(--coral); border-radius: 50%; }
.flow-shape.shape-1 { background: #ffd367; border-radius: 6px; }
.flow-shape.shape-2 { background: var(--blue); border-radius: 4px; }
.comparison-prompts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--line); padding-block: 20px; }
.comparison-prompt { min-width: 0; padding-inline: 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.comparison-prompt:first-child { padding-inline-start: 0; }
.comparison-prompt + .comparison-prompt { border-inline-start: 1px solid var(--line); }
.prompt-brand { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: .875rem; font-weight: 650; }
.prompt-mark { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--ink); border-radius: 6px; background: var(--coral); font: 650 .875rem/1 var(--mono); }
.prompt-benefit { color: var(--ink); font-size: 1rem; line-height: 1.65; word-break: keep-all; overflow-wrap: anywhere; }
.prompt-benefit strong { font-weight: 650; }
.prompt-compare { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: auto; min-height: 44px; font-size: .875rem; line-height: 1.7; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; }
.prompt-action { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); }
.prompt-compare:hover { color: #98452f; }
/* Use installed fonts for the active script; no global font downloads. */
.brand-image { display: block; width: 32px; height: 32px; flex: 0 0 32px; object-fit: contain; }
.hub-intro.has-brand { display: grid; grid-template-columns: minmax(0, 750px) 144px; align-items: center; justify-content: start; gap: clamp(40px, 6vw, 96px); width: 100%; max-width: 1080px; }
.hub-intro-copy { min-width: 0; }
.hub-symbol { width: 144px; height: 144px; object-fit: contain; }
@media (max-width: 600px) {
  .hub-intro.has-brand { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .hub-symbol { grid-row: 1; width: 64px; height: 64px; }
}
html:lang(ja) { --sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Yu Gothic UI", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; }
html:lang(zh-Hans) { --sans: "Pretendard Variable", Pretendard, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
html:lang(zh-Hant) { --sans: "Pretendard Variable", Pretendard, "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif; }
html:is(:lang(ja), :lang(zh)) :is(h1, h2, h3, p, strong) { word-break: normal; line-break: strict; }
html:is(:lang(hi), :lang(bn), :lang(ta), :lang(te), :lang(mr), :lang(kn), :lang(th)) .marketing-hero h1 { line-height: 1.5; letter-spacing: normal; }
.marketing-reasons { padding-block: 40px; }
.marketing-reasons .eyebrow, .marketing-comparison .eyebrow, .marketing-fit .eyebrow { font-size: .875rem; margin-bottom: 8px; }
.marketing-reasons h2, .marketing-comparison h2, .marketing-fit h2 { font-size: clamp(1.5rem, 2.2vw, 1.875rem); }
.reason-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 28px; }
.reason-grid article { display: flex; align-items: flex-start; gap: 16px; }
.reason-grid article + article { border-inline-start: 1px solid var(--line); padding-inline-start: 24px; }
.reason-grid .feature-number { color: #98452f; font-size: .875rem; flex-shrink: 0; margin-top: 2px; }
.reason-grid h3 { font-size: 1.0625rem; margin-bottom: 10px; }
.reason-grid p, .marketing-comparison p, .marketing-fit p { font-size: 1rem; line-height: 1.8; word-break: keep-all; overflow-wrap: anywhere; }
.reason-grid .text-link { margin-top: 10px; font-size: .875rem; min-height: 44px; }
.marketing-comparison { border-top: 1px solid var(--line); padding-block: 40px 8px; }
.marketing-comparison .section-heading p:not(.eyebrow) { margin-top: 12px; }
.comparison-sources { margin-top: 16px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
.comparison-sources summary { min-height: 44px; padding-block: 10px; font-size: .875rem; font-weight: 600; }
.comparison-sources p, .comparison-sources li { font-size: .875rem; }
.comparison-sources ul { padding-inline-start: 22px; }
.comparison-sources li { margin-block: 12px; }
.comparison-sources li div { display: flex; flex-wrap: wrap; column-gap: 24px; }
.comparison-sources a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.marketing-fit { border: 1px solid var(--line); border-inline-start: 3px solid var(--coral); border-radius: 12px; padding: 28px 32px; margin-block: 0 48px; }
.marketing-fit > div:first-child { max-width: 780px; }
.marketing-fit p:not(.eyebrow) { margin-top: 14px; }
.marketing-fit .actions { margin-bottom: 0; gap: 24px; }
@media(max-width: 1000px) {
  .marketing-hero { gap: 28px; }
  .reason-grid { gap: 20px; }
  .reason-grid article { display: block; }
  .reason-grid .feature-number { display: block; margin-bottom: 12px; }
}
@media(max-width: 900px) {
  .marketing-hero { grid-template-columns: 1fr; padding-block: 36px; }
  .marketing-proof { max-width: 650px; width: 100%; }
  .marketing-pitch { max-width: 650px; }
  .marketing-proof pre { white-space: pre; overflow-x: auto; }
  .comparison-prompt { padding-inline: 18px; }
}
@media(max-width: 640px) {
  .marketing-hero h1 { font-size: 2.25rem; }
  .marketing-hero .actions { gap: 12px; }
  .comparison-prompts, .reason-grid { grid-template-columns: minmax(0, 1fr); }
  .comparison-prompts { padding-block: 0; }
  .comparison-prompt, .comparison-prompt:first-child { padding-block: 20px; padding-inline: 0; }
  .comparison-prompt + .comparison-prompt { border-inline-start: 0; border-top: 1px solid var(--line); }
  .reason-grid { gap: 0; }
  .reason-grid article, .reason-grid article + article { display: flex; padding: 20px 0; border-inline-start: 0; }
  .reason-grid article + article { border-top: 1px solid var(--line); }
  .reason-grid .feature-number { margin-block: 3px 0; }
  .marketing-reasons { padding-block: 32px 12px; }
  .marketing-comparison { padding-top: 32px; }
  .marketing-fit { padding: 24px; }
  .marketing-fit .actions { align-items: flex-start; flex-direction: column; gap: 12px; }
}
:root { --comparison-accent: #b83722; }
.comparison-tabs { display: flex; flex-wrap: wrap; gap: 8px; border-block-end: 1px solid var(--line, #e6e9ec); margin-block: 24px; }
.comparison-tabs a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border-block-end: 2px solid transparent; color: inherit; text-decoration: none; font-weight: 650; }
.comparison-tabs [aria-selected="true"] { border-color: var(--comparison-accent); color: var(--comparison-accent); }
.comparison-panel { scroll-margin-top: 100px; padding-block: 20px 28px; }
.comparison-panel[hidden] { display: none; }
.comparison-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(20px,2vw,36px); }
.comparison-pair > div { min-width: 0; }
.comparison-pair p { overflow-wrap: anywhere; }
.comparison-pair h3 { font-size: 1.25rem; margin-block: 8px 12px; }
.comparison-pair .eyebrow { margin: 0; }
.comparison-benefit { border-inline-start: 3px solid #ef826e; padding-inline-start: 20px; }
.comparison-panel h4 { margin-block: 24px 16px; font-size: 1rem; }
.comparison-code .code-block { margin-block-start: 12px; }
.comparison-tradeoff { border-block-start: 1px solid #e6e9ec; padding-block-start: 20px; margin-block: 24px 16px; }
.comparison-tradeoff strong { display: block; margin-block-end: 8px; }
.comparison-more { margin-block: 8px 24px; }
.article .comparison-pair { grid-template-columns: minmax(0,1fr); }
.article .comparison-tabs a { margin: 0; }
.article-sources li { margin-block: 8px; }
@media (max-width: 1080px) { .comparison-pair { grid-template-columns: minmax(0,1fr); } .comparison-tabs a { padding-inline: 12px; } }
/* One selected experiment, with an independent readable code area. */
.learning-main{padding-top:32px}.learning-main>h1{font-size:2rem}.learning-main>.intro-description{font-size:1rem;max-width:72ch;margin-top:12px}.learning-workbench{display:grid;grid-template-columns:13.5rem minmax(0,1fr);gap:32px;margin-top:32px;align-items:start}.lesson-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:calc(var(--header) + 24px)}.lesson-nav a{display:flex;align-items:baseline;gap:12px;min-height:48px;padding:12px;border-radius:7px;font-size:.875rem;line-height:1.6}.lesson-nav a[aria-selected=true]{background:var(--accent-soft);box-shadow:inset 3px 0 var(--coral);font-weight:650}.lesson-number{font:500 .8125rem var(--mono);color:var(--muted);flex-shrink:0}.lesson-content,.lesson-panel{min-width:0}.lesson-panel{scroll-margin-top:calc(var(--header) + 24px)}.lesson-panel[hidden],[data-code-panel][hidden]{display:none}.lesson-panel+.lesson-panel:not([hidden]){margin-top:48px}.learning-workbench[data-learning-ready] .lesson-panel{margin-top:0}.lesson-header{border-bottom:1px solid var(--line);padding-bottom:20px}.lesson-header h2{font-size:1.65rem}.lesson-header p{margin-top:10px;max-width:72ch}.lesson-context{margin:24px 0;display:grid;gap:14px;max-width:72ch}.lesson-context strong{display:block;color:var(--ink);font-size:.875rem;margin-bottom:4px}.lesson-context p{font-size:1rem}.lesson-experiment h3,.lesson-source>h3,.lesson-observation h3,.lesson-boundary h3{font-size:1rem}.lesson-steps{padding-inline-start:24px;margin:14px 0 24px;max-width:72ch}.lesson-steps li{padding-inline-start:6px;margin-block:8px}.lesson-steps li::marker{color:var(--ink);font-weight:650}.learning-main .demo{padding:24px;min-height:180px}.learning-main .demo p,.learning-main .demo label,.learning-main .demo h3,.learning-main .demo .button{font-size:.9375rem}.learning-main .demo .demo-local{font-size:.875rem}.learning-main .demo h3{margin-bottom:20px}.lesson-observation{background:#f2f7ef;border:1px solid #dbe7d3;border-radius:8px;padding:20px 24px;margin-top:20px}.lesson-observation p{color:#384b32;margin-top:6px}.lesson-source{margin-top:32px}.lesson-source>p{font-size:.875rem;margin:10px 0 16px;max-width:72ch}.lesson-code-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);gap:8px}.lesson-code-tabs[hidden]{display:none}.lesson-code-tabs button{font-size:.9375rem;min-height:48px;padding:10px 16px;border-bottom:2px solid transparent}.lesson-code-tabs button[aria-selected=true]{border-color:var(--coral);font-weight:650;background:var(--accent-soft)}.learning-workbench[data-learning-ready] .code-version-title{display:none}.lesson-source .code-block{margin-top:12px}.lesson-source .code-block pre{max-height:none;overflow:auto;font-size:.9375rem;line-height:1.8;padding:20px}.lesson-source pre code{font-size:inherit}.lesson-source .code-toolbar{font-size:.875rem;padding:12px 20px}.lesson-boundary{border-inline-start:3px solid var(--line);padding-inline-start:20px;margin:28px 0}.lesson-boundary p{margin-top:6px;font-size:.9375rem;max-width:72ch}.lesson-guide{display:flex;flex-direction:column;border-block-start:1px solid var(--line);padding-block:20px;gap:4px}.lesson-guide span{font-size:.875rem;color:var(--muted)}.lab-product{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:20px}.lab-product strong{display:block;font-size:1.125rem;margin-top:4px}.lab-product span{font-size:.875rem;color:var(--muted)}.lab-product .demo-actions{margin:0}.lab-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.lab-metric{min-width:0;padding:16px;background:var(--soft);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.lab-metric span{font-size:.875rem;line-height:1.6}.lab-metric output{font:600 2rem/1.3 var(--mono);overflow-wrap:anywhere}.lab-observers .lab-metric:last-child{background:#f2f7ef}.learning-main .batch-result pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:none}.learning-main .batch-mode{min-width:0}.learning-main .button:disabled{cursor:default}
@media(max-width:1000px){.learning-workbench{grid-template-columns:1fr}.lesson-nav{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.lesson-nav a{border:1px solid var(--line)}.lesson-header h2{font-size:1.5rem}}
@media(max-width:600px){.learning-main{padding:24px 20px 48px}.learning-main>h1{font-size:1.75rem}.lesson-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-nav a{padding:10px;gap:8px}.learning-main .demo{padding:18px}.lab-metrics{grid-template-columns:1fr}.lesson-observation{padding:18px}.lesson-source .code-block pre{padding:16px}.lesson-code-tabs button{flex:1;padding-inline:10px}.lesson-context{gap:16px}}
@media(min-width:601px){.learning-main .batch-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1001px){html[dir=rtl] .lesson-nav a[aria-selected=true]{box-shadow:inset -3px 0 var(--coral)}}
.learning-main{word-break:keep-all;overflow-wrap:anywhere}.lesson-source .code-block pre{white-space:pre;overflow-wrap:normal;tab-size:2}.lesson-context{border-top:1px solid var(--line);padding-top:24px;margin-top:28px}

/* Organization wordmark: physical right in every writing direction. */
.brand-at-right { display:grid; direction:ltr; grid-template-columns:auto auto minmax(0,1fr); column-gap:24px; }
.brand-at-right > .brand { grid-column:3; grid-row:1; justify-self:end; text-align:right; font-size:1.375rem; letter-spacing:-.045em; }
.brand-at-right > .top-nav { grid-column:1; grid-row:1; }
.brand-at-right > .header-actions { grid-column:2; grid-row:1; margin:0; }
[dir="rtl"] .brand-at-right > .top-nav, [dir="rtl"] .brand-at-right > .header-actions { direction:rtl; }
.project-title h3 a { display:flex; align-items:center; gap:12px; }
.project-brand-image { width:40px; height:40px; flex:0 0 40px; object-fit:contain; }
@media(max-width:600px) {
 .brand-at-right { grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; }
 .brand-at-right > .brand { grid-column:2; grid-row:1; }
 .brand-at-right > .top-nav { grid-column:1; grid-row:1; }
 .brand-at-right > .header-actions { grid-column:1 / -1; grid-row:2; justify-self:start; }
}
.prompt-logo { display:block; width:24px; height:24px; object-fit:contain; }
.hero-code { min-width: 0; }
.hero-code .code-block { margin: 0; }
.site-animated .library-hero h1 { font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.18; }
.start-path { padding-block: 2rem; border-block-end: 1px solid var(--border, #e6e9ec); }
.start-path ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; padding: 0; list-style: none; }
.start-path li { display: flex; gap: 1rem; border: 1px solid #e6e9ec; border-radius: .75rem; padding: 1.5rem; min-width: 0; }
.start-path a { display: block; color: inherit; text-decoration: none; }
.start-path a:hover strong { text-decoration: underline; }
.start-path p { margin-block-end: 0; color: #606973; }
@media (max-width: 860px) { .start-path ol { grid-template-columns: 1fr; } }
.response-stage { display: flex; min-height: 12rem; padding: 2rem; gap: 2rem; align-items: center; justify-content: center; flex-direction: column; }
.response-stage label { display: flex; gap: .5rem; align-items: center; min-height: 2.75rem; }
.response-stage input { width: 1.25rem; height: 1.25rem; }
.site-animated .learning-goals { border-inline-start-color: #83b9dc; }
/* Static learning aids and task-specific experiment geometry. */
.section-reading { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-block:1.25rem; }
.section-reading a { display:inline-flex; align-items:center; gap:.5rem; min-block-size:44px; text-decoration:underline; text-underline-offset:4px; }
.self-check { margin-block:1.5rem; border-block:1px solid var(--border, #e6e9ec); padding-block:.25rem; }
.self-check summary { cursor:pointer; font-weight:600; padding-block:.875rem; min-block-size:44px; }
.self-check summary:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.self-check p { margin-block:.5rem 1rem; }
.mastery-drag-track { position:relative; inline-size:224px; max-inline-size:100%; min-block-size:108px; margin-block:1.5rem; }
.mastery-ticks { display:flex; justify-content:space-between; inline-size:204px; max-inline-size:100%; padding-inline-start:12px; font-size:.875rem; color:var(--muted, #606973); border-block-end:1px solid #b9def4; padding-block-end:.5rem; }
.mastery-drag-handle { padding:0 !important; inline-size:44px; min-inline-size:44px !important; block-size:44px; cursor:grab; margin-block-start:12px; }
.mastery-drag-handle:active { cursor:grabbing; }
.mastery-progress { block-size:12px; background:#e6e9ec; border-radius:4px; margin-block:1rem; }
.mastery-progress-fill { block-size:100%; inline-size:100%; background:#387fbb; border-radius:4px; }
.mastery-scroll-region { border:1px solid #a7afb8; padding:1rem; border-radius:8px; overscroll-behavior:contain; }
.mastery-scroll-content { display:flex; flex-direction:column; justify-content:space-between; gap:2rem; }
.mastery-group-row { display:grid; gap:.5rem; margin-block:1rem; }
.mastery-group-track { block-size:44px; border-block-end:1px solid #b9def4; }
.mastery-group-object { inline-size:32px; block-size:32px; background:#387fbb; border-radius:6px; }
/* Animated V4: functional geometry and a working surface, isolated from other products. */
.site-animated .motion-page{max-width:1200px;margin:auto;padding:40px 24px 72px}.motion-hero{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:48px;align-items:center;padding:12px 0 56px}.motion-hero h1{font-size:clamp(2.25rem,3.5vw,3.25rem);line-height:1.14;letter-spacing:-.04em;max-width:14em}.motion-hero .eyebrow{overflow-wrap:anywhere}.motion-hero-stage{min-width:0}.motion-hero-stage .demo{border:0;padding:0;background:none;min-height:390px}.motion-desk{border:1px solid var(--border,#e6e9ec);border-radius:16px;padding:18px;background:#fff}.desk-caption{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:.875rem;color:#606973}.desk-stage{position:relative;height:290px;max-width:420px;margin:auto}.desk-guides{position:absolute;inset:22px;border:1px solid #e6e9ec;border-radius:50%}.desk-guides:before,.desk-guides:after{content:'';position:absolute;background:#e6e9ec}.desk-guides:before{height:1px;inset:50% 0 auto}.desk-guides:after{width:1px;inset:0 auto 0 50%}.desk-tile-position{position:absolute;left:calc(50% - 32px);top:calc(50% - 32px);width:64px;height:64px}.desk-tile{display:block;width:64px;height:64px;border:1px solid #252b3220;cursor:pointer;border-radius:12px}.shape-0{background:#ef826e}.shape-1{background:#b9def4}.shape-2{background:#ffd367;border-radius:50%}.shape-3{background:#a9ca96}.desk-modes{display:flex;gap:6px;padding:5px;background:#f5f7f8;border-radius:10px}.desk-modes button{flex:1;min-width:0;min-height:44px;border:1px solid transparent;border-radius:7px;background:none;font:inherit;cursor:pointer;padding:8px}.desk-modes button[aria-pressed=true]{background:#fff;border-color:#c5d9e8;color:#203f57}.desk-hint{font-size:.875rem;line-height:1.5;color:#606973;margin:12px 0 0}.motion-first-code{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:48px;align-items:start;border-block:1px solid #e6e9ec;padding:40px 0}.motion-first-code .code-block{margin:0}.motion-first-code h2{font-size:1.65rem}.motion-library{padding-top:40px}.site-animated button:focus-visible,.site-animated a:focus-visible{outline:2px solid #234f73;outline-offset:4px}.site-animated .start-path{margin:40px 0}.site-animated .brand-image{object-fit:contain}.site-animated .motion-page button{font-family:inherit}
@media(max-width:860px){.motion-hero{grid-template-columns:1fr;gap:24px;padding-bottom:32px}.motion-hero h1{max-width:18em}.motion-first-code{grid-template-columns:1fr;gap:24px}.site-animated .motion-page{padding:24px 20px 48px}.motion-hero-stage .demo{min-height:390px}}
/* Animated V4 use-case routes and documentation chrome. */
.site-animated .showcase-header{padding:0 0 32px}.site-animated .showcase-header h1{font-size:clamp(2rem,3vw,2.7rem);line-height:1.2;letter-spacing:-.035em;margin:16px 0}.site-animated .showcase-header .intro-description{max-width:64ch}.site-animated .showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}.site-animated .showcase-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;color:#252b32;text-decoration:none;padding:32px 0;border-top:1px solid #e6e9ec}.showcase-card h2{font-size:1.5rem;margin:8px 0}.showcase-card p{font-size:.9375rem;color:#606973;line-height:1.65}.showcase-card .text-link{font-size:.875rem}.showcase-thumbnail{height:190px;position:relative;overflow:hidden;border:1px solid #e6e9ec;border-radius:12px;background:#fff}.showcase-thumbnail span{position:absolute;display:block;border-radius:6px}.thumb-workspace span{height:22px;left:18px;right:18px;background:#edf0f3}.thumb-workspace span:nth-child(1){top:38px;border-inline-start:14px solid #b9def4}.thumb-workspace span:nth-child(2){top:82px;border-inline-start:14px solid #a9ca96}.thumb-workspace span:nth-child(3){top:126px;border-inline-start:14px solid #ef826e}.thumb-gallery span{width:48px;height:66px;top:62px;left:calc(50% - 24px);background:#ef826e}.thumb-gallery span:nth-child(2){transform:translate(-40px,-14px);background:#b9def4}.thumb-gallery span:nth-child(3){transform:translate(40px,14px);background:#ffd367;border-radius:50%}.thumb-canvas span:nth-child(1){inset:30px;border:1px dashed #b7c4ce}.thumb-canvas span:nth-child(2){width:44px;height:44px;top:72px;left:calc(50% - 22px);background:#b9def4}.thumb-story span:nth-child(1){width:80px;height:80px;top:54px;left:calc(50% - 50px);background:#b9def4;transform:rotate(-12deg)}.thumb-story span:nth-child(2){width:60px;height:60px;top:72px;left:50%;background:#ef826e;border-radius:50%}.thumb-story span:nth-child(3){left:20px;right:20px;bottom:18px;height:3px;background:#a9ca96}.site-animated .home-showcases{padding-bottom:40px}.site-animated .home-showcases .section-heading{margin-bottom:8px}.site-animated .showcase-grid.is-compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.site-animated .is-compact .showcase-card{display:flex;flex-direction:column;align-items:stretch;gap:16px;border:0;padding:16px 0}.is-compact .showcase-thumbnail{height:164px}.is-compact .show-number{display:none}.is-compact .showcase-card h2{font-size:1.125rem}.showcase-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);gap:40px;align-items:start}.showcase-live{min-width:0}.showcase-live>.demo{padding:0;border:0;background:none;min-height:460px}.showcase-guide{border-inline-start:1px solid #e6e9ec;padding-inline-start:28px}.showcase-guide h2{font-size:1.125rem;margin:0 0 16px}.showcase-guide ol{padding-inline-start:24px;margin:0 0 32px}.showcase-guide li{padding-inline-start:6px;margin:0 0 16px;line-height:1.75}.showcase-guide p{font-size:.9375rem;line-height:1.8}.showcase-source,.showcase-boundary,.showcase-method{border-top:1px solid #e6e9ec;padding:32px 0;margin-top:24px}.showcase-source h2,.showcase-boundary h2,.showcase-method h2{font-size:1.5rem}.showcase-source>p,.showcase-boundary>p,.showcase-method>p{max-width:76ch;line-height:1.8}.showcase-code{margin:16px 0;border:1px solid #d8e0e7;border-radius:10px;min-width:0}.showcase-code summary{padding:16px;cursor:pointer;font-weight:600;min-height:52px}.showcase-code .code-block{margin:0;border-radius:0 0 9px 9px}.showcase-code pre{max-height:620px;overflow:auto}.showcase-next{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between;padding:24px 0;border-top:1px solid #e6e9ec}.showcase-next a{min-height:44px;display:flex;align-items:center;gap:8px}.site-animated .article-header:after{content:'';display:block;width:40px;height:3px;background:#d45e49;margin-top:24px}.site-animated .sidebar a[aria-current=page]{background:#e7f2fb;border-inline-start:2px solid #477491}.site-animated .top-nav a[aria-current=page]{text-decoration:underline;text-underline-offset:10px;text-decoration-color:#c95641;text-decoration-thickness:2px}.site-animated .header-inner{gap:20px}.site-animated .top-nav{gap:18px}.site-animated .top-nav a,.site-animated .site-footer a{display:inline-flex;align-items:center;min-height:44px}.site-animated .button,.site-animated .copy-button,.site-animated .top-nav a,.site-animated .sidebar a,.site-animated summary{transition:none}
@media(max-width:1100px){.site-animated .showcase-grid.is-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.showcase-workspace{gap:24px;grid-template-columns:minmax(0,1.8fr) minmax(220px,1fr)}}
@media(max-width:860px){.site-animated .showcase-grid{grid-template-columns:1fr}.showcase-workspace{grid-template-columns:1fr}.showcase-guide{border-inline-start:0;border-top:1px solid #e6e9ec;padding:24px 0 0}.site-animated .header-inner{flex-wrap:wrap}.site-animated .top-nav{display:flex;order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap}.site-animated .showcase-header{padding-bottom:24px}}
@media(max-width:480px){.site-animated .showcase-grid.is-compact{grid-template-columns:1fr}.site-animated .is-compact .showcase-card{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1fr);gap:18px}.site-animated .showcase-card{gap:18px}.site-animated .header-actions{margin-inline-start:auto}.site-animated .showcase-header h1{letter-spacing:-.025em}.site-animated .top-nav{gap:16px}.showcase-code pre{max-height:480px}}
.site-animated .route-progress{animation:none;transform:none}
.site-animated .copy-button{font-size:.875rem}.site-animated .code-toolbar{font-size:.8125rem}.motion-fallback{height:350px;display:grid;grid-template-columns:64px 64px;grid-template-rows:64px 64px;gap:64px;place-content:center;border:1px solid #e6e9ec;border-radius:16px}.motion-fallback .desk-tile{cursor:default}.showcase-live .demo-fallback>.showcase-thumbnail{height:350px}.showcase-live .demo-fallback>p{padding:18px;font-size:1rem}

/* Animated V5: geometry moves independently of labels and link hitboxes. */
.desk-guides{inset:auto;width:252px;height:252px;left:calc(50% - 126px);top:19px;border-style:dashed;pointer-events:none}.desk-guides:before,.desk-guides:after{display:none}.desk-orbit-dot{position:absolute;left:calc(50% - 5px);top:-5px;width:10px;height:10px;background:#ef826e;border-radius:50%}.desk-orbit-dot.opposite{top:auto;bottom:-5px;background:#b9def4}.desk-frame{position:absolute;width:216px;height:216px;left:calc(50% - 108px);top:37px;border:1px solid #52616d;pointer-events:none}.desk-tile-position{z-index:1}
.site-animated .showcase-grid.is-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.thumb-gallery span:nth-child(2){transform:none;translate:-40px -14px}.thumb-gallery span:nth-child(3){transform:none;translate:40px 14px}.thumb-story span:nth-child(1){transform:none;rotate:-12deg}
.thumb-choreography span{width:32px;height:80px;left:calc(50% - 16px);top:54px;background:#b9def4}.thumb-choreography span:nth-child(1){translate:-44px -20px;background:#ef826e}.thumb-choreography span:nth-child(3){translate:44px 20px;background:#ffd367}.thumb-surface span{width:90px;height:90px;left:calc(50% - 45px);top:45px;border:1px solid #52616d;background:#b9def4;rotate:-8deg}.thumb-surface span:nth-child(2){translate:12px 8px;rotate:4deg;background:#ffd367}.thumb-surface span:nth-child(3){translate:24px 16px;rotate:12deg;background:#ef826e;border-radius:50%}
@media(max-width:1100px){.site-animated .showcase-grid.is-compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.site-animated .showcase-grid.is-compact{grid-template-columns:1fr}}
.site-animated h1{word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
/* Two axes: libraries on the left, implementation kinds at the physical right. */
.comparison-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; border-block-end:1px solid var(--line); margin-block:24px; direction:ltr; }
.comparison-controls .comparison-tabs { margin:0; border:0; min-width:0; }
[dir=rtl] .comparison-controls .comparison-tabs { direction:rtl; }
.comparison-controls .comparison-tabs a { overflow-wrap:anywhere; }
.comparison-scenario-tabs { margin-left:auto !important; gap:4px; padding:3px; border:1px solid var(--line) !important; border-radius:8px; }
.comparison-scenario-tabs a { font-size:.875rem; font-weight:500; padding:8px 12px; border:0; border-radius:5px; }
.comparison-scenario-tabs [aria-selected=true] { background:var(--accent-soft); font-weight:650; }
.comparison-scenario[hidden] { display:none; }
.comparison-scenario { scroll-margin-top:calc(var(--sticky-top, var(--header)) + 24px); }
.comparison-scenario:not([hidden]) ~ .comparison-scenario:not([hidden]) { border-top:1px solid var(--line); padding-top:24px; margin-top:32px; }
.comparison-task-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:8px 24px; margin-bottom:12px; }
.comparison-task-heading h3 { font-size:1.25rem; margin:0; }
.comparison-task-heading code { font-size:.8125rem; color:var(--muted); }
.comparison-task { margin-bottom:24px; }
.comparison-code { margin-top:24px; }
.comparison-code pre { max-height:none; white-space:pre; overflow-wrap:normal; tab-size:2; }
.comparison-observation { border-inline-start:3px solid var(--coral); padding-inline-start:20px; margin-block:24px 12px; }
.comparison-observation p { font-size:.9375rem; }
.comparison-source-name { padding-block:8px; }
.comparison-controls a:focus-visible { outline:2px solid var(--comparison-accent); outline-offset:3px; }
@media(max-width:600px) { .comparison-scenario-tabs { width:100%; } .comparison-scenario-tabs a { flex:1 1 auto; justify-content:center; } .comparison-controls { gap:12px; padding-bottom:12px; } }

/* Source formatting is owned by Prettier; coloring by highlight.js. */
.code-block pre, .code-block code { white-space: pre; overflow-wrap: normal; word-break: normal; text-wrap: nowrap; }
.code-block pre { font-size: .875rem; line-height: 1.75; tab-size: 2; }
.hljs-keyword, .hljs-selector-tag, .hljs-literal { color: #92d2ed; }
.hljs-string, .hljs-regexp, .hljs-attr { color: #ecc0a6; }
.hljs-number, .hljs-title, .hljs-built_in { color: #c0dba0; }
.hljs-comment { color: #a5afbd; }
.hljs-tag, .hljs-name { color: #b2ccf4; }
.hljs-subst { color: #e8edf3; }
.compact .hljs { color: var(--ink); }
.compact .hljs span { color: inherit; }
.site-animated .site-header { background: white; }
@media (max-width: 1100px) { .site-animated .header-inner { gap: 12px; padding-inline: 20px; } .site-animated .search-trigger { min-width: 44px; } .site-animated .search-trigger .search-label,.site-animated .search-trigger kbd { display: none; } }
@media (max-width: 600px) { .site-animated .site-header { height: auto; } .site-animated .header-inner { flex-wrap: wrap; padding-block: 8px; } .site-animated .header-actions { margin-inline-start: auto; gap: 4px; flex-wrap: wrap; } }

/* Full copyable comparison sources scroll within their own code panels. */
.site-restate .comparison-code pre{max-height:36rem;overflow:auto;overscroll-behavior:contain}
.site-restate .compatibility{align-items:start;flex-wrap:wrap}
.site-restate .compatibility strong{white-space:normal;flex:1 1 18rem;min-width:0}
.site-restate .compatibility p{flex:2 1 30rem;min-width:0}

/* Restate FAQ and persistence learning, design/restate-ready-generation.json. */
.site-restate .faq-question-title{word-break:keep-all}.faq-answer-links{display:flex;gap:12px 24px;flex-wrap:wrap;align-items:center}.faq-guide{display:inline-flex;min-height:44px;align-items:center;font-size:.875rem;text-decoration:underline;text-underline-offset:4px}
.site-restate .persistence-prerequisite{border-inline-start:3px solid var(--coral);padding:12px 16px;margin-block:12px 24px;font-size:.875rem;line-height:1.8;min-width:0}
.site-restate .persistence-prerequisite p{margin:0 0 6px;font-size:.875rem}.persistence-prerequisite a{text-decoration:underline;text-underline-offset:4px;display:inline-block;min-height:44px;align-content:center}
.site-restate .faq-layout{grid-template-columns:232px minmax(0,1fr);column-gap:48px}.faq-layout .article{max-width:900px;width:100%;min-width:0}.faq-layout .article-header{margin-bottom:28px}
.faq-controls[hidden],.faq-question[hidden],.faq-empty[hidden]{display:none!important}.faq-search-label{display:block;font-size:.875rem;font-weight:600;margin-block-end:8px}.faq-search-field{display:flex;align-items:center;gap:12px;border:1px solid #a9b1b8;border-radius:8px;padding-inline:16px;background:var(--paper)}.faq-search-field:focus-within{outline:2px solid var(--ink);outline-offset:3px}.faq-search-field .icon{flex:0 0 20px}.faq-search-field input{min-width:0;width:100%;min-height:54px;padding-block:12px;background:transparent;color:var(--ink);border:0;outline:0;font:inherit;font-size:1rem}.faq-search-field input::placeholder{color:var(--muted)}
.faq-topics{display:flex;gap:8px;flex-wrap:wrap;margin-block:20px 12px}.faq-topics button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font:inherit;font-size:.875rem;cursor:pointer;text-align:start}.faq-topics button span{font-size:.8125rem;color:var(--muted)}.faq-topics button[aria-pressed=true]{background:#fff1ed;border-color:#c67867;color:#813a2b}.faq-topics button:hover{border-color:var(--ink)}
.faq-results-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-block-end:12px}.faq-results-bar p{margin:0;color:var(--muted);font-size:.875rem}.faq-results-bar button{font:inherit;font-size:.875rem;text-decoration:underline;text-underline-offset:4px;border:0;background:none;min-height:44px;cursor:pointer;color:var(--ink)}.faq-results-bar button:disabled{opacity:.5;cursor:default}
.faq-question.article-section{padding:0;margin-block:0 12px;border:1px solid var(--line);border-radius:8px;scroll-margin-top:calc(var(--header) + 28px)}.faq-question summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;min-height:76px;cursor:pointer}.faq-question summary::-webkit-details-marker{display:none}.faq-question summary>span{min-width:0}.faq-category{display:block;color:var(--muted);font-size:.8125rem;margin-block-end:6px}.faq-question-title{display:block;font-size:1.0625rem;font-weight:650;line-height:1.6;overflow-wrap:anywhere}.faq-question summary svg{width:20px;height:20px;flex:0 0 20px}.faq-question[open] summary svg{transform:rotate(180deg)}.faq-question[open]{border-color:#bbc1c6}.faq-question[open] .faq-category{color:#974b3b}.faq-question summary:hover{background:var(--soft)}.faq-question summary:focus-visible,.faq-topics button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.faq-answer{padding:0 24px 20px;min-width:0}.faq-answer>p{margin-block:0 16px}.faq-permalink{display:inline-flex;min-height:44px;align-items:center;font-size:.875rem;text-decoration:underline;text-underline-offset:4px}.faq-empty{padding:28px;border:1px dashed #a9b1b8;border-radius:8px}.faq-empty h2{font-size:1.125rem}.faq-empty p{line-height:1.8}
@media(max-width:1100px){.site-restate .faq-layout{grid-template-columns:200px minmax(0,1fr);column-gap:28px}}
@media(max-width:860px){.site-restate .faq-layout{grid-template-columns:minmax(0,1fr)}.faq-layout .article{max-width:100%}}
@media(max-width:480px){.faq-question summary{padding:16px;gap:12px}.faq-answer{padding:0 16px 16px}.faq-topics button{padding:10px 12px}.faq-question-title{font-size:1rem}.faq-empty{padding:20px}}

/* 2026-09-17 · Compact Impact homepage renewal and readable workbenches. */
:root{--ink:#101828;--muted:#52606d;--line:#d8dee6;--soft:#f4f7fa;--accent:#d7ff3f;--coral:#ff6b57;--blue:#2854ff;--code:#101828;--radius:10px;--header:64px}
.site-restate{--accent:#ff6b57;--accent-soft:#fff0ed}.site-animated{--accent:#2854ff;--accent-soft:#edf1ff}
.site-header{height:var(--header);background:#fff;border-bottom:1px solid #cfd6df}
.header-inner{min-height:var(--header);gap:24px}.brand{gap:10px;font-size:1.0625rem;font-weight:750;letter-spacing:-.025em}.brand-image{width:34px;height:34px;border-radius:9px}.version{border-color:#cfd6df;background:#f7f9fb}.top-nav{font-weight:600}.top-nav a:hover,.text-link:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.search-trigger{border-radius:7px;border-color:#cfd6df}.button{border-radius:7px;font-weight:700}.button.primary{background:var(--ink)}.button.primary:hover{background:#202c3d}.button.secondary{border-color:#aeb8c4}.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.075em;text-transform:uppercase}.status-dot{border-radius:2px}.site-footer{background:#fff}

.hub-main{padding-bottom:0}.hub-intro,.hub-intro.has-brand{max-width:none;min-height:570px;padding:76px 0 64px;grid-template-columns:minmax(0,1.2fr) minmax(180px,.55fr);justify-content:stretch;border-bottom:1px solid var(--line)}.hub-intro-copy{align-self:center;max-width:800px}.hub-intro h1{max-width:11ch;font-size:clamp(3.4rem,6.7vw,6.5rem);font-weight:780;line-height:.98;letter-spacing:-.07em}.hub-intro .intro-description{max-width:650px;font-size:1.125rem}.hub-symbol{justify-self:end;width:clamp(156px,16vw,236px);height:auto;filter:none}.name-note{margin-top:34px;padding:13px 16px;border:1px solid var(--ink);border-inline-start:8px solid #d7ff3f;background:var(--ink);color:#fff;max-width:660px}.name-note code,.name-note span{color:#fff}.project-grid{gap:18px}.project-card{position:relative;overflow:hidden;border:1.5px solid #101828;border-radius:10px;padding:32px;transition:transform .18s ease,background-color .18s ease}.project-card::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:#d7ff3f}.project-card.coral::before{background:#ff6b57}.project-card.blue::before{background:#2854ff}.project-card:hover{border-color:#101828;box-shadow:none;transform:translateY(-3px)}.project-title h3{font-size:2rem;font-weight:780}.project-brand-image{width:44px;height:44px}.project-art{border:1px solid var(--line);background:#f4f7fa}.project-card h4{font-size:1.15rem}.project-card>p{font-size:.95rem}.project-links{border-color:#bac3ce}.project-links .text-link{font-weight:750}

.marketing-main{padding-bottom:0}.marketing-hero{min-height:610px;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);gap:clamp(40px,6vw,92px);padding-block:64px}.marketing-hero h1{max-width:10ch;font-size:clamp(3.4rem,5.8vw,5.7rem);font-weight:780;line-height:1.01;letter-spacing:-.07em}.marketing-promise{padding-inline-start:14px;border-inline-start:5px solid var(--coral);font-size:1.25rem}.marketing-hero .intro-description{font-size:1.05rem}.marketing-main .button.primary{background:var(--coral);border-color:#d34736;color:#101828}.marketing-proof{align-self:center}.marketing-proof>.code-block{border:1px solid #26364a;border-bottom:7px solid var(--coral);border-radius:10px}.marketing-proof pre{font-size:.875rem}.marketing-flow{margin-inline:0;padding:18px 20px;border:1px solid #cfd6df;border-top:0;background:#f7f9fb}.flow-shape{border:1px solid #101828}.comparison-prompts{margin-inline:calc(var(--page-gutter) * -1);padding:0 var(--page-gutter);border:0;background:#101828;color:#fff}.comparison-prompt{padding-block:28px}.comparison-prompt+.comparison-prompt{border-inline-start-color:#334156}.prompt-brand,.prompt-benefit,.prompt-benefit strong{color:#fff}.prompt-compare{color:#d7ff3f}.marketing-reasons{padding-block:64px}.marketing-reasons h2,.marketing-comparison h2,.marketing-fit h2{font-size:clamp(2rem,3.5vw,3.25rem);font-weight:760;letter-spacing:-.055em}.reason-grid{gap:0;margin-top:38px;border-block:1px solid #101828}.reason-grid article,.reason-grid article+article{min-height:240px;padding:28px;border-inline-start:1px solid #101828}.reason-grid article:first-child{padding-inline-start:0}.reason-grid article:last-child{padding-inline-end:0}.reason-grid h3{font-size:1.3rem}.marketing-comparison{padding-block:64px 20px;border-top:1px solid #101828}.comparison-controls{border-color:#101828}.comparison-tabs{background:#f4f7fa}.comparison-tabs a[aria-current=true]{background:#101828;color:#fff}.comparison-code .code-block{border:1px solid #27364a}.quick-start{padding-block:72px}.quick-start .section-heading h2{font-size:clamp(2rem,3.4vw,3rem)}.learning-section{padding-block:48px 72px}.learning-grid{border-color:#101828;border-radius:8px}.learning-grid article{border-color:#101828;min-height:220px}.marketing-fit{border:1.5px solid #101828;border-inline-start:8px solid var(--coral);border-radius:8px;padding:36px 40px}

.product-rail{margin-inline:calc(var(--page-gutter) * -1);padding:56px var(--page-gutter) 64px!important;border:0!important;background:#101828;color:#fff}.product-rail-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.product-rail .eyebrow{margin:0;color:#aab6c6}.product-rail h2{color:#fff;font-size:clamp(1.8rem,3vw,2.75rem)}.product-rail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-block:1px solid #445166}.product-rail-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"index brand arrow" "index meta arrow";align-items:center;gap:2px 18px;min-height:132px;padding:26px 24px;color:#fff;border-inline-end:1px solid #445166}.product-rail-card:last-child{border-inline-end:0}.product-rail-card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:#d7ff3f;transform:scaleY(0);transform-origin:bottom;transition:transform .18s ease}.product-rail-card.accent-coral::before{background:#ff6b57}.product-rail-card.accent-blue::before{background:#2854ff}.product-rail-card:hover::before,.product-rail-card:focus-visible::before{transform:scaleY(1)}.product-rail-index{grid-area:index;align-self:start;color:#9eabba;font:700 .7rem var(--mono)}.product-rail-brand{grid-area:brand;display:flex;align-items:center;gap:14px;font-size:1.55rem}.product-rail-brand img{width:44px;height:44px;border-radius:11px}.product-rail-card code{grid-area:meta;color:#9eabba;font-size:.75rem}.product-rail-arrow{grid-area:arrow;display:grid;place-items:center;width:44px;height:44px;border:1px solid #536177;border-radius:50%}.product-rail-card:hover .product-rail-arrow{background:#fff;color:#101828}

/* One roomy example surface for Restate and Animated: preview and source stay readable. */

@media(max-width:980px){.marketing-hero{grid-template-columns:1fr;min-height:0}.marketing-proof{max-width:760px}.hub-intro,.hub-intro.has-brand{grid-template-columns:minmax(0,1fr) 160px;min-height:500px}.learning-workbench{grid-template-columns:1fr}.lesson-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.reason-grid article,.reason-grid article+article{padding-inline:20px}.product-rail-card{padding-inline:18px}}

/* 2026-09-17 Compact Impact: readable 1200px composition. Full-width bands
   keep their background; their content follows the same calm inner rhythm. */
:root{--content-max:1200px;--content-gutter:clamp(20px,4vw,48px)}
.header-inner{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--content-gutter)}
.site-footer{padding-inline:max(var(--content-gutter),calc((100vw - var(--content-max))/2 + var(--content-gutter)))}

/* OSS hub */
.hub-main{padding-inline:0}
.hub-intro,.hub-intro.has-brand,#projects{box-sizing:border-box;width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--content-gutter)}
.hub-intro,.hub-intro.has-brand{min-height:520px;padding-block:64px 56px;grid-template-columns:minmax(0,1fr) minmax(160px,300px);gap:clamp(40px,7vw,96px)}
.hub-intro-copy{max-width:690px}
.hub-intro h1{max-width:none;font-size:clamp(3.25rem,5.8vw,5.5rem)}
.hub-intro h1,.marketing-hero h1{word-break:keep-all;overflow-wrap:anywhere}
.hub-intro .intro-description{max-width:64ch}
.hub-symbol{width:clamp(150px,16vw,220px)}
#projects{padding-block:58px 76px}
.project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),480px));justify-content:start;gap:24px}
.project-card{display:flex;flex-direction:column;max-width:480px;min-height:100%;padding:28px}
.project-art{width:100%;height:176px;margin-block:18px;background:#f4f7fa}
.project-art img{width:min(72%,290px);height:170px}
.project-card>p{max-width:56ch;min-height:0}
.project-links{margin-top:auto}

/* Restate front page */
.marketing-main{padding-inline:0}
.marketing-main>:where(.marketing-hero,.marketing-reasons,.marketing-comparison,.quick-start,.learning-section,.compatibility){box-sizing:border-box;width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--content-gutter)}
.marketing-hero{min-height:540px;grid-template-columns:minmax(440px,1.08fr) minmax(400px,.92fr);gap:clamp(36px,4vw,52px);padding-block:58px 54px}
.marketing-hero h1{max-width:none;font-size:clamp(3.1rem,4vw,4rem)}
.marketing-pitch{max-width:580px}
.marketing-proof{width:100%;max-width:570px;justify-self:end}
.comparison-prompts{margin-inline:0;padding-inline:max(var(--content-gutter),calc((100vw - var(--content-max))/2 + var(--content-gutter)))}
.marketing-reasons{padding-block:58px}
.reason-grid article,.reason-grid article+article{min-height:210px;padding:26px 24px}
.marketing-comparison{padding-block:58px 18px}
.quick-start{padding-block:64px}
.learning-section{padding-block:46px 64px}
.marketing-fit{box-sizing:border-box;width:calc(100% - 2*var(--content-gutter));max-width:calc(var(--content-max) - 2*var(--content-gutter));margin:36px auto;padding:32px 36px}
.compatibility{margin-bottom:48px}

/* Shared product switcher: three compact destinations instead of stretched halves. */
.product-rail,.site-animated .mastery-home>.product-rail{box-sizing:border-box;width:100%;max-width:none;margin-inline:0;padding:54px max(var(--content-gutter),calc((100vw - var(--content-max))/2 + var(--content-gutter))) 60px!important}
.product-rail-heading{max-width:760px;margin-bottom:22px}
.product-rail-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),340px));justify-content:start;gap:0 18px;border-block:1px solid #445166}
.product-rail-card{min-height:122px;padding:22px 18px;border-inline-end:1px solid #445166;border-bottom:0}
.product-rail-brand{font-size:1.28rem}
.product-rail-symbol{position:relative;width:44px;height:44px;display:block;border:2px solid #fff;background:#152235}
.product-rail-symbol i{position:absolute;width:13px;height:13px;background:#a9dc8b;border:1px solid #101828}
.product-rail-symbol i:nth-child(1){left:6px;top:6px}.product-rail-symbol i:nth-child(2){right:6px;top:15px}.product-rail-symbol i:nth-child(3){left:13px;bottom:5px}
.product-rail-card.accent-green::before{background:#a9dc8b}
.product-rail-card.is-local{cursor:default}
.product-rail-card.is-local .product-rail-arrow{opacity:.45}

@media(max-width:980px){
  .marketing-hero{grid-template-columns:1fr;min-height:0}
  .marketing-pitch,.marketing-proof{max-width:760px;justify-self:start}
  .hub-intro,.hub-intro.has-brand{min-height:470px;grid-template-columns:minmax(0,1fr) 150px}
}
@media(max-width:760px){
  :root{--content-gutter:20px}
  .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "nav nav";height:auto;min-height:var(--header);padding:10px 20px;row-gap:4px}
  .header-inner .brand{grid-area:brand}
  .header-inner .top-nav{grid-area:nav;justify-self:start;min-width:0}
  .header-inner .header-actions{grid-area:actions;justify-self:end;min-width:0}
  .is-home .header-inner{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"brand . language language" "nav nav . search";column-gap:10px}
  .is-home .header-inner .header-actions{display:contents}
  .is-home .header-inner .language-control{grid-area:language;justify-self:end}
  .is-home .header-inner .search-trigger{grid-area:search;justify-self:end}
  .hub-intro,.hub-intro.has-brand{grid-template-columns:1fr;min-height:0;padding-block:44px}
  .hub-symbol{grid-row:1;width:78px}
  .hub-intro h1{max-width:none;font-size:clamp(2.72rem,12.2vw,3.35rem)}
  #projects{padding-block:44px 58px}
  .project-grid{grid-template-columns:1fr}
  .project-card{max-width:100%}
  .marketing-hero{padding-block:42px}
  .marketing-hero h1{max-width:none;font-size:clamp(2.78rem,12.5vw,3.35rem)}
  .marketing-fit{width:calc(100% - 40px);max-width:none;padding:28px 22px}
  .product-rail-grid{grid-template-columns:1fr;gap:0}
  .product-rail-card{border-inline-end:0;border-bottom:1px solid #445166}
  .product-rail-card:last-child{border-bottom:0}
}

/* 2026-09-17 readable type and spacing contract. */
:root{
  --text-xs:.875rem;
  --text-sm:.9375rem;
  --text-base:1rem;
  --text-lead:1.125rem;
  --title-section:clamp(1.75rem,3vw,2.5rem);
  --title-page:clamp(2.35rem,4.6vw,3.5rem);
  --space-section:clamp(3.5rem,7vw,5.5rem);
}
body{font-size:var(--text-base);line-height:1.65}
h1,h2,h3,h4{text-wrap:pretty;overflow-wrap:anywhere}
html:lang(ko) h1,html:lang(ko) h2,html:lang(ko) h3,html:lang(ko) h4{word-break:keep-all;overflow-wrap:break-word}
h1{font-size:var(--title-page);line-height:1.08}
h2{font-size:var(--title-section);line-height:1.2}
.hub-intro h1,.marketing-hero h1{max-width:16ch;font-size:var(--title-page);line-height:1.08;letter-spacing:-.045em}
.hub-intro,.hub-intro.has-brand{min-height:0;padding-block:var(--space-section)}
.marketing-hero{min-height:0;padding-block:var(--space-section)}
.intro-description,.marketing-hero .intro-description{font-size:var(--text-lead);line-height:1.65}
.eyebrow,.version,.section-index,.pill,.project-links,.site-footer,.code-toolbar,.copy-button,.compact pre,.feature-number,.learning-grid a,.compatibility,.sidebar,.nav-group-title,.breadcrumb,.article-header .eyebrow,table,th code,.toc,.pagination span,.pagination strong,.article-meta,.filter,.example-heading p,.example-code,.example-guide,.demo-fallback,.consumer p,.demo .button,.demo-status,.demo label,.demo-local,.demo select,.demo input[type=number],.search-status,.search-result small,.search-result p,.dialog-footer,.product-rail-index,.product-rail-card code{font-size:var(--text-xs)}
.code-block pre{font-size:var(--text-xs);line-height:1.75}
.article-section p,.project-card>p,.showcase-card p{font-size:var(--text-base);line-height:1.75}
.site-animated .mastery-home,.site-animated .motion-page,.site-animated .examples-main{box-sizing:border-box;width:100%;max-width:var(--content-max);margin-inline:auto}
.site-animated .motion-page,.site-animated .examples-main{padding-inline:var(--content-gutter)}
@media(max-width:760px){
  .hub-intro h1,.marketing-hero h1{max-width:none;font-size:clamp(2.5rem,11vw,3rem)}
  .intro-description,.marketing-hero .intro-description{font-size:1.0625rem}
}
@media(max-width:480px){
  .product-rail-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .marketing-pitch,.marketing-proof,.marketing-pitch>*{min-inline-size:0;max-inline-size:100%}
  .site-animated.is-home .header-inner{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand brand brand" "nav language search"}
  .site-chorus.is-home .header-inner{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand brand" ". language"}
  .site-animated.is-home .language-control select,.site-chorus.is-home .language-control select{max-width:96px}
}

/* Restate v3 brand on shared cards (PROJECT_CONCEPTS.txt). */
.project-card.magenta::before{background:#c8175f}.product-rail-card.accent-magenta::before{background:#c8175f}.status-dot.magenta{background:#c8175f}
/* Restate v3 — design/restate-v3.md, PROJECT_CONCEPTS.txt §2. Loaded only by restate. */
.site-restate {
  --rs-magenta: #c8175f;
  --rs-magenta-deep: #a0104b;
  --rs-signal: #ff3d8b;
  --rs-aub: #1e0e1a;
  --rs-aub-soft: #2e1828;
  --rs-aub-line: #4a2a3f;
  --rs-blush: #fff1f6;
  --rs-blush-line: #f5d5e3;
  --ink: #16181d;
  --muted: #5b616b;
  --line: #e6e8ec;
  --soft: #f7f5f6;
  --accent: var(--rs-magenta);
  --accent-soft: var(--rs-blush);
  --coral: var(--rs-magenta);
  --code: var(--rs-aub);
  --rs-radius: 16px;
  --rs-inner: 1200px;
  background: #fff;
}
.site-restate [hidden] { display: none !important; }
.site-restate ::selection { background: #ffd2e4; }
.site-restate *:focus-visible { outline: 3px solid var(--rs-magenta); outline-offset: 3px; }
.site-restate a { text-underline-offset: 4px; }
.rs-inner { width: 100%; max-width: calc(var(--rs-inner) + 2 * var(--page-gutter)); margin-inline: auto; padding-inline: var(--page-gutter); }
.rs-main { overflow-x: clip; }

/* Header */
.site-restate .rs-header { height: auto; background: #fff; border-bottom: 1px solid var(--line); }
.site-restate .rs-header .header-inner { min-height: 68px; }
.rs-brand { gap: 10px; font-weight: 780; letter-spacing: -.05em; }
.rs-brand .brand-image { width: 32px; height: 32px; }
.site-restate .rs-nav { gap: 6px; }
.site-restate .rs-nav a { position: relative; z-index: 0; padding-inline: 12px; border-radius: 999px; font-weight: 600; color: var(--muted); transition: color .16s; }
/* The tap target stays 44px tall; the highlight is a pill around the label, not a near-round blob. */
.site-restate .rs-nav a::before { content: ""; position: absolute; inset: 50% 0 auto; z-index: -1; height: min(100%, 2.25em); transform: translateY(-50%); border-radius: 999px; background: transparent; transition: background-color .16s; }
.site-restate .rs-nav a:hover { color: var(--ink); }
.site-restate .rs-nav a:hover::before { background: var(--soft); }
.site-restate .rs-nav a[aria-current=page] { color: var(--rs-magenta); }
.site-restate .rs-nav a[aria-current=page]::before { background: var(--rs-blush); }
.site-restate .search-trigger { border-radius: 999px; }
.site-restate .route-progress { background: var(--rs-signal); }

/* Buttons and links */
.rs-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.rs-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px; border-radius: 999px; font-weight: 700; font-size: 1rem; border: 1.5px solid transparent; transition: transform .18s cubic-bezier(.2, .8, .2, 1), background-color .18s, color .18s, border-color .18s; }
.rs-button:hover { transform: translateY(-2px); }
.rs-button:active { transform: translateY(0) scale(.98); }
.rs-button.primary { background: var(--rs-magenta); color: #fff; }
.rs-button.primary:hover { background: var(--rs-magenta-deep); }
.rs-button.ghost { border-color: rgba(255, 255, 255, .42); color: #fff; }
.rs-button.ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.rs-button.light { background: #fff; color: var(--rs-aub); }
.rs-button.ghost-light { border-color: rgba(255, 255, 255, .6); color: #fff; }
.rs-button .icon { width: 18px; height: 18px; }
.rs-text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 650; color: var(--rs-magenta); }
.rs-text-link:hover { text-decoration: underline; }
.rs-text-button { min-height: 44px; padding: 0 4px; color: var(--muted); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.rs-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; font: 700 .8125rem/1.4 var(--mono); letter-spacing: .02em; color: var(--rs-magenta); text-transform: uppercase; }
html[lang=ko] .rs-kicker, html[lang=ja] .rs-kicker, html[lang^=zh] .rs-kicker { text-transform: none; }
.rs-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rs-signal); box-shadow: 0 0 0 4px rgba(255, 61, 139, .22); animation: rs-live 1.8s ease-in-out infinite; }
@keyframes rs-live { 50% { box-shadow: 0 0 0 7px rgba(255, 61, 139, 0); } }

/* Hero */
.rs-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--rs-aub); color: #fff; padding-block: clamp(56px, 8vw, 104px) clamp(64px, 8vw, 112px); }
.rs-hero-glow { position: absolute; inset: 0; z-index: -1; background:
  repeating-radial-gradient(circle at 74% 46%, transparent 0 62px, rgba(255, 61, 139, .09) 62px 63px),
  radial-gradient(circle at 74% 46%, rgba(200, 23, 95, .34), transparent 46%); }
.rs-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.rs-hero-copy { min-width: 0; }
.rs-eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 6px 14px 6px 10px; border: 1px solid var(--rs-aub-line); border-radius: 999px; color: #f3dce7; font-size: .875rem; font-weight: 600; }
.rs-hero-title { margin: 24px 0 0; font-size: clamp(2.9rem, 6.6vw, 5.9rem); font-weight: 820; line-height: 1.02; letter-spacing: -.055em; color: #fff; word-break: keep-all; text-wrap: balance; }
.rs-line { display: block; }
.rs-line:last-child { color: var(--rs-signal); }
/* Server-rendered entrance: runs from the first paint, never after scripts. */
.rs-word { display: inline-block; animation: rs-word-in 900ms cubic-bezier(.16, 1, .3, 1) calc(80ms + var(--i, 0) * 90ms) both; }
@keyframes rs-word-in { from { opacity: 0; transform: translateY(42px) rotate(4deg); } to { opacity: 1; transform: none; } }
.rs-lead { max-width: 36rem; margin-top: 24px; font-size: 1.125rem; line-height: 1.8; color: #e3cfd9; word-break: keep-all; }
.rs-hero .rs-actions { margin-top: 32px; }
.rs-install { max-width: 30rem; margin-top: 24px; }
.site-restate .rs-install .code-block { margin: 0; background: #2a1624; border: 1px solid var(--rs-aub-line); }
.site-restate .rs-install .code-toolbar { background: transparent; }
.site-restate .rs-install .copy-button { color: #f3dce7; }

/* Stage (static and live) */
.rs-hero-stage { min-width: 0; }
.rs-stage-live { border: 1px solid var(--rs-aub-line); border-radius: 24px; background: linear-gradient(180deg, #2a1422, #1b0c17); padding: 18px; }
.rs-stage-label { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; color: #f3dce7; font: 600 .8125rem/1.4 var(--mono); }
.rs-stage-field { position: relative; aspect-ratio: 5 / 4; min-height: 340px; }
.rs-stage-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rs-stage-lines line { stroke: rgba(255, 255, 255, .16); stroke-width: 1.5; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; transition: stroke .3s; }
.rs-stage-lines line.is-lit { stroke: var(--rs-signal); stroke-dasharray: none; }
.rs-node { position: absolute; transform: translate(-50%, -50%); }
.rs-node-store { left: 50%; top: 50%; display: grid; place-items: center; align-content: center; gap: 2px; width: 108px; height: 108px; border-radius: 50%; background: var(--rs-magenta); color: #fff; font: 700 .9375rem/1.2 var(--mono); box-shadow: 0 0 0 8px rgba(200, 23, 95, .22), 0 0 0 18px rgba(200, 23, 95, .08); z-index: 2; }
.rs-node-store small { font: 600 .6875rem var(--sans); color: #ffd2e4; }
.rs-pulse { position: absolute; left: 50%; top: 50%; width: 108px; height: 108px; border: 2px solid var(--rs-signal); border-radius: 50%; pointer-events: none; z-index: 1; }
.rs-node-card { width: min(44%, 220px); z-index: 3; }
.rs-pos-0 { left: 20%; top: 24%; } .rs-pos-1 { left: 80%; top: 24%; } .rs-pos-2 { left: 20%; top: 76%; } .rs-pos-3 { left: 80%; top: 76%; }
.rs-node-card > strong, .rs-card-body { display: grid; gap: 4px; }
.rs-card-body code { font-size: .75rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs-stage-live .rs-node-card { padding: 12px 14px 10px; border-radius: 14px; background: #fff; color: var(--ink); transition: background-color .3s, color .3s, box-shadow .3s; box-shadow: 0 1px 0 rgba(0, 0, 0, .04); }
.rs-stage-live .rs-node-card[data-state=skipped] { background: #3a2233; color: #d5bfcb; }
.rs-stage-live .rs-node-card[data-state=skipped] code { color: #a78d9b; }
.rs-card-body strong { font-size: .875rem; }
.rs-card-value { font: 800 1.5rem/1.2 var(--mono); letter-spacing: -.02em; min-height: 1.8rem; overflow: hidden; }
.rs-card-renders { font-size: .75rem; color: var(--muted); }
.rs-node-card[data-state=skipped] .rs-card-renders { color: #a78d9b; }
.rs-card-glow { position: absolute; inset: -5px; border: 2px solid var(--rs-signal); border-radius: 18px; box-shadow: 0 0 0 6px rgba(255, 61, 139, .18); pointer-events: none; }
.rs-card-state { position: absolute; inset-block-start: -11px; inset-inline-end: 10px; padding: 2px 10px; border-radius: 999px; background: var(--rs-aub); color: #fff; font: 700 .6875rem/1.6 var(--sans); }
.rs-node-card[data-state=rendered] .rs-card-state { background: var(--rs-signal); }
.rs-signal { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--rs-signal); box-shadow: 0 0 0 4px rgba(255, 61, 139, .25); transform: translate(-50%, -50%); z-index: 2; pointer-events: none; }
.rs-stage-console { display: grid; gap: 10px; margin-top: 12px; padding: 14px 16px; border-radius: 16px; background: #120810; border: 1px solid var(--rs-aub-line); }
.rs-stage-code { display: block; min-height: 1.5em; font-size: .8125rem; color: #ffd2e4; overflow-wrap: anywhere; }
.rs-stage-caption { margin: 0; min-height: 3.2em; color: #e3cfd9; font-size: .9375rem; line-height: 1.6; }
.rs-stage-note { margin-top: 12px; color: #e3cfd9; font-size: .9375rem; line-height: 1.6; }
.rs-stage-steps { display: flex; flex-wrap: wrap; gap: 6px; }
.rs-stage-steps button { min-height: 36px; padding: 0 12px; border: 1px solid var(--rs-aub-line); border-radius: 999px; color: #e3cfd9; font-size: .8125rem; font-weight: 600; transition: background-color .16s, color .16s, border-color .16s; }
.rs-stage-steps button:hover:enabled { border-color: #f3dce7; color: #fff; }
.rs-stage-steps button:disabled { opacity: 1; cursor: default; }
.rs-stage-steps button.is-active { background: var(--rs-signal); border-color: var(--rs-signal); color: #fff; }
@media (pointer: coarse) { .rs-stage-steps button { min-height: 44px; } }

/* Promises */
.rs-promises { border-bottom: 1px solid var(--line); background: #fff; }
.rs-promise-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.rs-promise-list li + li { border-inline-start: 1px solid var(--line); }
.rs-promise-list a { display: grid; gap: 6px; height: 100%; padding: 36px clamp(16px, 3vw, 40px); transition: background-color .2s; }
.rs-promise-list li:first-child a { padding-inline-start: 0; }
.rs-promise-list a:hover { background: var(--rs-blush); }
.rs-promise-label { font: 700 .8125rem var(--mono); color: var(--rs-magenta); }
.rs-promise-value { display: flex; align-items: baseline; gap: 12px; font: 850 clamp(2.6rem, 5vw, 4rem)/1.05 var(--sans); letter-spacing: -.05em; color: var(--ink); }
.rs-arrow { color: var(--rs-signal); font-weight: 500; }
.rs-promise-list strong { font-size: 1.125rem; line-height: 1.45; }
.rs-promise-body { color: var(--muted); font-size: .9375rem; line-height: 1.7; }

/* Sections */
.rs-section { padding-block: clamp(72px, 9vw, 128px); }
.rs-section-head { max-width: 46rem; margin-bottom: clamp(32px, 4vw, 56px); }
.rs-section-head h2 { font-size: clamp(2.1rem, 4.4vw, 3.6rem); font-weight: 800; line-height: 1.1; letter-spacing: -.05em; word-break: keep-all; }
.rs-section-head > p:last-child { margin-top: 18px; font-size: 1.0625rem; line-height: 1.8; max-width: 40rem; word-break: keep-all; }
.rs-footnote { margin-top: 24px; font-size: .875rem; line-height: 1.8; max-width: 62rem; }

/* Comparison */
.rs-compare-controls { margin-bottom: 24px; }
.rs-compare:not(.is-live) .rs-compare-controls a { color: var(--rs-magenta); font-weight: 600; }
.rs-compare-live { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 40px; align-items: end; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(180deg, #fff, #fdf8fa); }
.rs-compare-choices { display: grid; gap: 18px; }
.rs-choice-caption { display: block; margin-bottom: 8px; font: 700 .75rem var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.rs-choice { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 16px; background: #f4eff2; width: fit-content; max-width: 100%; }
.rs-choice > button { position: relative; z-index: 1; min-height: 44px; padding: 0 16px; border-radius: 12px; color: var(--muted); font-weight: 650; font-size: .9375rem; transition: color .2s; }
.rs-choice > button[aria-selected=true], .rs-choice > button[aria-checked=true] { color: var(--ink); }
.rs-choice-highlight, .rs-task-highlight, .rs-tool-highlight, .rs-view-highlight, .rs-file-highlight, .rs-segment-highlight, .rs-grow-highlight { border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(22, 24, 29, .08), 0 4px 14px rgba(200, 23, 95, .12); }
.rs-tool-tabs .rs-tool-highlight { background: var(--rs-aub); }
.rs-tool-tabs > button[aria-checked=true] { color: #fff; }
.rs-meters { display: grid; gap: 14px; }
.rs-meter { display: grid; gap: 6px; }
.rs-meter-name { margin: 0; font: 700 .8125rem var(--mono); color: var(--muted); }
.rs-meter.is-restate .rs-meter-name { color: var(--rs-magenta); }
.rs-meter-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.rs-meter-row strong { font: 800 1.5rem/1 var(--mono); min-width: 5.5ch; text-align: end; }
.rs-meter-unit { font: 600 .75rem var(--sans); color: var(--muted); }
.rs-meter-bar { height: 10px; border-radius: 999px; overflow: hidden; }
.rs-meter-apis { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; min-height: 26px; }
.rs-meter-apis code { display: inline-block; padding: 2px 8px; border-radius: 6px; background: #f1edf0; font-size: .75rem; }
.rs-meter.is-restate .rs-meter-apis code { background: var(--rs-blush); color: var(--rs-magenta-deep); }
.rs-meter-delta { margin: 4px 0 0; font-size: .9375rem; color: var(--ink); }
.rs-meter-delta strong { font: 800 1.25rem var(--mono); color: var(--rs-magenta); }
.rs-compare-task { margin-top: 28px; }
.rs-compare.is-live .rs-compare-task-head { display: none; }
.rs-compare-task-head h3 { font-size: 1.375rem; }
.rs-compare-task-head p { margin-top: 6px; }
.rs-compare-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.rs-compare-tools, .rs-compare-restate { min-width: 0; display: grid; gap: 20px; align-content: start; }
.rs-tool-note { margin: 0 0 12px; font-size: .9375rem; line-height: 1.7; min-height: 5.1em; }
.rs-tool-note strong { color: var(--ink); }
.rs-tool-note span { display: block; color: var(--muted); }
.rs-restate-note strong { color: var(--rs-magenta); }
.rs-code-head { display: flex; justify-content: space-between; gap: 12px; padding: 10px 16px; border-radius: 14px 14px 0 0; background: #2a1624; color: #f3dce7; font: 700 .8125rem var(--mono); }
.rs-compare-restate .rs-code-head { background: var(--rs-magenta); color: #fff; }
.rs-code-count { font-weight: 500; opacity: .85; }
.site-restate .rs-compare .code-block { margin: 0; border-radius: 0 0 14px 14px; }
.site-restate .rs-compare .code-block pre { max-height: 32rem; overflow: auto; overscroll-behavior: contain; }
.rs-compare-fair { margin-top: 16px; padding-inline-start: 14px; border-inline-start: 3px solid var(--rs-blush-line); font-size: .9375rem; line-height: 1.8; }
.rs-compare-method { margin-top: 24px; font-size: .9375rem; }
.rs-compare-method summary { min-height: 44px; display: flex; align-items: center; font-weight: 650; color: var(--rs-magenta); }
.rs-compare-method p, .rs-compare-method li { line-height: 1.8; color: var(--muted); }
.site-restate .persistence-prerequisite { border-inline-start-color: var(--rs-magenta); background: var(--rs-blush); border-radius: 0 10px 10px 0; }

/* Fast */
.rs-fast { background: var(--rs-blush); border-block: 1px solid var(--rs-blush-line); }
.rs-fast-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.rs-meter-card { min-width: 0; padding: clamp(20px, 2.4vw, 32px); border: 1px solid var(--rs-blush-line); border-radius: 24px; background: #fff; box-shadow: 0 20px 48px -32px rgba(200, 23, 95, .45); }
.rs-card-head h3 { font-size: 1.375rem; }
.rs-card-head p { margin-top: 6px; font-size: .9375rem; line-height: 1.7; }
.rs-map-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.rs-map-actions button, .rs-writes-foot button { min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--ink); color: #fff; font-weight: 650; font-size: .9375rem; transition: transform .16s, background-color .16s; }
.rs-map-actions button:hover, .rs-writes-foot button:hover { background: var(--rs-magenta); }
.rs-map-actions button:active, .rs-writes-foot button:active { transform: scale(.97); }
.rs-map-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.rs-map-column { min-width: 0; padding: 14px; border-radius: 16px; background: #faf7f9; }
.rs-map-column.is-selected { background: var(--rs-blush); }
.rs-map-title { display: grid; gap: 2px; margin: 0 0 10px; }
.rs-map-title span { font-weight: 700; color: var(--ink); font-size: .9375rem; }
.rs-map-title code { font-size: .75rem; color: var(--muted); }
.rs-map-column ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rs-map-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "field renders" "value renders"; align-items: center; gap: 0 8px; padding: 8px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--line); overflow: hidden; }
.rs-map-flash { position: absolute; inset: 0; background: var(--rs-signal); pointer-events: none; }
.rs-map-field, .rs-map-value, .rs-map-renders { position: relative; }
.rs-map-field { grid-area: field; font-size: .8125rem; color: var(--muted); }
.rs-map-value { grid-area: value; font-size: .875rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-map-renders { grid-area: renders; font: 800 1.25rem var(--mono); }
.rs-map-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 12px; font-size: .875rem; font-weight: 600; }
.rs-map-total strong { font: 850 1.75rem var(--mono); }
.rs-map-column.is-selected .rs-map-total strong { color: var(--rs-magenta); }
.rs-map-bar { margin-top: 6px; }
.rs-map .rs-text-button { margin-top: 12px; }
.rs-map-static .rs-map-columns ul { padding-inline-start: 18px; }
.rs-writes { display: grid; gap: 16px; }
.rs-inline-code { display: block; padding: 10px 12px; border-radius: 10px; background: var(--rs-aub); color: #ffd2e4; font-size: .8125rem; overflow-wrap: anywhere; }
.rs-field { display: grid; gap: 6px; font-weight: 650; font-size: .875rem; }
.rs-field input { min-height: 52px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: 14px; font-size: 1rem; font-weight: 400; transition: border-color .16s, box-shadow .16s; }
.rs-field input:focus { border-color: var(--rs-magenta); box-shadow: 0 0 0 4px rgba(200, 23, 95, .12); outline: none; }
.rs-merge { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: stretch; }
.rs-merge-lane { min-width: 0; min-height: 112px; padding: 10px; border: 1px dashed var(--rs-blush-line); border-radius: 14px; }
.rs-merge-lane.is-writes { border-style: solid; background: #fdf8fa; }
.rs-merge-label { display: block; margin-bottom: 8px; font: 700 .6875rem var(--mono); color: var(--muted); text-transform: uppercase; }
.rs-merge-arrow { align-self: center; font-size: 1.5rem; color: var(--rs-signal); }
.rs-dots { display: flex; flex-wrap: wrap; gap: 5px; }
.rs-dot { display: block; width: 12px; height: 12px; border-radius: 50%; background: var(--rs-signal); }
.rs-write-log { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.rs-write-log li span { display: block; padding: 3px 8px; border-radius: 6px; background: var(--rs-magenta); color: #fff; font: 600 .75rem var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-counters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rs-counters div { display: grid; gap: 2px; padding: 12px; border-radius: 14px; background: #faf7f9; }
.rs-counters .is-accent { background: var(--rs-magenta); color: #fff; }
.rs-counters strong { font: 850 1.75rem/1.1 var(--mono); }
.rs-counter-label { font-size: .8125rem; color: var(--muted); }
.rs-counters .is-accent .rs-counter-label { color: #ffd2e4; }
.rs-writes-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.rs-status-pill { padding: 6px 12px; border-radius: 999px; font-size: .8125rem; font-weight: 700; }
.rs-status-pill.is-waiting { background: #fff4e0; color: #a85a00; }
.rs-status-pill.is-saved { background: #e6f5ee; color: #127a55; }
.rs-writes-static pre { padding: 12px; border-radius: 10px; background: var(--rs-aub); color: #fff; overflow: auto; }

/* Stable */
.rs-stable { background: var(--rs-aub); color: #fff; }
.rs-stable .rs-kicker { color: var(--rs-signal); }
.rs-stable .rs-section-head h2 { color: #fff; }
.rs-stable .rs-section-head > p:last-child { color: #e3cfd9; }
.rs-stable-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.rs-stable-intro { position: sticky; top: calc(var(--sticky-top, var(--header)) + 48px); display: grid; justify-items: start; gap: 8px; }
.rs-stable .rs-text-link { color: #ffd2e4; }
.rs-rail, .rs-rail-live { position: relative; }
.rs-rail-track { position: absolute; inset-block: 8px; inset-inline-start: 23px; width: 2px; background: rgba(255, 255, 255, .12); }
.rs-rail-fill { position: absolute; inset: 0; background: linear-gradient(180deg, var(--rs-signal), var(--rs-magenta)); transform-origin: top; transform: scaleY(0); }
.rs-rail-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.rs-rail-list li { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 20px; padding: 20px 20px 20px 0; border-radius: 18px; }
.rs-rail-index { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--rs-aub-line); background: var(--rs-aub); font: 700 .8125rem var(--mono); color: #e3cfd9; z-index: 1; overflow: hidden; }
.rs-rail-dot { position: absolute; inset: 0; border-radius: 50%; background: var(--rs-magenta); z-index: -1; }
.rs-rail-list h3 { font-size: 1.25rem; color: #fff; }
.rs-rail-list p { margin-top: 6px; color: #d5bfcb; line-height: 1.75; }
.rs-rail-list code { display: inline-block; margin-top: 10px; padding: 3px 10px; border-radius: 6px; background: var(--rs-aub-soft); color: #ffd2e4; font-size: .8125rem; }

/* Grow */
.rs-grow-live { display: grid; gap: 20px; }
.rs-grow-steps { width: 100%; }
.rs-grow-steps > button { display: inline-flex; gap: 8px; align-items: center; }
.rs-grow-steps > button span { font: 700 .75rem var(--mono); color: var(--rs-magenta); }
.rs-grow-panes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.rs-grow-pane { min-width: 0; padding: 18px; border-radius: 20px; background: var(--rs-aub); color: #fff; }
.rs-grow-pane.is-component { background: #f7f3f5; color: var(--ink); }
.rs-pane-label { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 12px; font: 700 .8125rem var(--mono); color: #f3dce7; }
.is-component .rs-pane-label { color: var(--muted); }
.rs-pane-flag { padding: 2px 10px; border-radius: 999px; background: var(--rs-signal); color: #fff; font-size: .75rem; }
.rs-pane-check { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #127a55; color: #fff; font-size: .875rem; }
.rs-grow-pane pre { margin: 0; padding: 0; background: none; font-size: .875rem; line-height: 1.75; overflow: auto; white-space: pre; }
.is-component pre { color: var(--ink); }
.rs-grow-code { min-height: 13.5em; }
.rs-grow-note { margin: 12px 0 0; font-size: .9375rem; color: #e3cfd9; min-height: 1.7em; }
.rs-grow-note.is-muted { color: var(--muted); }
.rs-grow-static { display: grid; gap: 16px; padding: 0; list-style: none; }
.rs-grow-static pre, .rs-grow-component pre { padding: 14px; border-radius: 12px; background: var(--rs-aub); color: #fff; overflow: auto; }

/* Platforms */
.rs-platforms { border-top: 1px solid var(--line); }
.rs-platform-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.rs-platform-grid li { display: grid; gap: 8px; align-content: start; padding: 22px; border: 1px solid var(--line); border-radius: 20px; transition: border-color .2s, transform .2s; }
.rs-platform-grid li:hover { border-color: var(--rs-blush-line); transform: translateY(-3px); }
.rs-platform-grid code { justify-self: start; padding: 2px 8px; border-radius: 6px; background: var(--rs-blush); color: var(--rs-magenta-deep); font-size: .75rem; }
.rs-platform-grid h3 { font-size: 1.125rem; }
.rs-platform-grid p { font-size: .9375rem; line-height: 1.7; }

/* Start band */
.rs-start { background: var(--rs-magenta); color: #fff; padding-block: clamp(64px, 8vw, 104px); }
.rs-start-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.rs-start .rs-kicker { color: #ffd2e4; }
.rs-start h2 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 800; letter-spacing: -.05em; line-height: 1.12; color: #fff; }
.rs-start p { color: #ffe3ee; margin-top: 14px; font-size: 1.0625rem; }
.rs-start .rs-actions { margin-top: 28px; }
.rs-start-steps { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.rs-start-steps li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: start; }
.rs-start-steps li > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .16); font: 700 .8125rem var(--mono); }
.rs-start-steps strong { display: block; margin-bottom: 6px; }
.site-restate .rs-start .code-block { margin: 0; background: var(--rs-aub); }
.site-restate .rs-start .code-toolbar, .site-restate .rs-install .code-toolbar { background: transparent; }

/* Product rail on the restate site */
.site-restate .product-rail { margin-inline: 0; }
.product-rail-card.accent-magenta::before { background: #c8175f; }

/* Playground */
.rs-play-hero { padding-block: clamp(48px, 6vw, 80px) 32px; background: linear-gradient(180deg, var(--rs-blush), #fff); border-bottom: 1px solid var(--rs-blush-line); }
.rs-play-hero h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 820; letter-spacing: -.055em; line-height: 1.06; max-width: 18ch; word-break: keep-all; }
.rs-play-hero .rs-lead { color: var(--muted); max-width: 46rem; }
.rs-play-legend { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 24px; font-size: .9375rem; font-weight: 600; }
.rs-play-legend span { display: inline-flex; align-items: center; gap: 8px; }
.rs-play-legend i { display: inline-block; width: 22px; height: 14px; border-radius: 4px; }
.rs-legend-controller { border: 2px solid var(--ink); background: repeating-linear-gradient(45deg, #fff 0 3px, #ece8ea 3px 6px); }
.rs-legend-props { border: 2px dashed var(--rs-magenta); }
.rs-legend-example { background: var(--rs-magenta); }
.rs-lab-index { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.rs-lab-index a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--rs-blush-line); border-radius: 999px; background: #fff; font-weight: 650; font-size: .9375rem; transition: border-color .16s, color .16s; }
.rs-lab-index a:hover { border-color: var(--rs-magenta); color: var(--rs-magenta); }
.rs-lab-index a span { font: 700 .75rem var(--mono); color: var(--rs-magenta); }
.rs-labs { display: grid; gap: clamp(56px, 7vw, 96px); padding-block: 56px 96px; }
.rs-lab { display: grid; gap: 20px; scroll-margin-top: calc(var(--sticky-top, var(--header)) + 32px); }
.rs-lab-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: start; }
.rs-lab-number { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 18px; background: var(--rs-aub); color: #fff; font: 800 1.125rem var(--mono); }
.rs-lab-head h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.04em; }
.rs-lab-head p { margin-top: 6px; font-size: 1.0625rem; max-width: 56rem; }
.rs-lab-observe { padding: 16px 20px; border-radius: 16px; background: var(--rs-blush); }
.rs-lab-observe strong { font: 700 .8125rem var(--mono); color: var(--rs-magenta); }
.rs-lab-observe ul { margin: 8px 0 0; padding-inline-start: 20px; display: grid; gap: 4px; }
.rs-lab-observe li { color: var(--ink); line-height: 1.7; }
.site-restate .rs-lab-demo, .site-restate .article .rs-lab-demo { padding: 0; border: 0; background: none; min-height: 0; }

/* Workbench */
.rs-bench { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: 16px; align-items: stretch; }
.rs-controller { display: grid; gap: 16px; align-content: start; padding: 18px; border: 2px solid var(--ink); border-radius: 20px; background: #fff; background-image: linear-gradient(#fff, #fff), repeating-linear-gradient(45deg, #fff 0 4px, #f1edf0 4px 8px); background-clip: padding-box; }
.rs-controller-head { display: grid; gap: 4px; margin: 0; padding-bottom: 12px; border-bottom: 1px dashed var(--line); }
.rs-controller-head strong { display: flex; align-items: center; gap: 8px; font: 800 .875rem var(--mono); text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.rs-controller-head strong::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: repeating-linear-gradient(45deg, var(--ink) 0 2px, transparent 2px 4px); }
.rs-controller-head span { font-size: .8125rem; line-height: 1.6; color: var(--muted); }
.rs-controls { display: grid; gap: 16px; }
.rs-control { display: grid; gap: 8px; }
.rs-control-label { font-size: .875rem; font-weight: 700; color: var(--ink); }
.rs-range { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.rs-range input { width: 100%; min-height: 44px; accent-color: var(--rs-magenta); }
.rs-range output { min-width: 6ch; text-align: end; font: 700 .875rem var(--mono); }
.rs-segmented { width: 100%; }
.rs-segmented > button { flex: 1 1 auto; padding: 0 10px; font-size: .875rem; }
.rs-switch { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 650; }
.rs-switch-track { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #d8d2d6; transition: background-color .2s; }
.rs-switch-thumb { position: absolute; top: 3px; inset-inline-start: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .28s cubic-bezier(.3, 1.4, .5, 1); }
.rs-switch[aria-checked=true] .rs-switch-track { background: var(--rs-magenta); }
.rs-switch[aria-checked=true] .rs-switch-thumb { transform: translateX(20px); }
html[dir=rtl] .rs-switch[aria-checked=true] .rs-switch-thumb { transform: translateX(-20px); }
.rs-bridge { padding: 12px; border: 2px dashed var(--rs-magenta); border-radius: 14px; background: #fff; }
.rs-bridge p { margin: 0 0 8px; font: 700 .75rem var(--mono); color: var(--rs-magenta); }
.rs-bridge-code { margin: 0; font-size: .8125rem; line-height: 1.7; white-space: pre-wrap; color: var(--ink); }
.rs-tag { color: #0b5cad; }
.rs-attr { color: #7a3d8f; }
.rs-prop-value { color: var(--rs-magenta-deep); font-weight: 700; }
.rs-prop { transition: background-color .3s; border-radius: 4px; }
.rs-prop.is-changed { background: #ffe1ee; }
.rs-replay { justify-self: start; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--ink); border-radius: 999px; font-weight: 700; }
.rs-replay:hover { background: var(--ink); color: #fff; }
.rs-static-controls { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .875rem; }
.rs-static-controls li { display: flex; justify-content: space-between; gap: 12px; }
.rs-stage { min-width: 0; display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--rs-blush-line); border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 24px 48px -36px rgba(200, 23, 95, .5); }
.rs-bench.is-static .rs-stage { display: grid; place-items: center; min-height: 320px; }
.rs-stage-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px; border-bottom: 1px solid var(--rs-blush-line); background: var(--rs-magenta); }
.rs-stage-bar .rs-choice { background: rgba(0, 0, 0, .18); }
.rs-stage-bar .rs-choice > button { color: #ffe3ee; }
.rs-stage-bar .rs-choice > button[aria-selected=true] { color: var(--rs-magenta); }
.rs-file-hint { padding-inline-end: 10px; color: #ffe3ee; font: 600 .8125rem var(--mono); }
.rs-stage-panel { min-width: 0; }
.rs-result iframe { display: block; width: 100%; border: 0; background: #fff; transition: height .3s cubic-bezier(.2, .8, .2, 1); }
.rs-loading { margin: 0; padding: 16px 20px; color: var(--muted); font-size: .9375rem; }
.rs-error { padding: 16px 20px; }
.rs-error pre { white-space: pre-wrap; font-size: .8125rem; }
.rs-error button { min-height: 44px; text-decoration: underline; }
.rs-code-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px; background: var(--rs-aub); }
.rs-code-bar .rs-choice { background: rgba(255, 255, 255, .08); }
.rs-code-bar .rs-choice > button { color: #e3cfd9; font-family: var(--mono); font-size: .8125rem; }
.rs-code-bar .rs-choice > button[aria-selected=true] { color: var(--rs-aub); }
.rs-copy { min-height: 44px; padding: 0 14px; margin-inline-start: auto; border: 1px solid var(--rs-aub-line); border-radius: 999px; color: #fff; font-weight: 650; }
.rs-copy-status { color: #ffd2e4; font-size: .8125rem; }
.rs-code-body { margin: 0; max-height: 36rem; overflow: auto; padding: 18px 20px; background: var(--rs-aub); color: #f6eaf0; font-size: .875rem; line-height: 1.75; }
.rs-noscript-code pre { padding: 16px; border-radius: 12px; background: var(--rs-aub); color: #fff; overflow: auto; }

/* Code colors on aubergine */
.site-restate .code-block, .rs-code-body, .rs-grow-pane.is-declaration pre { background: var(--rs-aub); }
.site-restate .hljs-keyword, .site-restate .hljs-built_in { color: #ff8fbf; }
.site-restate .hljs-string { color: #b5f2c9; }
.site-restate .hljs-title, .site-restate .hljs-name { color: #ffd98a; }
.site-restate .hljs-attr, .site-restate .hljs-property { color: #c9b6ff; }
.site-restate .hljs-comment { color: #a58597; }
.site-restate .hljs-number, .site-restate .hljs-literal { color: #ffb38a; }

/* Docs */
.site-restate .docs-layout { padding-top: 8px; }
.site-restate .sidebar a[aria-current=page] { color: var(--rs-magenta); background: var(--rs-blush); box-shadow: inset 3px 0 var(--rs-magenta); font-weight: 700; }
html[dir=rtl] .site-restate .sidebar a[aria-current=page] { box-shadow: inset -3px 0 var(--rs-magenta); }
.site-restate .nav-group-title { color: var(--rs-magenta); }
.site-restate .article h1 { font-weight: 820; letter-spacing: -.05em; }
.site-restate .article-lead { font-size: 1.125rem; }
.site-restate .article h2 a:not(.button):not(.text-link):hover { color: var(--rs-magenta); }
.site-restate .article a:not(.button):not(.text-link) { color: var(--rs-magenta); }
.site-restate .learning-goals { border-color: var(--rs-blush-line); background: var(--rs-blush); }
.site-restate .callout { border-inline-start-color: var(--rs-magenta); background: var(--rs-blush); }
.site-restate .observation-result { border-color: var(--rs-blush-line); background: #fdf8fa; }
.site-restate .self-check summary { color: var(--rs-magenta); }
.site-restate .toc a:hover { color: var(--rs-magenta); }
.site-restate .article .rs-compare-live { grid-template-columns: minmax(0, 1fr); }
.site-restate .article .rs-compare-pair { grid-template-columns: minmax(0, 1fr); }
.site-restate .article .rs-bench { grid-template-columns: minmax(0, 1fr); }
.site-restate .faq-topics button[aria-pressed=true] { background: var(--rs-aub); color: #fff; border-color: var(--rs-aub); }

/* Footer */
.rs-footer { align-items: flex-start; flex-wrap: wrap; }
.rs-footer-brand { display: grid; gap: 2px; }
.rs-footer .footer-home { font-weight: 800; font-size: 1.125rem; color: var(--ink); letter-spacing: -.04em; }
.rs-license { margin: 0; font: .75rem var(--mono); color: var(--muted); }

/* Responsive */
@media (max-width: 1100px) {
  .rs-hero-grid, .rs-stable-grid, .rs-start-grid { grid-template-columns: minmax(0, 1fr); }
  .rs-stable-intro { position: static; }
  .rs-fast-grid { grid-template-columns: minmax(0, 1fr); }
  .rs-compare-live { grid-template-columns: minmax(0, 1fr); }
  .rs-compare-pair { grid-template-columns: minmax(0, 1fr); }
  .rs-platform-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .rs-bench { grid-template-columns: minmax(0, 1fr); }
  .rs-grow-panes { grid-template-columns: minmax(0, 1fr); }
  .site-restate .rs-header .header-inner { flex-wrap: wrap; padding-block: 8px; row-gap: 0; }
  .site-restate .rs-nav { order: 3; width: 100%; margin-inline: 0; justify-content: space-between; overflow-x: auto; scrollbar-width: none; }
  .site-restate .rs-header .header-actions { margin-inline-start: auto; }
}
@media (max-width: 720px) {
  .rs-promise-list { grid-template-columns: minmax(0, 1fr); }
  .rs-promise-list li + li { border-inline-start: 0; border-top: 1px solid var(--line); }
  .rs-promise-list a { padding-inline: 0; padding-block: 24px; }
  .rs-map-columns { grid-template-columns: minmax(0, 1fr); }
  .rs-merge { grid-template-columns: minmax(0, 1fr); }
  .rs-merge-arrow { justify-self: center; transform: rotate(90deg); }
  .rs-platform-grid { grid-template-columns: minmax(0, 1fr); }
  .rs-stage-field { aspect-ratio: auto; min-height: 460px; }
  .rs-node-card { width: 46%; }
  .rs-pos-0 { top: 16%; } .rs-pos-1 { top: 16%; } .rs-pos-2 { top: 84%; } .rs-pos-3 { top: 84%; }
  .rs-node-store { width: 88px; height: 88px; }
  .rs-card-value { font-size: 1.125rem; }
  .rs-lab-head { grid-template-columns: minmax(0, 1fr); }
  .site-restate .rs-nav a { padding-inline: 10px; font-size: .8125rem; }
}
.site-restate .rs-install pre, .site-restate .rs-start pre { color: #f6eaf0; }
.rs-tool-note strong { display: block; }
/* Review fixes: sans kicker, dark compact code, aligned comparison, dark component pane. */
.rs-kicker, .rs-stage-label, .rs-pane-label, .rs-choice-caption, .rs-merge-label, .rs-controller-head strong, .rs-bridge p, .rs-lab-observe strong, .rs-meter-name { font-family: var(--sans); }
.rs-kicker { font-size: .875rem; }
.site-restate .code-block.compact { max-width: none; background: #2a1624; border-color: var(--rs-aub-line); }
.site-restate .code-block.compact .hljs, .site-restate .code-block.compact pre { color: #f6eaf0; }
.site-restate .code-block.compact .code-toolbar { background: transparent; }
.site-restate .code-block.compact .copy-button { color: #f3dce7; }
.rs-compare-pair { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "note-tool note-restate" "code-tool code-restate"; gap: 0 20px; }
.rs-compare-note-tool { grid-area: note-tool; min-width: 0; }
.rs-compare-note-restate { grid-area: note-restate; }
.rs-compare-code-tool { grid-area: code-tool; min-width: 0; }
.rs-compare-code-restate { grid-area: code-restate; min-width: 0; }
.rs-compare-tool, .rs-compare .code-block, .rs-compare .source-files { min-width: 0; max-width: 100%; }
.rs-compare .code-block pre { overflow: auto; }
.rs-tool-note { min-height: 0; }
.rs-grow-pane.is-component { background: var(--rs-aub-soft); color: #fff; }
.is-component .rs-pane-label { color: #f3dce7; }
.is-component pre { color: #f6eaf0; }
.rs-rail-list li > div { will-change: transform; }
@media (max-width: 1100px) {
  .rs-compare-pair { grid-template-columns: minmax(0, 1fr); grid-template-areas: "note-tool" "code-tool" "note-restate" "code-restate"; gap: 12px; }
  .rs-compare-note-restate { margin-top: 12px; }
}
.site-restate .article h2 a:not(.button):not(.text-link) { color: var(--ink); }
.site-restate .article h2 a:not(.button):not(.text-link):hover { color: var(--rs-magenta); }
.site-restate .article .rs-controller { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
.site-restate .article .rs-controller-head, .site-restate .article .rs-replay { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .site-restate .rs-header .header-inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand . actions" "nav nav nav"; align-items: center; gap: 0 8px; padding-block: 6px 0; }
  .site-restate .rs-header .brand { grid-area: brand; }
  .site-restate .rs-header .header-actions { grid-area: actions; margin: 0; }
  .site-restate .rs-nav { grid-area: nav; display: flex; flex-wrap: nowrap; gap: 2px; width: 100%; margin: 0; padding-bottom: 4px; justify-content: flex-start; overflow-x: auto; }
  .site-restate .rs-nav a { flex: 0 0 auto; }
}
@media (max-width: 640px) {
  .site-restate .article .rs-controller { grid-template-columns: minmax(0, 1fr); }
}
.rs-main :is(p, li, h1, h2, h3), .site-restate .article :is(p, li, h1, h2, summary) { word-break: keep-all; overflow-wrap: anywhere; }
.site-restate .article .rs-compare-pair { grid-template-columns: minmax(0, 1fr); grid-template-areas: "note-tool" "code-tool" "note-restate" "code-restate"; gap: 12px; }
.site-restate .article .rs-compare-note-restate { margin-top: 12px; }
.site-restate .code-block.compact { direction: ltr; }
.rs-line:last-child:first-child { color: #fff; }
