@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:900;src:url(./fraunces-latin-900-normal-DmBL83SS.woff2)format("woff2"),url(./fraunces-latin-900-normal-D67OkaMf.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}:root{--bg:#fbf5ea;--bg-outer:#efe5d3;--ink:#141c3d;--ink-soft:#5a6080;--panel:#f4ede1;--panel-line:#e3d8c5;--cell:#fcf8f0;--grid:#e7ddcc;--select:#2f63e0;--choice:#f2b320;--good:#2f7a3d;--bad:#b23b2e;--danger:#c63a2c;--emoji:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}button{color:inherit;font-family:inherit}.defs-host{width:0;height:0;position:absolute;overflow:hidden}.frame{background:var(--bg);width:min(100vw,69.4915dvh);height:100dvh;margin:0 auto;position:relative;overflow:hidden auto}@media (width>=640px) and (aspect-ratio>=820/1180){body{background:var(--bg-outer)}.frame{box-shadow:0 0 0 1px #3c280a0d,0 12px 48px #3c280a1f}}.app{min-height:100%;padding:calc(env(safe-area-inset-top,0px) + 4px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);--inner:calc(100% - 32px);--board:320px;flex-direction:column;align-items:center;gap:10px;display:flex;container-type:inline-size}.top{width:var(--inner);grid-template-columns:48px 1fr 48px;align-items:center;min-height:58px;display:grid}.title{text-align:center;letter-spacing:-.01em;color:var(--ink);margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(30px,10.5cqi,50px);font-weight:900;line-height:1.05}.icon-btn{width:48px;height:48px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;display:grid}.icon-btn:hover{background:#141c3d0f}.icon-btn:focus-visible,.btn:focus-visible,.restart:focus-visible,.seg:focus-visible,.switch:focus-visible,.legend-summary:focus-visible{outline:3px solid var(--select);outline-offset:2px}.chips{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.chip{background:#f1e9dc;border:1.5px solid #e6dccb;border-radius:999px;padding:.45em 1.05em;font-size:clamp(14px,4.2cqi,19px);font-weight:700;line-height:1}.chip-diff[data-difficulty=easy]{background:#ddf0d8;border-color:#cbe5c3}.chip-diff[data-difficulty=hard]{background:#f9dbd1;border-color:#efc6b8}.chip-count{color:var(--ink-soft);background:0 0;border-style:dashed;padding:.45em .8em;font-size:clamp(12px,3.6cqi,16px)}.board-wrap{--pad:calc(var(--board) * .012);width:var(--board);height:var(--board);padding:var(--pad);background:var(--cell);touch-action:none;-webkit-user-select:none;user-select:none;border:2px solid #e1d6c2;border-radius:16px;flex:none;position:relative;box-shadow:inset 0 1px #ffffffe6,0 3px 12px #503c1412}.board-wrap:has(.board:focus-visible){outline:3px solid var(--select);outline-offset:3px}.board{touch-action:none;outline:none;width:100%;height:100%;display:block;overflow:visible}.pk-cell{fill:var(--cell);stroke:var(--grid);stroke-width:1.5px}.pk-emoji{font-family:var(--emoji);pointer-events:none;-webkit-user-select:none;user-select:none}.pk-spawn{transform-box:fill-box;transform-origin:50%;animation:.55s cubic-bezier(.3,1.6,.5,1) both spawn}.pk-piece-wrap{cursor:grab;outline:none}.pk-ring{fill:none;stroke:#0000;stroke-width:.15px;stroke-linejoin:round}.pk-piece-wrap.is-selected .pk-ring{stroke:var(--select)}.pk-piece-wrap:focus-visible .pk-ring{stroke:var(--select);stroke-dasharray:.14 .08}.pk-piece-wrap.is-choice .pk-ring{stroke:var(--choice);animation:.8s ease-in-out infinite alternate pulse}.board-wrap.is-choosing .pk-piece-wrap:not(.is-choice){opacity:.5}.board-wrap.is-choosing .pk-piece-wrap.is-choice{cursor:pointer}.pk-piece-wrap.is-lifted{opacity:.3}.pk-piece-wrap.is-pop .pk-piece{transform-box:fill-box;transform-origin:50%;animation:.34s cubic-bezier(.3,1.5,.6,1) both pop}.pk-frost{fill:#d9f1ff;opacity:.34;pointer-events:none}.pk-count-bg{fill:#16204a;stroke:#fff;stroke-width:.035px}.pk-count{fill:#fff;pointer-events:none;font-family:Nunito,system-ui,sans-serif;font-weight:800}.pk-ghost{pointer-events:none}.pk-ghost-fill{opacity:.42}.pk-ghost-line{fill:none;stroke:#16204a;stroke-width:.055px;stroke-dasharray:.15 .09;stroke-linecap:round}.pk-ghost-line.bad{stroke:#d6453a}.pk-bad-cell{fill:url(#pk-hatch);stroke:#d6453a;stroke-width:.035px}.pk-collect{fill:#f2b3202e;stroke:var(--choice);stroke-width:.07px;pointer-events:none;animation:.7s ease-in-out infinite alternate pulse}.pk-collect.danger{fill:#d6453a2e;stroke:#d6453a}.board-wrap.is-won .pk-piece{transform-box:fill-box;transform-origin:50%;animation:.8s ease-in-out both celebrate}.board-wrap.is-won .pk-piece-wrap:nth-child(3n+1) .pk-piece{animation-delay:80ms}.board-wrap.is-won .pk-piece-wrap:nth-child(3n+2) .pk-piece{animation-delay:.16s}.board-wrap.is-lost .pk-pieces{filter:saturate(.7)}.board-fx{inset:var(--pad);pointer-events:none;position:absolute}.float-fx{font-family:var(--emoji);font-size:calc(var(--board) * .06);animation:.9s ease-out forwards float-up;position:absolute;transform:translate(-50%,-50%)}.toasts{pointer-events:none;z-index:3;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;width:max-content;max-width:92%;display:flex;position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%)}.toast{color:#fff;text-align:center;background:#16204a;border-radius:999px;padding:7px 14px;font-size:clamp(13px,3.8cqi,16px);font-weight:800;transition:opacity .4s,transform .4s;animation:.25s ease-out both toast-in;box-shadow:0 6px 16px #141c3d40}.toast.tone-bad{background:#8e2b20}.toast.tone-danger{background:var(--danger)}.toast.tone-good{background:#23663a}.toast.out{opacity:0;transform:translateY(-6px)}.tray{width:var(--inner);max-width:var(--inner);touch-action:none;-webkit-user-select:none;user-select:none;grid-template-columns:1fr 1fr 1.6fr 1fr 1fr;align-items:center;gap:clamp(6px,2.4cqi,14px);margin-top:4px;display:grid}.slot-col{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.slot{aspect-ratio:1/1.04;background:var(--panel);border:1.5px solid var(--panel-line);cursor:grab;touch-action:none;border-radius:14px;place-items:center;width:100%;padding:12%;transition:border-color .12s,background-color .12s,box-shadow .12s;display:grid;position:relative;box-shadow:0 2px #785f320f}.slot.incoming{aspect-ratio:1.34;border-radius:16px;padding:10% 9%}.slot.is-empty{cursor:pointer}.slot.incoming.is-empty{cursor:default}.slot .pk-mini{pointer-events:none;width:100%;height:100%;display:block;overflow:visible}.slot .pk-mini.is-lifted{opacity:.3}.slot-dash{border:2px dashed #d2c6b0;border-radius:10px;width:82%;height:82%}.slot-note{color:var(--ink-soft);text-align:center;font-size:clamp(11px,3.1cqi,14px);font-weight:700;line-height:1.15}.slot.is-selected{border-color:var(--select);box-shadow:0 0 0 3px #2f63e038}.slot.is-target{background:#e8f5e3;border-color:#3ba55c;box-shadow:0 0 0 3px #3ba55c38}.slot.is-blocked{background:#fbe8e3;border-color:#d6453a}.slot:focus-visible{outline:3px solid var(--select);outline-offset:2px}.slot.is-pop .pk-mini,.slot.is-pop .slot-dash{animation:.32s cubic-bezier(.3,1.5,.6,1) both pop}.slot.is-shake{animation:.32s ease-in-out shake}.slot-label{font-size:clamp(13px,4cqi,18px);font-weight:800;line-height:1}.center .slot-label{text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;font-size:clamp(11px,3.4cqi,16px)}.context{width:var(--inner);text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;min-height:78px;display:flex}.hint{margin:4px 0 0;font-size:clamp(14px,4.3cqi,19px);font-weight:600;line-height:1.3}.context[data-tone=bad] .hint{color:var(--bad)}.context[data-tone=danger] .hint{color:var(--danger);font-weight:800}.context[data-tone=good] .hint{color:var(--good);font-weight:700}.context-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 8px;display:flex}.notes{flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.notes:empty,.actions:empty{display:none}.note{background:#f1eadd;border-radius:999px;padding:4px 10px;font-size:clamp(12px,3.6cqi,15px);font-weight:700}.note.tone-bad{color:#8e2b20;background:#fbe2dc}.note.tone-danger{background:var(--danger);color:#fff}.note.tone-good{color:#245c2e;background:#e1f2dc}.actions{gap:8px;display:flex}.btn{cursor:pointer;border:1.5px solid #0000;border-radius:999px;min-height:46px;padding:10px 22px;font-size:16px;font-weight:800}.btn.primary{color:#fff;background:#16204a;border-color:#16204a}.btn.primary:hover{background:#22306a}.btn.secondary{background:#f1e9dc;border-color:#ddd0bb}.btn.secondary:hover{background:#ebe1d0}.btn.quiet{color:var(--ink-soft);background:0 0}.btn.quiet:hover{color:var(--ink)}.btn.small{min-height:36px;padding:6px 16px;font-size:14px}.btn:disabled{opacity:.45;cursor:default}.legend{width:var(--inner);border:1.5px solid var(--panel-line);background:#faf5eb;border-radius:18px}.legend-summary{cursor:pointer;border-radius:18px;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 4px;padding:9px 20px;font-size:clamp(11.5px,3.5cqi,17px);font-weight:600;list-style:none;display:flex;position:relative}.legend-summary::-webkit-details-marker{display:none}.legend-summary:after{content:"";border-right:2.5px solid var(--ink-soft);border-bottom:2.5px solid var(--ink-soft);width:7px;height:7px;transition:transform .15s;position:absolute;top:50%;right:9px;transform:translateY(-70%)rotate(45deg)}.legend[open] .legend-summary:after{transform:translateY(-30%)rotate(-135deg)}.legend-item{white-space:nowrap;align-items:center;gap:.28em;display:inline-flex}.legend-emoji{font-family:var(--emoji);font-size:1.1em;line-height:1}.legend-sep{color:var(--ink-soft)}.legend-break{flex-basis:100%;height:0}.legend-list{text-align:left;gap:8px;margin:0;padding:2px 16px 14px;font-size:clamp(13px,3.8cqi,16px);line-height:1.35;list-style:none;display:grid}.legend-list li,.help-effects li{grid-template-columns:28px 1fr;align-items:start;gap:6px;display:grid}.restart{cursor:pointer;background:#efe7d9;border:1.5px solid #ddd0bb;border-radius:999px;width:min(320px,68%);min-height:50px;font-size:clamp(16px,4.8cqi,21px);font-weight:800;box-shadow:0 2px #785f321f}.restart:hover{background:#e9dfcd}.persist-note{color:var(--ink-soft);margin:0;font-size:12px}.overlay{z-index:50;-webkit-backdrop-filter:blur(2px);background:#1e1a1257;place-items:center;padding:16px;animation:.18s ease-out both fade-in;display:grid;position:fixed;inset:0}.overlay[hidden]{display:none}.card{border:1.5px solid var(--panel-line);text-align:center;background:#fffbf3;border-radius:22px;width:min(420px,100%);max-height:calc(100dvh - 32px);padding:22px 20px 16px;animation:.22s cubic-bezier(.3,1.3,.6,1) both card-in;overflow:auto;box-shadow:0 18px 50px #281e0a40}.card-kicker{letter-spacing:.08em;text-transform:uppercase;color:#8a7f69;margin:0 0 2px;font-size:13px;font-weight:800}.card-title{margin:0 0 10px;font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:900;line-height:1.1}.card-start .card-title{font-size:38px}.card-result.won .card-title{color:var(--good)}.card-result.lost .card-title{color:var(--bad)}.card-body{flex-direction:column;gap:14px;margin-bottom:16px;font-size:16px;line-height:1.4;display:flex}.card-body p{margin:0}.tagline{color:var(--ink-soft);font-weight:600}.card-fine{color:var(--ink-soft);font-size:13.5px}.card-sub{text-align:left;margin:2px 0 -6px;font-size:16px;font-weight:800}.card-actions{flex-direction:column;gap:8px;display:flex}.card-actions .btn{width:100%}.field{text-align:left;flex-direction:column;gap:6px;display:flex}.field-label{font-size:14px;font-weight:800}.field-row{cursor:pointer;flex-direction:row;justify-content:space-between;align-items:center}.segmented{border:1.5px solid var(--panel-line);background:#f1e9dc;border-radius:14px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.seg{cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:42px;padding:8px 4px;font-size:15px;font-weight:800}.seg[aria-pressed=true]{color:#fff;background:#16204a}.switch{cursor:pointer;background:#d8cebd;border:0;border-radius:999px;flex:none;width:54px;height:32px;transition:background-color .15s;position:relative}.switch[aria-checked=true]{background:#3ba55c}.switch-knob{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #0003}.switch[aria-checked=true] .switch-knob{transform:translate(22px)}.help-list{text-align:left;gap:6px;margin:0;padding-left:20px;font-size:15px;display:grid}.help-effects{text-align:left;gap:8px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}.drag-layer{z-index:40;pointer-events:none;position:fixed;inset:0;overflow:hidden}.drag-ghost{will-change:transform;filter:drop-shadow(0 10px 14px #281e0a4d);position:absolute;top:0;left:0}.drag-ghost svg{transition:transform .12s,opacity .12s;display:block;overflow:visible;transform:scale(1.05)}.drag-ghost.over-holder svg{opacity:.85;transform:scale(.8)}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes pop{0%{transform:scale(.82)}to{transform:scale(1)}}@keyframes spawn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{opacity:1}to{opacity:.35}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes float-up{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-160%)scale(1.3)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes celebrate{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-.06px)scale(1.03)}}@keyframes fade-in{0%{opacity:0}}@keyframes card-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition:none!important;animation:none!important}@media (height<=600px){.top{min-height:48px}.context{min-height:64px}}
