/* Local AI extends the shared paper, type, control, and spatial-motion system. */
.ai-page{max-width:1180px;padding-top:50px;padding-bottom:70px}.ai-intro{padding:30px 0 75px;max-width:940px}.ai-eyebrow{font-size:13px;font-weight:600;color:var(--green);letter-spacing:.04em;margin:0 0 20px}.ai-intro h1{font-size:clamp(44px,6.4vw,80px);line-height:1.07;letter-spacing:-.045em;font-weight:550;font-stretch:103%;font-variation-settings:'ROND' 45;margin:20px 0 28px}.ai-intro h1 span{display:block;color:var(--muted);font-size:.66em;letter-spacing:-.03em;margin-top:18px}.ai-subtitle{font-size:21px;max-width:660px;line-height:1.55}.ai-intro-actions{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}.ai-evidence,.ai-code-label,.ai-caution{font-size:13px;color:var(--muted);line-height:1.6}.ai-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 0;border-block:1px solid var(--line);background:var(--paper);position:relative;z-index:3}.ai-toolbar[hidden],.ai-scene[hidden],.ai-scene-nav[hidden],.ai-demo-controls[hidden],.ai-intro [hidden],.ai-key-help[hidden],.ai-step-text[hidden],.ai-progress[hidden]{display:none!important}.ai-jump{display:flex;align-items:center;gap:10px;flex:1;min-width:160px;font-size:13px;color:var(--muted)}.ai-jump select{width:100%;max-width:420px}.ai-page select,.ai-page input[type=number]{font:400 14px/1.3 var(--font);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;min-height:48px;max-width:100%;padding:10px 12px}.ai-key-help{font-size:12px;color:var(--muted);margin:16px 0}.ai-progress{height:3px;background:var(--line);margin-top:16px}.ai-progress span{display:block;height:100%;background:var(--green);width:0}.ai-scene{scroll-margin-top:110px;padding:72px 0;border-bottom:1px solid var(--line)}.ai-scene-heading{max-width:900px}.ai-scene-heading .ai-eyebrow{display:flex;justify-content:space-between;gap:20px}.ai-scene-heading h2{font-size:clamp(29px,4vw,44px);line-height:1.12;font-weight:550;font-stretch:103%;font-variation-settings:'ROND' 45;letter-spacing:-.025em;margin:16px 0}.ai-scene-heading h2 a{color:inherit;text-decoration:none}.ai-scene-heading h2 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.ai-point{font-size:clamp(19px,2vw,24px);line-height:1.45;color:var(--muted);max-width:760px;margin:18px 0 32px}.ai-scene-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr);gap:36px;align-items:center}.ai-figure{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:18px 10px 20px;overflow:hidden}.ai-diagram{display:block;width:100%;height:auto;overflow:visible;font-family:var(--font)}.ai-object rect{fill:var(--soft);stroke:var(--line);stroke-width:1.5}.ai-object text{fill:var(--ink);font-size:17px;font-weight:500}.ai-object.ai-weight rect{fill:var(--soft);stroke:var(--green)}.ai-object.ai-cache rect{fill:var(--paper);stroke:var(--green);stroke-dasharray:5 3}.ai-object.ai-headroom rect{fill:none;stroke-dasharray:5 5}.ai-object.ai-token rect{fill:var(--green);stroke:var(--green)}.ai-object.ai-token text{fill:var(--paper)}.ai-edges{color:var(--muted);fill:none;stroke:currentColor;stroke-width:3;stroke-linejoin:round}.ai-figure figcaption{font-size:12px;color:var(--muted);text-align:center;margin:6px 12px 0;line-height:1.5}.ai-reading p{font-size:17px;line-height:1.75;margin:0}.ai-demo-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:22px}.ai-demo-controls [data-step-count]{font-size:13px;color:var(--muted);margin-left:8px;font-variant-numeric:tabular-nums}.ai-step-text{font-size:18px;min-height:2.6em;margin:16px 0;max-width:780px}.ai-notes{margin-top:24px;max-width:100%}.ai-page details summary{cursor:pointer;padding:14px 0;min-height:48px;color:var(--green);font-weight:500;list-style:none;display:flex;align-items:center;gap:12px}.ai-page details summary::before{content:'+';font-size:24px;font-weight:400;width:24px;text-align:center;flex:none}.ai-page details[open]>summary::before{content:'−'}.ai-notes-content{max-width:900px;padding:8px 0 20px}.ai-notes-content p,.ai-notes-content li{font-size:16px;line-height:1.75}.ai-page pre{font-size:13px;line-height:1.7;white-space:pre;overflow:auto;padding:22px;border-radius:18px;background:var(--soft);border:1px solid var(--line);color:var(--ink);max-width:100%;tab-size:2}.ai-page code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.ai-page :is(h3,dt){font-weight:600}.ai-sources{padding-left:22px}.ai-sources a{color:var(--green);text-underline-offset:3px}.ai-sources svg{height:14px;width:14px}.ai-table-wrap{overflow-x:auto;max-width:100%;margin:20px 0}.ai-page table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.6;font-variant-numeric:tabular-nums}.ai-page th,.ai-page td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}.ai-page th{font-weight:550}.ai-page caption{text-align:left;font-size:12px;color:var(--muted);padding-bottom:12px}.ai-page thead{background:var(--soft)}.ai-reference{padding-top:72px;scroll-margin-top:110px}.ai-reference h2{font-size:32px;font-weight:550;letter-spacing:-.02em}.ai-reference>p{max-width:820px;line-height:1.75}.ai-reference dl{display:grid;grid-template-columns:1fr 1fr;gap:24px 36px}.ai-reference dl>div{border-top:1px solid var(--line);padding-top:18px}.ai-reference dt{font-size:16px;color:var(--green);margin-bottom:8px}.ai-reference dd{font-size:15px;line-height:1.6;margin:0;color:var(--muted)}.ai-scene-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:20px}.ai-scene-nav output{font-size:13px;color:var(--muted);text-align:center;max-width:500px}.ai-cache-figure,.ai-tuner{margin:28px 0 12px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px}.ai-cache-figure figcaption{font-size:13px;color:var(--muted);line-height:1.6}.ai-cache-plot{width:100%;height:auto;color:var(--ink);font:14px var(--font);display:block}.ai-cache-plot text{fill:currentColor}.ai-cache-plot .ai-grid{stroke:var(--line);stroke-width:1}.ai-cache-plot .ai-qwen-line{stroke:var(--green);stroke-width:4;fill:none}.ai-cache-plot .ai-muse-line{stroke:var(--ink);stroke-width:3;fill:none;stroke-dasharray:8 5}.ai-tuner-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ai-tuner-fields label{font-size:13px;display:flex;flex-direction:column;gap:10px;min-width:0}.ai-tuner-fields label>span{font-size:11px;color:var(--muted)}.ai-tuner-fields input[type=range]{min-height:44px;width:100%;accent-color:var(--green)}.ai-tuner-fields output{font-variant-numeric:tabular-nums}.ai-budget-bar{display:flex;height:32px;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:28px;background:var(--paper)}.ai-budget-bar span{min-width:2px;border-right:2px solid var(--paper);background:var(--green)}.ai-budget-bar span:nth-child(2){opacity:.68}.ai-budget-bar span:nth-child(3){opacity:.45}.ai-budget-bar span:nth-child(4){background:var(--muted)}.ai-budget-bar span:nth-child(5){background:var(--line)}.ai-budget-total{font-size:22px;font-variant-numeric:tabular-nums;font-weight:550;line-height:1.5}.ai-budget-total em{font-size:14px;font-style:normal;color:var(--muted);display:block}.ai-page :is(button,select,input,summary,a):focus-visible{outline:2px solid var(--green);outline-offset:4px}.ai-present .ai-intro,.ai-present .ai-reference,.ai-present .ai-reading{display:none}.ai-present .ai-page{padding-top:12px}.ai-present .ai-scene{border:0;padding:30px 0 0;min-height:65vh}.ai-present .ai-scene-body{display:block}.ai-present .ai-figure{max-width:900px;margin-inline:auto}.ai-present .ai-diagram{max-height:40vh;min-height:235px}.ai-present .ai-scene-heading h2{font-size:clamp(30px,4vw,48px)}.ai-present .ai-point{margin-bottom:22px}.ai-present .ai-scene-heading{max-width:100%}.ai-present .ai-demo-controls{justify-content:center}.ai-present .ai-step-text{text-align:center;margin:16px auto}.ai-present .ai-notes{margin-top:10px}.ai-present .ai-cache-figure{max-width:900px;margin-inline:auto}.ai-present .footer{display:none}.ai-present:fullscreen{overflow:auto;background:var(--paper)}.ai-present .ai-scenes{min-width:0}
@media(max-width:760px){.ai-page{padding-top:20px}.ai-intro{padding-top:18px;padding-bottom:48px}.ai-intro h1{font-size:47px}.ai-subtitle{font-size:18px}.ai-scene{padding:48px 0;scroll-margin-top:100px}.ai-scene-body{display:flex;flex-direction:column;gap:22px;align-items:stretch}.ai-figure{border-radius:24px;padding:12px 6px 16px}.ai-scene-heading .ai-eyebrow{font-size:11px}.ai-toolbar{gap:12px}.ai-jump{order:3;flex-basis:100%}.ai-jump select{max-width:none}.ai-toolbar>[data-fullscreen]{margin-left:auto}.ai-reference dl{grid-template-columns:1fr}.ai-tuner-fields{grid-template-columns:1fr 1fr}.ai-tuner,.ai-cache-figure{padding:18px}.ai-reading p{font-size:16px}.ai-page th,.ai-page td{padding:10px 8px}.ai-scene-nav output{font-size:11px}.ai-scene-nav .button{padding-inline:14px}.ai-present .ai-diagram{min-height:0;max-height:none}.ai-present .ai-scene{min-height:0}.ai-present .ai-key-help{display:none}.ai-object text{font-size:19px}.ai-cache-plot{min-width:0}}
@media(max-width:400px){.ai-tuner-fields{grid-template-columns:1fr}.ai-intro h1{font-size:40px}.ai-toolbar .decision-view-buttons button{padding-inline:10px}.ai-toolbar>[data-fullscreen]{padding-inline:12px}.ai-demo-controls .button{padding-inline:16px}}
html[data-motion=reduce] .ai-page *,html[data-motion=reduce] .ai-page *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){.ai-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.header,.site-header-spacer,.ai-toolbar,.ai-key-help,.ai-scene-nav,.ai-demo-controls,.ai-progress,.footer{display:none!important}.ai-intro,.ai-reference,.ai-reading,.ai-scene[hidden]{display:block!important}.ai-scene{break-inside:avoid;padding:20px 0}.ai-page{max-width:none}.ai-notes>div{display:block}.ai-object{opacity:1!important}.ai-figure{max-width:600px}.ai-tuner-fields{display:none}.ai-present .ai-scene-body{display:grid}.ai-present .ai-reading{display:block}.ai-present .ai-intro{display:block}}

.ai-mobile-diagram{display:none}
@media(max-width:600px){.ai-figure>.ai-diagram{display:none!important}.ai-mobile-diagram{display:flex;flex-direction:column;gap:10px;list-style:none;padding:12px;margin:0}.ai-mobile-diagram li{display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 16px;background:var(--soft);border:1px solid var(--line);border-radius:18px;font-size:16px;line-height:1.4}.ai-mobile-diagram li>span{font-size:12px;color:var(--green);font-variant-numeric:tabular-nums}.ai-mobile-diagram li.ai-mobile-cache{border-style:dashed}.ai-cache-plot{display:none}}
.ai-marks text{font:14px var(--font);fill:var(--ink)}.ai-mark-green{fill:var(--green)}.ai-mark-soft{fill:var(--soft);stroke:var(--line)}.ai-mark-empty{fill:none;stroke:var(--line)}.ai-mark-line{stroke:var(--line);stroke-width:1}.ai-scene[data-scene='15'] .ai-object text,.ai-scene[data-scene='16'] .ai-object text{font-size:13px}.ai-scene[data-scene='22'] .ai-marks text{fill:var(--ink)}

.ai-scene[data-scene='22']:is([data-reveal='2'],[data-reveal='3']) :is([data-key='token-1'],[data-key='token-2']) rect{fill:var(--green);stroke:var(--green)}.ai-scene[data-scene='22']:is([data-reveal='2'],[data-reveal='3']) :is([data-key='token-1'],[data-key='token-2']) text{fill:var(--paper)}
