:root{font-family:ui-rounded,"Trebuchet MS",system-ui,sans-serif;color:#272330;background:#f8f5ed;font-synthesis:none;--purple:#6348db;--green:#e6ff90;--muted:#76707d;--line:#dedbd3}*{box-sizing:border-box}body{margin:0;min-height:100svh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #a38bf1;outline-offset:4px}header{max-width:1120px;margin:auto;padding:25px 28px;display:flex;align-items:center;gap:13px}.brand{display:grid;place-content:center;text-decoration:none;background:var(--purple);color:var(--green);font-size:29px;font-weight:900;width:43px;height:43px;border-radius:14px;position:relative}.brand span{position:absolute;top:0;right:9px;font-size:21px}.edition{font-size:11px;font-weight:800;letter-spacing:1.8px}.edition span{color:var(--muted);font-weight:500}.icon-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:36px;height:36px;font-weight:bold}header>.icon-button{margin-left:auto}main{max-width:1064px;margin:40px auto 0;padding:0 28px;min-height:70svh}footer{padding:32px;text-align:center;font-size:12px;color:var(--muted)}.layout{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--purple);display:block;margin-bottom:16px}h1{font-size:clamp(48px,6vw,76px);letter-spacing:-3.5px;line-height:1.02;margin:0 0 22px;font-weight:900}h1 em{font-style:normal;color:var(--purple)}.lead{font-size:17px;line-height:1.65;color:#696371;max-width:370px}.pills{display:flex;gap:8px;flex-wrap:wrap;margin:23px 0}.pill{font-size:11px;font-weight:700;border:1px solid var(--line);padding:8px 12px;border-radius:100px}.art{position:relative;height:190px;margin:35px 0 8px;max-width:360px}.character{position:absolute;width:118px;height:145px;border:2px solid #272330;border-radius:56px 56px 30px 30px;bottom:10px;display:flex;justify-content:center;align-items:center;gap:13px;box-shadow:0 7px 0 #27233012}.character:before,.character:after{content:"";width:8px;height:13px;background:#272330;border-radius:50%}.c1{background:#efbd74;left:8px;transform:rotate(-12deg)}.c2{background:var(--purple);left:111px;bottom:22px;transform:rotate(5deg);z-index:2}.c2:before,.c2:after{background:var(--green);width:13px;height:10px}.c3{background:var(--green);left:214px;transform:rotate(13deg)}.bubble{position:absolute;right:31px;top:-13px;font-size:30px;transform:rotate(12deg);font-weight:bold}.note{font-size:12px;color:var(--muted)}.panel{background:#fffefa;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:0 10px 0 #e8e4d94d}h2{font-size:27px;letter-spacing:-1px;margin:0 0 8px}p{line-height:1.6}.subtitle{color:var(--muted);font-size:13px;margin:0 0 25px}.field-label{font-size:12px;font-weight:800;display:block;margin:24px 0 11px}.count{display:flex;align-items:center;justify-content:space-between;background:#f1eee6;border-radius:14px;padding:9px 12px}.count button{width:36px;height:36px;border:0;background:white;border-radius:10px;font-size:24px}.count strong{font-size:16px}.players{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.player{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;padding:0 10px;background:white}.player span{font-size:11px;color:var(--muted)}input{width:100%;min-width:0;border:0;background:transparent;padding:13px 0;color:#272330;outline-offset:2px;font-size:14px}select{width:100%;border:1px solid var(--line);border-radius:12px;background:white;padding:13px;color:#272330}.primary,.secondary{width:100%;min-height:52px;border-radius:13px;padding:14px 18px;font-size:14px;font-weight:800;display:block}.primary{border:0;background:var(--purple);color:white;margin-top:24px;box-shadow:0 4px 0 #45309f}.primary:hover{background:#553bc8}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #45309f}.secondary{border:1px solid var(--line);background:transparent;margin-top:13px}.smallprint{font-size:11px;text-align:center;color:var(--muted);margin:15px 0 0}.center{max-width:480px;margin:0 auto;text-align:center}.center h1{font-size:46px;letter-spacing:-2px}.step{display:flex;justify-content:center;gap:6px;margin-bottom:30px}.step i{height:5px;width:26px;background:#e0dbed;border-radius:8px}.step i.done{background:var(--purple)}.secret-card{margin:25px 0;border-radius:25px;background:#eae3ff;border:1px solid #d5c9fc;padding:35px 24px;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center}.secret-card.hidden{background:var(--purple);color:white}.mask{width:90px;height:65px;margin:0 auto 16px;position:relative}.mask svg{width:100%;height:100%}.secret{font-size:clamp(30px,8vw,44px);font-weight:900;letter-spacing:-1px;overflow-wrap:anywhere;margin:12px 0}.secret-card p{margin:7px 0;font-size:14px}.safe{font-size:12px;color:var(--muted)}.turn-name{font-size:32px;overflow-wrap:anywhere;font-weight:900;margin:12px 0;color:var(--purple)}.turn-count{font-size:12px;color:var(--muted);margin-bottom:25px}.choice{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin:9px 0;text-align:left;width:100%;background:white;overflow-wrap:anywhere}.choice input{width:18px;height:18px;accent-color:var(--purple)}.choice span{flex:1;min-width:0}.choice button{width:35px;height:35px;border:0;border-radius:9px;background:#f1eee6;font-size:21px}.choice b{min-width:22px;text-align:center}.score-total{font-size:13px;color:var(--muted)}.winner{background:var(--green);border-radius:24px;padding:26px;margin:24px 0}.winner h2{font-size:32px}.result-detail{font-size:14px}.text-button{border:0;background:transparent;color:var(--muted);text-decoration:underline;padding:16px;font-size:12px}.error{color:#ac2f38;font-size:13px}.tag{font-size:11px;border:1px solid #ffffff70;border-radius:30px;padding:6px 12px;letter-spacing:1px}dialog{max-width:500px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:24px;padding:30px;background:#fffefa;color:#272330;max-height:90svh;overflow:auto}dialog::backdrop{background:#27233080;backdrop-filter:blur(4px)}dialog li{padding:7px 0;font-size:14px;line-height:1.6}dialog ol{padding-left:20px}dialog p{font-size:13px;color:var(--muted)}dialog .icon-button{float:right}button:disabled{opacity:.35;cursor:default}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:720px){header{padding:19px 20px}.edition{font-size:10px;letter-spacing:1px}main{margin-top:20px;padding:0 20px}.layout{grid-template-columns:1fr;gap:24px}.intro{text-align:center}h1{font-size:52px;letter-spacing:-2.8px}.lead{font-size:15px;max-width:340px;margin:0 auto}.pills{justify-content:center;margin:17px 0 0}.art{display:none}.intro>.note{display:none}.panel{padding:23px;border-radius:22px}.field-label{margin-top:20px}.center{padding-top:10px}.center h1{font-size:38px}.secret-card{min-height:240px}footer{padding:26px 15px;font-size:11px}}@media(prefers-reduced-motion:no-preference){main>div{animation:appear .22s ease}@keyframes appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}

.game-history{max-width:1064px;margin:48px auto 32px;padding:24px 20px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.hint-option{display:flex;align-items:center;gap:12px;margin-top:20px;padding:14px;border:1px solid var(--line);border-radius:14px;min-height:64px;cursor:pointer;text-align:start}
.hint-option:has(input:checked){border-color:var(--purple);background:#f2edff}
.hint-option input{flex:none;width:22px;height:22px;margin:0;padding:0;accent-color:var(--purple)}
.hint-option span{min-width:0;overflow-wrap:anywhere}
.hint-option strong{display:block;font-size:14px;line-height:1.4}
.hint-option small{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.5}
.impostor-hint{width:100%;margin-top:18px;padding:14px 16px;border-radius:14px;background:#fffefa;border:1px solid #d5c9fc;overflow-wrap:anywhere}
.impostor-hint span{display:block;font-size:13px}
.impostor-hint strong{display:block;margin-top:6px;color:var(--purple);font-size:clamp(20px,5vw,27px);line-height:1.3}
.game-history[hidden],.game-history [hidden]{display:none}
.history-heading{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;justify-content:space-between}
.history-heading h2{font-size:clamp(23px,5vw,30px);line-height:1.2;flex:1 1 220px;margin:4px 0;letter-spacing:-.7px}
.history-button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;color:var(--purple);background:#fffefa;font-weight:700;font-size:14px;max-width:100%;white-space:normal}
.history-private{font-size:13px;color:var(--muted);margin:8px 0 20px}
.history-total{font-size:15px;font-weight:700;color:var(--purple);margin:12px 0 0}
.history-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.history-item{min-width:0;border:1px solid var(--line);border-radius:18px;background:#fffefa;padding:16px}
.history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.history-date{font-size:14px;font-weight:700}
.history-badge{font-size:12px;background:#f1eee6;padding:5px 10px;border-radius:100px;line-height:1.5}
.history-finished{background:#e6ff90}
.history-meta{font-size:13px;color:var(--muted);margin:10px 0 4px}
.history-item summary{min-height:44px;display:flex;align-items:center;gap:8px;color:var(--purple);font-size:14px;font-weight:700;cursor:pointer}
.history-item summary::before{content:'+';font-size:20px;flex:none}
.history-item details[open] summary::before{content:'−'}
.history-item summary:focus-visible{outline:3px solid #a38bf1;outline-offset:3px;border-radius:5px}
.history-players,.history-result p{font-size:14px;margin:8px 0}
.history-result{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.history-result strong{color:var(--purple);font-size:15px}
.history-more{display:block;margin:20px auto 0}
@media(min-width:721px){.game-history{padding-inline:28px}.history-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

.session-score{max-width:600px;margin:28px auto;padding:20px;border:1px solid var(--line);border-radius:20px;background:#fffefa;text-align:start;overflow-wrap:anywhere}
.score-heading h2{font-size:24px;line-height:1.2;margin:0 0 8px;letter-spacing:-.5px}
.score-heading p,.score-rules{font-size:13px;color:var(--muted);line-height:1.5}
.session-score ul{list-style:none;padding:0;margin:18px 0}
.session-score li{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:10px 0;border-bottom:1px solid var(--line)}
.session-score li>span{min-width:0;font-weight:700}
.session-score li strong{flex:none;color:var(--purple);font-size:18px;white-space:nowrap}
.session-score li strong span{font-size:12px;font-weight:400}
.session-score .text-button{min-height:44px;padding:12px 0;font-size:13px}
.last-chance-card{margin-top:24px;padding:24px 20px;background:#eae3ff;border:1px solid #d5c9fc;border-radius:24px;overflow-wrap:anywhere}
@media(min-width:721px){.session-score{padding:26px}.last-chance-card{padding:30px}}

.clue-actions{display:flex;flex-direction:column;align-items:center;margin-top:8px}
.clue-actions .text-button{min-height:44px;max-width:100%}
.clue-actions .end-lap{color:var(--purple);font-weight:700;font-size:14px}
.vote-bonus{margin:24px 0;padding:14px 18px;border:1px solid var(--line);border-radius:20px;background:#fffefa;text-align:start;overflow-wrap:anywhere}
.vote-bonus summary{min-height:44px;cursor:pointer;color:var(--purple);font-weight:700;padding:10px 0;line-height:1.5}
.vote-bonus summary bdi{display:inline-block;margin-inline-start:8px;padding:1px 9px;border-radius:20px;background:#e6ff90;color:#272330;font-size:14px;white-space:nowrap}
.vote-bonus p{font-size:14px;color:var(--muted);line-height:1.6;margin:8px 0 14px}
.vote-bonus-list{display:grid;gap:8px;padding-bottom:4px}
.vote-bonus-list label{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.vote-bonus-list label:has(:checked){background:#eee8ff;border-color:var(--purple)}
.vote-bonus-list input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--purple)}
.vote-bonus-list span{min-width:0}
@media(min-width:721px){.vote-bonus-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Compact setup introduction, without changing active-round screens. */
#app:has(>.layout){margin-top:18px}
#app>.layout>.intro .eyebrow{margin-bottom:8px}
#app>.layout>.intro h1{margin-bottom:12px}
#app>.layout>.intro .pills{margin-top:12px;margin-bottom:12px}
#app>.layout>.panel .subtitle{margin-bottom:16px}
#app>.layout>.panel .field-label{margin-top:16px}
@media(max-width:720px){#app:has(>.layout){margin-top:12px}#app>.layout{gap:16px}#app>.layout>.intro h1{font-size:clamp(34px,9.5vw,46px);letter-spacing:-1.8px;line-height:1.06}#app>.layout>.intro .lead{line-height:1.5}#app>.layout>.intro .pills{margin-bottom:0}#app>.layout>.panel{padding:20px}#app>.layout>.panel h2{font-size:25px}}

/* History belongs only to the setup screen; account visibility remains independent. */
#app:not(:has(>.layout)) + .game-history{display:none}
