/* The wallet has its own left margin; the hourglass keeps the screen center. */
.combat .rune-board-controls .combat-purse{left:calc(50% - min(50vw - 12px,260px));right:auto;bottom:-29px;min-width:0;max-width:none;width:max-content;text-align:left}
.combat .combat-purse>div{justify-content:flex-start}.combat .combat-purse small{display:none}
.combat .turn-clock{width:270px;max-width:calc(100vw - 220px);margin:8px auto 4px;justify-content:center}
.combat .command-line{gap:12px;align-items:center}
.combat .attack-count{order:1;position:relative;margin-right:0;flex-shrink:0}
.combat .knight-status{order:0;margin-right:auto;gap:7px}
.combat .command-line.has-elixir{padding-top:7px;margin-top:23px}
.attack-count .xp-boost-icon{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(100% + 15px);width:28px;height:17px;display:block;color:#9de6ba;filter:drop-shadow(0 1px #07120d);line-height:1;letter-spacing:0}
.xp-boost-icon svg{width:28px;height:17px;overflow:visible}.xp-boost-icon text{font:bold 12px 'Knightle Herald';fill:currentColor}
.combat .knight-status .ward-rack{position:static;margin-left:2px}

/* Oath frames have a fixed center and a Roman seal fitted into the bottom rail. */
[data-tier="1"]{--oath-metal:#ffad69;--oath-shadow:#e45a42;--oath-color:#ff674a;--oath-glow:#f4804d55}
[data-tier="2"]{--oath-metal:#bdf5ff;--oath-shadow:#479bd8;--oath-color:#61cfe8;--oath-glow:#70cfff55}
[data-tier="3"]{--oath-metal:#fff0a2;--oath-shadow:#d99728;--oath-color:#efc047;--oath-glow:#ffd44e55}
[data-tier="4"]{--oath-metal:#e7beff;--oath-shadow:#a36ce6;--oath-color:#c077f4;--oath-glow:#c693ff66}
[data-tier="5"]{--oath-metal:#fff1c6;--oath-shadow:#62c5bc;--oath-color:#ec96d9;--oath-glow:#a2e8e366}
.rank-caption{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.rank-level-label{font:5px 'Knightle Quill';letter-spacing:2px;color:#b5b59a}
.rank-crest,.rank-crest:not([data-tier="0"]){box-sizing:border-box;position:relative;display:block;width:86px;height:86px;min-width:86px;min-height:86px;padding:0;margin:0;border:0;outline:0;clip-path:none;background:none;box-shadow:none;isolation:isolate}
.rank-crest:before,.rank-crest:after{display:none!important}
.rank-crest .oath-frame{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 1px #040a06) drop-shadow(0 0 7px var(--oath-glow))}
.oath-frame .oath-wings{fill:var(--oath-shadow);stroke:var(--oath-metal);stroke-width:1}
.oath-frame .oath-wing-edge{fill:none;stroke:var(--oath-color);stroke-width:2}
.oath-frame .oath-rim{fill:var(--oath-metal);stroke:#4b321e;stroke-width:1.2}
.oath-frame .oath-inlay{fill:var(--oath-shadow);stroke:var(--oath-color);stroke-width:1}
.oath-frame .oath-inner{fill:#102018;stroke:#442f22;stroke-width:1.5}
.oath-frame .oath-crown{fill:var(--oath-metal);stroke:#6b3e21;stroke-width:1}
.oath-frame .oath-jewel{fill:var(--oath-color);stroke:#fff0b9;stroke-width:.8}
.oath-frame .oath-seal{fill:#34281d;stroke:var(--oath-metal);stroke-width:1.6}
.oath-frame .oath-seal-edge{fill:none;stroke:var(--oath-color);stroke-width:1}
.oath-frame text{fill:#fff0ca;font:13px 'Knightle Herald';letter-spacing:0}
.rank-crest canvas{position:absolute;width:66%;height:66%;left:50%;top:46%;transform:translate(-50%,-50%);image-rendering:auto}
.rank-crest[data-tier="0"]{width:58px;height:48px;min-width:58px;min-height:48px}
.rank-crest[data-tier="0"] canvas{width:64px;height:64px;top:50%}
.home .legacy-rank strong{display:block;margin-top:3px}.home .level-panel>small{line-height:1.7}

/* The light is scenery. It never changes the sprite's opacity or brightness. */
.death-screen .death-scene{opacity:1!important;filter:none!important;animation:none!important;transform:none!important;background:none}
.death-screen .death-light{z-index:0;mix-blend-mode:normal}.death-screen .death-veil{display:none}
.death-impact{position:absolute;inset:0;z-index:4;pointer-events:none}
.death-impact-white{background:#fff7e6;opacity:var(--hurt-white,0)}.death-impact-black{background:#000;opacity:var(--hurt-black,0)}
.death-screen .death-epitaph,.death-screen .death-return{animation:none;opacity:0;transition:opacity 1.2s}
.death-screen.epitaph-ready .death-epitaph,.death-screen.epitaph-ready .death-return{opacity:1}
.death-screen.epitaph-ready .death-return{transition-delay:.45s}
.death-after-choice .death-epitaph,.death-after-choice .death-return{animation-delay:0s}
.last-stand-backdrop{z-index:80!important;animation:second-chance-shroud .85s ease both;background:radial-gradient(ellipse at 50% 47%,#17352a55,#030806bb)}
.last-stand-backdrop .last-stand{animation:second-chance-arrives 1s cubic-bezier(.18,.65,.22,1) both;transform-origin:50% 70%;box-shadow:0 0 0 4px #090f0b,0 0 45px #65b98d22,0 25px 60px #000b}
.last-stand-backdrop .revive-reliquary{animation:revive-lantern 1.3s ease both}
.last-stand-backdrop .revive-benefits,.last-stand-backdrop .revive-promise,.last-stand-backdrop .revive-use,.last-stand-backdrop .revive-surrender{animation:second-chance-copy .65s .35s ease both}
.revival-rising:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,#77dca22a,transparent 60%);animation:renewed-life 1.8s ease both;z-index:0}
@keyframes second-chance-shroud{from{opacity:0}to{opacity:1}}
@keyframes second-chance-arrives{from{opacity:0;transform:translateY(32px) scale(.94);filter:blur(3px)}65%{opacity:1;filter:none}to{opacity:1;transform:none;filter:none}}
@keyframes second-chance-copy{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes revive-lantern{0%{opacity:0;filter:brightness(2.4) drop-shadow(0 0 20px #92efbc);transform:translateY(12px)}65%{opacity:1;filter:brightness(1.3) drop-shadow(0 0 12px #92efbc)}100%{opacity:1;filter:none;transform:none}}
@keyframes renewed-life{0%,100%{opacity:0}40%{opacity:1}}

/* A complete, deliberate Ascension ceremony, after the new oath is saved. */
.oath-ceremony{position:fixed;inset:0 0 var(--ad-space);isolation:isolate;z-index:50;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px;color:#ebdfbc;background:radial-gradient(ellipse at 50% 42%,#333326,#0c1712 45%,#030906 85%)}
.oath-ceremony>.eyebrow{font:7px/1.8 'Knightle Quill';letter-spacing:2px;color:#b9b09a;margin:0 0 13px;z-index:2}
.oath-ceremony h1{font:clamp(24px,5vw,39px)/1.3 'Knightle Herald';letter-spacing:3px;margin:0 0 14px;z-index:2}
.oath-heart{width:220px;height:220px;position:relative;display:grid;place-items:center;z-index:2;margin:5px 0 0}
.oath-old-level{position:absolute;inset:0;display:grid;place-items:center;font:100px/1 'Knightle Herald';text-shadow:0 0 20px #d8c77655;transition:opacity .7s,transform 1s,filter .7s}
.oath-new-rank{opacity:0;transform:scale(.65);transition:opacity .7s,transform 1s cubic-bezier(.16,.82,.23,1.13);display:grid;place-items:center}
.oath-new-rank .rank-crest{width:166px;height:166px;margin:0}
.oath-new-rank .oath-frame{filter:drop-shadow(0 3px 2px #030905) drop-shadow(0 0 20px var(--oath-glow))}
.oath-rays{position:absolute;inset:-50%;z-index:-1;opacity:0;background:repeating-conic-gradient(from 0deg,var(--oath-glow) 0deg,transparent 11deg,transparent 28deg,var(--oath-glow) 30deg);mask-image:radial-gradient(circle,#000,transparent 50%);transition:opacity .7s;transform:rotate(calc(var(--oath-progress,0) * 55deg))}
.oath-orbit{position:absolute;left:50%;top:44%;width:1px;height:1px;pointer-events:none;z-index:1}
.oath-orbit i{position:absolute;width:3px;height:5px;opacity:0;background:var(--oath-metal);transform:rotate(calc(var(--ember) * 15deg)) translateY(22px);box-shadow:0 0 7px var(--oath-color)}
.oath-shockwave{position:absolute;inset:40px;border:2px solid var(--oath-metal);border-radius:50%;opacity:0;pointer-events:none}
.oath-earned-title{font:clamp(24px,5vw,32px) 'Knightle Herald';letter-spacing:2px;color:var(--oath-metal);margin:16px 0 7px;opacity:0;transform:translateY(12px);transition:opacity .8s,transform .8s}
.oath-earned-copy{font:italic 15px/1.6 Georgia;color:#c0c6af;margin:0 0 14px;opacity:0;transition:opacity .8s}
.oath-earned-boons{display:flex;gap:32px;justify-content:center;border-block:1px solid #adab6b44;padding:13px 15px;width:min(350px,100%);opacity:0;transition:opacity .8s}
.oath-earned-boons span{font:6px/1.5 'Knightle Quill';color:#b2bda4}.oath-earned-boons b{display:block;font:27px 'Knightle Herald';color:#ead7a5;margin-bottom:6px}
.oath-continue{opacity:0;pointer-events:none;margin:23px 0 0;transition:opacity .6s;max-width:100%;font-size:10px}
.oath-ceremony[data-phase="release"] .oath-old-level{transform:scale(1.17);filter:brightness(1.5);opacity:0}
.oath-ceremony[data-phase="release"] .oath-rays,.oath-ceremony[data-phase="forge"] .oath-rays,.oath-ceremony[data-phase="crowned"] .oath-rays{opacity:.9}
.oath-ceremony:not([data-phase="gather"]) .oath-orbit i{animation:oath-embers 2.8s calc(var(--ember) * 19ms) ease-out both}
.oath-ceremony:not([data-phase="gather"]) .oath-shockwave{animation:oath-ring 1.5s ease-out both}
.oath-ceremony[data-phase="forge"] .oath-old-level,.oath-ceremony[data-phase="crowned"] .oath-old-level{opacity:0;transform:scale(1.45);filter:blur(6px)}
.oath-ceremony[data-phase="forge"] .oath-new-rank,.oath-ceremony[data-phase="crowned"] .oath-new-rank{opacity:1;transform:none}
.oath-ceremony[data-phase="forge"] .oath-earned-title,.oath-ceremony[data-phase="crowned"] .oath-earned-title{opacity:1;transform:none}
.oath-ceremony[data-phase="crowned"] .oath-earned-copy,.oath-ceremony[data-phase="crowned"] .oath-earned-boons{opacity:1}
.oath-complete .oath-continue{opacity:1;pointer-events:auto}
@keyframes oath-embers{0%{opacity:0;transform:rotate(calc(var(--ember) * 15deg)) translateY(25px)}15%{opacity:1}100%{opacity:0;transform:rotate(calc(var(--ember) * 15deg + 25deg)) translateY(-310px)}}
@keyframes oath-ring{0%{opacity:.9;transform:scale(.5)}100%{opacity:0;transform:scale(3)}}
@media(max-width:700px){
 .combat .combat-purse b{font-size:16px}.combat .combat-purse .coin-icon{width:17px;height:17px}
 .combat .turn-clock{font-size:5px;letter-spacing:.5px;gap:5px}
 .combat .attack-count{gap:5px}.combat .attack-count b{font-size:22px}.combat .attack-label{font-size:6px;letter-spacing:1px}
 .oath-heart{width:190px;height:190px}.oath-ceremony h1{font-size:26px;letter-spacing:1px}.oath-earned-title{font-size:25px}
}
@media(max-width:375px){.combat .heart-icon{width:17px;height:18px}.combat .knight-status{gap:4px}.combat .knight-status>span{font-size:12px}.combat .knight-status small{font-size:8px}.combat .combat-purse b{font-size:14px}.combat .combat-purse .coin-icon{width:15px;height:15px}.combat .combat-purse>div{gap:4px}.combat .turn-clock{max-width:calc(100vw - 196px)}.oath-ceremony{padding:16px}.oath-heart{height:170px}.oath-new-rank .rank-crest{width:148px;height:148px}.oath-earned-boons{gap:24px}.oath-continue{font-size:8px}}
@media(max-width:700px) and (max-height:760px){.stage-combat .combat .battle-wrap{min-height:70px}.combat .inscription,.combat .combat-hint{min-height:21px}}
@media(prefers-reduced-motion:reduce){.last-stand-backdrop,.last-stand-backdrop .last-stand,.last-stand-backdrop .revive-reliquary,.last-stand-backdrop .revive-benefits,.last-stand-backdrop .revive-promise,.last-stand-backdrop .revive-use,.last-stand-backdrop .revive-surrender{animation:none;opacity:1;transform:none;filter:none}.oath-orbit,.oath-shockwave,.oath-rays{display:none}.oath-ceremony *{transition-duration:.15s}.death-screen .death-epitaph{animation-delay:2.5s}.death-screen .death-return{animation-delay:2.8s}.death-after-choice .death-epitaph,.death-after-choice .death-return{animation-delay:0s}}
