.map{width:min(var(--wide),calc(100vw - 40px));margin:64px 0 72px}.map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.map-head h2{margin:0}.map-summary{margin:0;font-family:var(--mono);font-size:12px;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}.map-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.map-controls label{display:grid;gap:6px}.map-controls label span{font-family:var(--mono);font-size:var(--s-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.map select,.map button,.financial-explorer select{font:inherit;font-size:var(--s-small);color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:0;padding:9px 12px}.map button{cursor:pointer}.map button:hover{border-color:var(--ink)}.map select:disabled{opacity:.45;cursor:not-allowed}.map-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);border-bottom:1px solid var(--rule)}.map-canvas{min-width:0;padding:16px 24px 18px 0;border-right:1px solid var(--rule)}.map-canvas svg{display:block;width:100%;height:auto;background:var(--surface)}.ring{fill:none;stroke:var(--rule);stroke-width:1}.flow{fill:none;stroke:var(--accent);stroke-width:var(--weight);stroke-linecap:round;opacity:.85;cursor:pointer;transition:opacity .15s ease}.flow:hover,.flow.on{opacity:1}.flow--financing{stroke:#3867a6}.flow--cloud{stroke:var(--accent)}.flow--hardware{stroke:#a56a1b}.flow--loose{stroke:var(--ink-3);stroke-dasharray:7 6;opacity:.75}.flow:focus-visible{outline:none;stroke:var(--ink);opacity:1}.tip--financing{fill:#3867a6}.tip--cloud{fill:var(--accent)}.tip--hardware{fill:#a56a1b}.tip--loose{fill:var(--ink-3)}.flow-label rect{fill:var(--surface);stroke:var(--rule);stroke-width:1}.flow-label{pointer-events:none}.flow-label text{fill:var(--ink-2);font-family:var(--mono);font-size:11px;font-variant-numeric:tabular-nums}.node{cursor:pointer}.node circle{fill:var(--surface);stroke:var(--ink);stroke-width:1.6;transition:stroke .15s ease,stroke-width .15s ease}.node:hover circle,.node:focus-visible circle,.node.on circle{stroke:var(--accent);stroke-width:2.4}.node:focus-visible{outline:none}.node-name{fill:var(--ink);font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:-.01em}.node-role{fill:var(--ink-3);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em}.dim{opacity:.14}.map-scroll{min-width:0}.flow-hit{fill:none;stroke:transparent;stroke-width:22px;pointer-events:stroke;cursor:pointer}.flow-hit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.map-hint{display:none;margin:10px 0 0;color:var(--ink-3);font-size:var(--s-small)}.map-key{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin:14px 0 0;padding:0;font-family:var(--mono);font-size:11px;color:var(--ink-3)}.map-key li{display:flex;align-items:center;gap:8px}.map-key-note{color:var(--ink-3);opacity:.85}.key-line{display:inline-block;width:22px;height:0;border-top-width:2.5px}.key-line--financing{border-top:2.5px solid #3867a6}.key-line--cloud{border-top:2.5px solid var(--accent)}.key-line--hardware{border-top:2.5px solid #a56a1b}.key-line--loose{border-top:2.5px dashed var(--ink-3)}.map-note{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-3)}.map-detail{padding:22px 0 22px 28px}.map-detail h3{font-size:var(--s-h2);margin:0 0 6px;letter-spacing:-.018em}.detail-value{font-size:var(--s-h2);font-variant-numeric:tabular-nums;margin:0 0 14px}.detail-list{margin:0 0 18px}.detail-list div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule-2);font-size:var(--s-small)}.detail-list dt{color:var(--ink-3)}.detail-list dd{margin:0;text-align:right}.src-ref{font-family:var(--mono);font-size:var(--s-label);text-decoration:none;border-bottom:1px solid var(--rule)}.src-ref:hover{border-bottom-color:currentColor}.src-ref--none{color:var(--ink-3);font-style:italic;border-bottom:0}.detail-note{margin:0 0 14px;padding:12px 14px;background:var(--surface);border-left:2px solid var(--ink-3);color:var(--ink-2);font-size:var(--s-small)}.detail-source{margin:0;font-size:var(--s-small)}.detail-source .map-note{display:block;margin-top:4px}.map-ledger{margin-top:32px;border-top:1px solid var(--rule)}.map-ledger>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);cursor:pointer;list-style:none;font-family:var(--mono);font-size:var(--s-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.map-ledger>summary::-webkit-details-marker{display:none}.map-ledger-count:after{content:"+";margin-left:14px;color:var(--ink);font-size:15px}.map-ledger[open] .map-ledger-count:after{content:"−"}.map-ledger .table-wrap{margin:18px 0 0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media(prefers-reduced-motion:reduce){.flow,.node circle{transition:none}}@media(max-width:760px){.map-head{display:block}.map-summary{text-align:left;margin-top:8px}.map-controls{flex-direction:column;align-items:stretch}.map-body{display:block}.map-canvas{border-right:0;border-bottom:1px solid var(--rule);padding:16px 0}.map-detail{padding:22px 0}.map-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.map-scroll svg{min-width:640px}.map-hint{display:block}.map-controls select,.map-controls button{min-height:44px}}.circularity{width:min(var(--wide),calc(100vw - 40px));margin:72px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:30px 0 34px}.circularity-head,.history-head{display:flex;justify-content:space-between;align-items:end;gap:24px}.circularity-head h2{margin:0;font-size:clamp(32px,4.4vw,52px)}.circularity-head>p{margin:0;color:var(--ink-3);font:11px var(--mono);text-transform:uppercase;letter-spacing:.1em}.score-lead{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);margin-top:26px;border:1px solid var(--ink)}.score-primary{padding:clamp(26px,4vw,46px);color:var(--bg);background:var(--ink)}.score-number{display:block;font-size:clamp(70px,10vw,112px);line-height:.92;letter-spacing:-.07em;font-weight:600}.score-name{display:block;margin-top:17px;font:500 11px var(--mono);letter-spacing:.13em;text-transform:uppercase}.score-primary p{margin:24px 0 0;max-width:34ch;font-size:14px;line-height:1.55;opacity:.76}.score-reading{padding:clamp(26px,4vw,46px);background:var(--surface)}.score-reading h3{max-width:24ch;font-size:clamp(22px,3vw,31px);line-height:1.2}.score-reading>p:not(.label){max-width:58ch;color:var(--ink-2)}.score-reading dl{margin:24px 0 0}.score-reading dl div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--rule)}.score-reading dt{color:var(--ink-3)}.score-reading dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.score-analysis{display:grid;grid-template-columns:180px 1fr;gap:28px;padding:28px 0;border-bottom:1px solid var(--rule)}.score-analysis p{margin:0}.score-analysis p:last-child{max-width:72ch;color:var(--ink-2)}.history-head{margin-top:38px}.history-head h3,.loop-section h3{margin:0;font-size:clamp(23px,3vw,32px)}.score-legend{display:flex;flex-wrap:wrap;gap:18px;color:var(--ink-3);font:11px var(--mono)}.score-legend span{display:flex;align-items:center;gap:7px}.score-legend i{width:22px;border-top:2px solid var(--accent)}.score-legend .legend-announced{border-color:var(--ink-3);border-top-style:dashed}.history-chart{margin-top:20px;padding:12px;background:var(--surface);border:1px solid var(--rule)}.history-chart svg{display:block;width:100%;height:auto}.chart-grid{stroke:var(--rule);stroke-width:1}.axis-label,.period-label,.value-label{fill:var(--ink-3);font:10px var(--mono)}.value-label{fill:var(--ink);font-weight:500}.series{fill:none;stroke-width:2.5}.series--binding{stroke:var(--accent)}.series--announced{stroke:var(--ink-3);stroke-dasharray:7 6}.point{stroke-width:2}.point--binding{fill:var(--bg);stroke:var(--accent)}.point--announced{fill:var(--surface);stroke:var(--ink-3)}.history-table{margin-top:16px}.loop-section{margin-top:42px;padding-top:30px;border-top:1px solid var(--rule)}.loop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.loop-grid article{padding:22px;border:1px solid var(--rule);background:var(--surface)}.loop-route{margin:0 0 18px;font-weight:600}.loop-grid strong{display:block;font-size:34px;line-height:1}.loop-grid strong+span{display:block;margin-top:7px;color:var(--ink-3);font:10px var(--mono);text-transform:uppercase;letter-spacing:.1em}.loop-grid article p:last-child{margin:18px 0 0;color:var(--ink-2);font-size:14px}.loop-note{max-width:var(--measure);margin:20px 0 0;color:var(--ink-2);font-size:var(--s-small)}.method-note{margin-top:28px;padding-top:18px;border-top:1px solid var(--rule)}.method-note summary{cursor:pointer;font-weight:600}.method-note div{max-width:74ch;margin-top:16px;color:var(--ink-2)}@media(max-width:760px){.history-chart .axis-label{font-size:21px}.history-chart .period-label,.history-chart .value-label{font-size:24px}.score-lead{grid-template-columns:1fr}.score-analysis{grid-template-columns:1fr;gap:4px}.history-head,.circularity-head{display:block}.score-legend,.circularity-head>p{margin-top:12px}.loop-grid{grid-template-columns:1fr}}.financial-explorer{width:min(var(--wide),calc(100vw - 40px));margin:64px 0}.fact-summary{display:flex;align-items:baseline;gap:14px;padding:22px 0 14px}.fact-summary strong{font-size:var(--s-h2);font-weight:600}.fact-summary span{color:var(--ink-3);font-size:var(--s-small)}.fact-chart{background:var(--surface);border:1px solid var(--rule);padding:8px}.fact-chart svg{display:block;width:100%;height:auto;overflow:visible}.fact-axis{stroke:var(--rule)}.fact-line{fill:none;stroke:var(--accent);stroke-width:2.5}.fact-chart circle{fill:var(--bg);stroke:var(--accent);stroke-width:2}.fact-chart text{fill:var(--ink-3);font:10px var(--mono)}.concept-label{color:var(--ink-2)}@media(max-width:620px){.fact-summary{display:block}.fact-summary span{display:block;margin-top:4px}}
