/* Give the same foe room to loom in both the introduction and the battle. */
.stage-combat .combat:not(.room-0) .battle-wrap{flex:0 0 clamp(235px,30svh,290px);height:clamp(235px,30svh,290px);min-height:235px;margin-bottom:18px}
.stage-combat .combat.room-5 .battle-wrap{flex-basis:clamp(250px,34svh,320px);height:clamp(250px,34svh,320px)}
/* Protection straddles the bar; adding a ward never consumes layout space. */
.combat .command-line{height:49px;min-height:49px;flex:none;position:relative;overflow:visible}
.combat .knight-status{position:relative;flex-shrink:0;margin-right:auto}
.combat .knight-status .ward-rack{position:absolute;left:18px;top:-28px;right:auto;bottom:auto;transform:none;margin:0;z-index:5;pointer-events:none}
.combat .ward-rack .armed-ward{width:36px;height:42px}
.combat .ward-rack .ward-half canvas{width:36px;height:42px}
/* A single, compact dismissal target, above the enemy rather than over it. */
#achievement-toast,body:has(.stage-combat) #achievement-toast{top:max(8px,env(safe-area-inset-top));left:50%;right:auto;bottom:auto;width:190px;min-width:0;max-width:calc(100vw - 110px);padding:0;gap:0;border:0;border-bottom:1px solid #ba9b5d99;background:linear-gradient(100deg,#242c22fa,#131b16fa);transform:translate(-50%,-12px);clip-path:none;border-radius:2px;box-shadow:0 3px 10px #0007}
#achievement-toast.show{transform:translate(-50%,0)}
#achievement-toast .notice-dismiss{display:flex;align-items:center;gap:7px;width:100%;min-width:0;min-height:42px;margin:0;padding:5px 8px;border:0;background:none;box-shadow:none;color:inherit;cursor:pointer;text-align:left}
#achievement-toast .notice-seal,#achievement-toast .notice-seal canvas{width:24px;height:24px;min-width:24px}
#achievement-toast .notice-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
#achievement-toast small{font:5px/1.3 'Knightle Quill';letter-spacing:1px;color:#b8a477}
#achievement-toast strong{font:10px/1.25 'Knightle Herald';letter-spacing:.3px;color:#ead7af;overflow-wrap:anywhere}
#achievement-toast .notice-close{font:16px/1 Georgia;color:#bbaa88}
#achievement-toast .notice-dismiss:focus-visible{outline:2px solid #e3c887;outline-offset:2px}
/* Base dimensions for the carved rune strokes. */
.cipher-symbol,.cipher-symbol.rune-changing,.cipher-symbol:not(.rune-changing){transform:none;text-shadow:none;min-height:24px}
.cipher-symbol.rune-changing{color:#e0b5ef;filter:drop-shadow(0 0 3px #ac70c8)!important}
.cipher-symbol .cipher-glyph{width:20px;height:24px;overflow:visible}
.oath-ceremony .oath-witness{aspect-ratio:160/144}
.oath-ceremony .oath-witness canvas{image-rendering:pixelated}
@media(max-width:700px){
 .stage-combat .combat:not(.room-0) .battle-wrap{flex-basis:clamp(195px,27svh,235px);height:clamp(195px,27svh,235px);min-height:195px;margin-bottom:17px}
 .stage-combat .combat.room-5 .battle-wrap{flex-basis:clamp(205px,29svh,255px);height:clamp(205px,29svh,255px)}
 .combat .command-line{height:46px;min-height:46px}
 .combat .knight-status .ward-rack{top:-25px;left:12px}
 .combat .ward-rack .armed-ward,.combat .ward-rack .ward-half canvas{width:32px;height:38px}
}
@media(prefers-reduced-motion:reduce){.cipher-symbol.rune-changing{filter:none!important}}
