/* Bigger carved stones, with supplies outside their shared center line. */
.rune-board-controls .tile{width:58px;height:31px;font-size:19px}
.rune-board-controls .guess-row{height:31px;gap:6px}
.rune-board-controls .guess-row.current,.rune-board-controls .guess-row.last-attack,.rune-board-controls .guess-row.current .tile,.rune-board-controls .guess-row.last-attack .tile{height:56px}
.rune-board-controls .guess-row.current .tile,.rune-board-controls .guess-row.last-attack .tile{font-size:29px}
.rune-board-controls .seven-runes .tile{width:52px}
.rune-board-controls .consumable-belt{left:calc(50% + 244px)}
.combat-entering .combat-foot,.combat-entering .keyboard{animation-duration:1.5s}
/* The title is a second award, with its own crescendo and readable hold. */
.experience-screen [data-xp-title]{position:relative;transform-origin:center;min-height:32px}
.experience-screen .title-promoted{animation:title-crowned 1.2s cubic-bezier(.16,.8,.3,1) both}
.title-promoted:before,.title-promoted:after{content:'✦';position:absolute;top:50%;color:#e5dd9d;font:18px 'Knightle Herald';animation:title-stars 1.2s ease-out both}
.title-promoted:before{right:calc(100% + 9px)}.title-promoted:after{left:calc(100% + 9px)}
.rank-announcement.title-earned{color:#f1d68e;animation:title-caption 1.2s ease both;text-shadow:0 0 10px #e6b15455}
@keyframes title-crowned{0%{opacity:.2;transform:scale(.65) translateY(6px);color:#c1e5e0}24%{opacity:1;transform:scale(1.2) translateY(-2px);color:#fff1bc;text-shadow:0 0 18px #ffd385aa}45%{transform:scale(.97);color:#b9e0ed}65%{transform:scale(1.035);color:#e6b5e7}100%{transform:none;color:#e9d6b4;text-shadow:none}}
@keyframes title-stars{0%{opacity:0;translate:0 -50%;scale:.2}30%{opacity:1;scale:1.25}100%{opacity:0;translate:0 -100%;scale:.7}}
@keyframes title-caption{0%{opacity:0;transform:translateY(8px)}25%,100%{opacity:1;transform:none}}
.xp-test-ascension{border:0;border-bottom:1px solid #a98d58;background:none;color:#dcca96;padding:12px 8px;margin-top:12px;font:7px 'Knightle Quill';letter-spacing:.7px;opacity:0;pointer-events:none}
.xp-complete .xp-test-ascension{opacity:1;pointer-events:auto;transition:opacity .4s}
.home .portrait-button{padding:10px;line-height:0}
.home .portrait-button .scene{margin:0;height:auto;max-height:none}
.home .portrait-button .pixel-scene{margin:0;vertical-align:top}
.oath-enter-locked{background:linear-gradient(#463e2c,#29291e)!important;color:#cdbb91!important;display:flex;align-items:center;justify-content:center;gap:12px}
.oath-sealed-copy{font:italic 12px/1.5 Georgia;color:#c2b393;text-align:center;margin:11px 0 0}
/* A single impact, with bright color sustained rather than repeated flashes. */
.hoard-opening .hoard-theater{animation:treasury-pop-shake .65s .46s ease-out both}
@keyframes treasury-pop-shake{0%{translate:0 0}16%{translate:-3px 3px}33%{translate:3px -2px}52%{translate:-2px 1px}72%{translate:1px 0}100%{translate:0 0}}
@media(max-width:850px){.rune-board-controls .consumable-belt{left:calc(50% + 214px)}}
@media(max-width:700px){
 .rune-board-controls .tile{width:min(50px,calc((100vw - 94px)/5));height:29px;font-size:18px}
 .rune-board-controls .guess-row{height:29px;gap:4px}
 .rune-board-controls .seven-runes .tile{width:min(44px,calc((100vw - 110px)/7))}
 .rune-board-controls .seven-runes .guess-row{gap:3px}
 .rune-board-controls .guess-row.current,.rune-board-controls .guess-row.last-attack,.rune-board-controls .guess-row.current .tile,.rune-board-controls .guess-row.last-attack .tile{height:53px}
 .rune-board-controls .guess-row.current .tile,.rune-board-controls .guess-row.last-attack .tile{font-size:27px}
 .rune-board-controls .consumable-belt{left:calc(50% + min(50vw - 44px,220px));width:40px}
 .rune-board-controls .draught-slot{width:40px;min-width:40px}
 .rune-board-controls .row-damage{right:calc(100% + 3px);width:38px;font-size:5px}
 .home .portrait-button{padding:8px}
 .experience-screen .title-promoted{font-size:22px}
}
@media(min-width:701px) and (max-height:900px){.rune-board-controls .tile,.rune-board-controls .guess-row{height:28px}.rune-board-controls .guess-row.current,.rune-board-controls .guess-row.last-attack,.rune-board-controls .guess-row.current .tile,.rune-board-controls .guess-row.last-attack .tile{height:52px}.battle-wrap{min-height:80px}.combat .command-line{margin-bottom:8px}.combat .inscription{margin-top:5px}.combat .combat-legend{margin-top:6px}}
@media(max-height:760px) and (max-width:700px){.rune-board-controls .tile,.rune-board-controls .guess-row{height:26px}.rune-board-controls .guess-row.current,.rune-board-controls .guess-row.last-attack,.rune-board-controls .guess-row.current .tile,.rune-board-controls .guess-row.last-attack .tile{height:49px}.battle-wrap{min-height:66px}}
@media(prefers-reduced-motion:reduce){.combat-entering .guess-row.current .tile,.combat-entering .guess-row.current .tile:after,.experience-screen .title-promoted,.title-promoted:before,.title-promoted:after,.rank-announcement.title-earned,.hoard-opening .hoard-theater{animation:none}.guess-row.current .tile{transition:none}}

.death-veil{animation:chamber-extinguish 2.5s 3.4s ease forwards}
.death-epitaph{animation-delay:3.5s}

/* Reward redraws restore the animation age as well as the visible coin count. */
.loot-revealed .treasure-item{animation-delay:calc(320ms + var(--order)*1000ms - var(--loot-age,0ms))!important}
.value-counting .relic-figure{animation-delay:var(--count-age,0ms)}
.value-settled .relic-figure,.value-settled .treasure-value,.value-settled .relic-sparks i{animation-delay:var(--settle-age,0ms)}
.value-settled .treasure-value b{animation-delay:var(--settle-age,0ms)!important}
.loot-total.total-visible:after{animation-delay:var(--total-age,0ms)}
.loot-total.tally-settled{animation-delay:var(--total-settle-age,0ms)}
.loot-held .treasure-item,.loot-held .treasure-item *,.loot-held .loot-total,.loot-held .loot-total:after{animation-play-state:paused!important}

/* The room keeps one floor anchor while its carved rows hand off the turn. */
.stage-combat .combat .battle-wrap{min-height:110px}
.rune-board-controls .guess-board{--row-inactive:31px;--row-active:56px;--rune-small:19px;--rune-large:29px;--row-space:4px;height:auto;min-height:calc((var(--row-count) - 1)*(var(--row-inactive) + var(--row-space)) + var(--row-active) + 4px);padding-top:2px;padding-bottom:2px;gap:var(--row-space)}
.rune-board-controls .guess-board>.guess-row{height:var(--row-inactive);margin:0;flex:none;align-items:center}
.rune-board-controls .guess-board>.guess-row.row-seat{height:var(--row-active)}
.rune-board-controls .guess-board>.guess-row>.tile{height:100%;font-size:var(--rune-small);transition:none}
.rune-board-controls .guess-board>.row-seat>.tile{font-size:var(--rune-large)}
.rune-board-controls .guess-board>.row-waking{animation:carved-row-wakes .68s cubic-bezier(.3,0,.2,1) both;animation-delay:var(--wake-age)}
.rune-board-controls .guess-board>.row-retiring{animation:carved-row-rests .68s cubic-bezier(.3,0,.2,1) both;animation-delay:var(--wake-age)}
.row-waking .tile-letter{animation:carved-letter-wakes .68s cubic-bezier(.3,0,.2,1) both;animation-delay:var(--wake-age)}
.row-retiring .tile-letter{animation:carved-letter-rests .68s cubic-bezier(.3,0,.2,1) both;animation-delay:var(--wake-age)}
.guess-row.current.row-waking .tile:before{animation:carved-edge-wakes .68s ease both;animation-delay:calc(var(--wake-age) + var(--tile-index)*35ms)}
.guess-row.current.row-waking .tile:after{animation:carved-fill-wakes .68s ease both;animation-delay:calc(var(--wake-age) + var(--tile-index)*35ms)}
@keyframes carved-row-wakes{from{height:var(--row-inactive)}to{height:var(--row-active)}}
@keyframes carved-row-rests{from{height:var(--row-active)}to{height:var(--row-inactive)}}
@keyframes carved-letter-wakes{from{font-size:var(--rune-small)}to{font-size:var(--rune-large)}}
@keyframes carved-letter-rests{from{font-size:var(--rune-large)}to{font-size:var(--rune-small)}}
@keyframes carved-edge-wakes{from{background-color:#8c8c6559}65%{background-color:#debf7cc9}to{background-color:#c3a168b5}}
@keyframes carved-fill-wakes{from{background-color:#17291ba3}to{background-color:#3d482db3}}
@media(min-width:701px) and (max-height:900px){.rune-board-controls .guess-board{--row-inactive:28px;--row-active:52px}}
@media(max-width:700px){.rune-board-controls .guess-board{--row-inactive:29px;--row-active:53px;--rune-small:18px;--rune-large:27px;--row-space:3px}}
@media(max-height:760px) and (max-width:700px){.rune-board-controls .guess-board{--row-inactive:26px;--row-active:49px}}
.rune-board-controls .guess-board:has(.guess-row:nth-child(7)){--row-inactive:22px}

/* Difficulty changes warm the same gate scene, without re-entering it. */
.modal-backdrop.quest-prelude,.modal-backdrop.quest-prelude.oath-hard{isolation:isolate;background:linear-gradient(90deg,#07100de8,#0b1009a8 50%,#07100de8),linear-gradient(0deg,#07110e,transparent 75%)}
.quest-prelude:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#6b302845,transparent 67%),linear-gradient(90deg,#200b0b55,#26160c55,#200b0b55);opacity:0;transition:opacity .4s;z-index:-1;pointer-events:none}
.quest-prelude.oath-hard:before{opacity:1}
.oath-heading h2{min-height:1.2em;transition:color .3s}
.oath-heading>p:last-child{min-height:3em}
.oath-sealed-copy{min-height:3em;max-width:350px;margin:11px auto 0}
.oath-sealed-copy[aria-hidden=true]{visibility:hidden}
.oath-choice{transition:background-color .3s,border-color .3s,box-shadow .3s,filter .15s}

/* One unscaled standing pose, then a quiet dissolve to the kneeling pose. */
.death-screen .death-scene{animation:fallen-pose-hold 8s .7s linear both;transform:none}
@keyframes fallen-pose-hold{0%,45%{opacity:1}80%,100%{opacity:.24}}
.death-veil{opacity:0;animation-delay:4.1s}
.death-epitaph{animation-delay:4.3s}
@media(prefers-reduced-motion:reduce){.row-waking,.row-retiring,.row-waking .tile-letter,.row-retiring .tile-letter,.guess-row.current.row-waking .tile:before,.guess-row.current.row-waking .tile:after{animation:none!important}.quest-prelude:before,.oath-heading h2,.oath-choice{transition:none}.death-screen .death-scene{animation:none}.death-epitaph{animation-delay:1.4s}.death-return{animation-delay:2s}.death-veil{animation:none;opacity:0}}
