:root{--ink:#e9e1c8;--muted:#a59f8b;--glass:#0d100ee8;--line:#ffffff24;--accent:#ffb15c;--red:#c4553a;--phosphor:#5dff9a;--phosphor-dim:#2fa862;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--sans:"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color-scheme:dark;font-family:var(--sans);color:var(--ink)}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:#121512;overflow:hidden;overscroll-behavior:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
button:disabled{opacity:.4;cursor:not-allowed}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h2,p{margin:0}
.mono{font-family:var(--mono)}
[hidden]{display:none!important}
/* Site details stay outside the working area during play. */
.start-screen{overflow-y:auto}
.start-description{font-size:14px;line-height:1.9;color:var(--muted);margin:-18px 0 28px}
.start-footer{margin-top:32px;color:var(--muted);font-size:11px;line-height:1.8}
.start-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;margin-bottom:10px}
.start-footer a,.site-info-links a{color:var(--muted);text-underline-offset:4px}
.start-footer a:hover,.site-info-links a:hover{color:var(--accent)}
.site-info-links{display:grid;gap:18px;margin:24px 0}
#site-info p{line-height:1.9;margin-top:20px}
#site-info small{color:var(--muted)}
@media(max-width:600px){.start-description{font-size:12px}.start-footer{margin-top:22px}.start-footer nav{gap:8px 14px}.hud-actions{gap:4px}.hud-actions .chip{padding:7px 10px}}
@media(max-height:600px){.start-screen{place-items:start center!important}.start-inner{margin:auto;padding:20px 0}.start-screen h1{font-size:36px!important;margin-bottom:24px!important}.start-modes{gap:8px!important}.start-modes button{padding:12px!important}.start-footer{margin-top:16px}}

.app{position:fixed;inset:0}
.room-stage{position:absolute;inset:0}
.room-stage canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.room-stage canvas:active{cursor:grabbing}
.room-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 58%,#0a0c0a99 100%)}
.room-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--muted)}

/* glass pieces */
.chip,.mode-tabs,.view-tabs,.panel,.meter{background:var(--glass);border:1px solid var(--line);}
.chip{border-radius:999px;padding:7px 12px;font-size:12px}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip[aria-pressed=false]{opacity:.6}

/* top bar */
.hud-top{position:absolute;z-index:5;top:calc(env(safe-area-inset-top) + 10px);left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}
.hud-top>*{pointer-events:auto}
.brand{border:0;background:none;padding:4px 0;cursor:pointer;font:15px var(--mono);letter-spacing:-.4px;display:flex;align-items:center;gap:8px;text-shadow:0 1px 4px #000}
.brand b{color:var(--red);font-weight:500}
.brand-mark{height:20px;width:27px;background:var(--red);display:flex;align-items:center;justify-content:center;gap:3px;border-radius:2px;clip-path:polygon(4px 0,100% 0,100% 100%,0 100%,0 4px)}
.brand-mark i{width:3px;height:7px;background:#efece3}.brand-mark i:nth-child(2){transform:translateY(3px)}
.mode-tabs,.view-tabs{display:flex;gap:2px;padding:3px;border-radius:999px}
.mode-tabs button,.view-tabs button{border:0;background:none;padding:8px 16px;border-radius:999px;font-size:13px;white-space:nowrap}
.mode-tabs button[aria-pressed=true],.view-tabs button[aria-pressed=true]{background:var(--ink);color:#151815}
.hud-actions{display:flex;gap:6px}

/* meter */
.meter{position:absolute;z-index:4;top:calc(env(safe-area-inset-top) + 60px);left:12px;min-width:200px;padding:9px 12px;border-radius:8px;cursor:pointer}
.meter-label{display:block;font-size:10px;letter-spacing:1px;color:var(--muted)}
.meter-total{display:block;font:600 26px/1.15 var(--mono);color:var(--accent);margin:2px 0 4px;text-shadow:0 0 14px #ff8a2a55;font-variant-numeric:tabular-nums}
.meter-lines{margin:0;display:grid;gap:2px;font-size:11px}
.meter-lines div{display:flex;justify-content:space-between;gap:10px}
.meter-lines dt{color:var(--muted)}
.meter-lines dd{margin:0;display:flex;gap:10px;font-family:var(--mono);font-variant-numeric:tabular-nums}
.meter-lines b{font-weight:500;min-width:52px;text-align:right}

/* mode visibility */
.only-game,.only-view,.only-debug{display:none!important}
body[data-mode=game] .only-game,body[data-mode=view] .only-view,body[data-mode=debug] .only-debug{display:var(--show,block)!important}

/* game */
.hud{position:absolute;z-index:3}
.hud-game{inset:0;pointer-events:none}
.hud-game [class*=stage-]{display:none!important}
body[data-stage=stand] .stage-stand,body[data-stage=jobs] .stage-jobs,body[data-stage=punch] .stage-punch,body[data-stage=review] .stage-review,body[data-stage=busy] .stage-busy,body[data-stage=failed] .stage-failed,body[data-stage=clear] .stage-clear,body[data-stage=over] .stage-over{display:var(--d,block)!important}
.panel{position:absolute;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));bottom:calc(env(safe-area-inset-bottom) + 20px);border-radius:12px;padding:18px 20px;pointer-events:auto;text-align:center}
.panel-title{font-size:16px;font-weight:600;margin-bottom:8px}
.panel p{font-size:13px;color:var(--muted);line-height:1.7}
.panel .row,.crt-row,dialog .row{--d:flex;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
.panel button,dialog button{border:1px solid var(--line);background:#ffffff10;border-radius:999px;padding:10px 18px;font-size:13px}
.panel button:hover,dialog button:hover{border-color:var(--accent)}
.panel .primary,dialog .primary{background:var(--accent);border-color:var(--accent);color:#1b140a;font-weight:600}
.panel .ghost{background:none;border:0;color:var(--muted);margin-top:8px}
.stage-stand .primary{margin-top:12px;padding:12px 36px}
.job-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:6px}
.job-list button{border-radius:10px!important;padding:14px 8px!important;display:grid;gap:4px;font-weight:600}
.job-list small{font-weight:400;color:var(--muted);font-size:11px}
.panel.typing{top:50%;bottom:auto;left:16px;transform:translateY(-50%);width:min(360px,30vw);text-align:left;padding:14px 16px}
.manuscript{display:flex;align-items:baseline;gap:12px;min-width:0}
.manuscript .mono{font-size:11px;color:var(--muted);white-space:nowrap}
.manuscript b{font:700 clamp(17px,2.2vw,23px)/1.35 var(--mono);overflow-wrap:anywhere}
.typed{margin-top:8px;padding:8px 10px;background:#00000055;border-radius:6px;font-size:18px;min-height:2.1em;display:flex;align-items:center;gap:1px;overflow-wrap:anywhere;white-space:pre-wrap}
.typed .cols{margin-left:auto;font-size:10px;color:var(--muted);padding-left:8px}
.caret{width:9px;height:1.1em;background:var(--accent);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.hint{margin-top:8px;font-size:11px!important}
.hint b{color:var(--ink)}
.panel.typing .row{justify-content:flex-start;margin-top:10px}
.busy{font-size:15px;color:var(--accent)!important;animation:blink 1.2s steps(1) infinite}
.result{text-align:left}
.result pre{font:13px/1.7 var(--mono);white-space:pre-wrap;background:#00000055;border-radius:6px;padding:10px 12px;margin:0;max-height:34vh;overflow:auto}
.result .row{justify-content:flex-start}

/* view */
.hud-view{--show:flex;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 18px);align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 16px)}

/* debugger CRT */
.crt{--show:flex;flex-direction:column;left:50%;top:calc(env(safe-area-inset-top) + 58px);transform:translateX(-50%);width:min(1040px,calc(100% - 24px));max-height:calc(100% - 76px - env(safe-area-inset-top));color:var(--phosphor);font-family:var(--mono);background:#03100acc;border:1px solid #2fa86266;border-radius:16px;box-shadow:0 0 0 6px #d9d0b6cc,0 0 0 7px #00000066,0 0 60px #2dff7a22 inset,0 20px 60px #000a;overflow:hidden;text-shadow:0 0 6px #2dff7a77}
.crt::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 2px,#0000002e 2px 4px)}
.crt-head{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #2fa86244;font-size:13px}
.crt-head .status{color:#ffd166}.crt-cost{margin-left:auto;color:var(--accent);text-shadow:none}.crt-head .status[data-state=error]{color:#ff6b5a}
.crt-body{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px 16px;overflow:auto}
.crt-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.crt-row{justify-content:flex-start;margin:0}
.crt-btn,.crt select{background:#0a2416;border:1px solid #2fa86288;border-radius:4px;color:var(--phosphor);padding:6px 10px;font:12px var(--mono);text-shadow:inherit}
.crt-btn:hover:not(:disabled){background:#123a24}
.crt-btn.hot{background:var(--phosphor);color:#03100a;text-shadow:none;font-weight:700}
.deck-list{list-style:none;margin:0;padding:6px;height:min(30vh,260px);overflow:auto;background:#00000055;border:1px solid #2fa86244;border-radius:4px}
.deck-list button{display:block;width:100%;text-align:left;border:0;background:none;color:var(--phosphor-dim);font:13px/1.7 var(--mono);padding:0 6px;white-space:pre;overflow:hidden;text-overflow:ellipsis;text-shadow:inherit}
.deck-list button.selected{color:var(--phosphor);background:#2fa86230}
.deck-list button.executing{color:#ffd166}
.crt-label{font-size:12px;color:var(--phosphor-dim)}.crt-label b{color:var(--phosphor)}
.crt-input{width:100%;background:#00000066;border:1px solid #2fa86288;border-radius:4px;color:var(--phosphor);font:16px var(--mono);padding:8px 10px;text-transform:uppercase;text-shadow:inherit}
.crt-input::placeholder{color:#2fa86299;text-transform:none}
.card-holes{width:100%;height:auto;border-radius:3px;cursor:crosshair;image-rendering:pixelated}
.crt-error{font-size:12px;color:#ff6b5a;min-height:1em}
.crt-out{margin:0;height:min(26vh,230px);overflow:auto;background:#00000066;border:1px solid #2fa86244;border-radius:4px;padding:10px;font:14px/1.6 var(--mono);white-space:pre-wrap}
.crt-out.error{color:#ff6b5a}
.crt-info{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--phosphor-dim)}
.crt-share{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding-top:10px;border-top:1px dashed #2fa86244}
body.crt-hidden .crt{top:auto;bottom:calc(env(safe-area-inset-bottom) + 14px);width:auto}
body.crt-hidden .crt-body{display:none}
body.crt-hidden .crt-head{border:0}

/* toast & dialogs */
.toast{position:fixed;z-index:20;left:50%;bottom:calc(env(safe-area-inset-bottom) + 90px);transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#efe8d4;color:#1b201b;padding:10px 16px;border-radius:999px;font-size:13px;transition:.2s;max-width:calc(100% - 32px);text-align:center}
.toast.visible{opacity:1;transform:translate(-50%,0)}
dialog{background:#151a16;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:20px;max-width:min(560px,calc(100% - 24px))}
dialog::backdrop{background:#000a}
dialog h2{font-size:16px;margin-bottom:10px}
dialog p{font-size:13px;line-height:1.7;color:var(--muted);margin:10px 0}
dialog table{width:100%;border-collapse:collapse;font-size:12px}
dialog td{border-top:1px solid var(--line);padding:6px 4px}
dialog td:first-child{font-family:var(--mono);white-space:nowrap}
.dialog-heading{display:flex;justify-content:space-between;align-items:center}
.shared-preview{font:13px/1.6 var(--mono);background:#00000055;padding:10px;border-radius:6px;white-space:pre-wrap;max-height:40vh;overflow:auto}

@media (max-width:720px){
  .brand{display:none}
  .hud-top{top:calc(env(safe-area-inset-top) + 8px);left:8px;right:8px}
  .mode-tabs button{padding:8px 12px}
  .meter{top:calc(env(safe-area-inset-top) + 54px);left:8px;min-width:0;padding:6px 10px}
  .meter-total{font-size:18px;margin:0}
  .meter-lines{display:none}
  .meter.open .meter-lines{display:grid;margin-top:4px}
  .panel{width:calc(100% - 16px);padding:14px}
  .panel.typing{top:calc(env(safe-area-inset-top) + 104px);left:50%;transform:translateX(-50%);width:calc(100% - 16px);padding:10px 12px}
  .manuscript{flex-direction:column;gap:2px}
  .typed{font-size:15px}
  .job-list{grid-template-columns:1fr}
  .view-tabs button{padding:8px 10px;font-size:12px}
  .crt{top:calc(env(safe-area-inset-top) + 54px);width:calc(100% - 16px);max-height:calc(100% - 64px - env(safe-area-inset-top));border-radius:10px;box-shadow:0 0 0 4px #d9d0b6cc,0 20px 40px #000a}
  .crt-body{grid-template-columns:1fr;padding:10px}
  .deck-list{height:22vh}
  .crt-out{height:22vh}
}
@media (prefers-reduced-motion:reduce){.caret,.busy{animation:none}}
body[data-mode=debug]:not(.crt-hidden) .meter,body[data-mode=game][data-stage=jobs] .meter{display:none}
@media (max-width:720px){.crt-head{flex-wrap:wrap;gap:6px 10px;font-size:11px}.crt-head>span:first-child{display:none}.crt-cost{margin-left:0}}

/* start screen */
.start-screen{position:absolute;inset:0;z-index:6;display:none;place-items:center;padding:24px;background:radial-gradient(ellipse at center,#0d100e66 0%,#0d100ecc 70%)}
body[data-screen=start] .start-screen{display:grid}
body[data-screen=start] .hud-top .mode-tabs,body[data-screen=start] .meter,body[data-screen=start] .hud,body[data-screen=start] .brand{display:none!important}
.start-inner{text-align:center;width:min(760px,100%)}
.start-kicker{font-size:11px;letter-spacing:3px;color:var(--muted)}
.start-screen h1{font:600 clamp(36px,7vw,72px)/1.1 var(--mono);letter-spacing:-2px;margin:10px 0 34px;text-shadow:0 4px 30px #000}
.start-screen h1 b{color:var(--red);font-weight:600}
.start-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.start-modes button{display:grid;gap:8px;text-align:center;padding:22px 20px;border-radius:14px;border:1px solid var(--line);background:var(--glass);transition:transform .15s,border-color .15s}
.start-modes button:hover{transform:translateY(-3px);border-color:var(--accent)}
.start-modes b{font-size:20px}
.start-modes span{font-size:12px;color:var(--muted);line-height:1.6}
.start-modes button:first-child{border-color:var(--accent)}
.start-modes button:first-child b{color:var(--accent)}

/* game additions */
.game-status{--d:flex;position:absolute;top:calc(env(safe-area-inset-top) + 60px);right:12px;display:flex;gap:14px;align-items:center;padding:8px 14px;border-radius:999px;background:var(--glass);border:1px solid var(--line);font-size:13px;pointer-events:none}
.game-status b{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}
.game-status span:first-child{color:var(--muted);font-size:11px;letter-spacing:1px}
.game-status [data-warn=true] b{color:#ff6b5a}
.job-list em{font-style:normal;font-size:10px;letter-spacing:2px;color:var(--accent)}
.rule{margin-top:10px;font-size:12px!important}
.review{text-align:left;max-height:calc(100% - 140px);overflow:auto}
.log{font:13px/1.7 var(--mono);white-space:pre-wrap;background:#00000055;border-radius:6px;padding:10px;margin:6px 0 0;text-align:left;color:#ff8a78}
.result{bottom:auto;top:50%;transform:translate(-50%,-50%);max-height:calc(100% - 24px);overflow:auto;width:min(440px,calc(100% - 24px))}
.receipt{background:#f4efe2;color:#1c201c;border-radius:6px;padding:18px 18px 14px;text-align:center;box-shadow:0 10px 30px #0008;clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),95% 100%,90% calc(100% - 8px),85% 100%,80% calc(100% - 8px),75% 100%,70% calc(100% - 8px),65% 100%,60% calc(100% - 8px),55% 100%,50% calc(100% - 8px),45% 100%,40% calc(100% - 8px),35% 100%,30% calc(100% - 8px),25% 100%,20% calc(100% - 8px),15% 100%,10% calc(100% - 8px),5% 100%,0 calc(100% - 8px))}
.panel .receipt-head{display:flex;justify-content:space-between;font-size:12px!important;color:#5c6157!important;border-bottom:1px dashed #9a9585;padding-bottom:8px}
.receipt-job{font-size:12px!important;color:#5c6157!important;margin-top:8px}
.receipt-rank{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0 4px}
.receipt-rank b{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:3px solid var(--red);color:var(--red);font:800 28px var(--mono);transform:rotate(-8deg)}
.receipt-rank span{font-size:17px;font-weight:700;text-align:left;line-height:1.35}
.receipt[data-rank=S] .receipt-rank b{border-color:#c79a1e;color:#c79a1e}
.receipt-yen-label{font-size:11px!important;color:#5c6157!important;margin-top:10px}
.panel .receipt-yen{font-size:46px;font-weight:700;line-height:1.1;color:var(--red)}
.receipt-stats{display:grid;grid-template-columns:1fr 1fr;margin:12px 0 0;border-top:1px dashed #9a9585;border-bottom:1px dashed #9a9585;padding:8px 0}
.receipt-stats dt{font-size:11px;color:#5c6157}
.receipt-stats dd{margin:2px 0 0;font-size:20px;font-weight:700}
.receipt-detail{font-size:11px!important;color:#5c6157!important;margin-top:8px}
.receipt-foot{font-size:10px!important;color:#8a8574!important;margin-top:6px}
.result .row{justify-content:center}
.result .goto button{background:none;font-size:12px;padding:8px 12px}

/* debugger card zoom & colour */
.crt-row .crt-label{align-self:center}
.crt select#paper-color{margin-left:auto}
.crt-hint{font-size:11px;color:var(--phosphor-dim);margin:-2px 0 0}
.card-holes{cursor:zoom-in}
.card-zoom{width:min(1200px,calc(100% - 16px));max-width:none;padding:14px}
.zoom-head{display:flex;align-items:center;gap:10px}
.zoom-head h2{margin:0 auto 0 0;font-family:var(--mono)}
.zoom-head select{background:#ffffff10;border:1px solid var(--line);border-radius:6px;padding:6px}
.zoom-text{width:100%;margin-top:10px;padding:10px;font:18px var(--mono);text-transform:uppercase;background:#00000055;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
.zoom-error{color:#ff6b5a;font-size:12px;min-height:1em;margin:4px 0}
.zoom-scroll{overflow-x:auto;border-radius:6px;-webkit-overflow-scrolling:touch}
.zoom-scroll canvas{display:block;width:100%;cursor:pointer}
.zoom-nav{display:flex;align-items:center;gap:10px;margin-top:8px}
.zoom-nav[hidden]{display:none}
.zoom-nav input{flex:1;accent-color:var(--accent)}
.zoom-nav span{font-size:11px;color:var(--muted);white-space:nowrap}
.zoom-hint{font-size:11px!important;margin:6px 0 0!important}

@media (max-width:720px){
  .start-modes{grid-template-columns:1fr}
  .start-modes button{padding:16px}
  .game-status{top:calc(env(safe-area-inset-top) + 54px);right:8px;gap:10px;padding:6px 10px;font-size:12px}
  .game-status span:first-child{display:none}
  .review{top:calc(env(safe-area-inset-top) + 100px);bottom:auto;max-height:calc(100% - 112px)}
  .panel .receipt-yen{font-size:38px}
  .zoom-scroll canvas{width:1820px;max-width:none}
  .card-zoom{height:auto}
}

/* game: quit, banner, card carousel */
.game-status .quit{pointer-events:auto;border:1px solid var(--line);background:#ffffff14;border-radius:999px;padding:3px 10px;font-size:11px;color:var(--ink)}
.game-status .quit:hover{border-color:#ff6b5a;color:#ff6b5a}
.game-banner{position:absolute;z-index:2;left:50%;top:calc(env(safe-area-inset-top) + 112px);transform:translateX(-50%);background:#c4553a;color:#fff;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:0 6px 20px #0008;animation:pulse 1s ease-in-out infinite;pointer-events:none;white-space:nowrap}
@keyframes pulse{50%{transform:translateX(-50%) scale(1.05)}}
body.locked .mode-tabs button[aria-pressed=false],body.locked #home{opacity:.35}
.panel.review{width:min(760px,calc(100% - 24px))}
.panel-title small{font-weight:400;font-size:11px;color:var(--muted);margin-left:8px}
.carousel{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px}
.carousel .nav{width:34px;height:34px;padding:0!important;border-radius:50%!important;font-size:20px!important;line-height:1}
.review-list{list-style:none;margin:0;padding:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.review-list::-webkit-scrollbar{display:none}
.review-list .slide{flex:0 0 100%;scroll-snap-align:center;padding:4px 2px}
.review-list canvas{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 6px 18px #0009}
.slide-meta{display:flex;align-items:center;gap:10px;margin-top:10px}
.slide-meta p{flex:1;font-size:14px!important;color:var(--ink)!important;overflow-wrap:anywhere;text-align:left}
.slide-meta p span{display:block;font-size:10px;color:var(--muted);letter-spacing:1px}
.slide-meta button{padding:8px 14px!important;font-size:12px!important;flex:none}
.dots{display:flex;justify-content:center;gap:6px;margin-top:10px}
.dots button{width:8px;height:8px;padding:0!important;border-radius:50%!important;background:#ffffff33!important;border:0!important}
.dots button[aria-current=true]{background:var(--accent)!important;width:18px;border-radius:4px!important}

/* result reveal */
.receipt.rolling .receipt-rank,.receipt.rolling .receipt-stats,.receipt.rolling .receipt-detail{opacity:.15}
.receipt.rolling .receipt-yen{filter:blur(1px)}
.receipt.stamped .receipt-rank b{animation:stamp .45s cubic-bezier(.2,1.6,.4,1)}
.receipt.stamped .receipt-yen{animation:pop .4s ease-out}
@keyframes stamp{0%{transform:rotate(-8deg) scale(2.6);opacity:0}100%{transform:rotate(-8deg) scale(1);opacity:1}}
@keyframes pop{0%{transform:scale(1.25)}100%{transform:scale(1)}}
.fx{position:fixed;inset:0;width:100%;height:100%;z-index:15;pointer-events:none}

@media (max-width:720px){
  .game-banner{top:auto;bottom:calc(env(safe-area-inset-bottom) + 24px);font-size:12px;white-space:normal;text-align:center;width:max-content;max-width:calc(100% - 24px)}
  .carousel .nav{display:none}
  .carousel{grid-template-columns:1fr}
  .panel.review{top:calc(env(safe-area-inset-top) + 100px)}
}
@media (prefers-reduced-motion:reduce){.game-banner,.receipt.stamped .receipt-rank b,.receipt.stamped .receipt-yen{animation:none}}
