/* Battle controls stay in a compact overlay over the encounter. */
.game-menu.battle-settings{width:min(350px,calc(100vw - 32px));padding:24px 22px;box-sizing:border-box}
.battle-settings:before{display:none}.battle-settings h2{font:700 26px/1.15 'Knightle Herald';letter-spacing:.3px;margin:13px 0 24px}
.battle-audio-mix{display:grid;gap:22px;margin:0 0 24px}.battle-audio-control>div{display:flex;align-items:center;gap:12px;margin-bottom:5px}
.battle-audio-control label{flex:1;font:700 17px 'Knightle Herald';color:#ead8ad}.battle-audio-control output{min-width:34px;text-align:right;font:11px Georgia;color:#d5c39c;font-variant-numeric:tabular-nums}
.battle-audio-toggle{padding:5px 8px;min-width:42px;border:1px solid #a58d5a80;background:#101d1e;color:#d6bb80;font:8px 'Knightle Quill';cursor:pointer}.battle-audio-toggle[aria-pressed=false]{color:#8f9a94;border-color:#6b746a80}
.battle-audio-control input{display:block;width:100%;height:27px;accent-color:#d2b477;cursor:pointer;margin:0}.battle-audio-control input:focus-visible{outline:2px solid #ebcf91;outline-offset:3px}
.battle-settings .battle-bonuses{font-size:10px;margin:0 0 12px;min-height:44px}.battle-settings .battle-resume{min-height:47px}

/* Illuminated door crests and carved nameplates belong to the hall itself. */
.crimson-hall .castle-door{top:35.7%;height:30%;width:33%;align-items:flex-end}
.crimson-hall .forge-door{left:.8%}.crimson-hall .treasure-door{right:.8%}
.crimson-hall .castle-door-label{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0;padding:0;background:none;border:0;box-shadow:none;filter:drop-shadow(0 3px 3px #0008);transition:translate .2s,filter .2s}
.crimson-hall .castle-door-label:before{display:none}
.castle-door-emblem{position:relative;z-index:1;display:grid;place-items:center;width:54px;height:50px;margin:0 auto -8px;border-radius:50%;background:radial-gradient(ellipse,#273c3c,#17242b 64%,#a4864b 66%,#edcc85 69%,#392c23 72%);box-shadow:0 3px 9px #0009,inset 0 0 12px #f6c77222}
.castle-door-emblem svg{display:block;width:55px;height:51px;filter:drop-shadow(0 2px 1px #0008)}
.castle-door-copy{position:relative;display:block;width:100%;padding:16px 4px 10px;box-sizing:border-box;background:linear-gradient(90deg,#17262bf7,#30403af7 50%,#17262bf7);border-top:1px solid #ead093;border-bottom:2px solid #aa8148;clip-path:polygon(5% 0,95% 0,100% 18%,97% 84%,50% 100%,3% 84%,0 18%)}
.castle-door-copy:before{content:'';position:absolute;inset:4px 6px 7px;border-top:1px solid #b89b5a70;border-bottom:1px solid #b89b5a70;pointer-events:none}
.castle-door-copy strong{display:block;position:relative;color:#f5dfb5;font:700 clamp(12px,3.4vw,15px)/1.15 'Knightle Herald';text-shadow:0 2px 2px #000;white-space:nowrap}
.castle-door-copy small{display:flex;gap:5px;align-items:center;justify-content:center;margin-top:8px;color:#d5b472;font:6px/1.3 'Knightle Quill';letter-spacing:.7px}.castle-door-copy small b{font:19px/8px Georgia}
.treasure-door .castle-door-copy{background:linear-gradient(90deg,#2a1e29f7,#4b3036f7 50%,#2a1e29f7)}
.crimson-hall .castle-door:hover .castle-door-label,.crimson-hall .castle-door:focus-visible .castle-door-label{translate:0 -3px;box-shadow:none;background:none;filter:drop-shadow(0 0 7px #efbc6055)}
.crimson-hall .castle-door:active .castle-door-label{translate:0 1px;box-shadow:none}
.crimson-hall .castle-door:focus-visible .castle-door-copy{background:#63503b}
@media(max-width:350px){.castle-door-emblem{width:47px;height:44px}.castle-door-emblem svg{width:48px;height:45px}.castle-door-copy strong{font-size:12px}.castle-door-copy small{font-size:5px}}
@media(prefers-reduced-motion:reduce){.crimson-hall .castle-door-label{transition:none}}

/* One continuous translucent band, with a soft upper edge and viewport overscan. */
.stage-combat .combat .combat-foot:before{inset:-26px auto -100vh;left:calc(50% - 100vw);width:200vw;border:0;background:linear-gradient(90deg,#09140b99,#09140b66 50%,#09140b99);mask-image:linear-gradient(to bottom,transparent,#000 26px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 26px)}
.stage-combat .combat .tile .rune-damage.repeated-damage,.stage-combat .combat .tile.super-rune .rune-damage.repeated-damage{animation:repeat-stays128 2.1s ease both;animation-delay:var(--impact-delay);transform:translate(-50%,-38px);font-size:30px}
@keyframes repeat-stays128{0%{opacity:0;scale:.85}12%,78%{opacity:1;scale:1}100%{opacity:0;scale:1}}
.stage-combat .combat .tile.execution-rune .rune-damage,.stage-combat .combat .tile.execution-rune .rune-damage.super-final{animation:execution-flight128 1.42s linear both,super-number-rainbow .56s linear infinite;animation-delay:var(--impact-delay),var(--impact-delay);transform-origin:50% 55%}
@keyframes execution-flight128{0%{opacity:0;transform:translate(-50%,3px) rotate(0) scale(.65)}9%{opacity:1;transform:translate(calc(-50% + var(--number-drift)*.12),calc(var(--number-lift)*.48)) rotate(calc(var(--number-turn)*.09)) scale(1.32)}25%{opacity:1;transform:translate(calc(-50% + var(--number-drift)*.32),calc(var(--number-lift)*.92)) rotate(calc(var(--number-turn)*.28)) scale(1.14)}38%{opacity:1;transform:translate(calc(-50% + var(--number-drift)*.48),var(--number-lift)) rotate(calc(var(--number-turn)*.45)) scale(1.06)}60%{opacity:1;transform:translate(calc(-50% + var(--number-drift)*.74),calc(var(--number-lift)*.48)) rotate(calc(var(--number-turn)*.7)) scale(1)}82%{opacity:.85;transform:translate(calc(-50% + var(--number-drift)),58px) rotate(var(--number-turn)) scale(.94)}100%{opacity:0;transform:translate(calc(-50% + var(--number-drift)*1.2),195px) rotate(calc(var(--number-turn)*1.24)) scale(.9)}}
.execution-charge .execution-light{animation-duration:1.2s}
.combat .slime-seam{width:17px}
.combat.combat-entering .trait-emblem{animation:enemy-seal-arrives128 1.2s ease both;animation-delay:var(--entry-age);opacity:1}
@keyframes enemy-seal-arrives128{0%,15%{opacity:0}100%{opacity:1}}
.combat.combat-reveal-held .trait-emblem{animation-play-state:paused}
.combat.baronRise .trait-emblem{animation:enemy-seal-arrives128 .65s 4.05s both}
.tile.dodged-tile .tile-letter{opacity:.55}.tile-dodge{position:absolute;left:50%;top:-13px;z-index:9;transform:translateX(-50%);font:700 12px/1 'Knightle Herald',Georgia,serif;letter-spacing:.8px;color:#f3d8a8;text-shadow:0 2px 2px #101b16,0 0 7px #101b16;animation:dodge-stamp128 .26s ease-out both}
@keyframes dodge-stamp128{from{opacity:0;scale:1.35}to{opacity:1;scale:1}}
.goblin-dodge-warning strong{color:#ead0a0}.goblin-dodge-warning span{text-transform:none;font-size:16px}
.dread-impact-copy.bleed-tick,.dread-impact-copy.backstab{top:12%;bottom:auto;padding:8px 14px;max-width:calc(100% - 24px);border:1px solid #b96a6877;border-radius:2px;background:linear-gradient(90deg,#281316e8,#471b21e8,#281316e8);color:#ffbeb2;font:700 14px/1.6 'Knightle Herald',Georgia,serif;text-shadow:0 1px #190a0c;animation:bleed-contact128 1.65s var(--counter-contact) both}
@keyframes bleed-contact128{0%{opacity:0;transform:translate(-50%,5px) scale(.94)}12%,78%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-7px) scale(1)}}
.rewards-lord .ruby-find{pointer-events:none}

/* Swing around the grip; the neutral pick tip still meets the 43%/53% crack. */
.icebreak-focus .icebreak-pick{transform-origin:91% 92%;scale:1;filter:drop-shadow(2px 3px 1px #06121dbb)}
.icebreak-focus.ice-hit .icebreak-pick{animation:pick-depth128 .57s linear both}
@keyframes pick-depth128{0%{opacity:0;transform:perspective(600px) translate(22px,-38px) rotate(34deg) rotateX(58deg) scale(1.12);filter:drop-shadow(-22px 32px 8px #06121d77)}8%{opacity:1;transform:perspective(600px) translate(16px,-30px) rotate(29deg) rotateX(50deg) scale(1.09);animation-timing-function:cubic-bezier(.65,.04,.95,.5)}30%,39%{opacity:1;transform:perspective(600px) translate(0,0) rotate(0) rotateX(0) scale(1);filter:drop-shadow(1px 2px 1px #06121dcc)}54%{opacity:1;transform:perspective(600px) translate(3px,-3px) rotate(3deg) rotateX(7deg) scale(1)}100%{opacity:0;transform:perspective(600px) translate(25px,-48px) rotate(32deg) rotateX(54deg) scale(1.08);filter:drop-shadow(-18px 24px 6px #06121d55)}}
.iceblock-stage:after{content:'';position:absolute;left:43%;top:53%;width:52px;height:28px;border-radius:50%;pointer-events:none;z-index:7;opacity:0;background:radial-gradient(ellipse,#fff 0%,#defcffaa 20%,#75d3ff55 42%,transparent 73%);transform:translate(-50%,-50%)}
.ice-hit .iceblock-stage:after{animation:ice-contact128 .35s .17s ease-out both}
@keyframes ice-contact128{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}
@media(prefers-reduced-motion:reduce){.combat.combat-entering .trait-emblem,.combat.baronRise .trait-emblem{animation:none;opacity:1}.stage-combat .combat .tile.execution-rune .rune-damage,.stage-combat .combat .tile.execution-rune .rune-damage.super-final{animation:repeat-stays128 1.1s both;transform:translate(-50%,-38px)}.ice-hit .iceblock-stage:after{animation:none}.icebreak-focus.ice-hit .icebreak-pick{animation-duration:.01ms}}
.bleed-draining .vowel-wound{animation:wound-drain128 .9s var(--counter-contact) both}.bleed-draining .vowel-wound i{background:#e85355;box-shadow:0 0 4px #f17c6377}
@keyframes wound-drain128{0%,12%{opacity:1;filter:brightness(1.6)}40%{opacity:1;filter:brightness(1)}100%{opacity:0;filter:brightness(.7)}}

/* A single compact charter, with the purchase price inside its bottom action. */
.royal-deed-dialog.deed-compact{width:min(510px,calc(100vw - 24px));padding:16px 20px 15px!important;box-sizing:border-box;max-height:calc(100dvh - var(--ad-space) - 20px)}
.deed-compact .deed-close{width:32px;height:32px;right:7px;top:6px;z-index:3}
.deed-heading{display:flex;align-items:center;justify-content:center;gap:12px;padding-right:15px;text-align:left;margin-bottom:9px}.deed-compact .deed-crest{width:38px;height:45px;margin:0;flex-shrink:0}.deed-compact h2{font-size:30px;line-height:1.15;margin:0 0 3px}.deed-compact .deed-vow{font:11px/1.3 Georgia;margin:0;max-width:230px}
.deed-compact .deed-boons{margin:0;padding:7px 0;gap:8px}.deed-compact .deed-boons strong{font-size:23px;line-height:25px}.deed-compact .deed-boons>div:last-child strong{font-size:17px}.deed-compact .deed-boons span{font:6px/1.3 'Knightle Quill';letter-spacing:0}.deed-compact .deed-boons .coin-icon,.deed-compact .deed-boons i{height:18px;width:18px;font-size:18px;line-height:18px;margin:0 auto 2px}
.deed-compact .deed-daily{gap:5px;margin:9px auto 5px;font:12px/1.25 Georgia;width:100%;max-width:330px}.deed-compact .deed-daily b{font-size:14px;width:37px;margin-right:6px}.deed-token-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.deed-compact .deed-token{min-height:27px;padding:4px 7px;border:1px solid #ab8b4f;background:#29443a;color:#e8d8b3;font:6px/1.35 'Knightle Quill';white-space:nowrap;cursor:pointer}.deed-compact .deed-token:disabled{background:#1c2924;color:#a49d84;border-color:#726648}
.deed-compact .deed-ruby{font:11px/1.3 Georgia;gap:6px;margin:3px 0 6px}.deed-compact .deed-ruby .ruby-icon{width:19px;height:19px}
.deed-compact .deed-exclusive{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:7px}.deed-compact .deed-exclusive canvas,.deed-compact .deed-exclusive [data-royal-dye-preview]{height:52px}.deed-compact .deed-exclusive .deed-frame-preview canvas{width:44px;height:52px}.deed-compact .deed-exclusive small{font:700 7px/1.2 Georgia;letter-spacing:0;min-height:17px;margin:4px 0 0;white-space:normal}.deed-compact .deed-exclusive-copy{margin:3px 0 5px;font-size:10px}
.deed-compact .deed-nameplate-preview{padding-top:5px;margin:5px 0 7px}.deed-compact .deed-nameplate-preview .nameplate-swatch{height:35px;width:200px;margin:1px auto 5px}.deed-compact .deed-nameplate-preview .nameplate-name{font-size:20px}.deed-compact .deed-nameplate-preview>p{font-size:10px;margin:0 0 2px}.deed-compact .deed-nameplate-preview>.btn{min-height:27px;margin-top:3px;padding:5px 12px;font-size:7px}
.deed-compact .deed-test{padding:0;margin:4px 0 9px;border:0;background:none}.deed-test summary{cursor:pointer;color:#a7ac9b;font:7px/1.5 'Knightle Quill';list-style:none}.deed-test summary:before{content:'▸ ';color:#d4b576}.deed-test[open] summary:before{content:'▾ '}.deed-test>div{display:flex;gap:6px;margin-top:6px}.deed-test>div button{flex:1;min-height:28px;margin:0;font-size:6px}
.deed-footer{position:relative;margin-top:4px}.deed-checkout{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:58px;padding:10px 12px;box-sizing:border-box;border:1px solid #bda565;border-radius:3px;background:linear-gradient(110deg,#273a2d,#385341 57%,#26372c);box-shadow:inset 0 1px #f9e5ae55,0 3px 0 #0a160e,0 0 0 2px #403d25;color:#ffebbc;text-decoration:none;cursor:pointer}
.deed-checkout:hover:not(:disabled),.deed-checkout:focus-visible{background:linear-gradient(110deg,#334d37,#45674f 57%,#324834);filter:brightness(1.1);outline:2px solid #f0d48b;outline-offset:3px}.deed-checkout:disabled{opacity:1;cursor:default}.deed-sale-price{display:flex;align-items:center;gap:9px;flex-shrink:0}.deed-was{position:relative;display:block;padding-top:9px;min-width:41px;color:#b5b49d;font:15px/1.2 Georgia}.deed-fake-ribbon{position:absolute;left:-11px;top:-8px;transform:rotate(-14deg);padding:3px 6px;background:#a64833;border:1px solid #ecb371;box-shadow:0 1px 2px #09110b;font:700 7px/1.15 Georgia;white-space:nowrap;color:#fff0bf;letter-spacing:.25px}.deed-sale-price>strong{font:700 29px/1 'Knightle Herald';color:#fff1c8}.deed-discount{padding:6px 5px;background:#81964b;color:#101d0c;box-shadow:inset 0 1px #cad89777;font:700 11px/1 Georgia;white-space:nowrap}.deed-discount i{font-style:normal}.deed-buy-label{display:flex;align-items:center;gap:6px;max-width:106px;font:700 11px/1.3 'Knightle Herald';text-align:left;letter-spacing:.3px}.deed-buy-label b{font:26px/1 Georgia}.deed-checkout-status{display:block;margin:7px 0 0;color:#b9b69a;font:6px/1.4 'Knightle Quill'}.deed-active-note{font:700 14px/1.2 'Knightle Herald';color:#e9cf91;margin:5px 0 0}.deed-active-note small{display:block;font:10px/1.3 Georgia;color:#c0bda5;margin-top:4px}.royal-free-price{color:#e5d68d}.store-face:has(.royal-free-price){display:flex;flex-direction:column;gap:3px}.store-face:has(.royal-free-price) small{font:8px Georgia!important;line-height:1.1}
@media(max-width:360px){.royal-deed-dialog.deed-compact{padding:13px 13px 12px!important}.deed-heading{gap:8px}.deed-compact .deed-crest{width:32px;height:38px}.deed-compact h2{font-size:27px}.deed-compact .deed-vow{font-size:10px}.deed-checkout{padding:9px}.deed-sale-price{gap:6px}.deed-sale-price>strong{font-size:25px}.deed-buy-label{font-size:10px}.deed-discount{font-size:10px;padding:6px 4px}.deed-token-row{gap:4px}.deed-compact .deed-daily{font-size:11px}.deed-compact .deed-token{font-size:5px}}
@media(max-height:680px){.royal-deed-dialog.deed-compact{padding-top:12px!important;padding-bottom:12px!important}.deed-heading{margin-bottom:5px}.deed-compact .deed-exclusive canvas,.deed-compact .deed-exclusive [data-royal-dye-preview],.deed-compact .deed-exclusive .deed-frame-preview canvas{height:45px}.deed-compact .deed-nameplate-preview{margin-bottom:5px}.deed-compact .deed-daily{margin-top:6px;gap:4px}.deed-compact .deed-test{margin-bottom:7px}}
@media(min-width:560px) and (max-height:600px){.royal-deed-dialog.deed-compact{width:min(720px,calc(100vw - 30px));display:grid;grid-template-columns:1fr 1.1fr;column-gap:20px;padding:12px 18px!important}.deed-heading,.deed-footer,.deed-test{grid-column:1/-1}.deed-compact .deed-collection{padding-left:10px;border-left:1px solid #a18c5038}.deed-compact .deed-exclusive{margin-top:0}.deed-compact .deed-nameplate-preview{margin-bottom:0}.deed-compact .deed-ruby{margin-top:8px}.deed-compact .deed-test{margin:2px 0 6px}.deed-heading{margin-bottom:8px}.deed-checkout{min-height:49px}.deed-heading .deed-vow{max-width:none}}
