.fm{position:absolute;inset:0;display:flex;flex-direction:column;font-family:var(--mono);color:var(--text);background:radial-gradient(120% 80% at 50% -10%,rgba(255,111,181,.08),transparent 55%),var(--ink);overflow:hidden}.fm-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 18px;padding:13px 20px 12px;border-bottom:1px solid var(--line)}.fm-title{display:flex;align-items:center;font-size:14px;letter-spacing:.24em;color:var(--text)}.fm-dot{width:8px;height:8px;border-radius:50%;margin-right:9px;background:var(--accent);box-shadow:0 0 9px var(--accent)}.fm-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}.fm-seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden}.fm-seg-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:var(--ink-2);border:none;border-right:1px solid var(--line-2);color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .12s,color .12s}.fm-seg-btn:last-child{border-right:none}.fm-seg-btn:hover{color:var(--text);background:#ffffff0a}.fm-seg-btn.on{color:var(--ink);background:var(--accent)}.fm-seg-n{font-style:normal;font-size:8.5px;opacity:.65}.fm-seg-btn.on .fm-seg-n{opacity:.8}.fm-stats{display:flex;gap:16px}.fm-stat{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}.fm-stat i{font-style:normal;font-size:8px;letter-spacing:.14em;color:var(--text-faint);text-transform:uppercase}.fm-stat b{font-family:var(--serif);font-weight:500;font-size:18px;color:var(--text)}.fm-stat b em{font-style:normal;font-size:11px;color:var(--text-faint)}.fm-mono{font-variant-numeric:tabular-nums}.fm-new{padding:7px 14px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.fm-new:hover{color:var(--text);border-color:var(--accent);background:#ff6fb514}.fm-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px 20px;overflow:auto}.fm-board{display:grid;grid-template-columns:repeat(var(--cols, 4),1fr);gap:clamp(6px,1vw,12px);width:100%;max-width:min(960px,100%);margin:auto}.fm-card{position:relative;aspect-ratio:4 / 3;padding:0;border:none;background:transparent;cursor:pointer;perspective:700px;border-radius:var(--r-sm)}.fm-card:disabled{cursor:default}.fm-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.fm-card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.4,.1,.2,1);border-radius:var(--r-sm)}.fm-card.up .fm-card-inner{transform:rotateY(180deg)}.fm-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;border-radius:var(--r-sm);overflow:hidden}.fm-back{background:linear-gradient(150deg,var(--ink-3),var(--ink-2));border:1px solid var(--line-2)}.fm-card:hover:not(:disabled) .fm-back{border-color:var(--accent)}.fm-back-mark{font-size:clamp(16px,4vw,28px);color:var(--line-2);transition:color .12s,transform .2s}.fm-card:hover:not(:disabled) .fm-back-mark{color:var(--accent);transform:scale(1.12)}.fm-front{transform:rotateY(180deg);background:var(--ink-2);border:1px solid var(--line-2)}.fm-flag{width:100%;height:100%;object-fit:cover;display:block}.fm-fallback{font-family:var(--mono);font-size:clamp(13px,3.4vw,22px);letter-spacing:.12em;font-weight:600;color:var(--text-dim)}.fm-card.matched .fm-front{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 16px #ff6fb547}.fm-card.matched{animation:fm-pop .34s ease}@keyframes fm-pop{0%{transform:scale(1)}45%{transform:scale(1.06)}to{transform:scale(1)}}.fm-overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:24px;background:#07090ebd;backdrop-filter:blur(6px);animation:fm-fade .25s ease}@keyframes fm-fade{0%{opacity:0}to{opacity:1}}.fm-win{width:min(420px,100%);text-align:center;padding:30px 28px 26px;background:var(--ink-2);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--sh-2)}.fm-win-mark{font-size:40px;color:var(--accent);text-shadow:0 0 24px rgba(255,111,181,.5)}.fm-win-title{margin:8px 0 4px;font-family:var(--serif);font-weight:500;font-size:26px;color:var(--text)}.fm-win-sub{margin:0 0 20px;font-size:11px;letter-spacing:.04em;color:var(--text-faint)}.fm-win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 22px}.fm-win-stats div{padding:12px 6px;background:var(--ink-3);border:1px solid var(--line);border-radius:var(--r-sm)}.fm-win-stats dt{font-size:8px;letter-spacing:.14em;color:var(--text-faint);text-transform:uppercase}.fm-win-stats dd{margin:5px 0 0;font-family:var(--serif);font-size:22px;color:var(--text)}.fm-win-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.fm-win-btn{padding:9px 16px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.fm-win-btn:hover{color:var(--text);border-color:var(--accent)}.fm-win-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--ink);font-weight:600}.fm-win-btn.primary:hover{filter:brightness(1.08);color:var(--ink)}.fm-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 14px;padding:9px 20px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.06em;color:var(--text-faint);text-transform:uppercase}.fm-cred{color:var(--text-faint);opacity:.7}@media(max-width:640px){.fm-head{padding:11px 14px}.fm-stats{gap:12px}.fm-stat b{font-size:16px}.fm-stage{padding:12px}.fm-foot .fm-cred{display:none}}@media(prefers-reduced-motion:reduce){.fm-card-inner{transition:none}.fm-card.matched,.fm-overlay{animation:none}.fm-back-mark,.fm-card:hover:not(:disabled) .fm-back-mark{transition:none;transform:none}}
