:root{--paper: #fbf8f1;--paper-2: #f3eee2;--card: #ffffff;--line: #e7e2d6;--line-2: #d8d1c2;--ink: #1f2f42;--ink-2: #4a5d70;--muted: #7f8c99;--coral: #f26b4e;--coral-deep: #d5533a;--coral-soft: #ffe7df;--teal: #2a9d8f;--teal-deep: #1f7f74;--teal-soft: #d8f0ea;--sun: #f8c94a;--sun-deep: #d9a521;--sun-soft: #fff1c2;--blue: #3f7fbf;--blue-soft: #dcefff;--green: #3fa877;--green-soft: #d9f2e3;--lilac: #8b7fd1;--lilac-soft: #e8e4f8;--shadow: 0 10px 30px rgba(31, 47, 66, .08);--shadow-2: 0 2px 6px rgba(31, 47, 66, .06);--radius: 18px;--radius-sm: 12px;--display: "Fredoka", "Nunito", system-ui, sans-serif;--body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;font-family:var(--body);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.01em;text-wrap:balance}:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#root{min-height:100vh}.eyebrow{margin:0 0 8px;color:var(--coral);font-family:var(--body);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.intro{margin:14px 0 0;max-width:46ch;color:var(--ink-2);font-size:16px;line-height:1.55}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px}.section-heading h2,.track-heading h2,.map-heading h2,.leaderboard-heading h2,.practice-card h2,.student-detail h2{margin:0;color:var(--ink);font-size:26px}.section-heading>svg{color:var(--sun-deep)}.text-button{display:inline-flex;align-items:center;gap:4px;border:0;padding:6px 2px;color:var(--coral-deep);background:transparent;cursor:pointer;font-size:14px;font-weight:800}.text-button:hover{color:var(--coral)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border:0;border-radius:14px;color:#fff;background:var(--coral);box-shadow:0 4px 0 var(--coral-deep);cursor:pointer;font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.01em;transition:transform .12s ease,box-shadow .12s ease}.primary-button:hover{transform:translateY(-1px)}.primary-button:active{transform:translateY(2px);box-shadow:0 2px 0 var(--coral-deep)}.primary-button:disabled{opacity:.6;cursor:wait}.loading-session{color:var(--ink-2);font-family:var(--display);font-size:22px}.login-page{position:relative;display:grid;min-height:100vh;place-items:center;overflow:hidden;padding:24px;background:radial-gradient(ellipse at 15% 20%,#ffe7df 0,transparent 45%),radial-gradient(ellipse at 85% 80%,#d8f0ea 0,transparent 45%),var(--paper)}.login-notes{position:absolute;top:8%;left:6%;color:var(--coral);opacity:.12;font-family:var(--display);font-size:110px;transform:rotate(-12deg)}.login-card{position:relative;display:grid;width:min(100%,420px);gap:12px;padding:36px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--ink);font-family:var(--display);font-size:28px;font-weight:600}.login-brand span,.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:12px 12px 12px 3px;color:#fff;background:var(--coral)}.login-card h1{margin:0;color:var(--ink);font-size:40px;line-height:1.02}.login-card>p:not(.eyebrow){margin:2px 0 10px;color:var(--ink-2);font-size:15px}.login-card label{display:grid;gap:6px;color:var(--ink-2);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.login-card input{border:1.5px solid var(--line-2);border-radius:12px;padding:12px 14px;color:var(--ink);background:#fff;font-size:15px}.login-card input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 4px var(--teal-soft)}.login-card>button{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;border:0;border-radius:14px;padding:14px;color:#fff;background:var(--ink);cursor:pointer;font-family:var(--display);font-size:16px;font-weight:600}.login-card>button:hover{background:#2b415a}.login-card>button:disabled{opacity:.65;cursor:wait}.login-error{color:var(--coral-deep);font-size:13px;font-weight:700}.demo-accounts{display:grid;gap:4px;margin-top:12px;padding-top:14px;border-top:1px dashed var(--line-2);color:var(--muted);font-size:12px}.demo-accounts strong{color:var(--ink-2)}.mascot-scene{position:relative;width:220px;min-width:220px;min-height:190px;overflow:hidden;border:1px solid #cfe9df;border-radius:20px;background:linear-gradient(180deg,#e2f4fb 0,#dff3ea)}.scene-sun{position:absolute;top:18px;right:30px;width:34px;height:34px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 8px #f8c94a40}.scene-hill{position:absolute;bottom:-57px;border-radius:50% 50% 0 0}.hill-back{left:-20px;width:180px;height:120px;background:#b7e5c9}.hill-front{right:-37px;width:205px;height:105px;background:#85cfac}.mascot{position:absolute;z-index:2;bottom:19px;left:68px;width:85px;height:109px}.mascot-face{position:absolute;top:0;left:12px;width:62px;height:59px;border-radius:45% 45% 42% 42%;background:#f5a267}.mascot-ear{position:absolute;top:3px;width:25px;height:27px;border-radius:62% 35% 58% 38%;background:#e58456}.mascot-ear.left{left:3px;transform:rotate(-23deg)}.mascot-ear.right{right:3px;transform:scaleX(-1) rotate(-23deg)}.mascot-eye{position:absolute;top:25px;width:6px;height:8px;border-radius:50%;background:#344455;animation:blink 5s infinite}.mascot-eye.left{left:19px}.mascot-eye.right{right:19px}.mascot-smile{position:absolute;left:25px;bottom:12px;width:13px;height:7px;border-bottom:2px solid #344455;border-radius:0 0 12px 12px}.mascot-body{position:absolute;z-index:1;bottom:0;left:9px;width:68px;height:61px;border-radius:48% 48% 28% 28%;background:#2f5470}.mascot-badge{position:absolute;top:15px;left:25px;display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#2f5470;background:var(--sun)}.mascot-arm{position:absolute;z-index:0;bottom:29px;width:16px;height:38px;border-radius:10px;background:#f5a267}.arm-left{left:2px;transform:rotate(26deg)}.arm-right{right:2px;transform:rotate(-26deg)}.floating-note{position:absolute;z-index:3;display:grid;place-items:center;color:var(--coral);font-family:var(--display);font-size:24px;font-weight:700;animation:bob 2.7s ease-in-out infinite}.note-one{top:29px;left:26px}.note-two{top:48px;right:46px;color:var(--teal-deep);animation-delay:.45s}.note-three{top:83px;left:43px;color:var(--sun-deep);animation-delay:.9s}.mascot-bubble{position:absolute;z-index:4;top:14px;left:67px;display:grid;gap:2px;width:132px;padding:10px 12px;border-radius:12px 12px 12px 3px;color:var(--ink);background:#fff;box-shadow:var(--shadow-2);font-size:12px}.mascot-bubble strong{font-size:12px}.mascot-bubble span{color:var(--muted);font-size:11px}.mascot-scene.compact{width:125px;min-width:125px;min-height:129px}.compact .mascot{bottom:8px;left:21px;transform:scale(.8);transform-origin:bottom center}.compact .scene-sun{top:12px;right:14px;transform:scale(.72)}.compact .note-one{top:18px;left:13px;transform:scale(.75)}.compact .note-two{top:34px;right:26px;transform:scale(.72)}.compact .note-three{display:none}.compact .hill-back{left:-60px}.compact .hill-front{right:-80px}@keyframes bob{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-7px) rotate(4deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-shell{position:relative;display:flex;min-height:100vh;background:var(--paper)}.music-sky{position:fixed;z-index:0;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.sky-note{position:absolute;top:-12%;color:var(--coral);opacity:.09;font-family:var(--display);font-size:34px;font-weight:700;animation:noteFall linear infinite}.sky-note-1{left:27%;animation-duration:22s}.sky-note-2{left:42%;color:var(--teal);animation-duration:26s;animation-delay:-8s}.sky-note-3{left:63%;color:var(--sun-deep);font-size:27px;animation-duration:24s;animation-delay:-12s}.sky-note-4{left:78%;color:var(--blue);animation-duration:30s;animation-delay:-3s}.sky-note-5{left:91%;color:var(--lilac);animation-duration:27s;animation-delay:-16s}.sky-note-6{left:35%;color:var(--sun-deep);animation-duration:32s;animation-delay:-18s}.sky-note-7{left:55%;animation-duration:28s;animation-delay:-6s}.sky-note-8{left:85%;color:var(--teal);animation-duration:23s;animation-delay:-10s}.sky-note-9{left:16%;color:var(--blue);animation-duration:31s;animation-delay:-20s}@keyframes noteFall{0%{transform:translate3d(0,-15vh,0) rotate(-10deg)}50%{transform:translate3d(32px,55vh,0) rotate(14deg)}to{transform:translate3d(-21px,120vh,0) rotate(-8deg)}}.sidebar,.content{position:relative;z-index:1}.sidebar{position:sticky;top:0;width:250px;height:100vh;padding:28px 16px 18px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--ink);font-family:var(--display);font-size:28px;font-weight:600}.main-nav{display:grid;gap:6px;margin-top:44px}.nav-item{width:100%;display:flex;align-items:center;gap:14px;border:0;border-radius:14px;padding:12px 14px;color:var(--ink-2);background:transparent;text-align:left;cursor:pointer;font-size:15px;font-weight:800;transition:background .15s ease,color .15s ease}.nav-item:hover{background:var(--paper-2);color:var(--ink)}.nav-item.active{color:var(--ink);background:var(--teal-soft)}.nav-item.active svg{color:var(--teal-deep)}.sidebar-bottom{margin-top:auto;display:grid;gap:4px}.profile-card{display:flex;align-items:center;gap:10px;margin-top:14px;padding:14px 10px 4px;border:0;border-top:1px solid var(--line);background:transparent;cursor:pointer;text-align:left;font-size:13px}.profile-card>div:nth-child(2){display:grid;gap:2px;flex:1}.profile-card strong{color:var(--ink)}.profile-card span{color:var(--muted);font-size:12px}.profile-card>svg{color:var(--muted)}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--ink);font-family:var(--display);font-size:12px;font-weight:600}.content{flex:1;min-width:0}.topbar{position:sticky;top:0;z-index:5;height:74px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(20px,6%,64px);border-bottom:1px solid var(--line);background:#fbf8f1db;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.breadcrumb{color:var(--muted);font-size:14px}.breadcrumb span:first-child{color:var(--ink);font-weight:800}.dot{margin:0 7px}.header-actions,.streak{display:flex;align-items:center;gap:16px}.streak{gap:6px;padding:6px 12px;border-radius:100px;color:var(--coral-deep);background:var(--coral-soft);font-family:var(--display);font-size:15px;font-weight:600}.icon-button,.logout-icon{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:12px;color:var(--ink-2);background:transparent;cursor:pointer}.icon-button:hover,.logout-icon:hover{background:var(--paper-2);color:var(--ink)}.page-content{max-width:1040px;padding:44px clamp(20px,6%,64px) 72px}.welcome-row{display:flex;justify-content:space-between;align-items:center;gap:32px}.welcome-row h1,.track-hero h1,.class-hero h1,.profile-hero h1,.instructor-welcome h1,.assessment-hero h1,.builder-heading h1,.lesson-card h1,.result-page h1{margin:0;color:var(--ink);font-size:44px;line-height:1.02}.illustrated-welcome{position:relative;align-items:stretch}.illustrated-welcome>div:first-child{padding-top:10px}.guide-wrap{position:relative}.rename-guide{position:absolute;z-index:6;right:8px;bottom:8px;display:flex;align-items:center;gap:5px;padding:7px 10px;border:0;border-radius:100px;color:var(--ink);background:#ffffffeb;box-shadow:var(--shadow-2);cursor:pointer;font-size:11px;font-weight:800}.guide-name-form{position:absolute;z-index:8;right:6px;bottom:44px;display:flex;gap:4px;padding:6px;border-radius:12px;background:#fff;box-shadow:var(--shadow)}.guide-name-form input{width:100px;border:1px solid var(--line-2);border-radius:8px;padding:6px 8px;color:var(--ink);font-size:12px}.guide-name-form button{border:0;border-radius:8px;padding:6px 9px;color:#fff;background:var(--coral);cursor:pointer;font-size:11px;font-weight:800}.weekly-progress{min-width:240px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.weekly-title{display:flex;justify-content:space-between;align-items:baseline;color:var(--ink-2);font-size:13px;font-weight:700}.weekly-title strong{color:var(--ink);font-family:var(--display);font-size:18px}.week-dots{display:flex;justify-content:space-between;margin:16px 0 10px}.week-dots span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--muted);background:var(--paper-2);font-size:12px;font-weight:800}.week-dots .done{color:#fff;background:var(--teal);box-shadow:0 3px 0 var(--teal-deep)}.weekly-progress small{color:var(--muted);font-size:12px}.continue-card{display:flex;align-items:center;gap:20px;margin-top:40px;padding:26px 28px;border-radius:var(--radius);color:#fff;background:linear-gradient(120deg,#1f2f42 0,#2f5470);box-shadow:0 16px 34px #1f2f4238}.lesson-icon{width:56px;height:56px;display:grid;place-items:center;color:var(--sun);border-radius:16px;background:#ffffff1a}.lesson-copy{flex:1}.continue-card .eyebrow{color:var(--sun);margin-bottom:4px}.continue-card h2{margin:0;color:#fff;font-size:22px}.continue-card p:not(.eyebrow){margin:6px 0 0;color:#c8d5de;font-size:14px}.continue-card .primary-button{color:var(--ink);background:var(--sun);box-shadow:0 4px 0 var(--sun-deep)}.practice-card{margin-top:22px;padding:24px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.practice-heading{display:flex;align-items:center;gap:14px}.practice-number{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--coral);font-family:var(--display);font-size:14px;font-weight:600}.practice-card .eyebrow{margin-bottom:4px}.answer-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.answer{display:grid;gap:4px;padding:14px;border:2px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;cursor:pointer;text-align:left}.answer span{color:var(--muted);font-size:12px}.answer:hover,.answer.selected{border-color:var(--coral);background:var(--coral-soft)}.answer-feedback{margin:14px 0 0;font-size:14px;font-weight:800}.correct{color:var(--green)}.retry{color:var(--coral-deep)}.progress-section{margin-top:44px}.module-list{display:grid;gap:12px;margin-top:18px}.module{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.module-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px}.module-icon.blue{color:var(--blue);background:var(--blue-soft)}.module-icon.coral{color:var(--coral-deep);background:var(--coral-soft)}.module-icon.yellow{color:var(--sun-deep);background:var(--sun-soft)}.module-icon.green{color:var(--green);background:var(--green-soft)}.module-icon.purple{color:var(--lilac);background:var(--lilac-soft)}.module-info{flex:1;min-width:0}.module-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.module h3{margin:0;color:var(--ink);font-size:17px}.module-title span{padding:2px 8px;border-radius:100px;color:var(--coral-deep);background:var(--coral-soft);font-size:11px;font-weight:800}.module-title span.complete{color:var(--green);background:var(--green-soft)}.module p{margin:4px 0 10px;color:var(--muted);font-size:13px}.progress-track{height:8px;overflow:hidden;border-radius:8px;background:var(--paper-2)}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--coral)}.module:first-child .progress-track span{background:var(--green)}.module-arrow{color:var(--muted)}.tip-banner{display:flex;align-items:center;gap:12px;margin-top:28px;padding:16px 18px;color:var(--ink-2);border-radius:var(--radius-sm);background:var(--sun-soft)}.tip-banner svg{color:var(--sun-deep);flex-shrink:0}.tip-banner p{margin:0;font-size:14px}.tip-banner strong{color:var(--ink)}.student-track{animation:appear .24s ease-out}.track-hero{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-bottom:36px;border-bottom:1px solid var(--line)}.track-summary{width:240px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.track-summary>span{color:var(--ink-2);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.track-summary strong{display:block;margin:4px 0 10px;color:var(--ink);font-family:var(--display);font-size:36px;font-weight:600}.large-progress{height:10px;overflow:hidden;border-radius:8px;background:var(--paper-2)}.large-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--coral),var(--sun));transition:width .6s ease}.track-summary small{display:block;margin-top:9px;color:var(--muted);font-size:12px}.track-heading{display:flex;align-items:end;justify-content:space-between;margin-top:44px}.track-heading>span{color:var(--muted);font-size:13px;font-weight:700}.path-modules{display:grid;gap:12px;margin-top:18px}.path-module{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.module-toggle{width:100%;display:flex;align-items:center;gap:16px;padding:18px 20px;border:0;color:var(--ink);background:#fff;cursor:pointer;text-align:left}.module-toggle>svg{margin-left:auto;color:var(--muted);transition:transform .18s ease}.expanded .module-toggle>svg{transform:rotate(90deg)}.path-number{width:44px;height:44px;display:grid;flex:0 0 44px;place-items:center;border-radius:14px;color:var(--coral-deep);background:var(--coral-soft);font-family:var(--display);font-size:15px;font-weight:600}.path-number.finished{color:var(--green);background:var(--green-soft)}.path-module-copy{display:grid;gap:3px;min-width:0}.path-module-copy strong{font-size:16px}.path-module-copy small{color:var(--muted);font-size:13px}.module-progress-label{color:var(--coral-deep);font-size:12px;font-weight:800}.path-lessons{padding:0 20px 14px 80px}.path-lesson{width:100%;display:flex;align-items:center;gap:10px;min-height:48px;padding:9px 2px;border:0;border-top:1px solid var(--line);color:var(--ink-2);background:#fff;cursor:pointer;font-size:14px;text-align:left}.lesson-state{width:26px;height:26px;display:grid;flex:0 0 26px;place-items:center;border:1.5px solid var(--line-2);border-radius:50%;color:var(--muted);font-size:11px;font-weight:800}.path-lesson.complete .lesson-state{border-color:var(--green);color:#fff;background:var(--green)}.path-lesson.current .lesson-state{border-color:var(--coral);color:#fff;background:var(--coral)}.path-lesson.locked{color:var(--muted);cursor:not-allowed}.path-lesson.locked .lesson-state{color:#b1bbc0;background:var(--paper-2)}.path-lesson small{display:flex;align-items:center;gap:4px;margin-left:auto;color:var(--muted);font-size:12px}.start-label{display:flex;align-items:center;gap:4px;margin-left:10px;color:var(--coral-deep);font-size:12px;font-weight:800}.path-lesson.current{color:var(--ink);font-weight:800}.trail{margin-top:32px;padding:24px;border:1px solid #cfe6de;border-radius:24px;background:linear-gradient(180deg,#eaf7fb 0,#e6f5ee);box-shadow:var(--shadow-2)}.trail-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.trail-head h2{margin:0;color:var(--ink);font-size:28px}.trail-sub{margin:6px 0 0;color:var(--ink-2);font-size:14px;max-width:46ch}.trail-ring{position:relative;display:grid;place-items:center;width:96px;height:96px;flex-shrink:0}.trail-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.trail-ring strong{color:var(--ink);font-family:var(--display);font-size:22px;font-weight:600;line-height:1}.trail-ring strong small{font-size:13px;color:var(--muted)}.trail-ring span{margin-top:32px;position:absolute;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.trail-legend{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0 12px;color:var(--ink-2);font-size:12px;font-weight:700}.trail-legend span{display:inline-flex;align-items:center;gap:6px}.trail-legend i{width:12px;height:12px;border-radius:50%}.trail-legend i.done{background:var(--green)}.trail-legend i.current{background:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}.trail-legend i.locked{background:#c9cfd3}.trail-land{position:relative;overflow:hidden;border-radius:20px;background:#f6f9f4;border:1px solid #d9ebe2}.trail-cloud{position:absolute;z-index:1;width:64px;height:16px;border-radius:20px;background:#ffffffe6;animation:drift 30s linear infinite}.trail-cloud:before,.trail-cloud:after{position:absolute;bottom:0;border-radius:50%;background:inherit;content:""}.trail-cloud:before{left:12px;width:28px;height:28px}.trail-cloud:after{right:6px;width:20px;height:20px}.trail-cloud.c1{top:18px;left:8%}.trail-cloud.c2{top:46px;right:10%;transform:scale(.75);animation-duration:38s}.trail-cloud.c3{top:300px;left:4%;transform:scale(.6);animation-duration:44s}@keyframes drift{0%{translate:0 0}50%{translate:18px 0}to{translate:0 0}}.trail-band{position:absolute;left:0;right:0;border-radius:40px 40px 0 0}.trail-band:after{position:absolute;left:0;right:0;bottom:0;height:16px;background:linear-gradient(0deg,rgba(0,0,0,.03),transparent);content:""}.trail-signpost{position:absolute;top:18px;left:50%;z-index:2;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:100px;background:#fff;box-shadow:var(--shadow-2);transform:translate(-50%);white-space:nowrap}.sp-num{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:#fff;background:var(--deep);font-family:var(--display);font-size:13px;font-weight:600}.sp-copy{display:grid;gap:1px}.sp-copy strong{color:var(--ink);font-size:14px}.sp-copy small{color:var(--muted);font-size:11px;font-weight:700}.sp-star{color:var(--sun-deep)}.trail-road{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%}.trail-stop{position:absolute;z-index:3;display:grid;justify-items:center;gap:6px;width:150px;margin-left:-75px;margin-top:-32px;border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:center}.stop-circle{display:grid;place-items:center;width:64px;height:64px;border:4px solid #fff;border-radius:50%;color:#fff;background:#c9cfd3;box-shadow:0 5px #a9b1b7,0 8px 18px #1f2f4226;transition:transform .15s ease}.trail-stop:hover .stop-circle,.trail-stop.selected .stop-circle{transform:translateY(-3px) scale(1.05)}.trail-stop.complete .stop-circle{background:var(--green);box-shadow:0 5px #2f8a60,0 8px 18px #3fa8774d}.trail-stop.current .stop-circle{background:var(--coral);box-shadow:0 5px 0 var(--coral-deep),0 8px 18px #f26b4e59;animation:pulseRing 2s ease-out infinite}.trail-stop.locked{cursor:pointer}.trail-stop.locked .stop-circle{color:#eef1f2}.stop-label{display:grid;gap:2px;max-width:150px}.stop-label strong{font-size:13px;line-height:1.2;color:var(--ink);text-wrap:balance}.stop-label small{display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--muted);font-size:11px;font-weight:700}.trail-stop.locked .stop-label strong{color:var(--muted)}.trail-stop.selected .stop-label strong{color:var(--coral-deep)}@keyframes pulseRing{0%{outline:0 solid rgba(242,107,78,.45)}to{outline:14px solid rgba(242,107,78,0)}}.trail-mascot{position:absolute;z-index:4;display:grid;justify-items:center;gap:4px}.trail-mascot .mascot-scene{border:0;background:transparent;min-height:110px}.trail-mascot .scene-sun,.trail-mascot .scene-hill,.trail-mascot .floating-note{display:none}.trail-bubble{padding:5px 10px;border-radius:100px;color:var(--ink);background:#fff;box-shadow:var(--shadow-2);font-size:11px;font-weight:800;white-space:nowrap}.trail-finish{position:absolute;z-index:4;bottom:28px;left:50%;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:100px;color:var(--sun-deep);background:#fff;box-shadow:var(--shadow-2);transform:translate(-50%);font-weight:800}.trail-card{position:sticky;bottom:12px;z-index:6;display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fffffff5;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:appear .2s ease-out}.tc-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:14px;color:#fff;background:#c9cfd3}.trail-card.complete .tc-icon{background:var(--green)}.trail-card.current .tc-icon{background:var(--coral)}.tc-copy{flex:1;min-width:0}.tc-copy .eyebrow{margin-bottom:2px;font-size:10px}.tc-copy h3{margin:0;color:var(--ink);font-size:20px}.tc-copy small{display:flex;align-items:center;gap:5px;margin-top:3px;color:var(--muted);font-size:12px;font-weight:700}.tc-done{display:inline-flex;align-items:center;gap:2px;color:var(--green);font-size:13px;font-weight:800}.class-page{animation:appear .24s ease-out}.class-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:240px;padding:12px 0 0}.podium{position:relative;display:flex;align-items:end;justify-content:center;gap:10px;width:280px;height:190px;border-radius:50% 50% 16px 16px;background:var(--sun-soft)}.podium:before{position:absolute;right:12px;bottom:0;left:12px;height:50px;border-radius:12px 12px 0 0;background:#ecc55f;content:""}.podium-person{position:relative;z-index:1;display:grid;place-items:center;width:62px;border-radius:30px 30px 0 0;color:#fff;font-size:12px;font-weight:800}.podium-person span{display:grid;width:40px;height:40px;place-items:center;margin-top:-22px;border:3px solid #fff;border-radius:50%}.podium-person strong{margin:8px 0;font-family:var(--display);font-size:16px}.podium-person.first{height:108px;background:var(--coral)}.podium-person.second{height:82px;background:var(--lilac)}.podium-person.third{height:62px;background:var(--green)}.podium-star{position:absolute;z-index:3;top:12px;color:var(--sun-deep);animation:bob 2s ease-in-out infinite}.leaderboard-card{margin-top:26px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.leaderboard-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line)}.leaderboard-heading h2{font-size:22px;margin-bottom:4px}.leaderboard-heading span{color:var(--muted);font-size:13px}.leaderboard-heading p{display:flex;align-items:center;gap:6px;margin:0;color:var(--coral-deep);font-size:13px;font-weight:800}.ranking-row{display:flex;align-items:center;gap:14px;padding:12px 22px;border-bottom:1px solid var(--line)}.ranking-row:last-child{border:0}.ranking-row.current-student{background:var(--sun-soft)}.rank{width:26px;color:var(--muted);font-family:var(--display);font-size:15px}.current-student .rank{color:var(--coral-deep)}.rank-avatar{display:grid;width:34px;height:34px;flex-shrink:0;place-items:center;border-radius:50%;color:#fff;font-size:11px;font-weight:800}.rank-avatar.purple{background:var(--lilac)}.rank-avatar.yellow{background:var(--sun-deep)}.rank-avatar.coral{background:var(--coral)}.rank-avatar.blue{background:var(--blue)}.rank-avatar.green{background:var(--green)}.student-name{display:flex;flex:1;align-items:center;gap:8px;color:var(--ink);font-size:14px;font-weight:800}.student-name small{padding:3px 7px;border-radius:6px;color:var(--coral-deep);background:var(--coral-soft);font-size:10px}.level-status{display:grid;gap:4px;width:80px;color:var(--ink-2);font-size:11px}.level-status strong{font-size:11px}.level-track{display:block;height:5px;overflow:hidden;border-radius:5px;background:var(--paper-2)}.level-track i{display:block;height:100%;border-radius:inherit;background:var(--sun-deep)}.points{color:var(--ink);font-family:var(--display);font-size:16px}.points small{color:var(--muted);font-family:var(--body);font-size:11px;font-weight:700}.competition-note{margin:14px 0 0;color:var(--muted);text-align:center;font-size:12px}.lesson-page{animation:appear .22s ease-out}.lesson-top{display:flex;align-items:center;gap:18px}.lesson-top>button{display:flex;align-items:center;gap:6px;border:0;color:var(--ink-2);background:transparent;cursor:pointer;font-size:13px;font-weight:800}.lesson-meter{flex:1;height:10px;overflow:hidden;border-radius:10px;background:var(--paper-2)}.lesson-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--green));transition:width .4s ease}.lesson-top>strong{color:var(--ink-2);font-family:var(--display);font-size:14px}.lesson-stage{display:flex;align-items:flex-start;justify-content:center;gap:32px;min-height:560px;padding-top:28px}.lesson-guide{position:sticky;top:100px}.lesson-guide .mascot-scene{width:160px;min-width:160px;min-height:165px}.lesson-card{width:min(100%,580px);padding:32px 36px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.lesson-card h1{font-size:36px}.lesson-description{margin:10px 0 0;color:var(--ink-2);font-size:15px;line-height:1.5}.lesson-type{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;padding:5px 10px;border-radius:100px;background:var(--teal-soft);color:var(--teal-deep);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.listen-button{display:inline-flex;align-items:center;gap:10px;margin:16px 0 6px;padding:12px 16px;border:2px solid var(--teal-soft);border-radius:100px;color:var(--teal-deep);background:#fff;cursor:pointer;font-size:14px;font-weight:800;transition:background .15s ease}.listen-button:hover{background:var(--teal-soft)}.listen-button.playing{border-color:var(--teal);background:var(--teal-soft)}.wave{display:inline-flex;align-items:center;gap:2px;height:16px}.wave i{display:block;width:3px;height:4px;border-radius:2px;background:var(--teal)}.playing .wave i{animation:wave .7s ease-in-out infinite}.wave i:nth-child(2){animation-delay:.1s}.wave i:nth-child(3){animation-delay:.2s}.wave i:nth-child(4){animation-delay:.3s}.wave i:nth-child(5){animation-delay:.15s}@keyframes wave{0%,to{height:4px}50%{height:16px}}.beat-line{display:flex;justify-content:space-between;align-items:center;height:34px;margin:14px 0 20px;border-bottom:2px solid var(--line-2)}.beat-line span{display:grid;place-items:center;width:26px;height:26px;margin-bottom:-14px;border:3px solid #fff;border-radius:50%;background:var(--paper-2);color:var(--muted);font-size:11px;font-weight:800;box-shadow:0 1px 4px #1f2f4226}.beat-line span.on{background:var(--coral);color:#fff}.playing .beat-line span{animation:beat 2s steps(1) infinite}.staff-svg{width:100%;max-width:420px;height:auto;margin:14px 0 12px}.lesson-card h2{margin:12px 0 14px;color:var(--ink);font-size:22px}.lesson-answers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lesson-answer{display:flex;align-items:center;gap:10px;padding:12px;border:2px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;cursor:pointer;text-align:left;transition:border-color .12s ease,transform .12s ease}.lesson-answer:hover{border-color:var(--line-2);transform:translateY(-2px)}.lesson-answer.selected{border-color:var(--coral);background:var(--coral-soft)}.lesson-answer.selected.is-correct{border-color:var(--green);background:var(--green-soft)}.note-symbol{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:12px;color:var(--ink);background:var(--paper-2);font-family:Noto Music,Segoe UI Symbol,Georgia,serif;font-size:22px}.lesson-answer>span:last-child{display:grid;gap:3px;min-width:0;flex:1}.lesson-answer strong{font-size:13px}.lesson-answer small{color:var(--muted);font-size:11px;font-weight:700}.duration-bar{display:block;height:8px;margin-top:4px;border-radius:6px;background:var(--paper-2);overflow:hidden}.duration-bar i{display:block;height:100%;border-radius:inherit;background:var(--coral)}.lesson-feedback{display:grid;gap:4px;margin-top:16px;padding:14px 16px;border-radius:14px;font-size:14px;animation:appear .18s ease-out}.lesson-feedback strong{font-family:var(--display);font-size:17px}.lesson-feedback.correct{color:#23694c;background:var(--green-soft)}.lesson-feedback.retry{color:#9c4632;background:var(--coral-soft)}.lesson-feedback button{display:flex;align-items:center;justify-content:center;gap:5px;width:fit-content;margin-top:8px;padding:9px 14px;border:0;border-radius:10px;color:#fff;background:var(--green);cursor:pointer;font-size:13px;font-weight:800}.lesson-feedback.retry button{background:var(--coral)}.profile-page,.result-page{animation:appear .24s ease-out}.profile-hero{display:flex;align-items:center;gap:18px;padding:12px 0 28px;border-bottom:1px solid var(--line)}.profile-avatar{display:grid;width:80px;height:80px;flex-shrink:0;place-items:center;border:4px solid #fff;border-radius:50%;color:#fff;background:var(--coral);box-shadow:var(--shadow);font-family:var(--display);font-size:26px;font-weight:600}.profile-hero h1{font-size:34px}.profile-hero .intro{margin-top:4px}.guide-mini{display:grid;margin-left:auto;color:var(--ink-2);font-size:11px;font-weight:800;text-align:center}.guide-mini .mascot-scene{width:94px;min-width:94px;min-height:92px;border:0;background:transparent}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.profile-stats div{display:grid;gap:3px;padding:18px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);text-align:center}.profile-stats strong{color:var(--coral-deep);font-family:var(--display);font-size:28px;font-weight:600}.profile-stats span{color:var(--muted);font-size:12px;font-weight:700}.profile-section{margin-top:34px}.achievement-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.achievement-list article{display:grid;gap:8px;align-content:start;min-height:136px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:var(--card)}.achievement-list article>span{display:grid;width:36px;height:36px;place-items:center;border-radius:12px;color:var(--sun-deep);background:var(--sun-soft)}.achievement-list strong{font-size:13px}.achievement-list small{color:var(--muted);font-size:12px;line-height:1.35}.locked-achievement{opacity:.5;filter:grayscale(1)}.history-list{display:grid;gap:8px;margin-top:14px}.history-list div{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font-size:13px}.history-list span{color:var(--muted);font-weight:700}.history-list strong{color:var(--ink)}.history-list small{color:var(--green);font-weight:800}.logout-button{display:flex;align-items:center;gap:6px;margin:30px 0 0 auto;border:1px solid var(--line-2);border-radius:10px;padding:9px 12px;color:var(--coral-deep);background:#fff;cursor:pointer;font-size:12px;font-weight:800}.result-page{display:grid;justify-items:center;max-width:520px;margin:40px auto;padding:44px 30px;border:1px solid var(--line);border-radius:28px;background:var(--card);box-shadow:var(--shadow);text-align:center}.result-stars{display:flex;gap:10px;color:var(--sun-deep)}.result-stars svg:nth-child(2){transform:translateY(-9px) scale(1.25)}.result-stars svg.dim{color:var(--line-2)}.result-medal{display:grid;width:92px;height:92px;place-items:center;margin:22px 0;border-radius:50%;color:#fff;background:var(--coral);box-shadow:0 7px 0 var(--coral-deep)}.result-page h1{font-size:38px}.result-page>p:not(.eyebrow){color:var(--ink-2);font-size:15px;line-height:1.5}.result-rewards{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:14px 0 22px}.result-rewards span{padding:10px 14px;border-radius:12px;color:var(--ink-2);background:var(--green-soft);font-size:13px;font-weight:700}.result-rewards strong{color:#23694c;font-family:var(--display);font-size:16px}.result-button{display:flex;align-items:center;gap:6px;border:0;border-radius:14px;padding:13px 18px;color:#fff;background:var(--ink);cursor:pointer;font-family:var(--display);font-size:16px;font-weight:600}.instructor-shell .content{width:100%}.instructor-page,.assessments-page,.builder-page,.planner-page,.messages-page,.admin-page{animation:appear .24s ease-out}.instructor-welcome,.assessment-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:170px;padding-bottom:8px}.class-chip{display:flex;align-items:center;gap:10px;padding:14px 18px;border:1px solid #cfe6de;border-radius:16px;color:var(--teal-deep);background:var(--teal-soft)}.class-chip span{display:grid;gap:2px}.class-chip strong{font-size:14px}.class-chip small{color:#4f7f77;font-size:12px}.instructor-metrics,.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.instructor-metrics article,.admin-metrics article{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.metric-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:12px}.metric-icon.coral{color:var(--coral-deep);background:var(--coral-soft)}.metric-icon.green{color:var(--green);background:var(--green-soft)}.metric-icon.yellow{color:var(--sun-deep);background:var(--sun-soft)}.metric-icon.blue{color:var(--blue);background:var(--blue-soft)}.instructor-metrics strong,.admin-metrics strong,.assessment-stats strong{display:block;margin-top:12px;color:var(--ink);font-family:var(--display);font-size:30px;font-weight:600}.instructor-metrics strong small,.assessment-stats strong small{font-size:15px;color:var(--muted)}.instructor-metrics p,.admin-metrics span,.assessment-stats span{margin:2px 0 0;color:var(--muted);font-size:12px;font-weight:700}.admin-metrics article{display:grid;gap:4px;color:var(--coral-deep)}.admin-metrics strong{margin-top:4px}.release-card,.planning-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:22px 24px;border-radius:var(--radius);color:#fff;background:linear-gradient(120deg,#1f2f42 0,#2f5470)}.planning-card{background:linear-gradient(120deg,#5f57a8 0,var(--lilac) 100%)}.release-card .eyebrow,.planning-card .eyebrow{color:var(--sun)}.release-card h2,.planning-card h2{margin:0;color:#fff;font-size:20px}.release-card p:not(.eyebrow),.planning-card p:not(.eyebrow){margin:5px 0 0;color:#d3dde4;font-size:13px}.release-card button,.planning-card button{display:flex;align-items:center;gap:6px;border:0;border-radius:12px;padding:11px 14px;color:var(--ink);background:var(--sun);cursor:pointer;font-size:13px;font-weight:800;white-space:nowrap}.release-card button.released{color:#23694c;background:var(--green-soft)}.class-management{margin-top:34px}.student-table{margin-top:16px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.student-table-head,.teacher-student{display:grid;grid-template-columns:34px 1.4fr .65fr 1.15fr 1fr 18px;align-items:center;gap:10px;padding:12px 16px}.student-table-head{color:var(--muted);background:var(--paper-2);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.student-table-head span:first-child{grid-column:span 2}.teacher-student{width:100%;border:0;border-top:1px solid var(--line);color:var(--ink-2);background:transparent;cursor:pointer;text-align:left;font-size:12px}.teacher-student:hover{background:var(--paper)}.teacher-student.attention{background:var(--sun-soft)}.teacher-student-name{display:grid;gap:2px}.teacher-student-name strong{color:var(--ink);font-size:13px}.teacher-student-name small{color:var(--muted);font-size:11px}.teacher-progress{position:relative;display:flex;align-items:center;gap:6px}.teacher-progress i{display:block;width:56px;height:6px;overflow:hidden;border-radius:6px;background:var(--green)}.teacher-progress i:after{display:block;width:100%;height:100%;background:var(--paper-2);content:"";transform:translate(100%)}.teacher-progress small{color:var(--muted)}.last-practice{display:flex;align-items:center;gap:5px;color:var(--ink-2)}.teacher-student.attention .last-practice{color:#b0651f}.student-detail{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding:18px 20px;border-left:4px solid var(--sun-deep);border-radius:var(--radius-sm);color:var(--ink-2);background:var(--sun-soft)}.student-detail h2{font-size:20px}.student-detail p:not(.eyebrow){margin:6px 0 0;font-size:13px}.student-detail button{border:0;border-radius:10px;padding:8px 12px;color:var(--ink-2);background:#fff;cursor:pointer;font-size:12px;font-weight:800}.instructor-tabs{display:flex;gap:4px}.instructor-tabs button{border:0;border-bottom:2px solid transparent;padding:7px 8px;color:var(--muted);background:transparent;cursor:pointer;font-size:12px;font-weight:800}.instructor-tabs button.active{border-color:var(--coral);color:var(--ink)}.instructor-workspace-nav{display:flex;gap:8px;margin-bottom:18px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.instructor-workspace-nav button{flex:0 0 auto;border:1px solid var(--line);border-radius:100px;padding:8px 14px;color:var(--ink-2);background:var(--card);cursor:pointer;font-size:13px;font-weight:800}.instructor-workspace-nav button.active{border-color:var(--ink);color:#fff;background:var(--ink)}.create-assessment{display:flex;align-items:center;gap:6px;border:0;border-radius:14px;padding:12px 16px;color:#fff;background:var(--ink);cursor:pointer;font-size:14px;font-weight:800;white-space:nowrap}.assessment-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.assessment-title{display:flex;align-items:center;gap:14px}.assessment-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:var(--coral-deep);background:var(--coral-soft)}.assessment-title .eyebrow{margin-bottom:3px}.assessment-title h2{margin:0;color:var(--ink);font-size:19px}.assessment-title>div>span{color:var(--muted);font-size:12px;font-weight:700}.assessment-summary>button{border:0;border-radius:12px;padding:10px 14px;color:#fff;background:var(--green);cursor:pointer;font-size:13px;font-weight:800}.assessment-summary>button.unpublish{color:#8a5a1c;background:var(--sun-soft)}.assessment-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.assessment-stats article{display:grid;gap:3px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card)}.assessment-stats strong{margin-top:0}.assessment-results,.question-report{margin-top:32px}.assessment-key{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:700}.assessment-key i{width:8px;height:8px;border-radius:50%;background:var(--green)}.assessment-key i:nth-of-type(2){background:var(--line-2)}.result-students{display:grid;gap:8px;margin-top:14px}.result-students article{display:grid;grid-template-columns:34px 1fr 80px 50px;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card)}.result-students strong{color:var(--ink);font-size:13px}.submission{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:800;text-align:center}.submission.submitted{color:#23694c;background:var(--green-soft)}.submission.pending{color:#8a5a1c;background:var(--sun-soft)}.result-students b{color:var(--ink);font-family:var(--display);font-size:15px;text-align:right}.question-row{display:grid;grid-template-columns:1.2fr 2fr .8fr;align-items:center;gap:12px;margin-top:12px;color:var(--ink-2);font-size:13px;font-weight:700}.question-row>div{height:8px;overflow:hidden;border-radius:8px;background:var(--paper-2)}.question-row i{display:block;height:100%;border-radius:inherit;background:var(--sun-deep)}.question-row strong{color:var(--ink);font-size:12px;text-align:right}.back-button{display:flex;align-items:center;gap:5px;border:0;margin-bottom:18px;color:var(--ink-2);background:transparent;cursor:pointer;font-size:13px;font-weight:800}.builder-heading{display:flex;align-items:center;justify-content:space-between;color:var(--coral)}.builder-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;margin-top:24px}.builder-grid section,.selected-questions,.message-board{padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-2)}.builder-grid h2{margin:0 0 14px;color:var(--ink);font-size:18px}.builder-grid label{display:grid;gap:5px;margin-top:10px;color:var(--ink-2);font-size:12px;font-weight:800}.builder-grid input,.builder-grid select,.invite-form input,.invite-form select,.message-board input{width:100%;border:1.5px solid var(--line-2);border-radius:10px;padding:10px 12px;color:var(--ink);background:#fff;font-size:14px}.builder-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.builder-bank-heading{display:flex;align-items:center;justify-content:space-between}.builder-bank-heading strong{color:var(--coral-deep);font-size:12px}.question-bank-item{display:flex;align-items:center;gap:10px;width:100%;margin-top:8px;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;cursor:pointer;text-align:left}.question-bank-item.selected{border-color:var(--green);background:var(--green-soft)}.question-bank-item>span{display:grid;width:26px;height:26px;flex-shrink:0;place-items:center;border-radius:50%;color:#fff;background:var(--teal)}.question-bank-item div{display:grid;gap:2px}.question-bank-item strong{font-size:13px}.question-bank-item small{color:var(--muted);font-size:11px}.publish-builder{display:flex;align-items:center;gap:6px;margin:18px 0 0 auto;border:0;border-radius:14px;padding:12px 16px;color:#fff;background:var(--ink);cursor:pointer;font-size:14px;font-weight:800}.selected-questions{margin-top:16px}.selected-questions>.section-heading>span{color:var(--muted);font-size:12px;font-weight:700}.selected-questions article{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.selected-questions article>strong{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;color:#fff;background:var(--coral);font-size:12px}.selected-questions article>div{display:grid;flex:1;gap:3px}.selected-questions input{width:100%;border:0;color:var(--ink);background:transparent;font-size:14px;font-weight:800}.selected-questions small{color:var(--muted);font-size:11px}.selected-questions article button{border:0;padding:6px;color:var(--coral-deep);background:transparent;cursor:pointer;font-size:12px;font-weight:800}.calendar-list{display:grid;gap:10px}.calendar-list article{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card)}.calendar-list article>strong{color:var(--coral-deep);font-family:var(--display);font-size:15px}.calendar-list article span{display:grid;gap:3px}.calendar-list article b{color:var(--ink);font-size:14px}.calendar-list article small{color:var(--muted);font-size:12px}.calendar-list article i{padding:5px 8px;border-radius:6px;color:#23694c;background:var(--green-soft);font-size:11px;font-style:normal;font-weight:800}.calendar-list article.upcoming i{color:var(--ink-2);background:var(--paper-2)}.message-icon{color:var(--coral)}.message-board article{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.message-board article>div{flex:1}.message-board strong{color:var(--ink);font-size:13px}.message-board strong small{color:var(--muted);font-size:11px;font-weight:700}.message-board p{margin:5px 0;color:var(--ink-2);font-size:14px;line-height:1.45}.message-board time{color:var(--muted);font-size:11px}.message-board form{display:flex;gap:8px;margin-top:14px}.message-board input{flex:1}.message-board form button{display:grid;place-items:center;width:44px;border:0;border-radius:10px;color:#fff;background:var(--ink);cursor:pointer}.inactivity-alert{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;border-radius:var(--radius-sm);color:#8a5a1c;background:var(--sun-soft)}.inactivity-alert p{flex:1;margin:0;font-size:13px;line-height:1.4}.inactivity-alert button{border:0;border-radius:10px;padding:8px 10px;color:#8a5a1c;background:#fff;cursor:pointer;font-size:12px;font-weight:800;white-space:nowrap}.invite-form{display:grid;grid-template-columns:1.3fr 1.3fr .8fr auto;gap:8px;margin-bottom:18px}.invite-form button{border:0;border-radius:10px;padding:10px 14px;color:#fff;background:var(--green);cursor:pointer;font-size:13px;font-weight:800}.admin-instructors{margin-top:30px}.admin-instructors article{display:grid;grid-template-columns:36px 1fr .6fr .6fr auto;align-items:center;gap:10px;margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card)}.admin-instructors strong{color:var(--ink);font-size:13px}.admin-instructors article>span:not(.rank-avatar){color:var(--muted);font-size:12px;font-weight:700}.admin-instructors button{border:0;border-radius:10px;padding:7px 10px;color:var(--teal-deep);background:var(--teal-soft);cursor:pointer;font-size:12px;font-weight:800}@media (max-width: 1000px){.illustrated-welcome{flex-wrap:wrap}.illustrated-welcome>div:first-child{flex:1 1 100%}.illustrated-welcome .mascot-scene{order:3;width:100%}.track-hero .mascot-scene.compact{display:none}}@media (max-width: 760px){.sidebar{width:72px;padding:20px 10px}.brand{padding:0;justify-content:center}.brand>span:last-child,.nav-item span,.profile-card>div:nth-child(2),.profile-card>svg{display:none}.main-nav{margin-top:36px}.nav-item{justify-content:center;padding:12px}.profile-card{justify-content:center;padding:12px 4px 2px}.welcome-row h1,.track-hero h1,.class-hero h1,.instructor-welcome h1,.assessment-hero h1{font-size:34px}.welcome-row{align-items:flex-start;flex-direction:column}.weekly-progress,.guide-wrap,.guide-wrap .mascot-scene{width:100%}.welcome-row.illustrated-welcome{flex-direction:row}.welcome-row.illustrated-welcome>div:first-child{width:100%;flex:auto}.continue-card{align-items:flex-start;flex-wrap:wrap}.continue-card .primary-button{width:100%}.answer-options,.lesson-answers{grid-template-columns:1fr}.track-hero{align-items:flex-start;flex-direction:column}.track-summary{width:100%}.path-lessons{padding-left:20px}.trail{padding:16px}.trail-head{align-items:flex-start;flex-direction:column}.trail-ring{order:-1}.trail-stop{width:120px;margin-left:-60px}.stop-label strong{font-size:12px}.trail-card{flex-wrap:wrap}.trail-card .primary-button{width:100%}.class-hero{align-items:flex-start;flex-direction:column;gap:18px}.podium{width:100%}.leaderboard-heading{align-items:flex-start;flex-direction:column}.lesson-stage{flex-direction:column;min-height:auto;padding:24px 0}.lesson-guide{display:none}.lesson-card{padding:24px 20px}.profile-stats,.achievement-list,.instructor-metrics,.admin-metrics,.builder-grid{grid-template-columns:repeat(2,1fr)}.guide-mini{display:none}.instructor-welcome,.assessment-hero,.release-card,.planning-card,.inactivity-alert,.student-detail{align-items:flex-start;flex-direction:column}.student-table{overflow-x:auto}.student-table-head,.teacher-student{min-width:620px}.assessment-summary{align-items:flex-start;flex-direction:column}.assessment-stats{grid-template-columns:1fr 1fr}.result-students article{grid-template-columns:34px 1fr 50px}.result-students .submission{display:none}.question-row{grid-template-columns:1fr;gap:5px}.question-row strong{text-align:left}.builder-grid section{grid-column:span 2}.invite-form{grid-template-columns:1fr}.admin-instructors article{grid-template-columns:36px 1fr auto}.admin-instructors article>span:not(.rank-avatar){display:none}}@media (max-width: 500px){.sidebar{display:none}.topbar{height:64px}.breadcrumb span:nth-child(n+2){display:none}.page-content{padding-top:28px}.welcome-row h1,.track-hero h1,.lesson-card h1,.result-page h1{font-size:30px}.header-actions{gap:8px}.track-heading{align-items:flex-start;flex-direction:column;gap:8px}.module-toggle{padding:15px}.path-lessons{padding:0 15px 12px}.start-label{display:none}.trail-stop{width:104px;margin-left:-52px}.stop-circle{width:56px;height:56px}.trail-signpost{max-width:calc(100% - 24px);white-space:normal}.trail-mascot{display:none}}.status-pills{display:flex;gap:8px}.pill{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:100px;font-family:var(--display);font-size:14px;font-weight:600;white-space:nowrap}.pill.streak{color:var(--coral-deep);background:var(--coral-soft)}.pill.notes{color:var(--teal-deep);background:var(--teal-soft)}.pill.level{color:#8a5a1c;background:var(--sun-soft)}.units{position:relative;margin-top:20px;display:grid;gap:26px}.unit-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-radius:20px;color:#fff;background:var(--deep);box-shadow:0 5px 0 var(--dark)}.unit-banner small{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.unit-banner h3{margin:4px 0 2px;color:#fff;font-size:24px}.unit-banner p{margin:0;color:#fff;font-size:13px;opacity:.9}.unit-badge{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;padding:7px 12px;border-radius:100px;background:#ffffff38;font-family:var(--display);font-size:14px;font-weight:600;white-space:nowrap}.unit-done .unit-badge{color:var(--ink);background:var(--sun)}.unit-path{position:relative}.unit-line{position:absolute;left:50%;top:0;transform:translate(-50%);overflow:visible}.node-row{position:absolute;left:0;right:0;display:grid;justify-items:center}.node{position:relative;display:grid;place-items:center;width:76px;height:76px;border:0;border-radius:50%;color:#fff;background:var(--deep);box-shadow:0 7px 0 var(--dark);cursor:pointer;transform:translate(var(--offset));transition:transform .12s ease,box-shadow .12s ease}.node:hover{transform:translate(var(--offset)) translateY(-2px)}.node:active{transform:translate(var(--offset)) translateY(5px);box-shadow:0 2px 0 var(--dark)}.node.locked{color:#a5adb3;background:#e3e7ea;box-shadow:0 7px #c6ccd1}.node.current{animation:nodePulse 2.2s ease-in-out infinite}.node.selected:not(.current){box-shadow:0 7px 0 var(--dark),0 0 0 4px #fff,0 0 0 7px var(--soft)}.node.locked.selected{box-shadow:0 7px #c6ccd1,0 0 0 4px #fff,0 0 0 7px #e3e7ea}.node-face{display:grid;place-items:center}.node-check{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:26px;height:26px;border:3px solid #fff;border-radius:50%;color:#fff;background:var(--green)}.node-start{position:absolute;top:-48px;left:50%;z-index:2;padding:7px 13px;border-radius:12px;color:var(--deep);background:#fff;box-shadow:var(--shadow-2);font-family:var(--display);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;animation:bounceTip 1.4s ease-in-out infinite;cursor:pointer}.node-start:after{position:absolute;left:50%;bottom:-5px;width:12px;height:12px;background:#fff;transform:translate(-50%) rotate(45deg);content:""}.node-title{margin-top:9px;max-width:150px;transform:translate(var(--offset));color:var(--ink-2);font-size:12px;font-weight:800;line-height:1.2;text-align:center;text-wrap:balance}.node.locked+.node-title{color:var(--muted)}.node.selected+.node-title{color:var(--ink)}.node-blob{position:absolute;top:2px;animation:bob 3s ease-in-out infinite}.node-blob.left{left:calc(50% + var(--offset) - 162px)}.node-blob.right{left:calc(50% + var(--offset) + 86px)}.trail-finish{position:static;margin:4px auto 0;transform:none}@keyframes nodePulse{0%,to{box-shadow:0 7px 0 var(--dark),0 0 0 6px #fff,0 0 0 10px var(--soft)}50%{box-shadow:0 7px 0 var(--dark),0 0 0 6px #fff,0 0 0 16px var(--soft)}}@keyframes bounceTip{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-6px)}}.blob-row{display:flex;align-items:end;gap:6px;margin-top:18px}.blob-row .blob{animation:bob 3.2s ease-in-out infinite}.blob-row .blob:nth-child(2){animation-delay:.3s}.blob-row .blob:nth-child(3){animation-delay:.6s}.blob-row .blob:nth-child(4){animation-delay:.9s}.blob-row .blob:nth-child(5){animation-delay:1.2s}.continue-card{background:linear-gradient(120deg,#f26b4e 0,#f9a03f);box-shadow:0 16px 34px #f26b4e47}.continue-card .eyebrow{color:#fff3e0}.continue-card p:not(.eyebrow){color:#ffe7d6}.continue-card .lesson-icon{width:76px;height:76px;border-radius:22px;background:#ffffff38}.continue-card .primary-button{color:var(--coral-deep);background:#fff;box-shadow:0 4px #f0cfc3}.module{border:0;box-shadow:none}.module.blue{background:var(--blue-soft)}.module.coral{background:var(--coral-soft)}.module.yellow{background:var(--sun-soft)}.module.green{background:var(--green-soft)}.module.purple{background:var(--lilac-soft)}.module .module-icon{background:#fff}.module .progress-track{background:#ffffffbf}.module.blue .progress-track span{background:var(--blue)}.module.yellow .progress-track span{background:var(--sun-deep)}.module.green .progress-track span{background:var(--green)}.module.purple .progress-track span{background:var(--lilac)}.module-title span{background:#fffc}.achievement-list article{position:relative;justify-items:center;align-content:start;padding:18px 12px 14px;border:0;text-align:center}.achievement-list article>.badge-shield{width:66px;height:66px;margin-bottom:4px;border-radius:0;color:#fff;background:var(--shield, var(--sun-deep));clip-path:polygon(50% 0,100% 12%,100% 62%,50% 100%,0 62%,0 12%)}.badge-coral{--shield: var(--coral);background:var(--coral-soft)}.badge-lilac{--shield: var(--lilac);background:var(--lilac-soft)}.badge-teal{--shield: var(--teal);background:var(--teal-soft)}.badge-sun{--shield: var(--sun-deep);background:var(--sun-soft)}.badge-stars{display:flex;gap:2px;margin-top:2px;color:var(--line-2)}.badge-stars .on{color:var(--sun-deep)}.locked-achievement{opacity:.55;filter:grayscale(1)}.lesson-top>button{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--muted)}.lesson-top>button:hover{color:var(--ink);background:var(--paper-2)}.lesson-card h1.lesson-question{margin-top:2px;font-size:30px;line-height:1.1}.guide-friend{position:absolute;right:-16px;bottom:-8px;animation:bob 3s ease-in-out infinite}.lesson-answers{margin-top:18px}.lesson-answer{padding:14px;box-shadow:0 3px 0 var(--line)}.lesson-answer.selected{border-color:var(--teal);background:var(--teal-soft);box-shadow:0 3px 0 var(--teal)}.lesson-answer.is-correct{border-color:var(--green);background:var(--green-soft);box-shadow:0 3px 0 var(--green)}.lesson-answer.is-wrong{border-color:var(--coral-deep);background:var(--coral-soft);box-shadow:0 3px 0 var(--coral-deep)}.lesson-answer:disabled{cursor:default;transform:none}.lesson-bar{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:16px 20px;border-top:2px solid var(--line);border-radius:18px 18px 0 0;background:#fbf8f1f7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lesson-bar.correct{border-color:var(--green-soft);background:var(--green-soft)}.lesson-bar.retry{border-color:var(--coral-soft);background:var(--coral-soft)}.bar-hint{color:var(--muted);font-size:14px;font-weight:700}.bar-copy{display:grid;gap:2px}.bar-copy strong{font-family:var(--display);font-size:20px}.bar-copy span{font-size:14px}.lesson-bar.correct .bar-copy{color:#23694c}.lesson-bar.retry .bar-copy{color:#9c4632}.check-button{padding:14px 28px;border:0;border-radius:14px;color:#fff;background:var(--green);box-shadow:0 4px #2c815a;cursor:pointer;font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:transform .1s ease}.check-button:hover:not(:disabled){transform:translateY(-1px)}.check-button:disabled{color:#fff;background:#d5d9dc;box-shadow:0 4px #b9c0c5;cursor:not-allowed}.lesson-bar.retry .check-button{background:var(--coral);box-shadow:0 4px 0 var(--coral-deep)}.tabbar{display:none}@media (max-width: 760px){.sidebar{display:none}.tabbar{position:fixed;z-index:30;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tabbar .tab{display:grid;justify-items:center;gap:3px;padding:7px 2px;border:0;border-radius:12px;color:var(--muted);background:transparent;cursor:pointer;font-size:11px;font-weight:800}.tabbar .tab.active{color:var(--coral-deep);background:var(--coral-soft)}.page-content{padding-bottom:112px}.trail-card{bottom:84px}.lesson-bar{bottom:76px;flex-wrap:wrap}.lesson-bar .check-button{flex:1 1 100%}.status-pills{gap:6px}.status-pills .pill{padding:5px 9px;font-size:13px}.status-pills .pill.level{display:none}.unit-banner{padding:16px 18px}.unit-banner h3{font-size:20px}.node-blob.left{left:calc(50% + var(--offset) - 150px)}.node-blob.right{left:calc(50% + var(--offset) + 78px)}}@media (max-width: 420px){.node-blob{display:none}.node-title{max-width:120px;font-size:11px}}
