:root{--gesso:#eceeea;--sheet:#f7f8f5;--card:#ffffff;--ink:#1d2230;--muted:#5d6472;--rule:#d5d9d2;--frame:#b7bdb4;--ultramarine:#2a3a92;--on-ultra:#ffffff;--ultra-wash:#dfe3f4;--ochre:#94600a;--ochre-wash:#f6ead1;--madder:#8c3428;--madder-wash:#f4e0db;--viridian:#2d6b4e;--star:#b07a12;--shadow:0 1px 2px rgba(29,34,48,.08),0 8px 24px rgba(29,34,48,.06);--f-display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;--f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-code:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--r:8px;--gutter:max(16px,env(safe-area-inset-left,0px));color-scheme:light}@media (prefers-color-scheme:dark){:root{--gesso:#13161c;--sheet:#191d25;--card:#20252f;--ink:#e6e8ed;--muted:#9aa1ae;--rule:#2f3542;--frame:#4a5162;--ultramarine:#9cadff;--on-ultra:#10131a;--ultra-wash:#262d48;--ochre:#e7b65c;--ochre-wash:#3a301d;--madder:#f0a191;--madder-wash:#3b2723;--viridian:#8fd1a8;--star:#e8b84a;--shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.25);color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--gesso);color:var(--ink);font:15px/1.55 var(--f-body);padding-left:max(0px,env(safe-area-inset-left,0px));padding-right:max(0px,env(safe-area-inset-right,0px))}a{color:var(--ultramarine);text-underline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ultramarine);outline-offset:2px}[hidden]{display:none!important}img{max-width:100%}.code{font-family:var(--f-code);font-size:.86em}.wrap{max-width:1320px;margin:0 auto;padding-left:var(--gutter);padding-right:max(16px,env(safe-area-inset-right,0px))}.muted{color:var(--muted)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-head{background:var(--sheet);border-bottom:1px solid var(--rule);position:-webkit-sticky;position:sticky;top:0;z-index:30;padding-top:env(safe-area-inset-top,0)}.site-head .wrap{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:wrap;padding-block:8px}.wordmark{font-family:var(--f-display);font-weight:700;font-size:28px;line-height:1;text-decoration:none;color:var(--ink);letter-spacing:-.01em;display:inline-flex;align-items:baseline;gap:2px}.wordmark i{width:11px;height:11px;border-radius:50% 50% 50% 8%;background:var(--ultramarine);display:inline-block;transform:translateY(-2px) rotate(-20deg)}.site-nav{display:flex;gap:4px;align-items:center;margin-left:auto;flex-wrap:wrap}.site-nav a,.site-nav button{text-decoration:none;color:var(--ink);padding:8px 12px;border-radius:999px;border:0;background:none;cursor:pointer;font-size:14px}.site-nav a:hover,.site-nav button:hover{background:var(--gesso)}.site-nav .pill{border:1px solid var(--rule);background:var(--card)}.site-nav .count{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--ultramarine);color:var(--on-ultra);font-size:12px;line-height:20px;text-align:center}.site-foot{border-top:1px solid var(--rule);margin-top:48px;padding-block:28px calc(28px + env(safe-area-inset-bottom, 0px));color:var(--muted);font-size:13.5px}.site-foot .wrap{display:flex;flex-wrap:wrap;gap:8px 24px}.site-foot a{color:var(--muted)}.lead{padding-block:28px 8px;display:grid;grid-gap:18px;gap:18px}.lead h1{font-family:var(--f-display);font-weight:500;font-size:clamp(30px,4.4vw,46px);line-height:1.05;margin:0;letter-spacing:-.015em;text-wrap:balance;max-width:22ch}.lead p{margin:0;color:var(--muted);max-width:60ch}.searchbar{position:relative;max-width:720px}.searchbar input{width:100%;font-size:17px;padding:14px 16px 14px 46px;border-radius:12px;border:1px solid var(--rule);background:var(--card);box-shadow:var(--shadow)}.searchbar svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted)}.searchbar .hint{font-size:12.5px;color:var(--muted);margin-top:6px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-block:16px 10px;border-bottom:1px solid var(--rule)}.tabs{display:inline-flex;background:var(--sheet);border:1px solid var(--rule);border-radius:999px;padding:3px}.tabs button{border:0;background:none;border-radius:999px;padding:7px 16px;cursor:pointer;font-weight:600;font-size:14px;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--ink);color:var(--gesso)}.toolbar .spacer{flex:1 1}.linkbtn{border:0;background:none;color:var(--ultramarine);cursor:pointer;padding:4px 2px;font-size:13.5px;text-decoration:underline;text-underline-offset:2px}.chipbar{display:flex;flex-wrap:wrap;gap:8px;padding-block:12px 4px}.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule);background:var(--card);border-radius:999px;padding:6px 12px;font-size:13.5px;cursor:pointer;white-space:nowrap}.chip small{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.chip .sw{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.filters{display:flex;flex-wrap:wrap;gap:8px;padding:12px;margin-top:10px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r)}.filters h3{width:100%;margin:0;font-size:13px;font-weight:600}.filters .grp{display:flex;flex-wrap:wrap;gap:6px;width:100%}.check{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;padding:5px 10px;border:1px solid var(--rule);border-radius:999px;background:var(--card);cursor:pointer}.check input{accent-color:var(--ultramarine)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-gap:28px;gap:28px;align-items:start;padding-top:18px}.layout.panel-closed{grid-template-columns:minmax(0,1fr) 0;gap:0}@media (max-width:1000px){.layout,.layout.panel-closed{grid-template-columns:minmax(0,1fr)}}.results{min-width:0}.summary{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;color:var(--muted);font-size:13.5px;margin-bottom:8px}.summary .grow{flex:1 1}details.group{border-bottom:1px solid var(--rule)}details.group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px 4px}details.group>summary::-webkit-details-marker{display:none}details.group>summary h3{margin:0;font-family:var(--f-display);font-weight:500;font-size:21px;line-height:1.2;text-wrap:balance}details.group>summary .code{color:var(--ultramarine)}details.group>summary .meta{margin-left:auto;color:var(--muted);font-size:13px;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}details.group>summary .caret{width:18px;height:18px;flex:none;transition:transform .15s;color:var(--muted)}details.group[open]>summary .caret{transform:rotate(90deg)}details.group>summary:hover h3{color:var(--ultramarine)}.group-body{padding-bottom:10px}.subhead{font-size:13px;font-weight:600;margin:12px 4px 4px}.row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;width:100%;padding:9px 6px;border:0;border-top:1px solid var(--rule);background:none;text-align:left;cursor:pointer;border-radius:0;color:inherit;text-decoration:none}.row:first-child{border-top:0}.row:hover{background:var(--sheet)}.row[aria-current=true]{background:var(--ultra-wash)}.row .name{font-weight:600;display:block;overflow-wrap:anywhere}.row .sub{gap:2px 12px;font-size:12.5px;color:var(--muted)}.row .meta,.row .sub{display:flex;flex-wrap:wrap}.row .meta{align-items:center;justify-content:flex-end;gap:8px}.lf{font-family:var(--f-code);font-size:12px;color:var(--muted);min-width:3.4em;text-align:right;white-space:nowrap}.lf.t3{color:var(--madder)}.badge{font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}.badge.hue{background:var(--ochre-wash);color:var(--ochre)}.badge.verify{background:var(--madder-wash);color:var(--madder)}.badge.plain{border:1px solid var(--rule);color:var(--muted)}.stars-sm{font-size:12.5px;color:var(--star);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stars-sm small{color:var(--muted)}.opacity{width:14px;height:14px;flex:none;color:var(--ink)}.empty{padding:32px 4px;color:var(--muted)}.thumbframe{position:relative;display:block;aspect-ratio:1;width:100%;height:auto;align-self:center;border-radius:10px;overflow:hidden}.thumbframe.nophoto-frame{background:var(--sheet);border:1.5px dashed var(--frame)}.thumbframe.photo{background:var(--sheet);box-shadow:inset 0 0 0 1px var(--rule)}.thumbframe img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.thumbframe .swatch{position:absolute;left:50%;top:50%;width:58%;height:58%;transform:translate(-50%,-50%);border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}.thumbframe.sm{border-radius:7px}.thumbframe.sm .swatch{width:62%;height:62%;border-radius:3px}.thumbframe.lg .swatch{width:38%;height:38%;top:44%}.thumbframe .nophoto{position:absolute;left:0;right:0;bottom:12%;text-align:center;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.thumbframe.lg.nophoto-frame:not(:has(.swatch)) .nophoto{bottom:auto;top:50%;transform:translateY(-50%)}.hero-photo{margin:0;display:grid;grid-gap:10px;gap:10px;width:100%;max-width:380px}.hero-photo figcaption{font-size:13.5px;color:var(--muted)}.mix{display:grid;grid-gap:8px;gap:8px}.mixbar{display:flex;height:14px;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.mixbar i{display:block;height:100%}.mixlegend{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none}.mixlegend li{display:grid;grid-template-columns:14px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;font-size:14px}.dot{width:14px;height:14px;border-radius:50%;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);margin-top:3px;flex:none}.mixlegend a{color:inherit;text-decoration:none}.mixlegend a:hover b{color:var(--ultramarine);text-decoration:underline}.mixlegend small{display:block;color:var(--muted);font-size:12.5px}.panel{position:-webkit-sticky;position:sticky;top:calc(80px + env(safe-area-inset-top, 0px));max-height:calc(100vh - 100px);overflow:auto;background:var(--card);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow)}.panel-closed .panel{display:none}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 0 18px}.panel-head .linkbtn{font-size:13px}.iconbtn{border:1px solid var(--rule);background:var(--card);width:34px;height:34px;border-radius:999px;cursor:pointer;display:inline-grid;place-items:center}.panel-tab{position:fixed;right:calc(14px + env(safe-area-inset-right, 0px));top:50%;z-index:20;border:1px solid var(--rule);background:var(--card);border-radius:999px;padding:10px 14px;box-shadow:var(--shadow);cursor:pointer;font-weight:600;font-size:13.5px}@media (max-width:1000px){.panel{position:fixed;inset:auto 0 0 0;max-height:88vh;border-radius:16px 16px 0 0;z-index:40;padding-bottom:env(safe-area-inset-bottom,0)}.panel-tab,.panel:not([data-sheet=true]){display:none}.panel-closed .panel[data-sheet=true]{display:block}}.scrim{position:fixed;inset:0;background:rgba(10,12,16,.4);z-index:35}.detail{padding:14px 20px 24px;display:grid;grid-gap:18px;gap:18px}.detail .hero{display:grid;grid-template-columns:104px minmax(0,1fr);grid-gap:16px;gap:16px;align-items:center}.detail .who{font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 10px}.detail h2{font-family:var(--f-display);font-weight:500;font-size:30px;line-height:1.08;margin:2px 0 0;text-wrap:balance}.detail h3{font-size:14px;font-weight:600;margin:0 0 8px}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px 16px;gap:10px 16px;margin:0;padding:14px 0;border-block:1px solid var(--rule)}.facts dt{font-size:12.5px;color:var(--muted)}.facts dd{margin:2px 0 0;display:flex;align-items:center;gap:6px}.note{border-radius:var(--r);padding:10px 12px;font-size:13.5px}.note.hue{background:var(--ochre-wash)}.note.hue b{color:var(--ochre)}.note.verify{background:var(--madder-wash)}.note.verify b{color:var(--madder)}.note.plain{background:var(--sheet);border:1px solid var(--rule)}.eq{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--rule);text-decoration:none;color:inherit}.eq:first-of-type{border-top:0}.eq b{font-weight:600;font-size:14px}.eq small{display:block;color:var(--muted);font-size:12.5px}.eq:hover b{color:var(--ultramarine)}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:var(--r);padding:9px 14px;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none}.btn.primary{background:var(--ultramarine);color:var(--on-ultra);border-color:var(--ultramarine)}.btn.quiet{border-color:transparent;background:none;color:var(--ultramarine)}.btn.danger{color:var(--madder)}.btn[disabled]{opacity:.6;cursor:default}.shops{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px}.source{font-size:12.5px;color:var(--muted)}.page{padding-block:24px 40px}.crumbs{font-size:13px;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.crumbs,.crumbs a{color:var(--muted)}.paintpage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-gap:36px;gap:36px;align-items:start}@media (max-width:860px){.paintpage{grid-template-columns:minmax(0,1fr)}}.paintpage .detail{padding:0}.paintpage h1{font-family:var(--f-display);font-weight:500;font-size:clamp(32px,5vw,48px);line-height:1.05;margin:4px 0 0;text-wrap:balance}.section{margin-top:36px}.section>h2{font-family:var(--f-display);font-weight:500;font-size:26px;margin:0 0 12px}.revsum{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:18px;gap:18px;align-items:center}.revsum .big strong{font-family:var(--f-display);font-size:42px;line-height:1;font-weight:500;display:block}.revsum .big small{color:var(--muted);font-size:12.5px}.starrow{color:var(--star);letter-spacing:1px}.starrow .off{color:var(--rule)}.dist{display:grid;grid-template-columns:2.4em minmax(0,1fr) 1.8em;grid-gap:8px;gap:8px;align-items:center;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dist i{display:block;height:6px;border-radius:3px;background:var(--sheet);overflow:hidden}.dist b{display:block;height:100%;background:var(--star)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{border:1px solid var(--rule);background:var(--sheet);border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer}.tag small{color:var(--muted);margin-left:4px}.tag[aria-pressed=true]{border-color:var(--ultramarine);background:var(--ultra-wash)}.rev{border-top:1px solid var(--rule);padding:14px 0;display:grid;grid-gap:6px;gap:6px}.rev header{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.rev header b{font-size:14px}.rev header time{color:var(--muted);font-size:12.5px;margin-left:auto}.rev p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.rev .meta{font-size:12.5px;color:var(--muted)}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumb{width:88px;height:88px;border-radius:6px;overflow:hidden;border:1px solid var(--rule);padding:0;cursor:zoom-in;background:var(--sheet)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumbcell{display:grid;grid-gap:3px;gap:3px;justify-items:start;font-size:12.5px}.thumb.featured{outline:2px solid var(--ultramarine);outline-offset:2px}.featured-tag{color:var(--ultramarine);font-weight:600}.form{display:grid;grid-gap:12px;gap:12px;background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:16px}.form label{display:grid;grid-gap:5px;gap:5px;font-size:13.5px;color:var(--muted)}.form input[type=email],.form input[type=text],.form input[type=url],.form select,.form textarea{font-size:15px;color:var(--ink);background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:9px 10px;width:100%}.form textarea{resize:vertical;min-height:100px}.form .two{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:480px){.form .two{grid-template-columns:1fr}}.starpick{display:flex;gap:2px;border:0;padding:0;margin:0}.starpick legend{font-size:13.5px;color:var(--muted);margin-bottom:2px;padding:0}.starpick button{border:0;background:none;font-size:30px;line-height:1;color:var(--star);cursor:pointer;padding:0 2px}.pthumbs{display:flex;gap:8px;flex-wrap:wrap}.pthumb{position:relative;width:72px;height:72px;border-radius:6px;overflow:hidden;border:1px solid var(--rule)}.pthumb img{width:100%;height:100%;object-fit:cover}.pthumb button{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:999px;border:0;background:var(--ink);color:var(--gesso);cursor:pointer;line-height:1}.addfile{display:inline-flex!important;align-items:center;justify-content:center;min-width:72px;height:72px;padding:0 10px;border:1px dashed var(--muted);border-radius:6px;cursor:pointer;font-size:12.5px;text-align:center}.err{color:var(--madder)}.err,.ok{font-size:13.5px;margin:0}.ok{color:var(--viridian)}.lightbox{position:fixed;inset:0;z-index:60;background:rgba(10,12,16,.88);display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.lightbox img{max-width:100%;max-height:90vh;border-radius:6px}.lightbox button{position:absolute;top:calc(14px + env(safe-area-inset-top, 0px));right:calc(14px + env(safe-area-inset-right, 0px))}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px;gap:14px}.card{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:16px;text-decoration:none;color:inherit;display:grid;grid-gap:6px;gap:6px}.card:hover{border-color:var(--ink)}.card h3{margin:0;font-family:var(--f-display);font-weight:500;font-size:22px}.card dl{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 12px;gap:2px 12px;margin:4px 0 0;font-size:13.5px}.card dt{color:var(--muted)}.card dd{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.prose{max-width:68ch}.prose h1{font-size:clamp(30px,4vw,42px);line-height:1.1;margin:0 0 12px}.prose h1,.prose h2{font-family:var(--f-display);font-weight:500}.prose h2{font-size:24px;margin:28px 0 8px}.narrow{max-width:560px}.table{width:100%;border-collapse:collapse;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table td,.table th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--rule);vertical-align:top}.tablewrap{overflow-x:auto}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(22px + env(safe-area-inset-bottom, 0px));z-index:70;background:var(--ink);color:var(--gesso);padding:9px 16px;border-radius:999px;font-size:14px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}details.group>summary h3{min-width:0;overflow-wrap:anywhere}@media (max-width:600px){details.group>summary{flex-wrap:wrap;row-gap:2px}details.group>summary .meta{margin-left:30px;width:100%;white-space:normal}.row{grid-template-columns:44px minmax(0,1fr)}.row .meta{grid-column:2;justify-content:flex-start}.detail .hero{grid-template-columns:80px minmax(0,1fr)}}.disclose{font-size:12.5px;color:var(--muted);margin:8px 0 0}.adslot{position:relative;margin-top:28px;padding:26px 14px 14px;min-height:120px;border:1px solid var(--rule);border-radius:10px;background:var(--sheet);display:grid;align-content:center;contain:layout}.adslot .adlabel{position:absolute;top:7px;left:12px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.adslot.house p{margin:0;font-size:13.5px;color:var(--muted)}.adslot .sponsor{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit}.adslot .sponsor img{width:64px;height:64px;object-fit:cover;border-radius:6px;flex:none}.adslot .sponsor b{display:block}.adslot .sponsor span span{display:block;font-size:13.5px;color:var(--muted)}.adslot .sponsor:hover b{color:var(--ultramarine)}.form label.agree{display:flex;gap:9px;align-items:flex-start;color:var(--ink);font-size:13.5px}.form label.agree input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--ultramarine)}.prose table{border-collapse:collapse;width:100%;font-size:14px}.prose td,.prose th{text-align:left;vertical-align:top;padding:7px 10px 7px 0;border-bottom:1px solid var(--rule)}