*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px;color-scheme:dark}body{margin:0;background:var(--sh-base);color:var(--sh-text-secondary);font:400 15px/1.6 var(--sh-font-sans);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--sh-dur-slow) var(--sh-ease-inout),color var(--sh-dur-slow) var(--sh-ease-inout)}img,svg{display:block;max-width:100%}a{color:var(--sh-accent);text-underline-offset:3px;text-decoration-thickness:1px}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--sh-focus-ring);outline-offset:2px;border-radius:4px}::selection{background:var(--sh-accent);color:var(--sh-on-accent)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:fixed;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:var(--sh-radius-md);background:var(--sh-action-primary);color:var(--sh-on-action-primary);font-weight:700;text-decoration:none;transition:top var(--sh-dur-fast) var(--sh-ease-smooth)}.skip:focus{top:12px}.mono{font-family:var(--sh-font-mono);font-feature-settings:"tnum"}.top{position:sticky;top:0;z-index:40;height:64px;display:flex;align-items:center;gap:12px;padding:0 max(16px,var(--sh-safe-right)) 0 max(16px,var(--sh-safe-left));background:color-mix(in srgb,var(--sh-base) 78%,transparent);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--sh-border-default)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--sh-text-primary);min-width:0}.brand img{height:22px;width:auto}.brand .tag{font:500 11px/1 var(--sh-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sh-text-muted);white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--sh-radius-pill);border:1px solid var(--sh-border-control);font:500 11px/1 var(--sh-font-mono);color:var(--sh-text-secondary);white-space:nowrap}.pill--accent{border-color:var(--sh-accent);color:var(--sh-accent)}.top .spacer{flex:1}.search-btn{display:flex;align-items:center;gap:10px;height:40px;min-width:240px;padding:0 10px 0 12px;cursor:pointer;border-radius:var(--sh-radius-md);border:1px solid var(--sh-border-control);background:var(--sh-surface-1);color:var(--sh-text-muted);transition:border-color var(--sh-dur-fast),background-color var(--sh-dur-fast)}.search-btn:hover{border-color:var(--sh-text-muted)}.search-btn span{flex:1;text-align:left;font-size:14px}kbd{font:500 11px/1 var(--sh-font-mono);padding:4px 6px;border-radius:6px;border:1px solid var(--sh-border-control);color:var(--sh-text-muted)}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:var(--sh-radius-md);background:var(--sh-surface-2);border:1px solid var(--sh-border-default)}.seg button{height:34px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--sh-text-muted);cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;transition:background-color var(--sh-dur-fast) var(--sh-ease-smooth),color var(--sh-dur-fast)}.seg button:hover{color:var(--sh-text-primary)}.seg button[aria-pressed=true]{background:var(--sh-surface-elevated);color:var(--sh-text-primary);box-shadow:inset 0 0 0 1px var(--sh-border-control),0 1px 2px #00000040}.seg--wrap{flex-wrap:wrap}.iconbtn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--sh-radius-md);cursor:pointer;border:1px solid var(--sh-border-control);background:transparent;color:var(--sh-text-primary)}.iconbtn:active,.seg button:active,.btn:active{transform:scale(.97);transition:transform var(--sh-dur-instant) ease-out}.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.back{font-size:13px;font-weight:600;color:var(--sh-text-secondary);text-decoration:none;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 6px}.back:hover{color:var(--sh-text-primary)}.layout{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:calc(100dvh - 64px)}.side{position:sticky;top:64px;height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;padding:24px 16px 48px;border-right:1px solid var(--sh-border-default);scrollbar-width:thin;scrollbar-color:var(--sh-border-control) transparent}.navgroup+.navgroup{margin-top:22px}.navgroup h2{margin:0 0 6px;padding:0 12px;font:600 11px/1.4 var(--sh-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sh-text-muted)}.navlink{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 12px;border-radius:var(--sh-radius-sm);color:var(--sh-text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:background-color var(--sh-dur-fast),color var(--sh-dur-fast)}.navlink:hover{background:var(--sh-surface-1);color:var(--sh-text-primary)}.navlink[aria-current=page]{background:var(--sh-surface-2);color:var(--sh-text-primary);box-shadow:inset 2px 0 0 var(--sh-accent)}.navlink .n{margin-left:auto;font:500 11px/1 var(--sh-font-mono);color:var(--sh-text-muted)}.navsub{margin:2px 0 6px 12px;padding-left:10px;border-left:1px solid var(--sh-border-default)}.navsub .navlink{min-height:32px;font-size:13px}main{min-width:0;overflow-x:clip}.page{max-width:1240px;margin:0 auto;padding:48px clamp(16px,4vw,56px) 96px;animation:page-in var(--sh-dur-reveal) var(--sh-ease-smooth) both}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;font:600 12px/1 var(--sh-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sh-accent)}.eyebrow:before{content:"";width:24px;height:1px;background:currentColor}h1,h2,h3,h4{color:var(--sh-text-primary);text-wrap:balance}.h1{margin:0;font:800 clamp(2.4rem,5.6vw,4.6rem)/1.02 var(--sh-font-sans);letter-spacing:-.045em}.h2{margin:0;font:750 clamp(1.7rem,3.2vw,2.5rem)/1.08 var(--sh-font-sans);letter-spacing:-.03em}.h3{margin:0;font:700 1.15rem/1.3 var(--sh-font-sans);letter-spacing:-.01em}.lede{max-width:720px;margin:20px 0 0;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.6;color:var(--sh-text-secondary);text-wrap:pretty}.muted{color:var(--sh-text-muted)}.section{margin-top:88px}.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 32px;margin-bottom:28px}.section-head p{max-width:560px;margin:10px 0 0;color:var(--sh-text-muted)}.card{position:relative;border:1px solid var(--sh-border-default);border-radius:var(--sh-radius-lg);background:var(--sh-surface)}.card--pad{padding:24px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.linkcard{display:flex;flex-direction:column;gap:10px;min-height:100%;padding:22px;text-decoration:none;color:inherit;transition:border-color var(--sh-dur-normal) var(--sh-ease-smooth),transform var(--sh-dur-normal) var(--sh-ease-spring),background-color var(--sh-dur-normal)}.linkcard:hover{border-color:var(--sh-border-active);background:var(--sh-surface-elevated);transform:translateY(-2px)}.linkcard .k{font:600 11px/1 var(--sh-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sh-text-muted)}.linkcard p{margin:0;color:var(--sh-text-muted);font-size:14px}.linkcard .go{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--sh-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;cursor:pointer;border-radius:var(--sh-radius-md);border:1px solid var(--sh-border-control);background:transparent;color:var(--sh-text-primary);font-size:14px;font-weight:650;text-decoration:none;white-space:nowrap;transition:background-color var(--sh-dur-fast),border-color var(--sh-dur-fast)}.btn:hover{background:var(--sh-surface-1);border-color:var(--sh-text-muted)}.btn--primary{background:var(--sh-action-primary);border-color:transparent;color:var(--sh-on-action-primary)}.btn--primary:hover{background:var(--sh-action-primary);filter:brightness(1.06)}.btn--sm{min-height:36px;padding:0 12px;font-size:13px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--sh-radius-pill);background:var(--sh-chip-bg);border:1px solid var(--sh-border-default);font:600 11px/1.3 var(--sh-font-mono);letter-spacing:.04em;color:var(--sh-text-secondary);white-space:nowrap}.badge--ok{color:var(--sh-success);border-color:color-mix(in srgb,var(--sh-success) 40%,transparent)}.badge--warn{color:var(--sh-warning);border-color:color-mix(in srgb,var(--sh-warning) 40%,transparent)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.copied{position:fixed;left:50%;bottom:max(24px,var(--sh-safe-bottom));z-index:90;transform:translate(-50%);padding:10px 16px;border-radius:var(--sh-radius-pill);background:var(--sh-text-primary);color:var(--sh-base);font:600 13px/1 var(--sh-font-sans);box-shadow:var(--sh-shadow-modal);animation:toast var(--sh-dur-spring) var(--sh-ease-spring) both}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px) scale(.96)}}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:center;padding-top:8px}.hero:before{content:"";position:absolute;inset:-48px -40vw auto;height:640px;z-index:-1;pointer-events:none;background:radial-gradient(600px 320px at 70% 30%,color-mix(in srgb,var(--sh-accent) 14%,transparent),transparent 70%),linear-gradient(var(--sh-border-default) 1px,transparent 1px) 0 0 / 48px 48px,linear-gradient(90deg,var(--sh-border-default) 1px,transparent 1px) 0 0 / 48px 48px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%)}.hero .h1 em{font-style:normal;color:var(--sh-accent)}.hero .ctas{margin-top:32px}.hero-device{justify-self:center;width:min(100%,360px)}.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:64px;border-top:1px solid var(--sh-border-default);border-bottom:1px solid var(--sh-border-default)}.stat{padding:22px 18px;border-right:1px solid var(--sh-border-default);min-width:0}.stat:last-child{border-right:0}.stat b{display:block;font:700 clamp(1.6rem,2.6vw,2.25rem)/1 var(--sh-font-mono);letter-spacing:-.03em;color:var(--sh-text-primary);font-feature-settings:"tnum"}.stat span{display:block;margin-top:8px;font-size:13px;color:var(--sh-text-muted)}.casestep{padding:28px}.casestep .k{font:600 12px/1 var(--sh-font-mono);color:var(--sh-accent);letter-spacing:.1em}.casestep h3{margin:14px 0 10px}.casestep p{margin:0;color:var(--sh-text-muted)}.principle{display:grid;grid-template-columns:56px 1fr;gap:0 20px;padding:26px 0;border-top:1px solid var(--sh-border-default)}.principle .num{font:700 14px/1.6 var(--sh-font-mono);color:var(--sh-accent)}.principle h3{margin:0 0 6px}.principle p{margin:0;color:var(--sh-text-muted);max-width:760px}.quote{margin:0;padding:36px clamp(24px,4vw,48px);border-radius:var(--sh-radius-xl);background:var(--sh-surface-elevated);border:1px solid var(--sh-border-default)}.quote p{margin:0;font:650 clamp(1.3rem,2.4vw,1.9rem)/1.3 var(--sh-font-sans);letter-spacing:-.02em;color:var(--sh-text-primary);text-wrap:balance}.quote footer{margin-top:18px;font:500 13px/1 var(--sh-font-mono);color:var(--sh-text-muted)}.stage{position:relative;border-radius:var(--sh-radius-xl);border:1px solid var(--sh-border-default);overflow:hidden;background:radial-gradient(circle at 1px 1px,var(--sh-border-control) 1px,transparent 0) 0 0 / 20px 20px,var(--sh-surface)}.stage-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--sh-border-default);background:var(--sh-surface)}.stage-bar .spacer{flex:1}.stage-body{padding:clamp(12px,3vw,32px);display:flex;justify-content:center}.frame{position:relative;transform-origin:top center}.frame iframe{display:block;width:100%;border:0;background:var(--sh-base);border-radius:var(--sh-radius-md);box-shadow:0 0 0 1px var(--sh-border-default),var(--sh-shadow-card)}.devwidth{font:500 11px/1 var(--sh-font-mono);color:var(--sh-text-muted)}.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:14px}.swatch{display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;cursor:pointer;border:1px solid var(--sh-border-default);border-radius:var(--sh-radius-lg);background:var(--sh-surface);color:inherit;transition:transform var(--sh-dur-normal) var(--sh-ease-spring),border-color var(--sh-dur-fast)}.swatch:hover{transform:translateY(-2px);border-color:var(--sh-border-control)}.swatch .chip{height:88px;border-bottom:1px solid var(--sh-border-default)}.swatch .meta{padding:12px 14px 14px;display:grid;gap:4px}.swatch b{font:600 13px/1.3 var(--sh-font-mono);color:var(--sh-text-primary)}.swatch .val{font:500 12px/1.3 var(--sh-font-mono);color:var(--sh-text-muted)}.swatch .use{font-size:12.5px;line-height:1.45;color:var(--sh-text-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ratio{justify-self:start;margin-top:4px}.wheel{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:32px;align-items:center}.specimen{padding:28px;display:grid;gap:14px}.specimen .big{font-size:clamp(3rem,8vw,6rem);line-height:1;letter-spacing:-.04em;color:var(--sh-text-primary)}.specimen .glyphs{font-size:18px;letter-spacing:.02em;color:var(--sh-text-secondary);word-break:break-all}.scale-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:baseline;padding:22px 0;border-top:1px solid var(--sh-border-default)}.scale-row .spec{font:500 12px/1.6 var(--sh-font-mono);color:var(--sh-text-muted)}.scale-row .spec b{display:block;color:var(--sh-text-primary);font-size:13px}.scale-row .sample{color:var(--sh-text-primary);overflow-wrap:anywhere;min-width:0}.tester{width:100%;min-height:48px;padding:0 16px;border-radius:var(--sh-radius-md);border:1px solid var(--sh-border-control);background:var(--sh-surface-1);color:var(--sh-text-primary);font:500 16px/1 var(--sh-font-sans)}.tester:focus{outline:2px solid var(--sh-focus-ring);outline-offset:2px}.bars{display:grid;gap:10px}.bar{display:grid;grid-template-columns:120px 64px minmax(0,1fr);gap:16px;align-items:center;font:500 12px/1 var(--sh-font-mono);color:var(--sh-text-muted)}.bar b{color:var(--sh-text-primary);font-weight:600}.bar i{display:block;height:16px;border-radius:4px;background:var(--sh-accent);opacity:.85}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:14px}.tile{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--sh-border-control);background:var(--sh-surface-elevated);color:var(--sh-text-primary);font:600 12px/1.4 var(--sh-font-mono);text-align:center;padding:8px}.curve{padding:18px;display:grid;gap:12px}.curve svg{width:100%;height:auto;overflow:visible}.curve .track{position:relative;height:28px;border-radius:var(--sh-radius-pill);background:var(--sh-surface-2)}.curve .ball{position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:var(--sh-accent);box-shadow:0 0 16px color-mix(in srgb,var(--sh-accent) 60%,transparent)}.curve .track.run .ball{left:calc(100% - 24px)}.curve header{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.curve code{font:600 13px/1 var(--sh-font-mono);color:var(--sh-text-primary)}.ruler{position:relative;height:72px;border:1px solid var(--sh-border-default);border-radius:var(--sh-radius-md);background:var(--sh-surface);overflow:hidden}.ruler span{position:absolute;top:0;bottom:0;border-left:1px dashed var(--sh-border-control)}.ruler span b{position:absolute;top:8px;left:6px;font:500 11px/1.3 var(--sh-font-mono);color:var(--sh-text-muted);white-space:nowrap}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.filter{min-height:36px;padding:0 14px;border-radius:var(--sh-radius-pill);border:1px solid var(--sh-border-control);background:transparent;color:var(--sh-text-secondary);font-size:13px;font-weight:600;cursor:pointer}.filter[aria-current=page]{background:var(--sh-text-primary);border-color:var(--sh-text-primary);color:var(--sh-base)}.compcard{overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color var(--sh-dur-normal),transform var(--sh-dur-normal) var(--sh-ease-spring)}.compcard:hover{border-color:var(--sh-border-active);transform:translateY(-2px)}.compcard .thumb{position:relative;height:200px;overflow:hidden;border-bottom:1px solid var(--sh-border-default);background:var(--sh-base)}.compcard .thumb iframe{position:absolute;top:0;left:0;width:200%;height:400px;border:0;transform:scale(.5);transform-origin:0 0;pointer-events:none}.compcard .body{padding:16px 18px 18px;display:grid;gap:6px}.compcard .body p{margin:0;font-size:13px;color:var(--sh-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--sh-border-default);margin:40px 0 28px;overflow-x:auto;scrollbar-width:none}.tabs button{position:relative;min-height:44px;padding:0 14px;border:0;background:none;color:var(--sh-text-muted);font-weight:650;font-size:14px;cursor:pointer;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--sh-text-primary)}.tabs button[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--sh-accent)}table.props{width:100%;border-collapse:collapse;font-size:14px}table.props th{text-align:left;font:600 11px/1 var(--sh-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sh-text-muted);padding:12px;border-bottom:1px solid var(--sh-border-control)}table.props td{padding:14px 12px;border-bottom:1px solid var(--sh-border-default);vertical-align:top}table.props td:first-child{font:600 13px/1.4 var(--sh-font-mono);color:var(--sh-text-primary);white-space:nowrap}table.props td code{font:500 12.5px/1.5 var(--sh-font-mono);color:var(--sh-accent);overflow-wrap:anywhere}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}pre.code{margin:0;padding:20px;overflow-x:auto;border-radius:var(--sh-radius-lg);border:1px solid var(--sh-border-default);background:var(--sh-surface-elevated);font:500 13px/1.7 var(--sh-font-mono);color:var(--sh-text-secondary)}.codewrap{position:relative}.codewrap .btn{position:absolute;top:10px;right:10px}.prose{max-width:760px;color:var(--sh-text-secondary);font-size:16px;line-height:1.75}.prose>:first-child{margin-top:0}.prose h1{font:800 clamp(2rem,4vw,3rem)/1.08 var(--sh-font-sans);letter-spacing:-.035em;margin:0 0 24px}.prose h2{font:750 1.6rem/1.2 var(--sh-font-sans);letter-spacing:-.02em;margin:56px 0 16px;padding-top:24px;border-top:1px solid var(--sh-border-default)}.prose h3{font:700 1.15rem/1.35 var(--sh-font-sans);margin:32px 0 10px}.prose p,.prose ul,.prose ol{margin:0 0 16px}.prose li{margin:6px 0}.prose strong{color:var(--sh-text-primary);font-weight:650}.prose code{font:500 max(.86em,11px)/1.4 var(--sh-font-mono);padding:2px 6px;border-radius:6px;background:var(--sh-surface-2);color:var(--sh-text-primary);overflow-wrap:anywhere}.prose pre{overflow-x:auto;margin:20px 0 28px;padding:16px 18px;border:1px solid var(--sh-border-default);border-radius:var(--sh-radius-md);background:var(--sh-surface-1);font:500 13px/1.6 var(--sh-font-mono);color:var(--sh-text-primary)}.prose pre code{padding:0;border-radius:0;background:none;font:inherit;white-space:pre;overflow-wrap:normal}.prose blockquote{margin:24px 0;padding:18px 22px;border-left:2px solid var(--sh-accent);background:var(--sh-surface-1);border-radius:0 var(--sh-radius-md) var(--sh-radius-md) 0;color:var(--sh-text-primary)}.prose blockquote p:last-child{margin:0}.prose table{width:100%;border-collapse:collapse;margin:20px 0 28px;font-size:14px;line-height:1.55}.prose .tablewrap{overflow-x:auto;margin:20px 0 28px;border:1px solid var(--sh-border-default);border-radius:var(--sh-radius-md)}.prose .tablewrap table{margin:0;min-width:560px}.prose th{text-align:left;padding:12px 14px;font:600 11px/1.3 var(--sh-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sh-text-muted);background:var(--sh-surface-1);border-bottom:1px solid var(--sh-border-control)}.prose td:first-child code{white-space:nowrap;overflow-wrap:normal}.prose td{padding:12px 14px;border-bottom:1px solid var(--sh-border-default);vertical-align:top}.prose tr:last-child td{border-bottom:0}.prose hr{border:0;border-top:1px solid var(--sh-border-default);margin:40px 0}.reader{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:56px}.toc{position:sticky;top:96px;align-self:start;font-size:13px}.toc b{display:block;margin-bottom:10px;font:600 11px/1 var(--sh-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sh-text-muted)}.toc a{display:block;padding:6px 0 6px 12px;border-left:1px solid var(--sh-border-default);color:var(--sh-text-muted);text-decoration:none}.toc a:hover{color:var(--sh-text-primary);border-left-color:var(--sh-accent)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:72px}.pager a{padding:18px 20px;text-decoration:none;color:var(--sh-text-primary);font-weight:650}.pager a span{display:block;font:500 11px/1 var(--sh-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sh-text-muted);margin-bottom:8px}.pager a:last-child{text-align:right}.logo-tile{display:grid;place-items:center;min-height:220px;padding:40px;border-radius:var(--sh-radius-lg);border:1px solid var(--sh-border-default)}.logo-tile.on-dark{background:#03030a}.logo-tile.on-light{background:#fff}.logo-tile img{max-height:64px;width:auto}.figure{margin:0}.figure img{width:100%;height:auto;border-radius:var(--sh-radius-lg);border:1px solid var(--sh-border-default);background:var(--sh-surface)}.figure figcaption{margin-top:10px;font:500 12px/1.4 var(--sh-font-mono);color:var(--sh-text-muted)}.icons{display:flex;flex-wrap:wrap;align-items:end;gap:28px}.icons figure{margin:0;display:grid;justify-items:center;gap:10px}.icons figcaption{font:500 11px/1 var(--sh-font-mono);color:var(--sh-text-muted)}.glyphgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.glyph{display:grid;justify-items:center;gap:10px;padding:18px 8px 14px;border-radius:var(--sh-radius-md);border:1px solid var(--sh-border-default);background:var(--sh-surface)}.glyph img{width:24px;height:24px}html:not([data-theme=light]) .glyph img{filter:invert(1)}.glyph span{font:500 11px/1.2 var(--sh-font-mono);color:var(--sh-text-muted);text-align:center;overflow-wrap:anywhere}.heat{display:grid;gap:3px;min-width:640px}.heat .hr{display:grid;grid-template-columns:150px repeat(var(--cols, 12),minmax(0,1fr));gap:3px;align-items:center}.heat .hr>span:first-child{font:500 12px/1.2 var(--sh-font-mono);color:var(--sh-text-secondary);overflow-wrap:anywhere}.heat i{display:block;height:18px;border-radius:3px;background:color-mix(in srgb,var(--sh-success) 70%,transparent)}.heat i.f{background:var(--sh-danger)}.heat .hh span{font:500 11px/1.2 var(--sh-font-mono);color:var(--sh-text-muted);text-align:center}.heat .hh span:first-child{text-align:left}.decisions{display:grid;gap:0}.decision{display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,1fr);gap:24px;padding:22px 0;border-top:1px solid var(--sh-border-default)}.decision .id{font:700 14px/1.5 var(--sh-font-mono);color:var(--sh-accent)}.decision h3{font-size:16px;line-height:1.45;margin:0}.decision p{margin:0;color:var(--sh-text-muted);font-size:14px}.dl{display:grid;gap:10px}.dlrow{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:var(--sh-radius-md);border:1px solid var(--sh-border-default);background:var(--sh-surface);text-decoration:none;color:var(--sh-text-primary)}.dlrow:hover{border-color:var(--sh-border-active)}.dlrow b{font:600 14px/1.3 var(--sh-font-mono)}.dlrow span{margin-left:auto;font:500 12px/1 var(--sh-font-mono);color:var(--sh-text-muted)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade var(--sh-dur-normal) var(--sh-ease-smooth) both}@keyframes fade{0%{opacity:0}}.palette{position:fixed;z-index:81;left:50%;top:12vh;width:min(640px,calc(100vw - 24px));transform:translate(-50%);border-radius:var(--sh-radius-xl);border:1px solid var(--sh-border-control);background:var(--sh-surface-elevated);box-shadow:var(--sh-shadow-modal);overflow:hidden;animation:pop var(--sh-dur-spring) var(--sh-ease-spring) both}@keyframes pop{0%{opacity:0;transform:translate(-50%,-8px) scale(.97)}}.palette input{width:100%;height:60px;padding:0 20px 0 52px;border:0;border-bottom:1px solid var(--sh-border-default);background:transparent;color:var(--sh-text-primary);font:500 17px/1 var(--sh-font-sans);outline:none}.palette .pi{position:absolute;left:20px;top:21px;color:var(--sh-text-muted)}.palette ul{list-style:none;margin:0;padding:8px;max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain}.palette li button{display:flex;width:100%;align-items:center;gap:12px;min-height:48px;padding:8px 12px;border:0;border-radius:var(--sh-radius-md);background:transparent;color:var(--sh-text-secondary);text-align:left;cursor:pointer}.palette li button[aria-selected=true]{background:var(--sh-surface-2);color:var(--sh-text-primary)}.palette li .t{flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette li .k{font:500 11px/1 var(--sh-font-mono);color:var(--sh-text-muted);text-transform:uppercase;letter-spacing:.08em}.palette .empty{padding:28px;text-align:center;color:var(--sh-text-muted)}.drawer{position:fixed;z-index:81;top:0;bottom:0;left:0;width:min(320px,86vw);background:var(--sh-surface-elevated);border-right:1px solid var(--sh-border-control);box-shadow:var(--sh-shadow-modal);overflow-y:auto;overscroll-behavior:contain;padding:max(16px,var(--sh-safe-top)) 16px max(32px,var(--sh-safe-bottom));animation:drawer var(--sh-dur-spring) var(--sh-ease-spring) both}@keyframes drawer{0%{transform:translate(-100%)}}.drawer .dhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.footer{margin-top:96px;padding-top:28px;border-top:1px solid var(--sh-border-default);display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;font-size:13px;color:var(--sh-text-muted)}.footer a{color:var(--sh-text-secondary)}.only-mobile{display:none}@media (max-width: 1180px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat:nth-child(3){border-right:0}.stat:nth-child(-n+3){border-bottom:1px solid var(--sh-border-default)}.reader{grid-template-columns:minmax(0,1fr)}.toc{display:none}}@media (max-width: 1023px){.layout{grid-template-columns:minmax(0,1fr)}.side{display:none}.only-mobile{display:inline-grid}.hide-mobile{display:none!important}.hero{grid-template-columns:minmax(0,1fr)}.search-btn{min-width:0;width:44px;height:44px;padding:0;justify-content:center}.search-btn span,.search-btn kbd{display:none}.decision{grid-template-columns:64px minmax(0,1fr)}.decision p{grid-column:2}}@media (max-width: 699px){body{font-size:16px}.top{height:56px;gap:8px}html{scroll-padding-top:72px}.side{top:56px}.brand .tag,.brand .pill{display:none}.page{padding-top:32px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:40px}.stat{border-right:1px solid var(--sh-border-default)!important;border-bottom:1px solid var(--sh-border-default)}.stat:nth-child(2n){border-right:0!important}.stat:nth-last-child(-n+2){border-bottom:0}.principle{grid-template-columns:40px 1fr;gap:0 12px}.wheel{grid-template-columns:minmax(0,1fr)}.scale-row{grid-template-columns:minmax(0,1fr);gap:10px}.bar{grid-template-columns:96px 52px minmax(0,1fr);gap:10px}.section{margin-top:64px}.pager{grid-template-columns:minmax(0,1fr)}.pager a:last-child{text-align:left}.stage-bar .seg button{padding:0 9px}.compcard .thumb{height:170px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.page{animation:none}}@media (prefers-reduced-transparency: reduce){.top{background:var(--sh-base);-webkit-backdrop-filter:none;backdrop-filter:none}.scrim{-webkit-backdrop-filter:none;backdrop-filter:none;background:#000000bf}}@media (prefers-contrast: more){.card,.swatch,.stage,.dlrow{border-color:var(--sh-border-control)}}@media (hover: none){.linkcard:hover,.swatch:hover,.compcard:hover{transform:none}}.stat b.word{font-size:clamp(1.1rem,2.2vw,1.5rem)}.lockup-text{font:800 16px/1 var(--sh-font-sans);color:var(--sh-text-primary);letter-spacing:-.01em;white-space:nowrap}.langnote{margin-bottom:0}.badge.wrap{white-space:normal;overflow-wrap:anywhere}
