/* Realignite v0.9 — research-led visual hierarchy, thumb-friendly and English UI.
   A presentation layer only: server-controlled permissions and game rules are unchanged. */
:root {
  --ink:#faf4f2;
  --muted:#c4bac9;
  --deep:#0e0d16;
  --card:#201c2a;
  --card2:#292337;
  --line:#51465b;
  --orange:#ffb987;
  --orange2:#ffdab6;
  --violet:#b8a1ff;
  --green:#8de9c1;
  --radius:24px;
}
html {scroll-padding-top:16px}
body {background:radial-gradient(ellipse 90% 38% at 12% 5%,#29203e 0%,transparent 77%),#0e0d16;color:var(--ink);line-height:1.52;-webkit-font-smoothing:antialiased}
.ambient {opacity:.11;filter:blur(105px)}
.ambient-two {top:auto;bottom:-180px}
.wrap {width:min(1050px,calc(100% - 44px))}
.topbar {height:80px;gap:12px;position:relative;z-index:5}
.brand {font-size:26px;letter-spacing:-1.5px;gap:10px}
.brand-icon {width:38px;height:38px;font-size:24px;box-shadow:0 5px 26px #ffad7955}
.pilot-badge {font-size:10px;color:#d4ccd9;letter-spacing:1px;background:#262131;border-color:#52475c}
.pilot-dot {background:#f2bf84;box-shadow:0 0 0 4px #f2bf841e}
.top-link {font-weight:750;text-decoration:none;font-size:13px;color:#eadbde}
.footer {margin-top:45px;padding:22px 0 34px;font-size:12px;flex-wrap:wrap}
h1 {font-size:clamp(39px,5.5vw,65px);line-height:1.06;letter-spacing:-2.7px}
h2 {font-size:clamp(24px,4vw,33px);line-height:1.17;letter-spacing:-.95px}
p {max-width:64ch}
.accent {color:var(--orange)}
.eyebrow,.section-label,.step-label {font-weight:850;letter-spacing:1.5px;font-size:11px}
.eyebrow {color:#ffc39d}
.step-label {color:#ffcbac;margin-bottom:12px;display:flex;align-items:center;gap:10px}
.step-label span {color:#d4bfd1}
.panel {background:linear-gradient(145deg,#232030,#1b1925);border-color:#4b4055;border-radius:22px;box-shadow:0 15px 45px #00000014}
.btn {min-height:52px;border-radius:14px;font-weight:850;padding:13px 21px;letter-spacing:-.1px;line-height:1.25}
.btn.small {min-height:44px;padding:10px 15px;font-size:13px}
.btn:not(.ghost):focus-visible, .game-mode:focus-visible, .play-card:focus-visible {outline:3px solid #d1b8ff;outline-offset:3px}
.btn.primary-cta {background:linear-gradient(115deg,#ffc596,#f9a880);color:#281a27;box-shadow:0 6px 20px #ed986336}
.btn.secondary {background:#3b3148;border-color:#655671;color:#f9eef9}
.btn.ghost {border-color:#564959;color:#f4e6ed}
.btn:disabled {opacity:.53;box-shadow:none}
.field {border-color:#63576a;background:#17141f;min-height:50px;font-size:16px}
.label {font-size:13px;margin:12px 0 6px;color:#e7dce7}
.checkline {font-size:13px;line-height:1.5;color:#e4dce5;gap:12px}
.checkline input {width:21px;height:21px;margin-top:1px;flex:0 0 21px}
.checkline a {text-decoration:underline;text-underline-offset:3px}
.checkline small {font-size:11px;color:#bbb0bf}
.subtitle {color:#cec2d2;font-size:15px;line-height:1.55}
.tiny {font-size:12px;color:#c3b9c6}
.pilot-microcopy {font-size:12px;color:#afa1b4;line-height:1.6;margin:20px 0}
/* Welcome and sign-in */
.hero-v9 {padding:44px 0 12px;grid-template-columns:1.05fr .95fr;gap:55px;align-items:center}
.hero-v9 h1 {margin:12px 0 16px;max-width:540px}
.hero-v9 p {font-size:18px;color:#d4c5d1;line-height:1.55;max-width:510px}
.hero-message {min-width:0}
.hero-proof {display:flex;flex-wrap:wrap;gap:9px;margin:24px 0 0}
.hero-proof span {display:inline-flex;align-items:center;background:#272235;color:#ecdfea;border:1px solid #504257;border-radius:100px;padding:8px 11px;font-size:12px;font-weight:750}
.sparkle-mark {color:#ffcf99;font-size:16px}
.hero-visual {padding:32px;min-height:300px;border-radius:26px;background:radial-gradient(circle at 15% 5%,#6e4c72 0%,#3e2e4d 46%,#252038 100%);box-shadow:0 24px 80px #0004;border:1px solid #86678b;transform:rotate(2deg);position:relative;display:flex;flex-direction:column;justify-content:space-between}
.hero-visual:after {content:"✳";position:absolute;right:24px;top:6px;font-size:69px;color:#ffcda9;opacity:.22;transform:rotate(18deg)}
.hero-visual-kicker,.hero-visual-foot {color:#ffd2b0;font-size:11px;font-weight:900;letter-spacing:1.1px}
.hero-question {font-size:clamp(20px,3vw,27px);font-weight:870;line-height:1.2;letter-spacing:-.8px;max-width:320px;margin:17px 0}
.hero-punchline {background:#fff0e5;color:#342331;padding:17px 20px;border-radius:14px;font-size:17px;font-weight:780;line-height:1.35;box-shadow:0 6px 12px #0003}
.hero-visual-foot {margin-top:17px}
.auth-v9 {margin:40px auto 46px;max-width:560px;padding:30px}
.auth-v9 h2 {margin:4px 0 8px}
.auth-v9 .subtitle {margin:0 0 20px}
.auth-v9 .seg-tabs {background:#15121f;margin-bottom:24px}
.auth-v9 .seg-tabs button {min-height:46px;font-size:15px}
.auth-v9 .seg-tabs button.active {background:#4c3c55;color:white}
.auth-v9 .field-row {margin-top:4px}
.private-label {font-size:11px;color:#9be8cd;font-weight:600;margin-left:6px}
.consent-group {border-top:1px solid #483d50;border-bottom:1px solid #483d50;margin:23px 0 16px;padding:8px 0}
.consent-group .checkline {margin:13px 0}
.auth-v9 .optin {background:#28253a;border-color:#625173;padding:16px;margin:13px 0 20px}
.auth-v9 .optin strong {color:#ffe0c3;font-size:14px}
.auth-v9 .optin em {font-style:normal;color:#acedd1}
.auth-v9 .pilot-microcopy {margin-bottom:0}
/* Home: the sole primary action is table selection */
.home-welcome {margin:26px 0 24px;flex-direction:row;align-items:center}
.home-welcome h1 {font-size:clamp(38px,6vw,52px);margin:0}
.home-welcome .eyebrow {margin-bottom:7px}
.home-welcome .subtitle {margin:8px 0 0;font-size:14px}
.table-primary {background:radial-gradient(circle at 98% 4%,#543d63 0%,transparent 54%),linear-gradient(130deg,#30273d,#241e31);padding:30px;border-color:#79617a;max-width:720px;margin:0 auto 22px}
.table-primary h2 {font-size:clamp(30px,5.5vw,41px);margin:0 0 9px}
.table-primary p {margin-bottom:12px}
.table-action {display:grid;grid-template-columns:minmax(170px,1fr) 1.3fr;column-gap:12px;align-items:end;margin:22px 0 10px}
.table-action .label {grid-column:1 / -1;margin:0 0 8px;color:#ead7e7}
.table-action .field {min-height:56px;font-weight:800;font-size:19px}
.table-action .btn {min-height:56px}
.table-primary .tiny {margin:11px 0 0;font-size:12px}
.table-community {margin:20px 0 28px;padding:24px}
.table-community .table-heading {align-items:end}
.table-heading h2 {font-size:23px;letter-spacing:-.6px}
.count-dot {display:inline-grid;place-items:center;min-width:26px;height:26px;padding:2px 8px;background:#3d2d48;border-radius:99px;color:#ffe1c7;font-size:12px;vertical-align:middle}
.table-list {margin-top:16px;max-height:300px}
.table-tile {background:#201a2d;border-color:#51435a;padding:13px;border-radius:14px}
.table-num {min-width:48px;background:#f8bc98;font-weight:900}
.table-detail b {font-size:15px}
.table-detail .tiny {font-size:12px}
.return-rooms {margin:0 0 20px;padding:23px}
.room-card {background:#292137}
.empty-short {padding:22px 14px;margin:4px 0;color:#bcb1c2}
.games-preview {margin:30px 0 14px;gap:12px}
.game-tile {min-height:138px;padding:21px;background:linear-gradient(125deg,#32273e,#25202f)}
.game-tile b {font-size:20px;margin-top:10px;letter-spacing:-.3px}
.game-tile:nth-child(3) {opacity:.65}
.game-tile .tiny {line-height:1.5}
.marketing-details {max-width:720px;margin:36px auto 0;padding:0;border:1px solid #423848;border-radius:14px;background:#191620;overflow:hidden}
.marketing-details summary {padding:17px 20px;cursor:pointer;font-weight:750;color:#d7ccdb;min-height:54px;display:flex;align-items:center;justify-content:space-between}
.marketing-details summary span {font-size:12px;color:#b9b0c2;font-weight:550}
.marketing-inside {border-top:1px solid #423848;padding:6px 20px 18px}
.marketing-inside p {font-size:13px;margin:13px 0 8px}
.closed-event {max-width:760px;margin:0 auto;padding:35px 28px 40px;background:radial-gradient(circle at 50% 0,#473349,#2c2333 70%);border-color:#705267}
.locked-illustration {font-size:51px;color:#f8b793;line-height:1.1;margin-bottom:8px}
.closed-event h2 {font-size:clamp(29px,5vw,40px)}
.closed-event p {margin:10px auto 20px;max-width:450px}
/* In-room: the situation and main choice get visual priority */
.room-head {margin:17px 0 19px;flex-direction:row;align-items:center}
.room-head h1 {font-size:clamp(32px,5vw,48px);margin:0 0 9px}
.room-head .eyebrow {margin-bottom:5px}
.room-info .pill {font-size:12px;padding:6px 11px}
.room-top-actions {display:flex;flex-wrap:wrap;gap:9px}
.game-panel {padding:23px;min-height:350px}
.room-sidebar>.panel {padding:17px}
.players-disclosure summary,.moderation summary {cursor:pointer;font-size:14px;font-weight:750;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:46px}
.players-disclosure summary::-webkit-details-marker,.moderation summary::-webkit-details-marker {display:none}
.players-disclosure summary::after,.moderation summary::after {content:'⌄';color:#e2bdcf;font-size:23px}
.players-disclosure[open] summary::after,.moderation[open] summary::after {content:'⌃'}
.players-disclosure summary strong {display:grid;place-items:center;margin-left:auto;margin-right:16px;min-width:28px;height:28px;border-radius:50%;background:#423249;color:#ffd9b9;font-size:12px}
.members {margin:12px 0;gap:7px}
.member {padding:7px 9px;font-size:12px}
.avatar {width:24px;height:24px}
.close-room {margin-top:13px;width:100%}
.moderation {margin-top:9px;padding-top:9px}
/* Cards + timer: keep timer in sight while scrolling the 8 options */
.round-timer {position:sticky;top:5px;z-index:20;background:#38273d;border:1px solid #9b748e;box-shadow:0 7px 22px #06040d9c;border-radius:16px;padding:13px 16px;margin:-4px -4px 18px}
.round-timer span {color:#f9d2c2;font-size:12px}
.round-timer strong {font-size:33px;color:#fff2dd}
.situation {background:linear-gradient(140deg,#fff1dd,#ffd0ad);border-radius:18px;margin:0 0 22px;padding:24px 25px;box-shadow:0 9px 24px #0b081227}
.situation h2 {font-size:clamp(23px,3vw,32px);font-weight:850;line-height:1.24;letter-spacing:-.8px;max-width:640px}
.situation .section-label {margin-bottom:12px;color:#684550}
.hand {gap:10px;margin-top:14px}
.play-card {min-height:136px;padding:17px;gap:12px;border:2px solid #f0d9ca;border-radius:14px;background:#f6ede7;color:#332738;font-size:15px;font-weight:760;line-height:1.31;box-shadow:0 3px 12px #0002}
.play-card small {font-size:10px;letter-spacing:.8px;font-weight:850;color:#655666}
.play-card.selected {background:#ffe5c9;border-color:#ec865f;box-shadow:0 0 0 3px #f3aa7a4d}
.choose-action {position:sticky;z-index:19;bottom:0;margin:10px -6px 0;padding:12px 6px max(12px,env(safe-area-inset-bottom));background:linear-gradient(0deg,#1f1b28 72%,#1f1b2800);border-radius:16px}
.choose-action .btn {min-height:56px}
.progressbar {margin:9px 0 13px}
.count {margin:14px 0;color:#c9bfcf}
.entry {background:#2d2639;border-color:#5a4b63;padding:19px;border-radius:15px}
.entry .tiny {color:#dbc0d0;letter-spacing:.7px;font-weight:800}
.entry strong {font-size:18px;line-height:1.35}
.entry.winner {border-color:#ffcb7f;box-shadow:0 0 0 1px #ffcb7f69;background:#3d2f42}
.entry.mine {border-color:#b8a1ec}
.entry-top {margin-bottom:6px}
.vote-action {margin-top:15px}
.comment-thread {margin-top:13px;border-top:1px solid #52445e;padding-top:7px}
.comment-thread summary {cursor:pointer;min-height:42px;display:flex;align-items:center;font-size:12px;font-weight:700;color:#dac9dd}
.comment-add .btn {min-height:44px}
.chaos {border:1px solid #c090a6;border-radius:18px;padding:27px;background:linear-gradient(145deg,#5c3a57,#2c243b);margin:13px 0 17px}
.chaos h2 {font-size:clamp(23px,4vw,30px);line-height:1.33}
.lobby-number {background:#f7dfc9;color:#34213a;text-align:center;border-radius:17px;margin:21px 0 25px;padding:19px}
.lobby-number .tiny {color:#674d5a;font-weight:900;letter-spacing:1px}
.lobby-number strong {font-size:clamp(43px,6vw,65px);line-height:1.15;display:block;letter-spacing:-1px;margin:5px 0}
.lobby-number div:last-child {font-size:13px;font-weight:700;color:#634851}
.mode-grid {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 19px}
.game-mode {border:2px solid #564760;border-radius:16px;background:#2b2436;padding:18px 15px;display:flex;flex-direction:column;text-align:left;gap:7px;color:#fff0f4;min-height:143px;cursor:pointer}
.game-mode span {font-size:26px;line-height:1}
.game-mode strong {font-size:18px}
.game-mode small {font-size:12px;color:#cfc0d3;line-height:1.4}
.game-mode.on {background:#45314a;border-color:#feb78b}
.lobby-cta {margin-top:20px}
.lobby-cta .tiny {text-align:center;margin:10px 0 0}
/* Polishing legal, venue and admin screens with the same system */
.admin-control {border-color:#85647d}
.admin-stat strong {color:#fff0dd}
.venue-landing .btn,.admin-app .btn {min-height:48px}
/* Mobile: thumb reach, avoid huge text blocks or excessive header height */
@media(max-width:780px){
 .wrap {width:calc(100% - 32px)}
 .topbar {height:68px}
 .hero-v9 {grid-template-columns:1fr;gap:14px;padding:25px 0 0}
 .hero-v9 h1 {font-size:clamp(39px,7vw,56px);margin-bottom:14px}
 .hero-v9 p {font-size:16px}
 .hero-visual {display:none}
 .hero-proof {margin:17px 0 0;gap:7px}
 .hero-proof span {font-size:11px;padding:7px 9px}
 .auth-v9 {margin:25px auto 30px}
 .room-head {flex-direction:column;align-items:flex-start}
 .room-top-actions {width:100%}
 .room-top-actions .btn {flex:1}
 .app-layout {grid-template-columns:1fr}
 .room-sidebar>.panel {padding:12px 18px}
 .game-panel {padding:21px}
 .table-action {grid-template-columns:1fr 1.2fr}
 .games-preview {grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
 .wrap {width:calc(100% - 28px)}
 .topbar {height:64px}
 .brand {font-size:21px}
 .brand-icon {width:33px;height:33px;font-size:21px}
 .topbar .top-link {display:none}
 .topbar .pilot-badge {font-size:9px;letter-spacing:.4px;white-space:normal;text-align:center;padding:7px 9px}
 .hero-v9 {padding:22px 0 0}
 .hero-v9 h1 {font-size:40px;line-height:1.08;letter-spacing:-2px}
 .hero-v9 p {font-size:15px;line-height:1.48;margin-bottom:11px}
 .hero-proof span:last-child {display:none}
 .auth-v9 {padding:22px 19px;margin-top:20px}
 .auth-v9 .field-row {grid-template-columns:1fr;gap:0}
 .auth-v9 h2 {font-size:26px}
 .home-welcome {align-items:start;gap:14px;margin:21px 0}
 .home-welcome h1 {font-size:38px}
 .home-welcome .subtitle {font-size:12px}
 .home-welcome .btn {font-size:12px;min-height:44px;padding:9px 12px}
 .table-primary {padding:24px 18px 20px}
 .table-primary h2 {font-size:31px;line-height:1.13}
 .table-primary .subtitle {font-size:14px}
 .table-action {grid-template-columns:1fr;gap:11px}
 .table-action .label {grid-column:1}
 .table-action .btn {min-height:56px}
 .table-community {padding:20px 15px}
 .table-heading h2 {font-size:21px}
 .games-preview {grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}
 .game-tile {padding:14px;min-height:124px}
 .game-tile:nth-child(3) {display:none}
 .game-tile b {font-size:17px}
 .game-tile .tiny {font-size:11px}
 .game-panel {padding:16px}
 .room-head {gap:12px;margin:13px 0 15px}
 .room-head h1 {font-size:34px}
 .room-info {gap:6px}
 .room-info .pill {padding:6px 9px;font-size:11px}
 .room-top-actions .btn {font-size:12px}
 .situation {padding:20px 17px;margin-bottom:17px}
 .situation h2 {font-size:clamp(22px,5.3vw,27px);line-height:1.3}
 .round-timer {top:3px;padding:11px 14px}
 .round-timer span {font-size:10px;letter-spacing:.8px}
 .round-timer strong {font-size:30px}
 .hand {grid-template-columns:1fr 1fr;gap:9px}
 .play-card {min-height:153px;font-size:14px;padding:13px;gap:8px;overflow-wrap:anywhere}
 .play-card small {font-size:9px}
 .choose-action {bottom:0}
 .mode-grid {gap:10px}
 .game-mode {padding:15px 12px;min-height:130px}
 .game-mode strong {font-size:16px}
 .chaos {padding:21px 17px}
 .chaos h2 {font-size:22px}
 .comment-add {flex-wrap:wrap}
 .comment-add input {flex:1 1 160px}
 .footer {margin-top:38px;gap:12px;justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.play-card{transition:none!important}.spinner{animation:none}}
