:root{--paper:#f4efe6;--panel:#efe8dc;--panel-2:#e8e0d1;--ink:#2b2a28;--ink-2:#5d5850;--ink-3:#8a8378;--rule:#d6ccba;--rule-2:#bfb29b;--accent:#8e2c1d;--hl:#b3261e;--shadow:0 10px 30px #3c2d1424, 0 1px 3px #3c2d141f;--serif:"Cormorant Garamond", "EB Garamond", "Iowan Old Style", Georgia, serif;--sc:"Cormorant SC", "Cormorant Garamond", Georgia, serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--left-w:276px;--right-w:320px;--bar-h:0px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=blueprint]{--paper:#10263f;--panel:#0d2036;--panel-2:#12304f;--ink:#dbe8f6;--ink-2:#a9c0d8;--ink-3:#7892ad;--rule:#24466b;--rule-2:#36608c;--accent:#ffd166;--hl:#ffd166;--shadow:0 10px 30px #0006, 0 1px 3px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;line-height:1.45;overflow:hidden}button{font:inherit;color:inherit}.sc{font-family:var(--sc);letter-spacing:.06em;font-weight:600}h1,h2,h3{margin:0;font-weight:600}.app{width:100vw;height:100dvh;position:relative;overflow:hidden}.plate{background-color:var(--paper);background-image:radial-gradient(at 50% 45%,#ffffff73,#0000 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0;overflow:hidden}:root[data-theme=blueprint] .plate{background-image:radial-gradient(at 50% 45%,#508cc829,#0000 70%),linear-gradient(#aacdf012 1px,#0000 1px),linear-gradient(90deg,#aacdf012 1px,#0000 1px),linear-gradient(#aacdf009 1px,#0000 1px),linear-gradient(90deg,#aacdf009 1px,#0000 1px);background-size:auto,100px 100px,100px 100px,20px 20px,20px 20px}.plate:before{content:"";border:1px solid var(--rule-2);outline:3px double var(--rule);outline-offset:3px;pointer-events:none;z-index:3;position:absolute;inset:6px}.gl-host{position:absolute;inset:0}.gl-host canvas.gl{touch-action:none;outline:none;width:100%;height:100%;display:block}.leaders{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.leaders path{fill:none;stroke:var(--ink);stroke-width:.75px;opacity:.8}.leaders circle{fill:var(--ink);stroke:var(--paper);stroke-width:1px}.leaders .emph{stroke-width:1.3px;opacity:1}.leaders circle.emph{fill:var(--c);stroke:var(--ink);stroke-width:.8px}.leaders .ghost{opacity:.22}.callouts{pointer-events:none;z-index:5;position:absolute;inset:0}.callout{text-align:left;cursor:pointer;pointer-events:auto;will-change:transform;background:0 0;border:0;align-items:flex-start;gap:7px;padding:0;display:flex;position:absolute;top:0;left:0}.callout.left{text-align:right;flex-direction:row-reverse}.callout .num{border:1px solid var(--ink);background:var(--paper);width:21px;height:21px;font-family:var(--serif);font-variant-numeric:lining-nums;border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;line-height:1;display:grid}.callout .ct{flex-direction:column;min-width:0;padding-top:1px;display:flex}.callout .title{font-family:var(--serif);color:var(--ink);text-shadow:0 0 3px var(--paper), 0 0 6px var(--paper);font-size:15px;font-weight:600;line-height:1.12}.callout .body{display:none}.callout:hover .title,.callout:focus-visible .title{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.callout.emph .num{background:var(--c);color:#fff;border-color:var(--ink);text-shadow:0 0 2px #00000080}.callout.emph .title{font-weight:700}.callout.ghost{opacity:.35}.callouts.compact .callout .ct{display:none}.callouts.compact .callout .num{width:20px;height:20px;font-size:12px}.topbar{z-index:8;pointer-events:none;align-items:center;gap:16px;display:flex;position:absolute;top:14px;left:16px;right:16px}.topbar>*{pointer-events:auto}.back{border:1px solid var(--rule-2);background:color-mix(in srgb, var(--paper) 90%, transparent);color:var(--ink);font-family:var(--sc);letter-spacing:.04em;border-radius:999px;flex:none;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.back:hover{border-color:var(--ink);background:var(--panel-2)}.titleblock{pointer-events:none;flex:auto;min-width:0}.titleblock h1{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 6px var(--paper);font-size:24px;font-weight:600;line-height:1.05;overflow:hidden}.titleblock h1 .explore{letter-spacing:.24em;color:var(--accent);vertical-align:3px;margin-left:6px;font-size:13px}.view-caption{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 5px var(--paper), 0 0 2px var(--paper);font-size:12.5px;overflow:hidden}.top-actions{flex:none;align-items:center;gap:8px;display:flex}.top-actions .btn.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.scales{z-index:8;pointer-events:none;flex-direction:column;align-items:center;gap:6px;max-width:min(760px,100% - 32px);display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.scales>*{pointer-events:auto}.view-hint{text-align:center;font-family:var(--serif);color:var(--ink);background:color-mix(in srgb, var(--paper) 78%, transparent);pointer-events:none;border-radius:8px;margin:0;padding:3px 12px;font-size:16px;font-style:italic;line-height:1.25}.camctl{z-index:7;background:color-mix(in srgb, var(--paper) 90%, transparent);border:1px solid var(--rule-2);border-radius:9px;flex-direction:column;gap:2px;padding:3px;display:flex;position:absolute;bottom:56px;right:16px;box-shadow:0 2px 8px #3c2d1414}.camctl .sep{background:var(--rule);height:1px;margin:3px 4px}.camctl .icon-btn.tool{width:36px;height:36px}.camctl [data-cam=zin] svg,.camctl [data-cam=zout] svg{stroke-width:2px;width:20px;height:20px}.seg{border:1px solid var(--rule-2);background:color-mix(in srgb, var(--paper) 92%, transparent);border-radius:8px;display:inline-flex;overflow:hidden;box-shadow:0 2px 8px #3c2d1414}.seg button{font-family:var(--sc);letter-spacing:.05em;cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:6px 16px;font-size:15px;font-weight:600}.seg button+button{border-left:1px solid var(--rule)}.seg button:hover{color:var(--ink);background:var(--panel-2)}.seg button.on{background:var(--ink);color:var(--paper)}.btn{border:1px solid var(--rule-2);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.primary:hover{background:var(--accent);border-color:var(--accent)}:root[data-theme=blueprint] .btn.primary:hover{color:#10263f}.btn.ghost{background:0 0}.btn.small{padding:3px 9px;font-size:12px}.btn:disabled{opacity:.45;cursor:default}.btn .i,.btn svg{display:inline-flex}.btn.tool{background:color-mix(in srgb, var(--paper) 85%, transparent);font-family:var(--sc);letter-spacing:.04em;padding:5px 12px;font-size:15px;font-weight:600}.icon-btn{cursor:pointer;width:30px;height:30px;color:var(--ink-2);background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{color:var(--ink);background:var(--panel-2)}.icon-btn.tool{width:32px;height:32px}.top-actions .icon-btn.tool{border-color:var(--rule-2);background:color-mix(in srgb, var(--paper) 90%, transparent)}.icon-btn.toggle.on{background:var(--ink);color:var(--paper)}.icon-btn svg{width:18px;height:18px}.scale{z-index:6;pointer-events:none;color:var(--ink-2);align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:14px;right:16px}.scale .bar{font-family:var(--serif);flex-direction:column;align-items:flex-start;gap:2px;font-size:13px;font-style:italic;display:flex}.scale .ticks{border:1px solid var(--ink-2);background:linear-gradient(90deg, var(--ink-2) 0 50%, transparent 50% 100%) 0 100% / 100% 2px no-repeat;border-top:0;height:6px}.compass text{font-family:var(--sc);fill:var(--ink-2);font-size:9px;font-weight:700}.compass .needle{fill:var(--ink-2)}.tooltip{z-index:9;pointer-events:none;background:var(--paper);border:1px solid var(--rule-2);box-shadow:var(--shadow);border-radius:7px;flex-direction:column;gap:2px;max-width:300px;padding:7px 11px 8px;display:none;position:absolute;top:0;left:0}.tooltip.show{display:flex}.tooltip b{font-family:var(--serif);font-size:17px;font-weight:700;line-height:1.1}.tooltip em{color:var(--ink-3);letter-spacing:.02em;font-size:11px;font-style:normal}.tooltip span{color:var(--ink);margin-top:2px;font-size:12.5px;line-height:1.4}.tooltip small{color:var(--accent);margin-top:3px;font-size:11px;font-weight:500}.tooltip .acts{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.tooltip.tap{pointer-events:auto;max-width:none;inset:auto 60px 14px 12px;transform:none!important}.tooltip.tap .btn{padding:6px 12px;font-size:13px}.trace-banner{z-index:8;background:var(--ink);color:var(--paper);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 40px);padding:5px 6px 5px 14px;font-size:13px;display:flex;position:absolute;top:136px;left:50%;transform:translate(-50%)}.trace-banner[hidden]{display:none}.trace-banner span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trace-banner span b{font-family:var(--sc);letter-spacing:.06em;color:color-mix(in srgb, var(--paper) 70%, var(--hl));margin-right:6px}.trace-banner .btn{color:var(--paper);border-color:color-mix(in srgb, var(--paper) 40%, transparent);background:0 0;flex:none}.ctl-hint{z-index:7;background:var(--ink);color:var(--paper);white-space:nowrap;box-shadow:var(--shadow);pointer-events:none;border-radius:999px;padding:6px 14px;font-size:12.5px;transition:opacity .6s,transform .6s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.ctl-hint .m{display:none}.ctl-hint.gone{opacity:0;transform:translate(-50%,8px)}.labels{pointer-events:none;z-index:5;position:absolute;inset:0}.labels.off{display:none}.labels.ghost .clabel{opacity:.3}.clabel{cursor:pointer;pointer-events:auto;will-change:transform;text-align:left;background:0 0;border:0;padding:0;position:absolute;top:0;left:0}.clabel.hide{display:none}.clabel .pill{white-space:nowrap;border:1px solid color-mix(in srgb, var(--ink) 55%, transparent);background:color-mix(in srgb, var(--paper) 92%, transparent);border-radius:5px;align-items:center;gap:5px;padding:2px 8px 3px 6px;line-height:1.15;display:flex;box-shadow:0 1px 3px #281e0a26}.clabel .pill i{background:var(--c,var(--ink-3));border:1px solid color-mix(in srgb, var(--ink) 50%, transparent);border-radius:2px;flex:none;width:10px;height:10px}.clabel .pill b{color:var(--ink);font-size:12.5px;font-weight:600}.clabel .pill span{color:var(--ink-2);font-size:11.5px}.clabel .stem{left:var(--ax,50%);width:1px;height:var(--stem,14px);background:var(--ink);opacity:.7;position:absolute;top:100%}.clabel .stem:after{content:"";background:var(--ink);border:1px solid var(--paper);border-radius:50%;width:6px;height:6px;position:absolute;bottom:-3px;left:-2.5px}.clabel:hover .pill{border-color:var(--ink);background:var(--paper)}.busy{z-index:20;font-family:var(--serif);color:var(--ink-2);background:color-mix(in srgb, var(--paper) 70%, transparent);place-items:center;font-size:22px;font-style:italic;display:none;position:absolute;inset:0}.busy.show{display:grid}.key{z-index:7;background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--rule-2);border-radius:12px;flex-direction:column;width:316px;max-height:calc(100% - 140px);display:flex;position:absolute;top:64px;left:16px;overflow:hidden;box-shadow:0 4px 18px #3c2d141f}.key-head{border-bottom:1px solid var(--rule)}.key-title{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:0;align-items:baseline;gap:8px;padding:8px 12px 7px 14px;display:flex}.key-title .sc{font-size:18px}.key-sub{font-family:var(--serif);color:var(--ink-3);flex:1;font-size:13.5px;font-style:italic}.key-title svg{width:14px;height:14px;color:var(--ink-2);align-self:center;transition:transform .2s}.key.open .key-title svg{transform:rotate(90deg)}.key-body{scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent;padding:10px 10px 10px 12px;display:none;overflow-y:auto}.key.open .key-body{display:block}.key:not(.open){width:auto}.key:not(.open) .key-head{border-bottom:0}.key-modes{border:1px solid var(--rule-2);border-radius:9px;grid-template-columns:1fr 1fr;margin-bottom:9px;display:grid;overflow:hidden}.key-modes button{border:0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--ink-2);cursor:pointer;background:0 0;padding:5px 6px 6px;font-size:12px;font-weight:500}.key-modes button:nth-child(2n){border-right:0}.key-modes button:nth-child(n+3){border-bottom:0}.key-modes button:hover{background:var(--panel-2);color:var(--ink)}.key-modes button[aria-checked=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.key-iso{background:var(--ink);color:var(--paper);border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 8px;padding:7px 8px 7px 10px;display:flex}.key-iso[hidden]{display:none}.ki-l{letter-spacing:.1em;text-transform:uppercase;opacity:.75;font-size:10.5px;font-weight:700}.ki-n{flex-wrap:wrap;flex:140px;gap:2px 10px;font-size:12.5px;display:flex}.ki-n b{align-items:center;gap:5px;font-weight:600;display:inline-flex}.ki-n i{background:var(--c);border-radius:3px;width:14px;height:5px;box-shadow:0 0 0 1px #ffffff73}.key-all{background:var(--paper);color:var(--ink);cursor:pointer;border:0;border-radius:999px;padding:3px 11px 4px;font-size:12px;font-weight:600}.key-all:hover{background:#fff}.kl-h{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:4px 0 4px 2px;font-size:10.5px;font-weight:700}.kl-h~.kl-h{border-top:1px solid var(--rule);margin-top:12px;padding-top:8px}.kl-none{color:var(--ink-3);margin:2px 2px 6px;font-size:12.5px}.kr-sep{background:var(--rule);height:1px;margin:4px 0 4px 34px}.kr{border-radius:8px;grid-template-columns:26px minmax(0,1fr) 24px;align-items:center;gap:2px;display:grid;position:relative}.kr:hover{background:var(--panel-2)}.kr-check{cursor:pointer;place-items:center;width:26px;height:30px;display:grid}.kr-check input{opacity:0;pointer-events:none;position:absolute}.kr-check span{border:1.5px solid var(--ink-2);background:var(--paper);border-radius:4px;place-items:center;width:15px;height:15px;display:grid}.kr-check input:checked+span{background:var(--ink);border-color:var(--ink)}.kr-check input:checked+span:after{content:"";border-left:2px solid var(--paper);border-bottom:2px solid var(--paper);width:7px;height:4px;transform:translateY(-1px)rotate(-45deg)}.kr-check input:focus-visible+span{outline:2px solid var(--accent,#a24a25);outline-offset:2px}.kr-main{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;padding:4px 4px 4px 2px;display:flex}.kr.ctx .kr-main{cursor:default}.ks{flex:none;overflow:visible}.kr-text{flex-direction:column;min-width:0;display:flex}.kr-name{font-size:13px;font-weight:500;line-height:1.2}.kr-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11.5px;line-height:1.25}.kr-info{opacity:0;width:24px;height:24px;color:var(--ink-3)}.kr:hover .kr-info,.kr-info:focus-visible{opacity:1}.kr-info svg{width:14px;height:14px}.kr.off .kr-main{opacity:.45}.kr.ghosted .kr-main{opacity:.4}.kr.iso{background:color-mix(in srgb, var(--c) 16%, var(--panel));box-shadow:inset 3px 0 0 var(--c)}.kr.iso .kr-name{font-weight:700}.kr-box{background:var(--c);border:1px solid color-mix(in srgb, var(--ink) 55%, transparent);border-radius:3px;flex:none;width:34px;height:12px}.kr-pick{cursor:pointer;display:inline-flex;position:relative}.kr-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.kr-pick:after{content:"";border:1px dashed var(--ink-3);border-radius:6px;position:absolute;inset:-3px}.kl-more{width:100%;color:var(--ink-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:7px 4px 4px 6px;font-size:12.5px;font-weight:600;display:flex}.kl-more svg{width:13px;height:13px;transition:transform .2s}.kl-more[aria-expanded=true] svg{transform:rotate(90deg)}.kl-more:hover{color:var(--ink)}.kl-eq{color:var(--ink-2);flex-wrap:wrap;gap:4px 12px;padding:4px 4px 2px 36px;font-size:12px;display:flex}.ke{align-items:center;gap:5px;display:inline-flex}.ke i{background:var(--c);border:1px solid color-mix(in srgb, var(--ink) 55%, transparent);border-radius:2px;width:12px;height:10px}.key-cb{border-top:1px solid var(--rule);margin:12px 0 4px;padding-top:9px}.key-cb-l{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px 2px;font-size:10.5px;font-weight:700;display:block}.key-cb-o{flex-wrap:wrap;gap:3px;display:flex}.key-cb-o button{border:1px solid var(--rule-2);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:999px;padding:2px 8px 3px;font-size:11.5px}.key-cb-o button:hover{border-color:var(--ink-2);color:var(--ink)}.key-cb-o button[aria-checked=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.key-cb-legend:empty{display:none}.key-cb-legend{border:1px solid var(--rule);background:var(--paper);border-radius:8px;gap:3px;margin-top:7px;padding:6px 6px 4px 8px;display:grid}.kcl{align-items:center;gap:9px;display:flex}.kcl-fill{color:var(--ink)!important;font-size:11.5px!important}.kcl-n{color:var(--ink-3);margin:3px 0 0;font-size:11px;line-height:1.35}.kl-why{color:var(--ink-2);margin:6px 4px 0 36px;font-size:11.5px;line-height:1.4}.key-hint{color:var(--ink-3);margin:10px 2px 4px;font-size:11.5px;line-height:1.4}.key-hint b{color:var(--ink-2)}.key-foot{justify-content:flex-end;display:flex}.key-link{color:var(--ink-3);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:2px;font-size:11.5px;text-decoration:underline}.key-link:hover{color:var(--ink)}.card h2.sc{border-bottom:1px solid var(--ink);margin-bottom:8px;padding-bottom:3px;font-size:20px}.kicker{font-family:var(--sc);letter-spacing:.1em;color:var(--accent);font-size:13px;font-weight:600}.title{font-family:var(--serif);overflow-wrap:anywhere;margin:1px 0 4px;font-size:25px;font-weight:600;line-height:1.08}.title .dot{background:var(--c);border:1px solid var(--ink);vertical-align:2px;border-radius:50%;width:12px;height:12px;margin-right:8px;display:inline-block}.analogy{font-family:var(--serif);color:var(--ink-2);margin:0 0 6px;font-size:16px;font-style:italic}.desc,.lede{margin:4px 0 10px;font-size:13px;line-height:1.5}.lede{color:var(--ink-2)}.where{color:var(--ink-2);margin:0 0 6px;font-size:12px}.keys{color:var(--ink-2);gap:4px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}kbd{font-family:var(--mono);border:1px solid var(--rule-2);background:var(--paper);color:var(--ink);border-bottom-width:2px;border-radius:3px;padding:0 4px;font-size:10.5px}table.kv{border-collapse:collapse;width:100%;margin:6px 0;font-size:12.3px}table.kv th{text-align:left;color:var(--ink-2);border-bottom:1px dotted var(--rule);vertical-align:top;padding:3px 8px 3px 0;font-weight:400}table.kv td{text-align:right;border-bottom:1px dotted var(--rule);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;padding:3px 0}table.kv.tight th,table.kv.tight td{padding:2px 0}table.kv.tight th{padding-right:8px}.mono{font-family:var(--mono);font-size:11px}.actions{flex-wrap:wrap;gap:6px;margin:8px 0 2px;display:flex}.lchip{border:1px solid var(--rule-2);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 6px;font-size:12px;display:inline-flex}.lchip i{background:var(--c);border:1px solid var(--ink);border-radius:50%;width:11px;height:11px}.lchip:hover{border-color:var(--ink-2)}.fromto{margin:4px 0 6px;font-size:12.5px;line-height:1.5}.fromto .arrow{color:var(--ink-3);margin:0 3px}.link{cursor:pointer;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2);text-underline-offset:2px;font-size:inherit;text-align:left;background:0 0;border:0;padding:0}.link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.hops-h{color:var(--ink-2);margin:10px 0 4px;font-size:15px}ol.hops{border-left:2px solid var(--rule-2);gap:8px;margin:0;padding:0 0 0 14px;list-style:none;display:grid}ol.hops li{font-size:12px;position:relative}ol.hops li:before{content:"";background:var(--c);border:1px solid var(--ink);border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:-20px}.hop-h b{font-weight:600}.hop-h .dot{display:none}.hop-b,.hop-to{color:var(--ink-2)}.hop-to .more{color:var(--ink-3)}.hop-origin{font-family:var(--serif);color:var(--accent);margin:8px 0 0 -6px;font-size:15px;font-weight:600}.figs{grid-template-columns:repeat(3,1fr);gap:6px 8px;margin-bottom:8px;display:grid}.figs div{border-top:1px solid var(--rule);flex-direction:column;padding-top:2px;display:flex}.figs b{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:22px;font-weight:600;line-height:1.05}.figs span{font-family:var(--sc);letter-spacing:.04em;color:var(--ink-3);font-size:12.5px;font-weight:600}table.tiers{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:4px 0 6px;font-size:12px}table.tiers th,table.tiers td{text-align:right;border-bottom:1px dotted var(--rule);padding:2px 4px}table.tiers th:first-child,table.tiers td:first-child{text-align:left;padding-left:0}table.tiers thead th{font-family:var(--sc);color:var(--ink-3);border-bottom:1px solid var(--rule-2);font-size:12.5px;font-weight:600}table.tiers tbody th{text-transform:capitalize;font-weight:500}h3.sub{color:var(--ink-2);margin:10px 0 3px;font-size:15px}.km{gap:2px;display:grid}.kmrow{grid-template-columns:118px 1fr 40px;align-items:center;gap:6px;font-size:11.5px;display:grid}.kmname{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-2);overflow:hidden}.kmbar{background:var(--panel-2);border-radius:1px;height:7px;overflow:hidden}.kmbar i{background:var(--c);height:100%;display:block}.kmval{text-align:right;font-variant-numeric:tabular-nums}.notes-d{margin-top:8px}.notes-d summary{cursor:pointer;color:var(--ink-2);font-size:12px}.notes-d summary span{color:var(--ink-3)}ul.notes{color:var(--ink-2);margin:8px 0 0;padding-left:16px;font-size:11.5px;font-style:italic}.params-card{border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);padding:6px 0}.params-card summary{cursor:pointer;align-items:baseline;gap:8px;list-style:none;display:flex}.params-card summary::-webkit-details-marker{display:none}.params-card summary .sc{font-size:18px}.params-card summary:before{content:"▸";color:var(--ink-3);font-size:12px;transition:transform .15s}.params-card[open] summary:before{transform:rotate(90deg)}.sum-hint{font-family:var(--serif);color:var(--ink-3);font-size:14px;font-style:italic}form.params{gap:9px;margin-top:8px;display:grid}form.params label{color:var(--ink-2);grid-template-columns:1fr auto;align-items:center;gap:3px 8px;font-size:12.3px;display:grid}form.params output,form.params .unit{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-size:12px}form.params .unit{color:var(--ink-3)}form.params input[type=range],form.params select{width:100%;accent-color:var(--ink);grid-column:1/-1}form.params select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule-2);border-radius:5px;padding:4px 6px}form.params [data-act=defaults]{justify-self:start}form.params [hidden]{display:none}form.params .design-note{color:var(--ink-3);margin:-4px 0 2px;font-size:11.5px;line-height:1.35}.colophon{font-family:var(--serif);color:var(--ink-3);border-top:1px solid var(--rule);margin-top:auto;padding-top:8px;font-size:12.5px;font-style:italic}.drawer{z-index:40;background:var(--panel);border:1px solid var(--rule-2);width:min(380px,100vw - 16px);box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent;border-radius:12px;padding:14px 20px 24px;position:fixed;top:8px;bottom:8px;right:8px;overflow-y:auto}.drawer-details{flex-direction:column;gap:14px;display:flex}.drawer-details[hidden]{display:none}.drawer-details .drawer-head{border-bottom:0;align-items:center;margin-bottom:-6px;padding-bottom:0}.drawer-details .drawer-head .kicker{margin:0}.stats-d>summary{cursor:pointer;border-top:1px solid var(--rule);align-items:baseline;gap:8px;padding-top:10px;list-style:none;display:flex}.stats-d>summary::-webkit-details-marker{display:none}.stats-d>summary .sc{font-size:18px}.stats-d>summary:before{content:"▸";color:var(--ink-3);font-size:11px}.stats-d[open]>summary:before{content:"▾"}.stats-d .stats{margin-top:8px}.stats-d .stats>h2.sc{display:none}.more-d{border-top:1px solid var(--rule);margin-top:12px;padding-top:6px}.more-d>summary{cursor:pointer;color:var(--ink-2);padding:2px 0;font-size:12px;font-weight:600}.chain{font-family:var(--serif);flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin:8px 0 4px;font-size:19px;line-height:1.25;display:flex}.chain .lnk b{font-weight:700}.chain .lnk.start{text-decoration:underline;-webkit-text-decoration-color:var(--hl);text-decoration-color:var(--hl);text-underline-offset:3px;text-decoration-thickness:2px}.chain .arr{color:var(--ink-3)}.lede.small{color:var(--ink-2);font-size:12px}.trace-opts{border:1px solid var(--rule);border-radius:8px;grid-template-columns:1fr 1fr;gap:2px 10px;margin:12px 0 0;padding:6px 10px 8px;display:grid}.trace-opts legend{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:0 4px;font-size:11px;font-weight:600}.trace-opts .tl{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.trace-opts .tl i{background:var(--c);border-radius:2px;width:12px;height:3px}.drawer[hidden]{display:none}.drawer-head{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:flex-start;margin-bottom:6px;padding-bottom:6px;display:flex}.drawer-head .title{font-size:30px}ol.steps{gap:2px;margin:8px 0;padding:0;list-style:none;display:grid}.step-h{text-align:left;cursor:pointer;width:100%;font-family:var(--serif);background:0 0;border:0;border-radius:5px;align-items:baseline;gap:10px;padding:6px 4px;font-size:17.5px;font-weight:600;line-height:1.2;display:flex}.step-h:hover{background:var(--panel-2)}.step .sn{border:1px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:inline-grid;transform:translateY(-1px)}.step.on .sn{background:var(--ink);color:var(--paper)}.step-b{padding:0 4px 8px 36px;font-size:13.3px;line-height:1.55}.step-b p{margin:4px 0 8px}.step-b ul{margin:4px 0 8px;padding-left:18px}.step-b li{margin-bottom:4px}.step-nav{border-top:1px solid var(--rule);justify-content:space-between;padding-top:10px;display:flex}.scrim{display:none}@media (width<=1180px){.top-actions .btn.tool .lbl{display:none}.titleblock h1{font-size:21px}}@media (width<=1000px){.titleblock .view-caption{display:none}}@media (width<=860px){.plate:before{outline:none;inset:4px}.topbar{gap:8px;top:10px;left:10px;right:10px}.back{padding:5px 10px 5px 8px;font-size:14px}.back .lbl{display:none}.back:after{content:"Plates"}.titleblock h1{font-size:17px}.titleblock h1 .explore{display:none}.top-actions{gap:4px}.top-actions .btn.tool{padding:5px 8px}.scales{align-items:stretch;max-width:none;top:52px;left:10px;right:10px;transform:none}.scales .seg{grid-template-columns:repeat(5,1fr);display:grid}.seg button{padding:7px 0;font-size:14px}.view-hint{padding:2px 8px;font-size:13.5px}.key{border-radius:999px;width:auto;max-height:none;top:auto;bottom:12px;left:10px}.key:not(.open) .key-sub{display:none}.key:not(.open) .key-title{padding:6px 12px 6px 14px}.key.open{z-index:41;border-radius:14px 14px 0 0;width:100%;max-height:72dvh;position:fixed;inset:auto 0 0}.key.open .kr-info{opacity:1}.camctl{bottom:12px;right:10px}.camctl [data-cam=rotl],.camctl [data-cam=rotr],.camctl [data-cam=free],.scale{display:none}.ctl-hint{font-size:12px;top:150px;bottom:auto}.ctl-hint .d{display:none}.ctl-hint .m{display:inline}.trace-banner{border-radius:14px;width:calc(100% - 20px);font-size:12.5px;top:140px}.trace-banner span{white-space:normal;flex:auto}.tooltip.tap{z-index:12}.drawer{width:100%;max-height:62dvh;padding:12px 16px calc(20px + env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-radius:14px 14px 0 0;inset:auto 0 0}.app.sheet-low #explainer{max-height:42dvh}.drawer-head .title{font-size:24px}.scrim{z-index:24;background:#1e190f2e;position:fixed;inset:0}.app.key-open .scrim{display:block}}@media (prefers-reduced-motion:reduce){.ctl-hint{transition:none}}.design-pick{font:inherit;color:var(--ink);field-sizing:content;border:1px solid var(--rule-2);background:color-mix(in srgb, var(--paper) 90%, transparent);cursor:pointer;border-radius:999px;max-width:300px;height:32px;padding:0 10px;font-size:13.5px}.design-pick:hover{border-color:var(--ink)}@media (width<=860px){.design-pick{max-width:120px;padding:0 6px;font-size:12.5px}}.gl-notice{z-index:30;background:var(--paper,#f4efe6);border:1px solid;border-radius:12px;width:min(520px,100vw - 32px);padding:20px 24px;font-size:15px;line-height:1.5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 48px #0000002e}.gl-notice h2{margin:0 0 8px;font-family:Cormorant Garamond,Georgia,serif;font-size:28px}.gl-notice p{margin:0 0 10px}.gl-notice-a{flex-wrap:wrap;align-items:center;gap:10px;display:flex;margin-top:16px!important}.gl-notice-go{color:#f4efe6;background:#2b2a28;border-radius:999px;padding:8px 16px;font-weight:600;text-decoration:none}.gl-notice-retry{font:inherit;cursor:pointer;color:inherit;background:0 0;border:1px solid;border-radius:999px;padding:7px 14px;font-weight:600}.no-gl .camctl,.no-gl .scales,.no-gl #systems,.no-gl #hint,.no-gl .scale,.no-gl .top-actions{display:none!important}.find{z-index:25;background:var(--paper);border:1px solid var(--ink);border-radius:12px;width:min(560px,100vw - 24px);padding:10px;position:absolute;top:64px;left:50%;transform:translate(-50%);box-shadow:0 18px 48px #00000038}.find[hidden]{display:none}.find-q{width:100%;font:inherit;border:1px solid var(--rule,#cfc5b3);background:var(--paper);color:inherit;border-radius:8px;padding:10px 12px;font-size:16px}.find-list{max-height:50vh;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.find-list:empty{display:none}.find-list li{cursor:pointer;border-radius:6px;flex-direction:column;gap:1px;padding:7px 10px;display:flex}.find-list li b{font-size:14px;font-weight:600}.find-list li span{opacity:.75;font-size:12.5px}.find-list li[aria-selected=true],.find-list li:hover{background:var(--ink);color:var(--paper)}.find-list li.none{cursor:default;opacity:.7}.find-list li.none:hover{color:inherit;background:0 0}.find-hint{opacity:.7;margin:8px 2px 0;font-size:12px}.find-hint kbd{font:600 11px var(--sans,Inter, sans-serif);border:1px solid;border-radius:3px;margin-right:2px;padding:0 4px}.btags{pointer-events:none;z-index:6;display:none;position:absolute;inset:0}.btags.on{display:block}.btag-stems{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.bt-stem{fill:none;stroke:var(--ink);stroke-width:1.2px}.bt-cap{fill:var(--con);stroke:var(--ink);stroke-width:1.4px}.btag{border:1.5px solid var(--ink);color:#1d1b17;border-radius:6px 14px 14px 6px;align-items:stretch;max-width:300px;font-size:12px;line-height:1.3;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 3px 10px #281e0a2e}.btag-a{background:#f39a3d}.btag-z{background:#9ccf55}.bt-end{background:#00000029;border-right:1px dashed #00000059;place-items:center;width:20px;font-size:12px;font-weight:800;display:grid}.bt-l{flex-direction:column;min-width:0;padding:4px 10px 5px 8px;display:flex}.bt-l b{font-weight:700}.bt-l span{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.bt-l .bt-both{opacity:.72;border-top:1px dashed #0000004d;margin-top:1px;padding-top:2px;font-size:10.5px}.btag-mid{background:var(--ink);max-width:440px;color:var(--paper);border-radius:10px;flex-direction:column;gap:3px;padding:5px 11px 6px;font-size:11.5px;display:flex;position:absolute;top:0;left:0;box-shadow:0 2px 8px #0003}.bm-top{white-space:nowrap}.bm-sep{opacity:.55;margin:0 5px}.btag[hidden]{display:none}.bt-dot{fill:var(--paper);stroke:var(--ink);stroke-width:1.6px}.bm-path code{white-space:normal}.bm-about{opacity:.85;white-space:normal;font-size:11.5px;line-height:1.35}.btag-mid i{background:var(--c);vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin:0 4px 0 2px;display:inline-block;box-shadow:0 0 0 1px #fff9}.key-map{border:1px solid var(--rule);background:var(--paper);border-radius:9px;margin:2px 0 10px;padding:8px 8px 4px}.key-map[hidden]{display:none}.km{display:block;overflow:visible}.km-h{font:700 10px var(--sans,Inter, sans-serif);letter-spacing:.06em;text-transform:uppercase;fill:var(--ink-3)}.km-t{font:600 11.5px var(--sans,Inter, sans-serif);fill:var(--ink)}.km-s{font:500 10px var(--sans,Inter, sans-serif);fill:var(--ink-3)}.km-l{font:500 11.5px var(--sans,Inter, sans-serif);fill:var(--ink)}.km-l.off{fill:var(--ink-3)}.km-why{color:var(--ink-2);margin:4px 2px 2px;font-size:11.5px;line-height:1.4}.km-c{cursor:pointer;outline:none}.km-c.ghost{opacity:.28}.km-c:hover,.km-c:focus-visible{filter:drop-shadow(0 0 3px #2b2a2859)}.kl-ctx{border-top:1px solid var(--rule);margin-top:10px;padding-top:6px}.kl-ctx>summary{cursor:pointer;list-style:none;border-top:0!important;margin-top:4px!important;padding-top:0!important}.kl-ctx>summary:before{content:"▸ "}.kl-ctx[open]>summary:before{content:"▾ "}.trace-banner i.tb-a,.trace-banner i.tb-z{width:16px;height:16px;font:800 10px var(--sans);color:#10202e;vertical-align:1px;border-radius:4px;place-items:center;margin:0 4px 0 2px;font-style:normal;display:inline-grid}.trace-banner i.tb-a{background:#4fb6ea}.trace-banner i.tb-z{background:#f5a04f}.trace-banner code{font:600 11.5px var(--mono);background:color-mix(in srgb, var(--paper) 16%, transparent);border-radius:4px;padding:1px 6px}.trace-banner .tb-more{border-color:color-mix(in srgb, var(--paper) 70%, transparent)!important}.title .dot.sq{border-radius:3px}.rcard{border:1px solid var(--rule);border-left:4px solid var(--c);background:color-mix(in srgb, var(--panel) 70%, var(--paper));border-radius:8px;margin:12px 0 10px;padding:10px 12px 8px;position:relative}.rc-end{align-items:flex-start;gap:8px;font-size:13px;display:flex}.rc-end>i{width:20px;height:20px;font:800 11px var(--sans);color:#10202e;border-radius:5px;flex:none;place-items:center;font-style:normal;display:grid}.rc-a>i{background:var(--cool)}.rc-z>i{background:var(--warm)}.rc-end small,.iso-list small,.rc-hops small{color:var(--ink-3);font-size:11.5px;display:block}.rc-path{align-items:baseline;gap:8px;margin:8px 0 4px 28px;display:flex}.rc-path .sc{color:var(--ink-3);font-size:12px}.rc-path code,.iso-list code,code.des{font:600 11.5px var(--mono);color:var(--ink);background:color-mix(in srgb, var(--c,var(--ink)) 14%, transparent);border-radius:4px;padding:1px 5px}.rc-path code{white-space:normal;line-height:1.6}ol.rc-hops{border-left:3px solid var(--c);margin:4px 0 6px 9px;padding:0 0 0 14px;list-style:none}ol.rc-hops li{border-bottom:1px dotted var(--rule);grid-template-columns:18px 1fr auto;align-items:baseline;gap:6px;padding:3px 0;font-size:12.5px;display:grid}ol.rc-hops li:last-child{border-bottom:0}ol.rc-hops li>i{color:var(--ink-2);text-align:center;font-style:normal;font-weight:700}.rh-l{font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}table.kv.rc-kv{margin-top:8px}i.con{background:var(--k);vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block;box-shadow:0 0 0 1px #00000059}.tint-key{color:var(--ink-3);align-items:center;gap:4px;margin-left:6px;display:inline-flex}.tint-key i{background:var(--c);border-radius:2px;width:10px;height:10px;margin-left:4px;display:inline-block}ol.iso-list{margin:8px 0;padding:0;list-style:none}ol.iso-list li{border-bottom:1px dotted var(--rule);grid-template-columns:12px 1fr;gap:6px;padding:4px 0;font-size:12.5px;display:grid}ol.iso-list .dot{background:var(--c);border-radius:50%;width:9px;height:9px;margin-top:4px;display:block}@media (width>=861px){.app[data-drawer] .trace-banner{left:calc((100% - 396px + var(--key-w,320px)) / 2);max-width:calc(100% - 396px - var(--key-w,320px) - 24px)}}.ttags{pointer-events:none;z-index:4;position:absolute;inset:0}.ttags.dim{opacity:.35}.ttag{white-space:nowrap;font:600 10.5px var(--mono);color:var(--ink);pointer-events:auto;cursor:pointer;border:0;align-items:center;gap:5px;margin:0;line-height:1;display:inline-flex;position:absolute;top:0;left:0}.ttag:after{content:"";opacity:.6;background:currentColor;width:1px;height:6px;position:absolute;bottom:-6px;left:50%}.tdes{background:var(--paper);box-shadow:0 0 0 1.25px var(--ink-2), 0 2px 5px #281e0a29;border-radius:999px;gap:0;padding:0;overflow:visible}.tdes .tp-g{font:700 11px var(--sans);color:var(--paper);background:var(--ink);border-radius:999px 0 0 999px;padding:3px 7px 3px 8px}.tdes .tp-t{font:600 10.5px var(--mono);color:var(--ink);align-items:center;gap:4px;padding:2px 7px 2px 5px;display:inline-flex}.tdes .tp-t+.tp-t{border-left:1px solid var(--rule-2)}.tdes .tp-t i{font:700 9.5px var(--sans);color:#fff;background:var(--c);text-shadow:0 0 2px #00000059;border-radius:3px;padding:1px 3px;font-style:normal}.tgrid{width:22px;height:22px;font:700 11px var(--sans);background:var(--paper);box-shadow:0 0 0 1.5px var(--ink-2);pointer-events:none;border-radius:50%;justify-content:center}.tgrid:after{display:none}.tfill{background:var(--ink);color:var(--paper);font:600 11px var(--sans);border-radius:999px;gap:0;overflow:visible;box-shadow:0 2px 6px #00000040}.tfill>span{padding:4px 7px}.tfill .tf-pct{background:var(--f);color:#17140f;border-radius:999px 0 0 999px;font-weight:800}.tfill .tf-n,.tfill .tf-kg{border-right:1px solid color-mix(in srgb, var(--paper) 25%, transparent)}.tfill .tf-des{font:600 10.5px var(--mono);opacity:.8}.ttag:focus-visible{outline:2px solid var(--hl);outline-offset:2px}.fillbar{background:color-mix(in srgb, var(--ink) 8%, transparent);border-radius:3px;height:12px;margin:6px 0 2px;display:flex;position:relative;overflow:hidden}.fillbar i{background:var(--c);height:100%;display:block}.fillbar:after{content:"";left:calc(50% / var(--scale,1));background:var(--ink);width:2px;position:absolute;top:-2px;bottom:-2px}.fill-legend{color:var(--ink-3);font-size:11.5px}.bm-path{align-items:baseline;gap:6px;display:flex}.bm-path>span{font:600 10px var(--sans);text-transform:uppercase;letter-spacing:.08em;opacity:.6}.bm-path code{font:600 11px var(--mono);color:color-mix(in srgb, var(--paper) 85%, #ffd166)}.rc-gap{border-left:3px solid var(--c);height:8px;margin-left:9px}.rmarks{pointer-events:none;z-index:5;position:absolute;inset:0}.rmark{position:absolute;top:0;left:0}.rm-hop{min-width:19px;height:19px;font:700 10.5px var(--sans);color:var(--paper);background:var(--ink);box-shadow:0 0 0 1.5px var(--paper), 0 2px 5px #00000040;border-radius:999px;place-items:center;padding:0 4px;transition:transform .15s;display:grid}.rm-hop.rm-duct,.rm-hop.rm-riser{background:color-mix(in srgb, var(--ink) 70%, #6b4f2a)}.rm-hop.hot{background:var(--hl);color:#17140f;z-index:2;transform:scale(1.35)}.rm-tick{font:600 10px var(--mono);color:var(--ink);white-space:nowrap;align-items:center;gap:3px;display:flex}.rm-tick i{background:var(--paper);width:7px;height:7px;box-shadow:0 0 0 1.5px var(--ink);border-radius:50%}.rm-tick span{background:color-mix(in srgb, var(--paper) 90%, transparent);box-shadow:0 0 0 1px var(--rule-2);border-radius:999px;padding:1px 5px}ol.rc-hops li>.rh-n{min-width:17px;height:17px;font:700 10px var(--sans);color:var(--paper);background:var(--ink);border-radius:999px;flex:none;place-items:center;margin-right:2px;font-style:normal;display:inline-grid}ol.rc-hops li[data-hop]:hover>.rh-n{background:var(--hl);color:#17140f}ol.rc-hops li[data-hop]{grid-template-columns:19px 14px 1fr auto;gap:5px}.btag-mid[hidden]{display:none}.rm-tick.flip{flex-direction:row-reverse}.rm-hop .rm-d{border-left:1px solid color-mix(in srgb, var(--paper) 40%, transparent);font:600 10px var(--mono);margin-left:5px;padding-left:5px}.rm-hop:has(.rm-d){align-items:center;padding:0 7px;display:flex}:root:not([data-theme=blueprint]) .key{--ink-3:#5f5a52}.kr.hot{background:color-mix(in srgb, var(--c) 22%, var(--panel));box-shadow:inset 3px 0 0 var(--c)}.km-c.hot{filter:drop-shadow(0 0 4px var(--ink))}table.kv.pathways td small{color:var(--ink-3);font-size:11px;display:block}table.kv.pathways td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
