:root{color:#201a2e;font-synthesis:none;text-rendering:optimizelegibility;--surface:#fff;--surface-subtle:#eeecf3;--text:#201a2e;--muted:#625c70;--border:#d6d1de;--primary:#4f2377;--primary-hover:#3e1b5f;--accent:#a51d39;--danger:#a32017;--focus:#0759c7;--radius:.75rem;--shadow:0 .5rem 1.5rem #201a2e17;background:#f6f5f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f6f5f8;min-width:320px}body{min-width:320px;min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f5f8;margin:0}button,input,textarea,select{font:inherit}button,a,input{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--focus)}button{background:var(--primary);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:.55rem;min-height:2.75rem;padding:.65rem 1rem;font-weight:700}button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{cursor:not-allowed;opacity:.72}a{color:#154ea8;text-underline-offset:.18em}img{max-width:100%;height:auto;display:block}h1,h2,h3{line-height:1.2}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.section-title{color:var(--muted);margin-bottom:.6rem;font-size:1rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.game{--state-accent:#4f2377;--state-accent-soft:#4f23771f;perspective:1400px;perspective-origin:50% 42%;min-width:0;transform-style:preserve-3d;position:relative}.game[data-game-state=lobby]{--state-accent:#2457c5;--state-accent-soft:#2457c51f}.game[data-game-state=ideation]{--state-accent:#7c3aed;--state-accent-soft:#7c3aed21}.game[data-game-state=voting]{--state-accent:#d97706;--state-accent-soft:#d9770624}.game[data-game-state=results]{--state-accent:#15803d;--state-accent-soft:#15803d21}.game-state-card{border:1px solid color-mix(in srgb, var(--state-accent) 24%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at 100% 0%, var(--state-accent-soft), transparent 42%), var(--surface);min-width:0;box-shadow:var(--shadow), 0 1.6rem 4.5rem color-mix(in srgb, var(--state-accent) 9%, transparent);transform-style:preserve-3d;transform-origin:50%;view-transition-name:game-state-card;will-change:transform, opacity, filter;padding:clamp(1rem,3vw,1.5rem);animation:.72s cubic-bezier(.16,1,.3,1) both game-card-fallback-in;position:relative;overflow:hidden}html[data-game-transition-direction=left] .game-state-card{animation-name:game-card-fallback-in-left}html[data-game-transition-direction=right] .game-state-card{animation-name:game-card-fallback-in-right}.game-state-card:before{content:"";background:var(--state-accent);width:.28rem;box-shadow:0 0 1.6rem var(--state-accent-soft);position:absolute;inset:0 auto 0 0}.game-state-edge{pointer-events:none;justify-content:flex-end;margin:0 0 .35rem;display:flex}.game-state-edge span{border:1px solid color-mix(in srgb, var(--state-accent) 25%, transparent);background:var(--state-accent-soft);color:var(--state-accent);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:.2rem .55rem;font-size:.68rem;font-weight:800}.game-state-content{min-width:0}.game-state-content>:first-child{margin-top:0}.game-state-card img{border-radius:.6rem}.game-state-live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(game-state-card){z-index:50;perspective:1400px;transform-style:preserve-3d;animation-duration:.84s;overflow:visible}::view-transition-image-pair(game-state-card){transform-style:preserve-3d;isolation:auto;overflow:visible}::view-transition-old(game-state-card){transform-origin:50%;backface-visibility:hidden}::view-transition-new(game-state-card){transform-origin:50%;backface-visibility:hidden}html[data-game-transition-direction=left]::view-transition-old(game-state-card){animation:.75s cubic-bezier(.55,.02,.38,.94) both game-card-3d-out-left}html[data-game-transition-direction=left]::view-transition-new(game-state-card){animation:.84s cubic-bezier(.16,1,.3,1) both game-card-3d-in-left}html[data-game-transition-direction=right]::view-transition-old(game-state-card){animation:.75s cubic-bezier(.55,.02,.38,.94) both game-card-3d-out-right}html[data-game-transition-direction=right]::view-transition-new(game-state-card){animation:.84s cubic-bezier(.16,1,.3,1) both game-card-3d-in-right}@keyframes game-card-3d-out-left{0%{opacity:1;filter:blur();transform:perspective(1400px)translate(0,0)rotateX(0)rotateY(0)rotate(0)skew(0)scale(1)}22%{opacity:.93;transform:perspective(1400px)translate3d(-1.5vw,-1vh,85px)rotateX(-3deg)rotateY(-9deg)rotate(-1.5deg)skew(-1deg)scale(1.015)}55%{opacity:.55;filter:blur(2px)}to{opacity:0;filter:blur(11px);transform:perspective(1400px)translate3d(-108vw,-16vh,-620px)rotateX(24deg)rotateY(-48deg)rotate(-16deg)skew(-8deg)scale(.7)}}@keyframes game-card-3d-in-left{0%{opacity:0;filter:blur(10px);transform:perspective(1400px)translate3d(96vw,13vh,-620px)rotateX(-20deg)rotateY(44deg)rotate(15deg)skew(7deg)scale(.7)}36%{opacity:.72;filter:blur(2px)}72%{opacity:1;filter:blur();transform:perspective(1400px)translate3d(-1.5vw,-.7vh,45px)rotateX(2deg)rotateY(-4deg)rotate(-1deg)skew(-.5deg)scale(1.015)}to{opacity:1;filter:blur();transform:perspective(1400px)translate(0,0)rotateX(0)rotateY(0)rotate(0)skew(0)scale(1)}}@keyframes game-card-3d-out-right{0%{opacity:1;filter:blur();transform:perspective(1400px)translate(0,0)rotateX(0)rotateY(0)rotate(0)skew(0)scale(1)}22%{opacity:.93;transform:perspective(1400px)translate3d(1.5vw,-1vh,85px)rotateX(-3deg)rotateY(9deg)rotate(1.5deg)skew(1deg)scale(1.015)}55%{opacity:.55;filter:blur(2px)}to{opacity:0;filter:blur(11px);transform:perspective(1400px)translate3d(108vw,-16vh,-620px)rotateX(24deg)rotateY(48deg)rotate(16deg)skew(8deg)scale(.7)}}@keyframes game-card-3d-in-right{0%{opacity:0;filter:blur(10px);transform:perspective(1400px)translate3d(-96vw,13vh,-620px)rotateX(-20deg)rotateY(-44deg)rotate(-15deg)skew(-7deg)scale(.7)}36%{opacity:.72;filter:blur(2px)}72%{opacity:1;filter:blur();transform:perspective(1400px)translate3d(1.5vw,-.7vh,45px)rotateX(2deg)rotateY(4deg)rotate(1deg)skew(.5deg)scale(1.015)}to{opacity:1;filter:blur();transform:perspective(1400px)translate(0,0)rotateX(0)rotateY(0)rotate(0)skew(0)scale(1)}}@keyframes game-card-fallback-in{0%{opacity:0;filter:blur(7px);transform:perspective(1400px)translate3d(0,4vh,-260px)rotateX(-10deg)scale(.88)}70%{opacity:1;filter:blur();transform:perspective(1400px)translate3d(0,-.3vh,24px)rotateX(1deg)scale(1.008)}to{opacity:1;transform:perspective(1400px)translate(0,0)rotateX(0)scale(1)}}@keyframes game-card-fallback-in-left{0%{opacity:0;filter:blur(7px);transform:perspective(1400px)translate3d(18vw,4vh,-260px)rotateX(-10deg)rotateY(20deg)rotate(5deg)skew(3deg)scale(.88)}70%{opacity:1;filter:blur();transform:perspective(1400px)translate3d(-.7vw,-.3vh,24px)rotateX(1deg)rotateY(-2deg)rotate(-.5deg)skew(0)scale(1.008)}to{opacity:1;transform:perspective(1400px)translate(0,0)rotateX(0)rotateY(0)rotate(0)skew(0)scale(1)}}@keyframes game-card-fallback-in-right{0%{opacity:0;filter:blur(7px);transform:perspective(1400px)translate3d(-18vw,4vh,-260px)rotateX(-10deg)rotateY(-20deg)rotate(-5deg)skew(-3deg)scale(.88)}70%{opacity:1;filter:blur();transform:perspective(1400px)translate3d(.7vw,-.3vh,24px)rotateX(1deg)rotateY(2deg)rotate(.5deg)skew(0)scale(1.008)}to{opacity:1;transform:perspective(1400px)translate(0,0)rotateX(0)rotateY(0)rotate(0)skew(0)scale(1)}}@media (prefers-reduced-motion:reduce){.game-state-card{view-transition-name:none;animation:none}}.user-list{flex-wrap:wrap;gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.user-container{background:var(--primary);color:#fff;border-radius:999px;padding:.5rem .85rem}.user{font-weight:700}.message-form{width:min(36rem,100%)}.message-form label{margin-bottom:.4rem;font-weight:700;display:block}.message-form-row{align-items:stretch;gap:.65rem;display:flex}.message-form input{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:2.75rem;color:var(--text);border-radius:.55rem;flex:auto;padding:.65rem .75rem}.message-form input::placeholder{color:#716a7d}@media (width<=34rem){.message-form-row{flex-direction:column}}.loader{align-items:center;gap:.4rem;min-height:1rem;margin:.5rem 0;display:inline-flex}.dot{background:var(--primary);border-radius:50%;width:.65rem;height:.65rem;animation:.9s ease-in-out infinite alternate loader-pulse}.dot:nth-child(2){animation-delay:.18s}@keyframes loader-pulse{0%{opacity:.45;transform:translateY(0)}to{opacity:1;transform:translateY(-.25rem)}}.voting{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;width:100%;margin:1rem 0 0;padding:0;list-style:none;display:grid}.voting .message-container{min-width:0}.vote-button{background:var(--surface);width:100%;height:100%;color:var(--text);box-shadow:var(--shadow);text-align:left;border:3px solid #0000;align-content:start;gap:.65rem;padding:.7rem;display:grid}.vote-button:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--primary)}.vote-button.selected,.vote-button[aria-pressed=true]{border-color:var(--primary);background:#f3ebf8}.vote-button img{aspect-ratio:1;object-fit:cover;border-radius:.5rem;width:100%}.vote-prompt{font-weight:800}.vote-note{color:var(--muted);font-size:.9rem}.results ul{justify-content:left;justify-items:end;align-items:left;grid-template-rows:1fr;width:100%;margin:0;padding:0;list-style-type:none;display:grid}.admin{gap:1rem;margin-bottom:1.5rem;display:grid}.admin-menu,.admin-debug{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.admin-menu{border-top:.4rem solid var(--primary);grid-template-columns:minmax(14rem,1fr) minmax(20rem,2fr);align-items:end;gap:1rem;padding:1rem;display:grid}.admin-menu h1{margin-top:0}.admin-menu nav ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-menu nav button{width:100%}.admin-menu nav button.selected,.admin-menu nav button[aria-pressed=true]{background:var(--surface);color:var(--primary);border-color:var(--primary)}.admin-debug{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1rem;display:grid}.admin-debug h2,.admin-debug legend{font-size:1rem;font-weight:800}.admin-debug fieldset{border:1px solid var(--border);border-radius:.65rem;min-width:0;margin:0;padding:.85rem}.admin-debug details{border:1px solid var(--border);background:var(--surface-subtle);border-radius:.65rem}.admin-debug summary{cursor:pointer;padding:.65rem;font-weight:700}.admin-debug pre{color:#f8f7fa;white-space:pre-wrap;overflow-wrap:anywhere;background:#17141d;width:100%;max-height:14rem;margin:0;padding:.75rem;font-size:.8rem;overflow:auto}.admin-generators{gap:.45rem;display:grid}.generator-option{cursor:pointer;border-radius:.45rem;align-items:center;gap:.55rem;min-height:2.5rem;padding:.35rem .5rem;display:flex}.generator-option:hover{background:var(--surface-subtle)}.generator-option input{width:1.1rem;height:1.1rem}.admin-actions,.reset-confirmation{align-content:start;gap:.6rem;display:grid}button.secondary{background:var(--surface);color:var(--primary);border-color:var(--primary)}button.secondary:hover:not(:disabled){background:var(--surface-subtle)}button.danger{background:var(--danger)}@media (width<=52rem){.admin-menu,.admin-debug{grid-template-columns:1fr}}@media (width<=36rem){.admin-menu nav ul{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--game-state-accent:var(--accent);--game-state-accent-soft:#4f23771f}html[data-game-state=lobby]{--game-state-accent:#2457c5;--game-state-accent-soft:#2457c51f}html[data-game-state=ideation]{--game-state-accent:#7c3aed;--game-state-accent-soft:#7c3aed21}html[data-game-state=voting]{--game-state-accent:#d97706;--game-state-accent-soft:#d9770624}html[data-game-state=results]{--game-state-accent:#15803d;--game-state-accent-soft:#15803d21}html[data-game-state] .game{--state-accent:var(--game-state-accent);--state-accent-soft:var(--game-state-accent-soft)}.App{min-height:100vh}.app-header{background-color:var(--game-state-accent);color:#fff;view-transition-name:game-header;padding:.9rem clamp(1rem,4vw,2rem);transition:background-color .84s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #201a2e29}.app-title{letter-spacing:.01em;width:min(70rem,100%);margin:0 auto;font-size:clamp(1.2rem,3vw,1.6rem);font-weight:800;display:block}#main-content{width:min(70rem,100%);margin:0 auto;padding:clamp(1rem,3vw,2rem)}.connection-status,.alert{border-radius:var(--radius);color:#5a3500;background:#fff4df;border:1px solid #e6bd72;width:min(70rem,100% - 2rem);margin:1rem auto 0;padding:.75rem 1rem}.alert{color:#6f170f;background:#fff0ef;border-color:#e3aaa6;width:100%}.skip-link{z-index:100;background:var(--surface);color:var(--text);box-shadow:var(--shadow);border-radius:.5rem;padding:.65rem .9rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}::view-transition-group(game-header){animation-duration:.84s}::view-transition-old(game-header){mix-blend-mode:normal;animation:.84s cubic-bezier(.16,1,.3,1) both game-header-out}::view-transition-new(game-header){mix-blend-mode:normal;animation:.84s cubic-bezier(.16,1,.3,1) both game-header-in}@keyframes game-header-out{0%{opacity:1}to{opacity:0}}@keyframes game-header-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.app-header{view-transition-name:none;transition:none}}
