@charset "UTF-8";
:root{--cream:#fff7e7;--paper:#f7ecd4;--ink:#42372d;--muted:#8a7762;--coral:#db705a;--coral-dark:#b94e40;--teal:#3e8178;--teal-dark:#265e58;--brass:#b18b48;--line:#d9c6a2;--shadow:0 5px 0 #c8af8433,0 12px 25px #71552c0b;--game-scale:1;--game-left:0px;--game-top:0px;font-family:Arial,"Helvetica Neue",sans-serif;color:var(--ink);font-synthesis:none;font-kerning:normal;font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility}
*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:#302c27 radial-gradient(ellipse at center,#766449,#302c27 75%);font-size:15px;line-height:1.4}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid var(--teal);outline-offset:3px}button:not(:disabled){transition:background .15s,border-color .15s,box-shadow .15s}button:active:not(:disabled){filter:brightness(.96)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:600;line-height:1.14}h1{font-size:35px;letter-spacing:-.035em}h2{font-size:25px;letter-spacing:-.025em}h3{font-size:20px}img{display:block;max-width:100%}small{font-size:11px}b,strong{font-weight:700}button,input{touch-action:manipulation}.game-shell{width:1280px;height:720px;position:absolute;left:var(--game-left);top:var(--game-top);transform:scale(var(--game-scale));transform-origin:top left;display:grid;grid-template-rows:77px 1fr 31px;background:var(--cream);overflow:hidden;box-shadow:0 0 0 1px #ac8e54,0 30px 100px #0005}.game-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:none;z-index:10}.topbar{display:flex;align-items:center;padding:0 31px;gap:32px;border-bottom:1px solid var(--line);z-index:5;background:#fff9edee}.brand{display:flex;align-items:center;gap:12px;padding:0;text-align:left;font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:bold;letter-spacing:-.035em;white-space:nowrap}.brand-seal{display:grid;place-items:center;width:40px;height:43px;border-radius:18px 18px 8px 8px;border:1px solid var(--brass);background:var(--teal);color:var(--cream);box-shadow:inset 0 0 0 4px var(--teal),inset 0 0 0 5px #fff5bd75;font-size:25px}.brand small{display:block;font:8px Arial,"Helvetica Neue",sans-serif;letter-spacing:.13em;margin-top:2px;color:var(--muted)}.location{border-left:1px solid var(--line);padding-left:25px;font-size:12px;color:var(--muted)}.top-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.quiet{background:#eee2c7;padding:9px 15px;border-radius:7px;font-size:12px;border:1px solid #e0cdab}.quiet:hover{background:#e9d8b8}.icon-button{width:35px;height:35px;border:1px solid var(--line);border-radius:8px;font-size:21px;display:grid;place-items:center;padding:0}.icon-button:hover{background:#ede0c5}#screen{min-height:0;position:relative;overflow:hidden}.footer{display:flex;justify-content:space-between;align-items:center;padding:0 31px;border-top:1px solid var(--line);font-size:8px;letter-spacing:.075em;color:var(--muted);z-index:4;background:#fcf3e0}.footer i{font-style:normal;color:var(--coral);padding:0 7px}.footer>span:last-child{letter-spacing:0;font-size:10px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--muted);line-height:1.35}.section-title{display:flex;justify-content:space-between;gap:8px;align-items:center}.text-button{font-size:11px;color:var(--teal-dark);padding:0;white-space:nowrap}.text-button:hover{color:var(--coral-dark)}.primary{background:var(--coral);border:1px solid var(--coral-dark);color:white;border-radius:8px;padding:12px 18px;box-shadow:0 3px 0 var(--coral-dark);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:45px}.primary:hover{background:#e27b65}.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--coral-dark)}.panel{border:1px solid var(--line);border-radius:13px;background:#fff9ec;box-shadow:var(--shadow)}.tavern{height:100%;padding:22px 31px 19px;background:linear-gradient(#fff7e7df,#fff7e7f8),url('../assets/tavern.webp') center 45%/cover}.tavern-heading{height:91px;display:flex;justify-content:space-between;gap:20px}.tavern-heading h1{margin:4px 0 6px}.tavern-heading p{font-size:12px;color:var(--muted)}.profile-badge{height:65px;min-width:162px;text-align:right;border-right:3px solid var(--coral);padding-right:15px;display:grid;grid-template-columns:1fr auto;align-content:center;column-gap:7px}.profile-badge strong{font-family:Georgia,serif;font-size:29px;line-height:1.1;color:var(--teal-dark);font-variant-numeric:tabular-nums}.profile-badge span{font-size:10px;align-self:end;line-height:1.8}.profile-badge small{grid-column:1/-1;color:var(--muted);font-size:10px}.tavern-layout{height:479px;display:grid;grid-template-columns:286px 355px 1fr;gap:18px}.partner-card{position:relative;overflow:hidden;padding:15px 16px 0;display:grid;grid-template-rows:17px 37px 1fr 108px}.partner-card .section-title .text-button{font-size:9px}.partner-card .eyebrow{font-size:9px}.partner-tabs{display:flex;gap:5px;margin-top:10px}.partner-tabs button{flex:1;border:1px solid var(--line);border-radius:5px;font-size:11px;padding:4px;background:#f2e7d0}.partner-tabs button[aria-pressed=true]{background:var(--teal);border-color:var(--teal-dark);color:white}.partner-illustration{position:relative;min-height:0;display:flex;justify-content:center;isolation:isolate;margin:0 -15px;overflow:hidden}.partner-illustration:before{content:"✦";position:absolute;top:26px;right:20px;font-size:30px;color:#d2a857}.portrait-orbit{position:absolute;inset:38px 26px 8px;border:1px solid #c5b580aa;border-radius:130px 130px 0 0;background:radial-gradient(ellipse at 50% 70%,#e8d0a2,#f1e1bf88 68%)}.portrait-orbit:after{content:"";position:absolute;inset:7px;border:1px solid #fff9ed;border-radius:inherit}.partner-illustration>img{height:340px;width:244px;max-width:none;object-fit:contain;object-position:center top;position:relative;z-index:1;align-self:flex-start;margin-top:2px;filter:drop-shadow(3px 7px 0 #745b3a18)}.portrait-caption{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px;letter-spacing:.02em;color:var(--teal-dark);border:1px solid #b1b394;background:#fff6dddf;border-radius:12px;padding:3px 10px;z-index:2}.partner-about{z-index:2;position:relative;background:#fff9ec;padding-top:10px;border-top:1px solid var(--line)}.partner-about h2{font-size:23px}.partner-about h2 small{font:10px Arial,"Helvetica Neue",sans-serif;color:var(--muted);letter-spacing:0;margin-left:6px}.partner-about p{font-size:10px;line-height:1.45;color:var(--muted);height:30px;overflow:hidden;margin-top:5px}.bond-mini{display:flex;justify-content:space-between;font-size:10px;margin-top:6px;color:#996c59}.bond-mini b{color:var(--coral-dark)}.gear-card{padding:15px 17px;display:flex;flex-direction:column;overflow:hidden}.tiny-tag{font-size:9px;background:#efe5cd;border:1px solid #ded1b5;border-radius:10px;padding:2px 7px;color:var(--muted)}.gear-card h2{font-size:23px;margin:14px 0 13px}.weapon-list{display:flex;flex-direction:column;gap:7px}.weapon-option{display:flex;align-items:center;gap:11px;text-align:left;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#f9f0de;min-height:58px}.weapon-option.selected{border-color:var(--teal);background:#e8eee0;box-shadow:inset 3px 0 var(--teal)}.weapon-mark{display:grid;place-items:center;width:33px;height:33px;background:#e7d6b6;border:1px solid #cdb994;border-radius:8px;font-size:24px;color:#7a5840;flex-shrink:0}.weapon-option.selected .weapon-mark{background:#c6dbcc;border-color:#9cbaaa;color:var(--teal-dark)}.weapon-option strong{font-size:12px;display:block}.weapon-option small{font-size:10px;color:var(--muted);display:block;line-height:1.4;margin-top:3px}.radio-dot{margin-left:auto;flex:0 0 13px;height:13px;border:1px solid var(--line);border-radius:50%;background:#fff7e7}.selected .radio-dot{border:4px solid var(--teal);background:#fff9ed}.gear-rule{border-top:1px solid var(--line);margin:13px 0 9px}.gear-row{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-bottom:7px}.gear-row>span{font-size:10px;color:var(--muted);white-space:nowrap}.gear-row>div{display:flex;gap:4px}.small-option{padding:5px 7px;border:1px solid var(--line);border-radius:5px;font-size:10px;background:#f4ead4;max-width:135px}.small-option.selected{color:var(--teal-dark);border-color:var(--teal);background:#e5ecdd}.gear-note{font-size:10px;color:var(--muted);line-height:1.5;margin-top:5px;min-height:30px}.compare-button{align-self:flex-start;margin-top:7px}.unlock-note{font-size:9px;color:var(--muted);margin-top:auto;padding-top:7px}.mission-column{display:flex;flex-direction:column;min-width:0;gap:11px;padding-top:2px}.mission-column>.section-title{height:17px}.mission-card{position:relative;display:flex;align-items:center;gap:12px;min-height:123px;padding:15px 15px 15px 105px;border:1px solid var(--line);border-radius:11px;text-align:left;overflow:hidden;background:#f5e6ca;box-shadow:var(--shadow)}.mission-card:nth-of-type(2){background:#e9e9d7}.mission-card.selected{border-color:var(--coral);box-shadow:inset 0 0 0 1px var(--coral),var(--shadow)}.mission-card>img{position:absolute;left:-16px;bottom:1px;width:137px;height:117px;object-fit:contain;filter:drop-shadow(0 7px 4px #73593422)}.mission-number{position:absolute;left:13px;top:8px;font-size:9px;letter-spacing:.1em;color:#96784d}.mission-copy{display:flex;flex-direction:column;position:relative;min-width:0;padding-right:17px}.mission-copy>small{font-size:8px;letter-spacing:.1em;color:var(--muted);margin-bottom:5px}.mission-copy>strong{font-family:Georgia,serif;font-size:20px;line-height:1.12;letter-spacing:-.02em}.mission-copy>span{font-size:10px;line-height:1.45;color:#867057;margin-top:5px}.mission-copy>em{font-style:normal;font-size:9px;color:var(--teal-dark);margin-top:7px;line-height:1.3}.mission-check{position:absolute;right:13px;top:14px;font-size:14px;color:var(--coral-dark)}.departure{margin-top:auto}.departure>p{font-family:Georgia,serif;color:#947155;font-size:15px;line-height:1.5;margin:0 9px 12px;min-height:42px}.embark{width:100%;min-height:49px;font-size:15px}.sandbox-link{display:block;margin:13px auto 0;font-size:11px}.sandbox-link>span{font-size:9px;display:block;color:var(--muted);margin-top:2px}
/* The combat cabinet never changes its geometry between reel travel, payouts and totals. */
.combat{display:grid;grid-template-columns:212px minmax(0,1fr) 276px;gap:18px;height:100%;padding:18px 28px 15px;background:radial-gradient(ellipse at 25% 30%,#f5dfb5aa,transparent 60%),linear-gradient(120deg,#f8edda,#fcf3e2 65%,#f1e5cd)}.enemy-panel{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:71px 9px 1fr 114px 60px 19px;gap:10px}.encounter-title .eyebrow{font-size:8px}.encounter-title h1{font-size:27px;line-height:1.13;margin:6px 0 4px;max-height:60px;overflow:hidden}.enemy-hp{font-size:10px;color:var(--muted);display:block}.health-track{height:7px;background:#dbceb7;border:1px solid #c4b18a;overflow:hidden}.health-track>i{display:block;height:100%;background:var(--teal);transition:width .5s}.health-track.boss>i{background:var(--coral)}.health-track.partner>i{background:#93a766}.enemy-art{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;isolation:isolate}.enemy-aura{position:absolute;inset:15px 0 4px;background:radial-gradient(ellipse at center,#e4cd9caa,#fff5dd00 70%);border-bottom:1px solid #cbb992}.enemy-art>img{width:240px;max-width:none;max-height:100%;object-fit:contain;filter:drop-shadow(0 10px 4px #7a543028)}.intent-card{padding:12px;border:1px solid #cab698;border-left:3px solid var(--coral);border-radius:0 9px 9px 0;background:#fff8e9;overflow:hidden}.intent-card>small{font-size:8px;letter-spacing:.075em;color:var(--muted)}.intent-card>strong{font-size:14px;display:block;margin:4px 0}.intent-card>p{font-size:10px;line-height:1.4;color:var(--muted);height:28px;overflow:hidden}.intent-card>div{display:flex;justify-content:space-between;gap:5px;font-size:10px;margin-top:7px;align-items:center}.intent-card>div>span{background:#e7ebda;color:var(--teal-dark);padding:3px 5px;border-radius:4px;font-size:9px;white-space:nowrap}.intent-card>div>span.danger{background:#f5d8c8;color:#ae503f}.intent-card>div>b{font-size:10px;white-space:nowrap}.hero-card{background:#ede5d2;padding:10px 11px;border:1px solid var(--line);border-radius:8px}.hero-card>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;gap:10px}.hero-card strong{font-size:11px}.hero-card strong small{display:block;font-size:8px;font-weight:400;color:var(--muted)}.hero-card b{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.enemy-panel>.text-button{font-size:10px;align-self:center;text-align:left}.cabinet{display:grid;grid-template-rows:57px 345px 100px 50px;gap:9px;min-width:0}.cabinet-head{display:flex;align-items:center;gap:10px;padding:0 17px;background:var(--teal-dark);border:1px solid #254c43;border-radius:12px 12px 5px 5px;color:#fff2d4;box-shadow:inset 0 0 0 3px #559187,inset 0 0 0 4px #a9bc9475}.cabinet-badge{font-family:Georgia,serif;font-size:28px;border-right:1px solid #a5b79a6e;padding:0 13px 0 0;color:#e8d09a}.cabinet-head>span:nth-child(2){font-family:Georgia,serif;font-size:21px;letter-spacing:-.02em}.cabinet-head small{font:8px Arial,"Helvetica Neue",sans-serif;letter-spacing:.13em;display:block;color:#c5d3bc;margin-top:2px}.turn-count{font-size:9px;letter-spacing:.1em;margin-left:auto;color:#c5d3bc;text-align:center}.turn-count>b{font-family:Georgia,serif;font-size:24px;letter-spacing:0;display:block;line-height:1.15;color:#ffebc1}.board-frame{border:1px solid #ac8748;border-radius:8px;padding:0 10px;background:#b3955b;box-shadow:inset 0 0 0 3px #e0c58a,inset 0 0 0 5px #b9985c,0 4px 0 #8e713e;display:grid;grid-template-rows:22px 1fr 23px;position:relative;overflow:hidden}.reel-labels{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:0 3px;align-items:center}.reel-labels>span{text-align:center;font-size:8px;color:#fff1d0;position:relative;letter-spacing:.12em}.reel-labels>span>b{display:none;position:absolute;right:20px;top:0;color:#fff2c8;font-size:8px}.reel-labels>span.held>b{display:block}.board{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;background:#9d7c45;border:2px solid #8f713e;border-radius:4px;overflow:hidden;isolation:isolate}.board-column{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));min-height:0;gap:2px;background:#dcc99e}.symbol-cell{position:relative;display:flex;align-items:center;justify-content:center;padding:8px;background:#fff7e7;background:radial-gradient(ellipse at 50% 42%,#fffdf4,#f8ebd1);box-shadow:inset 0 1px 0 #fff;border:2px solid transparent;transition:opacity .18s,border-color .18s,background .18s!important;min-height:0;width:100%;overflow:hidden}.symbol-cell>img{width:73px;height:79px;max-width:95%;max-height:95%;object-fit:contain;filter:drop-shadow(0 4px 2px #7a523720);pointer-events:none;transition:filter .2s}.symbol-cell.winning{border-color:var(--coral);background:#ffdfaa;box-shadow:inset 0 0 0 1px #fff2ca,inset 0 0 22px #edb86a88;z-index:2}.symbol-cell.winning>img{filter:drop-shadow(0 0 6px #f0ae4a)}.symbol-cell.dimmed{opacity:.43}.symbol-cell:focus-visible{outline:3px solid var(--teal);outline-offset:-5px;z-index:2}.board[data-tool=swap] .symbol-cell{cursor:crosshair;border-color:#e4ac57}.board[data-tool=swap] .symbol-cell:hover{background:#ffddac;border-color:#bb792b}.board[data-tool=reroll] .board-column:hover .symbol-cell,.board[data-tool=hold] .board-column:hover .symbol-cell{background:#d3eadc;border-color:var(--teal)}.board-bottom{display:flex;justify-content:space-between;align-items:center;padding:0 5px;font-size:8px;color:#fff6dd;letter-spacing:.03em}.board-bottom>span:last-child{letter-spacing:0;font-size:9px;max-width:280px;overflow:hidden;white-space:nowrap}.feature-panel{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff7e5;overflow:hidden}.feature-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.feature-heading strong{font-size:11px}.feature-heading>span{font-size:9px;color:var(--muted)}.feature-buttons{display:flex;gap:7px;height:36px}.feature-buttons>button{display:flex;align-items:center;gap:7px;border:1px solid #c8b58e;border-radius:6px;background:#f3e7cc;padding:3px 10px;flex:1;min-width:0}.feature-buttons>button.selected{background:#d9e8da;border-color:var(--teal)}.feature-buttons>button>.glyph{width:24px;height:27px}.feature-buttons>button>span{font-size:10px;white-space:nowrap}.feature-buttons small{display:block;font-size:8px;color:var(--muted);text-align:left}.feature-buttons>button.cancel-tool{flex:0 0 45px;font-size:10px;justify-content:center;padding:3px}.feature-buttons>button[hidden]{display:none}.tool-message{font-size:9px;color:var(--muted);margin-top:5px;min-height:20px;display:flex;align-items:center;gap:5px;white-space:nowrap}.swap-choices{display:flex;gap:4px;align-items:center}.swap-choices button{border:1px solid var(--line);background:#fff8e8;border-radius:4px;padding:1px}.swap-choices button.selected{border-color:var(--teal);background:#dce9d7}.swap-choices img{width:18px;height:18px}.tactics{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;padding:0 3px}.tactics>label{display:flex;align-items:center;gap:5px;font-weight:700}.tactics input{accent-color:var(--teal);width:16px;height:16px;margin:0}.tactics>div{display:flex;align-items:center;gap:4px}.tactics>div>span{font-size:9px;color:var(--muted);margin-right:3px}.tactics button{border:1px solid var(--line);border-radius:5px;padding:4px 8px;font-size:9px}.tactics button[aria-pressed=true]{background:var(--teal);border-color:var(--teal-dark);color:#fff8e8}.right-rail{display:grid;grid-template-rows:117px 52px 68px 1fr 101px;gap:10px;min-width:0;min-height:0}.partner-battle{display:flex;align-items:center;position:relative;overflow:hidden;border:1px solid #cbb795;border-radius:11px;background:#eee6d0;gap:0}.partner-battle-image{align-self:stretch;width:111px;flex-shrink:0;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#b7cba8,transparent 75%)}.partner-battle-image>img{height:177px;width:122px;max-width:none;object-fit:contain;object-position:top center;margin-left:-7px;margin-top:3px}.partner-battle-info{flex:1;min-width:0;padding:10px 10px 10px 0}.partner-battle-info>small{font-size:7px;letter-spacing:.1em;color:var(--muted)}.partner-battle-info h2{font-size:24px;margin:2px 0 5px}.partner-battle-info>span{font-size:9px;color:var(--muted);display:block;margin-bottom:5px}.charge{display:flex;align-items:center;gap:3px;margin-top:6px;flex-wrap:wrap}.charge>i{width:8px;height:8px;border:1px solid #a9a581;border-radius:50%;background:#e4dcc2}.charge>i.charged{background:var(--teal);border-color:var(--teal-dark)}.charge>span{font-size:7px;color:var(--muted);line-height:1.2;white-space:nowrap}.partner-quote{font-family:Georgia,serif;font-size:14px;line-height:1.4;color:#8e6955;padding:0 6px;overflow:hidden;display:flex;align-items:center}.wallets{display:grid;grid-template-columns:1.35fr 1fr 1fr;border-block:1px solid var(--line);padding:9px 0;gap:0}.wallets>div{display:grid;grid-template-columns:auto 1fr;column-gap:5px;align-items:center;padding:0 11px;border-right:1px solid var(--line)}.wallets>div:first-child{padding-left:4px;grid-template-columns:1fr}.wallets>div:last-child{border:0;padding-right:0}.wallets strong{font-size:23px;line-height:1.1;font-variant-numeric:tabular-nums}.wallets>div:first-child>strong{font-size:21px}.wallets>div:first-child>span{font-size:8px;color:var(--muted)}.wallets>div>small{grid-column:1/-1;font-size:7px;color:var(--muted);margin-top:2px}.wallets .glyph{width:23px;height:26px}.result-panel{border:1px solid var(--line);background:#fff9ec;border-radius:9px;padding:12px 13px;display:grid;grid-template-rows:17px 1fr 30px 38px;min-height:0;overflow:hidden;box-shadow:var(--shadow)}.result-panel .eyebrow{font-size:8px}.result-panel .text-button{font-size:9px}.result-focus{display:flex;align-items:center;justify-content:center;align-content:center;flex-wrap:wrap;gap:0 7px;min-height:0}.result-focus>strong{font-family:Georgia,serif;font-size:49px;letter-spacing:-.05em;line-height:1;color:var(--coral-dark);font-variant-numeric:tabular-nums}.result-focus>span{width:100%;text-align:center;font-size:10px;color:var(--muted);margin-top:2px}.result-focus>.result-glyph{width:37px;height:40px}.result-focus>strong.ready-star{color:#c7a666;font-size:43px}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;align-items:center}.result-stats>span{display:flex;align-items:center;justify-content:center;gap:3px;font-size:12px;font-variant-numeric:tabular-nums}.result-stats .glyph{width:19px;height:21px}.result-panel>p{font-size:9px;line-height:1.45;color:var(--muted);overflow:auto;padding-top:5px;border-top:1px solid #e9dcc2;scrollbar-width:thin}.battle-actions{display:grid;grid-template-rows:49px 21px 14px;gap:6px}.spin-button{font-size:14px;min-width:0;white-space:nowrap;width:100%}.spin-button>span{font-size:12px;font-weight:500}.gear-battle{font-size:10px;min-height:0;padding:2px 8px;background:transparent;border:0}.shortcut-hint{font-size:7px;text-align:center;letter-spacing:.08em;color:var(--muted)}.glyph{object-fit:contain}.reel-overlay{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;z-index:5;pointer-events:none}.reel-lane{overflow:hidden;background:#fff7e7}.reel-track{will-change:transform}.travel-symbol{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 42%,#fffdf4,#f8ebd1);border-bottom:2px solid #dcc99e}.travel-symbol img{width:73px;height:79px;object-fit:contain;filter:drop-shadow(0 4px 2px #7a523720)}
/* Native dialogs own focus and block every gameplay shortcut beneath them. */
.game-dialog{position:fixed;inset:0;margin:auto;width:min(590px,94vw);max-height:88dvh;border:1px solid #b89658;border-radius:16px;padding:0;color:var(--ink);background:var(--cream);box-shadow:0 20px 100px #261e1977;overflow:auto}.game-dialog::backdrop{background:#302921bb;backdrop-filter:blur(4px)}.dialog-body{padding:34px;position:relative}.dialog-close{position:absolute;right:15px;top:14px;width:29px;height:29px;font-size:23px;z-index:2}.game-dialog h2{font-size:31px;max-width:90%;margin:8px 0 18px}.game-dialog p{font-size:14px;line-height:1.55;color:#85705a;margin:13px 0 18px;max-width:65ch}.game-dialog .primary{width:100%;justify-content:center;margin-top:22px}.game-dialog .eyebrow{display:block;padding-right:30px;font-size:9px}.dialog-actions{display:flex;align-items:center;gap:12px;margin-top:20px}.dialog-actions>.primary{margin:0;flex:1}.dialog-actions>.quiet{min-height:45px}.game-dialog .fine-print{font-size:11px;line-height:1.55;padding-top:17px;border-top:1px solid var(--line);margin-bottom:0}.wide-dialog{width:min(850px,94vw)}.gear-comparison{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px}.gear-comparison>section{display:flex;flex-direction:column;gap:9px}.gear-comparison article{padding:13px 12px;border:1px solid var(--line);background:#f6ecd5}.gear-comparison article.equipped{border-color:var(--teal);background:#e7eddd}.gear-comparison h3{font-size:18px;margin-bottom:7px}.gear-comparison h3>small{font-family:Arial,"Helvetica Neue",sans-serif;color:var(--teal);font-size:8px;display:block;font-weight:400;margin-top:4px}.gear-comparison article>strong{font-size:11px;display:block}.gear-comparison article>p{font-size:11px;margin:7px 0 0;line-height:1.5}.gear-comparison article>small{font-size:9px;color:var(--coral-dark);display:block;margin-top:7px}.help-list{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}.help-list article{display:flex;gap:12px}.help-list article>b{font-family:Georgia,serif;font-size:28px;color:#c8aa70}.help-list h3{font-size:21px;margin:2px 0 8px}.help-list p{font-size:12px;margin:0;line-height:1.6}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--line);font-size:15px}.setting-row small{font-size:11px;display:block;color:var(--muted);margin-top:5px}.setting-row input{width:20px;height:20px;accent-color:var(--teal);flex-shrink:0}.bond-dialog{width:min(790px,94vw);overflow:hidden}.bond-dialog .dialog-body{display:grid;grid-template-columns:240px 1fr;gap:25px;min-height:400px;padding:30px}.bond-scene-art{position:relative;margin:-30px 0 -30px -30px;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#c6d6b7,#eee1bc);border-radius:15px 0 0 15px}.bond-scene-art>img{position:absolute;bottom:-35px;left:0;width:285px;max-width:none;height:415px;object-fit:contain}.bond-scene-copy{align-self:center}.bond-scene-copy h2{font-size:30px}.bond-scene-copy .scene-prompt{font-family:Georgia,serif;font-size:17px;line-height:1.6;margin-bottom:20px}.scene-choices{display:flex;flex-direction:column;gap:9px}.scene-choices>button{display:flex;gap:12px;justify-content:space-between;align-items:center;text-align:left;font-size:12px;border:1px solid var(--teal);background:#e8eddb;padding:12px 14px;border-radius:8px;line-height:1.5}.scene-choices>button:hover{background:#d7e4ce}.scene-choices>button>span:first-child{min-width:0;color:inherit;font-size:12px}.scene-choices>button>span:first-child>small{display:block;margin-top:2px;color:#6f735f;font-size:9px;line-height:1.35}.scene-choices>button>span[aria-hidden]{flex-shrink:0;color:var(--teal);font-size:17px}.bond-scene-copy>small{display:block;font-size:10px;color:var(--muted);margin-top:16px}.scene-reply{font-family:Georgia,serif;font-size:21px!important}.bond-records{display:grid;grid-template-columns:1fr 1fr;gap:15px}.bond-records>article{border:1px solid var(--line);background:#efe6cf;border-radius:10px;overflow:hidden;display:flex;align-items:center;padding:13px 9px 13px 0;gap:8px}.bond-records>article>img{width:85px;height:130px;object-fit:cover;object-position:top}.bond-records h3{font-size:22px}.bond-records p{font-size:10px;margin:5px 0 10px}.bond-records strong{display:block;font-size:11px;color:var(--teal-dark);margin:5px 0}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,15px);background:var(--teal-dark);color:var(--cream);border:1px solid #d6bb7d;padding:11px 20px;border-radius:9px;box-shadow:0 8px 30px #0003;font-size:12px;line-height:1.5;max-width:90vw;text-align:center;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.safe-probe{position:fixed;visibility:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
@media(max-height:520px) and (orientation:landscape){.game-dialog{max-height:94dvh}.dialog-body{padding:23px}.game-dialog h2{font-size:25px;margin:5px 0 14px}.game-dialog p{font-size:12px;margin-bottom:10px}.help-list{gap:15px}.help-list h3{font-size:18px}.help-list p{font-size:10px}.game-dialog .fine-print{font-size:10px;padding-top:10px}.gear-comparison article{padding:9px}.gear-comparison h3{font-size:16px}.gear-comparison article>p{font-size:10px}.bond-dialog .dialog-body{min-height:300px;padding:20px;grid-template-columns:180px 1fr}.bond-scene-art{margin:-20px 0 -20px -20px}.bond-scene-art>img{width:230px;height:330px;left:-15px}.bond-scene-copy .scene-prompt{font-size:14px;line-height:1.5;margin:8px 0 13px}.scene-choices>button{padding:9px 12px;font-size:11px}.toast{bottom:10px;font-size:11px;padding:8px 14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Anticipation follows four already-connected reels, never the hidden fifth result. */
.reel-lane.anticipating { box-shadow: inset 0 0 0 4px #dcab4b; background: #fff4c8; }
.symbol-cell.anticipation-ready { box-shadow: inset 0 0 0 3px #d6ad58; filter: brightness(1.06); }

/* Phone combat uses the physical viewport instead of shrinking desktop text. */
@media (max-height:500px) and (min-width:560px) and (orientation:landscape) {
  .game-shell:has(.combat) {
    width:100vw; height:100dvh; left:0; top:0; transform:none;
    grid-template-rows:40px minmax(0,1fr) 16px;
  }
  .game-shell:has(.combat) .topbar {padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));gap:14px;}
  .game-shell:has(.combat) .brand {font-size:20px;gap:7px;}
  .game-shell:has(.combat) .brand-seal {width:27px;height:30px;font-size:20px;border-radius:12px 12px 5px 5px;}
  .game-shell:has(.combat) .brand small {display:none;}
  .game-shell:has(.combat) .location {font-size:11px;padding-left:12px;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .game-shell:has(.combat) .top-actions {gap:6px;}
  .game-shell:has(.combat) .top-actions .quiet {font-size:11px;padding:5px 9px;min-height:var(--top-control-height,30px);}
  .game-shell:has(.combat) .icon-button {width:30px;height:30px;font-size:20px;}
  .game-shell:has(.combat) .footer {padding:0 10px;font-size:7px;}
  .game-shell:has(.combat) .footer>span:first-child {font-size:6px;}
  .game-shell:has(.combat) .footer>span:last-child {font-size:8px;}
  .combat {
    grid-template-columns:clamp(120px,17vw,145px) minmax(0,1fr) 174px;
    grid-template-rows:minmax(0,1fr); min-height:0; overflow:hidden;
    gap:8px;padding:7px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left));
  }
  .combat>.enemy-panel,.combat>.cabinet,.combat>.right-rail {min-height:0;max-height:100%;}
  .enemy-panel {grid-template-rows:52px 6px minmax(0,1fr) 80px 43px 20px;gap:5px;}
  .encounter-title .eyebrow {display:none;}
  .encounter-title h1 {font-size:19px;margin:0 0 3px;max-height:39px;}
  .enemy-hp {font-size:10px;line-height:1.1;}
  .enemy-art>img {width:165px;max-height:100%;}
  .enemy-aura {inset:0;}
  .intent-card {padding:6px 7px;border-left-width:2px;border-radius:0 6px 6px 0;}
  .intent-card>small {font-size:7px;}
  .intent-card>strong {font-size:11px;margin:3px 0;line-height:1.2;}
  .intent-card>p {display:none;}
  .intent-card>div {flex-direction:column;align-items:flex-start;gap:3px;margin-top:4px;}
  .intent-card>div>span {font-size:8px;padding:2px 4px;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
  .intent-card>div>b {font-size:10px;}
  .hero-card {padding:5px 7px;border-radius:6px;}
  .hero-card>div:first-child {margin-bottom:5px;gap:5px;}
  .hero-card strong {font-size:11px;}
  .hero-card strong small {display:none;}
  .hero-card b {font-size:11px;}
  .hero-card .health-track {height:6px;}
  .enemy-panel>.text-button {font-size:10px;min-height:20px;white-space:normal;line-height:1.15;}
  .cabinet {grid-template-rows:30px minmax(125px,1fr) 72px 32px;gap:5px;min-height:0;}
  .cabinet-head {padding:0 9px;gap:7px;border-radius:7px 7px 4px 4px;box-shadow:inset 0 0 0 2px #559187;}
  .cabinet-badge {font-size:20px;padding-right:8px;}
  .cabinet-head>span:nth-child(2) {font-size:17px;}
  .cabinet-head small {display:none;}
  .turn-count {font-size:8px;display:flex;align-items:center;gap:5px;}
  .turn-count>b {font-size:19px;}
  .board-frame {grid-template-rows:14px minmax(0,1fr) 15px;padding:0 5px;border-radius:5px;box-shadow:inset 0 0 0 2px #e0c58a,0 2px 0 #8e713e;}
  .reel-labels {gap:3px;padding:0 2px;}
  .reel-labels>span {font-size:7px;}
  .reel-labels>span>b {font-size:7px;right:4px;}
  .board {gap:3px;border-width:1px;}
  .symbol-cell {padding:3px;border-width:2px;}
  .symbol-cell>img {width:55px;height:55px;max-height:96%;max-width:94%;}
  .board-column {gap:1px;}
  .board-bottom {font-size:6px;padding:0 2px;gap:5px;white-space:nowrap;}
  .board-bottom>span:last-child {font-size:8px;max-width:52%;text-overflow:ellipsis;}
  .feature-panel {padding:4px 6px;border-radius:6px;}
  .feature-heading {height:12px;margin-bottom:2px;}
  .feature-heading strong {font-size:11px;}
  .feature-heading>span {font-size:9px;}
  .feature-buttons {height:30px;gap:4px;}
  .feature-buttons>button {padding:2px 5px;gap:4px;min-height:30px;border-radius:4px;}
  .feature-buttons>button>.glyph {width:19px;height:22px;}
  .feature-buttons>button>span {font-size:11px;line-height:1.1;}
  .feature-buttons small {font-size:8px;line-height:1.2;margin-top:1px;}
  .feature-buttons>button.cancel-tool {flex-basis:32px;padding:2px;font-size:10px;}
  .tool-message {font-size:9px;line-height:1.15;height:18px;min-height:18px;margin-top:2px;gap:3px;overflow:hidden;}
  .swap-choices {gap:3px;}
  .swap-choices button {height:18px;padding:0;}
  .swap-choices img {width:16px;height:16px;}
  .tactics {font-size:11px;gap:5px;padding:0;border-top:0;}
  .tactics>label {gap:4px;line-height:1.15;}
  .tactics input {width:19px;height:19px;flex-shrink:0;}
  .tactics>div {gap:3px;}
  .tactics>div>span {font-size:9px;max-width:35px;line-height:1.15;margin-right:1px;}
  .tactics button {font-size:11px;padding:3px 6px;min-height:28px;}
  .right-rail {grid-template-rows:78px 42px minmax(0,1fr) 65px;gap:6px;}
  .partner-battle {border-radius:7px;}
  .partner-battle-image {width:62px;}
  .partner-battle-image>img {height:120px;width:84px;margin-left:-11px;margin-top:2px;}
  .partner-battle-info {padding:5px 6px 5px 0;}
  .partner-battle-info>small {display:none;}
  .partner-battle-info h2 {font-size:20px;margin:0 0 3px;}
  .partner-battle-info>span {font-size:10px;margin-bottom:4px;}
  .partner-battle-info .health-track {height:6px;}
  .charge {margin-top:4px;gap:3px;}
  .charge>i {width:7px;height:7px;}
  .charge>span {font-size:7px;white-space:normal;max-width:80px;}
  .partner-quote {display:none;}
  .wallets {padding:4px 0;}
  .wallets>div {padding:0 5px;column-gap:3px;}
  .wallets>div:first-child {padding-left:1px;}
  .wallets>div:first-child>span {font-size:7px;line-height:1.1;}
  .wallets>div:first-child>strong,.wallets strong {font-size:18px;}
  .wallets .glyph {width:18px;height:20px;}
  .wallets>div>small {font-size:6px;margin-top:0;}
  .result-panel {padding:6px 7px;grid-template-rows:12px minmax(30px,1fr) 22px 26px;border-radius:6px;}
  .result-panel .section-title {gap:3px;}
  .result-panel .eyebrow {font-size:8px;letter-spacing:.03em;white-space:nowrap;}
  .result-panel .text-button {font-size:8px;}
  .result-focus {gap:0 4px;}
  .result-focus>strong {font-size:32px;}
  .result-focus>strong.ready-star {font-size:28px;}
  .result-focus>span {font-size:10px;line-height:1.15;margin-top:0;}
  .result-focus>.result-glyph {width:24px;height:27px;}
  .result-stats {gap:2px;}
  .result-stats>span {font-size:11px;gap:1px;}
  .result-stats .glyph {width:15px;height:17px;}
  .result-panel>p {font-size:9px;line-height:1.35;padding-top:3px;}
  .battle-actions {grid-template-rows:36px 23px;gap:5px;}
  .spin-button {min-height:36px;padding:5px 10px;font-size:12px;gap:5px;border-radius:6px;box-shadow:0 2px 0 var(--coral-dark);}
  .spin-button>span {font-size:10px;}
  .gear-battle {font-size:10px;padding:1px 4px;min-height:23px;}
  .shortcut-hint {display:none;}
  .reel-overlay {gap:3px;}
  .travel-symbol {border-bottom-width:1px;}
  .travel-symbol img {width:55px;height:55px;max-height:96%;}
}

/* Guild expedition palette: dark lacquer, forged bronze and an amber action rail. */
:root {
  --cream:#12232b; --paper:#1b3038; --ink:#f0e6cc; --muted:#a7b5b8;
  --coral:#efa934; --coral-dark:#a46618; --teal:#66b9ad; --teal-dark:#a4d7c7;
  --brass:#c49a55; --line:#48565a;
  --shadow:0 4px 0 #050d123d,0 12px 25px #02070b26;
}
body {background:#070e14 radial-gradient(ellipse at center,#20333e,#070e14 78%);}
.game-shell {background:#12232b;box-shadow:0 0 0 1px #76603c,0 30px 100px #0009;}
.game-shell:before {opacity:.09;}
h1,h2,h3 {font-weight:700;}
.topbar {background:linear-gradient(#172a34,#101e27);border-color:#715937;}
.brand {color:#f3d69c;}
.brand-seal {background:#203b43;color:#eac37b;border-color:#c49a55;border-radius:5px;box-shadow:inset 0 0 0 3px #203b43,inset 0 0 0 4px #a4834b80;}
.brand small {color:#a9b7b9;}
.location {border-color:#495356;color:#b9c3c0;}
.footer {background:#0c1820;border-color:#5b523c;color:#a5b0ae;}
.footer i {color:#d1a657;}
.quiet {background:#263c47;color:#e0e9e1;border-color:#435c65;border-radius:5px;}
.quiet:hover {background:#344f59;}
.icon-button {border-color:#58635e;color:#dcc99d;border-radius:5px;}
.icon-button:hover {background:#2d444c;}
.text-button {color:#d3bb80;}
.text-button:hover {color:#ffe0a0;}
.primary {color:#211a10;background:linear-gradient(#f8bd50,#e69c25);border-color:#ba812d;box-shadow:0 3px 0 #815018,inset 0 1px 0 #ffe3a3;font-weight:800;border-radius:5px;}
.primary:hover {background:linear-gradient(#ffcc68,#f1ad35);}
.primary:active:not(:disabled) {box-shadow:0 1px 0 #815018;}
.panel {background:#172b34;border-color:#6e6245;border-radius:7px;}
.eyebrow {color:#aebcba;}
.tavern {background:#10252d url('../assets/tavern.webp') center 45%/cover;background-blend-mode:multiply;}
.tavern-heading h1 {color:#f3deaf;}
.tavern-heading p {color:#b4c1c0;}
.profile-badge {border-color:#dba342;}
.profile-badge strong {color:#f3c76b;}
.profile-badge span {color:#ccd1be;}
.profile-badge small {color:#9caaa8;}
.partner-tabs button {background:#21353e;border-color:#57605a;color:#bfc9c2;border-radius:4px;}
.partner-tabs button[aria-pressed=true] {background:#355c60;border-color:#a6b99c;color:#fff1c8;}
.partner-illustration:before {color:#c59e53;}
.portrait-orbit {border-color:#8c774e;background:radial-gradient(ellipse at 50% 70%,#495b49,#203b4244 75%);border-radius:8px;}
.portrait-orbit:after {border-color:#8ca49155;border-radius:3px;}
.portrait-caption {color:#e0d5b5;border-color:#9c8559;background:#19343ae8;border-radius:4px;}
.partner-about {background:#172b34;border-color:#6e6245;}
.partner-about h2 {color:#f0d8a6;}
.partner-about p {color:#b1c0bd;}
.bond-mini {color:#9ac2bc;}
.bond-mini b {color:#e5b96d;}
.tiny-tag {background:#2b4148;border-color:#526159;color:#ced3bb;border-radius:4px;}
.gear-card h2 {color:#ecdcba;}
.weapon-option {background:#1d323b;border-color:#4e5d5e;border-radius:5px;}
.weapon-option:hover {background:#2a4149;}
.weapon-option.selected {border-color:#cf9f50;background:#30443f;box-shadow:inset 3px 0 #d6a14b;}
.weapon-mark {background:#36423f;border-color:#75694d;color:#e9c88b;border-radius:5px;}
.weapon-option.selected .weapon-mark {background:#5c5738;border-color:#bd9956;color:#ffdc8e;}
.weapon-option strong {color:#f0e3c0;}
.weapon-option small {color:#b2c0ba;}
.radio-dot {border-color:#73827c;background:#152630;}
.selected .radio-dot {border-color:#e2b25c;background:#162b34;}
.gear-rule {border-color:#4e5c57;}
.gear-row>span {color:#b7c5bf;}
.small-option {background:#263c43;border-color:#53645f;color:#b7c6c0;border-radius:4px;}
.small-option.selected {background:#3c5046;border-color:#c8a25b;color:#f1d7a3;}
.gear-note,.unlock-note {color:#abbab5;}
.mission-card {background:linear-gradient(120deg,#3d3e2e,#2b3536);border-color:#756340;border-radius:6px;}
.mission-card:nth-of-type(2) {background:linear-gradient(120deg,#283b43,#22313b);}
.mission-card.selected {border-color:#dfa844;box-shadow:inset 0 0 0 1px #c7933d,var(--shadow);}
.mission-card:hover {background:#394a45;}
.mission-number {color:#cfaa64;}
.mission-copy>small {color:#b5b79b;}
.mission-copy>strong {color:#f0dfb6;}
.mission-copy>span {color:#c0c5b5;}
.mission-copy>em {color:#9ed3bf;}
.mission-check {color:#f0c468;}
.departure>p {color:#c9c6ae;}
.sandbox-link {color:#d9ba78;}
.sandbox-link>span {color:#aab7b2;}
.combat {background:radial-gradient(ellipse at 12% 36%,#4d4c2a33,transparent 50%),linear-gradient(110deg,#12232e,#1b3038 58%,#0e202b);}
.encounter-title h1 {color:#f1dbac;}
.enemy-hp {color:#bdc6b8;}
.health-track {background:#17282d;border-color:#607170;}
.health-track>i {background:#53a58f;}
.health-track.boss>i {background:#d46a42;}
.health-track.partner>i {background:#89ad68;}
.enemy-aura {background:radial-gradient(ellipse at center,#d0a35025,#1b344500 72%);border-color:#867047;}
.enemy-art>img {filter:drop-shadow(0 10px 7px #0006);}
.intent-card {background:#1b3039;border-color:#5f6254;border-left-color:#df9e38;border-radius:0 5px 5px 0;}
.intent-card>small {color:#c7b485;}
.intent-card>strong {color:#f2dcad;}
.intent-card>p {color:#b0c1bd;}
.intent-card>div>span {background:#284b4e;color:#c5e1cf;}
.intent-card>div>span.danger {background:#663d2b;color:#ffcf8a;}
.intent-card>div>b {color:#eedaa9;}
.hero-card {background:#213840;border-color:#52685f;border-radius:5px;}
.hero-card strong {color:#dae5d5;}
.hero-card b {color:#f3d99a;}
.hero-card strong small {color:#a3bcb3;}
.cabinet-head {background:linear-gradient(#1c414b,#142f3b);color:#f9dca2;border-color:#aa8248;border-radius:6px 6px 3px 3px;box-shadow:inset 0 0 0 3px #234650,inset 0 0 0 4px #997b4775;}
.cabinet-badge {border-color:#8b825f;color:#f2c971;}
.cabinet-head small,.turn-count {color:#b7c9bd;}
.turn-count>b {color:#ffd48a;}
.board-frame {background:#79603b;border-color:#c69c53;border-radius:5px;box-shadow:inset 0 0 0 3px #b9995d,inset 0 0 0 5px #765a31,0 4px 0 #44331d;}
.board {background:#59452b;border-color:#55452c;}
.reel-labels>span,.board-bottom {color:#f0dca9;}
.symbol-cell {color:#493a24;}
.symbol-cell.winning {border-color:#dc961f;background:#ffe1a0;box-shadow:inset 0 0 0 1px #fff2ca,inset 0 0 22px #edb86a88;}
.feature-panel {background:#182e38;border-color:#58655b;border-radius:5px;}
.feature-heading strong {color:#e5d9b7;}
.feature-heading>span {color:#b2c6ba;}
.feature-buttons>button {background:#29414b;border-color:#6c715d;color:#e1e6cf;border-radius:4px;}
.feature-buttons>button:hover:not(:disabled) {background:#38535a;}
.feature-buttons>button.selected {background:#4f5736;border-color:#e2b359;}
.feature-buttons small {color:#aac3bd;}
.tool-message {color:#b7c8ba;}
.swap-choices button {border-color:#7f795c;background:#2c444b;}
.swap-choices button.selected {border-color:#efbe61;background:#6a6039;}
.tactics {border-color:#51635c;color:#d6dfcc;}
.tactics input {accent-color:#dbad4f;}
.tactics>div>span {color:#b4c5bd;}
.tactics button {border-color:#657265;color:#c5d3c6;}
.tactics button[aria-pressed=true] {background:#3c645e;border-color:#b2c28c;color:#fff0c6;}
.partner-battle {background:linear-gradient(110deg,#33483f,#20353e);border-color:#8b784e;border-radius:5px;}
.partner-battle-image {background:radial-gradient(ellipse at 50% 80%,#78976b55,transparent 75%);}
.partner-battle-info>small {color:#c1ba94;}
.partner-battle-info h2 {color:#f0d8a6;}
.partner-battle-info>span {color:#c8d1bd;}
.charge>i {border-color:#7c8f76;background:#1e3337;}
.charge>i.charged {background:#e6bd60;border-color:#edd28a;}
.charge>span {color:#adc4b6;}
.partner-quote {color:#c3c5a9;}
.wallets {border-color:#5e6656;}
.wallets>div {border-color:#536157;}
.wallets strong {color:#f5d28c;}
.wallets>div:first-child>span,.wallets>div>small {color:#aabeb5;}
.result-panel {background:#10242f;border-color:#7d6c46;border-radius:5px;}
.result-panel .eyebrow {color:#b9c9b6;}
.result-focus>strong,.result-focus>strong.ready-star {color:#ffd073;text-shadow:0 2px 0 #0004;}
.result-focus>span {color:#bfceb9;}
.result-stats {color:#ebdfbc;}
.result-panel>p {color:#b8c8b7;border-color:#45594f;}
.gear-battle {background:transparent;color:#c2caba;}
.shortcut-hint {color:#95aea4;}
.game-dialog {background:#142a34;border-color:#c59a51;color:#e7e1c5;box-shadow:0 20px 100px #000b;}
.game-dialog::backdrop {background:#050d14dc;}
.game-dialog h2 {color:#f3dba5;}
.game-dialog p {color:#bfcdc0;}
.game-dialog .fine-print {border-color:#4e6157;color:#adc0b3;}
.gear-comparison article {background:#203941;border-color:#60705d;}
.gear-comparison article.equipped {background:#3b4c3d;border-color:#c9a15a;}
.gear-comparison h3 {color:#efddb5;}
.gear-comparison h3>small {color:#c9d9ad;}
.gear-comparison article>strong {color:#d5e0c7;}
.gear-comparison article>small {color:#ddb76e;}
.help-list article>b {color:#c99e50;}
.help-list h3 {color:#e7dfc0;}
.setting-row {border-color:#4c6055;color:#e0e5cf;}
.setting-row small {color:#b0c5b5;}
.setting-row input {appearance:none;-webkit-appearance:none;flex:none;width:30px;height:30px;margin:0;padding:0;border:2px solid var(--pixel-frame);background:var(--pixel-frame-inset) no-repeat;background-origin:content-box;background-clip:content-box;box-shadow:3px 3px 0 var(--pixel-frame-shadow);cursor:pointer;transition:border-color .14s,transform .14s;}
.setting-row input:checked {border-color:var(--pixel-frame-selected);background-color:var(--pixel-surface-raised);background-image:url('../assets/ui-icons.webp');background-size:400% 400%;background-position:100% 66.667%;}
.setting-row input:active {transform:translate(2px,2px);box-shadow:1px 1px 0 var(--pixel-frame-shadow);}
@media (hover:hover){.setting-row:hover input {border-color:var(--pixel-frame-selected);}}
.bond-scene-art {background:radial-gradient(ellipse at 50% 80%,#5e6b44,#213c43);border-radius:10px 0 0 10px;}
.scene-choices>button {border-color:#a28c55;background:#314b46;color:#f0e5c4;border-radius:5px;}
.scene-choices>button:hover {background:#476252;}
.scene-choices>button>span:first-child {color:inherit;}
.scene-choices>button>span:first-child>small {color:#b8c4b5;}
.scene-choices>button>span[aria-hidden] {color:#edc572;}
.bond-scene-copy>small {color:#adbfac;}
.bond-records>article {border-color:#5d705f;background:#263f45;border-radius:5px;}
.bond-records p {color:#b5c9b6;}
.bond-records strong {color:#dfc886;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .bond-dialog .dialog-body{grid-template-columns:150px minmax(0,1fr);gap:16px;min-height:0;max-height:94dvh;padding:14px;overflow:hidden}
 .bond-scene-art{margin:-14px 0 -14px -14px;border-radius:0}
 .bond-scene-art>img{bottom:-24px;left:-18px;width:205px;height:285px}
 .bond-scene-copy{min-width:0}
 .bond-scene-copy h2{margin:2px 0 5px;font-size:20px}
 .bond-scene-copy .scene-prompt{margin:4px 0 7px;font-size:10px;line-height:1.35}
 .scene-choices{gap:4px}
 .scene-choices>button{min-height:0;padding:5px 8px;font-size:9px;line-height:1.25}
 .scene-choices>button>span:first-child{font-size:9px}
 .scene-choices>button>span:first-child>small{margin-top:1px;font-size:7px}
 .scene-choices>button>span[aria-hidden]{font-size:13px}
 .bond-scene-copy>small{margin-top:6px;font-size:7px}
}
.toast {background:#254640;color:#f7e9bc;border-color:#c6a564;border-radius:5px;}


@media (max-height:500px) and (min-width:560px) and (orientation:landscape) {
  .game-shell:has(.combat) .brand-seal {border-radius:4px;}
  .cabinet-head {box-shadow:inset 0 0 0 2px #3b5758;}
  .board-frame {box-shadow:inset 0 0 0 2px #b9995d,0 2px 0 #44331d;}
  .intent-card>small {display:none;}
  .intent-card>strong {max-height:27px;overflow:hidden;margin:1px 0 3px;}
  .intent-card>div {gap:3px;margin-top:1px;}
  .intent-card>div>span {font-size:9px;line-height:1.15;padding:2px 4px;}
  .intent-card>div>b {font-size:12px;line-height:1.15;}
  .result-panel {padding:5px 7px;grid-template-rows:12px minmax(0,1fr) 20px 20px;}
  .result-focus {display:grid;grid-template-columns:auto auto;grid-template-rows:minmax(0,1fr) 12px;align-content:stretch;align-items:center;justify-content:center;gap:0 4px;overflow:hidden;}
  .result-focus>strong {font-size:28px;line-height:1;}
  .result-focus>strong.ready-star {font-size:25px;}
  .result-focus>span {grid-column:1/-1;font-size:9px;line-height:1.15;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:155px;}
  .result-focus>.result-glyph {width:23px;height:25px;}
  .result-panel>p {font-size:8px;padding-top:2px;}
  .spin-button {box-shadow:0 2px 0 #815018,inset 0 1px 0 #ffe3a3;}
}

/* Painted anime cutouts: keep the whole boss silhouette inside its rail. */
.enemy-art>img{width:100%;max-width:100%;height:100%;object-fit:contain}
.partner-illustration>img{filter:drop-shadow(0 10px 12px #0006)}
.partner-battle-image>img{width:150px;height:225px;margin-left:-24px;margin-top:-15px}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .partner-battle-image>img{width:100px;height:150px;margin-left:-19px;margin-top:-10px}
}
.mission-card>img{left:0;width:103px;height:113px}

/* Two equal halves: a battle stage and a stable slot console. */
.combat.split-combat {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:0;padding:0;height:100%;min-height:0;overflow:hidden;}
.split-combat>.battle-stage,.split-combat>.slot-side {min-width:0;min-height:0;height:100%;max-height:100%;}
.battle-stage {position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 46% 30%,#52716a30,transparent 65%),linear-gradient(#0b1d29,#19313b 62%,#0c1d26);border-right:1px solid #997b49;}
.battle-stage:before {content:"";position:absolute;inset:0;z-index:-2;background:#10252de8 url('../assets/tavern.webp') center/cover;background-blend-mode:multiply;}
.stage-heading {position:absolute;left:21px;right:21px;top:16px;display:flex;align-items:center;gap:9px;z-index:3;height:30px;}
.stage-heading>.eyebrow {font-size:8px;border:1px solid #826f44;padding:4px 6px;color:#d5b97e;}
.stage-heading>strong {font-family:Georgia,serif;font-size:20px;color:#e9d7b0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stage-heading>.turn-count {display:flex;gap:6px;align-items:center;white-space:nowrap;}
.stage-heading .turn-count>b {font-size:24px;}
.arena-backdrop {position:absolute;inset:65px 0 56px 113px;z-index:-1;pointer-events:none;}
.arena-backdrop:after {content:"";position:absolute;left:2%;right:1%;bottom:12%;height:20%;border:1px solid #b7954e30;border-radius:50%;background:radial-gradient(ellipse,#6f78562b,transparent 70%);transform:perspective(140px) rotateX(25deg);}
.arena-backdrop>i {position:absolute;width:1px;height:74%;top:7%;background:linear-gradient(transparent,#8b87613d,transparent);left:23%;}
.arena-backdrop>i:nth-child(2) {left:75%;}
.arena-backdrop>span {font-family:Georgia,serif;font-size:50px;font-style:italic;color:#a68b4c38;position:absolute;top:48%;left:42%;}
.arena-actors {position:absolute;inset:67px 12px 68px 134px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;align-items:stretch;}
.boss-unit,.party-unit {display:grid;grid-template-rows:87px minmax(0,1fr);min-width:0;min-height:0;position:relative;}
.actor-status {text-align:center;z-index:2;padding:0 7px;min-width:0;}
.actor-status>.eyebrow {font-size:7px;color:#90aaa3;letter-spacing:.1em;}
.actor-status h1,.actor-status h2 {font-size:22px;line-height:1.1;margin:5px 0;color:#f0dfb7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.025em;}
.actor-status>.enemy-hp,.actor-status>#partner-hp {font-size:11px;line-height:1.2;display:block;color:#cbd5c4;margin-bottom:6px;font-variant-numeric:tabular-nums;}
.actor-status .health-track {height:6px;}
.actor-status .charge {justify-content:center;margin-top:7px;}
.actor-status .charge>span {font-size:9px;margin-left:3px;}
.split-combat .enemy-art {min-width:0;min-height:0;height:100%;width:100%;display:grid;place-items:center;}
.split-combat .enemy-art>img {width:118%;max-width:118%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 12px #0007);}
.split-combat .enemy-aura {inset:20% -10% 2%;border:0;}
.party-scene-art {position:relative;min-width:0;min-height:0;}
.party-scene-art>img {position:absolute;inset:-16px -10% 0;width:120%;max-width:120%;height:calc(100% + 28px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 12px #0008);}
.stage-bottom {position:absolute;bottom:17px;left:21px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:3;}
.stage-return {font-size:11px;min-height:30px;padding:4px 0;}
.stage-bottom>.hero-card {display:flex;align-items:center;gap:8px;width:220px;padding:9px 11px;box-shadow:0 3px 14px #0004;}
.hero-emblem {width:31px;height:34px;object-fit:contain;}
.hero-status {min-width:0;flex:1;}
.hero-status>div:first-child {display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:15px;}
.hero-status strong {font-size:12px;}
.hero-status b {font-size:14px;color:#e8d7a0;font-variant-numeric:tabular-nums;}
.hero-status .health-track {height:6px;}
.action-timeline {position:absolute;left:18px;top:74px;bottom:84px;width:105px;display:flex;flex-direction:column;align-items:stretch;gap:8px;z-index:4;}
.timeline-heading {text-align:center;color:#b4c2ae;font-size:8px;letter-spacing:.1em;}
#timeline-entries {display:flex;flex-direction:column;gap:11px;}
.timeline-entry {position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:85px;border:1px solid #657366;border-radius:5px;background:linear-gradient(120deg,#263d43,#172e37);box-shadow:0 3px 0 #0003;padding:6px 4px;}
.timeline-entry:after {content:"↓";position:absolute;left:46%;bottom:-13px;color:#88794e;font-size:11px;line-height:1;}
.timeline-entry:last-child:after {display:none;}
.timeline-entry[data-status=current] {border-color:#e0ad50;background:linear-gradient(120deg,#4c513b,#263a3c);box-shadow:inset 0 0 0 1px #b7974240,0 3px 0 #0003;}
.timeline-entry.enemy-entry {border-color:#9c684a;}
.timeline-entry.ultimate {border-color:#de8750;background:linear-gradient(120deg,#5d3c2d,#332e2b);}
.timeline-entry[data-status=cancelled] {opacity:.38;}
.timeline-entry[data-status=cancelled]:before {content:"";position:absolute;width:70%;height:1px;left:15%;top:48%;transform:rotate(-30deg);background:#d6b584;z-index:3;}
.timeline-entry[data-status=charging] {opacity:.5;}
.timeline-order {position:absolute;left:-5px;top:-5px;background:#bea15c;color:#142732;border:1px solid #ecd196;width:20px;height:20px;display:grid;place-items:center;font-weight:800;font-size:12px;z-index:3;}
.timeline-entry[data-status=current] .timeline-order {background:#f0bd55;}
.timeline-entry[data-status=charging] .timeline-order {background:#5d7168;border-color:#829386;color:#e0e6cf;}
.timeline-avatar {width:48px;height:48px;display:block;position:relative;border:1px solid #a79562;background:#0e202a;overflow:hidden;}
.timeline-avatar>img {position:absolute;max-width:none;object-fit:contain;}
.timeline-avatar.partner-avatar>img {width:100px;height:150px;left:-27px;top:-6px;}
.timeline-avatar.enemy-avatar>img,.timeline-avatar.hero-avatar>img {inset:0;width:100%;height:100%;padding:2px;}
.timeline-actor-name {font-size:9px;line-height:1.1;color:#ced8c4;max-width:95%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.timeline-action {display:flex;align-items:center;justify-content:center;gap:4px;min-height:18px;}
.timeline-action>.glyph {width:16px;height:18px;}
.timeline-action>strong {font-size:16px;line-height:1;color:#f6d58e;min-width:13px;font-variant-numeric:tabular-nums;}
.timeline-arrow {font-size:11px;color:#91aaa2;}
.timeline-target {width:18px;height:18px;object-fit:contain;display:inline-block;position:relative;overflow:hidden;flex-shrink:0;}
.partner-target {background:#29443f;}
.partner-target>img {position:absolute;max-width:none;width:38px;height:57px;left:-10px;top:-2px;}
.ultimate-mark {position:absolute;right:4px;top:4px;color:#ffc477;background:#773c26;border:1px solid #bc8051;width:15px;height:15px;font-size:11px;font-weight:800;line-height:14px;}
.timeline-impact {font-size:8px;font-weight:700;color:#efb899;line-height:1;}
.timeline-impact.lethal {color:#ffad76;}
.timeline-charge {font-size:11px;line-height:1.3;color:#a2b6ab;}
.timeline-finished {font-size:35px;text-align:center;color:#d5b36d;}
.slot-side {display:grid;grid-template-rows:36px minmax(180px,1fr) 75px 32px 103px;gap:8px;padding:18px 20px 16px;background:linear-gradient(140deg,#1d343b,#11252f);}
.slot-heading {display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;}
.slot-brand {display:flex;align-items:center;gap:10px;min-width:0;}
.slot-brand .cabinet-badge {font-size:25px;padding-right:9px;}
.slot-brand>strong {font-family:Georgia,serif;font-size:20px;color:#f0d5a2;line-height:1.05;white-space:nowrap;}
.slot-brand small {display:block;font-family:Arial,"Helvetica Neue",sans-serif;font-size:7px;font-weight:400;letter-spacing:.1em;color:#9fb7ac;margin-top:4px;}
.slot-heading .wallets {display:flex;align-items:center;gap:0;border:0;padding:0;height:32px;}
.slot-heading .wallets>div {display:flex;align-items:center;gap:5px;padding:0 11px;border-color:#64705a;}
.slot-heading .wallets>div:last-child {padding-right:0;}
.slot-heading .wallets strong,.slot-heading .wallets>div:first-child>strong {font-size:22px;}
.slot-heading .wallets>div:first-child>span {font-size:10px;line-height:1;}
.slot-heading .wallets .glyph {width:23px;height:25px;}
.slot-side .board-frame {min-height:0;grid-template-rows:18px minmax(0,1fr) 20px;}
.slot-side .symbol-cell>img {width:70px;height:74px;}
.slot-side .feature-panel {padding:6px 10px;}
.slot-side .feature-heading {margin-bottom:4px;line-height:1.1;}
.slot-side .feature-buttons {height:31px;}
.slot-side .feature-buttons>button {padding:2px 9px;}
.slot-side .tool-message {font-size:10px;min-height:17px;line-height:1.1;margin-top:4px;}
.slot-side .tactics {border:0;padding:0;font-size:12px;}
.slot-side .tactics input {width:19px;height:19px;}
.slot-side .tactics .glyph {width:21px;height:23px;}
.slot-side .tactics button {min-height:28px;padding:4px 11px;font-size:11px;}
.slot-footer {display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;min-height:0;}
.slot-footer .result-panel {display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:18px minmax(0,1fr);gap:4px;padding:9px 12px;min-height:0;}
.slot-footer .result-panel>.section-title {grid-column:1/-1;}
.slot-footer .result-info {padding:0;font-size:9px;letter-spacing:.07em;text-align:left;}
.slot-footer .result-focus {grid-column:1;grid-row:2;display:grid;grid-template-columns:auto auto;grid-template-rows:minmax(0,1fr) 13px;align-content:stretch;align-items:center;justify-content:center;gap:0 5px;overflow:hidden;}
.slot-footer .result-focus>strong {font-size:40px;line-height:1;}
.slot-footer .result-focus>span {grid-column:1/-1;font-size:9px;line-height:1.1;margin:0;max-width:112px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.slot-footer .result-focus>.result-glyph {width:26px;height:30px;}
.slot-footer .result-stats {grid-column:2;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;row-gap:5px;}
.slot-footer .result-stats>span {justify-content:flex-start;font-size:14px;gap:5px;}
.slot-footer .result-stats .glyph {width:21px;height:23px;}
.slot-footer .battle-actions {grid-template-rows:48px 23px 14px;gap:5px;}
.slot-footer .spin-button {font-size:14px;min-height:48px;padding:8px 12px;}
.slot-footer .spin-button>span {font-size:11px;}
.slot-footer .gear-battle {font-size:10px;min-height:23px;}
.slot-footer .shortcut-hint {font-size:7px;}
.tavern-heading p,.partner-about>p,.gear-note,.departure>p,.mission-copy>span,.unlock-note {display:none;}
.partner-card {grid-template-rows:17px 37px minmax(0,1fr) 75px;}
.partner-about .bond-mini {margin-top:12px;}
.mission-copy>strong {font-size:24px;}
.mission-copy>em {margin-top:10px;}
.gear-card .compare-button {margin-top:auto;margin-bottom:4px;}

@media (max-height:500px) and (min-width:560px) and (orientation:landscape) {
  .combat.split-combat {grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);padding:0;gap:0;}
  .split-combat .stage-heading {left:9px;right:9px;top:5px;height:24px;gap:6px;}
  .split-combat .stage-heading>.eyebrow {font-size:6px;padding:3px 4px;}
  .split-combat .stage-heading>strong {font-size:14px;}
  .split-combat .stage-heading .turn-count {font-size:7px;gap:4px;}
  .split-combat .stage-heading .turn-count>b {font-size:18px;}
  .split-combat .arena-backdrop {inset:39px 0 40px 70px;}
  .split-combat .arena-backdrop>span {font-size:29px;}
  .split-combat .arena-actors {inset:39px 5px 47px 78px;gap:1px;}
  /* Status takes the height its text needs; the art shrinks (object-fit: contain) instead of sliding under the text. */
  .split-combat .boss-unit,.split-combat .party-unit {grid-template-rows:auto minmax(0,1fr);}
  .split-combat .actor-status {padding:0 3px;}
  .split-combat .actor-status>.eyebrow {font-size:6px;}
  .split-combat .actor-status h1,.split-combat .actor-status h2 {font-size:15px;margin:3px 0;}
  .split-combat .actor-status>.enemy-hp,.split-combat .actor-status>#partner-hp {font-size:10px;margin-bottom:4px;}
  .split-combat .actor-status .health-track {height:5px;}
  .split-combat .actor-status .charge {margin-top:4px;gap:2px;}
  .split-combat .actor-status .charge>i {width:6px;height:6px;}
  .split-combat .actor-status .charge>span {font-size:7px;margin-left:2px;}
  .split-combat .party-scene-art>img {inset:-8px -12% 0;width:124%;height:calc(100% + 16px);}
  .split-combat .stage-bottom {bottom:8px;left:9px;right:9px;gap:5px;}
  .split-combat .stage-return {font-size:10px;min-height:27px;}
  .split-combat .stage-bottom>.hero-card {width:160px;padding:5px 7px;gap:5px;}
  .split-combat .hero-emblem {width:23px;height:25px;}
  .split-combat .hero-status strong,.split-combat .hero-status b {font-size:11px;}
  .split-combat .hero-status>div:first-child {margin-bottom:4px;gap:8px;}
  .split-combat .hero-status .health-track {height:5px;}
  .split-combat .action-timeline {left:7px;top:41px;bottom:47px;width:62px;gap:4px;}
  .split-combat .timeline-heading {font-size:6px;letter-spacing:.07em;line-height:1.1;}
  /* The three turn cards share the column height equally; the boss move name stays in the title and the detail dialog. */
  .split-combat .action-timeline {display:flex;flex-direction:column;}
  .split-combat #timeline-entries {gap:8px;display:grid;grid-auto-rows:minmax(0,1fr);flex:1;min-height:0;}
  .split-combat .timeline-move {display:none;}
  .split-combat .timeline-entry {min-height:0;gap:2px;padding:4px 2px;overflow:hidden;}
  .split-combat .timeline-entry:after {bottom:-10px;font-size:9px;}
  .split-combat .timeline-order {width:15px;height:15px;top:-3px;left:-3px;font-size:10px;}
  .split-combat .timeline-avatar {width:26px;height:26px;}
  .split-combat .timeline-avatar.partner-avatar>img {width:57px;height:85px;left:-16px;top:-4px;}
  .split-combat .timeline-actor-name {display:none;}
  .split-combat .timeline-action {gap:2px;min-height:16px;}
  .split-combat .timeline-action>.glyph {width:12px;height:14px;}
  .split-combat .timeline-action>strong {font-size:12px;min-width:8px;}
  .split-combat .timeline-arrow {font-size:8px;}
  .split-combat .timeline-target {width:13px;height:13px;}
  .split-combat .partner-target>img {width:29px;height:43px;left:-8px;top:-2px;}
  .split-combat .ultimate-mark {right:2px;top:2px;width:11px;height:11px;font-size:8px;line-height:10px;}
  .split-combat .timeline-impact {font-size:7px;}
  .split-combat .timeline-charge {font-size:9px;}
  .split-combat .slot-side {grid-template-rows:26px minmax(85px,1fr) 54px 26px 60px;gap:4px;padding:7px 8px;}
  .split-combat .slot-heading {gap:5px;}
  .split-combat .slot-brand {gap:5px;}
  .split-combat .slot-brand .cabinet-badge {font-size:19px;padding-right:5px;}
  .split-combat .slot-brand>strong {font-size:14px;}
  .split-combat .slot-brand small {font-size:5px;letter-spacing:.05em;margin-top:2px;}
  .split-combat .slot-heading .wallets {height:24px;}
  .split-combat .slot-heading .wallets>div {gap:3px;padding:0 5px;}
  .split-combat .slot-heading .wallets strong,.split-combat .slot-heading .wallets>div:first-child>strong {font-size:16px;}
  .split-combat .slot-heading .wallets>div:first-child>span {font-size:8px;}
  .split-combat .slot-heading .wallets .glyph {width:16px;height:19px;}
  .split-combat .slot-side .board-frame {grid-template-rows:12px minmax(0,1fr) 12px;padding:0 4px;}
  .split-combat .slot-side .symbol-cell {padding:1px;border-width:1px;}
  .split-combat .slot-side .symbol-cell>img {width:43px;height:43px;max-height:98%;max-width:97%;}
  .split-combat .slot-side .reel-labels>span,.split-combat .slot-side .board-bottom {font-size:6px;}
  .split-combat .slot-side .board-bottom>span:last-child {font-size:7px;}
  .split-combat .slot-side .feature-panel {padding:3px 5px;}
  .split-combat .slot-side .feature-heading {display:none;}
  .split-combat .slot-side .feature-buttons {height:29px;gap:3px;}
  .split-combat .slot-side .feature-buttons>button {padding:1px 4px;min-height:29px;gap:3px;}
  .split-combat .slot-side .feature-buttons>button>span {font-size:10px;}
  .split-combat .slot-side .feature-buttons small {font-size:7px;}
  .split-combat .slot-side .feature-buttons>button>.glyph {width:16px;height:19px;}
  .split-combat .slot-side .feature-buttons>button.cancel-tool {flex-basis:28px;}
  .split-combat .slot-side .tool-message {font-size:8px;height:16px;min-height:16px;margin-top:2px;gap:3px;}
  .split-combat .slot-side .swap-choices button {height:16px;}
  .split-combat .slot-side .swap-choices img {width:14px;height:14px;}
  .split-combat .slot-side .tactics {font-size:10px;gap:4px;}
  .split-combat .slot-side .tactics input {width:17px;height:17px;}
  .split-combat .slot-side .tactics .glyph {width:17px;height:19px;}
  .split-combat .slot-side .tactics button {min-height:25px;padding:2px 6px;font-size:10px;}
  .split-combat .slot-footer {grid-template-columns:minmax(0,1fr) 126px;gap:6px;}
  .split-combat .slot-footer .result-panel {grid-template-columns:64px minmax(0,1fr);grid-template-rows:11px minmax(0,1fr);padding:4px 6px;gap:2px;}
  .split-combat .slot-footer .result-info {font-size:6px;letter-spacing:.03em;}
  .split-combat .slot-footer .result-panel .text-button {font-size:7px;}
  .split-combat .slot-footer .result-focus {display:flex;align-items:center;justify-content:center;gap:2px;}
  .split-combat .slot-footer .result-focus>strong {font-size:27px;}
  .split-combat .slot-footer .result-focus>span {display:none;}
  .split-combat .slot-footer .result-focus>.result-glyph {width:16px;height:18px;}
  .split-combat .slot-footer .result-stats {row-gap:1px;column-gap:3px;}
  .split-combat .slot-footer .result-stats>span {font-size:10px;gap:2px;}
  .split-combat .slot-footer .result-stats .glyph {width:13px;height:15px;}
  .split-combat .slot-footer .battle-actions {grid-template-rows:33px 20px;gap:4px;}
  .split-combat .slot-footer .spin-button {min-height:33px;padding:4px 8px;font-size:11px;}
  .split-combat .slot-footer .spin-button>span {font-size:10px;}
  .split-combat .slot-footer .gear-battle {min-height:20px;font-size:9px;padding:1px 3px;}
  .split-combat .slot-footer .shortcut-hint {display:none;}
  .split-combat .travel-symbol img {width:43px;height:43px;max-height:98%;}
}

/* Quiet cabinet and contained stage, with transient action feedback. */
.split-combat .arena-actors{border:1px solid #a384483d;border-radius:10px;background:linear-gradient(180deg,#10232b44,#0c182466);padding:14px 10px 8px;gap:24px;overflow:hidden;}
.split-combat .enemy-art>img{width:88%;max-width:88%;height:82%;align-self:center;}
.split-combat .party-scene-art>img{inset:auto 5% 7%;width:90%;max-width:90%;height:86%;object-position:center bottom;}
.split-combat .slot-heading{justify-content:flex-end;}
.split-combat .slot-side .board-frame{grid-template-rows:12px minmax(0,1fr) 10px;}
.split-combat .slot-side .board-bottom{justify-content:flex-end;}
.split-combat .slot-side .feature-heading{justify-content:flex-end;}
.split-combat .slot-footer .result-focus>span{display:none;}
.combat-float{position:absolute;z-index:20;pointer-events:none;font-size:32px;font-weight:900;white-space:nowrap;transform:translateX(-50%);color:#fff1cf;text-shadow:0 3px 0 #361615,0 0 12px #000;}
.combat-float.damage{color:#ffb49b;}.combat-float.heal{color:#8affbd;}.combat-float.shield{color:#8ed9ff;}
.timeline-entry.acting,.timeline-entry.is-active{opacity:1!important;border-color:#ffe09b!important;box-shadow:0 0 0 2px #f6c35d,0 0 20px #ffd36955;background:#65512b!important;}
.combat-fallen{opacity:.25;filter:grayscale(.7);}
.playing-combat .hero-card,.playing-combat .enemy-art,.playing-combat .party-scene-art{will-change:transform,filter;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .arena-actors{padding:7px 4px 3px;gap:12px;}
 .split-combat .party-scene-art>img{inset:auto 5% 7%;width:90%;height:86%;}
 .split-combat .enemy-art>img{width:88%;max-width:88%;height:82%;}
 .split-combat .slot-side .board-frame{grid-template-rows:7px minmax(0,1fr) 7px;}
 .combat-float{font-size:21px;}
}

/* Generated pixel-art skin: crisp sprites, stepped controls, flat readable surfaces. */
.pixel-sprite{display:inline-block;width:1em;height:1em;flex:none;background-image:var(--sprite-image);background-repeat:no-repeat;background-size:400% var(--sprite-height);background-position:var(--sprite-x) var(--sprite-y);image-rendering:pixelated}
.pixel-art,img{image-rendering:pixelated}
.ui-pixel-icon{width:24px;height:24px}
.game-shell:before{background-image:none;opacity:0}
body{background:#080e13}
.game-shell{background:#10242c;box-shadow:0 0 0 3px #826a3b,8px 8px 0 #05090c}
.topbar,.footer{background:#0b1a22;color:#ead49d;border-color:#78613b}
.brand-seal,.quiet,.icon-button,.primary,.panel,.game-dialog,.help-pages button{border-radius:0}
.brand-seal{background:#1a3b42;box-shadow:inset 0 0 0 3px #0b1a22,inset 0 0 0 4px #b38d4c}
.quiet,.icon-button{background:#142a33;border-color:#6d6246}
.icon-button .ui-pixel-icon{width:25px;height:25px}
.stamina-hud b{display:flex;align-items:center;gap:5px}
.stamina-hud .ui-pixel-icon{width:20px;height:20px}
.primary{background:#c99743;box-shadow:0 4px 0 #63451f;color:#20170e}
.symbol-cell,.travel-symbol{border-radius:0;background:#efe0b9}
.feature-panel,.feature-buttons>button,.intent-card,.hero-card,.partner-battle,.result-panel{border-radius:0}
.symbol-cell,.travel-symbol{background:#f1dfb3;box-shadow:none}
.board,.board-frame,.cabinet-head{border-radius:0}
.split-combat .slot-footer .spin-button,.split-combat .slot-footer .spin-button[data-mode=finish]{border-radius:0;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);background:#168274;box-shadow:0 6px 0 #3d2a18,inset 0 0 0 4px #0c4d48,inset 0 0 0 6px #d8b768}
.split-combat .slot-footer .spin-button:before{display:none}
.main-action-icon>.ui-pixel-icon{width:54px;height:54px}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){.main-action-icon>.ui-pixel-icon{width:35px;height:35px}}

/* Explicit recipients and tools: choices show the person and the price. */
.split-combat .slot-side {grid-template-rows:36px minmax(180px,1fr) 75px 103px;}
.split-combat .battle-stage .target-tactics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch;}
.split-combat .battle-stage .target-tactics>.tactic-group {display:grid;grid-template-rows:11px minmax(0,1fr);gap:3px;min-width:0;}
.split-combat .battle-stage .target-tactics .tactic-label {font-size:9px;line-height:1.1;color:#b7c8b9;max-width:none;margin:0;letter-spacing:.035em;}
.target-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;min-width:0;}
.split-combat .battle-stage .target-options>button {display:flex;align-items:center;justify-content:center;gap:6px;padding:3px 7px;min-height:29px;border:1px solid #5e7469;border-radius:4px;font-size:11px;background:#1b333c;color:#b9c9bd;position:relative;min-width:0;white-space:nowrap;}
.split-combat .battle-stage .target-options>button[aria-pressed=true] {background:#3d5749;border-color:#e1b864;color:#fff0c8;box-shadow:inset 0 0 0 1px #d5b56744;}
.split-combat .battle-stage .heal-choices .target-options>button[aria-pressed=true] {background:#2d5754;border-color:#83c8ac;box-shadow:inset 0 0 0 1px #83c8ac44;}
.target-check {font-size:10px;font-style:normal;color:#ffdc87;opacity:0;margin-left:auto;line-height:1;}
.target-options>button[aria-pressed=true]>.target-check {opacity:1;}
.heal-choices .target-check {color:#a1f0c5;}
.choice-avatar {width:22px;height:23px;position:relative;overflow:hidden;border:1px solid #86977b;border-radius:3px;background:#192d36;flex-shrink:0;}
.choice-avatar>img {position:absolute;width:50px;max-width:none;height:75px;object-fit:contain;left:-14px;top:-4px;}
.choice-emblem {width:22px;height:23px;object-fit:contain;flex-shrink:0;}
.no-cover-icon {display:grid;place-items:center;width:22px;height:23px;color:#9eb2a8;font-size:18px;line-height:1;flex-shrink:0;}
.split-combat .slot-side .feature-buttons>button {justify-content:space-between;gap:5px;padding:3px 9px;position:relative;}
.split-combat .slot-side .feature-buttons>button.selected {background:#4b573b;border-color:#f4cb71;box-shadow:inset 0 0 0 1px #f4cb7166;}
.split-combat .slot-side .feature-buttons>button>.gem-tool-name {font-size:11px;font-weight:700;line-height:1.1;white-space:nowrap;}
.gem-cost {display:flex;align-items:center;justify-content:center;gap:3px;border:1px solid #77815e66;background:#102731a8;padding:1px 4px;min-width:34px;flex-shrink:0;}
.gem-cost>.glyph {width:17px;height:20px;}
.gem-cost>b {font-size:10px;font-variant-numeric:tabular-nums;color:#f0dfb1;}
.split-combat .slot-side .feature-buttons>button.cancel-tool {flex:0 0 47px;justify-content:center;padding:2px 4px;font-size:10px;border-color:#b69867;color:#edd8a5;}
.tool-step {display:inline-grid;place-items:center;width:15px;height:15px;border-radius:3px;background:#4c614b;color:#f2db9c;font-size:9px;line-height:1;flex-shrink:0;}
.split-combat .board[data-tool=reroll] .board-column:hover .symbol-cell,.split-combat .board[data-tool=reroll] .board-column:focus-within .symbol-cell,.split-combat .board[data-tool=hold] .board-column:hover .symbol-cell,.split-combat .board[data-tool=hold] .board-column:focus-within .symbol-cell {background:#c8e8d4;border-color:#28786a;box-shadow:inset 0 0 0 1px #28786a;}
.split-combat .board[data-tool=reroll] .board-column,.split-combat .board[data-tool=hold] .board-column {outline:1px dashed #5a997d;outline-offset:-2px;}
.split-combat .slot-footer .spin-button {display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:5px;justify-content:stretch;align-items:center;}
.split-combat .slot-footer .spin-button .main-action-icon {font-size:30px;font-weight:800;line-height:1;color:#342409;}
.split-combat .slot-footer .spin-button .main-action-label {font-size:13px;font-weight:800;line-height:1.15;}
.split-combat .slot-footer .spin-button .spin-cost {font-size:9px;font-weight:800;line-height:1;padding:5px 4px;border:1px solid #8c641a77;border-radius:4px;background:#fce1a755;color:#5f400e;white-space:nowrap;}
.split-combat .slot-footer .spin-button.is-busy {background:linear-gradient(#d6c98e,#b8a65f);border-color:#968248;box-shadow:0 3px 0 #6c5b2e,inset 0 1px 0 #ede4b5;}
.split-combat .slot-footer .spin-button.is-busy:hover {background:linear-gradient(#e4d89c,#c9b975);}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .slot-side {grid-template-rows:26px minmax(85px,1fr) 54px 60px;}
 .split-combat .battle-stage .target-tactics {gap:7px;}
 .split-combat .battle-stage .target-tactics>.tactic-group {grid-template-rows:8px minmax(0,1fr);gap:2px;}
 .split-combat .battle-stage .target-tactics .tactic-label {font-size:8px;}
 .split-combat .battle-stage .target-options>button {padding:2px 4px;min-height:26px;gap:3px;font-size:9px;}
 .choice-avatar,.choice-emblem,.no-cover-icon {width:17px;height:19px;}
 .choice-avatar>img {width:39px;height:59px;left:-11px;top:-3px;}
 .target-check {font-size:8px;}
 .split-combat .slot-side .feature-buttons>button {padding:2px 4px;gap:3px;}
 .split-combat .slot-side .feature-buttons>button>.gem-tool-name {font-size:9px;}
 .gem-cost {gap:1px;padding:1px 2px;min-width:25px;}
 .gem-cost>.glyph {width:13px;height:17px;}
 .gem-cost>b {font-size:9px;}
 .split-combat .slot-side .feature-buttons>button.cancel-tool {flex-basis:37px;font-size:9px;padding:2px;}
 .split-combat .slot-side .tool-message {font-size:8px;gap:3px;}
 .tool-step {width:13px;height:13px;font-size:8px;}
 .split-combat .slot-footer .spin-button {grid-template-columns:20px minmax(0,1fr) auto;gap:3px;padding:3px 6px;}
 .split-combat .slot-footer .spin-button .main-action-icon {font-size:24px;}
 .split-combat .slot-footer .spin-button .main-action-label {font-size:10px;}
 .split-combat .slot-footer .spin-button .spin-cost {font-size:8px;padding:4px 3px;}
 .split-combat .cover-choices .no-cover-icon,.split-combat .cover-choices .cover-verb {display:none;}
}
.split-combat .slot-footer .spin-button:not([data-mode=finish]){position:relative;display:flex;justify-content:center;}
.split-combat .slot-footer .spin-button:not([data-mode=finish]) .main-action-label{display:none;}
.split-combat .slot-footer .spin-button .spin-cost{position:absolute;right:8px;bottom:7px;}

/* Target decisions belong to the combatants, below their arena. */
.split-combat .battle-stage .target-tactics{position:absolute;left:18px;right:18px;bottom:79px;height:48px;padding:0;border:0;z-index:5;}
.split-combat .arena-actors{bottom:143px;}
.split-combat .action-timeline{bottom:143px;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .battle-stage .target-tactics{left:9px;right:9px;bottom:48px;height:37px;}
 .split-combat .arena-actors{bottom:94px;}
 .split-combat .action-timeline{bottom:94px;}
}

/* Combat orders: framed commands and matching world-space recipient badges. */
.split-combat .battle-stage .target-tactics{height:65px;bottom:77px;gap:10px;}
.split-combat .battle-stage .target-tactics>.tactic-group{position:relative;grid-template-rows:18px 1fr;gap:4px;padding:5px 7px 7px;border:1px solid #78653e;border-radius:9px 3px;background:linear-gradient(135deg,#354643,#122831);box-shadow:inset 0 0 0 2px #0c1c24,0 3px 8px #0004;}
.split-combat .battle-stage .target-tactics .tactic-label{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:800;color:#ecd49b;letter-spacing:0;}
.tactic-label>.glyph{width:17px;height:18px;}
.split-combat .battle-stage .target-tactics>.heal-choices{border-color:#457c70;}
.split-combat .battle-stage .heal-choices .tactic-label{color:#a8e2c8;}
.split-combat .battle-stage .target-options>button{border-radius:5px 2px;background:linear-gradient(#233740,#14252d);border-color:#53645d;box-shadow:inset 0 1px #ffffff0a,0 2px #07161e;min-height:28px;transition:background .15s,border-color .15s,box-shadow .15s;}
.split-combat .battle-stage .target-options>button[aria-pressed=true]{background:linear-gradient(#806634,#4c4028);border-color:#f1c86d;box-shadow:inset 0 0 0 1px #e7bd6240,0 0 10px #e8b44925;}
.split-combat .battle-stage .heal-choices .target-options>button[aria-pressed=true]{background:linear-gradient(#356d5d,#244b46);border-color:#92e4bb;box-shadow:inset 0 0 0 1px #99e2bb40,0 0 10px #71deb325;}
.split-combat .arena-actors{bottom:157px;}
.actor-orders{position:absolute;display:flex;justify-content:center;gap:6px;z-index:6;pointer-events:none;}
.party-unit>.actor-orders{bottom:4px;left:0;right:0;}
.hero-card{position:relative;}
.hero-card>.actor-orders{left:8px;top:50%;transform:translateY(-50%);}
.order-badge{position:relative;display:grid;place-items:center;width:34px;height:36px;border:1px solid #f3ca70;border-radius:10px 3px;background:linear-gradient(#59482b,#1c292b);box-shadow:0 2px 6px #0009,inset 0 0 0 2px #ba904b40;animation:order-appear .2s ease-out;}
.order-badge>.glyph{width:27px;height:29px;filter:drop-shadow(0 1px 2px #000);}
.heal-order{border-color:#99ebbd;background:linear-gradient(#326653,#142e31);box-shadow:0 2px 6px #0009,inset 0 0 0 2px #78bfa140;}
.heal-order>b{position:absolute;right:-3px;bottom:-4px;color:#b8ffd1;font-size:18px;text-shadow:0 1px 3px #001e17;}
@keyframes order-appear{from{opacity:0;transform:translateY(5px) scale(.8)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.order-badge{animation:none;}}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .battle-stage .target-tactics{height:49px;bottom:47px;gap:6px;}
 .split-combat .battle-stage .target-tactics>.tactic-group{grid-template-rows:13px 1fr;gap:2px;padding:3px 4px 4px;}
 .split-combat .battle-stage .target-tactics .tactic-label{font-size:8px;gap:3px;}
 .tactic-label>.glyph{width:13px;height:13px;}
 .split-combat .battle-stage .target-options>button{min-height:23px;}
 .split-combat .arena-actors{bottom:104px;}
 .party-unit>.actor-orders{bottom:0;gap:4px;}
 .order-badge{width:25px;height:27px;border-radius:7px 2px;}
 .order-badge>.glyph{width:20px;height:22px;}
 .heal-order>b{font-size:14px;}
 .hero-card>.actor-orders{left:5px;}
}

/* Direct orders stay on their recipient; inactive commands remain available. */
.split-combat .arena-actors{bottom:68px;}
.split-combat .action-timeline{bottom:84px;}
.actor-orders .order-badge{pointer-events:auto;cursor:pointer;width:44px;height:44px;padding:5px;animation:none;transition:filter .15s,box-shadow .15s,background .15s;}
.actor-orders .order-badge[aria-pressed=false]{background:linear-gradient(#293b43,#14232c);border-color:#70817e;box-shadow:0 2px 5px #0008,inset 0 0 0 2px #ffffff08;}
.actor-orders .order-badge[aria-pressed=false]>.glyph{filter:grayscale(.8);opacity:.65;}
.actor-orders .order-badge[aria-pressed=true]{box-shadow:0 0 12px #e5b74c55,inset 0 0 0 2px #eec66c55;}
.actor-orders .heal-order[aria-pressed=true]{box-shadow:0 0 12px #7ee5ad55,inset 0 0 0 2px #8de6b655;}
.order-check{position:absolute;right:1px;bottom:0;font-size:13px;font-style:normal;color:#fff0ad;text-shadow:0 1px 3px #000;}
.heal-order .order-check{color:#b6ffce;}
.order-badge[aria-pressed=false] .order-check{display:none;}
.actor-orders .order-badge:disabled{cursor:default;}
.actor-orders .order-badge:focus-visible{outline:2px solid #fff4cf;outline-offset:3px;}
.actor-orders .order-badge:not(:disabled):hover{filter:brightness(1.2);}
.hero-card>.actor-orders{left:-51px;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .arena-actors{bottom:47px;}
 .split-combat .action-timeline{bottom:47px;}
 .actor-orders .order-badge{width:36px;height:36px;padding:4px;}
 .actor-orders .order-badge>.glyph{width:24px;height:26px;}
 .hero-card>.actor-orders{left:-42px;}
}
/* Symbol-specific payout accents stay inside their own cells. */
.symbol-burst{position:absolute;inset:12%;pointer-events:none;z-index:3;border:2px solid #f2bf66;border-radius:50%;opacity:0;}
.burst-sword{inset:42% 8%;border:0;border-top:4px solid #fff8dc;border-radius:50%;box-shadow:0 -3px 8px #e8a652;}
.burst-shield{border:3px double #72bacf;box-shadow:0 0 9px #8be4f3,inset 0 0 8px #8be4f355;}
.burst-heart{border-color:#e998ac;box-shadow:0 0 12px #ed9aaf88;}
.burst-gold,.burst-blue{inset:20%;border-radius:2px;border-color:#e0b75d;box-shadow:0 0 13px #edc46588;}
.burst-blue{border-color:#66aeba;box-shadow:0 0 13px #7cdce988;}

/* Raised slot control; the rulebook lives at the console corner. */
.split-combat .slot-side{position:relative;}
.split-combat .slot-footer .battle-actions{display:flex;align-items:center;justify-content:center;padding-bottom:8px;}
.split-combat .slot-footer .spin-button{position:relative;width:84px;height:84px;min-height:84px;flex:none;border-radius:50%;padding:8px;border:3px solid #ffe3a0;background:radial-gradient(circle at 35% 22%,#ffedb2,#eebc53 52%,#c18326 82%);box-shadow:0 5px 0 #72501f,0 7px 14px #0008,inset 0 0 0 4px #9d682c,inset 0 0 0 6px #f9d980,inset 0 9px 10px #fff3bf55;}
.split-combat .slot-footer .spin-button:not(:disabled):hover{filter:brightness(1.08);}
.split-combat .slot-footer .spin-button:active{transform:translateY(3px);box-shadow:0 2px 0 #72501f,inset 0 0 0 4px #9d682c,inset 0 0 0 6px #f9d980;}
.split-combat .slot-footer .spin-button .main-action-icon{font-size:46px;line-height:1;text-shadow:0 1px #ffedb0;}
.split-combat .slot-footer .spin-button .spin-cost{left:50%;right:auto;bottom:7px;transform:translateX(-50%);padding:2px 5px;border:0;background:#684619;color:#ffedbb;border-radius:6px;font-size:9px;}
.split-combat .slot-footer .spin-button[data-mode=spin] .main-action-icon{transform:translateY(-5px);}
.split-combat .slot-footer .spin-button[data-mode=finish]{width:120px;border-radius:22px;}
.split-combat .slot-footer .gear-battle{position:absolute;right:9px;bottom:5px;width:26px;height:26px;min-height:26px;padding:0;border:1px solid #8b967e;border-radius:50%;background:#152b35;color:#d7ddbd;font-family:Georgia,serif;font-size:17px;line-height:24px;box-shadow:inset 0 0 0 2px #233d43;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .slot-footer .battle-actions{padding-bottom:2px;}
 .split-combat .slot-footer .spin-button{width:55px;height:55px;min-height:55px;border-width:2px;padding:4px;box-shadow:0 3px 0 #72501f,0 4px 8px #0008,inset 0 0 0 3px #9d682c,inset 0 0 0 4px #f9d980;}
 .split-combat .slot-footer .spin-button .main-action-icon{font-size:32px;}
 .split-combat .slot-footer .spin-button .spin-cost{bottom:3px;font-size:7px;padding:1px 4px;}
 .split-combat .slot-footer .gear-battle{right:6px;bottom:5px;}
}

/* A pressable jewel face, separate from its stationary metal housing. */
.split-combat .slot-footer .spin-button{width:96px;height:96px;min-height:96px;border:4px solid #f8d67d;background:radial-gradient(ellipse at 38% 15%,#8ff2cb 0%,#28b899 27%,#087d73 60%,#064743 100%);box-shadow:0 7px 0 #573a20,0 9px 0 2px #172b30,0 12px 18px #0009,inset 0 0 0 3px #a77634,inset 0 0 0 5px #ffdf8d,inset 0 7px 9px #c4ffe766,inset 0 -8px 8px #003d3e99;overflow:visible;}
.split-combat .slot-footer .spin-button:before{content:"";position:absolute;inset:-10px;border:1px solid #d4b26077;border-radius:50%;pointer-events:none;background:radial-gradient(circle,transparent 63%,#6ae6be16 64%,transparent 73%);}
.split-combat .slot-footer .spin-button .main-action-icon{display:grid;place-items:center;color:#fff4c8;font-size:49px;text-shadow:0 3px 0 #024a46,0 0 12px #c8ffe988;filter:drop-shadow(0 2px 0 #055c51);}
.split-combat .slot-footer .spin-button[data-mode=spin] .main-action-icon{transform:translateY(-4px);}
.split-combat .slot-footer .spin-button .spin-cost{bottom:7px;padding:2px 7px;background:#053f3d;border:1px solid #8cd6b877;color:#fff0ba;box-shadow:0 1px 3px #002f30;font-size:9px;}
.split-combat .slot-footer .spin-button[data-mode=spin]:before{animation:spin-ready 2s ease-in-out infinite;}
.split-combat .slot-footer .spin-button:not(:disabled):hover{background:radial-gradient(ellipse at 38% 15%,#baffde,#40cda5 30%,#078b78 65%,#07574e);filter:brightness(1.06);}
.split-combat .slot-footer .spin-button:active{transform:translateY(5px) scale(.97);box-shadow:0 2px 0 #573a20,0 4px 8px #0007,inset 0 0 0 3px #a77634,inset 0 0 0 5px #ffdf8d,inset 0 5px 12px #003f4666;}
@keyframes spin-ready{0%,100%{opacity:.45;transform:scale(.97)}50%{opacity:1;transform:scale(1.04);box-shadow:0 0 17px #57dfb94d}}
@media(prefers-reduced-motion:reduce){.split-combat .slot-footer .spin-button[data-mode=spin]:before{animation:none;}}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .slot-footer .spin-button{width:58px;height:58px;min-height:58px;border-width:2px;box-shadow:0 4px 0 #573a20,0 6px 9px #0008,inset 0 0 0 2px #a77634,inset 0 0 0 3px #ffdf8d,inset 0 4px 6px #c4ffe755;}
 .split-combat .slot-footer .spin-button:before{inset:-5px;}
 .split-combat .slot-footer .spin-button .main-action-icon{font-size:34px;}
 .split-combat .slot-footer .spin-button .spin-cost{font-size:7px;bottom:3px;padding:1px 5px;}
}

.help-dialog .dialog-body{display:flex;flex-direction:column;max-height:85dvh;overflow:hidden;}
.help-slide{overflow-y:auto;min-height:0;padding:0 4px 10px;}
.help-pages{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0 0;border-top:1px solid #617366;flex-shrink:0;}
.help-pages>div{display:flex;gap:7px;}
.help-pages button{min-height:36px;padding:6px 12px;border:1px solid #667d70;border-radius:6px;background:#172e36;color:#ccd7bf;}
.help-pages button[aria-pressed=true]{background:#3d6052;border-color:#dfbd6f;color:#fff0c6;}
@media(max-height:500px){.help-dialog .dialog-body{max-height:90dvh;}.help-pages{padding-top:6px;}.help-pages button{font-size:11px;min-height:30px;padding:4px 8px;}}
/* Footer spacing includes the spin housing, not just the button face. */
.split-combat .slot-side{grid-template-rows:36px minmax(180px,1fr) 75px 126px;gap:10px;}
.split-combat .slot-footer{align-items:center;grid-template-columns:minmax(0,1fr) 150px;gap:18px;}
.split-combat .slot-footer .result-panel{height:100px;}
.split-combat .slot-footer .battle-actions{height:126px;padding:0;}
.split-combat .arena-actors{right:18px;bottom:90px;}
.split-combat .stage-bottom{left:18px;right:18px;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .slot-side{grid-template-rows:26px minmax(85px,1fr) 54px 74px;gap:5px;}
 .split-combat .slot-footer{grid-template-columns:minmax(0,1fr) 88px;gap:10px;}
 .split-combat .slot-footer .result-panel{height:60px;}
 .split-combat .slot-footer .battle-actions{height:74px;padding:0;}
 .split-combat .arena-actors{right:9px;bottom:61px;}
 .split-combat .stage-bottom{left:9px;right:9px;}
}
/* End-of-battle text actions need their own shape, not the circular spin face. */
.split-combat .slot-footer .spin-button[data-mode=finish]{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:56px;min-height:56px;max-width:150px;padding:10px 12px;border-width:2px;border-radius:12px;box-shadow:0 4px 0 #573a20,0 6px 10px #0007,inset 0 0 0 2px #a77634,inset 0 0 0 3px #ffdf8d;}
.split-combat .slot-footer .spin-button[data-mode=finish]:before{display:none;}
.split-combat .slot-footer .spin-button[data-mode=finish] .main-action-icon{font-size:22px;flex:none;}
.split-combat .slot-footer .spin-button[data-mode=finish] .main-action-label{display:block;min-width:0;white-space:normal;color:#fff2ca;font-size:14px;line-height:1.2;text-shadow:0 1px 2px #034e49;}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .slot-footer .spin-button[data-mode=finish]{height:48px;min-height:48px;padding:6px;gap:3px;}
 .split-combat .slot-footer .spin-button[data-mode=finish] .main-action-icon{font-size:17px;}
 .split-combat .slot-footer .spin-button[data-mode=finish] .main-action-label{font-size:11px;}
}

/* Final generated-pixel combat surfaces override the earlier illustrated prototype skin. */
.split-combat .feature-panel{background:#182e38}
.split-combat .feature-buttons>button:not(.selected){background:#29414b;color:#e1e6cf}
.split-combat .intent-card{background:#1b3039}
.split-combat .hero-card{background:#213840}
.split-combat .partner-battle{background:#20353e}
.split-combat .result-panel{background:#10242f}
.split-combat .slot-footer .spin-button,
.split-combat .slot-footer .spin-button[data-mode=finish]{
 border:4px solid #d8b768;
 border-radius:0;
 clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);
 background:#168274;
 box-shadow:0 7px 0 #3d2a18,inset 0 0 0 3px #0c4d48;
}
.split-combat .slot-footer .spin-button:before{display:none}
.split-combat .slot-footer .spin-button:not(:disabled):hover{background:#249b89;filter:none}
.split-combat .slot-footer .spin-button.is-busy,
.split-combat .slot-footer .spin-button.is-busy:hover{background:#326b64}
.split-combat .slot-footer .spin-button:active{transform:translateY(4px);box-shadow:0 3px 0 #3d2a18,inset 0 0 0 3px #0c4d48}
.split-combat .slot-footer .spin-button .spin-cost{border-radius:0;background:#083f3d}
.split-combat .slot-footer .gear-battle,.symbol-burst,.burst-sword,.order-badge,.actor-orders .order-badge{border-radius:0}
@media(max-height:500px) and (min-width:560px) and (orientation:landscape){
 .split-combat .slot-footer .spin-button,
 .split-combat .slot-footer .spin-button[data-mode=finish]{border-width:2px;box-shadow:0 4px 0 #3d2a18,inset 0 0 0 2px #0c4d48}
}

.brand-logo{width:52px;height:52px;object-fit:contain;image-rendering:pixelated;flex:none}
@media(max-width:1000px) and (orientation:landscape){.brand-logo{width:34px;height:34px}}

/* Cycle winning paths on the reels without adding another layout row. */
.symbol-cell.preview-win{z-index:2;border-color:#f1c45f;background:#ffe0a0;box-shadow:inset 0 0 0 2px #a97728;opacity:1;transition:none!important}
.symbol-cell.preview-muted{opacity:.55;filter:saturate(.6);transition:none!important}
.symbol-cell.preview-pulse>img{animation:ways-glow 1.1s ease-in-out infinite}
@keyframes ways-glow{0%,100%{filter:brightness(1) drop-shadow(0 0 1px #e7aa40)}50%{filter:brightness(1.3) drop-shadow(0 0 7px #e7aa40)}}
@media(prefers-reduced-motion:reduce){.symbol-cell.preview-pulse>img{animation:none}}

.element-matchup{display:flex;flex-wrap:wrap;justify-content:center;gap:0 6px;font-size:10px;line-height:1.4;color:#e7c780}
.element-matchup>b{white-space:nowrap;font-weight:700}
.element-matchup>.is-weak{color:#9fd47f}
.element-matchup>.is-resist{color:#ef9e7f}
