:root{--peat:#161b19;--panel:#161b19d1;--stone:#2b332f;--line:#dce2d829;--fog:#dde2da;--muted:#9ca69d;--heather:#c29bc7;--gorse:#d8b04e;--display:"EB Garamond", "Iowan Old Style", Georgia, serif;--ui:-apple-system, "Segoe UI", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{background:var(--peat);height:100%;color:var(--fog);font:14px/1.4 var(--ui);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#view{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#labels{pointer-events:none;position:fixed;inset:0}.tag{text-align:center;white-space:nowrap;text-shadow:0 1px 3px #000000b3;position:absolute;transform:translate(-50%,-100%)}.tag b{font:400 1.25rem/1.1 var(--display);color:#fff;display:block}.tag span{color:#e6e9e3;opacity:.9;font-size:.78rem}.tag i{color:var(--gorse);font-size:.72rem;font-style:normal;display:block}#top{padding:calc(10px + var(--safe-t)) calc(16px + var(--safe-r)) 10px calc(16px + var(--safe-l));pointer-events:none;background:linear-gradient(#101412b3,#10141200);align-items:center;gap:16px;display:flex;position:fixed;top:0;left:0;right:0}#top>*{pointer-events:auto}.brand{align-items:baseline;gap:10px;display:flex}.brand h1{font:400 1.7rem/1 var(--display);letter-spacing:.02em;margin:0}.brand span{font:italic 400 1.05rem var(--display);color:var(--muted)}#stats{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;margin-left:auto;font:12px/1.3 ui-monospace,SF Mono,Menlo,monospace}.back{color:var(--fog);border:1px solid var(--line);background:var(--panel);border-radius:8px;align-items:center;min-height:44px;padding:10px 12px;text-decoration:none;display:inline-flex}#panel{left:calc(12px + var(--safe-l));bottom:calc(12px + var(--safe-b));width:min(380px,100vw - 24px);max-height:calc(100dvh - 90px - var(--safe-t) - var(--safe-b));background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);border-radius:12px;flex-direction:column;display:flex;position:fixed}#panel-body{touch-action:pan-y;flex-direction:column;gap:12px;padding:4px 14px 14px;display:flex;overflow-y:auto}#panel.collapsed #panel-body{display:none}.toggle{all:unset;cursor:pointer;min-height:44px;font:400 1.1rem var(--display);justify-content:space-between;align-items:center;padding:0 14px;display:flex}.toggle:after{content:"▾";color:var(--muted)}#panel.collapsed .toggle:after{content:"▴"}.group{flex-direction:column;gap:6px;display:flex}.group.row{flex-flow:wrap;gap:6px 14px}.group h2{font:600 .72rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}.seg{gap:4px;display:flex}.seg.wrap{flex-wrap:wrap}.seg button{border:1px solid var(--line);background:var(--stone);min-width:44px;min-height:40px;color:var(--fog);font:500 .9rem var(--ui);cursor:pointer;border-radius:8px;flex:auto;padding:0 10px}.seg button[aria-pressed=true]{background:var(--heather);color:#1b1520;border-color:var(--heather)}.seg button:focus-visible,.toggle:focus-visible,.back:focus-visible{outline:2px solid var(--gorse);outline-offset:2px}.check{cursor:pointer;align-items:center;gap:8px;min-height:44px;display:inline-flex}.check input{width:20px;height:20px;accent-color:var(--heather)}#loading{font:italic 400 1.4rem var(--display);color:var(--muted);background:var(--peat);place-items:center;transition:opacity .4s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#paused{background:#0a0c0b8c;place-items:center;display:grid;position:fixed;inset:0}#paused div{text-align:center}#paused p{font:400 2rem var(--display);margin:0 0 12px}#paused button{background:var(--heather);color:#1b1520;min-height:48px;font:600 1rem var(--ui);border:0;border-radius:8px;padding:0 28px}@media (max-width:600px){#panel{width:auto;max-height:46dvh;padding-bottom:var(--safe-b);border-radius:12px 12px 0 0;bottom:0;left:0;right:0}#stats,.brand span{display:none}.seg button{min-height:44px;padding:0 8px;font-size:.85rem}}@media (max-height:500px){#panel{width:min(330px,45vw);max-height:calc(100dvh - 70px)}#stats{display:none}}.seg button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}.tag i{text-overflow:ellipsis;max-width:26vw;margin:0 auto;overflow:hidden}
