:root{--paper:#f5f3ed;--panel:#fffefa;--ink:#232a29;--muted:#626963;--rule:#d9dcd3;--accent:#a13c20;--soft:#f1e3d9;--ok:#276545;font-family:'Avenir Next',Avenir,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button,input,select,textarea{border:1px solid var(--rule);border-radius:5px;color:var(--ink);background:var(--panel)}button{min-height:44px;padding:9px 13px}button:hover:not(:disabled){border-color:var(--accent)}input,select,textarea{padding:10px;min-height:44px;max-width:100%}.skip{position:fixed;left:10px;top:-100px;z-index:100;background:var(--panel);padding:12px}.skip:focus{top:10px}.masthead{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--rule)}.header-inner{max-width:1600px;margin:auto;padding:15px 30px 9px;display:flex;align-items:center;gap:34px}.brand{text-decoration:none;font-family:Georgia,serif;font-size:25px;letter-spacing:-.8px;white-space:nowrap}.brand small{font-family:monospace;color:var(--accent);font-size:12px;letter-spacing:0;margin-left:8px}.main-nav{display:flex;flex-wrap:wrap;gap:3px 5px}.main-nav a{display:block;text-decoration:none;padding:10px 12px;min-height:44px;border-radius:5px;font-size:14px}.main-nav a[aria-current=page]{background:var(--ink);color:white}.main-nav a:hover{background:var(--soft);color:var(--ink)}.layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:195px minmax(0,1fr);gap:32px;padding:30px}.sidebar{position:sticky;top:100px;align-self:start;max-height:calc(100dvh - 130px);overflow:auto}.sidebar h2{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;margin:8px 0 15px;color:var(--muted)}.shape-link{display:flex;gap:8px;align-items:center;text-decoration:none;font-size:13px;padding:9px 8px;min-height:38px;border-radius:4px}.shape-link:hover,.shape-link[aria-current=true]{background:var(--soft);color:var(--accent)}.shape-link img{width:22px;height:22px}.sidebar p{font-size:12px;color:var(--muted);line-height:1.7;margin-top:24px}main{min-width:0}.page-head{display:flex;gap:20px;justify-content:space-between;align-items:flex-end;margin:0 0 24px}.eyebrow{font-size:11px;letter-spacing:1.7px;text-transform:uppercase;color:var(--accent);margin:0 0 9px}h1{font-family:Georgia,serif;font-size:clamp(30px,4vw,46px);font-weight:normal;letter-spacing:-1.5px;margin:0 0 9px}h2{font-weight:600}p{line-height:1.6}.intro{font-size:14px;color:var(--muted);max-width:650px;margin:0}.notation{font-family:monospace;white-space:nowrap;font-size:12px;color:var(--muted);border:1px solid var(--rule);padding:10px 14px;border-radius:4px}.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:16px 0;margin:0 0 14px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.filters label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px}.filters label:first-child{flex:1;min-width:145px}.filters input{width:100%;text-transform:none;letter-spacing:0}.filters select{min-width:160px;max-width:100%}.count{font-size:12px;margin-left:auto;color:var(--muted);align-self:center;white-space:nowrap}.glyph-section{scroll-margin-top:110px;margin-bottom:28px}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--rule);padding-bottom:9px;margin-bottom:13px}.section-title h2{font-size:16px;margin:0}.section-title span{font-family:monospace;font-size:11px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.glyph-card{position:relative;background:var(--panel);border:1px solid var(--rule);border-radius:6px;overflow:hidden;min-width:0}.glyph-open{width:100%;border:0;background:transparent;padding:16px 8px 12px;display:flex;align-items:center;flex-direction:column;border-radius:0;min-height:170px}.glyph-open:hover{background:#fff}.full-glyph{width:86px;height:86px;object-fit:contain;margin:8px 0 13px}.glyph-open code{font-size:18px;font-weight:600}.glyph-open small{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin-top:4px}.silhouette{position:absolute;width:23px;height:23px;top:8px;left:8px;pointer-events:none}.favorite{position:absolute;top:0;right:0;min-width:44px;min-height:44px;padding:7px;background:transparent;border:0;color:var(--muted);font-size:20px;z-index:1}.favorite[aria-pressed=true]{color:var(--accent)}.empty{padding:45px 10px;border:1px dashed var(--rule);text-align:center}.empty h2{font-family:Georgia,serif;font-weight:normal}.empty p{color:var(--muted)}.empty a{display:inline-block;margin:5px}.site-footer{border-top:1px solid var(--rule);margin-top:35px;padding:20px 0;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:12px}.site-footer nav{display:flex;gap:18px;flex-wrap:wrap}.top-link{position:static;margin-left:auto;flex-shrink:0;white-space:nowrap;z-index:25;padding:11px 15px;background:var(--ink);color:white;border-radius:6px;text-decoration:none;font-size:12px;min-height:44px}.dialog{max-width:min(540px,calc(100vw - 24px));width:540px;border:1px solid var(--rule);border-radius:10px;padding:25px;background:var(--panel);color:var(--ink);max-height:calc(100dvh - 24px);overflow:auto}.dialog::backdrop{background:#1d2521aa}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-family:monospace;font-size:30px;margin:0}.dialog-head button{font-size:20px}.large-pair{display:flex;justify-content:center;gap:18px;margin:25px 0}.large-pair figure{margin:0;text-align:center}.large-pair img{display:block;width:150px;height:150px;background:white}.large-pair figcaption{font-size:11px;color:var(--muted);padding:8px}.dialog .meta{font-size:13px;color:var(--muted)}.dialog-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;margin-top:18px}.dialog-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.primary{background:var(--ink);color:white;border-color:var(--ink)}.primary:hover:not(:disabled){background:var(--accent);color:white}.workbench{border:1px solid var(--rule);background:var(--panel);padding:22px;border-radius:8px;margin-bottom:24px}.mode-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.mode-row label{display:flex;align-items:center;gap:7px;font-size:13px}.mode-row input[type=radio]{min-height:20px;width:18px;accent-color:var(--accent)}.mode-row .star-input{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.slot{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 6px;gap:8px;border:1px solid var(--rule);background:white}.slot[aria-pressed=true]{border:2px solid var(--accent);background:#fff9f4}.slot img{height:52px;width:52px}.slot strong{font-family:monospace;font-size:17px}.slot small{font-size:10px;color:var(--muted)}.compose-art{display:grid;grid-template-columns:64px 64px;width:128px;background:white;margin-top:20px}.compose-art img{width:64px;height:64px;display:block}.compose-name{font-family:monospace;font-size:clamp(17px,3vw,30px);letter-spacing:-1px;margin:20px 0 7px;overflow-wrap:anywhere}.compose-status{font-size:13px;color:var(--muted);min-height:24px}.compose-status[data-state=ok]{color:var(--ok)}.compose-status[data-state=error]{color:var(--accent)}.bench-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.result-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:14px}.planet-result{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--rule);background:white;border-radius:5px}.planet-result img{width:32px;height:32px}.planet-result code{font-size:13px}.planet-result button{margin-left:auto;min-width:44px;padding:7px}.planet-art{display:grid;grid-template-columns:32px 32px;gap:0}.saved-compositions{margin-top:28px}.notice{color:var(--muted);font-size:12px}.api-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.api-status::before{content:'';width:6px;height:6px;border-radius:100%;background:#9b9b93}.api-status[data-online=true]::before{background:var(--ok)}.api-docs{max-width:850px}.api-docs pre{padding:16px;background:var(--panel);border:1px solid var(--rule);border-radius:5px;overflow:auto;font-size:12px}.api-docs h2{font-family:Georgia,serif;font-size:25px;margin-top:28px}.api-docs table{width:100%;border-collapse:collapse;font-size:13px}.api-docs td,.api-docs th{padding:12px 5px;text-align:left;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}.api-docs code{overflow-wrap:anywhere}#toast{position:fixed;bottom:20px;left:20px;max-width:calc(100vw - 110px);z-index:80;background:var(--ink);color:white;border-radius:5px;padding:12px 16px;font-size:13px}.storage-warning{font-size:12px;color:var(--accent)}[hidden]{display:none!important}@media(max-width:1050px){.notation{display:none}.header-inner{gap:20px}.layout{gap:22px;padding:24px;grid-template-columns:170px minmax(0,1fr)}.main-nav a{padding:10px 9px}}@media(max-width:760px){.header-inner{display:block;padding:12px 15px 7px}.brand{font-size:24px}.main-nav{margin-top:7px;gap:2px}.main-nav a{font-size:12px;padding:9px 8px;min-height:38px}.layout{display:block;padding:21px 15px}.sidebar{position:static;max-height:none;margin-bottom:24px}.sidebar h2,.sidebar p{display:none}.sidebar nav{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:thin}.shape-link{flex-shrink:0;border:1px solid var(--rule);min-height:44px}.shape-link img{width:19px;height:19px}.page-head{margin-bottom:20px}.grid{grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:9px}.filters select{min-width:0;width:100%}.filters label{flex:1}.count{width:100%;margin:0}.glyph-section{scroll-margin-top:155px}.workbench{padding:14px}.mode-row .star-input{margin-left:0;width:100%}.mode-row .star-input input{min-width:0;width:150px}.slots{gap:5px}.slot{min-height:113px;padding:8px 3px}.slot small{font-size:9px}.slot img{width:43px;height:43px}.large-pair{gap:10px}.large-pair img{width:min(32vw,150px);height:min(32vw,150px)}.dialog{padding:18px}.site-footer{padding-bottom:65px}.api-docs table{font-size:11px}}@media(max-width:760px){.top-link{position:absolute;right:15px;top:9px;font-size:11px;min-height:36px;padding:9px 10px}.main-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.main-nav a{text-align:center;min-height:44px}.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}.filters label{min-width:0}.filters label:first-child{grid-column:1/-1;min-width:0}.filters .count{grid-column:1/-1}.filters select{font-size:12px;padding:10px 7px}.filters #reset{align-self:end}.glyph-section{scroll-margin-top:170px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
