.tuner-stage{gap:var(--space-2)}.tuner-top{width:100%;display:flex;justify-content:center}.tuner-inst{flex-wrap:nowrap;justify-content:center;overflow-x:auto;scrollbar-width:none;max-width:100%;padding:2px 2px 6px;gap:8px}.tuner-inst::-webkit-scrollbar{display:none}.tuner-inst button{flex:0 0 auto}.tuner-display{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:4px 0}.tuner-note{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:10px;min-height:108px;padding-bottom:14px;transition:color .2s ease}.tuner-note__name{font-family:var(--font-heading);font-weight:700;font-size:clamp(4.4rem,13vw,7rem);line-height:.95;letter-spacing:-.03em;transition:color .2s ease,text-shadow .3s ease}.tuner-note__meta{display:flex;align-items:baseline;margin-top:14px;font-weight:700;font-size:1.5rem;color:var(--color-gray)}.tuner-note__meta sub{font-size:.9rem;vertical-align:baseline;margin-left:1px}.tuner-note__sound{position:absolute;left:50%;bottom:-2px;transform:translate(-50%);white-space:nowrap;font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-gray)}.tuner-stage.is-idle .tuner-note{color:var(--color-gray)}.tuner-stage.is-tuned .tuner-note__name{color:var(--color-accent-ink);text-shadow:0 0 28px var(--color-accent-glow)}.tuner-burst{position:absolute;left:50%;top:50%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:2px solid var(--color-accent);opacity:0;pointer-events:none}.tuner-burst.is-go{animation:tuner-burst .7s ease-out}@keyframes tuner-burst{0%{transform:scale(.6);opacity:.9}to{transform:scale(2.2);opacity:0}}.tuner-gauge{width:100%;max-width:420px}.tuner-gauge svg{width:100%;height:auto;overflow:visible;aspect-ratio:320 / 180}.st-danger{stop-color:var(--color-danger)}.st-warn{stop-color:var(--color-warn)}.st-ok{stop-color:var(--color-accent)}.tuner-zone{fill:var(--color-accent)}.tuner-gauge__ends{display:flex;justify-content:space-between;margin-top:-6px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-gray);padding:0 4px}.tuner-gauge .tick{stroke:var(--color-gray);stroke-width:2;stroke-linecap:round}.tuner-gauge .tick--major{stroke:var(--color-ink-soft);stroke-width:2.5}.tuner-gauge .tick--center{stroke:var(--color-accent);stroke-width:3.5}.tuner-gauge .tick-label{fill:var(--color-gray);font:700 12px var(--font-body);text-anchor:middle}.tuner-needle{transform-origin:160px 160px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.tuner-needle line{stroke:var(--color-ink);transition:stroke .2s ease}.tuner-needle circle{fill:var(--color-ink);transition:fill .2s ease}.tuner-stage.is-idle .tuner-needle line{stroke:var(--color-surface-3)}.tuner-stage.is-idle .tuner-needle circle{fill:var(--color-surface-3)}.tuner-stage.is-tuned .tuner-needle line{stroke:var(--color-accent)}.tuner-stage.is-tuned .tuner-needle circle{fill:var(--color-accent)}.tuner-stage.is-tuned .tuner-zone{opacity:.4;transition:opacity .3s ease}.tuner-gauge.is-strobe svg{display:none}.tuner-strobe{display:grid;gap:8px;padding:14px 0 10px}.tuner-strobe__band{height:30px;border-radius:var(--radius);border:1px solid var(--color-hairline);background-color:var(--color-surface-2);background-image:repeating-linear-gradient(90deg,var(--color-ink-soft) 0 14px,transparent 14px 28px);background-size:28px 100%;opacity:.55;transition:opacity .2s ease;box-shadow:inset 0 1px 4px #0003}.tuner-strobe__band--fine{height:44px;background-image:repeating-linear-gradient(90deg,var(--color-ink) 0 10px,transparent 10px 20px);background-size:20px 100%}.tuner-stage:not(.is-idle) .tuner-strobe__band{opacity:1}.tuner-stage.is-tuned .tuner-strobe__band{background-image:repeating-linear-gradient(90deg,var(--color-accent) 0 14px,transparent 14px 28px)}.tuner-stage.is-tuned .tuner-strobe__band--fine{background-image:repeating-linear-gradient(90deg,var(--color-accent) 0 10px,transparent 10px 20px)}.tuner-state{margin:0;min-height:34px;display:inline-flex;align-items:center;padding:4px 16px;border-radius:999px;font-weight:700;font-size:var(--fs-base);letter-spacing:.04em;color:var(--color-gray);background:var(--color-surface-2);border:1px solid var(--color-hairline);box-shadow:var(--shadow-sm);transition:background .2s ease,color .2s ease,border-color .2s ease}.tuner-state.is-low,.tuner-state.is-high{color:var(--color-warn);border-color:color-mix(in srgb,var(--color-warn) 45%,transparent)}.tuner-state.is-ok{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.tuner-read{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);width:100%;max-width:460px;margin:0;text-align:center}.tuner-read div{min-width:0}.tuner-read dt{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-gray);margin-bottom:4px}.tuner-read dt .info{width:18px;height:18px;margin:-3px 0}.tuner-read dd{margin:0;font-family:var(--font-heading);font-weight:700;font-size:1.45rem;font-variant-numeric:tabular-nums;white-space:nowrap}.tuner-read small{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--color-gray)}.tuner-trace{position:relative;width:100%;max-width:460px;height:52px;border-radius:var(--radius);background:var(--color-surface-2);border:1px solid var(--color-hairline);overflow:hidden}.tuner-trace canvas{width:100%;height:100%;display:block}.tuner-trace__label{position:absolute;left:8px;top:4px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;color:var(--color-gray);pointer-events:none}.tuner-level{width:100%;max-width:460px;height:4px;border-radius:999px;background:var(--color-surface-3);overflow:hidden}.tuner-level span{display:block;height:100%;width:0;background:var(--color-accent);border-radius:inherit;transition:width .08s linear}.tuner-mic{position:absolute;inset:-8px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:var(--space-2);text-align:center;border-radius:var(--radius-media);background:#22211dd6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tuner-mic__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:156px;height:156px;border-radius:50%;border:0;background:var(--color-accent);color:var(--color-on-accent);font-weight:700;font-size:var(--fs-md);line-height:1.2;padding:0 24px;box-shadow:0 0 0 12px var(--color-accent-dim),var(--shadow-md);transition:background .15s ease,transform .1s ease;animation:tuner-invite 2.4s ease-in-out infinite}@keyframes tuner-invite{0%,to{box-shadow:0 0 0 10px var(--color-accent-dim),var(--shadow-md)}50%{box-shadow:0 0 0 18px color-mix(in srgb,var(--color-accent) 7%,transparent),var(--shadow-md)}}.tuner-mic__btn:hover{background:var(--color-accent-hover)}.tuner-mic__btn:active{transform:scale(.97)}.tuner-mic__btn svg{width:38px;height:38px}.tuner-mic__btn.is-busy{opacity:.7;pointer-events:none}.tuner-mic__text{margin:4px 0 0;max-width:300px;font-size:var(--fs-sm);color:var(--color-ink-soft)}.tuner-mic__text svg{display:inline-block;width:15px;height:15px;margin-right:5px;vertical-align:-2px;color:var(--color-accent-ink)}.tuner-mic .notice{max-width:400px;text-align:left}.tuner-stop{position:absolute;top:0;right:0;z-index:1}.tuner-strings-wrap{width:100%;display:grid;gap:8px}.tuner-strings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.tuner-strings__hint{margin:0;text-align:center;font-size:var(--fs-xs);color:var(--color-gray)}.tuner-strings__hint span{font-weight:700;color:var(--color-accent-ink)}.tuner-string{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60px;padding:6px 2px;border-radius:var(--radius-media);border:1px solid var(--color-hairline);background:var(--color-surface-2);color:var(--color-ink);box-shadow:var(--shadow-sm);transition:border-color .15s ease,background .15s ease,color .15s ease,transform .1s ease;touch-action:manipulation}.tuner-string:active{transform:scale(.95)}.tuner-string:hover{border-color:var(--color-accent)}.tuner-string__name{font-family:var(--font-heading);font-weight:700;font-size:1.2rem;line-height:1.1}.tuner-string__meta{font-size:var(--fs-xs);font-weight:700;color:var(--color-gray);letter-spacing:0;white-space:nowrap}.tuner-string.is-near{border-color:var(--color-accent);background:var(--color-accent-dim)}.tuner-string.is-near .tuner-string__name{color:var(--color-accent-ink)}.tuner-string.is-playing{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.tuner-string.is-playing .tuner-string__meta,.tuner-string.is-playing .tuner-string__name{color:var(--color-on-accent)}.tuner-string.is-done:after{content:"";position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 6px var(--color-accent-glow)}.tuner-tips ul{margin:0;padding-left:1.1em}.tuner-tips li{font-size:var(--fs-base);color:var(--color-ink-soft)}.tuner-tips li+li{margin-top:4px}.tuner-tips strong{color:var(--color-ink)}@media (min-width: 960px){.tuner-stage{padding-top:var(--space-3);padding-bottom:var(--space-3)}.tuner-inst{flex-wrap:wrap;overflow:visible}.tuner-display{gap:12px}.tuner-note{min-height:96px}.tuner-note__name{font-size:5.2rem}.tuner-gauge{max-width:340px}.tuner-read dd{font-size:1.25rem}}@media (max-width: 600px){.tuner-stage{gap:10px;padding-top:12px;padding-bottom:14px}.tuner-top{justify-content:flex-start;margin:0 -12px;width:calc(100% + 24px)}.tuner-inst{justify-content:flex-start;padding:2px 12px 4px}.tuner-inst button{min-height:var(--tap-sm);padding:0 12px;font-size:var(--fs-sm)}.tuner-display{gap:10px}.tuner-note{min-height:82px}.tuner-note__name{font-size:4rem}.tuner-note__meta{font-size:1.2rem;margin-top:8px}.tuner-gauge{max-width:280px}.tuner-state{min-height:30px;font-size:var(--fs-sm);padding:3px 14px}.tuner-read{gap:8px}.tuner-read dd{font-size:1.1rem}.tuner-read dt{letter-spacing:.04em}.tuner-trace{height:40px}.tuner-mic__btn{width:132px;height:132px;font-size:var(--fs-base)}.tuner-mic__btn svg{width:32px;height:32px}.tuner-string{min-height:52px}.tuner-string__name{font-size:1.05rem}.tuner-strings{gap:6px}}.tuner-stage:fullscreen,.tuner-stage.is-stage-mode{justify-content:safe center;gap:1.6vh}.tuner-stage:fullscreen .tuner-top,.tuner-stage.is-stage-mode .tuner-top,.tuner-stage:fullscreen .tuner-stop,.tuner-stage.is-stage-mode .tuner-stop,.tuner-stage:fullscreen .tuner-level,.tuner-stage.is-stage-mode .tuner-level{display:none}.tuner-stage:fullscreen .tuner-display,.tuner-stage.is-stage-mode .tuner-display{gap:1.6vh}.tuner-stage:fullscreen .tuner-note,.tuner-stage.is-stage-mode .tuner-note{min-height:0}.tuner-stage:fullscreen .tuner-note__name,.tuner-stage.is-stage-mode .tuner-note__name{font-size:clamp(5rem,22vmin,15rem)}.tuner-stage:fullscreen .tuner-note__meta,.tuner-stage.is-stage-mode .tuner-note__meta{font-size:clamp(1.4rem,4.5vmin,2.6rem)}.tuner-stage:fullscreen .tuner-gauge,.tuner-stage.is-stage-mode .tuner-gauge{max-width:min(86vw,52vh,620px)}.tuner-stage:fullscreen .tuner-gauge__ends,.tuner-stage.is-stage-mode .tuner-gauge__ends{font-size:var(--fs-sm)}.tuner-stage:fullscreen .tuner-state,.tuner-stage.is-stage-mode .tuner-state{font-size:clamp(1rem,2.8vmin,1.5rem);padding:6px 22px}.tuner-stage:fullscreen .tuner-read,.tuner-stage.is-stage-mode .tuner-read{max-width:720px}.tuner-stage:fullscreen .tuner-read dd,.tuner-stage.is-stage-mode .tuner-read dd{font-size:clamp(1.3rem,4vmin,2.4rem)}.tuner-stage:fullscreen .tuner-trace,.tuner-stage.is-stage-mode .tuner-trace{max-width:720px;height:7vh;min-height:40px}.tuner-stage:fullscreen .tuner-strings-wrap,.tuner-stage.is-stage-mode .tuner-strings-wrap{max-width:900px}.acc{font-weight:400;font-size:.72em;vertical-align:.3em;line-height:0;margin-left:.04em;letter-spacing:0}svg .acc{font-size:.9em}.tuner-note__name .acc{font-size:.5em;vertical-align:.75em}:root[data-theme=light] .tuner-state.is-ok,:root[data-theme=light] .tuner-mic__btn,:root[data-theme=light] .tuner-string.is-playing{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}@media (max-width: 600px) and (max-height: 740px){.tuner-display{gap:8px}.tuner-note{min-height:66px;padding-bottom:12px}.tuner-note__name{font-size:3.4rem}.tuner-note__meta{margin-top:4px}.tuner-gauge{max-width:236px}.tuner-trace{height:30px}.tuner-trace__label{top:2px}.tuner-string{min-height:48px}}:root[data-theme=light] .tuner-mic{background:#ffffffd6}.ptl-ico{display:inline-block;width:16px;height:16px;margin:0 6px 0 0;vertical-align:-3px;color:var(--g-ink, var(--color-accent-ink));flex:0 0 auto}[role=tab] .ptl-ico{margin-right:6px}[role=tab][aria-selected=true] .ptl-ico{color:inherit}@media (max-width: 600px){[role=tab] .ptl-ico{display:none}}.tuner-tips ul+p{margin-top:10px;color:var(--color-ink-soft)}.tuner-tips p a{text-decoration:underline;text-underline-offset:3px}
