:root{--orange:#ec6608;--orange-bright:#ff7a1a;--orange-dim:#b94e05;--ink:#1c1a17;--ink-2:#262320;--ink-3:#322e29;--line:#423c34;--text:#f4efe9;--text-dim:#b6aaa0;--good:#4caf50;--radius:14px;--radius-sm:9px;--shadow:0 10px 30px #00000059;--maxw:880px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 600px at 50% -10%, #ec66082e, transparent 60%), var(--ink);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.45}h1,h2,h3{margin:0 0 .4em;line-height:1.15}.muted{color:var(--text-dim)}.btn{appearance:none;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:.6rem 1.1rem;font-size:.98rem;font-weight:600;transition:transform 50ms,background .15s,border-color .15s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-lg{width:100%;padding:.85rem 1.4rem;font-size:1.05rem}.btn-sm{padding:.4rem .8rem;font-size:.85rem}.btn-primary{background:var(--orange);color:#fff}.btn-primary:not(:disabled):hover{background:var(--orange-bright)}.btn-secondary{background:var(--ink-3);color:var(--text);border-color:var(--line)}.btn-secondary:not(:disabled):hover{border-color:var(--orange)}.btn-ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text)}.text-input,.topic-input,select{background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:.7rem .85rem;font-family:inherit;font-size:1rem}.text-input:focus,.topic-input:focus,select:focus{border-color:var(--orange);outline:none;box-shadow:0 0 0 3px #ec660840}.code-input{text-transform:uppercase;letter-spacing:.18em;text-align:center;margin-bottom:.8rem;font-size:1.3rem;font-weight:700}.field{margin-bottom:1rem;display:block}.field span{margin-bottom:.35rem;font-weight:600;display:block}.checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:.6rem;display:flex}.checkbox input{width:1.1rem;height:1.1rem;accent-color:var(--orange);margin-top:.2rem}.row{align-items:center;display:flex}.row.gap{gap:.6rem}.row.gap .btn{flex:1}.screen{flex-direction:column;gap:1.1rem;max-width:480px;min-height:100%;margin:0 auto;padding:clamp(1.2rem,4vw,3rem) 1.1rem 3rem;display:flex}.brand{align-items:center;gap:.9rem;display:flex}.brand h1{margin:0;font-size:1.6rem}.tagline{color:var(--text-dim);margin:.15rem 0 0;font-size:.95rem}.card-panel{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.3rem}.card-panel h2{font-size:1.15rem}.or-divider{text-align:center;color:var(--text-dim);align-items:center;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--line);flex:1;height:1px}.or-divider span{text-transform:uppercase;letter-spacing:.1em;padding:0 .8rem;font-size:.85rem}.home-footer{text-align:center;margin-top:auto;font-size:.85rem}.room-code-chip,.room-id strong{letter-spacing:.12em;color:var(--orange-bright);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.room{flex-direction:column;min-height:100%;display:flex}.room-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#1c1a17d9;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem clamp(.8rem,3vw,1.6rem);display:flex;position:sticky;top:0}.room-header-left,.room-header-right{align-items:center;gap:.7rem;display:flex}.room-id{flex-direction:column;line-height:1.1;display:flex}.room-id-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:.7rem}.room-main{width:100%;max-width:var(--maxw);flex-direction:column;flex:1;gap:1.1rem;margin:0 auto;padding:1.1rem clamp(.8rem,3vw,1.6rem) 2rem;display:flex}.topic-bar{width:100%}.topic-input{font-size:1.05rem;font-weight:600}.controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.deck-picker{align-items:center;gap:.5rem;display:flex}.deck-picker select{width:auto;padding:.45rem .7rem}.vote-progress{color:var(--orange-bright);flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:600;display:flex}.vote-warning{color:var(--text);opacity:.75;font-size:.85rem;font-weight:600}.controls .row{margin-left:auto}.card-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:.7rem;display:grid}.poker-card{aspect-ratio:2/3;border:2px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(160deg, var(--ink-3), var(--ink-2));color:var(--text);cursor:pointer;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;transition:transform 80ms,border-color .12s,box-shadow .12s;display:flex}.poker-card:not(:disabled):hover{border-color:var(--orange);transform:translateY(-3px)}.poker-card.is-selected{border-color:var(--orange);background:linear-gradient(160deg, var(--orange), var(--orange-dim));color:#fff;transform:translateY(-4px);box-shadow:0 8px 22px #ec660873}.poker-card:disabled{opacity:.5;cursor:default}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);align-items:center;gap:.5rem;font-size:.95rem;display:flex}.section-title .count{background:var(--ink-3);color:var(--text);border-radius:999px;padding:.05rem .55rem;font-size:.8rem}.participant-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.participant{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .8rem;display:flex}.participant.is-self{border-color:var(--orange-dim)}.participant-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.4rem;font-weight:600;display:flex;overflow:hidden}.you-tag,.observer-tag,.host-badge,.mod-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:.1rem .4rem;font-size:.65rem;font-weight:700}.you-tag{background:var(--orange);color:#fff}.observer-tag{background:var(--ink-3);color:var(--text-dim)}.host-badge{background:var(--ink-3);color:var(--orange-bright);border:1px solid var(--orange-dim)}.mod-badge{background:var(--orange-dim);color:#fff}.vote-chip{text-align:center;background:var(--ink-3);border-radius:var(--radius-sm);min-width:2rem;padding:.25rem .55rem;font-weight:700}.vote-chip.voted{color:var(--good)}.vote-chip.pending{color:var(--text-dim)}.consensus-banner{background:linear-gradient(90deg, var(--orange-dim), var(--orange));color:#fff;text-align:center;border-radius:var(--radius-sm);margin-bottom:1rem;padding:.6rem;font-weight:700}.stat-row{grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:1.2rem;display:grid}.stat{background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);text-align:center;padding:.7rem}.stat-value{color:var(--orange-bright);font-size:1.5rem;font-weight:800}.stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-size:.75rem}.histogram{align-items:flex-end;gap:.6rem;height:170px;padding-top:.5rem;display:flex}.histogram-col{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.histogram-bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:.25rem;width:100%;display:flex}.histogram-count{color:var(--text-dim);font-size:.8rem;font-weight:700}.histogram-bar{background:linear-gradient(180deg, var(--orange-bright), var(--orange-dim));border-radius:6px 6px 0 0;width:100%;max-width:46px;min-height:4px;transition:height .3s}.histogram-label{margin-top:.4rem;font-weight:700}.room-footer{border-top:1px solid var(--line);max-width:var(--maxw);align-items:center;gap:.8rem;width:100%;margin:0 auto;padding:.8rem clamp(.8rem,3vw,1.6rem);display:flex}.room-footer .host-badge{margin-left:auto}.loading,.room-error{text-align:center;justify-content:center;align-items:center}.error-text{color:#ff9b6b}.spinner{border:4px solid var(--ink-3);border-top-color:var(--orange);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.reconnect-banner{background:linear-gradient(90deg, var(--orange-dim), var(--orange));color:#fff;text-align:center;padding:.45rem;font-size:.9rem;font-weight:600}.table-area{flex-direction:column;gap:.9rem;display:flex}.felt{border:1px solid var(--line);box-shadow:inset 0 0 60px #00000073, var(--shadow);background:radial-gradient(120% 90% at 50% 0,#ec660829,#0000 60%),linear-gradient(#20242a,#191b1f);border-radius:22px;justify-content:center;align-items:center;min-height:150px;padding:1.4rem 1rem;display:flex;position:relative}.felt-empty{margin:0}.seats{flex-wrap:wrap;justify-content:center;gap:1.1rem 1.4rem;margin:0;padding:0;list-style:none;display:flex}.seat{flex-direction:column;align-items:center;gap:.4rem;width:104px;display:flex;position:relative}.seat-card-wrap{perspective:600px;width:56px;height:84px;position:relative}.seat-trigger{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.seat-trigger:hover .flip-face,.seat-trigger:hover .seat-empty,.seat-trigger:focus-visible .flip-face,.seat-trigger:focus-visible .seat-empty{outline:2px solid var(--orange-dim);outline-offset:2px}.flip-card{width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.8,.3,1);position:relative}.flip-card.is-flipped{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;border:2px solid var(--line);border-radius:10px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.flip-back{background:linear-gradient(160deg, var(--ink-3), var(--ink-2));border-color:var(--orange-dim)}.flip-front{background:linear-gradient(160deg, var(--orange), var(--orange-dim));border-color:var(--orange);color:#fff;transform:rotateY(180deg);box-shadow:0 6px 18px #ec660866}.flip-value{font-size:1.5rem;font-weight:800}.seat-empty{border:2px dashed var(--line);border-radius:10px;width:100%;height:100%;animation:2s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.4}50%{opacity:.75}}.seat.is-self .flip-face,.seat.is-self .seat-empty{outline:2px solid var(--orange);outline-offset:1px}.seat-name{flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;max-width:100%;display:flex}.seat-name-text{text-align:center;overflow-wrap:anywhere;max-width:100%;font-size:.85rem;font-weight:600;line-height:1.2}.react{position:relative}.react-btn{border:1px solid var(--line);background:var(--ink-3);color:var(--text);cursor:pointer;border-radius:999px;width:28px;height:28px;padding:0;font-size:.95rem;line-height:1}.react-btn:hover{border-color:var(--orange)}.react-palette{overscroll-behavior:contain;background:var(--ink-2);border:1px solid var(--line);max-height:210px;box-shadow:var(--shadow);z-index:20;border-radius:12px;grid-template-columns:repeat(6,2rem);gap:.1rem;padding:.35rem;display:none;position:absolute;bottom:100%;left:50%;overflow-y:auto;transform:translate(-50%)}.react-palette:after{content:"";height:.5rem;position:absolute;top:100%;left:0;right:0}.react-palette.is-open,.seat:hover .react-palette,.seat:focus-within .react-palette,.observer-chip:hover .react-palette,.observer-chip:focus-within .react-palette,.react:hover .react-palette,.react:focus-within .react-palette{display:grid}.react-emoji{cursor:pointer;background:0 0;border:none;border-radius:8px;width:2rem;height:2rem;padding:0;font-size:1.25rem;line-height:1}.react-emoji:hover{background:var(--ink-3);transform:scale(1.2)}.floaters{pointer-events:none;position:absolute;inset:0;overflow:visible}.floater{font-size:1.7rem;animation:2.2s ease-out forwards floatUp;position:absolute;top:40%;left:50%}.floater:nth-child(2n){left:30%}.floater:nth-child(3n){left:68%}@keyframes floatUp{0%{opacity:0;transform:translate(-50%)scale(.5)rotate(-8deg)}18%{opacity:1;transform:translate(-50%,-8px)scale(1.3)rotate(6deg)}to{opacity:0;transform:translate(-50%,-70px)scale(.9)rotate(-6deg)}}.throw-layer{pointer-events:none;z-index:100;position:fixed;inset:0}.projectile{will-change:transform, opacity;filter:drop-shadow(0 3px 4px #0006);font-size:2.1rem;line-height:1;position:fixed;top:0;left:0}.room-name-hint{margin:.15rem 0 .6rem;font-size:.85rem}.session-log{margin-top:1rem}.session-log-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.session-log-toggle{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.session-log-list{flex-direction:column;gap:.3rem;margin:.8rem 0 0;padding:0;list-style:none;display:flex}.session-log-row{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .7rem;display:flex}.session-log-topic{overflow-wrap:anywhere;font-weight:600}.session-log-result{white-space:nowrap;align-items:baseline;gap:.15rem;display:flex}.session-log-result strong{color:var(--orange-bright);font-size:1.05rem}.agree-badge{margin-right:.15rem}.observers{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.observer-chip{background:var(--ink-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.85rem;display:flex;position:relative}.observer-chip.is-self{border-color:var(--orange-dim)}.observer-chip .react-btn{width:22px;height:22px;font-size:.8rem}.observer-eye{opacity:.8}@media (prefers-reduced-motion:reduce){.flip-card,.floater,.projectile,.seat-empty{transition:none;animation:none}}@media (width<=520px){.stat-row{grid-template-columns:repeat(2,1fr)}.controls .row{width:100%;margin-left:0}.seats{gap:.9rem 1rem}.seat{width:84px}.seat-card-wrap{width:48px;height:72px}.flip-value{font-size:1.25rem}}
