@font-face{font-family:Manrope;src:url('/fonts/manrope-cyrillic.woff2') format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;src:url('/fonts/manrope-latin.woff2') format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0000-007F,U+00A0,U+00B1,U+00D7,U+2013-2014,U+2018-201F,U+2026,U+2191,U+2193,U+2212}
:root{--bg:#111310;--surface:#1a1d18;--surface2:#20241d;--line:#ffffff10;--text:#f2f3e9;--muted:#94998c;--accent:#c9ef9a;--accent2:#a5c27f;--danger:#f39b95;--radius:26px;--bottom:158px;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:Manrope,"Segoe UI",sans-serif;color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;overflow-x:hidden;background-image:radial-gradient(ellipse at 82% 0%,#a6cc6b08,transparent 38%);min-height:100dvh}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}
button{border:0;background:none}
button:disabled{opacity:.35;cursor:not-allowed}
button:not(:disabled),a,input[type=range]{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[role=slider]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
button:active:not(:disabled){transform:translateY(1px)}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
h1,h2,h3,p{margin:0}
h2{font-size:17px;letter-spacing:-.45px;font-weight:650}
h3{font-size:21px;letter-spacing:-.6px}
p{color:var(--muted);line-height:1.65}
.app-shell{width:min(1104px,100% - 64px);margin:0 auto;padding-bottom:calc(var(--bottom) + var(--safe-bottom) + 28px)}
.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;color:var(--text);display:flex;align-items:center;gap:11px;font-size:26px;font-weight:800;letter-spacing:-1.3px}
.brand-light{color:var(--muted);font-size:21px;font-weight:450;margin-left:6px;letter-spacing:-.8px}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:31px;height:32px}
.brand-mark i{width:5px;height:17px;background:var(--accent);border-radius:4px}
.brand-mark i:nth-child(2){height:29px}.brand-mark i:nth-child(3){height:23px}
.edition{align-self:flex-start;font-size:10px;letter-spacing:.4px;color:var(--muted);margin:3px 0 0 0;border:1px solid #ffffff22;border-radius:5px;line-height:16px;padding:0 3px}
.top-actions{display:flex;gap:21px;align-items:center}
.connection-pill{color:var(--accent);font-size:12px;display:flex;align-items:center;gap:8px;border:1px solid #c9ef9a20;padding:8px 12px;border-radius:30px;background:#c9ef9a06}
.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}
.connection-pill.offline{color:var(--muted);border-color:var(--line)}
.connection-pill.offline .status-dot{background:var(--muted)}
.avatar{background:#2b3025;color:#d3ddc3;width:37px;height:37px;border-radius:50%;font-size:13px;border:1px solid #ffffff15}
.page-heading{display:flex;justify-content:space-between;align-items:center;margin:36px 0 33px;min-height:156px}
.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;color:var(--muted);display:flex;gap:8px;align-items:center}
.tiny-line{height:1px;width:20px;background:var(--accent)}
h1{font-size:52px;line-height:1.1;letter-spacing:-2.5px;margin:14px 0 12px;font-weight:550}
h1 br{display:none}h1 span{color:var(--accent);margin-left:10px}
.page-heading p{font-size:13px}
.heading-art{display:flex;gap:7px;height:100px;align-items:center;padding-right:32px;opacity:.7;transform:rotate(-10deg)}
.heading-art span{width:5px;border-radius:8px;background:linear-gradient(to top,#c9ef9a03,#c9ef9a6e);height:24px}
.heading-art span:nth-child(2),.heading-art span:nth-child(10){height:37px}.heading-art span:nth-child(3),.heading-art span:nth-child(9){height:56px}.heading-art span:nth-child(4),.heading-art span:nth-child(8){height:76px}.heading-art span:nth-child(5),.heading-art span:nth-child(7){height:90px}.heading-art span:nth-child(6){height:106px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.section-heading h2{display:flex;align-items:center;gap:10px}
.section-heading p{font-size:12px;margin-top:5px}
.counter{font-size:10px;font-weight:500;background:#ffffff0a;color:var(--muted);min-width:20px;height:20px;border:1px solid var(--line);border-radius:6px;display:inline-flex;align-items:center;justify-content:center}
.text-button{display:inline-flex;gap:7px;align-items:center;justify-content:center;color:var(--muted);font-size:12px;min-height:40px;padding:6px 8px;border-radius:10px}
.text-button:hover{color:var(--text);background:#ffffff05}
.text-button svg{width:15px;height:15px}
.devices-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}
.device-card{position:relative;display:flex;align-items:center;gap:16px;text-align:left;border:1px solid var(--line);border-radius:19px;background:#181b16;padding:19px 20px;min-height:96px;transition:border-color .2s,background .2s}
.device-card.selected{border-color:#b7d99173;background:linear-gradient(125deg,#2a3222,#1b2018)}
.device-card:hover{border-color:#c9ef9a50}
.device-card svg.device-art{width:42px;height:56px;color:#adb69f;stroke-width:1.3}
.device-card.selected svg.device-art{color:var(--accent)}
.device-card .device-copy{min-width:0;flex:1}
.device-card strong{font-size:15px;font-weight:650;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.device-card .device-sub{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--muted);font-size:10px}
.device-card .device-sub svg{width:15px;height:15px}
.device-indicator{display:flex;flex-direction:column;align-items:flex-end;gap:12px;color:var(--muted);font-size:11px}
.selection-dot{height:18px;width:18px;border:1px solid #ffffff22;border-radius:50%;display:grid;place-items:center}
.selection-dot svg{display:none;width:12px;height:12px;color:var(--bg);stroke-width:2.5}
.selected .selection-dot{background:var(--accent);border-color:var(--accent)}.selected .selection-dot svg{display:block}
.control-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:20px}
.control-card{border:1px solid #c9ef9a17;border-radius:var(--radius);background:radial-gradient(ellipse at 50% 40%,#b9d68c0d,transparent 55%),linear-gradient(145deg,#20251b,#1a1e17 70%);padding:26px 28px 20px;position:relative;overflow:hidden}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.card-top .eyebrow{font-size:9px;letter-spacing:1.5px}
.mode-pill{color:#d0d6c5;background:#ffffff05;border:1px solid #ffffff10;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:20px;font-size:9px;white-space:nowrap}
.mode-pill i{width:4px;height:4px;border-radius:50%;background:var(--accent)}
.dial-stage{display:flex;align-items:center;justify-content:center;padding-top:8px}
.dial{position:relative;width:300px;aspect-ratio:1;touch-action:none;user-select:none;cursor:grab;--progress:0;--rotation:-135deg}
.dial:active{cursor:grabbing}
.dial-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(135deg);stroke-width:6}
.dial-track{stroke:#3c4331;stroke-dasharray:603.186 804.248;stroke-linecap:round}
.dial-value{stroke:url(#dialGradient);stroke-dasharray:calc(var(--progress)*6.03186) 804.248;stroke-linecap:round;filter:drop-shadow(0 0 5px #b9eb7925);transition:stroke-dasharray .13s}
.dial-inner{stroke:#b9d68c0c;stroke-width:1}
.dial-ticks{position:absolute;inset:53px;border-radius:50%;background:repeating-conic-gradient(from -136deg,#b9d68c30 0deg .8deg,transparent .8deg 9deg);mask:radial-gradient(transparent 66%,black 68%,black 70%,transparent 72%);clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%)}
.dial-knob{position:absolute;top:50%;left:50%;height:14px;width:14px;background:var(--accent);border:4px solid #20261a;box-shadow:0 0 0 1px #c9ef9a80,0 0 18px #c9ef9a28;border-radius:50%;transform:translate(-50%,-50%) rotate(var(--rotation)) translateY(-128px);transition:transform .13s;pointer-events:none}
.dial-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;padding-top:5px}
.dial-label{font-size:8px;letter-spacing:2px;color:#9ea98e}
.dial-number{font-variant-numeric:tabular-nums;letter-spacing:-6px;font-size:81px;line-height:1.3;font-weight:450;margin-left:11px}
.dial-number small{font-size:26px;letter-spacing:-1px;margin-left:5px;color:#a3af92;font-weight:400}
.dial-caption{font-size:11px;color:#aab39f}
.dial-min,.dial-max{position:absolute;bottom:39px;color:#7f8c70;font-size:10px;pointer-events:none}
.dial-min{left:58px}.dial-max{right:51px}
.precision-row{display:flex;align-items:center;justify-content:center;gap:26px;margin:-5px 0 23px}
.precision-row>span{text-align:center;font-size:10px;color:var(--muted);line-height:1.5}
.precision-row small{font-size:9px;color:#737d68}
.step-button{height:43px;width:66px;border:1px solid #a0b28620;background:#d2eca00b;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px}
.step-button:hover{background:#c9ef9a15}.step-button svg{width:14px;height:14px}
.preset-row{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.preset-row button{border:1px solid #ffffff0b;background:#ffffff05;border-radius:10px;height:41px;font-size:13px;font-variant-numeric:tabular-nums}
.preset-row button span{font-size:9px;color:var(--muted);margin-left:1px}
.preset-row button.active{color:var(--accent);border-color:#c9ef9a66;background:#c9ef9a0f}
.preset-row button:hover{border-color:#c9ef9a40}
.output-strip{display:flex;align-items:center;gap:16px;padding-top:19px;margin-top:20px;border-top:1px solid #a0b28612;font-size:10px;color:var(--muted)}
.output-strip>span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.output-strip .status-dot{width:4px;height:4px}
.output-track{height:3px;border-radius:5px;background:#ffffff0a;flex:1;overflow:hidden}
.output-track i{display:block;background:var(--accent);height:100%;width:0;transition:width .15s}
.output-strip strong{font-weight:500;color:var(--accent);min-width:28px;text-align:right}
.side-stack{display:flex;flex-direction:column;gap:18px}
.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.rhythm-card .section-heading{margin-bottom:13px}
.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff05;border:1px solid var(--line);border-radius:12px}
.icon-button.subtle{background:none;border:0;color:var(--muted);width:28px;height:28px}
.icon-button svg{width:18px;height:18px}
.mini-patterns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mini-pattern{border:1px solid #ffffff0b;border-radius:12px;background:#ffffff03;padding:9px 10px;text-align:left;color:#8e9782;font-size:10px}
.mini-pattern svg{width:100%;height:25px;margin-bottom:3px;stroke-width:1.8;opacity:.7}
.mini-pattern.selected{border-color:#c9ef9a65;background:#c9ef9a08;color:var(--accent)}
.rhythm-summary{display:flex;align-items:center;justify-content:space-between;margin:20px 0 0}
.rhythm-summary .eyebrow{font-size:8px;margin-bottom:3px}
.rhythm-summary h3{font-size:18px}
.soft-label{color:#b6c2a5;background:#c9ef9a07;border:1px solid #c9ef9a17;border-radius:7px;font-size:10px;padding:4px 8px;white-space:nowrap}
.waveform-preview{height:53px;margin:5px 0 16px;overflow:hidden}
.waveform-preview svg{width:100%;height:100%;stroke:#aecf8b;stroke-width:1.4}
.button{border:1px solid transparent;min-height:47px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;font-size:12px;font-weight:650}
.button svg{width:18px;height:18px}
.primary{background:var(--accent);color:#233018}
.primary:hover{background:#d8ffab}
.secondary{border-color:#ffffff13;background:#ffffff04;color:var(--text)}
.secondary:hover{background:#ffffff0a}
.full{width:100%}
.play-control-row{display:flex;gap:9px}.play-control-row .primary{flex:1}
.device-stop{min-width:48px;min-height:47px;display:grid;place-items:center;border:1px solid #f39b952b;border-radius:12px;color:#e6b1a9;background:#f39b9508}
.device-stop:hover{background:#f39b9515}
.manual-button{font-size:10px;min-height:31px;padding-bottom:0;margin-top:5px}
.session-card{flex:1}
.session-card h2{font-size:15px}
.session-card .section-heading{margin-bottom:16px}
.timer-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-bottom:17px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}
select{max-width:165px;background:#24291e;border:1px solid #ffffff0d;padding:7px 27px 7px 10px;border-radius:8px;color:#d4dfc7;font-size:11px;cursor:pointer;min-height:35px}
.session-stats{display:flex;gap:40px;align-items:center;padding-top:17px}
.session-stats small{display:block;font-size:9px;color:var(--muted);margin-bottom:6px}
.session-stats strong{font-size:21px;letter-spacing:-.5px;font-weight:500;font-variant-numeric:tabular-nums}
.session-art{margin-left:auto;display:flex;align-items:center;gap:4px;height:35px}
.session-art span{display:block;width:4px;height:13px;border-radius:4px;background:#718f4a}
.session-art span:nth-child(2){height:29px}.session-art span:nth-child(3){height:22px}.session-art span:nth-child(4){height:16px}
.save-strip{display:flex;align-items:center;width:100%;gap:14px;padding:19px 5px;border-bottom:1px solid var(--line);margin-top:18px;text-align:left}
.save-strip-icon{height:37px;width:37px;display:grid;place-items:center;border:1px solid #c9ef9a17;border-radius:11px;color:var(--accent)}
.save-strip-icon svg{width:18px;height:18px}
.save-strip strong{display:block;font-size:12px;font-weight:550}
.save-strip small{font-size:10px;color:var(--muted);display:block;margin-top:2px}
.save-strip>svg{margin-left:auto;color:var(--muted);width:17px}
.motor-card{margin-top:20px}
.motor-controls-row{display:grid;grid-template-columns:90px 1fr 40px;gap:15px;align-items:center;margin-top:17px;font-size:12px}
.motor-controls-row output{text-align:right;color:var(--accent)}
input[type=range]{appearance:none;-webkit-appearance:none;height:5px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--range,50%),#ffffff13 var(--range,50%),#ffffff13 100%);border-radius:8px;outline-offset:10px;width:100%;cursor:pointer;display:block;margin:18px 0;accent-color:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);width:20px;height:20px;border:4px solid #293021;border-radius:50%;box-shadow:0 0 0 1px #c9ef9a99}
input[type=range]::-moz-range-thumb{background:var(--accent);width:13px;height:13px;border:4px solid #293021;border-radius:50%}
.view-intro{display:flex;align-items:flex-start;justify-content:space-between;margin:0 0 26px}
.view-intro p{text-align:right;font-size:12px}
.patterns-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:22px}
.pattern-card{position:relative;text-align:left;padding:19px;background:#1a1d18;border:1px solid var(--line);border-radius:19px;min-height:146px;overflow:hidden}
.pattern-card .pattern-visual{display:block;color:#a6b292;margin:7px 0 17px}
.pattern-card .pattern-visual svg{width:100%;height:36px;stroke-width:1.6}
.pattern-card strong{display:block;font-size:13px;font-weight:600}
.pattern-card small{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.pattern-card.selected{background:#293321;border-color:#a9cd7780}
.pattern-card.selected .pattern-visual{color:var(--accent)}
.pattern-card .selection-dot{position:absolute;top:12px;right:12px;width:15px;height:15px}
.pattern-editor{max-width:100%;padding:27px 32px}
.pattern-editor h2{margin-top:7px;font-size:24px;font-weight:550}
.pattern-editor .large-wave{height:86px;padding:0 12px;margin:25px 0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(10% - 1px),#ffffff05 calc(10% - 1px),#ffffff05 10%)}
.large-wave svg{width:100%;height:100%;stroke:var(--accent);stroke-width:1.25}
.range-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:10px}
.range-heading>span{color:var(--muted);font-size:10px}.range-heading>strong{color:var(--accent);font-weight:500}
.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;margin:-6px 0 24px}
.editor-footer{display:flex;align-items:center;justify-content:space-between;margin-top:26px;padding-top:23px;border-top:1px solid var(--line);gap:20px}
.editor-footer p{font-size:11px}
.scenes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.scene-card{border:1px solid var(--line);background:var(--surface);padding:23px;border-radius:21px;position:relative;overflow:hidden}
.scene-card::before{content:"";position:absolute;right:-60px;top:-70px;width:200px;height:200px;background:radial-gradient(#c9ef9a09,transparent 70%);pointer-events:none}
.scene-visual{height:72px;color:var(--accent);padding:8px 3px}
.scene-visual svg{width:100%;height:100%;stroke-width:1.5}
.scene-card h3{font-size:18px;margin:20px 0 12px;overflow-wrap:anywhere}
.scene-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:23px}
.scene-tags span{font-size:9px;background:#ffffff05;border:1px solid #ffffff06;border-radius:6px;padding:4px 7px;color:var(--muted)}
.scene-footer{display:flex;gap:8px}.scene-footer .button{flex:1;min-height:39px;padding:8px 10px;font-size:11px}
.note-box{display:flex;align-items:flex-start;gap:12px;max-width:650px;margin:28px auto;color:#80916d}
.note-box p{font-size:11px}.note-box svg{width:17px;height:17px;margin-top:2px}
.empty-state{text-align:center;padding:45px 18px 55px;border:1px dashed #c9ef9a22;background:radial-gradient(ellipse at 50% 30%,#c9ef9a05,transparent 70%);border-radius:24px}
.empty-state h2{font-size:23px;font-weight:550;margin:20px 0 10px}
.empty-state p{font-size:12px;margin-bottom:22px}
.empty-orbit{display:grid;place-items:center;width:76px;height:76px;border:1px solid #c9ef9a20;border-radius:50%;background:#c9ef9a06;color:var(--accent);margin:0 auto;box-shadow:0 0 0 10px #c9ef9a02}
.empty-orbit svg{width:30px;height:30px}
.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.settings-card h2{font-size:22px;font-weight:550;margin:8px 0 20px}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}
.setting-row:last-child{border-bottom:0;padding-bottom:0}
.setting-row strong{display:block;font-size:12px;font-weight:550}
.setting-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}
.switch{appearance:none;width:38px;height:23px;min-width:38px;border-radius:20px;background:#3a4033;position:relative;cursor:pointer;transition:background .2s;margin:0}
.switch::before{content:"";position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#f1f2e9;transition:transform .2s}
.switch:checked{background:var(--accent)}.switch:checked::before{transform:translateX(15px);background:#26331a}
.device-setting-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.device-setting-form>strong{font-size:12px;color:var(--muted);display:block;margin-bottom:13px}
.device-setting-form input[type=text]{margin:5px 0 15px}
input[type=text]{width:100%;border:1px solid #ffffff19;background:#131610;border-radius:10px;padding:12px 14px;color:var(--text);font-size:13px}
input[type=text]::placeholder{color:#6f7865}
.device-setting-form label{font-size:10px;color:var(--muted)}
.device-setting-form .button{min-height:37px;padding:8px 12px;font-size:10px}
.connection-detail{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:15px 0;font-size:12px;color:var(--muted)}
.connection-detail strong{font-weight:500;color:var(--accent)}
.connection-card{grid-column:1/-1}
.connection-card .section-heading h2{font-size:17px;margin:0}
.connection-card .full{margin-top:8px}
.about{display:flex;align-items:center;justify-content:center;gap:10px;margin:33px 0 0;color:var(--muted)}
.about .brand-mark{transform:scale(.6);width:25px}.about strong{font-size:12px;font-weight:600}.about>span:last-child{font-size:10px;border-left:1px solid #ffffff1a;padding-left:12px;margin-left:3px}
.desktop-footer{display:flex;justify-content:space-between;margin-top:22px;color:#727b66;font-size:10px}
.private-label{display:flex;align-items:center;gap:5px}.private-label svg{width:13px;height:13px}
.bottom-area{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(580px,100%);padding:8px 18px calc(10px + var(--safe-bottom));background:linear-gradient(transparent,#111310ed 20%,#111310 85%);backdrop-filter:blur(12px)}
.stop-dock{padding-bottom:10px}
.global-stop{display:flex;align-items:center;gap:11px;border:1px solid #f39b9530;width:100%;background:#302422;border-radius:14px;min-height:55px;padding:10px 14px;text-align:left;box-shadow:0 6px 24px #0003}
.global-stop:hover{background:#40302d;border-color:#f39b9560}
.stop-icon{height:31px;width:31px;display:grid;place-items:center;color:#e6b1a9;background:#f39b9510;border-radius:9px}
.stop-icon svg{width:21px;height:21px}
.global-stop strong{font-size:12px;font-weight:600;color:#f0c0b9;display:block}
.global-stop small{font-size:9px;display:block;color:#b7958e;margin-top:1px}
.global-stop kbd{font:10px Manrope,sans-serif;color:#a1857e;border:1px solid #f39b9520;border-radius:4px;padding:2px 5px;margin-left:auto}
.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #ffffff0e;background:#1e221bf0;border-radius:17px;padding:5px;box-shadow:0 5px 30px #0003}
.nav-item{height:51px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#89937f;border-radius:12px;font-size:9px}
.nav-item svg{width:19px;height:19px;stroke-width:1.5}
.nav-item.active{color:var(--accent);background:#c9ef9a0a}
.status-banner{border:1px solid #e1bd7b26;background:#cbb07c0b;color:#d2c5a5;padding:12px 16px;border-radius:12px;font-size:12px;margin-top:18px}
.status-banner.demo{background:#c9ef9a09;border-color:#c9ef9a20;color:#bbcf9f}
.status-banner.error{background:#f39b950a;border-color:#f39b9530;color:#f0b4ab}
.toast{position:fixed;z-index:80;left:50%;bottom:calc(var(--bottom) + var(--safe-bottom) + 16px);transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid #c9ef9a42;border-radius:13px;background:#303b26;box-shadow:0 8px 35px #0005;max-width:calc(100% - 32px);font-size:12px;white-space:normal;color:var(--text)}
.toast svg{color:var(--accent);width:16px;height:16px}.toast.error{background:#412b28;border-color:#f39b9550}.toast.error svg{color:var(--danger)}
dialog{width:min(420px,calc(100% - 32px));background:#1e231a;color:var(--text);border:1px solid #c9ef9a2a;border-radius:24px;padding:27px;box-shadow:0 20px 70px #0009}
dialog::backdrop{background:#050703bb;backdrop-filter:blur(8px)}
dialog .section-heading{margin-bottom:7px}
dialog h2{font-size:22px;font-weight:550}
dialog p{font-size:11px;margin-bottom:25px}
dialog label{font-size:11px;color:var(--muted)}
dialog input{margin:8px 0 23px}
.muted{color:var(--muted)}.accent{color:var(--accent)}
.connection-card .muted{font-size:12px}
@media(min-width:850px){.view:not([hidden]){animation:enter .25s ease-out}}
@keyframes enter{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){
 .app-shell{width:calc(100% - 40px)}h1{font-size:43px;letter-spacing:-2px}h1 br{display:block}h1 span{margin-left:0}
 .page-heading{margin:29px 0 28px}.heading-art{padding-right:9px;gap:5px}
 .patterns-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scenes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .control-layout{gap:14px}.control-card{padding:22px 18px}.surface{padding:20px}.dial{width:280px}
 .dial-knob{transform:translate(-50%,-50%) rotate(var(--rotation)) translateY(-119.46px)}
 .dial-number{font-size:76px}.dial-min,.dial-max{bottom:34px}.dial-min{left:52px}.dial-max{right:47px}
 .session-stats{gap:24px}.rhythm-card h2{font-size:14px}.mini-patterns{gap:5px}.mini-pattern{padding:8px}
 .control-card .card-top{flex-direction:column;align-items:flex-start;gap:8px}
}
@media(max-width:650px){
 :root{--radius:23px;--bottom:149px}
 .app-shell{width:calc(100% - 36px)}
 .topbar{height:76px}.brand{font-size:24px;gap:8px}.brand-light{font-size:19px}.edition{font-size:8px;line-height:14px}
 .top-actions{gap:12px}.connection-pill{font-size:9px;padding:7px 9px;gap:6px}.avatar{height:31px;width:31px;font-size:11px}
 .brand-mark{width:25px;gap:3px}.brand-mark i{width:4px}.brand-mark i:nth-child(2){height:26px}
 .page-heading{margin:24px 0 23px;min-height:0}.page-heading .eyebrow{font-size:8px;letter-spacing:1.8px}
 h1{font-size:29px;line-height:1.16;letter-spacing:-1.5px;margin:12px 0 8px;font-weight:550}h1 br{display:none}h1 span{margin-left:5px}
 .page-heading p{font-size:10px}.heading-art{display:none}
 .section-heading{margin-bottom:12px}.section-heading h2{font-size:15px}
 .text-button{font-size:10px}
 .devices-grid{gap:10px;margin-bottom:16px}
 .device-card{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:10px;padding:15px 13px;min-height:91px;border-radius:16px}
 .device-card svg.device-art{width:30px;height:43px}
 .device-card strong{font-size:11px;padding-right:8px}
 .device-card .device-sub{font-size:9px;margin-top:6px;gap:5px}
 .device-indicator{position:absolute;right:10px;top:10px;gap:0;font-size:9px}.device-indicator>span:last-child{display:none}
 .selection-dot{height:12px;width:12px}.selection-dot svg{width:8px;height:8px}
 .control-layout{grid-template-columns:1fr;gap:16px}
 .control-card{padding:20px 20px 19px}.control-card .card-top{flex-direction:row;align-items:center}
 .card-top .eyebrow{font-size:8px;letter-spacing:1.4px}.mode-pill{font-size:8px;padding:5px 8px}
 .dial-stage{padding-top:10px}.dial{width:290px}.dial-knob{transform:translate(-50%,-50%) rotate(var(--rotation)) translateY(-123.73px)}
 .dial-number{font-size:78px}.dial-center{padding-top:5px}.dial-label{font-size:8px}
 .dial-min,.dial-max{bottom:37px}.dial-min{left:55px}.dial-max{right:49px}
 .precision-row{margin:-7px 0 20px;gap:32px}
 .step-button{height:43px;width:62px;border-radius:12px}
 .preset-row{gap:7px}.preset-row button{height:39px;font-size:12px}
 .output-strip{padding-top:16px;margin-top:17px;font-size:9px}
 .surface{padding:21px}.side-stack{gap:16px}.rhythm-card h2{font-size:15px}
 .mini-patterns{gap:9px}.mini-pattern{padding:10px 12px}.mini-pattern svg{height:29px}
 .rhythm-summary h3{font-size:20px}.waveform-preview{height:59px;margin-bottom:15px}
 .session-card .section-heading h2{font-size:15px}.session-stats{gap:36px}
 .motor-card{margin-top:16px}.motor-card .section-heading p{font-size:10px}
 .motor-controls-row{grid-template-columns:62px 1fr 35px;font-size:10px;gap:12px}
 .save-strip{margin-top:11px;padding:17px 0}.save-strip strong{font-size:11px}
 .bottom-area{padding:7px 14px calc(8px + var(--safe-bottom));max-width:500px}
 .stop-dock{padding-bottom:8px}.global-stop{min-height:53px;padding:9px 12px}
 .global-stop kbd{display:none}.global-stop strong{font-size:12px}.global-stop small{font-size:9px}
 .bottom-nav{border-radius:15px;padding:4px}.nav-item{height:49px;font-size:9px;gap:4px}
 .nav-item svg{width:18px;height:18px}
 .desktop-footer{font-size:9px;margin-top:19px}
 .patterns-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .pattern-card{padding:17px 15px;min-height:147px}.pattern-card strong{font-size:12px}.pattern-card small{font-size:9px;line-height:1.6}
 .pattern-card .pattern-visual svg{height:34px}
 .view-intro{gap:18px;align-items:center;margin-bottom:23px}.view-intro p{font-size:10px}
 .pattern-editor{padding:23px}.pattern-editor .large-wave{height:68px;padding:0}
 .pattern-editor .section-heading h2{font-size:23px}
 .range-heading{font-size:11px}.range-heading>span{font-size:9px}
 .editor-footer{flex-direction:column;gap:13px;align-items:stretch;margin-top:22px}
 .editor-footer p{font-size:10px}
 .scenes-grid{grid-template-columns:1fr;gap:13px}.scene-card{padding:23px}.scene-card h3{font-size:20px;margin:14px 0 12px}
 .scene-visual{height:62px}.scene-tags{margin-bottom:18px}.scene-footer .button{min-height:43px}
 .note-box{padding:0 8px}.note-box p{font-size:10px}
 .settings-layout{grid-template-columns:1fr;gap:16px}.connection-card{grid-column:auto}
 .settings-card h2{font-size:21px}.settings-card .eyebrow{font-size:9px}.setting-row strong{font-size:11px}
 .setting-row small{font-size:10px;max-width:215px}.settings-card .section-heading h2{font-size:17px}
 .about{flex-wrap:wrap;gap:6px}.about>span:last-child{font-size:9px}
 .status-banner{font-size:10px;padding:10px 12px;margin-top:13px}
 .empty-state{padding:36px 20px}.empty-state h2{font-size:22px}.empty-state p{font-size:11px}
 .toast{font-size:11px;width:max-content;max-width:calc(100% - 32px);padding:11px 14px}
}
@media(max-width:360px){
 .app-shell{width:calc(100% - 28px)}.brand-light{font-size:17px}.top-actions{gap:7px}.avatar{display:none}
 .device-card{padding:14px 9px;column-gap:5px;grid-template-columns:27px minmax(0,1fr)}.device-card strong{font-size:10px}.device-card svg.device-art{width:25px}
 .control-card{padding:18px 14px}.dial{width:266px}.dial-knob{transform:translate(-50%,-50%) rotate(var(--rotation)) translateY(-113.49px)}
 .dial-number{font-size:70px}.dial-min,.dial-max{bottom:30px}.dial-min{left:52px}.dial-max{right:44px}
 .precision-row{gap:23px}.card-top .eyebrow{font-size:7px}.mode-pill{font-size:7px}
 h1{font-size:25px}.view-intro p{font-size:9px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* Explicit preset preparation: selection never starts hardware. */
#patternEditor{scroll-margin-top:20px;outline:none}
#patternEditor:focus{border-color:var(--accent,#c7ed78)}
.preset-help{color:#b7beb0;font-size:13px;line-height:1.6;margin:12px 0}
#editorDevice,#editorTimer{display:block;width:100%;min-height:46px;margin:8px 0 18px;padding:10px 14px;border:1px solid #49513e;border-radius:12px;background:#20251c;color:#f0f4e9;font:inherit}
#savePattern{margin-top:16px;min-height:44px}
.scene-footer .button{white-space:normal}
@media(max-width:700px){#view-rhythms .patterns-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#view-rhythms .pattern-card{min-height:112px}#view-rhythms .editor-footer{position:sticky;bottom:150px;background:#20251c;border:1px solid #49513e;border-radius:14px;padding:12px;z-index:3;display:flex;flex-wrap:wrap;gap:10px}#view-rhythms .editor-footer p{flex:1 1 130px;margin:0}#view-rhythms .editor-footer button{min-height:44px} .bottom-nav .nav-item span{font-size:9px}}
@media(max-width:700px){#view-rhythms .editor-footer{position:static;flex-direction:column;flex-wrap:nowrap}#view-rhythms .editor-footer p{flex:none}#patternEditor .large-wave{margin:14px 0;height:48px}}

.quick-launch{margin:16px 0 20px;padding:18px}.quick-launch .section-heading{margin-bottom:8px}.quick-launch .preset-help{margin:8px 0;font-size:12px}.quick-launch .mini-patterns{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.quick-launch .mini-pattern{min-height:60px;font-size:12px;padding:8px}.quick-launch .mini-pattern svg{height:18px;margin:0}.quick-launch h3{font-size:13px;margin:14px 0 8px}.quick-scenes{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}.quick-scene{flex:0 0 190px;scroll-snap-align:start;text-align:left;border:1px solid #515d43;border-radius:12px;background:#242c1d;color:#e8f4dd;padding:12px;min-height:65px}.quick-scene strong,.quick-scene small{display:block;overflow-wrap:anywhere}.quick-scene small{font-size:10px;color:#b7beb0;margin-top:5px}.scene-footer{flex-wrap:wrap}.quick-launch button:disabled{opacity:.4}
@media(max-width:700px){.quick-launch{padding:14px}.quick-launch .mini-patterns{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-launch .mini-pattern{font-size:10px}.quick-launch .section-heading h2{font-size:16px}}
