.fm-dialog{padding:0;width:min(820px,calc(100% - 24px));border:1px solid #a179c9;background:#35204f;max-height:94dvh}.fm-screen{background:radial-gradient(ellipse at 50% 0,#7448a3,#3d245b 60%,#291e40);color:#fff8ff;padding:clamp(24px,5vw,48px);border-radius:24px;text-align:center}.fm-screen h2{font:400 clamp(30px,5vw,44px)/1.2 Lilita,system-ui,sans-serif;color:#fff;margin:18px 0}.fm-screen h3{color:#ffdf9a;margin:22px 0 14px}.fm-screen p{font-size:15px;line-height:1.7;color:#eadcf4}.fm-kicker{font-size:12px;letter-spacing:1.6px;font-weight:900;color:#ffdc98}.fm-screen .primary{background:#ffdc8a;color:#42244d;min-height:48px}.fm-screen .secondary{background:#faf3ff;color:#4e2a69;min-height:44px}.fm-screen label{display:block;text-align:left;color:#f8eaff;font-size:15px;font-weight:800}.fm-screen input{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #c9b1dd;border-radius:12px;background:#fffaf4;color:#42244d;font:inherit}.fm-screen #fm-name-form{max-width:440px;margin:25px auto}.fm-screen #fm-name-form button{margin-top:15px;width:100%}.fm-invite{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;text-align:left;background:#ffffff10;padding:18px;border:1px solid #cba1ee55;border-radius:18px}.fm-invite input[aria-label="Challenge join code"]{font-size:24px;font-weight:900;letter-spacing:2px}.fm-invite .fm-link input{font-size:13px}.fm-roster{list-style:none;padding:0;display:grid;gap:10px;text-align:left;margin:25px 0}.fm-roster li{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 16px;border-radius:15px;background:#fff8ff12;border:1px solid #e6c6ff35}.fm-avatar{display:grid;place-items:center;width:42px;height:42px;background:#ead7ff;color:#572977;border-radius:50%;font-weight:900}.fm-roster strong{overflow-wrap:anywhere;color:#fff}.fm-status{font-size:15px;color:#f7dca5;display:flex;align-items:center;gap:8px}.fm-status.fm-done{color:#a8f3d1}.fm-remove{grid-column:2/4;justify-self:end;border:0;background:transparent;color:#f6d7e8;text-decoration:underline;font:inherit;cursor:pointer}.fm-spinner{display:inline-block;width:15px;height:15px;border:2px solid #e9d7f455;border-top-color:#ffdc8a;border-radius:50%;animation:fm-spin 1.2s linear infinite}@keyframes fm-spin{to{transform:rotate(360deg)}}.fm-result{min-height:420px;margin:15px auto;max-width:1000px}.fm-result-icon{font-size:62px;margin:12px}.fm-rank-table{overflow-x:auto;background:#fff9f1;border:2px solid #ecd29a;border-radius:18px;margin:25px 0;color:#442060}.fm-rank-table table{width:100%;border-collapse:collapse;text-align:left;min-width:500px;font-size:15px}.fm-rank-table th,.fm-rank-table td{padding:15px;border-bottom:1px solid #e9dcf1}.fm-rank-table thead{background:#eee0fc}.fm-rank-table .fm-you{background:#fff0b9}.fm-your-result{background:#ffffff14;border:1px solid #ffdc8a88;border-radius:20px;padding:24px}.fm-your-result>span{font-size:12px;font-weight:900;color:#ffdf9a;letter-spacing:1px}.fm-winner .fm-result-icon{filter:drop-shadow(0 0 24px #ffd36c70)}.fm-small{opacity:.85}.fm-screen :focus-visible,.fm-cert-page :focus-visible{outline:3px solid #e6b64e;outline-offset:4px}
.fm-cert-page{max-width:1160px;margin:25px auto 50px;text-align:center;padding:0 12px}.fm-certificate{position:relative;isolation:isolate;overflow:hidden;padding:42px clamp(24px,6vw,80px) 30px;border:1px solid #c3a064;background:radial-gradient(ellipse at 50% 10%,#fffefa,#f6efdf);box-shadow:0 28px 70px #251d3c22;color:#251d3c}.fm-certificate:before{content:'';position:absolute;inset:13px;border:1px solid #cbb27b;pointer-events:none;z-index:-1}.fm-certificate:after{content:'';position:absolute;inset:20px;border:1px solid #e2d3ad;pointer-events:none;z-index:-1}.fm-cert-top{display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:right;margin:0 0 26px}.fm-cert-top img{width:178px;height:auto;max-width:40%}.fm-cert-top>span{font-size:11px;line-height:2;letter-spacing:1.7px;color:#8a6c39}.fm-cert-top strong{font-size:10px;font-weight:600;letter-spacing:1px}.fm-cert-rule{display:flex;align-items:center;gap:18px;color:#b08b45;margin:0 5% 25px}.fm-cert-rule:before,.fm-cert-rule:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#cbb27b,transparent)}.fm-cert-kicker{font-size:12px;font-weight:900;letter-spacing:2.8px;color:#9b7438}.fm-certificate .fm-cert-heading{font:400 clamp(30px,5vw,56px)/1.25 Georgia,serif;color:#251d3c;margin:16px 0 25px}.fm-certificate p{font-size:15px;line-height:1.7;color:#7c6d77;margin:10px 0}.fm-certificate .fm-cert-presented{letter-spacing:.6px}.fm-certificate h1{font:italic 400 clamp(32px,6vw,66px)/1.2 Georgia,serif;color:#251d3c;overflow-wrap:anywhere;padding:8px 0 23px;margin:10px auto 20px;border-bottom:1px solid #d6bb85;max-width:780px}.fm-certificate .fm-cert-game{font:800 clamp(18px,3vw,25px)/1.5 Nunito,system-ui,sans-serif;color:#45324d;margin:10px auto 28px;max-width:850px;overflow-wrap:anywhere}.fm-cert-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0 32px;background:#251d3c;padding:22px 14px;box-shadow:0 7px 22px #251d3c15}.fm-cert-stats strong{font-size:clamp(20px,3vw,32px);color:#f3d99a}.fm-cert-stats strong+strong{border-left:1px solid #b5996355}.fm-cert-stats small{display:block;font-size:15px;font-weight:500;color:#f4e9d6;margin-top:7px}.fm-cert-bottom{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:15px;align-items:center;text-align:center}.fm-cert-bottom>div>span{font-size:10px;letter-spacing:2px;color:#987b48;font-weight:900}.fm-cert-bottom p{font-size:15px;color:#44364a;margin:9px 0}.fm-cert-bottom small{font-size:11px;color:#847480}.fm-cert-seal{width:134px;height:134px;display:block;margin:0 auto}.fm-cert-award>strong{display:block;font-size:10px;font-weight:900;letter-spacing:1.4px;color:#7b5b28;margin:6px auto 15px;max-width:240px;line-height:1.6}.fm-certificate .fm-cert-id{display:block;color:#968897;font-size:10px;letter-spacing:.4px;margin-top:26px;overflow-wrap:anywhere}.fm-cert-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:26px 0 15px}.fm-cert-actions button,.fm-cert-actions a{font-size:15px;min-height:44px}.fm-cert-page #fm-cert-status{font-size:15px;color:#705d7a}.fm-cert-victory{border-top:5px solid #bd944e}
@media(max-width:620px){.fm-invite{grid-template-columns:1fr}.fm-roster li{grid-template-columns:36px minmax(0,1fr);padding:13px;gap:10px}.fm-avatar{width:36px;height:36px}.fm-status{grid-column:2}.fm-remove{grid-column:2}.fm-cert-stats{gap:5px;padding:18px 7px}.fm-cert-stats small{font-size:11px}.fm-cert-bottom{grid-template-columns:1fr}.fm-cert-award{grid-row:1}.fm-cert-top{gap:10px}.fm-cert-top>span{font-size:8px;letter-spacing:.8px}.fm-cert-top strong{font-size:7px}.fm-cert-top img{width:135px}.fm-cert-actions{display:grid}.fm-certificate{padding:25px 18px}.fm-cert-trophy{font-size:55px}}
@media(prefers-reduced-motion:reduce){.fm-spinner{animation:none}}body.fq-reduce-motion .fm-spinner{animation:none}

.fm-result{position:relative;overflow:hidden}.fm-result>*:not(.fm-confetti){position:relative;z-index:1}.fm-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.fm-confetti i{position:absolute;top:-25px;left:var(--x);height:13px;width:7px;border-radius:2px;background:#ffd878;animation:fm-fall 3.6s calc(var(--i)*.045s) ease-out both}.fm-confetti i:nth-child(3n){background:#ca9eff}.fm-confetti i:nth-child(3n+1){background:#9beacb}@keyframes fm-fall{to{transform:translateY(750px) rotate(580deg);opacity:0}}@media(prefers-reduced-motion:reduce){.fm-confetti i{animation:none;top:calc(8px + var(--i)*11px);transform:rotate(20deg)}}body.fq-reduce-motion .fm-confetti i{animation:none}

.fm-timer-setup{margin:24px 0;padding:22px;border:1px solid #e1c78588;border-radius:18px;background:#25133388;text-align:left}.fm-timer-setup input{max-width:240px}.fm-timer-setup p{font-size:15px}.fm-clock{position:relative;z-index:4;display:table;margin:10px 12px 14px auto;padding:10px 20px;border:1px solid #ddbd6b;background:#24132f;color:#ffdf97;border-radius:100px;font-size:15px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:1px;box-shadow:0 5px 20px #0003}.fm-clock-urgent{background:#631e40;color:#fff;border-color:#ffb6cf}

@media print{.header,.footer,.fm-cert-actions,#fm-cert-status,.fm-cert-page>a{display:none!important}.fm-cert-page{max-width:none;margin:0;padding:0}.fm-certificate{break-inside:avoid;box-shadow:none!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Approved A: the same personalised Midnight Gold composition on screen and in PNG. */
.fm-cert-midnight{container-type:inline-size;position:relative;aspect-ratio:3/2;padding:0!important;border:0!important;overflow:hidden;background:#050d14 url('/assets/certificate-midnight-v80.webp') center/100% 100% no-repeat;box-shadow:0 25px 65px #06101e44}.fm-cert-midnight:before,.fm-cert-midnight:after{display:none}.fm-midnight-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.fm-midnight-image[hidden]{display:none}.fm-midnight-text{position:absolute;inset:0}.fm-midnight-text>*{position:absolute!important;display:block;margin:0!important;padding:0!important;transform:translate(-50%,-50%);line-height:1.1!important;text-align:center;white-space:nowrap;border:0!important;color:#f2d18d!important;text-shadow:0 2px 2px #000}.fm-midnight-brand{left:50%;top:36%;width:23%;font:700 3.7cqw Georgia,serif}.fm-certificate .fm-midnight-heading{left:50%;top:43%;width:74%;font:400 4.35cqw Georgia,serif;letter-spacing:0;text-transform:uppercase}.fm-certificate .fm-midnight-presented{left:50%;top:50.1%;width:65%;font:700 .88cqw Nunito,system-ui,sans-serif;letter-spacing:.26cqw}.fm-certificate .fm-midnight-name{left:50%;top:57.2%;width:68%;max-width:none;font:400 8.7cqw Georgia,serif;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis}.fm-certificate .fm-midnight-performance{left:50%;top:67.4%;width:65%;font:700 .85cqw Nunito,system-ui,sans-serif;letter-spacing:.2cqw}.fm-certificate .fm-midnight-game{left:50%;top:71.4%;width:40%;font:400 2.85cqw Georgia,serif;overflow:hidden;text-overflow:ellipsis}.fm-midnight-rank{left:27%;top:79.6%;width:14%;font:400 2.47cqw Georgia,serif}.fm-midnight-points{left:54.9%;top:79.6%;width:16.3%;font:400 2.34cqw Georgia,serif}.fm-midnight-score{left:80.7%;top:79.6%;width:16.3%;font:400 2.28cqw Georgia,serif}.fm-midnight-players,.fm-midnight-points-label,.fm-midnight-score-label{top:84.1%;font:700 .65cqw Nunito,system-ui,sans-serif;letter-spacing:.065cqw}.fm-midnight-players{left:27%;width:14%}.fm-midnight-points-label{left:54.9%;width:16.3%}.fm-midnight-score-label{left:80.7%;width:16.3%}.fm-certificate .fm-midnight-date{left:50%;top:90.2%;width:16%;font:400 1.56cqw Georgia,serif}.fm-midnight-record{left:50%;top:92.9%;width:64%;font:400 .59cqw Nunito,system-ui,sans-serif}.fm-midnight-ready .fm-midnight-text{inset:auto;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.fm-midnight-ready .fm-midnight-text>*{position:static!important;transform:none!important;font:inherit!important}

.fm-clock{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between}.fm-clock .secondary{font-size:15px;min-height:44px}.fm-connection{font-size:13px;font-weight:600}.fm-rematch{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:24px}.fm-rematch .fm-small{flex-basis:100%}.fm-timer-setup a{display:inline-block;min-height:36px;padding-top:8px}.fm-roster .fm-remove{min-height:44px}.fm-result>.primary,.fm-result>.secondary{margin:10px}
