@font-face{font-family:SP Inter;src:url(/fonts/specimen/inter-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:SP Public Sans;src:url(/fonts/specimen/public-sans-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:SP Roboto Mono;src:url(/fonts/specimen/roboto-mono-var.woff2) format("woff2");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-300.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:SP Poppins;src:url(/fonts/specimen/poppins-900.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:SP Lato;src:url(/fonts/specimen/lato-300.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:SP Lato;src:url(/fonts/specimen/lato-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:SP Lato;src:url(/fonts/specimen/lato-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:SP Lato;src:url(/fonts/specimen/lato-900.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:SP Alegreya Sans;src:url(/fonts/specimen/alegreya-sans-300.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:SP Alegreya Sans;src:url(/fonts/specimen/alegreya-sans-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:SP Alegreya Sans;src:url(/fonts/specimen/alegreya-sans-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:SP Alegreya Sans;src:url(/fonts/specimen/alegreya-sans-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:SP Alegreya Sans;src:url(/fonts/specimen/alegreya-sans-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:SP Alegreya Sans;src:url(/fonts/specimen/alegreya-sans-900.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:SP Cardo;src:url(/fonts/specimen/cardo-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:SP Cardo;src:url(/fonts/specimen/cardo-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:SP DM Mono;src:url(/fonts/specimen/dm-mono-300.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:SP DM Mono;src:url(/fonts/specimen/dm-mono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:SP DM Mono;src:url(/fonts/specimen/dm-mono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}.bb{--bb-card: var(--c-bg-raised);--bb-line: var(--c-line);--bb-r: 14px;--bb-mono: "SP Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;--bb-pass: #7fe8cb;--bb-large: #ffc27a;--bb-fail: #ff9f7e}.bb-k{margin:0;font-family:var(--f-label);font-size:.75rem;line-height:1rem;font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--c-ink-muted)}.bb-mono{font-family:var(--bb-mono);font-size:.75rem;line-height:1.45;letter-spacing:0;color:var(--c-ink-muted)}.bb-card{min-width:0;overflow-wrap:anywhere;background:var(--bb-card);border:1px solid var(--bb-line);border-radius:var(--bb-r);padding:clamp(1.25rem,2.2vw,2rem)}.bb-grid{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--bb-min, 17rem)),1fr))}.bb-sub{margin:var(--s-5) 0 var(--s-2);font-family:var(--f-display);font-size:1.125rem;font-weight:600;letter-spacing:-.01em;color:var(--c-ink)}.bg-sub{margin-top:var(--s-6);margin-bottom:var(--s-3)}.bg-sub+*{margin-top:0!important}.bb-sub small{font-weight:400;color:var(--c-ink-muted);font-size:1rem}.bb-note{margin:var(--s-2) 0 0;font-size:.875rem;line-height:1.55;color:var(--c-ink-muted);max-width:72ch}.bb-note b,.bb-card b{color:var(--c-ink);font-weight:600}.bb-stage{border-radius:10px;background:var(--stage, #fff);color:var(--stage-ink, #111);padding:clamp(1rem,2vw,1.75rem);min-width:0}.bb-sec{scroll-margin-top:6.5rem;padding-top:var(--s-6)}.bb-sec:first-child{padding-top:0}.bb-sec__h{margin:var(--s-1) 0 0;font-family:var(--f-display);font-size:var(--t-h3);line-height:1.05;font-weight:var(--fw-display);letter-spacing:var(--ls-h3);color:var(--c-ink)}.bb-sec__p{margin:var(--s-2) 0 var(--s-4);color:var(--c-ink-body);max-width:64ch;font-size:var(--t-para);line-height:1.55}.bb-tc{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}.bb-tc__c{display:flex;flex-direction:column}.bb-tc__aa{margin:var(--s-4) 0 0;font-size:clamp(4.5rem,3rem + 4vw,7rem);line-height:.9;letter-spacing:-.02em;color:var(--c-ink)}.bb-tc__name{margin:var(--s-3) 0 0;font-size:1.75rem;line-height:1.15;color:var(--c-ink)}.bb-tc__gl{margin:var(--s-3) 0 0;font-size:1.3125rem;line-height:1.5;color:var(--c-ink);overflow-wrap:anywhere;font-weight:400}.bb-tc__w{margin:var(--s-4) 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--s-2) 1.15rem}.bb-tc__w li{display:grid;gap:.3rem}.bb-tc__w span:first-child{font-size:1.75rem;line-height:1;color:var(--c-ink)}.bb-tc__f{margin:auto 0 0;padding-top:var(--s-3);font-size:.8125rem;line-height:1.5;color:var(--c-ink-faint)}.bb-sw{--bb-min: 13.5rem;margin:0;padding:0;list-style:none}.bb-sw li{padding:0;overflow:hidden;display:flex;flex-direction:column}.bb-sw__chip{height:5.5rem;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;box-shadow:inset 0 -1px 0 var(--bb-line)}.bb-sw__chip span{font-family:var(--bb-mono);font-size:.8125rem;font-weight:600;letter-spacing:.02em}.bb-sw__chip--two{padding:0}.bb-sw__chip--two i{flex:1;align-self:stretch;display:flex;align-items:flex-end;padding:.6rem .75rem;font-style:normal}.bb-sw__b{padding:.85rem 1rem 1rem;display:grid;gap:.2rem}@media(max-width:40rem){.bb-sw{--bb-min: 9.25rem;gap:.5rem}.bb-sw__chip{height:4rem}.bb-sw__b{padding:.7rem .75rem .8rem}.bb-sw__name{font-size:.9375rem}.bb-sw__use,.bb-sw__cr{font-size:.75rem}}.bb-sw__name{font-family:var(--f-display);font-weight:600;font-size:1rem;color:var(--c-ink)}.bb-sw__use{font-size:.875rem;line-height:1.45;color:var(--c-ink-muted)}.bb-sw__cr{margin-top:.35rem;display:grid;gap:.1rem;font-size:.8125rem;color:var(--c-ink-muted)}.bb-g{font-weight:700;font-variant-numeric:tabular-nums}.bb-g--AAA,.bb-g--AA{color:var(--bb-pass)}.bb-g--Large{color:var(--bb-large)}.bb-g--Fail{color:var(--bb-fail)}.bb-ramp{display:grid;gap:var(--s-2)}.bb-ramp__r{display:grid;gap:.5rem}@media(min-width:60rem){.bb-ramp__r{grid-template-columns:7rem 1fr;align-items:start}}.bb-ramp__n{padding-top:.6rem;font-size:.9375rem;font-weight:600;color:var(--c-ink)}.bb-ramp__s{margin:0;padding:0;list-style:none;display:grid;gap:.4rem .5rem;grid-template-columns:repeat(auto-fill,minmax(5rem,1fr))}.bb-ramp__s li{display:grid;gap:.3rem;align-content:start}@media(max-width:40rem){.bb-ramp__s{grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem}}.bb-ramp__s i{height:2.5rem;border-radius:6px;box-shadow:inset 0 0 0 1px #ffffff0f}.bb-ramp__s span{font-family:var(--bb-mono);font-size:.8125rem;line-height:1.4;color:var(--c-ink-muted)}.bb-ramp__s span b{display:block;color:var(--c-ink);font-weight:600}.bb-ts{margin:0;padding:0;list-style:none}.bb-ts li{display:grid;gap:var(--s-2);padding:var(--s-3) 0;border-top:1px solid var(--bb-line)}.bb-ts li:first-child{border-top:0;padding-top:0}.bb-ts li:last-child{padding-bottom:0}@media(min-width:60rem){.bb-ts li{grid-template-columns:minmax(0,1fr) 19rem;align-items:center;gap:var(--s-4)}}.bb-ts__s{margin:0;min-width:0;color:var(--c-ink);overflow-wrap:anywhere}.bb-ts__m{display:grid;gap:.1rem}.bb-ts__m b{font-family:var(--f-body);font-size:.875rem;font-weight:600;color:var(--c-ink)}.bb-ts__m i{display:inline-block;width:.7rem;height:.7rem;margin-right:.35rem;border-radius:3px;vertical-align:-1px;box-shadow:inset 0 0 0 1px #ffffff40;font-style:normal}.bb-ts__role{font-size:.8125rem;color:var(--c-ink)}.bb-tw{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(244,244,242,.22) transparent}.bb-t{width:100%;border-collapse:collapse;font-size:.9375rem}.bb-t th{text-align:left;padding:0 var(--s-2) .6rem 0;font-family:var(--f-label);font-size:.75rem;font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--c-ink-muted);border-bottom:1px solid var(--bb-line);white-space:nowrap}.bb-t td{padding:.75rem var(--s-2) .75rem 0;border-top:1px solid var(--bb-line);vertical-align:top;color:var(--c-ink);line-height:1.45}.bb-t tbody tr:first-child td{border-top:0}.bb-t td:first-child{font-family:var(--bb-mono);font-size:.8125rem;white-space:nowrap;color:var(--c-ink)}.bb-t td.bb-t__m{font-family:var(--bb-mono);font-size:.8125rem;color:var(--c-ink-muted)}.bb-t td.bb-t__n{font-family:var(--f-body);font-size:.9375rem;font-weight:600;white-space:normal}.bb-code{position:relative}.bb-code pre{margin:0;max-height:34rem;overflow:auto;overscroll-behavior:contain;padding:var(--s-3);border-radius:var(--bb-r);background:#050507;border:1px solid var(--bb-line);font-family:var(--bb-mono);font-size:.8125rem;line-height:1.7;color:#c9c9cf;scrollbar-width:thin;scrollbar-color:rgba(244,244,242,.22) transparent}.bb-code pre .p{color:var(--c-accent)}.bb-code pre .v{color:#9fe4ff}.bb-copy{position:absolute;top:.75rem;right:.75rem;height:2rem;padding:0 .85rem;border:1px solid var(--bb-line);border-radius:999px;background:var(--c-bg-raised);color:var(--c-ink);font:700 .6875rem/1 var(--f-label);letter-spacing:var(--ls-label);text-transform:uppercase;cursor:var(--cur-link);transition:border-color .16s,color .16s}.bb-copy:hover{border-color:var(--c-ink-muted)}.bb-copy.is-done{color:var(--c-accent);border-color:var(--c-accent)}.bb-chips{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.bb-chips li{display:inline-flex;align-items:center;gap:.5rem;min-height:2.25rem;padding:.35rem .9rem;border:1px solid var(--bb-line);border-radius:999px;font-size:.875rem;color:var(--c-ink-muted)}.bb-chips b{color:var(--c-ink);font-weight:600}.bb-chips i{width:.75rem;height:.75rem;border-radius:3px;box-shadow:inset 0 0 0 1px #ffffff40}.bb-stat__n{margin:var(--s-2) 0 0;font-family:var(--f-display);font-size:clamp(2rem,1.5rem + 1.5vw,2.75rem);font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--c-ink)}.bb-stat__p{margin:var(--s-2) 0 0;font-size:.9375rem;line-height:1.55;color:var(--c-ink-muted)}.bb-spec h4{margin:0;font-family:var(--f-display);font-size:1.0625rem;font-weight:600;color:var(--c-ink)}.bb-spec p{margin:.4rem 0 0;font-size:.9375rem;line-height:1.55;color:var(--c-ink-muted)}.bb-spec .bb-mono{white-space:pre-line;margin-top:.5rem}.bb-bullets{margin:0;padding:clamp(1.25rem,2.2vw,2rem);list-style:none;display:grid;gap:.6rem;font-size:.9375rem;line-height:1.55;color:var(--c-ink-muted);max-width:52rem}.bb-sp{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}.bb-sp li{display:grid;grid-template-columns:4.5rem 1fr;align-items:center;gap:var(--s-2)}.bb-sp i{display:block;height:1.5rem;width:min(100%,var(--w));min-width:4px;border-radius:4px;background:color-mix(in srgb,var(--c-accent) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-accent) 55%,transparent)}.bb-rad{display:flex;align-items:center;gap:var(--s-2)}.bb-rad i{flex:none;width:3.5rem;height:2.75rem;border:1.5px solid var(--c-ink-muted);border-radius:var(--r)}.bb-elev{min-height:5rem;display:flex;align-items:center;border-radius:12px;padding:1rem 1.25rem;background:#fff;color:#222;font-size:.9375rem}.bb-rec{margin:0;padding:0;list-style:none;display:grid;gap:var(--s-2)}.bb-rec li{display:grid;gap:.4rem var(--s-3)}@media(min-width:48rem){.bb-rec li{grid-template-columns:8rem 1fr}}.bb-rec .bb-k[data-k=Fix]{color:var(--bb-fail)}.bb-rec .bb-k[data-k=Unify]{color:var(--bb-large)}.bb-rec .bb-k[data-k=Component]{color:var(--bb-pass)}.bb-rec .bb-k[data-k=Add]{color:#d9b8ff}.bb-st{display:grid;gap:var(--s-2)}.bb-st__h{margin:0;font-family:var(--f-display);font-size:1.0625rem;color:var(--c-ink);font-weight:600}.bb-st__h span{font-weight:400;color:var(--c-ink-muted)}.bb-st__g{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-3)}.bb-st__g div{display:grid;gap:.5rem;justify-items:start}.bb-st__g .bb-k{font-family:var(--bb-mono);font-weight:500;letter-spacing:.06em;font-size:.75rem;color:var(--stage-k, #6b6b6b)}.bb-st__spec{margin:0}.bb-book{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-4);margin-top:var(--s-6)}@media(min-width:64rem){.bb-book{grid-template-columns:13rem minmax(0,1fr);gap:var(--s-6)}}.bb-nav{min-width:0;position:sticky;top:0;z-index:4;margin-inline:calc(var(--gutter) * -1);padding:.6rem var(--gutter);background:color-mix(in srgb,var(--c-bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--bb-line)}@media(max-width:63.9375rem){.bb-nav{top:80px}}.bb-nav ol{margin:0;padding:0;list-style:none;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}.bb-nav ol::-webkit-scrollbar{display:none}.bb-nav a{display:flex;align-items:center;min-height:2.5rem;padding:0 .9rem;border-radius:8px;color:var(--c-ink-muted);text-decoration:none;font-size:.9375rem;font-weight:500;white-space:nowrap;transition:background-color .16s,color .16s}.bb-nav a:hover{color:var(--c-ink);background:#f4f4f20f}.bb-nav a[aria-current=true]{background:var(--c-ink);color:var(--c-bg);font-weight:600}@media(min-width:64rem){.bb-nav{top:6rem;align-self:start;margin:0;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;max-height:calc(100vh - 8rem);overflow-y:auto;scrollbar-width:none}.bb-nav ol{flex-direction:column;overflow:visible;gap:.15rem}.bb-nav a{min-height:2.6rem}}.bb-body{min-width:0}
