:root{--bg:#000;--surface:#0a0a0a;--surface-2:#111;--text:#f4f4f5;--muted:#8a8a93;--line:#1c1c1f;--sans:"Outfit", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--header-h:68px;--panel-w:320px;--hex:polygon(50% 0%, 93.3% 25%, 93.3% 75%, 50% 100%, 6.7% 75%, 6.7% 25%);--spectrum:conic-gradient(from 0deg, #ff0040, #ff8000, #fe0, #40ff00, #00e5a0, #00a0ff, #2040ff, #8000ff, #ff00c8, #ff0040)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;margin:0}body{background-color:#000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cpath fill='none' stroke='%23141416' stroke-width='0.7' d='M14 0.6 L27.2 8.2 V23.4 L14 31 L0.8 23.4 V8.2 Z M14 31 V48.4 M0.8 39.8 L14 31 L27.2 39.8'/%3E%3C/svg%3E")}#app{grid-template:"header header" auto "stage panel" 1fr / 1fr var(--panel-w);height:100%;display:grid}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:3;background:#000000db;grid-area:header;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px 12px;display:flex;position:relative}.header:after{content:"";background:var(--spectrum);height:1px;position:absolute;bottom:0;left:0;right:0}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-logo{object-fit:contain;width:44px;height:44px;animation:18s linear infinite logo-sweep}.brand-text h1{letter-spacing:-.03em;margin:0;font-size:18px;font-weight:600}.brand-text p{color:var(--muted);letter-spacing:.04em;margin:2px 0 0;font-size:12px}.search{flex-wrap:wrap;flex:1;gap:8px;max-width:460px;display:flex;position:relative}.search input{border:1px solid var(--line);background:var(--surface);min-width:0;height:38px;color:var(--text);font:14px/1 var(--mono);border-radius:8px;flex:1;padding:0 12px}.search input:focus{border-color:#666;outline:none;box-shadow:0 0 0 3px #ffffff0f}.search input.is-invalid{border-color:#ff3b5c}.search button,.map-controls button,.hex-row button,.step button,.panel-toggle{border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-family:var(--sans);cursor:pointer}.search button{border-radius:8px;height:38px;padding:0 14px;font-weight:500}.search button:disabled{opacity:.6;cursor:wait}.search-status{color:#ff6b81;flex-basis:100%;margin:0;font-size:11px}.search-hint{color:var(--muted);letter-spacing:.02em;flex-basis:100%;margin:0;font-size:11px}.search-examples{flex-wrap:wrap;gap:6px;display:flex}.search-examples button{height:24px;color:var(--muted);border-radius:999px;padding:0 9px;font-size:11px}.search button:hover,.map-controls button:hover,.hex-row button:hover,.step button:hover{background:#18181b;border-color:#3a3a40}.stage{background:#000;grid-area:stage;min-width:0;min-height:0;position:relative}#map{cursor:grab;touch-action:none;width:100%;height:100%;display:block}#map:active{cursor:grabbing}.map-controls{flex-direction:column;gap:6px;display:flex;position:absolute;top:14px;left:14px}.map-controls button{border-radius:8px;width:36px;height:36px;font-size:18px;line-height:1}.map-controls #reset-view{width:auto;padding:0 10px;font-size:12px}.footnote{color:var(--muted);letter-spacing:.02em;pointer-events:none;text-shadow:0 1px 8px #000;margin:0;font-size:11px;position:absolute;bottom:12px;left:14px}.panel{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;grid-area:panel;min-height:0;display:flex;overflow:auto}.panel-toggle{display:none}.panel-body{padding:22px 18px 28px}.swatch-wrap{width:168px;height:168px;margin:4px auto 20px;position:relative}.spectrum-ring,.swatch,.peek-swatch{clip-path:var(--hex)}.spectrum-ring{background:var(--spectrum);animation:12s linear infinite spin;position:absolute;inset:0}.swatch{background:#000;position:absolute;inset:7px}.hex-row{justify-content:center;align-items:center;gap:10px;margin-bottom:18px;display:flex}.hex-row code,#peek-hex,#hex-value{font-family:var(--mono);letter-spacing:.02em;font-size:20px;font-weight:500}.hex-row button{border-radius:7px;height:32px;padding:0 12px;font-size:13px}.values{gap:8px;margin:0 0 16px;display:grid}.values div{grid-template-columns:40px 1fr;align-items:baseline;gap:10px;display:grid}.values dt{color:var(--muted);letter-spacing:.08em;margin:0;font-size:11px}.values dd{font-family:var(--mono);margin:0;font-size:13px}.steppers{gap:8px;margin-bottom:18px;display:grid}.step{grid-template-columns:18px 32px 1fr 32px;align-items:center;gap:8px;display:grid}.step span{color:var(--muted);font-size:12px;font-weight:500}.step code{text-align:center;font-family:var(--mono);font-size:13px}.step button{border-radius:7px;height:32px}.neighbors-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:11px}.neighbors{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.neighbor{aspect-ratio:1;cursor:pointer;border:1px solid #000;border-radius:4px;padding:0}.neighbor.is-active{outline-offset:1px;outline:2px solid #fff}@keyframes logo-sweep{to{filter:hue-rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=860px){#app{grid-template:"header""stage"1fr/1fr}.header{flex-wrap:wrap;height:auto;padding:10px 12px}.search{flex-basis:100%;max-width:none}.panel{z-index:4;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;max-height:min(78vh,640px);transition:transform .28s;position:fixed;bottom:0;left:0;right:0;transform:translateY(calc(100% - 64px))}.panel.is-open{transform:translateY(0)}.panel-toggle{border:0;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:10px;width:100%;height:64px;padding:0 16px;display:flex}.peek-swatch{background:#000;width:28px;height:28px}.panel-chevron{border-bottom:2px solid #aaa;border-right:2px solid #aaa;width:8px;height:8px;margin-left:auto;transition:transform .2s;transform:rotate(45deg)}.panel.is-open .panel-chevron{transform:rotate(225deg)}.footnote{bottom:76px}}@media (width<=520px){.brand-text h1{font-size:16px}.map-controls{top:auto;bottom:80px}}
