@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@500;600;700;800&display=swap');
/* During mobile play, fit the HUD, catcher and touch buttons inside LINE's visible webview. */
@media (max-width: 840px) {
  body.playing .masthead, body.playing .intro, body.playing .leaderboard,
  body.playing .hint, body.playing footer { display: none; }
  body.playing .shell { padding-top: max(4px, env(safe-area-inset-top)); }
  body.playing .layout { gap: 0; }
  body.playing .stage {
    height: clamp(260px, calc(var(--visible-height, 100dvh) - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 600px);
    min-height: 0;
    max-height: none;
    aspect-ratio: auto;
  }
  body.playing .touch-controls { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
}
:root{font-family:'DM Sans',system-ui,sans-serif;color:#f8f7ff;background:#0d0e21}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -20%,#393057 0%,#16172f 45%,#0d0e21 90%)}button,input{font:inherit}button{cursor:pointer}.shell{max-width:1200px;margin:auto;padding:0 28px}.masthead{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff20}.brand{font:800 20px Outfit,sans-serif;letter-spacing:.085em}.brand span,footer span{color:#f8bb68}.edition,.eyebrow,.leader-title small{font-size:11px;font-weight:800;letter-spacing:.18em;color:#d2acf7}.intro{text-align:center;padding:46px 0 30px}.intro h1{font:800 clamp(38px,6vw,64px)/1 Outfit,sans-serif;letter-spacing:-.04em;margin:12px 0}.intro em{font-style:normal;color:#fac071}.intro p{color:#b9b5d0;margin:0}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.game-card,.leaderboard{border:1px solid #ffffff1e;background:#1d1b38;border-radius:20px;overflow:hidden;box-shadow:0 25px 60px #0003}.hud{display:grid;grid-template-columns:repeat(4,1fr);padding:14px 22px;gap:8px}.hud div{display:flex;flex-direction:column;gap:2px}.hud small{color:#b9b5d0;font-size:10px;font-weight:800;letter-spacing:.12em}.hud strong{font:800 24px Outfit,sans-serif}.hud #hearts{font-size:21px;color:#fd889f;white-space:nowrap}.stage{position:relative;background:#11132c;aspect-ratio:1.67;min-height:300px;max-height:570px;touch-action:none;overflow:hidden}.stage canvas{display:block;width:100%;height:100%}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#0d0d28aa;backdrop-filter:blur(6px);padding:20px}.overlay[hidden]{display:none}.overlay-panel{text-align:center;max-width:380px}.badge{display:inline-block;background:#b38df72b;border:1px solid #cfafff65;border-radius:99px;color:#dfcaff;font-size:10px;letter-spacing:.15em;font-weight:800;padding:9px 14px}.overlay h2{font:800 clamp(29px,5vw,42px) Outfit,sans-serif;margin:19px 0 8px}.overlay p{color:#d7d1e6;line-height:1.55;margin:0 0 24px}.primary{background:linear-gradient(115deg,#f7b56e,#f48f9d);border:0;color:#282039;font-weight:800;padding:14px 24px;border-radius:11px;box-shadow:0 6px 20px #e5958940}.primary:hover{filter:brightness(1.1)}.primary span{margin-left:20px}.touch-controls{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;gap:8px;background:#252344}.touch-controls button{border:1px solid #9c83c866;color:#eee7ff;background:#4f426f;border-radius:12px;min-width:112px;height:52px;font-weight:800;font-size:24px;touch-action:none}.touch-controls button span{font-size:11px;vertical-align:middle;letter-spacing:.08em}.touch-controls>span{color:#b2a8c8;font-size:10px;letter-spacing:.07em;text-align:center}.hint{padding:0 14px;text-align:center;color:#aaa4c0;font-size:12px}.leaderboard{padding:23px}.leader-title{display:flex;justify-content:space-between;align-items:center}.leader-title h2{font:700 25px Outfit,sans-serif;margin:5px 0 15px}.leader-title>span{font-size:30px}.leaderboard ol{padding:0;margin:0;list-style:none}.leaderboard li{display:flex;align-items:center;gap:12px;padding:12px 3px;border-bottom:1px solid #ffffff16}.leaderboard .rank{display:grid;place-items:center;width:30px;height:30px;background:#ffffff15;border-radius:8px;color:#d9bbe9;font-weight:800;font-size:12px;flex:none}.leaderboard .name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.leaderboard .points{color:#f6be7a;font-weight:800}.leaderboard li.loading{color:#ada6c0;font-size:13px}.rules{color:#b3afc8;font-size:13px;line-height:1.6;border:1px solid #ffffff16;border-radius:12px;padding:14px;margin:24px 0 0}.rules b{color:#ffd08a}footer{text-align:center;color:#88839e;padding:32px 0;font-size:12px}dialog{background:#282440;color:#fff;border:1px solid #bd99e0;border-radius:18px;padding:28px;width:min(390px,calc(100% - 28px));box-shadow:0 20px 80px #0008}dialog::backdrop{background:#090919ba;backdrop-filter:blur(4px)}dialog h2{font:800 30px Outfit;margin:10px 0}dialog p{color:#d1c9df}dialog label{display:block;font-size:12px;font-weight:800;margin-bottom:8px}dialog input{background:#131329;border:1px solid #ffffff55;border-radius:8px;color:#fff;width:100%;padding:13px;outline:none}dialog input:focus{border-color:#f4bb78}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}.dialog-actions #skip{background:transparent;border:0;color:#d5c9e8}.error{min-height:16px;color:#ff9ea8;font-size:12px;margin:6px 0}@media(max-width:840px){.layout{grid-template-columns:1fr}.leaderboard{max-width:none}.intro{padding-top:30px}}@media(max-width:520px){.shell{padding:0 10px}.masthead{height:57px;padding:0 5px}.brand{font-size:15px}.edition{font-size:8px}.intro{padding:30px 6px 22px}.intro p{font-size:13px}.game-card{border-radius:14px}.hud{padding:12px 10px}.hud strong{font-size:19px}.hud #hearts{font-size:16px}.hud small{font-size:8px}.stage{aspect-ratio:.82;min-height:370px}.touch-controls>span{font-size:8px}.touch-controls button{min-width:87px;height:56px}}
