@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}
/* kkwaenggwari hub home · design/screens/home-home.md */
.site-home{--kh-ink:#16181d;--kh-muted:#5b616b;--kh-line:#e6e8ec;--kh-warm:#17140f;--kh-cream:#fff6df;--kh-gutter:clamp(20px,4vw,56px);--kh-max:1200px}
.site-home .site-header{background:#fff}
.kh{overflow-x:clip;color:var(--kh-ink)}
.kh-wrap{width:100%;max-width:calc(var(--kh-max) + 2 * var(--kh-gutter));margin-inline:auto;padding-inline:var(--kh-gutter)}
.kh h1,.kh h2,.kh h3,.kh h4{word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
.kh code{font-family:var(--mono)}
.kh-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 20px;font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--kh-muted)}
.kh-beat{position:relative;width:10px;height:10px;border-radius:50%;background:var(--brass);flex:none}
.kh-beat::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--brass);animation:kh-beat 2.4s cubic-bezier(.2,.7,.2,1) infinite}
@keyframes kh-beat{0%{transform:scale(.4);opacity:1}70%,100%{transform:scale(1.6);opacity:0}}

/* Buttons and links */
.kh-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;border:1.5px solid var(--kh-ink);font-weight:650;font-size:1rem;line-height:1.3;text-align:center;transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}
.kh-btn:hover{transform:translateY(-2px)}.kh-btn:active{transform:translateY(0) scale(.98)}
.kh-btn .icon{width:18px;height:18px;flex:none}
.kh-btn-primary{background:var(--kh-ink);color:#fff}.kh-btn-primary:hover{background:#000}
.kh-btn-ghost{background:#fff}.kh-btn-ghost:hover{background:var(--kh-cream)}
.kh-btn-product{background:var(--p);border-color:var(--p);color:var(--p-on)}.kh-btn-product:hover{background:var(--p-deep);border-color:var(--p-deep);color:#fff}
.kh-btn:disabled{opacity:.5;cursor:default;transform:none}
.kh-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--kh-ink);text-decoration:underline;text-decoration-color:var(--kh-line);text-underline-offset:6px;text-decoration-thickness:2px;transition:text-decoration-color .18s}
.kh-link:hover{text-decoration-color:currentColor}.kh-link .icon{width:16px;height:16px}
.kh a:focus-visible,.kh button:focus-visible,.kh input:focus-visible,.kh pre:focus-visible{outline:3px solid var(--kh-ink);outline-offset:3px}

/* Hero */
.kh-hero{position:relative;border-bottom:1px solid var(--kh-line)}
.kh-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(32px,5vw,80px);min-height:min(calc(100svh - var(--header)),900px);padding-block:clamp(48px,7vw,96px)}
.kh-hero-copy{min-width:0}
.kh-title{margin:0;font-size:clamp(3rem,7.2vw,6.6rem);font-weight:800;line-height:.98;letter-spacing:-.058em}
.kh-line{display:block;overflow:hidden;padding-block:.02em .1em;margin-bottom:-.06em}
.kh-line>span{display:inline-block;animation:kh-rise 1.05s cubic-bezier(.16,1,.3,1) both}
.kh-line:nth-child(2)>span{animation-delay:.12s;color:var(--brass-text)}
.kh-line:nth-child(3)>span{animation-delay:.24s}
@keyframes kh-rise{from{transform:translateY(108%) rotate(3deg)}to{transform:none}}
@keyframes kh-fade{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.kh-lead{max-width:34em;margin-top:28px;font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.75;color:var(--kh-muted);word-break:keep-all;overflow-wrap:anywhere;animation:kh-fade .8s .32s cubic-bezier(.16,1,.3,1) both}
.kh-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;animation:kh-fade .8s .42s cubic-bezier(.16,1,.3,1) both}
.kh-facts{display:flex;flex-wrap:wrap;gap:8px;margin:34px 0 0;padding:0;list-style:none;animation:kh-fade .8s .52s cubic-bezier(.16,1,.3,1) both}
.kh-facts li{padding:6px 14px;border:1px solid var(--kh-line);border-radius:999px;font-size:.875rem;font-weight:600;line-height:1.5}
.kh-hero-stage{min-width:0;animation:kh-fade 1s .2s cubic-bezier(.16,1,.3,1) both}
.kh-field{position:relative;width:min(100%,560px);aspect-ratio:1;margin-inline:auto}
.kh-halo,.kh-halo::after{position:absolute;inset:6%;border-radius:50%;border:1.5px dashed #d8d3c7}
.kh-halo::after{content:"";inset:14%;border-style:solid;border-color:var(--kh-line)}
.kh-rings{position:absolute;inset:0;pointer-events:none}
.kh-ring{position:absolute;inset:27%;border-radius:50%;border:2.5px solid var(--brass);opacity:0}
.kh-sparks{position:absolute;inset:0;pointer-events:none}
.kh-spark{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px;border-radius:50%;background:var(--brass);opacity:0}
.kh-spark:nth-child(3n){width:6px;height:6px;margin:-3px;background:var(--kh-ink)}
.kh-spark:nth-child(4n){border-radius:2px}
.kh-gong{position:absolute;inset:27%;padding:0;border-radius:50%;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.kh-gong-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 clamp(8px,1.6vw,14px) #c7880f,0 0 0 1.5px var(--kh-warm)}
.kh-gong-rim{position:absolute;inset:24%;border-radius:50%;border:3px solid #17140f3d}
.kh-gong-label{position:relative;padding:6px 14px;border-radius:999px;background:var(--kh-warm);color:#fff;font-size:.875rem;font-weight:700;letter-spacing:.02em;line-height:1.35;max-width:80%;text-align:center}
.kh-gong:hover .kh-gong-label{background:#000}
.kh-mallet{position:absolute;top:12%;right:15%;width:14%;height:21%;pointer-events:none;transform-origin:100% 0}
.kh-mallet i{position:absolute;top:0;right:0;width:7px;height:100%;border-radius:4px;background:var(--kh-warm);transform:rotate(38deg);transform-origin:top center}
.kh-mallet i::after{content:"";position:absolute;bottom:-10px;left:50%;width:30px;height:30px;margin-left:-15px;border-radius:50%;background:#fff;border:3px solid var(--kh-warm)}
.kh-orbit{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 14px 10px;border-radius:20px;background:#fff;border:1px solid var(--kh-line);box-shadow:0 1px 0 var(--kh-line),0 10px 24px -18px #17140f55;font-size:.8125rem;font-weight:700;line-height:1.3;white-space:nowrap;transition:border-color .2s}
.kh-orbit:hover{border-color:var(--p)}
.kh-orbit img{width:60px;height:60px;display:block}
.kh-orbit-0{top:1%;left:3%}.kh-orbit-1{top:44%;right:-3%}.kh-orbit-2{bottom:0;left:9%}
.kh-stage-hint{margin-top:14px;text-align:center;color:var(--kh-muted);font-size:.9375rem}

/* Ticker */
.kh-ticker{overflow:hidden;border-bottom:1px solid var(--kh-line);padding-block:16px;background:#fff}
.kh-ticker-track{display:flex;align-items:center;gap:28px;width:max-content;font:500 .9375rem/1.4 var(--mono);color:var(--kh-muted);white-space:nowrap}
.kh-ticker-track i{width:7px;height:7px;border-radius:50%;background:var(--brass);flex:none}
.kh-ticker-track i:nth-of-type(3n){border-radius:1px;background:var(--kh-ink)}

/* Section heads */
.kh-projects{padding-block:clamp(80px,10vw,140px) clamp(32px,4vw,56px)}
.kh-section-head{max-width:800px;margin-bottom:clamp(32px,5vw,64px)}
.kh-section-head h2,.kh-ensemble h2,.kh-finale h2{margin:0;font-size:clamp(2.4rem,5.4vw,4.4rem);font-weight:800;line-height:1.04;letter-spacing:-.05em}
.kh-h-line{display:block}.kh-h-line+.kh-h-line>span{color:var(--brass-text)}
.kh-section-head>p:last-child{margin-top:22px;max-width:40em;font-size:1.125rem;line-height:1.75;color:var(--kh-muted)}

/* Product rows */
.kh-product{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(32px,5vw,80px);padding-block:clamp(48px,6vw,88px);border-top:1px solid var(--kh-line);scroll-margin-top:calc(var(--header) + 16px)}
.kh-product.is-flipped .kh-product-copy{order:2}
.kh-product-copy,.kh-product-stage{min-width:0}
.kh-product-head{display:flex;align-items:center;gap:16px}
.kh-product-mark{width:52px;height:52px;flex:none}
.kh-product-head h3{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.04em;line-height:1.2}
.kh-product-head h3 a:hover{color:var(--p-deep)}
.kh-role{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 0;font-size:.9375rem;font-weight:600;color:var(--p-deep)}
.kh-index{margin-inline-start:auto;font-size:clamp(2.6rem,4vw,3.8rem);font-weight:800;line-height:1;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--p-line)}
.kh-tagline{margin:30px 0 0;font-size:clamp(1.9rem,3.3vw,2.75rem);font-weight:800;line-height:1.12;letter-spacing:-.045em;word-break:keep-all;overflow-wrap:anywhere}
.kh-tag-line{display:block}.kh-tag-line+.kh-tag-line{color:var(--p-deep)}
.kh-body{margin-top:20px;max-width:36em;font-size:1.0625rem;line-height:1.8;color:var(--kh-muted);word-break:keep-all;overflow-wrap:anywhere}
.kh-points{display:grid;gap:10px;margin:24px 0 0;padding:0;list-style:none}
.kh-points li{display:flex;align-items:flex-start;gap:12px;font-weight:600;line-height:1.55}
.kh-check{width:24px;height:24px;padding:3px;border-radius:50%;background:var(--p-tint);color:var(--p-deep);flex:none;margin-top:1px;box-shadow:inset 0 0 0 1px var(--p-line)}
.kh-install{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:30px;padding:6px 6px 6px 18px;border-radius:14px;background:var(--kh-ink);color:#fff}
.kh-install-label{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#aab0b8}
.kh-install pre{margin:0;padding:8px 0;font:500 .875rem/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;color:#fff;background:none}
.kh-install .copy-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:10px;border:1px solid #ffffff33;background:#ffffff0f;color:#fff;font-size:.875rem;font-weight:600}
.kh-install .copy-button:hover{background:#ffffff24}.kh-install .copy-button .icon{width:16px;height:16px}
.kh-product-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:24px}
.kh-product-stage{position:relative;display:flex;flex-direction:column;gap:22px;min-height:480px;padding:clamp(20px,3vw,36px);border-radius:28px;background:var(--p-tint);border:1px solid var(--p-line);overflow:hidden}
.kh-product-stage::before{content:"";position:absolute;width:340px;height:340px;inset-inline-end:-120px;inset-block-start:-140px;border-radius:50%;border:1.5px solid var(--p-line);pointer-events:none}
.kh-demo-head{position:relative}
.kh-demo-kicker{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--p-deep)}
.kh-live-dot{width:8px;height:8px;border-radius:50%;background:var(--p);box-shadow:0 0 0 4px var(--p-line)}
.kh-demo-head h4{margin:0;font-size:1.3125rem;font-weight:750;letter-spacing:-.03em}
.kh-demo-head p{margin-top:6px;color:var(--kh-muted);font-size:.9375rem;line-height:1.7;max-width:40em}
.kh-demo{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.kh-demo-live{display:contents}
.kh-demo-error{margin:14px 0 10px;color:var(--kh-muted);font-size:.9375rem}
.kh-mini{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 16px;border-radius:12px;border:1px solid var(--p-line);background:#fff;font-weight:700;font-size:.9375rem;transition:transform .16s,background-color .16s}
.kh-mini:hover{background:var(--p-tint)}.kh-mini:active{transform:scale(.96)}.kh-mini:disabled{opacity:.45;cursor:default}
.kh-mini.is-strong{background:var(--p);border-color:var(--p);color:var(--p-on)}.kh-mini.is-strong:hover{background:var(--p-deep);color:#fff}

/* Restate stage */
.kh-rs{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);align-items:stretch;row-gap:16px}
.kh-rs-panel{position:relative;padding:20px;border-radius:20px;background:#fff;border:1px solid var(--p-line);min-width:0}
.kh-rs-flash{position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2.5px var(--p),0 0 0 6px var(--p-line);opacity:0;pointer-events:none}
.kh-rs-name{font-size:.8125rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--kh-muted)}
.kh-rs-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:10px 0 16px}
.kh-rs-count strong,.kh-rs-count>span:first-child{font-size:3.25rem;font-weight:800;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.kh-rs-count>span:last-child{font-weight:600;color:var(--kh-muted)}
.kh-rs-actions{display:flex;flex-wrap:wrap;gap:8px}
.kh-rs-link{position:relative;display:grid;place-items:center}
.kh-rs-link::before{content:"";position:absolute;inset-inline:6px;top:50%;border-top:2px dashed var(--p)}
.kh-rs-link span{position:relative;width:16px;height:16px;border-radius:50%;background:var(--p);box-shadow:0 0 0 5px var(--p-tint)}
.kh-rs-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.kh-rs-badge{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px dashed var(--p-line);background:#fff;font-weight:700;transition:background-color .3s,border-color .3s,color .3s}
.kh-rs-badge.is-on{border-style:solid;border-color:var(--p);background:var(--p);color:var(--p-on)}

/* Animated stage */
.kh-am{gap:18px}
.kh-am-field{position:relative;height:280px;border-radius:20px;background:#fff;border:1px solid var(--p-line);overflow:hidden;background-image:linear-gradient(var(--p-tint) 1px,transparent 1px),linear-gradient(90deg,var(--p-tint) 1px,transparent 1px);background-size:28px 28px;background-position:center}
.kh-am-shape{position:absolute;top:50%;left:50%;width:34px;height:34px;margin:-17px;border-radius:50%;background:var(--p)}
.kh-am-shape.is-soft{background:var(--p-line);box-shadow:inset 0 0 0 2px var(--p)}
.kh-am-shape.is-deep{background:var(--p-deep)}
.kh-am-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 18px}
.kh-am-slider{display:grid;gap:6px;flex:1 1 220px;min-width:0;font-weight:600}
.kh-am-slider output{font-family:var(--mono);color:var(--p-deep);font-variant-numeric:tabular-nums}
.kh-am-slider input{width:100%;min-height:44px;accent-color:var(--p);cursor:pointer}

/* Chorus stage */
.kh-ch{display:grid;gap:18px}
.kh-ch-tabs{position:relative;display:inline-flex;flex-wrap:wrap;justify-self:start;gap:2px;padding:4px;border-radius:999px;background:#fff;border:1px solid var(--p-line)}
.kh-ch-tab{position:relative;z-index:1;display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border-radius:999px;font-weight:700;font-size:.9375rem;color:var(--kh-ink);transition:color .25s}
.kh-ch-tab.is-active,.kh-ch-tab[aria-selected="true"],.kh-ch-tab[aria-pressed="true"],.kh-ch-tab[data-selected]{color:var(--p-on)}
.kh-ch-highlight{border-radius:999px;background:var(--p)}
.kh-ch-tabs>.kh-ch-tab.is-active:first-child{background:var(--p)}
.kh-ch-body{display:grid;grid-template-columns:minmax(0,210px) minmax(0,1fr);gap:20px;padding:20px;border-radius:20px;background:#fff;border:1px solid var(--p-line)}
.kh-ch-label{font-size:.8125rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--kh-muted)}
.kh-ch-total{margin:6px 0 18px;font-size:clamp(2.2rem,3.4vw,2.8rem);font-weight:800;line-height:1.05;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.kh-ch-goal{display:flex;align-items:center;gap:14px}
.kh-ch-goal p{display:grid;line-height:1.3}.kh-ch-goal strong{font-size:1.375rem;font-variant-numeric:tabular-nums}.kh-ch-goal span{color:var(--kh-muted);font-size:.875rem;font-weight:600}
.kh-ch-rows{display:grid;gap:10px;margin:0;padding:0;list-style:none;min-width:0}
.kh-ch-rows li{display:flex;align-items:center;min-height:32px;font-weight:600}
.kh-ch-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;align-items:center;gap:12px;min-height:34px;width:100%}
.kh-ch-name{font-weight:650;overflow-wrap:anywhere}
.kh-ch-meter{height:8px;border-radius:99px;background:var(--p-tint);overflow:hidden}
.kh-ch-meter span{display:block;height:100%;border-radius:inherit;background:var(--p);transform-origin:left;transition:transform .7s cubic-bezier(.16,1,.3,1)}
[dir=rtl] .kh-ch-meter span{transform-origin:right}
.kh-ch-value{font-family:var(--mono);font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--p-deep)}
.kh-ch-sample{font-size:.8125rem;color:var(--kh-muted)}

/* Ensemble */
.kh-ensemble{position:relative;background:var(--kh-warm);color:#f4efe6;scroll-margin-top:var(--header)}
.kh-ensemble .kh-eyebrow{color:#b9ae9a}.kh-ensemble .kh-h-line+.kh-h-line>span{color:var(--brass)}
.kh-ensemble-sticky{padding-block:clamp(72px,9vw,120px)}
.kh-ensemble[data-live]{height:340vh}
.kh-ensemble[data-live] .kh-ensemble-sticky{position:sticky;top:var(--header);height:calc(100svh - var(--header));display:flex;align-items:center;padding-block:32px;overflow:hidden}
.kh-ensemble-grid{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);align-items:center;gap:clamp(28px,4vw,64px)}
.kh-ensemble-copy{min-width:0}
.kh-ensemble h2{font-size:clamp(2.2rem,4.2vw,3.6rem)}
.kh-ensemble-lead{margin-top:20px;color:#cfc6b6;line-height:1.75}
.kh-steps{display:grid;gap:14px;margin:28px 0 0;padding:0;list-style:none}
.kh-steps li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:start}
.kh-step-index{font:700 .8125rem/1.9 var(--mono);color:var(--brass)}
.kh-steps strong{display:block;font-size:1.0625rem}.kh-steps p{margin-top:2px;color:#cfc6b6;font-size:.9375rem;line-height:1.6}
.kh-readout{display:flex;align-items:center;gap:12px;margin-top:26px;font:600 .9375rem/1 var(--mono);color:#cfc6b6}
.kh-readout output{min-width:3.5ch;color:#fff;font-variant-numeric:tabular-nums}
.kh-progress-track{position:relative;flex:1;height:2px;background:#ffffff26;overflow:hidden}
.kh-progress-track span{position:absolute;inset:0;background:var(--brass);transform-origin:left}
[dir=rtl] .kh-progress-track span{transform-origin:right}
.kh-ensemble-field{position:relative;min-width:0;aspect-ratio:1000/560;container-type:inline-size}
.kh-ensemble[data-live] .kh-ensemble-field{aspect-ratio:auto;height:min(76svh,660px)}
.kh-dot{position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px;transform:translate(calc(var(--x) * 1cqw),calc(var(--y) * 1cqw)) rotate(var(--r)) scale(var(--s))}
.kh-dot i{position:absolute;inset:0;border-radius:50%}
.kh-dot-a{background:var(--brass)}.kh-dot-b{background:var(--c)}
.kh-dot-home .kh-dot-b{display:none}
.kh-dot-animated .kh-dot-b{border-radius:4px}
.kh-dot-chorus .kh-dot-b{inset:-5px 3px;border-radius:99px}
.kh-dot-restate .kh-dot-b{box-shadow:0 0 0 3px #ffffff1f}

/* Principles */
.kh-principles{padding-block:clamp(80px,10vw,140px)}
.kh-principle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.5vw,32px)}
.kh-principle{padding-top:26px;border-top:2px solid var(--kh-ink);min-width:0}
.kh-principle-icon{width:44px;height:44px;fill:none;stroke:var(--brass-text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kh-principle-icon .kh-fill{fill:var(--brass);stroke:var(--brass)}
.kh-principle h3{margin:20px 0 0;font-size:1.3125rem;font-weight:800;letter-spacing:-.03em;line-height:1.3}
.kh-principle p{margin-top:10px;color:var(--kh-muted);line-height:1.75;word-break:keep-all;overflow-wrap:anywhere}

/* Finale */
.kh-finale{background:var(--kh-cream);border-top:1px solid #f0ddae;padding-block:clamp(80px,10vw,130px)}
.kh-finale-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,80px);align-items:center}
.kh-finale-body{margin-top:24px;max-width:36em;font-size:1.125rem;line-height:1.8;color:#4b4638;word-break:keep-all;overflow-wrap:anywhere}
.kh-name-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:22px;color:#6b6450;font-size:.9375rem;line-height:1.7}
.kh-name-note code{padding:2px 10px;border-radius:8px;background:#fff;border:1px solid #f0ddae;color:var(--brass-text);font-weight:700}
.kh-finale-links{display:grid;gap:12px;min-width:0}
.kh-finale-links a{display:flex;align-items:center;gap:16px;min-height:76px;padding:14px 20px;border-radius:18px;background:#fff;border:1px solid #f0ddae;transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s}
.kh-finale-links a:hover{transform:translateX(6px);border-color:var(--p,var(--kh-ink))}
[dir=rtl] .kh-finale-links a:hover{transform:translateX(-6px)}
.kh-finale-links img{width:40px;height:40px;flex:none}
.kh-finale-links span{display:grid;min-width:0;flex:1}
.kh-finale-links strong{font-size:1.125rem}.kh-finale-links code{font-size:.8125rem;color:var(--kh-muted);overflow-wrap:anywhere}
.kh-finale-links .icon{width:20px;height:20px;flex:none}
.kh-finale-github{background:var(--kh-ink)!important;color:#fff;border-color:var(--kh-ink)!important}.kh-finale-github code{color:#aab0b8!important}

/* Responsive */
@media (max-width:1100px){
  .kh-hero-grid{grid-template-columns:minmax(0,1fr);min-height:0}
  .kh-hero-stage{max-width:520px;width:100%;margin-inline:auto}
  .kh-product{grid-template-columns:minmax(0,1fr)}
  .kh-product.is-flipped .kh-product-copy{order:0}
  .kh-principle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .kh-ensemble[data-live]{height:auto}
  .kh-ensemble[data-live] .kh-ensemble-sticky{position:static;height:auto;display:block;overflow:visible;padding-block:72px 0}
  .kh-ensemble-grid{grid-template-columns:minmax(0,1fr)}
  .kh-ensemble[data-live] .kh-ensemble-grid{min-height:300vh;align-items:start;align-content:start}
  .kh-ensemble[data-live] .kh-ensemble-field{position:sticky;top:calc(var(--header) + 8px);height:calc(100svh - var(--header) - 24px);max-height:720px}
  .kh-finale-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .kh-title{font-size:clamp(2.6rem,12vw,3.4rem)}
  .kh-actions .kh-btn{flex:1 1 auto}
  .kh-orbit{padding:8px 10px 7px;border-radius:16px;font-size:.75rem}
  .kh-orbit img{width:44px;height:44px}
  .kh-rs{grid-template-columns:minmax(0,1fr)}
  .kh-rs-link{height:36px}.kh-rs-link::before{inset-inline:auto;left:50%;top:4px;bottom:4px;border-top:0;border-left:2px dashed var(--p)}
  .kh-ch-body{grid-template-columns:minmax(0,1fr)}
  .kh-ch-row{grid-template-columns:minmax(0,1fr) auto}.kh-ch-meter{grid-column:1/-1;grid-row:2}
  .kh-install{grid-template-columns:minmax(0,1fr) auto;padding-inline-start:16px}.kh-install-label{grid-column:1/-1;padding-top:8px}
  .kh-principle-grid{grid-template-columns:minmax(0,1fr)}
  .kh-product-stage{min-height:0;border-radius:22px}
  .kh-index{display:none}
}
.kh .kh-install pre,.kh .kh-install pre code{padding:8px 0;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:.875rem}
.kh .kh-tagline,.kh .kh-rs-count,.kh .kh-ch-total,.kh .kh-ch-goal strong{color:var(--kh-ink)}
.kh .kh-tagline .kh-tag-line+.kh-tag-line{color:var(--p-deep)}
.kh-ensemble:not([data-live]) .kh-dot:not(.kh-dot-home) .kh-dot-a{opacity:0}
@media (max-width:600px){.site-home .top-nav{display:none}.kh-orbit-1{right:0}.kh-orbit-0{left:0}.kh-ensemble[data-live] .kh-ensemble-grid{min-height:320vh}}
.kh-ch-tab .kh-ch-label-on{color:var(--p-on)}
@media (min-width:601px){.kh .kh-ch-row{grid-template-columns:minmax(min-content,auto) minmax(48px,1fr) auto}}
.kh .kh-ch-name{word-break:keep-all;overflow-wrap:normal}
.kh .kh-role{display:block;line-height:1.45}.kh .kh-role>span+span{margin-inline-start:6px}
.kh-product-head>div{min-width:0}
