:root{--bg:#102322;--bg2:#0b1b1b;--panel:#142b29;--text:#ecebe1;--muted:#a4b2a9;--gold:#ddbc7b;--gold2:#a98345;--line:#ffffff17;--cream:#f1ede3;--ink:#283731;--people:#87b8a1;--client:#82add0;--result:#d8b46e;--culture:#b0a0cc;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:Georgia,"Times New Roman",serif;color-scheme:dark;font-family:var(--sans);font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg2);color:var(--text);min-width:320px}button,input,select,textarea{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{color:inherit}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit}button,input,select,textarea{border-radius:8px}input,select,textarea{border:1px solid #ffffff26;background:#ffffff06;color:var(--text);padding:13px 15px;width:100%;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #ddbc7b12}input::placeholder,textarea::placeholder{color:#9ea69b}select option{background:#17302b}label.field{display:block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:16px}label.field input,label.field select{margin-top:8px;letter-spacing:0;text-transform:none;font-size:14px}.icon{width:19px;height:19px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.small{font-size:12px;color:var(--muted);line-height:1.6}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;text-transform:uppercase;color:var(--gold)}.serif{font-family:var(--serif);font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);padding:12px 18px;background:#ffffff05;font-size:12px;font-weight:600;transition:background .2s,box-shadow .2s,transform .2s;min-height:43px;text-decoration:none}.btn:hover:not(:disabled){background:#ffffff0d;border-color:#ffffff38}.btn.primary{color:#172620;background:var(--gold);border-color:var(--gold);box-shadow:0 3px 16px #ddbc7b17}.btn.primary:hover:not(:disabled){background:#eed09a;box-shadow:0 6px 25px #ddbc7b26;transform:translateY(-1px)}.btn.quiet{background:none;border-color:transparent;color:var(--muted)}.btn.small-btn{padding:8px 12px;font-size:11px;min-height:34px}.btn.danger{color:#efaa9c}.row{display:flex;gap:10px;align-items:center}.grow{flex:1}.pill{display:inline-flex;gap:6px;align-items:center;padding:5px 9px;border:1px solid var(--line);border-radius:50px;font-size:10px;letter-spacing:.25px;white-space:nowrap}.pill .icon{width:12px;height:12px}.gold{color:var(--gold)}.muted{color:var(--muted)}.divider{height:1px;background:var(--line);margin:20px 0}.dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:var(--gold)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:36px;height:36px;border:1px solid #ddbc7b66;border-radius:9px;display:grid;place-items:center;transform:rotate(-3deg)}.brand-mark .icon{width:23px;height:23px;color:var(--gold)}.wordmark{font-family:var(--serif);font-size:22px;letter-spacing:2.5px}.brand-sub{display:block;font-family:var(--sans);font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:4px}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);position:relative;z-index:4;background:#0e211fde}.top-actions{display:flex;align-items:center;gap:7px}.sound-btn{width:38px;height:38px;padding:0;min-height:38px}.sound-btn.active{color:var(--gold);background:#ddbc7b0e;border-color:#ddbc7b39}.ambient-bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 52% 35%,#214037 0%,#102622 45%,#0b1b1b 85%)}.ambient-bg:after{content:'';position:absolute;inset:0;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}
/* Landing: physical cards, no external images or fonts. */
.landing{min-height:100vh;overflow:hidden}.landing .topbar{background:transparent}.hero{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.03fr 1fr;align-items:center;gap:50px;padding:72px 50px 50px;min-height:630px}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,4.9vw,74px);line-height:1.05;letter-spacing:-2.5px;margin:24px 0}.hero h1 em{font-weight:400;color:var(--gold)}.hero-copy{font-size:15px;line-height:1.8;color:#aabbb0;max-width:430px;margin-bottom:28px}.hero-ctas{display:flex;gap:10px;flex-wrap:wrap}.hero-ctas .btn{padding:15px 22px;font-size:13px}.hero-meta{display:flex;gap:22px;margin-top:27px;color:#aabbac;font-size:11px;align-items:center}.hero-meta span{display:flex;align-items:center;gap:6px}.hero-meta .icon{width:15px;height:15px}.visual{position:relative;height:440px;perspective:1200px}.visual:before{content:'';position:absolute;left:0;right:0;top:25px;bottom:-10px;border-radius:50%;border:1px solid #ddbc7b18;transform:rotateX(57deg);box-shadow:0 0 0 28px #ddbc7b03,0 0 0 65px #ddbc7b03}.hero-card{position:absolute;width:238px;height:327px;left:50%;top:35px;margin-left:-119px;border-radius:15px;box-shadow:2px 4px 0 #d0c9b7,4px 8px 0 #9d998a,0 25px 45px #0006;backface-visibility:hidden}.hero-card.back{padding:14px;background:#314a43;border:1px solid #75917d;transform:translateX(-100px) translateY(30px) rotate(-19deg);animation:floatBack 7s ease-in-out infinite}.card-back-pattern{height:100%;border:1px solid #90ad784d;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:repeating-linear-gradient(45deg,transparent 0 12px,#b6c68d08 12px 13px);gap:18px}.card-back-pattern .icon{width:56px;height:56px;color:#b5c498}.card-back-pattern span{font-family:var(--serif);font-size:17px;letter-spacing:3px;color:#b7c5ab}.hero-card.front{background:var(--cream);color:var(--ink);padding:23px 24px;transform:rotate(9deg) translate(30px,-10px);animation:floatCard 6s ease-in-out infinite}.hero-card .tag{display:flex;justify-content:space-between;align-items:center;color:#607d68;font-size:9px;letter-spacing:1.5px;font-weight:700}.hero-card h3{font-family:var(--serif);font-size:29px;line-height:1.06;font-weight:400;margin:22px 0 14px}.hero-card p{font-size:11px;line-height:1.6;color:#67766c}.mini-answers{display:grid;gap:7px;margin-top:19px}.mini-answers span{font-size:9px;border:1px solid #334b3422;border-radius:4px;padding:7px;background:#fff6}.mini-answers b{margin-right:8px;color:#8b794f}.floating-badge{position:absolute;z-index:3;padding:13px 16px;border:1px solid #ddbc7b40;border-radius:10px;background:#142a26e8;box-shadow:0 10px 25px #0003;backdrop-filter:blur(10px)}.floating-badge span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:1.5px}.floating-badge strong{display:block;font-size:12px;font-weight:500;margin-top:5px}.floating-badge.first{top:44px;right:-6px;transform:rotate(4deg)}.floating-badge.second{bottom:35px;left:-10px;transform:rotate(-3deg)}.cube{display:inline-block;width:10px;height:10px;background:linear-gradient(135deg,#525450,#080d0b 66%);border:1px solid #000;border-radius:2px;box-shadow:2px 2px 0 #0006,2px 3px 4px #0004;transform:rotate(-5deg)}.mini-cubes{display:flex;gap:12px;position:absolute;right:30px;bottom:45px;transform:rotate(-6deg)}.mini-cubes .cube{width:17px;height:17px}.landing-bottom{max-width:1220px;margin:0 auto;padding:22px 40px 28px;display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line)}.landing-bottom .manifest{font-family:var(--serif);font-size:21px;color:#bcc4b7}.landing-bottom .small{max-width:380px;font-size:11px}.home-note{font-size:10px;color:#718f7f;text-align:center;padding:12px 16px 24px}
@keyframes floatCard{0%,100%{transform:rotate(9deg) translate(30px,-10px)}50%{transform:rotate(7deg) translate(30px,-20px)}}@keyframes floatBack{0%,100%{transform:translateX(-100px) translateY(30px) rotate(-19deg)}50%{transform:translateX(-105px) translateY(21px) rotate(-21deg)}}
/* Game dashboard */
.game-shell{min-height:100vh;position:relative}.game-shell .topbar{height:67px;padding:0 25px}.game-shell .wordmark{font-size:19px}.game-shell .brand-mark{width:30px;height:30px}.room-title{display:flex;gap:12px;align-items:center}.room-title .small{font-size:10px}.game-body{max-width:1650px;margin:auto;padding:19px 25px 35px}.calendar-panel{border:1px solid var(--line);border-radius:12px;padding:13px 17px 12px;background:#122a2466;margin-bottom:20px}.calendar-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.calendar-label .eyebrow{color:#a7b8a6;letter-spacing:1.6px;font-size:9px}.calendar-row{display:grid;grid-template-columns:repeat(12,minmax(43px,1fr));gap:6px}.month{position:relative;min-height:62px;border:1px solid #ffffff14;background:#d4ddbe06;border-radius:6px;padding:9px 5px 8px;text-align:center;color:#819a88;overflow:visible}.month .num{font-size:9px;opacity:.55;display:block;margin-top:4px}.month .mon{font-size:10px;letter-spacing:1px;font-weight:600}.month.current{background:#d6bd8120;border-color:#d6bd817d;color:#ecd6a6;box-shadow:0 0 18px #d6bd810d}.month.past{opacity:.42}.month .cube{position:absolute;top:-4px;right:5px;width:10px;height:10px}.calendar-cards{display:flex;justify-content:center;gap:3px;position:absolute;bottom:-4px;left:3px;right:3px}.tiny-card{width:11px;height:15px;border:1px solid currentColor;background:var(--bg);border-radius:2px;transform:rotate(7deg);box-shadow:0 1px 3px #0006}.tiny-card:nth-child(2n){transform:rotate(-9deg)}.calendar-caption{display:flex;justify-content:space-between;gap:10px;margin-top:11px;font-size:10px;color:#7e9687}.calendar-caption button{color:var(--gold);border:0;background:none;padding:0;font-size:10px}.board-grid{display:grid;grid-template-columns:240px minmax(370px,1fr) 270px;gap:22px;align-items:start}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.6px;font-weight:650;text-transform:uppercase;color:#9dac9f;margin-bottom:13px}.metric{position:relative;background:var(--cream);color:var(--ink);border-radius:8px;padding:14px 13px 13px;margin-bottom:12px;box-shadow:0 3px 0 #d5cfbd,0 8px 14px #0002;overflow:hidden}.metric:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--cat)}.metric-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.metric-name{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:650}.metric-title .icon{width:17px;height:17px;color:color-mix(in srgb,var(--cat),#283731 35%)}.metric-value{font-family:var(--serif);font-size:25px;font-weight:400;line-height:1}.metric-value small{font-family:var(--sans);font-size:10px;color:#8a948a}.track{display:grid;grid-template-columns:repeat(11,1fr);position:relative;padding-top:7px}.track:before{content:'';position:absolute;top:0;left:5%;right:5%;height:3px;background:linear-gradient(90deg,#d5a7a0,#d7c9ac 45%,#9eaf94)}.track span{position:relative;text-align:center;font-size:9px;color:#81897f}.track span .cube{position:absolute;top:-11px;left:50%;margin-left:-5px;transition:left .5s}.track span.at{color:#151d18;font-weight:800}.metric-foot{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:.7px;text-transform:uppercase;color:#8d968a;margin-top:10px}.metric.critical{box-shadow:0 3px 0 #d5cfbd,0 0 0 1px #d7746288}.metric.healthy .metric-value{color:#456746}.metric-decks{display:flex;gap:4px;margin-top:10px}.metric-decks .deck-mini{display:flex;align-items:center;gap:4px;color:#c7cdbf;font-size:9px;padding:6px 0}.deck-mini:before{content:'';width:10px;height:13px;background:var(--cat);border-radius:2px;box-shadow:2px 1px 0 #ffffff30}.goal-box{padding:13px 14px;border:1px solid #ddbc7b26;border-radius:8px;background:#ddbc7b06;margin:19px 0 12px}.goal-box p{font-size:11px;line-height:1.65;margin:6px 0;color:#a9b8a9}.goal-box strong{color:#dec696;font-weight:500}.goal-dots{display:flex;gap:5px;margin:10px 0 6px}.goal-dots i{height:4px;background:#ffffff16;border-radius:2px;flex:1}.goal-dots i.on{background:var(--gold)}.active-card{border-left:2px solid var(--cat);padding:10px 12px;background:#ffffff04;margin-top:8px;border-radius:0 5px 5px 0;font-size:10px;line-height:1.5}.active-card strong{font-size:11px;font-weight:500;display:block;margin-bottom:3px}.active-card small{color:#91a68f;font-size:9px}.center-table{position:relative;min-width:0}.center-table:before{content:'';position:absolute;top:40px;left:-12px;right:-12px;height:560px;border:1px solid #8f9e7720;border-radius:44%;box-shadow:inset 0 0 90px #819b4910,0 0 0 6px #78925504;z-index:-1}.seats{display:flex;justify-content:center;gap:15px;min-height:76px;align-items:flex-start;margin-bottom:15px}.seat{position:relative;text-align:center;min-width:56px;max-width:92px;flex:1;min-height:69px}.avatar{position:relative;width:34px;height:34px;display:grid;place-items:center;margin:0 auto 5px;border:1px solid #c3c6ae34;border-radius:50%;background:#2c3e36;color:#cbd3bb;font-family:var(--serif);font-size:14px;box-shadow:0 3px 8px #0002}.seat:nth-child(2n) .avatar{background:#334046}.seat:nth-child(3n) .avatar{background:#403d39}.seat.is-leader .avatar{border:1px solid var(--gold);box-shadow:0 0 0 3px #ddbc7b15}.seat.is-me .avatar{background:#d3b67a;color:#202e25}.seat-name{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90px;margin:auto}.seat-label{font-size:8px;color:#799082;margin-top:3px;text-transform:uppercase;letter-spacing:.6px}.seat-vote{position:absolute;bottom:-2px;right:-5px;background:#ddbc7b;color:#173027;border:2px solid #183128;width:16px;height:16px;border-radius:50%;font-size:8px;display:grid;place-items:center;font-family:var(--sans)}.crown{position:absolute;top:-9px;right:-6px;color:var(--gold)}.crown .icon{width:13px;height:13px}.seat.offline{opacity:.4}.table-eyebrow{text-align:center;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#9da98f;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:15px}.table-eyebrow .icon{width:14px;height:14px}.phase-title{text-align:center;font-family:var(--serif);font-size:34px;letter-spacing:-.7px;line-height:1.15;font-weight:400;margin:12px 0}.phase-sub{text-align:center;font-size:12px;line-height:1.7;color:#a2b19e;max-width:415px;margin:10px auto 25px}.decks-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px;padding:9px 25px 22px;max-width:520px;margin:auto;perspective:1000px}.deck-choice{min-height:166px;background:color-mix(in srgb,var(--cat),#102821 75%);border:1px solid color-mix(in srgb,var(--cat),transparent 38%);border-radius:10px;padding:10px;position:relative;box-shadow:2px 3px 0 #9fa99566,4px 6px 0 #35443b,0 12px 15px #0003;transition:transform .25s,box-shadow .25s;transform:rotate(-2deg);display:block;width:100%;text-align:center}.deck-choice:nth-child(2n){transform:rotate(2deg)}.deck-choice:before{content:'';position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--cat),transparent 70%);border-radius:5px;background:repeating-linear-gradient(45deg,transparent 0 10px,#ffffff03 10px 11px)}.deck-choice:hover:not(:disabled){transform:translateY(-7px) rotate(0);box-shadow:2px 3px 0 #9fa99566,4px 6px 0 #35443b,0 20px 23px #0004}.deck-choice>*{position:relative}.deck-choice .icon{width:30px;height:30px;color:var(--cat);margin-bottom:8px}.deck-choice h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:0 0 7px;color:#ecebe0}.deck-choice small{font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cat)}.deck-choice .card-count{font-size:8px;position:absolute;bottom:15px;right:16px;color:#dde8cd88}.deck-choice.locked{filter:grayscale(.8)}.waiting{display:flex;align-items:center;justify-content:center;gap:9px;font-size:11px;color:#b6bfa9;margin:18px 0;line-height:1.5;text-align:center}.pulse-dots{display:inline-flex;gap:3px}.pulse-dots i{width:4px;height:4px;border-radius:50%;background:var(--gold);animation:pulse 1.3s infinite}.pulse-dots i:nth-child(2){animation-delay:.18s}.pulse-dots i:nth-child(3){animation-delay:.36s}@keyframes pulse{0%,80%,100%{opacity:.25}40%{opacity:1}}
/* The dilemma itself is a real card on the table. */
.dilemma-card{max-width:570px;margin:0 auto;background:var(--cream);color:var(--ink);border-radius:11px;padding:23px 26px 22px;box-shadow:0 3px 0 #d0cab7,0 6px 0 #797f6a,0 15px 40px #0003;position:relative;border-top:4px solid var(--cat)}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:8px;font-weight:650;letter-spacing:1.5px;text-transform:uppercase;color:#708471}.card-meta .icon{width:14px;height:14px}.card-id{font-size:8px;letter-spacing:1px;color:#9ca598}.dilemma-card h2{font-family:var(--serif);font-size:32px;font-weight:400;letter-spacing:-.5px;line-height:1.15;margin:16px 0 12px}.dilemma-story{font-size:12px;line-height:1.75;color:#637165;margin-bottom:18px}.mode-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:17px}.mode-row .pill{color:#667363;border:1px solid #354f321e;font-size:8px;letter-spacing:.25px;padding:5px 7px}.mode-row .pill.secret{color:#837149;background:#d8ba7b10}.options{display:grid;gap:7px}.option{display:flex;align-items:center;text-align:left;gap:10px;border:1px solid #a4ad962f;background:#ffffff39;padding:10px 11px;min-height:48px;border-radius:6px;color:#364939;font-size:11px;line-height:1.5;transition:.16s;width:100%}.option-letter{display:grid;place-items:center;flex-shrink:0;border:1px solid #95a08940;border-radius:4px;width:25px;height:27px;color:#7b846b;font-size:10px;font-weight:700}.option:hover:not(:disabled){border-color:#7f987582;background:#fff9;transform:translateX(2px)}.option.selected{background:#dce4d2;border-color:#778c60;box-shadow:0 0 0 1px #819e6b20}.option.selected .option-letter{background:#5a7358;color:#fff;border-color:#5a7358}.option:disabled{opacity:1;cursor:default}.option.winner{background:#dae4ce;border-color:#8da27e}.option .votes-badge{margin-left:auto;flex-shrink:0;color:#4b643f;font-weight:650}.card-footer{font-size:8px;letter-spacing:1px;color:#969d8d;display:flex;justify-content:space-between;margin-top:17px;border-top:1px solid #445a3420;padding-top:11px;text-transform:uppercase}.flip-in{animation:drawIn .62s cubic-bezier(.2,.75,.25,1)}@keyframes drawIn{0%{opacity:0;transform:translateY(-24px) rotateY(76deg) rotate(-5deg)}100%{opacity:1;transform:none}}
.ballot-area{text-align:center;padding:21px 0 8px}.hand{display:flex;justify-content:center;align-items:flex-end;height:75px;margin:1px 0 17px;perspective:900px}.vote-card{width:48px;height:65px;margin:0 3px;border:1px solid #d8d3bf;border-radius:5px;background:#e7e3d7;box-shadow:0 2px 0 #a0a493,0 6px 10px #0003;font-family:var(--serif);font-size:24px;display:grid;place-items:center;color:var(--vcolor);transform:rotate(var(--r));transition:.2s}.vote-card:hover:not(:disabled){transform:translateY(-8px) rotate(0)}.vote-card.selected{transform:translateY(-9px) rotate(0);box-shadow:0 0 0 2px #dabc72,0 12px 14px #0003}.vote-card:disabled{opacity:.6}.vote-hint{font-size:10px;color:#92a38e;margin-bottom:10px}.ballot-status{font-size:10px;color:#8d9b84;margin-top:10px;line-height:1.6}.envelope-seal{width:58px;height:40px;border:1px solid #9b957c;border-radius:4px;background:#bcab87;position:relative;display:block;margin:12px auto 18px;box-shadow:0 5px 15px #0003;overflow:hidden}.envelope-seal:before{content:'';position:absolute;left:5px;top:-18px;width:45px;height:40px;transform:rotate(45deg);border-bottom:1px solid #807555;border-right:1px solid #807555;background:#c8b895}.envelope-seal:after{content:'C';display:grid;place-items:center;font-size:11px;font-family:var(--serif);position:absolute;left:21px;top:15px;background:#6b4f34;color:#e1c598;border-radius:50%;width:15px;height:15px}.send-vote{animation:sendVote .5s ease-in forwards;position:fixed;z-index:9998;background:var(--cream);color:#614d30;border:1px solid var(--gold);border-radius:7px;width:55px;height:75px;display:grid;place-items:center;font-family:var(--serif);font-size:28px;pointer-events:none}@keyframes sendVote{0%{opacity:1;transform:translateY(0) rotate(-7deg)}70%{opacity:1;transform:translateY(-200px) scale(.55) rotate(9deg)}100%{opacity:0;transform:translateY(-240px) scale(.3)}}
/* Chat and log */
.aside-panel{background:#0a1d174d;border:1px solid var(--line);border-radius:10px;overflow:hidden}.aside-head{padding:15px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:600;letter-spacing:.5px}.aside-head .icon{width:14px;height:14px;color:#b3b998}.chat-list{height:310px;overflow-y:auto;padding:13px 13px 7px;scrollbar-width:thin;scrollbar-color:#53674755 transparent}.chat-empty{font-size:11px;color:#819580;line-height:1.7;padding:13px 4px}.chat-item{margin-bottom:13px;animation:fadeIn .25s}.chat-meta{font-size:9px;color:#acb794;margin-bottom:5px;display:flex;align-items:center;gap:6px}.chat-meta .bot-label{font-size:7px;padding:2px 4px;border:1px solid #ffffff15;border-radius:3px;color:#7e957e}.chat-text{font-size:10px;line-height:1.65;color:#afbbaa;background:#ffffff04;padding:10px 11px;border-radius:0 7px 7px 7px}.chat-item.mine .chat-text{background:#c4b0770b;color:#d4cfbb}.chat-controls{padding:10px;border-top:1px solid var(--line);display:flex;gap:6px}.chat-controls input{padding:9px;font-size:10px;min-width:0;background:#ffffff03;border-color:#ffffff10;border-radius:5px}.chat-controls .btn{width:31px;min-width:31px;min-height:31px;padding:0}.chat-controls .icon{width:13px;height:13px}.chat-locked{padding:12px;font-size:10px;color:#c3b082;line-height:1.6;border-top:1px solid var(--line)}.log-box{margin-top:17px;padding:13px 0}.log-entry{font-size:10px;line-height:1.6;color:#8ca186;padding:7px 0;border-bottom:1px solid #ffffff09;display:flex;gap:8px}.log-entry:before{content:'';width:4px;height:4px;background:#d6ba7b70;border-radius:50%;flex-shrink:0;margin-top:6px}.log-entry .log-round{font-size:8px;color:#bfa879;white-space:nowrap}.bottom-note{text-align:center;font-size:9px;color:#627f6c;margin:28px 0 0;letter-spacing:.5px}
/* Resolution, consequences, finish */
.result-card{background:var(--cream);color:var(--ink);max-width:570px;border-radius:11px;padding:26px 27px;margin:auto;box-shadow:0 4px 0 #bebda7,0 15px 30px #0003;animation:drawIn .5s}.result-card .eyebrow{color:#8f784c}.result-card h2{font-family:var(--serif);font-size:32px;font-weight:400;line-height:1.12;margin:14px 0}.result-narrative{font-size:12px;line-height:1.8;color:#6b7866}.chosen-quote{font-size:12px;font-weight:550;padding:14px 0;border-top:1px solid #43513522;border-bottom:1px solid #43513522;margin:19px 0;color:#3f513b}.tally{display:flex;gap:8px;margin:15px 0}.tally-cell{background:#71876112;border:1px solid #6f836129;border-radius:5px;flex:1;padding:9px;text-align:center;font-size:10px;color:#78836e}.tally-cell strong{font-family:var(--serif);font-size:23px;font-weight:400;display:block;color:#445c3b;margin-top:3px}.tally-cell.winner{border-color:#6c855f88;background:#81926b24}.effect-chips{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0}.effect-chip{display:inline-flex;align-items:center;gap:6px;border-radius:5px;padding:7px 9px;font-size:10px;border:1px solid #64745125;background:#eef0e6;color:#4c6246}.effect-chip.negative{color:#a0604f;background:#ab736510;border-color:#a66e5128}.effect-chip .icon{width:13px;height:13px}.scheduled-note{border:1px dashed #95855766;background:#b8a1690b;border-radius:6px;padding:13px;font-size:11px;line-height:1.6;color:#80754f;display:flex;gap:9px;align-items:center}.scheduled-note .icon{width:22px;height:22px}.result-actions{display:flex;justify-content:center;margin-top:21px}.secret-note{color:#9da693;font-size:9px;text-align:center;margin-top:11px}.notice-card{background:#f0ece0;border:1px solid #d2c7ab;border-left:4px solid var(--cat);padding:17px 19px;border-radius:7px;margin-bottom:13px;color:#3a4a36;box-shadow:0 3px 0 #8f988199;animation:drawIn .5s}.notice-card h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:7px 0 9px}.notice-card p{font-size:11px;line-height:1.7;color:#76816d;margin:8px 0}.notice-card .eyebrow{color:#8d845f;font-size:8px}.notices{max-width:570px;margin:auto}.gameover{max-width:970px;margin:30px auto;padding:15px 15px 30px;text-align:center}.medal{width:74px;height:74px;margin:0 auto 25px;border:1px solid #ddbc7b60;border-radius:50%;display:grid;place-items:center;background:#ddbc7b09;box-shadow:0 0 0 8px #ddbc7b03}.medal .icon{width:33px;height:33px;color:var(--gold)}.gameover h1{font-family:var(--serif);font-size:clamp(34px,4vw,51px);font-weight:400;letter-spacing:-1px;margin:10px 0}.end-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;max-width:780px;margin:30px auto 25px;text-align:left}.gameover-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.end-review{margin:35px auto 0;max-width:780px;border-top:1px solid var(--line);padding-top:24px;text-align:left}.end-review h3{font-family:var(--serif);font-size:22px;font-weight:400}.decision-history{padding:11px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:baseline;font-size:11px;line-height:1.6;color:#abbaa9}.decision-history>span{font-size:9px;color:#c3ac78;min-width:28px}.decision-history strong{color:#d2d8c6;font-weight:500;display:block}.empty-seat{width:50px;height:50px;border:1px dashed #ffffff2a;border-radius:50%;display:grid;place-items:center;color:#718b78}.lobby{max-width:1000px;margin:45px auto;padding:0 25px 30px}.lobby-head{text-align:center;margin-bottom:30px}.lobby-head h1{font-family:var(--serif);font-weight:400;font-size:44px;margin:13px 0}.lobby-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:23px}.lobby-panel{border:1px solid var(--line);border-radius:12px;background:#18312750;padding:25px}.lobby-player{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.lobby-player .avatar{margin:0;width:39px;height:39px}.lobby-player .name{font-size:13px}.lobby-player .sub{font-size:10px;color:#8f9f85;margin-top:4px}.lobby-player .btn{margin-left:auto}.lobby-panel h3{font-family:var(--serif);font-weight:400;font-size:25px;margin:0 0 15px}.room-code{font-family:var(--serif);font-size:40px;letter-spacing:9px;color:var(--gold);margin:18px 0}.lobby-tip{font-size:11px;line-height:1.8;color:#a6b29c;margin:17px 0}.lobby-controls{margin-top:20px;display:flex;gap:9px;flex-wrap:wrap}.status-banner{background:#a9784612;color:#c7ad75;border:1px solid #b5955133;padding:10px 14px;border-radius:6px;font-size:11px;margin:0 0 16px;text-align:center}
/* Modals */
.modal-overlay{position:fixed;z-index:1000;inset:0;background:#061713bb;backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:22px;animation:fadeIn .2s}.modal{position:relative;width:min(100%,520px);max-height:89vh;overflow:auto;border:1px solid #8d9a773b;border-radius:15px;background:#18302a;box-shadow:0 30px 80px #0007;padding:31px;scrollbar-width:thin}.modal.wide{width:min(100%,800px)}.modal h2{font-family:var(--serif);font-size:33px;font-weight:400;margin:11px 0 14px;letter-spacing:-.5px}.modal p{font-size:12px;color:#adbaa5;line-height:1.8}.modal-close{position:absolute;top:16px;right:16px;width:29px;height:29px;border:0;background:#ffffff08;display:grid;place-items:center;border-radius:50%;color:#a8b8a3}.modal-close .icon{width:15px;height:15px}.modal .btn.full{width:100%;margin-top:9px}.player-count{display:flex;gap:9px;margin:10px 0 23px}.count-choice{flex:1;padding:14px;border:1px solid #ffffff1d;border-radius:7px;background:#ffffff03;color:#c8d1b9}.count-choice strong{font-family:var(--serif);font-size:26px;display:block;margin-bottom:3px}.count-choice small{font-size:9px;color:#8ea182}.count-choice.selected{border-color:#ddbc7b88;background:#ddbc7b12;color:var(--gold)}.segmented{display:flex;border:1px solid var(--line);padding:4px;border-radius:8px;margin-bottom:24px;gap:4px}.segmented button{flex:1;font-size:11px;border:0;background:none;color:#b3bca5;padding:10px;border-radius:5px}.segmented button.on{background:#ddbc7b17;color:var(--gold)}.rule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.rule{border:1px solid var(--line);border-radius:7px;padding:16px;background:#ffffff03}.rule .eyebrow{font-size:8px;letter-spacing:1.2px}.rule h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:9px 0}.rule p{font-size:11px;line-height:1.75;margin:8px 0}.rule strong{color:#dec993;font-weight:500}.rules-note{font-size:11px;color:#aab59c;border-top:1px solid var(--line);margin-top:20px;padding-top:16px;line-height:1.7}.review-area textarea{resize:vertical;min-height:90px;font-size:12px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px;gap:18px}.settings-row small{display:block;font-size:10px;color:#8da382;margin-top:5px;line-height:1.6}.settings-row input[type=checkbox]{width:19px;height:19px;accent-color:#ddbc7b}.settings-row select{width:135px;font-size:11px}.summary-list{font-size:11px;line-height:1.8;color:#a6b89d}.toast{position:relative;padding:13px 19px;border:1px solid #a4b48c55;background:#1e3b30;color:#e2e6d0;border-radius:8px;box-shadow:0 10px 30px #0006;max-width:420px;margin:8px;font-size:12px;animation:toastIn .25s}.toast.error{border-color:#d7846266;color:#f0c4b1}#toasts{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1100;width:max-content;max-width:94vw;pointer-events:none}#fx{pointer-events:none;position:fixed;inset:0;z-index:9999;overflow:hidden}.confetti{position:absolute;width:5px;height:9px;background:var(--c);left:var(--x);top:-12px;animation:confetti 3.5s ease-out forwards;animation-delay:var(--delay)}@keyframes confetti{to{transform:translateY(105vh) rotate(720deg) translateX(100px);opacity:.1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes toastIn{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.offline-info{font-size:10px;line-height:1.7;border-left:2px solid #ddbc7b55;padding:8px 13px;color:#a9b499;background:#ddbc7b06}.legal-note{font-size:10px;color:#8b9e84;line-height:1.7;margin:18px 0}.quick-stats{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:15px;flex-wrap:wrap}.quick-stat strong{font-size:22px;font-family:var(--serif);font-weight:400;color:var(--gold)}.quick-stat span{display:block;font-size:9px;color:#8fa080;margin-top:3px}.mobile-bar{display:none}
@media(min-width:1550px){.board-grid{grid-template-columns:265px minmax(400px,1fr) 300px;gap:30px}.game-body{padding-top:24px}.metric{padding:18px 17px}.chat-list{height:365px}.dilemma-card{padding:26px 31px}.dilemma-story{font-size:13px}.option{font-size:12px;padding:11px 13px}.decks-grid{max-width:560px}.deck-choice{min-height:180px}}
@media(max-width:1150px){.board-grid{grid-template-columns:210px minmax(340px,1fr);gap:21px}.right-sidebar{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px}.chat-list{height:160px}.log-box{margin:0}.game-body{padding:17px 20px}.hero{gap:18px;padding:50px 35px}.visual{transform:scale(.9)}.hero h1{font-size:60px}.hero-meta{gap:12px}.hero-meta span{font-size:10px}}
@media(max-width:780px){.topbar{height:70px;padding:0 20px}.hero{grid-template-columns:1fr;gap:0;padding:38px 25px 5px;text-align:center;min-height:0}.hero h1{font-size:58px;letter-spacing:-2px}.hero-copy{margin:0 auto 25px;max-width:440px;font-size:14px}.hero-ctas,.hero-meta{justify-content:center}.hero .eyebrow{font-size:9px}.visual{height:350px;width:380px;max-width:100%;margin:20px auto;transform:scale(.85)}.floating-badge.first{right:-3px}.landing-bottom{padding:23px 25px;flex-direction:column;gap:10px;text-align:center}.landing-bottom .small{margin:auto}.landing-bottom .manifest{font-size:20px}.top-actions .desktop-only{display:none}.game-shell .topbar{padding:0 16px;height:60px}.room-title{gap:7px}.room-title .small{display:none}.game-body{padding:15px 14px 30px}.board-grid{grid-template-columns:1fr;gap:23px}.left-sidebar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.left-sidebar>.section-label{grid-column:1/-1;margin:0}.metric{margin:0;padding:12px 8px 10px;border-radius:6px;box-shadow:0 2px 0 #d5cfbd,0 5px 10px #0002}.metric-title{display:block;margin:0}.metric-name{font-size:9px;gap:5px}.metric-name .icon{width:13px;height:13px}.metric-value{font-size:27px;margin:9px 0 5px}.metric-value small{font-size:9px}.metric .track{display:none}.metric-foot{font-size:7px;margin-top:7px}.metric-decks{display:none}.goal-box{grid-column:1/-1;padding:8px 11px;margin:4px 0 0;display:flex;align-items:center;gap:12px}.goal-box .eyebrow{font-size:8px;letter-spacing:1px;min-width:90px}.goal-box p{font-size:9px;margin:0}.goal-box .goal-dots{display:none}.goal-box .small{display:none}.active-effects{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.active-card{margin:0;font-size:9px}.active-card strong{font-size:10px}.left-sidebar>.btn{display:none}.calendar-panel{padding:10px 10px 12px;margin-bottom:18px}.calendar-row{grid-template-columns:repeat(6,1fr);gap:9px 6px}.month{min-height:47px;padding:7px 4px}.month .mon{font-size:9px}.month .num{font-size:8px;margin-top:2px}.calendar-label{margin-bottom:9px}.calendar-caption{font-size:9px}.calendar-caption button{font-size:9px}.seats{margin-bottom:15px;gap:8px;min-height:64px}.seat-name{font-size:9px}.seat-label{font-size:7px}.avatar{width:31px;height:31px}.center-table:before{height:480px}.phase-title{font-size:30px}.phase-sub{font-size:11px;max-width:350px}.decks-grid{padding:7px 15px 13px;gap:17px}.deck-choice{min-height:160px}.right-sidebar{grid-column:auto;grid-template-columns:1fr}.log-box{display:none}.chat-list{height:210px}.dilemma-card{padding:20px 19px 18px}.dilemma-card h2{font-size:30px}.dilemma-story{font-size:12px}.option{font-size:11px;padding:11px 10px}.card-meta{font-size:8px;letter-spacing:1.1px}.mode-row .pill{font-size:8px}.ballot-area{padding-bottom:0}.result-card{padding:23px 20px}.result-card h2{font-size:29px}.end-metrics{gap:8px}.gameover{padding:8px 0}.gameover h1{font-size:36px}.gameover .metric-name{font-size:9px}.lobby{margin-top:26px;padding:0 17px 25px}.lobby-head h1{font-size:34px}.lobby-layout{grid-template-columns:1fr}.lobby-panel{padding:21px}.modal{padding:25px 21px}.modal h2{font-size:30px}.rule-grid{grid-template-columns:1fr}.modal-overlay{padding:13px}.room-code{font-size:35px}.end-review{margin-top:26px}.gameover-actions .btn{font-size:11px}.wordmark{font-size:19px}.brand-sub{font-size:7px}.game-shell .topbar .btn.small-btn{font-size:10px;padding:7px 9px}.game-shell .topbar .sound-btn{width:31px;min-height:32px;height:32px}.game-shell .brand-sub{letter-spacing:1.5px}.top-actions{gap:3px}.btn .icon{width:16px;height:16px}}
@media(max-width:390px){.hero h1{font-size:49px}.hero-meta{gap:9px}.hero-ctas .btn{padding:13px 16px}.game-shell .wordmark{font-size:16px}.game-shell .brand-mark{display:none}.metric-name{font-size:8px}.metric-name .icon{width:11px;height:11px}.goal-box{gap:6px}.goal-box .eyebrow{min-width:70px}.calendar-caption{font-size:8px}.dilemma-card{padding:18px 14px}.dilemma-card h2{font-size:27px}.topbar .brand-mark{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

.deck-choice.shuffling{animation:shuffleDeck .36s ease-in-out!important}
@keyframes shuffleDeck{0%,100%{transform:rotate(0)}25%{transform:translateX(-8px) rotate(-6deg)}50%{transform:translateX(8px) rotate(5deg)}75%{transform:translateX(-4px) rotate(-3deg)}}
.center-table{scroll-margin-top:18px}
@media(max-width:780px){.metric-foot span:last-child{display:none}.metric-foot{min-height:15px}.game-shell .brand-sub{font-size:6px;letter-spacing:1px}.game-shell .room-title .pill{font-size:8px;padding:4px 6px}}

/* 0.1.1: visible validation/error feedback, including sandboxed previews. */
.form-error{color:#efaa9c;font-size:13px;line-height:1.5;margin:12px 0 0;padding:10px 12px;border:1px solid #efaa9c44;border-radius:8px;background:#efaa9c0b}
input[aria-invalid="true"]{border-color:#efaa9c}

/* 0.2 · mixed tables, readable cards, persistent call tiles and mobile conversation drawer. */
.tavola-logo{width:112px;height:auto;object-fit:contain;display:block}.brand-divider{height:29px;width:1px;background:#ffffff25}.brand{gap:15px}.wordmark{font-size:21px}.brand-sub{font-size:7px;letter-spacing:1.2px}.topbar{min-height:78px;height:auto;padding-top:13px;padding-bottom:13px}.btn{font-size:14px;min-height:44px}.btn.small-btn{min-height:38px;font-size:12px}.small{font-size:14px}.legal-note{font-size:12px;line-height:1.6}.modal{max-height:calc(100dvh - 36px);overflow:auto}.modal.wide{max-width:730px}.modal h2{font-size:35px}.modal p{font-size:15px;line-height:1.65}.field input,.field select{font-size:16px!important}.setup-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.player-count{margin:8px 0 18px}.count-choice{min-height:65px}.count-choice strong{font-size:27px}.count-choice small{font-size:12px}.setup-seat{display:flex;gap:12px;align-items:center;padding:11px 14px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px;background:#ffffff04}.setup-avatar{width:35px;height:35px;display:grid;place-items:center;background:#ddbc7b12;border-radius:8px;color:var(--gold);flex-shrink:0}.setup-seat strong{font-size:14px}.setup-seat small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.setup-seat select{width:153px;margin-left:auto;padding:10px 9px;font-size:14px;min-height:42px}.setup-summary{border-left:2px solid var(--gold);padding:10px 14px;margin:16px 0;color:var(--gold);background:#ddbc7b08}.setup-summary span{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:6px}
.game-body{max-width:1700px;padding:20px 22px 38px}.board-grid{grid-template-columns:205px minmax(430px,1fr) 350px;gap:24px}.metric-name{font-size:12px}.metric-foot{font-size:10px}.section-label{font-size:10px}.center-table{min-width:0}.seats{gap:10px;margin-bottom:21px}.seat-name{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.seat-label{font-size:10px}.avatar{width:39px;height:39px}.phase-sub{font-size:16px;line-height:1.7}.deck-choice h3{font-size:27px}.dilemma-card{padding:24px;border-radius:15px}.card-meta{font-size:11px;gap:10px;flex-wrap:wrap}.dilemma-illustration{display:block;width:100%;height:auto;margin:18px 0 23px;border-radius:12px;overflow:hidden}.art-float{animation:artFloat 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes artFloat{50%{transform:translateY(-4px)}}.dilemma-card h2{font-size:36px;line-height:1.12;letter-spacing:-.6px;margin-bottom:17px}.dilemma-story{font-size:19px;line-height:1.75;color:#35473f;margin:0 0 21px}.mode-row{flex-wrap:wrap;gap:7px;margin:20px 0}.mode-row .pill{font-size:10px;padding:8px 10px;white-space:normal;line-height:1.5}.option{font-size:16px;padding:14px 14px;line-height:1.65;min-height:62px;align-items:flex-start;gap:13px}.option-letter{min-width:32px;width:32px;height:32px;display:grid;place-items:center;margin-top:0}.options{gap:10px}.card-footer{font-size:8px;gap:8px;flex-wrap:wrap}.vote-hint,.ballot-status{font-size:13px;line-height:1.6}.result-narrative,.notice-card p{font-size:18px;line-height:1.75}.chosen-quote{font-size:19px;line-height:1.55}.result-card h2{font-size:35px}.effect-chip{font-size:13px}.scheduled-note{font-size:14px;line-height:1.65}.decision-history{font-size:16px;line-height:1.6;padding:15px 0}.decision-history strong{font-size:17px;margin-bottom:5px}.summary-list{max-height:60dvh;overflow:auto}.calendar-caption{font-size:11px}.goal-box p{font-size:12px}.end-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:30px}
.right-sidebar{display:block;grid-column:auto;position:sticky;top:18px;min-width:0;z-index:2}.aside-panel{border-radius:14px;background:#112824;border-color:#ffffff22;display:flex;flex-direction:column;height:clamp(580px,calc(100dvh - 100px),900px);box-shadow:0 12px 32px #0002}.aside-head{padding:18px 17px;gap:12px}.aside-head>div>strong{font-size:17px;letter-spacing:0;display:block;margin-top:8px;font-weight:600}.aside-head .eyebrow{font-size:9px;color:#9cbaa8}.aside-head .icon{width:18px;height:18px}.chat-state{font-size:10px;text-transform:uppercase;background:#91bea21a;color:#a0d0ac;padding:5px 8px;border-radius:20px;border:1px solid #91bea233}.chat-state.locked{color:#e3be80;background:#e3be8012}.call-toolbar{padding:9px 13px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px}.call-toolbar>span{font-size:11px;color:var(--muted);margin-right:auto}.call-toolbar .btn{font-size:12px;padding:6px 10px;min-height:36px}.chat-list{height:auto;min-height:130px;flex:1;padding:18px 15px 5px;overflow-y:auto;overscroll-behavior:contain}.chat-empty{padding:25px 7px;font-size:15px;line-height:1.75;color:#a5bcb0;text-align:left}.chat-empty h3{font-family:var(--serif);font-size:24px;line-height:1.3;color:#eee6d7;font-weight:normal}.chat-empty p{font-size:15px}.chat-empty>.icon{width:32px;height:32px;color:var(--gold)}.chat-item{display:flex;align-items:flex-start;gap:10px;margin:0 0 24px;max-width:100%;padding:0;background:none;border:none}.chat-avatar{display:grid;place-items:center;border-radius:9px;width:32px;min-width:32px;height:34px;color:#19382f;background:var(--avatar-color);font-weight:700;font-size:14px}.chat-message-body{min-width:0;flex:1}.chat-meta{font-size:13px;letter-spacing:0;display:flex;align-items:center;gap:6px;margin-bottom:7px;color:#efe9dc;flex-wrap:wrap}.chat-meta strong{font-size:14px}.chat-meta .sender-kind{font-size:8px;letter-spacing:.7px;color:#9cbaaa;border:1px solid #ffffff21;padding:2px 4px;border-radius:4px}.chat-meta time{margin-left:auto;font-size:10px;color:#98ad9f}.chat-text{font-size:16px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;color:#d7e0d7;background:none;padding:0;border-radius:0}.chat-item.mine .chat-text{color:#f3e3bd}.typing-line{font-size:11px;min-height:26px;color:#a9c3b1;padding:3px 17px;line-height:1.6}.chat-controls{display:block;padding:11px 12px;margin:0 12px;border:1px solid #b0c4ad45;border-radius:10px;background:#0b211f}.chat-controls textarea{width:100%;min-height:61px;max-height:160px;resize:vertical;background:none;border:0;box-shadow:none;padding:2px;font-size:16px;line-height:1.5;color:#f0eee6;border-radius:0}.chat-controls textarea:focus-visible{outline:0}.chat-controls:focus-within{border-color:var(--gold)}.chat-compose-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px}.chat-compose-footer>span{font-size:9px;color:#95a997;line-height:1.6;max-width:160px}.chat-compose-footer>.btn{padding:6px 11px;min-height:37px}.chat-footnote{padding:10px 17px 13px;font-size:10px;color:#8fa496;line-height:1.5}.chat-locked{font-size:14px;line-height:1.6;padding:16px}.log-box{margin-top:20px}.log-entry{font-size:14px;line-height:1.6;padding:12px 0;align-items:flex-start;gap:10px}.log-round{font-size:10px}.mobile-chat-close,.mobile-game-nav{display:none}
.lobby{max-width:1150px;padding-bottom:35px}.lobby-layout{grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);align-items:start}.lobby-head p{font-size:16px}.lobby-player .avatar{width:40px;min-width:40px;height:40px}.lobby-player .name{font-size:16px;line-height:1.4}.lobby-player .sub{font-size:12px;line-height:1.5}.lobby-player-name{flex:1;min-width:0;overflow-wrap:anywhere}.lobby-slot-type{width:140px;font-size:13px;padding:10px}.lobby-capacity{display:flex;gap:10px;align-items:center}.lobby-capacity select{width:120px;font-size:12px;padding:9px;text-transform:none;letter-spacing:0}.lobby-controls{margin-top:24px}.invite-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}.room-code{font-size:32px;letter-spacing:5px;margin:10px 0 0}.lobby-tip{font-size:14px;line-height:1.6}
.call-panel:empty{display:none}.call-summary:empty,.call-controls:empty,.call-note:empty{display:none}.call-summary{display:flex;gap:7px;align-items:center;padding:9px 13px;font-size:11px;background:#0c211f}.call-summary>span:last-child{margin-left:auto;font-size:10px;color:var(--muted)}.live-dot{width:6px;height:6px;border-radius:50%;background:#93d3a5;box-shadow:0 0 9px #93d3a544}.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:0 10px}.video-grid:empty{display:none}.video-tile{position:relative;border-radius:7px;overflow:hidden;aspect-ratio:1.5;background:#183c36}.video-tile video{width:100%;height:100%;object-fit:cover;display:block}.video-tile.camera-off video{opacity:0}.video-avatar{display:none;position:absolute;inset:0;place-items:center;font-size:30px;color:#cadacd;background:radial-gradient(ellipse at 50% 40%,#315b4e,#102720)}.camera-off .video-avatar{display:grid}.video-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#081c1cea);padding:19px 6px 5px;display:flex;flex-direction:column;font-size:10px;line-height:1.3}.video-label small{color:#b4c5b7;font-size:8px}.call-controls{padding:8px 10px;display:flex;gap:5px;flex-wrap:wrap}.call-controls button{font-size:10px;border:1px solid #ffffff24;background:#ffffff05;border-radius:6px;min-height:35px;padding:6px;color:#d2e0d5}.call-controls button.on{border-color:#a1c2a655}.call-controls button.hangup{background:#a64f3933;color:#f4b49d;border-color:#ac604240}.call-note{padding:2px 12px 10px;color:#a0b6a5;font-size:10px;line-height:1.55;border-bottom:1px solid var(--line)}.call-note button{background:none;border:0;color:var(--gold);padding:0 2px;font-size:10px;text-decoration:underline}.call-controls .play-remote{display:none}.autoplay-blocked .play-remote{display:block}.in-call .video-grid{max-height:230px;overflow-y:auto}
@media(min-width:1600px){.board-grid{grid-template-columns:235px minmax(510px,1fr) 385px;gap:30px}.dilemma-story{font-size:20px}.option{font-size:17px}.dilemma-card{padding:29px}.chat-text{font-size:17px}}
@media(max-width:1180px){.board-grid{grid-template-columns:1fr;max-width:880px;margin:auto}.left-sidebar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.left-sidebar>.section-label{grid-column:1/-1}.left-sidebar .metric{margin-bottom:0}.left-sidebar .goal-box,.left-sidebar .active-effects{grid-column:1/-1}.left-sidebar>.btn{grid-column:1/-1;justify-self:start}.left-sidebar .goal-box{display:none}.left-sidebar>.section-label{margin:0}.metric-title{gap:8px}.metric-name{font-size:11px}.metric-value{font-size:27px}.metric .track{display:none}.right-sidebar{display:none;position:fixed;inset:0 0 68px auto;width:min(480px,100%);z-index:50;padding:0;background:#102923;grid-column:auto}.right-sidebar.panel-open{display:block}.right-sidebar .aside-panel{height:100%;min-height:0;border-radius:0;border:0}.right-sidebar .log-box{display:none}.right-sidebar .chat-list{min-height:60px}.mobile-chat-close{display:inline-flex;order:3;margin-left:auto}.mobile-game-nav{position:fixed;bottom:0;left:0;right:0;z-index:51;display:flex;gap:6px;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #ffffff25;background:#0a211fed;backdrop-filter:blur(15px);justify-content:center}.mobile-game-nav button{font-size:13px;background:none;border:1px solid transparent;color:#acbfb0;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;flex:1;max-width:190px;min-height:43px}.mobile-game-nav button.on{background:#ddbc7b17;color:var(--gold);border-color:#ddbc7b33}.mobile-game-nav button>span{font-size:10px;background:#ffffff11;padding:3px 5px;border-radius:5px}.game-body,.lobby{padding-bottom:100px}.end-layout{display:block}.lobby-layout{grid-template-columns:1fr}.lobby{max-width:750px}.mobile-chat-visible:after{content:'';position:fixed;inset:0;background:#0006;z-index:40;pointer-events:none}.center-table:before{display:none}}
@media(max-width:780px){.topbar{min-height:68px;padding:12px 14px;gap:12px}.tavola-logo{width:87px}.brand{gap:10px}.brand-divider{height:24px}.wordmark,.game-shell .wordmark{font-size:17px;letter-spacing:1px}.brand-sub,.game-shell .brand-sub{font-size:6px;letter-spacing:.6px;max-width:105px;line-height:1.5}.top-actions{gap:1px}.top-actions .btn{padding:7px;min-height:35px}.top-actions .btn span{display:none}.room-title{display:none!important}.game-body{padding:13px 12px 100px}.calendar-label .eyebrow{font-size:9px;letter-spacing:1px}.calendar-panel{padding:11px;border-radius:10px;margin-bottom:17px}.calendar-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.month{min-height:55px}.calendar-caption{font-size:9px;line-height:1.6}.board-grid{gap:17px}.left-sidebar{gap:7px}.left-sidebar>.section-label{font-size:9px}.metric{padding:12px 8px 9px}.metric-name{font-size:10px;gap:4px;white-space:normal}.metric-name .icon{width:12px;height:12px}.metric-value{font-size:28px;margin:8px 0 0}.metric-foot{font-size:8px;line-height:1.4;min-height:20px}.seat-name{font-size:11px}.seat-label{font-size:9px}.seats{gap:7px;min-height:68px;margin:8px 0 19px}.seat{min-width:0}.seat .avatar{width:34px;height:34px}.phase-title{font-size:34px;line-height:1.15}.phase-sub{font-size:16px;line-height:1.65}.dilemma-card{padding:18px 17px 17px;border-radius:12px}.dilemma-illustration{margin:15px 0 20px}.dilemma-card h2{font-size:31px;line-height:1.18}.dilemma-story{font-size:18px;line-height:1.75}.mode-row .pill{font-size:10px;letter-spacing:0;padding:7px 8px}.mode-row{gap:6px}.card-meta{font-size:9px;letter-spacing:1px}.option{font-size:16px;padding:13px 11px;min-height:67px;line-height:1.7;gap:11px}.option-letter{min-width:29px;width:29px;height:29px}.ballot-area{padding:15px 0}.ballot-area>.btn{min-height:48px;font-size:16px}.result-narrative,.notice-card p{font-size:18px}.result-card{padding:22px 18px}.scheduled-note{font-size:14px}.effect-chip{font-size:12px}.right-sidebar{width:100%;bottom:calc(63px + env(safe-area-inset-bottom))}.aside-head{padding:16px}.aside-head>div>strong{font-size:18px}.chat-text{font-size:17px}.chat-meta strong{font-size:15px}.chat-list{padding:18px 15px 5px}.chat-item{gap:11px}.chat-footnote{font-size:10px}.chat-controls textarea{font-size:16px;max-height:110px;min-height:58px}.chat-compose-footer>span{font-size:10px;max-width:230px}.chat-controls{flex-shrink:0}.chat-list{overscroll-behavior:contain}.log-entry{font-size:15px}.decision-history{font-size:15px}.setup-fields{grid-template-columns:1fr;gap:0}.modal-overlay{padding:10px}.modal{max-height:calc(100dvh - 20px);padding:25px 18px}.modal h2{font-size:31px}.setup-seat{padding:9px 10px;gap:9px}.setup-avatar{width:29px;min-width:29px;height:32px}.setup-seat strong{font-size:13px}.setup-seat small{font-size:10px}.setup-seat select{font-size:12px;width:119px;min-height:40px;padding:8px}.lobby{padding:0 13px 100px;margin-top:20px}.lobby-head h1{font-size:34px}.lobby-panel{padding:20px 15px}.lobby-player{gap:9px;flex-wrap:wrap}.lobby-player .name{font-size:14px}.lobby-player .sub{font-size:11px}.lobby-slot-type{width:117px;padding:9px;font-size:12px}.lobby-capacity{gap:5px}.lobby-capacity select{width:103px}.invite-box .btn{font-size:12px}.room-code{font-size:26px;letter-spacing:3px}.live-dot{width:6px}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.video-tile{aspect-ratio:1.8}.in-call .video-grid{max-height:205px}.call-controls button{font-size:11px;min-height:38px}.hero-copy{font-size:16px}.hero-meta span{font-size:11px}.hero-ctas .btn{font-size:14px}.home-note{font-size:9px;line-height:1.8}}
@media(max-width:390px){.tavola-logo{width:75px}.brand{gap:8px}.wordmark,.game-shell .wordmark{font-size:15px}.brand-sub,.game-shell .brand-sub{font-size:5px}.topbar{gap:6px;padding-left:11px;padding-right:11px}.dilemma-card{padding:18px 14px}.option{font-size:16px}.metric-name{font-size:9px}.setup-seat select{width:107px}.setup-seat small{max-width:111px;line-height:1.4}.chat-meta{gap:4px}.chat-meta time{font-size:9px}.hero-ctas{flex-direction:column}.hero-ctas .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.art-float{animation:none}}

/* v0.2.1 — visible conversation, persistent diary and original scorecards.
   The solo and online modes use exactly the same layout. No hidden 1180px panels. */
.game-body{max-width:1700px;padding:20px 24px 38px}
.board-grid{display:grid;grid-template-columns:224px minmax(0,1fr) 354px;gap:24px;max-width:none;align-items:start}
.left-sidebar{display:block;min-width:0}
.left-sidebar>.section-label{margin:0 0 16px;font-size:11px;line-height:1.4;letter-spacing:1.6px}
.metric{margin:0 0 14px;padding:18px 15px 14px;border-radius:10px;background:linear-gradient(120deg,color-mix(in srgb,var(--cat),#f6f2e8 91%),#f0ece1 75%);box-shadow:0 3px 0 #cbc5b4,0 7px 16px #0002}
.metric:before{height:6px;background:var(--cat)}
.metric-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 18px}
.metric-name{font-size:13px;gap:8px;white-space:nowrap}
.metric-title .icon{color:color-mix(in srgb,var(--cat),#18392d 38%);width:18px;height:18px}
.metric-value{font-size:30px;margin:0;white-space:nowrap}
.metric-value small{font-size:11px;color:#5f6e62}
.metric .track{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));padding-top:7px}
.track:before{height:3px;background:linear-gradient(90deg,#c79387,#b6b591 50%,color-mix(in srgb,var(--cat),#357759 40%))}
.track span{font-size:10px;line-height:1.4;color:#57675e}
.track span.at{color:#18251e}
.metric-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:9px;line-height:1.5;letter-spacing:.6px;margin-top:10px;min-height:14px;color:#566c5f}
.metric-foot span:last-child{display:inline;white-space:nowrap}
.goal-box,.left-sidebar .goal-box{display:block;grid-column:1/-1;padding:16px 14px;margin:20px 0 14px;border:1px solid #dfbd7b4d;background:linear-gradient(135deg,#ddbc7b12,#ddbc7b04);border-radius:10px}
.goal-heading{display:flex;align-items:center;gap:8px;color:var(--gold)}
.goal-heading>.icon{width:16px;height:16px}
.goal-heading .eyebrow{font-size:10px;letter-spacing:1.5px;min-width:0}
.goal-count{margin-left:auto;font-size:13px;color:#f2d599;letter-spacing:1px}
.goal-box p{font-size:13px;line-height:1.75;margin:11px 0;color:#c0cbbd}
.goal-box strong{color:#f0d49a;font-weight:600}
.goal-box .goal-dots{display:flex;margin:12px 0 10px;gap:5px}
.goal-danger{font-size:11px;line-height:1.5;color:#b9c6b8}
.left-sidebar>.sidebar-diary{display:inline-flex;font-size:12px;padding-left:0}
.center-table{min-width:0}
.table-tools{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.table-tools>.btn{font-size:13px;min-height:39px;padding:8px 11px}
.chat-counter{font-size:10px;padding:2px 6px;border-radius:5px;background:#ffffff11}
.center-table .discussion-preview{margin:22px 0 12px}
.discussion-preview{background:linear-gradient(115deg,#17453a70,#102b2555);border:1px solid #86b39e42;border-radius:12px;padding:15px 17px;color:#c9d9cc}
.discussion-preview-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.discussion-preview-heading strong{display:flex;align-items:center;gap:7px;font-size:14px;color:#dfebdf;font-weight:600}
.discussion-preview-heading>.btn{font-size:12px;min-height:38px;padding:8px 10px}
.discussion-preview p{font-size:14px;line-height:1.7;margin:10px 0 0;color:#bdcfc0}
.discussion-preview.is-locked{background:#dbc08909;border-color:#dbc08933}
.debate-preview-messages{display:grid;gap:12px;margin-top:14px}
.debate-preview-item{display:flex;align-items:flex-start;gap:10px;padding:13px;background:#061c1740;border-radius:9px;border:1px solid #ffffff0d}
.debate-preview-item>div{min-width:0}
.debate-initial{display:grid;place-items:center;background:#a8c8af;color:#153a2d;border-radius:7px;font-size:13px;min-width:28px;height:30px;font-weight:700}
.debate-preview-item strong{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:#ecf0e5}
.debate-preview-item p{font-size:14px;line-height:1.6;margin:6px 0 0;overflow-wrap:anywhere}
.choice-pill{color:#eed497;background:#ddbc7b18;border:1px solid #ddbc7b44;padding:3px 7px;border-radius:5px;font-size:11px;font-weight:600}
.discussion-preview>.btn{margin-top:12px;font-size:12px;min-height:38px;padding-left:0}
.right-sidebar{display:block;grid-column:auto;grid-template-columns:none;position:sticky;top:14px;inset-inline:auto;width:auto;padding:0;background:none;min-width:0;z-index:2}
.right-sidebar .aside-panel{display:flex;flex-direction:column;height:clamp(540px,70dvh,760px);min-height:0;border:1px solid #9bc0ad45;border-radius:14px;background:#112923;overflow:hidden;box-shadow:0 14px 32px #0002}
.aside-head{display:flex;align-items:center;padding:16px 16px 14px;gap:10px;border-bottom:1px solid #ffffff1a}
.aside-head>div>strong{font-size:18px;line-height:1.3;margin-top:7px}
.aside-head .eyebrow{font-size:9px;letter-spacing:1.7px;color:#aec2b0}
.chat-state{margin-left:auto;font-size:9px}
.call-toolbar{display:block;padding:12px 14px;background:#081f193d;border-bottom:1px solid #ffffff17;flex-shrink:0}
.call-toolbar-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#b2c7b8;gap:10px;margin-bottom:9px;line-height:1.4}
.call-mode-label{color:#e2d1ad;font-size:10px;white-space:nowrap}
.call-entry-buttons{display:flex;gap:6px}
.call-entry-buttons>.btn{flex:1;justify-content:center;font-size:11px;min-height:38px;padding:7px 5px;gap:5px;white-space:nowrap}
.call-entry-buttons>.btn[hidden]{display:none}
.call-entry-buttons>.on{border-color:#aeceae66;color:#d5e6d7;background:#86b69016}
.call-entry-buttons .icon{width:14px;height:14px;flex-shrink:0}
.media-explainer{font-size:10px;line-height:1.65;color:#adc1b2;margin-top:8px}
.call-toolbar .btn:disabled{opacity:.42;cursor:not-allowed}
#call-slot{flex-shrink:0;max-height:36dvh;overflow:auto}
.call-controls{gap:6px}
.call-controls button{font-size:12px;min-height:40px;padding:7px 9px;flex:1}
.call-note{font-size:11px}
.video-label{font-size:12px}
.video-label small{font-size:10px}
.right-sidebar .chat-list{min-height:105px;height:auto;flex:1;overflow:auto;padding:17px 15px 4px;scrollbar-width:thin;scrollbar-color:#668e754d transparent;overscroll-behavior:contain}
.chat-item{margin-bottom:20px;gap:10px}
.chat-meta{gap:6px;margin-bottom:5px}
.chat-meta strong{font-size:15px}
.chat-meta .sender-kind{font-size:7px;letter-spacing:.5px;line-height:1.4}
.chat-text{font-size:16px;line-height:1.65;color:#e1e8dc;overflow-wrap:anywhere}
.chat-avatar{min-width:31px;width:31px;height:34px;border-radius:8px}
.suggestion-tag{display:inline-flex;align-items:center;gap:7px;font-size:10px;color:#ebd39f;margin:0 0 7px;padding:3px 7px 3px 3px;border-radius:5px;background:#dfbd7810;border:1px solid #dfbd7833}
.suggestion-tag>b{display:grid;place-items:center;width:22px;height:22px;border-radius:4px;background:#dec284;color:#203a2c;font-size:14px}
.typing-line{flex-shrink:0;min-height:24px;font-size:11px;line-height:1.5;padding:2px 16px}
.chat-controls{display:block;flex-shrink:0;margin:0 12px;padding:10px 11px;background:#0b211b;border-color:#a3bb995e}
.chat-controls textarea{font-size:16px;line-height:1.5;min-height:52px;max-height:120px;resize:vertical}
.chat-compose-footer{padding-top:6px}
.chat-compose-footer>span{font-size:9px;max-width:170px;color:#b3c1b2}
.chat-compose-footer>.btn{min-height:37px;min-width:40px}
.chat-footnote{flex-shrink:0;font-size:9px;line-height:1.5;color:#aebdad;padding:8px 15px 11px}
.vote-ledger{padding:11px 14px;border-bottom:1px solid #ffffff20;background:#12251e85;flex-shrink:0}
.vote-ledger-title{display:flex;align-items:center;gap:7px;color:#dccc9f}
.vote-ledger-title .icon{width:15px;height:15px}
.vote-ledger-title strong{font-size:12px;line-height:1.4}
.vote-ledger p{margin:6px 0 0;font-size:11px;line-height:1.6;color:#b5c6b6}
.public-votes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}
.public-votes>span{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;background:#ffffff09;border:1px solid #ffffff10;padding:6px 8px;border-radius:6px}
.public-votes i{font-size:12px;font-style:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#dae3d5}
.public-votes b{font-size:15px;color:#efce8a}
.result-card>.vote-ledger{background:#243a3210;border:1px solid #283e332b;border-radius:10px;margin:18px 0;padding:13px}
.result-card .vote-ledger-title,.result-card .public-votes b{color:#2f6152}
.result-card .vote-ledger p,.result-card .public-votes i{color:#34483c}
.result-card .public-votes>span{background:#ffffff44;border-color:#23443322}
.right-sidebar .log-box{display:block;margin-top:16px;border:1px solid #96ad922b;border-radius:12px;background:#0b241b45;overflow:hidden}
.log-box>.section-label{display:flex;align-items:center;gap:6px;letter-spacing:.7px;font-size:11px;line-height:1.5;margin:0;padding:13px 13px 11px;border-bottom:1px solid #ffffff14}
.log-box>.section-label>span{display:flex;align-items:center;gap:6px}
.log-box>.section-label .icon{width:15px;height:15px}
.log-box .btn{font-size:10px;padding:3px;gap:4px;min-height:32px;white-space:nowrap}
.diary-list{max-height:210px;overflow:auto;padding:0 14px;scrollbar-width:thin;scrollbar-color:#668e754d transparent}
.log-entry{display:block;padding:11px 0;font-size:14px;line-height:1.6}
.log-entry:before{display:none}
.log-entry-label{display:flex;align-items:center;gap:8px;color:#a4bca8;font-size:10px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px}
.log-round{font-size:10px;color:#dec18c}
.log-entry-text{font-size:14px;line-height:1.65;color:#c6d3c3;overflow-wrap:anywhere}
.log-entry .effect-chips{margin:8px 0 0;gap:5px}
.log-entry .effect-chip{padding:4px 6px;font-size:10px}
.diary-empty{font-size:13px;color:#b5c8b9;line-height:1.7}
.mobile-chat-close,.mobile-game-nav{display:none}
.mobile-chat-visible:after{display:none}
.bottom-note{font-size:10px;letter-spacing:1px;color:#a2b79e;padding-top:24px}
.end-layout{grid-template-columns:minmax(0,1fr) 354px;gap:24px}
.lobby-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.85fr);gap:26px;align-items:start}
.lobby-layout .right-sidebar{position:relative;top:auto}
@media(min-width:1550px){.board-grid{grid-template-columns:242px minmax(0,1fr) 385px;gap:28px}.metric{padding:19px 17px 15px}.metric-name{font-size:14px}.metric-foot{font-size:10px}.chat-text{font-size:17px}}
@media(max-width:1099px) and (min-width:781px){
 .game-body{padding:18px 20px 35px}.board-grid{grid-template-columns:215px minmax(0,1fr);gap:22px;max-width:none}
 .left-sidebar{display:block}.right-sidebar{grid-column:1/-1;position:static;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.85fr);gap:20px;align-items:start;inset:auto;width:auto}
 .right-sidebar .aside-panel{height:600px}.right-sidebar .log-box{margin:0}.diary-list{max-height:505px}
 .lobby-layout{grid-template-columns:1fr}.lobby-layout .right-sidebar{grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr)}
 .end-layout{display:block}.end-layout>.right-sidebar{margin-top:24px}
}
@media(max-width:780px){
 .game-body{padding:14px 12px calc(100px + env(safe-area-inset-bottom))}.board-grid{grid-template-columns:1fr;gap:22px;max-width:none}
 .left-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}
 .left-sidebar>.section-label{grid-column:1/-1;margin:0;font-size:10px;letter-spacing:1.4px}
 .metric{margin:0;padding:16px 11px 12px;border-radius:9px}.metric-title{display:flex;margin:0 0 18px;gap:5px}.metric-name{font-size:12px;gap:5px}.metric-title .icon{width:15px;height:15px}.metric-value{font-size:26px;margin:0}.metric-value small{font-size:9px}
 .metric .track{display:grid}.track span{font-size:9px}.metric-foot{font-size:8px;letter-spacing:.2px;min-height:13px;gap:4px}.metric-foot span:last-child{display:inline}
 .left-sidebar .goal-box{display:block;margin:0;padding:14px 16px}.goal-box p{font-size:13px;line-height:1.6;margin:8px 0}.goal-heading .eyebrow{font-size:10px}.goal-box .goal-dots{margin:9px 0}.goal-danger{font-size:11px}
 .left-sidebar>.sidebar-diary{display:none}.left-sidebar .active-effects{grid-column:1/-1}
 .seats{margin:3px 0 14px}.table-tools{justify-content:space-between;margin:0 0 20px;gap:6px}.table-tools>.btn{flex:1;font-size:12px;gap:6px;padding:8px 6px;min-height:42px}
 .dilemma-card h2{font-size:30px}.dilemma-story{font-size:18px;line-height:1.7}.option{font-size:16px;line-height:1.6;min-height:66px}
 .discussion-preview{padding:14px 13px}.discussion-preview-heading>strong{font-size:14px}.discussion-preview-heading>.btn{font-size:12px;min-height:40px}.discussion-preview p,.debate-preview-item p{font-size:14px}.debate-preview-item{padding:11px 10px;gap:8px}
 .right-sidebar{position:static;display:block;grid-column:auto;inset:auto;width:auto;z-index:2;padding:0;background:none}
 .right-sidebar .aside-panel{height:660px;max-height:none;min-height:0;border:1px solid #a0b99944;border-radius:13px}.right-sidebar .log-box{display:block;margin-top:18px}.diary-list{max-height:340px}
 .right-sidebar.panel-open{display:block;position:fixed;inset:0 0 calc(67px + env(safe-area-inset-bottom)) 0;width:100%;z-index:50;padding:0;background:#112923}
 .right-sidebar.panel-open .aside-panel{height:100%;max-height:none;border:0;border-radius:0}.right-sidebar.panel-open .log-box{display:none}
 .right-sidebar .chat-list{min-height:50px}.chat-text{font-size:17px}.chat-meta strong{font-size:15px}.chat-controls textarea{font-size:16px;min-height:50px;max-height:95px}.chat-footnote{font-size:9px}
 .right-sidebar .aside-head{padding:15px 16px 13px}.right-sidebar .aside-head>div>strong{font-size:18px}
 .mobile-chat-close{display:none}.panel-open .mobile-chat-close{display:inline-flex;order:3;margin-left:0}
 .mobile-game-nav{position:fixed;bottom:0;left:0;right:0;z-index:51;display:flex;gap:6px;padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#09231ff2;backdrop-filter:blur(14px);border-top:1px solid #b6c59c33;justify-content:space-around}
 .mobile-game-nav button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;max-width:190px;min-height:48px;border:1px solid transparent;border-radius:8px;background:none;color:#b9cabc;font-size:13px;padding:8px 4px}
 .mobile-game-nav button.on{border-color:#ddbc7b33;background:#ddbc7b13;color:#efd09a}.mobile-game-nav button>span{background:#ffffff0c;border-radius:5px;font-size:10px;padding:3px 5px}.mobile-game-nav button>span:empty{display:none}
 .mobile-chat-visible{overflow:hidden}.mobile-chat-visible:after{display:block;content:'';position:fixed;inset:0;background:#0005;z-index:40;pointer-events:none}
 .lobby{padding-bottom:100px}.lobby-layout,.lobby-layout .right-sidebar{display:block}.lobby-layout>.right-sidebar{margin-top:24px}.end-layout{display:block}.end-layout .right-sidebar{margin-top:20px}
 .calendar-caption{font-size:10px}.bottom-note{font-size:9px;line-height:1.8;padding-top:26px}.public-votes i{font-size:13px}.log-entry-text{font-size:15px}.log-box>.section-label{font-size:12px}.log-box .btn{font-size:11px}
}
@media(max-width:359px){.metric{padding-left:8px;padding-right:8px}.metric-name{font-size:11px}.metric-value{font-size:24px}.metric-foot{font-size:7px}.topbar{padding:10px;gap:4px}.tavola-logo{width:68px}.table-tools>.btn{font-size:11px}.call-entry-buttons>.btn{font-size:11px}.discussion-preview-heading strong{font-size:13px}}
/* Keep the main board concise when the full chat is already alongside it. */
@media(min-width:1100px){.debate-preview-item p{display:none}.debate-preview-item{padding:10px 12px}.debate-preview-messages{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.debate-preview-item strong{font-size:12px;gap:5px}.debate-preview-item .choice-pill{font-size:10px}.discussion-preview-hint{font-size:13px}}
/* The composer remains reachable in landscape/small browser heights. */
@media(max-width:780px) and (max-height:700px){.panel-open .aside-head{padding:10px 13px}.panel-open .aside-head .eyebrow,.panel-open .media-explainer,.panel-open .chat-footnote,.panel-open .vote-ledger p{display:none}.panel-open .aside-head>div>strong{margin:0;font-size:16px}.panel-open .call-toolbar{padding:8px 12px}.panel-open .call-toolbar-label{margin-bottom:5px}.panel-open .call-entry-buttons>.btn{min-height:33px}.panel-open .chat-controls{padding:7px 10px;margin-bottom:8px}.panel-open .chat-controls textarea{min-height:35px;max-height:70px}.panel-open .chat-compose-footer{padding-top:2px}.panel-open .vote-ledger{padding:8px 12px}.panel-open .chat-list{min-height:40px}.panel-open .typing-line{min-height:19px;font-size:10px}.panel-open .public-votes{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-open .public-votes>span{padding:3px 5px}.panel-open .public-votes i{font-size:10px}}
