:root{--ink:#3b2f27;--ink-soft:#7a6b5d;--paper:#fbf8f2;--panel:#fffcf6f0;--edge:#e3d9c9;--shadow:0 6px 18px #3c281424, 0 1px 3px #3c28141f;--spring:cubic-bezier(.34, 1.56, .64, 1);--font:ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--r1:#e6e2b0;--r2:#f0cc7c;--r3:#eaa85b;--r4:#dc874e;--r5:#c66342;--r6:#a2423b}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font:14px/1.4 var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:#e3dccf;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}kbd{border:1px solid var(--edge);min-width:1.6em;font:600 12px/1.5 var(--font);text-align:center;background:#fff;border-bottom-width:2px;border-radius:5px;padding:0 .35em;display:inline-block}.muted{color:var(--ink-soft)}#map{cursor:none;touch-action:none;display:block;position:fixed;inset:0}body.picking #map{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg stroke='%23fff' stroke-width='4.5'%3E%3Cpath d='M3 21l1.5-4.5L13 8l3 3-8.5 8.5z M14 7l3-3a2.1 2.1 0 0 1 3 3l-3 3z M12 6l6 6'/%3E%3C/g%3E%3Cg stroke='%23332b22' stroke-width='2' fill='%23fff'%3E%3Cpath d='M3 21l1.5-4.5L13 8l3 3-8.5 8.5z M14 7l3-3a2.1 2.1 0 0 1 3 3l-3 3z M12 6l6 6'/%3E%3C/g%3E%3C/svg%3E") 3 21,crosshair}body.pointing #map{cursor:pointer}body.panning #map,body.space #map{cursor:grab}body.panning #map{cursor:grabbing}#topbar{pointer-events:none;justify-content:space-between;gap:12px;display:flex;position:fixed;top:12px;left:12px;right:12px}.pill{pointer-events:auto;background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;align-items:center;gap:10px;min-width:0;padding:6px 8px 6px 12px;display:flex}.brand .name{letter-spacing:.01em;font-weight:800}.brand .place{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;max-width:34vw;overflow:hidden}.logo{align-items:flex-end;gap:2px;height:18px;display:inline-flex}.logo i{border-radius:1.5px;width:5px}.logo i:first-child{background:var(--r2);height:7px}.logo i:nth-child(2){background:var(--r4);height:12px}.logo i:nth-child(3){background:var(--r6);height:18px}button.ghost{color:var(--ink-soft);background:0 0;border:0;border-radius:8px;padding:4px 8px}button.ghost:hover{color:var(--ink);background:#0000000d}button.ghost.out{letter-spacing:.02em;font-size:12px;font-weight:600}button.ghost.out:disabled{opacity:.35;cursor:default;background:0 0}button.icon{width:32px;height:32px;color:var(--ink-soft);background:0 0;border:0;border-radius:9px;place-items:center;font-size:16px;font-weight:800;display:grid}button.icon:hover{color:var(--ink);background:#0000000d}button.icon svg{width:20px;height:20px}button.icon:disabled{opacity:.3;cursor:default;background:0 0}button.icon.toggle[aria-pressed=false]{opacity:.45}button.icon.toggle[aria-pressed=true]{color:var(--ink)}#controls{pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:50%;left:12px;transform:translateY(-50%)}#controls .pill{flex-direction:column;gap:2px;padding:4px}#controls button.icon{border-radius:11px;width:40px;height:40px}#controls button.icon:active:not(:disabled){transform:scale(.92)}#brush-size{--c:var(--ink-soft);place-items:center;width:40px;height:30px;display:grid}#brush-size i{border:2px solid var(--c);background:color-mix(in srgb, var(--c) 25%, transparent);width:10px;height:10px;transition:width .16s var(--spring), height .16s var(--spring), border-color .16s;border-radius:50%;display:block}button.disputes{color:#d6363c;background:#fbe4e2;border:0;border-radius:9px;align-items:center;gap:4px;height:28px;padding:0 9px 0 6px;font-weight:800;display:flex}button.disputes[hidden]{display:none}button.disputes:hover{background:#f8d3d0}button.disputes:active{transform:scale(.94)}button.disputes svg{width:18px;height:18px}button.disputes span{color:#8a2c1c;font-variant-numeric:tabular-nums}button.disputes.boing svg{animation:boing .36s var(--spring)}button.disputes.todo{color:#e5961a;background:#fbeedc}button.disputes.todo:hover{background:#f8e3c4}button.disputes.todo span{color:#8a5a06}#photo{background:var(--panel);width:320px;max-width:calc(100vw - 24px);box-shadow:var(--shadow);z-index:5;border-radius:14px;position:fixed;top:64px;right:12px;overflow:hidden}#photo[hidden]{display:none}#photo header{justify-content:space-between;align-items:center;padding:8px 8px 6px 12px;display:flex}#photo h4{margin:0;font-size:13.5px}#photo .body{padding:0 12px 10px}#photo img{aspect-ratio:4/3;object-fit:cover;background:#e8e2d6;border-radius:10px;width:100%;display:block}#photo p{margin:8px 0 0;font-size:12.5px}#photo .links{flex-wrap:wrap;gap:6px;display:flex}#photo .links a{color:inherit;background:#f1ebe0;border-radius:8px;padding:4px 9px;font-weight:600;text-decoration:none}#photo .links a:hover{background:#e8e0d0}#hint{background:var(--panel);max-width:300px;box-shadow:var(--shadow);pointer-events:none;opacity:0;border-radius:9px;padding:6px 10px;font-size:12.5px;transition:opacity .12s;position:fixed;top:0;left:0}#hint.show{opacity:1}#mix{width:min(320px,30vw)}#mix .bar{background:#efe9de;border-radius:6px;height:12px;display:flex;overflow:hidden;box-shadow:inset 0 1px 2px #0000001f}#mix .seg{width:0;height:100%;transition:width .52s var(--spring)}#palette{background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:20px;gap:10px;max-width:calc(100vw - 24px);padding:10px 12px 14px;display:flex;position:fixed;bottom:18px;left:50%;overflow-x:auto;transform:translate(-50%)}#palette .group{align-items:flex-end;gap:6px;display:flex;position:relative}#palette .group+.group{border-left:1.5px dashed var(--edge);padding-left:10px}#palette .ladder{gap:4px;padding-bottom:8px}.ladder-ramp{background:linear-gradient(90deg, var(--r1), var(--r2), var(--r3), var(--r4), var(--r5), var(--r6));border-radius:2px;height:4px;position:absolute;bottom:0;left:2px;right:2px}.tile{--c:#fff;--side:3px;background:var(--c);color:#342218c7;width:46px;height:46px;box-shadow:0 var(--side) 0 color-mix(in srgb, var(--c) 70%, #2b1a10);transition:transform .18s var(--spring), box-shadow .18s var(--spring);border:0;border-radius:12px;flex:none;place-items:center;display:grid;position:relative;transform:translateY(0)}.tile svg{width:28px;height:28px}.tile .key{font:700 9.5px/1 var(--font);opacity:.6;position:absolute;top:2px;right:4px}.tile:hover{transform:translateY(-2px)}.tile.on{box-shadow:0 calc(var(--side) + 6px) 0 color-mix(in srgb, var(--c) 70%, #2b1a10), 0 0 0 3px #fff, 0 10px 18px #3c281440;transform:translateY(-6px)}.tile.boing svg{animation:boing .36s var(--spring)}@keyframes boing{0%{transform:scale(1)}35%{transform:scale(1.18)translateY(-2px)}70%{transform:scale(.95)}to{transform:scale(1)}}.tile[data-tool=R1]{--side:2px}.tile[data-tool=R2]{--side:3px}.tile[data-tool=R3]{--side:4px}.tile[data-tool=R4]{--side:5px}.tile[data-tool=R5]{--side:6px}.tile[data-tool=R6]{--side:8px}.tile[data-tool=UP],.tile[data-tool=DOWN],.tile[data-tool=AGREE],.tile[data-tool=ERASE]{color:var(--c);background:#fff;box-shadow:0 3px #ddd2c1}.tile[data-tool=UP].on,.tile[data-tool=DOWN].on,.tile[data-tool=AGREE].on,.tile[data-tool=ERASE].on{box-shadow:0 9px 0 #ddd2c1, 0 0 0 3px var(--c), 0 10px 18px #3c281440}#tooltip{z-index:10;color:#fff;pointer-events:none;opacity:0;transition:opacity .12s, transform .16s var(--spring);white-space:nowrap;background:#3b2f27;border-radius:10px;padding:7px 10px;font-size:13px;position:fixed;transform:translateY(4px)}#tooltip.show{opacity:1;transform:translateY(0)}#tooltip .kbd{background:#ffffff2e;border-radius:4px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;display:inline-block}#tooltip .tags{opacity:.75;margin-top:2px;font:12px/1.3 ui-monospace,SF Mono,Menlo,monospace}#attribution{color:var(--ink-soft);background:#fffcf6b3;border-radius:6px;padding:1px 6px;font-size:11px;position:fixed;bottom:6px;right:8px}#attribution a{color:inherit}#busy{background:var(--panel);box-shadow:var(--shadow);color:var(--ink-soft);opacity:0;pointer-events:none;border-radius:10px;padding:5px 11px;font-size:12px;transition:opacity .4s;position:fixed;top:64px;left:12px}#busy.show{opacity:1;transition-delay:.3s}#toast{background:var(--panel);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .18s, transform .26s var(--spring);border-radius:12px;max-width:min(560px,90vw);padding:8px 14px;position:fixed;top:64px;left:50%;transform:translate(-50%,-12px)}#toast.show{opacity:1;transform:translate(-50%)}#toast.error{color:#8a2c1c;background:#fbe9e4}#help{background:var(--panel);width:330px;max-height:calc(100vh - 170px);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .16s, transform .24s var(--spring);border-radius:16px;padding:14px 16px;position:fixed;top:64px;right:12px;overflow:auto;transform:translate(16px)}#help.show{opacity:1;pointer-events:auto;transform:translate(0)}#help h3{margin:0 0 6px}#help p{margin:0 0 10px}#help dl{grid-template-columns:auto minmax(110px,1fr);gap:6px 12px;margin:0 0 10px;display:grid}#help dt{max-width:170px}#help dd{color:var(--ink-soft);margin:0}#start,#loading{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;pointer-events:none;background:#e3dccf8c;place-items:center;transition:opacity .22s;display:grid;position:fixed;inset:0}#start.show,#loading.show{opacity:1;pointer-events:auto}#start .card,#loading .card{background:var(--paper);text-align:center;width:min(460px,100vw - 32px);transition:transform .32s var(--spring);border-radius:22px;padding:26px 26px 20px;position:relative;transform:translateY(10px)scale(.98);box-shadow:0 20px 50px #3c281440}#start.show .card,#loading.show .card{transform:none}#start .close{font-size:20px;line-height:1;position:absolute;top:10px;right:10px}#start h1{letter-spacing:-.01em;margin:8px 0 2px;font-size:30px;font-weight:900}#start .sub{color:var(--ink-soft);margin:0 0 18px}.hero{justify-content:center;align-items:flex-end;gap:5px;height:56px;display:flex}.hero i{transform-origin:bottom;width:22px;animation:rise .7s var(--spring) both;border-radius:4px;box-shadow:0 4px #2b1a1040}.hero i:first-child{background:var(--r1);height:12px;animation-delay:60ms}.hero i:nth-child(2){background:var(--r2);height:18px;animation-delay:.12s}.hero i:nth-child(3){background:var(--r3);height:24px;animation-delay:.18s}.hero i:nth-child(4){background:var(--r4);height:31px;animation-delay:.24s}.hero i:nth-child(5){background:var(--r5);height:40px;animation-delay:.3s}.hero i:nth-child(6){background:var(--r6);height:54px;animation-delay:.36s}@keyframes rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.hero i,.tile.boing svg{animation:none}*{transition-duration:1ms!important}}button.primary{background:var(--r4);color:#fff;width:100%;transition:transform .14s var(--spring), box-shadow .14s var(--spring);border:0;border-radius:14px;padding:12px 16px;font-size:16px;font-weight:800;box-shadow:0 5px #a8603a}button.primary:hover{transform:translateY(-2px);box-shadow:0 7px #a8603a}button.primary:active{transform:translateY(3px);box-shadow:0 2px #a8603a}.or{color:var(--ink-soft);margin:16px 0 8px;font-size:13px}#search{gap:6px;display:flex}#search input{border:1.5px solid var(--edge);min-width:0;font:inherit;color:inherit;-webkit-user-select:text;user-select:text;background:#fff;border-radius:12px;flex:1;padding:10px 12px}#search input:focus{border-color:var(--r3);outline:none}#search button{border:1.5px solid var(--edge);background:#fff;border-radius:12px;padding:8px 14px;font-weight:700}#results{text-align:left;max-height:170px;margin:8px 0 0;padding:0;list-style:none;overflow:auto}#results li{cursor:pointer;border-radius:9px;padding:7px 10px;font-size:13px}#results li:hover,#results li:focus{background:#f3ece0;outline:none}#results li.muted{cursor:default;background:0 0}button.link{color:var(--ink);background:0 0;border:0;padding:0;text-decoration:underline}code{font:12px ui-monospace,Menlo,monospace}#loading .card{text-align:left;width:280px}#loading ul{margin:14px 0 0;padding:0;list-style:none}#loading li{color:var(--ink-soft);padding:3px 0 3px 24px;transition:color .16s;position:relative}#loading li:before{content:"";background:var(--edge);width:9px;height:9px;transition:background .16s, transform .24s var(--spring);border-radius:3px;position:absolute;top:8px;left:4px}#loading li.now{color:var(--ink);font-weight:700}#loading li.now:before{background:var(--r3);transform:scale(1.25)}#loading li.done:before{background:var(--r5)}.spinner{justify-content:center;align-items:flex-end;gap:5px;height:30px;display:flex}.spinner i{border-radius:3px;width:12px;animation:.9s ease-in-out infinite bob}.spinner i:first-child{background:var(--r2);height:12px}.spinner i:nth-child(2){background:var(--r4);height:20px;animation-delay:.15s}.spinner i:nth-child(3){background:var(--r6);height:28px;animation-delay:.3s}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}#drop{border:3px dashed var(--r4);color:var(--r5);opacity:0;pointer-events:none;background:#fff6e899;border-radius:24px;place-items:center;font-size:24px;font-weight:800;transition:opacity .12s;display:grid;position:fixed;inset:12px}body.dropping #drop{opacity:1}#labels{pointer-events:none;position:fixed;inset:0;overflow:hidden}.label{-webkit-line-clamp:2;line-clamp:2;color:#4a3a2c;text-align:center;overflow-wrap:anywhere;text-shadow:0 0 2px #fbf8f2,0 0 3px #fbf8f2,0 0 5px #fbf8f2e6;-webkit-box-orient:vertical;width:max-content;font-size:12px;font-weight:650;line-height:1.2;display:-webkit-box;position:absolute;top:0;left:0;overflow:hidden}.label.quest{text-align:left}.label[hidden]{display:none}#badges{pointer-events:none;position:fixed;inset:0;overflow:hidden}.badge,.badge-sample{color:#fff;background:#e5961a;border:2px solid #fff;border-radius:50%;place-items:center;width:18px;height:18px;padding:0;font-size:11px;font-weight:800;line-height:1;display:inline-grid}.badge{pointer-events:auto;position:absolute;top:-9px;left:-9px;box-shadow:0 1px 3px #3c281459}.badge:hover,.badge.open{background:#c27a06}.badge[hidden]{display:none}.badge-sample{vertical-align:-3px;border-color:#0000}.badge-sample.unsure{background:#e5961a}#issue{background:var(--panel);max-width:280px;box-shadow:var(--shadow);opacity:0;pointer-events:none;-webkit-user-select:text;user-select:text;border-radius:12px;padding:9px 12px;font-size:13px;transition:opacity .12s;position:fixed;top:0;left:0}#issue.show{opacity:1;pointer-events:auto}#issue p{margin:0 0 6px}#issue code{background:#3b2f2712;border-radius:4px;padding:0 3px;font:12px ui-monospace,SF Mono,Menlo,monospace}#issue a{color:#2a6fb0;font-weight:600}#issue button{color:#2a6fb0;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}#issue .choices{grid-template-columns:1fr 1fr;gap:4px;margin:2px 0 8px;display:grid}#issue .choices button{color:inherit;text-align:left;background:#3b2f270d;border-radius:7px;align-items:center;gap:6px;padding:4px 8px 4px 5px;font-weight:500;display:flex}#issue .choices button:before{content:"";background:var(--c);border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0000001f}#issue .choices button:hover{background:#3b2f271c}#issue button:hover{text-decoration:underline}#perf{z-index:50;color:#fff;pointer-events:none;white-space:nowrap;background:#1e1812b8;border-radius:6px;padding:3px 7px;font:600 11px/1.3 ui-monospace,Consolas,monospace;position:fixed;bottom:8px;left:8px}
