:root{color-scheme:light;--ink:#303b37;--gold:#c5a14e;--cream:#eee3bc;--pull:0px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 15%,#48544d,#202c28 68%);color:var(--ink);font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;min-height:100dvh}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation;font-weight:750}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #77dbf9;outline-offset:3px}[hidden]{display:none!important}main{width:min(100%,430px);margin:auto;padding:9px 12px 14px}header{display:flex;align-items:center;justify-content:space-between;color:#e9e4ce;font-size:11px;padding:0 3px 9px;gap:8px}header a{color:#c4eef5;text-decoration:none;font-weight:750}.wallet strong{color:#fff;font-size:16px;font-variant-numeric:tabular-nums}.text-button{border:1px solid #a89f7480;border-radius:5px;background:#ffffff0b;color:#eee4c8;min-height:30px;padding:0 10px}.cabinet{position:relative;background:linear-gradient(90deg,#664022,#ac7437 3%,#d3b76e 4%,#e9d39a 5%,#80622d 6%,#dfc88c 7%,#bd9850 93%,#654522 94%,#f2d994 96%,#92632d 98%,#58331d);padding:7px 9px 0;border-radius:8px 8px 18px 18px;box-shadow:0 12px 28px #0008,inset 0 1px 2px #fff9;border:1px solid #655025}.backbox{background:linear-gradient(90deg,#645028,#ecd68b 3%,#baa25e 5%,#efe5c5 6% 94%,#8c7336 95%,#f6df95 97%,#76602f);border-radius:4px 4px 0 0;padding:5px 9px 8px;box-shadow:0 5px 5px #38260e66;position:relative;z-index:2}.backglass{position:relative;background:radial-gradient(ellipse at 50% 120%,#f9edc6,#e9dfbd);border:1px solid #947b50;padding:6px 10px 4px;overflow:hidden}h1{text-align:center;letter-spacing:3px;font-size:21px;font-weight:900;margin:0;line-height:1.2;color:#333b31;text-shadow:1px 1px #fff8}h1 span{color:#9b3824}.english-title{text-align:center;font-size:6px;letter-spacing:2px;color:#9d784c;margin:2px 0 4px}.cloud{position:absolute;top:13px;width:22px;height:6px;border-radius:9px;background:#457d8d;box-shadow:5px -3px #457d8d}.cloud-left{left:10px}.cloud-right{right:10px}.backbox-controls{display:grid;grid-template-columns:36px 1fr 42px;align-items:center;gap:12px}.scoreboard{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:9px;color:#78663f}.led{display:block;width:102px;height:34px;text-align:center;font:800 27px/34px ui-monospace,monospace;color:#ff402e;background:#2d1910;border:3px ridge #b69756;box-shadow:inset 0 0 9px #000;text-shadow:0 0 8px #ff361d}.coin-slots{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:linear-gradient(110deg,#555,#dfdcd3,#75766c,#e7e4d9);border:2px ridge #b4ab8f;border-radius:3px;padding:5px 4px;box-shadow:1px 2px 2px #0004}.coin-slots i{display:block;width:5px;height:24px;background:#242722;border:1px solid #777;justify-self:center;box-shadow:1px 0 white}.coin-slots small{grid-column:span 2;font-size:7px;text-align:center}.hopper{height:52px;background:linear-gradient(115deg,#ffca45,#e5a326);border:1px solid #b67c1b;border-radius:3px 3px 13px 13px;box-shadow:2px 3px 3px #674c2644;position:relative}.hopper span{position:absolute;top:9px;left:5px;right:5px;height:12px;background:#ffd85a;clip-path:polygon(0 0,100% 0,85% 100%,15% 100%);box-shadow:0 1px 2px #5d2c00}.hopper i{position:absolute;width:11px;height:8px;background:#774311;bottom:7px;left:15px;border-radius:50%;box-shadow:inset 0 2px 3px #301500}.backbox-footer{display:flex;justify-content:space-between;font-size:7px;color:#9e472c;margin-top:5px;font-weight:800}.playfield-frame{position:relative;padding:8px 7px 0;background:linear-gradient(90deg,#193f2d,#426a44 6%,#30563a 94%,#173c2b);border-left:3px ridge #d3bb75;border-right:3px ridge #d3bb75;box-shadow:inset 0 6px 10px #0005}.glass{position:relative;border:2px solid #aa9b68;border-bottom:0;border-radius:68px 68px 0 0;overflow:hidden;height:clamp(270px,46dvh,430px);background:#eadbb4;box-shadow:inset 0 0 15px #48411766}.glass:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(118deg,transparent 28%,#fff2 29%,transparent 43%,#fff1 66%,transparent 68%)}canvas{width:100%;height:100%;display:block}#board-loading{position:absolute;inset:0;display:grid;place-content:center;background:#eee3bcde;color:#665535;font-size:13px;font-weight:750}.apron{position:relative;border:3px ridge #d2b56c;border-top:5px ridge #d6c897;border-radius:0 0 4px 4px;background:radial-gradient(ellipse at 20% 100%,#decfa9,transparent 50%),repeating-linear-gradient(135deg,#f2e6c4 0px,#f2e6c4 28px,#eee0bb 29px,#eee0bb 30px);padding:5px 9px 0;box-shadow:0 3px 3px #44271166}.apron-label{display:flex;justify-content:space-between;color:#876b3c;font-size:8px;letter-spacing:1px;border-bottom:1px solid #c0a574;padding-bottom:3px}.apron-controls{display:grid;grid-template-columns:52px minmax(0,1fr) 64px;gap:8px;align-items:start;min-height:100px}.start-section{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:9px;font-size:10px;font-weight:900;color:#774723;font-style:italic}.start-section button{width:43px;height:43px;border-radius:50%;background:radial-gradient(circle at 37% 28%,#ff7150,#e84024 45%,#ad2310 75%);border:4px ridge #d7b278;color:#ffefc9;box-shadow:0 3px 0 #81361d,0 3px 7px #0004;font-size:10px;padding:0;line-height:1.1}.start-section button:disabled{filter:saturate(.65);color:#f0c5a6}.start-section button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #81361d}.start-section small{font-size:9px;font-style:normal}.bet-section{padding-top:10px}.bet-label{font-size:10px;white-space:nowrap}.bet-label strong{font-size:16px;color:#a5391f;font-variant-numeric:tabular-nums}.bet-label>span{float:right;font-size:9px;margin-top:4px}.stakes{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:5px}.stakes button{min-height:27px;padding:0;background:#faf1d9;border:1px solid #ae915d;border-radius:4px;box-shadow:0 2px 0 #a08957;color:#5c462b;font-size:11px}.stakes button[aria-pressed=true]{background:#385d42;border-color:#304b32;color:#fff4c7;box-shadow:0 2px 0 #213820}.stakes button:disabled{opacity:.5}.force-readout{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:9px;color:#81623a}.force-readout output{font-weight:900;color:#a53520;font-variant-numeric:tabular-nums}.force-meter{height:4px;border-radius:3px;background:#cbb88c;margin-top:3px;overflow:hidden}.force-meter i{height:100%;display:block;width:0;background:linear-gradient(90deg,#607a3f,#d99225,#c5301e)}.plunger-section{position:relative;text-align:center;height:105px;padding-top:5px}.pull-label{font:bold 8px ui-monospace,monospace;letter-spacing:1px;color:#744b2b}#plunger{position:absolute;top:17px;left:0;width:64px;height:85px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:none;border:0;padding:0;cursor:grab;overflow:visible}#plunger:active{cursor:grabbing}#plunger:disabled{opacity:.55}.plunger-shaft{position:absolute;top:1px;left:27px;width:10px;height:calc(20px + var(--pull));background:linear-gradient(90deg,#4e524d,#fff,#92968b,#41433b);border:1px solid #6d6d5b;box-shadow:1px 0 2px #0004}.plunger-spring{position:absolute;top:3px;left:22px;width:20px;height:calc(15px + var(--pull));background:repeating-linear-gradient(165deg,transparent 0 3px,#41473d 4px,#eeeee1 5px,#65685a 6px,transparent 7px);border-left:1px solid #807d65;border-right:1px solid #807d65}.plunger-knob{position:absolute;top:16px;left:8px;width:48px;height:24px;transform:translateY(var(--pull));border:2px solid #635538;border-radius:7px;background:linear-gradient(#faf3ce,#acb1a4 20%,#727a72 42%,#dedfcc 52%,#a39770 80%,#62583f);box-shadow:0 3px 0 #5b4a29,0 4px 7px #0004}.cabinet-base{height:21px;background:linear-gradient(#a43d20,#692614);border-radius:0 0 12px 12px;color:#e2b77c;text-align:center;font-size:7px;letter-spacing:3px;padding-top:7px;box-shadow:inset 0 4px 4px #42150c55}.feedback{min-height:35px;text-align:center;color:#eee1bc}#message{font-size:12px;line-height:1.45;margin:10px 0 4px}#message.win{color:#ffd365;font-size:15px;font-weight:850}#recover{border:1px solid #b39b63;background:#e8d7aa;color:#513f25;border-radius:5px;padding:8px 12px;font-size:12px}footer{text-align:center;color:#aea98d;font-size:8px;margin-top:7px}@media(max-height:740px){main{padding:6px 10px 9px}header{padding-bottom:6px}.backglass{padding:4px 9px}h1{font-size:19px}.led{height:29px;font-size:23px;line-height:26px}.backbox-controls{gap:9px}.hopper{height:43px}.coin-slots i{height:18px}.backbox-footer{margin-top:3px}.glass{height:41dvh;min-height:230px}.apron-controls{min-height:98px}.backbox{padding-bottom:5px}#message{margin-top:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* The apron handle shares the launch-chute axis; its shaft reaches the in-board tip. */
.apron-controls{grid-template-columns:52px minmax(0,1fr) 64px;min-height:125px}.plunger-section{position:absolute;top:0;width:64px;height:125px;padding:0;z-index:3}.pull-label{position:absolute;top:108px;left:5px;white-space:nowrap}#plunger{top:0;height:125px}.plunger-shaft{top:-5px;height:calc(74px + var(--pull));left:29px;width:6px}.plunger-spring{top:15px;height:calc(49px + var(--pull));left:25px;width:14px}.plunger-knob{top:64px}.apron{overflow:visible}.force-readout{margin-top:12px}
.plunger-spring{top:calc(15px + var(--pull));height:max(5px,calc(49px - var(--pull)))}#plunger:before{content:"";position:absolute;left:23px;top:62px;width:18px;height:4px;background:linear-gradient(#f5f1d6,#686e63);border:1px solid #6b644e}

/* Shared Kamigo blue/white enamel; metal components retain their material shading. */
:root{--ink:#163943;--gold:#abdfee;--cream:#eaf9fe}
body{background:linear-gradient(155deg,#f5fcff,#eaf9fe 65%,#dff5fd);color:#163943}
header,header a,.wallet strong,.feedback,footer{color:#163943}
.text-button,#rules,#recover{background:#fff;border-color:#abdfee;color:#163943}
.cabinet{background:linear-gradient(90deg,#06657c,#087f9c 3%,#77dbf9 4%,#fff 5%,#248ea6 6%,#abdfee 7%,#77dbf9 93%,#087f9c 94%,#eaf9fe 96%,#399eb4 98%,#06657c);border-color:#087f9c;box-shadow:0 12px 28px #16394330,inset 0 1px 2px #fff}
.backbox{background:linear-gradient(90deg,#087f9c,#dff5fd 3%,#77dbf9 5%,#fff 6% 94%,#77dbf9 95%,#eaf9fe 97%,#087f9c);box-shadow:0 5px 5px #16394322}
.backglass{background:radial-gradient(ellipse at 50% 120%,#fff,#eaf9fe);border-color:#abdfee}
h1,h1 span,.english-title,.scoreboard,.backbox-footer,.apron-label,.start-section,.force-readout,.pull-label{color:#087f9c}
.cloud{background:#77dbf9;box-shadow:5px -3px #77dbf9}
.led{border-color:#abdfee;background:#163943;color:#77dbf9;text-shadow:0 0 8px #77dbf9}
.hopper{background:linear-gradient(115deg,#77dbf9,#087f9c);border-color:#087f9c;box-shadow:2px 3px 3px #16394333}.hopper span{background:#c9f1fc}.hopper i{background:#163943;box-shadow:inset 0 2px 3px #06657c}
.playfield-frame{background:linear-gradient(90deg,#087f9c,#77dbf9 6%,#77dbf9 94%,#06657c);border-color:#abdfee}
.glass{background:#eaf9fe;border-color:#abdfee}#board-loading{background:#eaf9feee;color:#087f9c}
.apron{background:radial-gradient(ellipse at 20% 100%,#c9f1fc,transparent 50%),repeating-linear-gradient(135deg,#fff 0px,#fff 28px,#eaf9fe 29px,#eaf9fe 30px);border-color:#abdfee;box-shadow:0 3px 3px #16394333}.apron-label{border-color:#abdfee}
.start-section button{background:radial-gradient(circle at 37% 28%,#77dbf9,#087f9c 45%,#06657c 75%);border-color:#abdfee;color:#fff;box-shadow:0 3px 0 #06657c,0 3px 7px #16394344}.start-section button:disabled{color:#eaf9fe}.start-section button:active:not(:disabled){box-shadow:0 1px 0 #06657c}
.bet-label strong,.force-readout output{color:#087f9c}.stakes button{background:#fff;border-color:#abdfee;box-shadow:0 2px 0 #8dcfdf;color:#163943}.stakes button[aria-pressed=true]{background:#087f9c;border-color:#06657c;color:#fff;box-shadow:0 2px 0 #06657c}
.force-meter{background:#abdfee}.force-meter i{background:linear-gradient(90deg,#77dbf9,#087f9c,#06657c)}
.cabinet-base{background:linear-gradient(#087f9c,#06657c);color:#eaf9fe;box-shadow:inset 0 4px 4px #16394333}#message.win{color:#087f9c}

/* One physical coin input; the upper counter displays the actual committed stake. */
.backbox-controls{grid-template-columns:36px 1fr 62px}.hopper{width:62px;height:62px;padding:0;position:relative;touch-action:manipulation}.hopper b{position:absolute;left:0;right:0;top:27px;color:#fff;font-size:13px}.hopper i{left:25px;bottom:5px}.hopper:disabled{opacity:.5;cursor:default}.hopper:active:enabled{transform:translateY(2px)}.hopper:focus-visible{outline-color:#087f9c}
.inserted-display{text-align:center;margin-top:6px;color:#163943;font-size:11px}.inserted-display strong{display:inline-block;min-width:2.5ch;font:800 23px ui-monospace,monospace;color:#087f9c}.inserted-display small{display:block;min-height:12px;color:#52727b;font-size:9px}.coin-hint{font-size:10px;color:#52727b;line-height:1.5;min-height:30px;margin:7px 0 0}.start-section button{font-size:9px}.scoreboard.selecting .led{box-shadow:0 0 12px #77dbf980,inset 0 0 9px #000}

/* Status copy never resizes the cabinet or changes scroll anchoring on release. */
html{scrollbar-gutter:stable}body{overflow-anchor:none}.feedback{height:76px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}#message,#message.win{font-size:12px;line-height:18px;height:36px;margin:8px 0 4px}#recover{padding:4px 10px;min-height:28px}

#coin{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}

/* Four fixed masks leave the real current control interactive, without moving the cabinet. */
#guide{position:fixed;inset:0;z-index:100;pointer-events:none}
.guide-shade{position:fixed;background:#092d3ed1;pointer-events:auto;touch-action:none}
#guide-ring{position:fixed;border:3px solid #77dbf9;border-radius:12px;box-shadow:0 0 18px #77dbf970;pointer-events:none}
#guide-tip{position:fixed;padding:14px 16px;background:#f2fbff;color:#163943;border:1px solid #77dbf9;border-radius:12px;box-shadow:0 5px 22px #0004;pointer-events:auto}
#guide-step{font-size:12px;font-weight:850;color:#087f9c}#guide-copy{font-size:15px;line-height:1.6;margin:7px 0 12px}
#guide-close{font-size:12px;background:none;border:0;color:#52727b;padding:5px 0;text-decoration:underline}

/* The return trough is part of the board; the plunger protrudes below the cabinet fascia. */
.glass{height:clamp(340px,56dvh,520px)}
.apron-controls{min-height:78px}.apron{min-height:98px}
.plunger-section{height:195px}.pull-label{top:177px}#plunger{height:195px}
.plunger-shaft{height:calc(150px + var(--pull))}.plunger-spring{top:131px;height:calc(6px + var(--pull))}.plunger-knob{top:150px}
.cabinet-base{height:28px}.feedback{margin-top:105px}
@media(max-height:740px){.glass{height:49dvh;min-height:300px}.apron-controls{min-height:65px}.apron{min-height:85px}.plunger-shaft{height:calc(137px + var(--pull))}.plunger-spring{top:118px}.plunger-knob{top:137px}.pull-label{top:165px}}

/* Compact cabinet: opaque fascia hides the internal shaft. */
.backbox{padding:3px 7px 4px}.backglass{padding:4px 8px 3px}
h1{font-size:16px;line-height:1.1;letter-spacing:2px}.english-title,.backbox-footer,.coin-slots{display:none}
.backbox-controls{grid-template-columns:1fr 48px;gap:8px;margin-top:3px}.scoreboard{gap:0}.led{height:25px;line-height:23px;font-size:21px;width:90px}
.hopper{width:48px;height:46px}.hopper span{top:5px}.hopper b{top:19px;font-size:12px}.hopper i{left:18px;bottom:4px}
.inserted-display{margin-top:2px;font-size:10px}.inserted-display strong{font-size:18px}.inserted-display small{min-height:10px;font-size:8px}
.cloud{top:9px}.glass{height:clamp(340px,58dvh,540px)}
.plunger-section,#plunger{height:calc(var(--case-edge,125px) + 174px)}
.plunger-shaft{top:var(--case-edge,125px);height:calc(11px + var(--pull))}
.plunger-spring{top:calc(var(--case-edge,125px) + 3px);height:calc(6px + var(--pull))}
.plunger-knob{top:calc(var(--case-edge,125px) + 8px)}
.pull-label{top:calc(var(--case-edge,125px) + 176px)}#plunger:before{display:none}
.feedback{margin-top:85px}
@media(max-height:740px){.glass{height:54dvh;min-height:300px}}

/* Reserve the complete 140px handle stroke inside the viewport. */
@media(min-width:0px){
  html{scrollbar-gutter:auto}
  body{min-height:0;margin:0}
  main{width:min(100%,430px);height:100dvh;min-height:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;flex-direction:column}
  header{flex:0 0 32px;padding:0 8px;min-height:32px}
  .cabinet{flex:1 1 0;min-height:0;width:100%;padding:3px 4px 0;display:flex;flex-direction:column;border-radius:6px 6px 12px 12px}
  .backbox{flex:none;padding:2px 5px 3px}.backglass{padding:3px 6px 2px}
  .playfield-frame{flex:1 1 0;min-height:0;padding:4px 3px 0;display:flex;flex-direction:column}
  .glass{flex:1 1 0;height:auto;min-height:0;border-radius:48px 48px 0 0}
  .apron{flex:none;min-height:76px;padding:3px 7px 0}.apron-controls{min-height:57px}
  .start-section{padding-top:4px;gap:1px}.start-section>span,.start-section>small{display:none}
  .start-section button{width:44px;height:44px}.bet-section{padding-top:4px}.coin-hint{margin-top:3px;min-height:28px}
  .cabinet-base{flex:none;height:18px;padding-top:4px;font-size:6px}
  .feedback{flex:0 0 190px;height:190px;min-height:190px;margin:0;padding:10px 84px 0 12px;align-items:center;justify-content:center}
  #message,#message.win{height:36px;margin:0 0 4px;font-size:11px;line-height:18px}
  footer{flex:0 0 12px;margin:0;font-size:7px;line-height:12px}
  .pull-label{top:calc(var(--case-edge,125px) + 176px)}
}

@media(max-width:600px){main{width:100%;max-width:none}.plunger-section,#plunger{width:48px}.plunger-shaft{left:21px}.plunger-spring{left:17px}.plunger-knob{left:0}.pull-label{left:0;font-size:7px}}

/* Paired instrument displays share the same frame and compact header row. */
.backglass{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px;padding:6px}
.backglass h1{text-align:left;font-size:14px;line-height:1.5;letter-spacing:1px;white-space:nowrap}
.backglass h1 span{display:block}.backglass .cloud{display:none}
.backbox-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;gap:6px;margin:0;align-items:center}
.scoreboard,.inserted-display{display:flex;flex-direction:column;align-items:stretch;gap:2px;margin:0;text-align:center;font-size:8px;min-width:0;position:relative;padding-bottom:10px}
.scoreboard>span,.inserted-display>span{height:12px;line-height:12px;white-space:nowrap}
.scoreboard .led,.inserted-display .led{display:block;width:100%;min-width:0;height:28px;box-sizing:border-box;border:3px ridge #abdfee;background:#163943;color:#77dbf9;text-shadow:0 0 8px #77dbf9;font:800 22px/22px ui-monospace,monospace}
.inserted-display small{position:absolute;bottom:0;left:0;right:0;min-height:10px;font-size:7px;line-height:10px;white-space:nowrap}
@media(max-width:350px){.backglass{grid-template-columns:48px minmax(0,1fr);gap:4px;padding:5px 3px}.backglass h1{font-size:13px}.backbox-controls{gap:4px}}

/* One-second celebration overlays never intercept a control or alter layout. */
#sound{font-size:11px;padding:4px;white-space:nowrap}header{gap:5px}header a{white-space:nowrap}header .wallet{margin-left:auto;white-space:nowrap}
.win-effects{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.win-award{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(26px,7vw,44px);color:#fff8c6;text-shadow:0 2px 0 #866010,0 0 14px #da9500;background:#173e49e8;border:2px solid #ffe388;border-radius:16px;padding:8px 20px;animation:win-award 1.05s both}
.win-flare{position:absolute;width:28px;height:28px;border:3px solid #fff1a1;border-radius:50%;box-shadow:0 0 24px 12px #ffd84f;animation:win-flare .55s both}
.win-bead{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 30% 25%,white,#b6edff 40%,#286071);animation:win-bead .45s both}
.win-confetti{position:absolute;width:5px;height:9px;background:#ffd348;animation:win-confetti .85s both}
.celebrating{animation:win-lights .9s}.celebrating #balance{color:#a96c00}
@keyframes win-award{0%{opacity:0;scale:.8}18%,75%{opacity:1;scale:1}100%{opacity:0;scale:1}}
@keyframes win-flare{from{transform:translate(-50%,-50%) scale(.6);opacity:1}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}
@keyframes win-bead{0%{transform:translate(0,0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translate(var(--dx),var(--dy));opacity:0}}
@keyframes win-confetti{from{transform:translate(0,0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--spin));opacity:0}}
@keyframes win-lights{0%,50%,100%{box-shadow:0 0 6px #5ad2ef}25%,75%{box-shadow:inset 0 0 12px #ffe790,0 0 14px #ffd75b}}
@media(prefers-reduced-motion:reduce){.win-flare{animation:none;opacity:.5}.win-award{animation:none}.celebrating{animation:none}}
@media(max-width:350px){header>a{font-size:12px}.wallet{font-size:12px}#balance{font-size:20px}#help{padding:4px}}
header .wallet{min-width:0;white-space:nowrap;font-size:12px}header #balance{font-size:clamp(15px,4.5vw,24px);font-variant-numeric:tabular-nums}header>a{white-space:nowrap}

.win-effects.holding .win-award{animation:win-award-enter .2s both}
.win-effects.finishing .win-award{animation:win-award-exit .35s both}
.celebrating{animation:win-lights .9s infinite}
@keyframes win-award-enter{from{opacity:0;scale:.8}to{opacity:1;scale:1}}
@keyframes win-award-exit{from{opacity:1;scale:1}to{opacity:0;scale:1}}
@media(prefers-reduced-motion:reduce){.win-effects.holding .win-award,.win-effects.finishing .win-award,.celebrating{animation:none}}

#empty-stock{width:100%;padding:8px;border:2px solid #087f9c;border-radius:10px;background:#e4faff;color:#163943;font-size:12px;line-height:1.5}
#empty-stock strong{display:block;font-size:15px}
#empty-stock a{display:block;color:#006880;font-weight:800;text-underline-offset:3px}

/* The 3D display follows the same server-authoritative round and trajectory. */
#board-3d{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.glass.two-dimensional #board-3d{display:none}
#view-mode{position:absolute;z-index:2;top:8px;right:8px;padding:5px 8px;border:1px solid #087f9c;border-radius:6px;background:#eaf9fef0;color:#163943;font-size:11px;font-weight:700}

#board-loading{text-align:center;gap:10px;padding:16px}#pinball-login{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border:1px solid #abdfee;border-radius:8px;background:#fff;color:#163943;text-decoration:none}.pinball-home{min-height:44px;display:inline-flex;align-items:center;justify-content:center;color:#087f9c}#pinball-login[hidden]{display:none}
