:root{--bg: #f5f1e8;--bg-card: #fffdf8;--ink: #2f2a24;--ink-soft: #6b6055;--accent: #7a6a53;--accent-deep: #4a3f30;--line: #e6ddcd;--gold: #caa45a;--shadow: 0 8px 30px rgba(74, 63, 48, .08);font-family:ui-serif,Georgia,Times New Roman,serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -10%,#fbf8f1 0%,var(--bg) 60%);color:var(--ink);min-height:100vh;line-height:1.6}.app{max-width:720px;margin:0 auto;padding:2.5rem 1.25rem 4rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.hero{text-align:center;margin-bottom:2.5rem;position:relative}.gear{position:absolute;top:0;right:0;width:2.4rem;height:2.4rem;font-size:1.3rem;line-height:1;border:1px solid var(--line);border-radius:50%;background:var(--bg-card);color:var(--accent);cursor:pointer;transition:all .2s}.gear:hover{border-color:var(--accent);color:var(--accent-deep);transform:rotate(30deg)}.hero h1{font-size:2.8rem;letter-spacing:.02em;margin:0;color:var(--accent-deep)}.tagline{color:var(--ink-soft);font-style:italic;margin:.4rem 0 0}.search{display:flex;gap:.5rem;margin-bottom:1.25rem}.search input{flex:1;padding:.8rem 1rem;font-size:1rem;font-family:inherit;border:1px solid var(--line);border-radius:12px;background:var(--bg-card);color:var(--ink)}.search input:focus{outline:2px solid var(--accent);outline-offset:1px}.search button,.primary{padding:.8rem 1.2rem;font-size:1rem;font-family:inherit;border:none;border-radius:12px;background:var(--accent-deep);color:#fdfbf6;cursor:pointer;transition:background .2s}.search button:hover,.primary:hover{background:#38301f}.chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:2rem}.chips-label{color:var(--ink-soft);font-size:.95rem;margin-right:.25rem}.chip{padding:.45rem .9rem;font-size:.92rem;font-family:inherit;border:1px solid var(--line);border-radius:999px;background:var(--bg-card);color:var(--accent);cursor:pointer;transition:all .2s}.chip:hover{border-color:var(--accent);color:var(--accent-deep)}.result{background:var(--bg-card);border:1px solid var(--line);border-radius:18px;padding:2rem 1.75rem;box-shadow:var(--shadow);animation:rise .4s ease}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.blessing{text-align:center;font-style:italic;color:var(--accent);font-size:1.1rem;margin:0 0 1.5rem}.verse{margin:0 0 1.25rem;padding:0 0 0 1.1rem;border-left:3px solid var(--line)}.verse p{margin:0 0 .4rem;font-size:1.12rem}.verse cite{font-style:normal;font-weight:600;color:var(--accent);font-size:.95rem}.translation{font-weight:400;color:var(--ink-soft)}.hymn{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);text-align:center}.hymn h2{font-size:1.3rem;color:var(--accent-deep);margin:0 0 .75rem}.stanza p{margin:0;color:var(--ink);font-size:1.05rem}.author{margin-top:.75rem;color:var(--ink-soft);font-size:.88rem;font-style:italic}.stanza .sung{background:var(--gold);color:#2f2a24;border-radius:4px;box-shadow:0 0 0 2px var(--gold)}.stanza.singing p{transition:opacity .2s}.stanza p.sung-line{background:#fdf6e6;box-shadow:inset 0 0 0 1px var(--gold);border-radius:6px}.hymn-buttons{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.hymn-credit{margin-top:.6rem;text-align:center;color:var(--ink-soft);font-size:.75rem}.hymn-play{margin-top:1rem;padding:.45rem 1rem;font-size:.92rem;font-family:inherit;border:1px solid var(--line);border-radius:999px;background:var(--bg-card);color:var(--accent);cursor:pointer;transition:all .2s}.hymn-play:hover{border-color:var(--accent);color:var(--accent-deep)}.controls{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:1rem}.music-toggle{display:flex;align-items:center;gap:.5rem;color:var(--ink-soft);font-size:.95rem;cursor:pointer}.notice{background:#fdf6e8;border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem;color:var(--ink-soft)}.notice.small{font-size:.9rem;padding:.5rem 0;background:none;border:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2f2a2473;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;animation:fade .2s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border-radius:18px;box-shadow:var(--shadow);width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:1.5rem 1.75rem 2rem}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.modal-head h2{margin:0;color:var(--accent-deep);font-size:1.5rem}.modal-close{width:2rem;height:2rem;border:none;border-radius:50%;background:transparent;color:var(--ink-soft);font-size:1rem;cursor:pointer}.modal-close:hover{background:var(--bg);color:var(--ink)}.settings-section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.settings-section h3{margin:0 0 .25rem;color:var(--accent-deep);font-size:1.05rem}.settings-desc{margin:0 0 .9rem;color:var(--ink-soft);font-size:.88rem}.radio-list{display:flex;flex-direction:column;gap:.4rem}.radio-row{display:flex;align-items:flex-start;gap:.6rem;padding:.5rem .6rem;border-radius:10px;cursor:pointer}.radio-row:hover{background:var(--bg)}.radio-row.disabled{opacity:.5;cursor:not-allowed}.radio-row input{margin-top:.25rem}.radio-text{display:flex;flex-direction:column}.radio-label{color:var(--ink)}.radio-hint{color:var(--ink-soft);font-size:.82rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-top:1rem;color:var(--ink-soft);font-size:.9rem}.field select,.field input[type=range]{font-family:inherit;font-size:.95rem}.field select{padding:.5rem;border:1px solid var(--line);border-radius:10px;background:var(--bg-card);color:var(--ink)}.seg{display:flex;gap:.3rem;margin-bottom:1.1rem;flex-wrap:wrap}.seg-btn{font-family:inherit;font-size:.85rem;padding:.35rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--bg-card);color:var(--accent);cursor:pointer}.seg-btn.on{background:var(--accent-deep);color:#fdfbf6;border-color:var(--accent-deep)}.slider-row{margin-bottom:.9rem}.param-toggle{vertical-align:middle;margin-right:.25rem;accent-color:var(--accent-deep);cursor:pointer}.slider-row.off,.knob-cell.off,.fader-col.off{opacity:.5}.slider-row.off .param-toggle,.knob-cell.off .param-toggle,.fader-col.off .param-toggle{opacity:1}.slider-row .lab{display:flex;justify-content:space-between;font-size:.86rem;color:var(--ink-soft);margin-bottom:.3rem}.slider-row .val{color:var(--accent-deep);font-variant-numeric:tabular-nums}.tuning input[type=range],.field input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--line);outline:none}.tuning input[type=range]::-webkit-slider-thumb,.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-deep);cursor:pointer;box-shadow:0 1px 3px #0003}.knob-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem .5rem;text-align:center;margin-bottom:.5rem}.knob{width:54px;height:54px;margin:0 auto .4rem;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--v) * 270deg),#e9e0cf 0) padding-box,var(--bg-card);padding:6px;position:relative;cursor:ns-resize;touch-action:none}.knob:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fffdf8,#efe7d6);border:1px solid var(--line)}.knob-ptr{position:absolute;left:50%;top:50%;width:2px;height:18px;background:var(--accent-deep);transform-origin:bottom center;z-index:2;border-radius:2px}.knob-name{font-size:.76rem;color:var(--ink-soft);line-height:1.2}.knob-val{font-size:.74rem;color:var(--accent-deep);font-variant-numeric:tabular-nums}.fader-bank{display:flex;gap:.5rem;align-items:flex-end;overflow-x:auto;padding-bottom:.5rem;margin-bottom:.5rem}.fader-col{text-align:center;flex:0 0 auto;width:46px}.fader{width:34px;height:120px;margin:0 auto .5rem;position:relative;background:var(--bg);border:1px solid var(--line);border-radius:8px;cursor:ns-resize;touch-action:none}.fader-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(var(--gold),#b8923f);border-radius:0 0 7px 7px}.fader-cap{position:absolute;left:-4px;right:-4px;height:14px;background:var(--accent-deep);border-radius:4px;box-shadow:0 1px 3px #00000040}.fader-name{font-size:.68rem;color:var(--ink-soft);line-height:1.2}.fader-val{font-size:.68rem;color:var(--accent-deep);font-variant-numeric:tabular-nums}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.preset{text-align:left;padding:.6rem .7rem;border:1px solid var(--line);border-radius:12px;background:var(--bg-card);cursor:pointer;transition:all .15s}.preset:hover{border-color:var(--gold)}.preset.on{border-color:var(--gold);background:#fdf6e6;box-shadow:inset 0 0 0 1px var(--gold)}.preset .pn{display:block;color:var(--accent-deep);font-size:.92rem}.preset .pd{display:block;color:var(--ink-soft);font-size:.72rem;margin-top:.15rem}.fine summary{cursor:pointer;color:var(--accent);font-size:.88rem;margin-bottom:.5rem}.tuning-actions{display:flex;align-items:center;gap:1rem;margin-top:1.25rem}.primary.on{background:#8a3b30}.link-btn{background:none;border:none;color:var(--ink-soft);font-family:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer}.link-btn:hover{color:var(--ink)}footer{margin-top:3rem;text-align:center;color:var(--ink-soft);font-size:.82rem}.fine{opacity:.8}
