:root{color-scheme:light;--lime:#c7ff38;--ink:#080a08;--line:rgba(8,10,8,.22)}*{box-sizing:border-box}html,body{height:100%;overscroll-behavior:none}body{margin:0;background:var(--lime);color:var(--ink);font-family:Arial,Helvetica,sans-serif;display:grid;grid-template-rows:auto 1fr auto;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));user-select:none}button,a{font:inherit;color:inherit}header,footer{display:flex;align-items:center;justify-content:space-between;min-height:48px;gap:12px;font-size:12px;font-weight:900;letter-spacing:.08em}.back{text-decoration:none;display:flex;align-items:center;gap:8px}.back span{font-size:25px;line-height:0}.install,.reset{border:1.5px solid var(--ink);background:transparent;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.08em;padding:10px 14px;cursor:pointer;touch-action:manipulation}.install[hidden]{display:none!important}main{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.tap-surface{position:relative;width:100%;min-height:300px;border:0;background:transparent;color:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tap-surface:focus-visible{outline:3px solid var(--ink);outline-offset:-5px;border-radius:22px}.bpm-value{font-size:clamp(118px,31vw,360px);font-weight:950;line-height:.72;letter-spacing:-.105em;margin-left:-.075em;z-index:2}.bpm-label{font-size:clamp(18px,3.8vw,45px);font-weight:950;letter-spacing:.26em;margin:clamp(18px,4vh,42px) 0 0 .26em;z-index:2}.tap-hint{font-size:12px;font-weight:900;letter-spacing:.16em;margin-top:16px;opacity:.68;z-index:2}.pulse{position:absolute;left:50%;top:50%;width:min(65vw,620px);aspect-ratio:1;border-radius:50%;border:2px solid var(--ink);transform:translate(-50%,-50%) scale(.2);opacity:0;pointer-events:none}.tap-surface.is-tapping .pulse{animation:pulse .34s ease-out}@keyframes pulse{0%{opacity:.22;transform:translate(-50%,-50%) scale(.15)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}.status-row{height:34px;border-top:1px solid var(--line);display:flex;align-items:end;justify-content:space-between;font-size:11px;font-weight:900;letter-spacing:.08em}.status-row .offline{color:#750000}footer{border-top:1px solid var(--line);padding-top:10px}footer>span{opacity:.62;text-align:right}dialog{width:min(440px,calc(100% - 30px));border:2px solid var(--ink);border-radius:18px;background:#f6f7ef;color:var(--ink);padding:28px;box-shadow:8px 8px 0 var(--ink)}dialog::backdrop{background:rgba(0,0,0,.55)}dialog strong{font-size:22px}dialog p{font-size:15px;line-height:1.5;margin-bottom:0}.dialog-close{position:absolute;right:10px;top:7px;border:0;background:transparent;font-size:30px;cursor:pointer}@media(max-height:600px){.bpm-value{font-size:clamp(100px,25vh,170px)}.tap-surface{min-height:220px}.bpm-label{margin-top:13px}}@media(orientation:landscape) and (max-height:520px){body{grid-template-rows:42px 1fr 42px}.tap-surface{min-height:0}.bpm-value{font-size:min(37vh,185px)}.bpm-label{font-size:17px;margin-top:8px}.tap-hint{margin-top:6px}.status-row{position:absolute;left:15px;right:15px;bottom:55px;border:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
