:root{--brand-orange: rgb(243, 161, 4);--brand-blue: rgb(23, 111, 221);--bg: #0b0e14;--surface: #121722;--surface-2: #1a2130;--border: rgba(255, 255, 255, .08);--text: #f4f6fb;--text-dim: #9aa4b8;--success: #7be495;--danger: #ff8080;--radius: 18px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(circle at 18% 20%,rgba(23,111,221,.2),transparent 45%),radial-gradient(circle at 82% 78%,rgba(243,161,4,.14),transparent 50%),var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif}h1,h2{margin:0;letter-spacing:-.02em}.screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;padding-top:max(2rem,env(safe-area-inset-top));padding-right:max(2rem,env(safe-area-inset-right));padding-bottom:max(2rem,env(safe-area-inset-bottom));padding-left:max(2rem,env(safe-area-inset-left))}@media (max-height: 860px){.screen{padding:1rem;padding-top:max(1rem,env(safe-area-inset-top));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left))}}.button{font-family:inherit;font-size:1rem;font-weight:700;border-radius:12px;padding:.85rem 1.6rem;border:1px solid transparent;cursor:pointer;transition:transform .12s ease,background .12s ease,opacity .12s ease;min-height:44px;min-width:44px;touch-action:manipulation}.button:focus-visible{outline:3px solid var(--brand-blue);outline-offset:2px}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:var(--brand-orange);color:#211505}.button--primary:not(:disabled):hover{transform:translateY(-1px)}.button--ghost{background:transparent;border-color:var(--border);color:var(--text)}.button--ghost:not(:disabled):hover{background:#ffffff0f}.button--dev{background:transparent;border:1px dashed var(--brand-blue);color:var(--brand-blue);font-size:.85rem}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#ff80801a;border:1px solid rgba(255,128,128,.35);color:var(--danger);border-radius:12px;padding:.85rem 1.1rem;margin:1rem 0;font-size:.9rem}.error-banner__actions{display:flex;gap:.5rem;flex-shrink:0}.infra-status{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right));width:10px;height:10px;border-radius:50%;background:var(--text-dim);opacity:.5;z-index:100}.infra-status--ok{background:var(--success)}.infra-status--error{background:var(--danger);opacity:.9}.fullscreen-control{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:100}.fullscreen-control__button{width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:#121722b3;color:var(--text-dim);cursor:pointer;touch-action:manipulation}.fullscreen-control__button:hover{color:var(--text);border-color:var(--brand-orange)}.sound-toggle{position:fixed;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));z-index:100;width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:#121722b3;color:var(--text-dim);cursor:pointer;touch-action:manipulation}.sound-toggle:hover{color:var(--text);border-color:var(--brand-orange)}.fullscreen-control__hint{position:absolute;top:calc(100% + 8px);right:0;width:min(280px,70vw);display:flex;align-items:flex-start;gap:.5rem;padding:.7rem .8rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px #0006}.fullscreen-control__hint p{margin:0;font-size:.8rem;color:var(--text);line-height:1.4}.fullscreen-control__hint button{background:none;border:none;color:var(--text-dim);font-size:1.1rem;line-height:1;cursor:pointer;padding:0}.lobby__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 3rem;max-width:680px;width:100%;text-align:center;box-shadow:0 30px 80px #00000073}.lobby__logo{height:56px;width:auto;margin-bottom:1.25rem}.lobby__title{font-size:1.9rem;font-weight:800}.lobby__subtitle{margin:.5rem 0 2rem;color:var(--text-dim)}.install-hint{text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;margin:0 0 1.5rem}.install-hint__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.install-hint__message{margin:0;font-size:.85rem;color:var(--text-dim);line-height:1.4}.install-hint__actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.install-hint__link{background:none;border:none;padding:0;color:var(--brand-blue);font-size:.85rem;font-weight:700;cursor:pointer;touch-action:manipulation;white-space:nowrap}.install-hint__close{background:none;border:none;color:var(--text-dim);font-size:1.1rem;line-height:1;cursor:pointer;padding:.25rem;touch-action:manipulation}.install-hint__steps{margin:.75rem 0 0;padding-left:1.2rem;font-size:.85rem;color:var(--text);line-height:1.6}.lobby__form{text-align:left}.lobby__field{border:none;padding:0;margin:0 0 1.5rem}.lobby__field legend{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:.6rem;padding:0}.segmented{display:flex;gap:.5rem;flex-wrap:wrap}.segmented__option{flex:1 1 auto;min-width:48px;min-height:44px;padding:.6rem .8rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-weight:700;cursor:pointer;touch-action:manipulation}.segmented__option.is-active{background:var(--brand-orange);color:#211505;border-color:var(--brand-orange)}.lobby__field--centered{text-align:center}.stepper{display:flex;align-items:center;justify-content:center;gap:1.25rem}.stepper__button{width:56px;height:56px;min-width:44px;min-height:44px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:1.75rem;font-weight:700;line-height:1;cursor:pointer;touch-action:manipulation;transition:opacity .2s,border-color .2s}.stepper__button:disabled{opacity:.35;cursor:not-allowed}.stepper__button:not(:disabled):hover{border-color:var(--brand-orange)}.stepper__button:not(:disabled):active{background:var(--brand-orange);color:#211505;border-color:var(--brand-orange)}.stepper__value{min-width:2.5ch;text-align:center;font-size:2.25rem;font-weight:800;color:var(--text)}.stepper__input{width:3ch;min-width:64px;text-align:center;font-size:2.25rem;font-weight:800;font-family:inherit;color:var(--text);background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;padding:0;-moz-appearance:textfield}.stepper__input::-webkit-outer-spin-button,.stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper__input:focus{outline:none;border-bottom-color:var(--brand-orange)}.lobby__stepper-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0 0 1.5rem}@media (max-width: 520px){.lobby__stepper-row{grid-template-columns:1fr}}.lobby__stepper-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);text-align:center;margin:0;min-width:0}.lobby__stepper-card__label{margin:0;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.lobby__rounds-hint{grid-column:1 / -1;margin:.6rem 0 0;color:var(--text-dim);font-size:.78rem;line-height:1.4;text-align:center}.lobby__players{display:grid;gap:1rem}.lobby__player-block{display:grid;gap:.75rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.lobby__player-block-title{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-blue)}.lobby__player-row{display:grid;gap:.4rem}.lobby__player-row-label{font-size:.78rem;color:var(--text-dim)}.lobby__name-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-dim)}.lobby__name-field input{font-family:inherit;font-size:1rem;padding:.8rem .9rem;min-height:44px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.lobby__name-field input[aria-invalid=true]{border-color:var(--danger)}.lobby__field-error{color:var(--danger);font-size:.78rem}.lobby__submit{width:100%;margin-top:.5rem}.round-intro__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:3rem;max-width:520px;width:100%;text-align:center;box-shadow:0 30px 80px #00000073}.round-intro__round{color:var(--brand-blue);font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;margin:0 0 1.5rem}.round-intro__label{color:var(--text-dim);margin:0}.round-intro__player{font-size:3rem;font-weight:800;margin:.3rem 0 1.25rem}.round-intro__rules{color:var(--brand-orange);font-weight:700;margin:0 0 1.25rem}.round-intro__hint{color:var(--text-dim);margin:0 0 1.5rem}.omaeon-loader{display:flex;flex-direction:column;align-items:center;gap:1rem}.omaeon-loader__label{margin:0;color:var(--text-dim);font-weight:600}.omaeon-loader__mark{animation:omaeon-loader-spin 2s linear infinite}@keyframes omaeon-loader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.omaeon-loader__mark{animation:none}}.game-screen{justify-content:flex-start;width:100%;max-width:1800px;margin:0 auto}.game-screen__header{width:100%;display:flex;justify-content:space-between;align-items:center;font-weight:700;color:var(--text-dim);margin-bottom:1.25rem;font-size:1.05rem;padding-right:calc(44px + max(10px,env(safe-area-inset-right)) + .75rem);padding-left:calc(44px + max(10px,env(safe-area-inset-left)) + .75rem)}@media (max-height: 860px){.game-screen__header{margin-bottom:.6rem;font-size:.9rem}}.game-screen__rules-badge{font-size:.85rem;font-weight:700;color:var(--brand-orange);background:#f3a1041f;border:1px solid rgba(243,161,4,.35);border-radius:999px;padding:.3rem .85rem}.game-screen__grid{width:100%;display:grid;grid-template-columns:1.2fr .8fr 1.2fr;gap:1.5rem;align-items:stretch}@media (min-width: 900px) and (max-width: 1400px){.game-screen__grid{grid-template-columns:1.4fr .85fr 1fr;gap:1rem}}@media (max-width: 899px){.game-screen__grid{grid-template-columns:1fr}}.game-screen__grid--dictation{grid-template-columns:1.6fr 1fr .6fr}@media (min-width: 900px) and (max-width: 1400px){.game-screen__grid--dictation{grid-template-columns:1.7fr 1fr .5fr}}.game-screen__source,.game-screen__generated{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:420px;display:flex;flex-direction:column;overflow:hidden}@media (max-height: 860px){.game-screen__source,.game-screen__generated{min-height:300px}}.game-screen__source-image{flex:1;min-height:0;width:100%;object-fit:contain;background:#05070b}.game-screen__source-image--blurred{filter:blur(32px) saturate(.6) brightness(.55);transform:scale(1.15);transition:filter .25s ease-out,transform .25s ease-out}.game-screen__source-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#05070b73}.is-obscured{filter:blur(9px);-webkit-user-select:none;user-select:none;pointer-events:none}.round-ready-prompt{margin:0;font-size:1.6rem;font-weight:800;color:var(--text)}.round-ready-prompt__button{min-width:160px}.attribution{flex-shrink:0;margin:0;padding:.5rem .9rem;font-size:.72rem;color:var(--text-dim);border-top:1px solid var(--border);text-align:center}.attribution a{color:var(--brand-blue);text-decoration:none}.attribution a:hover{text-decoration:underline}.game-screen__center{display:flex;flex-direction:column;align-items:center;gap:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}@media (max-height: 860px){.game-screen__center{gap:.75rem;padding:1rem}}.timer{display:flex;align-items:baseline;gap:.35rem;font-weight:800;font-size:3rem;font-variant-numeric:tabular-nums;line-height:1}.timer__unit{font-size:1rem;font-weight:600;color:var(--text-dim)}.timer--green{color:var(--success)}.timer--yellow{color:var(--brand-orange)}.timer--red{color:var(--danger)}.timer--urgent{animation:pulse 1s ease-in-out infinite}.timer--done{color:var(--text-dim);font-size:1.4rem;font-weight:700}@media (max-height: 860px){.timer{font-size:2.1rem}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.lives{display:flex;gap:.4rem}.lives__heart.is-full{color:var(--success)}.lives__heart.is-empty{color:var(--text-dim);opacity:.5}.lives__heart--lost{animation:heart-lost .5s ease-in-out}@keyframes heart-lost{0%{transform:scale(1)}30%{transform:scale(1.35);color:var(--danger)}60%{transform:scale(.85)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.lives__heart--lost{animation:none}}.forbidden-words{width:100%;text-align:center}.forbidden-words__title{margin:0 0 .6rem;color:var(--danger);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}.forbidden-words__placeholder{margin:0;color:var(--text-dim);font-style:italic;font-size:.9rem}.forbidden-words__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.forbidden-words__item{background:#ff80801f;border:1px solid rgba(255,128,128,.35);color:var(--danger);border-radius:999px;padding:.35rem .9rem;font-weight:700;font-size:1.05rem;transition:opacity .2s ease}.forbidden-words__item--violated{opacity:.5;text-decoration:line-through;border-style:dashed}@media (max-height: 860px){.forbidden-words__item{padding:.28rem .7rem}.forbidden-words__list{gap:.4rem}}.voice-console{width:100%;border:1px solid var(--border);border-radius:12px;padding:1rem;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center}@media (max-height: 860px){.voice-console{padding:.65rem;gap:.45rem}}.voice-console__status{margin:0;display:flex;align-items:center;gap:.5rem;color:var(--text-dim);font-weight:700}.voice-console__status--live{color:var(--success)}.voice-console__mic-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:pulse 1.2s ease-in-out infinite}.voice-console__error{display:flex;flex-direction:column;align-items:center;gap:.7rem}.voice-console__error p{margin:0;color:var(--danger)}.voice-console__mic-hint{margin:0;color:var(--text-dim)!important;font-size:.82rem}.transcript-panel{width:100%;margin-top:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.transcript-panel__label{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:.78rem;font-weight:700}.transcript-panel__scroll{max-height:140px;overflow-y:auto}.transcript-panel__text{margin:0;font-size:1.1rem;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word}.transcript-panel__text.is-empty{color:var(--text-dim);font-style:italic}@media (max-height: 860px){.transcript-panel{margin-top:.6rem;padding:.75rem 1rem}.transcript-panel__scroll{max-height:90px}}.side-panel{flex:1;min-height:420px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--text-dim);position:relative}.side-panel--empty p{margin:0;text-align:center}.side-panel__image{width:100%;height:100%;object-fit:contain;background:#05070b}.side-panel__image.is-dim{filter:brightness(.35) blur(1px)}.side-panel__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text)}.spinner{width:42px;height:42px;border-radius:50%;border:4px solid rgba(255,255,255,.15);border-top-color:var(--brand-orange);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.round-result{width:100%;max-width:1100px;margin:0 auto}.round-result__footer{position:sticky;bottom:0;bottom:max(0px,env(safe-area-inset-bottom));margin-top:.5rem;padding:1rem 0 .25rem;background:linear-gradient(to bottom,transparent,var(--bg) 35%);display:flex;flex-direction:column;align-items:center;gap:.75rem}.round-result__images{display:grid;grid-template-columns:1fr 1fr;gap:1rem;width:100%;margin-bottom:1rem}@media (max-width: 900px){.round-result__images{grid-template-columns:1fr}}.round-result__figure{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.round-result__figure img{width:100%;height:clamp(140px,30dvh,320px);object-fit:contain;background:#05070b;display:block}.round-result__figure figcaption{text-align:center;padding:.45rem;color:var(--text-dim);font-weight:700;border-top:1px solid var(--border)}.round-result__score-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.5rem;margin-bottom:1rem}@media (max-height: 860px){.round-result__score-card{padding:.75rem 1.25rem;margin-bottom:.75rem}.round-result__images{margin-bottom:.75rem}}.round-result__score-label{margin:0;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:.85rem}.round-result__score-value{margin:.1rem 0;font-size:2.75rem;font-weight:800;color:var(--brand-orange);line-height:1}.round-result__comment{margin:.35rem 0 0;color:var(--text);font-size:.9rem;font-style:italic}.round-result__meta{margin:.5rem 0 0;color:var(--text-dim);font-size:.9rem}.round-result__score-sublabel{margin:.2rem 0 0;color:var(--text-dim);font-size:.95rem}.round-result__transcript{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.25rem;margin-bottom:1rem;text-align:left}.round-result__transcript-label{margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:.78rem}.round-result__transcript-text{margin:0;color:var(--text);font-size:.95rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:22dvh;overflow-y:auto}.round-result__transcript-violation{background:#ff808038;color:var(--danger);font-weight:700;border-radius:4px;padding:0 .15em}.round-result__forbidden{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.25rem;margin-bottom:1rem;text-align:center}.round-result__forbidden-label{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:.78rem}.round-result__forbidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.round-result__forbidden-item{background:#ff808014;border:1px solid rgba(255,128,128,.3);color:var(--text-dim);border-radius:999px;padding:.25rem .75rem;font-weight:600;font-size:.9rem}.round-result__forbidden-item--violated{background:#ff808038;border-color:var(--danger);color:var(--danger);font-weight:800;text-decoration:line-through}.round-result__prompt{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.25rem;margin-bottom:1rem;text-align:left}.round-result__prompt-label{margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:.78rem}.round-result__prompt-text{margin:0;color:var(--text);font-size:.95rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text;max-height:16dvh;overflow-y:auto}.round-result__breakdown{margin:1rem 0 0;padding-top:1rem;border-top:1px dashed var(--border);display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.5rem}.round-result__breakdown div{display:flex;flex-direction:column;gap:.15rem}.round-result__breakdown dt{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.round-result__breakdown dd{margin:0;font-weight:700;color:var(--text)}.final-results{width:100%;max-width:1100px;margin:0 auto}.final-results__winner{text-align:center;margin-bottom:2rem}.final-results__winner-label{margin:0;color:var(--brand-blue);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.final-results__winner-name{font-size:3rem;font-weight:800;margin:.3rem 0}.final-results__winner-score{margin:0;color:var(--text-dim);font-size:1.1rem}.final-results__table-wrap{width:100%;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem}.final-results__table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.final-results__table th,.final-results__table td{padding:.75rem 1rem;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap}.final-results__table th{color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.final-results__table tr.is-winner td{color:var(--brand-orange);font-weight:800}.final-results__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.game-screen__rotate-hint{display:none}@media (orientation: portrait) and (min-width: 500px) and (max-width: 900px){.game-screen__rotate-hint{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;padding-top:max(2rem,env(safe-area-inset-top));padding-bottom:max(2rem,env(safe-area-inset-bottom));background:var(--bg);color:var(--text);text-align:center;font-size:1.2rem;font-weight:700}.game-screen__rotate-hint-icon{font-size:3rem;animation:rotate-hint-spin 1.6s ease-in-out infinite}}@keyframes rotate-hint-spin{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}@media (prefers-reduced-motion: reduce){.game-screen__rotate-hint-icon{animation:none}}
