*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--black:#080708;--ink:#151113;--cream:#fff9ef;--paper:#fff1db;--muted:#fff9efb8;--acid:#d8ff28;--pink:#ff149d;--orange:#ff7a00;--blue:#00b7ff;--line:#fff9ef38;--dark-line:#08070838}*{box-sizing:border-box}html{min-height:100%}body{min-height:100%;color:var(--cream);background:linear-gradient(90deg,#ffffff0d 1px,#0000 1px) 0 0/30px 30px,linear-gradient(#ffffff0d 1px,#0000 1px) 0 0/30px 30px,radial-gradient(circle at 12% 8%,#ff149d80,#0000 28%),radial-gradient(circle at 86% 14%,#00b7ff61,#0000 24%),linear-gradient(145deg,#080708 0%,#161013 48%,#2b1117 100%);margin:0;font-family:Trebuchet MS,Gill Sans,sans-serif;line-height:1.35}body:after{content:"";pointer-events:none;opacity:.13;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");position:fixed;inset:0}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(1220px,100% - 28px);margin:0 auto;padding:22px 0 40px}.topline{border-bottom:2px solid var(--cream);justify-content:space-between;align-items:center;gap:18px;min-height:64px;display:flex}.brand{text-transform:uppercase;align-items:center;gap:12px;font-family:Impact,Haettenschweiler,fantasy;font-size:clamp(28px,4vw,46px);display:inline-flex}.brand span{border:2px solid var(--cream);background:conic-gradient(from 180deg, var(--pink), var(--orange), var(--acid), var(--blue), var(--pink));width:38px;height:38px;box-shadow:5px 5px 0 var(--cream);border-radius:50%}.loop-badge{width:fit-content;color:var(--cream);text-transform:uppercase;background:#08070885;border:2px solid #fff9efb3;border-radius:999px;align-items:center;gap:8px;padding:6px 9px;font-family:Trebuchet MS,Gill Sans,sans-serif;font-size:11px;font-weight:1000;display:inline-flex;box-shadow:3px 3px #000}.brand .loop-badge{margin-left:4px}.loop-orbit{border:2px solid var(--acid);border-radius:50%;width:22px;height:22px;position:relative}.loop-orbit:before,.loop-orbit:after{content:"";background:var(--acid);transform-origin:100%;width:6px;height:2px;position:absolute;top:2px;right:-2px;transform:rotate(35deg)}.loop-orbit:after{top:6px;transform:rotate(-35deg)}.loop-orbit i{background:var(--pink);transform-origin:0 16px;border-radius:50%;width:8px;height:8px;animation:2.4s linear infinite loop-spin;position:absolute;top:-5px;left:50%;box-shadow:0 0 10px #ff149dd9}.lesson-loop-row{justify-content:flex-end;display:flex}.timeline-loop{background:#ffffff0b;border:2px solid #fff9ef33;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;display:grid}.timeline-loop span{border:2px solid #fff9ef38;border-radius:999px;min-height:32px;position:relative;overflow:hidden}.timeline-loop span:before{content:"";background:linear-gradient(90deg, var(--acid), var(--pink));opacity:.82;width:0;transition:width .18s;position:absolute;inset:0 auto 0 0}.timeline-loop span.active:before{width:100%;animation:1.1s linear infinite loop-fill}.timeline-loop i{z-index:1;height:100%;color:var(--cream);place-items:center;font-size:11px;font-style:normal;font-weight:1000;display:grid;position:relative}.timeline-loop span.active i{color:var(--black)}@keyframes loop-spin{to{transform:rotate(360deg)}}@keyframes loop-fill{0%{transform:translate(-100%)}to{transform:translate(100%)}}.meter{border:2px solid var(--cream);width:min(340px,42vw);color:var(--cream);text-transform:uppercase;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:900;position:relative;overflow:hidden}.meter b{background:var(--pink);z-index:-1;transition:width .35s;position:absolute;inset:0 auto 0 0}.stage{grid-template-columns:132px 1fr;gap:18px;padding-top:18px;display:grid}.rail{align-content:start;gap:10px;display:grid}.rail-item{border:2px solid var(--line);min-height:74px;color:var(--muted);text-transform:uppercase;text-align:center;background:#ffffff0a;border-radius:8px;place-items:center;gap:4px;font-size:12px;font-weight:900;display:grid}.rail-item:disabled{cursor:default}.rail-item:not(:disabled):hover{border-color:var(--acid);transform:translateY(-1px)}.rail-item span{background:#ffffff14;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.rail-item.active{color:var(--black);border-color:var(--black);background:var(--acid);box-shadow:5px 5px 0 var(--black)}.workbench{min-height:calc(100vh - 126px);display:grid}.hero-panel,.panel{border:2px solid var(--cream);background:#080708b8;border-radius:8px;min-width:0;box-shadow:10px 10px #000}.hero-panel{align-content:center;min-height:640px;padding:clamp(24px,5vw,70px);display:grid;position:relative;overflow:hidden}.hero-panel:after{content:"";aspect-ratio:1;background:repeating-linear-gradient(90deg, #000 0 10px, transparent 10px 30px), linear-gradient(135deg, var(--pink), var(--orange) 58%, var(--acid));border:2px solid var(--cream);opacity:.85;z-index:-1;width:min(520px,62vw);position:absolute;bottom:-80px;right:-50px;transform:rotate(-8deg)}.kicker{color:var(--acid);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:900}h1,h2{letter-spacing:0;text-transform:uppercase;overflow-wrap:anywhere;text-wrap:balance;max-width:100%;margin:0;font-family:Impact,Haettenschweiler,fantasy;line-height:.95}h1{max-width:860px;font-size:clamp(52px,9vw,118px)}h2{font-size:clamp(34px,5.4vw,72px)}p{max-width:min(720px,100%);color:var(--muted);overflow-wrap:break-word;font-size:clamp(16px,2vw,20px)}.button{border:2px solid var(--black);background:var(--acid);width:fit-content;min-height:52px;color:var(--black);text-transform:uppercase;border-radius:8px;padding:0 20px;font-family:Impact,Haettenschweiler,fantasy;font-size:20px;transition:transform .16s,box-shadow .16s,filter .16s;box-shadow:6px 6px #000}.button:hover{filter:saturate(1.3);transform:translate(3px,3px)rotate(-1deg);box-shadow:3px 3px #000}.button.hot{background:var(--pink);color:var(--cream)}.panel{padding:clamp(18px,3vw,34px)}.diagnostic,.practice,.access{align-self:center}.quiz-grid,.builder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.quiz-grid button,.chips button,.segmented button,.toggles button,.steps button,.ghost{border:2px solid var(--cream);color:var(--cream);text-align:left;background:#ffffff12;border-radius:8px;padding:14px;transition:background .16s,transform .16s,border-color .16s}.quiz-grid button{min-height:110px;font-size:18px}.quiz-grid button:hover,.chips button:hover,.steps button:hover,.ghost:hover{border-color:var(--acid);background:#d8ff2821;transform:translateY(-2px)}.quiz-grid b{color:var(--acid);margin-top:8px;display:block}.feedback,.success,.error{border-left:6px solid var(--orange);color:var(--cream);background:#ff7a0024;margin:12px 0 22px;padding:12px 14px;font-weight:800}.success{border-color:var(--acid)}.error{border-color:var(--pink)}.builder-grid{align-items:stretch;min-width:0}.lesson-grid{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr)}.controls{gap:12px;display:grid}.controls label,.sequencer label{color:var(--muted);text-transform:uppercase;margin-top:8px;font-size:12px;font-weight:900}.lesson-screen{align-content:start}.lesson-screen h2{font-size:clamp(34px,4.4vw,58px);line-height:1}.lesson-nav{border-top:2px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:18px;display:flex}.lesson-nav .ghost:disabled{cursor:not-allowed;opacity:.38}.mini-lesson{background:linear-gradient(90deg,#d8ff2829,#0000 58%),#ffffff0e;border:2px solid #d8ff287a;border-radius:8px;gap:6px;margin-top:8px;padding:12px 14px;display:grid}.mini-lesson b{color:var(--acid);text-transform:uppercase;font-family:Impact,Haettenschweiler,fantasy;font-size:22px;line-height:1}.mini-lesson span{color:#fff9efd6;font-size:14px;font-weight:800}.lesson-demos{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.lesson-demos button,.lesson-question button{max-width:100%;min-height:38px;color:var(--cream);text-align:left;text-transform:uppercase;overflow-wrap:anywhere;background:#0807086b;border:2px solid #fff9efb8;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:900;transition:transform .14s,background .14s,border-color .14s}.lesson-demos button:hover,.lesson-question button:hover{border-color:var(--acid);background:#d8ff2821;transform:translateY(-1px)}.lesson-demos button.selected{border-color:var(--black);background:var(--acid);color:var(--black);box-shadow:4px 4px #000}.tempo-control{border:2px solid var(--line);background:#ffffff0f;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.tempo-control input{width:100%;accent-color:var(--acid)}.tempo-control b{color:var(--acid);white-space:nowrap;font-family:Impact,Haettenschweiler,fantasy;font-size:26px}.right-tempo{gap:8px;display:grid}.module-card{background:#ffffff0b;border:2px solid #fff9ef29;border-radius:8px;gap:12px;min-width:0;padding:12px;display:grid}.module-card.blocked{background:repeating-linear-gradient(135deg,#fff9ef09 0 8px,#0000 8px 16px),#ffffff06}.module-card.locked{border-color:#fff9ef3d;align-content:center;min-height:72px}.module-card.locked b{color:#fff9efdb;text-transform:uppercase;font-family:Impact,Haettenschweiler,fantasy;font-size:22px;line-height:1}.module-card.locked span{color:var(--acid);text-transform:uppercase;font-size:12px;font-weight:1000}.note-map{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;display:grid}.note-map button{border:2px solid var(--cream);min-height:62px;color:var(--cream);text-align:center;background:#ffffff12;border-radius:8px;transition:transform .14s,background .14s,border-color .14s}.note-map button:hover{border-color:var(--acid);background:#d8ff2821;transform:translateY(-1px)}.note-map b,.note-map span{display:block}.note-map b{font-family:Impact,Haettenschweiler,fantasy;font-size:27px;line-height:1}.note-map span{color:#fff9efb8;text-transform:uppercase;margin-top:5px;font-size:11px;font-weight:900}.tiny-copy{color:#fff9efad;margin:0;font-size:12px;font-weight:800}.song-examples{background:#00b7ff1a;border:2px solid #00b7ff75;border-radius:8px;gap:5px;padding:11px 12px;display:grid}.song-examples b{color:var(--blue);text-transform:uppercase;font-size:12px;font-weight:1000}.song-examples span{color:var(--cream);font-size:13px;font-weight:900}.song-examples.compact{margin-top:-4px}.lesson-question{gap:8px;margin-top:4px;display:grid}.lesson-question strong{color:var(--cream);font-size:13px}.lesson-question div{gap:6px;display:grid}.lesson-question button.right{border-color:var(--acid);background:var(--acid);color:var(--black)}.lesson-question button.wrong{border-color:var(--pink);background:#ff149d2e}.lesson-question em{color:#fff9efd1;font-size:12px;font-style:normal;font-weight:800}.lesson-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.segmented,.chips,.toggles{flex-wrap:wrap;gap:8px;display:flex}.segmented button,.chips button,.toggles button{text-align:center;text-transform:uppercase;overflow-wrap:anywhere;max-width:100%;min-height:46px;font-weight:900}.chips button{min-width:52px}.chips.wide button{min-width:min(150px,100%)}.mood button{border-color:var(--chip)}.selected{box-shadow:4px 4px #000;background:var(--acid)!important;border-color:var(--black)!important;color:var(--black)!important}.sequencer{background:linear-gradient(135deg,#00b7ff33,#0000 38%),#080708c7;align-content:start;gap:18px;min-width:0;display:grid}.soundbank{border:2px solid var(--blue);background:#00b7ff21;border-radius:8px;gap:5px;padding:12px 14px;display:grid}.soundbank b{color:var(--blue);text-transform:uppercase;font-family:Impact,Haettenschweiler,fantasy;font-size:24px;line-height:1}.soundbank span{color:var(--cream);overflow-wrap:anywhere;font-size:14px;font-weight:900}.piano{border:3px solid var(--cream);background:var(--cream);border-radius:12px;height:clamp(170px,22vw,245px);position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #0807082e,0 12px #000}.white-keys{grid-template-columns:repeat(8,minmax(0,1fr));display:grid;position:absolute;inset:0}.white-key,.black-key{border:0;font-weight:1000;transition:transform .12s,filter .12s,box-shadow .12s}.white-key{background:linear-gradient(90deg, #ffffff9e, #fff1db33 45%, #08070814), var(--paper);color:var(--black);border-right:2px solid #0807082e;align-content:end;justify-items:center;gap:2px;padding:0 4px 16px;font-size:clamp(24px,3.2vw,40px);display:grid}.white-key:last-child{border-right:0}.white-key span,.black-key span{line-height:1;display:block}.white-key small{color:#0807088f;text-transform:uppercase;font-family:Trebuchet MS,Gill Sans,sans-serif;font-size:clamp(10px,1vw,13px);font-weight:900}.white-key:hover,.white-key:focus-visible,.white-key.active{filter:brightness(1.06)saturate(1.12);transform:translateY(3px)}.white-key.active{background:linear-gradient(180deg, #d8ff2894, #fff1dbbd), var(--paper);box-shadow:inset 0 -12px #d8ff28b3}.black-keys{pointer-events:none;position:absolute;inset:0}.black-key{z-index:2;width:10.5%;height:64%;color:var(--cream);pointer-events:auto;background:linear-gradient(90deg,#ffffff14,#0000 22%,#0006),linear-gradient(#222 0%,#080808 100%);border:2px solid #050505;border-top:0;border-radius:0 0 7px 7px;align-content:end;justify-items:center;padding:0 5px 14px;font-size:clamp(16px,2.1vw,26px);display:grid;position:absolute;top:0;transform:translate(-50%);box-shadow:0 8px #000000c7,inset 0 -8px 14px #ffffff0f}.black-key span{overflow-wrap:anywhere;text-align:center;text-transform:uppercase;max-width:100%;font-size:clamp(9px,1.1vw,14px)}.black-key:hover,.black-key:focus-visible,.black-key.active{filter:brightness(1.22);transform:translate(-50%)translateY(3px);box-shadow:0 5px #000000c7,inset 0 -8px 14px #ffffff14}.black-key.active{border-color:var(--acid);color:var(--acid);box-shadow:0 5px #000000c7,inset 0 -12px 18px #d8ff2838}.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.steps button{text-align:center;background:linear-gradient(#ff149d33,#ffffff0f);min-height:118px}.steps button.active{border-color:var(--black);background:var(--acid);color:var(--black);transform:translateY(2px);box-shadow:4px 4px #000}.steps button.active small{color:#080708ad}.steps b{font-family:Impact,Haettenschweiler,fantasy;font-size:clamp(30px,5vw,58px);display:block}.steps small{color:var(--muted);text-transform:uppercase;font-weight:900}.play{justify-self:start}.explain{border-top:2px solid var(--line);padding-top:14px}.roadmap{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:24px 0;padding:0;list-style:none;display:grid}.roadmap li{border:2px solid var(--line);min-height:84px;color:var(--muted);text-align:center;text-transform:uppercase;border-radius:8px;place-items:center;padding:8px;font-size:13px;font-weight:900;display:grid}.roadmap .done{background:var(--acid);border-color:var(--black);color:var(--black)}.price{border:2px solid var(--pink);background:#ff149d21;border-radius:8px;gap:8px;margin:22px 0;padding:18px;display:grid}.price b{text-transform:uppercase;font-family:Impact,Haettenschweiler,fantasy;font-size:clamp(28px,4vw,48px);line-height:1}.price span{color:var(--acid);font-size:22px;font-weight:900}.lead-form{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.lead-form input{border:2px solid var(--cream);background:var(--paper);width:100%;min-height:56px;color:var(--black);border-radius:8px;padding:0 14px;font-size:18px;font-weight:900}.playground{align-self:start}.playground-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0;display:grid}.playground-grid>div{background:#ffffff0b;border:2px solid #fff9ef2e;border-radius:8px;align-content:start;gap:8px;min-width:0;padding:14px;display:grid}.playground label{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:1000}.ghost{text-transform:uppercase;margin-top:12px;font-weight:900}@media (max-width:860px){.topline,.lead-form{grid-template-columns:1fr;display:grid}.meter{width:100%}.stage,.builder-grid,.lesson-grid,.quiz-grid{grid-template-columns:1fr}.rail{grid-template-columns:repeat(4,minmax(0,1fr))}.rail-item{min-height:58px}.hero-panel{min-height:560px}.roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}.playground-grid{grid-template-columns:1fr}}@media (min-width:861px) and (max-width:1160px){.stage{grid-template-columns:96px 1fr}.lesson-grid{grid-template-columns:1fr}.lesson-screen h2{font-size:clamp(34px,7vw,64px)}}@media (max-width:540px){.app-shell{width:min(100% - 18px,1220px);padding-top:10px}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.piano{height:164px}.lesson-pair,.tempo-control{grid-template-columns:1fr}.note-map{grid-template-columns:repeat(4,minmax(0,1fr))}.button,.lead-form .button{width:100%}}
