.hero{grid-template-columns:minmax(0,1fr);align-items:center;gap:40px;padding-block:28px 56px;display:grid;position:relative}.hero-copy-col{min-width:0;container-type:inline-size}.hero-phone-col{justify-content:center;min-width:0;display:flex}.hero>.hero-copy-col,.hero>.hero-phone-col{z-index:1;position:relative}.hero-field{--gx:50%;--gy:76%;z-index:0;inset:0 calc(var(--gutter) * -1);pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 62% 86% at var(--gx) var(--gy), #000 28%, transparent 100%);-webkit-mask-image:radial-gradient(ellipse 62% 86% at var(--gx) var(--gy), #000 28%, transparent 100%);mask-image:radial-gradient(ellipse 62% 86% at var(--gx) var(--gy), #000 28%, transparent 100%);position:absolute}.hero-bars{background:repeating-linear-gradient(90deg,#f1f0eb0f 0 1px,#0000 1px 72px);position:absolute;inset:0}.hero-glow{opacity:.16;will-change:opacity;background:radial-gradient(ellipse 36% 60% at var(--gx) var(--gy), #bae79170, transparent 74%);position:absolute;inset:0}@media (width>=960px){.hero{min-height:calc(100svh - var(--header-h));grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,4.4vw,72px);padding-block:24px 40px}.hero-field{--gx:79%;--gy:50%}}@media (width>=1200px){.hero-field{--gx:calc(100% - 196px)}.hero-phone-col,.hero-phone-col .phone-fit{justify-content:flex-end}.hero-phone-col .phone-stage{align-items:flex-end}}.hero-copy h1{letter-spacing:var(--track-display);font-size:clamp(2.75rem,14.2vw,4.5rem);font-weight:var(--weight-display);line-height:.98}@media (width>=960px){.hero-copy h1{font-size:clamp(4rem,14.6cqi,6rem)}}.hero-copy h1>span{display:block}.hero-copy .hero-muted{color:var(--ink-4)}.hero-copy .hero-accent{color:var(--sage);-webkit-text-stroke:0 var(--sage)}.hero-copy h1>span{transition:color .24s var(--ease-out), opacity .24s var(--ease-out), -webkit-text-stroke-width .24s var(--ease-out)}.hero[data-channel=no-drums] .hero-accent{color:#0000;-webkit-text-stroke-width:1.5px}.hero[data-channel=solo-drums] h1>span:not(.hero-accent){opacity:.28}.hero-copy{flex-direction:column;align-items:flex-start;gap:24px;display:flex}.hero-kicker{border-radius:var(--radius);max-width:100%;min-height:44px;font-size:var(--text-14);color:var(--ink);background:#bae79114;border:1px solid #bae79173;align-items:center;gap:10px;padding:8px 14px;line-height:1.3;display:inline-flex}.hero-kicker-dot{background:var(--sage);border-radius:50%;flex:none;width:7px;height:7px}.hero-kicker-text{text-wrap:balance}@media (width>=640px){.hero-kicker-text{white-space:nowrap}}@media (width<=420px){.hero-kicker{font-size:var(--text-13);gap:8px}}.hero-sub{max-width:44ch;color:var(--ink-2);font-size:clamp(.9375rem,.86rem + .35vw,1.125rem)}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:4px;display:flex}.hero-actions>a{white-space:nowrap}.hero-micro{font-size:var(--text-12);color:var(--ink-3);margin-top:-4px}@media (width>=960px){.hero-actions>a{min-height:52px;padding-inline:26px}}@media (width<=520px){.hero-copy{gap:18px}.hero-actions{width:100%}.hero-actions>a{flex:1 1 0;min-width:0;padding-inline:12px}}@media (width<=420px){.hero-cta-more{display:none}}.phone-pill{visibility:hidden;opacity:0}.phone-pill[data-shown]{visibility:visible;opacity:1;animation:ph-fade .24s var(--ease-out) both}.phone-pill.hero-pill{margin-top:-4px;display:none}@media (width>=960px){.phone-pill.hero-pill{display:inline-flex}.phone-pill.phone-pill--stage{display:none}}@media (prefers-reduced-motion:no-preference){@keyframes hero-rise{0%{opacity:0;transform:translateY(12px)}}.hero-kicker,.hero-copy h1>span,.hero-sub,.hero-actions,.hero-micro{animation:hero-rise .48s var(--ease-out) var(--d,0s) both}}.phone-stage{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:460px;display:flex}.phone-fit{justify-content:center;width:100%;display:flex}@media (width<=959.98px){.phone-fit{max-width:380px}}.phone-frame{--s:1;--bezel:10px;border-radius:calc(var(--s) * 40px + var(--bezel));animation:ph-rise .48s var(--ease-out) both;background:linear-gradient(158deg,#31362a 0%,#1b1d16 34%,#0f100d 100%);flex:none;position:relative;box-shadow:inset 0 1px #fff3,inset 0 0 0 1px #ffffff0d,0 0 0 1px #080907,0 24px 60px #00000080}@keyframes ph-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.phone-glass{isolation:isolate;border-radius:calc(var(--s) * 34px);clip-path:inset(0 round calc(var(--s) * 34px));background:var(--bg);position:absolute;overflow:hidden}.phone-rim{z-index:1;pointer-events:none;border-radius:calc(var(--s) * 34px);position:absolute;box-shadow:inset 0 0 0 1px #000}.phone-screen{transform-origin:0 0;width:360px;height:780px;font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.4;position:absolute;top:0;left:0;overflow:hidden}.phone-screen :focus-visible{outline-offset:2px}.phone-glare{z-index:40;pointer-events:none;background:linear-gradient(112deg,#ffffff0f 0%,#fff0 26% 72%,#ffffff06 100%);position:absolute;inset:0}.phone-hole{z-index:41;pointer-events:none;left:50%;top:calc(var(--bezel) + var(--s) * 8px);width:calc(var(--s) * 11px);height:calc(var(--s) * 11px);margin-left:calc(var(--s) * -5.5px);box-shadow:0 0 0 calc(var(--s) * 1.5px) #1e211a, inset 0 1px 2px #000000e6;background:#040504;border-radius:50%;position:absolute}.phone-power{z-index:2;right:-3px;top:calc(var(--bezel) + var(--s) * 160px);width:4px;height:calc(var(--s) * 68px);transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-swap) var(--ease-out);background:linear-gradient(#3b4132,#1b1e16);border-radius:0 2px 2px 0;position:absolute;box-shadow:inset 0 1px #ffffff29}.phone-power:before{content:"";position:absolute;inset:-14px -10px}@media (width>=700px){.phone-power:before{inset:-14px -16px -14px -12px}}.phone-power:hover{background:linear-gradient(#4d5540,#272b20)}.phone-power:active{transform:translate(-1px)}.phone-skip:not(:focus){clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.phone-skip{z-index:50;border-radius:var(--radius);background:var(--sage);color:var(--on-sage);padding:10px 14px;font-size:14px;font-weight:600;position:absolute;top:14px;left:14px}.phone-caption{min-width:min(340px,100%);font-size:var(--text-12);color:var(--ink-3);justify-content:space-between;align-items:flex-start;gap:16px;line-height:1.45;display:flex}.phone-caption p{text-wrap:pretty;max-width:34ch}.phone-reset{font-size:var(--text-12);color:var(--ink-2);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);flex:none;padding:0;font-weight:600;position:relative}.phone-reset:after{content:"";position:absolute;inset:-14px -10px}.phone-reset:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.phone-hint{font-size:var(--text-13);color:var(--sage);animation:ph-fade .2s var(--ease-out) both;font-weight:600}.phone-pill{min-height:40px;font-size:var(--text-13);color:var(--sage);transition:background-color var(--dur-swap) var(--ease-out), border-color var(--dur-swap) var(--ease-out);border:1px solid #bae7916b;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-weight:600;display:inline-flex}.phone-pill:hover{background:#bae79114;border-color:#bae791b3}.phone-pill svg{animation:ph-cue 1.6s var(--ease-in-out) 1s infinite}@keyframes ph-cue{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes ph-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.ph-screen{background:var(--bg);animation:ph-in var(--dur-screen) var(--ease-out) both;transition:filter .24s var(--ease-out), transform .24s var(--ease-out);flex-direction:column;padding-top:24px;display:flex;position:absolute;inset:0}@keyframes ph-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.phone-screen[data-sleeping] .ph-screen{filter:brightness(.28)saturate(.7);transform:scale(.985)}.ph-status{z-index:30;height:24px;color:var(--ink);pointer-events:none;justify-content:space-between;align-items:center;padding:0 22px 0 26px;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;left:0;right:0}.ph-status-icons{align-items:center;gap:6px;display:inline-flex}.ph-status-left{align-items:center;gap:8px;display:inline-flex}.ph-status-demo{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);border:1px solid #f1f0eb59;border-radius:3px;padding:1px 6px;font-size:11px;font-weight:600}.ph-gesture{z-index:30;pointer-events:none;background:#f1f0eb80;border-radius:2px;width:112px;height:4px;margin-left:-56px;position:absolute;bottom:7px;left:50%}.ph-appbar{flex:none;grid-template-columns:1fr auto 1fr;align-items:center;height:48px;padding:0 8px;display:grid}.ph-appbar-title{letter-spacing:-.01em;color:var(--ink);text-align:center;font-size:15px;font-weight:600}.ph-appbar-title-quiet{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-weight:500;overflow:hidden}.ph-appbar-end{justify-self:end}.ph-back{min-height:48px;color:var(--ink-2);border-radius:var(--radius);justify-self:start;align-items:center;gap:1px;padding:0 10px 0 2px;font-size:15px;font-weight:500;display:inline-flex}.ph-back:hover{color:var(--ink)}.ph-appbar-brand{justify-content:space-between;align-items:center;padding:0 18px 0 16px;display:flex}.ph-brand{letter-spacing:-.03em;white-space:nowrap;font-size:21px;font-weight:700;line-height:1}.ph-badge{border:1px solid var(--line-strong);border-radius:var(--radius);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:3px 9px;font-size:12px;font-weight:600}.ph-primary{background:var(--sage);width:100%;height:54px;color:var(--on-sage);letter-spacing:-.01em;transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-swap) var(--ease-out), opacity var(--dur-swap) var(--ease-out);border-radius:6px;justify-content:center;align-items:center;font-size:16px;font-weight:640;display:inline-flex;box-shadow:inset 0 1px #ffffff59,0 8px 20px #00000059}.ph-primary:hover{background:#c8f0a3}.ph-primary:active{transform:scale(.98)}.ph-primary:disabled{opacity:.6;background:var(--sage);transform:none}.ph-text-btn{min-height:44px;color:var(--sage);border-radius:var(--radius);padding:0 14px;font-size:14px;font-weight:600;position:relative}.ph-text-btn:hover{color:#d3f5b3}.ph-icon-btn{width:44px;height:44px;color:var(--ink-3);border-radius:var(--radius);place-items:center;display:grid}.ph-icon-btn:hover{color:var(--ink)}.ph-chips{flex-wrap:wrap;gap:6px;display:flex}.ph-chip{border:1px solid var(--line-strong);border-radius:var(--radius);letter-spacing:.01em;height:26px;color:var(--ink-2);background:#ffffff06;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex;position:relative}.ph-chip-license{color:var(--sage);cursor:pointer;transition:background-color var(--dur-swap) var(--ease-out), border-color var(--dur-swap) var(--ease-out);border-color:#bae7916b}.ph-chip-license:after{content:"";position:absolute;inset:-9px -3px}.ph-chip-license:hover{background:#bae79117;border-color:#bae791bf}.ph-library{overflow:hidden}.ph-library:before{content:"";pointer-events:none;background:repeating-radial-gradient(circle at 50% 118%,#bae7911c 0 1px,#0000 1px 15px);height:62%;position:absolute;inset:auto -20px 0;-webkit-mask-image:linear-gradient(#0000 8%,#000 90%);mask-image:linear-gradient(#0000 8%,#000 90%)}.ph-library>*{position:relative}.ph-library-head{flex:none;padding:10px 20px 14px}.ph-library-head h2{letter-spacing:-.04em;font-size:32px;font-weight:600;line-height:1.05}.ph-library-head p{max-width:30ch;color:var(--ink-3);margin-top:8px;font-size:14px}.ph-tracklist{gap:4px;padding:0 6px;display:grid}.ph-row{text-align:left;width:100%;min-height:96px;transition:background-color var(--dur-swap) var(--ease-out), transform var(--dur-press) var(--ease-out);border-radius:10px;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px 8px 10px 10px;display:grid}.ph-row:hover{background:var(--surface)}.ph-row:active{transform:scale(.985)}.ph-thumb{border-radius:9px;width:68px;height:68px;box-shadow:inset 0 0 0 1px #ffffff1a}.ph-thumb .cover-rings{opacity:.85}.ph-row-text{gap:3px;min-width:0;display:grid}.ph-row-title{letter-spacing:-.015em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;overflow:hidden}.ph-row-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ph-row-groove{align-items:center;gap:10px;margin-top:4px;display:flex}.ph-print{flex:none}.ph-print-hit{fill:var(--ph-accent,var(--sage))}.ph-print-ghost{fill:var(--ink-4);opacity:.55}.ph-row-bpm{color:var(--ink-4);font-size:12px}.ph-row-state{justify-content:flex-end;align-items:center;gap:8px;min-width:44px;display:inline-flex}.ph-row-action{border-radius:var(--radius);color:var(--sage);transition:background-color var(--dur-swap) var(--ease-out);border:1px solid #bae7916b;padding:6px 9px;font-size:13px;font-weight:600}.ph-row:hover .ph-row-action{background:#bae7911a}.ph-row-action-warn{color:var(--amber);border-color:#f59e0b80}.ph-bars{fill:var(--ink-3)}.ph-row-check{background:var(--sage);width:20px;height:20px;color:var(--on-sage);border-radius:50%;place-items:center;display:grid}.ph-row[data-status=ready] .ph-bars{fill:var(--sage)}.ph-ring{place-items:center;width:36px;height:36px;display:grid;position:relative}.ph-ring svg{position:absolute;inset:0}.ph-ring-track{stroke:var(--line-strong)}.ph-ring-fill{stroke:var(--amber);transition:stroke-dashoffset .12s linear}.ph-ring b{color:var(--ink-2);font-size:12px;font-weight:600;position:relative}.ph-preview{box-shadow:inset 0 0 0 1px var(--line), inset 0 1px 0 #ffffff0d;background:linear-gradient(#181b14eb,#111210f5);border-radius:14px;flex:none;justify-items:center;gap:8px;margin:auto 8px 26px;padding:12px 4px 10px;display:grid}.ph-preview-head{align-items:center;gap:10px;width:100%;padding-inline:8px;display:flex}.ph-preview-cover{border-radius:8px;flex:none;width:36px;height:36px;box-shadow:inset 0 0 0 1px #ffffff1a}.ph-preview-text{min-width:0;line-height:1.2;display:grid}.ph-preview-text b{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.ph-preview-text span{color:var(--ph-accent,var(--sage));animation:ph-fade .2s var(--ease-out) both;font-size:12px;font-weight:600}.ph-preview-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-left:auto;font-size:12px;font-weight:600}.ph-preview-lanes{width:328px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .24s var(--ease-out);background:#ffffff05;border-radius:8px;overflow:hidden}.ph-preview-lanes[data-channel=solo-drums]{box-shadow:inset 0 0 0 1px #bae79166}.ph-preview-note{color:var(--ink-3);text-align:center;padding-inline:8px;font-size:12px;line-height:1.35}.ph-library>.ph-nowplaying{z-index:5;background:var(--surface-2);height:56px;box-shadow:inset 0 0 0 1px var(--line-strong), 0 10px 24px #0006;animation:ph-fade .24s var(--ease-out) both;border-radius:12px;align-items:center;gap:4px;padding:0 6px 0 8px;display:flex;position:absolute;bottom:20px;left:12px;right:12px}.ph-np-open{text-align:left;flex:1;align-items:center;gap:10px;min-width:0;height:100%;display:flex}.ph-np-cover{border-radius:6px;flex:none;width:40px;height:40px}.ph-np-text{min-width:0;display:grid}.ph-np-label{letter-spacing:.08em;text-transform:uppercase;color:var(--sage);font-size:12px;font-weight:600}.ph-np-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.ph-np-toggle{width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.ph-np-toggle:hover{background:#ffffff0f}.ph-sheet-layer{z-index:10;align-items:flex-end;display:flex;position:absolute;inset:0}.ph-scrim{animation:ph-fade-plain .28s var(--ease-out) both;background:#080907a8;position:absolute;inset:0}@keyframes ph-fade-plain{0%{opacity:0}to{opacity:1}}.ph-sheet{background:var(--bg-raised);width:100%;max-height:94%;animation:ph-sheet-up var(--dur-sheet) var(--ease-out) both;border-radius:20px 20px 0 0;flex-direction:column;gap:14px;padding:8px 20px 34px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff17,0 -16px 40px #00000080}@keyframes ph-sheet-up{0%{transform:translateY(100%)}to{transform:none}}.ph-sheet-grip{background:var(--line-strong);border-radius:2px;align-self:center;width:36px;height:4px}.ph-appbar-sheet{height:40px;margin:-4px -14px -6px;display:flex}.ph-sheet-cover{border-radius:14px;align-self:center;width:188px;height:188px;overflow:hidden;box-shadow:0 14px 34px #00000080,inset 0 0 0 1px #ffffff1a}.ph-sheet-cover .cover{width:100%;height:100%}.ph-sheet-text{justify-items:start;gap:4px;display:grid}.ph-sheet-text h2{letter-spacing:-.04em;font-size:28px;font-weight:600;line-height:1.08}.ph-sheet-artist{color:var(--ink-2);margin-bottom:8px;font-size:15px}.ph-sheet-actions{gap:8px;margin-top:6px;display:grid}.ph-note{color:var(--ink-3);text-align:center;font-size:13px}.ph-note-size{margin-top:-2px}.ph-credit-layer{z-index:30;align-items:flex-end;display:flex;position:absolute;inset:0}.ph-credit{background:var(--surface);width:100%;max-height:74%;animation:ph-sheet-up var(--dur-sheet) var(--ease-out) both;border-radius:18px 18px 0 0;padding:8px 20px 36px;position:relative;overflow:auto;box-shadow:inset 0 1px #ffffff17,0 -16px 40px #0000008c}.ph-credit header{justify-content:space-between;align-items:center;margin-right:-12px;display:flex}.ph-credit h3{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:13px;font-weight:600}.ph-credit-text{color:var(--ink-2);overflow-wrap:anywhere;font-size:14px;line-height:1.55}.ph-credit-links{color:var(--ink-3);margin-top:14px;font-size:13px}.ph-credit a{color:var(--sage);text-underline-offset:3px;-webkit-text-decoration:underline #bae79173;text-decoration:underline #bae79173}.ph-credit a:hover{-webkit-text-decoration-color:var(--sage);text-decoration-color:var(--sage)}.ph-prep-cover{border-radius:16px;flex:none;align-self:center;width:172px;height:172px;margin-top:14px;overflow:hidden;box-shadow:0 16px 40px #00000080,inset 0 0 0 1px #ffffff1a}.ph-prep-cover .cover{width:100%;height:100%}.ph-prep-head{text-align:center;flex:none;justify-items:center;gap:6px;margin-top:22px;display:grid}.ph-prep-head h2{letter-spacing:-.03em;font-size:22px;font-weight:600;line-height:1.1}.ph-prep-stage{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;display:inline-flex}.ph-prep-stage i{background:var(--amber);width:7px;height:7px;animation:ph-blink 1.2s var(--ease-in-out) infinite;border-radius:50%}.ph-preparing[data-ready] .ph-prep-stage i{background:var(--sage);animation:none}@keyframes ph-blink{0%,to{opacity:1}50%{opacity:.3}}.ph-prep-overall{flex:none;justify-items:center;gap:10px;margin:18px 28px 0;display:grid}.ph-prep-pct{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--ink);font-size:56px;font-weight:300;line-height:1}.ph-prep-pct small{letter-spacing:0;color:var(--ink-3);margin-left:2px;font-size:20px;font-weight:400}.ph-meter{background:var(--line);border-radius:2px;width:100%;height:4px;overflow:hidden}.ph-meter i{background:var(--amber);transform-origin:0;width:100%;height:100%;transition:transform .12s linear, background-color .24s var(--ease-out);border-radius:2px;display:block}.ph-preparing[data-ready] .ph-meter i{background:var(--sage)}.ph-prep-rows{flex:none;gap:14px;margin:22px 20px 0;display:grid}.ph-prep-row{gap:7px;display:grid}.ph-prep-row-top{justify-content:space-between;align-items:baseline;display:flex}.ph-prep-row-name{letter-spacing:-.01em;font-size:15px;font-weight:600}.ph-prep-row-state{color:var(--ink-4);transition:color var(--dur-swap) var(--ease-out);font-size:13px;font-weight:500}.ph-prep-row[data-state=separating] .ph-prep-row-state{color:var(--amber)}.ph-prep-row[data-state=done] .ph-prep-row-state{color:var(--sage)}.ph-prep-row-bar{background:var(--line);border-radius:2px;height:3px;overflow:hidden}.ph-prep-row-bar i{background:var(--amber);transform-origin:0;width:100%;height:100%;transition:transform .12s linear, background-color .24s var(--ease-out);display:block}.ph-prep-row[data-state=done] .ph-prep-row-bar i{background:var(--sage)}.ph-prep-foot{flex:none;align-content:start;justify-items:center;gap:2px;min-height:90px;margin:12px 20px 0;display:grid}.ph-prep-slow{color:var(--ink-3);text-align:center;min-height:20px;font-size:13px}.ph-lock{animation:ph-wake .24s var(--ease-out) both;cursor:default;background:#0a0b09;padding-top:0;overflow:hidden}@keyframes ph-wake{0%{opacity:.4;filter:brightness(.5);transform:scale(.985)}to{opacity:1;filter:none;transform:none}}.ph-lock-wall{filter:blur(30px)saturate(1.15)brightness(.66);transition:filter .7s var(--ease-out);position:absolute;inset:-60px;transform:scale(1.1)}.ph-lock-wall .cover{width:100%;height:100%}.ph-lock[data-card=ready] .ph-lock-wall{filter:blur(30px)saturate(1.25)brightness(.85)}.ph-lock-shade{background:repeating-linear-gradient(90deg,#f1f0eb0d 0 1px,#0000 1px 72px),linear-gradient(#0a0b094d,#0a0b09bd);position:absolute;inset:0}.ph-lock-clock{color:var(--ink-2);justify-items:center;gap:8px;display:grid;position:absolute;top:74px;left:0;right:0}.ph-lock-clock .mono{letter-spacing:-.06em;color:var(--ink);font-size:96px;font-weight:300;line-height:1}.ph-notif{text-align:left;-webkit-backdrop-filter:blur(18px)saturate(1.2);animation:ph-notif-in .36s var(--ease-out) both;transition:background-color var(--dur-screen) var(--ease-out);background:#24281ec7;border-radius:20px;gap:4px;padding:12px 16px 16px;display:grid;position:absolute;top:262px;left:12px;right:12px;box-shadow:inset 0 0 0 1px #ffffff17,inset 0 1px #ffffff1f,0 14px 34px #00000073}.ph-notif-pct{color:var(--ink-3);margin-left:auto;font-size:12px}.ph-notif[data-state=ready]{animation:ph-notif-pulse .36s var(--ease-out) both;background:#303a26db}.ph-notif[data-state=failed]{background:#342814db}@keyframes ph-notif-in{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}@keyframes ph-notif-pulse{0%{transform:scale(1.025)}to{transform:none}}.ph-notif-head{color:var(--ink-3);align-items:center;gap:7px;font-size:12px;font-weight:500;display:flex}.ph-notif-icon{border-radius:6px;place-items:center;width:20px;height:20px;display:grid;overflow:hidden}.ph-notif-app{color:var(--ink-2);font-weight:600}.ph-notif-title,.ph-notif-body{animation:ph-fade .26s var(--ease-out) both}.ph-notif-title{letter-spacing:-.015em;color:var(--ink);margin-top:4px;font-size:16px;font-weight:600}.ph-notif[data-state=failed] .ph-notif-title{color:var(--amber)}.ph-notif-body{color:var(--ink-2);font-size:14px;line-height:1.4}.ph-notif-bar{background:#ffffff24;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.ph-notif-bar i{background:var(--amber);transform-origin:0;width:100%;height:100%;transition:transform .12s linear;display:block}.ph-lock-quick{width:48px;height:48px;color:var(--ink-2);pointer-events:none;background:#0a0b096b;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:34px;box-shadow:inset 0 0 0 1px #ffffff1a}.ph-lock-quick-l{left:32px}.ph-lock-quick-r{right:32px}.ph-lock-foot{text-align:center;color:var(--ink-3);font-size:13px;position:absolute;bottom:38px;left:0;right:0}.ph-error-body{text-align:center;flex:1;align-content:center;justify-items:center;gap:20px;padding:0 32px 84px;display:grid}.ph-error-icon{width:58px;height:58px;color:var(--amber);background:#f59e0b1f;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #f59e0b66}.ph-error-body h2{letter-spacing:-.025em;max-width:22ch;font-size:22px;font-weight:600;line-height:1.2}.ph-error-body .ph-primary{max-width:240px}.ph-banner{z-index:20;-webkit-backdrop-filter:blur(14px);animation:ph-banner-in .52s var(--ease-out) both;background:#262b20f2;border-radius:18px;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 4px 8px 10px;display:grid;position:absolute;top:28px;left:8px;right:8px;box-shadow:inset 0 0 0 1px #ffffff1a,inset 0 1px #ffffff1f,0 16px 34px #00000080}@keyframes ph-banner-in{0%{opacity:0;transform:translateY(-130%)}62%{opacity:1;transform:translateY(0)scale(1)}82%{transform:scale(1.02)}to{transform:none}}.ph-banner-art{border-radius:9px;width:40px;height:40px}.ph-banner-text{min-width:0;display:grid}.ph-banner-title{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.ph-banner[data-kind=failed] .ph-banner-title{color:var(--amber)}.ph-banner-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ph-banner-act{border-radius:var(--radius);background:var(--sage);height:36px;color:var(--on-sage);transition:transform var(--dur-press) var(--ease-out);padding:0 14px;font-size:14px;font-weight:640;position:relative}.ph-banner-act:after{content:"";position:absolute;inset:-4px -2px}.ph-banner-act:active{transform:scale(.97)}.ph-banner[data-kind=failed] .ph-banner-act{background:var(--amber)}.ph-banner-x{width:36px;height:44px;color:var(--ink-3);place-items:center;display:grid}.ph-banner-x:hover{color:var(--ink)}.cover-disc{transform-origin:100px 100px}.cover[data-split] .cover-rings{opacity:.3}.cover[data-split] .cover-disc{animation:ph-detach .52s var(--ease-out) forwards;filter:drop-shadow(-3px 7px 9px #0000008c)}@keyframes ph-detach{0%{transform:translate(0)scale(1)}to{transform:translate(-5px,-8px)scale(1.34)}}.ph-ripple{z-index:25;pointer-events:none;width:0;height:0;position:absolute}.ph-ripple i{box-sizing:border-box;border:2.5px solid var(--ph-accent,var(--sage));opacity:0;width:56px;height:56px;animation:ph-ripple 1.4s var(--ease-out) .16s both;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.ph-ripple i:nth-child(2){border-width:1.5px;animation-delay:.33s}.ph-ripple i:nth-child(3){border-width:1.5px;animation-delay:.52s}.ph-ripple:before{content:"";opacity:0;width:72px;height:72px;animation:ph-bloom 1s var(--ease-out) .14s both;background:radial-gradient(closest-side,#bae7918c,#0000);border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}@keyframes ph-ripple{0%{opacity:1;width:56px;height:56px}55%{opacity:.55}to{opacity:0;width:980px;height:980px}}@keyframes ph-bloom{0%{opacity:.9;width:72px;height:72px}to{opacity:0;width:520px;height:520px}}:where(.cover){width:100%;height:100%;display:block}.cover-rings,.cover-disc-halves,.cover-disc-hollow,.cover-disc-lit,.cover-disc-beam{transition:opacity .24s var(--ease-out)}.cover-rings-spin{transform-origin:100px 100px}.cover[data-spin] .cover-rings-spin{animation:30s linear infinite ph-spin}@keyframes ph-spin{to{transform:rotate(360deg)}}.cover-disc-wrap{transform-origin:100px 100px;transform:scale(calc(1 + var(--energy,0) * .02))}.cover-disc-hollow{opacity:0}.cover-pulse{transform-origin:100px 100px;opacity:calc(var(--snare,0) * .65);transform:scale(calc(1 + (1 - var(--snare,0)) * 1.7))}.ph-cover-card .cover-disc-wrap{transform:scale(calc(1 + var(--energy,0) * .02 + var(--kick,0) * .07))}.cover[data-channel=no-drums] .cover-disc-halves{opacity:0}.cover[data-channel=no-drums] .cover-disc-hollow{opacity:.95}.cover[data-channel=no-drums] .cover-disc-beam{opacity:.3}.cover[data-channel=solo-drums] .cover-rings{opacity:.12}.cover[data-channel=solo-drums] .cover-disc-lit{opacity:.9}.cover[data-channel=solo-drums] .cover-disc{filter:drop-shadow(0 4px 10px #00000073)}.ph-player{padding-bottom:20px}.ph-cover-card{border-radius:14px;flex:1 1 0;min-height:120px;max-height:204px;margin:2px 16px 0;position:relative;overflow:hidden;box-shadow:0 12px 30px #00000073,inset 0 0 0 1px #ffffff17}.ph-cover-tag{border-radius:var(--radius);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:#0a0b09a8;align-items:center;gap:7px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:10px;left:10px}.ph-cover-tag i{background:var(--ph-accent,var(--sage));border-radius:50%;width:7px;height:7px}.ph-opening{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:#0a0b0999;place-items:center;font-size:13px;font-weight:600;display:grid;position:absolute;inset:0}.ph-trackhead{flex:none;gap:1px;margin:12px 20px 0;display:grid}.ph-track-title{letter-spacing:-.03em;font-size:21px;font-weight:600;line-height:1.15}.ph-track-artist{color:var(--ink-3);font-size:14px}.ph-trackhead .ph-chips{margin-top:8px}.ph-lanes{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .24s var(--ease-out);border-radius:8px;flex:none;margin:10px 16px 0;overflow:hidden}.ph-lanes[data-channel=solo-drums]{box-shadow:inset 0 0 0 1px #bae79166}.ph-lanes-canvas{width:328px;display:block}.ph-timeline{flex:none;margin:4px 16px 0}.ph-flags{height:8px;position:relative}.ph-flag{background:var(--ink);clip-path:polygon(0 0,100% 28%,24% 58%,24% 100%,0 100%);opacity:.85;width:9px;height:8px;margin-left:-1px;position:absolute;bottom:0}.ph-wave{cursor:ew-resize;touch-action:pan-y;border-radius:4px;align-items:center;height:44px;display:grid;position:relative}.ph-wave-layer{pointer-events:none;position:absolute;inset:4px 0}.ph-wf{width:100%;height:100%;transition:opacity .24s var(--ease-out);position:absolute;inset:0}.ph-wf-orig{fill:var(--ink-4)}.ph-wf-drums{fill:var(--ph-accent,var(--sage))}.ph-wave-dim .ph-wf-orig{opacity:.45}.ph-wave-dim .ph-wf-drums{opacity:.5}.ph-wave-lit .ph-wf-orig{fill:var(--ink-2);opacity:.95}.ph-wave-lit .ph-wf-drums{opacity:1}.ph-timeline[data-channel=no-drums] .ph-wf-drums,.ph-timeline[data-channel=solo-drums] .ph-wf-orig{opacity:.15}.ph-loop-band{border-inline:2px solid var(--sage);pointer-events:none;background:#bae79124;border-radius:2px;position:absolute;top:2px;bottom:2px}.ph-playhead{z-index:2;pointer-events:none;will-change:transform;width:100%;position:absolute;top:0;bottom:0;left:0}.ph-playhead i{background:var(--sage);border-radius:1px;width:2px;position:absolute;top:1px;bottom:1px;left:-1px;box-shadow:0 0 10px #bae7918c}.ph-wave:focus-visible{outline-offset:0}.ph-sections{gap:2px;height:30px;margin-top:2px;display:flex}.ph-section{text-align:left;letter-spacing:.01em;min-width:0;color:var(--ink-3);transition:background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out), box-shadow var(--dur-swap) var(--ease-out);background:#ffffff0d;border-radius:4px;flex:1 1 0;padding:0 6px;font-size:12px;font-weight:600;position:relative;box-shadow:inset 0 -2px #ffffff1a}.ph-section span{white-space:nowrap;display:block;overflow:hidden}.ph-section:after{content:"";position:absolute;inset:-7px 0}.ph-section[data-kind=groove]{background:#bae7911f;box-shadow:inset 0 -2px #bae79180}.ph-section[data-kind=fill]{color:var(--ink-2);background:#f1f0eb33;box-shadow:inset 0 -2px #f1f0eb99}.ph-section[data-kind=break]{background:repeating-linear-gradient(135deg,#ffffff1a 0 3px,#ffffff08 3px 7px);box-shadow:inset 0 -2px #ffffff38}.ph-section[data-kind=build]{background:linear-gradient(90deg,#bae7910a,#bae79142);box-shadow:inset 0 -2px #bae79180}.ph-section:hover{color:var(--ink)}.ph-section[data-current=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--sage);background-color:#bae79138}.ph-section[data-kind=break][data-current=true]{box-shadow:inset 0 -2px 0 var(--ink-2);background:repeating-linear-gradient(135deg,#fff3 0 3px,#ffffff0f 3px 7px)}.ph-times{height:20px;color:var(--ink-3);justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:12px;line-height:16px;display:flex}.ph-mini-total{color:var(--ink-4)}.ph-times .ph-loop-chip{min-width:0;max-width:62%;color:var(--sage);animation:ph-fade .2s var(--ease-out) both;align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.ph-loop-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ph-switch-wrap{flex:none;margin:4px 16px 0;position:relative}.ph-switch{background:var(--surface);height:54px;box-shadow:inset 0 0 0 1px var(--line);border-radius:8px;grid-template-columns:repeat(3,1fr);padding:3px;display:grid;position:relative}.ph-switch-thumb{background:var(--sage);width:calc(33.3333% - 2px);transition:transform .26s var(--ease-out);border-radius:5px;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:inset 0 1px #fff6,0 4px 12px #00000059}.ph-switch[data-index="1"] .ph-switch-thumb{transform:translate(100%)}.ph-switch[data-index="2"] .ph-switch-thumb{transform:translate(200%)}.ph-switch-seg{z-index:1;letter-spacing:-.01em;color:var(--ink-2);white-space:nowrap;transition:color var(--dur-swap) var(--ease-out);border-radius:5px;justify-content:center;align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:inline-flex;position:relative}.ph-switch-seg:hover{color:var(--ink)}.ph-switch-seg[aria-checked=true]{color:var(--on-sage)}.ph-coach{border-radius:var(--radius);background:var(--ink);color:var(--bg);white-space:nowrap;pointer-events:none;animation:ph-coach-in .24s var(--ease-out) both;padding:6px 12px;font-size:13px;font-weight:640;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 8px 20px #0006}.ph-coach:after{content:"";border:5px solid #0000;border-top-color:var(--ink);margin-left:-5px;position:absolute;top:100%;left:50%}@keyframes ph-coach-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.ph-switch-wrap[data-coach] .ph-switch-seg[data-channel=no-drums]:after{content:"";box-shadow:inset 0 0 0 2px var(--sage);animation:ph-blink 1.4s var(--ease-in-out) infinite;border-radius:5px;position:absolute;inset:0}.ph-transport{flex:none;grid-template-columns:1fr auto 1fr;align-items:center;height:72px;margin:8px 16px 0;display:grid}.ph-sidebtn{width:56px;height:56px;color:var(--ink-2);letter-spacing:.01em;transition:background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out), box-shadow var(--dur-swap) var(--ease-out), transform var(--dur-press) var(--ease-out);border-radius:12px;align-content:center;justify-items:center;gap:2px;font-size:12px;font-weight:600;display:grid}.ph-sidebtn:hover{color:var(--ink);background:#ffffff0f}.ph-sidebtn:active{transform:scale(.94)}.ph-restart{justify-self:start}.ph-loopbtn{justify-self:end}.ph-loopbtn[data-active]{color:var(--sage);background:#bae7911a;box-shadow:inset 0 0 0 1px #bae7918c}.ph-play{background:var(--sage);width:72px;height:72px;color:var(--on-sage);transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-swap) var(--ease-out), opacity var(--dur-swap) var(--ease-out);border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff73,0 10px 24px #00000073}.ph-play:hover{background:#c8f0a3}.ph-play:active{transform:scale(.95)}.ph-play:disabled{opacity:.45;transform:none}.ph-play svg{margin-left:0}.ph-toast{z-index:70;background:var(--surface-2);max-width:min(380px,100vw - 32px);box-shadow:inset 0 0 0 1px var(--line-strong), inset 0 1px 0 #ffffff14, 0 18px 44px #0000008c;animation:ph-toast-in .36s var(--ease-out) both;border-radius:14px;align-items:center;gap:12px;padding:10px 6px 10px 10px;display:flex;position:fixed;bottom:84px;right:24px}@keyframes ph-toast-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.ph-toast-art{border-radius:8px;flex:none;width:38px;height:38px}.ph-toast-text{min-width:0;font-size:var(--text-14);letter-spacing:-.01em;flex:1;font-weight:600}.ph-toast-act{border-radius:var(--radius);background:var(--sage);height:36px;color:var(--on-sage);font-size:var(--text-14);transition:transform var(--dur-press) var(--ease-out);flex:none;padding:0 14px;font-weight:640}.ph-toast-act:active{transform:scale(.97)}.ph-toast-x{width:40px;height:44px;color:var(--ink-3);flex:none;place-items:center;display:grid}.ph-toast-x:hover{color:var(--ink)}.ph-mini{z-index:60;padding:0 12px env(safe-area-inset-bottom,0px);background:var(--surface);box-shadow:0 -1px 0 var(--line), 0 -10px 28px #0006;animation:ph-mini-in .24s var(--ease-out) both;display:grid;position:fixed;bottom:0;left:0;right:0}.ph-mini-row{align-items:center;gap:10px;height:56px;display:flex}@keyframes ph-mini-in{0%{transform:translateY(100%)}to{transform:none}}.ph-mini-note{border-bottom:1px solid var(--line);background:#bae79112;align-items:center;gap:8px;min-height:44px;margin-inline:-12px;padding:0 6px 0 12px;display:flex}.ph-mini-note-text{min-width:0;font-size:var(--text-13);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.ph-mini-note .ph-mini-open{height:32px;font-size:var(--text-13);padding:0 14px;position:relative}.ph-mini-note .ph-mini-open:after{content:"";position:absolute;inset:-6px -4px}.ph-mini-x{width:44px;height:44px;color:var(--ink-3);flex:none;place-items:center;display:grid}.ph-mini-x:hover{color:var(--ink)}.ph-mini-art{border-radius:4px;flex:none;width:32px;height:32px}.ph-mini-title{flex:1;min-width:0;line-height:1.2;display:grid}.ph-mini-title b{font-size:var(--text-14);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.ph-mini-title span{font-size:var(--text-12);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ph-mini-notice{font-size:var(--text-14);text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.ph-mini-time{font-size:var(--text-13);color:var(--ink-2);flex:none}.ph-mini-open{border-radius:var(--radius);background:var(--sage);height:40px;color:var(--on-sage);font-size:var(--text-14);flex:none;padding:0 20px;font-weight:640}.ph-mini-play{background:var(--sage);width:44px;height:44px;color:var(--on-sage);transition:transform var(--dur-press) var(--ease-out), opacity var(--dur-swap) var(--ease-out);border-radius:50%;flex:none;place-items:center;display:grid}.ph-mini-play:active{transform:scale(.95)}.ph-mini-play:disabled{opacity:.45}.ph-switch-compact{--seg:44px;grid-template-columns:repeat(3, var(--seg));flex:none;height:44px}.ph-switch-compact .ph-switch-thumb{width:var(--seg);top:3px;bottom:3px}.ph-switch-compact .ph-switch-seg{width:var(--seg);height:38px}.ph-switch-lbl{font-size:var(--text-13);display:none}.ph-switch-compact .ph-switch-lbl{font-size:var(--text-12);letter-spacing:0;font-weight:600;display:inline}.ph-switch-compact{--seg:74px}.ph-switch-compact .ph-glyph{display:none}@media (width>=720px){.ph-switch-compact{--seg:108px}.ph-switch-compact .ph-glyph{display:block}.ph-switch-compact .ph-switch-lbl{font-size:var(--text-13)}}@media (width<=519.98px){.ph-mini-time{display:none}}@media (width<=430px){.ph-mini-title{display:none}.ph-mini-row{justify-content:space-between}}@media (width<=359.98px){.ph-mini-art{display:none}.ph-switch-compact{--seg:70px}}@media (width>=1100px){.ph-mini{width:min(760px,100vw - 48px);box-shadow:inset 0 0 0 1px var(--line-strong), 0 18px 44px #0000008c;border-radius:14px;margin-left:calc(min(760px,100vw - 48px)/-2);bottom:16px;left:50%;right:auto}}body:has(.ph-mini){padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}body:has(.ph-mini[data-stacked]){padding-bottom:calc(116px + env(safe-area-inset-bottom,0px))}@media (width>=1100px){body:has(.ph-mini){padding-bottom:88px}}.groove-section{padding-block:var(--section-y);background:var(--surface);border-block:1px solid var(--line)}.groove-layout{grid-template-columns:minmax(0,1fr);gap:36px;display:grid}.groove-intro{flex-direction:column;align-items:flex-start;gap:20px;min-width:0;display:flex}.groove-main{min-width:0}@media (width>=1200px){.groove-layout{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:clamp(48px,5vw,72px)}.groove-intro{top:calc(var(--header-h) + 32px);position:sticky}}.groove-kicker{font-size:var(--text-13);color:var(--ink-2);align-items:center;gap:10px;display:inline-flex}.groove-kicker-dot{background:var(--sage);border-radius:50%;width:7px;height:7px}.groove-early{border:1px dashed var(--sage-dim);border-radius:var(--radius);letter-spacing:.08em;text-transform:uppercase;color:var(--sage-dim);margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600}.groove-lead{max-width:52ch;color:var(--ink-2);font-size:clamp(.9375rem,.88rem + .3vw,1rem)}.groove-legend{font-size:var(--text-13);color:var(--ink-3);gap:10px;margin-top:4px;display:grid}.groove-legend li{align-items:center;gap:12px;display:flex}.lg{border-radius:var(--radius);flex:none;width:36px;height:20px;display:block}.lg--solid{border:1px solid var(--sage)}.lg--likely{border:1px dashed var(--sage-dim)}.lg--none{border:1px dotted var(--line-strong);opacity:.75}.groove-keys{flex-wrap:wrap;gap:18px 48px;display:flex}@media (width>=1200px){.groove-keys{flex-direction:column;gap:18px}.groove-legend--grid{border-top:1px solid var(--line);width:100%;max-width:340px;padding-top:18px}}.lg--cell{background:#0003;position:relative;box-shadow:inset 0 0 0 1px #f1f0eb0f}.lg--cell:after{content:"";position:absolute}.lg--hit:after{background:var(--sage-dim);border-radius:3px;inset:4px 7px}.lg--ghost:after{background:var(--ink-4);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;top:50%;left:50%}.lg--open:after{border:2px solid var(--sage-dim);border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;top:50%;left:50%}.gl-inline{display:none}@media (width<=620px){.groove-layout{gap:20px}.groove-keys{display:none}.gl-inline{font-size:var(--text-12);color:var(--ink-3);flex-wrap:wrap;gap:4px 14px;margin-top:12px;display:flex}.gl-inline span{align-items:center;gap:6px;display:inline-flex}.gl-inline .lg{width:22px;height:14px}.gl-inline .lg--hit:after{inset:3px 5px}.gl-inline .lg--ghost:after{width:4px;height:4px;margin:-2px 0 0 -2px}.gl-inline .lg--open:after{border-width:1.5px;width:9px;height:9px;margin:-4.5px 0 0 -4.5px}}.gp{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);min-width:0;box-shadow:var(--specular), var(--shadow-panel)}.gp-row{border-top:1px solid var(--line);min-width:0;padding:20px 16px}@media (width>=700px){.gp-row{padding:22px 24px}}.gtabs{border-radius:var(--radius-panel) var(--radius-panel) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.gtab{text-align:left;min-width:0;min-height:72px;color:var(--ink-3);background:var(--surface);border-right:1px solid var(--line);transition:background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);align-items:center;gap:12px;padding:12px 16px;display:flex;position:relative}.gtab:last-child{border-right:0}.gtab:hover{color:var(--ink)}.gtab[aria-selected=true]{color:var(--ink);background:var(--surface-2);box-shadow:inset 0 -2px 0 var(--sage)}.gtab[aria-disabled=true]{opacity:.5;cursor:not-allowed}.gtab:focus-visible{outline-offset:-4px}.tab-art{border-radius:var(--radius);flex:none;width:40px;height:40px}.gtab-text{gap:2px;min-width:0;display:grid}.gtab-title{font-size:var(--text-15);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.2;overflow:hidden}.gtab-sub{font-size:var(--text-12);color:var(--ink-4);gap:8px;display:flex}.gtab-sub .num{color:var(--ink-4)}.gtab-state{font-size:var(--text-12);flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.gtab-state--ready{color:var(--sage)}.gtab-state--busy,.gtab-state--error{color:var(--amber)}@media (width<=620px){.gtab{flex-direction:column;align-items:flex-start;gap:8px;min-height:0;padding:10px}.tab-art{width:28px;height:28px}.gtab-title{font-size:var(--text-13);white-space:normal;overflow:visible}.gtab-sub{display:none}.gtab-state{margin-left:0}}.gchips{gap:14px;min-width:0;display:grid}.chips-row{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex;position:relative}.chip-groove-wrap{display:contents}.chip{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg-raised);text-align:left;min-width:0;min-height:56px;color:var(--ink);flex-direction:column;justify-content:center;gap:2px;padding:8px 14px 12px;display:flex;position:relative}.chip--solid{border-color:var(--sage)}.chip--likely{border-style:dashed;border-color:var(--sage-dim)}.chip-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-size:11px;font-weight:600;line-height:1.2}.chip-value{font-size:var(--text-16);letter-spacing:-.005em;font-weight:560;line-height:1.25}.chip-likely{font-size:var(--text-13);color:var(--sage-dim);font-weight:600}.chip-unit{font-size:var(--text-12);letter-spacing:.06em;color:var(--ink-3);font-weight:600}.chip-detail{font-size:var(--text-12);color:var(--ink-3)}.chip-meter{background:#f1f0eb1a;border-radius:1px;height:2px;position:absolute;bottom:5px;left:12px;right:12px;overflow:hidden}.chip-meter i{background:var(--sage);height:100%;display:block}.chip--likely .chip-meter i{background:var(--sage-dim)}.chip--button{cursor:pointer;transition:border-color var(--dur-swap) var(--ease-out), background-color var(--dur-swap) var(--ease-out);flex:280px;padding-right:40px}.chip--button:hover,.chip--button[aria-expanded=true]{background:var(--surface)}.chip-chevron{color:var(--ink-3);transition:transform var(--dur-swap) var(--ease-out);position:absolute;top:14px;right:12px}.chip--button[aria-expanded=true] .chip-chevron{transform:rotate(180deg)}.chip-pop{z-index:6;background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:var(--radius-panel);width:min(480px,100%);box-shadow:var(--specular), 0 16px 40px #0000008c;gap:10px;padding:16px 18px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.chip-pop-title{color:var(--ink-4);font-size:11px}.chip-pop-why{font-size:var(--text-13);color:var(--ink-2);max-width:62ch;line-height:1.55}.chip-pop-id{font-size:var(--text-12);color:var(--ink-3);align-items:baseline;gap:10px;display:flex}.chip-pop-id .mono{color:var(--ink);font-size:var(--text-13)}.tags{flex-wrap:wrap;gap:6px 8px;display:flex}.tags li{border:1px solid var(--line);border-radius:var(--radius);font-size:var(--text-13);color:var(--ink-3);padding:4px 10px}.tl{--lab:34px;gap:12px;min-width:0;display:grid}.tl-head{font-size:var(--text-12);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;display:flex}.tl-key{gap:14px;display:flex}.tl-key svg{color:var(--ink-2)}.tl-key-item{align-items:center;gap:6px;display:inline-flex}.tl-key-o,.tl-key-d{border-radius:2px;width:10px;height:10px;display:inline-block}.tl-key-o{background:var(--ink-3);opacity:.45}.tl-key-d{background:var(--sage)}.tl-body{display:grid;position:relative}.tl-row{grid-template-columns:var(--lab) minmax(0, 1fr);align-items:center;display:grid;position:relative}.tl-lab{font-family:var(--font-mono);color:var(--ink-4);font-size:12px;font-weight:600}.tl-cell{min-width:0;position:relative}.tl-layer{top:0;bottom:0;left:var(--lab);pointer-events:none;position:absolute;right:0;overflow:hidden}.tl-layer--bars svg{width:100%;height:100%}.tl-layer--bars line{stroke:#f1f0eb14;stroke-width:1px}.tl-layer--playhead{z-index:4}.tl-playhead{will-change:transform;position:absolute;inset:0}.tl-playhead i{background:var(--ink);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:0}.tl-playhead i:before{content:"";border:5px solid #0000;border-top:7px solid var(--ink);border-bottom:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.tl-scrub{cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:var(--radius)}.tl-ruler{height:22px;position:relative}.tl-tick{font-size:var(--text-12);color:var(--ink-4);padding-left:5px;line-height:1;position:absolute;top:6px}.tl-wave{height:88px;position:relative}.tl-wave-draw,.tl-wave-base,.tl-wave-played{position:absolute;inset:0}.tl-wave-played{clip-path:inset(0 100% 0 0)}.tl-wave-svg{width:100%;height:100%}.wv-o rect{fill:var(--ink-3);fill-opacity:.26}.wv-d rect{fill:var(--sage-dim);fill-opacity:.82}.tl-wave-played .wv-o rect{fill:var(--ink-2);fill-opacity:.42}.tl-wave-played .wv-d rect{fill:var(--sage);fill-opacity:1}.wv-o,.wv-d{transition:opacity .24s var(--ease-out)}.tl[data-channel=no-drums] .wv-d,.tl[data-channel=solo-drums] .wv-o{opacity:.15}.tl-loop{border:2px solid var(--sage);pointer-events:none;background:#bae7911a;border-radius:3px;position:absolute;top:1px;bottom:1px}.tl-row--sections,.tl-sections{height:32px}.sec{text-align:left;white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;min-width:0;color:var(--ink);box-shadow:inset 1px 0 0 var(--surface-2), inset -1px 0 0 var(--surface-2);transition:filter var(--dur-swap) var(--ease-out);border-radius:3px;padding:0 8px;font-size:11px;font-weight:600;position:absolute;top:3px;bottom:3px}.sec:hover{filter:brightness(1.25)}.sec span{line-height:26px;display:block;overflow:hidden}.sec[data-kind=groove]{background:#bae79152}.sec[data-kind=fill]{color:var(--on-sage);background:#f1f0eb99}.sec[data-kind=break]{background:repeating-linear-gradient(135deg,#f1f0eb33 0 2px,#f1f0eb0a 2px 7px)}.sec[data-kind=build]{background:linear-gradient(90deg,#bae7910f,#bae79180)}.sec[data-kind=intro],.sec[data-kind=outro]{background:#a3a69c3d}@media (pointer:coarse),(width<=620px){.tl-row--sections,.tl-sections{height:44px}.sec{top:0;bottom:0}.sec span{line-height:44px}}.tl-row--lane,.tl-lane{height:44px}.tl-lab--pattern{color:var(--ink-3);transition:color var(--dur-swap) var(--ease-out)}.tl-row--lane[data-selected] .tl-lab--pattern{color:var(--sage)}.occ{min-width:6px;padding:0;position:absolute;top:0;bottom:0}.occ i{transition:background-color var(--dur-swap) var(--ease-out), box-shadow var(--dur-swap) var(--ease-out);background:#bae79133;border-radius:3px;position:absolute;inset:10px 1px;box-shadow:inset 0 0 0 1px #bae7916b}.tl-row--lane[data-selected] .occ i{background:#bae79157}.tl-row--lane .occ.is-now i{background:#bae79194}.tl-row--lane .occ:hover i{background:#bae79185}.tl-row--lane .occ[data-active] i{box-shadow:0 0 0 2px var(--sage);background:#bae791d9}.tl-row--fills,.tl-fills{height:28px}.tl-lab--fill{color:var(--ink-4);align-items:center;display:flex}.tl-fills{list-style:none}.tl-fills li{min-width:2px;position:absolute;top:0;bottom:0}.fill-band{background:#f1f0eb61;border-radius:2px;height:3px;position:absolute;top:18px;left:0;right:0}.fill-flag{color:var(--ink);position:absolute;top:3px;left:-1px}.occ-chips{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;gap:8px;margin-top:2px;padding-bottom:6px;display:none;overflow-x:auto}.occ-chip{scroll-snap-align:start;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg-raised);min-height:44px;font-size:var(--text-14);color:var(--ink-2);transition:background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);flex:none;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.occ-chip b{color:var(--sage);font-size:var(--text-14)}.occ-chip[aria-pressed=true]{background:var(--sage);border-color:var(--sage);color:var(--on-sage)}.occ-chip[aria-pressed=true] b{color:var(--on-sage)}@media (width<=620px){.tl{--lab:24px}.tl-head{align-content:start;min-height:40px}.tl-wave{height:64px}.occ-chips{display:flex}}.sg{gap:14px;min-width:0;display:grid}.sg-tabs{grid-template-columns:repeat(auto-fit,minmax(min(100%,152px),1fr));gap:8px;display:grid}.ptab{text-align:left;border:1px solid var(--line);border-radius:var(--radius);min-width:0;min-height:52px;font-size:var(--text-14);color:var(--ink-3);transition:border-color var(--dur-swap) var(--ease-out), background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);background:0 0;align-items:center;gap:12px;padding:6px 14px;display:flex}.ptab:hover{color:var(--ink);border-color:var(--line-strong)}.ptab>b{width:24px;height:24px;font-size:var(--text-13);color:var(--ink-2);transition:background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);background:#f1f0eb12;border-radius:3px;flex:none;place-items:center;display:grid}.ptab-text{gap:1px;min-width:0;display:grid}.ptab-label{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.ptab[aria-selected=true]{color:var(--ink);border-color:var(--sage);background:#bae79114}.ptab[aria-selected=true]>b{background:var(--sage);color:var(--on-sage)}.ptab-count{font-size:var(--text-12);color:var(--ink-4);line-height:1.2}.ptab[aria-selected=true] .ptab-count{color:var(--ink-3)}.sg-body{--lab:30px;gap:4px;min-width:0;display:grid}.sg-head,.sg-row{grid-template-columns:var(--lab) minmax(0, 1fr);align-items:center;display:grid}.sg-rows{gap:4px;display:grid;position:relative}.sg-cells{grid-template-columns:repeat(16,minmax(0,1fr));min-width:0;display:grid}.sg-step{text-align:center;font-size:var(--text-12);color:var(--ink-4);line-height:20px}.sg-step[data-beat]{color:var(--ink-2);font-weight:600}.sg-lab{font-size:var(--text-12);color:var(--ink-3);font-weight:600}.sg-cell{height:32px;transition:background-color .18s var(--ease-out);background:#0003;position:relative;box-shadow:inset 0 0 0 1px #f1f0eb0f}.sg-cell[data-beat]{box-shadow:inset 1px 0 #f1f0eb3d,inset 0 0 0 1px #f1f0eb0f}.sg-cell.is-now{background:#bae7911a}.sg-cell i{transition:background-color .18s var(--ease-out), border-color .18s var(--ease-out), transform .18s var(--ease-out);display:none;position:absolute}.sg-cell[data-k=x] i{background:var(--sage-dim);border-radius:3px;display:block;inset:5px 3px}.sg-cell[data-k=g] i{background:var(--ink-4);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;display:block;top:50%;left:50%}.sg-cell[data-k=o] i{border:2px solid var(--sage-dim);border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;display:block;top:50%;left:50%}.sg-cell.is-hit:not([data-k=\.]) i{transition:none}.sg-cell.is-hit[data-k=x] i{background:var(--ink);transform:scale(1.12)}.sg-cell.is-hit[data-k=g] i{background:var(--ink);transform:scale(1.4)}.sg-cell.is-hit[data-k=o] i{border-color:var(--ink);transform:scale(1.12)}.sg-cursor-layer{top:-2px;bottom:-2px;left:var(--lab);pointer-events:none;opacity:0;transition:opacity var(--dur-swap) var(--ease-out);position:absolute;right:0;overflow:hidden}.sg[data-live] .sg-cursor-layer{opacity:1}.sg-cursor{will-change:transform;position:absolute;inset:0}.sg-cursor i{background:var(--ink);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:0}.sg-cursor i:before{content:"";background:linear-gradient(270deg,#bae79133,#bae79100);width:4.5em;position:absolute;top:0;bottom:0;right:2px}.sg-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;min-height:48px;display:flex}.sg-status{font-size:var(--text-14);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.sg-dot{background:var(--sage);border-radius:50%;width:7px;height:7px;margin-right:2px;display:inline-block}.sg-jump{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:44px;font-size:var(--text-14);color:var(--ink);transition:border-color var(--dur-swap) var(--ease-out), transform var(--dur-press) var(--ease-out);padding:0 14px;font-weight:600}.sg-jump:hover{border-color:var(--ink-3)}.sg-jump:active{transform:scale(.98)}.sg-note{font-size:var(--text-12);color:var(--ink-4)}@media (width<=620px){.ptab{gap:10px;padding:6px 10px}.sg-body{--lab:22px}.sg-cell{height:28px}.sg-cell[data-k=x] i{inset:5px 2px}.sg-cell[data-k=o] i{width:11px;height:11px;margin:-5.5px 0 0 -5.5px}}.gp-row--transport{z-index:5;background:var(--surface-2);border-top:1px solid var(--line-strong);padding-block:14px;position:sticky;bottom:0;box-shadow:0 -16px 28px -8px #00000073}.gp-row--stats{padding-block:14px 18px}.gt{gap:8px;min-width:0;display:grid}.gt-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 20px;display:flex}.gt-play{align-items:center;gap:16px;display:flex}.gt-playbtn{width:56px;height:56px;color:var(--on-sage);background:var(--sage);transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-swap) var(--ease-out), opacity var(--dur-swap) var(--ease-out);border-radius:50%;flex:none;place-items:center;display:grid}.gt-playbtn:hover:not(:disabled){background:#c8f0a3}.gt-playbtn:active:not(:disabled){transform:scale(.96)}.gt-playbtn:disabled{opacity:.45}.gt-time{color:var(--ink);white-space:nowrap;font-size:18px;font-weight:520}.gt-time-total{color:var(--ink-4)}.gt-channels{border:1px solid var(--line-strong);border-radius:var(--radius);display:inline-flex;overflow:hidden}.gt-radio{min-height:48px;font-size:var(--text-14);color:var(--ink-3);white-space:nowrap;transition:background-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);padding:0 16px;font-weight:600}.gt-radio+.gt-radio{border-left:1px solid var(--line)}.gt-radio:hover{color:var(--ink)}.gt-radio[aria-checked=true]{color:var(--on-sage);background:var(--sage)}.gt-radio:focus-visible{outline-offset:-4px}.gt-loop{border:1px solid var(--sage-dim);border-radius:var(--radius);min-height:44px;font-size:var(--text-14);color:var(--ink);background:#bae79114;flex:none;align-items:center;gap:8px;padding:0 2px 0 12px;display:inline-flex}.gt-loop>svg{color:var(--sage);flex:none}.gt-loop-clear{width:44px;height:44px;color:var(--ink-2);place-items:center;display:grid}.gt-loop-clear:hover{color:var(--ink)}.gt-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:24px;display:flex}.gt-meta>.gt-line{flex:260px;min-width:0}.gt-line{min-height:24px;font-size:var(--text-13);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.gt-line--error{color:var(--amber)}.gt-retry{text-underline-offset:3px;min-height:44px;color:var(--ink);padding:0 4px;font-weight:600;text-decoration:underline}.gt-load{flex-wrap:nowrap}.gt-bar{background:var(--line);border-radius:2px;flex:120px;min-width:80px;height:3px;overflow:hidden}.gt-bar i{background:var(--sage);transform-origin:0;width:100%;height:100%;transition:transform .12s linear;display:block}.gt-spinner{border:2px solid var(--line-strong);border-top-color:var(--sage);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite gp-spin}.gt-spinner--btn{border-color:#11121038;border-top-color:var(--on-sage);width:22px;height:22px}@keyframes gp-spin{to{transform:rotate(360deg)}}.gt-stats{font-size:var(--text-13);color:var(--ink-3);flex-wrap:wrap;gap:4px 0;display:flex}.gt-stats span+span:before{content:"·";color:var(--ink-4);margin:0 .7em}@media (width<=620px){.gp-row--transport{padding:10px 12px}.gt{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 12px}.gt-row,.gt-play{display:contents}.gt-playbtn{grid-area:1/1;justify-self:start;width:48px;height:48px}.gt-channels{grid-area:1/2;width:auto}.gt-radio{min-height:46px;font-size:var(--text-13);flex:1 1 0;padding:0 4px}.gt-time{font-size:var(--text-12);grid-area:2/1;justify-self:start}.gt-meta{grid-area:2/2;gap:4px 8px;min-width:0}.gt-line{min-height:0;font-size:var(--text-12)}.gt-loop{justify-content:space-between;width:100%}.gt-loop-label{margin-right:auto}.gt-load{flex-wrap:wrap}.gt-stats{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.gt-stats span+span:before{content:none}}.groove-music a{color:var(--ink-2);text-underline-offset:3px;text-decoration:underline}.groove-honesty{max-width:76ch;font-size:var(--text-12);color:var(--ink-3);gap:10px;margin-top:20px;line-height:1.55;display:grid}.groove-honesty strong{color:var(--ink-2);font-weight:600}.groove-how summary{min-height:44px;font-size:var(--text-13);color:var(--ink-2);cursor:pointer;text-underline-offset:3px;align-items:center;text-decoration:underline;display:inline-flex}.groove-how>div{font-size:var(--text-13);color:var(--ink-3);gap:10px;padding-bottom:8px;display:grid}.groove-how ol{gap:6px;padding-left:1.3em;list-style:decimal;display:grid}.groove-close{font-size:var(--text-18);letter-spacing:-.01em;color:var(--ink);flex-wrap:wrap;align-items:center;gap:4px 20px;margin-top:24px;font-weight:500;display:flex}.gp[data-reveal=armed] .tl-wave-draw{clip-path:inset(0 100% 0 0)}.gp[data-reveal=in] .tl-wave-draw{animation:gp-draw .7s var(--ease-in-out) both}.gp[data-reveal=armed] .sg-cell i{opacity:0;transform:scale(.5)}.gp[data-reveal=in] .sg-cell i{animation:gp-pop .24s var(--ease-out) both;animation-delay:calc(var(--col,0) * 12ms)}@keyframes gp-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes gp-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.gp[data-reveal] .tl-wave-draw{clip-path:none;animation:none}.gp[data-reveal] .sg-cell i{opacity:1;animation:none;transform:none}.gt-spinner{animation:none}}.how-section{padding-block:var(--section-y)}.how-steps{border-top:1px solid var(--line);margin-top:clamp(28px,4vw,48px);display:grid}.how-steps li{border-bottom:1px solid var(--line);align-content:start;gap:10px;padding-block:28px;display:grid}.how-num{font-size:var(--text-13);letter-spacing:.08em;color:var(--sage);font-weight:500}.how-steps h3{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(1.25rem,1.1rem + .6vw,1.625rem);font-weight:560;line-height:1.15}.how-steps p{max-width:40ch;color:var(--ink-2)}@media (width>=800px){.how-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.how-steps li{border-bottom:0;padding:32px 32px 36px 0}.how-steps li+li{border-left:1px solid var(--line);padding-left:32px}}.pricing-section{padding-block:var(--section-y);border-top:1px solid var(--line)}.pricing-grid{align-items:start;gap:36px;display:grid}.pricing-copy{justify-items:start;gap:16px;display:grid}.pricing-lead{max-width:42ch;color:var(--ink-2);font-size:clamp(1rem,.94rem + .3vw,1.125rem)}.pricing-note{max-width:46ch;font-size:var(--text-14);color:var(--ink-3)}.pricing-note a{text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.pricing-note a:hover{color:var(--ink)}.pricing-cta{margin-top:8px}@media (width>=900px){.pricing-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px)}}.price-table{border-collapse:collapse;width:100%;font-size:var(--text-16)}.price-table th,.price-table td{border-bottom:1px solid var(--line);text-align:right;vertical-align:baseline;padding:18px 0}.price-table thead th{font-size:var(--text-12);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-block:0 12px;font-weight:600}.price-table th:first-child{text-align:left}.price-table tbody th{letter-spacing:-.015em;color:var(--ink);font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);font-weight:560}.price-table tbody td{font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);font-weight:560}.price-table tbody tr{border-top:0}.price-table thead tr{border-bottom:0}.price-table .price-per{font-size:var(--text-14);color:var(--ink-3);padding-left:16px;font-weight:400}.price-table tbody td.price-per{font-size:var(--text-14);font-weight:400}.price-table thead{border-bottom:1px solid var(--line)}.price-table thead th{border-bottom:0}.price-table .price-free th,.price-table .price-free td:nth-child(2){color:var(--sage)}.selfhost-section{padding-block:var(--section-y);border-top:1px solid var(--line)}.selfhost-grid{align-items:start;gap:28px;display:grid}.selfhost-head{gap:16px;display:grid}.selfhost-kicker{font-size:var(--text-12);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:10px;font-weight:600;display:inline-flex}.selfhost-dot{border:1.5px solid var(--sage-dim);border-radius:50%;width:7px;height:7px}.selfhost-body{gap:4px;display:grid}.selfhost-lead{max-width:52ch;color:var(--ink-2);font-size:clamp(1rem,.94rem + .3vw,1.125rem)}.selfhost-points{margin-bottom:0}@media (width>=900px){.selfhost-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px)}}@media (width<=420px){.header-cta .cta-more{display:none}}.teachers-section{padding-block:var(--section-y);border-top:1px solid var(--line)}.teachers-grid{align-items:center;gap:40px;display:grid}.teachers-copy{justify-items:start;gap:16px;display:grid}.teachers-sub{max-width:48ch;color:var(--ink-2);font-size:clamp(1rem,.94rem + .3vw,1.125rem)}.teachers-cta{margin-top:8px}@media (width>=900px){.teachers-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px)}}.points{margin-top:18px;margin-bottom:32px;display:grid}.points li{border-top:1px solid var(--line);font-size:var(--text-16);color:var(--ink-2);grid-template-columns:18px minmax(0,1fr);gap:12px;padding-block:14px;line-height:1.45;display:grid}.points li:last-child{border-bottom:1px solid var(--line)}.point-mark{place-items:center;height:1.45em;display:grid}.point-dot{background:var(--sage);border-radius:50%;width:7px;height:7px}.assignment{align-content:center;justify-items:center;gap:16px;margin:0;display:grid}.assignment-card{border:1px dashed var(--line-strong);border-radius:var(--radius-panel);background:var(--surface);width:280px;max-width:100%;box-shadow:var(--specular);gap:14px;padding:18px;display:grid}.ac-from{font-size:var(--text-12);letter-spacing:.08em;text-transform:uppercase;color:var(--sage);font-weight:600}.ac-title{letter-spacing:-.02em;margin-top:-6px;font-size:20px;font-weight:600;line-height:1.15}.ac-bars{grid-template-columns:repeat(16,minmax(0,1fr));align-items:end;gap:2px;height:44px;display:grid}.ac-bars span{background:var(--line-strong);border-radius:1px}.ac-bars span.is-assigned{background:var(--sage)}.ac-ticks{grid-template-columns:repeat(16,minmax(0,1fr));gap:2px;margin-top:6px;display:grid}.ac-ticks span{border-top:1px solid var(--sage);font-family:var(--font-mono);font-size:var(--text-12);text-align:center;color:var(--ink-2);padding-top:4px}.ac-channels{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.ac-channels span{text-align:center;font-size:var(--text-12);color:var(--ink-3);padding:8px 2px}.ac-channels span+span{border-left:1px solid var(--line)}.ac-channels .is-on{background:var(--sage);color:var(--on-sage);font-weight:600}.ac-transport{justify-content:space-between;align-items:center;display:flex}.ac-play{background:var(--sage);width:44px;height:44px;color:var(--on-sage);border-radius:50%;place-items:center;display:grid}.ac-play svg{margin-left:2px}.ac-loop{border:1px solid var(--sage-dim);border-radius:var(--radius);font-size:var(--text-12);color:var(--sage);align-items:center;gap:6px;padding:6px 10px;font-weight:600;display:inline-flex}.assignment figcaption{text-align:center;text-wrap:balance;max-width:28ch;font-size:var(--text-12);color:var(--ink-3)}.join-section{padding-block:var(--section-y);background:var(--bg-raised);border-block:1px solid var(--line)}.join-grid{align-items:start;gap:32px;display:grid}.join-copy{gap:16px;display:grid}.join-lead{max-width:40ch;color:var(--ink-2);font-size:clamp(1rem,.94rem + .3vw,1.125rem)}.join-facts{border-top:1px solid var(--line);margin-top:8px}.join-facts li{border-bottom:1px solid var(--line);font-size:var(--text-14);color:var(--ink-3);padding-block:14px}.join-facts li:first-child{color:var(--ink-2)}@media (width>=900px){.join-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px)}.join-copy{top:calc(var(--header-h) + 40px);position:sticky}}.signup-panel{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--specular), 0 16px 40px #00000047;gap:20px;padding:20px;display:grid}@media (width>=640px){.signup-panel{gap:24px;padding:28px}}.role-tiles{border:0;min-width:0;margin:0;padding:0}.role-tiles legend{font-size:var(--text-14);color:var(--ink-3);margin-bottom:12px;padding:0;font-weight:500}.role-tile-grid{gap:10px;display:grid}@media (width>=640px){.role-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.role-tile{cursor:pointer;display:block;position:relative}.role-tile input{z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.role-tile-body{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);min-height:76px;transition:border-color var(--dur-swap) var(--ease-out), background-color var(--dur-swap) var(--ease-out), box-shadow var(--dur-swap) var(--ease-out), transform var(--dur-press) var(--ease-out);align-content:center;gap:2px;padding:14px 52px 14px 16px;display:grid;position:relative}.role-tile:hover .role-tile-body{border-color:var(--line-strong)}.role-tile:active .role-tile-body{transform:scale(.99)}.role-tile-title{font-size:var(--text-16);letter-spacing:-.01em;font-weight:600}.role-tile-sub{font-size:var(--text-13);color:var(--ink-3)}.role-tile-mark{border:1px solid var(--line-strong);color:#0000;width:22px;height:22px;transition:background-color var(--dur-swap) var(--ease-out), border-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:16px;translate:0 -50%}.role-tile input:checked+.role-tile-body{border-color:var(--sage);box-shadow:inset 0 0 0 1px var(--sage);background:#bae7910f}.role-tile input:checked+.role-tile-body .role-tile-mark{background:var(--sage);border-color:var(--sage);color:var(--on-sage)}.role-tile input:focus-visible+.role-tile-body{outline:2px solid var(--sage);outline-offset:4px}.role-tile input:focus-visible{outline:none}.field{gap:8px;display:grid}.field label{font-size:var(--text-14);color:var(--ink-3);font-weight:500}.field input{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);width:100%;min-height:54px;color:var(--ink);font-size:var(--text-16);transition:border-color var(--dur-swap) var(--ease-out);padding:0 16px}.field input::placeholder{color:var(--ink-4)}.field input:hover{border-color:var(--ink-4)}.field input:focus{border-color:var(--sage)}.field input[aria-invalid=true]{border-color:var(--amber)}.field input:read-only{color:var(--ink-3)}.signup-submit{width:100%;min-height:54px;font-size:var(--text-16)}.form-error{font-size:var(--text-14);color:var(--ink);align-items:flex-start;gap:8px;margin-top:12px;line-height:1.4;display:flex}.form-error svg{color:var(--amber);flex:none;margin-top:1px}.field .form-error{margin-top:0}.signup-submit+.form-error{margin-top:-4px}.signup-note{font-size:var(--text-12);color:var(--ink-3)}.signup-success{gap:24px}.success-mark{border:1px solid var(--sage);width:48px;height:48px;color:var(--sage);background:#bae79114;border-radius:50%;place-items:center;display:grid;position:relative}.success-mark:after{content:"";border:1.5px solid var(--sage);opacity:0;animation:success-ring .9s var(--ease-out) .26s both;border-radius:50%;position:absolute;inset:-1px}@keyframes success-ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.success-mark svg path{stroke-dasharray:24;stroke-dashoffset:24px;animation:draw-tick .52s var(--ease-out) .12s forwards}@keyframes draw-tick{to{stroke-dashoffset:0}}.success-copy{gap:8px;display:grid}.success-copy h3{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);font-weight:var(--weight-display);letter-spacing:-.03em;line-height:1.08}.success-copy p{max-width:44ch;color:var(--ink-2)}.share{border-top:1px solid var(--line);gap:12px;padding-top:24px;display:grid}.share-prompt{font-size:var(--text-15);font-weight:600}.share-row{flex-wrap:wrap;gap:8px;display:flex}.share-field{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);min-width:0;min-height:44px;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-13);text-overflow:ellipsis;flex:220px;padding:0 12px}@media (width<=480px){.share-field{font-size:var(--text-12);letter-spacing:-.02em}}.share-copy{border:1px solid var(--line-strong);border-radius:var(--radius);min-width:124px;min-height:44px;font-size:var(--text-14);transition:border-color var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out), transform var(--dur-press) var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;display:inline-flex}.share-copy:hover{border-color:var(--ink-3)}.share-copy:active{transform:scale(.98)}.share-copy[data-copied]{border-color:var(--sage);color:var(--sage)}.share-note{font-size:var(--text-12);color:var(--ink-3)}.faq-section{padding-block:var(--section-y) calc(var(--section-y) * .75)}.faq-inner{gap:32px;display:grid}@media (width>=960px){.faq-inner{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:clamp(40px,6vw,96px)}.faq-head{top:calc(var(--header-h) + 40px);position:sticky}}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{letter-spacing:-.015em;cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding-block:18px;font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);font-weight:560;line-height:1.25;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary svg{color:var(--ink-3);transition:transform var(--dur-swap) var(--ease-out), color var(--dur-swap) var(--ease-out);flex:none}.faq-list summary:hover svg{color:var(--ink)}.faq-list details[open] summary svg{color:var(--sage);transform:rotate(45deg)}.faq-list details p{max-width:62ch;color:var(--ink-2);padding:0 56px 24px 0}@supports (interpolate-size:allow-keywords) and selector(::details-content){.faq-list{interpolate-size:allow-keywords}.faq-list details::details-content{block-size:0;transition:block-size .28s var(--ease-out), content-visibility .28s allow-discrete;overflow:clip}.faq-list details[open]::details-content{block-size:auto}}
