*, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; height: 100%; overflow: hidden; background: #16303a; color: #f6efe4; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", sans-serif; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; } #c { display: block; width: 100%; height: 100%; } #fail { position: fixed; inset: 0; display: grid; place-items: center; margin: 0; padding: 24px; text-align: center; background: #16303a; } #fail[hidden] { display: none; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } button { font: inherit; color: inherit; appearance: none; -webkit-appearance: none; border: 1px solid rgba(246, 228, 196, 0.38); background: rgba(28, 18, 12, 0.72); border-radius: 14px; padding: 6px 4px 7px; min-width: 0; min-height: 44px; line-height: 1.15; cursor: pointer; } button:focus { outline: none; } button:focus-visible { outline: 2px solid #f0c27a; outline-offset: 2px; } button:active, button.is-down { background: #e39a45; color: #2a160c; border-color: #f0c27a; transform: translateY(1px); } @media (hover: hover) and (pointer: fine) { button:hover { background: rgba(54, 34, 22, 0.88); } button:active:hover, button.is-down:hover { background: #e39a45; } } kbd { display: block; margin-bottom: 2px; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 10px; font-weight: 560; letter-spacing: 0.04em; opacity: 0.72; } .top { position: fixed; z-index: 3; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; padding: calc(8px + env(safe-area-inset-top)) 10px 0; pointer-events: none; } .top button { pointer-events: auto; } .top-r { display: flex; gap: 8px; } #btn-sound, #btn-cam, #btn-help { min-width: 52px; padding-inline: 10px; background: rgba(18, 16, 14, 0.46); font-size: 13px; } #hint { position: fixed; z-index: 2; left: 12px; right: 12px; bottom: calc(132px + env(safe-area-inset-bottom)); margin: 0; text-align: center; font-size: 13px; letter-spacing: 0.04em; color: #f8f1e6; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55); pointer-events: none; transition: opacity 0.6s linear; } #hint.is-gone { opacity: 0; } #help { position: fixed; z-index: 4; left: 10px; right: 10px; bottom: calc(128px + env(safe-area-inset-bottom)); max-height: min(46vh, 320px); overflow: auto; margin: 0; padding: 12px 14px 8px; border-radius: 16px; background: rgba(22, 14, 10, 0.92); border: 1px solid rgba(246, 228, 196, 0.28); -webkit-overflow-scrolling: touch; } #help[hidden] { display: none; } #help p { margin: 0 0 8px; font-size: 13px; line-height: 1.45; } .dock { position: fixed; z-index: 3; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 8px 10px calc(10px + env(safe-area-inset-bottom)); } .pad { font-size: 15px; } .pad-main { min-height: 56px; } .pad-go { background: rgba(92, 42, 18, 0.78); border-color: rgba(240, 176, 96, 0.7); } @media (max-width: 340px) { .pad { font-size: 14px; } .dock { gap: 6px; padding-inline: 8px; } } @media (max-height: 560px) { .pad { min-height: 40px; font-size: 13px; } .pad-main { min-height: 46px; } #hint { bottom: calc(112px + env(safe-area-inset-bottom)); } #help { bottom: calc(108px + env(safe-area-inset-bottom)); } } @media (prefers-reduced-motion: reduce) { #hint { transition: none; } button:active, button.is-down { transform: none; } }