:root{--bg:#f5f0e8;--paper:#fffcf7;--ink:#302c2c;--muted:#817974;--line:#e2dbd2;--one:#863c50;--two:#2b7772;--wash:#ede5dc;--hero:#e3eee7;--radius:22px;--track:230px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select,input[type=range]{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--two);outline-offset:3px}[hidden]{display:none!important}.app{max-width:520px;margin:auto;padding:26px 22px 144px}.brand{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:var(--muted)}h1{font-size:25px;letter-spacing:-.8px;margin:5px 0 0;font-weight:750}h1 span{font-weight:400}h2,h3,p{margin:0}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:16px}.duo-mark{display:flex;gap:5px;padding-right:4px}.duo-mark i{height:29px;width:9px;display:block;border-radius:8px;background:var(--one);transform:rotate(22deg)}.duo-mark i+ i{background:var(--two);margin-top:9px}.model-chips{display:flex;gap:6px;margin-bottom:18px}.model-chips button{flex:1;min-width:0;border-radius:30px;padding:10px 4px;font-size:12px;color:var(--muted);background:transparent;border:1px solid var(--line)}.model-chips .chosen{background:var(--ink);border-color:var(--ink);color:var(--paper)}.hero{background:linear-gradient(120deg,var(--paper),var(--hero));border:1px solid rgba(255,255,255,.8);border-radius:var(--radius);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;min-height:134px;overflow:hidden}.hero h2{font-size:30px;margin:5px 0}.hero .muted{font-size:12px;max-width:210px;line-height:1.4}.hero img{width:92px;height:110px;object-fit:contain;mix-blend-mode:multiply;margin-left:8px}.muted{color:var(--muted);font-size:12px;line-height:1.5}.connection{display:flex;gap:7px;align-items:center;font-size:12px;margin-top:12px}.connection i{background:#afa59c;width:6px;height:6px;border-radius:100%}.connection i.on{background:#318776;box-shadow:0 0 0 3px #31877618}.outline{background:transparent;border:1px solid var(--line);padding:13px;border-radius:14px;color:var(--ink);width:100%;font-weight:600}#connect{margin-top:12px}.status{color:var(--muted);font-size:12px;line-height:1.5;min-height:18px;margin:12px 2px 18px}.tabs{display:flex;background:var(--wash);padding:4px;border-radius:15px;margin-bottom:26px}.tabs button{flex:1;background:transparent;color:var(--muted);border-radius:11px;padding:11px;font-size:14px;font-weight:600}.tabs .selected{background:var(--paper);color:var(--ink);box-shadow:0 2px 6px #40312609}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.pill{font-size:9px;font-weight:700;letter-spacing:1px;color:var(--muted);padding:6px 9px;border:1px solid var(--line);border-radius:20px;white-space:nowrap}.intro{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:18px}.programs{display:grid;gap:9px}.program{display:flex;align-items:center;gap:13px;text-align:left;background:var(--paper);padding:14px;border:1px solid var(--line);border-radius:17px;width:100%;color:var(--ink);min-height:82px}.program.selected{background:#f4e9e9;border-color:#a86572;box-shadow:0 0 0 1px #a8657230}.signal{width:54px;height:44px;flex-shrink:0;border-radius:11px;background:var(--bg);display:grid;place-items:center}.signal svg{width:45px;height:32px;overflow:visible}.program .title{font-size:15px;font-weight:700;display:block;margin-bottom:4px}.program .desc{font-size:11px;line-height:1.4;color:var(--muted);display:block}.program .copy{flex:1}.radio{width:17px;height:17px;border:1px solid #cfc3ba;border-radius:50%;flex-shrink:0}.selected .radio{border:5px solid var(--one);background:var(--paper)}.journey{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:15px;margin-top:14px}.journey>div{display:flex;gap:4px;margin-top:12px}.journey>div span{flex:1;text-align:center;padding:8px 2px;font-size:9px;border-radius:8px;background:#efe4e5;color:var(--one)}.journey>div span:nth-child(even){background:#e0ebe7;color:var(--two)}.settings{display:flex;gap:12px;margin-top:18px}.settings label{flex:1;color:var(--muted);font-size:11px}.settings select{display:block;width:100%;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:13px 10px;margin-top:6px;color:var(--ink);font-size:13px}.small{font-size:11px;color:var(--muted);line-height:1.6;margin-top:12px}.session-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:19px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px}.session-card h2{margin:7px 0 4px;font-size:22px}.session-card>div:first-child{flex:1}.session-card>strong{font-size:28px;font-weight:400;letter-spacing:-1px;color:var(--one);font-variant-numeric:tabular-nums}.session-card .muted{display:block;max-width:230px}.progress{width:100%;height:4px;border-radius:4px;background:var(--wash);overflow:hidden;margin-top:3px}.progress i{height:100%;width:0;display:block;background:linear-gradient(90deg,var(--one),var(--two));transition:width .2s}.faders{display:flex;gap:13px}.fader-card{flex:1;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 12px 16px;color:var(--one);min-width:0;--channel:var(--one)}.fader-card.two{color:var(--two);--channel:var(--two)}.channel-name{font-size:10px;font-weight:700;letter-spacing:1.2px}.cap{margin:10px 0 2px}.cap strong{font-size:31px;font-weight:600;letter-spacing:-1px;font-variant-numeric:tabular-nums}.cap span{font-size:12px;color:var(--muted);margin-left:4px}.fader{height:263px;position:relative;margin:0 auto;width:100%}.rail{position:absolute;top:16px;bottom:17px;width:10px;border-radius:20px;background:var(--wash);left:calc(50% - 5px);overflow:hidden}.fill{position:absolute;bottom:0;width:100%;height:20%;border-radius:20px;background:var(--channel)}.knob{position:absolute;left:calc(50% - 23px);width:46px;height:35px;border-radius:11px;bottom:calc(17px + 230px * .2 - 17.5px);background:var(--channel);box-shadow:0 4px 10px #39252922;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;pointer-events:none}.knob i{width:16px;height:1px;background:#ffffff70}.fader input{position:absolute;left:50%;top:50%;width:230px;height:46px;transform:translate(-50%,-50%) rotate(-90deg);margin:0;opacity:.001;cursor:pointer;touch-action:none}.fader:focus-within .knob{box-shadow:0 0 0 4px #302c2c35}.tick{position:absolute;left:calc(50% + 25px);font-size:9px;color:#b1a69c}.tick.top{top:14px}.tick.bottom{bottom:14px}.output{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.output strong{font-size:17px;color:var(--channel);margin-left:5px;font-variant-numeric:tabular-nums}.web-panel{border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-top:24px}.web-panel .outline{margin-top:14px}.web-panel .small:first-of-type{margin-top:8px}#web-link{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:11px;padding:12px;margin-top:6px;border-radius:10px}#link-box{margin-top:14px}.text-button{color:var(--two);background:transparent;padding:12px 0;font-weight:600;font-size:12px}.safety{font-size:10px;color:var(--muted);line-height:1.6;margin-top:24px}details{font-size:11px;color:var(--muted);margin-top:18px}summary{padding:6px 0;cursor:pointer}details p{margin-top:12px;line-height:1.6}.actions{position:fixed;bottom:0;left:0;right:0;background:var(--bg);border-top:1px solid var(--line);padding:14px 22px calc(16px + env(safe-area-inset-bottom));z-index:10}.actions>div{display:flex;gap:12px;max-width:476px;margin:auto}.actions button{flex:1;padding:17px 12px;border-radius:16px;font-weight:650;font-size:16px;color:white;box-shadow:0 3px 8px #302c2c12}.actions button span{font-size:12px;margin-right:8px}.start{background:var(--two)}.stop{background:var(--one)}.toast{position:fixed;bottom:110px;left:22px;right:22px;max-width:476px;margin:auto;z-index:20;background:var(--ink);color:white;border-radius:15px;padding:15px;font-size:12px;line-height:1.5;box-shadow:0 6px 20px #302c2c22}@media(min-width:700px){.app{padding-top:38px}.hero{min-height:145px}.hero img{height:123px;width:112px}.program{padding:16px}.program .desc{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* The control tab keeps the live output and both faders close to the fixed Stop. */
body.control{--track:190px}body.control .app{padding-top:18px}body.control .brand{margin-bottom:14px}body.control h1{font-size:23px}body.control .model-chips,body.control #connect{display:none!important}body.control .hero{padding:12px 16px;min-height:82px}body.control .hero h2{font-size:24px;margin:3px 0}body.control .hero .muted{display:none}body.control .hero img{height:64px;width:58px;border-radius:10px}body.control .connection{margin-top:6px;font-size:11px}body.control .status{font-size:11px;margin:8px 2px 12px;min-height:16px}body.control .tabs{margin-bottom:18px}body.control .session-card{padding:14px 16px;margin-bottom:18px;gap:9px}body.control .session-card h2{font-size:20px;margin:5px 0 3px}body.control .session-card .muted{font-size:11px}body.control .session-card>strong{font-size:25px}body.control .fader{height:223px}body.control .fader input{width:190px}body.control .intro{margin-bottom:13px}body.control .fader-card{padding-top:15px;padding-bottom:13px}body.control .cap strong{font-size:29px}.hero img{border-radius:12px}
body.control{--track:170px}body.control .brand{display:none}body.control .session-card .muted{display:none}body.control .fader{height:203px}body.control .fader input{width:170px}body.control .status.quiet{display:none}body.control .hero{margin-bottom:13px}body.control .intro{font-size:11px}

#cloud-url,#cloud-link,#pair-code{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:13px;margin-top:8px;border-radius:12px;font-size:13px}#pair-code{font-size:25px;letter-spacing:6px;text-align:center}.pair-pin{font-size:32px;font-weight:700;letter-spacing:8px;color:var(--one);text-align:center;padding:18px 0 0}#cloud-panel .outline{margin-top:12px}#cloud-link{font-size:11px}

.battery{font-size:11px;color:var(--two);margin-top:9px;font-variant-numeric:tabular-nums}.battery.stale{color:var(--muted)}.battery.low{color:var(--one)}
.favorite-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:8px;margin-bottom:8px}.favorite-toolbar .text-button{padding:8px 0}.grouped{margin-top:20px}.program-group-title{font-size:12px;letter-spacing:.3px;color:var(--muted);margin:13px 0 3px}.program-row{display:flex;align-items:stretch;gap:6px}.program-row .program{flex:1;min-width:0}.favorite-star{width:42px;flex-shrink:0;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--muted);font-size:23px}.favorite-star[aria-pressed=true]{color:var(--one);background:#f4e9e9}.program .radio{display:none}.dialog-backdrop{position:fixed;inset:0;background:#302c2c66;z-index:40;display:flex;align-items:center;justify-content:center;padding:22px}.favorite-dialog{width:100%;max-width:480px;max-height:80vh;overflow:auto;background:var(--paper);border-radius:22px;padding:22px;box-shadow:0 15px 55px #0003}.dialog-close{background:var(--wash);color:var(--ink);border-radius:10px;padding:10px}.favorite-order{display:grid;gap:8px;margin:18px 0}.order-row{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.order-row .rank{font-size:12px;color:var(--muted);min-width:17px}.order-row .order-title{flex:1;font-size:13px;font-weight:600}.drag-handle{touch-action:none;background:transparent;color:var(--muted);font-size:24px;padding:4px 9px;cursor:grab}.order-arrow{background:var(--paper);border-radius:9px;padding:10px;color:var(--ink)}.order-row.dragging{border-color:var(--one)}body.ordering{overflow:hidden}.favorite-dialog .outline{color:var(--one)}@media(max-width:380px){.app{padding-left:16px;padding-right:16px}.program{padding:12px;gap:8px}.signal{width:43px}.favorite-star{width:38px}.model-chips button{font-size:11px}}

.battery:before{content:'';display:inline-block;width:15px;height:8px;border:1.5px solid currentColor;border-radius:2px;vertical-align:baseline;margin-right:6px;box-shadow:3px 0 0 -1px currentColor}

.device-card{margin:20px 0;padding:20px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.5)}
.device-card h3,.device-card h4{margin:0;font-size:17px}.device-card input[type=number]{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:12px;background:white;font:inherit;box-sizing:border-box}
.device-info{margin:18px 0}.device-info>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.device-info dt{font-size:12px;color:var(--muted)}.device-info dd{margin:0;text-align:right;font-size:12px;max-width:62%;overflow-wrap:anywhere}
.device-buttons{display:flex;gap:10px;margin:12px 0}.device-buttons button{flex:1;min-width:0}.channel-stop{border:1px solid var(--line);border-radius:12px;background:transparent;padding:10px;font:inherit;font-size:11px;color:var(--one);margin-top:15px;width:100%}.danger{color:var(--one)}#native-settings .settings{display:grid;grid-template-columns:1fr 1fr}#native-second-label{grid-column:1/-1}

/* Studio: Candy Red, shared by native, local web and Cloudflare. */
:root{--bg:#111214;--paper:#1d1e21;--ink:#f5f5f6;--muted:#b8b8be;--line:#36363c;--one:#ff4964;--two:#ff4964;--wash:#27282d;--radius:18px;color-scheme:dark}
:root[data-theme=light]{--bg:#fff;--paper:#fff;--ink:#a50b2d;--muted:#6e6266;--line:#ecdee2;--one:#b80f36;--two:#b80f36;--wash:#fcf0f3;color-scheme:light}
.app{padding:24px 20px 140px;max-width:540px}.brand,body.control .brand{display:flex;margin-bottom:20px}h1,body.control h1{font-size:24px;letter-spacing:-.7px}h1 span{font-weight:750}.theme-toggle{width:42px;height:42px;border-radius:12px;background:var(--wash);color:var(--one);font-size:23px;border:1px solid var(--line)}
.model-chips{flex-wrap:wrap;gap:6px}.model-chips button{flex:1 0 16%;padding:8px 4px}.model-chips .chosen{background:var(--wash);border-color:var(--one);color:var(--one)}
.hero,body.control .hero{background:var(--paper);border:1px solid var(--line);padding:16px;min-height:126px;flex-direction:row-reverse;justify-content:flex-end;gap:18px;margin-bottom:12px}.hero>div{flex:1}.hero img,body.control .hero img{width:85px;height:102px;margin:0;mix-blend-mode:normal;object-fit:contain;background:color-mix(in srgb,var(--hero) 8%,var(--wash));padding:7px;border-radius:14px}.hero h2,body.control .hero h2{font-size:24px}.hero .muted,body.control .hero .muted{display:block}.connection i.on{background:#54d66a}.connection{color:var(--ink)}.battery{color:var(--muted)}
.tabs{border:1px solid var(--line);background:var(--wash);padding:3px;margin-bottom:24px}.tabs .selected{background:color-mix(in srgb,var(--one) 12%,var(--paper));color:var(--one);border:1px solid var(--one);box-shadow:none}.tabs button{border:1px solid transparent;padding:12px}
#program-view>.section-head,#program-view>.intro{display:none}.favorite-toolbar h3,.all-programs-title{font-size:20px}.favorite-toolbar{margin-bottom:14px}.favorite-toolbar .text-button{padding:8px 12px;border:1px solid var(--line);border-radius:20px;color:var(--ink)}
.programs{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.program-group-title{grid-column:1/-1;margin:12px 0 4px}.program-row{position:relative;display:block;min-width:0}.program-row .program{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:140px;padding:28px 7px 13px;text-align:center;border-radius:16px;background:var(--paper)}.program .copy{flex:0;width:100%}.program .title{font-size:12px;line-height:1.25;overflow-wrap:anywhere}.program .desc{display:none}.program.selected{border-color:var(--one);background:color-mix(in srgb,var(--one) 10%,var(--paper));box-shadow:none}.signal{background:transparent;width:64px;height:42px}.signal svg{width:60px;height:40px}.signal polyline{stroke:var(--one)}.signal polyline+polyline{stroke:var(--one);opacity:.45}.favorite-star{position:absolute;right:4px;top:4px;width:34px;height:32px;border:none;border-radius:10px;background:transparent;color:var(--muted);font-size:24px}.favorite-star[aria-pressed=true]{background:transparent;color:var(--one)}.all-programs-title{margin-top:25px}.grouped{margin-top:4px}
.settings{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.settings label{font-size:12px}.settings select{padding:10px;background:var(--wash)}.journey>div span,.journey>div span:nth-child(even){background:var(--wash);color:var(--one)}
body.control .app{padding-top:24px}.session-card,body.control .session-card{background:var(--paper);border-radius:18px;margin-bottom:14px;padding:18px}.session-card>strong{color:var(--ink);font-weight:700}.progress i{background:var(--one)}body.control .session-card .muted{display:block}
.fader-card,body.control .fader-card{background:var(--paper);padding:20px 15px 15px}.cap strong,body.control .cap strong{font-size:64px;font-weight:750}.cap span{font-size:13px}.fader,body.control .fader{height:263px}.fader input,body.control .fader input{width:230px}body.control{--track:230px}.rail{width:40px;left:calc(50% - 20px);background:var(--wash);border:1px solid var(--muted);border-radius:25px}.fill{background:linear-gradient(0deg,#bd1038,#ff4964)}.knob{width:44px;height:44px;left:calc(50% - 22px);border-radius:50%;background:#fff;bottom:calc(17px + var(--track) * .2 - 22px);box-shadow:0 3px 12px #0003}.knob i{display:none}.tick{left:calc(50% + 32px)}.output{margin-top:5px}
.device-card{background:var(--paper)}.device-card input[type=number]{background:var(--wash);color:var(--ink)}.actions{background:var(--bg);padding:14px 20px calc(16px + env(safe-area-inset-bottom))}.actions>div{max-width:500px}.actions button{border-radius:15px;box-shadow:none}.start{background:linear-gradient(135deg,#e91849,#b30d34);color:#fff}.actions .stop{background:var(--wash);color:var(--one);border:1px solid var(--line)}.toast{background:var(--paper);color:var(--ink);border:1px solid var(--line)}.device-card .settings{padding:0;border:0}.dialog-backdrop{background:#0009}
@media(max-width:360px){.app{padding-left:14px;padding-right:14px}.programs{gap:7px}.program-row .program{height:130px}.cap strong,body.control .cap strong{font-size:48px}.hero,body.control .hero{gap:12px}.hero h2,body.control .hero h2{font-size:22px}.hero img,body.control .hero img{width:70px}}

body.control.single-channel .fader-card.one{display:grid;grid-template-columns:1fr 1fr;align-items:center;text-align:left;padding:18px 25px}.single-channel .fader-card.one .channel-name{grid-column:1;align-self:end}.single-channel .fader-card.one .cap{grid-column:1;grid-row:2;margin:0;align-self:start}.single-channel .fader-card.one .cap span{display:block;margin-top:4px}.single-channel .fader-card.one .fader{grid-column:2;grid-row:1/3;width:100%;height:223px}.single-channel .fader-card.one .output,.single-channel .fader-card.one .channel-stop{grid-column:1/-1}.single-channel.control{--track:190px}.single-channel.control .fader input{width:190px}body.control .hero,body.control .hero img{min-height:0}body.control .hero{padding:12px 16px}body.control .hero img{height:75px;width:65px}body.control .hero .muted{display:none}body.control .tabs{margin-bottom:15px}
