/* Prefer the venue's original local m5x7.ttf. If it is absent, use the open-source
   Pixelify Sans web font, followed by a locally available monospace fallback. */
@import url('https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400;500;600;700&display=swap');
/* Supply your own m5x7.ttf in assets/fonts/ to enable the compact pixel UI font. */
@font-face{font-family:'LastCallM5';src:local('m5x7'),url('assets/fonts/m5x7.ttf') format('truetype');font-style:normal;font-weight:400 900;font-display:swap}
:root{color-scheme:dark;--bg:#0c0818;--panel:#151027;--panel-2:#221332;--line:#59436b;--violet:#b863fc;--cyan:#64e9ff;--gold:#ffb76a;--pink:#ff6aa3;--cream:#f9efff;--muted:#b5a0c7;--display:'LastCallM5','Pixelify Sans','Courier New',monospace;--ui:'Trebuchet MS','Segoe UI',Arial,sans-serif;--mono:'LastCallM5','Pixelify Sans','Courier New',monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);font-family:var(--ui);color:var(--cream);overflow-x:hidden}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
button:disabled{cursor:not-allowed;opacity:.45}
[hidden]{display:none!important}
.nightscape{position:fixed;inset:0;z-index:-4;background:linear-gradient(180deg,rgba(8,5,24,.48) 0%,rgba(12,8,22,.58) 42%,rgba(10,6,20,.84) 81%),url('assets/themes/gold-saucer-airship-wallpaper.png') center center / cover no-repeat;image-rendering:pixelated}
.nightscape:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,transparent 8%,rgba(7,5,20,.32) 54%,rgba(7,4,18,.85) 100%)}
body:before{content:'';position:fixed;inset:0;z-index:-3;pointer-events:none;background:linear-gradient(100deg,rgba(98,16,159,.15),transparent 35%,rgba(30,131,194,.12) 80%);}
.bokeh{position:fixed;z-index:-2;pointer-events:none;width:260px;height:260px;border-radius:50%;filter:blur(32px);opacity:.19;animation:drift 26s ease-in-out infinite alternate}
.bokeh-one{left:-110px;top:12%;background:radial-gradient(circle,#d043ff 0,transparent 67%)}
.bokeh-two{right:-85px;top:3%;background:radial-gradient(circle,#3beaff 0,transparent 65%);animation-delay:-13s}
.bokeh-three{left:4%;bottom:-140px;background:radial-gradient(circle,#fd66b1 0,transparent 64%);animation-delay:-8s}
.bokeh-four{right:2%;bottom:-150px;background:radial-gradient(circle,#6367ff 0,transparent 65%);animation-delay:-19s}
@keyframes drift{from{transform:translate(-15px,-12px) scale(.92)}to{transform:translate(42px,24px) scale(1.2)}}
.screen-vignette{pointer-events:none;position:fixed;inset:0;z-index:9;opacity:0;transition:opacity 950ms ease;background:radial-gradient(ellipse at 50% 44%,transparent 12%,rgba(1,1,9,.58) 65%,rgba(0,0,0,.86) 100%)}
.screen-vignette.on{opacity:1}
.site-shell{width:min(1360px,calc(100% - 44px));margin:0 auto;position:relative}
.site-header{min-height:81px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;border-bottom:1px solid rgba(180,105,220,.24);padding:10px 0}
.wordmark{display:flex;align-items:center;gap:13px}.wordmark-centered{justify-self:center;justify-content:center;text-align:center}
.wordmark-emblem{display:grid;place-items:center;width:46px;height:46px;border:1px solid #df8f90;transform:rotate(45deg);box-shadow:0 0 20px #e843b541;background:linear-gradient(135deg,#442047,#170c27);font-size:22px;color:#ffc38a;text-shadow:0 0 10px #ff829c}
.wordmark-emblem::first-letter{transform:rotate(-45deg)}
.wordmark strong{display:block;font-family:var(--display);font-weight:900;font-size:34px;letter-spacing:.18em;text-shadow:0 0 20px #c251d340;color:#ffb35b;background:linear-gradient(180deg,#fff19a 0%,#ffac57 30%,#ff6a4c 69%,#ed2849 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 #49112f) drop-shadow(0 0 19px #fc4e784c)}



.header-actions{display:flex;align-items:center;gap:12px;justify-self:end}
.connection-state{font-family:var(--mono);font-size:11px;color:#91efdd;white-space:nowrap;letter-spacing:.1em;margin-right:12px}.header-spacer{min-width:1px;min-height:1px}
.status-led,.console-dot{display:inline-block;width:7px;height:7px;margin-right:6px;background:#70f6cb;box-shadow:0 0 9px #70f6cb;border-radius:50%}
.top-button{font-family:var(--mono);font-weight:800;font-size:11px;letter-spacing:.07em;color:#f4deff;border:1px solid #715280;background:linear-gradient(135deg,#32213f,#1a132c);border-radius:6px;padding:13px 17px;min-height:42px;transition:border-color .2s,background .2s,transform .2s}
.top-button:hover{border-color:var(--cyan);transform:translateY(-1px);background:#39224b}
.top-button span:first-child{font-size:15px;color:var(--cyan);vertical-align:-1px;margin-right:4px}
.hero{text-align:center;padding:34px 10px 23px}
.hero-kicker{font-size:11px;font-weight:800;color:#dcadee;letter-spacing:.28em;margin:0 0 13px}
.hero-kicker span{color:#eb8dcd;margin:0 12px}
.hero h1{font-family:var(--display);font-size:clamp(42px,5.1vw,78px);font-weight:1000;line-height:1.05;letter-spacing:.01em;margin:0;color:#ffb35b;background:linear-gradient(180deg,#fff19a 0%,#ffac57 30%,#ff6a4c 69%,#ed2849 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 #49112f) drop-shadow(0 0 19px #fc4e784c)}
.hero h1 span{letter-spacing:.05em}
.hero-subtitle{margin:14px 0 0;color:#c0b5db;font-family:var(--mono);font-size:12px;letter-spacing:.26em}
.game-machine{position:relative;border:1px solid #65458b;border-top:2px solid #ae78e6;border-radius:14px;background:linear-gradient(140deg,rgba(32,16,53,.96),rgba(14,12,30,.94) 47%,rgba(24,16,44,.96));box-shadow:0 26px 80px #03040bba,0 0 0 4px #090a20a3,inset 0 0 80px rgba(112,48,148,.15),0 0 29px #8153ba30;overflow:hidden}
.game-machine:before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:13px;border:1px solid rgba(237,164,255,.12)}
.machine-topline,.machine-footline{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 23px;background:linear-gradient(90deg,#3f194f,#17152b 48%,#183c4d);font-family:var(--mono);font-weight:700;letter-spacing:.08em;font-size:11px;color:#e0bce5;border-bottom:1px solid #6a3d73}
.machine-topline .tiny-diamond{color:#ff9d85;margin-right:5px}
.machine-live{color:#99efcf;font-size:10px;letter-spacing:.11em}
.machine-footline{height:31px;background:#120e25;border-bottom:0;border-top:1px solid #423052;font-size:9px;color:#8d84a9}
.machine-columns{display:grid;grid-template-columns:minmax(0,235px) minmax(320px,1fr) minmax(0,235px);min-height:430px}
.side-pane{padding:28px 20px;min-width:0;background:linear-gradient(180deg,rgba(35,22,48,.62),rgba(12,12,28,.84));position:relative}
.left-pane{border-right:1px solid #45345f}
.right-pane{border-left:1px solid #45345f}
.eyebrow{font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:.12em;color:#a99ac9}
.eyebrow-dim{color:#6f6086}
.left-pane h2{font-family:var(--display);font-size:22px;line-height:1.23;color:#ffc68f;margin:12px 0 9px;letter-spacing:.07em}
.side-copy{font-size:13px;color:#c7b1d9;line-height:1.6;margin:0}
.panel-rule{height:1px;background:linear-gradient(90deg,transparent,#735281,transparent);margin:26px 0}
.round-count{display:flex;align-items:baseline;gap:12px;margin:12px 0 24px}
.round-count>span:first-child{font-size:51px;line-height:1;font-weight:900;color:#f0dbff;text-shadow:0 0 20px #d370ff4a}
.round-count-label{font-family:var(--mono);font-size:9px;color:#ad9dbf;white-space:nowrap}
.status-card{display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid rgba(114,213,237,.29);background:#15132c;border-radius:7px}
.status-card strong{font-family:var(--mono);font-size:11px;color:#79e5f2;line-height:1.7}
.status-card>span:last-child{font-size:11px;color:#b9a3c6;line-height:1.4}
.left-ornament{display:block;text-align:center;color:#c576d1;margin-top:26px;letter-spacing:.8em}
.drink-stage{position:relative;min-height:430px;display:flex;align-items:center;justify-content:center;flex-direction:column;isolation:isolate;--drink-accent:#f698ae;background:radial-gradient(ellipse 220px 180px at 50% 47%,#ba57be28 0,transparent 82%),radial-gradient(ellipse 170px 150px at 50% 79%,#5c48bf2a,transparent),linear-gradient(135deg,rgba(76,23,87,.16),rgba(4,18,38,.2))}
.drink-stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 96%,rgba(118,74,138,.15) 100%);background-size:100% 24px;z-index:-1}
.stage-halo{position:absolute;width:min(360px,90%);aspect-ratio:1;border-radius:50%;top:8%;background:radial-gradient(circle,rgba(115,46,139,.22) 0,rgba(98,30,133,.1) 58%,transparent 72%);box-shadow:inset 0 0 0 1px rgba(215,121,236,.16),inset 0 0 0 18px rgba(62,28,93,.08);pointer-events:none}
.stage-arc{position:absolute;width:min(320px,83%);height:110px;border:1px solid #d986ed33;border-top:none;border-radius:50%;bottom:62px}
.stage-label{position:absolute;top:23px;left:10px;right:10px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:#d3b4e5;z-index:1}
.stage-label span{color:#e69bca}
.glass-button{position:relative;width:min(355px,88%);aspect-ratio:1;border:0;padding:0;background:transparent;display:grid;place-items:center;transition:filter .23s;isolation:isolate;outline-offset:6px;z-index:2}
.glass-button:hover:not(:disabled){filter:drop-shadow(0 0 16px var(--drink-accent));}
.glass-button img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 11px 14px #08051ce0) drop-shadow(0 0 20px #ab68d654);transform-origin:50% 58%;position:relative;z-index:1;animation:frameIn .22s ease-out}
.glass-button.shaking img{animation:shakeDrink .42s ease-in-out infinite}
.glass-button.slide-out img{animation:slideOut .36s ease-in both}
.glass-button.slide-in img{animation:slideIn .44s cubic-bezier(.18,.79,.27,1) both}
.glass-shadow{position:absolute;bottom:24px;left:25%;width:50%;height:22px;background:#030515a8;border-radius:50%;filter:blur(15px);z-index:-1}
.spark{font-size:20px;position:absolute;z-index:2;color:#ffe6a7;pointer-events:none;opacity:.33;text-shadow:0 0 12px #db83fd;animation:floatTwinkle 7s ease-in-out infinite}
.spark-a{left:13%;top:28%}.spark-b{right:15%;top:41%;animation-delay:-3s;color:#7bdfff}.spark-c{right:23%;bottom:19%;animation-delay:-5s;color:#f199e9}
.drink-stage.celebrating .spark{color:#ffdb78;opacity:1;animation:floatTwinkle .95s ease-in-out 3}
.stage-bottom{position:absolute;bottom:20px;text-align:center;left:10px;right:10px;display:flex;flex-direction:column;gap:8px;z-index:4}
.stage-bottom>span:first-child{font-family:var(--mono);font-size:10px;letter-spacing:.13em;color:#ffca96}
.stage-description{font-size:11px;color:#aaa0bf;letter-spacing:.05em}
@keyframes shakeDrink{0%,100%{transform:rotate(0) translateY(0)}20%{transform:rotate(-6deg) translate(-4px,0)}40%{transform:rotate(6deg) translate(4px,-3px)}60%{transform:rotate(-5deg) translate(-2px,2px)}80%{transform:rotate(4deg) translate(3px,0)}}
@keyframes slideIn{from{transform:translateX(120%) rotate(10deg);opacity:.15}to{transform:translateX(0) rotate(0);opacity:1}}
@keyframes slideOut{from{transform:translateX(0);opacity:1}to{transform:translateX(-80%) rotate(-10deg);opacity:.1}}
@keyframes frameIn{from{opacity:.72;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes floatTwinkle{0%,100%{transform:translateY(0) scale(.9);opacity:.25}50%{transform:translateY(-12px) scale(1.12);opacity:.75}}
.result-overlay{position:absolute;z-index:5;top:44%;left:50%;transform:translate(-50%,-50%) scale(.95);width:min(305px,94%);border:1px solid #e99dce;padding:21px 17px;border-radius:10px;text-align:center;background:linear-gradient(155deg,#42144ded,#17102bed);box-shadow:0 0 0 5px #180c29a1,0 0 55px #ec59c765;backdrop-filter:blur(7px);animation:resultEnter .34s ease-out forwards;pointer-events:none}
.result-overlay.is-loss{border-color:#ff7596;background:linear-gradient(145deg,#45142bed,#120a22ed);box-shadow:0 0 0 5px #180c29a1,0 0 35px #e83d7145}
.result-eyebrow{font-family:var(--mono);font-size:10px;color:#ffe6ae;letter-spacing:.25em}
.result-title{font-family:var(--display);font-weight:900;line-height:1.2;font-size:clamp(24px,2.8vw,36px);color:#fbe5a0;margin:8px 0;text-shadow:0 0 15px #ff8d64}
.result-overlay.is-loss .result-title{color:#ff8b9f}
.result-prize{font-family:var(--mono);font-weight:900;font-size:19px;color:#85ffdb;margin:10px 0}
.result-overlay.is-loss .result-prize{color:#f2bfca}
.result-roll{font-family:var(--mono);color:#c8b1d5;font-size:11px;letter-spacing:.12em}
@keyframes resultEnter{to{transform:translate(-50%,-50%) scale(1)}}
.last-roll{font-family:var(--display);font-size:50px;color:#eff1ff;font-weight:900;letter-spacing:.09em;margin:14px 0 3px}
.last-outcome{font-size:12px;color:#d2bddf;line-height:1.5;min-height:30px}
.odds-list{display:flex;flex-direction:column;gap:7px;margin-top:15px}
.odds-row{display:grid;grid-template-columns:7px 1fr auto;gap:10px;align-items:center;padding:7px 8px;border:1px solid #4934595e;background:#17152b98;border-radius:5px;min-width:0}
.odds-bullet{height:7px;width:7px;display:block;border-radius:50%}
.loss-color{background:#ff6787}.quarter-color{background:#ffbb7d}.half-color{background:#9d81ff}.chug-color{background:#7befda}
.odds-row div{min-width:0}.odds-row strong{font-family:var(--mono);display:block;font-size:11px;color:#f7defa;letter-spacing:.06em}.odds-row small{display:block;color:#9683a9;font-size:10px;margin-top:3px}.odds-row em{font-style:normal;font-family:var(--mono);font-size:11px;font-weight:700;color:#d2c4e1}
.right-footer{margin-top:22px;text-align:center;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:#9d88b4;line-height:1.7}
.player-console{margin-top:18px;border:1px solid #77539b;border-top:2px solid #b06ddd;border-radius:12px;background:linear-gradient(120deg,#1b122fa8,#131223f5 35%,#13192cf2 90%);box-shadow:0 18px 48px #06031094,0 0 18px #a046a322,inset 0 1px #dda7e231;overflow:hidden}
.console-headline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;background:linear-gradient(90deg,#301a42,#1a1a35 72%,#183846);border-bottom:1px solid #5d3b70}
.console-title-wrap{display:flex;align-items:center;gap:10px}
.console-title-wrap h2{margin:0;font-family:var(--display);font-size:15px;letter-spacing:.1em}
.console-dot{width:8px;height:8px}
.console-beta{font-family:var(--mono);font-size:9px;color:#d2bbdc;border:1px solid #775c95;padding:5px 7px;border-radius:3px}
.console-caption{font-family:var(--mono);font-size:11px;color:#82e3e8;letter-spacing:.1em}
.console-body{display:grid;grid-template-columns:minmax(160px,1.55fr) repeat(3,minmax(90px,.8fr)) minmax(240px,1.6fr);align-items:center;gap:14px;padding:18px 22px}
.player-identity{display:flex;align-items:center;gap:14px;min-width:0}
.identity-icon{width:57px;height:57px;min-width:57px;display:grid;place-items:center;background:linear-gradient(150deg,#57205f,#20172e);border:1px solid #a36ad0;color:#ffd8a2;border-radius:9px;font-size:30px;text-shadow:0 0 12px #ec8fd5}
.identity-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.identity-copy label,.console-stat>span{font-size:10px;font-family:var(--mono);font-weight:700;letter-spacing:.07em;color:#a899c5}
.identity-copy input{background:transparent;border:none;border-bottom:1px solid transparent;border-radius:0;outline-offset:3px;padding:2px 0;color:#f8d8f5;font-weight:800;font-size:15px;width:100%;min-width:0;max-width:210px;white-space:nowrap;text-overflow:ellipsis}
.identity-copy input:hover{border-bottom-color:#b173de}.identity-copy>span:last-child{color:#8ea5ae;font-size:9px;letter-spacing:.05em}
.console-stat{height:80px;border:1px solid #625177;background:#17172e94;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;min-width:0}
.console-stat strong{font-family:var(--display);font-size:29px;color:#f6ecff;letter-spacing:.03em;line-height:1.14}
.console-stat small{font-family:var(--mono);font-size:8px;letter-spacing:.04em;color:#8d81a7}
.winnings-stat strong{font-size:24px;color:#86f0d5}
.console-actions{display:flex;flex-direction:column;gap:8px;min-width:0}
.button-drink{height:46px;border-radius:7px;color:#381324;font-family:var(--display);font-size:17px;font-weight:1000;letter-spacing:.1em;border:1px solid #ffd9a5;background:linear-gradient(180deg,#ffe6a5,#ff9c77 56%,#ff646f);box-shadow:inset 0 2px #fff5d3b8,0 4px 0 #81324f,0 0 21px #fc817659;transition:filter .15s,transform .15s}
.button-drink:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}
.button-drink span{font-size:20px;vertical-align:-1px;margin-right:7px}
.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.button-secondary,.button-history{min-height:32px;border-radius:5px;background:#26203c;border:1px solid #645578;color:#e4d0f0;font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.04em}
.button-secondary:hover:not(:disabled),.button-history:hover{border-color:var(--cyan);background:#312448}
.button-history{background:transparent;border-color:transparent;color:#92cbdc;text-decoration:underline;text-decoration-color:#5983a4;text-underline-offset:4px}
.console-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 22px;border-top:1px solid #55416d;color:#a59abf;font-family:var(--mono);font-size:9px;letter-spacing:.035em}
.console-bottom strong{color:#f7d1a0}
.footer{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:18px 3px 34px;font-family:var(--mono);font-size:9px;color:#8a719a;letter-spacing:.12em}
.footer span span{color:#f29eb4}
.help-toast{position:fixed;z-index:30;right:max(20px,calc((100vw - 1360px)/2));top:84px;width:min(402px,calc(100vw - 40px));border:1px solid #b880c3;border-radius:12px;background:linear-gradient(155deg,#382144f4,#16132af9 68%);box-shadow:0 16px 58px #050414df,0 0 27px #c86bdb37;padding:20px;animation:toastIn .25s ease-out;max-height:calc(100dvh - 104px);overflow:auto}
.help-head,.history-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}
.help-head h2,.history-heading h2{margin:5px 0 12px;font-family:var(--display);font-size:22px;color:#ffd3a1;letter-spacing:.07em}
.close-icon{display:grid;place-items:center;width:31px;height:31px;border:1px solid #795789;color:#f6d8ff;background:#20172e;border-radius:5px;font-size:15px}
.close-icon:hover{background:#54305a}
.help-toast p,.help-toast li{font-size:13px;color:#dac6e8;line-height:1.6}
.help-toast ol{padding-left:21px;margin:10px 0}.help-toast li{margin-bottom:7px}
.help-disclaimer{padding:12px;background:#1b1731;border-left:3px solid #83d9e4;color:#b7c5dc!important;font-size:11px!important}
.feedback-toast{position:fixed;z-index:50;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(460px,calc(100vw - 32px));padding:13px 20px;background:#261538;border:1px solid #e6a3c3;border-radius:9px;box-shadow:0 10px 45px #050513b5;color:#ffdfb9;font-family:var(--mono);font-size:12px;text-align:center;animation:toastIn .25s ease-out}
@keyframes toastIn{from{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}
.modal-shade{position:fixed;z-index:45;inset:0;background:#080519c9;display:grid;place-items:center;padding:20px;backdrop-filter:blur(6px)}
.history-modal{width:min(580px,100%);max-height:min(650px,88vh);display:flex;flex-direction:column;border:1px solid #a67fb8;background:linear-gradient(150deg,#31203f,#130f27 80%);border-radius:12px;box-shadow:0 20px 60px #060313d9;padding:23px}
.history-list{min-height:95px;overflow:auto;display:flex;flex-direction:column;gap:7px;padding:12px 0}
.history-entry{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;padding:11px 13px;background:#201b34;border:1px solid #4b3b65;border-radius:7px}
.history-number{font-family:var(--mono);color:#a4d3ef;font-size:12px}
.history-entry strong{display:block;color:#f4d6ef;font-size:13px}.history-entry small{font-family:var(--mono);font-size:10px;color:#9e91b0}
.history-entry em{font-style:normal;color:#8cf0d5;font-weight:800;font-size:12px}
.empty-history{text-align:center;font-size:13px;color:#b5a2c6;margin:24px 0}
.history-foot{border-top:1px solid #51405f;color:#998aad;font-family:var(--mono);font-size:10px;padding-top:13px;line-height:1.6}
@media(max-width:1130px){.machine-columns{grid-template-columns:minmax(0,180px) minmax(280px,1fr) minmax(0,185px)}.side-pane{padding:23px 15px}.console-body{grid-template-columns:minmax(160px,1fr) repeat(3,minmax(90px,.8fr));gap:10px}.console-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1.5fr) minmax(140px,1fr);align-items:center}.button-drink{width:100%}}
@media(max-width:780px){.site-shell{width:min(100% - 20px,700px)}.site-header{flex-wrap:wrap;padding:14px 0;gap:13px}.wordmark strong{font-size:20px}.wordmark-caption{font-size:8px}.header-actions{width:100%;justify-content:space-between;gap:8px}.connection-state{margin:0;font-size:10px}.top-button{padding:10px;font-size:9px}.hero{padding:27px 0 20px}.hero h1{font-size:clamp(32px,8vw,57px)}.hero-kicker{font-size:9px;letter-spacing:.13em}.hero-subtitle{font-size:9px;letter-spacing:.09em}.machine-topline{padding:0 13px;gap:8px;font-size:9px}.machine-topline>span:last-child{display:none}.machine-columns{grid-template-columns:1fr 1fr}.drink-stage{grid-column:1/-1;grid-row:1;min-height:415px}.left-pane,.right-pane{border-top:1px solid #45345f;border-left:0;border-right:0;padding:17px}.left-pane{border-right:1px solid #45345f}.left-pane h2{font-size:17px}.panel-rule{margin:13px 0}.round-count{margin:9px 0}.round-count>span:first-child{font-size:32px}.status-card{padding:9px}.last-roll{font-size:35px;margin:7px 0}.odds-list{margin-top:8px;gap:4px}.odds-row{padding:5px}.right-footer,.left-ornament{display:none}.console-body{padding:13px;grid-template-columns:1fr 1fr 1fr;gap:9px}.player-identity{grid-column:1/-1;padding-bottom:6px}.console-actions{grid-column:1/-1;grid-template-columns:1fr 1.45fr;gap:8px}.button-history{grid-column:1/-1}.console-headline{padding:12px 13px}.console-caption{font-size:9px}.console-bottom{padding:11px 13px;align-items:start;flex-wrap:wrap;font-size:8px}.footer{font-size:8px;align-items:start;flex-wrap:wrap;line-height:1.5}}
@media(max-width:440px){.glass-button{width:min(330px,94%)}.drink-stage{min-height:390px}.stage-halo{width:95%}.stage-bottom{bottom:12px}.stage-label{font-size:9px;letter-spacing:.1em}.console-title-wrap h2{font-size:13px}.console-beta{font-size:8px}.console-caption{display:none}.console-stat{height:75px}.console-stat strong{font-size:23px}.winnings-stat strong{font-size:19px}.console-stat>span{font-size:8px}.console-stat small{font-size:7px}.identity-icon{width:45px;height:45px;min-width:45px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.screen-vignette.on{opacity:.35}}

/* Pixel-font heading is an image rendered from the user-provided font pack; no font binaries are distributed. */
.hero h1 img{display:block;width:min(960px,100%);height:auto;margin:0 auto;image-rendering:pixelated;filter:drop-shadow(0 4px 0 #4b113d) drop-shadow(0 0 18px #fe47736c)}
/* Keep the scenery visible even on browsers that paint negative-z fixed layers behind body. */
body{background:linear-gradient(180deg,rgba(8,5,24,.40),rgba(12,7,25,.70) 82%),url("assets/themes/gold-saucer-airship-wallpaper.png") center center / cover fixed no-repeat,#0c0818}

/* Do not fade the animated glass while interaction is temporarily locked. */
.glass-button:disabled{opacity:1;cursor:default}


/* Alpha 0.4: Slower decorative preselected roll reel. Never decides the actual result. */
.roll-machine{position:absolute;top:44px;left:50%;transform:translateX(-50%);z-index:4;display:flex;flex-direction:column;gap:2px;align-items:center;pointer-events:none;filter:drop-shadow(0 0 12px #7b45bf55)}
.roll-machine-reels{display:flex;gap:4px;padding:5px 7px;border:1px solid #9f75d6;border-radius:8px;background:linear-gradient(165deg,#2c1c4bed,#110d29f5);box-shadow:inset 0 0 8px #4e94c825,0 0 11px #bd79f72a;perspective:200px}
.roll-digit{display:grid;place-items:center;width:30px;height:36px;border:1px solid #705d9e;border-radius:4px;background:linear-gradient(180deg,#302749,#121328 55%,#251c3c);font-family:var(--mono);font-size:23px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1;color:#dff9ff;text-shadow:0 0 7px #6bbdff}
.roll-machine.is-spinning .roll-digit{animation:slotDigitFlip .24s ease-in-out infinite alternate}
.roll-machine.is-spinning .roll-digit:nth-child(2){animation-delay:-.05s}.roll-machine.is-spinning .roll-digit:nth-child(3){animation-delay:-.09s}
.roll-machine.is-final .roll-digit{border-color:#efb68c;color:#ffe4ae;text-shadow:0 0 12px #ffa353}
.roll-caption{font-size:9px;letter-spacing:.15em;color:#d8c1f6;font-family:var(--mono);white-space:nowrap}
@keyframes slotDigitFlip{from{transform:rotateX(-43deg) translateY(-1px);opacity:.7}to{transform:rotateX(27deg) translateY(1px);opacity:1}}
/* End game is different from Tap Out: the player cannot refill the ended game. */
.button-giveup{min-height:32px;border-radius:5px;background:linear-gradient(125deg,#3d1b39,#281628);border:1px solid #ae617d;color:#ffcbdb;font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:.08em}
.button-giveup:hover:not(:disabled){background:#502444;border-color:#ff8faf}
.settlement-modal{gap:14px;width:min(550px,100%)}
.settlement-modal .history-heading h2{color:#ffa4a9;font-size:26px}
.settlement-message{font-size:13px;line-height:1.65;color:#ddc9ec;margin:0}
.settlement-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.settlement-grid>div,.settlement-total{display:flex;flex-direction:column;gap:9px;background:#201630;border:1px solid #654870;border-radius:7px;padding:14px}
.settlement-grid span,.settlement-total span{font-size:10px;letter-spacing:.07em;color:#bca1cb;font-family:var(--mono)}
.settlement-grid strong{font-size:16px;color:#f5e1ff}
.settlement-total{background:linear-gradient(125deg,#312044,#172b41);border-color:#75d2de}
.settlement-total strong{font-family:var(--display);font-size:25px;color:#9ef6e1}
.settlement-note{margin:0;font-size:12px;line-height:1.6;color:#e4c0cc;border-left:3px solid #ed7fa9;padding:11px;background:#25162d}
.settlement-actions{display:flex;gap:11px;flex-wrap:wrap}
.settlement-actions button{padding:12px 17px}
.settlement-actions .button-drink{flex:1}
.settlement-modal .history-foot{margin:0}
@media(max-width:1130px){.console-actions{grid-template-columns:minmax(125px,1fr) minmax(160px,1.5fr) minmax(125px,1fr) minmax(120px,1fr)}.console-actions .button-giveup{grid-column:4;grid-row:1}.console-actions .button-history{grid-column:3;grid-row:1}}
@media(max-width:780px){.console-actions{grid-template-columns:1fr 1.4fr}.console-actions .button-giveup{grid-column:1/-1;grid-row:auto}.console-actions .button-history{grid-column:1/-1;grid-row:auto}.roll-machine{top:44px}}
@media(max-width:440px){.roll-digit{width:25px;height:32px;font-size:20px}.settlement-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.roll-machine.is-spinning .roll-digit{animation:none}}

.settlement-actions .button-secondary{padding:12px 17px}

.player-console,.player-console button,.player-console input{font-family:var(--mono)}
.player-console #console-title,.player-console .console-stat strong,.player-console .settlement-total strong{font-family:var(--display)}
.player-console .identity-copy label,.player-console .identity-copy span,.player-console .console-stat>span,.player-console .console-stat small,.player-console .console-bottom,.player-console .console-caption,.player-console .button-secondary,.player-console .button-history,.player-console .button-drink,.player-console .button-giveup{font-family:var(--mono)}
.player-console input{letter-spacing:.05em}

@media(max-width:780px){.site-header{grid-template-columns:1fr;justify-items:center}.header-actions{justify-self:center;flex-wrap:wrap;justify-content:center}.header-spacer{display:none}.wordmark strong{font-size:26px;letter-spacing:.14em}}



/* Alpha 0.5.2 | m5x7, compact, readable arcade typography. */
:root{--display:'LastCallM5','Pixelify Sans','Courier New',monospace;--mono:'LastCallM5','Pixelify Sans','Courier New',monospace}
/* Keep paragraph/body copy conventional for legibility on small screens. */
body,.side-copy,.help-toast p,.help-toast li,.settlement-message,.settlement-note{font-family:var(--ui)}
.wordmark-centered{position:relative;isolation:isolate;white-space:nowrap;min-width:0;padding:1px 16px 4px}
.wordmark-centered:before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-16%;right:-16%;top:50%;height:55px;transform:translateY(-50%);background:radial-gradient(ellipse at center,rgba(255,102,91,.16) 0%,rgba(195,64,202,.11) 40%,transparent 72%);filter:blur(11px)}
.wordmark-centered:after{content:"";position:absolute;left:19%;right:19%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,132,93,.62),rgba(235,65,138,.62),transparent);box-shadow:0 0 9px #fc647989;pointer-events:none}
.wordmark-centered strong{font-family:var(--display);font-weight:700;font-size:clamp(38px,3.5vw,48px);line-height:1.05;letter-spacing:.07em;padding:6px 3px 9px;color:#ffbc81;background:linear-gradient(180deg,#ffe6a6 0%,#ffab62 30%,#ff784f 67%,#f23d64 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 rgba(57,10,40,.94)) drop-shadow(0 0 7px rgba(255,122,88,.55)) drop-shadow(0 0 16px rgba(222,68,164,.25))}

/* m5x7 looks best with almost no tracking. Excess tracking made PixelHigh crowded. */
.player-console{--console-font:'LastCallM5','Trebuchet MS',sans-serif;--console-title-font:'LastCallM5','Trebuchet MS',sans-serif}
.player-console,.player-console button,.player-console input{font-family:var(--console-font);letter-spacing:.015em}
.player-console .console-headline{padding:15px 20px;gap:12px}
.player-console .console-title-wrap{gap:12px;min-width:0}
.player-console #console-title{font-family:var(--console-title-font);font-size:clamp(26px,2vw,30px);font-weight:700;letter-spacing:.04em;line-height:1.05}
.player-console .console-caption{font-family:var(--console-font);font-size:18px;letter-spacing:0;line-height:1.2;text-align:right}
.player-console .console-body{grid-template-columns:minmax(185px,1.45fr) repeat(3,minmax(100px,.8fr)) minmax(260px,1.85fr);gap:12px;padding:17px 19px;align-items:center}
.player-console .player-identity{gap:11px}
.player-console .identity-icon{width:49px;height:49px;min-width:49px;font-size:26px}
.player-console .identity-copy{gap:5px;flex:1}
.player-console .identity-copy label,.player-console .identity-copy>span:last-child{font-family:var(--console-font);font-size:16px;letter-spacing:.01em;line-height:1.1}
.player-console .identity-copy input{font-family:var(--console-font);font-size:21px;font-weight:700;line-height:1.15;padding:6px 0;max-width:100%;letter-spacing:.01em}
.player-console .console-stat{min-height:89px;height:auto;padding:11px 7px;gap:7px}
.player-console .console-stat>span{font-family:var(--console-font);font-size:17px;letter-spacing:0;line-height:1.1}
.player-console .console-stat strong{font-family:var(--console-title-font);font-size:clamp(34px,2.7vw,41px);line-height:.95;letter-spacing:.015em}
.player-console .console-stat small{font-family:var(--console-font);font-size:15px;letter-spacing:.01em;line-height:1.15}
.player-console .console-actions{gap:8px}
.player-console .button-drink{height:48px;font-family:var(--console-title-font);font-size:25px;font-weight:700;letter-spacing:.02em;line-height:1}
.player-console .button-secondary,.player-console .button-history,.player-console .button-giveup{font-family:var(--console-font);font-size:18px;font-weight:700;letter-spacing:0;line-height:1.15;min-height:37px;padding:7px 9px}
.player-console .secondary-actions{gap:8px}
.player-console .console-bottom{padding:13px 20px;font-family:var(--console-font);font-size:16px;line-height:1.25;letter-spacing:0}
.player-console .console-bottom span{min-width:0}

/* Other short arcade headings use m5x7 with consistent sizes. */
.top-button{font-size:17px;letter-spacing:.02em}
.hero-subtitle{font-size:18px;letter-spacing:.045em}
.machine-topline{font-size:17px;letter-spacing:.02em}
.machine-footline{font-size:15px;letter-spacing:.01em}
.machine-live{font-size:16px;letter-spacing:.01em}
.eyebrow{font-size:17px;letter-spacing:.02em}
.stage-label{font-size:15px;letter-spacing:.035em}
.roll-caption{font-size:15px;letter-spacing:.03em}
.roll-digit{font-size:27px}
.footer{font-size:14px;letter-spacing:.01em}
.left-pane h2{font-size:28px;letter-spacing:.01em}
.status-card strong{font-size:17px;letter-spacing:.01em}
.odds-row small{font-family:var(--console-font, 'LastCallM5');font-size:14px;letter-spacing:0}
.help-head h2,.history-heading h2{font-size:30px;letter-spacing:.03em}
.help-toast>p{margin:13px 0;line-height:1.5}
.help-toast ol{padding-left:23px;margin:12px 0}
.help-toast li{margin:0 0 8px;line-height:1.55}
.help-toast .help-connection{font-family:var(--ui);font-size:12px;line-height:1.5}

@media(max-width:1130px){
 .player-console .console-body{grid-template-columns:minmax(180px,1.35fr) repeat(3,minmax(88px,.8fr));gap:12px}
 .player-console .console-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(125px,1fr) minmax(170px,1.5fr) minmax(140px,1fr) minmax(120px,1fr);align-items:center}
 .player-console .button-drink{width:100%}
}
@media(max-width:780px){
 .wordmark-centered strong{font-size:40px;letter-spacing:.04em}
 .player-console .console-body{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:14px}
 .player-console .player-identity{grid-column:1/-1;padding-bottom:8px}
 .player-console .console-actions{grid-column:1/-1;grid-template-columns:1fr 1.45fr;gap:9px}
 .player-console .console-actions .button-giveup,.player-console .console-actions .button-history{grid-column:1/-1;grid-row:auto}
 .player-console .console-stat{min-height:78px;padding:10px 5px;gap:5px}
 .player-console .console-stat>span{font-size:16px}
 .player-console .console-stat small{font-size:14px}
 .player-console .console-stat strong{font-size:35px}
 .player-console .console-bottom{padding:12px 14px;font-size:15px}
 .machine-topline{font-size:14px}
 .machine-live{font-size:14px}
 .stage-label{font-size:13px}
}
@media(max-width:440px){
 .player-console .console-title-wrap h2{font-size:26px}
 .player-console .console-caption{display:none}
 .player-console .console-stat strong{font-size:32px}
 .player-console .identity-copy input{font-size:21px}
 .player-console .identity-copy label{font-size:16px}
 .player-console .identity-copy>span:last-child{font-size:14px}
 .player-console .button-drink{font-size:24px}
 .player-console .button-secondary,.player-console .button-history,.player-console .button-giveup{font-size:18px}
 .wordmark-centered strong{font-size:36px}
 .hero-subtitle{font-size:16px}
 .machine-topline{font-size:13px}
 .footer{font-size:12px}
}

/* Alpha 0.6: No player name/venue guest entry. The server assigns each game. */
.player-console .console-body{
 grid-template-columns:repeat(3,minmax(110px,.8fr)) minmax(285px,2.05fr);
 gap:14px;
}
.player-console .console-actions{min-width:0}
.player-console .console-stat{min-width:0}
@media(max-width:1130px){
 .player-console .console-body{grid-template-columns:repeat(3,minmax(0,1fr))}
 .player-console .console-actions{grid-column:1/-1}
}
@media(max-width:780px){
 .player-console .console-body{grid-template-columns:repeat(3,minmax(0,1fr))}
 .player-console .console-actions{grid-column:1/-1}
}

/* Last Call Alpha 0.7: focused drink-stage layout. The submitted m5x7 font is
   loaded locally by the owner; its binary is not included in this archive. */
.machine-columns{grid-template-columns:minmax(210px,250px) minmax(310px,1fr) minmax(210px,250px);min-height:565px}
.side-pane{padding:34px 22px}
.left-pane h2{font-family:'LastCallM5','Pixelify Sans',var(--display);font-size:clamp(25px,2vw,32px);line-height:1.12;letter-spacing:.02em;margin:17px 0 14px}
.side-pane .eyebrow{font-family:'LastCallM5','Pixelify Sans',var(--mono);font-size:19px;letter-spacing:.035em;color:#cbb5e2}
.side-copy{font-size:13px;color:#c7b1d9;line-height:1.5}
.progress-label{display:flex;align-items:end;justify-content:space-between;gap:8px;margin:12px 0 7px}
.progress-label strong{font:700 33px/1 'LastCallM5','Pixelify Sans',var(--display);color:#a8faff}
.progress-label span{font:16px/1.3 'LastCallM5','Pixelify Sans',var(--mono);color:#b9a2ce;text-align:right}
.progress-track{height:13px;border:1px solid #8d62b5;background:#100e25;border-radius:5px;overflow:hidden;box-shadow:inset 0 0 11px #080b1b}
.progress-track>div{height:100%;width:0%;background:linear-gradient(90deg,#756bf9,#5bf0ff);transition:width .28s ease;border-radius:4px;box-shadow:0 0 12px #74e7ff}
.house-value{font:700 26px/1.1 'LastCallM5','Pixelify Sans',var(--mono);margin-top:12px;color:#ffe6ae}
.jackpot-value{font:700 31px/1.2 'LastCallM5','Pixelify Sans',var(--mono);margin-top:12px;color:#ff9fca;text-shadow:0 0 18px #d755b33b}
.jackpot-note,.session-note{font-size:11px;color:#b09ec0;line-height:1.55;margin:9px 0 0}
.stat-stack{display:grid;gap:14px;margin:21px 0 0}
.stat-tile{border:1px solid #6b4b87;border-radius:8px;background:linear-gradient(130deg,#281c3d,#111527);padding:14px 13px;min-height:104px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;box-shadow:inset 0 1px #91699b25}
.stat-tile span{font:700 20px/1.05 'LastCallM5','Pixelify Sans',var(--mono);letter-spacing:.02em;color:#cdb8df}
.stat-tile strong{font:700 44px/1.02 'LastCallM5','Pixelify Sans',var(--display);color:#f9efff}
.stat-winnings strong{color:#7bedf1;font-size:clamp(33px,3vw,40px)}
.stat-tile small{font:16px/1 'LastCallM5','Pixelify Sans',var(--mono);color:#b5a4cd}
.drink-stage{min-height:565px;padding:80px 12px 54px;gap:0;justify-content:flex-start}
.stage-label{top:17px}
.roll-machine{top:40px}
.glass-button{width:min(316px,91%);height:auto;aspect-ratio:1;margin:45px 0 0;flex-shrink:0}
.glass-button img{width:100%;height:100%}
.drink-controls{position:relative;z-index:7;display:flex;gap:13px;width:min(330px,93%);margin-top:0;align-items:center;justify-content:center}
.drink-controls .button-drink{font:700 23px/1 'LastCallM5','Pixelify Sans',var(--display);flex:1;min-width:125px;height:49px}
.button-tapout{font:700 21px/1 'LastCallM5','Pixelify Sans',var(--mono);color:#ffd1e4;padding:0 14px;height:49px;min-width:115px;border:1px solid #ba678d;border-radius:6px;background:linear-gradient(160deg,#4b253f,#24152c);box-shadow:inset 0 1px #ee92ad35}
.button-tapout:hover:not(:disabled){border-color:#ff9ac3;background:#563050}
.button-tapout:disabled{opacity:.45;cursor:not-allowed}
.stage-bottom{bottom:13px;gap:5px}
.stage-description{font-size:11px}
.result-overlay{top:44%;max-width:320px}
.machine-footline{height:auto;min-height:34px;gap:8px;flex-wrap:wrap;font-size:11px}
.hero-subtitle{font-size:12px}
.help-toast{font-family:'Trebuchet MS',Arial,sans-serif}
.help-toast p,.help-toast li{font-size:14px;line-height:1.55}
.settlement-modal .button-tapout{height:auto;min-height:44px}
@media(max-width:1130px){.machine-columns{grid-template-columns:minmax(170px,205px) minmax(280px,1fr) minmax(170px,205px)}.side-pane{padding:24px 15px}.side-pane .eyebrow{font-size:17px}.left-pane h2{font-size:23px}.house-value{font-size:23px}.jackpot-value{font-size:25px}.stat-tile strong{font-size:35px}.stat-winnings strong{font-size:30px}.drink-stage{min-height:530px}.glass-button{width:min(292px,91%)}}
@media(max-width:780px){.machine-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.drink-stage{grid-column:1/-1;grid-row:1;min-height:515px;padding-top:74px;padding-bottom:56px}.side-pane{padding:18px}.left-pane{border-right:1px solid #45345f}.right-pane{border-left:0}.stat-stack{gap:8px;margin:12px 0}.stat-tile{min-height:77px;padding:10px}.stat-tile span{font-size:17px}.stat-tile strong{font-size:30px}.stat-winnings strong{font-size:27px}.panel-rule{margin:16px 0}.drink-controls{margin-top:-2px}.glass-button{margin-top:35px}.side-pane .eyebrow{font-size:17px}.stage-label{font-size:10px}.progress-label strong{font-size:26px}.house-value{font-size:22px}}
@media(max-width:440px){.site-shell{width:calc(100% - 18px)}.drink-stage{min-height:475px;padding-top:62px}.glass-button{width:min(275px,88%);margin-top:32px}.drink-controls{gap:7px;width:98%}.drink-controls .button-drink{font-size:21px;min-width:118px}.button-tapout{font-size:20px;min-width:105px}.side-pane{padding:15px 11px}.side-pane .eyebrow{font-size:16px}.left-pane h2{font-size:23px}.progress-label{flex-wrap:wrap}.progress-label span{font-size:14px}.house-value{font-size:19px}.jackpot-value{font-size:21px}.stat-tile span{font-size:17px}.stat-tile strong{font-size:29px}.stat-winnings strong{font-size:23px}.session-note,.jackpot-note{font-size:10px}.machine-topline{font-size:9px}.machine-footline{font-size:9px;line-height:1.6}}
@media(prefers-reduced-motion:reduce){.progress-track>div{transition:none}}

/* Alpha 0.8 rare jackpot notification. Display only, never auto-settled. */
.result-overlay.is-jackpot{border-color:#ffd278;box-shadow:0 0 0 5px #180c29a1,0 0 65px #dba34d9c;background:linear-gradient(150deg,#513b22f2,#211331f5)}
.result-overlay.is-jackpot .result-title{color:#ffe899;text-shadow:0 0 20px #ffd06b}
.result-overlay.is-jackpot .result-prize{font-size:clamp(12px,1.5vw,15px);line-height:1.55;overflow-wrap:anywhere}

/* Alpha 0.9: queued purchases, no sprite swapping until Next Drink. */
.drink-stage .stage-label strong{color:#ffcf9f;font-family:'LastCallM5','Pixelify Sans',var(--mono);font-size:clamp(17px,2vw,23px);font-weight:700;letter-spacing:.08em}
.drinks-on-tab{display:block;margin-top:9px;color:#9de9ec;font-family:'LastCallM5','Pixelify Sans',var(--mono);font-size:16px;letter-spacing:.01em}
.drink-controls .button-next{height:49px;min-width:146px;flex:1;font:700 23px/1 'LastCallM5','Pixelify Sans',var(--display);color:#17132c;border-radius:6px;border:1px solid #ffe4a2;background:linear-gradient(135deg,#ffe5a6,#ec9fce);box-shadow:0 0 20px #d98ae755;padding:0 12px;cursor:pointer}
.drink-controls .button-next:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 0 28px #e59aef91}
.glass-button img.drink-transition-ghost{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;animation:oldGlassFade .6s ease-in-out forwards!important}
.glass-button img.drink-reveal{animation:newGlassReveal .6s ease-in-out both!important}
@keyframes oldGlassFade{0%{opacity:1}50%{opacity:.92}100%{opacity:0}}
@keyframes newGlassReveal{0%{opacity:.45;filter:drop-shadow(0 0 2px #fff)}60%{opacity:.85}100%{opacity:1}}
@media(max-width:440px){.drink-stage .stage-label strong{font-size:18px}.drink-controls .button-next{font-size:20px;min-width:126px}}
@media(prefers-reduced-motion:reduce){.glass-button img.drink-transition-ghost,.glass-button img.drink-reveal{animation:none!important}}

/* Alpha 0.9.3 typography + dial position correction.
   Make the animated number reels participate in the stage layout instead of
   pinning them 40 px below the upper edge, where they crowd the title.
   The drink stays directly below its own reel on desktop and mobile. */
.drink-stage .roll-machine{
 position:relative;
 top:auto;
 left:auto;
 transform:none;
 margin:0 auto 12px;
 flex:0 0 auto;
 order:0;
}
.drink-stage .glass-button{order:1;margin-top:0}
.drink-stage .drink-controls{order:2}
@media(max-width:780px){
 .drink-stage{padding-top:88px}
 .drink-stage .roll-machine{margin-bottom:9px}
 .drink-stage .glass-button{margin-top:0}
}
@media(max-width:440px){
 .drink-stage{padding-top:93px}
 .drink-stage .roll-machine{margin-bottom:7px}
 .drink-stage .glass-button{margin-top:0}
}

/* Alpha 0.9.5: owner entry point. Navigation is public; settings require server-verified credentials. */
.manager-entry{justify-self:start;min-width:0;display:flex;align-items:center}
.manager-login-link{font-family:var(--mono);display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border:1px solid rgba(169,113,201,.6);border-radius:7px;background:linear-gradient(120deg,rgba(46,29,70,.86),rgba(19,16,39,.85));color:#e9caff;font-weight:700;font-size:11px;letter-spacing:.06em;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s}
.manager-login-link span{color:#7fe6f2;font-size:12px}
.manager-login-link:hover{border-color:var(--cyan);background:#332147;color:#fff}
.manager-login-link:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
@media(max-width:780px){.manager-entry{justify-self:center;grid-row:2}.manager-login-link{font-size:10px;padding:9px 13px}.wordmark-centered{grid-row:1}.header-actions{grid-row:3}}
@media(max-width:440px){.manager-login-link{min-height:38px}}


/* Last Call 0.9.6 revisions: coaster alignment, float animation, queue preview, and approved copy cleanup. */
.hero{padding:20px 10px 10px}
.hero-kicker,.hero-subtitle{display:none}
.game-machine{margin-top:6px}
.left-pane .eyebrow:first-child{color:#cbb5e2}
.right-pane{display:flex;flex-direction:column;gap:12px}
.queue-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px;min-height:154px}
.queue-slot{position:relative;border:1px solid #6b4b87;border-radius:10px;background:linear-gradient(140deg,#251939,#131628);padding:10px 8px 8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;box-shadow:inset 0 1px #8f66a11f;overflow:hidden}
.queue-slot img{width:min(100%,104px);height:auto;image-rendering:pixelated;filter:drop-shadow(0 8px 10px rgba(4,3,18,.75));animation:queueBob 4.2s ease-in-out infinite}
.queue-slot.is-next img{animation-delay:-2.1s;opacity:.9;transform:scale(.94)}
.queue-label{font:700 14px/1 'LastCallM5','Pixelify Sans',var(--mono);letter-spacing:.03em;color:#e8d1ff;margin-bottom:4px}
.queue-copy{margin:2px 0 0;font:16px/1.45 'LastCallM5','Pixelify Sans',var(--mono);color:#9de9ec}
@keyframes queueBob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.02)}}
.queue-slot.is-next img{transform-origin:50% 85%}
.queue-slot.queue-pop-out{animation:queuePopOut .28s ease-in forwards}
.queue-slot.queue-shift-up{animation:queueShiftUp .28s ease-in-out forwards}
.queue-preview.queue-refresh .queue-slot{animation:queueRefresh .24s ease-out}
@keyframes queuePopOut{to{transform:translateY(-12px) scale(.76);opacity:0}}
@keyframes queueShiftUp{to{transform:translateX(calc(-100% - 12px)) scale(1.04)}}
@keyframes queueRefresh{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.glass-button{--drink-scale:.9;--drink-shift-x:0px;--drink-shift-y:-18px;--coaster-scale:.8;--coaster-shift-y:28px;--shadow-scale:1;--shadow-shift-y:46px;width:min(355px,88%);height:min(350px,74vw);aspect-ratio:auto;margin:16px 0 0;position:relative}
.coaster-wrap,.glass-shadow,#glassSprite{position:absolute;left:50%}
.coaster-wrap{bottom:0;z-index:0;pointer-events:none}
.coaster-wrap img{display:block;width:min(218px,74%);height:auto;image-rendering:pixelated;transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--coaster-shift-y)) scale(var(--coaster-scale));filter:drop-shadow(0 10px 12px rgba(4,3,15,.5))}
#glassSprite{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 11px 14px #08051ce0) drop-shadow(0 0 20px #ab68d654);transform-origin:50% 80%;z-index:2;animation:drinkFloat 3.8s ease-in-out infinite, frameIn .22s ease-out}
.glass-shadow{bottom:0;width:46%;height:22px;background:#030515a8;border-radius:50%;filter:blur(15px);z-index:1;transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--shadow-shift-y)) scaleX(var(--shadow-scale));animation:shadowFloat 3.8s ease-in-out infinite}
.glass-button:hover:not(:disabled){filter:drop-shadow(0 0 16px var(--drink-accent)) brightness(1.02)}
.glass-button.shaking #glassSprite{animation:shakeDrinkBase .42s ease-in-out infinite!important}
.glass-button.slide-out #glassSprite{animation:slideOutBase .36s ease-in both!important}
.glass-button.slide-in #glassSprite{animation:slideInBase .44s cubic-bezier(.18,.79,.27,1) both!important}
.glass-button img.drink-transition-ghost{animation:oldGlassFade .6s ease-in-out forwards!important}
#glassSprite.drink-reveal{animation:newGlassRevealBase .6s ease-in-out both!important}
@keyframes drinkFloat{0%,100%{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale))}50%{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(calc(var(--drink-shift-y) - 10px)) scale(var(--drink-scale))}}
@keyframes shadowFloat{0%,100%{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--shadow-shift-y)) scaleX(var(--shadow-scale));opacity:.5}50%{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(calc(var(--shadow-shift-y) + 6px)) scaleX(calc(var(--shadow-scale) * .86));opacity:.32}}
@keyframes shakeDrinkBase{0%,100%{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale)) rotate(0)}20%{transform:translateX(calc(-50% + var(--drink-shift-x) - 4px)) translateY(var(--drink-shift-y)) scale(var(--drink-scale)) rotate(-6deg)}40%{transform:translateX(calc(-50% + var(--drink-shift-x) + 4px)) translateY(calc(var(--drink-shift-y) - 3px)) scale(var(--drink-scale)) rotate(6deg)}60%{transform:translateX(calc(-50% + var(--drink-shift-x) - 2px)) translateY(calc(var(--drink-shift-y) + 2px)) scale(var(--drink-scale)) rotate(-5deg)}80%{transform:translateX(calc(-50% + var(--drink-shift-x) + 3px)) translateY(var(--drink-shift-y)) scale(var(--drink-scale)) rotate(4deg)}}
@keyframes slideOutBase{from{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale));opacity:1}to{transform:translateX(calc(-130% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale)) rotate(-10deg);opacity:.1}}
@keyframes slideInBase{from{transform:translateX(calc(70% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale)) rotate(10deg);opacity:.15}to{transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale)) rotate(0);opacity:1}}
@keyframes newGlassRevealBase{0%{opacity:.45;filter:drop-shadow(0 0 2px #fff);transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(calc(var(--drink-scale) * .98))}60%{opacity:.85}100%{opacity:1;filter:drop-shadow(0 11px 14px #08051ce0) drop-shadow(0 0 20px #ab68d654);transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale))}}
.house-value,.jackpot-value{overflow-wrap:anywhere}
.jackpot-value{font-size:clamp(23px,2.6vw,31px);line-height:1.15}
.stat-winnings strong{font-size:clamp(30px,3vw,38px)}
.machine-topline span:last-child,.footer span:last-child{color:#f0c694}
.footer{padding:14px 3px 28px}
@media(max-width:780px){.queue-preview{min-height:130px}.queue-slot img{width:min(100%,92px)}.queue-copy{font-size:14px}.glass-button{height:min(322px,82vw)}.coaster-wrap img{width:min(206px,72%)}}
@media(max-width:440px){.queue-preview{gap:8px}.queue-label{font-size:13px}.queue-copy{font-size:13px}.glass-button{height:min(286px,88vw)}.coaster-wrap img{width:min(194px,76%)}}
@media(prefers-reduced-motion:reduce){.queue-slot img,.glass-button img,.glass-shadow{animation:none!important}}

/* 0.9.6a: coaster sizing fix verified with the standalone render.
   The coaster's old auto-sized wrapper collapsed to zero width, hiding the art. */
.glass-button .coaster-wrap{
  position:absolute;
  width:172px;
  height:172px;
  left:50%;
  bottom:-9px;
  transform:translateX(-50%);
  display:block;
  pointer-events:none;
  z-index:0;
}
.glass-button .coaster-wrap img{
  position:absolute;
  display:block;
  left:0;
  bottom:0;
  width:100%;
  height:100%;
  object-fit:contain;
  transform:translateY(var(--coaster-shift-y)) scale(var(--coaster-scale));
  transform-origin:50% 76%;
  filter:drop-shadow(0 8px 8px rgba(4,3,15,.55));
  image-rendering:pixelated;
  animation:none;
}
/* Shadow stays between the floating glass and its stationary coaster. */
.glass-button .glass-shadow{bottom:25px;z-index:1}
/* Let the entire coaster remain visible instead of overlapping the action buttons. */
.drink-stage .drink-controls{margin-top:44px}


/* Last Call compact, legible, translucent refinement.
   Keep the coin asset stationary: no changes to the drink's bob/shake animations. */
.site-header{min-height:67px;padding:7px 0}
.manager-login-link{min-height:38px;padding:8px 12px;font-size:14px}
.top-button{min-height:38px;padding:8px 12px;font-size:15px}
.hero{padding:10px 8px 6px}
.hero h1 img{width:min(740px,100%);height:auto}
.game-machine{margin-top:0;background:linear-gradient(135deg,rgba(29,14,49,.49),rgba(11,12,30,.42) 47%,rgba(23,14,43,.50));box-shadow:0 12px 43px rgba(3,4,11,.60),0 0 0 2px rgba(9,10,32,.38),inset 0 0 34px rgba(112,48,148,.08)}
.machine-topline{height:36px;min-height:36px;padding:0 17px;font-size:16px}
.machine-live{font-size:15px}
.machine-footline{height:29px;min-height:29px;padding:4px 14px;font-size:13px}
.machine-columns{grid-template-columns:minmax(200px,252px) minmax(280px,1fr) minmax(220px,255px);min-height:485px}
.side-pane{padding:16px 16px;background:linear-gradient(180deg,rgba(27,17,46,.57),rgba(10,12,29,.62))}
.side-pane .eyebrow,.eyebrow{font-size:17px;line-height:1.14}
.left-pane h2{font-size:26px;margin:8px 0 7px}
.side-copy{font-size:15px;line-height:1.42}
.panel-rule{margin:13px 0}
.progress-label{margin:8px 0 7px}
.progress-label strong{font-size:31px}
.progress-label span{font-size:15px}
.house-value{font-size:24px;line-height:1.15;margin-top:6px}
.jackpot-value{font-size:clamp(22px,2vw,27px);line-height:1.17;margin-top:6px;overflow-wrap:anywhere}
.lucky-number-card{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:11px;border:1px solid rgba(244,185,122,.72);background:linear-gradient(125deg,rgba(87,47,47,.55),rgba(49,32,61,.70));padding:9px 11px;border-radius:8px;box-shadow:inset 0 1px rgba(255,224,170,.12)}
.lucky-number-label{font:700 17px/1.2 'LastCallM5','Pixelify Sans',var(--mono);color:#ffe3b1}
.lucky-number-value{font:700 29px/1 'LastCallM5','Pixelify Sans',var(--mono);color:#fce19e;letter-spacing:.055em;font-variant-numeric:tabular-nums}
.jackpot-status{flex-basis:100%;font:700 14px/1.1 'LastCallM5','Pixelify Sans',var(--mono);color:#ffb9ca}
.drink-stage{min-height:485px;padding:52px 9px 43px;gap:0;justify-content:flex-start;background:linear-gradient(135deg,rgba(73,30,90,.10),rgba(7,17,40,.065));}
.drink-stage:after{opacity:.28}
.drink-stage .stage-halo{opacity:.28;width:min(310px,83%)}
.drink-stage .stage-arc{opacity:.35}
.stage-label{top:10px;font-size:15px;letter-spacing:.025em}
.drink-stage .stage-label strong{font-size:19px;letter-spacing:.02em}
.drink-stage .roll-machine{margin-bottom:4px}
.roll-digit{font-size:26px}
.roll-caption{font-size:14px}
.drink-stage .glass-button{width:min(280px,84%);height:286px;min-height:0;flex-shrink:0;margin:0}
.glass-button .coaster-wrap{width:148px;height:148px;bottom:-4px}
.drink-stage .drink-controls{margin-top:22px;gap:9px;width:min(310px,95%)}
.drink-controls .button-drink,.drink-controls .button-next,.button-tapout{height:43px;font-size:21px}
.stage-bottom{bottom:9px;gap:2px}
.stage-bottom>span:first-child{font-size:16px;letter-spacing:.025em}
.stage-description{font-size:14px;line-height:1.28;letter-spacing:0}
.right-pane{gap:7px}
.queue-preview{min-height:112px;gap:9px;margin-top:0}
.queue-slot{padding:8px 4px 4px}
.queue-slot img{width:min(86px,98%);height:82px;object-fit:contain}
.queue-label{font-size:15px;margin:0}
.queue-copy{font-size:16px;line-height:1.2;margin:0}
.stat-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:4px 0 0}
.stat-tile{padding:9px 9px;min-height:76px;gap:5px}
.stat-tile span{font-size:16px;line-height:1.08}
.stat-tile strong{font-size:33px;line-height:1}
.stat-winnings{grid-column:1/-1;min-height:65px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px}
.stat-winnings strong{font-size:33px;text-align:right;overflow-wrap:anywhere}
.stat-winnings small{font-size:15px}
.right-pane>.panel-rule{margin:4px 0}
.right-pane>.house-value{margin-top:0}
.session-note{font-size:14px;line-height:1.25;margin-top:2px}
@media(max-width:1130px){
 .machine-columns{grid-template-columns:minmax(184px,222px) minmax(274px,1fr) minmax(193px,225px)}
 .side-pane{padding:14px 11px}
 .lucky-number-card{padding:8px}
 .lucky-number-label{font-size:16px}
 .lucky-number-value{font-size:27px}
 .stat-tile span{font-size:15px}
}
@media(max-width:780px){
 .site-header{padding:8px 0}
 .header-actions{justify-self:center}
 .hero{padding:8px 5px 6px}
 .hero h1 img{width:min(630px,100%)}
 .machine-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
 .drink-stage{grid-row:1;grid-column:1/-1;min-height:456px;padding-top:50px;padding-bottom:40px}
 .drink-stage .glass-button{height:266px;width:min(270px,85%)}
 .drink-stage .drink-controls{margin-top:20px}
 .side-pane{padding:14px}
 .right-pane{gap:9px}
 .machine-topline{font-size:13px}
 .machine-live{font-size:13px}
 .machine-footline{font-size:12px}
 .queue-preview{min-height:100px}
 .queue-slot img{height:76px;width:min(76px,98%)}
 .stage-label{font-size:14px}
}
@media(max-width:520px){
 .site-shell{width:calc(100% - 16px)}
 .manager-login-link{font-size:14px}
 .top-button{font-size:14px}
 .machine-columns{grid-template-columns:minmax(0,1fr)}
 .drink-stage{min-height:430px;grid-column:1;grid-row:1;padding:51px 7px 44px}
 .drink-stage .glass-button{width:min(265px,90%);height:268px}
 .glass-button .coaster-wrap{width:144px;height:144px}
 .left-pane{grid-row:2;border-right:0}
 .right-pane{grid-row:3;border-left:0}
 .machine-topline{font-size:13px;flex-wrap:wrap;height:auto;min-height:36px;gap:7px}
 .machine-footline{font-size:12px}
 .queue-preview{min-height:110px}
 .queue-slot img{height:90px;width:min(90px,95%)}
 .side-pane{padding:17px 14px}
 .side-copy{font-size:16px}
 .stat-tile span{font-size:17px}
}

/* Progress crossfade shares the same anchored glass geometry; no sprite jump. */
.glass-button img.drink-transition-ghost{
  position:absolute;
  left:50%;right:auto;top:0;bottom:auto;
  width:100%;height:100%;object-fit:contain;
  transform:translateX(calc(-50% + var(--drink-shift-x))) translateY(var(--drink-shift-y)) scale(var(--drink-scale));
  transform-origin:50% 80%;pointer-events:none;
  animation:oldGlassFade .6s ease-in-out forwards!important;
}


/* Victory overlay + pixel fireworks */
.victory-overlay{position:absolute;left:12%;right:12%;top:108px;bottom:118px;pointer-events:none;z-index:3;opacity:0}
.victory-star,.firework{position:absolute;display:block;opacity:0;transform:scale(.2)}
.victory-star{width:6px;height:6px;background:#fff6a8;box-shadow:0 -6px #fff6a8,0 6px #fff6a8,6px 0 #fff6a8,-6px 0 #fff6a8,6px 6px #ff86db,-6px -6px #73e3ff,6px -6px #ffd46a,-6px 6px #a475ff}
.star-1{left:18%;top:38%}.star-2{left:36%;top:18%;animation-delay:.08s}.star-3{left:52%;top:48%;animation-delay:.16s}.star-4{left:68%;top:26%;animation-delay:.24s}.star-5{left:46%;top:64%;animation-delay:.32s}.star-6{left:74%;top:58%;animation-delay:.4s}
.screen-fireworks{position:absolute;inset:0;pointer-events:none;z-index:2;opacity:0;overflow:hidden}
.firework{width:5px;height:5px;background:#fff4a6;box-shadow:0 -12px #fff4a6,0 12px #fff4a6,12px 0 #fff4a6,-12px 0 #fff4a6,8px 8px #ff85d4,-8px -8px #74e5ff,8px -8px #ffb65d,-8px 8px #8e79ff}
.fw-left-1{left:2%;top:25%}.fw-left-2{left:4%;top:48%;animation-delay:.12s}.fw-left-3{left:7%;top:70%;animation-delay:.22s}.fw-right-1{right:2%;top:22%;animation-delay:.06s}.fw-right-2{right:4%;top:46%;animation-delay:.18s}.fw-right-3{right:7%;top:69%;animation-delay:.28s}
.drink-stage.victory-active .victory-overlay,.drink-stage.victory-active .screen-fireworks{opacity:1}
.drink-stage.victory-active .victory-star{animation:starBurst 1.1s steps(4,end) infinite}
.drink-stage.victory-active .firework{animation:fireworkPop 1.25s steps(4,end) infinite}
@keyframes starBurst{0%{opacity:0;transform:translateY(18px) scale(.25)}20%{opacity:1;transform:translateY(4px) scale(1)}65%{opacity:1;transform:translateY(-12px) scale(1.35)}100%{opacity:0;transform:translateY(-24px) scale(1.75)}}
@keyframes fireworkPop{0%{opacity:0;transform:scale(.18)}18%{opacity:1;transform:scale(1)}62%{opacity:1;transform:scale(1.22)}100%{opacity:0;transform:scale(1.7)}}
@media(max-width:780px){.victory-overlay{top:96px;bottom:110px}.fw-left-1,.fw-right-1{top:18%}.fw-left-2,.fw-right-2{top:42%}.fw-left-3,.fw-right-3{top:65%}}
@media(prefers-reduced-motion:reduce){.drink-stage.victory-active .victory-star,.drink-stage.victory-active .firework{animation:none;opacity:1;transform:scale(1)}}


/* 0.9.7 stable anchored drink and modest extra button clearance.
   Coaster art remains a swappable, fully static venue asset. */
.machine-columns{min-height:535px}
.drink-stage{min-height:535px;padding:52px 9px 21px}
.drink-stage .glass-button{position:relative;overflow:visible;transform:none!important}
.drink-stage .glass-float-anchor{
 position:absolute;inset:0;width:100%;height:100%;display:block;
 pointer-events:none;z-index:2;left:0;top:0;
 animation:lcFloat 3.8s ease-in-out infinite;
}
.drink-stage .glass-float-anchor #glassSprite,
.drink-stage .glass-float-anchor img.drink-transition-ghost{
 position:absolute;left:0;top:0;bottom:auto;right:auto;
 display:block;width:100%;height:100%;object-fit:contain;
 transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale));
 transform-origin:50% 80%;animation:none;
 image-rendering:pixelated;pointer-events:none;
}
.drink-stage .glass-button.shaking .glass-float-anchor #glassSprite{
 animation:lcShakeCentered .42s ease-in-out infinite!important;
}
.drink-stage .glass-button.slide-out .glass-float-anchor #glassSprite{
 animation:lcFadeOut .33s ease-in both!important;
}
.drink-stage .glass-button.slide-in .glass-float-anchor #glassSprite{
 animation:lcFadeIn .44s ease-out both!important;
}
.drink-stage .glass-button .glass-float-anchor #glassSprite.drink-reveal{
 animation:lcReveal .60s ease-in-out both!important;
}
.drink-stage .glass-button .glass-float-anchor img.drink-transition-ghost{
 animation:lcGhost .60s ease-in-out forwards!important;
}
@keyframes lcFloat{0%,100%{transform:translateY(var(--drink-shift-y))}50%{transform:translateY(calc(var(--drink-shift-y) - 10px))}}
@keyframes lcShakeCentered{
 0%,100%{transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale)) rotate(0)}
 20%{transform:translateX(calc(var(--drink-shift-x) - 3px)) scale(var(--drink-scale)) rotate(-4deg)}
 40%{transform:translateX(calc(var(--drink-shift-x) + 3px)) scale(var(--drink-scale)) rotate(4deg)}
 60%{transform:translateX(calc(var(--drink-shift-x) - 2px)) scale(var(--drink-scale)) rotate(-3deg)}
 80%{transform:translateX(calc(var(--drink-shift-x) + 2px)) scale(var(--drink-scale)) rotate(3deg)}
}
@keyframes lcFadeOut{from{opacity:1;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}to{opacity:0;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}}
@keyframes lcFadeIn{from{opacity:0;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}to{opacity:1;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}}
@keyframes lcReveal{from{opacity:.45;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}to{opacity:1;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}}
@keyframes lcGhost{from{opacity:1;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}to{opacity:0;transform:translateX(var(--drink-shift-x)) scale(var(--drink-scale))}}
/* Keep the coaster in its own stationary image layer, unaffected by clicks. */
.drink-stage .glass-button .coaster-wrap,
.drink-stage .glass-button .coaster-wrap img{animation:none!important;transition:none!important}
/* Instructions follow the controls in normal document flow instead of floating over them. */
.drink-stage .stage-bottom{position:relative;bottom:auto;left:auto;right:auto;
 order:3;flex:0 0 auto;width:100%;margin-top:13px;min-height:22px;z-index:4}
.drink-stage .stage-description:empty{display:none}
.drink-stage .drink-controls{margin-top:29px}
.machine-footline #connectionNotice:empty{display:none}
@media(max-width:780px){.machine-columns{min-height:0}.drink-stage{min-height:500px;padding:52px 9px 19px}}
@media(max-width:520px){.drink-stage{min-height:475px;padding:52px 7px 19px}}
@media(prefers-reduced-motion:reduce){.drink-stage .glass-float-anchor{animation:none!important;transform:translateY(var(--drink-shift-y))}}

/* Last Call 0.9.8: brighter visible bar background and airy translucent machine. */
body{background:linear-gradient(180deg,rgba(8,5,24,.17),rgba(12,7,25,.31) 82%),url("assets/themes/gold-saucer-airship-wallpaper.png") center center/cover fixed no-repeat,#0c0818}
.nightscape{background:linear-gradient(180deg,rgba(8,5,24,.18) 0%,rgba(12,8,22,.26) 42%,rgba(10,6,20,.32) 81%),url("assets/themes/gold-saucer-airship-wallpaper.png") center center/cover no-repeat}
.nightscape:after{background:radial-gradient(ellipse at 50% 30%,transparent 15%,rgba(7,5,20,.10) 67%,rgba(7,4,18,.30) 100%)}
.game-machine{background:linear-gradient(135deg,rgba(29,14,49,.23),rgba(11,12,30,.16) 47%,rgba(23,14,43,.24));box-shadow:0 12px 44px rgba(3,4,11,.42),0 0 0 2px rgba(9,10,32,.27),inset 0 0 18px rgba(112,48,148,.025)}
.side-pane{background:linear-gradient(180deg,rgba(27,17,46,.36),rgba(10,12,29,.39))}
.drink-stage{background:linear-gradient(135deg,rgba(73,30,90,.036),rgba(7,17,40,.025))}
.drink-stage:after{background:linear-gradient(transparent 98%,rgba(118,74,138,.055) 100%);background-size:100% 24px}
.session-winnings-value{margin-top:8px;color:#9bf5dc;font:700 clamp(25px,2.3vw,30px)/1.15 'LastCallM5','Pixelify Sans',var(--mono);overflow-wrap:anywhere;text-shadow:0 2px 10px rgba(9,14,28,.85)}
@media(max-width:440px){.session-winnings-value{font-size:clamp(23px,5vw,27px)}}


/* LAST CALL 0.9.9: annotated layout arrangement. No gameplay mechanics changed. */
.site-header{grid-template-columns:1fr auto 1fr;min-height:58px;padding:7px 0}
.wordmark-centered{grid-column:2}
.machine-columns{grid-template-columns:minmax(245px,275px) minmax(360px,1fr) minmax(235px,280px);min-height:505px}
.machine-columns>.drink-stage{grid-column:2;grid-row:1}
.machine-columns>.left-pane{grid-column:1;grid-row:1}
.machine-columns>.right-pane{grid-column:3;grid-row:1}
.machine-topline{height:37px}
.side-pane{padding:16px 15px}
.left-pane{display:flex;flex-direction:column;gap:12px}
.left-deck{display:flex;flex-direction:column;gap:9px;padding-bottom:12px;border-bottom:1px solid rgba(155,113,182,.45)}
.deck-heading{display:flex;align-items:baseline;justify-content:space-between;gap:7px}
.deck-heading strong{font:700 22px/1.15 'LastCallM5','Pixelify Sans',var(--mono);color:#ffcb9f;letter-spacing:.02em}
.deck-heading span{font:700 15px/1 'LastCallM5','Pixelify Sans',var(--mono);color:#d3b7e9;white-space:nowrap}
.left-pane .queue-preview{margin:0;min-height:114px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.left-pane .queue-slot{padding:7px 4px;min-height:111px}
.left-pane .queue-slot img{max-width:100%;height:88px;width:88px;object-fit:contain}
.left-pane .queue-label{font-size:17px;margin-bottom:0}
.left-pane .queue-copy{font:500 16px/1.3 'LastCallM5','Pixelify Sans',var(--mono);margin:0}
.drink-info-block{border-bottom:1px solid rgba(155,113,182,.45);padding:3px 0 13px}
.drink-info-header{display:flex;align-items:center;justify-content:space-between;gap:4px}
.drink-info-copy{min-width:0;flex:1}
.left-pane .drink-info-block .eyebrow{font-size:18px;letter-spacing:.03em}
.left-pane .drink-info-block h2{font-size:clamp(29px,2.1vw,34px);line-height:1.05;margin:7px 0 6px}
.left-pane .side-copy{font-size:clamp(15px,1.15vw,17px);line-height:1.35;color:#f1d7ff;overflow-wrap:anywhere}
.drink-info-thumb{display:block;flex:0 0 76px;width:76px;height:94px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 3px 9px rgba(0,0,0,.48))}
.left-pane .jackpot-value{font-size:clamp(23px,2vw,27px);margin-top:-4px}
.left-pane .lucky-number-card{margin:0}
.left-pane .amount-win-card{margin-top:0;border:1px solid rgba(121,225,192,.38);background:rgba(13,32,42,.4);border-radius:7px;padding:9px 12px}
.amount-win-card .eyebrow{font-size:18px;color:#b4f4dc;display:block}
.amount-win-card #completionReward{font-size:clamp(25px,2vw,29px);color:#ffe7ad;margin:6px 0 0;overflow-wrap:anywhere}
.right-pane{display:flex;flex-direction:column;gap:15px;padding:17px 14px}
.right-pane .panel-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:100%;margin:0;padding:0 0 15px;border-bottom:1px solid rgba(158,117,182,.42)}
.right-pane .panel-actions .top-button{min-height:49px;font-size:16px;line-height:1.12;white-space:normal;padding:8px 5px;width:100%;letter-spacing:0;text-align:center}
.right-progress{padding:11px 12px;background:rgba(17,15,41,.35);border:1px solid rgba(105,157,193,.33);border-radius:8px}
.right-progress .eyebrow{font-size:20px;color:#e0c5f5}
.right-progress .progress-label{margin-top:10px}
.right-progress .progress-label strong{font-size:40px}
.right-progress .progress-label span{font-size:18px}
.right-progress .progress-track{margin-bottom:3px}
.right-pane .stat-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}
.right-pane .stat-tile{min-width:0;min-height:100px;padding:12px 8px}
.right-pane .stat-tile span{font-size:19px}
.right-pane .stat-tile strong{font-size:42px}
.drink-stage .stage-label{top:17px;font-size:18px;letter-spacing:.03em;color:#edc8e6}
.drink-stage{min-height:505px;padding-top:57px;padding-bottom:22px}
.drink-stage .glass-button{width:min(305px,91%);height:290px;flex-shrink:0}
.drink-stage .drink-controls{width:min(330px,94%);margin-top:17px;justify-content:center}
.drink-stage .drink-controls .button-drink,.drink-stage .drink-controls .button-next{flex:0 1 260px;max-width:100%;min-height:50px;font-size:27px}
.drink-stage .stage-bottom{margin-top:16px}
.drink-stage .stage-bottom>span:first-child{font-size:17px}
.drink-stage .stage-bottom .stage-description{font-size:14px}
.drink-controls .button-tapout{display:none!important}
@media(max-width:1150px){.machine-columns{grid-template-columns:minmax(205px,235px) minmax(285px,1fr) minmax(210px,245px)}.left-pane .queue-slot img{height:75px}.left-pane .queue-preview{min-height:101px}.deck-heading strong{font-size:20px}.deck-heading span{font-size:14px}.drink-info-thumb{flex-basis:60px;width:60px;height:82px}.right-pane .panel-actions .top-button{font-size:14px}.right-pane .stat-tile span{font-size:17px}.right-progress .progress-label strong{font-size:34px}}
@media(max-width:800px){
 .site-header{grid-template-columns:1fr auto 1fr}
 .wordmark-centered{grid-column:2;grid-row:1}
 .machine-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .machine-columns>.drink-stage{grid-column:1/-1;grid-row:1;min-height:450px}
 .machine-columns>.right-pane{grid-column:1;grid-row:2;border-left:0;border-top:1px solid #45345f}
 .machine-columns>.left-pane{grid-column:2;grid-row:2;border-right:0;border-left:1px solid #45345f}
 .right-pane .stat-stack{grid-template-columns:1fr 1fr}
 .drink-stage .stage-label{top:11px}
 .right-pane .panel-actions .top-button{font-size:13px}
 .left-pane .drink-info-block h2{font-size:28px}
}
@media(max-width:520px){
 .machine-columns{grid-template-columns:1fr}
 .machine-columns>.drink-stage{grid-column:1;grid-row:1;min-height:440px}
 .machine-columns>.right-pane{grid-column:1;grid-row:2;border-left:0;border-top:1px solid rgba(165,113,193,.43)}
 .machine-columns>.left-pane{grid-column:1;grid-row:3;border-right:0;border-left:0}
 .left-deck{padding-bottom:10px}
 .left-pane .queue-preview{min-height:118px}
 .left-pane .queue-slot img{height:90px}
 .left-pane .queue-copy{font-size:16px}
 .right-pane .panel-actions{grid-template-columns:1fr 1fr}
 .right-pane .panel-actions .top-button{font-size:16px}
 .right-pane .stat-stack{grid-template-columns:1fr 1fr}
 .drink-stage .glass-button{width:min(310px,90%);height:295px}
}

/* 0.9.12: keep Manager Login inside the narrow header grid. */
@media(max-width:780px){
 .site-header .manager-entry{grid-column:1/-1;justify-self:center}
}

/* 0.10.2: persistent outcomes and connection recovery share the venue palette. */
.player-connection{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;border-bottom:1px solid currentColor;background:rgba(8,13,22,.88);color:#f4dda6}
.player-connection[hidden]{display:none}.player-connection strong{font-size:20px}.player-connection p{margin:6px 0 0;line-height:1.5;max-width:70ch}.player-connection button{flex-shrink:0;min-height:44px}
.session-receipt{margin:20px 0 36px;padding:22px;border:1px solid rgba(211,194,140,.45);border-radius:10px;background:rgba(8,14,24,.88);color:#f2eee1;box-shadow:0 8px 28px #0004}
.receipt-header{display:flex;align-items:center;justify-content:space-between;gap:18px}.receipt-header h2{font:700 clamp(24px,3vw,32px)/1.2 var(--display);margin:7px 0}.receipt-header>p{margin:0;line-height:1.6;text-align:right;white-space:pre-line}
.receipt-last-roll{border-left:3px solid var(--gold,#dfbd63);padding:12px 15px;background:#ffffff08;line-height:1.6;overflow-wrap:anywhere;font-size:16px}
.receipt-rows{list-style:none;padding:0;margin:0;display:grid;gap:8px}.receipt-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;padding:13px 15px;border:1px solid #ffffff20;border-radius:6px;background:#ffffff04}.receipt-row strong{font-size:18px}.receipt-row span{line-height:1.45}.receipt-row .receipt-prize{text-align:right}.receipt-note{color:#d6d3c9;line-height:1.6;margin:15px 0 0;font-size:14px}
@media(max-width:600px){.player-connection{align-items:stretch;flex-direction:column;padding:15px}.session-receipt{padding:16px;margin-top:14px}.receipt-header{align-items:flex-start;flex-direction:column;gap:6px}.receipt-header>p{text-align:left}.receipt-row{grid-template-columns:1fr}.receipt-row .receipt-prize{text-align:left}}

/* One player title; decorative result mascot follows venue and player comfort. */
.site-header.player-header{display:flex;justify-content:flex-end;min-height:0;padding:6px 0;gap:0}
.right-pane .result-mascot{display:none;justify-content:center;align-items:center;width:100%;min-width:0;padding-top:10px;pointer-events:none}
.result-mascot img{display:block;width:min(100%,270px);height:auto;image-rendering:pixelated}
body[data-ambient-motion='on']:not([data-player-motion='off']) .right-pane .result-mascot{display:flex}
@media(prefers-reduced-motion:reduce){body .right-pane .result-mascot{display:none!important}}
.player-lives,.chain-balance{padding:13px 14px;border:1px solid var(--line,#8f7842);border-radius:7px;background:var(--panel-2,#14261e);margin-top:12px;min-width:0}.player-lives>span,.chain-balance>span{display:block;font-size:12px;letter-spacing:.08em;color:var(--muted,#d1c7a4)}.player-lives>strong,.chain-balance>strong{display:block;margin-top:5px;font-size:22px;color:var(--gold,#efcf84);overflow-wrap:anywhere}.player-lives p,.chain-balance p{margin:7px 0 0;font:14px/1.5 var(--body,'Segoe UI',sans-serif);color:var(--cream,#f4e9c9)}@media(max-width:380px){}

/* Keep the main player task first in both the DOM and narrow-screen layout. */
.player-compact-status{display:none}
.unconfirmed-glass-label{display:none;font:400 16px/1.5 var(--ui);color:var(--cream);max-width:24ch;padding:20px;text-align:center}
.game-machine.is-unconfirmed .glass-button :is(.glass-float-anchor,.coaster-wrap,.glass-shadow){visibility:hidden}
.game-machine.is-unconfirmed :is(.queue-preview,.drink-info-thumb){visibility:hidden}
.game-machine.is-unconfirmed .unconfirmed-glass-label{display:block;position:absolute;inset:0;margin:auto;height:fit-content}
.game-machine.is-unconfirmed .glass-button{opacity:1}
@media(max-width:800px){
 .drink-stage{justify-content:flex-start;padding-top:15px;min-height:0}
 .player-compact-status{display:block;order:-2;width:min(480px,100%);padding:0 10px 10px;text-align:center;color:var(--cream);position:relative;z-index:3}
 .player-compact-status>strong{display:block;font:700 20px/1.25 var(--display);overflow-wrap:anywhere;color:var(--theme-accent)}
 .player-compact-status>div{display:flex;justify-content:center;gap:10px 20px;flex-wrap:wrap;margin-top:7px}
 .player-compact-status span{font:400 13px/1.4 var(--ui)}
 .player-compact-status span strong{font-size:15px;font-weight:700;margin-left:4px;white-space:nowrap}
 .drink-stage .stage-label{position:relative;order:-1;top:auto;left:auto;right:auto;margin:0 8px 12px;line-height:1.35;overflow-wrap:anywhere}
 .right-pane :is(.right-progress,.player-lives){display:none!important}
}
@media(max-width:520px){
 .drink-stage .glass-button{width:min(290px,90%);height:270px}
 .drink-stage .drink-controls{margin-top:10px}
 .drink-stage .stage-bottom{margin-top:13px}
 .right-pane .stat-tile{min-height:80px}
}
@media(max-width:380px){.player-compact-status>div{gap:6px 12px}}

/* Player presentation polish: hide redundant earnings/rules without changing payouts. */
.drink-stage #stageRuleLabel,.right-pane #chainBalance{display:none!important}
.drink-stage .stage-bottom .player-table{
 width:min(365px,98%);max-width:100%;margin:4px auto 0;text-align:left;
 position:relative;z-index:5;background:var(--theme-surface,#10251ddf);
}
.drink-stage .stage-bottom .player-table[open]{box-shadow:0 9px 24px #09071670}
.drink-stage .stage-bottom .player-table>summary{padding:9px 13px;min-height:43px}
.drink-stage .stage-bottom .player-table>summary>strong{display:block;margin:3px 0 0;overflow-wrap:anywhere}
.drink-stage .stage-bottom .player-table .player-table-body{padding:0 13px 11px}
.drink-stage .stage-bottom .stage-description:empty{display:none}
/* Results must stay interactive and readable until Continue is clicked. */
.drink-stage .result-overlay{pointer-events:auto;z-index:10;max-width:min(335px,96%);padding:18px 16px}
.result-continue{display:block;width:100%;min-height:46px;margin:18px auto 0;padding:10px 16px;
 font:700 18px/1.3 var(--display);letter-spacing:.04em;cursor:pointer;color:#311941;
 border:2px solid #fff1ba;border-radius:9px;
 background:linear-gradient(180deg,#fff9e2,#ffc17b);box-shadow:0 4px 0 #a65a90,0 0 18px #f9d46c48}
.result-continue:hover:not(:disabled){filter:brightness(1.09)}
.result-continue:focus-visible{outline:3px solid #80ffe2;outline-offset:4px}
.result-continue:disabled{opacity:.65;cursor:default}
@media(max-width:480px){.drink-stage .stage-bottom .player-table{width:min(370px,100%)}
 .drink-stage .result-overlay{top:45%}}

/* 0.11 beta: give the existing Chocobo artwork room to dance without stretching,
   modifying the GIF, or changing player controls/layout. The original GIF has
   substantial transparent margins, so simply increasing the displayed width
   does not make the character visibly larger. Center-crop those margins in CSS. */
.right-pane .result-mascot{
 position:relative;
 height:228px;
 min-height:228px;
 padding:0;
 overflow:hidden;
 flex:0 0 auto;
}
.right-pane .result-mascot img{
 position:absolute;
 left:50%;
 top:calc(50% - 4px);
 width:532px;
 max-width:none;
 height:228px;
 object-fit:contain;
 transform:translate(-50%,-50%);
 image-rendering:pixelated;
}
@media(max-width:780px){.right-pane .result-mascot{height:220px;min-height:220px}}
@media(max-width:440px){.right-pane .result-mascot{height:204px;min-height:204px}}

/* Owner's original Gamba presentation: keep the approved bar layout and Chocobo. */
.right-pane #playerLives,.right-pane #chainBalance{display:none!important}
.jackpot-invested-card{border:1px solid rgba(121,225,192,.38);background:rgba(13,32,42,.42);border-radius:8px;padding:12px;min-width:0;overflow-wrap:anywhere;box-shadow:inset 0 1px rgba(255,255,255,.06)}
.jackpot-invested-card[hidden]{display:none!important}
.jackpot-invested-card>span{display:block;color:var(--theme-accent,#d9e8cf);font:700 clamp(12px,1.25vw,16px)/1.25 var(--mono);letter-spacing:.03em}
.jackpot-invested-card>strong{display:block;margin:10px 0 0;color:#ffe8b0;font:700 clamp(22px,2.15vw,29px)/1.16 var(--display);overflow-wrap:anywhere}
.jackpot-invested-card p{font:13px/1.5 var(--ui);color:var(--cream);margin:8px 0 0;overflow-wrap:anywhere}

/* Player layout refinements: centered mode, clear drink heading and table spacing. */
.machine-live { text-align:center; margin-inline:auto; }
.deck-heading { flex-wrap:nowrap; }
.deck-heading strong { white-space:nowrap; }
.left-pane .drink-info-block .eyebrow { border-bottom:1px solid rgba(155,113,182,.45); padding-bottom:8px; }
.left-pane .drink-info-block h2 { font-size:clamp(16px,1.45vw,22px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.drink-stage .stage-bottom .player-table { margin-top:18px; }

.machine-topline { display:grid; grid-template-columns:1fr auto 1fr; }
.machine-topline > span:last-child { text-align:right; }
@media(max-width:520px){.machine-topline { grid-template-columns:1fr; height:auto; padding-block:8px; text-align:center; }.machine-topline > span:last-child { text-align:center; }}

/* Chocobo help window: static pixel scenery follows the player's local clock. */
#drinksOnTab[hidden] { display:none!important; }
.result-message { margin:10px 0 14px; font:16px/1.45 var(--ui); color:var(--cream); }
.result-message[hidden] { display:none; }
body .right-pane .chocobo-window {
 display:block!important; pointer-events:auto; position:relative; overflow:hidden;
 width:100%; height:228px; min-height:228px; padding:0; cursor:pointer;
 border:5px solid #b3a372; border-radius:4px;
 box-shadow:inset 0 0 0 3px #293e37,0 3px 0 #152b29;
 background:#80cffa url('assets/decor/porygatto-pixel-horizons-daytime.jpg') center/cover no-repeat;
}
body .right-pane .chocobo-window[data-time-of-day='night'] { background-image:url('assets/decor/porygatto-pixel-horizons-nighttime.jpg');background-color:#122142; }
body .right-pane .chocobo-window img { top:calc(50% - 7px);pointer-events:none; }
.chocobo-help-label { position:absolute;bottom:5px;left:4px;right:4px;z-index:2;padding:5px 2px;
 font:700 12px/1.2 var(--mono); color:#fff4c9;background:#142e32d9;text-align:center; }
.chocobo-window:focus-visible { outline:3px solid #ffe58c;outline-offset:4px; }
@keyframes chocoboHop { 0%,100% { transform:translate(-50%,-50%) translateY(0); } 50% { transform:translate(-50%,-50%) translateY(-14px); } }
@media(prefers-reduced-motion:no-preference){body:not([data-player-motion='off']) .chocobo-window:is(:hover,:focus-visible) img { animation:chocoboHop .5s ease-in-out infinite; }}

/* Equal full-width Sound and Comfort panels. */
.right-pane .panel-actions #soundToggle { grid-column:1 / -1; }

/* Light sparkling fizz stays in the margins and behind the page. */
.ambient-site-glints { position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1; }
.ambient-site-glints i { position:absolute;left:var(--x);bottom:-24px;width:var(--size);height:var(--size);
 border:1px solid #f8e7b766;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff6d44d,transparent 55%);
 box-shadow:0 0 7px #eecf7b20;opacity:.28; }
@keyframes sparklingRise { 0% { transform:translate(0,0);opacity:0; } 12%,75% { opacity:.35; } 100% { transform:translate(8px,-110vh);opacity:0; } }
@media(prefers-reduced-motion:no-preference){body:not([data-player-motion='off']) .ambient-site-glints i {animation:sparklingRise var(--duration) linear var(--delay) infinite;}}
body[data-player-motion='off'] .ambient-site-glints i { bottom:calc(var(--x) * .7); }
@media(prefers-reduced-motion:reduce){.ambient-site-glints i{bottom:calc(var(--x) * .7);opacity:.15;}}

.player-header::after { content:'';position:absolute;inset:0;pointer-events:none;opacity:.3;
 background:radial-gradient(circle at 9% 35%,transparent 3px,#f5e2aa80 3px,transparent 4px),radial-gradient(circle at 90% 65%,transparent 5px,#f5e2aa60 5px,transparent 6px),radial-gradient(circle at 14% 70%,#fff4ce70 1px,transparent 3px),radial-gradient(circle at 86% 22%,#fff4ce70 1px,transparent 3px); }
.player-header { position:relative; }

body .right-pane .chocobo-window[data-time-of-day='sunset'] { background-image:url('assets/decor/porygatto-pixel-horizons-sunset.jpg');background-color:#ff9342; }

/* Single-line payout/help labels and a calm resting Chocobo. */
.amount-win-card #completionRewardLabel { white-space:nowrap; font-size:clamp(11px,1.1vw,16px); letter-spacing:0; }
.chocobo-help-label { display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;font-size:clamp(8px,.7vw,11px);letter-spacing:0;padding:5px 0; }
.pixel-help-icon { width:12px;height:12px;flex:0 0 12px; }
@keyframes chocoboAmbientBounce { 0%,100% { transform:translate(-50%,-50%) translateY(0); } 50% { transform:translate(-50%,-50%) translateY(-4px); } }
@media(prefers-reduced-motion:no-preference){body:not([data-player-motion='off']) .right-pane .chocobo-window img,
body:not([data-player-motion='off']) .right-pane .chocobo-window:is(:hover,:focus-visible) img {animation:chocoboAmbientBounce 3s ease-in-out infinite;}}

/* Help caption stays above the Chocobo, inside the frame. */
.chocobo-help-label { top:5px;bottom:auto;font-size:clamp(10px,.85vw,12px);padding:6px 0; }

.chocobo-help-label { font-size:clamp(9px,.75vw,11px);letter-spacing:-.3px;gap:3px; }

.lastcall-venue-credit{font-family:monospace;text-align:center;color:var(--theme-accent,#d6b15e);font-size:12px;letter-spacing:.22em;margin:8px 0 12px}.lastcall-venue-credit[hidden]{display:none}

.drink-stage>.lastcall-venue-credit{position:absolute;top:8px;left:0;right:0;margin:0;z-index:4}@media(max-width:800px){.drink-stage>.lastcall-venue-credit{position:relative;top:auto;order:-1;margin:0 0 8px}}

/* Newly drawn square mascot: leave room for the help caption and all animation poses. */
body .right-pane .chocobo-window img{width:min(82%,176px);height:176px;max-height:calc(100% - 42px);top:calc(50% + 12px);object-fit:contain}
/* Shared player cabinet proportions: identical for all venue themes. */
.game-machine .machine-columns>*,.game-machine .side-pane{min-width:0}
.game-machine .right-pane #jackpotInvestedCard{display:none}
.game-machine .right-pane .stat-tile span{display:block;font-size:14px;line-height:1.15;letter-spacing:0;overflow-wrap:normal}
.game-machine .right-pane .stat-tile{min-width:0;padding:10px 7px;min-height:98px}
.game-machine .right-pane .stat-tile strong{font-size:40px;line-height:1.05}
.game-machine .left-pane .drink-info-block h2{font-size:18px;line-height:1.15;white-space:nowrap;letter-spacing:0}
.game-machine .left-pane .side-copy{font-size:15px;line-height:1.3;overflow-wrap:break-word}
.game-machine .right-pane .chocobo-window{height:228px;min-height:228px;max-width:100%;box-sizing:border-box}
@media(min-width:801px){
 .game-machine .machine-columns{grid-template-columns:minmax(205px,225px) minmax(0,1fr) minmax(215px,235px)}
 .game-machine .right-pane{gap:13px;padding:16px 13px}
 .game-machine .drink-stage{min-height:0;padding-bottom:20px}
 .game-machine .left-pane{padding:16px 14px;gap:11px}
 .game-machine .drink-stage .stage-bottom .player-table{width:min(370px,96%)}
}
/* Keep totals and progress captions on one line inside the shared sidebars. */
.game-machine .left-pane .jackpot-value{font-size:22px;white-space:nowrap;line-height:1.15;letter-spacing:0}
.game-machine .right-progress .progress-label{display:flex;align-items:baseline;justify-content:space-between;gap:6px;flex-wrap:nowrap}
.game-machine .right-progress .progress-label strong{font-size:34px;white-space:nowrap}
.game-machine .right-progress .progress-label span{font-size:14px;white-space:nowrap;letter-spacing:0}
/* Consistent single-line payout caption on player pages and embedded previews. */
.game-machine .amount-win-card #completionRewardLabel{display:block;min-width:0;font-size:clamp(10px,1.05vw,13px);line-height:1.2;letter-spacing:0;white-space:nowrap}
@media(max-width:800px){.game-machine .amount-win-card #completionRewardLabel{font-size:12px}}
.game-machine .right-pane{container-type:inline-size}
.game-machine .chocobo-help-label{font-size:clamp(8px,4cqi,10px);white-space:nowrap;letter-spacing:0;padding-left:1px;padding-right:1px}

body.jackpot-lives .right-pane #playerLives:not([hidden]){display:block!important}

.drink-stage .roll-lives{padding:0;margin:0 0 4px;border:0;border-radius:0;background:none;min-width:0}
.drink-stage .roll-lives>strong{margin:0;font-size:30px;line-height:1.1;color:var(--gold,#efcf84);letter-spacing:.06em}
