/* Game shell: one task per screen; no marketing sections or headline fills. */
:root { --shell-gap: clamp(12px,2.5vh,28px); }
html,body { height:100%; overflow:hidden; }
body { min-height:0; height:100dvh; display:grid; grid-template-rows:64px minmax(0,1fr) auto; }
body::before { animation:none; }
body::after { opacity:.06; }
* { box-sizing:border-box; }
.hidden,.page-hidden { display:none!important; }
.site-header { position:relative; height:64px; padding:10px 24px; width:100%; max-width:none; margin:0; align-items:center; }
.brand small,.brand-mark,footer,.setup-view .hero,#setupForm .step { display:none; }
.brand strong { font-size:17px; }
.header-actions { gap:8px; }
.header-actions .button { font-size:10px; padding:9px 12px; }
.button { background:#261c35; border-color:#a879c0; box-shadow:0 4px 0 #0b0811; padding:12px 20px; }
.button::before { content:none; }
.button-primary { color:var(--cream); background:#33233c; border-color:#f7cd66; }
.button-primary:hover { color:var(--cream); background:#493345; }
.button:disabled { opacity:.4; cursor:not-allowed; transform:none; }
button,input,select { font-family:inherit; }
button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #f7cd66; outline-offset:3px; }
main { width:100%; max-width:none; margin:0; min-height:0; position:relative; }
h1,h1 em,.library-heading h1 em { background:none; padding:0; margin:0; width:auto; font-size:clamp(28px,4vw,48px); line-height:1.2; letter-spacing:-.025em; text-shadow:3px 3px 0 #442953; }
h1 em { display:inline; }
h2 { font-size:clamp(19px,2.5vw,28px); }
.screen { height:100%; padding:clamp(18px,4vh,42px) 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--shell-gap); }
.screen p { margin:0; color:#d6c8df; text-align:center; max-width:55ch; line-height:1.7; }
.screen label { display:grid; gap:10px; width:min(100%,380px); }
.screen input { min-width:0; width:100%; }
.menu-screen h1 { font-size:clamp(42px,7.5vw,96px); letter-spacing:.04em; }
.menu-tagline { font-size:clamp(13px,2vw,20px); }
.menu-modes { display:flex; gap:24px; margin:12px 0; }
.mode-button { width:clamp(180px,26vw,310px); min-height:110px; border-width:3px; font-size:28px; }
.mode-button small { display:block; font-size:11px; color:#bfb0cb; margin-top:12px; line-height:1.6; }
.menu-links { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
.account-button { margin-top:10px; font-size:11px; }
.menu-note { font-size:10px; }
.join-row { display:flex; align-items:end; gap:12px; width:min(100%,380px); }
.join-row input { text-transform:uppercase; }
.online-screen #onlineError:empty { display:none; }
.invite-row { display:flex; align-items:center; gap:24px; }
#lobbyCode { font-size:28px; color:#f7cd66; letter-spacing:.1em; }
#lobbyMembers { width:min(100%,540px); border-top:1px solid #6b4b7f; }
.lobby-member { display:flex; gap:18px; padding:15px 6px; border-bottom:1px solid #6b4b7f; }
.lobby-member strong { flex:1; }.lobby-member small { color:#b8a2c5; }
.screen-actions { display:flex; justify-content:space-between; gap:24px; width:min(100%,540px); }
.setup-view { height:100%; padding:20px 24px; max-width:960px; margin:auto; display:grid; grid-template-rows:minmax(0,1fr) auto; gap:16px; }
.setup-form { display:block; min-height:0; }
.setup-section { height:100%; margin:0; padding:0; background:none; border:0; border-radius:0; box-shadow:none; display:flex; flex-direction:column; justify-content:center; gap:20px; }
.section-heading { flex-direction:column; border:0; padding:0; margin:0; gap:10px; text-align:center; align-items:center; }
.section-heading h2 { margin:0; }.section-heading p { margin:0; }
.deck-grid { display:flex; justify-content:center; min-height:0; }
.deck-choice { width:min(300px,65vw); height:clamp(180px,36vh,310px); min-height:0; }
.deck-choice-card { height:100%; background:#251b34; color:#fff2d0; border:3px solid #826092; box-shadow:inset 0 0 0 5px #1c1428,0 7px 0 #100b17; transform:none!important; padding:28px; display:flex; flex-direction:column; justify-content:center; gap:24px; text-align:center; }
.deck-choice-card::after { display:none; }
.deck-choice-card strong { font-size:25px; }.deck-choice-card small { color:#cbbad2; margin-top:18px; line-height:1.8; }
.deck-choice input:checked + .deck-choice-card { background:#30243c; color:#fff2d0; border-color:#f7cd66; outline:0; }
.deck-choice input:checked + .deck-choice-card::after { display:block; content:'✓'; top:12px; right:12px; background:none; border:none; color:#f7cd66; }
.deck-emoji { font-size:32px; }
.reader-nav,.wizard-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.setup-section > .reader-nav { width:min(100%,460px); margin:0 auto; }
.wizard-nav { border-top:1px solid #755486; padding-top:16px; }
.wizard-nav span { font-size:11px; color:#c8b6d5; }
.counter-control { display:none; }
.count-slider { display:flex; gap:20px; align-items:center; justify-content:center; }
input[type=range] { width:min(260px,60vw); accent-color:#e6bb5c; padding:0; min-height:28px; border:0; box-shadow:none; }
.player-fields { display:block; width:min(100%,520px); margin:0 auto; }
.player-field { display:grid; gap:20px; background:none; border:0; padding:0; }
.player-field input,.player-field select,.option-grid select { font-size:14px; padding:14px; }
.option-grid { grid-template-columns:1fr; width:min(100%,460px); margin:0 auto; gap:24px; }
.setup-options > button[type=submit] { display:none; }
.form-error { text-align:center; margin:0; }.form-error:empty{display:none;}
.table-nav { display:flex; justify-content:center; gap:12px; padding:10px 16px 16px; }
.table-nav [aria-pressed=true] { border-color:#f7cd66; }
.game-view { height:100%; padding:14px 24px; display:grid; grid-template-rows:auto minmax(0,1fr); gap:16px; max-width:1100px; margin:auto; }
.game-topbar { margin:0; padding:10px; font-size:10px; }.deck-pills{display:none;}.round-meter { min-width:0; }
.turn-names{font-size:11px;line-height:1.7;color:#fff2d0;}
.player-details .owned-cards { max-height:none;overflow:visible; }
.table-layout { display:block; height:100%; min-height:0; }
.table-layout>.panel { display:none; height:100%; margin:0; padding:0; background:none; box-shadow:none; border:0; }
.game-view[data-tab=story] .story-panel,.game-view[data-tab=action] .story-panel,.game-view[data-tab=players] .roles-panel,.game-view[data-tab=journal] .guide-panel { display:flex; flex-direction:column; justify-content:center; }
.story-stage { padding:0; height:100%; display:flex; flex-direction:column; justify-content:center; }
.simula-strip,.scene-area,.scene-controls { display:none; }
.game-view[data-tab=story] .scene-area,.game-view[data-tab=action] .scene-controls { display:block; }
.game-view[data-tab=story] .simula-strip.opening-active { display:block; max-width:660px; margin:0 auto; font-size:clamp(13px,1.8vw,18px); line-height:1.8; padding:24px; background:transparent; border:1px solid #79548e; }
.game-view[data-tab=story] .empty-scene { display:none; }
.simula-strip button { display:block; margin:20px 0 0; }
.scene-card { width:min(100%,660px); margin:0 auto; transform:none; padding:clamp(18px,3vh,32px); }
.scene-card h2 { margin:12px 0 16px; font-size:clamp(20px,2.5vw,30px); }
.scene-card .situation { font-size:clamp(12px,1.5vw,16px); line-height:1.65; }
.scene-card .prompt { font-size:clamp(12px,1.5vw,16px); line-height:1.6; }
.scene-controls { max-width:720px; width:100%; margin:0 auto; }
.scene-controls .button { color:#fff2d0; border-color:#a879c0; }
.scene-controls .button-primary { color:#25172c; border-color:#f7cd66; }
.simula-strip { color:#fff2d0; }.simula-strip button { float:none; color:#f7cd66; }
.table-advance { margin:20px auto 0; display:block; }
.resolution-panel { padding:20px; }.roll-config { gap:12px; }.roll-config select{padding:10px;font-size:12px;}
.roles-panel .role-stack { flex-direction:row; display:flex; gap:14px; max-width:680px; width:100%; margin:0 auto 16px; }
.role-card { flex:1; padding:14px; }.role-card strong{font-size:18px;}.role-card small{font-size:11px;}
.panel-heading { display:none; }.players-list { max-width:680px; width:100%; margin:auto; }.player-summary { padding:18px; }.player-details { font-size:12px; }.player-details .owned-cards { max-height:130px; overflow:auto; }
.guide-list { display:none; }.log { padding:0; max-height:none; overflow:visible; max-width:640px; margin:auto; width:100%; }.log-entry { font-size:16px; line-height:1.8; margin:0 0 24px; }
.finale-layout { display:flex; flex-direction:column; justify-content:center; height:100%; gap:16px; }.finale-layout>*{display:none;}
.game-view[data-tab=story] .finale-card,.game-view[data-tab=action] .finale-rolls,.game-view[data-tab=players] .finale-rolls,.game-view[data-tab=journal] .ending { display:block; }
.finale-rolls { width:min(100%,680px);margin:0 auto; }.finale-player { margin:0 0 16px; }.ending { padding:16px; }.ending h2{font-size:24px;}.epilogue-list { gap:8px; }.epilogue-list input { padding:8px; }
.library-view { padding:18px 24px; height:100%; width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); gap:16px; }
.library-shell { min-width:0; width:100%; align-items:stretch; }.library-main,.library-sidebar{min-width:0;}
.library-hud { grid-template-columns:minmax(0,1fr); margin-bottom:0; }
.library-deck-select { display:none; }
.library-type-select{display:none;}
.library-card { grid-template-rows:auto auto minmax(0,1fr) auto; }
.library-cards .library-card-rules { display:none; }
.library-cards[data-face=rules] .library-card-lead { display:none; }
.library-cards[data-face=rules] .library-card-rules { display:block; }
.library-card-lead,.library-card-rules { min-height:0; align-self:start; }
.library-card-lead,.library-card-rules { -webkit-line-clamp:unset; }
.library-heading { margin:0; align-items:center; }.library-heading h1 { font-size:24px; }.library-heading h1 span { display:inline; }.library-heading .eyebrow,.library-intro { display:none; }
.library-shell { height:100%; min-height:0; grid-template-columns:210px minmax(0,1fr); gap:20px; }.library-sidebar { position:static; max-height:none; padding:0; overflow:auto; }.library-deck-button { padding:8px;font-size:11px;min-height:0; }.library-deck-button small,.library-deck-button b { display:none; }
.library-main { display:grid; grid-template-rows:auto auto auto minmax(0,1fr) auto; min-height:0; gap:8px; }.library-hud{padding:0;border:0;background:none;}.library-deck-summary{display:none;}.library-search{width:100%;}.library-search input{padding:8px;}.library-filters{gap:4px;flex-wrap:wrap;}.library-filters button{padding:6px;font-size:10px;}.library-counter{margin:0;font-size:10px;}
.library-cards { display:flex; justify-content:center; min-height:0; height:100%; }.library-card { height:100%; width:min(100%,400px); aspect-ratio:auto; min-height:0; padding:18px; grid-template-rows:auto auto minmax(0,1fr) auto auto; gap:8px; }.library-card-art{display:none;}.library-card-title{font-size:20px;}.library-card-lead{font-size:12px;overflow:auto;}.library-card-rules{font-size:11px;line-height:1.5;}.library-card-stats{font-size:11px;}.library-card-detail{height:auto;min-height:400px;}.library-card-detail .library-card-art{display:none;}
.rules-dialog,.card-dialog { max-height:90dvh; padding:28px; }.rules-dialog ol{min-height:110px;padding-left:24px;}.rules-dialog li{font-size:15px;line-height:1.8;}.difficulty-row{margin-top:20px;}.dialog-close{min-width:36px;min-height:36px;}
#cloudControls { display:grid;gap:12px; }#accountStatus{line-height:1.8;margin:20px 0;}
@media(max-width:600px){
 .library-filters{display:none;}.library-type-select{display:flex;align-items:center;gap:8px;font-size:10px;}.library-type-select select{padding:7px;min-width:0;flex:1;}.library-main{grid-template-rows:auto auto auto minmax(0,1fr) auto;}.library-search{padding:6px;}.library-card{grid-template-rows:auto auto minmax(0,1fr) auto;}
 .library-heading{display:flex;gap:12px;}.library-sidebar .library-decks{display:none;}.library-deck-select{display:flex;align-items:center;gap:12px;}.library-deck-select select{padding:8px;flex:1;min-width:0;}.library-main{height:100%;}.library-cards{padding:5px;}.library-filters{flex-wrap:wrap;overflow:visible;padding:6px;}.library-counter{padding:3px;}.library-card{transform:none;}.library-card-title{min-height:0;}.library-card-stats{font-size:10px;}
 body{grid-template-rows:54px minmax(0,1fr) auto;}.site-header{height:54px;padding:8px 12px;}.brand strong{font-size:12px;}.header-actions{gap:5px;}.header-actions .button{font-size:8px;padding:8px;}.brand{gap:0;}
 .screen{padding:16px;gap:18px;}.menu-screen h1{font-size:clamp(36px,10vw,56px);}.menu-modes{width:100%;gap:12px;}.mode-button{width:50%;min-height:115px;font-size:23px;padding:14px 8px;}.mode-button small{font-size:10px;}.menu-links{gap:8px;}.menu-links .button{font-size:10px;padding:10px;}.menu-note{max-width:28ch;}
 .setup-view{padding:16px;gap:10px;}.setup-section{gap:16px;}.deck-choice{height:clamp(180px,32vh,280px);}.deck-choice-card{padding:20px;}.section-heading p{font-size:10px;}.wizard-nav{padding-top:12px;}.wizard-nav .button{padding:10px 14px;}.wizard-nav span{font-size:9px;}
 .game-view{padding:10px 12px;gap:10px;}.game-topbar{padding:8px;}.save-status{font-size:8px;}.table-nav{gap:6px;padding:8px 12px 12px;}.table-nav .button{padding:10px 8px;font-size:10px;flex:1;}.scene-card{padding:18px;}.scene-card h2{font-size:22px;}.check-badge{font-size:10px;}.resolution-panel{padding:12px;}.roll-config{grid-template-columns:1fr 1fr 1fr;gap:6px;}.roll-config label{font-size:9px;}.roll-config select{font-size:10px;padding:8px 2px;}.control-row{gap:8px;}.control-row .button{font-size:11px;padding:10px;}.role-card{padding:10px;}.role-card strong{font-size:14px;}.role-card small{font-size:9px;}.player-summary{padding:12px;}
 .library-view{padding:12px;gap:10px;}.library-heading h1{font-size:18px;}.library-heading .button{padding:8px;font-size:10px;}.library-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:10px;}.library-sidebar{border:0;background:none;overflow:visible;}.library-sidebar-label{display:none;}.library-decks{display:flex;gap:6px;overflow:auto;padding-bottom:5px;}.library-deck-button{flex:0 0 auto;min-width:0;padding:7px;font-size:9px;}.library-deck-button>span:first-child{font-size:13px;}.library-deck-button strong{font-size:10px;}.library-search{font-size:8px;}.library-search input{font-size:11px;padding:7px;}.library-filters button{font-size:8px;padding:5px;}.library-filters button span{display:none;}.library-card{padding:14px;gap:6px;}.library-card-title{font-size:16px;}.library-card-lead{font-size:11px;}.library-card-rules{font-size:10px;}.reader-nav .button{padding:8px 12px;font-size:10px;}.reader-nav{font-size:10px;}.invite-row{gap:10px;flex-direction:column;}.lobby-member{padding:10px 4px;font-size:12px;}.lobby-screen>p{font-size:10px;}.screen-actions .button{padding:10px;font-size:10px;}.rules-dialog{padding:22px;}.rules-dialog li{font-size:13px;}.difficulty-row span{font-size:9px;padding:6px;}
}
@media(max-height:620px){.screen{gap:12px;padding:12px;}.menu-screen h1{font-size:40px;}.mode-button{min-height:82px;font-size:22px;}.menu-modes{margin:0;}.menu-note{display:none;}.setup-section{gap:10px;}.deck-choice{height:170px;}.deck-choice-card{gap:12px;padding:16px;}.deck-choice-card small{margin-top:8px;}.deck-emoji{font-size:22px;}.scene-card{padding:12px;}.scene-card h2{margin:8px 0;}.scene-card p{margin:8px 0;font-size:11px;}.scene-card .ability{font-size:10px;}.role-stack{display:none!important;}.library-card-rules{font-size:9px;}.library-card-lead{font-size:10px;}.library-card-title{font-size:14px;}}
@media(max-width:600px){.game-topbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;}.save-status{grid-column:1/-1;text-align:right;}.turn-names{font-size:9px;text-align:right;}.round-meter{font-size:9px;}.round-meter progress{width:100%;}.player-details .owned-cards{max-height:none;overflow:visible;}}
