/* Shared button contact, direct combat feedback and the Last Call streak. */

/* Every carved action responds immediately, including touch and keyboard. */
.btn:not(.strike-surface){transition:translate .16s,scale .16s,filter .12s,transform .12s,box-shadow .12s}
.btn:not(.strike-surface):not(:disabled):active,.btn.ui-button-held{translate:0 3px;scale:.99 .95;transform:none!important;filter:brightness(1.18)!important;box-shadow:inset 0 1px #e8d39b,inset 0 -2px #4c402a,0 1px #060c08!important;transition-duration:.045s!important}
.ui-button-click-flash{position:fixed;z-index:500;pointer-events:none;user-select:none;padding:3px 4px 6px;opacity:0;animation:ui-button-contact .28s ease-out both;contain:layout style}
.ui-button-click-flash:before{content:'';display:block;width:100%;height:100%;clip-path:polygon(3px 0,calc(100% - 3px) 0,100% 3px,100% calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,0 calc(100% - 3px),0 3px);background:linear-gradient(105deg,transparent 15%,#ffedb442 45%,transparent 72%);box-shadow:inset 0 1px #fff0bccc,inset 0 -1px #bfa66b55}
@keyframes ui-button-contact{0%{opacity:.85;translate:0 3px}30%{opacity:.6}100%{opacity:0;translate:0 0}}
@media(prefers-reduced-motion:reduce){.btn:not(.strike-surface):not(:disabled):active,.btn.ui-button-held{translate:0 0;scale:1}.ui-button-click-flash{animation:ui-button-contact-still .14s ease-out both}@keyframes ui-button-contact-still{from{opacity:.45}to{opacity:0}}}

/* The v71 reddish copper face retains its seven-pixel carved base. */
.stage-combat .combat .keyboard .key.strike-surface.word-ready{background:#b88760;box-shadow:inset 0 2px #ffdda9,inset 2px 0 #d7a572,inset -2px 0 #4c2920,inset 0 -7px #301b18,0 0 9px #d3a56240;animation:word-ready .32s ease-out both}
@keyframes word-ready{from{filter:brightness(1.4)}to{filter:brightness(1)}}
/* A demonstration button keeps its face, depth and label in one fixed box. */
.tutorial-demo-strike.strike-surface{display:grid;place-items:center;flex:none;height:42px;min-height:42px;padding:0 24px 7px;line-height:1.2}
.tutorial-demo-strike.strike-surface.demo-pressed{padding:0 24px 7px}
/* Keep the large original rune and crossing gauge stable when the result lands. */
.critical-focus .critical-window h2{min-height:2.4em;display:grid;place-content:center}
.critical-focus .timing-copy{min-height:16px}
.critical-focus{animation:temper-enter .18s ease-out both}
@keyframes temper-enter{from{opacity:0}to{opacity:1}}
@media(max-height:650px) and (orientation:portrait){
 .shell.stage>.quest-tutorial:has(.tutorial-word-demo),.shell.stage>.quest-tutorial:has(.tutorial-temper){grid-template-rows:auto 142px auto 20px 40px;padding:34px 20px 18px;gap:7px}
 .shell.stage>.quest-tutorial:has(.tutorial-temper){grid-template-rows:auto 150px auto 20px 40px}
 .tutorial-temper{gap:8px}
}
@media(orientation:landscape) and (max-height:500px){
 .critical-focus{padding:8px 18px}.critical-focus .critical-window{width:min(540px,92vw);padding:5px 12px}
 .critical-focus .critical-window h2{font-size:20px;min-height:24px;margin-bottom:10px}
 .critical-focus .critical-window>.eyebrow{font-size:7px;margin-bottom:6px}
 .critical-focus .focus-rune{width:76px;height:82px;font-size:50px}
 .critical-focus .strike-gauge{margin-top:-34px}.critical-focus .gauge-values{margin-top:10px;font-size:8px}
 .critical-focus .timing-copy{margin:16px 0 10px}.critical-focus .timing-strike.strike-surface{min-height:40px;padding:8px 25px 11px;font-size:12px}
 .critical-focus .timing-controls{font-size:6px;margin:8px 0 5px}.critical-focus .steady-critical{min-height:27px;padding:5px}
 .critical-focus.timing-locked .critical-number{bottom:35px}
}

/* Health itself takes the hit. A small loss amount stays beside the meter. */
.stage-combat:has(.enemyAttack),.stage-combat:has(.room-5.enemyAttack){animation:none}
.stage-combat .combat .knight-status>.health-change{position:absolute;right:6px;top:-21px;bottom:auto;width:auto;padding:0;margin:0;background:none;border:0;box-shadow:none;color:#f7aa94;text-shadow:0 2px #27100e;font:18px/20px 'Knightle Herald',Georgia;opacity:0;pointer-events:none}
.knight-status.health-impact>.health-change{animation:health-loss 1.8s ease-out both}
.knight-status.health-impact>.health-emblems,.knight-status.health-impact>span:not(.health-change){animation:health-rattle .42s ease-out both}
.knight-status.health-impact .player-health-meter{animation:health-flash .55s ease-out both}
.knight-status .player-health-meter{overflow:hidden}
.knight-status .player-health-trail{position:absolute;left:0;top:0;height:100%;background:#db8c75;box-shadow:0 0 5px #e5a283;opacity:.9}
.combat.damage-impact{animation:player-impact .34s ease-out both}
@keyframes player-impact{0%,100%{translate:0 0}15%{translate:-4px 2px}34%{translate:3px -1px}56%{translate:-2px 1px}78%{translate:1px 0}}
@keyframes health-rattle{0%,100%{transform:none;filter:none}18%{transform:translate(-3px,1px);filter:sepia(.3) brightness(1.6)}42%{transform:translate(3px,-1px)}67%{transform:translate(-1px,0)}}
@keyframes health-flash{0%{filter:brightness(2.1)}100%{filter:none}}
@keyframes health-loss{0%{opacity:0;transform:translateY(4px)}12%,80%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-5px)}}

/* Victory lives in the arena light, without a rectangular popup. */
.encounter-victory{inset:-4px -8px 0;gap:0;overflow:visible;background:radial-gradient(ellipse,#09170ee8 10%,#09170eb8 38%,transparent 72%);animation:victory-light .3s ease-out both}
.victory-carving{width:100%;max-width:100%;padding:20px 4px 12px;background:none;box-shadow:none;clip-path:none;animation:victory-inscription .55s cubic-bezier(.2,.85,.2,1) .3s both}
.victory-carving:after{display:none}
.victory-carving>small{font-size:5px;letter-spacing:3px;color:#bfbd91;margin:0 0 9px}
.encounter-victory .victory-carving>strong{display:block;font:27px/1.1 'Knightle Herald',Georgia;letter-spacing:2px;color:#f4dfa2;text-shadow:0 2px #1b2815,0 0 15px #debc5333;animation:none}
.victory-rule{display:flex;align-items:center;justify-content:center;gap:9px;color:#d5be7b;font-size:8px;margin:10px auto 8px;max-width:245px}
.victory-rule i{height:1px;flex:1;background:linear-gradient(90deg,transparent,#bda967)}
.victory-rule i:last-child{rotate:180deg}
.encounter-victory .victory-carving>p{font:italic 12px/1.5 Georgia;color:#d6dcc2;margin:0}
.victory-blades{top:calc(50% - 58px);opacity:.8}.victory-blades svg{height:34px;width:10px;left:-5px}
.victory-embers{top:36%}
@keyframes victory-light{from{opacity:0}to{opacity:1}}
@keyframes victory-inscription{from{opacity:0;transform:translateY(10px) scale(.94)}65%{opacity:1;transform:translateY(-1px)}to{opacity:1;transform:none}}

/* The streak sits directly over the green and grows into the tavern's chaos. */
.shell.stage>.last-call-screen{grid-template-rows:auto auto clamp(135px,29cqh,205px) auto;padding:44px 20px 28px;gap:7px}
.last-call-scoreboard{grid-template-columns:1fr 1fr;padding:5px 0 7px}
.last-call-scoreboard>div:first-child{text-align:left;padding-left:9px}.last-call-scoreboard>div:last-child{text-align:right;padding-right:9px}
.last-call-scoreboard b{font-size:23px}
.last-call-scene>canvas{image-rendering:pixelated}
.call-points{top:5%;left:9%;font-size:22px}
.last-call-controls{padding:0 6px}
.call-streak-dock{position:relative;isolation:isolate;height:51px;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:34px 13px;gap:0 12px;align-items:center;justify-content:center;margin:-3px auto 3px;max-width:320px;color:hsl(var(--streak-hue) 60% 73%);pointer-events:none}
.streak-count{display:flex;align-items:center;gap:8px;grid-column:2;grid-row:1;z-index:2}
.streak-count>b{font:33px/1 'Knightle Herald',Georgia;min-width:1ch;text-align:center;text-shadow:0 2px #081c10,0 0 10px currentColor;animation:streak-punch .85s cubic-bezier(.15,.8,.2,1) both paused;animation-delay:var(--streak-age)}
.streak-count>span{font:6px/1.4 'Knightle Quill',Georgia;letter-spacing:1.3px;color:#d0d7b7;max-width:42px;text-align:left}
.call-streak-dock>small{grid-column:1/-1;grid-row:2;font:5px/1.3 'Knightle Quill',Georgia;letter-spacing:2px;color:inherit;z-index:2}
.streak-wing{height:1px;position:relative;background:linear-gradient(90deg,transparent,currentColor);color:inherit;font-size:6px;line-height:0;text-align:right;opacity:.65}
.streak-wing:nth-of-type(2){rotate:180deg}
.streak-aura{position:absolute;z-index:-1;inset:-15px -20px;background:radial-gradient(ellipse,hsl(var(--streak-hue) 78% 63% / .24),transparent 66%);animation:streak-aura .9s ease-out both paused;animation-delay:var(--streak-age)}
.streak-sparks{position:absolute;top:18px;left:50%;pointer-events:none}
.streak-sparks i{position:absolute;display:block;width:3px;height:3px;background:hsl(calc(var(--streak-hue) + var(--spark)*2) 85% 76%);box-shadow:0 0 3px currentColor;animation:streak-spark .8s ease-out both paused;animation-delay:var(--streak-age)}
.call-streak-dock[data-tier="0"] .streak-sparks i:nth-child(n+5),.call-streak-dock[data-tier="1"] .streak-sparks i:nth-child(n+9),.call-streak-dock[data-tier="2"] .streak-sparks i:nth-child(n+14){display:none}
.call-streak-dock[data-tier="3"] .streak-sparks i{height:5px}.call-streak-dock[data-tier="4"] .streak-sparks i{background:hsl(calc(var(--spark)*29) 85% 75%);width:4px;height:4px}
.call-streak-dock[data-tier="4"] .streak-count>b{background:linear-gradient(120deg,#ffe5a2,#d4f9ac,#a8e6e4,#ceb3f1,#f8aac8);background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 4px #e9d7a777)}
.call-streak-dock[data-tier="3"].streak-celebrating,.call-streak-dock[data-tier="4"].streak-celebrating{animation:streak-rattle .35s ease-out both paused;animation-delay:var(--streak-age)}
.call-meter-label{margin-bottom:8px}.call-drink{margin-top:12px}
.last-call-controls .call-drink{position:relative;isolation:isolate;min-height:49px;padding:8px 20px 13px;background:#b9a16c;border:0;border-radius:0;box-shadow:inset 0 2px #f0dda6,inset 3px 0 #d0b77b,inset -3px 0 #6d5734,inset 0 -7px #392d1c,0 3px #030a06;color:#fff0c2;text-shadow:0 2px #382d1a;transition:filter .08s;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 3px,100% 3px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 3px),0 calc(100% - 3px),0 4px,4px 4px)}
.last-call-controls .call-drink:before{content:'';position:absolute;inset:4px 4px 8px;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 5px,#efd59b0c 5px 6px),linear-gradient(115deg,#a28950,#756337 65%,#66562e);box-shadow:inset 0 1px #ead39a88,inset 0 -1px #342919}
.last-call-controls .call-drink:active{transform:translateY(3px);filter:brightness(1.2)}
.last-call-controls .call-drink:disabled{opacity:1;cursor:default}
.last-call-screen[data-call-phase="drinking"] .call-drink{color:#fff7cf;filter:brightness(1.12)}
.last-call-screen[data-call-phase="falling"] .call-drink{filter:saturate(.5);color:#d1bda0}
.call-drink-label{position:relative;z-index:1;pointer-events:none}
.call-result-rewards .legacy-xp-fill{transition:none}
.call-result-rewards .legacy-xp-track[data-gain-phase="level-full"]{filter:brightness(1.55);box-shadow:0 0 12px #d7df7d66,inset 0 1px #d4d998}
.call-result-rewards .legacy-xp-track{transition:filter .18s,box-shadow .18s}
@keyframes streak-punch{0%{transform:scale(.75);filter:brightness(1)}17%{transform:scale(1.4);filter:brightness(1.7)}37%{transform:scale(.96)}58%,100%{transform:none;filter:brightness(1)}}
@keyframes streak-aura{0%{opacity:0;transform:scale(.5)}18%{opacity:1;transform:scale(1.25)}100%{opacity:0;transform:scale(1.8)}}
@keyframes streak-spark{0%{opacity:0;transform:translate(0,0) scale(.4)}15%{opacity:1}85%{opacity:.8}100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.4)}}
@keyframes streak-rattle{0%,100%{translate:0 0}20%{translate:-2px 1px}45%{translate:2px -1px}70%{translate:-1px 0}}

/* A brass-capped tavern ledger, with large ranks and a clear best score. */
.call-board-panel{inset:102px 14px 20px;padding:0;align-items:center;background:linear-gradient(#081315b8,#081315f2 35%)}
.call-board-panel>section{position:relative;width:min(365px,100%);padding:17px 20px 18px;background:repeating-linear-gradient(0deg,transparent 0 3px,#ddd09c05 3px 4px),linear-gradient(110deg,#273427,#14251c 70%);box-shadow:inset 0 2px #d4bd7a,inset 0 -3px #060f09,0 0 28px #0005;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px)}
.ledger-crest{width:35px;height:36px;margin:0 auto 7px;filter:drop-shadow(0 2px #060d09)}.ledger-crest .last-call-mark{width:100%;height:100%}
.call-board-panel h2{font:24px/1.05 'Knightle Herald',Georgia;letter-spacing:2px;margin:4px 0 7px;color:#f0dca6}
.call-board-panel .call-board-note{font:italic 11px Georgia;margin:0 0 13px;color:#afbc9f}
.ledger-best{display:flex;align-items:baseline;justify-content:center;gap:9px;border-block:1px solid #b7a36b55;padding:10px 0;margin:0 0 13px}
.ledger-best>span,.ledger-best>small{font:5px 'Knightle Quill',Georgia;letter-spacing:1px;color:#b4b895}.ledger-best strong{font:30px/1 'Knightle Herald',Georgia;color:#f4d28a}
.call-ledger-head{padding:0 7px 7px 33px;font:5px 'Knightle Quill',Georgia;border-color:#a3926533}
.call-board-panel .call-scores-scroll{max-height:23cqh;min-height:40px;margin:0;overflow:auto}
.call-board-panel .call-scores-list li{grid-template-columns:22px 1fr auto;gap:10px;padding:11px 6px;background:none;box-shadow:none;border-bottom:1px solid #b5aa7226;animation:ledger-line .28s ease-out both}
.call-scores-list .ledger-rank{font:17px 'Knightle Herald',Georgia;color:#949d7d}.call-scores-list li:first-child .ledger-rank{font-size:24px;color:#e4bc6f}
.call-scores-list li>span{font-size:12px;color:#e7dfbd}.call-scores-list li small{font:10px Georgia;color:#a4b197;margin-top:5px}.call-scores-list li small em{font-style:normal;margin:0 4px;color:#776f4c}
.call-scores-list li>b{font:24px 'Knightle Herald',Georgia;color:#e8cf91}
.call-scores-list .call-score-new{background:linear-gradient(90deg,#c6b35a12,transparent)!important}
.ledger-local{font:9px Georgia;color:#879980;margin:10px 0 13px}
.call-board-panel .btn{min-height:40px;font-size:10px}
@keyframes ledger-line{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* A knight at the gate, framed by a narrow arch rather than a flat name card. */
.stage-identity:before{background:linear-gradient(#07110cd4,#07110c88 40%,#07110ce8)!important}
.shell.stage>.knight-identity{gap:9px;padding:28px 28px 32px;max-width:440px}
.identity-wordmark{width:186px;height:41px;margin:0 0 3px}
.knight-identity>.eyebrow{font-size:5px;color:#b7b891;letter-spacing:3.1px;margin:0 0 10px}
.identity-portrait{width:156px;height:174px;clip-path:none;background:none;padding:0;box-shadow:none;filter:none;margin:0 0 6px}
.identity-portrait .pixel-scene{position:absolute;inset:8px 0 0;width:100%;height:calc(100% - 8px)!important;background:none!important;clip-path:none!important;box-shadow:none!important;border:0!important;mask-image:linear-gradient(#000 85%,transparent)}
.identity-portrait canvas{position:relative;z-index:2}
.identity-portrait>.scene{position:absolute;inset:0;margin:0;padding:0;border:0;box-shadow:none;background:none;overflow:visible;width:100%;height:100%}
.identity-arch{position:absolute;inset:-1px -17px 0;border:2px solid #a3986677;border-bottom:0;border-radius:50% 50% 0 0;box-shadow:inset 0 0 0 4px #07160b,0 0 0 1px #192e1d;background:radial-gradient(ellipse at 50% 85%,#a1ad6333,transparent 65%);mask-image:linear-gradient(#000 78%,transparent)}
.identity-arch:before,.identity-arch:after{content:'◆';position:absolute;top:56%;font:9px Georgia;color:#c0b77f}.identity-arch:before{left:-6px}.identity-arch:after{right:-6px}
.identity-rays{position:absolute;inset:-15px -50px;background:conic-gradient(from -15deg at 50% 72%,transparent 0 12deg,#cbd78d13 12deg 15deg,transparent 15deg 45deg,#cbd78d0a 45deg 48deg,transparent 48deg 310deg,#cbd78d0a 310deg 313deg,transparent 313deg);mask-image:radial-gradient(ellipse,#000 30%,transparent 70%)}
.knight-identity h1{font:25px/1.1 'Knightle Herald',Georgia;letter-spacing:1.5px;color:#f0dfae;margin:0}
.knight-identity>p:not(.eyebrow){font:italic 13px/1.5 Georgia;color:#bfc7a9;margin:0}
.knight-identity form{gap:10px;margin-top:13px}
.knight-identity label{font-size:7px;letter-spacing:1px;color:#b2ba9e}.knight-identity label small{font:10px Georgia;color:#899d87;letter-spacing:0}
.identity-nameframe{position:relative;clip-path:none;padding:3px 3px 5px;background:linear-gradient(#b7aa7a,#596649);box-shadow:0 2px #06120a,inset 1px 0 #d5c79b}
.identity-nameframe:before,.identity-nameframe:after{content:'';position:absolute;top:5px;width:3px;height:3px;background:#ded19a}.identity-nameframe:before{left:6px}.identity-nameframe:after{right:6px}
.identity-nameframe input{height:45px;background:linear-gradient(#0d1b12,#22351f);box-shadow:inset 0 2px #061009,inset 0 -1px #7b8a5266;font:22px 'Knightle Quill',Georgia;color:#f0dfae;letter-spacing:1.5px}
.knight-identity .btn{margin-top:6px;font:11px 'Knightle Quill',Georgia;letter-spacing:1.4px;min-height:46px}
.identity-chosen-name{background:none;font-size:28px;padding:13px 20px 16px;color:#f3dc97;min-width:0;text-shadow:0 2px #142317,0 0 15px #ddcb7133}
.identity-confirm-copy{font:italic 12px/1.5 Georgia!important;max-width:280px;min-height:34px}
.identity-actions{min-height:84px}.identity-change{font:11px Georgia;color:#a3b296}
.identity-seal{bottom:-2px;z-index:3;background:#bd9d51;color:#142616;width:27px;height:27px;left:calc(50% - 13px);font-size:17px;text-shadow:none}
.identity-sealed .identity-chosen-name{background:none}
.identity-sealed .identity-arch{border-color:#e4d092;box-shadow:inset 0 0 0 4px #07160b,0 0 16px #d2bd4b44;transition:box-shadow .5s,border-color .5s}

/* Lessons remain part of the dungeon, without an outer menu box. */
.shell.stage>.quest-tutorial{border:0;background:none;box-shadow:none;clip-path:none;border-radius:0;margin:0 auto}
.quest-tutorial:before,.quest-tutorial:after{display:none}
.quest-tutorial .tutorial-film{background:none;border:0;box-shadow:none}
.quest-tutorial footer .btn{font-family:'Knightle Quill',Georgia}

@container game-stage (max-height:560px){
 .shell.stage>.last-call-screen{grid-template-rows:auto auto clamp(110px,25cqh,145px) auto;padding:39px 16px 18px;gap:5px}
 .call-streak-dock{height:44px;grid-template-rows:30px 11px;margin:0 auto 2px}.streak-count>b{font-size:29px}.streak-count>span{font-size:5px}.call-streak-dock>small{font-size:4.5px}.call-meter-label{margin-bottom:6px}
 .call-board-panel{inset:81px 12px 14px;padding:0}.call-board-panel>section{padding:12px 16px}.ledger-crest{width:25px;height:27px;margin-bottom:4px}.call-board-panel h2{font-size:20px;margin:2px 0 5px}.call-board-panel .call-board-note{margin-bottom:8px;font-size:10px}.ledger-best{padding:7px 0;margin-bottom:9px}.ledger-best strong{font-size:26px}.call-board-panel .call-scores-scroll{max-height:21cqh}.call-board-panel .call-scores-list li{padding:8px 5px}.ledger-local{margin:7px 0 9px}
 .shell.stage>.knight-identity{gap:7px;padding:22px 25px}.identity-wordmark{width:155px;height:32px}.knight-identity>.eyebrow{margin-bottom:6px;font-size:4.5px}.identity-portrait{width:124px;height:134px;margin-bottom:2px}.knight-identity h1{font-size:22px}.knight-identity form{margin-top:8px;gap:9px}.identity-nameframe input{height:39px;font-size:20px}.identity-chosen-name{font-size:25px;padding:8px 15px 12px}.knight-identity .btn{min-height:42px}.identity-actions{min-height:76px}.identity-confirm-copy{font-size:11px!important;min-height:30px}
 .encounter-victory .victory-carving>strong{font-size:23px;letter-spacing:1px}.victory-carving{padding:18px 2px 9px}.victory-blades{top:calc(50% - 54px)}
}
@media(orientation:landscape) and (max-height:500px){
 .shell.stage>.last-call-screen{max-width:900px;grid-template-columns:1.1fr 1fr;grid-template-rows:33px 33px minmax(0,1fr);padding:32px 26px 16px;gap:5px 20px}.last-call-scene{grid-column:1;grid-row:1/4}.call-streak-dock{height:40px;grid-template-rows:28px 10px}.call-board-panel{inset:20px 14px 14px 43%}.call-board-panel>section{padding:10px 16px}.ledger-crest,.call-board-panel .call-board-note{display:none}.call-board-panel h2{font-size:18px}.call-board-panel h2 br{display:none}.ledger-best{padding:5px 0;margin-bottom:8px}.ledger-best strong{font-size:23px}.call-board-panel .call-scores-scroll{max-height:24cqh}.call-board-panel .call-scores-list li{padding:6px}.ledger-local{margin:5px 0 7px}.call-board-panel .btn{min-height:32px}
 .shell.stage>.knight-identity{display:grid;grid-template-columns:160px 1fr;gap:6px 30px;max-width:680px;padding:20px 30px}.identity-portrait{grid-column:1;grid-row:1/8;width:148px;height:168px}.identity-wordmark,.knight-identity>.eyebrow,.knight-identity h1,.knight-identity form,.identity-chosen-name,.identity-confirm-copy,.identity-actions,.knight-identity>p{grid-column:2}.identity-wordmark{height:26px}.knight-identity h1{font-size:20px}.identity-actions{min-height:62px}.identity-confirm-copy{min-height:0}.identity-chosen-name{font-size:23px;padding:7px}.knight-identity form{margin-top:4px}.identity-nameframe input{height:34px}.knight-identity .btn{min-height:37px}
}
@media(prefers-reduced-motion:reduce){
 .combat.damage-impact,.knight-status.health-impact>.health-emblems,.knight-status.health-impact>span:not(.health-change),.word-ready,.critical-focus,.victory-carving,.streak-count>b,.call-streak-dock,.call-scores-list li{animation:none!important}.streak-sparks,.streak-aura{display:none}.knight-status.health-impact>.health-change{animation:health-loss 1.8s ease-out both}.critical-focus .timing-copy{animation:none!important}
}

/* The invitation lives on the Ascend button, without a repeated status line. */
.home .level-panel:not(:has(>small)){grid-template-rows:auto 5px}
.home .ascend-entry{position:relative;isolation:isolate;overflow:hidden;border-top-color:#d6b76e;border-bottom-color:#b49857;animation:ascend-beckon 3.4s ease-in-out infinite;transform-origin:center}
.home .ascend-entry:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 20%,#ffe3a338 48%,transparent 75%);translate:-130% 0;animation:ascend-invitation 3.4s ease-in-out infinite}
.home .ascend-entry:hover{color:#fff1bf}.home .ascend-entry:active{animation:none;translate:0 2px;scale:.98;filter:brightness(1.35)}.home .ascend-entry:focus-visible{outline:2px solid #edd593;outline-offset:3px}
@keyframes ascend-beckon{0%,48%,100%{scale:1;filter:brightness(1);text-shadow:0 1px #14231c}64%,78%{scale:1.045;filter:brightness(1.3);text-shadow:0 0 9px #d5b66b88}71%{scale:1.01;filter:brightness(1.1)}}
@keyframes ascend-invitation{0%,42%{translate:-130% 0;opacity:0}50%{opacity:1}76%,100%{translate:130% 0;opacity:0}}
@media(prefers-reduced-motion:reduce){.home .ascend-entry,.home .ascend-entry:after{animation:none}.home .ascend-entry{box-shadow:0 0 9px #d7bd6428}.home .ascend-entry:active{scale:1;translate:0 0}}
