:root{font-family:Arial,Helvetica,sans-serif;color:#202b24;background:#f3f4ec;font-synthesis:none;--green:#d6ff5f;--ink:#202b24;--muted:#747c71}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.masthead{max-width:1240px;margin:auto;padding:32px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d8dcd1}.brand{font-size:21px;font-weight:900;letter-spacing:-1px;display:flex;align-items:center}.brand>span:not(.brand-icon){font-weight:400}.brand .dot{color:#72932d}.brand-icon{display:inline-grid;place-items:center;font-size:28px;background:var(--ink);color:var(--green);width:34px;height:37px;border-radius:9px;margin-right:10px}.header-note,.eyebrow,.intro-tags,.scale,footer,.field-foot,.privacy-note{font-size:10px;letter-spacing:1.2px;font-weight:700}.header-note{color:#69715f}.public-main{max-width:1240px;min-height:710px;padding:80px 48px 88px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.eyebrow{display:flex;align-items:center;gap:8px;line-height:1.6}.live-dot{width:7px;height:7px;border-radius:50%;background:#79a033}h1{font-size:clamp(58px,6.8vw,88px);letter-spacing:-6px;line-height:1.02;margin:24px 0}h1>span{display:inline-block;background:var(--green);padding:0 12px 6px;margin-left:-8px;transform:rotate(-3deg)}.intro>p{font-size:17px;line-height:1.8;color:#687061}.intro strong{color:var(--ink)}.intro-tags{display:flex;gap:18px;margin:28px 0;font-size:9px}.intro-tags span:before{content:'✓';margin-right:5px}.side-note{display:flex;align-items:center;gap:20px;margin-top:68px}.side-note>span{font-size:32px;font-weight:800;letter-spacing:-2px}.side-note p{border-left:1px solid #cbd0c2;padding-left:20px;font-size:12px;line-height:1.6;color:var(--muted)}.rating-card{background:white;border:1px solid #dfe3d8;border-radius:22px;padding:34px;box-shadow:0 10px 0 -2px #e7eadf}.card-top{display:flex;justify-content:space-between;align-items:center;color:#7a826f}.mini-icon{font-size:22px}h2{font-size:30px;letter-spacing:-1px;margin:25px 0 8px}.muted{color:var(--muted);font-weight:400}.rating-card p.muted{font-size:14px;margin:0 0 28px}fieldset{border:0;padding:0;margin:0}.scores{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.score{position:relative;cursor:pointer}.score input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.score span{display:grid;place-items:center;height:53px;background:#f4f5ef;border:1px solid #e2e6da;border-radius:9px;font-size:22px;font-weight:700;transition:background .15s,transform .15s}.score input:checked+span{background:var(--green);border-color:var(--ink);box-shadow:0 3px 0 var(--ink);transform:translateY(-2px)}.score:hover span{background:#e5edcf}.score input:focus-visible+span,button:focus-visible,a:focus-visible{outline:3px solid #709632;outline-offset:4px}.scale{display:flex;justify-content:space-between;color:#7c8275;font-size:8px;letter-spacing:.8px;margin-top:13px}.selection{margin:22px 0 26px;padding:13px;background:#f6f7f2;border-left:3px solid #d6ff5f;font-size:12px;min-height:41px}label{font-size:13px;font-weight:600}textarea,input[type=password]{display:block;width:100%;padding:14px;border:1px solid #dce1d3;background:#fff;border-radius:9px;margin-top:10px;resize:vertical;font-size:13px;line-height:1.6;color:var(--ink)}textarea:focus,input:focus{outline:2px solid #88a946;outline-offset:2px}textarea::placeholder{color:#969c90}.field-foot{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:0;font-weight:400;color:#858c7d;margin:8px 0 25px}.primary{border:1px solid var(--ink);background:var(--green);color:var(--ink);border-radius:9px;padding:17px 20px;font-weight:700;width:100%;display:flex;justify-content:space-between;align-items:center}.primary:disabled{opacity:.45;cursor:not-allowed}.privacy-note{text-align:center;letter-spacing:0;font-size:10px;color:#8c9384;font-weight:400;margin:18px 0 0}.error{font-size:13px;color:#ac352c;line-height:1.5}.error:empty{display:none}.trap,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}footer{max-width:1144px;margin:0 auto;padding:26px 0;border-top:1px solid #d8dcd1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;color:#7c8571;font-size:9px}footer p{width:100%;max-width:740px;font-size:12px;letter-spacing:0;line-height:1.7;font-weight:400}.text-link{background:none;border:0;padding:0;color:inherit;font-size:12px;text-decoration:underline;text-underline-offset:4px}.success-icon{width:64px;height:64px;background:var(--green);border-radius:50%;display:grid;place-items:center;font-size:32px;margin-bottom:35px}#success{padding:40px 0;min-height:450px}#success p{line-height:1.8;color:var(--muted);margin-bottom:35px}.admin-main{max-width:1144px;margin:50px auto;padding:0 24px}.login-card{max-width:430px;margin:80px auto}.login-card .primary{margin-top:20px}.admin-heading{display:flex;align-items:center;justify-content:space-between}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:32px 0}.stat,.panel{background:white;border:1px solid #dce1d3;border-radius:14px;padding:24px}.stat span{display:block;font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:40px;margin-top:12px}.dashboard-grid{display:grid;grid-template-columns:300px 1fr;gap:20px}.panel h2{font-size:20px;margin:0 0 22px}.bar-row{display:flex;gap:12px;align-items:center;font-size:12px;margin:14px 0}.bar-row>span{width:18px}.bar-track{flex:1;background:#f0f2e9;border-radius:4px;height:12px}.bar-fill{height:100%;background:#bbdf56;border-radius:4px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:22px}.panel-head h2{margin:0}select,.secondary{border:1px solid #d3dac8;border-radius:6px;background:#fff;padding:10px;font-size:12px}.comment{border-top:1px solid #e6e9df;padding:20px 0}.comment-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.badge{background:#eaf2d3;border-radius:6px;padding:6px 9px;color:var(--ink);font-weight:700}.comment p{font-size:14px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;font-size:12px}.demo-banner{padding:12px;text-align:center;background:#fff2bd;font-size:12px}.empty{color:var(--muted);line-height:1.7;padding:20px 0}@media(max-width:850px){.public-main{gap:32px;padding:55px 28px}.masthead{padding:25px 28px}.header-note{display:none}h1{font-size:65px}.rating-card{padding:25px}footer{margin:0 28px}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:620px){.public-main{grid-template-columns:1fr;padding:35px 22px 45px;gap:32px}.masthead{padding:22px}.brand{font-size:18px}.intro h1{font-size:62px;letter-spacing:-4px;margin:20px 0}.intro>p{font-size:15px}.intro-tags{margin-bottom:0;gap:14px;font-size:8px}.side-note{display:none}.rating-card{padding:25px 22px}.eyebrow{font-size:9px}.stats{gap:8px}.stat{padding:15px 10px}.stat strong{font-size:29px}.stat span{font-size:10px}.admin-heading h1{font-size:32px;letter-spacing:-1px}.panel{padding:20px}.panel-head{align-items:start}footer{margin:0 22px;line-height:1.6}.login-card{margin-top:35px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Public scorecard: playful arcade color, bold outlines, and tactile controls. */
.game-page{--ink:#171b42;--muted:#61617b;--green:#ffe24c;color:var(--ink);background:#1563df;background-image:radial-gradient(ellipse at 65% 0%,#4a9cff 0%,transparent 65%),linear-gradient(125deg,transparent 46%,#ffffff05 46%,#ffffff05 54%,transparent 54%);min-height:100vh}
.game-page .masthead{border-bottom:2px solid #ffffff26;padding-top:25px;padding-bottom:25px;max-width:1180px}
.game-page .brand{color:white;font-size:25px;font-style:italic;font-weight:950;letter-spacing:-1.3px;text-shadow:2px 2px 0 #15346e}
.game-page .brand>span:not(.brand-icon){font-weight:950}
.game-page .brand .dot{color:#ffe24c}
.game-page .brand-icon{background:#ffe24c;color:#171b42;border:2px solid #171b42;border-radius:9px;box-shadow:3px 3px 0 #171b42;text-shadow:none;transform:rotate(-7deg);margin-right:12px}
.game-page .header-note{color:#fff;font-size:10px;letter-spacing:1.5px}
.game-page .public-main{max-width:1180px;gap:62px;padding-top:54px;padding-bottom:62px;min-height:760px;grid-template-columns:1fr 1.04fr}
.game-page .intro{color:white}
.game-page .intro .eyebrow{display:inline-flex;background:#103b9b;border:1px solid #ffffff40;border-radius:6px;padding:8px 12px;font-size:9px;letter-spacing:1px;transform:rotate(-2deg);box-shadow:3px 3px 0 #102963}
.game-page .live-dot{background:#ffe24c;box-shadow:0 0 0 3px #ffe24c20}
.game-page h1{font-family:Impact,'Arial Black',Arial,sans-serif;font-weight:900;font-size:92px;letter-spacing:-2px;line-height:.99;font-style:italic;text-shadow:4px 5px 0 #102963;margin:28px 0}
.game-page h1>span{background:none;color:#ffe24c;transform:rotate(-3deg);padding:0;margin:4px 0 0;text-shadow:4px 5px 0 #102963;letter-spacing:-1px}
.game-page .intro>p{color:#e8f2ff;font-size:17px;line-height:1.7;margin:24px 0}
.game-page .intro strong{color:#fff;background:#ffffff17;padding:2px 4px;border-radius:3px}
.game-page .intro-tags{gap:10px;font-size:9px;letter-spacing:.7px;margin:26px 0}
.game-page .intro-tags span{border:1px solid #ffffff70;border-radius:5px;padding:8px 10px;background:#103b9b44}
.game-page .intro-tags span:before{color:#ffe24c}
.game-page .side-note{margin-top:44px;gap:18px}
.game-page .side-note>span{font-family:Impact,'Arial Black',sans-serif;font-size:54px;font-style:italic;color:#ffe24c;text-shadow:3px 3px 0 #102963;transform:rotate(-8deg)}
.game-page .side-note p{color:#e0eeff;border-color:#ffffff50;font-size:12px}
.game-page .rating-card{position:relative;background:#fffdf6;border:3px solid #171b42;border-radius:19px;padding:29px;box-shadow:8px 9px 0 #103579}
.game-page .card-top{color:#685b9b;border-bottom:2px dashed #ded9eb;padding-bottom:13px}
.game-page .card-top .eyebrow{font-size:9px;letter-spacing:1.5px}
.game-page .mini-icon{color:#7045c5;font-size:28px;line-height:1}
.game-page h2{font-family:'Arial Black',Arial,sans-serif;font-size:31px;font-weight:900;letter-spacing:-1.2px;line-height:1.05;margin:22px 0 10px}
.game-page .rating-card p.muted{font-size:13px;margin-bottom:23px;color:#66627d}
.game-page .scores{gap:10px}
.game-page .score span{height:57px;border:2px solid #171b42;border-radius:9px;background:var(--score-color,#f1eaff);box-shadow:0 4px 0 #171b42;font-size:26px;font-weight:900;color:#171b42;transition:transform .12s,box-shadow .12s}
.game-page .score-1,.game-page .score-2{--score-color:#ffb4a5}
.game-page .score-3,.game-page .score-4{--score-color:#ffc98c}
.game-page .score-5,.game-page .score-6{--score-color:#ffe875}
.game-page .score-7,.game-page .score-8{--score-color:#bcdf86}
.game-page .score-9,.game-page .score-10{--score-color:#8de2bd}
.game-page .score:hover span{transform:translateY(-2px);box-shadow:0 6px 0 #171b42;background:var(--score-color)}
.game-page .score input:checked+span{background:#7544d4;color:#fff;transform:translateY(3px);box-shadow:0 1px 0 #171b42;border-color:#171b42;outline:3px solid #ffe24c;outline-offset:2px}
.game-page .score input:disabled+span{opacity:.65}
.game-page .scale{font-size:9px;letter-spacing:.5px;margin-top:15px;color:#655d77}
.game-page .selection{border:0;background:#eee8fa;color:#59378c;border-radius:6px;text-align:center;font-weight:700;margin:18px 0 23px;font-size:12px;padding:12px}
.game-page label{font-size:13px;font-weight:800}
.game-page label .muted{float:right;font-size:11px;font-weight:400;padding-top:2px}
.game-page textarea{border:2px solid #d5cfe1;background:#fff;border-radius:8px;font-size:12px;padding:12px;line-height:1.6;min-height:86px}
.game-page textarea::placeholder{color:#777185}
.game-page .field-foot{font-size:9px;color:#6e667e;margin:8px 0 22px}
.game-page .primary{background:#ffe24c;border:2px solid #171b42;box-shadow:0 5px 0 #171b42;border-radius:9px;color:#171b42;justify-content:center;gap:16px;font-size:18px;font-weight:900;letter-spacing:.5px;padding:15px}
.game-page .primary:not(:disabled):hover{background:#ffed83;transform:translateY(-1px);box-shadow:0 6px 0 #171b42}
.game-page .primary:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 #171b42}
.game-page .primary:disabled{opacity:1;background:#e6e0ef;color:#787083;box-shadow:0 3px 0 #aaa1b5;border-color:#aaa1b5}
.game-page .privacy-note{color:#6e667e;font-size:10px;line-height:1.7;margin-top:20px}
.game-page footer{max-width:1084px;border-top:2px solid #ffffff25;color:#f1f5ff;font-size:9px;padding-top:24px;padding-bottom:28px}
.game-page footer .text-link{font-size:11px}
.game-page footer p{color:#e8f2ff}
.game-page #success{text-align:center;min-height:505px;padding:35px 0 20px}
.game-page #success .eyebrow{justify-content:center;font-size:9px;letter-spacing:1px}
.game-page #success h2{font-size:39px;line-height:1.04;margin:24px 0 18px;transform:rotate(-2deg);color:#6332b2;letter-spacing:-1.5px}
.game-page #success p{font-size:14px;line-height:1.7;color:#68607c;margin-bottom:23px}
.game-page .success-icon{background:#ffe24c;border:3px solid #171b42;box-shadow:4px 4px 0 #171b42;border-radius:16px;margin:0 auto 30px;transform:rotate(-7deg);width:70px;height:70px;font-weight:900}
.cooldown-box{background:#efe8fb;border:2px dashed #b49bd7;border-radius:10px;padding:17px;margin:25px 0}
.cooldown-box span{display:block;color:#69449c;font-size:9px;letter-spacing:1px;font-weight:800;margin-bottom:9px}
.cooldown-box strong{display:block;color:#382052;font-size:16px;line-height:1.5}
.game-page .error{color:#a52230;background:#fff0ee;padding:10px;border-radius:5px}
.game-page button:focus-visible,.game-page a:focus-visible,.game-page .score input:focus-visible+span{outline:3px solid #e6419e;outline-offset:5px}
@media(max-width:1000px){.game-page h1{font-size:76px}.game-page .public-main{gap:32px;padding:45px 28px}.game-page footer{margin:0 28px}.game-page .rating-card{padding:25px}}
@media(max-width:700px){.game-page .public-main{grid-template-columns:1fr;max-width:500px;padding:26px 22px 40px;gap:27px;min-height:0}.game-page .masthead{padding:20px 22px}.game-page .brand{font-size:22px}.game-page .header-note{display:none}.game-page .intro{text-align:center}.game-page .intro .eyebrow{font-size:8px;padding:7px 10px}.game-page h1{font-size:65px;line-height:.98;margin:20px 0 14px;letter-spacing:-1px}.game-page h1 br{display:none}.game-page h1>span{display:block;margin-top:3px}.game-page .intro>p{font-size:14px;line-height:1.65;margin:15px 0}.game-page .intro-tags{justify-content:center;margin:18px 0 0;font-size:8px}.game-page .intro-tags span{padding:7px 9px}.game-page .side-note{display:none}.game-page .rating-card{padding:23px 20px;box-shadow:6px 7px 0 #103579;border-radius:16px}.game-page h2{font-size:28px}.game-page .scores{gap:8px}.game-page .score span{height:52px;font-size:23px}.game-page .selection{margin:17px 0 20px}.game-page .field-foot{font-size:8px;gap:6px}.game-page footer{margin:0 22px;gap:15px;font-size:8px;line-height:1.5}.game-page #success{min-height:430px;padding-top:25px}.game-page #success h2{font-size:34px}}
@media(max-width:360px){.game-page h1{font-size:57px}.game-page .public-main{padding-left:16px;padding-right:19px}.game-page .rating-card{padding:20px 16px}.game-page .score span{height:48px}.game-page .intro-tags{gap:6px}}

.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-actions #export{background:#d6ff5f;color:#202b24;font-weight:700}@media(max-width:620px){.admin-heading{align-items:flex-start;gap:15px;flex-direction:column}.admin-actions{width:100%}}
