/* GIRITORI: ink outlines, clean white, painted arcade controls. No web fonts. */
:root{font-family:"Arial","Yu Gothic UI","Meiryo",sans-serif;color:#223844;background:#f7f8fa;font-synthesis:none;color-scheme:light;--ink:#223844;--paper:#ffffff;--red:#d94d3e;--mint:#83d5bb;--gold:#f5c34a}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;background-image:radial-gradient(#22384418 .8px,transparent .8px);background-size:12px 12px;-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #277c86;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.site-header{height:66px;max-width:520px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:5px 12px;gap:12px}.brand{display:flex;align-items:center;flex-shrink:0}.brand img{width:166px;height:auto;display:block}.audio-controls{display:flex;align-items:center;gap:6px}.audio-controls button{min-width:44px;height:44px;padding:0 5px;border:2px solid var(--ink);border-radius:7px;background:var(--paper);color:var(--ink);font-size:11px;font-weight:bold;box-shadow:0 2px 0 #223844}.audio-controls button[aria-pressed=true]{background:#e1e6e8;color:#49575a;box-shadow:none}.audio-controls input{width:72px;height:44px;margin:0;accent-color:var(--red);cursor:pointer;touch-action:pan-y}.audio-controls output{min-width:30px;font-size:11px;font-weight:bold;font-variant-numeric:tabular-nums}
main{width:100%;max-width:500px;margin:0 auto;padding:0 8px}.console{height:calc(100dvh - 100px - env(safe-area-inset-bottom));max-height:860px;min-height:400px;display:grid;grid-template-rows:72px minmax(0,1fr) 34px;border:3px solid var(--ink);border-radius:15px 15px 11px 11px;overflow:hidden;background:var(--ink);box-shadow:5px 5px 0 #22384425}
.hud{display:flex;align-items:center;gap:20px;padding:9px 18px;color:var(--paper);border-bottom:4px solid var(--red);font-variant-numeric:tabular-nums}.hud-label{display:block;font-size:11px;font-weight:bold;letter-spacing:1px;margin-bottom:4px;color:#d9e4da}.hud strong{font-family:Consolas,"Courier New",monospace;font-size:29px;line-height:1;font-weight:700;letter-spacing:-1px}.hud strong span{font-size:14px;margin-left:3px}.time-group strong{color:var(--gold)}.combo-group{text-align:center}.hud #combo{color:var(--mint);font-size:27px;display:inline-block}.hud #combo.is-max{color:var(--gold)}.score-group{margin-left:auto;text-align:right}.icon-button{flex-shrink:0;width:44px;height:44px;border:2px solid #92a5a6;border-radius:7px;background:transparent;color:var(--paper);font-weight:bold;font-size:20px}
.arena{position:relative;min-height:0;overflow:hidden;touch-action:none;background:#e4ecdd}#game-container{width:100%;height:100%}#game-container canvas{display:block;touch-action:none}.progress-track{position:absolute;top:0;left:0;right:0;height:4px;background:#22384415;pointer-events:none}#progress{width:0;height:100%;background:var(--red);transition:width .1s linear}.console-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;color:var(--paper);font-size:11px;font-weight:bold}.console-footer #hint{min-width:0;flex:1;text-align:center;font-weight:normal;line-height:1.2}.cabinet-light{color:var(--mint)}.site-footer{text-align:center;margin:10px auto 0;padding:0 8px 8px;font-size:11px;font-weight:bold;color:#546568}.site-footer span{margin:0 7px;color:#b34c3c}
.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:#ffffff}.overlay-card{width:100%;max-width:350px;text-align:center;max-height:100%;padding:2px;overflow:auto}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:1px;margin:0 0 8px;color:#6c5d44}.hero-symbol{margin:0 0 6px;color:var(--red);font-size:54px;font-weight:900;line-height:1}.title-logo{width:90%;height:auto;display:block;margin:auto}.title-cast{display:block;width:230px;height:67px;margin:2px auto 0}h2{font-size:20px;font-weight:900;letter-spacing:-.5px;line-height:1.3;margin:0 0 8px}#overlay-description{font-size:12px;line-height:1.6;margin:0 0 12px;color:#475854}.coin-guide{display:flex;justify-content:center;gap:16px;margin:0 0 15px;font-size:11px;font-weight:bold}.coin-guide>span{display:flex;align-items:center;gap:3px}.coin-guide svg{width:27px;height:32px}.difficulty-picker{padding:0;border:0;min-width:0;margin:0 0 12px}.difficulty-picker legend{font-size:11px;font-weight:bold;margin:0 auto 8px}.difficulty-options{display:flex;gap:8px}.difficulty-options button{position:relative;flex:1;min-height:66px;border:2px solid #aab5a9;border-radius:8px;background:#f7f8fa;color:var(--ink);font-size:16px;font-weight:900;box-shadow:0 3px 0 #bdc8ce;padding:5px 2px}.difficulty-options button small{display:block;font-size:11px;font-weight:normal;margin-top:2px}.level-bars{display:block;font-size:10px;line-height:1.2;letter-spacing:2px}.level-bars i{font-style:normal;opacity:.2}.difficulty-options button[aria-pressed=true]{background:var(--mint);border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.difficulty-options button[data-difficulty=hard][aria-pressed=true]{background:#efaa87}.difficulty-options button[data-difficulty=easy][aria-pressed=true]{background:#f5d579}#difficulty-description{font-size:11px;line-height:1.4;min-height:16px;margin:10px 0 0;color:#53615b}
.primary-button,.secondary-button,.text-button{width:100%;min-height:46px;border:2px solid var(--ink);border-radius:8px;font-weight:bold}.primary-button{min-height:52px;background:var(--red);color:#ffffff;font-size:20px;letter-spacing:1px;box-shadow:0 4px 0 var(--ink);margin-bottom:5px}.primary-button:hover{background:#c84335}.primary-button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.secondary-button{background:var(--paper);color:var(--ink);font-size:13px;margin-top:10px}.text-button{background:none;color:var(--ink);font-size:12px;margin-top:9px;border-color:#aab5a9}.best{font-size:12px;font-weight:bold;margin:13px 0 0}.last-score{font-size:11px;margin:4px 0 0;color:#65716a}.share-status{font-size:11px;line-height:1.4;color:#9b3d30;margin:8px 0 0}.share-status:empty{display:none}#share-fallback{width:100%;height:60px;margin:0;background:#ffffff;border:1px solid var(--ink);color:var(--ink);font-size:11px;line-height:1.3;padding:5px;resize:none}
.overlay.is-paused{background:#ffffff}.is-paused .coin-guide{display:none}.is-paused .hero-symbol{margin:5px 0 15px}.is-paused .best{margin-top:18px}
.overlay.is-result{padding:12px;background:#ffffff}.overlay.is-result .overlay-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-width:340px;overflow:visible;padding:0}.overlay.is-result .overlay-card>*{grid-column:1 / -1;margin:0}.is-result #overlay-kicker,.is-result #overlay-description,.is-result #best,.is-result #last-score,.is-result .coin-guide{display:none}.overlay.is-result .hero-symbol{display:block;font-size:33px;line-height:1.1;color:var(--red)}.overlay.is-result h2{font-size:26px;line-height:1.2}.result{border-top:2px dashed #c6d0d6;border-bottom:2px dashed #c6d0d6;padding:10px 0;display:grid;gap:4px}.result>span{font-size:11px;font-weight:bold}.result strong{display:block;justify-self:center;font-family:Consolas,"Courier New",monospace;font-size:54px;font-weight:900;letter-spacing:-2px;line-height:1;color:var(--red)}.result p{font-size:11px;line-height:1.4;margin:0}.result #record-status{font-size:13px;font-weight:bold}.result #record-status.is-new-best{color:#a64420;background:#fbe3a2;padding:4px;border-radius:4px}.result #record-save-status{color:#606e65;font-size:11px}.overlay.is-result .primary-button,.overlay.is-result .secondary-button,.overlay.is-result .text-button{min-height:44px;margin:0}.overlay.is-result #share{grid-column:1}.overlay.is-result #change-difficulty{grid-column:2}.is-perfect #overlay-title{color:#a15b19}.is-perfect .result strong{color:#a15b19}.overlay.is-result #share-status{min-height:0}
@media(max-width:600px){.site-header{height:58px;padding:3px 10px;gap:6px}.brand img{width:146px}.audio-controls{gap:4px}.audio-controls input{width:58px}.audio-controls output{min-width:28px}main{padding:0 6px}.console{height:calc(100dvh - 66px - env(safe-area-inset-bottom));max-height:none;min-height:400px;grid-template-rows:64px minmax(0,1fr) 32px;border-radius:11px}.hud{gap:15px;padding:8px 12px}.hud strong{font-size:27px}.hud #combo{font-size:25px}.site-footer{display:none}.overlay{padding:12px}.console-footer{padding:0 10px;gap:5px}}
@media(max-width:350px){.brand img{width:129px}.audio-controls input{width:52px}.hud{gap:10px;padding:8px 9px}.hud strong{font-size:24px}.hud #combo{font-size:23px}.hud-label{font-size:10px}.console-footer{padding:0 7px}.overlay{padding:10px}.coin-guide{gap:8px}}
@media(max-height:740px){.title-logo{width:76%}.title-cast{height:49px;width:170px}.eyebrow{margin-bottom:3px;font-size:11px}h2{font-size:18px;margin-bottom:6px}.coin-guide{margin-bottom:8px}.difficulty-picker{margin-bottom:9px}.difficulty-options button{min-height:59px}.best{margin-top:10px}.overlay.is-result .hero-symbol{display:none}}
@media(max-height:620px){.title-cast,.coin-guide{display:none}.title-logo{width:64%}.hero-symbol{margin-bottom:4px}#overlay-description{margin-bottom:8px;font-size:11px}.difficulty-options button{min-height:55px}.primary-button{min-height:46px;font-size:18px}.best{margin-top:7px}.last-score{margin-top:3px}.overlay.is-result .overlay-card{gap:4px}.overlay.is-result h2{font-size:23px}.result{padding:5px 0;gap:3px}.result strong{font-size:40px}.result #record-status{font-size:12px}.result #record-status.is-new-best{padding:2px}.overlay.is-result #share-status{font-size:10px}.overlay.is-result #share-fallback{height:52px}}
@media(prefers-reduced-motion:no-preference){.is-result:not(.is-paused) .result strong{animation:stamp .24s ease-out}@keyframes stamp{from{transform:scale(1.12);opacity:.3}to{transform:scale(1);opacity:1}}}
@media(prefers-reduced-motion:reduce){#progress{transition:none}}
/* Compact title preserves the play button and records on short phones. */
@media(max-height:740px){.is-ready .title-cast{display:none}.is-ready .title-logo{width:69%}.is-ready h2{font-size:16px}.is-ready #overlay-description{margin-bottom:7px}.is-ready .coin-guide{margin-bottom:7px}.is-ready .coin-guide svg{height:27px;width:23px}}
@media(max-height:620px){.is-ready h2{display:none}.is-ready .title-logo{width:55%}.is-ready .difficulty-options button{min-height:55px}.is-ready #difficulty-description{min-height:15px;margin-top:8px}.is-ready .hero-symbol{margin-bottom:8px}}

/* A quiet author credit beside the logo, outside the game's input area. */
.brand-group{display:flex;align-items:flex-end;gap:8px;flex-shrink:0}
.home-link{display:flex;align-items:center;min-height:32px;padding:4px 0;font-size:11px;font-weight:400;line-height:16px;color:#65716a;text-decoration:none;text-underline-offset:3px;white-space:nowrap;transform:translateY(5px)}
.home-link[href]:hover{color:var(--ink);text-decoration:underline}
.brand-group .brand img{width:144px}
.brand-group a[aria-disabled=true]{cursor:default}
.home-link[aria-disabled=true]{color:#7c8981;text-decoration:none}
@media(max-width:600px){.brand-group{gap:6px}.brand-group .brand img{width:116px}}
@media(max-width:350px){.brand-group{gap:5px}.brand-group .brand img{width:90px}}
