:root{--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-500:#64748b;--gray-700:#334155;--gray-900:#0f172a;--white:#ffffff;--indigo-600:#4f46e5;--indigo-700:#4338ca;--amber-400:#fbbf24;--amber-900:#78350f;--sky-400:#38bdf8;--sky-900:#0c4a6e;--emerald-400:#34d399;--emerald-900:#064e3b;--rose-500:#f43f5e;--orange-400:#fb923c;--shadow-md:0 12px 30px rgba(15,23,42,0.12);--shadow-lg:0 20px 48px rgba(15,23,42,0.16);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-bounce:cubic-bezier(0.34,1.56,0.64,1)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--gray-50);color:var(--gray-900);font-family:Inter,Roboto,Arial,Helvetica,Microsoft YaHei,sans-serif}button,input{font:inherit}button{cursor:pointer}form{display:grid;grid-gap:18px;gap:18px}a{color:inherit}.screen{min-height:100vh;width:100%;display:flex;flex-direction:column}.center-screen{align-items:center;justify-content:center;padding:24px}.landing{background:var(--gray-50)}.landing-panel{width:min(100%,540px);display:grid;grid-gap:18px;gap:18px;animation:page-rise .56s var(--ease-out) both}.brand{margin:0;color:var(--indigo-600);font-size:5.75rem;font-weight:900;line-height:.9;text-transform:uppercase;animation:pop-in .64s var(--ease-bounce) both}.brand,.subtitle{text-align:center}.subtitle{margin:0 0 10px;color:var(--gray-700);font-size:1.75rem;font-weight:800}.button,.input{width:100%;min-height:72px;border:0;border-radius:24px;font-weight:900}.input{background:var(--white);color:var(--gray-900);padding:0 24px;font-size:2.75rem;text-align:center;outline:3px solid transparent;box-shadow:var(--shadow-md);transition:outline-color .18s ease,box-shadow .18s ease,transform .18s ease}.input:focus{outline-color:var(--indigo-600);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.button{color:var(--white);background:var(--indigo-600);box-shadow:var(--shadow-md);font-size:1.75rem;text-transform:uppercase;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover:not(:disabled){background:var(--indigo-700);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.button:active:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(1px) scale(.99)}.button:disabled{cursor:not-allowed;opacity:.55}.button-red{background:var(--rose-500)}.button-red:hover:not(:disabled){background:#e11d48}.button-yellow{background:var(--amber-400);color:var(--amber-900)}.button-yellow:hover:not(:disabled){background:#f59e0b}.button-secondary{background:var(--gray-900);color:var(--white)}.button-secondary:hover:not(:disabled){background:var(--indigo-700)}.teacher-link{justify-self:center;color:var(--gray-500);font-size:.9rem;font-weight:800;text-decoration:none}.error{margin:0;padding:14px 18px;background:#ffe4e6;color:#9f1239;border-radius:18px;box-shadow:var(--shadow-md);font-weight:900;text-align:center;animation:shake-in .36s var(--ease-out) both}.host-screen{min-height:100vh;background:var(--gray-50);padding:0 0 34px;animation:fade-in .28s ease both}.host-topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px;padding:0 34px;background:var(--indigo-600);color:var(--white);animation:slide-down .46s var(--ease-out) both}.host-title{margin:0;font-size:1.4rem;font-weight:700;line-height:1}.host-room-pill{font-size:1.55rem;font-weight:900;letter-spacing:.03em}.host-main,.result-dashboard{width:min(1180px,calc(100% - 48px));margin:0 auto}.host-main{min-height:calc(100vh - 150px);display:grid;align-content:center;grid-gap:28px;gap:28px}.host-create{place-items:center}.host-create-card{width:min(100%,680px);display:grid;grid-gap:22px;gap:22px;padding:38px;background:var(--white);border-radius:32px;box-shadow:var(--shadow-lg);animation:page-rise .54s var(--ease-out) both}.host-create-title{margin:0;color:var(--gray-900);font-size:3.5rem;font-weight:900;line-height:1}.chart-band,.count-band,.metric,.play-panel,.room-hero,.success-card{border-radius:32px;box-shadow:var(--shadow-md)}.room-hero{padding:36px;background:var(--white);text-align:center;animation:page-rise .52s var(--ease-out) both}.metric-label,.room-code-label{margin:0;color:inherit;font-size:.95rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.room-code{margin:8px 0 0;color:var(--indigo-600);font-size:11rem;font-weight:900;line-height:.9;letter-spacing:0;animation:number-pop .68s var(--ease-bounce) both}.round-note{margin:18px 0 0;color:var(--gray-500);font-size:1.35rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.count-band{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:18px;gap:18px;padding:30px 34px;background:var(--sky-400);color:var(--sky-900);animation:card-in .62s var(--ease-out) 90ms both}.count-number{font-size:6rem;font-weight:900;line-height:1;animation:pulse-once .7s var(--ease-out) both}.host-actions{display:flex;justify-content:center;animation:page-rise .62s var(--ease-out) .16s both}.host-actions .button{max-width:720px}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px}.metric{min-height:220px;display:flex;flex-direction:column;justify-content:center;padding:32px;transform-origin:center bottom;animation:card-in .56s var(--ease-out) both}.metric:nth-child(2){animation-delay:90ms}.metric:nth-child(3){animation-delay:.18s}.metric-average{background:var(--amber-400);color:var(--amber-900)}.metric-target{background:var(--sky-400);color:var(--sky-900)}.metric-winner{background:var(--emerald-400);color:var(--emerald-900)}.metric-value{margin:16px 0 0;font-size:5.5rem;font-weight:900;line-height:.95;animation:number-pop .66s var(--ease-bounce) both}.metric-name{margin:12px 0 0;font-size:1.75rem;font-weight:900}.chart-band{height:460px;margin-top:28px;padding:26px;background:var(--white);color:var(--gray-900);animation:page-rise .68s var(--ease-out) .22s both}.chart-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:14px}.chart-subtitle,.chart-title{margin:0}.chart-title{color:var(--gray-900);font-size:1.25rem;font-weight:900}.chart-subtitle{color:var(--gray-500);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.chart-band .recharts-responsive-container{height:calc(100% - 42px)!important}.result-actions{display:flex;justify-content:center;margin-top:28px;animation:page-rise .68s var(--ease-out) .3s both}.result-actions .button{max-width:560px}.play-screen{min-height:100vh;background:var(--gray-50);padding:18px;animation:fade-in .28s ease both}.play-panel{min-height:calc(100vh - 36px);display:grid;align-content:center;grid-gap:18px;gap:18px;width:min(100%,560px);margin:0 auto;padding:28px;background:var(--orange-400);color:var(--gray-900);animation:page-rise .52s var(--ease-out) both}.play-title{margin:0;color:var(--gray-900);font-size:4rem;font-weight:900;line-height:.95;animation:slide-right .52s var(--ease-out) both}.play-copy{margin:6px 0 0;color:currentColor;font-size:1.55rem;font-weight:900}.success-screen{min-height:100vh;display:grid;place-items:center;padding:22px;background:var(--gray-50);color:var(--emerald-900);text-align:center}.success-card{width:min(100%,720px);padding:42px;background:var(--emerald-400);animation:success-pop .62s var(--ease-bounce) both}.success-title{margin:0;font-size:5rem;font-weight:900;line-height:.95;animation:number-pop .66s var(--ease-bounce) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes page-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right{0%{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}@keyframes card-in{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes number-pop{0%{opacity:0;transform:translateY(10px) scale(.96)}70%{opacity:1;transform:translateY(0) scale(1.025)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse-once{0%{transform:scale(.94)}55%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes success-pop{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shake-in{0%{opacity:0;transform:translateX(-8px)}35%{opacity:1;transform:translateX(7px)}70%{transform:translateX(-3px)}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}.success-copy{font-size:2rem}.success-copy,.waiting-copy{margin:18px 0 0;font-weight:900}.waiting-copy{color:rgba(6,78,59,.72);font-size:1.15rem}@media (max-width:900px){.brand{font-size:4.75rem}.host-topbar{min-height:68px;padding:0 22px}.host-main,.result-dashboard{width:min(100% - 28px,680px)}.result-grid{grid-template-columns:1fr}.room-code{font-size:7rem}.metric{min-height:170px}.metric-value{font-size:4.5rem}}@media (max-width:560px){.center-screen{padding:18px}.brand{font-size:4rem}.subtitle{font-size:1.35rem}.button,.input{min-height:64px;border-radius:20px}.input{font-size:2.25rem}.button{font-size:1.4rem}.host-topbar{align-items:flex-start;flex-direction:column;justify-content:center;padding:16px 18px}.host-title{font-size:1.2rem}.host-room-pill{font-size:1.25rem}.chart-band,.count-band,.host-create-card,.metric,.play-panel,.room-hero,.success-card{border-radius:24px}.chart-band,.host-create-card,.metric,.play-panel,.room-hero,.success-card{padding:24px}.host-create-title{font-size:2.55rem}.room-code{font-size:5rem}.count-band{grid-template-columns:1fr;padding:24px}.count-number{justify-self:end;font-size:4.5rem}.metric-value{font-size:3.6rem}.chart-band{height:390px}.chart-heading{align-items:flex-start;flex-direction:column;gap:4px}.chart-band .recharts-responsive-container{height:calc(100% - 62px)!important}.play-title{font-size:3.15rem}.success-title{font-size:3.8rem}.success-copy{font-size:1.55rem}}