.fm-shell{--fm-maxh:min(52svh,26rem);--fm-fr:clamp(0.45rem,2vw,0.7rem);--fm-bw:min(calc(100cqi - 2 * var(--fm-fr)),calc(var(--fm-maxh) * var(--w) / var(--h)),34rem)}@media (min-width:640px){.fm-shell{--fm-maxh:min(56vh,32rem)}}@media (min-width:900px){.fm-shell{--fm-maxh:min(44vh,26rem)}}.fm-stage{position:relative;display:flex;justify-content:center;container-type:inline-size;padding-bottom:.25rem}.fm-frame{padding:var(--fm-fr);background:repeating-linear-gradient(100deg,rgb(255 255 255/4%) 0 7px,transparent 7px 15px),var(--pp-walnut);border-radius:16px;box-shadow:inset 0 2px 0 rgb(255 255 255/18%),0 6px 0 var(--pp-walnut-edge)}.fm-board{--cell:calc(var(--fm-bw) / var(--w));display:grid;grid-template-columns:repeat(var(--w),1fr);width:var(--fm-bw);aspect-ratio:var(--w) /var(--h);background:var(--pp-paper);border-radius:6px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.fm-cell{--edge:#4E3423;--bwid:max(2px,calc(var(--cell) * 0.07));position:relative;display:grid;place-items:center;font-family:var(--font-display),Fraunces,Georgia,serif;font-size:calc(var(--cell) * .56);font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:var(--pp-slate);background:#FBF7EF;box-shadow:inset 0 0 0 .5px var(--pp-line),inset 0 calc(var(--t) * var(--bwid)) 0 0 var(--edge),inset 0 calc(var(--b) * var(--bwid) * -1) 0 0 var(--edge),inset calc(var(--l) * var(--bwid)) 0 0 0 var(--edge),inset calc(var(--r) * var(--bwid) * -1) 0 0 0 var(--edge);cursor:pointer;transition:background-color .14s ease}.fm-cell.is-empty{--edge:rgb(78 52 35/0%)}.fm-cell.is-given{color:var(--pp-ink);font-weight:800;background:#F1E6D2}.fm-cell.is-done{background:#DCE7D6}.fm-cell.is-given.is-done{background:#CFDEC8}.fm-cell.is-dead,.fm-cell.is-over{background:#F4D6CC;color:var(--pp-brick)}.fm-cell.is-wrong{background:#F2C6B8;color:var(--pp-brick)}.fm-cell.is-wrong:after{content:"";position:absolute;inset:12%;border:2px dashed var(--pp-brick);border-radius:4px}.fm-cell.is-same{background:#F6E7B8}.fm-cell.is-sel{background:#F4DB92;outline:3px solid var(--pp-mustard);outline-offset:-3px;z-index:1}.fm-cell.is-hinted{animation:puzzle-hint-pulse 1.2s ease-in-out 2}.fm-board.is-solved .fm-cell{background:#CFDEC8;color:var(--pp-ink)}.fm-complete{gap:.35rem}.fm-complete .pp-btn{margin-top:.4rem}.fm-pad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;max-width:30rem;margin:.6rem auto 0}.fm-key{min-height:46px;font-family:var(--font-display),Fraunces,Georgia,serif;font-size:1.3rem;font-weight:700;color:#3E2A1C;background:repeating-linear-gradient(92deg,rgb(255 255 255/7%) 0 5px,rgb(0 0 0/3%) 5px 9px,transparent 9px 15px),linear-gradient(rgb(255 255 255/26%),transparent 45%,rgb(0 0 0/8%)),#D9B585;border:1.5px solid rgb(62 42 28/60%);border-radius:12px;box-shadow:inset 0 2px 0 rgb(255 255 255/35%),0 3px 0 rgb(0 0 0/18%);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.fm-key:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px 0 rgb(255 255 255/35%),0 1px 0 rgb(0 0 0/18%)}.fm-key.is-on{background-color:#9DB894}.fm-key--erase{font-family:inherit;font-size:1.15rem;background-color:var(--pp-board)}.fm-key:disabled{opacity:.5;cursor:default}.fm-key:focus-visible{outline:3px solid var(--pp-focus);outline-offset:1px}@media (min-width:640px){.fm-pad{grid-template-columns:repeat(10,minmax(0,1fr));max-width:40rem}}.fm-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;max-width:30rem;margin:.5rem auto 0}.fm-actions .pp-btn{min-height:44px;padding:0 .3rem;font-size:.9rem}@media (min-width:640px){.fm-actions{max-width:40rem}}.fm-help{max-width:36rem;margin:.5rem auto 0;color:var(--pp-muted);font-size:.78rem;line-height:1.4;text-align:center}.fm-count{display:inline-block;color:var(--pp-cta);font-weight:800}.fm-toast{bottom:7rem}@media (prefers-reduced-motion:reduce){.fm-cell{transition:none}.fm-cell.is-hinted{animation:none}}.fm-mini{display:inline-grid;grid-template-columns:repeat(var(--w),var(--c));grid-auto-rows:var(--c);padding:5px;background:var(--pp-walnut);border-radius:10px;box-shadow:0 3px 0 var(--pp-walnut-edge)}.fm-mini .fm-cell{--cell:var(--c);font-size:calc(var(--c) * .55);cursor:default}.fm-mini-wrap{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-start}.fm-mini-fig{display:grid;gap:.4rem;justify-items:center;max-width:15rem}.fm-mini-fig figcaption{font-size:.8rem;font-weight:700;color:var(--pp-muted);text-align:center}