.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;background:radial-gradient(900px 500px at 80% -10%,rgba(176,38,255,.2),transparent 60%),radial-gradient(800px 400px at -10% 110%,rgba(0,229,255,.18),transparent 60%),#05060f}.auth-page:before{content:"";position:fixed;inset:auto 0 0 0;height:50vh;pointer-events:none;z-index:0;perspective:600px;perspective-origin:50% 0%;mask-image:linear-gradient(to top,black 20%,transparent 100%);-webkit-mask-image:linear-gradient(to top,black 20%,transparent 100%)}.auth-page:after{content:"";position:fixed;inset:auto 0 0 0;height:50vh;pointer-events:none;z-index:0;transform:rotateX(62deg);background-image:linear-gradient(to right,rgba(0,229,255,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,229,255,.06) 1px,transparent 1px);background-size:60px 60px;animation:auth-grid-floor 14s linear infinite;mask-image:linear-gradient(to top,black 30%,transparent 100%);-webkit-mask-image:linear-gradient(to top,black 30%,transparent 100%);perspective:600px;perspective-origin:50% 0%}@keyframes auth-grid-floor{0%{background-position:0 0}to{background-position:0 60px}}.auth-scanlines{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.auth-logo{font-family:Orbitron,sans-serif;font-size:1.8rem;font-weight:700;letter-spacing:.06em;margin-bottom:36px;position:relative;z-index:2;color:#e8ecff;text-shadow:0 0 20px rgba(0,229,255,.4)}.auth-logo-accent{background:linear-gradient(90deg,#00e5ff,#b026ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 10px rgba(0,229,255,.5))}.auth-card{position:relative;z-index:2;background:linear-gradient(180deg,#0c0f20f5,#070916f5);border:1px solid rgba(0,229,255,.4);border-radius:0;padding:40px 44px;width:100%;max-width:440px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 1px #b026ff33,0 30px 80px #000000b3,0 0 60px #00e5ff26,inset 0 0 40px #00e5ff0a}.auth-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:linear-gradient(180deg,rgba(0,229,255,.05),transparent 30%),repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}.auth-card:after{content:"";position:absolute;top:-1px;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#00e5ff,#b026ff,transparent);box-shadow:0 0 15px #00e5ff99}.auth-corner{position:absolute;width:14px;height:14px;border:1.5px solid #00e5ff;z-index:1;pointer-events:none}.auth-corner--tl{top:-1px;left:-1px;border-right:none;border-bottom:none}.auth-corner--tr{top:-1px;right:-1px;border-left:none;border-bottom:none}.auth-corner--bl{bottom:-1px;left:-1px;border-right:none;border-top:none}.auth-corner--br{bottom:-1px;right:-1px;border-left:none;border-top:none}.auth-card h1{font-family:Orbitron,sans-serif;font-size:1.4rem;font-weight:700;letter-spacing:.08em;color:#e8ecff;margin-bottom:6px;text-transform:uppercase;position:relative;z-index:1}.auth-card p.auth-subtitle{font-family:JetBrains Mono,monospace;color:#8089b0;font-size:.8rem;margin-bottom:28px;letter-spacing:.04em;position:relative;z-index:1}.auth-form{display:flex;flex-direction:column;gap:20px;position:relative;z-index:1}.auth-field{display:flex;flex-direction:column;gap:8px}.auth-field label{font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600;color:#00e5ff;text-transform:uppercase;letter-spacing:.2em;opacity:.85}.auth-field input{background:#0a0c1ccc;border:1px solid rgba(0,229,255,.2);border-radius:0;color:#e8ecff;font-family:JetBrains Mono,monospace;font-size:.9rem;padding:12px 16px;outline:none;transition:all .25s ease;width:100%;box-shadow:inset 0 0 20px #00e5ff08}.auth-field input:focus{border-color:#00e5ffb3;box-shadow:inset 0 0 24px #00e5ff0f,0 0 15px #00e5ff26,0 0 30px #00e5ff14}.auth-field input::placeholder{color:#4a5070;font-style:italic}.auth-error{background:#ef444414;border:1px solid rgba(239,68,68,.35);border-left:3px solid #ef4444;border-radius:0;color:#ff6b6b;font-family:JetBrains Mono,monospace;font-size:.78rem;padding:10px 14px;position:relative;z-index:1;letter-spacing:.02em}.auth-btn{position:relative;z-index:1;background:linear-gradient(180deg,#00e5ff2e,#b026ff2e);border:1px solid rgba(0,229,255,.6);border-radius:0;color:#e8ecff;cursor:pointer;font-family:Orbitron,sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:14px;width:100%;margin-top:4px;transition:all .2s ease;box-shadow:inset 0 0 24px #00e5ff1a,0 0 #00e5ff00;overflow:hidden}.auth-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(0,229,255,.15),transparent);transform:translate(-100%);transition:transform .6s ease}.auth-btn:hover:not(:disabled):before{transform:translate(100%)}.auth-btn:hover:not(:disabled){border-color:#00e5ff;box-shadow:inset 0 0 32px #00e5ff33,0 0 25px #00e5ff59,0 0 50px #b026ff26;transform:translateY(-2px)}.auth-btn:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 0 40px #00e5ff40,0 0 15px #00e5ff33}.auth-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}.auth-btn.auth-loading{animation:auth-btn-pulse 1.5s ease-in-out infinite}@keyframes auth-btn-pulse{0%,to{box-shadow:inset 0 0 24px #00e5ff1a,0 0 #00e5ff00}50%{box-shadow:inset 0 0 32px #00e5ff33,0 0 20px #00e5ff33}}.auth-switch{text-align:center;font-family:JetBrains Mono,monospace;font-size:.8rem;color:#8089b0;margin-top:24px;position:relative;z-index:1;letter-spacing:.02em}.auth-switch button{background:none;border:none;color:#00e5ff;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:inherit;padding:0 4px;font-weight:600;letter-spacing:.04em;transition:all .2s ease;text-shadow:0 0 8px rgba(0,229,255,.4)}.auth-switch button:hover{color:#b026ff;text-shadow:0 0 12px rgba(176,38,255,.5);text-decoration:none}.auth-particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.auth-particle{position:absolute;width:2px;height:2px;background:#00e5ff;border-radius:50%;box-shadow:0 0 6px #00e5ff99;animation:auth-float linear infinite;opacity:0}.auth-particle:nth-child(odd){background:#b026ff;box-shadow:0 0 6px #b026ff99}.auth-particle:nth-child(1){left:10%;animation-duration:12s;animation-delay:0s}.auth-particle:nth-child(2){left:20%;animation-duration:15s;animation-delay:2s}.auth-particle:nth-child(3){left:35%;animation-duration:10s;animation-delay:4s}.auth-particle:nth-child(4){left:50%;animation-duration:18s;animation-delay:1s}.auth-particle:nth-child(5){left:65%;animation-duration:13s;animation-delay:3s}.auth-particle:nth-child(6){left:75%;animation-duration:16s;animation-delay:5s}.auth-particle:nth-child(7){left:85%;animation-duration:11s;animation-delay:.5s}.auth-particle:nth-child(8){left:45%;animation-duration:14s;animation-delay:6s}@keyframes auth-float{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.7}90%{opacity:.7}to{transform:translateY(-10vh) scale(1.5);opacity:0}}.auth-logo:hover .auth-logo-accent{animation:auth-glitch .3s ease-in-out}@keyframes auth-glitch{0%{transform:translate(0);filter:drop-shadow(0 0 10px rgba(0,229,255,.5))}25%{transform:translate(2px,-1px);filter:drop-shadow(-2px 0 rgba(255,0,0,.5)) drop-shadow(2px 0 rgba(0,255,255,.5))}50%{transform:translate(-1px,1px);filter:drop-shadow(1px 0 rgba(255,0,0,.5)) drop-shadow(-1px 0 rgba(0,255,255,.5))}75%{transform:translate(1px,-2px);filter:drop-shadow(-1px 0 rgba(255,0,0,.5)) drop-shadow(1px 0 rgba(0,255,255,.5))}to{transform:translate(0);filter:drop-shadow(0 0 10px rgba(0,229,255,.5))}}.auth-section-tag{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid rgba(0,229,255,.3);background:#00e5ff0a;color:#00e5ff;font-family:JetBrains Mono,monospace;font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;margin-bottom:16px;position:relative;z-index:1}.auth-section-tag:before{content:"";width:6px;height:6px;background:#00e5ff;display:inline-block;box-shadow:0 0 8px #00e5ff;animation:auth-dot-pulse 1.4s ease-in-out infinite}@keyframes auth-dot-pulse{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@media (max-width: 480px){.auth-card{padding:28px 24px}.auth-logo{font-size:1.4rem}.auth-card h1{font-size:1.1rem}}.dashboard-page{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden;background:radial-gradient(900px 500px at 80% -10%,rgba(176,38,255,.2),transparent 60%),radial-gradient(800px 400px at -10% 110%,rgba(0,229,255,.18),transparent 60%),#05060f}.dashboard-page:before{content:"";position:fixed;inset:auto 0 0 0;height:50vh;pointer-events:none;z-index:0;perspective:600px;perspective-origin:50% 0%;mask-image:linear-gradient(to top,black 20%,transparent 100%);-webkit-mask-image:linear-gradient(to top,black 20%,transparent 100%)}.dashboard-page:after{content:"";position:fixed;inset:auto 0 0 0;height:50vh;pointer-events:none;z-index:0;transform:rotateX(62deg);background-image:linear-gradient(to right,rgba(0,229,255,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,229,255,.06) 1px,transparent 1px);background-size:60px 60px;animation:dashboard-grid-floor 14s linear infinite;mask-image:linear-gradient(to top,black 30%,transparent 100%);-webkit-mask-image:linear-gradient(to top,black 30%,transparent 100%);perspective:600px;perspective-origin:50% 0%}@keyframes dashboard-grid-floor{0%{background-position:0 0}to{background-position:0 60px}}.dashboard-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 32px;background:linear-gradient(180deg,#0c0f20f7,#070916eb);border-bottom:1px solid rgba(0,229,255,.35);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 4px 30px #00000080,0 0 40px #00e5ff0f}.dashboard-header:after{content:"";position:absolute;bottom:-1px;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,#00e5ff,#b026ff,transparent);box-shadow:0 0 12px #00e5ff80}.dashboard-logo{margin-bottom:0!important;position:relative;z-index:2}.dashboard-header-actions{display:flex;align-items:center;gap:12px;position:relative;z-index:2;flex-wrap:wrap;justify-content:flex-end}.dashboard-btn-icon{width:16px;height:16px;flex-shrink:0}.dashboard-profile-link,.dashboard-back-btn,.dashboard-logout{display:inline-flex;align-items:center;gap:8px;background:#0a0c1ccc;border:1px solid rgba(0,229,255,.25);border-radius:0;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;transition:all .2s ease}.dashboard-profile-link{color:#8089b0}.dashboard-profile-link:hover{border-color:#00e5ffb3;color:#00e5ff;box-shadow:0 0 20px #00e5ff26;text-shadow:0 0 8px rgba(0,229,255,.3)}.dashboard-back-btn{color:#8089b0}.dashboard-back-btn:hover{border-color:#00e5ffb3;color:#00e5ff;box-shadow:0 0 20px #00e5ff26}.dashboard-user-greeting{font-family:JetBrains Mono,monospace;font-size:.78rem;color:#8089b0;letter-spacing:.04em}.dashboard-user-greeting strong{color:#e8ecff;font-weight:600;text-shadow:0 0 10px rgba(0,229,255,.3)}.dashboard-logout{color:#8089b0}.dashboard-logout:hover{border-color:#ef4444b3;color:#ff6b6b;box-shadow:0 0 20px #ef444433;text-shadow:0 0 8px rgba(239,68,68,.4)}.dashboard-main{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:48px 32px 80px;position:relative;z-index:2}.dashboard-welcome{margin-bottom:44px}.dashboard-welcome .auth-section-tag{margin-bottom:18px}.dashboard-welcome h1{font-family:Orbitron,sans-serif;font-size:1.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#e8ecff;margin-bottom:10px;text-shadow:0 0 30px rgba(0,229,255,.25)}.dashboard-welcome p{font-family:JetBrains Mono,monospace;color:#8089b0;font-size:.82rem;letter-spacing:.04em}.dashboard-main--profile{max-width:620px}.dashboard-profile-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 600px){.dashboard-profile-row{grid-template-columns:1fr}}.dashboard-profile-panel--page{position:static;top:auto}.dashboard-section-title{font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.25em;color:#00e5ff;opacity:.85;margin-bottom:18px;display:flex;align-items:center;gap:10px}.dashboard-section-title:before{content:"";width:6px;height:6px;background:#00e5ff;box-shadow:0 0 8px #00e5ff;animation:dashboard-dot-pulse 1.4s ease-in-out infinite}@keyframes dashboard-dot-pulse{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.dashboard-courses{display:flex;flex-direction:column;gap:20px}.dashboard-courses-status{margin:0;color:#c8dcffa6;font-size:.95rem}.course-card{position:relative;background:linear-gradient(180deg,#0c0f20f5,#070916f5);border:1px solid rgba(0,229,255,.35);border-radius:0;padding:28px 32px;cursor:pointer;text-align:left;width:100%;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 1px #b026ff26,0 16px 50px #00000080,0 0 40px #00e5ff14,inset 0 0 30px #00e5ff08;transition:all .25s ease;overflow:hidden}.course-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,229,255,.04),transparent 40%),repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px)}.course-card:after{content:"";position:absolute;top:-1px;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,rgba(0,229,255,.6),transparent);opacity:0;transition:opacity .25s ease}.course-card:hover{border-color:#00e5ffcc;transform:translateY(-3px);box-shadow:0 0 0 1px #b026ff4d,0 24px 60px #0009,0 0 50px #00e5ff33,inset 0 0 40px #00e5ff0f}.course-card:hover:after{opacity:1;box-shadow:0 0 15px #00e5ff80}.course-card>*{position:relative;z-index:1}.course-card-meta{display:flex;align-items:center;gap:12px;margin-bottom:14px}.course-card-badge{font-family:JetBrains Mono,monospace;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:#00e5ff;background:#00e5ff14;border:1px solid rgba(0,229,255,.35);border-radius:0;padding:4px 10px;box-shadow:0 0 12px #00e5ff26}.course-card-stats{font-family:JetBrains Mono,monospace;font-size:.7rem;color:#8089b0;letter-spacing:.03em}.course-card h2{font-family:Orbitron,sans-serif;font-size:1.05rem;font-weight:700;letter-spacing:.04em;line-height:1.4;color:#e8ecff;margin-bottom:8px}.course-card-subtitle{font-family:JetBrains Mono,monospace;font-size:.82rem;color:#00e5ff;font-weight:500;margin-bottom:12px;letter-spacing:.03em;text-shadow:0 0 10px rgba(0,229,255,.3)}.course-card-desc{font-family:JetBrains Mono,monospace;font-size:.8rem;color:#8089b0;line-height:1.6;margin-bottom:18px;letter-spacing:.02em}.course-card-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.course-card-tag{font-family:JetBrains Mono,monospace;font-size:.65rem;color:#8089b0;background:#0a0c1ccc;border:1px solid rgba(0,229,255,.15);border-radius:0;padding:4px 10px;letter-spacing:.06em;text-transform:uppercase;transition:border-color .2s ease,color .2s ease}.course-card:hover .course-card-tag{border-color:#00e5ff59;color:#a0a8c8}.course-card-cta{display:inline-flex;align-items:center;gap:8px;font-family:Orbitron,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#00e5ff;text-shadow:0 0 10px rgba(0,229,255,.4)}.course-card-cta:after{content:"▸";transition:transform .2s ease}.course-card:hover .course-card-cta:after{transform:translate(5px)}.course-card:hover .course-card-cta{color:#b026ff;text-shadow:0 0 12px rgba(176,38,255,.5)}.dashboard-profile-panel{position:relative;background:linear-gradient(180deg,#0c0f20f5,#070916f5);border:1px solid rgba(0,229,255,.4);border-radius:0;padding:32px 36px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 1px #b026ff33,0 30px 80px #000000b3,0 0 60px #00e5ff1f,inset 0 0 40px #00e5ff0a;position:sticky;top:92px;overflow:hidden}.dashboard-profile-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:linear-gradient(180deg,rgba(0,229,255,.05),transparent 30%),repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}.dashboard-profile-panel:after{content:"";position:absolute;top:-1px;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#00e5ff,#b026ff,transparent);box-shadow:0 0 15px #00e5ff99}.dashboard-profile-panel>*{position:relative;z-index:1}.dashboard-profile-panel h2{font-family:Orbitron,sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#e8ecff;margin-bottom:6px}.dashboard-profile-panel .auth-subtitle{margin-bottom:24px}.dashboard-success{background:#22c55e14;border:1px solid rgba(34,197,94,.35);border-left:3px solid #22c55e;border-radius:0;color:#4ade80;font-family:JetBrains Mono,monospace;font-size:.78rem;padding:10px 14px;margin-bottom:16px;letter-spacing:.02em}.dashboard-profile-divider{border:none;border-top:1px solid rgba(0,229,255,.2);margin:22px 0}.dashboard-profile-hint{font-family:JetBrains Mono,monospace;font-size:.72rem;color:#4a5070;margin-top:-8px;letter-spacing:.02em;font-style:italic}@media (max-width: 600px){.dashboard-header{padding:12px 16px;height:auto;min-height:64px;flex-wrap:wrap;gap:12px}.dashboard-user-greeting{width:100%;text-align:right}.dashboard-main{padding:32px 16px 64px}.course-card{padding:22px 20px}.dashboard-profile-panel{padding:24px 20px}.dashboard-welcome h1{font-size:1.2rem}}.devnodo-root{--bg: #05060f;--bg-2: #0a0b1a;--ink: #e8ecff;--ink-dim: #8089b0;--cyan: #00e5ff;--violet: #b026ff;--green: #39ff14;--amber: #ffb020;--grid: rgba(0, 229, 255, .07);min-height:100vh;color:var(--ink);font-family:JetBrains Mono,ui-monospace,monospace;background:radial-gradient(1200px 700px at 80% -10%,rgba(176,38,255,.18),transparent 60%),radial-gradient(1100px 600px at -10% 110%,rgba(0,229,255,.16),transparent 60%),var(--bg);overflow-x:hidden;position:relative}.devnodo-root:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.devnodo-grid-floor{position:fixed;inset:auto 0 0 0;height:55vh;pointer-events:none;z-index:0;perspective:600px;perspective-origin:50% 0%;mask-image:linear-gradient(to top,black 30%,transparent 100%);-webkit-mask-image:linear-gradient(to top,black 30%,transparent 100%)}.devnodo-grid-floor:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateX(62deg);background-image:linear-gradient(to right,var(--grid) 1px,transparent 1px),linear-gradient(to bottom,var(--grid) 1px,transparent 1px);background-size:60px 60px;animation:devnodo-floor 14s linear infinite}@keyframes devnodo-floor{0%{background-position:0 0}to{background-position:0 60px}}.devnodo-path-wrap{position:relative;z-index:1;padding:8rem 1.5rem 10rem}.devnodo-path-inner{max-width:80rem;margin:0 auto;position:relative}.devnodo-hud{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#0a0c1cc7;border-bottom:1px solid rgba(0,229,255,.22);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media (min-width: 768px){.devnodo-hud{gap:1.25rem;padding:.75rem 1.5rem}}.devnodo-hud-brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.devnodo-hud-logo{position:relative;width:2.25rem;height:2.25rem}.devnodo-hud-logo-outer{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(45deg);background:linear-gradient(to bottom right,#22d3ee,#d946ef);box-shadow:0 0 20px #00e5ff99}.devnodo-hud-logo-inner{position:absolute;top:6px;right:6px;bottom:6px;left:6px;transform:rotate(45deg);background:#05060f;display:flex;align-items:center;justify-content:center}.devnodo-hud-logo-inner span{transform:rotate(-45deg);font-family:Orbitron,sans-serif;font-weight:800;font-size:.875rem;color:#67e8f9}.devnodo-hud-title{line-height:1.2}.devnodo-hud-title-main{font-family:Orbitron,sans-serif;font-weight:700;font-size:.875rem;letter-spacing:.15em}.devnodo-hud-title-sub{display:none;font-size:.625rem;color:var(--ink-dim);letter-spacing:.3em}@media (min-width: 640px){.devnodo-hud-title-sub{display:block}}.devnodo-hud-divider{height:2.25rem;width:1px;background:#00e5ff33;flex-shrink:0}.devnodo-hud-xp-block{flex:1;min-width:180px}.devnodo-hud-rank-row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem;flex-wrap:wrap}.devnodo-hud-rank-label{font-size:.625rem;color:var(--ink-dim);letter-spacing:.3em;flex-shrink:0}.devnodo-hud-rank-name{font-family:Orbitron,sans-serif;font-weight:700;font-size:1rem;color:#fff}.devnodo-hud-xp-text{margin-left:auto;font-size:.6875rem;color:#67e8f9;flex-shrink:0}.devnodo-hud-xp-text span{color:var(--ink-dim)}.devnodo-xp-track{background:linear-gradient(90deg,#0e1226,#131836);border:1px solid #1f2547;height:6px;width:100%;overflow:hidden}.devnodo-xp-fill{height:100%;background:linear-gradient(90deg,#00e5ff,#b026ff);box-shadow:0 0 12px #00e5ff8c,0 0 24px #b026ff66;position:relative;overflow:hidden;transition:width .4s ease}.devnodo-xp-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:devnodo-shimmer 2.4s linear infinite}@keyframes devnodo-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.devnodo-hud-stats{display:none;align-items:center;gap:1rem;flex-shrink:0}@media (min-width: 1024px){.devnodo-hud-stats{display:flex}}.devnodo-stat-chip{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.devnodo-stat-label{font-size:.5625rem;letter-spacing:.3em;color:var(--ink-dim)}.devnodo-stat-value{font-family:Orbitron,sans-serif;font-weight:700;font-size:1rem}.devnodo-stat-unit{font-size:.625rem;color:var(--ink-dim);margin-left:.25rem;font-family:JetBrains Mono,monospace;font-weight:400}.devnodo-btn-back{border:1px solid #2a3057;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.2em;font-size:.625rem;padding:.625rem 1rem;background:transparent;cursor:pointer;transition:all .2s;flex-shrink:0;font-family:JetBrains Mono,monospace}.devnodo-btn-back:hover{border-color:#00e5ff;color:var(--ink)}.hex{--hex-size: 132px;width:var(--hex-size);height:calc(var(--hex-size) * 1.1547);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);position:relative;transition:transform .32s cubic-bezier(.2,.7,.2,1.2),filter .32s;transform-style:preserve-3d;border:none;padding:0;background:none}.hex-inner{position:absolute;top:3px;right:3px;bottom:3px;left:3px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(180deg,#0b0e1c,#060814)}.hex-label{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase}.hex-num{font-family:Orbitron,sans-serif;font-weight:700;font-size:28px}.hex.completed{background:conic-gradient(from 0deg,#39ff14,#00e5ff,#39ff14);animation:devnodo-spin 8s linear infinite}.hex.completed .hex-num{color:#39ff14;text-shadow:0 0 14px rgba(57,255,20,.7)}.hex.completed .hex-label{color:#9ef7a8}.hex.completed:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;clip-path:inherit;background:radial-gradient(closest-side,rgba(57,255,20,.35),transparent 70%);filter:blur(8px);z-index:-1;animation:devnodo-pulse 2.6s ease-in-out infinite}.hex.active{background:conic-gradient(from 0deg,#00e5ff,#b026ff,#00e5ff);animation:devnodo-spin 5s linear infinite}.hex.active .hex-num{color:#fff;text-shadow:0 0 18px rgba(0,229,255,.9),0 0 36px rgba(176,38,255,.6)}.hex.active .hex-label{color:#bfeaff}.hex.active:after{content:"";position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;clip-path:inherit;background:radial-gradient(closest-side,rgba(0,229,255,.55),rgba(176,38,255,.25) 50%,transparent 75%);filter:blur(14px);z-index:-1;animation:devnodo-pulse-strong 2s ease-in-out infinite}.hex.locked{background:linear-gradient(180deg,#1a1d2e,#0f1120);opacity:.55;cursor:not-allowed}.hex.locked .hex-inner{background:linear-gradient(180deg,#0b0d18,#07091a)}.hex.locked .hex-num,.hex.locked .hex-label{color:#3a3f55}@keyframes devnodo-spin{to{filter:hue-rotate(360deg)}}@keyframes devnodo-pulse{0%,to{opacity:.55}50%{opacity:.95}}@keyframes devnodo-pulse-strong{0%,to{opacity:.55;transform:scale(.98)}50%{opacity:1;transform:scale(1.04)}}.hex.tilt:hover:not(.locked){transform:rotateX(8deg) rotateY(-12deg) scale(1.08);filter:brightness(1.18) saturate(1.2)}.hex.active .hex-inner{animation:devnodo-flicker 4s infinite}@keyframes devnodo-flicker{0%,96%,to{opacity:1}97%{opacity:.7;transform:translate(1px,-1px)}98%{opacity:1;transform:translate(-1px,1px)}}.unlock-flash{animation:devnodo-unlock .9s ease-out 1}@keyframes devnodo-unlock{0%{filter:brightness(3) saturate(1.5);transform:scale(1.25)}60%{filter:brightness(1.4);transform:scale(.97)}to{filter:brightness(1);transform:scale(1)}}.complete-flash{animation:devnodo-complete .9s ease-out 1}@keyframes devnodo-complete{0%{transform:scale(1)}30%{transform:scale(1.18) rotate(-4deg);filter:brightness(1.8) drop-shadow(0 0 30px #39ff14)}to{transform:scale(1) rotate(0);filter:brightness(1)}}.hex-node-wrap{position:absolute}.hex-caption{position:absolute;left:50%;transform:translate(-50%);top:calc(100% + 0px);text-align:center;width:220px}.hex-caption-status{font-size:.625rem;letter-spacing:.3em;margin-bottom:.25rem}.hex-caption-status.active{color:#67e8f9}.hex-caption-status.completed{color:#34d399}.hex-caption-status.locked{color:var(--ink-dim)}.hex-caption-title{font-family:Orbitron,sans-serif;font-weight:700;font-size:.875rem;color:#fff}.hex-caption-title.locked{color:#3a3f55}.hex-caption-sub{font-size:.6875rem;color:var(--ink-dim)}.hex-caption-sub.locked{color:#2c3146}.lock-icon{width:22px;height:22px}.devnodo-cables{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;pointer-events:none;z-index:1}.cable{stroke-dasharray:6 10;animation:devnodo-dash 1.2s linear infinite}@keyframes devnodo-dash{to{stroke-dashoffset:-32}}.devnodo-chapter-marker{position:absolute;left:1.5rem;right:1.5rem}.devnodo-chapter-row{display:flex;align-items:center;gap:.75rem}.devnodo-section-tag{display:inline-flex;align-items:center;gap:10px;padding:6px 14px;border:1px solid rgba(0,229,255,.35);background:#00e5ff0d;color:var(--cyan);font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.3em;text-transform:uppercase}.devnodo-section-tag:before{content:"";width:8px;height:8px;background:var(--cyan);box-shadow:0 0 10px var(--cyan);animation:devnodo-pulse 1.4s ease-in-out infinite}.devnodo-chapter-line{flex:1;height:1px;background:linear-gradient(to right,rgba(0,229,255,.4),transparent)}.devnodo-end-marker{position:absolute;left:50%;transform:translate(-50%);text-align:center}.devnodo-end-title{font-family:Orbitron,sans-serif;font-weight:800;font-size:1.5rem;background:linear-gradient(90deg,#00e5ff,#b026ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.devnodo-end-sub{font-size:.6875rem;letter-spacing:.3em;color:var(--ink-dim);margin-top:.25rem}.devnodo-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(800px 500px at 50% 50%,rgba(176,38,255,.15),transparent 60%),#02030cc7}.devnodo-modal-card{position:relative;width:100%;max-width:42rem;padding:2.5rem;background:linear-gradient(180deg,#0c0f20f5,#070916f5);border:1px solid rgba(0,229,255,.45);box-shadow:0 0 0 1px #b026ff40,0 30px 90px #000000b3,0 0 60px #00e5ff40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.devnodo-modal-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,229,255,.06),transparent 30%),repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 3px)}.devnodo-corner{position:absolute;width:16px;height:16px;border:1.5px solid #00e5ff;z-index:1}.devnodo-corner.tl{top:-1px;left:-1px;border-right:none;border-bottom:none}.devnodo-corner.tr{top:-1px;right:-1px;border-left:none;border-bottom:none}.devnodo-corner.bl{bottom:-1px;left:-1px;border-right:none;border-top:none}.devnodo-corner.br{bottom:-1px;right:-1px;border-left:none;border-top:none}.devnodo-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--ink-dim);font-family:JetBrains Mono,monospace;font-size:.75rem;cursor:pointer;z-index:2}.devnodo-modal-close:hover{color:#67e8f9}.devnodo-modal-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;position:relative;z-index:1;flex-wrap:wrap}.devnodo-modal-tag-active{font-size:.625rem;letter-spacing:.3em;color:#e879f9}.devnodo-modal-title{font-family:Orbitron,sans-serif;font-weight:700;font-size:2.25rem;color:#fff;margin-bottom:.5rem;line-height:1.2;position:relative;z-index:1}.devnodo-modal-sub{font-size:1rem;color:var(--ink-dim);margin-bottom:2rem;position:relative;z-index:1}.devnodo-modal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:2rem;position:relative;z-index:1}.devnodo-modal-stat{background:#080a18b3;border:1px solid rgba(0,229,255,.15);padding:1rem}.devnodo-modal-stat-label{font-size:.5625rem;letter-spacing:.3em;color:var(--ink-dim);margin-bottom:.25rem}.devnodo-modal-stat-value{font-family:Orbitron,sans-serif;font-weight:700;font-size:1.5rem}.devnodo-modal-stat-unit{font-size:.625rem;font-family:JetBrains Mono,monospace;color:var(--ink-dim)}.devnodo-modal-briefing{border-top:1px solid rgba(0,229,255,.2);padding-top:1.5rem;margin-bottom:2rem;position:relative;z-index:1}.devnodo-modal-briefing-label{font-size:.625rem;letter-spacing:.3em;color:var(--ink-dim);margin-bottom:.75rem}.devnodo-modal-briefing p{font-size:.875rem;line-height:1.6}.devnodo-modal-briefing .text-cyan{color:#67e8f9}.devnodo-modal-briefing .text-violet{color:#e879f9}.devnodo-modal-actions{display:flex;align-items:center;gap:.75rem;position:relative;z-index:1}.devnodo-btn-neon{position:relative;background:linear-gradient(180deg,#00e5ff2e,#b026ff2e);border:1px solid rgba(0,229,255,.6);color:#e8ecff;text-transform:uppercase;letter-spacing:.2em;font-family:Orbitron,sans-serif;font-weight:700;font-size:.875rem;padding:1rem 2rem;cursor:pointer;transition:all .2s;box-shadow:inset 0 0 24px #00e5ff26;overflow:hidden;flex:1}.devnodo-btn-neon:hover{border-color:#00e5ff;box-shadow:inset 0 0 32px #00e5ff4d,0 0 28px #00e5ff73;transform:translateY(-1px)}.devnodo-btn-ghost{border:1px solid #2a3057;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;padding:1rem 1.5rem;background:transparent;cursor:pointer;font-family:JetBrains Mono,monospace;transition:all .2s}.devnodo-btn-ghost:hover{border-color:#00e5ff;color:var(--ink)}.devnodo-toast{position:fixed;bottom:4rem;left:50%;transform:translate(-50%);z-index:40;padding:.75rem 1.5rem;background:#0a0c1cc7;border:1px solid rgba(57,255,20,.55);box-shadow:0 0 28px #39ff144d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.875rem;color:#6ee7b7}.devnodo-footer{position:fixed;bottom:0;left:0;right:0;z-index:20;padding:.5rem 1.5rem;border-top:1px solid rgba(0,229,255,.15);background:#0006;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:.625rem;color:var(--ink-dim);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.devnodo-footer .online{color:#34d399}.devnodo-footer .hint{color:#67e8f9}.devnodo-root ::-webkit-scrollbar{width:8px}.devnodo-root ::-webkit-scrollbar-track{background:#06081a}.devnodo-root ::-webkit-scrollbar-thumb{background:linear-gradient(#00e5ff,#b026ff);border-radius:8px}@media (max-width: 640px){.devnodo-modal-stats{grid-template-columns:1fr}.devnodo-modal-title{font-size:1.5rem}.hex{--hex-size: 110px}}.devnodo-root--loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100vh}.devnodo-loading-text{margin:0;color:var(--ink-dim);font-size:.95rem}.devnodo-loading-text--error{color:#ff6b6b}.devnodo-course-title{position:absolute;top:12px;left:50%;transform:translate(-50%);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#00e5ffbf;white-space:nowrap}.code-editor-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#1e1e1e}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface2);border-bottom:1px solid var(--border)}.py-status{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted)}.py-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-ready .py-status-dot{background:var(--success)}.status-error .py-status-dot{background:var(--error)}.status-loading .py-status-dot{background:var(--warning);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.run-btn{display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.run-btn:hover:not(:disabled){background:var(--accent-hover)}.run-btn:disabled{opacity:.5;cursor:not-allowed}.run-shortcut{font-size:.7rem;opacity:.7;font-weight:400}.output-panel{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;min-height:80px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem}.output-empty{color:var(--text-muted);display:flex;align-items:center;gap:6px}.output-empty kbd{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:.78rem;font-family:inherit}.output-running{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.output-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.output-ok{border-color:var(--success);background:#22c55e0d}.output-error{border-color:var(--error);background:#ef44440d}.output-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;color:var(--text-muted)}.output-ok .output-label{color:var(--success)}.output-error .output-label{color:var(--error)}.output-text{white-space:pre-wrap;word-break:break-word;color:var(--text)}.exercise-panel{display:flex;flex-direction:column;gap:16px}.exercise-progress{display:flex;align-items:center;gap:12px}.progress-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.progress-tabs{display:flex;gap:6px}.progress-tab{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.progress-tab.active{border-color:var(--accent);color:var(--accent)}.progress-tab.done{background:var(--success);border-color:var(--success);color:#fff}.progress-count{font-size:.8rem;color:var(--text-muted);margin-left:auto}.exercise-header{display:flex;flex-direction:column;gap:6px}.exercise-title{font-size:1.05rem;font-weight:600}.exercise-desc{color:var(--text-muted);font-size:.9rem;line-height:1.5}.exercise-actions{display:flex;gap:10px;align-items:center}.hint-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:6px 12px;border-radius:6px;font-size:.82rem;cursor:pointer;transition:all .15s}.hint-btn:hover{border-color:var(--accent);color:var(--accent)}.next-btn{background:var(--success);border:none;color:#fff;padding:6px 16px;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;margin-left:auto;transition:opacity .15s}.next-btn:hover{opacity:.85}.hint-box{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius);padding:12px 16px;font-size:.88rem;display:flex;gap:10px;align-items:flex-start;color:var(--text)}.hint-icon{font-size:1rem;flex-shrink:0}.validation-result{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius);font-size:.88rem;font-weight:500}.result-ok{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:var(--success)}.result-fail{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--error)}.html-preview-frame{width:100%;height:240px;border:none;background:#fff;display:block}.tutor-chat{display:flex;flex-direction:column;height:100%;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.tutor-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface2)}.tutor-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#a78bfa);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}.tutor-name{font-weight:600;font-size:.9rem}.tutor-subtitle{font-size:.75rem;color:var(--text-muted)}.tutor-badge{margin-left:auto;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:99px}.tutor-badge-live{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:var(--success)}.tutor-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.message{display:flex;gap:8px;align-items:flex-start}.message-user{flex-direction:row-reverse}.msg-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#a78bfa);display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;flex-shrink:0;margin-top:2px}.msg-bubble{max-width:85%;padding:10px 14px;border-radius:12px;font-size:.88rem;line-height:1.5;background:var(--surface2);border:1px solid var(--border)}.message-user .msg-bubble{background:var(--accent);border-color:transparent;color:#fff}.msg-typing{display:flex;gap:4px;align-items:center;padding:14px}.msg-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typing 1s infinite}.msg-typing span:nth-child(2){animation-delay:.2s}.msg-typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.tutor-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);background:var(--surface2)}.tutor-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 12px;font-size:.88rem;font-family:inherit;resize:none;line-height:1.4;max-height:120px}.tutor-input:focus{outline:none;border-color:var(--accent)}.tutor-send{width:36px;height:36px;border-radius:8px;background:var(--accent);border:none;color:#fff;font-size:1rem;cursor:pointer;flex-shrink:0;align-self:flex-end;transition:background .15s}.tutor-send:hover:not(:disabled){background:var(--accent-hover)}.tutor-send:disabled{opacity:.4;cursor:not-allowed}.lesson-page{display:grid;grid-template-columns:380px 1fr;height:100%;min-height:0;overflow:hidden;width:100%}.lesson-sidebar{border-right:1px solid var(--border);overflow-y:auto;padding:28px 24px;display:flex;flex-direction:column;gap:28px}.lesson-meta{display:flex;flex-direction:column;gap:8px}.lesson-badge{display:inline-flex;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:99px;padding:2px 10px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;width:fit-content}.lesson-title{font-size:1.4rem;font-weight:700;line-height:1.3}.lesson-subtitle{color:var(--text-muted);font-size:.85rem}.lesson-sections{display:flex;flex-direction:column;gap:28px}.lesson-section{display:flex;flex-direction:column;gap:10px}.section-title{font-size:1rem;font-weight:600;color:var(--text)}.section-content{font-size:.88rem;color:var(--text-muted);line-height:1.65;white-space:pre-line}.section-content strong{color:var(--text);font-weight:600}.section-content code{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:.82em;color:#c4b5fd}.example-block{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.example-label{padding:6px 12px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border)}.example-code{padding:12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;color:#c4b5fd;white-space:pre-wrap;line-height:1.6;overflow-x:auto}.example-try-btn{display:block;width:100%;background:transparent;border:none;border-top:1px solid var(--border);color:var(--accent);padding:8px 12px;font-size:.8rem;font-weight:600;text-align:left;cursor:pointer;transition:background .15s}.example-try-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.lesson-workspace{display:flex;flex-direction:column;overflow:hidden}.workspace-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--surface);padding:0 16px;gap:0}.workspace-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:14px 16px;font-size:.88rem;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.workspace-tab:hover{color:var(--text)}.workspace-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.workspace-content{flex:1;overflow-y:auto;padding:24px}.tab-sandbox{display:flex;flex-direction:column;gap:16px}.html-preview-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.html-preview-label{padding:6px 12px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--surface2);border-bottom:1px solid var(--border)}.html-preview-frame{width:100%;height:280px;border:none;background:#fff;display:block}.courseview-root{--cv-bg: #05060f;--cv-ink: #e8ecff;--cv-ink-dim: #8089b0;--cv-cyan: #00e5ff;--cv-violet: #b026ff;--cv-green: #39ff14;--cv-amber: #ffb020;--cv-grid: rgba(0, 229, 255, .07);--cv-accent: var(--cv-cyan);--cv-accent-glow: rgba(0, 229, 255, .45);--bg: var(--cv-bg);--surface: rgba(10, 12, 28, .92);--surface2: #131836;--border: #1f2547;--text: var(--cv-ink);--text-muted: var(--cv-ink-dim);--accent: var(--cv-accent);--accent-hover: var(--cv-accent);min-height:100vh;display:flex;flex-direction:column;color:var(--cv-ink);font-family:JetBrains Mono,ui-monospace,monospace;background:radial-gradient(1200px 700px at 80% -10%,rgba(176,38,255,.18),transparent 60%),radial-gradient(1100px 600px at -10% 110%,rgba(0,229,255,.16),transparent 60%),var(--cv-bg);position:relative;overflow:hidden}.courseview-root:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.courseview-grid-floor{position:fixed;inset:auto 0 0 0;height:45vh;pointer-events:none;z-index:0;perspective:600px;perspective-origin:50% 0%;mask-image:linear-gradient(to top,black 20%,transparent 100%);-webkit-mask-image:linear-gradient(to top,black 20%,transparent 100%)}.courseview-grid-floor:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateX(62deg);background-image:linear-gradient(to right,var(--cv-grid) 1px,transparent 1px),linear-gradient(to bottom,var(--cv-grid) 1px,transparent 1px);background-size:60px 60px;animation:courseview-floor 14s linear infinite}@keyframes courseview-floor{0%{background-position:0 0}to{background-position:0 60px}}@keyframes courseview-pulse{0%,to{opacity:1;box-shadow:0 0 10px var(--cv-accent)}50%{opacity:.5;box-shadow:0 0 4px var(--cv-accent)}}.courseview-root[data-phase="2"]{--cv-accent: var(--cv-green);--cv-accent-glow: rgba(57, 255, 20, .45)}.courseview-root[data-phase="3"]{--cv-accent: var(--cv-amber);--cv-accent-glow: rgba(255, 176, 32, .45)}.courseview-root[data-phase="4"]{--cv-accent: var(--cv-violet);--cv-accent-glow: rgba(176, 38, 255, .45)}.courseview-hud{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:#0a0c1cd1;border-bottom:1px solid rgba(0,229,255,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap}@media (min-width: 768px){.courseview-hud{gap:1rem;padding:.65rem 1.5rem;flex-wrap:nowrap}}.courseview-btn-back,.courseview-btn-ghost{border:1px solid #2a3057;color:var(--cv-ink-dim);text-transform:uppercase;letter-spacing:.18em;font-size:.625rem;padding:.55rem .85rem;background:transparent;cursor:pointer;transition:all .2s;flex-shrink:0;font-family:JetBrains Mono,monospace;white-space:nowrap}.courseview-btn-back:hover,.courseview-btn-ghost:hover{border-color:var(--cv-cyan);color:var(--cv-ink)}.courseview-btn-back:disabled{opacity:.5;cursor:not-allowed}.courseview-hud-brand{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.courseview-hud-logo{position:relative;width:2rem;height:2rem}.courseview-hud-logo-outer{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(45deg);background:linear-gradient(to bottom right,#22d3ee,#d946ef);box-shadow:0 0 16px #00e5ff80}.courseview-hud-logo-inner{position:absolute;top:5px;right:5px;bottom:5px;left:5px;transform:rotate(45deg);background:var(--cv-bg);display:flex;align-items:center;justify-content:center}.courseview-hud-logo-inner span{transform:rotate(-45deg);font-family:Orbitron,sans-serif;font-weight:800;font-size:.75rem;color:#67e8f9}.courseview-hud-title-main{font-family:Orbitron,sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.15em;line-height:1.2}.courseview-hud-title-sub{display:none;font-size:.5625rem;color:var(--cv-ink-dim);letter-spacing:.25em}@media (min-width: 640px){.courseview-hud-title-sub{display:block}}.courseview-hud-divider{height:2rem;width:1px;background:#00e5ff33;flex-shrink:0;display:none}@media (min-width: 768px){.courseview-hud-divider{display:block}}.courseview-breadcrumb{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;overflow:hidden}.courseview-section-tag{display:none;align-items:center;gap:8px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--cv-accent) 40%,transparent);background:color-mix(in srgb,var(--cv-accent) 8%,transparent);color:var(--cv-accent);font-size:.625rem;letter-spacing:.2em;text-transform:uppercase;flex-shrink:0}.courseview-section-tag:before{content:"";width:6px;height:6px;background:var(--cv-accent);box-shadow:0 0 8px var(--cv-accent);animation:courseview-pulse 1.4s ease-in-out infinite}@media (min-width: 900px){.courseview-section-tag{display:inline-flex}}.courseview-breadcrumb-sep{display:none;color:var(--cv-ink-dim);opacity:.4}@media (min-width: 900px){.courseview-breadcrumb-sep{display:inline}}.courseview-breadcrumb-current{font-size:.6875rem;color:var(--cv-ink);letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.courseview-hud-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}.courseview-btn-neon{background:linear-gradient(180deg,#00e5ff26,#b026ff26);border:1px solid rgba(0,229,255,.55);color:var(--cv-ink);text-transform:uppercase;letter-spacing:.15em;font-family:Orbitron,sans-serif;font-weight:700;font-size:.625rem;padding:.55rem .85rem;cursor:pointer;transition:all .2s;box-shadow:inset 0 0 18px #00e5ff1f;white-space:nowrap}.courseview-btn-neon:hover:not(:disabled){border-color:var(--cv-cyan);box-shadow:inset 0 0 24px #00e5ff40,0 0 20px #00e5ff59;transform:translateY(-1px)}.courseview-btn-neon:disabled{opacity:.55;cursor:not-allowed}.courseview-hud-user{display:none;align-items:center;gap:.5rem}@media (min-width: 1024px){.courseview-hud-user{display:flex}}.courseview-user-name{font-size:.6875rem;color:var(--cv-ink-dim);letter-spacing:.05em;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.courseview-nav{position:relative;z-index:10;display:flex;align-items:stretch;gap:0;padding:0 .75rem;background:#080a16e0;border-bottom:1px solid rgba(0,229,255,.15);overflow-x:auto;flex-shrink:0;scrollbar-width:thin;scrollbar-color:#2a3057 transparent}.courseview-nav::-webkit-scrollbar{height:4px}.courseview-nav::-webkit-scrollbar-thumb{background:#2a3057;border-radius:2px}.courseview-phase-group{display:flex;align-items:stretch;flex-shrink:0}.courseview-phase-divider{width:1px;align-self:center;height:28px;background:linear-gradient(to bottom,transparent,rgba(0,229,255,.35),transparent);margin:0 .35rem;flex-shrink:0}.courseview-nav-heading{display:flex;align-items:center;padding:0 .75rem;font-family:Orbitron,sans-serif;font-size:.5625rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cv-accent);border-right:1px solid rgba(0,229,255,.12);white-space:nowrap;flex-shrink:0}.courseview-nav-item{display:flex;align-items:center;gap:.45rem;padding:0 .85rem;min-height:46px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--cv-ink-dim);cursor:pointer;transition:color .2s,border-color .2s,background .2s;white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace}.courseview-nav-item:hover{color:var(--cv-ink);background:#00e5ff0a}.courseview-nav-item.active{color:var(--cv-ink);border-bottom-color:var(--cv-accent);background:color-mix(in srgb,var(--cv-accent) 6%,transparent)}.courseview-nav-num{font-family:Orbitron,sans-serif;font-size:.5625rem;font-weight:700;color:var(--cv-accent);background:color-mix(in srgb,var(--cv-accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--cv-accent) 30%,transparent);padding:2px 6px;letter-spacing:.05em;flex-shrink:0}.courseview-nav-item.active .courseview-nav-num{background:color-mix(in srgb,var(--cv-accent) 22%,transparent);box-shadow:0 0 12px var(--cv-accent-glow)}.courseview-nav-title{font-size:.72rem;letter-spacing:.02em}.courseview-phase-group[data-phase="2"] .courseview-nav-heading,.courseview-phase-group[data-phase="2"] .courseview-nav-num{color:var(--cv-green);border-color:color-mix(in srgb,var(--cv-green) 30%,transparent)}.courseview-phase-group[data-phase="2"] .courseview-nav-item.active{border-bottom-color:var(--cv-green)}.courseview-phase-group[data-phase="3"] .courseview-nav-heading,.courseview-phase-group[data-phase="3"] .courseview-nav-num{color:var(--cv-amber);border-color:color-mix(in srgb,var(--cv-amber) 30%,transparent)}.courseview-phase-group[data-phase="3"] .courseview-nav-item.active{border-bottom-color:var(--cv-amber)}.courseview-phase-group[data-phase="4"] .courseview-nav-heading,.courseview-phase-group[data-phase="4"] .courseview-nav-num{color:var(--cv-violet);border-color:color-mix(in srgb,var(--cv-violet) 30%,transparent)}.courseview-phase-group[data-phase="4"] .courseview-nav-item.active{border-bottom-color:var(--cv-violet)}.courseview-main{position:relative;z-index:5;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.courseview-main .lesson-page{height:100%;min-height:0}.courseview-empty{position:relative;z-index:5;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2rem;text-align:center}.courseview-empty-msg{font-size:.875rem;color:var(--cv-ink-dim);letter-spacing:.05em}.courseview-empty-msg code{color:var(--cv-cyan)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--surface2: #22263a;--border: #2e3350;--accent: #3b82f6;--accent-hover: #2563eb;--success: #22c55e;--error: #ef4444;--warning: #f59e0b;--text: #e2e8f0;--text-muted: #8892a4;--radius: 10px}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
