.manual-ad{box-sizing:border-box;height:280px;overflow:hidden;width:calc(100% - 32px);max-width:960px;margin:32px auto;position:relative;overflow-anchor:none}.manual-ad-label{display:block;font-size:11px;line-height:16px;color:var(--muted-foreground)}.manual-ad-unit{height:calc(100% - 16px)}.manual-ad .adsbygoogle{height:100%}.manual-ad[data-collapsed]{height:0;margin-block:0;visibility:hidden}@media (min-width:768px){.manual-ad{height:250px}}.chromatic-strip{display:grid;height:44px;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;align-items:stretch}.chromatic-strip span{display:flex;justify-content:center;align-items:center;color:var(--muted-foreground);font-size:12px;border-bottom:3px solid transparent}.chromatic-strip small{font-size:9px}.chromatic-strip [data-active=true]{border-bottom-color:var(--primary);color:var(--foreground);font-weight:700}.chromatic-strip [data-in-tune=true]{border-bottom-color:var(--tuner-ok);color:var(--tuner-ok)}.tuner-card[data-chromatic=true].tune-confirmed{background:var(--card)}.tuner-card[data-chromatic=true] .confirmed-badge{display:none}:root{--hs-wood:#7a5434;--hs-wood-edge:#5c3d24;--hs-key:#d4d6da;--hs-key-edge:#9ea3aa;--hs-wire:#c9c3ba;--hs-nut:#f3efe6}.dark{--hs-wood:#8e6440;--hs-wood-edge:#b08158;--hs-key:#8c9096;--hs-key-edge:#c3c7cc;--hs-wire:#a9a39a;--hs-nut:#e8e2d6}.note-readout:has(.headstock-guide){position:relative}.headstock-guide{position:absolute;top:0;left:0;width:56px;height:98px;overflow:visible;pointer-events:none}.hs-body{fill:var(--hs-wood);stroke:var(--hs-wood-edge);stroke-width:.8}.hs-sheen{fill:#fff;opacity:.12}.hs-neck{fill:color-mix(in srgb,var(--hs-wood) 55%,#2b1d12)}.hs-nut{fill:var(--hs-nut)}.hs-shaft{stroke:var(--hs-key-edge);stroke-width:2.2;stroke-linecap:round}.hs-key{fill:var(--hs-key);stroke:var(--hs-key-edge);stroke-width:.8;transition:fill .2s,stroke .2s,transform .3s cubic-bezier(.3,1.6,.5,1);transform-box:fill-box;transform-origin:center}.hs-wire{stroke:var(--hs-wire);stroke-width:.7}.hs-post{fill:var(--hs-key);stroke:var(--hs-key-edge);stroke-width:.6}.is-done .hs-key,.is-done .hs-post{fill:var(--tuner-ok);stroke:var(--tuner-ok)}.is-done .hs-wire{stroke:var(--tuner-ok)}.is-target .hs-key{transform:scale(1.18)}.is-target .hs-key,.is-target .hs-post{fill:var(--primary);stroke:var(--primary)}.is-target .hs-wire{stroke:var(--primary);stroke-width:1.2}.tuner-card.tune-confirmed .is-target .hs-key,.tuner-card.tune-confirmed .is-target .hs-post{fill:var(--tuner-ok);stroke:var(--tuner-ok)}.tuner-card.tune-confirmed .is-target .hs-wire{stroke:var(--tuner-ok)}@media (max-width:359px){.headstock-guide{display:none}}@media (prefers-reduced-motion:reduce){.hs-key{transition:none}}.custom-editor-actions,.custom-editor-title,.transpose-stepper{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.custom-action,.custom-editor button,.transpose-stepper button{min-width:44px;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:8px}.transpose-stepper output{flex:1;text-align:center}.tension-warning{color:#b45309;font-size:12px}.dark .tension-warning{color:#fbbf24}.custom-field{display:grid;gap:6px;margin-block:14px}.custom-field input,.custom-field select{min-height:44px;min-width:0;width:100%;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.custom-strings{display:grid;gap:6px}.custom-string{display:grid;grid-template-columns:minmax(52px,1fr) 44px minmax(48px,1fr) 44px 44px;gap:3px;align-items:center;font-size:12px}.custom-string output{text-align:center}.custom-editor-actions{justify-content:flex-end;margin-top:14px}.custom-editor-actions button[type=submit]{background:var(--primary);color:var(--primary-foreground)}.custom-editor-title h2{flex:1;margin:0}.custom-list{display:grid;gap:6px}.custom-option{display:flex;gap:4px}.custom-option>[role=radio]{flex:1;min-width:0;overflow-wrap:anywhere}.custom-option>button:last-child{min-width:44px;min-height:44px}.custom-list small{white-space:normal}.tuner-shift{color:var(--primary)}.tuning-workspace{display:grid;gap:14px;min-width:0}.settings-dialog .settings-panel:has(.custom-editor){height:min(760px,calc(100svh - 32px));overflow:hidden}.custom-editor,.tuning-workspace:has(.custom-editor){min-height:0;display:flex;flex-direction:column}.custom-editor form{display:flex;flex-direction:column;min-height:0;flex:1}.custom-editor-scroll{min-height:0;overflow-y:auto;padding-bottom:8px}.custom-editor-actions{flex-shrink:0;border-top:1px solid var(--border);padding-top:10px;background:var(--card)}@media (max-width:639px){.settings-dialog .settings-panel:has(.custom-editor){height:88svh}}.custom-editor{flex:1}.custom-editor-title{flex-shrink:0}.custom-editor-scroll{flex:1}.tuning-groups{display:flex;flex-wrap:wrap;gap:4px}.tuning-groups button{flex:0 0 auto;min-width:0;min-height:44px;padding:6px 8px;white-space:nowrap;border:1px solid var(--border);border-radius:10px;background:var(--card);font-size:12px}.tuning-groups button[aria-pressed=true]{border-color:var(--primary);color:var(--primary)}.tuning-options{display:grid;gap:6px}.tuning-options button{display:flex;min-height:48px;padding:8px 12px;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:12px;background:var(--card);text-align:left}.tuning-options button[aria-checked=true]{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 16%,transparent)}.tuning-options small{color:var(--muted-foreground);font-size:11px;white-space:nowrap;margin-left:auto}:root{--tuner-ok:#15803d;--tuner-ok-soft:#e1f3e6;--tuner-ok-band:#bfe5c9;--tuner-chip:#f4f1ee}.dark{--tuner-ok:#4ade80;--tuner-ok-soft:#12301c;--tuner-ok-band:#1f5a33;--tuner-chip:#27231f}.tuner-shell{width:100%;max-width:520px;margin:0 auto}.tuner-card{display:flex;position:relative;padding:14px 16px 6px;overflow:hidden;flex-direction:column;gap:10px;border-radius:24px;border:1px solid var(--border);background:var(--card);color:var(--foreground);box-shadow:0 18px 60px color-mix(in srgb,var(--foreground) 8%,transparent);transition:background-color .35s ease}.tuner-card.tune-confirmed{background:var(--tuner-ok-soft)}.tuner-card[data-stage=on]{--card:#050505;--background:#050505;--foreground:#fff;--muted-foreground:#c9c0b9;--border:#2b2724;--primary:#fb923c;--primary-foreground:#1c0d04;--tuner-ok:#4ade80;--tuner-ok-soft:#0a2614;--tuner-ok-band:#1f5a33;--tuner-chip:#191614;background:#050505;color:#fff}.tuner-card[data-stage=on].tune-confirmed{background:var(--tuner-ok-soft)}.tuner-topbar{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:8px}.tuner-settings{display:inline-flex;max-width:100%;height:44px;min-width:0;padding:0 12px 0 14px;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;background:var(--tuner-chip);color:var(--foreground);font-size:14px;font-weight:650;white-space:nowrap}.tuner-settings>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.tuner-settings:hover{background:var(--accent)}.tuner-settings-a4{color:var(--muted-foreground);font-weight:500}.tuner-settings.nonstandard .tuner-settings-a4{color:var(--primary);font-weight:750}.tuner-topbar-end{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px}.tuner-more{display:grid;width:44px;height:44px;place-items:center;border-radius:999px;color:var(--muted-foreground)}.tuner-more:hover{background:var(--tuner-chip);color:var(--foreground)}.wake-lock-status{display:inline-flex;align-items:center;gap:5px;color:var(--muted-foreground);font-size:12px;white-space:nowrap}.dial{display:flex;flex-direction:column;align-items:center;gap:2px}.note-readout{display:grid;width:100%;min-height:104px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;justify-items:center}.note-readout strong{position:relative;display:flex;grid-column:2;align-items:flex-start;color:var(--foreground);font-size:clamp(5.5rem,26vw,7rem);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.055em;line-height:.9;transition:color .18s}.note-readout strong sub{margin:.62em 0 0 .1em;font-size:.31em;font-weight:700;letter-spacing:0;line-height:1}.note-readout strong sub,.tuner-card:not([data-status=listening]) .note-readout strong,.tuner-card[data-signal=silent] .note-readout strong{color:var(--muted-foreground)}.tuner-card:has(.error-block) .tuner-gauge{display:none}.tune-far .note-readout strong,.tune-off .note-readout strong{color:var(--primary)}.tune-near .note-readout strong,.tune-ok .note-readout strong,.tuner-card.tune-confirmed .note-readout strong{color:var(--tuner-ok)}.confirmed-badge{position:absolute;top:-4px;right:-28px;display:grid;width:30px;height:30px;place-items:center;border-radius:999px;background:var(--tuner-ok);color:var(--card);transform:scale(0);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}.tuner-card.tune-confirmed .confirmed-badge{transform:scale(1)}.readout-play{display:grid;grid-column:3;width:44px;height:44px;place-items:center;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted-foreground)}.readout-play:hover,.readout-play[aria-pressed=true]{color:var(--foreground);background:var(--tuner-chip)}.tuner-gauge{display:block;width:100%;max-width:320px;height:auto;max-height:140px;margin-top:-4px;overflow:visible}.gauge-band-near,.gauge-band-ok{fill:none;stroke-linecap:butt;stroke-width:14px}.gauge-band-near{stroke:var(--tuner-ok-band)}.gauge-band-ok{stroke:var(--tuner-ok)}.gauge-tick{stroke:var(--muted-foreground);stroke-linecap:round;stroke-width:1.5px}.gauge-tick.minor{stroke:var(--border)}.gauge-tick.major{stroke-width:2px}.gauge-label{fill:var(--muted-foreground);font-size:20px;font-weight:700}.gauge-center{stroke:var(--foreground);stroke-linecap:round;stroke-width:3px}.gauge-needle{opacity:1;transition:opacity .3s}.gauge-needle line{stroke:var(--primary);stroke-linecap:round;stroke-width:4px}.gauge-needle circle{fill:var(--primary)}.tune-confirmed .gauge-needle line,.tune-near .gauge-needle line,.tune-ok .gauge-needle line{stroke:var(--tuner-ok)}.tune-confirmed .gauge-needle circle,.tune-near .gauge-needle circle,.tune-ok .gauge-needle circle{fill:var(--tuner-ok)}.tuner-card[data-signal=silent] .gauge-needle,.tuner-card[data-signal=unstable] .gauge-needle{opacity:.3}.tuner-card:not([data-status=listening]) .gauge-needle{opacity:0}.tuner-card:not([data-status=listening]) .gauge-band-near,.tuner-card:not([data-status=listening]) .gauge-band-ok{stroke:var(--border)}.status-line{display:flex;min-height:32px;align-items:center;justify-content:center;gap:6px;color:var(--muted-foreground);font-size:clamp(18px,5.6vw,24px);font-weight:800;line-height:1.25;text-align:center;text-wrap:balance}.status-line[data-tune-status=far],.status-line[data-tune-status=off]{color:var(--primary)}.status-line[data-tune-status=confirmed],.status-line[data-tune-status=near],.status-line[data-tune-status=ok]{color:var(--tuner-ok)}.status-line svg{flex:0 0 auto}.reading{min-height:22px;color:var(--muted-foreground);font-size:15px;font-variant-numeric:tabular-nums;font-weight:650;line-height:22px;text-align:center}.trace-wrap{position:relative;width:100%;height:52px;margin-top:4px;overflow:hidden;border-radius:12px;background:var(--tuner-chip)}.trace-wrap.trace-hidden{display:none}.trace-wrap canvas{display:block;width:100%;height:100%}.trace-caption{position:absolute;top:4px;left:8px;z-index:1;padding:0 4px;border-radius:4px;background:var(--tuner-chip);color:var(--muted-foreground);font-size:11px;line-height:16px}.strings-area{display:flex;min-height:104px;flex-direction:column;justify-content:center;gap:8px}.strings-head{display:flex;justify-content:space-between;gap:10px}.auto-toggle,.strings-head{min-height:44px;align-items:center}.auto-toggle{display:inline-flex;padding:0 4px;flex:0 0 auto;gap:8px;color:var(--foreground);font-size:14px;font-weight:650}.auto-toggle>span{position:relative;width:34px;height:20px;border-radius:999px;background:var(--border);transition:background-color .18s}.auto-toggle>span:after{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:white;box-shadow:0 1px 2px rgb(0 0 0/30%);content:"";transition:transform .18s}.auto-toggle[aria-pressed=true]>span{background:var(--primary)}.auto-toggle[aria-pressed=true]>span:after{transform:translateX(14px)}.strings-aside{min-width:0;color:var(--muted-foreground);font-size:13px;text-align:right}.tuned-progress{font-variant-numeric:tabular-nums;white-space:nowrap}.all-tuned button,.next-string{min-height:44px;padding:0 14px;border-radius:999px;background:color-mix(in srgb,var(--primary) 13%,transparent);color:var(--primary);font-size:13.5px;font-weight:650}.all-tuned{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--tuner-ok);font-weight:750}.all-tuned button{background:var(--tuner-chip);color:var(--foreground)}.string-buttons{display:grid;min-width:0;grid-template-columns:repeat(var(--string-count),minmax(0,1fr));gap:6px}.string-button{display:grid;position:relative;width:100%;min-width:0;height:52px;place-content:center;place-items:center;gap:2px;border:1.5px solid var(--border);border-radius:14px;background:var(--card);color:var(--foreground);line-height:1}.string-button:hover{background:var(--accent)}.string-button.target{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.string-button.confirmed,.string-button.confirmed:hover{border-color:var(--tuner-ok);background:var(--tuner-ok);color:var(--card)}.string-button.confirmed.target{box-shadow:0 0 0 3px var(--tuner-ok-band)}.string-button.playing,.string-button.playing:hover{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.string-note{font-size:18px;font-weight:750}.string-note small{margin-left:1px;font-size:10px}.string-number{color:var(--muted-foreground);font-size:10px}.string-button.confirmed .string-number,.string-button.playing .string-number{color:inherit;opacity:.82}.string-button b{position:absolute;top:-6px;right:-5px;display:grid;width:18px;height:18px;place-items:center;border:1.5px solid var(--tuner-ok);border-radius:999px;background:var(--card);color:var(--tuner-ok)}.all-complete-pulse .string-button.confirmed{animation:tuner-complete .8s ease-out}@keyframes tuner-complete{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--tuner-ok) 35%,transparent)}}.primary-action{display:flex;width:100%;height:56px;margin-top:4px;align-items:center;justify-content:center;gap:10px;border-radius:16px;background:var(--primary);color:var(--primary-foreground);font-size:17px;font-weight:700;transition:opacity .2s}.primary-action:hover{opacity:.9}.primary-action:disabled{opacity:.6;cursor:wait}.primary-action.listening{border:1px solid var(--border);background:transparent;color:var(--foreground)}.signal-level{display:flex;height:16px;align-items:flex-end;gap:2px}.signal-level i{width:4px;border-radius:2px;background:var(--border)}.signal-level i:first-child{height:4px}.signal-level i:nth-child(2){height:7px}.signal-level i:nth-child(3){height:10px}.signal-level i:nth-child(4){height:13px}.signal-level i:nth-child(5){height:16px}.signal-level i.on{background:var(--tuner-ok)}.privacy-line{width:fit-content;max-width:100%;margin-inline:auto;color:var(--muted-foreground);font-size:.8rem;text-align:center}.privacy-line summary{display:flex;min-height:40px;align-items:center;justify-content:center;cursor:pointer;list-style:none}.privacy-line p{max-width:32rem;margin:0 auto 8px;line-height:1.45}.next-step-line{display:block;overflow:hidden;min-height:40px;color:var(--tuner-ok);font-weight:600;line-height:40px;text-decoration:underline;text-overflow:ellipsis;text-underline-offset:3px;white-space:nowrap}.error-block{display:grid;padding:.75rem;gap:.25rem;border:1px solid color-mix(in srgb,var(--primary) 60%,var(--border));border-radius:.7rem;font-size:.85rem}.error-block strong{font-size:.95rem}.error-block ol,.error-block span{color:var(--muted-foreground)}.error-block summary{min-height:32px;color:var(--primary);cursor:pointer}.error-block ol{margin:.4rem 0 0 1.25rem}.suspended-overlay{position:absolute;z-index:8;inset:0;display:grid;place-items:center;border-radius:inherit;background:color-mix(in srgb,var(--card) 84%,transparent);color:var(--foreground);font-size:18px;font-weight:700}.tuner-card.flash:after{position:absolute;z-index:20;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 4px var(--tuner-ok);content:"";pointer-events:none;animation:tuner-flash 1s ease-out forwards}@keyframes tuner-flash{0%{opacity:1}to{opacity:0}}.settings-dialog{width:min(100% - 32px,480px);max-height:min(760px,calc(100svh - 32px));margin:auto;padding:0;overflow:hidden;border:0;border-radius:24px;background:transparent;color:var(--foreground)}.settings-dialog::backdrop{background:rgb(0 0 0/50%)}.settings-dialog .settings-panel{display:grid;position:relative;width:100%;max-height:min(760px,calc(100svh - 32px));padding:14px 18px 20px;overflow:auto;gap:14px;border:1px solid var(--border);border-radius:24px;background:var(--card);box-shadow:0 20px 70px #0005}.settings-grab{display:none;width:40px;height:4px;justify-self:center;border-radius:999px;background:var(--border)}.settings-panel h2{margin:0;font-size:20px}.close-settings{position:absolute;z-index:1;top:12px;right:12px;display:grid;width:44px;height:44px;place-items:center;border-radius:999px;color:var(--muted-foreground)}.close-settings:hover{background:var(--muted);color:var(--foreground)}.settings-section{display:grid;gap:8px}.settings-section h3{margin:0;color:var(--muted-foreground);font-size:12px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.settings-segment{display:grid;padding:3px;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border);border-radius:11px;background:var(--tuner-chip)}.settings-segment button{min-height:44px;padding:0 10px;border-radius:8px;color:var(--muted-foreground);font-size:13px;font-weight:650}.settings-segment button[aria-pressed=true]{background:var(--card);color:var(--foreground);box-shadow:0 1px 3px rgb(0 0 0/12%)}.size-tabs{display:grid;padding:3px;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border);border-radius:11px;background:var(--tuner-chip)}.size-tabs button{min-height:44px;border-radius:8px;color:var(--muted-foreground);font-size:13px;font-weight:650}.size-tabs button.active{background:var(--card);color:var(--foreground);box-shadow:0 1px 3px rgb(0 0 0/12%)}.settings-toggle{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;font-size:14px;font-weight:550}.settings-toggle small{display:block;max-width:300px;margin-top:2px;color:var(--muted-foreground);font-size:12px;font-weight:400}.switch-control{position:relative;width:50px;min-width:50px;height:44px;border-radius:999px;background:transparent}.switch-control:before{position:absolute;top:8px;left:2px;width:46px;height:28px;border-radius:999px;background:var(--border);content:"";transition:background-color .18s}.switch-control>span{position:absolute;top:11px;left:5px;width:22px;height:22px;border-radius:999px;background:white;box-shadow:0 1px 3px rgb(0 0 0/30%);transition:transform .18s}.switch-control[aria-checked=true]:before{background:var(--primary)}.switch-control[aria-checked=true]>span{transform:translateX(18px)}.switch-control:disabled{opacity:.45}.a4-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.a4-presets button,.a4-stepper button{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--tuner-chip)}.a4-presets button.active{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.a4-stepper{display:grid;grid-template-columns:44px minmax(60px,1fr) auto 44px;align-items:center;gap:6px}.a4-stepper input{width:100%;height:44px;min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--background);color:var(--foreground);font-weight:700;text-align:center}.settings-hint{margin:0;color:var(--muted-foreground);font-size:.8rem}.settings-reset{justify-self:start;color:var(--primary);text-decoration:underline;text-underline-offset:3px}.settings-done,.settings-reset{min-height:48px;font-weight:700}.settings-done{width:100%;border-radius:14px;background:var(--foreground);color:var(--background)}@media (max-width:639px){.settings-grab{display:block}.settings-dialog{width:100%;max-width:none;max-height:88svh;margin:auto 0 0;border-radius:24px 24px 0 0}.settings-dialog .settings-panel{max-height:88svh;padding-bottom:calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;animation:tuner-sheet-in .28s cubic-bezier(.2,.9,.3,1)}@keyframes tuner-sheet-in{0%{transform:translateY(100%)}}}@media (max-width:480px){.tuner-card{padding:10px 10px 4px;gap:8px;border-radius:20px}.wake-lock-status>span{display:none}.string-buttons{gap:4px}.string-button{border-radius:12px}.strings-aside{font-size:12.5px}}@media (max-height:700px){.tuner-card{padding-top:7px;gap:4px}.tuner-more,.tuner-settings,.tuner-topbar{min-height:40px;height:40px}.note-readout{min-height:60px}.note-readout strong{font-size:60px}.confirmed-badge{width:24px;height:24px}.tuner-gauge{max-height:80px}.status-line{min-height:26px;font-size:18px}.reading{min-height:18px;font-size:13px;line-height:18px}.trace-wrap{height:30px}.strings-area{min-height:96px}.string-button{height:44px}.primary-action{height:48px}.privacy-line summary{min-height:32px}}@media (max-height:600px){.tuner-gauge{max-height:50px}}@media (min-width:481px) and (min-height:701px) and (max-height:860px){.note-readout{min-height:80px}.note-readout strong{font-size:80px}.tuner-gauge{max-height:120px;margin-top:2px}}@media (prefers-reduced-motion:reduce){.auto-toggle>span,.auto-toggle>span:after,.confirmed-badge,.gauge-needle,.switch-control:before,.switch-control>span{transition:none}.all-complete-pulse .string-button.confirmed,.settings-dialog .settings-panel,.tuner-card.flash:after{animation:none}}