:root{color-scheme:dark;font-family:HarmonyOS Sans,MiSans,PingFang SC,Microsoft YaHei,sans-serif;--bg: #07131a;--surface: rgba(14, 35, 46, .82);--surface-strong: rgba(18, 44, 57, .94);--line: rgba(131, 169, 183, .18);--text: #f5fbff;--muted: #a9bcc5;--accent: #f7b451;--accent-strong: #ffcf73;--green: #00ff1d;--white-dot: #f6f6f1;--gray-dot: #777;--danger: #e3794c}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 18% 72%,rgba(247,180,81,.16),transparent 28rem),radial-gradient(circle at 82% 28%,rgba(18,184,210,.18),transparent 30rem),linear-gradient(135deg,#061016,#0b1d27 48%,#113140);color:var(--text)}button,input{font:inherit}button{color:inherit}.app-shell{position:relative;min-height:100vh;overflow-x:hidden;padding:max(18px,env(safe-area-inset-top)) 20px max(86px,env(safe-area-inset-bottom))}.ambient{pointer-events:none;position:fixed;border-radius:999px;filter:blur(8px);opacity:.42}.ambient-a{width:28rem;height:28rem;left:-12rem;bottom:7rem;background:radial-gradient(circle,rgba(247,180,81,.26),transparent 64%)}.ambient-b{width:34rem;height:34rem;right:-13rem;top:4rem;background:radial-gradient(circle,rgba(19,151,165,.3),transparent 66%)}.topbar{position:relative;z-index:2;width:min(1160px,100%);margin:0 auto 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:44px;height:44px;border-radius:14px;box-shadow:0 0 24px #f7b45152}.brand strong{display:block;font-size:22px;letter-spacing:.08em;text-shadow:0 0 12px rgba(247,180,81,.52)}.brand span{color:var(--muted);font-size:12px}.mode-switch-area{display:grid;justify-items:end;gap:6px}.mode-switch-hint{display:inline-flex;align-items:center;gap:7px;color:#ffcf73e6;font-size:12px;font-weight:800;letter-spacing:.08em;animation:switchHintFloat 2.2s ease-in-out infinite}.mode-switch-hint i{width:24px;height:1px;background:currentColor;position:relative}.mode-switch-hint i:after{content:"";position:absolute;right:-1px;top:-4px;width:8px;height:8px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}.mode-switch{--switch-index: 0;position:relative;display:flex;padding:5px;border:1px solid var(--line);border-radius:999px;background:radial-gradient(circle at calc(18% + var(--switch-index) * 30%) 0%,rgba(247,180,81,.18),transparent 55%),#050f168c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 12px 34px #0000002e,inset 0 1px #ffffff0a;overflow:hidden}.mode-switch.professional{--switch-index: 0}.mode-switch.traditional{--switch-index: 1}.mode-switch.profile{--switch-index: 2}.mode-switch:before{content:"";position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px) / 3);border-radius:999px;background:linear-gradient(135deg,var(--accent-strong),var(--accent));box-shadow:0 0 28px #f7b4514d;transform:translate(calc(var(--switch-index) * 100%));transition:transform .28s cubic-bezier(.2,.9,.2,1.08)}.mode-switch button,.mobile-tabs button{position:relative;z-index:1;border:0;background:transparent;padding:10px 20px;border-radius:999px;color:var(--muted);cursor:pointer}.mode-switch button.active,.mobile-tabs button.active{color:#1a1105;font-weight:800}.mode-switch button.active{background:transparent}.mode-switch button:not(.active):hover{color:#fff;background:#ffffff0e}.mobile-tabs button.active{background:linear-gradient(135deg,var(--accent-strong),var(--accent))}.workspace{position:relative;z-index:1;display:grid;grid-template-columns:minmax(240px,.5fr) minmax(360px,1.5fr);gap:22px;align-items:stretch;width:min(1160px,100%);margin:0 auto}.workspace.profile{grid-template-columns:1fr}.hero-panel{min-height:520px;border:1px solid rgba(180,217,227,.16);border-radius:36px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,#0d2a36c7,#07131ac7),repeating-linear-gradient(112deg,rgba(255,255,255,.045) 0 1px,transparent 1px 38px);box-shadow:0 30px 90px #00000057}.eyebrow{display:inline-flex;color:var(--accent-strong);border:1px solid rgba(247,180,81,.34);border-radius:999px;padding:7px 12px;font-weight:700}.hero-copy h1{margin:18px 0 12px;font-size:clamp(30px,3.2vw,52px);line-height:1.04;letter-spacing:-.06em}.hero-copy p{color:var(--muted);line-height:1.72;font-size:15px}.status-card{border-radius:26px;border:1px solid rgba(247,180,81,.2);background:#f7b4511f;padding:18px}.status-card span{color:var(--muted)}.status-card strong{display:block;margin-top:6px;font-size:42px;color:var(--accent-strong)}.mobile-mode-title{display:none}.metronome-layout{min-width:0;display:grid;gap:14px}.surface-card{border:1px solid var(--line);border-radius:34px;background:var(--surface);box-shadow:inset 0 1px #ffffff0d,0 20px 50px #0003;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.traditional-stage,.professional-stage{min-height:450px;padding:22px;display:grid;place-items:center;overflow:hidden}.traditional-stage{position:relative;background:radial-gradient(ellipse at 50% 16%,rgba(255,223,161,.1),transparent 16rem),radial-gradient(ellipse at 50% 100%,rgba(0,0,0,.24),transparent 15rem),linear-gradient(180deg,#0f262fe6,#08171df5)}.traditional-stage:before{content:"";position:absolute;inset:22px;border-radius:28px;border:1px solid rgba(255,255,255,.035);background:linear-gradient(112deg,transparent 0 44%,rgba(255,255,255,.035) 45% 48%,transparent 49%),radial-gradient(ellipse at center bottom,rgba(0,0,0,.18),transparent 58%);pointer-events:none}.pendulum{--period: 2s;position:relative;width:min(388px,76vw);height:534px;transform-origin:50% 8%;filter:drop-shadow(0 26px 28px rgba(0,0,0,.22));animation:pendulumIdle 3.8s ease-in-out infinite}.pendulum-arm{position:absolute;inset:0;transform-origin:50% 62px;will-change:transform}.pendulum.playing .pendulum-arm{animation:pendulumSwing var(--period) cubic-bezier(.34,.02,.66,.98) infinite}.pendulum-top{position:absolute;z-index:4;top:0;left:50%;width:64px;height:64px;border-radius:999px;transform:translate(-50%);background:radial-gradient(circle at 34% 28%,#fff1b8,#f8cf80 48%,#a0632f 76%),#f7d38c;border:4px solid #76431f;box-shadow:inset 0 -6px 9px #50260e3d,0 8px 16px #0000002e}.pendulum-top:before,.pendulum-top:after{content:"";position:absolute;left:50%;border-radius:999px;transform:translate(-50%)}.pendulum-top:before{top:26px;width:30px;height:5px;background:#76441f}.pendulum-top:after{top:22px;width:10px;height:10px;background:#5a3218}.pendulum-crown{position:absolute;z-index:3;top:62px;left:50%;width:66px;height:30px;border-radius:18px 18px 12px 12px;transform:translate(-50%);background:linear-gradient(180deg,#e7b866,#bd7b37);border:3px solid #73401e;box-shadow:inset 0 4px 8px #ffefb43d}.pendulum-body{position:absolute;z-index:2;inset:88px 58px 48px;clip-path:polygon(45.5% 0,54.5% 0,91% 100%,9% 100%);background:linear-gradient(90deg,rgba(68,32,14,.18),transparent 30%,rgba(255,224,156,.15) 50%,transparent 68%,rgba(58,27,12,.2)),linear-gradient(180deg,#b87841,#95562d 55%,#6e381f);border:4px solid rgba(159,93,43,.78);box-shadow:inset 0 0 0 2px #ffe19d1a,inset 15px 0 20px #ffe09c0d,inset -15px 0 20px #240f0624}.pendulum-inner-frame{position:absolute;inset:28px 34px 32px;clip-path:polygon(41% 0,59% 0,100% 100%,0 100%);border:2px solid rgba(245,194,112,.22);border-top-width:2px;pointer-events:none}.pendulum-inner-frame:before,.pendulum-inner-frame:after{content:"";position:absolute;left:8%;right:8%;height:2px;background:#f5c2702e}.pendulum-inner-frame:before{top:38%;transform:rotate(2deg)}.pendulum-inner-frame:after{top:72%;transform:rotate(-2deg)}.pendulum-body span{position:absolute;z-index:3;left:50%;bottom:128px;transform:translate(-50%);border:2px solid rgba(247,180,81,.42);border-radius:999px;padding:8px 20px;color:#fff7e8;font-weight:800;white-space:nowrap;background:#5e2f1247;box-shadow:0 0 18px #f7b4511a}.pendulum-track{position:absolute;z-index:2;top:18px;left:50%;width:6px;bottom:98px;height:auto;margin-left:-3px;border-radius:999px;background:linear-gradient(90deg,rgba(92,46,17,.2),transparent 45%,rgba(255,255,255,.5) 52%,transparent 67%),linear-gradient(#fff0b2,#f9d17d 32%,#fff0b2 62%,#b86e26);box-shadow:0 0 0 1px #5e2f1233,0 8px 14px #00000029}.pendulum-weight,.pendulum-ball{position:absolute;left:50%;border-radius:999px;transform:translate(-50%)}.pendulum-weight{z-index:4;top:218px;width:24px;height:15px;background:linear-gradient(180deg,#ffe29a,#c98237);border:2px solid #7e481f;box-shadow:inset 0 3px 6px #ffffff38,0 7px 13px #00000024}.pendulum-weight:before{content:"";position:absolute;left:8px;right:8px;top:7px;height:2px;border-radius:999px;background:#fff4c7db}.pendulum-ball{z-index:5;bottom:82px;width:50px;height:50px;background:radial-gradient(circle at 35% 30%,#fff4be,#f5bd54 54%,#9f5a20);box-shadow:inset -8px -10px 15px #78401347,0 18px 20px #0000003d,0 0 20px #f7b45124}.pendulum-ball:before{content:"";position:absolute;left:16px;top:12px;width:20px;height:15px;border-radius:999px;background:#ffffff6b;filter:blur(1px)}.pendulum-base{position:absolute;z-index:4;left:24px;right:24px;bottom:22px;height:42px;border-radius:999px;background:linear-gradient(180deg,#8a4d2b,#5d2f1a);border:4px solid #a86534;box-shadow:inset 0 7px 10px #ffca8014,0 14px 24px #0003}.pendulum-base i{position:absolute;top:9px;width:16px;height:16px;border-radius:999px;background:#dda24d}.pendulum:after{content:"";position:absolute;left:13%;right:13%;bottom:-4px;height:24px;border-radius:50%;background:#00000038;filter:blur(12px)}.pendulum-base i:first-child{left:22px}.pendulum-base i:last-child{right:22px}.control-stack{display:grid;gap:14px}.control-row{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px}.control-row.primary{gap:20px}.professional-tools{flex-wrap:wrap}.icon-button,.bpm-display{border:1px solid rgba(247,180,81,.44);background:#162b36db;color:var(--accent-strong);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.grid-edit,.side-grid-control{border:1.5px solid rgba(246,248,251,.82);background:#f6f8fb08;color:#f6f8fb;cursor:pointer;transition:transform .16s ease,opacity .16s ease,border-color .16s ease,background .16s ease}.icon-button{width:58px;height:58px;border-radius:20px;font-size:25px;font-weight:900;display:grid;place-items:center;padding:0;position:relative;overflow:hidden}.icon-asset{--icon-size: 22px;width:var(--icon-size);height:var(--icon-size);display:inline-block;background-color:var(--accent-strong);-webkit-mask-image:var(--icon-url);mask-image:var(--icon-url);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;pointer-events:none}.icon-asset-sm{--icon-size: 16px}.icon-asset-xs{--icon-size: 14px}.icon-asset-white{background-color:#f6f8fb}.icon-button:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.18),transparent 58%);opacity:0;transition:opacity .14s ease}.icon-button:hover,.bpm-display:hover{transform:translateY(-2px);border-color:#ffffff42}.grid-edit:hover,.side-grid-control:hover{transform:scale(1.08);opacity:.86;border-color:#fff;background:#f6f8fb14}.icon-button:active,.grid-edit:active,.side-grid-control:active{transform:scale(.95)}.icon-button:active:after{opacity:1}button:disabled{opacity:.42;cursor:not-allowed}.bpm-display{min-width:118px;height:58px;border-radius:22px;font-size:30px;font-weight:900}.tempo-slider{width:min(360px,40vw);accent-color:var(--accent)}.professional-stage{place-items:center}.grid-wrap{min-width:0;width:max-content;max-width:100%;margin:0 auto;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:12px;align-items:center}.rhythm-grid{min-width:0;overflow-x:auto;display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 8px;margin:0 auto}.beat-column{min-width:54px;display:grid;justify-items:center;gap:10px}.grid-edit,.side-grid-control{width:32px;height:32px;border-radius:999px;font-size:22px;display:grid;place-items:center;padding:0;position:relative}.dot-stack{--dot-size: 28px;--dot-step: 39px;width:calc(var(--dot-size) + 12px);min-height:calc(var(--dot-size) + (var(--max-notes, 4) - 1) * var(--dot-step));height:calc(var(--dot-size) + (var(--max-notes, 4) - 1) * var(--dot-step));position:relative}.note-dot,.legend-dot{width:var(--dot-size, 28px);height:var(--dot-size, 28px);border-radius:999px}.note-dot{border:0;cursor:pointer;position:absolute;left:50%;top:var(--dot-y, 50%);transform:translate(-50%,-50%);transition:transform .11s ease,box-shadow .11s ease,opacity .11s ease}.note-dot.downbeat,.legend-dot.downbeat{background:var(--green)}.note-dot.upbeat,.legend-dot.upbeat{background:var(--white-dot)}.note-dot.next_upbeat,.legend-dot.next_upbeat{background:var(--gray-dot)}.note-dot.SILENT,.legend-dot.SILENT{background:transparent;border:3px solid var(--white-dot)}.note-dot.active{transform:translate(-50%,-50%) scale(1.32);box-shadow:0 0 0 9px #f7b4511f,0 0 24px #f7b4516b}.mobile-tabs{display:none}.profile-page{width:min(720px,100%);margin:24px auto 0;padding:26px}.profile-hero{display:flex;align-items:center;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--line)}.profile-hero img{width:72px;height:72px;border-radius:22px;box-shadow:0 0 28px #f7b45157}.profile-hero span{color:var(--accent-strong);font-weight:800}.profile-hero h1{margin:4px 0;font-size:30px}.profile-hero p,.profile-list p{margin:0;color:var(--muted);line-height:1.65}.profile-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.profile-actions button{border:1px solid rgba(247,180,81,.4);border-radius:18px;background:#f7b45121;color:var(--accent-strong);padding:14px;font-weight:900;cursor:pointer}.profile-list{display:grid;gap:10px}.profile-list article{border:1px solid var(--line);border-radius:18px;background:#ffffff09;padding:15px}.profile-list strong{display:block;margin-bottom:5px}.sheet-overlay{position:fixed;inset:0;z-index:10;display:grid;align-items:end;background:#0000007a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.bottom-sheet{width:min(720px,100%);max-height:min(78vh,760px);margin:0 auto;overflow:auto;border:1px solid var(--line);border-radius:34px 34px 0 0;background:#0c1f29fa;padding:24px;box-shadow:0 -24px 80px #0000005c}.sheet-close{float:right;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);padding:8px 13px;cursor:pointer}.sheet-section h2{margin:0 0 18px;font-size:26px}.sheet-section label,.form-grid label{display:grid;gap:8px;color:var(--text);font-weight:700;margin:14px 0}.sheet-section input{width:100%;border:1px solid rgba(170,207,218,.14);border-radius:15px;background:#374c56e0;color:var(--text);padding:13px 14px;outline:none}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.switch-line{display:flex!important;grid-template-columns:none!important;align-items:center;gap:12px!important}.switch-line input{width:auto}.cta,.sheet-actions button,.record-item button,.sound-options button{border:0;border-radius:16px;background:linear-gradient(135deg,#df8136,#c86f2d);color:#fff;font-weight:800;padding:13px 18px;cursor:pointer}.sheet-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.record-list{display:grid;gap:10px;margin-top:14px}.record-list>span,.sheet-section p{color:var(--muted);line-height:1.7}.record-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:16px;background:#ffffff0b;padding:12px}.record-item span{display:grid;gap:3px}.record-item small{color:var(--muted)}.record-item button{padding:8px 11px}.sound-state-list{display:grid;gap:10px}.sound-state-list details{border:1px solid var(--line);border-radius:18px;background:#ffffff09;overflow:hidden}.sound-state-list summary{display:grid;grid-template-columns:30px 76px 1fr auto;gap:12px;align-items:center;padding:14px;cursor:pointer}.sound-state-list summary small{color:var(--muted)}.sound-state-list summary b{color:var(--accent-strong)}.sound-options{display:flex;flex-wrap:wrap;gap:9px;padding:0 14px 14px}.sound-options button{background:#ffffff14;color:var(--text);padding:9px 11px}.sound-options button.active{background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#221405}.guide-overlay{position:fixed;inset:0;z-index:18;display:grid;place-items:center;padding:20px;overflow-y:auto;background:radial-gradient(circle at 50% 15%,rgba(247,180,81,.12),transparent 24rem),#020a0f3d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.guide-card{width:min(720px,100%);max-height:min(88vh,920px);overflow-y:auto;border:1px solid rgba(247,180,81,.22);border-radius:32px;padding:26px;background:linear-gradient(180deg,#112834fa,#09151cfa),repeating-linear-gradient(114deg,rgba(255,255,255,.03) 0 1px,transparent 1px 34px);box-shadow:0 28px 90px #0000006b,inset 0 1px #ffffff0f}.guide-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-head span{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid rgba(247,180,81,.3);color:var(--accent-strong);font-weight:900;letter-spacing:.08em}.guide-head button{border:1px solid var(--line);border-radius:999px;background:#ffffff0a;color:var(--muted);padding:10px 14px;cursor:pointer}.guide-mode-switch{display:inline-flex;gap:8px;padding:6px;margin-top:18px;border:1px solid rgba(255,255,255,.06);border-radius:999px;background:#ffffff0a}.guide-mode-switch button{min-width:88px;border:0;border-radius:999px;padding:10px 16px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}.guide-mode-switch button.active{background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#221405;box-shadow:0 0 18px #f7b4512e}.guide-card h2{margin:18px 0 10px;font-size:clamp(30px,4vw,42px);line-height:1.04;letter-spacing:-.05em}.guide-card>p{margin:0;color:var(--muted);line-height:1.75}.guide-legend{display:grid;gap:10px;margin-top:20px}.guide-legend-row{display:flex;align-items:center;gap:12px;color:var(--muted);line-height:1.6}.guide-steps{display:grid;grid-template-columns:1fr;gap:14px;margin-top:22px}.guide-steps article{min-height:auto;border:1px solid rgba(255,255,255,.06);border-radius:24px;padding:18px 18px 16px;background:radial-gradient(circle at 16% 18%,rgba(247,180,81,.14),transparent 5rem),#ffffff09}.guide-steps strong{display:block;margin-bottom:8px;font-size:18px}.guide-steps p{margin:0;color:var(--muted);line-height:1.7}.guide-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.guide-actions button{min-width:142px;min-height:48px;border-radius:16px}.guide-actions button:not(.cta),.spotlight-actions button:not(.cta){border:1px solid rgba(255,255,255,.12);background:#ffffff14;color:var(--text);font-weight:800}.spotlight-overlay{position:fixed;inset:0;z-index:19;pointer-events:auto}.spotlight-scrim{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,207,115,.04),transparent 24rem),#030a0f2e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.spotlight-hole{position:absolute;border:0;box-shadow:0 0 0 9999px #030a0f42,0 0 26px #ffffff14;pointer-events:none}.spotlight-hole.circle{border-radius:999px}.spotlight-hole.rounded{border-radius:24px}.spotlight-card{position:fixed;width:min(460px,calc(100vw - 32px));border-radius:28px;border:1px solid rgba(247,180,81,.22);background:linear-gradient(180deg,#102630fa,#08141bfa),repeating-linear-gradient(112deg,rgba(255,255,255,.03) 0 1px,transparent 1px 30px);padding:20px;box-shadow:0 24px 80px #0000006b}.spotlight-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.spotlight-meta span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(247,180,81,.26);color:var(--accent-strong);font-size:13px;font-weight:900}.spotlight-meta button{border:1px solid var(--line);border-radius:999px;background:#ffffff0a;color:var(--muted);padding:8px 12px;cursor:pointer}.spotlight-card h3{margin:14px 0 8px;font-size:26px;line-height:1.15}.spotlight-card p{margin:0;color:var(--muted);line-height:1.75}.spotlight-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}.spotlight-actions button{min-width:120px;min-height:48px;border-radius:16px}.toast-host{position:fixed;z-index:20;left:50%;bottom:30px;transform:translate(-50%);display:grid;gap:8px}.toast{border:1px solid rgba(247,180,81,.28);border-radius:999px;background:#08141ceb;color:#fff;padding:11px 18px;box-shadow:0 12px 34px #0000004d}@keyframes pendulumIdle{0%,to{filter:drop-shadow(0 24px 22px rgba(0,0,0,.14))}50%{filter:drop-shadow(0 28px 28px rgba(0,0,0,.2))}}@keyframes pendulumSwing{0%,to{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}@keyframes switchHintFloat{0%,to{transform:translate(0);opacity:.82}50%{transform:translate(-5px);opacity:1}}@media(pointer:coarse)and (max-width:1180px){.app-shell{min-height:100dvh;padding:max(8px,env(safe-area-inset-top)) 10px max(78px,env(safe-area-inset-bottom))}.topbar{display:none}.workspace{display:flex;flex-direction:column;gap:8px}.workspace.profile{display:block}.mobile-mode-title{display:flex}.hero-panel{display:none}.mobile-tabs{display:grid}}.app-shell.compact-layout{min-height:100dvh;padding:max(8px,env(safe-area-inset-top)) 10px max(78px,env(safe-area-inset-bottom))}.app-shell.compact-layout .topbar{display:none}.app-shell.compact-layout .workspace{display:flex;flex-direction:column;gap:8px}.app-shell.compact-layout .workspace.profile{display:block}.app-shell.compact-layout .mobile-mode-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;border:1px solid rgba(247,180,81,.26);border-radius:18px;background:#0a1a22d1;padding:0 14px}.app-shell.compact-layout .mobile-mode-title strong{font-size:18px;letter-spacing:0}.app-shell.compact-layout .mobile-mode-title span{color:var(--accent-strong);font-size:14px;font-weight:900}.app-shell.compact-layout .hero-panel{display:none}.app-shell.compact-layout .traditional-stage,.app-shell.compact-layout .professional-stage{min-height:0;border-radius:24px;padding:12px}.app-shell.compact-layout .professional-stage{height:clamp(330px,42dvh,440px)}.app-shell.compact-layout .traditional-stage{height:clamp(360px,46dvh,480px)}.app-shell.compact-layout .pendulum{width:min(330px,82vw);height:min(430px,100%)}.app-shell.compact-layout .pendulum-body{inset:54px 38px 28px}.app-shell.compact-layout .pendulum-track{top:16px;height:300px}.app-shell.compact-layout .pendulum-weight{top:160px;width:24px;height:15px}.app-shell.compact-layout .pendulum-ball{bottom:58px;width:50px;height:50px}.app-shell.compact-layout .control-row{gap:10px;padding:10px 12px}.app-shell.compact-layout .control-stack{gap:8px}.app-shell.compact-layout .icon-button{width:52px;height:52px;border-radius:18px}.app-shell.compact-layout .icon-button img{width:20px;height:20px}.app-shell.compact-layout .icon-asset{--icon-size: 21px}.app-shell.compact-layout .icon-asset-sm,.app-shell.compact-layout .icon-asset-xs{--icon-size: 15px}.app-shell.compact-layout .bpm-display{min-width:96px;height:52px;font-size:26px}.app-shell.compact-layout .tempo-slider{width:min(42vw,170px)}.app-shell.compact-layout .grid-wrap{grid-template-columns:40px minmax(0,1fr) 40px;gap:7px}.app-shell.compact-layout .grid-edit,.app-shell.compact-layout .side-grid-control{width:38px;height:38px}.app-shell.compact-layout .rhythm-grid{justify-content:center;gap:10px;width:max-content;max-width:100%;padding:10px 4px}.app-shell.compact-layout .beat-column{min-width:58px;gap:11px}.app-shell.compact-layout .dot-stack{min-height:190px;width:46px}.app-shell.compact-layout .note-dot,.app-shell.compact-layout .legend-dot{width:34px;height:34px}.app-shell.compact-layout .professional-tools .icon-button{width:52px;height:52px}.app-shell.compact-layout .mobile-tabs{position:fixed;z-index:5;left:10px;right:10px;bottom:max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border:1px solid var(--line);border-radius:28px;padding:7px;background:#08141ceb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-shell.compact-layout .mobile-tabs button{min-height:42px;padding:8px 12px;font-size:15px;font-weight:800}.app-shell.compact-layout .profile-page{margin-top:0;border-radius:28px;padding:16px;width:100%}.app-shell.compact-layout .profile-hero{align-items:center;gap:10px;padding-bottom:14px}.app-shell.compact-layout .profile-hero img{width:48px;height:48px;border-radius:16px}.app-shell.compact-layout .profile-hero span{display:none}.app-shell.compact-layout .profile-hero h1{margin:0 0 2px;font-size:22px}.app-shell.compact-layout .profile-hero p{font-size:13px;line-height:1.45}.app-shell.compact-layout .profile-actions{grid-template-columns:1fr;gap:10px;margin:16px 0}.app-shell.compact-layout .bottom-sheet{max-height:82vh;border-radius:26px 26px 0 0;padding:18px}@media(max-width:920px){.app-shell{padding:max(10px,env(safe-area-inset-top)) 10px max(92px,env(safe-area-inset-bottom))}.topbar{display:none}.workspace{display:flex;flex-direction:column;gap:12px}.workspace.profile{display:block}.mobile-mode-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;border:1px solid rgba(247,180,81,.22);border-radius:20px;background:#0a1a22d1;padding:0 14px}.mobile-mode-title strong{font-size:18px;letter-spacing:0}.mobile-mode-title span{color:var(--accent-strong);font-size:14px;font-weight:900}.hero-panel{display:none}.hero-copy h1{font-size:24px;letter-spacing:0}.hero-copy p{font-size:13px;margin-bottom:0}.status-card{display:none}.traditional-stage,.professional-stage{min-height:0;border-radius:24px;padding:12px}.professional-stage{height:clamp(330px,42dvh,440px)}.traditional-stage{height:clamp(360px,46dvh,480px)}.pendulum{width:min(330px,82vw);height:min(430px,100%)}.pendulum-body{inset:54px 38px 28px}.pendulum-track{top:16px;height:300px}.pendulum-weight{top:160px;width:24px;height:15px}.pendulum-ball{bottom:58px;width:50px;height:50px}.control-row{gap:10px;padding:10px 12px}.control-stack{gap:8px}.icon-button{width:52px;height:52px;border-radius:18px}.icon-button img{width:20px;height:20px}.icon-asset{--icon-size: 21px}.icon-asset-sm,.icon-asset-xs{--icon-size: 15px}.bpm-display{min-width:96px;height:52px;font-size:26px}.tempo-slider{width:min(42vw,170px)}.grid-wrap{grid-template-columns:40px minmax(0,1fr) 40px;gap:7px}.grid-edit,.side-grid-control{width:38px;height:38px}.rhythm-grid{justify-content:center;gap:10px;width:max-content;max-width:100%;padding:10px 4px}.beat-column{min-width:58px;gap:11px}.dot-stack{min-height:190px;width:46px}.note-dot,.legend-dot{width:34px;height:34px}.professional-tools .icon-button{width:52px;height:52px}.mobile-tabs{position:fixed;z-index:5;left:12px;right:12px;bottom:max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border:1px solid var(--line);border-radius:28px;padding:7px;background:#08141ceb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-tabs button{min-height:42px;padding:8px 12px;font-size:15px;font-weight:800}.profile-page{margin-top:0;border-radius:28px;padding:14px 16px 18px}.profile-hero{align-items:center;gap:10px;padding-bottom:14px}.profile-hero img{width:48px;height:48px;border-radius:16px}.profile-hero span{display:none}.profile-hero h1{margin:0 0 2px;font-size:22px}.profile-hero p{font-size:13px;line-height:1.45}.profile-actions{grid-template-columns:1fr;gap:10px;margin:16px 0}.bottom-sheet{max-height:82vh;border-radius:26px 26px 0 0;padding:18px}.form-grid,.sound-state-list summary{grid-template-columns:1fr}.sound-state-list summary{gap:6px}.record-item{align-items:stretch;flex-wrap:wrap}.guide-overlay{padding:12px}.guide-card{border-radius:28px;padding:18px}.guide-mode-switch{display:flex;width:100%}.guide-mode-switch button{flex:1}.guide-steps article{min-height:auto;padding:16px;border-radius:22px}.guide-actions{flex-direction:column}.guide-actions button{width:100%}.spotlight-card{width:calc(100vw - 24px);padding:18px;border-radius:24px}.spotlight-card h3{font-size:22px}.spotlight-actions{flex-direction:column}.spotlight-actions button{width:100%}}.app-shell.compact-layout{min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) clamp(14px,3.2vw,28px) max(112px,env(safe-area-inset-bottom))}.app-shell.compact-layout .workspace{width:100%;max-width:720px;margin:0 auto;gap:clamp(12px,2.6vw,18px)}.app-shell.compact-layout .metronome-layout{gap:clamp(14px,2.8vw,20px)}.app-shell.compact-layout .mobile-mode-title{min-height:clamp(54px,9vw,70px);border-radius:clamp(22px,4vw,30px);padding:0 clamp(18px,4vw,28px);background:#091922e6;box-shadow:inset 0 1px #ffffff0d}.app-shell.compact-layout .mobile-mode-title strong{font-size:clamp(19px,4.2vw,28px)}.app-shell.compact-layout .mobile-mode-title span{font-size:clamp(15px,3.4vw,22px)}.app-shell.compact-layout .surface-card{border-radius:clamp(28px,5.6vw,44px)}.app-shell.compact-layout .traditional-stage,.app-shell.compact-layout .professional-stage{padding:clamp(18px,4vw,34px)}.app-shell.compact-layout .professional-stage{height:clamp(560px,58dvh,760px);align-items:center;justify-items:center}.app-shell.compact-layout .traditional-stage{height:clamp(600px,62dvh,820px);align-items:center;justify-items:center}.app-shell.compact-layout .pendulum{width:min(92vw,600px);height:min(100%,760px)}.app-shell.compact-layout .pendulum-top{width:clamp(70px,16vw,118px);height:clamp(70px,16vw,118px);border-width:clamp(5px,1.2vw,9px)}.app-shell.compact-layout .pendulum-crown{top:clamp(82px,18vw,132px);width:clamp(62px,14vw,108px);height:clamp(28px,6vw,48px)}.app-shell.compact-layout .pendulum-body{inset:clamp(118px,26vw,172px) clamp(64px,12vw,108px) clamp(70px,12vw,104px);border-left-width:clamp(92px,20vw,170px);border-right-width:clamp(92px,20vw,170px)}.app-shell.compact-layout .pendulum-track{top:clamp(18px,4vw,34px);bottom:calc(clamp(88px,17vw,132px) + clamp(31px,7vw,54px));height:auto;width:clamp(7px,1.6vw,12px)}.app-shell.compact-layout .pendulum-weight{top:clamp(190px,31vw,296px);width:clamp(28px,6vw,46px);height:clamp(16px,3.4vw,28px)}.app-shell.compact-layout .pendulum-ball{bottom:clamp(88px,17vw,132px);width:clamp(62px,14vw,108px);height:clamp(62px,14vw,108px)}.app-shell.compact-layout .pendulum-base{left:clamp(28px,6vw,52px);right:clamp(28px,6vw,52px);bottom:clamp(24px,4.8vw,42px);height:clamp(48px,10vw,76px);border-width:clamp(4px,1vw,7px)}.app-shell.compact-layout .pendulum-base i{top:50%;width:clamp(18px,4vw,32px);height:clamp(18px,4vw,32px);transform:translateY(-50%)}.app-shell.compact-layout .pendulum-body span{bottom:clamp(126px,22vw,180px);font-size:clamp(16px,4vw,30px);padding:clamp(8px,1.8vw,14px) clamp(16px,3vw,28px)}.app-shell.compact-layout .control-stack{gap:clamp(14px,3vw,20px)}.app-shell.compact-layout .control-row{min-height:clamp(90px,16vw,122px);gap:clamp(16px,3vw,28px);padding:clamp(14px,3vw,22px);border-radius:clamp(28px,5.4vw,42px)}.app-shell.compact-layout .icon-button{width:clamp(68px,14vw,104px);height:clamp(68px,14vw,104px);border-radius:clamp(20px,4.6vw,34px)}.app-shell.compact-layout .professional-tools .icon-button{width:clamp(64px,13.5vw,96px);height:clamp(64px,13.5vw,96px)}.app-shell.compact-layout .icon-button img{width:clamp(30px,6vw,46px);height:clamp(30px,6vw,46px)}.app-shell.compact-layout .icon-asset{--icon-size: clamp(26px, 5.6vw, 42px)}.app-shell.compact-layout .icon-asset-sm,.app-shell.compact-layout .icon-asset-xs{--icon-size: clamp(22px, 4.8vw, 36px)}.app-shell.compact-layout .bpm-display{min-width:clamp(126px,28vw,208px);height:clamp(70px,14vw,104px);border-radius:clamp(24px,5vw,36px);font-size:clamp(34px,8vw,58px)}.app-shell.compact-layout .tempo-slider{width:min(44vw,300px);height:36px}.app-shell.compact-layout .grid-wrap{width:min(100%,660px);grid-template-columns:clamp(58px,12vw,92px) minmax(0,1fr) clamp(58px,12vw,92px);gap:clamp(12px,2.8vw,22px)}.app-shell.compact-layout .rhythm-grid{gap:clamp(18px,4.2vw,36px);padding:clamp(18px,4vw,36px) 0;overflow:visible}.app-shell.compact-layout .beat-column{min-width:clamp(72px,15vw,116px);gap:clamp(18px,3.8vw,30px)}.app-shell.compact-layout .grid-edit,.app-shell.compact-layout .side-grid-control{width:clamp(58px,12vw,88px);height:clamp(58px,12vw,88px);border-width:2px;font-size:clamp(28px,6vw,44px)}.app-shell.compact-layout .dot-stack{--dot-size: clamp(52px, 11vw, 82px);--dot-step: clamp(72px, 13.5vw, 108px);width:calc(var(--dot-size) + clamp(10px,2vw,16px));min-height:calc(var(--dot-size) + (var(--max-notes, 4) - 1) * var(--dot-step));height:calc(var(--dot-size) + (var(--max-notes, 4) - 1) * var(--dot-step))}.app-shell.compact-layout .note-dot,.app-shell.compact-layout .legend-dot{width:var(--dot-size);height:var(--dot-size)}.app-shell.compact-layout .mobile-tabs{left:clamp(16px,3.4vw,28px);right:clamp(16px,3.4vw,28px);bottom:max(14px,env(safe-area-inset-bottom));min-height:clamp(84px,17vw,122px);border-radius:clamp(28px,6vw,44px);padding:clamp(8px,1.8vw,14px)}.app-shell.compact-layout .mobile-tabs button{min-height:clamp(64px,13vw,94px);font-size:clamp(17px,3.8vw,26px);border-radius:clamp(22px,5vw,36px)}.app-shell.compact-layout .profile-page{width:100%;max-width:720px;padding:clamp(18px,4vw,34px)}.app-shell.compact-layout .profile-hero img{width:clamp(62px,14vw,96px);height:clamp(62px,14vw,96px)}.app-shell.compact-layout .profile-hero h1{font-size:clamp(24px,5vw,36px)}.app-shell.compact-layout .profile-hero p,.app-shell.compact-layout .profile-card p{font-size:clamp(15px,3.4vw,22px)}@media(max-width:460px){.app-shell.compact-layout .professional-stage{height:clamp(500px,55dvh,620px)}.app-shell.compact-layout .traditional-stage{height:clamp(540px,59dvh,680px)}.app-shell.compact-layout .rhythm-grid{gap:clamp(12px,3.4vw,20px)}.app-shell.compact-layout .beat-column{min-width:clamp(58px,14vw,76px)}.app-shell.compact-layout .note-dot,.app-shell.compact-layout .legend-dot{width:clamp(42px,10vw,58px);height:clamp(42px,10vw,58px)}}@media(pointer:coarse)and (min-width:700px){.app-shell.compact-layout{padding:max(14px,env(safe-area-inset-top)) clamp(18px,3vw,32px) max(132px,env(safe-area-inset-bottom))}.app-shell.compact-layout .workspace,.app-shell.compact-layout .profile-page{max-width:820px}.app-shell.compact-layout .professional-stage{height:clamp(980px,66dvh,1240px)}.app-shell.compact-layout .traditional-stage{height:clamp(1040px,68dvh,1280px)}.app-shell.compact-layout .pendulum{width:min(94vw,660px);height:min(100%,1120px)}.app-shell.compact-layout .control-row{min-height:clamp(140px,15vw,172px)}.app-shell.compact-layout .mobile-tabs{left:clamp(24px,3.4vw,34px);right:clamp(24px,3.4vw,34px)}}@media(max-width:460px){.app-shell.compact-layout{padding:max(8px,env(safe-area-inset-top)) 10px max(92px,env(safe-area-inset-bottom))}.app-shell.compact-layout .workspace{gap:8px}.app-shell.compact-layout .mobile-mode-title{min-height:44px}.app-shell.compact-layout .professional-stage{height:clamp(380px,42dvh,450px)}.app-shell.compact-layout .traditional-stage{height:clamp(430px,47dvh,520px)}.app-shell.compact-layout .control-stack{gap:8px}.app-shell.compact-layout .control-row{min-height:72px;gap:9px;padding:10px}.app-shell.compact-layout .icon-button,.app-shell.compact-layout .professional-tools .icon-button{width:54px;height:54px}.app-shell.compact-layout .bpm-display{min-width:92px;height:54px;font-size:27px}.app-shell.compact-layout .grid-edit,.app-shell.compact-layout .side-grid-control{width:42px;height:42px}.app-shell.compact-layout .dot-stack{--dot-size: clamp(42px, 10vw, 58px);--dot-step: clamp(50px, 12vw, 68px);min-height:calc(var(--dot-size) + (var(--max-notes, 4) - 1) * var(--dot-step));height:calc(var(--dot-size) + (var(--max-notes, 4) - 1) * var(--dot-step))}.app-shell.compact-layout .mobile-tabs{min-height:62px}.app-shell.compact-layout .mobile-tabs button{min-height:46px;font-size:15px}}
