:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--surface-2: #f3f3f0;--ink: #0b0b0b;--ink-2: #52514e;--ink-3: #898781;--grid: #e1e0d9;--axis: #c3c2b7;--border: rgba(11, 11, 11, .1);--series-1: #2a78d6;--series-2: #eb6834;--b4: #86b6ef;--b6: #3987e5;--b8: #1c5cab;--b16: #0d366b;--good: #0ca30c;--warning: #fab219;--serious: #ec835a;--critical: #d03b3b;--warning-text: #8a5a00;--zone-tight: rgba(250, 178, 25, .14);--zone-no: rgba(208, 59, 59, .07);--accent: #2a78d6;--radius: 8px;--font: "IBM Plex Sans JP", system-ui, -apple-system, "Hiragino Sans", sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #232321;--ink: #f0efec;--ink-2: #c3c2b7;--ink-3: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #d95926;--b4: #1c5cab;--b6: #2a78d6;--b8: #5598e7;--b16: #9ec5f4;--warning-text: #fab219;--zone-tight: rgba(250, 178, 25, .1);--zone-no: rgba(230, 103, 103, .08);--accent: #5598e7}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #232321;--ink: #f0efec;--ink-2: #c3c2b7;--ink-3: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #d95926;--b4: #1c5cab;--b6: #2a78d6;--b8: #5598e7;--b16: #9ec5f4;--warning-text: #fab219;--zone-tight: rgba(250, 178, 25, .1);--zone-no: rgba(230, 103, 103, .08);--accent: #5598e7}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.3;margin:0 0 .5em;font-weight:700}h1{font-size:1.35rem}h2{font-size:1rem}h3{font-size:.92rem}p{margin:0 0 1em}code,.mono{font-family:var(--mono)}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.wrap{max-width:1400px;margin:0 auto;padding:0 24px}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header .wrap{display:flex;align-items:center;gap:28px;height:52px}.brand{font-weight:700;color:var(--ink);white-space:nowrap}.brand small{font-weight:400;color:var(--ink-3);margin-left:6px}.brand:hover{text-decoration:none}.site-nav{display:flex;gap:4px}.site-nav a{color:var(--ink-2);padding:6px 12px;border-radius:6px}.site-nav a:hover{background:var(--surface-2);text-decoration:none}.site-nav a[aria-current=page]{color:var(--ink);background:var(--surface-2);font-weight:700}main{padding:20px 0 48px}.site-footer{color:var(--ink-3);font-size:.78rem;padding:0 0 32px}.muted{color:var(--ink-3)}.small{font-size:.82rem}.lead{color:var(--ink-2);max-width:820px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.stack>*+*{margin-top:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.pad{padding:16px 18px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 18px 0;flex-wrap:wrap}.panel-head h2{margin:0}.panel-head .desc{color:var(--ink-3);font-size:.8rem}.panel-body{padding:10px 18px 16px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:6px 12px;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--surface-2);text-decoration:none}.btn.primary{background:var(--series-1);border-color:var(--series-1);color:#fff;font-weight:700}.btn.primary:hover{filter:brightness(1.06)}.btn[aria-disabled=true]{opacity:.4;pointer-events:none}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:3px 11px;font:inherit;font-size:.8rem;background:var(--surface);color:var(--ink-2);cursor:pointer}.chip:hover{background:var(--surface-2)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.chip .x{border:0;background:none;color:inherit;cursor:pointer;padding:0;font-size:1rem;line-height:1;opacity:.7}.field{display:grid;gap:3px;font-size:.72rem;color:var(--ink-3)}select,input[type=number],input[type=text]{font:inherit;font-size:.86rem;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 8px;min-width:0}select:focus,input:focus{outline:2px solid var(--series-1);outline-offset:-1px}.check{display:inline-flex;gap:6px;align-items:center;font-size:.82rem;color:var(--ink-2);cursor:pointer}input[type=checkbox]{accent-color:var(--series-1)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface)}.segmented button{border:0;border-right:1px solid var(--border);background:transparent;color:var(--ink-2);padding:5px 11px;font:inherit;font-size:.84rem;cursor:pointer;font-variant-numeric:tabular-nums}.segmented button:last-child{border-right:0}.segmented button:hover{background:var(--surface-2)}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--surface);font-weight:700}.segmented button:disabled{opacity:.3;cursor:default}.label{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:700;white-space:nowrap;color:var(--ink)}.label:before{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:.66rem;color:#fff}.label.fits:before{content:"✓";background:var(--good)}.label.tight:before{content:"!";background:var(--warning);color:#0b0b0b}.label.offload:before{content:"↓";background:var(--serious)}.label.no:before{content:"✕";background:var(--critical)}.badge{display:inline-block;font-size:.7rem;padding:0 6px;border-radius:4px;white-space:nowrap;border:1px solid var(--border);color:var(--ink-2);background:var(--surface)}.badge.cloud:before,.badge.ecn:before{content:"";display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px}.badge.cloud:before{background:var(--series-2)}.badge.warn{color:var(--warning-text);border-color:var(--warning)}.badge.ecn:before{background:var(--ink)}.est-value{font-style:italic;color:var(--ink-2)}.ecn-value{font-weight:700;color:var(--ink)}.filters{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-end;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.filters .spec select{min-width:280px;font-weight:700}.filters .custom{display:flex;gap:8px;align-items:flex-end}.filters .custom input{width:84px}.filters .note{flex-basis:100%;font-size:.76rem;color:var(--ink-3);margin-top:-4px}.filters .note b{color:var(--warning-text)}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;min-width:0}.tile .k{font-size:.76rem;color:var(--ink-2)}.tile .v{font-size:1.9rem;font-weight:700;line-height:1.25}.tile .v small{font-size:.85rem;font-weight:400;color:var(--ink-3);margin-left:3px}.tile .v.text{font-size:1.05rem;padding-top:6px}.tile .s{font-size:.76rem;color:var(--ink-3)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-2>*{min-width:0}.section{margin-top:14px}.viz{position:relative;width:100%}.viz svg{display:block;overflow:visible;font-family:var(--font)}.viz .grid{stroke:var(--grid);stroke-width:1}.viz .axis{stroke:var(--axis);stroke-width:1}.viz .tick{fill:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.viz .axis-title{fill:var(--ink-3);font-size:11px}.viz .row-label{fill:var(--ink);font-size:12.5px;font-weight:600}.viz .row-sub{fill:var(--ink-3);font-size:10.5px}.viz a:hover .row-label{fill:var(--accent)}.viz .row-hit{fill:transparent}.viz .row.hover .row-hit,.viz .row:hover .row-hit{fill:var(--surface-2)}.viz .range{stroke:var(--axis);stroke-width:2;stroke-linecap:round}.viz .dot{stroke:var(--surface);stroke-width:2}.viz .dot.rec{stroke:var(--ink);stroke-width:2}.viz .b4{fill:var(--b4)}.viz .b6{fill:var(--b6)}.viz .b8{fill:var(--b8)}.viz .b16{fill:var(--b16)}.viz .s1{fill:var(--series-1)}.viz .s2{fill:var(--series-2)}.viz .zone-tight{fill:var(--zone-tight)}.viz .zone-no{fill:var(--zone-no)}.viz .usable{stroke:var(--ink);stroke-width:2}.viz .usable-label{fill:var(--ink);font-size:12px;font-weight:700}.viz .bar-value{fill:var(--ink-2);font-size:11.5px;font-variant-numeric:tabular-nums}.viz .bar-value.est{font-style:italic}.viz .point-label{fill:var(--ink-2);font-size:11px}.viz .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.viz .line.b4{stroke:var(--b4);fill:none}.viz .line.b6{stroke:var(--b6);fill:none}.viz .line.b8{stroke:var(--b8);fill:none}.viz .line.b16{stroke:var(--b16);fill:none}.viz .ref{stroke:var(--ink-3);stroke-width:1}.viz .ref-label{fill:var(--ink-2);font-size:11px}.viz .crosshair{stroke:var(--ink-3);stroke-width:1}.viz-tip{position:absolute;pointer-events:none;z-index:5;min-width:180px;max-width:300px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 20px #0000001f;padding:8px 10px;font-size:.78rem}.viz-tip .tip-title{font-weight:700;margin-bottom:4px}.viz-tip .tip-value{font-weight:700;font-size:.95rem}.viz-tip .tip-sub{color:var(--ink-3)}.viz-tip .tip-row{display:grid;grid-template-columns:14px auto 1fr auto;gap:6px;align-items:center}.viz-tip .tip-row b{font-variant-numeric:tabular-nums}.viz-tip .tip-row span{color:var(--ink-2)}.viz-tip .tip-verdict{color:var(--ink-3)!important;font-size:.72rem}.viz-tip .key{width:10px;height:10px;border-radius:50%;display:inline-block}.viz-tip .key.line-key{height:3px;border-radius:2px;width:12px}.viz-tip .key.b4{background:var(--b4)}.viz-tip .key.b6{background:var(--b6)}.viz-tip .key.b8{background:var(--b8)}.viz-tip .key.b16{background:var(--b16)}.legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:.78rem;color:var(--ink-2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}.legend i.sq{border-radius:2px}.legend i.ln{width:14px;height:3px;border-radius:2px;vertical-align:3px}.legend i.ring{background:var(--b6);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}.legend i.zt{background:var(--zone-tight);border:1px solid var(--warning);border-radius:2px}.legend i.zn{background:var(--zone-no);border:1px solid var(--critical);border-radius:2px}.legend i.ul{width:2px;height:14px;border-radius:0;background:var(--ink);vertical-align:-3px}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table.data{border-collapse:collapse;width:100%;font-size:.84rem}table.data th,table.data td{padding:8px 12px;border-bottom:1px solid var(--grid);text-align:left;vertical-align:middle}table.data thead th{font-size:.74rem;font-weight:600;color:var(--ink-3);background:var(--surface);white-space:nowrap}table.data tbody tr:last-child>*{border-bottom:0}table.data tbody tr:hover>*{background:var(--surface-2)}table.data .model-cell a{color:var(--ink);font-weight:700}table.data .model-cell .muted{display:block;font-size:.74rem}table.data tr.dim>*{color:var(--ink-3)}table.data td.num,table.data th.num{text-align:right}.matrix th.col-head{min-width:140px;vertical-align:bottom;font-size:.84rem;font-weight:700;color:var(--ink);white-space:normal}.matrix th.col-head a{color:var(--ink)}.matrix th.col-head .sub{display:block;font-size:.72rem;color:var(--ink-3);font-weight:400}.matrix tr.axis-head td{background:var(--surface-2);font-weight:700;font-size:.78rem;color:var(--ink-2)}.matrix .cellval .top{display:flex;align-items:baseline;gap:6px}.matrix .cellval .spark{display:none}.matrix .strong{font-weight:700;font-variant-numeric:tabular-nums}.matrix .weak{color:var(--ink-2);font-variant-numeric:tabular-nums}.matrix .src{font-size:.64rem;border:1px solid var(--border);border-radius:3px;padding:0 4px;color:var(--ink-3)}.matrix .ref{font-size:.68rem;color:var(--ink-3)}.matrix .rowhead{font-weight:500;min-width:200px}.matrix .rowhead .sortable{cursor:pointer}.matrix .rowhead .sortable:hover,.matrix .rowhead .sortable.on{color:var(--accent)}.matrix .rowhead .note{display:block;font-size:.72rem;color:var(--ink-3);font-weight:400}.matrix tr.ecn-row>*{background:var(--surface-2)}.multiples{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:14px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:.86rem;margin:0}.kv dt{color:var(--ink-3)}.kv dd{margin:0;overflow-wrap:anywhere}pre.cmd{background:var(--surface-2);border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.8rem;margin:4px 0 12px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:4px;flex-wrap:wrap}.page-head h1{margin:0}.crumb{font-size:.8rem;margin-bottom:6px}@media(max-width:1100px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}}.matrix-wrap{max-height:calc(100vh - 220px);overflow:auto}.fitmatrix{font-size:.8rem}.fitmatrix th,.fitmatrix td{padding:6px 8px;border-bottom:1px solid var(--grid);border-right:1px solid var(--grid)}.fitmatrix thead th{position:sticky;top:0;z-index:2;background:var(--surface);vertical-align:bottom;white-space:normal}.fitmatrix .corner{left:0;z-index:3;text-align:left;min-width:190px}.fitmatrix .colh{min-width:92px;color:var(--ink);font-weight:700;font-size:.78rem;line-height:1.3}.fitmatrix .colh a{color:var(--ink)}.fitmatrix .colh a:hover{color:var(--accent)}.fitmatrix .colh .sub,.fitmatrix .rowh .sub{display:block;font-weight:400;color:var(--ink-3);font-size:.7rem}.fitmatrix .rowh{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;white-space:nowrap;font-weight:700}.fitmatrix .rowh a{color:var(--ink)}.fitmatrix .rowh a:hover{color:var(--accent)}.fitmatrix td.cell{text-align:left;vertical-align:middle;line-height:1.3;cursor:default}.fitmatrix td.cell .label{font-variant-numeric:tabular-nums}.fitmatrix td.cell .q{display:block;font-size:.68rem;color:var(--ink-2);margin-top:2px;white-space:nowrap}.fitmatrix td.fits{background:#0ca30c1a}.fitmatrix td.tight{background:#fab21929}.fitmatrix td.offload{background:#ec835a1f}.fitmatrix td.no{background:transparent}.fitmatrix td.no .q,.fitmatrix td.none{color:var(--ink-3)}.fitmatrix tbody tr:hover>*{filter:brightness(.97)}.viz .bar.hl{fill:var(--ink)}.viz .hl-band{fill:var(--surface-2)}.viz .row-label.hl,.viz .bar-value.hl{font-weight:700;fill:var(--ink)}.ladders{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}.ladders .where{font-size:.82rem;color:var(--ink);margin:0 0 8px}.ladders .where b{font-weight:700}.compact .viz .row-label{font-size:11.5px}.viz .line-cat,.viz .line-cat.s1,.viz .line-cat.s2,.viz .line-cat.s3{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.viz .line-cat.s1{stroke:var(--series-1)}.viz .line-cat.s2{stroke:var(--series-2)}.viz .line-cat.s3{stroke:var(--series-3)}.viz .s3{fill:var(--series-3)}.viz-tip .key.c0{background:var(--series-1)}.viz-tip .key.c1{background:var(--series-2)}.viz-tip .key.c2{background:var(--series-3)}:root{--series-3: #1baf7a}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--series-3: #199e70}}:root[data-theme=dark]{--series-3: #199e70}.usecase-tabs{display:flex;gap:6px;flex-wrap:wrap}.usecase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.usecase-grid .uc-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.usecase-grid .uc-stat{font-size:.8rem;color:var(--ink-2);margin:2px 0 8px}.usecase-grid .uc-stat b{color:var(--ink)}@media(max-width:1100px){.usecase-grid{grid-template-columns:1fr}}.viz .bar-sub{fill:var(--ink-3);font-size:10.5px}.heat td.heat-cell{font-weight:700;position:relative;min-width:92px}.heat td.heat-none{color:var(--ink-3)}.heat .heat-n{position:absolute;right:4px;bottom:2px;font-size:.6rem;font-weight:400;opacity:.75}.heat tr.hl>th,.heat tr.hl>td{outline:2px solid var(--ink);outline-offset:-2px}.heat .rowh{white-space:nowrap}.sortbtn,.linkbtn{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}.sortbtn:hover,.sortbtn.on{color:var(--accent)}.linkbtn{color:var(--ink);font-weight:700;text-align:left}.linkbtn:hover{color:var(--accent)}.viz .dot.me{fill:var(--ink);stroke:var(--surface);stroke-width:2}.domain-row+.domain-row{border-top:1px solid var(--grid)}.heat td.heat-cell{text-align:left;min-width:110px}.heat .heat-tier{font-weight:700;font-size:.78rem}.heat .heat-n{position:static;display:block;font-size:.66rem;opacity:.8;font-weight:400}.viz .tier-line{stroke:var(--ink-3);stroke-width:1}.viz .tier-label{fill:var(--ink-3);font-size:10px}.viz .tier-result{fill:var(--ink);font-size:12.5px;font-weight:700}.domain-summary{list-style:none;margin:0;padding:0;display:grid;gap:6px}.domain-summary li{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:baseline;font-size:.88rem}.domain-summary .dl{font-weight:700}.tier-chip{display:inline-block;padding:0 8px;border-radius:4px;margin-right:4px;font-size:.8rem}.tier-chip.t-flagship{background:#104281;color:#fff}.tier-chip.t-mid{background:#3987e5;color:#fff}.tier-chip.t-light{background:#9ec5f4;color:#0b0b0b}.tier-chip.t-below{background:#e3eefc;color:#0b0b0b}.tier-chip.t-none{background:var(--surface-2);color:var(--ink-2)}
