/* The rank and its departing echo share one physical center. */
.ascension-emblem .rank-number,.ascension-emblem .rank-echo{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;display:grid;place-items:center;translate:none;letter-spacing:0;text-indent:0;padding:0;margin:0;font:700 81px/1 'Knightle Herald';font-variant-numeric:tabular-nums;transform-origin:50% 50%;text-align:center}
.ascension-emblem>small{position:absolute;left:0;right:0;bottom:14px;margin:0;text-indent:5px}
.ascension-emblem .rank-echo{opacity:0}.experience-screen h2{margin-top:16px}
/* The gate remains the scene. There is no floating settings dialog. */
#app:has(.quest-prelude) .stage>*:not(.gate-world):not(.stage-dust){visibility:hidden}
.modal-backdrop.quest-prelude{inset:0 0 var(--ad-space);padding:24px;overflow:auto;background:linear-gradient(90deg,#07100de8,#0b1009a8 50%,#07100de8),linear-gradient(0deg,#07110e,transparent 75%);backdrop-filter:none;align-items:center;animation:oath-appear .5s ease both}
.oath-screen{position:relative;width:min(480px,100%);margin:auto;text-align:center;isolation:isolate;color:#e7dab8;padding:30px 0 10px}
.oath-back{position:fixed;left:max(20px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));background:none;border:0;color:#cbb98b;padding:6px 12px;font:27px Georgia;display:flex;align-items:center;gap:9px;min-height:44px;z-index:2}.oath-back span{font:8px 'Knightle Quill';letter-spacing:2px}
.oath-heading .eyebrow{font:8px 'Knightle Quill';letter-spacing:2px;color:#c8aa70;margin:0 0 6px}.oath-blade{display:block;width:108px;height:90px;image-rendering:pixelated;margin:0 auto -3px;filter:drop-shadow(0 5px 5px #060b08)}
.oath-heading h2{font:bold 34px/1.2 'Knightle Herald';color:#f1dfb7;margin:0 0 9px;text-shadow:2px 3px #100c05}.oath-heading>p:last-child{font:italic 15px/1.5 Georgia;color:#c3bba2;max-width:350px;margin:0 auto}
.oath-route{position:relative;display:flex;justify-content:space-between;gap:6px;width:min(310px,100%);margin:21px auto 16px}.oath-route:before{content:'';position:absolute;inset:50% 20px auto;border-top:1px dashed #9d805b66;z-index:-1}.oath-route span{display:grid;place-items:center;background:radial-gradient(ellipse,#0b130dcc 50%,transparent 75%)}.oath-route canvas{width:39px;height:39px;image-rendering:pixelated;opacity:.78}.oath-route span:last-child canvas{opacity:1;filter:sepia(.3) drop-shadow(0 0 6px #ce8d3744)}
.oath-prompt{font:italic 14px Georgia;color:#b5a683;margin:0 0 10px}.oath-choices{display:grid;gap:9px}
.oath-choice{display:grid;grid-template-columns:34px 1fr 55px 18px;align-items:center;gap:12px;width:100%;min-height:77px;padding:13px 17px;border:0;border-top:1px solid #b8995a38;border-bottom:1px solid #5f5d433d;background:linear-gradient(90deg,#26312466,#20281b16);text-align:left;color:#b0b19b;transition:background .2s,filter .2s;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.oath-choice.chosen{background:linear-gradient(100deg,#6e592844,#a28a3826 55%,#27332235);border-color:#c0a26496;color:#f0dbab;box-shadow:inset 3px 0 #c8a96e}.oath-choice:hover:not(:disabled){filter:brightness(1.2)}.oath-choice:active:not(:disabled){transform:translateY(1px)}.oath-choice:focus-visible,.oath-enter:focus-visible,.oath-back:focus-visible{outline:2px solid #e5ce8e;outline-offset:4px}
.oath-mark{font:28px 'Knightle Herald';text-align:center;color:#a58d59}.chosen .oath-mark{color:#efd598;text-shadow:0 0 13px #e4b86066}.oath-choice strong{display:block;font:10px 'Knightle Quill';letter-spacing:1.5px}.oath-choice em{display:block;font:italic 12px Georgia;color:#b6b19c;margin-top:7px}.oath-vital{text-align:center;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px}.oath-vital b{font:23px 'Knightle Herald';font-variant-numeric:tabular-nums}.oath-vital small{display:block;font:5px 'Knightle Quill';letter-spacing:1px;width:100%}.oath-vital .coin-icon{width:17px;height:17px}.oath-check{font-style:normal;color:#ddc785;opacity:0}.chosen .oath-check,.oath-locked .oath-check{opacity:1}.oath-locked{opacity:.62}.oath-locked .oath-vital b{font-size:17px}.oath-locked .oath-vital{flex-wrap:nowrap}.oath-check .pixel-lock{display:inline-block}
.oath-enter{display:block;width:100%;min-height:53px;margin:24px 0 0;font-size:12px;letter-spacing:1.7px;box-shadow:inset 0 2px #e7ce91,0 3px #372a18,0 0 28px #d5a55722!important}.oath-footnote{font:italic 11px/1.5 Georgia;color:#a99e81;margin:16px 0 0}.oath-elixir{display:flex;justify-content:center;align-items:center;gap:9px;margin:17px 0 -7px;font:italic 13px Georgia;color:#d1c5a2}.oath-elixir em{color:#b3aa91}.oath-elixir input{width:17px;height:17px;accent-color:#c4a363}
@keyframes oath-appear{from{opacity:0}to{opacity:1}}
/* Crossed starter blades, scorched iron and ember seams distinguish the hard oath. */
.hard-entry-blades{position:absolute;left:8px;top:50%;width:44px;height:39px;translate:0 -50%;image-rendering:pixelated;pointer-events:none}
.quest-choices .hard-entry{padding-left:54px}
.hard-entry small .pixel-lock{width:7px;height:6px;vertical-align:baseline;margin-right:4px}
.oath-hard-choice .oath-mark{width:44px;height:44px;margin-left:-5px;display:grid;place-items:center}
.oath-mark canvas{width:53px;height:44px;image-rendering:pixelated;filter:drop-shadow(0 2px 2px #0008)}
.oath-hard-choice{background:linear-gradient(105deg,#4a29213d,#2e211e1c);border-color:#9c694d50}
.oath-hard-choice strong{color:#d1ae90}.oath-hard-choice.chosen{background:linear-gradient(105deg,#733e285e,#45231d45 65%,#271d1a55);border-color:#c1845799;box-shadow:inset 3px 0 #cd9260,inset 0 1px #f9ce861a}
.oath-hard-choice.chosen strong,.oath-hard-choice.chosen .oath-vital b{color:#f2c391}.oath-hard-choice.chosen .oath-check{color:#f4b16e}
.oath-hard .oath-blade{filter:drop-shadow(0 3px 4px #060b08) drop-shadow(0 0 14px #d678343b)}
.modal-backdrop.quest-prelude.oath-hard{background:radial-gradient(ellipse at 50% 35%,#3b211965,transparent 67%),linear-gradient(90deg,#100c0be8,#1c110da8 50%,#100c0be8),linear-gradient(0deg,#110b09,transparent 75%)}
.oath-hard .oath-heading h2{color:#f2d0a0}.oath-hard .oath-enter{background:linear-gradient(100deg,#ad7444,#c9985e 46%,#ad7444);box-shadow:inset 0 2px #f3c28b,0 3px #402419,0 0 30px #d5793d26!important}
@media(max-width:700px){.hard-entry-blades{width:37px;height:33px;left:3px}.quest-choices .hard-entry{padding-left:41px;letter-spacing:1px}.oath-hard-choice .oath-mark{width:34px;margin-left:-3px}.oath-mark canvas{width:42px;height:35px}}
/* A weighted arrival, a brief release of light, then an actual camera retreat. */
.stage-loot:before{background:radial-gradient(ellipse at 50% 28%,#090e084f,#060e0be8 80%)!important}
.spoils-screen{--chest-size:210px;--stage-open:226px;--stage-small:138px;padding-top:55px}.spoils-screen h1{font-family:'Knightle Herald';letter-spacing:1.5px;margin-bottom:11px}.loot-rarity{font-size:8px;letter-spacing:2px;color:#e5c680;min-height:12px}.loot-dragon .loot-rarity,.loot-mega .loot-rarity{background:linear-gradient(100deg,#e5b783,#eedf9d,#9cd1b4,#b6bfec,#e7afbe);color:transparent;background-clip:text}
.spoils-screen .loot-stage{width:260px;height:var(--stage-open)!important;transition:height .52s cubic-bezier(.2,.75,.2,1);margin:6px auto 0!important}
.spoils-screen.loot-pullback .loot-stage,.spoils-screen.loot-revealed .loot-stage{height:var(--stage-small)!important}
.chest-camera,.chest-object,.spoils-screen .loot-container{width:var(--chest-size)!important;height:var(--chest-size)!important}.chest-camera{transition:transform .52s cubic-bezier(.2,.8,.2,1);transform:scale(1);will-change:transform}.chest-object{position:relative;filter:drop-shadow(0 7px 2px #03080588)}
.loot-closed .chest-object{animation:coffer-land .52s cubic-bezier(.2,.7,.2,1) both}.loot-opening .chest-object{animation:coffer-release .88s ease both}.loot-dragon.loot-opening .chest-object{animation-duration:1.12s}
.spoils-screen .loot-container{transition:opacity .12s linear!important}.loot-opening .chest-open,.loot-opening .chest-closed{transition-delay:.3s!important}.loot-dragon.loot-opening .chest-open,.loot-dragon.loot-opening .chest-closed{transition-delay:.4s!important}
.chest-camera{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1)}
.loot-pullback .chest-camera,.loot-revealed .chest-camera{transform:translate(-50%,calc(-50% - 8px)) scale(.62)}
.loot-stage:after{transition:opacity .4s,transform .52s}.loot-pullback .loot-stage:after,.loot-revealed .loot-stage:after{transform:scale(.6);opacity:.4}
.chest-flare{position:absolute;inset:-20%;z-index:3;pointer-events:none;opacity:0;background:radial-gradient(ellipse,#fff4c6c9,transparent 55%);mix-blend-mode:screen}.loot-opening .chest-flare{animation:coffer-flash .85s ease both}.loot-dragon.loot-opening .chest-flare{animation-duration:1.12s}
.loot-opening .rainbow-burst,.loot-dragon.loot-opening .rainbow-burst{inset:-65px;background:conic-gradient(from 15deg,#f8947277,#f9da9799,#9be3b288,#9adaf1aa,#b399e088,#f3a3cd99,#f8947277);filter:blur(1px);mask-image:radial-gradient(ellipse,transparent 4%,#000 33%,transparent 70%);animation:treasury-spectrum .88s ease-out both}
.loot-dragon.loot-opening .rainbow-burst{animation-duration:1.12s}.loot-opening .loot-rays,.loot-dragon.loot-opening .loot-rays{animation:treasury-rays .88s ease-out both;mask-image:radial-gradient(ellipse,#000 4%,transparent 68%);background:repeating-conic-gradient(from 12deg,transparent 0 24deg,#ffe6a582 25deg 28deg,transparent 30deg 47deg)}.loot-dragon.loot-opening .loot-rays{animation-duration:1.12s}
.loot-opening .loot-sparks i{animation:treasury-sparks .85s ease-out both;animation-delay:calc(.3s + var(--n)*5ms);background:hsl(calc(var(--n)*28) 80% 78%);width:3px;height:5px;box-shadow:0 0 5px currentColor}.loot-dragon.loot-opening .loot-sparks i{animation-delay:calc(.4s + var(--n)*5ms)}
.loot-pullback .rainbow-burst{animation:treasury-recede .52s ease-out both}.loot-pullback .loot-rays{animation:treasury-recede .52s ease-out both}.loot-revealed .rainbow-burst{opacity:.14;transform:scale(.75)}
.spoils-screen h2{font:italic 19px/1.3 Georgia;color:#d2bc88;margin:0 0 15px}.loot-presentation{min-height:220px}.loot-revealed .loot-presentation{animation:none}
.treasure-spread{width:min(100%,calc(var(--finds)*128px));max-width:650px;gap:13px;margin:7px auto 21px}.treasure-item{opacity:1;isolation:isolate;animation:none}.awaiting .treasure-item{opacity:0}.loot-revealed .treasure-item{animation:relic-emerge .55s cubic-bezier(.17,.77,.2,1.1) both;animation-delay:calc(var(--order)*110ms)}
.treasure-item:before{inset:-6px -10px 37px;background:radial-gradient(ellipse,hsla(var(--treasure-hue),70%,65%,.25),transparent 66%);z-index:-1}.treasure-item:after{content:'';position:absolute;left:20%;right:20%;top:76px;height:1px;background:linear-gradient(90deg,transparent,#d7b96f88,transparent);z-index:-1}.treasure-item canvas[data-loot-art]{width:94px;height:94px;margin:0 auto 6px;filter:drop-shadow(0 4px 2px #050b08)}.treasure-item strong{font:italic 12px/1.4 Georgia;color:#e0ceb0;min-height:34px}
.treasure-item .treasure-value{font:700 23px 'Knightle Herald';margin-top:6px;gap:4px}.treasure-value b{min-width:3ch;text-align:center;font-variant-numeric:tabular-nums}.treasure-value .coin-icon{width:22px;height:22px;flex:none;filter:drop-shadow(0 1px #342114)}.value-settled b{animation:coin-lock .24s ease-out both!important;transform-origin:center}.loot-total{margin:0 auto 16px;gap:7px;color:#bdae8b;min-height:35px}.loot-total b{font:700 31px/1 'Knightle Herald';min-width:3ch;text-align:center;color:#f3d486;margin:0;font-variant-numeric:tabular-nums}.loot-total .coin-icon{width:29px;height:29px;filter:drop-shadow(0 2px #342114)}.loot-total>span{font:6px/1.8 'Knightle Quill';max-width:65px;text-align:left;letter-spacing:1px}.tally-settled{animation:treasury-total .35s ease-out both}.tooth-reward{margin:0 0 18px;opacity:.9}.loot-continue{min-width:230px;margin:0;min-height:49px;font-size:11px}
.coin-icon,.result-grid .coin-icon{display:inline-block;image-rendering:pixelated;object-fit:contain;vertical-align:middle;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
@keyframes coffer-land{0%{opacity:0;transform:translateY(-30px) scale(.7) rotate(-6deg)}60%{opacity:1;transform:translateY(5px) scale(1.04,.94) rotate(1deg)}80%{transform:translateY(-2px) scale(.99,1.03)}100%{transform:none;opacity:1}}
@keyframes coffer-release{0%{transform:none}15%{transform:rotate(-1.2deg)}26%{transform:rotate(1.2deg)}35%{transform:rotate(-.5deg);filter:brightness(1.15)}48%{transform:scale(1.015,.985);filter:brightness(1.6)}68%{transform:scale(.995,1.005);filter:brightness(1.1)}100%{transform:none;filter:none}}
@keyframes coffer-flash{0%,32%{opacity:0;transform:scale(.3)}46%{opacity:.8;transform:scale(1.15)}100%{opacity:0;transform:scale(1.5)}}
@keyframes treasury-spectrum{0%,26%{opacity:0;transform:scale(.3) rotate(-15deg)}47%{opacity:.95;transform:scale(1.3)}70%{opacity:.5}100%{opacity:.5;transform:scale(1.65) rotate(25deg)}}
@keyframes treasury-rays{0%,28%{opacity:0;transform:scale(.2) rotate(-8deg)}48%{opacity:.9}100%{opacity:.35;transform:scale(1.7) rotate(18deg)}}
@keyframes treasury-sparks{0%{opacity:0;transform:rotate(var(--angle)) translateX(0) scale(.4)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateX(125px) scale(.4)}}
@keyframes treasury-recede{from{opacity:.5;transform:scale(1.65) rotate(25deg)}to{opacity:.14;transform:scale(.75) rotate(25deg)}}
@keyframes relic-emerge{0%{opacity:0;transform:translateY(-25px) scale(.25);filter:brightness(2)}52%{opacity:1;transform:translateY(4px) scale(1.12);filter:brightness(1.25)}78%{transform:translateY(-2px) scale(.98)}100%{opacity:1;transform:none;filter:none}}
@keyframes coin-lock{0%{transform:scale(1.15);color:#fff5ce;text-shadow:0 0 10px #f5d279}100%{transform:scale(1);text-shadow:none}}
@keyframes treasury-total{0%{filter:brightness(1.65);transform:scale(1.06)}100%{filter:none;transform:none}}
@media(max-width:700px){.quest-prelude.modal-backdrop{padding:42px 23px 20px}.oath-screen{padding-top:0}.oath-heading h2{font-size:29px}.oath-heading>p:last-child{font-size:14px;max-width:310px}.oath-blade{width:90px;height:75px}.oath-choice{min-height:72px;padding:12px 10px;gap:9px;grid-template-columns:28px 1fr 47px 13px}.oath-choice strong{font-size:9px}.oath-choice em{font-size:11px}.oath-vital b{font-size:22px}.oath-route{margin:17px auto 14px;width:280px}.oath-route canvas{width:34px;height:34px}.oath-enter{font-size:10px;margin-top:19px;min-height:51px}.oath-footnote{font-size:10px;margin-top:13px}.oath-elixir{font-size:11px;line-height:1.4}.spoils-screen{--chest-size:184px;--stage-open:201px;--stage-small:119px;padding-top:58px}.spoils-screen h1{font-size:22px}.spoils-screen h2{font:italic 17px Georgia;margin-bottom:17px}.treasure-spread{gap:5px;margin-bottom:18px}.treasure-item canvas[data-loot-art]{width:78px;height:78px;max-width:100%;object-fit:contain;margin-bottom:7px}.treasure-item:after{top:66px}.treasure-item strong{font-size:11px;min-height:32px}.treasure-item .treasure-value{font-size:21px;gap:1px}.treasure-value .coin-icon{width:18px;height:18px}.loot-total b{font-size:29px}.loot-total .coin-icon{width:27px;height:27px}.tooth-reward{margin-bottom:16px}.loot-continue{font-size:10px;min-height:48px}.experience-screen .ascension-emblem{width:180px;height:180px}}
@media(max-width:700px) and (max-height:760px){.quest-prelude.modal-backdrop{padding-top:40px}.oath-blade{height:59px;width:71px}.oath-route{margin:13px auto 10px}.oath-choice{min-height:65px}.oath-heading .eyebrow{font-size:7px}.oath-enter{margin-top:16px}.oath-footnote{margin-top:11px}.spoils-screen{--chest-size:170px;--stage-open:180px;--stage-small:103px;padding-top:46px}.spoils-screen h1{font-size:20px;line-height:1.2;max-width:330px}.spoils-screen>.eyebrow{font-size:7px;margin-bottom:10px}.loot-rarity{font-size:7px}.spoils-screen h2{font-size:15px;margin-bottom:12px}.treasure-item canvas[data-loot-art]{width:65px;height:65px}.treasure-item:after{top:58px}.treasure-item strong{font-size:10px;min-height:30px}.treasure-item .treasure-value{font-size:20px}.treasure-value .coin-icon{width:16px;height:16px}.treasure-spread{margin-bottom:15px}.loot-total{margin-bottom:13px}.tooth-reward{margin-bottom:13px}.experience-screen .ascension-emblem{width:158px;height:158px}.ascension-emblem>small{bottom:4px}.experience-screen h2{margin-top:18px}}
@media(prefers-reduced-motion:reduce){.quest-prelude,.chest-object,.loot-revealed .treasure-item,.value-settled b,.tally-settled{animation:none!important}.spoils-screen .loot-stage,.chest-camera{transition-duration:.1s!important}.loot-opening .chest-flare,.loot-opening .loot-rays,.loot-opening .loot-sparks,.loot-opening .rainbow-burst{display:none!important}}

/* Center the numeral's painted bounds, rather than the font's advance box. */
.ascension-emblem canvas.rank-number,.ascension-emblem canvas.rank-echo{object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 15px #b19d4a55)}
.rank-up canvas.rank-number{filter:drop-shadow(0 0 14px #d8efb088) drop-shadow(0 0 23px #c0a0db55)}
.tooth-icon{flex:none;display:block;overflow:visible;filter:drop-shadow(1px 2px 0 #101913)}
.dossier-teeth .tooth-icon{width:25px;height:29px}
.tooth-reward .tooth-icon{width:31px;height:37px}
.loot-total{opacity:0;visibility:hidden;transform:translateY(5px);transition:opacity .25s ease,transform .25s ease,visibility .25s}
.loot-total.total-visible{opacity:1;visibility:visible;transform:none}
.treasure-item .treasure-value{opacity:.42;transition:opacity .18s}
.treasure-item.value-counting .treasure-value,.treasure-item.value-settled .treasure-value{opacity:1}
.treasure-item.value-counting canvas{filter:drop-shadow(0 0 9px #e0be7270) brightness(1.12)}
.treasure-item.value-counting .treasure-value{color:#ffecb0;text-shadow:0 0 12px #f0b96d88}
@media(prefers-reduced-motion:reduce){.loot-total{transition:none;transform:none}}
