:root{--bg: #0f1115;--panel: #191d24;--text: #e8ecf2;--muted: #98a2b3;--accent: #ff5d3b;--ad-height: 62px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,Noto Sans CJK JP,sans-serif;-webkit-text-size-adjust:100%}.app{height:100dvh;padding:10px 10px calc(var(--ad-height) + env(safe-area-inset-bottom,0px) + 10px);display:flex;flex-direction:column;gap:8px}.hud{display:flex;align-items:center;gap:10px;flex:none}.title{margin:0;flex:none;font-size:1.05rem;letter-spacing:.22em;font-weight:700;white-space:nowrap}.scores{flex:1;display:flex;justify-content:flex-end;gap:8px}.scoreBox{min-width:92px;padding:4px 12px;border-radius:10px;background:var(--panel);display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.scoreLabel{font-size:.6rem;letter-spacing:.14em;color:var(--muted)}.scoreValue{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.scoreBox--best .scoreValue{color:var(--accent)}.controls{flex:none;display:flex;flex-direction:column;align-items:center;gap:8px}.controls{width:100%}.controlRow{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.ctrlBtn[aria-pressed=true]{border-color:#3f4a5c;background:#232833}.ctrlBtn:disabled,.iconBtn:disabled{opacity:.38;cursor:default}.ctrlBtn:disabled:active,.iconBtn:disabled:active{background:var(--panel)}.iconBtn{flex:none;width:48px;height:44px;padding:0;border:1px solid #2c323c;border-radius:12px;background:var(--panel);font-size:1.05rem;line-height:1;cursor:pointer}.iconBtn[aria-pressed=false]{opacity:.5}.iconBtn:active{background:#232833}.ctrlBtn{flex:none;height:44px;padding:0 16px;border:1px solid #2c323c;border-radius:12px;background:var(--panel);color:var(--text);font-size:.85rem;font-family:inherit;cursor:pointer;white-space:nowrap}.ctrlBtn:active{background:#232833}.ctrlBtn--fixed{min-width:116px}.ctrlBtn--primary{flex:none;width:208px;max-width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border-color:transparent;background:var(--accent);color:#23100b;font-size:.92rem;font-weight:700;box-shadow:0 3px 14px #ff5d3b47}.ctrlBtn--primary:active{background:#e94d2d}.shareIcon{flex:none}.status{margin:0;flex:none;min-height:1.4em;font-size:.78rem;color:var(--muted)}.boardWrap{flex:1;min-height:0;position:relative;overflow:hidden}.boardWrap canvas{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border-radius:6px;touch-action:manipulation;cursor:pointer;display:block;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.scrollCue{flex:none;align-self:center;padding:2px 6px;font-size:.72rem;color:var(--muted);text-decoration:none}.scrollCue:hover{color:var(--text)}.about{max-width:42rem;margin:0 auto;padding:8px 18px calc(var(--ad-height) + env(safe-area-inset-bottom,0px) + 28px);font-size:.92rem;line-height:1.85;color:#c7cede}.about h2{margin:32px 0 10px;font-size:1rem;letter-spacing:.06em;color:var(--text);border-left:3px solid var(--accent);padding-left:10px}.about p,.about ul,.about ol,.about dl{margin:0 0 10px}.about ul,.about ol{padding-left:1.3em}.about li{margin-bottom:6px}.about strong{color:var(--text);font-weight:600}.about dt{margin-top:12px;color:var(--text);font-weight:600}.about dd{margin:2px 0 0;padding-left:1em;border-left:1px solid #2b313b}.about a{color:var(--accent);text-underline-offset:3px}.colophon{margin-top:32px;padding-top:14px;border-top:1px solid #20252e;font-size:.78rem;color:var(--muted)}.ad{position:fixed;left:0;right:0;bottom:0;height:calc(var(--ad-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;align-items:center;justify-content:center;background:#0b0d11;border-top:1px solid #20252e;z-index:10}.adSlot{display:flex;align-items:center;justify-content:center;width:100%;max-width:728px;height:50px;overflow:hidden}.adPlaceholder{font-size:.7rem;letter-spacing:.1em;color:#4b5361;border:1px dashed #2b313b;border-radius:6px;padding:12px 28px}@media(min-width:720px){:root{--ad-height: 106px}.adSlot{height:90px}.title{font-size:1.25rem}.status{font-size:.85rem}}
