.fm-app{--fm-ink:#1f1530;--fm-plum:#3a2150;--fm-gold:#ffd24a;--fm-red:#d8283c;--fm-green:#2fd07a;--fm-teal:#2fa3a8;--fm-cream:#fff6e6;--fm-glass:rgba(26,16,40,0.78);--play-accent:#2fa3a8;--play-ink:#1f1530;--play-paper:#fff6e6;overflow:hidden;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;height:100dvh;background:#1a1226;color:#fff}.fm-scene{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;touch-action:none}.fm-app:not([data-phase=play]) :is(.fm-head,.fm-stats,.fm-clockbar,.fm-panel,.fm-banner,.fm-verdict,.fm-toast,.fm-hint){display:none}.fm-head{position:absolute;z-index:4;left:0;right:0;top:calc(env(safe-area-inset-top, 0px) + 8px);display:grid;grid-template-columns:44px 1fr 44px;align-items:center;grid-gap:8px;gap:8px;padding:0 12px;pointer-events:none}.fm-head>*{pointer-events:auto}.fm-icon-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--fm-glass);color:#fff;border:2px solid rgba(255,255,255,.85);box-shadow:0 3px 0 rgba(0,0,0,.35)}.fm-icon-btn .off,.fm-icon-btn[aria-pressed=true] .on{display:none}.fm-icon-btn[aria-pressed=true] .off{display:inline}.fm-pill{justify-self:center;display:inline-flex;align-items:center;gap:10px;height:44px;max-width:100%;padding:0 7px 0 16px;border-radius:22px;background:var(--fm-glass);border:2px solid rgba(255,255,255,.85);box-shadow:0 3px 0 rgba(0,0,0,.35);pointer-events:none;min-width:0}.fm-pill span{font:800 15px/1 Playful,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.fm-pill b{flex:none;font:800 16px/1 Playful,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--fm-cream);color:var(--fm-ink);border-radius:14px;padding:7px 9px;min-width:54px;text-align:center}.fm-pill b.low{background:#ff4a5c;color:#fff;animation:fm-pulse 1s infinite}@keyframes fm-pulse{50%{transform:scale(1.1)}}.fm-stats{position:absolute;z-index:4;left:50%;top:calc(env(safe-area-inset-top, 0px) + 58px);transform:translateX(-50%);display:flex;gap:6px;pointer-events:none}.fm-stat{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px;padding:5px 8px 6px;border-radius:13px;background:var(--fm-glass);border:2px solid rgba(255,255,255,.5);box-shadow:0 3px 0 rgba(0,0,0,.3)}.fm-stat span{font:800 9px/1 Playful,sans-serif;letter-spacing:1.2px;opacity:.75}.fm-stat b{font:800 17px/1 Playful,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--fm-gold)}.fm-stat b.full{color:#ff8a96}.fm-marks{display:flex;gap:4px;height:17px;align-items:center}.fm-marks u{width:15px;height:15px;border-radius:4px;background:#4a3d5c;border:2px solid #8d80a3;transform:rotate(8deg);transition:transform .3s,background .3s}.fm-marks u.on{background:#ff4a5c;border-color:#fff;box-shadow:0 0 10px rgba(255,74,92,.9);transform:rotate(-10deg) scale(1.08)}.fm-marks.bump{animation:fm-ring .5s}@keyframes fm-ring{25%{transform:rotate(10deg) scale(1.25)}60%{transform:rotate(-8deg)}}.fm-clockbar{position:absolute;z-index:4;left:50%;top:calc(env(safe-area-inset-top, 0px) + 106px);width:220px;height:5px;margin-left:-110px;border-radius:3px;background:rgba(255,255,255,.18);overflow:hidden;opacity:0;transition:opacity .3s;pointer-events:none}.fm-clockbar.show{opacity:1}.fm-clockbar i{display:block;height:100%;background:linear-gradient(90deg,#ff4a5c,var(--fm-gold) 30%,var(--fm-green));transform-origin:left}.fm-banner,.fm-panel,.fm-verdict{position:absolute;z-index:5;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 8px);transform:translate(-50%,12px);width:min(560px,calc(100% - 16px));border-radius:22px;background:var(--fm-glass);border:2px solid rgba(255,255,255,.7);box-shadow:0 4px 0 rgba(0,0,0,.35),0 12px 30px rgba(0,0,0,.35);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}:is(.fm-panel,.fm-banner,.fm-verdict).show{opacity:1;visibility:visible;transform:translate(-50%)}.fm-panel{padding:8px;display:flex;flex-direction:column;gap:7px}.fm-tools{display:flex;gap:6px;align-items:center;height:40px;transition:opacity .2s}.fm-tools.off{opacity:.35;pointer-events:none}.fm-slider{flex:1 1;display:flex;align-items:center;gap:6px;height:40px;padding:0 10px;border-radius:14px;background:rgba(255,255,255,.08);min-width:0}.fm-slider span{font:800 10px/1 Playful,sans-serif;letter-spacing:1px;color:var(--fm-gold)}.fm-slider input{flex:1 1;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:8px;border-radius:4px;background:rgba(255,255,255,.25);touch-action:none}.fm-slider input::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--fm-cream);border:3px solid var(--fm-teal);box-shadow:0 2px 0 rgba(0,0,0,.35);cursor:-webkit-grab;cursor:grab}.fm-slider input::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--fm-cream);border:3px solid var(--fm-teal);cursor:grab}.fm-tool{flex:none;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;cursor:pointer;color:#fff;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.4)}.fm-tool:active{transform:translateY(2px)}.fm-del{color:#ff9aa4}.fm-row{display:flex;gap:8px;align-items:center}.fm-palette{flex:1 1;display:grid;grid-template-columns:repeat(6,1fr);grid-gap:5px;gap:5px}.fm-swatch{aspect-ratio:1;max-height:44px;border-radius:50%;cursor:pointer;border:3px solid rgba(255,255,255,.55);box-shadow:inset 0 -4px 0 rgba(0,0,0,.18),0 3px 0 rgba(0,0,0,.35);transition:transform .15s,border-color .15s;padding:0}.fm-swatch.on{border-color:#fff;transform:translateY(-3px) scale(1.08);box-shadow:inset 0 -4px 0 rgba(0,0,0,.18),0 0 0 3px var(--fm-gold),0 5px 0 rgba(0,0,0,.35)}.fm-swatch:active{transform:scale(.92)}.fm-tray{display:grid;grid-template-columns:repeat(9,1fr);grid-gap:4px;gap:4px}.fm-piece{position:relative;aspect-ratio:1;max-height:56px;border-radius:12px;cursor:-webkit-grab;cursor:grab;padding:3px;touch-action:none;background:linear-gradient(180deg,#fff9ee,#efe1c6);border:2px solid #fff;box-shadow:0 3px 0 #9c7f60;display:grid;place-items:center}.fm-piece canvas{width:100%;height:100%;pointer-events:none}.fm-piece.sign{background:linear-gradient(180deg,#f0e6ff,#d9c8f0);box-shadow:0 3px 0 #7a5f9c}.fm-piece:active{transform:translateY(2px);box-shadow:0 1px 0 #9c7f60}.fm-tray.full .fm-piece{opacity:.45}.fm-app .fm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:24px;cursor:pointer;border:3px solid #fff;color:#fff;font:800 18px/1 Playful,sans-serif;letter-spacing:.8px;transition:transform .12s,box-shadow .12s,background .2s}.fm-app .fm-btn:active{transform:translateY(4px)}.fm-app .fm-submit{flex:none;background:linear-gradient(180deg,#4fe39a,#18a95c);box-shadow:0 4px 0 #0c6a38}.fm-app .fm-submit.glow{animation:fm-glow .8s infinite alternate}@keyframes fm-glow{to{box-shadow:0 4px 0 #0c6a38,0 0 18px rgba(61,255,140,.75);transform:scale(1.04)}}.fm-banner{display:flex;align-items:center;gap:10px;padding:9px}.fm-count-ring{position:relative;width:48px;height:48px;flex:none;transform:rotate(-90deg)}.fm-count-ring circle{fill:none;stroke-width:5}.fm-count-ring .track{stroke:rgba(255,255,255,.2)}.fm-count-ring .bar{stroke:var(--fm-gold);stroke-linecap:round;stroke-dasharray:113;transition:stroke-dashoffset .15s linear}.fm-count{position:absolute;left:9px;width:48px;text-align:center;font:800 20px/1 Playful,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fm-banner-text{flex:1 1;display:flex;flex-direction:column;gap:3px;min-width:0}.fm-banner-text span{font:800 9px/1 Playful,sans-serif;letter-spacing:1.6px;color:var(--fm-gold)}.fm-banner-text strong{font:800 16px/1.05 Playful,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-banner-text em{font:700 12px/1.2 Playful,sans-serif;font-style:normal;color:#ffd0d6}.fm-banner-text em:empty{display:none}.fm-app .fm-ready{flex:none;background:linear-gradient(180deg,#ffde6a,#f2b416);color:#5a3b06;border-color:#fff3c4;box-shadow:0 4px 0 #a8720a}.fm-verdict{padding:12px;display:flex;flex-direction:column;gap:8px}.fm-v-top{display:flex;align-items:center;gap:12px}.fm-v-score{display:flex;align-items:baseline;gap:2px;flex:none;padding:6px 12px;border-radius:16px;background:var(--fm-cream);color:var(--fm-ink)}.fm-v-score b{font:800 40px/1 Playful,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fm-v-score span{font:800 14px/1 Playful,sans-serif;color:#8a7a9a}.fm-verdict.pass .fm-v-score{box-shadow:0 0 0 3px var(--fm-green)}.fm-verdict.fail .fm-v-score{box-shadow:0 0 0 3px #ff4a5c}.fm-v-text{display:flex;flex-direction:column;gap:4px;min-width:0}.fm-v-text strong{font:800 22px/1 Playful,sans-serif}.fm-verdict.pass .fm-v-text strong{color:#8dffbe}.fm-verdict.fail .fm-v-text strong{color:#ff9aa4}.fm-v-text em{font:700 13px/1.25 Playful,sans-serif;font-style:normal;color:#e4dcef}.fm-v-bars{list-style:none;margin:0;padding:0;display:grid;grid-gap:5px;gap:5px}.fm-v-bars li{display:grid;grid-template-columns:56px 1fr 42px;align-items:center;grid-gap:8px;gap:8px;font:800 12px/1 Playful,sans-serif}.fm-v-bars i{height:10px;border-radius:5px;background:rgba(255,255,255,.15);overflow:hidden}.fm-v-bars u{display:block;height:100%;width:0;border-radius:5px;background:linear-gradient(90deg,var(--fm-teal),#7fe7ff);transition:width .7s cubic-bezier(.3,1.2,.5,1)}.fm-v-bars li+li u{background:linear-gradient(90deg,#ff8a3d,var(--fm-gold))}.fm-v-bars b{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fm-view{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px;padding:3px;border-radius:14px;background:rgba(255,255,255,.1)}.fm-view button{height:34px;border-radius:11px;border:0;background:transparent;color:#fff;font:800 13px/1 Playful,sans-serif;cursor:pointer}.fm-view button.on{background:var(--fm-cream);color:var(--fm-ink)}.fm-legend{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:center;font:700 11px/1 Playful,sans-serif;color:#e4dcef}.fm-legend span{display:inline-flex;align-items:center;gap:4px}.fm-legend i{width:11px;height:11px;border-radius:3px}.fm-legend.hide{visibility:hidden}.fm-app .fm-next{width:100%;background:linear-gradient(180deg,#ffde6a,#f2b416);color:#5a3b06;border-color:#fff3c4;box-shadow:0 4px 0 #a8720a}.fm-hint{position:absolute;z-index:6;left:50%;transform:translateX(-50%);margin:0;padding:7px 12px;border-radius:14px;background:var(--fm-glass);border:2px solid rgba(255,255,255,.55);font:700 12.5px/1.2 Playful,sans-serif;text-align:center;width:max-content;max-width:calc(100% - 32px);opacity:0;transition:opacity .3s;pointer-events:none;top:calc(env(safe-area-inset-top, 0px) + 117px)}.fm-hint.show{opacity:1}.fm-toast{position:absolute;z-index:7;left:50%;top:34%;transform:translate(-50%,10px) scale(.9);opacity:0;pointer-events:none;font:800 25px/1.1 Playful,sans-serif;color:#fff;text-align:center;width:max-content;max-width:calc(100% - 28px);-webkit-text-stroke:6px var(--fm-plum);paint-order:stroke fill;text-shadow:0 4px 0 var(--fm-plum);transition:opacity .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}.fm-toast.show{opacity:1;transform:translate(-50%)}.fm-toast.good{color:#d8ffe4;-webkit-text-stroke-color:#0f4a2a;text-shadow:0 4px 0 #0f4a2a}.fm-toast.bad{color:#ffe1e4;-webkit-text-stroke-color:#6a0d1c;text-shadow:0 4px 0 #6a0d1c}.fm-ghost{position:fixed;z-index:9;left:0;top:0;width:72px;height:72px;margin:-36px 0 0 -36px;pointer-events:none;display:none;filter:drop-shadow(0 6px 6px rgba(0,0,0,.45))}.fm-ghost.show{display:block}.fm-ghost canvas{width:100%;height:100%}.playful-game .fm-menu,.playful-game .fm-results{background:linear-gradient(180deg,rgba(18,12,30,0) 30%,rgba(18,12,30,.6));backdrop-filter:none;-webkit-backdrop-filter:none;justify-content:flex-start;padding:30vh 12px calc(env(safe-area-inset-bottom, 0px) + 12px)}.playful-game .fm-results{padding-top:18vh}.fm-card{width:min(440px,100%);margin:auto auto 0;flex:none;background:var(--fm-cream);color:var(--fm-ink);border:3px solid #fff;border-radius:28px;padding:14px;box-shadow:0 7px 0 #b89a7e,0 20px 50px rgba(0,0,0,.4);text-align:center}.fm-kicker{display:inline-block;font:800 11px/1 Playful,sans-serif;letter-spacing:2px;color:#1d6e72;background:#d7f3f1;border-radius:10px;padding:5px 10px}.fm-logo{margin:4px 0 8px;font:800 38px/.95 Playful,sans-serif;letter-spacing:1px;color:#fff6e6;-webkit-text-stroke:3px var(--fm-teal);paint-order:stroke fill;text-shadow:0 5px 0 var(--fm-plum);transform:rotate(-2deg)}.fm-modes{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.fm-mode{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:16px;cursor:pointer;background:var(--fm-plum);border:2px solid #5a3f78;color:#fff;transition:transform .15s,border-color .15s}.fm-mode svg{width:50px;height:34px}.fm-mode strong{font:800 15px/1.05 Playful,sans-serif}.fm-mode small{font:700 11px/1 Playful,sans-serif;color:#d9cfe8}.fm-mode-stars{font-size:12px;color:var(--fm-gold);letter-spacing:1px}.fm-mode-stars span{color:#6a5288}.fm-mode em{font:700 10px/1 Playful,sans-serif;font-style:normal;color:#c9b8e0}.fm-mode.on{border-color:var(--fm-gold);background:#52307a;transform:translateY(-2px);box-shadow:0 3px 0 var(--fm-gold),0 0 14px rgba(255,210,74,.45)}.fm-rules{list-style:none;margin:10px 0;padding:0;text-align:left;display:grid;grid-gap:5px;gap:5px}.fm-rules li{display:flex;gap:6px;align-items:baseline;font:600 12.5px/1.3 Playful,sans-serif;color:#3a2a50}.fm-rules li span{flex:none;width:18px;text-align:center}.fm-rules li p{margin:0}.fm-rules b{color:#1d6e72}.playful-game .fm-card button.big{width:100%;background:var(--fm-teal);color:#fff;border-color:#17676b;box-shadow:inset 0 3px 0 #8fe3e6,0 5px 0 #17676b;font-size:24px}.fm-note{margin:9px 0 0;font:700 11px/1.2 Playful,sans-serif;color:#8a7a9a}.fm-r-title{margin:6px 0 0;font:800 30px/1 Playful,sans-serif}.fm-r-title.good{color:#1f8f4a}.fm-r-title.bad{color:var(--fm-red)}.fm-r-score{display:flex;align-items:baseline;justify-content:center;gap:6px}.fm-r-score b{font:800 50px/1 Playful,sans-serif;color:var(--fm-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fm-r-score span{font:800 16px/1 Playful,sans-serif;color:#8a7a9a}.fm-stars{display:flex;justify-content:center;gap:6px;margin:2px 0}.fm-stars i{width:30px;height:30px;background:#e2d8e8;-webkit-clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transition:transform .3s cubic-bezier(.3,1.8,.5,1),background .2s}.fm-stars i.on{background:#ffbf2e;transform:scale(1.18) rotate(-6deg)}.fm-r-line{margin:6px 0 8px;font:700 13px/1.3 Playful,sans-serif;color:#4a3a60}.fm-r-gallery{display:flex;gap:6px;justify-content:center;margin:0 0 8px;flex-wrap:wrap}.fm-thumb{position:relative;width:56px;padding:3px;border-radius:6px;background:linear-gradient(135deg,#f2d27a,#c9973c);box-shadow:0 2px 0 #8a6420}.fm-thumb canvas{display:block;width:100%;border-radius:2px}.fm-thumb b{position:absolute;right:-6px;top:-7px;min-width:24px;padding:3px 4px;border-radius:9px;font:800 11px/1 Playful,sans-serif;color:#fff;background:var(--fm-green);border:2px solid #fff}.fm-thumb.fail b{background:#ff4a5c}.fm-r-stats{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:5px;gap:5px}.fm-r-stats li{display:flex;flex-direction:column;gap:3px;padding:7px 2px;border-radius:12px;background:#eef4f2}.fm-r-stats b{font:800 18px/1 Playful,sans-serif;color:var(--fm-plum);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fm-r-stats span{font:700 10px/1 Playful,sans-serif;color:#6a7a7a}.fm-r-best{margin:2px 0 10px;font:800 13px/1 Playful,sans-serif;color:#1d6e72;min-height:13px}.fm-r-row{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.playful-game .fm-r-row .share-btn{margin-top:10px;padding:8px 14px;font-size:15px}.fm-app .fm-link-btn{margin-top:10px;background:#e8f1ef;color:var(--fm-ink);border:2px solid #c6d9d5;border-radius:14px;padding:9px 12px;font:800 14px/1.2 Playful,sans-serif;cursor:pointer}.playful-game .fm-loading{background:radial-gradient(ellipse at 50% 40%,#4a2a5a,#160f22)}@media (min-width:760px) and (min-aspect-ratio:1/1){.playful-game .fm-menu,.playful-game .fm-results{background:linear-gradient(90deg,rgba(18,12,30,0) 40%,rgba(18,12,30,.55));align-items:flex-end;justify-content:flex-start;padding:24px 5vw 24px 24px}.fm-card{margin:auto 0}.fm-logo{font-size:48px}}@media (max-height:720px) and (max-width:759px){.playful-game .fm-menu{padding-top:16vh}.playful-game .fm-results{padding-top:6vh}.fm-rules{display:none}}