@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@500;600;700;800&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#183f47;background:#e8f0e6;--session-bg:#173e46;--session-color:#fff9ec;--session-accent:#f6c563;--session-border:#315c61}
*{box-sizing:border-box}body{margin:0;min-width:760px;background:radial-gradient(ellipse at 90% 4%,#f7e5b9 0,transparent 32%),linear-gradient(145deg,#e6f0e5,#f4eee0 68%,#e4eada);color:#183f47}
button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #e87b5d;outline-offset:3px}#shell{max-width:1500px;margin:auto;padding:20px 32px 34px}#notice{padding:10px 16px;background:#fff0df;color:#7b302b;border-radius:8px;margin-bottom:10px}#lobby{max-width:1080px;margin:4vh auto}.games-lobby-shell{box-shadow:0 20px 65px #315f4a19}.games-lobby-header h1{font-family:Outfit,system-ui;font-weight:800;letter-spacing:-.04em}
.jo-table{--ink:#183f47;--coral:#dc725d}.scoreboard{height:76px;display:flex;align-items:center;gap:32px;border-bottom:1px solid #bfcfc1}.score-copy{display:flex;align-items:baseline;gap:14px;min-width:240px}.eyebrow,.stage-kicker,.mystery-label{font:700 11px 'DM Sans',sans-serif;letter-spacing:.15em}.eyebrow{color:#628075}.score-number{font:800 27px Outfit,system-ui;white-space:nowrap}.cards-left{font-size:13px;color:#658076;white-space:nowrap}.score-track{display:flex;gap:7px;align-items:center;flex-wrap:nowrap}.score-pip{width:31px;height:31px;display:grid;place-items:center;border:1px solid #b8c9b9;border-radius:50%;font-size:11px;font-weight:700;color:#8da496;font-variant-numeric:tabular-nums}.score-pip.won{background:#267765;color:white;border-color:#267765;font-size:16px}.score-pip.lost{background:#e8b4a5;color:#853f32;border-color:#e8b4a5;font-size:17px}
.stage-heading{height:107px;padding-top:24px}.stage-kicker{color:#d46d58}.stage-title{font:700 clamp(28px,2.9vw,40px)/1.1 Outfit,system-ui;margin:7px 0 0;letter-spacing:-.035em}.workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:46px}.mystery-column{min-width:0}.mystery-card{height:204px;padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;border:2px solid #d6e5d2;border-radius:11px;background:repeating-linear-gradient(135deg,#1f5a57,#1f5a57 13px,#255f5c 13px,#255f5c 26px);color:#f7eac8;box-shadow:0 8px 0 #c5d4c4,0 15px 30px #254d3a1c;transform:rotate(-2deg)}.mystery-card.is-open{background:#fff8e7;border-color:#fffdf4;color:#1e4e4d;transform:rotate(-2deg)}.mystery-label{opacity:.7}.mystery-word{font:700 clamp(27px,2.4vw,38px)/1 Outfit,system-ui;overflow-wrap:anywhere;text-align:center;letter-spacing:-.025em}.mystery-card:not(.is-open) .mystery-word{font-size:76px;color:#f6ce76}.mystery-number{font-weight:800;font-size:13px;text-align:right;letter-spacing:.1em}.roster{margin-top:30px;display:grid;gap:11px}.person{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:26px}.person-dot{display:grid;place-items:center;height:25px;width:25px;border-radius:50%;background:#d2dfcf;color:#54776a;font-size:11px;font-weight:700}.person.is-active .person-dot{background:#e17a60;color:white}.person-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:14px}.person-state{font-weight:700;font-size:10px;letter-spacing:.06em;color:#719084}.person.is-active .person-state{color:#cc6c55}
.clue-column{min-width:0}.clue-heading{height:35px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.clue-heading h2,.word-history h2{font:700 17px Outfit,system-ui;margin:0}.clue-legend{color:#789185;font-size:12px}.easels{min-height:250px;display:flex;align-items:center;gap:clamp(10px,1.3vw,20px);overflow-x:auto;padding:14px 8px 24px 3px}.clue-card.xg-card{--xg-card-width:clamp(115px,12vw,160px);--xg-card-aspect:5 / 6;--xg-card-radius:8px;--xg-card-shadow:0 4px 0 #d6cbb2,0 10px 20px #1e4a3630;flex-shrink:0;transform:rotate(-1deg);transition:transform .16s,filter .16s;overflow:visible}.clue-card:nth-child(even){transform:rotate(1.5deg)}.clue-card::after{content:'';position:absolute;bottom:-12px;left:10%;right:10%;height:8px;border-radius:2px;background:#d5aa71;box-shadow:0 3px 0 #ae825b;z-index:-1}.clue-card:is(button):hover{transform:translateY(-5px) rotate(0)}.clue-card .xg-preset__glyph-center{font:700 clamp(18px,2vw,27px)/1.05 Outfit,system-ui!important;letter-spacing:-.025em;overflow-wrap:anywhere;word-break:break-word;padding:8px}.clue-card .card-owner{position:absolute;bottom:10px;left:12px;right:12px;font-size:10px;font-weight:700;letter-spacing:.08em;color:#98a29a;text-transform:uppercase;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.clue-card.is-crossed .xg-card__face::after{content:'';position:absolute;left:9%;right:9%;top:48%;height:4px;background:#e26e59;transform:rotate(-15deg);border-radius:4px}.clue-card.is-crossed .xg-preset__glyph-center{opacity:.43}.card-mark{position:absolute;top:10px;right:10px;color:#bb5c4c;font-size:9px;font-weight:800;letter-spacing:.1em}.action-area{min-height:128px;display:flex;align-items:flex-start;align-content:flex-start;gap:12px;flex-wrap:wrap;padding:15px 0 0;border-top:1px solid #c7d5c7}.action-label{display:block;width:100%;color:#5b7a6e;font-weight:700;font-size:13px}.numbers{display:flex;gap:10px}.jo-button{border:1px solid #a9c1b1;border-radius:8px;padding:12px 19px;min-height:45px;color:#24584e;background:#edf4e9;font-weight:700}.jo-button:hover{filter:brightness(.96)}.jo-button.primary{background:#e4775c;border-color:#e4775c;color:#fffaf0;box-shadow:0 3px 0 #bd604a}.jo-button.number-button{width:55px;height:55px;padding:0;background:#fff8e8;border-color:#ddd2bb;color:#28574f;font:700 23px Outfit,system-ui;box-shadow:0 3px 0 #dfd3bc}.word-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.word-field{display:flex;flex-direction:column;gap:5px}.field-label{font-size:12px;color:#618075;font-weight:700}.word-input{width:190px;min-height:46px;border:1px solid #a8c2b3;border-radius:8px;background:#fffdf5;padding:9px 12px;color:#183f47;font-size:17px}.word-input::placeholder{color:#9aaea3}.small-note{font-size:13px;color:#6c897c;align-self:center}.judgement,.result-copy{font:700 22px Outfit,system-ui;align-self:center}.final-score{font:800 46px Outfit,system-ui;color:#277764;line-height:1}.word-history{margin:20px 0 0;padding-top:16px;border-top:1px solid #c3d3c1}.history-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.history-word{background:#dae9d8;padding:6px 10px;border-radius:5px;font-size:13px;font-weight:700}.history-word.lost{background:#f1d8ca;color:#8b5b50}.phase-enter .mystery-card,.phase-enter .clue-card{animation:arrive .34s ease-out both}@keyframes arrive{from{opacity:.5;transform:translateY(9px)}to{opacity:1}}
.rules-content{max-width:650px;padding:24px 30px;color:#173e46}.rules-content header{display:flex;justify-content:space-between;align-items:center}.rules-content h2,.rules-content h3{font-family:Outfit,system-ui}.rules-content p{line-height:1.5}.rules-content h3{margin-bottom:5px}.rules-content h3+p{margin-top:0}dialog{border:0;border-radius:12px;box-shadow:0 18px 70px #143d3d55}dialog::backdrop{background:#143a3bcc}
@media(max-width:1050px){#shell{padding-inline:22px}.workspace{grid-template-columns:220px minmax(0,1fr);gap:25px}.scoreboard{gap:10px}.score-copy{min-width:220px}.score-pip{width:27px;height:27px}.easels{gap:10px}.clue-card.xg-card{--xg-card-width:120px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
/* This game has no spectator perspective selector: every spectator sees the public table. */
#room-controls{display:none}
.clue-card .xg-preset__glyph-center{text-shadow:none}
.clue-card .xg-preset::before{background:none}

.decision-content{min-width:340px;padding:25px 28px;color:#183f47}.decision-content h2{font:700 25px Outfit,system-ui;margin:0}.decision-content p{line-height:1.5;margin:12px 0 22px}.decision-actions{display:flex;justify-content:flex-end;gap:10px}
:root{--session-background:#173e46;--session-text:#fff9ec;--session-muted:#c8ded2;--session-control-bg:#25545a;--session-control-border:#4e797a}
.games-lobby-shell,.games-lobby-dialog{--surface:#fffaf0;--surface-soft:#e8f0e5;--ink:#193f43;--muted:#5d776d;--border:#b9ccbc;--action:#db755d;--action-ink:#fffaf2}
.games-lobby-shell{box-shadow:none}
.games-lobby-shell:has(.games-lobby-directory)::before{content:'';display:block;height:190px;margin-bottom:24px;border-radius:10px;background:#18564f url('/assets/just-one-cover.webp') center 49% / cover;box-shadow:0 8px 20px #24473c24}
/* Keep all six clues visible at laptop widths without shrinking ordinary tables. */
.clue-card.xg-card{--xg-card-width:100%;flex:1 1 0;min-width:0;max-width:160px}

/* Every seat can act during clue writing and review, so the test table stays manual. */
.games-session-bar .solo-follow{display:none}
