.tsu-toasts{--tsu-toast-lift: 0px;position:fixed;bottom:calc(var(--sp-3) + var(--safe-bottom) + var(--tsu-toast-lift));left:var(--sp-3);z-index:120;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);width:min(420px,calc(100vw - var(--sp-3) * 2));pointer-events:none}.tsu-toasts--lifted{--tsu-toast-lift: 76px}@media(max-width:560px){body:has(.hp-panel:not([hidden]) .hp-qb__dock) .tsu-toasts{--tsu-toast-lift: 96px}}.tsu-toast{--tsu-toast-accent: var(--info);pointer-events:auto;display:flex;align-items:flex-start;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-solid-2);box-shadow:var(--shadow-md);color:var(--text);font-size:var(--fs-sm);font-weight:600;text-align:left;animation:rise-in var(--t-med) var(--ease-out) both}.tsu-toast--info{--tsu-toast-accent: var(--info)}.tsu-toast--success{--tsu-toast-accent: var(--success)}.tsu-toast--error{--tsu-toast-accent: var(--danger)}.tsu-toast__dot{flex:none;width:8px;height:8px;margin-top:var(--sp-1);border-radius:var(--r-pill);background:var(--tsu-toast-accent)}.tsu-toast__text{min-width:0;overflow-wrap:anywhere}.tsu-spinner{display:inline-block;flex:none;line-height:0}.tsu-spinner svg{animation:tsu-spinner-rotate .9s linear infinite}.tsu-spinner__track{stroke:var(--border)}.tsu-spinner__arc{stroke:currentColor;stroke-dasharray:90 160}@keyframes tsu-spinner-rotate{to{transform:rotate(360deg)}}.tsu-spinner svg{transform-origin:50% 50%}@media(prefers-reduced-motion:reduce){.tsu-spinner svg{animation-duration:2s}}.tsu-btn{--tsu-btn-bg: var(--surface-2);--tsu-btn-fg: var(--text);--tsu-btn-edge: color-mix(in srgb, var(--bg) 55%, black);--tsu-btn-pad-y: var(--sp-3);--tsu-btn-pad-x: var(--sp-5);--tsu-btn-min-h: 48px;--tsu-btn-fs: var(--fs-md);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tsu-btn-min-h);padding:var(--tsu-btn-pad-y) var(--tsu-btn-pad-x);border-radius:var(--r-md);background:var(--tsu-btn-bg);color:var(--tsu-btn-fg);font-size:var(--tsu-btn-fs);font-weight:700;letter-spacing:-.01em;line-height:1.2;text-align:center;box-shadow:var(--press) var(--tsu-btn-edge);transform:translateY(0);transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),filter var(--t-fast) linear,opacity var(--t-fast) linear;touch-action:manipulation;-webkit-user-select:none;user-select:none}.tsu-btn:hover:not(:disabled,[aria-disabled=true]){filter:brightness(1.08)}.tsu-btn:active:not(:disabled,[aria-disabled=true]){transform:translateY(4px);box-shadow:0 1px 0 var(--tsu-btn-edge)}.tsu-btn:disabled,.tsu-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:0 2px 0 var(--tsu-btn-edge)}.tsu-btn--loading[aria-disabled=true]{cursor:progress}.tsu-btn--full{display:flex;width:100%}.tsu-btn__label{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0}.tsu-btn--loading .tsu-btn__label{opacity:0}.tsu-btn__spinner{position:absolute;inset:0;display:grid;place-items:center}.tsu-btn--says.tsu-btn--loading .tsu-btn__label{opacity:1}.tsu-btn__busy{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2)}.tsu-btn__busyspin{display:inline-flex;flex:none}.tsu-btn--primary{--tsu-btn-bg: var(--accent);--tsu-btn-fg: var(--text-on-bright);--tsu-btn-edge: color-mix(in srgb, var(--accent) 55%, black)}.tsu-btn--ghost{--tsu-btn-bg: transparent;--tsu-btn-fg: var(--text-dim);--tsu-btn-edge: transparent;border:1px solid var(--border);box-shadow:none}.tsu-btn--ghost:hover:not(:disabled,[aria-disabled=true]){border-color:var(--border-strong);color:var(--text);background:var(--surface)}.tsu-btn--ghost:active:not(:disabled,[aria-disabled=true]){transform:translateY(1px);box-shadow:none}.tsu-btn--secondary{--tsu-btn-bg: var(--surface-solid-2);--tsu-btn-fg: var(--text);--tsu-btn-edge: color-mix(in srgb, var(--surface-solid) 65%, black);border:1px solid var(--border)}.tsu-btn--danger{--tsu-btn-bg: var(--danger);--tsu-btn-fg: var(--text-on-bright);--tsu-btn-edge: color-mix(in srgb, var(--danger) 55%, black)}.tsu-btn--success{--tsu-btn-bg: var(--success);--tsu-btn-fg: var(--text-on-bright);--tsu-btn-edge: color-mix(in srgb, var(--success) 55%, black)}.tsu-btn--choice{--tsu-btn-bg: var(--surface-solid-2);--tsu-btn-fg: var(--text);--tsu-btn-edge: color-mix(in srgb, var(--surface-solid) 70%, black);border-radius:var(--r-lg);font-size:var(--fs-lg);min-height:64px}.tsu-btn--sm{--tsu-btn-pad-y: var(--sp-2);--tsu-btn-pad-x: var(--sp-3);--tsu-btn-min-h: 38px;--tsu-btn-fs: var(--fs-sm);border-radius:var(--r-sm)}.tsu-btn--lg{--tsu-btn-pad-y: var(--sp-4);--tsu-btn-pad-x: var(--sp-6);--tsu-btn-min-h: 64px;--tsu-btn-fs: var(--fs-xl);border-radius:var(--r-lg)}a.tsu-btn{white-space:nowrap}a.tsu-btn:hover{text-decoration:none}.tsu-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:0}.tsu-card--p-sm{padding:var(--sp-3)}.tsu-card--p-md{padding:var(--sp-5)}.tsu-card--p-lg{padding:var(--sp-6)}.tsu-card--glow{border-color:var(--border-strong);box-shadow:var(--shadow-md),var(--shadow-glow)}.tsu-field{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.tsu-field__label{font-size:var(--fs-sm);font-weight:700;color:var(--text-dim)}.tsu-field__input{width:100%;min-height:52px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-solid);color:var(--text);font-size:var(--fs-md);transition:border-color var(--t-fast) linear,box-shadow var(--t-fast) linear,background var(--t-fast) linear}.tsu-field__input::placeholder{color:var(--text-faint)}.tsu-field__input:hover:not(:disabled){border-color:var(--border-strong)}.tsu-field__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);background:var(--surface-solid-2)}.tsu-field__input:disabled{opacity:.55;cursor:not-allowed}.tsu-field--big .tsu-field__input{min-height:84px;font-family:var(--font-mono);font-size:var(--fs-3xl);font-weight:800;text-align:center;letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;border-radius:var(--r-lg)}.tsu-field--error .tsu-field__input{border-color:var(--danger)}.tsu-field--error .tsu-field__input:focus{box-shadow:0 0 0 4px var(--danger-soft)}.tsu-field__error,.tsu-field__hint{font-size:var(--fs-sm);line-height:1.35}.tsu-field__error{color:var(--danger);font-weight:600}.tsu-field__hint{color:var(--text-faint)}.tsu-modal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:calc(var(--sp-4) + var(--safe-top)) var(--sp-4) calc(var(--sp-4) + var(--safe-bottom));background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in var(--t-fast) ease both}.tsu-modal__panel{width:100%;max-height:100%;display:flex;flex-direction:column;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:pop-in var(--t-med) var(--ease-out) both;overflow:hidden}.tsu-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-2) var(--sp-5)}.tsu-modal__title{font-size:var(--fs-xl);margin:0}.tsu-modal__close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:var(--r-pill);color:var(--text-dim);background:var(--surface);transition:color var(--t-fast) linear,background var(--t-fast) linear}.tsu-modal__close:hover{color:var(--text);background:var(--surface-2)}.tsu-modal__body{padding:var(--sp-3) var(--sp-5) var(--sp-5);overflow-y:auto;-webkit-overflow-scrolling:touch}.tsu-countdown{--tsu-cd: var(--tsu-cd-override, var(--tsu-cd-size, 140px));flex:none;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.tsu-countdown__ring{position:relative;flex:none;display:grid;place-items:center;width:var(--tsu-cd);height:var(--tsu-cd)}.tsu-countdown svg{position:absolute;inset:0;width:100%;height:100%}.tsu-countdown__track{stroke:var(--surface-2);stroke-width:8}.tsu-countdown__arc{stroke:var(--accent);stroke-width:8;transition:stroke-dashoffset var(--t-fast) linear,stroke var(--t-med) linear;filter:drop-shadow(0 0 6px var(--accent-soft))}.tsu-countdown--urgent .tsu-countdown__arc{stroke:var(--danger)}.tsu-countdown--urgent .tsu-countdown__number{color:var(--danger)}.tsu-countdown__number{position:relative;font-size:calc(var(--tsu-cd) * .36);line-height:1;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--text)}.tsu-countdown__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--text-faint);text-align:center;line-height:1.2;max-width:18ch}.tsu-countdown--beat .tsu-countdown__number{animation:tsu-countdown-beat var(--t-med) var(--ease-out)}@keyframes tsu-countdown-beat{0%{transform:scale(1.16)}to{transform:scale(1)}}.tsu-progress{position:relative;width:100%;overflow:hidden;background:var(--surface-2);border-radius:var(--r-pill)}.tsu-progress__fill{width:100%;height:100%;transform-origin:left center;transform:scaleX(0);border-radius:inherit;transition:transform .11s linear;will-change:transform}.tsu-avatar{--tsu-avatar-a: var(--accent);flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-pill);background:var(--tsu-avatar-a);color:var(--tsu-avatar-fg, var(--text-on-bright));font-weight:800;letter-spacing:-.02em;line-height:1;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 24%,transparent),var(--shadow-sm);-webkit-user-select:none;user-select:none}.tsu-gate-app{display:contents}.tsu-gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding-bottom:calc(var(--sp-5) + var(--safe-bottom))}.tsu-gate__hit{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);padding:calc(var(--sp-6) + var(--safe-top)) var(--sp-5) var(--sp-4);overflow:hidden;text-align:center;color:var(--text);touch-action:manipulation}.tsu-gate__icon{color:var(--accent);animation:pulse calc(var(--t-fluid) * 3) ease-in-out infinite;filter:drop-shadow(0 0 24px var(--accent-soft))}.tsu-gate__title{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em}.tsu-gate__sub{max-width:30ch;color:var(--text-dim);font-size:var(--fs-sm);font-weight:500;line-height:1.5}.tsu-gate__cta{display:inline-flex;align-items:center;justify-content:center;min-height:60px;min-width:200px;padding:var(--sp-3) var(--sp-6);border-radius:var(--r-lg);background:var(--accent);color:var(--text-on-bright);box-shadow:var(--press) color-mix(in srgb,var(--accent) 55%,black);font-size:var(--fs-lg);font-weight:800}.tsu-gate__hit:active .tsu-gate__cta{transform:translateY(4px);box-shadow:0 1px color-mix(in srgb,var(--accent) 55%,black)}.tsu-gate__skip{flex:none;min-height:48px;margin-top:var(--sp-3);padding:0 var(--sp-5);font-size:var(--fs-sm);font-weight:700;color:var(--text-dim);border-radius:var(--r-pill);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:4px}.tsu-gate__skip:hover{color:var(--text);background:var(--surface)}.tsu-gate__skip:focus-visible{outline:3px solid var(--accent);outline-offset:2px;color:var(--text)}@media(max-height:480px){.tsu-gate{padding-bottom:calc(var(--sp-3) + var(--safe-bottom))}.tsu-gate__hit{gap:var(--sp-2);padding:calc(var(--sp-4) + var(--safe-top)) var(--sp-5) var(--sp-2)}.tsu-gate__icon svg{width:44px;height:44px}.tsu-gate__title{font-size:var(--fs-xl)}.tsu-gate__sub{max-width:52ch;line-height:1.4}.tsu-gate__cta{min-height:52px;margin-top:var(--sp-1)}.tsu-gate__skip{margin-top:var(--sp-1)}}.tsu-mute{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color var(--t-fast) linear,border-color var(--t-fast) linear,background var(--t-fast) linear,transform var(--t-fast) var(--ease-out);touch-action:manipulation}.tsu-mute:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.tsu-mute:active{transform:scale(.94)}.tsu-mute--off{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:var(--danger-soft)}.tsu-choice{--tsu-choice: var(--choice-0);--tsu-choice-dark: var(--choice-0-dark);--tsu-choice-fg: var(--choice-0-fg);position:relative;display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:76px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-rig);background:var(--tsu-choice);color:var(--tsu-choice-fg);font-size:var(--fs-lg);font-weight:800;letter-spacing:-.01em;text-align:left;box-shadow:var(--press) var(--tsu-choice-dark);transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),background-color var(--t-med) linear,color var(--t-med) linear;touch-action:manipulation;-webkit-user-select:none;user-select:none;overflow:hidden}.tsu-choice--c0{--tsu-choice: var(--choice-0);--tsu-choice-dark: var(--choice-0-dark);--tsu-choice-fg: var(--choice-0-fg)}.tsu-choice--c1{--tsu-choice: var(--choice-1);--tsu-choice-dark: var(--choice-1-dark);--tsu-choice-fg: var(--choice-1-fg)}.tsu-choice--c2{--tsu-choice: var(--choice-2);--tsu-choice-dark: var(--choice-2-dark);--tsu-choice-fg: var(--choice-2-fg)}.tsu-choice--c3{--tsu-choice: var(--choice-3);--tsu-choice-dark: var(--choice-3-dark);--tsu-choice-fg: var(--choice-3-fg)}.tsu-choice:active:not(:disabled,[aria-disabled=true]){transform:translateY(4px);box-shadow:0 1px 0 var(--tsu-choice-dark)}.tsu-choice__shape{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:var(--r-rig-tight);background:color-mix(in srgb,var(--text-on-bright) 20%,transparent);color:inherit}.tsu-choice__label{flex:1;min-width:0;line-height:1.2;overflow-wrap:anywhere}.tsu-choice__mark,.tsu-choice__count{flex:none;display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 var(--sp-2);border-radius:var(--r-pill);background:color-mix(in srgb,var(--text-on-bright) 28%,transparent);color:inherit;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.tsu-choice--picked{transform:translateY(2px);box-shadow:0 0 0 4px var(--text),0 3px 0 var(--tsu-choice-dark),var(--shadow-md)}.tsu-choice--correct{box-shadow:0 0 0 4px var(--success),var(--press) var(--tsu-choice-dark),0 0 34px var(--success-soft);animation:pop-in var(--t-med) var(--ease-out) both}.tsu-choice--disabled,.tsu-choice:disabled{cursor:not-allowed}.tsu-choice--disabled.tsu-choice--idle,.tsu-choice--dim{background:color-mix(in srgb,var(--tsu-choice) 50%,var(--bg));color:var(--text);box-shadow:0 3px color-mix(in srgb,var(--tsu-choice-dark) 50%,var(--bg))}.tsu-choice--wrong{background:color-mix(in srgb,var(--tsu-choice) 38%,var(--bg));color:var(--text);box-shadow:0 3px color-mix(in srgb,var(--tsu-choice-dark) 40%,var(--bg));animation:shake var(--t-slow) var(--ease-out) both}@media(max-width:380px){.tsu-choice{font-size:var(--fs-md);padding:var(--sp-3)}.tsu-choice__shape{width:40px;height:40px}}.tsu-lb{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);width:100%}.tsu-lb__empty{color:var(--text-faint);font-size:var(--fs-sm);text-align:center;padding:var(--sp-4)}.tsu-lb__row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);min-height:56px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface)}.tsu-lb__row--me{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.tsu-lb__row--top1 .tsu-lb__rank{color:var(--text-on-bright);background:var(--gold)}.tsu-lb__row--top2 .tsu-lb__rank{color:var(--text-on-bright);background:var(--silver)}.tsu-lb__row--top3 .tsu-lb__rank{color:var(--text-on-bright);background:var(--bronze)}.tsu-lb__rank{flex:none;display:grid;place-items:center;min-width:30px;height:30px;padding:0 var(--sp-1);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-sm);font-weight:800;font-variant-numeric:tabular-nums}.tsu-lb__name{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-2);font-weight:700}.tsu-lb__nametext{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tsu-lb__you{flex:none;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-bright);font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.tsu-lb__streak{flex:none;font-size:var(--fs-xs);font-weight:800;color:var(--warning)}.tsu-lb__delta{flex:none;font-size:var(--fs-xs);font-weight:800;font-variant-numeric:tabular-nums}.tsu-lb__delta--up{color:var(--success)}.tsu-lb__delta--down{color:var(--danger)}.tsu-lb__round{flex:none;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);background:var(--success-soft);color:var(--success);font-size:var(--fs-xs);font-weight:800;font-variant-numeric:tabular-nums}.tsu-lb__score{flex:none;min-width:4.5ch;text-align:right;font-size:var(--fs-lg);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tsu-runtime{display:flex;flex-direction:column;gap:var(--sp-2)}.tsu-runtime__head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}.tsu-runtime__eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.tsu-runtime__total{font-size:var(--fs-xl);font-variant-numeric:tabular-nums;color:var(--text)}.tsu-runtime__per{font-size:var(--fs-xs);color:var(--text-dim)}.tsu-runtime__bar{display:flex;height:10px;border-radius:var(--r-pill);overflow:hidden;background:var(--surface-2)}.tsu-runtime__seg{height:100%;min-width:2px}.tsu-runtime__legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}.tsu-runtime__item{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-dim)}.tsu-runtime__dot{width:8px;height:8px;border-radius:50%;flex:none}.tsu-runtime__value{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.tsu-runtime--compact .tsu-runtime__total{font-size:var(--fs-lg)}.tsu-phase{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;animation:tsu-phase-in var(--t-slow) var(--ease-out) both}@keyframes tsu-phase-in{0%{opacity:0;transform:translateY(12px) scale(.995)}to{opacity:1;transform:none}}.tsu-badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:max(11px,.68em);font-weight:800;letter-spacing:.06em;line-height:1.4;white-space:nowrap;vertical-align:middle}.tsu-badge--vip{color:var(--text-on-bright);background:linear-gradient(135deg,var(--gold-light),var(--gold) 45%,var(--gold-deep));border:1px solid var(--gold-deep)}.tsu-badge--pro{color:var(--accent);border:1px solid var(--accent);background:transparent;font-size:max(11px,.62em);letter-spacing:.08em}.tsu-played{display:inline-flex;flex:none;align-items:center;min-height:var(--hp-ctl-h, 32px)}.tsu-played__pill{padding:1px 8px;border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text-dim);font-size:var(--fs-xs);font-weight:600;line-height:1.4;white-space:nowrap}.home{min-height:100%;display:flex;align-items:center;justify-content:center;padding:calc(var(--sp-5) + var(--safe-top)) var(--sp-4) calc(var(--sp-5) + var(--safe-bottom));background:var(--bg)}.home__inner{width:min(100%,calc(100vw - 2rem));max-width:420px;display:flex;flex-direction:column;gap:var(--sp-4);animation:rise-in var(--t-slow) var(--ease-out) both}.home__head{text-align:center}.home__title{font-size:var(--fs-3xl)}.home__form{display:flex;flex-direction:column;gap:var(--sp-2);background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig);padding:var(--sp-4);box-shadow:var(--shadow-panel)}.home__label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.home__code,.home__name{width:100%;background:var(--surface-solid);border:2px solid var(--border);border-radius:var(--r-md);color:var(--text);transition:border-color var(--t-fast) ease,box-shadow var(--t-fast) ease}.home__code{font-family:var(--font-mono);font-size:var(--fs-4xl);font-weight:700;line-height:1.1;letter-spacing:.16em;text-align:center;text-transform:uppercase;text-indent:.16em;padding:var(--sp-3) var(--sp-2);min-height:76px}.home__code::placeholder{color:var(--text-faint);opacity:.5}.home__code:focus,.home__name:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-glow)}.home__hint{font-size:var(--fs-xs);color:var(--text-faint);text-align:center;margin-bottom:var(--sp-2)}.home__name{font-size:var(--fs-lg);font-weight:600;padding:0 var(--sp-4);min-height:56px}.home__name::placeholder{color:var(--text-faint)}.home__error{margin-top:var(--sp-1);background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);font-weight:600;padding:var(--sp-3);animation:shake var(--t-slow) ease both}.home__actions{margin-top:var(--sp-3)}.home__actions button{width:100%;min-height:60px}.home__conn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-dim)}.home__conn-dot{width:9px;height:9px;border-radius:var(--r-pill);background:var(--text-faint);flex:none}.home__conn--on .home__conn-dot{background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}.home__conn--off .home__conn-dot{background:var(--warning);box-shadow:0 0 0 4px var(--warning-soft);animation:pulse calc(var(--t-slow) * 3) ease-in-out infinite}.home__tip{text-align:center;font-size:var(--fs-xs);color:var(--text-faint)}.home__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--sp-3);text-align:center;padding-top:var(--sp-2)}.home__host{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--sp-4);font-size:var(--fs-sm);font-weight:600;color:var(--text-dim)}.home__host:hover{color:var(--text)}.home__version{color:var(--text-faint);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.home__credit{flex-basis:100%;margin:0;color:var(--text-faint);font-size:var(--fs-xs)}.home__credit a{color:var(--text-dim);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--text-dim) 40%,transparent);text-underline-offset:.15em}.home__credit a:hover,.home__credit a:focus-visible{color:var(--text)}@media(max-height:600px){.home{padding-top:calc(var(--sp-4) + var(--safe-top));padding-bottom:calc(var(--sp-4) + var(--safe-bottom))}.home__inner{gap:var(--sp-3)}.home__title{font-size:var(--fs-2xl)}.home__code{font-size:var(--fs-3xl);min-height:64px;padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.home__hint{margin-bottom:0}.home__tip{display:none}}@media(orientation:landscape)and (max-height:520px){.home{padding-top:calc(var(--sp-3) + var(--safe-top));padding-bottom:calc(var(--sp-3) + var(--safe-bottom))}.home__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head head" "form form" "conn foot";align-items:center;max-width:640px;gap:var(--sp-2)}.home__head{grid-area:head}.home__conn{grid-area:conn;justify-content:flex-start}.home__form{grid-area:form;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"label-code label-name" "code name" "hint ." "error error" "actions actions";column-gap:var(--sp-3);row-gap:var(--sp-1);padding:var(--sp-3)}.home__label--code{grid-area:label-code}.home__label--name{grid-area:label-name}.home__code{grid-area:code;font-size:var(--fs-2xl);min-height:56px;padding-top:0;padding-bottom:0}.home__name{grid-area:name}.home__hint{grid-area:hint;margin-bottom:0}.home__error{grid-area:error}.home__actions{grid-area:actions;margin-top:var(--sp-2)}.home__actions button{min-height:52px}.home__foot{grid-area:foot;padding-top:0}}.tsu-fb{display:flex;flex-direction:column;gap:var(--sp-3)}.tsu-fb--card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-3);text-align:center}.tsu-fb__title{margin:0;font-size:var(--fs-lg)}.tsu-fb__sub{margin:0;font-size:var(--fs-sm);color:var(--text-dim)}.tsu-fb--card .tsu-fb__sub{margin-top:-4px}.tsu-fb__stars,.tsu-fb__picture{display:flex;gap:6px;margin:0}.tsu-fb--card .tsu-fb__stars,.tsu-fb--card .tsu-fb__picture{justify-content:center}.tsu-fb__star{min-width:48px;min-height:48px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:var(--r-sm);background:transparent;color:var(--border-strong);cursor:pointer;transition:color var(--t-fast) ease,transform var(--t-fast) ease}.tsu-fb__star svg{width:40px;height:40px}.tsu-fb--dialog .tsu-fb__star svg{width:36px;height:36px}.tsu-fb__star--on{color:var(--accent)}.tsu-fb__star:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tsu-fb__star:active:not(:disabled){transform:scale(.92)}.tsu-fb__picture .tsu-fb__star{cursor:default}@media(prefers-reduced-motion:reduce){.tsu-fb__star{transition:none}}.tsu-fb__fields{display:flex;flex-direction:column;gap:var(--sp-3);text-align:left}.tsu-fb__optional{font-weight:400;color:var(--text-faint)}.tsu-fb__comment{min-height:84px;resize:vertical;font:inherit}.tsu-fb__actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.tsu-fb__error{margin:0;font-size:var(--fs-sm);color:var(--danger)}.tsu-fb__done{margin:0;font-weight:700}.pl-app{height:100%;display:flex;flex-direction:column;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);overflow:hidden;background:var(--bg)}.pl-app--plain{overflow:auto;justify-content:center}.pl-top{flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-rig);background:var(--surface-solid);min-height:56px}.pl-top__code{font-weight:800;font-size:var(--fs-sm);letter-spacing:.2em;color:var(--text);flex:none}.pl-top__round{flex:1;min-width:0;font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-top__right{flex:none;display:flex;align-items:center;gap:var(--sp-2)}.pl-conn{display:inline-flex;align-items:center}.pl-conn__dot{width:9px;height:9px;border-radius:var(--r-pill);background:var(--success)}.pl-conn--on .pl-conn__dot{box-shadow:0 0 0 3px var(--success-soft)}.pl-conn--off .pl-conn__dot{background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft);animation:pulse calc(var(--t-slow) * 3) ease-in-out infinite}.pl-banner{flex:none;margin:0;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:600;text-align:center;color:var(--text-dim);background:var(--surface);border-bottom:1px solid var(--border)}.pl-banner--warn{color:var(--text);background:var(--warning-soft);border-bottom-color:var(--warning)}.pl-banner--error{color:var(--text);background:var(--danger-soft);border-bottom-color:var(--danger)}.pl-stage{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}.pl-stage>*{grid-area:1 / 1;min-width:0;min-height:0;display:flex;flex-direction:column}.pl-screen{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4) var(--sp-4) var(--sp-3);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.pl-screen>*{flex:none}.pl-waiting{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);text-align:center}.pl-foot{flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border-rig);background:var(--surface-solid);min-height:52px}.pl-foot__name{flex:1;min-width:0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-foot__score{flex:none;font-family:var(--font-mono);font-weight:800;font-size:var(--fs-lg);color:var(--accent)}.pl-pause{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:color-mix(in srgb,var(--bg-stage) 90%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in var(--t-med) ease both}.pl-pause__card{background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-rig);box-shadow:var(--shadow-lg);padding:var(--sp-5);text-align:center;max-width:320px}.pl-pause__title{font-size:var(--fs-2xl);font-weight:800;margin-bottom:var(--sp-2)}.pl-stat{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0;background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig);padding:var(--sp-3) var(--sp-2)}.pl-stat__value{font-size:var(--fs-xl);font-weight:800;line-height:1.1;white-space:nowrap}.pl-stat__label{font-size:var(--fs-xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.pl-stat--streak .pl-stat__value{color:var(--warning)}.pl-delta{display:inline-flex;align-items:center;gap:2px;letter-spacing:normal}.pl-delta--up{color:var(--success);font-weight:700}.pl-delta--down{color:var(--danger);font-weight:700}.pl-actions{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;max-width:340px;margin:0 auto}.pl-actions button{width:100%;min-height:56px}.pl-lobby{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-5);text-align:center}.pl-lobby__hero{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.pl-lobby__avatar{transform-origin:center}.pl-lobby__title{font-size:var(--fs-3xl)}.pl-lobby__name{font-size:var(--fs-lg);font-weight:700;color:var(--text-dim)}.pl-lobby__stats{display:flex;gap:var(--sp-3)}.pl-lobby__wait{color:var(--text-dim);font-size:var(--fs-sm)}.pl-tip{display:flex;align-items:center;gap:var(--sp-3);text-align:left;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:var(--r-rig);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);min-height:68px;animation:fade-in var(--t-slow) ease both}.pl-tip__mark{font-size:var(--fs-xl);color:var(--accent);flex:none}.pl-count{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);text-align:center}.pl-count__round{font-size:var(--fs-sm);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.pl-count__ring{display:flex;align-items:center;justify-content:center;min-height:160px}.pl-count__pulse{width:120px;height:120px;border-radius:var(--r-rig);border:4px solid var(--accent);opacity:.6;animation:pulse calc(var(--t-fluid) * 2) ease-in-out infinite}.pl-count__label{font-size:var(--fs-3xl)}.pl-count__repeat{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-rig-tight);background:var(--accent-soft);color:var(--accent);font-weight:800;animation:pop-in var(--t-med) var(--ease-out) both}.pl-count__brief{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-2);max-width:34ch;text-align:left;color:var(--text-dim);font-size:var(--fs-sm)}.pl-count__brief li{position:relative;padding-left:var(--sp-4)}.pl-count__brief li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:var(--r-pill);background:var(--accent)}.pl-q{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--sp-3)}.pl-q>*{flex-shrink:0}.pl-q__head{display:flex;align-items:center;gap:var(--sp-3)}.pl-q__status{flex:1;min-width:0}.pl-q__title{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.025em;line-height:1.1}.pl-q__sub{font-size:var(--fs-sm);color:var(--text-dim);margin-top:2px}.pl-q__ring{--pl-ring: 68px;position:relative;flex:none;width:var(--pl-ring);height:var(--pl-ring);display:grid;place-items:center}.pl-q__ring svg{position:absolute;inset:0;width:100%;height:100%}.pl-q__ring-track{stroke:var(--border-rig)}.pl-q__ring-arc{stroke:var(--accent);transition:stroke-dashoffset var(--t-fast) linear,stroke var(--t-med) ease}.pl-q__ring--wait .pl-q__ring-arc{stroke:var(--info)}.pl-q__ring--urgent .pl-q__ring-arc{stroke:var(--danger)}.pl-q__ring--urgent{animation:pulse calc(var(--t-slow) * 2.4) ease-in-out infinite}.pl-q__ring-num{position:relative;font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:800;font-variant-numeric:tabular-nums}.pl-q__ring--urgent .pl-q__ring-num{color:var(--danger)}.pl-clip{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig);padding:var(--sp-2) var(--sp-4)}.pl-clip[hidden],.pl-repeat[hidden]{display:none}.pl-clip__icon{display:flex;align-items:flex-end;gap:3px;height:16px;flex:none}.pl-clip__icon i{display:block;width:3px;height:16px;border-radius:2px;background:var(--text-faint);transform:scaleY(.3125);transform-origin:bottom}.pl-clip--playing .pl-clip__icon i{background:var(--accent);animation:pl-eq var(--t-fluid) ease-in-out infinite}.pl-clip--playing .pl-clip__icon i:nth-child(2){animation-delay:.16s}.pl-clip--playing .pl-clip__icon i:nth-child(3){animation-delay:.32s}@keyframes pl-eq{0%,to{transform:scaleY(.3125)}50%{transform:scaleY(1)}}.pl-clip__bar{flex:1;height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}.pl-clip__fill{width:100%;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left center;transition:transform var(--t-fast) linear}.pl-clip__pass{flex:none;font-size:var(--fs-xs);font-weight:800;letter-spacing:.04em;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.pl-repeat{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig);padding:var(--sp-1) var(--sp-4);animation:fade-in var(--t-fast) ease both}.pl-repeat__num{flex:none;min-width:1.2ch;text-align:center;font-family:var(--font-mono);font-size:var(--fs-3xl);font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--accent)}.pl-repeat__text{display:flex;flex-direction:column;min-width:0;font-size:var(--fs-sm);font-weight:700}.pl-repeat__text em{font-style:normal;font-size:var(--fs-xs);font-weight:700;color:var(--text-faint)}.pl-choices{display:grid;grid-template-columns:1fr;gap:var(--sp-4);margin-top:auto}.pl-choices>*{width:100%;min-height:64px}.pl-q--picture .pl-choices{grid-template-columns:1fr 1fr;column-gap:var(--sp-3)}.pl-q--picture .pl-choices>:last-child:nth-child(odd){grid-column:1 / -1}.pl-q--picture .tsu-choice{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-md)}.pl-q--picture .tsu-choice__shape{width:32px;height:32px}.pl-q--picture .tsu-choice__shape svg{width:20px;height:20px}.pl-answered{flex:none;min-height:22px;text-align:center;font-size:var(--fs-sm);color:var(--text-dim)}.pl-rev{flex:1;display:flex;flex-direction:column;gap:var(--sp-3)}.pl-rev__banner{border-radius:var(--r-lg);border:1px solid var(--border);padding:var(--sp-4);text-align:center}.pl-rev__banner--ok{background:var(--success-soft);border-color:var(--success);animation:rise-in var(--t-slow) var(--ease-out) both}.pl-rev__banner--no{background:var(--danger-soft);border-color:var(--danger);animation:shake var(--t-slow) ease both}.pl-rev__banner--none{background:var(--surface);animation:fade-in var(--t-med) ease both}.pl-rev__verdict{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.025em}.pl-rev__banner--ok .pl-rev__verdict{color:var(--success)}.pl-rev__banner--no .pl-rev__verdict{color:var(--danger)}.pl-rev__points{font-family:var(--font-mono);font-size:var(--fs-3xl);font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.pl-rev__points-unit{display:block;font-family:var(--font);font-size:var(--fs-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.pl-rev__speed{font-size:var(--fs-sm);color:var(--text-dim);margin-top:var(--sp-1)}.pl-song{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2)}.pl-song__art{width:64px;height:64px;flex:none;border-radius:var(--r-sm);object-fit:cover;background:var(--surface-2)}.pl-song__art--blank{display:grid;place-items:center;font-size:var(--fs-2xl);color:var(--text-faint)}.pl-song__meta{min-width:0}.pl-song__title{font-weight:800;font-size:var(--fs-lg);line-height:1.2;overflow-wrap:anywhere}.pl-song__artist{color:var(--text-dim);font-size:var(--fs-sm);overflow-wrap:anywhere}.pl-song__artist:empty{display:none}.pl-song--text{padding:var(--sp-3)}.pl-rev__note{margin-top:var(--sp-1);font-size:var(--fs-sm);line-height:1.35;color:var(--text);overflow-wrap:anywhere}.pl-rev__note:empty{display:none}.pl-rev__source{margin-top:var(--sp-1);font-size:var(--fs-xs);line-height:1.35;color:var(--text-dim);overflow-wrap:anywhere}.pl-rev__stats{display:flex;gap:var(--sp-2)}.pl-rev__choices{display:grid;grid-template-columns:1fr;gap:var(--sp-2);margin-top:auto}.pl-rev__choice{display:flex;align-items:center;gap:var(--sp-2)}.pl-rev__choice>*:first-child{flex:1;min-width:0;min-height:56px}.pl-rev__count{flex:none;width:64px;text-align:right;font-size:var(--fs-xs);color:var(--text-faint)}.pl-sb{flex:1;display:flex;flex-direction:column;gap:var(--sp-3)}.pl-sb__head{text-align:center}.pl-sb__title{font-size:var(--fs-2xl);letter-spacing:-.025em}.pl-sb__list{animation:rise-in var(--t-med) var(--ease-out) both}.pl-sb__next{text-align:center;font-size:var(--fs-md);color:var(--text-dim)}.pl-sb__next strong{display:inline-grid;place-items:center;min-width:2.2em;margin-left:var(--sp-1);padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums}.pl-sb__next--wait,.pl-sb__next--paused{color:var(--text-faint);font-size:var(--fs-sm)}.pl-sb__next--paused{color:var(--warning);font-weight:700}.pl-sb__you{display:flex;flex-direction:column;gap:var(--sp-1);animation:rise-in var(--t-med) var(--ease-out) both}.pl-sb__gap{text-align:center;letter-spacing:.3em;color:var(--text-faint);padding:var(--sp-1) 0}.pl-sb__chase{text-align:center;font-size:var(--fs-sm);margin-top:auto}.pl-final{position:relative;flex:1;display:flex;flex-direction:column;gap:var(--sp-4)}.pl-final__head{text-align:center}.pl-final__title{font-size:var(--fs-2xl);letter-spacing:-.025em}.pl-podium{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:var(--sp-2)}.pl-podium__col{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);min-width:0}.pl-podium__who{animation:pop-in var(--t-slow) var(--ease-out) both}.pl-podium__name{font-size:var(--fs-sm);font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-podium__score{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-dim)}.pl-podium__block{width:100%;border-radius:var(--r-md) var(--r-md) 0 0;display:grid;place-items:center;font-weight:800;color:var(--text-on-bright);animation:rise-in var(--t-slow) var(--ease-out) both}.pl-podium__block--1{height:118px;background:linear-gradient(180deg,var(--gold),var(--gold-deep));box-shadow:var(--shadow-glow)}.pl-podium__block--2{height:86px;background:linear-gradient(180deg,var(--silver),var(--silver-deep))}.pl-podium__block--3{height:64px;background:linear-gradient(180deg,var(--bronze),var(--bronze-deep))}.pl-podium__block--you{outline:3px solid var(--accent);outline-offset:-3px}.pl-podium__place{font-size:var(--fs-2xl)}.pl-placing{display:flex;align-items:baseline;justify-content:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.pl-placing__rank{font-size:var(--fs-2xl);font-weight:800;color:var(--accent)}.pl-placing__meta{font-size:var(--fs-sm);color:var(--text-dim)}.pl-awards{display:flex;flex-direction:column;gap:var(--sp-2)}.pl-awards__title{font-size:var(--fs-lg)}.pl-award{display:grid;grid-template-columns:1fr auto;gap:0 var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.pl-award__label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.pl-award__who{grid-row:2;font-weight:700}.pl-award__detail{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:var(--fs-sm);color:var(--text-dim);text-align:right}.pl-final__hint{text-align:center;font-size:var(--fs-sm);margin-top:auto}.pl-invite{margin:0;text-align:center;font-size:var(--fs-sm);color:var(--text-dim)}.pl-invite__link{font-weight:700;white-space:nowrap}.pl-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.pl-confetti__bit{position:absolute;top:-6vh;width:8px;height:14px;border-radius:2px;opacity:0;animation-name:pl-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes pl-fall{0%{transform:translate3d(0,-10vh,0) rotate(var(--pl-tilt, 0deg));opacity:0}8%{opacity:1}to{transform:translate3d(0,105vh,0) rotate(calc(var(--pl-tilt, 0deg) + 540deg));opacity:.9}}.pl-ended{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);text-align:center;padding:calc(var(--sp-6) + var(--safe-top)) var(--sp-4) calc(var(--sp-6) + var(--safe-bottom));max-width:420px;margin:0 auto;width:100%}.pl-ended__mark{font-size:var(--fs-4xl);line-height:1}.pl-ended__title{font-size:var(--fs-2xl)}.pl-ended__msg{color:var(--text-dim);overflow-wrap:anywhere}.pl-ended__code{font-size:var(--fs-sm);letter-spacing:.16em}.pl-ended__hint{font-size:var(--fs-xs);max-width:30ch}.pl-q__image{position:relative;display:grid;place-items:center;width:100%;flex:1 1 36vh;min-height:96px;max-height:36vh;background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig);overflow:hidden}.pl-q__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.pl-q__image-missing{padding:var(--sp-4);text-align:center}.pl-rev__image{display:block;width:100%;max-height:40vh;object-fit:contain;background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig)}.pl-q--text{--pl-prompt-size: var(--fs-lg);--pl-tile-size: var(--fs-md)}.pl-q--text[data-fit=m]{--pl-prompt-size: var(--fs-md)}.pl-q--text[data-fit=l]{--pl-prompt-size: var(--fs-md);--pl-tile-size: var(--fs-sm)}.pl-q--text[data-fit=xl]{--pl-prompt-size: var(--fs-sm);--pl-tile-size: var(--fs-sm);gap:var(--sp-2)}.pl-q--text .pl-q__head{align-items:flex-start}.pl-q__prompt{font-size:var(--pl-prompt-size);font-weight:800;line-height:1.25;letter-spacing:-.01em;overflow-wrap:anywhere}.pl-q--text .tsu-choice{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--pl-tile-size)}.pl-q--text .tsu-choice__shape{width:32px;height:32px}.pl-q--text .tsu-choice__shape svg{width:20px;height:20px}.pl-q--text .pl-choices>*{min-height:56px}.pl-q--text:is([data-fit=l],[data-fit=xl]) .pl-choices{row-gap:var(--sp-3)}.pl-q--text[data-fit=xl] .pl-choices{row-gap:var(--sp-2)}.pl-q--text[data-fit=xl] .tsu-choice{padding-block:var(--sp-1)}.pl-q--text[data-fit=xl] .pl-choices>*{min-height:48px}@media(min-width:560px){.pl-screen{width:100%;max-width:560px;margin:0 auto}.pl-choices,.pl-rev__choices{grid-template-columns:1fr 1fr;column-gap:var(--sp-3)}.pl-choices>:last-child:nth-child(odd),.pl-rev__choices>:last-child:nth-child(odd){grid-column:1 / -1}.pl-rev__choice{flex-direction:column;align-items:stretch;gap:var(--sp-1)}.pl-rev__count{width:auto;text-align:center}}@media(max-width:559px){.pl-sb{gap:var(--sp-2)}.pl-sb__head{gap:0}.pl-sb__title{font-size:var(--fs-lg)}.pl-sb__next{font-size:var(--fs-sm)}.pl-sb .tsu-lb{gap:var(--sp-1)}.pl-sb .tsu-lb__row{min-height:40px;padding:var(--sp-1) var(--sp-2);gap:var(--sp-2);border-radius:var(--r-sm)}.pl-sb .tsu-lb__rank{min-width:22px;height:22px;font-size:var(--fs-xs)}.pl-sb .tsu-avatar{display:none}.pl-sb .tsu-lb__name{font-size:var(--fs-sm);gap:var(--sp-1)}.pl-sb .tsu-lb__score{font-size:var(--fs-md)}.pl-sb .tsu-lb__delta,.pl-sb .tsu-lb__streak{font-size:.68rem}.pl-sb__chase{font-size:var(--fs-xs);margin-top:var(--sp-2)}.pl-sb__gap{margin:0;line-height:1}}.pl-count__waiting{font-size:var(--fs-sm);color:var(--text-dim);text-align:center}@media(max-height:600px){.pl-top{min-height:0;padding-top:var(--sp-1);padding-bottom:var(--sp-1)}.pl-foot{min-height:48px;padding-top:var(--sp-1);padding-bottom:var(--sp-1)}.pl-screen{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-2)}.pl-q{gap:var(--sp-2)}.pl-q__ring{--pl-ring: 56px}.pl-q__ring-num{font-size:var(--fs-lg)}.pl-q__title{font-size:var(--fs-xl)}.pl-clip{padding-top:var(--sp-1);padding-bottom:var(--sp-1)}.pl-repeat__num{font-size:var(--fs-2xl)}.pl-choices>*{min-height:60px}.pl-answered{min-height:20px;line-height:20px}}@media(orientation:landscape)and (max-height:520px){.pl-screen{gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);max-width:720px}.pl-choices,.pl-rev__choices{grid-template-columns:1fr 1fr;column-gap:var(--sp-3)}.pl-choices>:last-child:nth-child(odd),.pl-rev__choices>:last-child:nth-child(odd){grid-column:1 / -1}.pl-choices>*{min-height:56px}.pl-q--text{--pl-prompt-size: var(--fs-xl)}.pl-q__title,.pl-lobby__title,.pl-count__label,.pl-rev__verdict,.pl-sb__title,.pl-final__title{font-size:var(--fs-xl)}.pl-rev__points{font-size:var(--fs-2xl)}.pl-count{--tsu-cd-override: clamp(72px, 26vh, 140px);gap:var(--sp-2)}.pl-count__ring{min-height:0}.pl-count__pulse{width:84px;height:84px}.pl-lobby{gap:var(--sp-3)}.pl-tip{min-height:0;padding:var(--sp-2) var(--sp-3)}.pl-podium__block--1{height:78px}.pl-podium__block--2{height:58px}.pl-podium__block--3{height:44px}}@media(orientation:landscape)and (max-height:430px){.pl-app:not(.pl-app--plain){display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"top foot" "banner banner" "stage stage"}.pl-top{grid-area:top;padding-top:2px;padding-bottom:2px}.pl-top .tsu-mute{width:44px;height:44px}.pl-banner{grid-area:banner}.pl-stage{grid-area:stage}.pl-foot{grid-area:foot;max-width:44vw;min-height:0;padding-top:2px;padding-bottom:2px;border-top:0;border-bottom:1px solid var(--border-rig);border-left:1px solid var(--border-rig)}.pl-lobby__avatar,.pl-lobby__name,.pl-count__round{display:none}.pl-q__ring{--pl-ring: 52px}.pl-q__sub{margin-top:0}.pl-choices{row-gap:var(--sp-4)}.pl-choices .tsu-choice{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.pl-q:not(.pl-q--picture,.pl-q--text) .tsu-choice__shape{width:40px;height:40px}.pl-q--picture{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"image head" "image choices" "image answered";column-gap:var(--sp-4);row-gap:var(--sp-2)}.pl-q--picture .pl-q__head{grid-area:head}.pl-q--picture .pl-q__image{grid-area:image;max-height:none;min-height:0}.pl-q--picture .pl-choices{grid-area:choices;align-self:end}.pl-q--picture .pl-answered{grid-area:answered}}.pl-screen:has(>.pl-q--game){overflow:hidden;gap:var(--sp-2);padding:var(--sp-2)}.pl-app:has(.pl-q--game) .pl-foot{display:none}.pl-q--game{gap:var(--sp-2)}.pl-q--game .pl-game{flex:1 1 auto;min-height:0}.pl-game{position:relative;width:100%;overflow:hidden;background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig)}.pl-game__frame{position:absolute;inset:0}.pl-game__frame>*,.pl-game__frame iframe{display:block;width:100%;height:100%;border:0}.pl-game__layer{position:absolute;inset:0;display:grid;place-items:center;padding:var(--sp-3);pointer-events:none}.pl-game__layer--on{pointer-events:auto;background:color-mix(in srgb,var(--bg-stage) 78%,transparent);animation:fade-in var(--t-med) ease both}.pl-game__card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);max-width:28rem;padding:var(--sp-4) var(--sp-5);text-align:center;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-rig);box-shadow:var(--shadow-lg)}.pl-game__verb{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.02em;line-height:1.05;overflow-wrap:anywhere}.pl-game__rule,.pl-game__msg{font-size:var(--fs-lg);font-weight:700;line-height:1.35}.pl-game__small{font-size:var(--fs-sm);color:var(--text-dim)}@media(min-width:560px){.pl-screen:has(>.pl-q--game){max-width:960px}}@media(orientation:landscape)and (max-height:520px){.pl-screen:has(>.pl-q--game){max-width:none}.pl-q--game{display:grid;grid-template-columns:minmax(7.5rem,22%) minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:"head game";column-gap:var(--sp-3)}.pl-q--game .pl-q__head{grid-area:head;flex-direction:column;align-items:flex-start;align-self:start}.pl-q--game .pl-q__title{font-size:var(--fs-lg);overflow-wrap:anywhere}.pl-q--game .pl-game{grid-area:game}.pl-game__verb{font-size:var(--fs-2xl)}}.pl-rev__game{text-align:center;font-size:var(--fs-lg);font-weight:800;color:var(--text-dim);overflow-wrap:anywhere}.pl-top3{display:flex;flex-direction:column;gap:var(--sp-2)}.pl-top3__title{font-size:var(--fs-sm);font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim)}.pl-top3__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.pl-top3__row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);min-height:48px;padding:var(--sp-2) var(--sp-3);background:var(--surface-solid);border:1px solid var(--border-rig);border-radius:var(--r-rig)}.pl-top3__row--you{border-color:var(--accent)}.pl-top3__rank{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-pill);font-weight:800;color:var(--text-on-bright);background:var(--surface-2)}.pl-top3__row:nth-child(1) .pl-top3__rank{background:var(--gold)}.pl-top3__row:nth-child(2) .pl-top3__rank{background:var(--silver)}.pl-top3__row:nth-child(3) .pl-top3__rank{background:var(--bronze)}.pl-top3__name{font-weight:700;overflow-wrap:anywhere}.pl-top3__you{color:var(--accent);font-weight:600}.pl-top3__score{font-family:var(--font-mono);font-weight:800;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.pl-confetti,.pl-game__layer--on,.pl-clip--playing .pl-clip__icon i,.pl-q__ring--urgent,.pl-conn--off .pl-conn__dot,.pl-count__pulse{animation:none}}:root{--bg: #0b0c10;--bg-2: #121719;--bg-glow-a: #202a2b;--bg-glow-b: #1c2023;--surface: rgba(239, 231, 216, .06);--surface-2: rgba(239, 231, 216, .11);--surface-solid: #121719;--surface-solid-2: #1b2224;--border: rgba(239, 231, 216, .16);--border-strong: rgba(239, 231, 216, .3);--text: #f7e8d8;--text-dim: rgba(239, 231, 216, .7);--text-faint: rgba(239, 231, 216, .54);--text-on-bright: #101314;--accent: #e5ad39;--accent-2: #c85c67;--accent-soft: rgba(229, 173, 57, .18);--success: #22c55e;--success-soft: rgba(34, 197, 94, .16);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .16);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .16);--info: #38bdf8;--choice-0: #cd1b30;--choice-0-dark: #931322;--choice-0-fg: var(--text);--choice-1: #1055ff;--choice-1-dark: #003bcd;--choice-1-fg: var(--text);--choice-2: #f0a808;--choice-2-dark: #b57905;--choice-2-fg: var(--text-on-bright);--choice-3: #17b978;--choice-3-dark: #0d8a58;--choice-3-fg: var(--text-on-bright);--gold-light: #ffe48a;--gold: #ffd35c;--gold-deep: #b58a20;--silver: #cbd5e1;--silver-deep: #7d8a9c;--bronze: #d08c52;--bronze-deep: #8b5a2b;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: 2.25rem;--fs-4xl: 3rem;--fs-5xl: clamp(3rem, 12vw, 6rem);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--bg-stage: #08090c;--border-rig: rgba(239, 231, 216, .2);--r-rig: 4px;--r-rig-tight: 3px;--r-sm: 8px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-pill: 999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .38);--shadow-lg: 0 20px 56px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(229, 173, 57, .22);--shadow-panel: 0 18px 40px rgba(0, 0, 0, .24);--press: 0 5px 0;--t-fast: .12s;--t-med: .22s;--t-slow: .42s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-bounce: cubic-bezier(.16, 1, .3, 1);--ease-fluid: cubic-bezier(.32, .72, 0, 1);--t-fluid: .7s;--content-max: 1180px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}@media(prefers-reduced-motion:reduce){:root{--t-fast: 1ms;--t-med: 1ms;--t-slow: 1ms;--t-fluid: 1ms}*,*:before,*:after{animation-iteration-count:1!important}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font);font-size:var(--fs-md);line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(60vw 60vw at 12% -10%,var(--bg-glow-a) 0%,transparent 60%),radial-gradient(55vw 55vw at 100% 8%,var(--bg-glow-b) 0%,transparent 62%),linear-gradient(170deg,var(--bg-2) 0%,var(--bg) 55%)}img,svg,canvas{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}option{background-color:var(--surface-solid-2);color:var(--text)}button{cursor:pointer;border:none;background:none}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{line-height:1.15;font-weight:800;letter-spacing:-.02em}:root{scrollbar-color:var(--border-strong) transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.tsu-phase :is(h1,h2,h3)[tabindex="-1"]:focus-visible,.tsu-gate-app :is(h1,h2,h3)[tabindex="-1"]:focus-visible{outline:none}@property --tsu-fade-top{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tsu-fade-bottom{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tsu-fade-left{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tsu-fade-right{syntax: "<length>"; inherits: false; initial-value: 0px;}.tsu-scrollhint{--tsu-fade: 40px;scrollbar-width:thin}.tsu-scrollhint:not(.tsu-scrollhint--panel):is([data-more-above],[data-more-below]){-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--tsu-fade-top),#000 calc(100% - var(--tsu-fade-bottom)),transparent);mask-image:linear-gradient(to bottom,transparent,#000 var(--tsu-fade-top),#000 calc(100% - var(--tsu-fade-bottom)),transparent);transition:--tsu-fade-top var(--t-med) ease,--tsu-fade-bottom var(--t-med) ease}.tsu-scrollhint[data-more-above]{--tsu-fade-top: var(--tsu-fade)}.tsu-scrollhint[data-more-below]{--tsu-fade-bottom: var(--tsu-fade)}.tsu-scrollhint.tsu-scrollhint--x:is([data-more-left],[data-more-right]){-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--tsu-fade-left),#000 calc(100% - var(--tsu-fade-right)),transparent);mask-image:linear-gradient(to right,transparent,#000 var(--tsu-fade-left),#000 calc(100% - var(--tsu-fade-right)),transparent);transition:--tsu-fade-left var(--t-med) ease,--tsu-fade-right var(--t-med) ease}.tsu-scrollhint--x[data-more-left]{--tsu-fade-left: var(--tsu-fade)}.tsu-scrollhint--x[data-more-right]{--tsu-fade-right: var(--tsu-fade)}.tsu-scrollhint--panel:before,.tsu-scrollhint--panel:after{content:"";position:sticky;z-index:2;display:block;flex:none;height:32px;pointer-events:none;opacity:0;transition:opacity var(--t-med) ease}.tsu-scrollhint--panel:before{top:0;margin-bottom:calc(-32px - var(--tsu-gap, 0px));background:linear-gradient(to bottom,var(--tsu-panel-bg, var(--surface-solid)),transparent)}.tsu-scrollhint--panel:after{bottom:0;margin-top:calc(-32px - var(--tsu-gap, 0px));background:linear-gradient(to top,var(--tsu-panel-bg, var(--surface-solid)),transparent)}.tsu-scrollhint--panel[data-more-above]:before,.tsu-scrollhint--panel[data-more-below]:after{opacity:1}.tsu-swap{display:inline-grid}.tsu-swap>*{grid-area:1 / 1;text-align:center}.tsu-swap>[aria-hidden=true]{visibility:hidden}.page{min-height:100%;padding:calc(var(--sp-5) + var(--safe-top)) var(--sp-4) calc(var(--sp-6) + var(--safe-bottom));display:flex;flex-direction:column;gap:var(--sp-4)}.page--center{align-items:center;justify-content:center;text-align:center}.page--wide{max-width:var(--content-max);margin:0 auto;width:100%}.stack{display:flex;flex-direction:column;gap:var(--sp-3)}.row{display:flex;align-items:center;gap:var(--sp-3)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.grow{flex:1}.center{text-align:center}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.mono{font-family:var(--font-mono)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:var(--fs-xs);font-weight:700;color:var(--text-faint)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.82)}70%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{10%,90%{transform:translate(-2px)}30%,70%{transform:translate(4px)}50%{transform:translate(-4px)}}.anim-rise{animation:rise-in var(--t-med) var(--ease-out) both}.anim-pop{animation:pop-in var(--t-med) var(--ease-out) both}.anim-fade{animation:fade-in var(--t-med) ease both}
