:root{--duel-violet:#c4b3ff;--duel-mint:#8fe7d5;--duel-ink:#0c1020}.finals-body{background:radial-gradient(ellipse at 8% 12%,#38285166,transparent 48%),radial-gradient(ellipse at 92% 44%,#1c4b4866,transparent 45%),var(--duel-ink);min-height:100vh}.finals-banner{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #7466a9;border-radius:18px;padding:24px 28px;margin:0 0 28px;background:linear-gradient(115deg,#39264d,#202c47 55%,#173e3e);box-shadow:0 0 28px #9976e51c}.finals-banner::after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffff0b 47%,transparent 65%);animation:f-shimmer 6s ease-in-out infinite}.finals-banner h2{margin:5px 0;font-size:25px;letter-spacing:.05em}.finals-banner p{margin:0;color:#c5cddd;font-size:13px}.finals-banner .eyebrow{color:var(--duel-violet)}.finals-banner a{text-decoration:none}.duel-shell{max-width:1050px;padding:26px 30px 70px;margin:auto}.f-nav{display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted);margin-bottom:24px}.f-nav a{text-decoration:none;color:#c0cce5}.f-hero{text-align:center;padding:30px 0 22px}.f-hero .eyebrow{letter-spacing:.28em;color:#c2b4ef}.f-hero h1{display:flex;gap:28px;align-items:center;justify-content:center;font-size:clamp(40px,7vw,75px);font-weight:800;margin:9px 0;letter-spacing:-.04em;line-height:1.2}.f-hero h1 span:first-child{color:var(--duel-violet)}.f-hero h1 span:last-child{color:var(--duel-mint)}.f-hero em{font-style:normal;color:#64728f;font-weight:400;font-size:30px}.f-hero p{margin:12px 0;color:var(--muted);letter-spacing:.08em;font-size:13px}.f-preview{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;border:1px solid #78613b;background:#41362466;border-radius:12px;font-size:12px;color:#ead4a0}.f-preview button{margin-left:auto}.f-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 25px}.f-steps div{border-bottom:2px solid #303b55;padding:12px 7px;font-size:13px;color:#8291ac;display:flex;gap:10px;align-items:center}.f-steps span{font-weight:700;font-size:12px}.f-steps .active{color:#e0d6ff;border-color:var(--duel-violet)}.f-steps .complete{color:var(--duel-mint);border-color:#4f9a91}.f-panel{padding:32px;border-radius:20px;border:1px solid #39445d;background:linear-gradient(150deg,#1d2439f5,#141e2eef);margin-bottom:24px;box-shadow:0 24px 70px #0000001a;animation:f-arrive .45s ease-out}.f-panel h2{font-size:clamp(23px,4vw,32px);line-height:1.35;margin:10px 0 15px;letter-spacing:-.03em}.f-panel h3{font-size:17px;margin:24px 0 15px}.f-lead{font-size:17px;line-height:1.8;color:#d7deed;margin:12px 0 18px}.f-note{border:1px solid #3b4a62;border-radius:12px;background:#12223590;padding:15px 18px;color:#b7c6db;font-size:13px;line-height:1.8;margin:20px 0}.f-check{display:flex;gap:12px;align-items:center;padding:16px;border-radius:11px;border:1px solid #34425b;margin:10px 0;background:#141d30;cursor:pointer}.f-check input{width:18px;height:18px;accent-color:var(--duel-violet);margin:0;flex-shrink:0}.f-primary{background:linear-gradient(120deg,#c3aeff,#99bbff);border-color:#bbaaff;color:#14172d}.f-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:25px}.f-actions a{text-decoration:none}.f-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:25px 0}.f-character{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#151d30;border:1px solid #485072;border-radius:16px;padding:25px 15px;text-align:center;min-width:0}.f-c0{color:var(--duel-violet)}.f-c1{color:var(--duel-mint)}.f-character.f-c0{border-color:#635182;background:linear-gradient(150deg,#32233e,#151d30)}.f-character.f-c1{border-color:#3a736d;background:linear-gradient(150deg,#183c3b,#151d30)}.f-character-name{font-weight:700;font-size:22px}.f-points{font-size:clamp(36px,6vw,64px);font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.f-points small{font-size:13px;margin-left:6px;color:var(--muted)}.f-character p{font-size:12px;color:var(--muted);margin:0}.f-allocation{display:grid;grid-template-columns:1fr 70px 1fr;gap:14px;margin:30px 0}.f-allocation .f-character{gap:20px}.f-allocation progress{width:100%;height:8px;accent-color:currentColor}.f-slider-wrap{display:flex;flex-direction:column;align-items:center;gap:15px;justify-content:center}.f-slider-wrap input[type=range]{writing-mode:vertical-lr;direction:rtl;appearance:auto;width:30px;height:220px;min-height:220px;padding:0;border:0;accent-color:#b8b7ff;cursor:ns-resize;touch-action:none}.f-adjust{border:1px solid #536285;background:#25314b;color:#e9e4ff;width:40px;height:40px;border-radius:50%;font-size:23px;padding:0}.f-prose{font-size:clamp(16px,2.1vw,20px);line-height:2.35;white-space:pre-wrap;color:#d1d8e7;margin:26px 0 15px}.f-filled{font-weight:700;border-bottom:1px solid currentColor;padding:0 5px;white-space:nowrap}.f-blank{display:inline-block;margin:0 7px;vertical-align:baseline;white-space:normal}.f-blank select{padding:8px 12px;min-width:120px;background:#303152;border:1px solid #aa9ace;color:#eee6ff;font-weight:700;box-shadow:0 0 20px #9d8bdd16}.f-reveal{animation:f-prose-in .7s ease-out}.f-prose-footer{border-top:1px solid #303e58;padding-top:17px}.f-replay{margin-top:27px;border-top:1px solid #36415a;padding-top:18px;color:var(--muted)}.f-award{display:inline-block;border:1px solid #8ba391;background:#34574b55;color:#b6f1d3;padding:9px 16px;border-radius:99px;font-size:13px;font-weight:700;animation:f-award-in .8s ease-out}.f-draw{display:flex;flex-direction:column;gap:8px;align-items:center;border:1px solid #4b4c70;background:linear-gradient(100deg,#30243e,#213739);border-radius:15px;padding:22px;margin:24px 0}.f-draw span{font-size:12px;color:var(--muted);letter-spacing:.1em}.f-draw strong{font-size:24px;color:#e6e7fb}.f-draw em{font-style:normal;color:#7f8eaa;font-size:18px;margin:0 16px}.f-memory{padding-bottom:30px}.f-timer{position:sticky;top:12px;z-index:3;border:1px solid #66659a;border-radius:14px;padding:15px 19px;background:#192239f5;box-shadow:0 10px 25px #0004;backdrop-filter:blur(12px)}.f-timer>div{display:flex;justify-content:space-between;align-items:center;gap:15px}.f-timer strong{font-size:31px;font-variant-numeric:tabular-nums;line-height:1.15;color:#d9ceff}.f-timer progress{width:100%;height:5px;accent-color:#b2a2eb;margin:10px 0 2px}.f-timer.urgent{border-color:#c47b85}.f-timer.urgent strong{color:#ffacb6}.f-timer.urgent progress{accent-color:#ffacb6}.f-question{border:1px solid #34435c;border-radius:15px;background:#192337;padding:22px;margin:15px 0}.f-question p{white-space:pre-wrap;line-height:1.85;font-size:15px;color:#c6d1e4;margin:12px 0}.f-question textarea{display:block;width:100%;font:inherit;font-size:16px;line-height:1.75;color:#f1eefb;background:#0d172a;border:1px solid #69729a;border-radius:10px;padding:13px 16px;resize:vertical;min-height:100px}.f-question textarea:focus{outline:2px solid var(--duel-violet);outline-offset:2px}.f-question textarea::placeholder{color:#7987a3}.f-result-score{font-size:72px;font-weight:800;text-align:center;line-height:1.2;margin:28px 0}.f-result-score small{font-size:20px;color:#9baac3;font-weight:500}.f-question-results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.f-question-results div{border:1px solid #3a4560;background:#111d30;border-radius:12px;display:flex;flex-direction:column;gap:8px;align-items:center;padding:15px}.f-question-results span{font-size:12px;color:var(--muted)}.f-question-results strong{color:#d3dff5}.f-participants{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:25px}.f-participants div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;border:1px solid #34425a;padding:11px 14px;border-radius:10px}.f-participants div span:last-child{color:var(--muted);font-size:12px}.f-score-table td,.f-score-table th{padding:12px 5px;font-size:14px}.f-error{color:#ffacb6!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes f-shimmer{0%,100%{transform:translateX(-40%);opacity:0}50%{transform:translateX(40%);opacity:1}}@keyframes f-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes f-prose-in{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}@keyframes f-award-in{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@media(max-width:640px){.duel-shell{padding:18px 14px 50px}.f-hero{padding:23px 0 15px}.f-hero h1{gap:13px}.f-hero em{font-size:21px}.f-panel{padding:22px 17px}.f-steps{gap:5px}.f-steps div{font-size:11px;gap:6px;padding:11px 3px}.f-lead{font-size:15px}.f-allocation{grid-template-columns:1fr 45px 1fr;gap:8px}.f-allocation .f-character{padding:22px 9px}.f-character-name{font-size:19px}.f-allocation .f-points{font-size:50px}.f-slider-wrap input[type=range]{height:190px;min-height:190px}.f-pair{gap:10px}.f-character{padding:20px 10px}.f-question{padding:18px 14px}.f-timer{top:7px;padding:13px}.f-timer strong{font-size:28px}.f-question-results{grid-template-columns:repeat(2,1fr)}.f-participants{grid-template-columns:1fr}.finals-banner{padding:20px;align-items:start;flex-direction:column;gap:14px}.finals-banner h2{font-size:24px}.f-preview{gap:8px}.f-preview button{margin-left:0}.f-draw strong{font-size:22px}}@media(prefers-reduced-motion:reduce){.finals-banner::after,.f-panel,.f-reveal,.f-award{animation:none}*{scroll-behavior:auto!important}}
.f-sentence{display:block;margin-bottom:14px}.f-blank select:disabled{color:#a5aec5;background:#242d40;box-shadow:none;border-color:#526077;opacity:1}
.f-admin summary{cursor:pointer;font-weight:700;color:#dfd5ff;font-size:18px}.f-admin-list{display:grid;gap:12px;margin-top:20px}.f-admin-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#111c30;border:1px solid #3b4763;border-radius:12px;padding:16px}.f-admin-row>div{flex:1;min-width:170px}.f-admin-row p{font-size:12px;color:var(--muted);margin:8px 0 0}.f-admin-row select{font-size:14px;max-width:100%}.f-admin-row .button{font-size:13px}@media(max-width:640px){.f-admin-row>div{flex-basis:100%}.f-admin-row label{flex:1}.f-admin-row select{width:100%;min-width:0}}
