/* V65: small clarity improvements on the V63 layout and typefaces. */
body,button,input,select,textarea{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.screen p,.screen .eyebrow,.key,.screen button,.screen small{text-shadow:0 1px 2px #030b09,0 0 .25px currentColor}
/* Strike stays in its original keyboard position. */
.stage-combat .combat .keyboard .key.strike-key{font-family:'Knightle Herald',Georgia,serif;font-size:13px;letter-spacing:.2px;color:#fff1d6;background:linear-gradient(#c28569,#814039);border-color:#d89b7f;border-bottom-color:#421d24;box-shadow:inset 0 1px #efc6a54d,0 2px #08120c;min-width:58px;flex:1.7 1 0}
.stage-combat .combat .keyboard .strike-key:before{background:repeating-linear-gradient(0deg,#eac3a512 0 1px,transparent 1px 6px),linear-gradient(125deg,#91483e,#54282a);box-shadow:inset 0 1px #d9a08455}
.stage-combat .combat .keyboard .strike-key:active{background:#a35c4e}
.stage-combat .combat .backspace-key{display:grid;place-items:center}
.backspace-key svg{width:27px;height:24px;max-width:85%}
/* Existing status strip, now with an explicit health label and heart badges. */
.stage-combat .combat .knight-status{position:relative;margin:0 0 0 auto;padding-top:5px;gap:7px}
.stage-combat .combat .health-caption{position:absolute;top:-3px;left:0;font:7px/1 'Knightle Quill',Georgia;color:#f1e4bf;letter-spacing:1px}
.stage-combat .combat .heart-rack{gap:3px}
.stage-combat .combat .heart-unit{position:relative}
.stage-combat .combat .heart-icon{width:20px;height:22px;min-width:20px}
.stage-combat .combat .knight-status>span{font-size:14px;color:#fff1d5}
.stage-combat .combat .knight-status small{font-size:8px}
.health-heart{position:absolute;width:9px;height:9px;bottom:-1px;right:-2px;stroke:#471e25;stroke-width:1.2;filter:drop-shadow(0 1px 1px #000)}
.health-heart .heart-base{fill:#42483c}.health-heart .heart-fill{fill:#ef8490;clip-path:inset(calc(100% - var(--heart-fill,100%)) 0 0 0)}
.player-health-meter{position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#111c14}
.player-health-meter i{display:block;height:100%;background:#9dbb83}
.stage-combat .combat .command-line>.xp-boost-icon{position:absolute;left:5px;top:4px;bottom:auto;width:auto;height:auto;font:9px/1.5 'Knightle Quill';color:#b1d8ba}
/* The ward remains centered over the gray strip and takes no layout space. */
.health-boost-mark{position:absolute;top:1px;right:-5px;width:24px;height:25px;pointer-events:none;filter:drop-shadow(0 1px 1px #000)}
.health-boost-mark canvas{position:absolute;width:16px;height:18px;left:0;top:2px;image-rendering:pixelated}
.health-boost-mark svg{position:absolute;fill:#ef8490;stroke:#471e25;stroke-width:1.2;width:10px;height:10px;left:6px;top:12px}
.health-boost-mark>b{position:absolute;right:0;top:0;font:700 15px/1 Georgia!important;color:#c5e7ae}
.stage-combat .combat .potion-feedback{font:11px/1.35 Georgia;white-space:normal;width:110px;right:0;left:auto;text-align:center;background:#17291ce6;padding:5px}
/* Same timer location and row budget; a larger numeral and stronger contrast. */
.stage-combat .combat .turn-clock{height:25px;min-height:0;gap:5px;font-size:6px;color:#f3e8cf;background:#122019c9;border-bottom:1px solid #a68d5666;max-width:calc(100% - 116px);width:156px;white-space:nowrap}
.stage-combat .combat .turn-clock b{font:23px/1 'Knightle Herald',Georgia;color:#fff0c9;min-width:25px}
.stage-combat .combat .turn-clock.clock-danger{color:#ffc3ac;animation:none}
.stage-combat .combat .rune-board-controls .row-damage{color:#fff3d8;text-shadow:0 1px 3px #000,0 0 1px #fff1be;letter-spacing:0}
/* A narrow cue uses the open creature area; the tiles and keyboard stay put. */
.counter-warning,.word-bonus-banner{position:absolute;z-index:12;bottom:6px;left:50%;transform:translateX(-50%);width:max-content;max-width:96%;padding:6px 9px;text-align:center;background:#102016ed;border:1px solid #b29b6c;color:#f2dfb8;box-shadow:0 3px 10px #0006;pointer-events:none}
.counter-warning{font:13px/1.2 'Knightle Herald',Georgia}
.word-bonus-banner{width:min(300px,96%)}
.word-bonus-banner strong{font:14px/1.2 'Knightle Herald',Georgia;color:#d0e4b0}
.word-bonus-banner p{margin:3px 0 0;font:12px/1.25 Georgia;color:#e2d8be}
.word-bonus-phase .trait-emblem,.word-bonus-phase .weakpoint-arrow,.word-bonus-phase .weak-slot:after{display:none}
.word-receipt{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:12px/1.25 Georgia;letter-spacing:.3px;color:#c7c3a8;white-space:nowrap}
.word-receipt strong{font:17px/1 'Knightle Herald',Georgia;color:#f7e7ba;letter-spacing:1px}
.word-receipt>span{font-size:10px;color:#b7cd9d}
.death-answer,.result-answer{font:13px/1.4 Georgia;color:#e5d7b3;margin:6px 0}
.death-answer strong,.result-answer strong{font:20px 'Knightle Herald',Georgia;letter-spacing:1px;color:#fff0ca}
.death-screen .death-epitaph .death-answer{display:block;font:10px/16px Georgia;margin:0;color:#d9ccb0;letter-spacing:1px}
.death-screen .death-answer strong{font-size:16px;margin-left:5px}
.death-screen .death-epitaph h1{margin:9px 0 6px;line-height:1.3}
.injury-vignette.low-health:before{animation:quiet-health 5.5s ease-in-out infinite;background:linear-gradient(90deg,#8a293d66,transparent 18%,transparent 82%,#8a293d66)}
@keyframes quiet-health{0%,100%{opacity:.15}50%{opacity:.4}}
.enemyAttack .floating-damage.player-hit,.enemyAttack .heart-loss,.room-5.enemyAttack .floating-damage.player-hit,.room-5.enemyAttack .heart-loss{animation-delay:var(--counter-contact,250ms)}
.stage-combat:has(.enemyAttack){animation-delay:250ms}
.stage-combat:has(.room-5.enemyAttack){animation:claw-recoil .6s ease-out 780ms both}
@keyframes claw-recoil{0%,100%{transform:none}15%{transform:translate(-5px,4px)}32%{transform:translate(3px,-2px)}55%{transform:translate(-1px,1px)}}
@media(max-width:350px){
 .stage-combat .combat .heart-icon{width:18px;min-width:18px;height:20px}
 .stage-combat .combat .knight-status{gap:4px}.stage-combat .combat .heart-rack{gap:2px}
 .stage-combat .combat .keyboard .key.strike-key{font-size:12px;min-width:55px}
 .stage-combat .combat .turn-clock{width:148px;font-size:5.5px}.stage-combat .combat .turn-clock b{font-size:22px}
 .word-bonus-banner strong{font-size:12px}.word-bonus-banner p{font-size:11px}
}
@media(orientation:landscape) and (max-height:500px){
 .stage-combat .combat .combat-foot:before{display:none}
 .stage-combat .combat .rune-board-controls,.stage-combat .combat .combat-controls{background:#07140dc9}
 .stage-combat .combat .turn-clock{max-width:100%}
 .counter-warning{font-size:11px;padding:4px}.word-bonus-banner{padding:4px}.word-bonus-banner strong{font-size:11px}.word-bonus-banner p{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.injury-vignette.low-health:before{animation:none;opacity:.18}.stage-combat:has(.enemyAttack){animation:none!important}}
@media(orientation:portrait){.stage-combat .combat.screen{--board-height:clamp(146px,calc(32dvh - 48px),216px)}}

/* V66: readable ink, a real countdown, and deliberate combat beats. */
@font-face{font-family:'Knightle Ink';src:url('assets/blackletter.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
.home .quest-choices .btn{font-family:'Knightle Ink',Georgia,serif;font-weight:700;letter-spacing:1.3px;text-shadow:0 2px 3px #06100e}
.home .home-oath,.home .quest-choices .btn small,.home .menu-roman,.home .level-panel>small,.home .rank-level-label,.home .legacy-rank>strong,.home .dossier-teeth small,.home .quest-caption>span,.home .home-counter{font-family:Georgia,serif;font-weight:700;letter-spacing:.8px}
.stage-combat .combat .keyboard .key:not(.rune-key){font-family:Georgia,'Times New Roman',serif;font-weight:700;text-shadow:0 1px 2px #030b09}
.stage-combat .combat .keyboard .key.strike-key{font-family:Georgia,serif;font-size:12px;letter-spacing:.2px}
.stage-combat .combat .command-line,.stage-combat .combat .command-line.has-elixir{background:transparent;border:0;box-shadow:none}
.stage-combat .combat .command-line:before,.stage-combat .combat .command-line:after{display:none}
.stage-combat .combat .knight-status{height:27px;padding:5px 7px 3px;background:linear-gradient(100deg,#1a2927e6,#303e37ed);border:1px solid #acb7a844;border-radius:3px;box-shadow:0 2px 5px #0005;box-sizing:border-box}
.stage-combat .combat .health-caption{top:-5px;left:7px;padding:0 4px;background:#17241e;font:700 8px/1 Georgia;letter-spacing:1.2px}
.stage-combat .combat .player-health-meter{left:7px;right:7px;bottom:0}
.stage-combat .combat .combat-foot{grid-template-rows:29px var(--board-height) 42px auto;row-gap:3px}
.stage-combat .combat .turn-clock{display:grid;grid-template-columns:12px auto 38px;grid-template-rows:26px 8px;align-items:center;justify-content:stretch;column-gap:7px;row-gap:3px;width:min(248px,calc(100% - 116px));max-width:none;height:39px;margin:0 auto;padding:0 2px 2px;background:none;border:0;box-shadow:none;color:#f5e7cb;font:700 9px/1 Georgia;letter-spacing:1px}
.stage-combat .combat .turn-clock .hourglass{width:10px;height:16px;justify-self:end}
.stage-combat .combat .turn-clock [data-turn-label]{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage-combat .combat .turn-clock b{font:700 27px/1 Georgia;color:#fff1c8;min-width:0;text-align:right;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #000}
.stage-combat .combat .turn-clock-track{position:relative;inset:auto;grid-column:1/-1;width:100%;height:8px;box-sizing:border-box;border:1px solid #bba36a88;background:#09130ff0;overflow:hidden;border-radius:2px}
.stage-combat .combat .turn-clock-track i{background:linear-gradient(#ebd28c,#bd9449);box-shadow:0 0 9px #eddba9;transition:none}
.stage-combat .combat .turn-clock-track:before,.stage-combat .combat .turn-clock-track:after{display:none}
.stage-combat .combat .turn-clock.clock-danger .turn-clock-track i{background:linear-gradient(#f9ba91,#b34f3e)}
.stage-combat .combat .turn-clock.clock-paused{opacity:.6}
.stage-combat .combat .rune-board-controls .combat-purse{bottom:-36px}
.counter-warning{bottom:5px;padding:7px 14px;background:#271c17f0;border-color:#dc9975;box-shadow:0 3px 14px #0007;animation:incoming-breathe .85s ease-in-out infinite}
.counter-warning strong{display:block;font:700 12px/1.25 Georgia;letter-spacing:.7px;color:#ffdab5}
.counter-warning span{display:block;margin-top:3px;font:10px/1.2 Georgia;color:#e0bea1;letter-spacing:1.2px}
@keyframes incoming-breathe{0%,100%{opacity:1;box-shadow:0 0 12px #bd693544}50%{opacity:.68;box-shadow:0 0 3px #bd693511}}
.hero-warning{position:absolute;z-index:12;bottom:8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:5px 12px;border-bottom:1px solid #e3c986;background:#18251bea;color:#f7e5b5;white-space:nowrap;font:700 12px Georgia;letter-spacing:1px;animation:blade-ready .85s ease-out both}
.hero-warning>span{font:24px Georgia}
@keyframes blade-ready{from{opacity:0;filter:brightness(1.8)}30%,100%{opacity:1;filter:none}}
.encounter-victory{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:15;pointer-events:none;text-align:center;background:radial-gradient(ellipse,#142516e0,transparent 73%);animation:victory-stamp .65s cubic-bezier(.16,.8,.2,1) .5s both}
.encounter-victory>span{font:28px Georgia;color:#f3d482;text-shadow:0 0 22px #ffd488}
.encounter-victory strong{font:32px/1.1 'Knightle Herald',Georgia;letter-spacing:3px;color:#ffe5a2;text-shadow:0 2px 2px #000,0 0 20px #e5b34966;max-width:96%}
.encounter-victory p{font:13px/1.4 Georgia;color:#e7ddbf;margin:7px 0}
@keyframes victory-stamp{from{opacity:0;transform:scale(1.17)}to{opacity:1;transform:scale(1)}}
.word-bonus-banner{border-color:#dbbf76;background:linear-gradient(100deg,#1c3024f5,#111e16f5);box-shadow:0 0 15px #c6b15f33}
.word-bonus-banner strong{font-size:19px;color:#ffe6a2;letter-spacing:1px}
.word-bonus-banner p{font-size:12px}.word-bonus-banner p b{color:#e8d997}
.stage-combat .combat .guess-row.ash-row{position:relative;display:flex;align-items:center;justify-content:center}
.stage-combat .combat .ash-caption{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform:none;margin:0;padding:0;line-height:1;letter-spacing:.8px;font:italic 10px/1 Georgia}
/* A short impact, followed by the creature's residue. No sustained flashing. */
.stage-combat:has(.enemyAttack){animation:player-impact .48s ease-out var(--counter-contact,250ms) both}
.stage-combat:has(.room-5.enemyAttack){animation:dragon-impact .6s ease-out 780ms both}
@keyframes player-impact{0%,100%{transform:none}12%{transform:translate(-5px,3px)}28%{transform:translate(4px,-2px)}50%{transform:translate(-2px,1px)}75%{transform:translate(1px,0)}}
@keyframes dragon-impact{0%,100%{transform:none}12%{transform:translate(-9px,6px)}28%{transform:translate(7px,-4px)}49%{transform:translate(-4px,2px)}75%{transform:translate(2px,-1px)}}
.combat.enemyAttack .floating-damage.player-hit{font:700 30px/1 Georgia;color:#ffe5d0;text-shadow:0 2px 2px #230b0e,0 0 12px #bb3938}
/* The timing track never changes geometry after the stop tap. */
.critical-focus .critical-window{animation:none;transform:none;contain:layout;isolation:isolate}
.critical-focus .strike-gauge{height:26px;touch-action:manipulation}
.critical-focus .gauge-runner{backface-visibility:hidden;contain:layout style;will-change:transform;transition:none!important}
.critical-focus .timing-strike{touch-action:manipulation}
.critical-focus.timing-locked .critical-window h2{animation:none}
.critical-focus.timing-locked .critical-window button,.critical-focus.timing-locked .timing-controls{visibility:hidden}
.critical-focus.timing-locked .critical-number{position:absolute;left:0;right:0;bottom:60px;height:60px;margin:0;pointer-events:none;animation:none;font:700 44px/60px Georgia}
/* One contained result ritual, with time to read before entering the loot. */
.shell.stage>.word-result-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:45px 20px 55px;max-width:620px;height:100%;min-height:0;text-align:center}
.stage-word-result:before{background:linear-gradient(#07120cc9,#111e15de)!important}
.word-result-screen .eyebrow{font:700 11px Georgia;letter-spacing:2px;color:#dec58a;margin:0 0 16px}
.word-reveal-sigil{font:48px/1 Georgia;color:#e4c784;text-shadow:0 0 28px #e8be5d66;margin:0 0 12px;animation:victory-stamp .6s ease-out both}
.word-result-screen h1{font:30px/1.2 'Knightle Herald',Georgia;color:#ffebba;letter-spacing:2px;margin:0 0 9px}
.word-result-screen .word-reveal-intro{font:14px/1.4 Georgia;color:#d9d7bf;margin:0 0 28px}
.answer-reveal-tiles{display:flex;gap:6px;width:min(100%,calc(var(--letters)*51px));justify-content:center}
.answer-tile{display:grid;place-items:center;flex:1;min-width:0;aspect-ratio:1/1.16;max-width:48px;border:1px solid #9b986a55;box-shadow:inset 0 0 12px #0007;background:#1a2921}
.answer-tile b{opacity:0;font:700 28px Georgia;color:#fff2cf}
.answer-tile.revealed{border-color:#d8c486;background:linear-gradient(#526c46,#2b4531);box-shadow:0 0 13px #d2c57c33,inset 0 1px #f1e4a74d;animation:answer-land .4s ease-out both}
.answer-tile.revealed b{opacity:1;animation:answer-ink .3s ease-out both}
@keyframes answer-land{from{transform:translateY(-8px);filter:brightness(1.9)}to{transform:none;filter:none}}
@keyframes answer-ink{from{opacity:0}to{opacity:1}}
.word-reveal-outcome{min-height:32px;margin:20px 0 22px;font:700 11px/1.6 Georgia;letter-spacing:.5px;color:#dcdbb3;max-width:300px}
.word-result-screen .word-result-continue{width:min(290px,100%);min-height:45px;margin:0;font:700 12px Georgia;opacity:0;visibility:hidden;transition:opacity .4s}
.word-result-screen.answer-complete .word-result-continue{opacity:1;visibility:visible}
.experience-screen{position:relative}
.xp-reward-packet{position:absolute;z-index:8;top:45%;left:50%;width:240px;margin-left:-120px;text-align:center;pointer-events:none;color:#ffe8a5;filter:drop-shadow(0 2px 3px #041007);transform:translateY(calc(var(--flight-y,100px)*var(--flight-progress,0))) scale(calc(1 - var(--flight-progress,0)*.65));opacity:calc(1 - var(--flight-progress,0)*.8);will-change:transform,opacity}
.xp-reward-packet strong{display:block;font:700 27px/1.2 Georgia;text-shadow:0 0 17px #e6c26580}
.xp-reward-packet span{display:block;font:700 10px/1.4 Georgia;letter-spacing:1.3px;margin-top:4px;background:#132218de;padding:3px 6px}
.xp-reward-packet[data-phase=fill],.xp-reward-packet[data-phase=done]{visibility:hidden}
.legacy-xp-track.xp-arrival{animation:xp-lands .6s ease-out}
@keyframes xp-lands{0%{box-shadow:0 0 25px #ffe69e;filter:brightness(1.7)}100%{filter:none}}
@media(max-height:650px){.stage-combat .combat .combat-foot{grid-template-rows:27px var(--board-height) 38px auto;row-gap:2px}.stage-combat .combat .turn-clock{height:36px;grid-template-rows:24px 7px}.stage-combat .combat .turn-clock b{font-size:25px}.stage-combat .combat .rune-board-controls .combat-purse{bottom:-32px}.word-result-screen h1{font-size:27px}.word-result-screen .word-reveal-intro{margin-bottom:20px}.word-reveal-outcome{margin:15px 0 18px}}
@media(max-width:350px){.stage-combat .combat .turn-clock{width:calc(100% - 96px);column-gap:5px;letter-spacing:.5px;font-size:8px}.stage-combat .combat .keyboard .key.strike-key{font-size:11px}.counter-warning strong{font-size:11px}.word-bonus-banner strong{font-size:16px}.word-bonus-banner p{font-size:11px}.stage-combat .combat .heart-icon{width:17px;min-width:17px}.answer-tile b{font-size:25px}}
@media(orientation:landscape) and (max-height:500px){.stage-combat .combat .combat-foot{display:contents}.stage-combat .combat .turn-clock{width:100%;height:38px;margin-bottom:3px}.stage-combat .combat .rune-board-controls .combat-purse{bottom:-20px}.shell.stage>.word-result-screen{padding:18px;max-width:700px}.word-result-screen .eyebrow{margin-bottom:5px}.word-reveal-sigil{display:none}.word-result-screen h1{font-size:24px}.word-result-screen .word-reveal-intro{margin-bottom:10px}.answer-tile{max-width:32px}.answer-tile b{font-size:21px}.word-reveal-outcome{min-height:20px;margin:8px 0}.word-result-screen .word-result-continue{min-height:33px}.encounter-victory strong{font-size:22px}.encounter-victory p{font-size:11px}.word-bonus-banner{padding:4px}.word-bonus-banner strong{font-size:14px}.word-bonus-banner p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.counter-warning,.encounter-victory,.hero-warning,.answer-tile.revealed,.answer-tile.revealed b,.stage-combat:has(.enemyAttack),.legacy-xp-track.xp-arrival{animation:none!important}.word-result-screen .word-result-continue{transition:none}}
/* Reward amounts have a reserved home between the rank title and XP bar. */
.xp-reward-dock{position:relative;width:100%;height:50px;min-height:50px;flex:none;margin:2px 0 8px}
.xp-reward-dock .xp-reward-packet{top:0}
.xp-reward-packet[data-phase=done]{visibility:visible;opacity:1;transform:none}
.xp-reward-packet[data-phase=done] strong{font-size:23px}
.xp-reward-packet[data-phase=done] span{background:none;font-size:9px;color:#c6c9ad}
@media(orientation:landscape) and (max-height:500px){.xp-reward-dock{height:38px;min-height:38px}.xp-reward-packet strong{font-size:22px}.xp-reward-packet span{font-size:8px}}
/* A small inward nudge; the board and provisions retain their existing sizes. */
.stage-combat .combat .rune-board-controls .consumable-belt{left:-4px}
/* Using a draught has its own bottle, trail and readable receipt. */
.consumable-belt.using-healing .draught-slot:not(.shield-slot),.consumable-belt.using-shield .shield-slot{opacity:1!important}
.using-healing .draught-slot:not(.shield-slot)>.provision-icon,.using-shield .shield-slot>.provision-icon{animation:draught-tip .7s ease-in-out both;animation-delay:var(--use-age)}
@keyframes draught-tip{0%{transform:none;filter:none}24%{transform:translateY(-5px) rotate(-22deg) scale(1.16);filter:brightness(1.7)}48%{transform:translateY(-5px) rotate(-32deg) scale(1.16)}100%{transform:none;filter:none}}
.consumable-use{position:fixed;inset:0;z-index:70;pointer-events:none;--use-color:#b9eb9d;--use-dark:#1b3727;--use-bright:#f2ffd6}
.consumable-use.use-shield{--use-color:#a9dbea;--use-dark:#1e3541;--use-bright:#edfbff}
.use-bottle{position:absolute;left:var(--sx);top:var(--sy);width:34px;height:40px;transform:translate(-50%,-50%);animation:draught-delivery 1.1s cubic-bezier(.2,.6,.3,1) both;animation-delay:var(--use-age);filter:drop-shadow(0 0 7px var(--use-color))}
.use-bottle canvas{width:34px;height:40px;image-rendering:pixelated}
@keyframes draught-delivery{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}14%{opacity:1;transform:translate(-50%,calc(-50% - 10px)) rotate(-25deg) scale(1.25)}40%{opacity:1;transform:translate(-50%,calc(-50% - 16px)) rotate(-35deg) scale(1.25)}85%,100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(10deg) scale(.4)}}
.use-particles i{position:absolute;left:var(--sx);top:var(--sy);width:3px;height:5px;background:var(--use-color);box-shadow:0 0 6px var(--use-color);animation:draught-stream .8s ease-in both;animation-delay:calc(var(--use-age) + 250ms + var(--n)*35ms)}
@keyframes draught-stream{0%{opacity:0;transform:translate(-2px,-15px)}15%{opacity:1}55%{opacity:1;transform:translate(calc(var(--dx)*.5 + (var(--n) - 5)*2px),calc(var(--dy)*.5 - 25px))}100%{opacity:0;transform:translate(var(--dx),var(--dy))}}
.use-bloom{position:absolute;left:var(--tx);top:var(--ty);width:58px;height:58px;transform:translate(-50%,-50%);color:var(--use-bright);animation:draught-blessing 1.35s ease-out both;animation-delay:calc(var(--use-age) + 650ms);background:radial-gradient(ellipse,var(--use-color),transparent 68%)}
.use-bloom b{position:absolute;inset:0;display:grid;place-items:center;font:24px Georgia;color:var(--use-bright);text-shadow:0 0 8px var(--use-color)}
.use-bloom i{position:absolute;left:50%;top:50%;width:3px;height:5px;background:var(--use-color);transform:rotate(calc(var(--n)*45deg)) translateY(-27px)}
@keyframes draught-blessing{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}20%{opacity:.95;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}
.use-confirmation{position:absolute;left:var(--cx);top:var(--cy);width:220px;box-sizing:border-box;transform:translateX(-50%);padding:8px 10px;border:1px solid var(--use-color);background:linear-gradient(110deg,var(--use-dark),#101d18f5);box-shadow:0 0 18px #06130aaa;text-align:center;animation:draught-receipt 2.2s ease-out both;animation-delay:calc(var(--use-age) + 300ms);color:var(--use-bright)}
.use-confirmation strong{display:block;font:700 14px/1.2 Georgia;letter-spacing:.6px}
.use-confirmation small{display:block;margin-top:4px;font:11px/1.2 Georgia;color:var(--use-color)}
@keyframes draught-receipt{0%{opacity:0;transform:translate(-50%,8px)}15%,82%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-5px)}}
@media(prefers-reduced-motion:reduce){.use-bottle,.use-particles,.use-bloom{display:none}.using-healing .provision-icon,.using-shield .provision-icon{animation:none}.use-confirmation{animation:none;opacity:1}}

/* V68: symmetric tile gutters and a timepiece on the same centerline. */
.stage-combat .combat .rune-board-controls,.stage-combat .combat.boss-combat .rune-board-controls{grid-template-columns:44px minmax(0,1fr) 44px}
.stage-combat .combat .rune-board-controls .guess-board{grid-column:2;justify-self:center}
.stage-combat .combat .rune-board-controls .consumable-belt{grid-column:3;left:4px}
.stage-combat .combat .command-line,.stage-combat .combat .command-line.has-elixir{background:linear-gradient(#334039d9,#202f29e8);border:1px solid #a6b4a43a;border-radius:2px;box-shadow:inset 0 1px #d1d4bd0d;box-sizing:border-box}
.stage-combat .combat .command-line .knight-status{background:none;border:0;box-shadow:none}
.stage-combat .combat .command-line>.combat-purse{position:absolute;left:7px;right:auto;top:50%;bottom:auto;transform:translateY(-50%);margin:0;max-width:105px;min-width:0;width:max-content;box-sizing:border-box;text-align:left;z-index:2}
.stage-combat .combat .command-line>.combat-purse>div{justify-content:flex-start;gap:5px;min-height:20px}
.stage-combat .combat .command-line>.combat-purse b{font:700 12px/1 Georgia;letter-spacing:.1px;color:#f1dba6;white-space:nowrap}
.stage-combat .combat .command-line>.combat-purse .coin-icon{width:17px;height:17px}
.stage-combat .combat .command-line>.combat-purse small{display:none}
.stage-combat .combat .command-line>.xp-boost-icon{left:7px;top:-14px;font:700 8px/1 Georgia}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock{position:relative;display:block;box-sizing:border-box;width:min(248px,calc(100% - 88px));max-width:none;height:36px;margin:0 auto;padding:0;align-self:center;overflow:visible}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock [data-turn-label]{position:absolute;inset:3px 0 5px;display:grid;place-items:center;z-index:3;box-sizing:border-box;padding:0 28px;text-align:center;font:700 9px/1 Georgia;letter-spacing:.8px;text-shadow:0 1px 3px #060d09;color:#fff1d4;pointer-events:none;overflow:hidden;white-space:nowrap}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock b{position:absolute;left:calc(100% + 7px);top:0;width:34px;margin:0;font:700 27px/1 Georgia;letter-spacing:0;text-align:center;color:#fff1c8}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-seconds-unit{position:absolute;left:calc(100% + 7px);top:27px;width:34px;text-align:center;font:700 6px/1 Georgia;letter-spacing:1.1px;color:#d4c7a9}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock-track{position:absolute;inset:3px 0 5px;width:100%;height:28px;box-sizing:border-box;border:1px solid #c2b68a;background:#0c1814eb;box-shadow:inset 0 0 0 2px #2a392e,0 1px 2px #050c09;border-radius:2px;overflow:hidden}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock-track i{background:linear-gradient(#87977c,#4c614d);box-shadow:1px 0 4px #f8e4ac55;transition:none}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock-track:before,:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock-track:after{display:block;content:'';position:absolute;z-index:2;left:4px;right:4px;top:1px;bottom:auto;width:auto;height:3px;background:linear-gradient(90deg,#f0deaa99 0 1px,transparent 1px) 0 0/10% 100%;pointer-events:none}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock-track:before{top:auto;bottom:1px;opacity:.6}
.strike-timepiece{position:absolute;z-index:4;left:7px;top:7px;width:20px;height:20px;overflow:visible;fill:#1d2c23;stroke:#f2dfae;stroke-width:1.1;stroke-linecap:square;filter:drop-shadow(0 1px 1px #000)}
.strike-timepiece .clock-hand{transform:rotate(var(--clock-angle,0deg));transform-origin:10px 10px}.strike-timepiece .clock-pin{fill:#f9edc9;stroke:none}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock.clock-danger .strike-timepiece{stroke:#ffd2b7}:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock.clock-danger b{color:#ffd0b3}
@media(max-width:350px){.stage-combat .combat .command-line>.combat-purse{left:5px}.stage-combat .combat .command-line>.combat-purse b{font-size:11px}.stage-combat .combat .turn-clock [data-turn-label]{font-size:8px;letter-spacing:.3px}.stage-combat .combat .turn-clock b{font-size:25px}.stage-combat .combat .turn-seconds-unit{top:26px}}
@media(orientation:landscape) and (max-height:500px){.stage-combat .combat .rune-board-controls,.stage-combat .combat.boss-combat .rune-board-controls{grid-template-columns:minmax(0,1fr) 8px 32px}.stage-combat .combat .rune-board-controls .guess-board{grid-column:1}.stage-combat .combat .rune-board-controls .consumable-belt{grid-column:3;left:-4px}.stage-combat .combat .turn-clock{width:calc(100% - 76px);margin:0 auto 3px}.stage-combat .combat .command-line>.combat-purse b{font-size:12px}}
:is(.stage-combat .combat,.tutorial-clock-demo) .turn-clock.clock-danger .turn-clock-track i{background:linear-gradient(#f9ba91,#b34f3e)}
