:root{font-family:Arial,Helvetica,sans-serif;color:#171714;background:#f5f3ec}*{box-sizing:border-box}body{margin:0}button,a{font:inherit;color:inherit}button{cursor:pointer}a{text-decoration:none}header{height:64px;padding:0 clamp(16px,4vw,54px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #bbb9b0}.brand{font-weight:800;letter-spacing:-.07em}.tools{display:flex;align-items:center;gap:10px}.tools button,.tools a{border:1px solid #171714;background:transparent;padding:9px 11px;font-size:.64rem;font-weight:700;letter-spacing:.08em}.intro{padding:42px clamp(16px,4vw,54px) 28px}.intro>p,.rule{font-size:.65rem;font-weight:700;letter-spacing:.14em}.intro h1{font-size:clamp(4.2rem,10vw,9rem);line-height:.78;letter-spacing:-.09em;margin:20px 0}.intro em{font-style:normal;color:#df4c31}.game-wrap{background:#e9e7df;color:#171714;padding:28px clamp(12px,4vw,54px) 50px}.stats{max-width:900px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #555;border-bottom:0}.stats div{padding:12px;border-right:1px solid #555;min-width:0}.stats div:last-child{border:0}.stats small{display:block;font-size:.56rem;letter-spacing:.12em;color:#aaa}.stats strong{font-size:clamp(.8rem,2vw,1.2rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-wrap{position:relative;width:100%;margin:auto;background:#f7f5ee;border:1px solid #999}.stage-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:14/19;image-rendering:pixelated;touch-action:none}.overlay{position:absolute;inset:0;background:#171714e8;display:grid;place-items:center;padding:30px;text-align:center}.overlay.hidden{display:none}.overlay>div{max-width:520px}.overlay h2{font-size:clamp(2.5rem,7vw,5.5rem);line-height:.85;letter-spacing:-.07em;margin:12px 0}.overlay p{line-height:1.55}.overlay button{border:1px solid #f5f3ec;background:#f5f3ec;color:#171714;padding:15px 24px;font-weight:800;letter-spacing:.1em}.controls{max-width:900px;margin:12px auto 0;display:grid;grid-template-columns:1fr 1fr 1fr 1.35fr;gap:8px}.controls button{min-height:54px;border:1px solid #777;background:transparent;color:#171714;font-weight:800}.controls .drop{background:#171714;color:#f5f3ec}.help{max-width:900px;margin:24px auto 0;display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:.67rem}.help span{font-weight:800;letter-spacing:.1em}.help p{margin:0;color:#666}.records{padding:50px clamp(16px,4vw,54px);display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#c9c7be}.records div{background:#f5f3ec;padding:24px}.records span{font-size:.6rem;font-weight:700;letter-spacing:.1em}.records strong{display:block;font-size:2rem;margin-top:8px}footer{padding:28px clamp(16px,4vw,54px);display:flex;justify-content:space-between;font-size:.7rem;font-weight:700}@media(max-width:600px){header{height:54px;padding:0 10px}.tools{gap:5px}.tools button,.tools a{font-size:.55rem;padding:7px}.intro{padding-top:28px}.game-wrap{padding-inline:8px}.stats div{padding:9px 6px}.stats strong{font-size:.72rem}.stage-wrap canvas{max-height:none}.controls button{min-height:58px}.help{display:none}.records{grid-template-columns:1fr 1fr;padding:30px 12px}.records div{padding:18px}.records strong{font-size:1.5rem}footer{gap:20px}}@media(min-width:901px){.desktop-game{display:grid;grid-template-columns:minmax(180px,1fr) minmax(420px,560px) minmax(180px,1fr);gap:clamp(22px,3vw,48px);align-items:start;max-width:1180px;margin:auto}.play-column{min-width:0}.stage-wrap,.controls,.help{max-width:560px}.side-guide{padding-top:20px;font-size:.72rem;line-height:1.55;position:sticky;top:24px}.side-guide strong{font-size:.65rem;letter-spacing:.14em}.side-guide p{color:#555;margin:10px 0 20px}.side-guide hr{border:0;border-top:1px solid #aaa;margin:26px 0}.right-guide{text-align:left}.stats{max-width:560px}}
@media(max-width:900px){.desktop-game{display:block}.side-guide{display:none}.game-wrap{background:#e9e7df;color:#171714}.controls button{color:#171714}.controls .drop{color:#f5f3ec}.overlay{color:#f5f3ec}}

#sound[aria-pressed="true"]{background:#171714;color:#f5f3ec}#sound[aria-pressed="false"]{background:transparent;color:#777}.play-column{width:100%}@media(min-width:901px){.play-column{width:min(100%,525px);justify-self:center}.stage-wrap{width:100%}}@media(max-width:900px){.stage-wrap{width:100%;max-width:525px;margin-inline:auto}}

.result-card{margin:24px auto 26px;padding:18px 22px;border:1px solid #777;background:#f5f3ec;color:#171714;max-width:330px}.result-card[hidden]{display:none}.result-card span{display:block;font-size:.62rem;font-weight:800;letter-spacing:.16em;color:#777}.result-card strong{display:block;font-size:clamp(3rem,8vw,5.4rem);line-height:.95;letter-spacing:-.06em;margin:8px 0}.result-card small{font-size:.68rem;font-weight:700;letter-spacing:.08em}

.stage-wrap{position:relative}.sound-fab{position:absolute;z-index:6;right:9px;top:9px;width:42px;height:42px;border:1px solid #777;background:#f5f3ecef;color:#171714;font-size:1.2rem;display:grid;place-items:center;padding:0}.sound-fab[aria-pressed="true"]{background:#171714;color:#f5f3ec}.lang-switch{display:block;margin:0 0 24px;border:1px solid #171714;background:transparent;padding:9px 12px;font-size:.62rem;font-weight:800;letter-spacing:.08em}.mobile-settings{display:none}@media(max-width:900px){.mobile-settings{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:525px;margin:10px auto 0;font-size:.55rem;font-weight:700;letter-spacing:.06em}.mobile-settings button{border:1px solid #777;background:transparent;padding:8px 10px;font-size:.6rem;font-weight:800}.controls{max-width:525px}.stage-wrap canvas{aspect-ratio:14/19}.sound-fab{width:38px;height:38px;right:7px;top:7px}}

/* Keep the score table visually closed above the game board. */
.stats{border-bottom:1px solid #555}

/* The board owns touch gestures so browser zoom/scroll cannot steal game input. */
#game{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}


/* PWA install guide shown on the normal web page. */
.install-guide{max-width:900px;margin:0 auto;padding:38px clamp(16px,4vw,54px);border-top:1px solid #c9c7be}.install-guide>strong{font-size:.72rem;letter-spacing:.14em}.install-guide>p{margin:10px 0 20px;color:#555;font-size:.78rem;line-height:1.55}.install-guide div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:9px 0;border-top:1px solid #d5d2c8;font-size:.72rem}.install-guide span{color:#555}

/* Installed PWA: prioritize the game board and preserve safe areas. */
@media (display-mode:standalone){
  header{height:40px;padding:env(safe-area-inset-top) 10px 0;box-sizing:content-box}
  header .brand{font-size:.72rem;letter-spacing:-.04em}
  .tools{gap:4px}
  .tools button,.tools a{padding:5px 7px;font-size:.5rem}
  .intro{padding:10px 10px 8px}
  .intro>p{display:none}
  .intro h1{font-size:1.15rem;line-height:1;margin:0;letter-spacing:-.04em}
  .intro h1 br{display:none}
  .intro h1 em{margin-left:.25em}
  .rule{margin-top:4px;font-size:.48rem;letter-spacing:.08em}
  .game-wrap{padding-top:8px;padding-bottom:18px}
  .records{padding-top:24px;padding-bottom:24px}
  .install-guide{display:none}
  footer{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
}
@media (display-mode:standalone) and (max-width:600px){
  .stats div{padding:6px 5px}
  .stats small{font-size:.48rem}
  .stats strong{font-size:.68rem}
  .controls{margin-top:7px}
  .controls button{min-height:50px}
  .mobile-settings{margin-top:6px}
}

.after-game{margin:14px auto 18px;max-width:330px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.after-game[hidden]{display:none}.after-game span{grid-column:1/-1;font-size:.55rem;font-weight:800;letter-spacing:.12em;color:#bbb}.after-game a{border:1px solid #aaa;padding:10px 8px;font-size:.58rem;font-weight:800;letter-spacing:.06em;color:#f5f3ec}.after-game a:hover{background:#f5f3ec;color:#171714}
@media(max-width:600px){.after-game{margin:10px auto 14px}.after-game a{padding:9px 6px;font-size:.54rem}}
