*{box-sizing:border-box}html{color-scheme:dark;background:#090711}body{margin:0;color:#eee7ff;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;background:radial-gradient(ellipse at 50% 15%,#38224c,transparent 65%),#090711;min-height:100svh}button,a,input,select{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #67ecf2;outline-offset:3px}.cabinet{width:min(100%,590px);margin:0 auto;padding:10px 10px max(16px,env(safe-area-inset-bottom));position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:42px;gap:8px;font-size:12px;color:#d1c3e9}.topbar>span{font-size:9px;letter-spacing:1.4px}.topbar button{background:#251c36;color:#ddd0f8;border:1px solid #58476e;border-radius:8px;padding:10px 12px}.marquee{display:flex;align-items:center;gap:12px;padding:10px 16px 13px;border:1px solid #b38a52;border-radius:22px 22px 4px 4px;background:linear-gradient(120deg,#251e39,#4b3064 48%,#1c1428);box-shadow:inset 0 2px #e2b87766,0 0 30px #b365f521}.marquee p{font-size:9px;letter-spacing:2.6px;margin:0 0 4px;color:#d9baee}h1{font-size:clamp(29px,8.5vw,48px);letter-spacing:-1.5px;line-height:1;margin:0;font-weight:950;font-style:italic;white-space:nowrap}h1 em{color:#ffe7a1;text-shadow:0 0 20px #f6cb5466}.moon{font-size:40px;color:#f5d38e}.edition{margin-left:auto;text-align:right;font-size:8px;line-height:1.6;letter-spacing:1px;color:#ddbd83}.table{margin-top:5px;border:2px solid #8f7145;border-radius:5px 5px 25px 25px;background:radial-gradient(ellipse at 50% 40%,#20182f,#0c0c19);box-shadow:inset 3px 0 #a774dc99,inset -3px 0 #a774dc99,0 10px 30px #0008;overflow:hidden;transition:box-shadow .16s}.table-top,.table-bottom{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;color:#c7b6d5;font-size:9px;letter-spacing:1.2px;gap:5px}.table-top b{color:#ffe395;font-size:18px;letter-spacing:0}.table-top i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#71eade;margin-right:5px}.table-bottom{padding-top:0;font-size:9px;letter-spacing:.4px}.table-bottom b{color:#6de9e6}#board{display:block;width:100%;height:auto;aspect-ratio:1;touch-action:pan-y}.reaction{display:flex;gap:10px;align-items:center;min-height:78px;padding:8px 12px;margin:6px 0;background:linear-gradient(100deg,#31213e,#1c1529);border:1px solid #604c7c;border-radius:14px}.reaction canvas{width:48px;height:50px;flex:0 0 48px;border-radius:10px}.reaction>div{min-width:0;flex:1}.reaction span{font-size:9px;color:#b79acf;letter-spacing:1.5px}.reaction p{font-size:12px;margin:4px 0;line-height:1.6}.reaction output{font-size:clamp(19px,6vw,30px);font-weight:900;color:#f9d989;white-space:nowrap;text-shadow:0 0 16px #ffc84a44}.controls{display:flex;gap:12px;align-items:stretch;padding:12px;border-radius:14px;background:linear-gradient(#30273b,#14111f);border:1px solid #7a6550;box-shadow:0 4px #05050b}.balance{display:flex;flex-direction:column;justify-content:center;min-width:110px;flex:1}.balance>span{font-size:9px;letter-spacing:1.6px;color:#c6afdc}.balance strong{font-size:27px;line-height:1.25;font-variant-numeric:tabular-nums}.balance small{font-size:10px;color:#c9b9d4}#drop{min-height:76px;min-width:150px;flex:1.25;border:1px solid #ffecb2;border-radius:13px;background:linear-gradient(160deg,#fff0a9,#eeb851 55%,#bf7b30);color:#2a1833;box-shadow:0 4px #755126,inset 0 2px #fff9,0 0 18px #ffd77125;touch-action:manipulation;user-select:none}#drop span{display:block;font-size:23px;font-weight:950;font-style:italic}#drop small{font-size:10px}#drop:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #755126}#drop:disabled{filter:saturate(.45);opacity:.65;cursor:default}.status-line{display:flex;align-items:center;justify-content:space-between;min-height:37px;gap:8px;padding:6px 4px;color:#bfaed0;font-size:11px}#retry{background:#332343;color:#fff;border:1px solid #aa86ed;border-radius:6px;padding:8px;white-space:nowrap}.quick-guide{display:flex;justify-content:space-between;gap:4px;padding:12px 4px;border-top:1px solid #4a365a;font-size:10px;color:#c1afd3}.quick-guide b{font-size:9px;color:#f4ce7a;margin-right:3px}details{padding:14px 4px;color:#bfb0cc;font-size:12px;line-height:1.8}summary{cursor:pointer;color:#dcc9f0}details label{display:flex;justify-content:space-between;align-items:center;margin:14px 0;gap:20px}input[type=range]{accent-color:#c494ef;width:60%}select{padding:10px;background:#281c35;border:1px solid #82639b;color:#fff;border-radius:6px}.subtle,footer{font-size:10px;color:#8d7b9e}footer{text-align:center;letter-spacing:1px;padding:10px}.hit .table{box-shadow:inset 4px 0 #64ffff,inset -4px 0 #64ffff,0 0 32px #58eeff66}.big-hit .table{box-shadow:inset 5px 0 #ffea9f,inset -5px 0 #ffea9f,0 0 50px #efb75788}.hit .reaction{border-color:#79fff2}.big-hit .reaction{border-color:#ffe39e}.hit output{animation:pop .5s ease-out}@keyframes pop{0%{transform:scale(.7)}45%{transform:scale(1.18)}100%{transform:scale(1)}}@media(max-width:350px){.cabinet{padding:7px}.marquee{gap:8px;padding-inline:10px}.moon{font-size:30px}.edition{font-size:7px}.controls{gap:8px;padding:9px}.balance{min-width:95px}#drop{min-width:140px}.reaction{gap:7px;padding-inline:8px}.reaction p{font-size:11px}}@media(prefers-reduced-motion:reduce){.hit output{animation:none}.table{transition:none}}

/* Version 3: the machine is the main surface; controls stay compact. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.cabinet{width:min(100%,620px);padding:4px 6px max(12px,env(safe-area-inset-bottom))}.topbar{min-height:34px}.topbar button{padding:7px 10px}.table{border:0;background:transparent;margin:0;border-radius:0;box-shadow:none!important;overflow:visible}#board{aspect-ratio:10/11}.table-bottom{padding:0 12px 4px;letter-spacing:0;font-size:9px}.reaction{min-height:53px;padding:4px 10px;margin:4px 0}.reaction canvas{width:36px;height:37.5px;flex-basis:36px}.reaction span{font-size:8px}.reaction p{margin:0;font-size:11px}.reaction output{font-size:21px}.controls{padding:8px 11px}.balance strong{font-size:23px}#drop{min-height:61px}#drop span{font-size:25px}.status-line{min-height:28px}.quick-guide{padding:8px 4px}
