:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#e9efdf;background:#101d1b;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 30%,#28433555,transparent 70%);min-height:100svh}.app{max-width:440px;margin:0 auto;padding:0 12px;min-height:100svh}header{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12;gap:10px}.brand{display:flex;align-items:center;gap:8px;color:#d5ec91;text-decoration:none;font-size:26px;font-weight:700;letter-spacing:-1px}.brand>span{font-size:20px;color:#f3f2df}.light{font-weight:400;color:#adb9aa}.badge{font-size:10px;color:#a8bd93;white-space:nowrap}main{padding-top:10px}.instruments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible,input:focus-visible+.toggle{outline:2px solid #d8ed9d;outline-offset:3px}.instrument{background:#ffffff03;border:1px solid #ffffff20;border-radius:10px;min-height:42px;padding:7px 3px;color:#bac9b1;font-size:13px}.instrument.active{background:#c6dd8912;border-color:#bed77e;color:#d6e99e}select{width:100%;height:36px;padding:5px 9px;background:#192c23;color:#d3dfc8;border:1px solid #ffffff20;border-radius:8px;font-size:12px}.tuner{margin-top:10px;border:1px solid #ffffff17;border-radius:18px;padding:12px 14px 8px;text-align:center;background:linear-gradient(145deg,#20342d,#172722)}.mode-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.modes{display:flex;background:#101e18;border-radius:24px;padding:3px}.modes button{border:0;background:transparent;color:#9eb090;border-radius:20px;min-height:36px;padding:5px 13px;font-size:12px}.modes button[aria-pressed=true]{background:#cfe49a;color:#1b2c1d;font-weight:600}#live{font-size:10px;white-space:nowrap;color:#9caf91}.readout{display:flex;align-items:center;justify-content:center;gap:6px;min-height:156px;padding-top:7px}#instrumentDiagram{width:125px;flex-shrink:0;height:151px}#instrumentDiagram[hidden]{display:none}#instrumentDiagram svg{display:block;width:100%;height:100%}.pitch{flex:1;min-width:0}#targetLabel{font-size:11px;color:#bdcba9;line-height:1.5;margin:0;min-height:17px}.note{font-size:70px;line-height:1.12;font-weight:500;color:#e0edb7;letter-spacing:-3px;margin:2px 0}#frequency{font-size:11px;color:#a6b996;margin:4px 0}.meter{margin:9px 3px 0}.ticks,.meter-labels{display:flex;justify-content:space-between;color:#9eb190;font-size:9px}.ticks{margin-bottom:7px}.center{color:#d0e49c}.track{height:20px;border-bottom:1px solid #738b6c;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(5% - 1px),#70896555 calc(5% - 1px),#70896555 5%);position:relative}.zone{position:absolute;left:45%;width:10%;top:-4px;height:28px;background:#bddf6c1a;border:1px solid #bddf6c44;border-radius:4px}#needle{position:absolute;left:50%;width:3px;height:28px;top:-4px;background:#d4e99d;border-radius:2px;transition:left .12s;opacity:.3}.meter-labels{margin-top:8px;letter-spacing:.5px}#guidance{font-size:13px;min-height:19px;line-height:1.45;color:#d7e3bd;margin:10px 0 8px}.primary{background:#d0e69a;color:#1c3022;border:0;width:100%;height:43px;border-radius:24px;font-weight:650;font-size:13px}.primary:hover{background:#e0f1b6}.reference{display:flex;justify-content:space-between;align-items:center;gap:5px;margin-top:10px;min-height:28px}.switch{display:flex;gap:8px;align-items:center;font-size:11px;color:#cfdbbf;cursor:pointer;min-height:32px}.switch input{position:absolute;opacity:0;width:1px;height:1px}.toggle{display:block;width:32px;height:19px;border-radius:20px;background:#495c48;position:relative;flex-shrink:0}.toggle:after{content:'';position:absolute;left:3px;top:3px;width:13px;height:13px;border-radius:50%;background:#e2e9d9;transition:transform .15s}input:checked+.toggle{background:#b5d277}input:checked+.toggle:after{transform:translateX(13px);background:#182b1c}#stopTone{border:1px solid #d2e4a0;background:#34452b;border-radius:12px;color:#e1eccb;font-size:10px;min-height:32px;padding:3px 8px;white-space:nowrap}#selectionHint{color:#9fb38f;font-size:10px;margin:3px 0 9px;line-height:1.5;min-height:15px}.strings{display:flex;justify-content:center;gap:5px}.string{flex:1;min-width:0;background:transparent;color:#c4d1b9;border:1px solid #ffffff25;border-radius:10px;min-height:62px;padding:6px 1px;font-size:13px}.string small{display:block;font-size:9px;color:#9fb48f;margin-top:2px}.string.selected{color:#e0efb2;border-color:#c0d887;background:#bad47813}.string.selected small{color:#cadaac}#soundStatus{font-size:10px;color:#d5e4ac;min-height:14px;margin:5px 0 0}.tuner.tuned .note,.tuner.tuned #guidance{color:#a5ed9d}.tuner.tuned #needle,.tuner.tuned .string.selected{background:#a5ed9d22}.tuner.tuned .drawn-string.chosen{stroke:#a5ed9d}.help{font-size:11px;color:#a1b194;margin:8px 3px;line-height:1.6}.help summary{min-height:30px;cursor:pointer;padding:5px 0}.help p{margin:8px 0}footer{display:flex;justify-content:space-between;font-size:9px;color:#849a78;padding:2px 3px 10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:600px){.app{margin:18px auto;min-height:0;padding:0 20px 14px;border:1px solid #ffffff12;border-radius:24px;background:#12221cc9;box-shadow:0 20px 100px #0003}}@media(max-height:700px) and (max-width:599px){header{height:42px}main{padding-top:7px}.instrument{min-height:36px}select{height:32px}.tuner{margin-top:7px;padding-top:9px}.readout{min-height:119px}#instrumentDiagram{height:116px;width:103px}.note{font-size:58px}.meter{margin-top:4px}.modes button{min-height:32px}#guidance{margin:7px 0}.reference{margin-top:6px}.string{min-height:56px}.help{margin-top:4px;margin-bottom:3px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Guitar and pitch meter share the same compact row. */
.readout{gap:12px;min-height:236px;padding:8px 0 2px;align-items:center}
#instrumentDiagram{width:145px;height:224px}
.pitch{display:flex;flex-direction:column;justify-content:center;align-self:stretch;padding:9px 0;min-width:0}
.pitch .meter{width:100%;margin:15px 0 0}
.pitch .meter-labels{font-size:8px;letter-spacing:0}
.pitch .ticks{font-size:8px}
.pitch #targetLabel{font-size:10px;line-height:1.6;min-height:32px;display:flex;align-items:center;justify-content:center}
.readout:has(#instrumentDiagram[hidden]){min-height:210px}
@media(max-height:700px) and (max-width:599px){.readout{min-height:196px;gap:9px}#instrumentDiagram{width:134px;height:186px}.pitch{padding:4px 0}.pitch .meter{margin-top:13px}.pitch .note{font-size:58px}}
@media(max-width:350px){#instrumentDiagram{width:120px}.readout{gap:8px}.pitch .meter-labels{font-size:7px}.pitch #frequency{font-size:10px}}
@media(max-height:700px) and (max-width:599px){footer{padding-bottom:2px}.help{margin-bottom:0}}

.decision-controls[hidden]{display:none}.decision-controls{margin-top:9px;border:1px solid #b8d18438;border-radius:11px;padding:8px 10px;background:#c5df8b08}.decision-controls>label{display:block;text-align:left;color:#c6d8ad;font-size:11px;margin-bottom:5px}.decision-row{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:7px}.decision-row>button{height:36px;border:1px solid #c4db9144;border-radius:8px;color:#d8eab2;background:#293d28;font-size:22px;line-height:1}.decision-row>button:disabled{opacity:.3;cursor:default}.decision-row>select{text-align:center;height:36px}#decisionOffset{font-size:9px;line-height:1.3;color:#9eb18b;margin:5px 0 0}.tuner.transposable .readout{min-height:170px}.tuner.transposable .pitch{padding:2px 0}.tuner.transposable .pitch .note{font-size:58px}.tuner.transposable .pitch .meter{margin-top:8px}@media(max-height:700px) and (max-width:599px){.decision-controls{padding:6px 9px;margin-top:6px}.decision-controls>label{margin-bottom:3px}.decision-row>button,.decision-row>select{height:32px}.tuner.transposable .readout{min-height:151px}.tuner.transposable .pitch #targetLabel{min-height:20px}.tuner.transposable .pitch .note{font-size:49px}.tuner.transposable .pitch .meter{margin-top:5px}}
.tuner.transposable .readout:has(#instrumentDiagram[hidden]){min-height:170px}
@media(max-height:700px) and (max-width:599px){.tuner.transposable .readout:has(#instrumentDiagram[hidden]){min-height:151px}.decision-controls{position:relative;padding:5px 9px}.decision-controls>label{font-size:10px;margin-bottom:4px}#decisionOffset{position:absolute;right:9px;top:6px;margin:0;font-size:8px}.tuner.transposable .pitch .note{font-size:44px}.tuner.transposable .pitch #targetLabel{min-height:17px}}
@media(max-height:700px) and (max-width:599px){.tuner.transposable .readout:has(#instrumentDiagram[hidden]){min-height:130px;padding-top:0}.tuner.transposable .pitch .note{font-size:36px}.tuner.transposable .pitch #frequency{margin:2px 0}.tuner.transposable .pitch .meter{margin-top:3px}}

/* Each instrument has its own drawing; the meter remains on the right. */
.tuner.transposable #instrumentDiagram{width:128px;height:164px}
.tuner.transposable .readout{min-height:174px}
@media(max-height:700px) and (max-width:599px){.tuner.transposable #instrumentDiagram{width:103px;height:130px}.tuner.transposable .readout{min-height:130px;padding-top:0;gap:8px}.tuner.transposable .pitch{padding:0}}

.home-link{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 3px 0;padding:13px 16px;border:1px solid #bad47855;border-radius:12px;color:#d5ec91;text-decoration:none;font-size:13px;min-height:44px}.home-link:hover{background:#bad47812}.home-link:focus-visible{outline:2px solid #d5ec91;outline-offset:3px}.ad-area{margin:28px 0 10px;padding-top:16px;border-top:1px solid #ffffff17;text-align:center;min-height:120px;overflow:hidden}.ad-label{display:block;font-size:9px;letter-spacing:2px;color:#849a78;margin-bottom:12px}.ad-area[hidden]{display:none}

.turku-logo{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:85px;min-height:40px;padding:5px 7px;border-radius:7px;background:#faf7f1}.turku-logo img{display:block;width:100%;height:auto}.turku-logo:focus-visible{outline:2px solid #d5ec91;outline-offset:3px}.turku-logo:hover{background:#fff}
