/* Keep menu geometry stable while prices, entry costs and receipts change. */
.quest-prelude .oath-screen{height:min(780px,100%);box-sizing:border-box;margin:auto;overflow-y:auto;scrollbar-gutter:stable;overflow-anchor:none;display:flex;flex-direction:column;justify-content:flex-start;padding-top:16px}
.quest-prelude .oath-screen>*{flex:none}
.oath-heading h2{min-height:2.4em;display:grid;place-content:center}
.oath-entry-details{height:62px;min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:4px 0 0}
.oath-entry-details .oath-key-cost{margin:3px 0 0}.oath-entry-details .oath-reset{margin:0}
.oath-sealed-copy,.oath-sealed-copy[aria-hidden="true"]{display:block;min-height:32px;height:32px;max-width:350px;margin:7px auto 0;font-size:11px;line-height:16px}
.oath-sealed-copy[aria-hidden="true"]{visibility:hidden}
.oath-enter{margin-top:10px;min-height:48px}
.oath-ready{margin:0;color:#e3d89d;font:12px/1.6 'Knightle Herald',Georgia;letter-spacing:1px}
.oath-ready>span{color:#b6c98b;margin-right:5px}.oath-ready small{display:block;font:italic 11px/1.5 Georgia;color:#bfc7a8;letter-spacing:0;margin-top:2px}
.oath-enter.oath-ready-to-play{box-shadow:inset 0 2px #ffe3aa,0 3px #372a18,0 0 22px #d8b16b35!important}
.entry-shop-copy .stock-reset{min-height:1.5em;margin-top:3px;white-space:nowrap}
.entry-shop-copy .stock-reset[aria-hidden="true"]{visibility:hidden}
.shop-scroll{scrollbar-gutter:stable;overflow-anchor:none}
.tavern-stock .shop-card .stock-description{min-width:0}
.tavern-stock .shop-card .buy{height:48px;min-height:48px;max-height:48px;padding:7px 4px;box-sizing:border-box}
.tavern-stock .buy .purchase-final,.tavern-stock .buy .purchase-result{min-width:0;max-width:100%;white-space:normal;overflow-wrap:normal;text-align:center}
.tavern-stock .buy .status-face{font:7px/1.6 'Knightle Quill',Georgia;letter-spacing:0}
.stage-shop .merchant-greeting p{height:2.6em;min-height:2.6em;display:grid;place-items:center}

/* A narrow, dark timber nameplate with silver pins and space above the frame. */
.home .portrait-button:has(.knight-nameplate){margin-top:46px;overflow:visible}
.home .knight-nameplate{top:auto;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);width:max-content;min-width:126px;max-width:190px;min-height:29px;padding:7px 17px 8px;gap:0;border:1px solid #847552;border-radius:1px;clip-path:none;background:repeating-linear-gradient(0deg,transparent 0 5px,#e2ca8b07 5px 6px),linear-gradient(#35372a,#1b281e);box-shadow:inset 0 1px #c4b18355,inset 0 -2px #090f0b,0 3px 5px #03090699;color:#ebd9ad;text-shadow:0 1px #060e09;isolation:auto}
.home .knight-nameplate:before,.home .knight-nameplate:after{content:'';position:absolute;inset:auto;top:calc(50% - 1px);left:6px;width:2px;height:2px;background:#bcb89b;box-shadow:0 1px #0a140d;clip-path:none;z-index:auto}
.home .knight-nameplate:after{left:auto;right:6px}
.home .knight-nameplate strong{font:700 12px/1.15 'Knightle Herald',Georgia;letter-spacing:.65px}
.home .knight-nameplate>i{display:none}

/* The cursor locks immediately; the pressed copper button remains visible. */
.critical-focus .timing-strike.strike-surface{touch-action:none;user-select:none;-webkit-user-select:none;transition:none}
.critical-focus.timing-locked .timing-strike{visibility:visible!important;opacity:1!important;color:#e6ceae;cursor:default;filter:none;animation:strike-button-lock .2s cubic-bezier(.16,.8,.22,1) both}
.critical-focus.timing-locked .timing-strike:before{bottom:4px}
.critical-focus.timing-locked .critical-number{bottom:8px;height:44px;font-size:34px;line-height:44px}
.critical-focus.timing-locked .critical-window{animation:strike-contact .2s ease-out both}
.critical-focus.timing-locked.grade-perfect .critical-window{animation:strike-perfect-contact .26s ease-out both}
.critical-focus.timing-locked .strike-gauge{animation:strike-track-flash .24s ease-out both}
.strike-stop-impact{position:absolute;left:var(--strike-stop);top:50%;width:2px;height:2px;pointer-events:none;z-index:4}
.strike-stop-impact:before{content:'';position:absolute;left:-11px;top:-11px;width:22px;height:22px;border:2px solid #fff0c6;transform:rotate(45deg);animation:strike-stop-ring .28s ease-out both}
.strike-stop-impact>i{position:absolute;width:3px;height:3px;background:#ffe9b1;--dx:22px;--dy:-24px;animation:strike-stop-spark .3s ease-out both}
.strike-stop-impact>i:nth-child(2){--dx:-25px;--dy:-19px}.strike-stop-impact>i:nth-child(3){--dx:31px;--dy:8px}.strike-stop-impact>i:nth-child(4){--dx:-22px;--dy:17px}.strike-stop-impact>i:nth-child(5){--dx:9px;--dy:29px}.strike-stop-impact>i:nth-child(6){--dx:-4px;--dy:-33px}
@keyframes strike-button-lock{0%,23%{transform:translateY(4px);filter:brightness(1.3);box-shadow:inset 0 1px #e5be8d,inset 0 -2px #301b18}70%{transform:translateY(-1px);filter:brightness(1.12)}100%{transform:none;filter:none}}
@keyframes strike-contact{0%{translate:0 3px}35%{translate:0 -2px}70%{translate:0 1px}100%{translate:0 0}}
@keyframes strike-perfect-contact{0%{translate:0 4px}25%{translate:-2px -3px}50%{translate:2px 1px}75%{translate:0 -1px}100%{translate:0 0}}
@keyframes strike-track-flash{0%,18%{filter:brightness(1.85)}100%{filter:none}}
@keyframes strike-stop-ring{from{opacity:1;scale:.3}to{opacity:0;scale:1.8}}
@keyframes strike-stop-spark{0%{opacity:1;translate:0 0}100%{opacity:0;translate:var(--dx) var(--dy)}}
.last-call-controls .call-drink{touch-action:none;user-select:none;-webkit-user-select:none}
.last-call-screen[data-call-phase="drinking"] .call-drink{opacity:1!important}

/* Both post-round views sit in the center, over a quiet view of the bar. */
.last-call-screen .call-board-panel,.last-call-screen .call-finish{position:fixed;inset:0 0 var(--ad-space,60px);width:auto;height:auto;z-index:20;display:flex;align-items:center;justify-content:center;padding:28px 20px;background:radial-gradient(ellipse at center,#07100bc7,#030b08eb);grid-column:auto;grid-row:auto}
.last-call-screen .call-board-panel>section,.last-call-screen .call-finish>section{width:min(390px,100%);max-height:100%;margin:0;padding:22px 24px 20px;overflow:auto;scrollbar-width:thin;scrollbar-color:#8c805b #14251b;clip-path:none;border:1px solid #9a8556;border-top:3px solid #c5ab70;background:repeating-linear-gradient(0deg,transparent 0 4px,#dec88e04 4px 5px),linear-gradient(115deg,#2c3526,#14271c 70%);box-shadow:0 0 0 4px #0a160e,inset 0 0 0 4px #bb9f5820,0 18px 50px #0009}
.last-call-screen .call-board-panel>section:before,.last-call-screen .call-finish>section:before{inset:7px;border-block:1px solid #c0a76d33}
.call-board-panel .ledger-crest{width:33px;height:36px;margin-bottom:10px}
.call-board-panel h2{font:25px/1.12 'Knightle Herald',Georgia;letter-spacing:1.2px;margin:5px 0 7px}
.call-board-panel .call-board-note{margin:0 0 16px;font:italic 12px Georgia;color:#bfc5a5}
.call-board-panel .ledger-best{display:grid;grid-template-columns:1fr auto;gap:4px 12px;text-align:left;padding:12px 4px;margin:0 0 14px;border-block:1px solid #ad956450;background:#c6b16b08}
.call-board-panel .ledger-best>span{font:7px/1.5 'Knightle Quill',Georgia;letter-spacing:1px;align-self:end}
.call-board-panel .ledger-best>strong{grid-column:2;grid-row:1/3;font:36px/1 'Knightle Herald',Georgia;color:#efd08e;align-self:center}
.call-board-panel .ledger-best>small{font:10px Georgia;color:#939f81;letter-spacing:1px}
.call-board-panel .call-ledger-head{font-size:6px;padding-left:6px;padding-bottom:9px}
.call-board-panel .call-scores-scroll{max-height:260px;max-height:min(30vh,260px);min-height:45px;margin:0}
.call-board-panel .call-scores-list li{padding:12px 6px;grid-template-columns:24px minmax(0,1fr) auto;gap:11px;animation:none}
.call-scores-list li>span{min-width:0;overflow-wrap:anywhere}
.call-board-panel .call-scores-list li>span{font:12px 'Knightle Herald',Georgia;letter-spacing:.4px}
.call-board-panel .call-scores-list li>b{font-size:25px;font-variant-numeric:tabular-nums}
.call-board-panel .call-score-new,.call-result-ledger .call-score-new{box-shadow:inset 2px 0 #ddc082;background:linear-gradient(90deg,#c4ab6125,#c4ab6105)!important}
.call-board-panel .ledger-local{font:10px Georgia;margin:12px 0 15px;color:#9eac90}
.call-finish h2{font-size:25px;margin:4px 0 10px}.call-finish .call-final-score{margin:8px 0 12px;font-size:40px}
.call-result-ledger{margin:13px 0 15px;padding-top:10px;border-top:1px solid #b7a36b45}
.call-result-ledger-title{display:block;font:6px/1.6 'Knightle Quill',Georgia;letter-spacing:1px;color:#cdbd90;margin:0 0 6px}
.call-result-ledger .call-scores-list li{padding:6px 5px;grid-template-columns:21px minmax(0,1fr) auto;gap:8px}
.call-result-ledger .call-scores-list li>span{font:12px 'Knightle Herald',Georgia}.call-result-ledger .call-scores-list li>b{font-size:20px}.call-result-ledger .call-scores-list li small{font-size:9px;margin-top:3px}
.call-finish .call-panel-links{gap:16px;margin-top:9px}.call-finish .call-panel-links button{min-height:28px}

@media(max-width:700px){
 .quest-prelude .oath-screen{padding-top:0}
 .oath-heading h2{font-size:26px}.oath-heading>p:last-child{min-height:2.8em}
 .oath-entry-details{height:58px;min-height:58px}
 .oath-elixir{min-height:26px;margin:8px 0 0}
 .oath-enter{min-height:44px;margin-top:8px}
 .oath-tutorial-link{margin-top:4px;min-height:24px}.oath-footnote{min-height:28px;margin:6px 0 0;font-size:10px}
 .home .knight-nameplate{min-width:110px;max-width:172px;padding:6px 15px 7px;min-height:27px}
 .home .knight-nameplate strong{font-size:11px}
 .home .portrait-button:has(.knight-nameplate){margin-top:44px}
 .tavern-stock .shop-card .buy{height:44px;min-height:44px;max-height:44px}
 .tavern-stock .buy .status-face{font-size:6px;line-height:1.6}
}
@media(max-width:700px) and (max-height:760px){
 .oath-blade{height:34px;width:42px}.oath-heading h2{font-size:25px;margin:0 0 5px}.oath-heading>p:last-child{font-size:12px;line-height:1.4}
 .oath-route{margin:8px auto;width:250px}.oath-route canvas{width:28px;height:28px}
 .oath-prompt{font-size:12px;margin:8px 0 6px}.oath-choices{gap:6px}.oath-choice{min-height:61px;padding:9px 8px}
 .oath-sealed-copy,.oath-sealed-copy[aria-hidden="true"]{font-size:10px;line-height:14px;min-height:28px;height:28px;margin-top:5px}
 .last-call-screen .call-board-panel,.last-call-screen .call-finish{padding:18px}
 .last-call-screen .call-board-panel>section,.last-call-screen .call-finish>section{padding:16px 18px 14px}
 .call-board-panel h2{font-size:22px}.call-board-panel .ledger-crest{height:29px;margin-bottom:7px}
 .call-finish h2{font-size:21px}.call-finish .call-final-score{font-size:33px;margin:6px 0 8px}
 .call-result-ledger{margin:9px 0 10px;padding-top:8px}
}
@media(max-width:700px) and (max-height:640px){
 .oath-blade,.oath-route{display:none}.oath-heading h2{margin-top:7px;font-size:24px}.oath-choice{min-height:57px}.oath-entry-details{height:54px;min-height:54px}
 .oath-elixir{min-height:24px;font-size:10px}.oath-footnote{margin-top:4px;min-height:23px;font-size:9px}
 .home .portrait-button:has(.knight-nameplate){margin-top:37px}.home .knight-nameplate{bottom:calc(100% + 9px);font-size:10px;min-height:25px;padding:5px 14px 6px}
 .call-result-ledger .call-scores-list li{padding:4px}.call-result-ledger .call-scores-list li small{display:none}
 .call-board-panel .call-scores-list li{padding:9px 5px}
}
@media(orientation:landscape) and (max-height:500px){
 .last-call-screen .call-board-panel,.last-call-screen .call-finish{padding:18px 25px}
 .last-call-screen .call-board-panel>section,.last-call-screen .call-finish>section{width:min(500px,100%);padding:12px 20px}
 .call-board-panel .ledger-crest{display:none}.call-board-panel h2{font-size:20px}.call-board-panel .ledger-best{padding:7px;margin-bottom:8px}.call-board-panel .call-board-note{margin-bottom:8px}
 .call-board-panel .call-scores-scroll{max-height:100px}
 .critical-focus.timing-locked .critical-number{bottom:0;height:32px;font-size:27px;line-height:32px}
}
@media(prefers-reduced-motion:reduce){.critical-focus.timing-locked .critical-window,.critical-focus.timing-locked .timing-strike,.critical-focus.timing-locked .strike-gauge{animation:none!important}.strike-stop-impact{display:none}}

/* Name entry uses the familiar game keys, without opening a phone keyboard. */
.shell.stage>.knight-identity{justify-content:center;padding:22px 22px 60px;max-width:450px;gap:8px}
.knight-identity.identity-edit .identity-portrait{width:108px;height:120px;margin-bottom:0}
.knight-identity.identity-edit h1{font-size:25px}.knight-identity.identity-edit>.eyebrow{margin-bottom:2px}
.knight-identity.identity-edit>p:not(.eyebrow){font:italic 13px Georgia}
.knight-identity form{margin-top:8px;gap:9px;width:100%}
.knight-identity label{font-size:8px}.knight-identity label small{font:11px Georgia;letter-spacing:.5px}
.identity-nameframe input{height:43px;cursor:default;caret-color:transparent;user-select:none}
#name-keyboard-hint{font:italic 11px/1.4 Georgia;color:#aebb9f;margin:1px 0 3px;text-align:center}
.identity-keyboard{display:flex;flex-direction:column;width:100%;gap:6px;margin:0 auto;padding:0;max-width:390px;touch-action:manipulation}
.identity-keyboard .key-row{display:flex;justify-content:center;gap:4px;width:100%;margin:0}
.identity-keyboard .key{position:relative;display:grid;place-items:center;min-width:0;width:calc((100% - 36px)/10);height:43px;min-height:43px;padding:0 0 4px;border:0;border-radius:0;background:linear-gradient(#647159,#3f503a);color:#f2e5bf;box-shadow:inset 0 2px #b2b588,inset 1px 0 #849071,inset -1px 0 #1a271b,inset 0 -5px #152217;text-shadow:0 1px #101a10;font:16px/1 'Knightle Quill',Georgia;touch-action:manipulation;user-select:none;-webkit-user-select:none;cursor:pointer;clip-path:polygon(2px 0,calc(100% - 2px) 0,100% 2px,100% calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,0 calc(100% - 2px),0 2px)}
.identity-keyboard .key:active{transform:translateY(3px);filter:brightness(1.25);box-shadow:inset 0 1px #c3c69b,inset 0 -2px #152217}
.identity-keyboard .key:focus-visible{outline:2px solid #f4d68e;outline-offset:2px}
.identity-keyboard .name-function{width:calc((100% - 36px)/10 * 1.5);font-size:10px;letter-spacing:0}
.identity-keyboard .name-function[data-name-key="BACK"]{font:21px Georgia}
.identity-keyboard .name-space{width:42%;height:31px;min-height:31px;font:9px 'Knightle Quill',Georgia;letter-spacing:2px}
.knight-identity form>.btn{margin-top:8px;min-height:45px;font-size:10px}
@media(max-width:700px) and (max-height:760px){.shell.stage>.knight-identity{padding:18px 18px 36px;gap:6px}.knight-identity.identity-edit .identity-portrait{width:88px;height:96px}.knight-identity.identity-edit h1{font-size:22px}.identity-keyboard .key{height:40px;min-height:40px;font-size:14px}.identity-keyboard .name-function{font-size:9px}.identity-keyboard .name-space{height:29px;min-height:29px;font-size:8px}.identity-nameframe input{height:38px;font-size:19px}.knight-identity form{gap:7px;margin-top:5px}}
@media(max-width:700px) and (max-height:620px){.shell.stage>.knight-identity{padding:16px 15px 22px;gap:4px}.knight-identity.identity-edit .identity-portrait{width:58px;height:62px}.knight-identity.identity-edit h1{font-size:20px}.knight-identity.identity-edit>p:not(.eyebrow){font-size:11px}.identity-keyboard{gap:5px}.identity-keyboard .key{height:35px;min-height:35px;font-size:12px}.identity-keyboard .name-function{font-size:8px}.identity-keyboard .name-space{height:25px;min-height:25px;font-size:7px}.knight-identity form>.btn{min-height:39px;margin-top:4px;font-size:9px}.identity-nameframe input{height:33px;font-size:17px}#name-keyboard-hint{font-size:10px;margin:0}}
@media(orientation:landscape) and (max-height:500px){.shell.stage>.knight-identity.identity-edit{max-width:750px;display:grid;grid-template-columns:1fr 1.4fr;grid-template-rows:auto auto auto;align-content:center;justify-items:center;gap:6px 24px;padding:20px 30px}.identity-edit>.eyebrow{grid-column:1;grid-row:1}.identity-edit>.identity-portrait{grid-column:1;grid-row:2;width:95px;height:108px}.identity-edit>h1{grid-column:1;grid-row:3;font-size:19px!important}.identity-edit>p:not(.eyebrow){display:none}.identity-edit>form{grid-column:2;grid-row:1/4;gap:5px}.identity-keyboard .key{height:30px;min-height:30px;font-size:12px}.identity-keyboard .name-function{font-size:8px}.identity-keyboard .name-space{height:24px;min-height:24px;font-size:7px}.identity-edit .identity-nameframe input{height:32px}.identity-edit form>.btn{min-height:34px;margin:3px 0 0;font-size:9px}}

/* Text/icon swaps have exactly the same footprint, even while a gate opens. */
.oath-enter{height:48px;min-height:48px;max-height:48px;box-sizing:border-box;padding:7px 10px}
.oath-choice{box-sizing:border-box;height:78px;min-height:78px;max-height:78px}
.oath-choice>span:nth-child(2){min-width:0}
.identity-keyboard .name-key{flex:none;max-width:none}
.identity-keyboard .name-space{width:42%;max-width:none}
.identity-keyboard .name-key-spacer{width:calc((100% - 36px)/10 * 7 + 24px);flex:none}
@media(max-width:700px){.oath-choice{height:66px;min-height:66px;max-height:66px}.oath-enter{height:44px;min-height:44px;max-height:44px;padding:5px 9px}.oath-choice .oath-mark>.provision-icon{width:28px;height:34px}}
@media(max-width:700px) and (max-height:760px){.oath-route{margin-top:4px;margin-bottom:4px}.oath-heading>p:last-child{min-height:2.5em}.oath-screen>.oath-footnote{margin-top:4px}.oath-choice{height:63px;min-height:63px;max-height:63px}}
@media(max-width:700px) and (max-height:640px){.oath-choice{height:59px;min-height:59px;max-height:59px}.oath-choice .oath-mark>.provision-icon{width:24px;height:30px}}
.oath-heading>p:last-child{height:3em;min-height:3em}
@media(max-width:700px) and (max-height:640px){
 .quest-prelude.modal-backdrop{padding-top:34px;padding-bottom:8px}
 .oath-heading h2{font-size:22px;line-height:1.15;min-height:2.3em;margin-top:6px;margin-bottom:3px}
 .oath-heading>p:last-child{font-size:11px;line-height:1.4;height:3em;min-height:3em}
 .oath-prompt{margin:5px 0 4px}.oath-choice{height:56px;min-height:56px;max-height:56px;padding-block:7px}
 .oath-elixir{height:22px;min-height:22px;margin-top:6px}.oath-entry-details{height:48px;min-height:48px}
 .oath-sealed-copy,.oath-sealed-copy[aria-hidden="true"]{height:24px;min-height:24px;line-height:12px;margin-top:4px}
 .oath-tutorial-link{height:20px;min-height:20px;margin-top:3px}.oath-screen>.oath-footnote{height:20px;min-height:20px;margin-top:3px}
}
