.metro{background:var(--card);max-width:760px;color:var(--foreground);border:1px solid var(--border);user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:16px;margin:0 auto;position:relative;overflow:hidden}.metro .metro-body{flex-direction:column;height:100svh;min-height:500px;display:flex}.metro .stage{background:radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--foreground) 4%, var(--card)), var(--card) 72%);flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:14px;min-height:0;padding:20px;display:flex;position:relative}.metro .panel{padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--card);flex-direction:column;flex:none;gap:10px;display:flex}@media (width>=768px){.metro{max-width:820px}.metro .metro-body{flex-direction:row;height:560px;min-height:0}.metro .stage{flex:auto}.metro .panel{border-top:0;border-left:1px solid var(--border);flex:0 0 300px;justify-content:center;gap:14px;padding:24px}}.metro.full{z-index:60;border:0;border-radius:0;max-width:none;position:fixed;inset:0}.metro.full .metro-body{height:100dvh}@media (width>=768px){.metro.full .metro-body{height:100dvh}.metro.full .mviz{height:min(74vh,660px)}.metro.full .zen-num{font-size:clamp(140px,34vh,300px)}}.metro .fs-btn{z-index:5;border:1px solid var(--border);background:var(--card);width:36px;height:36px;color:var(--muted-foreground);cursor:pointer;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.metro .fs-btn:before{content:"";position:absolute;inset:-6px}.metro .fs-btn:hover{color:var(--foreground);background:var(--muted)}.metro .fs-btn:active{transform:scale(.92)}.metro .zen-btn{z-index:5;border:1px solid var(--border);background:var(--card);width:36px;height:36px;color:var(--muted-foreground);cursor:pointer;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:54px;right:10px}.metro .zen-btn:before{content:"";position:absolute;inset:-6px}.metro .zen-btn:hover{color:var(--foreground);background:var(--muted)}.metro .zen-btn:active{transform:scale(.92)}.metro .zen-view{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.metro .zen-num{letter-spacing:-6px;font-variant-numeric:tabular-nums;color:var(--foreground);font-size:clamp(84px,22vh,190px);font-weight:200;line-height:.9;transition:transform 90ms ease-out}.metro .zen-num.hit{transform:scale(1.06)}.metro .zen-unit{letter-spacing:6px;color:var(--muted-foreground);margin-top:16px;font-size:12px}.metro .mviz{flex:0 auto;width:auto;max-width:100%;height:min(46vh,340px);min-height:0;overflow:visible;transform:translateZ(0)}@media (width>=768px){.metro .mviz{height:min(56vh,460px)}}.metro .mviz .cap,.metro .mviz .body,.metro .mviz .base,.metro .mviz .foot{fill:var(--muted);stroke:var(--foreground);stroke-width:4.5px;stroke-linejoin:round}.metro .mviz .spine{stroke:var(--muted-foreground);stroke-width:2.5px;opacity:.5}.metro .mviz .tick{stroke:var(--muted-foreground);stroke-width:3.5px;stroke-linecap:round}.metro .mviz .tick.mid{stroke:var(--foreground);stroke-width:4.5px;opacity:1}.metro .mviz .arm{stroke:var(--foreground);stroke-width:5px;stroke-linecap:round}.metro .mviz .weight{fill:var(--foreground);transform-box:view-box;transition:transform .2s}.metro .mviz .pivot{fill:var(--foreground)}.metro .mviz .armgrp{transform-box:view-box;transform-origin:100px 172px;will-change:transform}.metro .ptimer{z-index:2;color:var(--foreground);opacity:.6;font-variant-numeric:tabular-nums;letter-spacing:.5px;font-size:13px;font-weight:600;position:absolute;top:10px;left:12px}.metro .beats{justify-content:center;align-items:center;gap:12px;min-height:14px;display:flex}.metro .dot{background:var(--muted-foreground);opacity:.35;border-radius:50%;width:10px;height:10px;transition:transform 60ms,opacity 60ms}.metro .dot.acc{width:13px;height:13px}.metro .dot.on{background:var(--foreground);opacity:1;transform:scale(1.3)}.metro .bpm{text-align:center;line-height:1}.metro .bpm b{letter-spacing:-2px;font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;display:block}.metro .bpm span{color:var(--muted-foreground);letter-spacing:2px;font-size:11px}.metro .btn{background:var(--card);border:1px solid var(--border);height:40px;color:var(--foreground);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .12s;display:inline-flex}.metro .btn:hover{background:var(--muted)}.metro .btn:active{transform:scale(.97)}.metro .btn.icon{width:40px;padding:0;font-size:20px}.metro .btn.play{background:var(--primary);border-color:var(--primary);height:44px;color:var(--primary-foreground);margin-top:2px;font-size:15px;font-weight:700}.metro .btn.play:hover{background:color-mix(in srgb, var(--primary) 90%, var(--foreground))}.metro .row{align-items:center;gap:10px;display:flex}.metro .row.split{margin-top:6px}.metro .row.split .btn{white-space:normal;flex:1;min-width:0;padding:0 8px;line-height:1.25}.metro .tapwrap{flex:1;align-items:center;gap:6px;display:flex}.metro .tapwrap .btn,.metro .beatsel{flex:1}.metro .beatsel select{background:var(--card);width:100%;height:40px;color:var(--foreground);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:0 10px;font-family:inherit;font-size:14px;font-weight:600}.metro .beatsel select:hover{background:var(--muted)}.metro .help{border:1px solid var(--border);width:24px;height:24px;color:var(--muted-foreground);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;font-family:inherit;font-size:12px;font-weight:700;display:grid;position:relative}.metro .help:before{content:"";position:absolute;inset:-10px}.metro .help:active{transform:scale(.9)}.metro .pop{display:none}.metro .pop:popover-open{display:block}.metro .pop{background:var(--card);max-width:408px;color:var(--foreground);border:1px solid var(--border);border-radius:14px;margin:0 auto;padding:16px 18px;font-size:13.5px;line-height:1.75;position:fixed;inset:auto 16px 24px;box-shadow:0 10px 34px #00000047}.metro .pop b{color:var(--foreground)}.metro .pop::backdrop{background:#00000059}.metro .toast{display:none}.metro .toast:popover-open{display:block}.metro .toast{border:1px solid var(--border);background:var(--card);max-width:360px;color:var(--foreground);border-radius:12px;margin:0 auto;padding:12px 16px;font-size:13px;line-height:1.6;position:fixed;inset:auto 16px 24px;box-shadow:0 10px 34px #00000047}.metro .volwrap{align-items:center;gap:8px;font-size:15px;display:flex}.metro .volwrap input{flex:1;min-width:0}.metro input[type=range]{cursor:pointer;width:100%;height:28px;accent-color:var(--primary);background:0 0}.metro .rangewrap{flex-direction:column;display:flex}.metro .range-row{align-items:center;gap:8px;display:flex}.metro .range-row input{flex:1;min-width:0}.metro .range-lab{color:var(--muted-foreground);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:-2px;padding:0 48px;font-size:11px;display:flex}.metro .checks{flex-wrap:wrap;gap:6px 14px;display:flex}.metro .checks label{color:var(--muted-foreground);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.metro .checks input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;margin:0}.metro .note{color:var(--muted-foreground);text-align:center;margin:0;font-size:12px;line-height:1.5}
