/* Settings reuse the covenant table palette; controls remain native. */
.settings-modal{position:relative;width:min(1020px,100%);height:min(780px,calc(100svh - 48px));max-height:calc(100svh - 48px);display:flex;flex-direction:column;overflow:hidden;padding:0;border-radius:10px}
.settings-modal>.modal-close{position:absolute;right:22px;top:22px;float:none;margin:0;z-index:1;min-width:44px;min-height:44px}
.settings-header{padding:25px 80px 20px 30px;border-bottom:1px solid #d4c093;flex-shrink:0}
.settings-header h2{font-size:30px;line-height:1.4}.settings-header p{font:14px/1.7 var(--sans);color:#566477;margin-top:5px}
.settings-layout{display:grid;grid-template-columns:190px minmax(0,1fr);flex:1;min-height:0}
.settings-nav{padding:20px 12px;background:#f2ecdf;border-right:1px solid #d4c093;display:flex;flex-direction:column;gap:7px}
.settings-nav button{padding:12px 16px;min-height:46px;border:1px solid transparent;border-radius:5px;background:transparent;text-align:left;color:#344c64;font-size:15px}
.settings-nav button:hover{background:#e8dfca}.settings-nav button[aria-current]{color:#fffaf0;background:#254c70;border-color:#b39459}
.settings-section{min-width:0;min-height:0;overflow-y:auto;padding:24px 30px 16px;scrollbar-color:#b7a078 #f4eee0;scrollbar-width:thin}
.settings-section h3{font:700 21px/1.4 var(--sans);color:#254c70;margin:0 0 6px}
.settings-intro{font:14px/1.8 var(--sans);color:#576576;margin-bottom:20px}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 0;border-bottom:1px solid #e6dcc6}
.setting-description{flex:1;min-width:0}.setting-description label,.setting-label{font:600 16px/1.5 var(--sans);color:#2f4054}
.setting-description p{font:14px/1.7 var(--sans);color:#596778;margin-top:5px;max-width:42ch}
.setting-control{flex-shrink:0;width:218px;display:flex;align-items:center;justify-content:flex-end;gap:12px}
.setting-control input[type=range]{width:158px;min-width:50px;height:44px;accent-color:#254c70}
.setting-control output{min-width:44px;text-align:right;font:600 14px var(--sans);color:#254c70;font-variant-numeric:tabular-nums}
.setting-control input[type=checkbox]{width:24px;height:24px;accent-color:#254c70;cursor:pointer;margin:10px}
.setting-control select{width:100%;min-height:44px;padding:8px 10px;border:1px solid #bea676;border-radius:5px;background:#fffdf5;color:#2f4054;font:16px var(--sans)}
.settings-inline-actions{display:flex;gap:10px;margin:21px 0 9px}.settings-inline-actions .btn,.save-actions .btn,.settings-footer .btn,.settings-confirm-actions .btn{min-height:44px;font:600 14px var(--sans);padding:10px 16px}
.settings-note,.settings-message{font:14px/1.8 var(--sans);color:#586677;margin-top:12px;overflow-wrap:anywhere}
.settings-message:empty{display:none}.settings-error{color:#953949!important}
.settings-alert{font:14px/1.7 var(--sans);color:#843c3c;background:#fff0e5;padding:12px 24px;border-bottom:1px solid #e0c098;flex-shrink:0}
.settings-footer{display:flex;gap:18px;align-items:center;justify-content:space-between;background:#f5eddb;border-top:1px solid #d4c093;padding:16px 24px;flex-shrink:0}
.settings-footer>span{font:14px/1.6 var(--sans);color:#46634e;max-width:40ch}.settings-footer>div{display:flex;gap:8px;flex-shrink:0}
.save-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 22px;padding:20px 0;border-top:1px solid #e1d5bd;border-bottom:1px solid #e1d5bd;margin-top:18px}
.save-summary dt{font:14px/1.6 var(--sans);color:#596778}.save-summary dd{font:600 16px/1.7 var(--sans);color:#254c70;margin:3px 0 0;overflow-wrap:anywhere}
.save-summary .save-seed{grid-column:1/-1}.save-actions,.settings-confirm-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.settings-empty{padding:25px 0;line-height:1.8;color:#536477}.btn.danger{background:#fff5ef;color:#923b45;border:1px solid #bd7f79;box-shadow:none}.btn.danger:hover{background:#f6e2d8}
.settings-modal ::selection{background:#d8e6f1;color:#173f5e}.settings-modal input{caret-color:#254c70}
/* These overrides must win against the later fantasy-table actor shadows. */
body.quality-low .actor,body.quality-low .combatant.acting .actor,body.quality-low .enemy-target:hover .actor{filter:none!important}
body.no-shake .impact,body.reduced-motion .impact,body.reduced-motion .menu-actor{animation:none!important}
body.reduced-motion .projectile{display:none}body.reduced-motion .card,body.reduced-motion .btn{transition:none!important}
body.reduced-motion .floating-number{animation-name:reduced-number}.no-numbers .floating-number{display:none}.hide-shortcuts .card-footer kbd{display:none}
body:not(.reduced-motion):not(.no-shake) .impact{animation:impact .28s ease-out}
body:not(.reduced-motion) .menu-actor{animation:arrival .8s ease-out}
body:not(.reduced-motion) .card{transition:transform .2s ease-out,box-shadow .2s ease-out}
@keyframes reduced-number{from{opacity:1}to{opacity:0}}
body.large-text .card-text{font-size:16px!important;line-height:1.7}
body.large-text .rule-list p,body.large-text .source-note,body.large-text .selection-copy>p,body.large-text .selection-copy>small,body.large-text .event-copy>p,body.large-text .settings-note,body.large-text .settings-intro,body.large-text .setting-description p{font-size:16px}
body.high-contrast{--muted:#364657;--line:#a18b62}
body.high-contrast .card-text,body.high-contrast .card-footer,body.high-contrast .hand-caption,body.high-contrast .source-note,body.high-contrast .fine-print,body.high-contrast .settings-intro,body.high-contrast .settings-note,body.high-contrast .setting-description p,body.high-contrast .settings-header p,body.high-contrast .save-summary dt,body.high-contrast .game-footer{color:#344152!important}
body.high-contrast .card,body.high-contrast .modal,body.high-contrast .selection-drawer,body.high-contrast .setting-control select{border-color:#876c3c}
@media(max-width:760px){
 .settings-modal{height:calc(100svh - 24px);max-height:calc(100svh - 24px)}
 .settings-header{padding:18px 65px 14px 18px}.settings-header h2{font-size:25px}.settings-modal>.modal-close{right:12px;top:12px}
 .settings-layout{display:flex;flex-direction:column}.settings-nav{flex-direction:row;gap:3px;border-right:0;border-bottom:1px solid #d4c093;padding:7px;flex-shrink:0;overflow-x:auto}
 .settings-nav button{white-space:nowrap;padding:8px;min-height:44px;font-size:14px;flex:1;text-align:center}
 .settings-section{padding:18px 16px;flex:1}.setting-row{gap:14px;align-items:flex-start}.setting-control{width:115px}.setting-control input[type=range]{width:70px}.setting-control output{min-width:37px}
 .setting-description p{font-size:14px}.setting-control select{font-size:16px;padding:8px 3px}.settings-footer{padding:12px;gap:9px;flex-wrap:wrap}.settings-footer>span{width:100%;font-size:14px}.settings-footer>div{margin-left:auto}.settings-footer .btn{font-size:14px;padding:9px 12px}
 .save-summary{gap:13px}.save-summary dd{font-size:16px}
}
@media(max-height:540px) and (min-width:761px){
 .settings-modal{height:calc(100svh - 20px);max-height:calc(100svh - 20px)}.settings-header{padding:13px 74px 11px 24px}.settings-header h2{font-size:25px}.settings-header p{margin:0}
 .settings-modal>.modal-close{top:12px;right:16px}.settings-layout{grid-template-columns:155px minmax(0,1fr)}.settings-nav{padding:9px}.settings-section{padding:16px 20px}.settings-footer{padding:8px 16px;gap:10px}.settings-footer .btn{padding:8px 12px}
}
/* A portrait device pauses at this native rotation gate. It has no bypass. */
.landscape-gate{position:fixed;inset:0;z-index:200;background:#f7f3e9;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}
.landscape-gate[hidden]{display:none}.landscape-content{max-width:480px;text-align:center;padding:32px 20px;border-top:1px solid #c5ad76;border-bottom:1px solid #c5ad76}
body[data-orientation-blocked=true]{overflow:hidden}
.rotate-device{width:84px;height:126px;border:3px solid #254c70;border-radius:13px;margin:0 auto 30px;position:relative;transform:rotate(90deg);background:#eee5d2}
.rotate-device:before{content:'';position:absolute;inset:12px 8px;border:1px solid #b39459;border-radius:3px}.rotate-device:after{content:'';position:absolute;width:14px;height:3px;border-radius:3px;left:calc(50% - 7px);top:5px;background:#254c70}
.landscape-content h2{font:600 30px/1.5 var(--serif);color:#254c70;margin:0 0 14px}
.landscape-content>p{font:16px/1.85 var(--sans);color:#4d5f70;max-width:32ch;margin:0 auto 24px}
.landscape-content .btn{min-height:48px;font-size:16px;padding:12px 30px}
.landscape-content .landscape-feedback{font:14px/1.8 var(--sans);color:#735632;margin:18px auto 0}.landscape-content .landscape-feedback:empty{display:none}
@media(pointer:coarse) and (orientation:landscape) and (max-height:540px){
 body[data-screen=battle] .topbar{padding:4px 12px;min-height:48px;font-size:12px;gap:10px}
 body[data-screen=battle] .topbar .chapter-chip,body[data-screen=battle] .brand>span,body[data-screen=battle] .player-summary>strong{display:none}
 body[data-screen=battle] .relic-strip{min-height:26px;padding:2px 12px;font-size:10px}.relic-strip .relic img,.relic-strip .relic .artwork{width:22px;height:22px}
 .battle-screen{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,1fr);grid-template-rows:auto minmax(190px,1fr) auto;gap:0 8px;padding:0 8px 8px;--stage-height:190px}
 .battle-meta{grid-column:1/-1;min-height:38px;margin-bottom:6px}.action-queue li{padding:2px 5px;font-size:11px}.queue-avatar{width:22px;height:22px}
 .battle-stage{grid-column:1;grid-row:2;min-height:190px;padding:0 2% 6px}.combatant.player{width:35%}.player-actor{height:135px;width:120px}
 .enemy-party{width:60%;gap:5px}.enemy-party .combatant{width:48%;padding-top:5px}.enemy-actor,.enemy-actor.sprite{height:80px;width:80px}
 .enemy-party.many{width:64%;gap:3px}.enemy-party.many .actor,.enemy-party.many .enemy-actor.sprite{height:64px;width:64px}
 .enemy .enemy-figure .intent{margin-bottom:5px}.intent>span{font-size:12px;padding:1px 5px}.intent small{font-size:9px}.intent em{font-size:9px;padding:0 2px}
 .enemy h3{font-size:11px;padding:0 3px;margin:0}.player-name{bottom:42px}.player-name h2{font-size:16px;padding:0 5px}.combatant-health{gap:2px}.battle-stage .health{width:90px;height:17px}.block-stat{font-size:10px}.block-stat .icon{width:13px;height:13px}
 .statuses{gap:2px}.status{font-size:9px;padding:0 3px}.status .icon{width:12px;height:12px}.combatant.player:before,.enemy-party:before{bottom:30px;height:25px}
 .battle-controls{grid-column:1;grid-row:3;display:grid;grid-template-columns:65px 50px minmax(0,1fr);padding:5px 8px;min-height:106px;gap:4px}
 .energy-orb{width:65px;min-width:65px;grid-template-columns:26px auto}.energy-crystal{width:26px;height:40px}.energy-orb strong{font-size:23px}.momentum-meter{padding:0}.momentum-meter b{font-size:9px}
 .pile-buttons{justify-content:flex-end;gap:4px}.pile-button{padding:2px;font-size:9px;min-height:44px}.pile-button .icon{width:15px}.pile-button span{font-size:9px}
 .turn-indicator{grid-column:1/3;padding:0;border:0;min-height:44px;min-width:0}.turn-indicator strong{font-size:15px}.turn-indicator>span{font-size:9px}.end-control{grid-column:3;grid-row:2}.end-control .btn{min-width:98px;min-height:44px;padding:7px 10px;font-size:12px}
 .hand-region{grid-column:2;grid-row:2/4;border-top:1px solid #c6b17d;border-radius:9px;min-width:0}.hand-caption{padding:7px;font-size:10px}.hand-caption>span:last-child{display:none}
 .hand-scroll{min-height:270px;justify-content:flex-start;gap:10px;padding:13px 7px 18px}.hand-scroll .card{width:144px;min-height:245px;transform:none}.hand-scroll .card-art{height:90px}.hand-scroll .card-name{font-size:16px;height:31px;line-height:28px}.hand-scroll .card-cost{width:26px;height:29px;font-size:21px}.hand-scroll .card-text{font-size:12px;min-height:80px;padding:8px 5px 3px}.hand-scroll .card-footer{min-height:20px}
 .game-footer{padding:5px 12px;min-height:24px;font-size:9px}
}
