:root{--bg:#0f1115;--panel:#171a21;--panel2:#1e222b;--line:#2a2f3a;--text:#e8eaed;--muted:#98a0ad;--accent:#5ee0a0;--accent2:#7aa2ff;--warn:#ffb457}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%,#1a2030 0,var(--bg) 55%);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.wrap{max-width:920px;margin:0 auto;padding:32px 20px 80px}.hero h1{font-size:30px;margin:0 0 6px;letter-spacing:-.02em}.hero h1 .em{color:var(--accent)}.hero p{color:var(--muted);margin:0;max-width:640px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--accent);background:rgba(94,224,160,.1);border:1px solid rgba(94,224,160,.25);padding:3px 10px;border-radius:20px;margin-bottom:14px}.loader{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin:20px 0}.bar{height:8px;background:var(--panel2);border-radius:6px;overflow:hidden;margin-top:8px}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width .15s}.modes{display:flex;gap:8px;margin:20px 0 0}.modebtn{flex:1 1;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:10px 12px;cursor:pointer;text-align:center;transition:all .12s}.modebtn b{display:block;font-size:15px}.modebtn span{display:block;font-size:11px;color:var(--muted);margin-top:2px;font-family:ui-monospace,monospace}.modebtn:hover{border-color:var(--accent2)}.modebtn.on{background:rgba(94,224,160,.12);border-color:var(--accent)}.modebtn.on b{color:var(--accent)}.modebtn:disabled{opacity:.5;cursor:not-allowed}.stage{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;margin:12px 0 20px;text-align:center}.seq{display:flex;flex-wrap:wrap;justify-content:center;margin:14px 0 6px;min-height:40px}.seq,.seqitem{align-items:center;gap:6px}.seqitem{display:inline-flex;font-family:ui-monospace,monospace;font-size:20px;padding:4px 12px;border-radius:10px;border:1px solid transparent;background:var(--panel2);color:var(--muted);transition:all .1s}.seqitem .sep{color:var(--line);font-style:normal;margin-left:6px;font-size:16px}.seqitem.c-blend{color:var(--text);background:rgba(122,162,255,.12)}.seqitem.active{color:#06231a;background:var(--accent);border-color:var(--accent);transform:translateY(-2px) scale(1.06);box-shadow:0 4px 14px rgba(94,224,160,.3)}.seqitem.active .sep{display:none}.seqitem.tap{cursor:pointer;font-family:ui-monospace,monospace;font-size:22px;padding:8px 16px}.seqitem.tap:hover{border-color:var(--accent);color:var(--text);transform:translateY(-2px)}.tune{margin-top:16px;text-align:left;border-top:1px solid var(--line);padding-top:12px}.tune summary{cursor:pointer;font-size:13px;color:var(--muted)}.tune summary span{color:#6b7280;font-size:12px}.tunegrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 20px;gap:10px 20px;margin-top:12px;align-items:center}.tunegrid label{display:flex;flex-direction:column;gap:3px}.tunegrid label span{font-size:12px;color:var(--muted)}.tunegrid label b{color:var(--accent);font-weight:600}.tunegrid input[type=range]{width:100%;accent-color:var(--accent2)}.tunegrid button{justify-self:start;align-self:center}.stage .word{font-size:54px;font-weight:700;letter-spacing:-.02em}.stage .word .ltr{transition:color .12s,text-shadow .12s,transform .12s;display:inline-block}.stage .word .ltr.silent{color:#4a5060}.stage .word .ltr.lit{color:var(--accent);text-shadow:0 0 22px rgba(94,224,160,.55);transform:translateY(-4px)}.stage .ipa{color:var(--accent2);font-size:20px;font-family:ui-monospace,monospace;margin-top:2px}.stage .meta{color:var(--muted);font-size:13px;margin-top:6px;height:18px}.controls{display:flex;align-items:center;gap:16px;margin-top:20px}.speak{background:linear-gradient(180deg,var(--accent),#43c088);color:#06231a;border:0;font-weight:700;font-size:16px;padding:12px 22px;border-radius:12px;cursor:pointer;white-space:nowrap}.speak:disabled{opacity:.5;cursor:not-allowed}.slider{flex:1 1}.slider .row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:4px}.slider .val{color:var(--text);font-weight:600}.slider .hint{color:var(--warn);font-weight:400;font-size:12px}input[type=range]{width:100%;accent-color:var(--accent);height:24px}.dl{background:none;border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:10px 14px;cursor:pointer;font-size:13px}.dl:hover{color:var(--text);border-color:var(--muted)}.marks{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:2px;padding:0 2px}.typebox{display:flex;gap:8px;margin:22px 0 4px}.typebox input{flex:1 1;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 16px;font-size:16px;outline:none}.typebox input:focus{border-color:var(--accent2)}.typebox input::placeholder{color:var(--muted)}.typebox .speak{padding:12px 18px}.group{margin-top:22px}.group h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}.words{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:8px 14px;border-radius:10px;cursor:pointer;font-size:15px;transition:all .12s}.chip.active,.chip:hover{border-color:var(--accent2)}.chip.active{background:rgba(122,162,255,.15);color:#cfe0ff}.foot{color:var(--muted);font-size:12px;margin-top:40px;border-top:1px solid var(--line);padding-top:16px}.foot code{background:var(--panel2);padding:1px 6px;border-radius:5px}.err{color:var(--warn)}