:root{--bg:#f3f6f7;--ink:#17262b;--sub:#5d6f75;--line:#cfdadd;--accent:#1f6f78;--warn:#a3402f}
@media (prefers-color-scheme:dark){:root{--bg:#10191c;--ink:#e6eef0;--sub:#93a6ac;--line:#2a3b40;--accent:#5cc0cb;--warn:#e08a78}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 "Hiragino Sans","Noto Sans JP",sans-serif}
main{max-width:640px;margin:0 auto;padding:32px 20px 64px}
h1{font-size:1.6rem;margin:0 0 4px}h2{font-size:1.1rem;margin:32px 0 8px}
p.lead,.sub{color:var(--sub);margin:0 0 16px}
a{color:var(--accent)}
input[type=text]{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit;font:inherit}
button{padding:10px 18px;border:1px solid var(--accent);background:var(--accent);color:var(--bg);border-radius:6px;font:inherit;cursor:pointer}
button.ghost{background:transparent;color:var(--accent)}button.danger{background:transparent;color:var(--warn);border-color:var(--warn)}
button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.row{display:flex;gap:8px;margin-bottom:12px}.row input{flex:1}
.sound{border-top:1px solid var(--line);padding:14px 0}
.sound label.head{display:flex;gap:10px;align-items:baseline;font-weight:600}
.sound input[type=range],.ambient input[type=range]{width:100%}
.scale{display:flex;justify-content:space-between;color:var(--sub);font-size:.85rem}
ul.list{list-style:none;padding:0;margin:0}ul.list li{padding:12px 0;border-top:1px solid var(--line)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}
