:root{--paper:#f4f1ea;--ink:#1d1c1a;--muted:#6f6a62;--hairline:#1d1c1a1f;--serif:"EB Garamond Variable", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--tint:#1d1c1a0d;--shadow:0 8px 24px #00000014;--gap:clamp(.75rem, 2vw, 1.5rem);--page:min(1400px, 100% - 2 * var(--gap));color-scheme:light}:root[data-theme=dark]{--paper:#181715;--ink:#ece8df;--muted:#a39d92;--hairline:#ece8df29;--tint:#ece8df12;--shadow:0 8px 24px #00000080;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#181715;--ink:#ece8df;--muted:#a39d92;--hairline:#ece8df29;--tint:#ece8df12;--shadow:0 8px 24px #00000080;color-scheme:dark}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:400 1rem/1.55 var(--sans);flex-direction:column;min-height:100vh;margin:0;display:flex}main{width:var(--page);flex:1;margin:0 auto;padding-block:2rem 4rem}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}h1,h2,h3{font-family:var(--serif);margin:0;font-weight:400;line-height:1.15}h1{letter-spacing:-.01em;font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.15rem}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.mono{font-family:var(--mono);font-size:.85em}.muted{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--ink);color:var(--paper);z-index:10;padding:.5rem 1rem;position:absolute;top:.5rem;left:-999px}.skip-link:focus{left:.5rem}.site-header{width:var(--page);border-bottom:1px solid var(--hairline);flex-wrap:wrap;align-items:baseline;gap:.5rem 2rem;margin:0 auto;padding-block:1.25rem;display:flex}.site-title{font-family:var(--serif);margin-right:auto;font-size:1.25rem;text-decoration:none}.site-nav{gap:1.25rem;font-size:.95rem;display:flex}.site-nav a{color:var(--muted);text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{color:var(--ink);text-decoration:underline}.site-footer{width:var(--page);border-top:1px solid var(--hairline);color:var(--muted);margin:0 auto;padding-block:1.5rem 2rem;font-size:.8rem}.search{flex:0 18rem;position:relative}.search input{width:100%;font:inherit;color:var(--ink);border:1px solid var(--hairline);background:0 0;border-radius:999px;padding:.35rem 2rem .35rem .9rem;font-size:.9rem}.search input:focus{border-color:var(--ink);outline:none}.search input::-webkit-search-cancel-button{display:none}.search-key{font-family:var(--mono);color:var(--muted);border:1px solid var(--hairline);border-radius:4px;padding:0 .3rem;font-size:.7rem;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.search input:focus~.search-key{display:none}.search-results{z-index:20;background:var(--paper);border:1px solid var(--hairline);min-width:16rem;box-shadow:var(--shadow);border-radius:.6rem;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .4rem);left:0;right:0}.search-results a{border-radius:.4rem;align-items:center;gap:.6rem;padding:.4rem .5rem;font-size:.9rem;text-decoration:none;display:flex}.search-results [aria-selected=true] a,.search-results a:hover{background:var(--tint)}.search-results .sw{width:2.2rem;height:1.4rem;box-shadow:inset 0 0 0 1px var(--hairline);flex:none;display:flex}.search-results .sw span{flex:1}.search-results .sub{color:var(--muted);margin-left:auto;font-size:.8rem}.search-results .empty{color:var(--muted);padding:.5rem;font-size:.85rem}.page-head{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem;margin-bottom:1.5rem;display:flex}.page-head p{margin:0}.page-head .intro{color:var(--muted);flex-basis:100%;order:1}.home-about{max-width:70ch;color:var(--muted);font-size:.9rem}.home-about h2{color:var(--ink);font-size:1.1rem}.pill{font:inherit;color:var(--ink);border:1px solid var(--hairline);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .85rem;font-size:.85rem;text-decoration:none;display:inline-flex}.pill:hover{border-color:var(--ink)}.pill:disabled{opacity:.45;cursor:default;border-color:var(--hairline)}.pill[aria-pressed=true],.pill[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pill .dot{width:.8rem;height:.8rem;box-shadow:inset 0 0 0 1px var(--hairline);border-radius:50%}.filters{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;margin-bottom:1.5rem;display:flex}.filter-group{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.filter-label{color:var(--muted);margin-right:.25rem;font-size:.8rem}.select,.check{align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.select select{font:inherit;color:var(--ink);border:1px solid var(--hairline);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .7rem;font-size:.85rem}.select select:hover{border-color:var(--ink)}.check input{accent-color:var(--ink);width:1rem;height:1rem;margin:0}.sort{margin-left:auto}.combo-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(150px,40vw),1fr));margin:0;padding:0;list-style:none;display:grid}.combo-grid>li[hidden]{display:none}.combo-card{text-decoration:none;display:block}.combo-card .bands{aspect-ratio:4/3;transition:transform .15s;display:flex;overflow:hidden}.combo-card .bands span{flex:1}.combo-card:hover .bands,.combo-card:focus-visible .bands{transform:translateY(-2px)}.combo-card .label{font-family:var(--mono);color:var(--muted);margin-top:.35rem;font-size:.75rem;display:block}.combo-card .names{-webkit-line-clamp:2;line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:.75rem;line-height:1.3;display:-webkit-box;overflow:hidden}.combo-card:hover .label{color:var(--ink)}.combo-row{grid-template-columns:repeat(auto-fill,minmax(min(110px,30vw),1fr))}.edge{box-shadow:inset 0 0 0 1px #1d1c1a1f}:root[data-theme=dark] .edge{box-shadow:none}:root[data-theme=dark] .edge-dark{box-shadow:inset 0 0 0 1px var(--hairline)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .edge{box-shadow:none}:root:not([data-theme=light]) .edge-dark{box-shadow:inset 0 0 0 1px var(--hairline)}}.group-section{margin-top:2.5rem;scroll-margin-top:1rem}.group-section h2{align-items:baseline;gap:.75rem;margin-bottom:1rem;display:flex}.swatch-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(140px,40vw),1fr));margin:0;padding:0;list-style:none;display:grid}.swatch{text-decoration:none;display:block}.swatch .chip{aspect-ratio:1;transition:transform .15s;display:block}.swatch:hover .chip{transform:translateY(-2px)}.swatch .name{margin-top:.4rem;font-size:.85rem;line-height:1.3;display:block}.swatch .meta{color:var(--muted);font-size:.75rem;display:block}.combo-hero{height:clamp(240px,52vh,560px);margin-bottom:1.5rem;display:flex}.combo-hero>div{flex:1;align-items:flex-end;padding:1rem;font-size:.85rem;display:flex}.ink-dark{color:#000}.ink-light{color:#fff}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2rem;display:flex}.detail-head .sub{color:var(--muted);margin:.35rem 0 0}.pager{align-items:center;gap:.5rem;display:flex}.pager .hint{color:var(--muted);margin-right:.5rem;font-size:.75rem}@media (width<=720px){.pager{flex-wrap:wrap}.pager .hint{display:none}}.chips{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:3rem;display:grid}.chip-card .chip{height:5rem}.chip-card h3{margin:.6rem 0 .15rem}.chip-card .local{color:var(--muted);margin:0 0 .4rem;font-size:.85rem}.values{grid-template-columns:auto 1fr;gap:.15rem .9rem;margin:.5rem 0 0;font-size:.85rem;display:grid}.values dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:.2em;font-size:.75rem}.values dd{margin:0}.copy{font:inherit;font-family:var(--mono);color:inherit;cursor:copy;text-align:left;background:0 0;border:0;padding:0;font-size:.85em}.copy:hover{text-underline-offset:.2em;text-decoration:underline}.section{margin-top:3rem}.section>h2{margin-bottom:.25rem}.section>.hint{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.section h3{align-items:center;gap:.6rem;margin:1.5rem 0 .75rem;display:flex}.section h3 .dot{border-radius:50%;flex:none;width:1rem;height:1rem}.metric-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1rem;display:grid}.metric{border-top:1px solid var(--ink);padding-top:.75rem}.metric h3{font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .4rem;font-size:.75rem;font-weight:500}.metric .value{font-family:var(--serif);margin:0 0 .35rem;font-size:1.35rem;line-height:1.2}.metric .detail{margin:0 0 .5rem;font-size:.9rem}.metric .hint{color:var(--muted);margin:.5rem 0 0;font-size:.78rem;line-height:1.45}.metric-harmony{grid-column:span 2}@media (width<=620px){.metric-harmony{grid-column:auto}}.harmony-body{align-items:center;gap:1rem;display:flex}.hue-wheel{flex:none;width:168px;height:168px}.metric-wide{margin-top:2rem}.temp-list{gap:.25rem;margin:.25rem 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.temp-list li{align-items:center;gap:.5rem;display:flex}.temp-list .sq{flex:none;width:.9rem;height:.9rem}.temp-list .muted{margin-left:auto}.sample{width:2.6rem;height:2rem;font-family:var(--serif);flex:none;place-items:center;font-size:1.1rem;display:inline-grid}.best-pair{align-items:center;gap:.75rem;display:flex;font-size:1.1rem!important}.table-wrap{overflow-x:auto}.contrast{border-collapse:collapse;width:100%;margin-top:.75rem;font-size:.9rem}.contrast th,.contrast td{text-align:left;border-bottom:1px solid var(--hairline);vertical-align:middle;padding:.5rem .75rem .5rem 0}.contrast thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.72rem;font-weight:500}.contrast tbody th{align-items:center;gap:.75rem;font-weight:400;display:flex}.contrast .samples{gap:2px;display:flex}.contrast .ratio{font-family:var(--mono);min-width:4.5em;font-size:.85rem;display:inline-block}.badge{letter-spacing:.03em;border:1px solid;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.badge-AAA,.badge-AA{background:var(--ink);color:var(--paper);border-color:var(--ink)}.badge-AAlarge{color:var(--ink)}.badge-fail{color:var(--muted)}.previews-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.previews-head .hint{color:var(--muted);margin:.25rem 0 0;font-size:.9rem}.preview-grid{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);margin-top:1rem;display:grid}@media (width<=720px){.preview-grid{grid-template-columns:1fr}}.preview{margin:0}.preview,.preview *{transition:background-color .3s,color .3s,box-shadow .3s}.poster{aspect-ratio:3/4;background:var(--bg);position:relative;overflow:hidden}.poster-sun{aspect-ratio:1;background:var(--accent);border-radius:50%;width:62%;position:absolute;top:14%;right:-8%}.poster-block{background:var(--surface);width:46%;height:38%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 18%, transparent);position:absolute;top:34%;left:10%}.poster-bar{background:var(--text);width:72%;height:3%;position:absolute;bottom:20%;left:10%}.poster-title{font-family:var(--serif);color:var(--text);margin:0;font-size:clamp(1.4rem,3vw,2.2rem);position:absolute;bottom:7%;left:10%}.poster-sub{letter-spacing:.2em;text-transform:uppercase;color:var(--text);margin:0;font-size:.75rem;position:absolute;top:6%;left:10%}.ui-card{background:var(--bg);place-items:center;padding:clamp(1.25rem,4vw,3rem);display:grid}.ui-surface{background:var(--surface);color:var(--text);width:min(100%,26rem);box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 15%, transparent);border-radius:.75rem;padding:clamp(1.25rem,3vw,2rem)}.ui-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 .5rem;font-size:.75rem;font-weight:600}.ui-title{font-family:var(--serif);margin:0 0 .5rem;font-size:1.6rem;line-height:1.15}.ui-body{opacity:.85;margin:0 0 1.25rem;font-size:.95rem}.ui-actions{align-items:center;gap:1rem;display:flex}.ui-button{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:500}.ui-link{text-underline-offset:.2em;font-size:.9rem;text-decoration:underline}.type-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.type-block{padding:1.25rem}.type-block p{flex-direction:column;margin:0 0 .6rem;display:flex}.type-block p:last-child{margin-bottom:0}.type-sample{font-family:var(--serif);font-size:1.5rem;line-height:1.2}.type-meta{font-size:.75rem;font-family:var(--mono)}.room-block{margin-top:2.5rem}.room-block h3{margin:0}.room{margin:1rem 0 0}.room svg{width:100%;height:auto;display:block}.room .wall{--c:var(--wall)}.room .secondary{--c:var(--secondary)}.room .accent{--c:var(--accent)}.room .textile{--c:var(--textile)}.room .face{fill:var(--c)}.room .lit{fill:color-mix(in oklab, var(--c), #fff 16%)}.room .half{fill:color-mix(in oklab, var(--c), #000 7%)}.room .shade{fill:color-mix(in oklab, var(--c), #000 22%)}.room :is(.face,.lit,.half,.shade){transition:fill .4s}.room .dusk{opacity:0;transition:opacity .6s}.room .sunlight{opacity:.2;transition:opacity .6s}.room .night{opacity:0;mix-blend-mode:multiply;transition:opacity .6s}.room .glow{opacity:0;mix-blend-mode:screen;transition:opacity .6s}.room.is-evening .dusk{opacity:.9}.room.is-evening .sunlight{opacity:0}.room.is-evening .night{opacity:.55}.room.is-evening .glow{opacity:1}.export-bar{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin:1rem 0 .75rem;display:flex}.code-block{position:relative}.code-block pre{background:var(--tint);border:1px solid var(--hairline);font-family:var(--mono);border-radius:.5rem;margin:0;padding:1rem 1.25rem;font-size:.82rem;line-height:1.6;overflow-x:auto}.copy-code{background:var(--paper);position:absolute;top:.6rem;right:.6rem}.cvd-defs{width:0;height:0;position:absolute;overflow:hidden}html[data-cvd=protanopia] main{filter:url(#cvd-protanopia)}html[data-cvd=deuteranopia] main{filter:url(#cvd-deuteranopia)}html[data-cvd=tritanopia] main{filter:url(#cvd-tritanopia)}.cvd-select{color:var(--muted);align-items:center;gap:.35rem;display:inline-flex}.cvd-select select{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:.1rem 0;font-size:.8rem}.cvd-select select:hover{color:var(--ink)}.cvd-select select option,.select select option{background:var(--paper);color:var(--ink)}.theme-toggle{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;font-size:.8rem;display:inline-flex}.theme-toggle:hover{color:var(--ink)}html[data-cvd] .cvd-select{color:var(--ink);font-weight:600}.color-hero{gap:calc(var(--gap) * 2);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;display:grid}.color-hero .chip{aspect-ratio:4/3}.color-hero h1{margin-bottom:.25rem}.color-hero .local{color:var(--muted);font-size:1.15rem;font-family:var(--serif);margin:0 0 .75rem}.color-hero .note{color:var(--muted);margin:0 0 1rem;font-size:.8rem}.color-hero .values{gap:.35rem 1.25rem;margin-top:1.25rem;font-size:.95rem}@media (width<=720px){.color-hero{grid-template-columns:1fr}}.mini-list{gap:.6rem var(--gap);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0;padding:0;list-style:none;display:grid}.mini-list a{align-items:center;gap:.75rem;font-size:.9rem;text-decoration:none;display:flex}.mini-list a:hover .n{text-decoration:underline}.mini-list .sq{flex:none;width:2.5rem;height:2.5rem}.mini-list .meta{font-family:var(--mono);color:var(--muted);margin-left:auto;font-size:.75rem}.prose{max-width:40rem}.prose h2{margin:2rem 0 .5rem}.prose p{margin:0 0 1rem}.prose h3{margin:1.25rem 0 .4rem;font-size:1.05rem}.licences{margin:0 0 1rem;padding-left:1.1rem}.licences li{margin-bottom:.25rem}.legal address{margin-bottom:1rem;font-style:normal}.numbered{counter-reset:section}.numbered h2:before{counter-increment:section;content:counter(section) ". "}.legal code{font-family:var(--mono);font-size:.85em}.footer-nav{flex-wrap:wrap;gap:1.25rem;margin-top:.5rem;display:flex}.footer-nav a{color:var(--muted)}.footer-nav a:hover{color:var(--ink)}.toast{background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;border-radius:999px;padding:.5rem 1rem;font-size:.85rem;transition:opacity .2s,transform .2s;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%,1rem)}.toast.show{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
