@import "https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@700;800&display=swap";.app-shell{grid-template-rows:auto 1fr auto;min-width:0;min-height:100svh;display:grid}.app-shell>main{min-width:0}.app-header{z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:1fr auto 1fr;align-items:center;min-height:78px;padding:0 5vw;display:grid;position:sticky;top:0}.brand{width:fit-content;color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{color:#fff;background:var(--violet);border-radius:14px 14px 14px 5px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 24px #593dc947}.brand-mark svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:23px}.brand strong,.brand small{display:block}.brand strong{font-family:var(--display);letter-spacing:-.02em;font-size:1.08rem}.brand small{color:var(--muted);margin-top:1px;font-size:.75rem}.primary-nav{border:1px solid var(--line);background:#ffffff8c;border-radius:999px;align-items:center;gap:5px;padding:6px;display:flex}.primary-nav a{color:var(--muted-strong);border-radius:999px;align-items:center;gap:7px;padding:9px 15px;font-size:.82rem;font-weight:700;text-decoration:none;transition:all .18s;display:flex}.primary-nav a:hover,.primary-nav a.active{color:var(--violet);background:var(--violet-soft)}.primary-nav svg,.profile-link svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.profile-link{color:var(--ink);justify-self:end;align-items:center;gap:10px;text-decoration:none;display:flex}.header-actions{justify-self:end;align-items:center;gap:12px;display:flex}.theme-toggle{min-width:62px;min-height:38px;color:var(--muted-strong);border:1px solid var(--line);background:var(--surface);font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 10px;display:flex}.theme-toggle span{font-size:1rem;line-height:1}.theme-toggle small{font-size:.75rem;font-weight:800}.profile-link svg{border:1px solid var(--line);background:#fff;border-radius:50%;width:38px;height:38px;padding:8px}.profile-level{color:var(--muted);font-size:.75rem;font-weight:700}.app-footer{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:20px;padding:25px 5vw;font-size:.75rem;display:flex}.app-footer a{color:inherit}@media (width<=760px){.app-header{-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:1fr auto;min-height:70px;padding:0 20px}.brand small,.profile-level,.theme-toggle small{display:none}.theme-toggle{width:38px;min-width:38px;padding:0}.primary-nav{z-index:30;box-shadow:var(--shadow-lg);justify-content:space-around;position:fixed;bottom:16px;left:16px;right:16px}.primary-nav a{flex:1;justify-content:center;padding-inline:8px}.app-footer{padding-bottom:100px}}.app-error{border:1px solid var(--line);background:var(--surface);width:min(720px,100% - 40px);box-shadow:var(--shadow-lg);border-radius:22px;margin:12vh auto;padding:clamp(28px,6vw,60px)}.app-error h1{margin:10px 0 20px;font-size:clamp(2.5rem,6vw,4.8rem)}.app-error>p:not(.eyebrow){color:var(--muted-strong);line-height:1.7}.app-error div{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.app-error button,.app-error a{color:#fff;background:var(--violet);min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:10px;align-items:center;padding:11px 16px;font-size:.8rem;font-weight:800;text-decoration:none;display:inline-flex}.app-error a{color:var(--violet);border:1px solid var(--line);background:var(--surface-soft)}:root{--paper:#faf8f3;--ink:#2f2551;--muted:#6e6679;--muted-strong:#625b70;--line:#e7e1d8;--violet:#593dc9;--violet-soft:#eee9ff;--coral:#a83f30;--green:#217a57;--surface:#fff;--surface-soft:#f7f4fa;--surface-muted:#f1eee7;--panel-strong:#33245f;--display:"Playfair Display", Georgia, serif;--accent:"Caveat", cursive;--body:"Manrope", system-ui, sans-serif;--shadow-lg:0 24px 70px #2f255221;color:var(--ink);background:var(--paper);font-family:var(--body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{background:var(--paper);min-width:320px}html[data-theme=dark]{--paper:#151220;--ink:#f4efff;--muted:#aaa2b8;--muted-strong:#d2cadf;--line:#3d354d;--violet:#aa92ff;--violet-soft:#302747;--coral:#ff9b83;--green:#61d09d;--surface:#211c2d;--surface-soft:#292334;--surface-muted:#1c1826;--panel-strong:#2b2149;--shadow-lg:0 24px 70px #00000059}body{min-width:320px;min-height:100vh;color:var(--ink);background:var(--paper);margin:0}.route-loading{min-height:45vh;color:var(--muted-strong);place-items:center;font-size:.8rem;font-weight:800;display:grid}button,a{-webkit-tap-highlight-color:transparent}button:not(:disabled):active,a:active{filter:brightness(.97)}.app-shell>main>*{animation:.32s ease-out both page-arrive}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #593dc947}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink)}h1,h2{font-family:var(--display);letter-spacing:-.05em;font-weight:800;line-height:.98}.eyebrow{color:var(--coral);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:800}::selection{color:#fff;background:var(--violet)}html[data-theme=dark] .primary-nav,html[data-theme=dark] .profile-link svg,html[data-theme=dark] .progress-strip,html[data-theme=dark] .credit-list,html[data-theme=dark] .auth-card,html[data-theme=dark] .composition-panel,html[data-theme=dark] .timeline-controls,html[data-theme=dark] .transport-panel,html[data-theme=dark] .validation-card,html[data-theme=dark] .note-palette,html[data-theme=dark] .sequencer-shell,html[data-theme=dark] .chapter-card,html[data-theme=dark] .map-progress{background:var(--surface)}html[data-theme=dark] .chapter-card:first-child,html[data-theme=dark] .success-modal{background:linear-gradient(145deg, var(--surface) 45%, #29213f)}html[data-theme=dark] .chapter-card.coming-soon,html[data-theme=dark] .how-it-works,html[data-theme=dark] .theory-primer,html[data-theme=dark] .auth-tabs{background:var(--surface-muted)}html[data-theme=dark] .steps-grid article,html[data-theme=dark] .primer-grid article,html[data-theme=dark] .current-profile,html[data-theme=dark] .beat-progress{background:color-mix(in srgb, var(--surface) 82%, transparent)}html[data-theme=dark] .primer-grid article:hover,html[data-theme=dark] .auth-tabs button[aria-selected=true],html[data-theme=dark] .auth-card input,html[data-theme=dark] .reset-confirmation button,html[data-theme=dark] .save-composition input,html[data-theme=dark] .export-buttons button,html[data-theme=dark] .saved-list>button,html[data-theme=dark] .timeline-controls input,html[data-theme=dark] .timeline-controls select,html[data-theme=dark] .duration-tools button,html[data-theme=dark] .success-secondary,html[data-theme=dark] .transport-clear,html[data-theme=dark] .modal-close{color:var(--ink);background:var(--surface-soft)}html[data-theme=dark] .duration-tools button.selected{color:#c8b7ff;background:var(--violet-soft);border-color:#7565ae}html[data-theme=dark] .beat-row,html[data-theme=dark] .subdivision-row,html[data-theme=dark] .lane-label,html[data-theme=dark] .grid-cell,html[data-theme=dark] .grid-help{color:var(--muted-strong);background:var(--surface-soft)}html[data-theme=dark] .beat-label.beat-tone-a,html[data-theme=dark] .grid-cell.beat-tone-a,html[data-theme=dark] .subdivision-row>.beat-tone-a{background:#292334}html[data-theme=dark] .beat-label.beat-tone-b,html[data-theme=dark] .grid-cell.beat-tone-b,html[data-theme=dark] .subdivision-row>.beat-tone-b{background:#211c2d}html[data-theme=dark] .grid-lane.rest .lane-label{background:#302029}html[data-theme=dark] .grid-cell.locked-offbeat,html[data-theme=dark] .level-submit-bar button:disabled,html[data-theme=dark] .duration-tools button:disabled,html[data-theme=dark] .chapter-card button:disabled{color:var(--muted);background:#292530}html[data-theme=dark] .grid-cell.occupied-other{background:repeating-linear-gradient(135deg,#292334 0 4px,#342c42 4px 8px)}html[data-theme=dark] .node-medallion{border-color:var(--surface)}html[data-theme=dark] .level-node.completed .node-medallion{background:#19382c}html[data-theme=dark] .level-node.locked .node-medallion{color:var(--muted);background:#302b37}html[data-theme=dark] .progress-ring:after{background:var(--surface)}html[data-theme=dark] .level-path.locked{stroke:#51495d}html[data-theme=dark] .reward-list span{background:#2d2543;border-color:#554776}html[data-theme=dark] .reset-confirmation{background:#2b1e24;border-color:#75493f}html[data-theme=dark] .transport-stop{background:#302025;border-color:#71443d}html[data-theme=dark] .music-card{border-color:var(--surface);background:var(--surface-soft)}html[data-theme=dark] .card-two{background:#33251f}html[data-theme=dark] .card-three{background:#1d3029}html[data-theme=dark] .step-icon.coral{background:#432820}html[data-theme=dark] .step-icon.green{background:#1d382d}html[data-theme=dark] select option{color:var(--ink);background:var(--surface)}@keyframes page-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
