.scan-screen{overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow-y:auto}.scan-view{color:#fff;isolation:isolate;background:repeating-linear-gradient(135deg,#191b1c 0 14px,#1e2021 14px 28px);flex:1 1 0;min-height:190px;position:relative;overflow:hidden}.scan-feed,.scan-image-preview{width:100%;height:100%;position:absolute;inset:0}.scan-feed{object-fit:cover}.scan-frozen-frame{z-index:1}.scan-image-preview{z-index:1;touch-action:none;cursor:crosshair;background:#161511}.scan-image-preview img{object-fit:contain;pointer-events:none;width:100%;height:100%}.scan-image-point,.scan-reticle{pointer-events:none;border:1.5px solid #fff;border-radius:16px;position:absolute;translate:-50% -50%;box-shadow:0 0 0 1px #0007,inset 0 0 0 1px #0007}.scan-image-point{width:64px;height:64px}.scan-reticle{z-index:3;aspect-ratio:1;background:0 0;border:8px solid #0000;border-radius:50%;width:56px;top:50%;left:50%;box-shadow:0 0 0 2px #fff,0 0 0 3px #0009,inset 0 0 0 1.5px #fff,inset 0 0 0 2.5px #0008,0 6px 18px #0007}.scan-aim{aspect-ratio:1;border-radius:50%;width:14px;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px #0009}.scan-pill,.scan-into{z-index:4;color:#fff;background:#141414;border-radius:13px;align-items:center;gap:6px;min-height:26px;padding:0 12px;font-size:12px;display:flex;position:absolute;top:12px;left:14px}.scan-pill i{background:#fff;border-radius:50%;width:7px;height:7px}.scan-into{border-radius:18px;min-height:36px;padding-right:2px;font-weight:600;top:auto;bottom:12px}.scan-into button{width:44px;height:36px;color:inherit;background:0 0;border:0;padding:0}.scan-view-actions{z-index:4;gap:2px;display:flex;position:absolute;top:6px;right:6px}.scan-round-button{color:#fff;background:#141414b3;border:0;border-radius:50%;width:44px;height:44px;padding:0}.scan-round-button.is-active{color:#141414;background:#fff}.scan-screen button:focus-visible{outline-color:var(--text)}.scan-view button:focus-visible{outline-color:#fff}.scan-status,.scan-alternate-panel{z-index:5;text-align:center;background:#141414e6;border-radius:16px;width:min(100% - 32px,360px);padding:16px;position:absolute;top:50%;left:50%;translate:-50% -50%}.scan-status p,.scan-alternate-panel p{color:#fff;margin:0;font-size:14px;line-height:1.4}.scan-alternate-panel p{color:#d6d6d2;margin-top:10px;font-size:13px}.scan-status button,.scan-file-label{color:#141414;background:#fff;border:0;border-radius:22px;justify-content:center;align-items:center;gap:7px;min-height:44px;margin:12px 0 0;padding:0 18px;font-size:14px;font-weight:600;display:inline-flex}.scan-file-label{cursor:pointer;margin-top:0}.scan-file-label input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.scan-image-panel.has-image{background:#141414cc;padding:8px 12px 10px;top:auto;bottom:10px;translate:-50%}.scan-image-panel.has-image p{margin-top:6px}.scan-alternate-panel label:not(.scan-file-label){text-align:left;margin:0 0 10px;font-size:17px;font-weight:600;display:block}.scan-hex-row{align-items:center;gap:8px;display:flex}.scan-hex-row input{color:#fff;width:100%;min-width:0;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;border-bottom:1.5px solid #fff;border-radius:0;padding:8px 2px;font-size:22px}.scan-hex-row input:focus-visible{outline-color:#fff}.scan-input-error{text-align:left;color:#ffd4cc!important}.scan-band{text-align:left;border:0;border-radius:0;flex:none;align-items:flex-start;gap:8px;width:100%;min-height:54px;padding:9px 16px;font-size:12.5px;font-weight:600;display:flex}.scan-band code{font-weight:400}.scan-result-card{flex-wrap:wrap;justify-content:flex-start;align-items:flex-end}.scan-result-card strong{overflow-wrap:anywhere;font-weight:600}.is-comparing .scan-band{min-height:74px}.scan-awaiting{text-align:center;background:var(--surface);flex:none;justify-content:center;align-items:center;min-height:108px;margin:0;padding:0 24px;font-size:14px;display:flex}.scan-compare{flex:none}.scan-compare .lbl span{color:var(--muted)}.scan-candidates{height:52px;display:flex}.scan-candidates button{border:0;border-radius:0;flex:1;min-width:0;padding:0}.scan-candidates button[aria-checked=true]{box-shadow:inset 0 0 0 3px #141414,inset 0 0 0 5px #fff}.scan-chosen{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px 6px;display:flex}.scan-chosen>div{flex-direction:column;gap:3px;min-width:0;display:flex}.scan-controls{flex:none;justify-content:space-between;align-items:center;padding:14px 40px;display:flex}.scan-controls.is-quiet{justify-content:flex-start;gap:10px;padding:0 8px 4px}.scan-alt-button{background:0 0;border:0;border-radius:12px;flex-direction:column;gap:4px;min-width:56px;min-height:56px;padding:0 4px;font-size:12px}.is-quiet .scan-alt-button{min-height:44px;color:var(--muted);flex-direction:row;gap:6px;padding:0 8px;font-size:13px}.scan-freeze-button{background:var(--text);width:112px;height:76px;color:var(--on-ink);border:0;border-radius:38px;padding:0;font-size:16px;font-weight:600}@media (height<=700px){.scan-view{min-height:150px}.is-comparing .scan-band{min-height:56px}.scan-freeze-button{height:60px}.scan-controls{padding:8px 40px}}.tab-scan .app-header{z-index:6;color:#fff;pointer-events:none;background:linear-gradient(#0000008c,#0000);position:absolute;top:0;left:0;right:0}.tab-scan .app-header h1{text-shadow:0 1px 6px #000a}.tab-scan .app-header button{pointer-events:auto}.tab-scan .app-header .chip{color:#fff;box-shadow:none;background:#141414b3}.tab-scan .app-header .icon-button svg{filter:drop-shadow(0 1px 3px #000a)}.tab-scan .scan-pill{top:calc(max(12px, env(safe-area-inset-top)) + 58px)}.tab-scan .scan-view-actions{top:calc(max(12px, env(safe-area-inset-top)) + 50px)}.scan-bands{flex:none}.is-photo .scan-bands{display:flex}.is-photo .scan-band{flex-flow:column;flex:1;justify-content:center;align-items:flex-start;gap:2px;min-width:0;min-height:56px;padding:6px 12px}.is-photo .scan-compare .lbl,.is-photo .scan-compare .button-row{display:none}.is-photo .scan-candidates{height:44px}.is-photo .scan-chosen{gap:8px;padding:8px 12px 2px 16px}.is-photo .scan-chosen>div{flex:1}.is-photo .scan-chosen strong{font-size:17px}.is-photo .scan-view{background:#161511}.scan-image-panel.has-image{background:0 0;width:auto;padding:0;top:auto;bottom:10px;left:10px;translate:none}.scan-image-panel.has-image .scan-file-label{color:#fff;background:#141414cc;min-height:36px;padding:0 14px;font-size:13px}.scan-image-panel.has-image .scan-input-error{background:#141414cc;border-radius:10px;margin-top:6px;padding:6px 10px}.scan-image-preview,.scan-image-preview img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.scan-family{align-items:stretch;margin-top:2px;display:flex}.scan-family h2{letter-spacing:.04em;text-transform:uppercase;width:96px;color:var(--muted);flex:none;align-items:center;margin:0;padding:0 8px 0 16px;font-size:11.5px;font-weight:600;line-height:1.2;display:flex}.scan-family .scan-candidates{flex:1;justify-content:flex-start;height:46px}.scan-family .scan-candidates button{flex:0 25%;min-width:44px}.is-photo .scan-family .scan-candidates{height:44px}@font-face{font-family:Barlow;src:url(/fonts/barlow-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Barlow;src:url(/fonts/barlow-latin-600-normal.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Barlow;src:url(/fonts/barlow-latin-700-normal.woff2)format("woff2");font-weight:700;font-display:swap}:root{--sans:"Barlow", "Bahnschrift", "DIN Alternate", "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, Menlo, monospace;font-family:var(--sans);color:var(--text);background:var(--bg);--bg:#151410;--surface:#222019;--text:#eeeadd;--on-ink:#151410;--muted:#a39f94;--border:#3b3830;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#fff;--surface:#efefef;--text:#0d0d0d;--on-ink:#fff;--muted:#5a5a5a;--border:#0d0d0d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=ledger]{--bg:#fff;--surface:#efefef;--text:#0d0d0d;--on-ink:#fff;--muted:#5a5a5a;--border:#0d0d0d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light]{--bg:#f4eedf;--surface:#e9e2d2;--text:#24221b;--on-ink:#f4eedf;--muted:#635e53;--border:#c7bfaf;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=atlas]{--bg:#cfcfcb;--surface:#e7e7e4;--text:#141414;--on-ink:#fff;--muted:#4c4c47;--border:#b3b3ae;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=graphite]{--bg:#2b2b2d;--surface:#3a3a3d;--text:#f1f1ef;--on-ink:#1c1c1e;--muted:#b9b9b5;--border:#55555a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--nav-h:calc(69px + env(safe-area-inset-bottom))}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--surface);-webkit-tap-highlight-color:transparent;border-radius:22px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--text);outline-offset:2px}.detail-page:focus-visible{outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--text);outline-offset:2px}input,select,textarea{background:var(--surface);width:100%;min-width:0;color:var(--text);border:1.5px solid var(--text);border-radius:12px;padding:12px 14px;font-size:16px}textarea{resize:vertical;min-height:120px}input[type=checkbox],input[type=radio]{width:22px;height:22px;accent-color:var(--text)}input[type=color]{min-width:44px;height:44px;padding:3px}input::placeholder{color:var(--muted);opacity:1}label{gap:8px;margin-bottom:18px;font-size:14px;display:grid}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:700;line-height:1.15}h1{font-size:25px}h2{font-size:21px}p{color:var(--muted);line-height:1.5}code,small,.mono,.eyebrow{font-family:var(--mono)}code{overflow-wrap:anywhere;font-size:12px}small{color:var(--muted);font-size:12px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:11px;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grow{flex:1;min-width:0}.app{isolation:isolate;flex-direction:column;max-width:760px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.tab-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.tab-body[inert]{visibility:hidden}.app-header{min-height:64px;padding:max(12px, env(safe-area-inset-top)) 6px 8px 16px;flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.app-header h1{letter-spacing:.03em;text-transform:uppercase;min-width:0;margin:0;font-size:25px;font-weight:600;line-height:1}.app-header>div{flex:none;align-items:center;gap:2px;display:flex}.icon-button{background:0 0;border:0;border-radius:50%;flex:none;width:44px;height:44px;padding:10px}.icon-button svg{width:24px;height:24px}.round-button{background:var(--text);width:44px;height:44px;color:var(--on-ink);border:0;border-radius:50%;padding:0}.round-button svg{width:22px;height:22px}.chip{background:var(--surface);white-space:nowrap;border:0;border-radius:18px;gap:6px;min-height:36px;padding:0 14px;font-size:13px;font-weight:600}:root[data-theme=ledger] .chip:not(.dark){box-shadow:inset 0 0 0 1px #0d0d0d2e}.chip.dark{background:var(--text);color:var(--on-ink)}.btn{border:1.5px solid var(--text);min-height:44px;color:var(--text);background:0 0;border-radius:22px;padding:0 18px;font-size:14px;font-weight:600}.btn.fill,.primary{background:var(--text);border-color:var(--text);color:var(--on-ink);font-weight:600}.btn.danger{margin-top:12px}.wide{width:100%;margin-bottom:12px}.btn.wide{border-radius:25px;min-height:50px}.button-row{gap:8px;display:flex}.button-row>*{flex:1;min-width:0}.button-row>.grow-2{flex:2}.padded-row{padding:4px 16px 8px}.padded{padding:16px}.bottom-nav{height:var(--nav-h);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);z-index:5;flex:none;display:flex}.bottom-nav button{color:var(--muted);background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;gap:3px;padding:0 1px;font-size:11px}.bottom-nav button em{border-radius:15px;justify-content:center;align-items:center;width:56px;height:30px;font-style:normal;display:flex}.bottom-nav button.selected{color:var(--text);font-weight:700}.bottom-nav button.selected em{background:var(--text);color:var(--on-ink)}.bottom-nav svg{width:22px;height:22px}.bottom-nav button:focus-visible{outline-offset:-4px}.lbl{flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:34px;padding:0 16px;font-size:12.5px;display:flex}.lbl h2,.lbl>span:first-child{margin:0;font-size:12.5px;font-weight:600}.lbl.plain{color:var(--text);margin:0;padding:0;font-weight:600}.lbl button{background:0 0;border:0;border-radius:8px;gap:4px;min-height:44px;margin:-5px 0;padding:0 0 0 12px;font-size:12.5px}.lbl select{text-align:right;background:0 0;border:0;width:auto;min-height:44px;margin:-5px 0;padding:0 0 0 12px;font-size:12.5px}.page-scroll,.catalogue-scroll,.detail-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;min-height:0;padding-bottom:20px;overflow-y:auto}.search{background:var(--surface);min-width:0;min-height:44px;color:var(--muted);border-radius:22px;flex:1;align-items:center;gap:8px;margin:0;padding:0 14px;display:flex}:root[data-theme=ledger] .search{box-shadow:inset 0 0 0 1px #0d0d0d2e}.search input{color:var(--text);background:0 0;border:0;border-radius:0;outline:none;padding:10px 0;font-size:16px}.search:focus-within{outline:2px solid var(--text);outline-offset:1px}.search svg{flex:none}.library-controls{flex:none;gap:8px;padding:0 16px 12px;display:flex}.view-toggle{flex:none;gap:8px;display:flex}.view-toggle .chip{border-radius:22px;min-height:44px;font-weight:400}.view-toggle .chip.dark{font-weight:600}.input-match{flex:none;align-items:center;gap:10px;padding:0 16px 12px;font-size:13px;display:flex}.input-match small{margin-top:3px;display:block}.input-match button{margin-left:auto}.tiny-swatch{flex:none;width:38px;height:38px;display:block}.row-text{text-align:left;flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.empty{text-align:center;padding:40px 24px 24px}.empty h2{margin-bottom:8px;font-size:19px}.empty p{font-size:14px}.quiet-note{font-size:13px}.padded-note{margin:0;padding:4px 16px 8px}.error{color:var(--text);font-weight:600}.notice{background:var(--surface);align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.notice .chip{background:var(--bg)}.notice .chip:first-of-type{margin-left:auto}.combinations-list{grid-template-columns:1fr;gap:6px;display:grid}.combination-card{min-width:0;height:92px;display:flex;position:relative}.card-open{background:0 0;border:0;border-radius:0;flex:1;width:100%;padding:0;display:block;position:relative}.card-open:focus-visible,.swatch-grid button:focus-visible,.group-colours button:focus-visible,.scan-candidates button:focus-visible,.scan-band:focus-visible{outline-offset:-5px;z-index:1;box-shadow:inset 0 0 0 2px #fff}.palette-bands{width:100%;height:100%;display:flex}.palette-bands>span{flex:1;position:relative}.palette-bands>span.hit:after{content:"";border:7px solid #0000;border-bottom-color:var(--bg);border-top:0;margin-left:-7px;position:absolute;bottom:0;left:50%}.reference-badge{font-family:var(--mono);font-size:11.5px;position:absolute;top:9px;left:12px}.on-swatch{position:absolute;top:2px;right:4px}.heart{position:relative}.heart svg{width:22px;height:22px}.wall{flex-direction:column;flex:1;gap:6px;min-height:0;padding-bottom:6px;display:flex}.wall .combination-card{height:auto;min-height:0}.colour-map-wrap{flex:none;position:relative}.colour-map{touch-action:none;cursor:pointer;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-auto-flow:column;width:100%;display:grid}.colour-map:focus-visible{outline-offset:-3px}.colour-map>span{display:block}.colour-map>span.near{outline:2px solid var(--text);outline-offset:-2px;box-shadow:inset 0 0 0 3px #fff}.colour-map>span.sel,.colour-map>span.focus,.map-cursor{outline-offset:0;z-index:2;outline:1px solid #141414;position:relative;box-shadow:inset 0 0 0 1.5px #fff}.map-cursor{pointer-events:none;z-index:3;background:0 0;position:absolute}.map-loupe{z-index:9500;pointer-events:none;transition:left .14s ease-out,top .14s ease-out;position:fixed;transform:translate(-50%,-50%)}.theme-picker small{font-family:var(--sans);margin-top:2px;font-size:11px;font-weight:400;display:block}.loupe-glass{background:var(--bg);border-radius:50%;position:relative;overflow:hidden;box-shadow:0 0 0 3px #fff,0 0 0 5px #141414,0 10px 28px #0008}.loupe-map{grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:absolute}.loupe-map i{display:block}.loupe-ring{border-radius:6px;position:absolute;box-shadow:0 0 0 3px #fff,0 0 0 5px #141414}.loupe-name{white-space:nowrap;border-radius:14px;padding:5px 12px;font-size:14px;font-weight:600;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 0 0 1.5px #fff,0 4px 14px #0006}.selected-colour{align-items:center;gap:2px;padding:14px 6px 6px 16px;display:flex}.selected-open{background:0 0;border:0;border-radius:0;flex:1;justify-content:flex-start;gap:14px;min-width:0;padding:0}.selected-swatch{flex:none;width:56px;height:56px;display:block}.selected-open strong,.scan-chosen strong{overflow-wrap:anywhere;font-size:20px;font-weight:700}.dictionary-body{flex:1;min-height:0;display:flex;position:relative}.colour-row{content-visibility:auto;contain-intrinsic-size:auto 72px;align-items:center;min-height:72px;padding-left:16px;padding-right:44px;display:flex}.colour-row .colour-open{background:0 0;border:0;border-radius:0;flex:1;justify-content:flex-start;align-self:stretch;gap:14px;min-width:0;padding:0}.colour-row .colour-open:focus-visible{outline-offset:-3px}.row-swatch{flex:none;align-self:stretch;width:92px;min-height:60px;display:block}.colour-row small{color:inherit;opacity:.85}.colour-row .colour-open:focus-visible,.colour-row .heart:focus-visible{outline-color:currentColor}.colour-name{overflow-wrap:anywhere;font-size:19px;font-weight:600}.colour-navigator{touch-action:none;z-index:2;cursor:ns-resize;width:44px;position:absolute;top:0;bottom:0;right:0;outline-offset:-2px!important}.navigator-bands{flex-direction:column;width:10px;height:100%;display:flex;position:absolute;right:0}.navigator-bands>span{flex:1;min-height:0}.navigator-indicator{pointer-events:none;background:#141414;border:1px solid #fff;width:18px;height:5px;position:absolute;right:0;transform:translateY(-50%)}.navigator-preview{white-space:nowrap;pointer-events:none;border-radius:12px;max-width:240px;padding:10px 14px;font-size:17px;font-weight:600;position:absolute;top:8px;right:28px;box-shadow:0 2px 15px #0005}.navigator-preview small{color:inherit;margin-top:4px;display:block}.group-grid{grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 8px;display:grid}.group-grid.empty{grid-template-columns:1fr}.group-tile{background:var(--surface);text-align:left;border:0;border-radius:14px;flex-direction:column;align-items:stretch;gap:0;padding:0;display:flex;overflow:hidden}:root[data-theme=ledger] .group-tile{box-shadow:inset 0 0 0 1px #0d0d0d2e}.group-strip{background:var(--border);height:70px;display:flex}.group-strip i{flex:1}.group-caption{flex-direction:column;gap:3px;padding:9px 12px 11px;display:flex}.group-caption strong,.new-group-tile strong{overflow-wrap:anywhere;font-size:16.5px;font-weight:600}.group-caption small,.new-group-tile small{font-family:var(--sans)}.new-group-tile{border:1.5px dashed var(--text);text-align:center;background:0 0;border-radius:14px;flex-direction:column;gap:6px;min-height:124px;padding:12px}.new-group-tile>span:last-child{flex-direction:column;gap:3px;display:flex}.group-grid.empty .new-group-tile{text-align:left;flex-direction:row;justify-content:flex-start;gap:14px;min-height:96px;padding:12px 18px}.new-group-tile small{line-height:1.35}.plus{background:var(--text);width:40px;height:40px;color:var(--on-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.plus svg{width:22px;height:22px}.chips{scrollbar-width:none;gap:8px;padding:0 16px 12px;display:flex;overflow-x:auto}.swatch-grid{grid-template-columns:repeat(6,1fr);display:grid}.swatch-grid button{aspect-ratio:1;border:0;border-radius:0;min-height:56px;padding:0}.personal-card{border-bottom:1px solid var(--border);align-items:center;gap:4px;margin:0 16px;padding:12px 0;display:flex;position:relative}.personal-card>button:first-child{text-align:left;background:0 0;border:0;border-radius:0;flex:1;justify-content:flex-start;gap:12px;min-width:0;padding:0}.card-caption{flex-direction:column;gap:3px;min-width:0;display:flex}.card-caption strong{overflow-wrap:anywhere;font-size:16.5px;font-weight:600}.observation-swatch{flex:none;width:56px;height:56px}.palette-personal>button:first-child{flex-direction:column;align-items:stretch;gap:10px}.palette-personal .palette-bands{height:64px}.detail-bar{min-height:56px;padding:max(8px, env(safe-area-inset-top)) 6px 4px 6px;flex:none;justify-content:space-between;align-items:center;display:flex}.detail-bar .back{background:0 0;border:0;gap:2px;min-height:44px;padding:0 10px 0 4px;font-size:14px}.detail-bar .chip{margin-right:10px}.bar-start,.bar-end{align-items:center;display:flex}.group-title{padding:2px 16px 12px}.group-title h1{overflow-wrap:anywhere;margin:0}.group-title p{margin:4px 0 0;font-size:12.5px}.group-colours{grid-template-columns:repeat(3,1fr);margin-bottom:6px;display:grid}.group-colours.medium{grid-template-columns:repeat(6,1fr)}.group-colours.small{grid-template-columns:repeat(9,1fr)}.group-colours.medium button,.group-colours.small button{aspect-ratio:1;height:auto;padding:0}.group-colours.medium span,.group-colours.small span{display:none}.group-colours button{border:0;border-radius:0;justify-content:flex-start;align-items:flex-end;height:104px;padding:0 10px 8px;font-size:11.5px}.hex-entry{gap:10px;margin-bottom:10px;display:flex}.hex-entry .selected-swatch{width:54px;height:54px;box-shadow:inset 0 0 0 1.5px var(--text);border-radius:12px}.hex-entry input{font-family:var(--mono);text-transform:uppercase}.picker{padding-bottom:12px}.picker .search{background:var(--bg)}.picker-list{flex-direction:column;gap:6px;min-height:120px;display:flex}.picker-row{border:0;border-bottom:1px solid var(--border);text-align:left;background:0 0;border-radius:0;justify-content:flex-start;gap:14px;min-height:56px;padding:0 16px 0 0;font-size:16.5px;font-weight:600}.picker-row .row-swatch{min-height:56px}.picker-combo{border:0;border-radius:0;flex:none;height:72px;padding:0;position:relative}.picker-combo[aria-pressed=true]{box-shadow:inset 0 0 0 3px var(--text)}.picked{color:#fff;background:#141414;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-top:-16px;display:flex;position:absolute;top:50%;right:12px;box-shadow:0 0 0 2px #fff}.detail-page{inset:0 0 var(--nav-h) 0;background:var(--bg);z-index:4;flex-direction:column;display:flex;position:absolute}.detail-hero{flex:none;height:250px}.detail-hero.single{height:240px}.detail-title{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 8px;display:flex}.detail-title h1{overflow-wrap:anywhere;margin:0;font-size:24px}.detail-title p{margin:5px 0 0;font-size:12.5px}.pill{border:1.5px solid var(--text);white-space:nowrap;border-radius:12px;flex:none;padding:3px 10px;font-size:12px;font-weight:600}.detail-colours{flex-direction:column;display:flex}.detail-colour-link{border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;justify-content:flex-start;gap:12px;min-height:54px;padding:0 10px 0 16px}.detail-colour-link:disabled{opacity:1}.detail-colour-link:focus-visible{outline-offset:-3px}.detail-colour-link strong{overflow-wrap:anywhere;font-size:16px;font-weight:600}.detail-colour-link code{color:var(--muted)}.disclosures{padding:16px 16px 0}.disclosures>.button-row{margin-bottom:14px}.disclosure{border-top:1px solid var(--border);font-size:14.5px}.disclosure summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:52px;list-style:none;display:flex}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary:after{content:"";border-bottom:1.6px solid;border-right:1.6px solid;width:9px;height:9px;margin-right:6px;transform:rotate(45deg)translate(-3px,-3px)}.disclosure[open] summary:after{transform:rotate(225deg)translate(-3px,-3px)}.disclosure[open]{padding-bottom:16px}.disclosure p{font-size:13px}.source-note{margin-top:12px}.value-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;padding:10px 0;display:flex}.value-row .eyebrow{margin-bottom:4px}.value-row code{font-size:15px}.value-row button{color:var(--muted);background:0 0;border:0;min-height:44px;padding:0 0 0 10px;font-size:12.5px}.value-row button svg{width:16px;height:16px}.nearest-list{flex-direction:column;gap:8px;display:flex}.nearest-list button{text-align:left;background:0 0;border:0;border-radius:0;justify-content:flex-start;gap:12px;min-height:44px;padding:0;font-size:16px;font-weight:600}.nearest-list small{margin-left:auto}.sheet{color:var(--text);overscroll-behavior:contain;scrollbar-width:thin;background:0 0;border:0;border-radius:22px 22px 0 0;width:min(100%,760px);max-width:100%;height:fit-content;max-height:94dvh;margin:auto auto 0;padding:0;overflow:auto}.sheet::backdrop{background:#14141480}.sheet-inner{background:var(--surface);min-height:45dvh;padding-bottom:max(20px, env(safe-area-inset-bottom));position:relative}.sheet.compact .sheet-inner{min-height:0}.sheet input,.sheet select,.sheet textarea{background:var(--bg)}.sheet-handle{background:var(--muted);opacity:.6;z-index:2;border-radius:2px;width:40px;height:4px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.sheet-toolbar{z-index:3;pointer-events:none;justify-content:space-between;align-items:flex-end;height:52px;margin-bottom:-18px;padding:0 6px;display:flex;position:sticky;top:0}.sheet-toolbar button{pointer-events:auto}.sheet-content{padding:14px 16px 4px}.sheet-content>h1,.sheet-content>h2{margin-bottom:14px;padding-right:44px}.sheet-content>input+.quiet-note{margin:10px 2px 0}.sheet-content>input+input{margin-top:0}.sheet-content h3{margin-top:24px}.sheet-content .button-row{margin:14px 0 12px}.sheet-content .button-row .btn{border-radius:25px;min-height:50px}.action-row{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.item-summary{align-items:center;gap:12px;padding:0 44px 14px 0;display:flex}.item-summary>span:last-child{flex-direction:column;gap:3px;min-width:0;display:flex}.item-summary strong{overflow-wrap:anywhere;font-size:19px;font-weight:700}.summary-swatch{flex:none;width:48px;height:48px;display:flex}.summary-swatch i{flex:1}.check-list{margin:8px 0 14px;padding:0;list-style:none}.check-list li{border-top:1px solid var(--border)}.check-list label,.check-list .new-row{cursor:pointer;align-items:center;gap:14px;min-height:52px;margin:0;font-size:16.5px;display:flex;position:relative}.check-list .new-row{background:0 0;border:0;border-radius:0;justify-content:flex-start;width:100%;padding:0}.check-list small{font-family:var(--sans);text-align:right;font-size:12.5px}.check-list input[type=checkbox],.check-list input[type=radio]{opacity:0;z-index:1;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.tick{border:1.5px solid var(--text);width:26px;height:26px;color:var(--on-ink);border-radius:7px;flex:none;justify-content:center;align-items:center;display:flex}.tick.round{border-radius:50%}.tick svg{opacity:0;width:16px;height:16px}.tick.dashed{color:var(--text);border-style:dashed}.tick.dashed svg{opacity:1}input:checked+.tick{background:var(--text)}input:checked+.tick svg{opacity:1}input:checked+.tick.round{box-shadow:inset 0 0 0 5px var(--surface)}input:checked~.grow{font-weight:600}input:focus-visible+.tick{outline:3px solid var(--text);outline-offset:2px}input:disabled+.tick{opacity:.55}.inline-new{gap:8px;padding:8px 0;display:flex}.inline-new .btn{flex:none}.settings>.eyebrow{margin-top:26px}.settings .wide,.sheet .primary.wide{border:1.5px solid var(--text);background:0 0;border-radius:24px;min-height:48px;font-size:14px;font-weight:600}.sheet .primary,.sheet .primary.wide{background:var(--text);color:var(--on-ink)}.theme-picker{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.theme-picker button{background:var(--bg);border:1.5px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;min-height:76px;padding:8px 6px 10px;font-size:13px}.theme-picker button[aria-pressed=true]{border:2.5px solid var(--text);font-weight:700}.theme-chip{border-radius:8px;width:100%;height:26px;display:flex;overflow:hidden;box-shadow:0 0 0 1px #8886}.theme-chip i{flex:1}.toggle-row{border:1.5px solid var(--text);border-radius:26px;justify-content:space-between;align-items:center;margin:8px 0 16px;padding:10px 14px 10px 16px;font-size:15px;display:flex}.toggle-row input{flex:none}.toggle-row input[type=checkbox]{appearance:none;background:var(--muted);cursor:pointer;border:0;border-radius:30px;width:48px;height:28px;padding:3px}.toggle-row input[type=checkbox]:before{content:"";background:var(--bg);border-radius:50%;width:22px;height:22px;display:block}.toggle-row input[type=checkbox]:checked{background:var(--text)}.toggle-row input[type=checkbox]:checked:before{transform:translate(20px)}.import-preview{border:1.5px solid var(--text);border-radius:16px;margin:16px 0;padding:16px}.sheet-content>.disclosure{margin-top:8px}.editor-preview .palette-bands{height:110px}.editor-colour{border:1px solid var(--border);border-radius:14px;margin:16px 0;padding:12px}.editor-colour legend{color:var(--muted);font-size:12px}.editor-inputs{grid-template-columns:44px 1fr 104px;gap:8px;display:grid}.editor-inputs input{padding:8px}.editor-actions{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.editor-actions button{background:0 0;min-width:44px;min-height:44px;padding:0}.catalogue-info>p,.catalogue-guide{line-height:1.55}.catalogue-info>h2{margin-top:1.5rem}.catalogue-volumes{gap:1rem;margin:1.25rem 0;display:grid}.catalogue-volumes section{border-bottom:1px solid var(--border);padding-bottom:.75rem}.catalogue-volumes h2,.catalogue-volumes p{margin:0 0 .4rem}.catalogue-guide{color:var(--muted);padding-left:1.25rem}.catalogue-guide li+li{margin-top:.6rem}.toast,.update-notice{bottom:calc(var(--nav-h) + 16px);background:var(--text);color:var(--on-ink);z-index:9999;text-align:center;border-radius:24px;max-width:90vw;padding:12px 20px;font-size:13.5px;font-weight:600;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 5px 30px #0004}.update-notice{bottom:calc(var(--nav-h) + 76px)}.update-notice button{color:var(--text);padding:5px 12px}.startup{max-width:700px;margin:auto;padding:60px 24px}@media (width>=700px){.app{border-left:1px solid var(--border);border-right:1px solid var(--border)}.combinations-list{grid-template-columns:1fr 1fr}.combination-card{height:120px}.group-grid{grid-template-columns:repeat(3,1fr)}.swatch-grid{grid-template-columns:repeat(10,1fr)}.sheet{border-radius:22px;max-height:90dvh;margin:auto}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.chip{position:relative}.chip:after{content:"";position:absolute;inset:-4px 0}.hold-target{display:contents}.hold-target button,.hold-target .combination-card{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.hold-menu{z-index:9000;pointer-events:none;background:#14141473;position:fixed;inset:0}.hold-origin{border:2px solid #fff;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;box-shadow:0 0 0 1.5px #141414}.hold-option{background:var(--surface);height:46px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:23px;align-items:center;gap:12px;padding:0 16px;font-size:15.5px;font-weight:600;display:flex;position:absolute;overflow:hidden;box-shadow:0 4px 16px #0005}.hold-option .grow{text-overflow:ellipsis;overflow:hidden}.hold-option.on{background:var(--text);color:var(--on-ink);transform:scale(1.06)}.hold-tick{border:1.5px solid;border-radius:6px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.hold-option.passed{opacity:.4}html,body{overscroll-behavior:none}.map-full{z-index:3;background:var(--bg);flex-direction:column;display:flex;position:absolute;inset:0}.map-full-bar{min-height:52px;padding:max(6px, env(safe-area-inset-top)) 6px 4px 16px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;font-size:13px;display:flex}.colour-map-wrap.fill{flex:1;min-height:0}.map-full .selected-colour{flex:none;gap:12px;padding:10px 16px}.map-full .selected-colour .btn{flex:none}.lbl.tall{min-height:44px}.lbl.tall button{margin:0}.lbl-actions{align-items:center;gap:4px;display:flex}.lbl .corner-button{justify-content:flex-end;width:44px;padding:0}a.btn{justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.maker-note{padding:4px 16px 0}.maker-note .btn{margin-top:4px}.group-heading{margin:14px 0 0}.group-heading+.check-list{margin-top:6px}.equivalent{border-top:1px solid var(--border);margin-top:8px}.equivalent-head h2{overflow-wrap:anywhere}.equivalent-strip{height:92px}.equivalent-rows{margin:0;padding:0;list-style:none}.equivalent-rows button{border:0;border-bottom:1px solid var(--border);text-align:left;background:0 0;border-radius:0;justify-content:flex-start;gap:12px;width:100%;min-height:60px;padding:8px 16px}.equivalent-rows button:focus-visible{outline-offset:-3px}.equivalent-rows .pair{flex:none;width:68px;height:40px;display:flex}.equivalent-rows .pair i{flex:1}.equivalent-rows .from{color:var(--muted);align-items:center;gap:4px;font-size:12.5px;display:flex}.equivalent-rows strong{overflow-wrap:anywhere;font-size:16px;font-weight:600}.equivalent-rows code{color:var(--muted)}.equivalent-rows small{text-align:right;white-space:nowrap;flex:none}.equivalent-list-head h2{margin:0}.equivalent-list-head>span:first-child{flex-direction:column;gap:2px;min-width:0;padding:6px 0;display:flex}.equivalent-list-head small{color:var(--muted);letter-spacing:0;text-transform:none;font-weight:400}.equivalent-card{content-visibility:auto;contain-intrinsic-size:auto 132px}.equivalent-card>button{text-align:left;background:0 0;border:0;border-radius:0;width:100%;padding:0;display:block}.equivalent-card>button:focus-visible{outline-offset:-4px}.equivalent-card .own-strip{height:92px;display:block}.equivalent-caption{justify-content:space-between;align-items:baseline;gap:12px;padding:5px 16px 8px;font-size:13.5px;font-weight:600;display:flex}.equivalent-caption small{color:var(--muted);flex:none;font-weight:400}.equivalent-hero .own-strip{height:220px}.swap-block{border-top:1px solid var(--border);margin-top:12px;padding:10px 16px 0}.swap-source{align-items:center;gap:12px;display:flex}.swap-source small{color:var(--muted)}.swap-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.swap-options label{cursor:pointer;flex-direction:column;gap:3px;min-width:0;display:flex;position:relative}.swap-options input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.swap-options .square{aspect-ratio:1;width:100%;min-height:44px;box-shadow:inset 0 0 0 1px var(--border);display:block}.swap-options input:checked+.square{outline:2.5px solid var(--text);outline-offset:2px}.swap-options input:focus-visible+.square{outline:3px solid var(--text);outline-offset:4px}.swap-name{overflow-wrap:anywhere;margin-top:4px;font-size:12.5px;font-weight:600;line-height:1.2}.swap-options small{color:var(--muted);font-size:12px}.equivalent-card .own-strip,.equivalent-hero .own-strip{position:relative}.equivalent-card .own-strip:after,.equivalent-hero .own-strip:after{content:"";box-shadow:inset 0 0 0 1px var(--border);pointer-events:none;position:absolute;inset:0}.swap-source .tiny-swatch{box-shadow:inset 0 0 0 1px var(--border)}.palette-bands.cornered>span{container-type:size}.palette-bands .fold{aspect-ratio:1;clip-path:polygon(0 0,100% 0,0 100%);width:min(clamp(18px,33cqh,28px),50cqw);position:absolute;top:0;left:0}.range-list li:not(.range-all) label{padding-left:22px}.range-list .range-all .grow{font-weight:600}.tick.partial{background:var(--text)}.tick.partial svg{display:none}.tick.partial:after{content:"";background:var(--on-ink);border-radius:2px;width:12px;height:2.5px}.check-list input:focus-visible+.tick{outline:3px solid var(--text);outline-offset:3px}.picker-done{background:var(--surface);padding:10px 0 12px;position:sticky;bottom:0}
