:root{color-scheme:dark;--bg: #12102a;--bg-2: #1b1840;--card: #221e4d;--card-edge: #332c6e;--text: #f4f2ff;--muted: #b3aee0;--primary: #ff5c8a;--primary-2: #ff8f5c;--secondary: #3ad1ff;--secondary-2: #6a7bff;--danger: #ff6b6b;--ok: #4ade80;--radius: 20px;--shadow: 0 18px 40px rgba(0, 0, 0, .35);--font: system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,#3b2a7a 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#7a2a5c 0%,transparent 55%),linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}:where(input:not([type]),input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=number],textarea,select){width:100%;min-height:52px;padding:12px 14px;font:inherit;font-size:max(16px,1em);color:var(--text);background:var(--bg-2);border:2px solid var(--card-edge);border-radius:14px;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}:where(input,textarea,select):focus-visible{outline:3px solid rgba(58,209,255,.35);outline-offset:2px;border-color:var(--secondary)}:where(input,textarea,select):disabled{opacity:.55;cursor:not-allowed}textarea{resize:vertical}select option{background:var(--bg-2);color:var(--text)}body:before{content:"";position:fixed;z-index:0;width:min(60vw,760px);aspect-ratio:1;right:max(-12vw,-180px);top:18vh;background:url(/party-ai-mark.svg) center / contain no-repeat;opacity:.04;pointer-events:none}.app{position:relative;z-index:1;width:100%;max-width:1040px;margin:0 auto;padding:clamp(20px,3vw,40px) 20px 32px;display:flex;flex-direction:column;gap:28px;min-height:100dvh}.brand{text-align:center}.brand__identity{width:196px;margin:0 auto;line-height:0}.brand__logo{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 24px rgba(6,2,37,.5))}.brand__headline{margin:-4px 0 8px;font-size:clamp(34px,4.2vw,50px);line-height:1.08;letter-spacing:-.045em}.brand__tag{margin:0;color:var(--muted);font-size:17px}.home{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.home>.card{min-height:300px;padding:28px}.home .card--create{background:radial-gradient(circle at 0 0,rgba(255,92,138,.18),transparent 62%),var(--card)}.home .card--join{background:radial-gradient(circle at 100% 0,rgba(58,209,255,.14),transparent 62%),var(--card)}.home .card__hint{line-height:1.5}.home .btn--big{margin-top:auto}.home .divider{display:none}.home .error--global{grid-column:1 / -1}.card{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--radius);padding:22px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.card--center{align-items:center;text-align:center}.card__title{margin:0;font-size:22px}.card__hint{margin:0;color:var(--muted);font-size:15px}.payment-app{max-width:760px}.payment-packs{display:grid;gap:12px}.payment-pack{text-decoration:none}#payment-submit{margin:20px auto 0}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.15em}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--card-edge)}.label{font-weight:600;font-size:15px}.help{margin:0;color:var(--muted);font-size:13px}.code-input{width:100%;font-family:var(--mono);font-size:clamp(34px,11vw,48px);font-weight:700;letter-spacing:.35em;text-align:center;text-transform:uppercase;padding:14px 8px 14px calc(8px + .35em);color:var(--text);background:#16133a;border:2px solid var(--card-edge);border-radius:16px;outline:none;transition:border-color .15s,box-shadow .15s}.code-input::placeholder{color:#4f4a86}.code-input:focus{border-color:var(--secondary);box-shadow:0 0 0 4px #3ad1ff33}.code-input:disabled{opacity:.6}.btn{appearance:none;border:0;border-radius:16px;font:inherit;font-weight:700;color:#fff;padding:14px 20px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .08s ease,filter .15s ease,opacity .15s;min-height:48px}.btn:active:not(:disabled){transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:3px solid #fff;outline-offset:2px}.btn--big{width:100%;font-size:20px;padding:18px 20px;min-height:60px}.btn--primary{background:linear-gradient(90deg,var(--primary),var(--primary-2));box-shadow:0 10px 24px #ff5c8a59}.btn--secondary{background:linear-gradient(90deg,var(--secondary),var(--secondary-2));box-shadow:0 10px 24px #3ad1ff47}.btn--ghost{background:transparent;border:2px solid var(--card-edge);color:var(--muted)}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn__emoji{font-size:1.15em}.error{margin:0;color:var(--danger);font-weight:600;font-size:15px}.error--global{text-align:center}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#0e0c22;border:1px solid var(--card-edge);color:var(--text);padding:12px 18px;border-radius:999px;box-shadow:var(--shadow);font-size:15px;max-width:calc(100% - 32px);animation:rise .25s ease-out}.spinner{width:64px;height:64px;border-radius:50%;border:6px solid rgba(255,255,255,.12);border-top-color:var(--primary);border-right-color:var(--secondary);animation:spin .9s linear infinite;margin-bottom:6px}.loading__room{margin:0;color:var(--muted)}.mono{font-family:var(--mono);letter-spacing:.2em;color:var(--text);font-size:1.2em}.loading__status{margin:0;min-height:1.5em;font-size:17px}.loading__elapsed{margin:0;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.stuck{margin-top:10px;padding-top:14px;border-top:1px solid var(--card-edge);color:var(--muted);width:100%}.stuck p{margin:0 0 12px}.stuck__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.foot{margin-top:auto;text-align:center;color:var(--muted)}.foot small{display:block}.foot small+small{margin-top:8px}@media(max-width:800px){body:before{width:85vw;right:-42vw;top:32vh;opacity:.03}.app{max-width:520px;padding:20px 16px 32px;gap:20px}.brand__identity{width:min(184px,48vw)}.brand__headline{margin-top:-2px;font-size:clamp(30px,8vw,38px)}.brand__tag{font-size:15px}.home{grid-template-columns:1fr;gap:12px}.home>.card{min-height:0;padding:22px 20px}.home .divider{display:flex}}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.spinner,.toast{animation-duration:.01ms;animation-iteration-count:1}}.warmup{overflow:hidden;background:radial-gradient(ellipse at 50% 0%,#2a4168 0%,transparent 65%),var(--card);gap:14px}.warmup__eyebrow{color:var(--secondary);letter-spacing:.18em;font-size:12px;font-weight:800;margin:0;text-transform:uppercase}.warmup__progress-wrap{width:100%;height:8px;background:#ffffff18;border-radius:99px;overflow:hidden}.warmup__progress-bar{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,var(--secondary-2),var(--secondary));transition:width .5s linear}.warmup__progress-bar--done{background:var(--ok);transition:width .3s ease}.warmup__progress-bar--failed{background:var(--danger)}.warmup__timer{margin:0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.warmup__timer-hint{font-weight:700;color:var(--text)}.warmup__status{margin:0;min-height:1.5em;font-size:16px;color:var(--muted)}.warmup__trivia{width:100%;background:#12102a99;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px}.warmup__trivia-label{margin:0;font-size:13px;font-weight:700;color:var(--secondary);text-transform:uppercase;letter-spacing:.1em}.warmup__trivia-q{margin:0;font-size:clamp(17px,4vw,21px);font-weight:700;line-height:1.4}.warmup__trivia-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.trivia-choice{background:#ffffff0e;border:1px solid #ffffff22;border-radius:10px;color:var(--text);font-family:var(--font);font-size:15px;padding:10px 12px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.trivia-choice:hover{background:#ffffff1a;border-color:var(--secondary)}.trivia-choice--correct{background:#16533388!important;border-color:var(--ok)!important;color:var(--ok);font-weight:700}.trivia-choice--wrong{background:#53161688!important;border-color:var(--danger)!important;color:var(--danger)}.warmup__trivia-ans{margin:0;font-size:14px;color:var(--muted);line-height:1.5;border-top:1px solid #ffffff18;padding-top:10px}.warmup__failed{width:100%;background:#53161640;border:1px solid var(--danger);border-radius:14px;padding:18px;text-align:center}.warmup__failed p{margin:0 0 8px;font-weight:700}.warmup__failed-hint{color:var(--muted);font-weight:400!important;font-size:14px;margin-bottom:14px!important}.feedback-dialog{width:min(560px,calc(100vw - 32px));border:1px solid var(--card-edge);border-radius:18px;padding:24px;background:var(--card);color:var(--text)}.feedback-dialog::backdrop{background:#000000a6}.feedback-dialog form{display:grid;gap:14px}.feedback-dialog h2,.feedback-dialog p{margin:0}.feedback-dialog label{display:grid;gap:6px;text-align:left}.feedback-dialog input,.feedback-dialog textarea,.admin-credit-form input{width:100%;padding:10px;border:1px solid var(--card-edge);border-radius:10px;background:var(--bg);color:var(--text);font:inherit}.feedback-dialog textarea{resize:vertical}.feedback-actions{display:flex;flex-wrap:wrap;gap:12px}.feedback-button{align-self:center}.foot a{color:var(--muted)}.admin-app{max-width:1400px}#admin-content{display:grid;gap:24px}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.admin-toolbar h2{margin:0}.admin-table-wrap{overflow-x:auto}.admin-table-wrap table{width:100%;border-collapse:collapse;text-align:left}.admin-table-wrap th,.admin-table-wrap td{padding:12px;border-bottom:1px solid var(--card-edge);vertical-align:top;overflow-wrap:anywhere}.admin-table-wrap th{color:var(--muted)}.admin-comment{white-space:pre-wrap;min-width:220px}.admin-credit-form{min-width:250px;display:flex;flex-wrap:wrap;gap:8px}.admin-credit-form input{width:100%}.admin-credit-form span{width:100%;font-size:14px}.admin-context{min-width:260px;max-width:480px;margin:12px 0}.admin-context dt{color:var(--muted);font-size:12px;margin-top:10px;text-transform:capitalize}.admin-context dd{margin:2px 0 0;overflow-wrap:anywhere}
