/* Village journal. Visual skin only; game state and command effects remain separate. */
:root{--bg:#17212d;--panel:#1d2a37;--panel2:#253645;--line:#3b4c5c;--ink:#d9dfe1;--muted:#a3b1bd;--gold:#c6a47d;--red:#d19ca3;--green:#a0bfb6;--radius:5px;--display:"Songti SC","STSong","SimSun",serif;font-size:16px}
body{background:var(--bg);color:var(--ink)}
.grain{display:none}
button{border-radius:4px;transition:background-color .15s,border-color .15s;color:var(--ink)}
button:hover{background:#304557;border-color:#8295a6}
button:disabled{opacity:.5}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #ebc99e;outline-offset:3px}
.primary{background:#c6a47d;border-color:#c6a47d;color:#18212a;font-weight:600}
.primary:hover{background:#dfbd93;border-color:#dfbd93;color:#18212a}
.quiet{background:transparent}.danger{color:#e4acb2;border-color:#976873;background:#442f3a}
.danger:hover{background:#5a3945;border-color:#c68b95}
input,textarea,select{border-radius:3px;background:#15212e;border-color:#526476;color:var(--ink)}
input::placeholder,textarea::placeholder{color:#899ba9;opacity:1}
select{color-scheme:dark}h1,h2,h3{font-family:var(--display);font-weight:500}h1{letter-spacing:.05em}h2{letter-spacing:.04em}
.topbar{max-width:1440px;height:82px;padding:0 44px;border-bottom:1px solid #354657;background:#17212d}
.brand{gap:12px;letter-spacing:.15em;font-size:1.45rem}.brand small{font-family:inherit;font-size:10px;letter-spacing:.18em;line-height:2;color:#a8b6c0}
.sigil{display:block;width:28px;height:38px;font-size:0;background:url('lantern.svg') center/contain no-repeat}
nav{gap:3px}nav button{color:#bcc7ce;border-radius:3px}nav button:hover{color:#f0e4d2;background:#253646;border-color:transparent}
.username{border-left:1px solid var(--line);padding-left:12px;margin-left:7px;font-size:.78rem}
footer{max-width:1260px;padding:28px 30px;font-size:.76rem;color:#9babba;letter-spacing:.04em;border-top:1px solid #354657;margin-top:35px}
.eyebrow{font-size:.79rem;letter-spacing:.08em;text-transform:none;color:#aab8c4;margin-bottom:16px}
.subheading{line-height:1.9;font-size:.9rem;max-width:58ch}.hint{color:#a4b3c0}
.panel{background:#1d2a37;border:1px solid var(--line);border-radius:5px;box-shadow:none}
.lobby{max-width:1200px;padding:42px 30px 28px}
.lobby-header.village-arrival{min-height:300px;position:relative;isolation:isolate;margin:-10px -30px 34px;padding:40px 32px;overflow:hidden;border-bottom:1px solid #3b4c5c}
.arrival-scene{position:absolute;inset:0 0 0 auto;width:88%;height:100%;object-fit:cover;object-position:center top;z-index:-1;opacity:.95}
.arrival-copy{max-width:560px}.arrival-copy h1{font-size:clamp(2.1rem,3.3vw,3.1rem);line-height:1.45;color:#e2e6e6}
.arrival-copy p{margin-top:21px;color:#b2c0cc;font-size:.9rem;max-width:27em;line-height:1.95}
.arrival-copy .eyebrow{display:flex;align-items:center;gap:12px;color:#c7aa89;margin-bottom:17px}
.arrival-copy .eyebrow:before{content:'';width:25px;height:1px;background:#bd9b77}
.continuation{border-left:3px solid #c6a47d;padding:22px 26px;background:#20303e;margin-bottom:26px}.continuation h3{font-size:1.28rem}.continuation p{margin-top:5px}
.village-progress{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 19px;margin:0 0 21px;gap:12px 22px;color:#b8c5cd}.village-progress strong{color:#ceb290;font-weight:500}.village-progress small{margin-left:auto}
.board-section-tabs{display:flex;gap:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;margin:0;padding:0}
.board-section-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:15px 30px;background:transparent;gap:10px;font-size:1.08rem;font-family:var(--display)}
.board-section-tabs button[aria-selected="true"]{border-color:#c6a47d;background:transparent;color:#edcfaa;box-shadow:none}
.board-section-tabs button span{border:0;border-radius:0;font:12px/1.4 sans-serif;color:#a4b3c0;padding:0;min-width:0}
.board-section{margin-top:25px}.boards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.board{border:1px solid #3f5060;border-radius:5px;min-height:0;padding:0 25px 24px;background:#1c2936;overflow:hidden}
.board-scenery{height:108px;margin:0 -25px 24px;position:relative;background:#243646 url('village-etching.svg') 76% 51%/auto 290px no-repeat;border-bottom:1px solid #3f5060}
.board[data-scene="1"] .board-scenery{background-position:51% 67%}.board[data-scene="2"] .board-scenery{background-position:100% 29%}.board[data-scene="3"] .board-scenery{background-position:86% 89%}
.board-population{position:absolute;bottom:10px;right:14px;font-size:.7rem;color:#c4ced5;background:#17212de8;padding:4px 8px;border:1px solid #526477;border-radius:3px}
.board h2{font-size:1.62rem;margin-bottom:10px;color:#e3e7e6}.board>p{font-size:.87rem;line-height:1.8;color:#a8b9c7;min-height:1.8em}
.cast-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:19px;margin-top:19px;align-items:start}
.cast-group{min-width:0}.cast-group>span{font-size:.76rem;letter-spacing:0}.cast-group p{font-size:.77rem!important;line-height:1.9;margin-top:8px;color:#b7c4cd}
.board-rules{gap:6px;margin-top:22px}.board-rules span{border-color:#405466;background:#192532;color:#a8b9c7;border-radius:3px;font-size:.69rem;line-height:1.7;padding:3px 7px}
.board button{margin-top:20px;padding:11px 16px}.board .primary{background:#2c4050;border-color:#6e7c83;color:#e8d5bd}.board .primary:hover{background:#c6a47d;color:#17212d;border-color:#c6a47d}
.board.selected{border-color:#bd9b77}.locked-board{justify-content:center;align-items:center;min-height:210px;padding:24px;background:#182431;color:#91a3b2}
.locked-board:hover{background:#203040}.locked-board>span{font-size:0;display:block;width:22px;height:24px;border:1px solid #718493;border-radius:3px;position:relative;margin:14px 0 12px}
.locked-board>span:before{content:'';position:absolute;left:5px;top:-10px;width:10px;height:11px;border:1px solid #718493;border-radius:6px 6px 0 0}
.locked-board>span:after{content:'';position:absolute;width:2px;height:7px;background:#718493;left:9px;top:8px}.locked-board h2{font-size:1.35rem;color:#a9bac7;margin:3px 0 8px}
.victory-stamp{top:125px;right:20px;transform:rotate(-9deg);color:#b1c4bd;border-color:#b1c4bd;opacity:.25;padding:7px 10px}.victory-stamp strong{font-size:17px;letter-spacing:1px}.victory-stamp span{font-size:9px;letter-spacing:1px}
.auth{max-width:1280px;min-height:calc(100dvh - 185px);padding:55px 40px;gap:60px;grid-template-columns:minmax(0,1.5fr) minmax(330px,.9fr)}
.auth-intro{position:relative;min-height:470px;padding:40px 0;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-start}
.auth-intro:before{content:'';position:absolute;z-index:-1;inset:125px -55px -10px -60px;background:url('village-etching.svg') 70% 70%/auto 440px no-repeat;opacity:.95}
.auth-intro h1{font-size:clamp(2.7rem,4.7vw,4rem);line-height:1.48;letter-spacing:.1em}.auth-intro>p{margin-top:23px;max-width:31em;font-size:.94rem;color:#b6c3ce;line-height:2}
.auth .panel{padding:32px;background:#1c2b39;border-color:#4a5c6c;border-top:2px solid #b09273}.auth .panel h2{font-size:1.7rem}.auth-tabs{border-bottom:1px solid var(--line);margin:24px 0 25px;gap:0}
.auth-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:12px;color:#9dadbb}.auth-tabs .active-tab{color:#e3c6a0;border-bottom-color:#c6a47d}
.auth label{color:#bcc6ce}.auth input{padding:13px;font-size:16px}.auth .top-note{font-size:.77rem;line-height:1.8}.auth .auth-error{margin:6px 0;min-height:22px}
.auth .primary{min-height:47px}.onboarding{max-width:900px}.onboarding .panel{border-top:2px solid var(--gold)}.onboarding h1{font-size:clamp(2rem,4vw,3rem)}
.tutorial-coach,.tutorial-invite{background:#233542;border-color:#627989;color:#d4dedf}.tutorial-coach p{color:#c1cbd3}
.game-top{max-width:1440px;padding:24px 28px 19px}.game-top .phase-label{color:#d6bc9a;letter-spacing:.1em}.game-layout{max-width:1440px;gap:24px;padding:0 28px;grid-template-columns:minmax(170px,214px) minmax(0,1fr) minmax(170px,214px)}
.rail{gap:9px}.person{border-radius:4px;border-color:#4a6072;background:#233442;transition:border-color .12s}
.person-main{min-height:101px;padding:14px 2px 9px;gap:7px}.number{color:#e0e6e7;font-size:31px;font-variant-numeric:tabular-nums}.role-badge{color:#d0b493}.person-state{color:#9eafbc;font-size:.7rem}
.mark-edit{border-top:1px solid #425566;background:#1c2a37;color:#b2c3ce;font-size:.71rem;padding:7px 1px;min-height:31px}
.person.selected{border:2px solid #e4c29a;background:#344755;box-shadow:none}.person.selected .number{color:#ffe0b5}
.person.dead{background:#17232f;border-color:#344553}.person.dead .number{color:#7f919f}.person.dead .mark-edit{background:#17232f;color:#94a5b3}.person.revealed{border-color:#ae957b}
.phase-panel,.speaker-stage{border-radius:5px;background:#1e2e3b;border-color:#506272;box-shadow:none;padding:27px 29px}
.phase-panel h2{font-size:1.65rem;color:#e0e5e5;line-height:1.5}.phase-panel p{color:#b2c0cb;font-size:.91rem;line-height:1.9}
.steps{gap:0 10px;padding-bottom:13px;border-bottom:1px solid var(--line);margin-bottom:24px}.step{background:none;border:0;border-bottom:1px solid transparent;border-radius:0;padding:5px 0;font-size:.73rem;color:#9cadbb}
.step.current{border-color:#c6a47d;background:none;color:#e9cba6}
.target-box{background:#182633;border:1px solid #596d7c;border-left:3px solid #b4997e;border-radius:3px;padding:18px;margin:24px 0;color:#b6c4cd}
.target-num{color:#e4c8a3;font-variant-numeric:tabular-nums}.news{color:#c6d0d6;border-left-color:#bd9b77}
.speaker-stage{background:#1f303e;animation:none}.speaker-orbit{width:112px;height:112px;border-color:#71808a;margin:20px auto;padding:7px}.speaker-orbit:after{inset:-6px;border:1px solid #495d6d}
.speaker-seat{background:#253b4b;border:1px solid #aa977e;color:#e4d4bc;box-shadow:none;text-shadow:none;display:grid;place-items:center;line-height:1;padding:0;font-size:46px}
.speaker-title{color:#b7c7d2;letter-spacing:.05em;font-size:1.04rem}.speaker-words{font-family:var(--display);font-size:1.55rem;line-height:1.9;color:#e2e6e7;margin:28px 0 30px}
.speaker-note{background:#182735;border:1px solid #42596a;border-radius:3px;text-align:left;margin:24px 0 18px;padding:15px 17px}.speaker-note .row>span{color:#a6b7c4}.speaker-note p{color:#b8c5cf;font-size:.85rem}.speaker-note button{color:#d4b998}
.speaker-stage .primary{box-shadow:none}.speech-number{color:#ceb593;font-variant-numeric:tabular-nums}.speech p{color:#cfd8df}.tag{border-color:#536676;border-radius:3px}
.tabs button.active-tab,.mark-options button.chosen{background:#314657;color:#ead0ab;border-color:#ac947a}
.route-card{background:#1d2d3b;border-color:#586d7e;border-radius:4px}.route-card>span{color:#b8a184;font-style:normal}.route-card strong{color:#e5dbca}.route-card:hover{transform:none;background:#2c4152;box-shadow:none}
.council-dialog h2{font-size:1.7rem}.event-dialog{border-color:#b09277;box-shadow:0 18px 60px #080f19b0}.event-sigil{color:#d2b694;text-shadow:none}.event-dialog h2{color:#e4ceb1}.event-dialog p{color:#c5d1d9}
dialog{background:#1b2b39;border-color:#637b8b;border-radius:6px;box-shadow:0 22px 65px #080f19b0;padding:30px}dialog::backdrop{background:#090f19c9;backdrop-filter:none}
.mark-options{gap:8px}.mark-options button{min-height:42px}.close{color:#c2ced6}.night-outcome{background:#253b47;border-color:#627885;border-radius:4px}.night-outcome span{color:#bdcbd3}.night-outcome strong{color:#e2d6c4}
.result{padding:38px 24px 34px;margin-bottom:26px;border-bottom:1px solid var(--line)}.result h1{color:#e1c9a8;font-size:2.5rem;margin:18px 0}.result.lost h1{color:#d4b2b7}.result p{color:#b2c2ce;font-size:.9rem}.result .actions{max-width:780px;margin:25px auto 0}.result .actions button{flex:1 1 auto;white-space:nowrap}
.replay-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:23px 0 35px}.replay-person{background:#1e2e3b;border-radius:3px;border-color:#42596a;border-left:2px solid #758f97;padding:15px}.replay-person:has(.tag.bad){border-left-color:#b1828d}.replay-person strong{font-weight:500}.replay-person .tag{margin-left:7px}.replay-person small{font-size:.76rem;margin-top:6px;color:#aabac6}
.event-group{border-left:1px solid #667e8e;margin:26px 0;padding:0 0 0 27px;position:relative}.event-group:before{content:'';position:absolute;left:-4px;top:6px;width:7px;height:7px;border-radius:50%;background:#baa182}.event-group h3{font-size:1.25rem;color:#d1b798}.event-group p{line-height:1.85;color:#bac9d2}.event-group .night-outcome{margin-bottom:12px}
.history-item{background:#1d2c39;border-radius:4px}.history-item h3{font-size:1.25rem}.history-item button{flex-shrink:0}.notebook summary{color:#d0b695}
.handbook{max-width:1050px}.handbook h1,.role-library h1{font-size:clamp(2rem,3.5vw,3rem);line-height:1.5}.manual-index{gap:0 26px;margin:32px 0}.manual-index a{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 2px;color:#c1cfda}.manual-index a:hover{background:transparent;color:#e5c9a5}
.manual-chapter{gap:22px;padding:31px 0}.manual-chapter p{max-width:65ch;color:#c4d0d8}.chapter-number{font-style:normal;font-size:29px;color:#8297a7}.manual-chapter h2{color:#e3d8c8}
.role-guide-grid{gap:15px}.role-guide-card{border-radius:4px;border-color:#4c6273;border-top:2px solid #718b8c;background:#20323f;box-shadow:none;transition:border-color .15s,background-color .15s}
.role-guide-card.wolf{background:#2d2d3c;border-color:#615768;border-top:2px solid #a07685}.role-guide-card.god{background:#26313e;border-color:#5f626a;border-top:2px solid #ac9475}
.role-guide-card:hover{transform:none;background:#304353;box-shadow:none;border-color:#acb7bf}.role-guide-card strong{font-family:var(--display);font-size:1.4rem;font-weight:500;color:#e1e6e7}.role-guide-team{letter-spacing:.04em;color:#b7c7d1}.role-guide-card.wolf .role-guide-team{color:#d0a0ad}.role-guide-card.god .role-guide-team{color:#d3bda0}.role-guide-card.read{border-color:#9bbaac;background:#223a40}.role-guide-card small{color:#b3c2cc}.role-card-excerpt{color:#aebfca}
.brief-rules{border-radius:3px;background:#1c2d3a;border-color:#475e70}.brief-rules span{color:#c3cfd6}.brief-actions{padding-top:22px}.role-guide-detail h3{color:#d2b99a}.role-guide-detail p{color:#c5d0d8}
.trial-invite,.challenge-card{background:#223443;border-color:#536c7f;border-radius:5px}.trial-invite h2,.challenge-card h2{font-size:1.45rem}.trial-invite .eyebrow,.challenge-card .eyebrow{color:#abbecb}
.challenge-shelf{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:35px 0 24px;padding-top:26px;border-top:1px solid var(--line)}.challenge-shelf>.panel{margin:0;flex-wrap:wrap;align-content:start;padding:23px;gap:17px}.challenge-shelf .badge-empty{display:none}.challenge-shelf .trial-invite>div{min-width:0}.challenge-shelf .actions{margin-top:0}
.sticky-actions{background:#192a39;border-color:#5c7486;border-radius:4px}.admin-board summary{color:#d2b693}.error{color:#eeb7bd}#toast{background:#dfc5a3;color:#17212d;border-radius:4px}
@media(min-width:1500px){.person-main{min-height:112px}.number{font-size:34px}}
@media(max-width:1100px){.topbar{padding:0 25px}.topbar nav{gap:0}.topbar nav button{padding:9px 7px;font-size:.82rem}.game-layout{grid-template-columns:150px minmax(0,1fr) 150px;gap:14px;padding:0 17px}.auth{gap:28px;padding-inline:28px}.arrival-copy h1{font-size:2.45rem}.phase-panel,.speaker-stage{padding:24px}}
@media(max-width:760px){
 .topbar{height:auto;min-height:84px;padding:15px 18px 9px;gap:10px}.brand{font-size:1.2rem;gap:9px}.brand small{display:none}.sigil{height:28px;width:21px}nav{flex-wrap:wrap}nav button{min-height:39px;font-size:.8rem}.topbar nav{width:100%;column-gap:6px}
 .lobby{padding:25px 18px 20px}.lobby-header.village-arrival{min-height:245px;margin:-8px -18px 25px;padding:26px 20px;align-items:flex-start}.arrival-scene{width:100%;object-position:63% 70%;opacity:.58}.arrival-copy{max-width:100%}.arrival-copy h1{font-size:1.94rem;letter-spacing:.03em}.arrival-copy p{font-size:.8rem;line-height:1.9;margin-top:15px;max-width:23em}.arrival-copy .eyebrow{font-size:.72rem;margin-bottom:13px}
 .boards{grid-template-columns:1fr;gap:19px}.board{padding:0 20px 21px}.board-scenery{height:92px;margin:0 -20px 21px;background-size:auto 265px}.board h2{font-size:1.5rem}.board>p{font-size:.84rem}.cast-groups{gap:13px;margin-top:18px;padding-top:17px}.cast-group p{font-size:.74rem!important}.board-rules{margin-top:17px}.board button{min-height:44px}.victory-stamp{top:110px;right:16px}.locked-board{padding:24px;min-height:170px}
 .board-section-tabs button{padding:13px 24px;font-size:1.02rem;min-height:48px}.village-progress{font-size:.8rem;line-height:1.7;padding-bottom:14px;gap:6px 15px;margin-bottom:12px}.village-progress small{margin:0;flex-basis:100%;font-size:.74rem}.continuation{padding:18px;gap:12px}.continuation button{width:100%}
 .auth{display:flex;flex-direction:column;align-items:stretch;padding:20px 20px 30px;gap:22px;min-height:0}.auth-intro{min-height:245px;padding:8px 0 20px}.auth-intro:before{inset:0 -20px -22px;background-size:auto 320px;background-position:76% 77%;opacity:.55}.auth-intro h1{font-size:2.38rem;line-height:1.45;letter-spacing:.07em}.auth-intro>p{font-size:.81rem;line-height:1.9;max-width:27em;margin-top:16px}.auth .panel{padding:25px 23px}.auth .panel h2{font-size:1.52rem}.auth-tabs{margin:16px 0 21px}.auth .primary{min-height:46px}
 body.playing>.topbar{padding:4px 8px;border-bottom:1px solid #3b4c5c;min-height:0}.playing .topbar nav{flex-wrap:nowrap;overflow-x:auto;gap:1px;scrollbar-width:none}.playing .topbar nav button{flex-shrink:0;padding:7px 8px;font-size:.75rem;min-height:35px}.playing .topbar .brand{display:none}
 .game-top{padding:9px 10px 7px;gap:5px}.game-top .phase-label{font-size:.94rem}.game-top small{font-size:.68rem}.game-top .row button{font-size:.7rem;padding:6px 7px;min-height:31px}.game-top .row{gap:4px}
 .mobile-game-tools{padding:0 8px 8px;gap:6px}.mobile-game-tools button{min-height:35px;background:#263b4b;border-color:#4e6475;font-size:.76rem;padding:6px}
 .game-layout{grid-template-columns:52px minmax(0,1fr) 52px;gap:5px;padding:0 5px 5px}.rail{gap:5px}.person{border-radius:3px}.person-main{min-height:62px;padding:5px 0 3px;gap:3px}.number{font-size:23px}.role-badge{font-size:.61rem;min-height:12px}.person-state{font-size:.6rem}.mark-edit{min-height:28px;font-size:.62rem;padding:5px 0}.person.selected{border-width:2px}
 #phase-slot>.phase-panel,#phase-slot>.speaker-stage{border-radius:4px;padding:15px 11px;background:#1e2e3b}.phase-panel h2{font-size:1.19rem;line-height:1.5;letter-spacing:.02em}.phase-panel p{font-size:.82rem;line-height:1.85}.eyebrow{font-size:.7rem;letter-spacing:.04em}.steps{gap:0 9px;margin-bottom:18px;padding-bottom:9px}.step{font-size:.65rem;padding:4px 0}
 .target-box{margin:16px 0;padding:12px 10px}.target-num{font-size:27px}.actions{gap:7px}.actions button{min-height:42px;font-size:.81rem}
 #phase-slot .actions{bottom:-15px;padding:10px 0 3px;background:#1e2e3b;box-shadow:0 -5px 0 #1e2e3b;margin-top:auto}#phase-slot .actions button{font-size:.79rem;line-height:1.5;padding:10px 5px}
 #phase-slot .speaker-orbit{width:69px;height:69px;padding:5px;margin:17px auto 13px}#phase-slot .speaker-seat{font-size:31px;line-height:1;display:grid;place-items:center}#phase-slot .speaker-title{font-size:.85rem}#phase-slot .speaker-words{font-family:var(--display);font-size:1.2rem;line-height:1.95;margin:20px 0;color:#e5e9e8}
 #phase-slot .speaker-note{padding:11px 9px;margin:14px 0}#phase-slot .speaker-note .row>span{font-size:.69rem}#phase-slot .speaker-note p{font-size:.76rem;max-height:76px}#phase-slot .speaker-note button{font-size:.69rem;min-height:32px;padding:5px 8px}
 .speaker-note .row{gap:5px}.speech p{font-size:.88rem}.record-tabs button{font-size:.78rem;min-height:40px}.speaker-words{font-size:1.13rem;line-height:1.85}
 dialog{padding:25px 18px;width:calc(100vw - 24px);border-radius:5px}.council-dialog h2{font-size:1.4rem}.route-card{padding:16px}.route-card strong{font-size:1.05rem}.route-card small{font-size:.77rem}.event-dialog p{font-size:1rem}
 .result{padding:19px 0 26px}.result h1{font-size:1.9rem;line-height:1.6}.result p{font-size:.81rem}.result .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.replay-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.replay-person{padding:11px;font-size:.79rem}.replay-person small{font-size:.69rem}.replay-person .tag{font-size:.67rem;padding:1px 4px;margin-left:3px}
 .event-group{padding-left:17px}.event-group p{font-size:.81rem}.night-outcome strong{font-size:.86rem}.history-item{gap:10px;flex-wrap:wrap}.history-item h3{font-size:1.2rem}.history-item button{min-height:40px}
 .handbook h1,.role-library h1{font-size:1.95rem;line-height:1.5}.manual-index{margin:24px 0;gap:0}.manual-index a{padding:14px 0;font-size:.84rem}.manual-chapter{grid-template-columns:26px minmax(0,1fr);gap:12px}.manual-chapter p{font-size:.9rem;line-height:2}.chapter-number{font-size:22px}.role-guide-grid{gap:11px}.role-guide-card{padding:18px 15px;min-height:175px}.role-guide-card strong{font-size:1.32rem}.role-guide-team{font-size:.69rem}.role-guide-card small{font-size:.69rem}.role-card-excerpt{font-size:.77rem}
 .challenge-shelf{grid-template-columns:1fr;gap:16px}.trial-invite,.challenge-card{padding:20px}.trial-invite h2,.challenge-card h2{font-size:1.3rem}.trial-invite .primary{min-height:43px}.onboarding h1{font-size:1.9rem;line-height:1.55}.onboarding .panel{padding:23px 20px}.onboarding .panel h2{font-size:1.27rem}.onboarding .panel p{font-size:.87rem}
 footer{font-size:.69rem;padding:24px 18px;margin-top:20px;letter-spacing:0;gap:16px}
}
@media(max-width:360px){.arrival-copy h1{font-size:1.73rem}.cast-groups{gap:9px}.cast-group p{font-size:.7rem!important}.game-layout{grid-template-columns:46px minmax(0,1fr) 46px;gap:4px;padding-inline:4px}.role-badge{font-size:.57rem}.role-guide-grid{grid-template-columns:1fr}.replay-grid{grid-template-columns:1fr}.game-top small{font-size:.6rem}}
