:root{--c-primary:#0556f9;--c-secondary:#111d45;--c-accent:#22c1a4;--primary-dark:color-mix(in srgb, var(--c-primary) 78%, black);--primary-soft:color-mix(in srgb, var(--c-primary) 9%, white);--primary-on-dark:color-mix(in srgb, var(--c-primary) 72%, white);--accent-soft:color-mix(in srgb, var(--c-accent) 14%, white);--accent-ink:color-mix(in srgb, var(--c-accent) 52%, black);--dark:var(--c-secondary);--dark-2:color-mix(in srgb, var(--c-secondary) 86%, var(--c-primary));--on-dark:#fff;--on-dark-soft:color-mix(in srgb, white 68%, var(--c-secondary));--on-dark-line:#ffffff1f;--code-text:color-mix(in srgb, var(--c-accent) 28%, white);--surface:#fff;--surface-alt:#f4f6fb;--text:var(--c-secondary);--text-soft:#5b6478;--border:#e3e7f1;--danger:#c0392b;--danger-soft:#fdecea;--warning:#8a5300;--warning-soft:#fff4e0;--radius:14px;--radius-sm:8px;--shadow:0 8px 24px color-mix(in srgb, var(--c-secondary) 8%, transparent);--focus:0 0 0 3px color-mix(in srgb, var(--c-primary) 35%, transparent);--max-width:1120px;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);background:var(--surface-alt);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.6}img{max-width:100%;display:block}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}ul{margin:0;padding-left:0;list-style:none}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 20px}section{padding:64px 0}section.tight{padding:40px 0}h1,h2,h3,h4{margin:0 0 16px;font-weight:700;line-height:1.25}h1{font-size:clamp(1.9rem,4vw,2.8rem)}h2{font-size:clamp(1.5rem,3vw,2.1rem)}h3{font-size:1.2rem}p{color:var(--text-soft);margin:0 0 16px}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--c-primary);background:var(--accent-soft);border-radius:999px;margin-bottom:14px;padding:4px 12px;font-size:.8rem;font-weight:700;display:inline-block}.section-head{max-width:680px;margin-bottom:40px}.section-head p{font-size:1.05rem}.btn{cursor:pointer;border:2px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-size:.95rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--c-primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 6px 18px color-mix(in srgb, var(--c-primary) 35%, transparent)}.btn-outline{border-color:var(--border);color:var(--text);background:0 0}.btn-outline:hover{border-color:var(--c-primary);color:var(--c-primary)}.hero .btn-outline{color:#fff;border-color:#ffffff73}.hero .btn-outline:hover{background:var(--on-dark-line);color:#fff;border-color:#fff}.btn-sm{padding:6px 14px;font-size:.82rem}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:28px;display:flex}header.site-header{z-index:100;background:color-mix(in srgb, var(--dark) 96%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;padding:14px 0;display:flex}.brand{color:#fff;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:flex}.brand:hover{text-decoration:none}.nav-links{align-items:center;gap:4px;display:flex}.nav-links a{color:#ffffffeb;border-radius:999px;padding:8px 14px;font-size:.92rem;font-weight:600;transition:background .15s,color .15s}.nav-links a:hover{background:var(--on-dark-line);color:#fff;text-decoration:none}.nav-links a.active{background:var(--c-primary);color:#fff}.nav-right{align-items:center;gap:10px;display:flex}.nav-toggle{background:var(--on-dark-line);cursor:pointer;border:none;border-radius:8px;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;display:none}.nav-toggle span{background:#fff;width:18px;height:2px;margin:0 auto;display:block}@media (width<=860px){.nav-toggle{display:flex}.nav-links{background:var(--dark);flex-direction:column;align-items:stretch;padding:10px 20px 18px;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.open{display:flex}.nav-links a{padding:12px 14px}}.hero{background:linear-gradient(160deg, var(--dark) 0%, var(--dark-2) 100%);color:#fff;padding:72px 0}.hero p{color:#ffffffe0;max-width:640px;font-size:1.1rem}.hero-stats{flex-wrap:wrap;gap:28px;margin-top:36px;display:flex}.hero-stats div{min-width:110px}.hero-stats strong{color:var(--c-accent);font-size:1.8rem;display:block}.hero-stats span{color:#fffc;font-size:.85rem;font-weight:600}.grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.card h3{margin-bottom:10px}.card .icon{background:var(--accent-soft);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:16px;font-size:1.3rem;display:flex}.card .teacher-photo{object-fit:cover;object-position:center 20%;border-radius:var(--radius-sm);width:100%;height:220px;margin-bottom:16px}.month-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:24px;overflow:hidden}.month-head{background:var(--dark);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;display:flex}.month-head .tag{background:var(--c-accent);color:var(--dark);text-transform:uppercase;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:800}.month-head h2{color:#fff;margin:0;font-size:1.3rem}.month-head p{color:#ffffffa6;margin:4px 0 0;font-size:.92rem}.week{border-top:1px solid var(--border)}.week>summary{cursor:pointer;background:var(--surface-alt);justify-content:space-between;align-items:center;padding:16px 26px;font-weight:700;list-style:none;display:flex}.week>summary::-webkit-details-marker{display:none}.week>summary:after{content:"+";color:var(--c-primary);font-size:1.3rem;font-weight:400}.week[open]>summary:after{content:"−"}.lesson-list{padding:6px 26px 18px}.lesson{border-bottom:1px dashed var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:14px;padding:12px 0;transition:background .15s;display:flex}a.lesson,a.lesson:hover{color:inherit;text-decoration:none}a.lesson:hover{background:var(--surface-alt)}a.lesson:hover .body .txt{color:var(--primary-dark)}.lesson:last-child{border-bottom:none}.lesson .num{background:var(--accent-soft);width:32px;height:32px;color:var(--primary-dark);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.82rem;font-weight:800;display:flex}.lesson .body{flex:1;min-width:0}.lesson .body .txt{color:var(--text);font-weight:500}.lesson .chevron{color:var(--text-soft);flex:none;align-self:center;font-size:1.1rem}.lesson .link{color:var(--c-accent);background:var(--accent-soft);border-radius:999px;align-items:center;gap:4px;margin-top:6px;padding:3px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.lesson .link:hover{background:color-mix(in srgb, var(--c-accent) 24%, white);text-decoration:none}.lesson.project{background:var(--primary-soft);border-bottom:1px dashed var(--border);margin:0 -26px;padding:12px 26px}a.lesson.project:hover{background:color-mix(in srgb, var(--c-primary) 14%, white)}.lesson.project .num{background:var(--c-primary);color:#fff}.container-wide{max-width:1360px}.lesson-page{--sticky-top:72px}.shell .lesson-page{--sticky-top:58px}.lesson-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:28px;display:grid}.lesson-layout.list-hidden{grid-template-columns:minmax(0,1fr)}.lesson-layout.list-hidden .course-sidebar{display:none}.lesson-main{min-width:0}.lesson-main .back-link{margin-bottom:14px;font-weight:600;display:inline-block}.lesson-stage{margin-bottom:4px}.video-frame{aspect-ratio:16/9;border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:#000;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video-fallback{text-align:right;margin:8px 0 0;font-size:.85rem}.lesson-stage-soon{border-radius:var(--radius);background:linear-gradient(120deg, var(--dark), var(--dark-2));box-shadow:var(--shadow);align-items:center;gap:20px;padding:18px 28px;display:flex}.lesson-stage-soon img{background:#fff;border-radius:50%;flex:none;width:76px;height:auto;padding:6px}.lesson-stage-title{color:var(--on-dark);margin:0 0 4px;font-size:1.05rem;font-weight:700}.lesson-stage-hint{color:var(--on-dark-soft);margin:0;font-size:.92rem}.lesson-titlebar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;margin:22px 0 10px;display:flex}.lesson-titlebar h1{margin:0;font-size:clamp(1.5rem,2.6vw,2.1rem)}.lesson-crumb{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.lesson-crumb .eyebrow{margin:0}.lesson-crumb-meta{color:var(--text-soft);font-size:.9rem}.lesson-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lesson-done:empty,.course-toggle{display:none}.lesson-layout.list-hidden .course-toggle{display:inline-flex}.lesson-tabs{top:var(--sticky-top);z-index:20;scrollbar-width:none;background:var(--surface-alt);border-bottom:1px solid var(--border);gap:4px;display:flex;position:sticky;overflow-x:auto}.lesson-tabs::-webkit-scrollbar{display:none}.lesson-tab{font:inherit;color:var(--text-soft);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;margin-bottom:-1px;padding:12px 16px;font-weight:700}.lesson-tab:hover{color:var(--text)}.lesson-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--c-primary)}.lesson-tab:focus-visible{box-shadow:var(--focus);border-radius:6px 6px 0 0;outline:none}.lesson-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:20px;padding:28px}.lesson-panel>.lesson-block{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.lesson-panel>.lesson-block>h3{display:none}.lesson-homework>p{color:var(--text);background:var(--accent-soft);border-radius:var(--radius-sm);padding:16px 18px;font-size:1.02rem}.links-inline{flex-wrap:wrap;gap:10px;display:flex}.links-inline a{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;padding:8px 14px;font-weight:600;display:inline-flex}.links-inline a:hover{border-color:var(--c-primary);background:var(--primary-soft);text-decoration:none}.links-inline a:after{content:"↗";margin-left:6px;font-size:.85em}.lesson-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:24px;padding:26px}.lesson-block h3{align-items:center;gap:10px;margin-bottom:14px;display:flex}.lesson-nav{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:24px;display:flex}.lesson-nav a{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow);color:var(--text);flex:1;padding:16px 20px;text-decoration:none;transition:transform .15s,border-color .15s}.lesson-nav a:hover{border-color:var(--c-primary);text-decoration:none;transform:translateY(-2px)}.lesson-nav a.next{text-align:right}.lesson-nav .dir{text-transform:uppercase;letter-spacing:.05em;color:var(--c-primary);margin-bottom:4px;font-size:.76rem;font-weight:800;display:block}.lesson-nav .ttl{font-weight:700}.lesson-nav .lesson-nav-empty{flex:1;min-width:200px}.lesson-lock{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:22px;padding:40px 28px}.lesson-lock-icon{background:var(--primary-soft);border-radius:50%;place-items:center;width:72px;height:72px;margin:0 auto 16px;font-size:2rem;display:grid}.lesson-lock-login .lesson-lock-icon{background:var(--accent-soft)}.lesson-lock h2{margin-bottom:10px;font-size:1.35rem}.lesson-lock p{max-width:520px;margin:0 auto 22px}.lesson-lock-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.lesson-skeleton{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-alt) 50%, var(--surface) 100%);background-size:200% 100%;min-height:420px;animation:1.2s ease-in-out infinite skeleton}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.lesson-skeleton{animation:none}}.course-sidebar{top:calc(var(--sticky-top) + 16px);max-height:calc(100vh - var(--sticky-top) - 32px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;position:sticky;overflow:hidden}.course-sidebar-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px 18px;display:flex}.course-sidebar-head h2{margin:0;font-size:1.05rem}.course-sidebar-head p{margin:2px 0 0;font-size:.84rem}.icon-btn{width:34px;height:34px;color:var(--text-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;font-size:1rem}.icon-btn:hover{background:var(--surface-alt);color:var(--text)}.icon-btn:focus-visible{box-shadow:var(--focus);outline:none}.course-sidebar-bar{background:var(--surface-alt);height:4px}.course-sidebar-bar span{background:var(--c-accent);height:100%;display:block}.course-sidebar-list{overscroll-behavior:contain;flex:1;overflow-y:auto}.course-month{border-bottom:1px solid var(--border)}.course-month>summary{background:var(--surface-alt);cursor:pointer;z-index:1;border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 18px;font-size:.92rem;font-weight:700;list-style:none;display:flex;position:sticky;top:0}.course-month>summary::-webkit-details-marker{display:none}.course-month>summary:after{content:"⌄";color:var(--text-soft);transition:transform .15s}.course-month[open]>summary:after{transform:rotate(180deg)}.course-month-title{flex:1}.course-month-meta{color:var(--text-soft);flex:none;padding-top:2px;font-size:.8rem;font-weight:600}.course-week{letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);padding:10px 18px 4px;font-size:.72rem;font-weight:800}.course-item{color:var(--text);border-left:3px solid #0000;align-items:flex-start;gap:12px;padding:9px 18px 9px 15px;font-size:.9rem;line-height:1.4;display:flex}.course-item:hover{background:var(--surface-alt);text-decoration:none}.course-item.current{background:var(--primary-soft);border-left-color:var(--c-primary);font-weight:700}.course-check{border:2px solid color-mix(in srgb, var(--text-soft) 55%, white);color:#fff;border-radius:4px;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;font-size:.72rem;font-weight:800;display:grid}.course-item.done .course-check{background:var(--c-accent);border-color:var(--c-accent)}.course-item.locked{color:var(--text-soft)}.course-item.locked .course-check{border:0;font-size:.8rem}.course-item-text{flex-direction:column;gap:3px;min-width:0;display:flex}.course-item-tag{color:var(--c-primary);background:var(--primary-soft);border-radius:999px;align-self:flex-start;padding:1px 8px;font-size:.7rem;font-weight:800}.course-item.current .course-item-tag{background:var(--surface)}.course-scrim{display:none}@media (width<=1100px){.lesson-layout,.lesson-layout.list-hidden{grid-template-columns:minmax(0,1fr)}.course-toggle{display:inline-flex}.lesson-layout .course-sidebar,.lesson-layout.list-hidden .course-sidebar{z-index:300;visibility:hidden;border:0;border-radius:0;width:min(380px,92vw);max-height:none;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.lesson-layout.drawer-open .course-sidebar{visibility:visible;transform:none}.lesson-layout.drawer-open .course-scrim{z-index:290;background:color-mix(in srgb, var(--dark) 45%, transparent);border:0;display:block;position:fixed;inset:0}}@media (width>=1101px) and (width<=1400px){.shell .lesson-layout,.shell .lesson-layout.list-hidden{grid-template-columns:minmax(0,1fr)}.shell .course-toggle{display:inline-flex}.shell .lesson-layout .course-sidebar,.shell .lesson-layout.list-hidden .course-sidebar{z-index:300;visibility:hidden;border:0;border-radius:0;width:380px;max-height:none;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.shell .lesson-layout.drawer-open .course-sidebar{visibility:visible;transform:none}.shell .lesson-layout.drawer-open .course-scrim{z-index:290;background:color-mix(in srgb, var(--dark) 45%, transparent);border:0;display:block;position:fixed;inset:0}}@media (width<=600px){.lesson-panel{margin-left:-4px;margin-right:-4px;padding:18px 16px}.lesson-stage-soon{gap:14px;padding:14px 16px}.lesson-stage-soon img{width:56px}.lesson-titlebar{margin-top:16px}.lesson-actions{width:100%}}@media (prefers-reduced-motion:reduce){.course-sidebar{transition:none}}.guide-content .guide-img-wrap{margin:0 0 18px}.guide-content picture{display:block}.guide-content .guide-img{border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;height:auto;box-shadow:var(--shadow);display:block}.guide-content .guide-img-caption{color:var(--text-soft);text-align:center;margin:8px 0 0;font-size:.8rem}.guide-content .scene{border-radius:var(--radius);color:#1b1b1f;background:#fbfaf5;border:1px solid #e7e2d3;margin:4px 0 24px;padding:18px}.guide-content .scene-frames{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.guide-content .scene-frame{background:#fff;border:9px solid #c8964f;border-radius:4px;margin:0;box-shadow:inset 0 0 0 2px #e9c891,0 3px #8a5a1c,0 6px 14px #0000001f}.guide-content .scene-frame img{width:100%;height:auto;display:block}.guide-content .scene-frame figcaption{color:#4b5060;text-align:center;border-top:1px solid #efe8d6;padding:6px 10px 8px;font-size:.82rem}.guide-content .scene-talk{align-items:flex-end;gap:10px;margin-top:14px;display:flex}.guide-content .scene-mascot{flex:none;width:104px;height:auto}.guide-content .scene-bubble{background:#fff;border:2px solid #1b1b1f;border-radius:16px;flex:1;margin:0 0 30px;padding:12px 14px;font-size:.95rem;line-height:1.55;position:relative}.guide-content .scene-bubble:before{content:"";border:7px solid #0000;border-left:0;border-right:12px solid #1b1b1f;position:absolute;bottom:14px;left:-12px}.guide-content .scene-bubble:after{content:"";border:5px solid #0000;border-left:0;border-right:9px solid #fff;position:absolute;bottom:16px;left:-8px}.guide-content .scene-bubble strong:first-child{color:#0556f9}.guide-content .scene code{color:#111d45;background:#eef3ff}.guide-content .figure{margin:0 0 20px}.guide-content .figure img{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;width:100%;height:auto;display:block}.guide-content .figure figcaption{color:var(--text-soft);text-align:center;margin-top:6px;font-size:.82rem}.guide-content .summary-list li{margin-bottom:6px}@media (width<=560px){.guide-content .scene{padding:12px}.guide-content .scene-talk{flex-direction:column;align-items:flex-start;gap:4px}.guide-content .scene-mascot{order:2;width:70px;margin-left:6px}.guide-content .scene-bubble{margin:0 0 12px;font-size:.92rem}.guide-content .scene-bubble:before{border:7px solid #0000;border-top:12px solid #1b1b1f;border-bottom:0;bottom:-12px;left:30px}.guide-content .scene-bubble:after{border:5px solid #0000;border-top:9px solid #fff;border-bottom:0;bottom:-8px;left:32px}}.guide-content h4{align-items:center;gap:10px;margin-top:30px;margin-bottom:12px;font-size:1.08rem;display:flex}.guide-content h4:first-child{margin-top:0}.guide-content .step-num{background:var(--c-primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:.82rem;font-weight:800;display:inline-flex}.guide-content p{color:var(--text-soft)}.guide-content ol,.guide-content ul{color:var(--text-soft);margin:0 0 16px;padding-left:22px;list-style:decimal}.guide-content ul{list-style:outside}.guide-content li{margin-bottom:6px}.guide-content strong{color:var(--text)}.code-block{background:var(--dark);color:var(--code-text);border-radius:var(--radius-sm);white-space:pre;margin:8px 0 18px;padding:14px 18px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.86rem;line-height:1.8;overflow-x:auto}.code-block .cmt{color:var(--on-dark-soft)}.img-note{background:var(--surface-alt);border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-soft);align-items:flex-start;gap:10px;margin:0 0 18px;padding:12px 14px;font-size:.85rem;display:flex}.img-note .icon{flex:none;font-size:1.05rem}.callout{background:var(--accent-soft);border-left:4px solid var(--c-accent);border-radius:var(--radius-sm);color:var(--text);margin:0 0 18px;padding:12px 16px;font-size:.9rem}.callout-warn{background:var(--warning-soft);border-left-color:var(--warning)}.cmd-table{border-collapse:collapse;width:100%;margin:6px 0 22px;font-size:.87rem}.cmd-table th,.cmd-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.cmd-table th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:800}.cmd-table code,.guide-content code{background:var(--surface-alt);color:var(--primary-dark);border-radius:4px;padding:2px 6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.85rem}@media (width<=600px){.cmd-table{white-space:nowrap;display:block;overflow-x:auto}}#playground-block{padding:16px}.playground{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=760px){.playground{grid-template-columns:1fr}}.playground-panel{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--dark);flex-direction:column;display:flex;overflow:hidden}.editor-tabs{background:var(--dark-2);gap:2px;padding:3px 3px 0;display:flex}.editor-tabs button{color:#ffffff8c;cursor:pointer;background:0 0;border:none;border-radius:6px 6px 0 0;padding:5px 10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.76rem;font-weight:700}.editor-tabs button.active{background:var(--dark);color:var(--code-text)}.editor-body{position:relative}.editor-body textarea{box-sizing:border-box;background:var(--dark);width:100%;height:420px;color:var(--code-text);resize:vertical;tab-size:2;border:none;outline:none;padding:8px 10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.84rem;line-height:1.6;display:none}.editor-body textarea.active{display:block}.playground-toolbar{background:var(--dark-2);border-top:1px solid var(--on-dark-line);gap:8px;padding:6px 8px;display:flex}.playground-toolbar button{cursor:pointer;border:1px solid #0000;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:700}#run-btn{background:var(--c-primary);color:#fff}#run-btn:hover{background:var(--primary-dark)}#reset-btn{color:#fff9;background:0 0;border-color:#fff3}#reset-btn:hover{color:#fff;border-color:#fff6}.playground-output{background:var(--surface)}.output-tabs{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);background:var(--surface-alt);border-bottom:1px solid var(--border);padding:5px 10px;font-size:.76rem;font-weight:800}.preview-frame{background:#fff;border:none;width:100%;height:280px;display:block}.console-log{background:var(--dark);min-height:40px;max-height:135px;color:var(--code-text);border-top:1px solid var(--on-dark-line);padding:6px 10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.8rem;overflow-y:auto}.console-log:empty:before{content:attr(data-placeholder);color:#ffffff59}.console-log .console-line{border-bottom:1px dashed var(--on-dark-line);white-space:pre-wrap;word-break:break-word;padding:3px 0}.console-log .console-line:last-child{border-bottom:none}.console-log .console-line.error{color:color-mix(in srgb, var(--danger) 45%, white)}.console-log .console-arrow{color:var(--c-primary);margin-right:6px}.checklist{flex-direction:column;gap:2px;display:flex}.checklist li{border-bottom:1px dashed var(--border);align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.checklist li:last-child{border-bottom:none}.checklist .box{border:2px solid var(--c-accent);border-radius:5px;flex:none;width:20px;height:20px;margin-top:2px}.checklist .ttl{color:var(--text);font-weight:600}.checklist span.desc{color:var(--text-soft);margin-top:2px;font-size:.85rem;display:block}.res-cat{margin-bottom:34px}.res-cat h3{align-items:center;gap:10px;display:flex}.res-cat .badge{background:var(--dark);color:#fff;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700}.res-links{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px;display:grid}.res-link{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.res-link a{font-weight:700}.res-link span{color:var(--text-soft);font-size:.85rem}.timeline{border-left:3px solid var(--c-accent);margin-left:6px;padding-left:24px}.timeline .step{padding-bottom:32px;position:relative}.timeline .step:before{content:"";background:var(--c-accent);border:3px solid var(--surface-alt);border-radius:50%;width:14px;height:14px;position:absolute;top:4px;left:-31px}.timeline .step:last-child{padding-bottom:0}.cta{background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-accent) 100%);color:#fff;border-radius:var(--radius);text-align:center;padding:48px 40px}.cta h2{color:#fff}.cta p{color:#ffffffe6;max-width:560px;margin:0 auto 20px}.cta .btn-primary{color:var(--primary-dark);background:#fff}.cta .btn-primary:hover{background:var(--primary-soft)}footer.site-footer{background:var(--dark);color:#ffffffb3;margin-top:40px;padding:40px 0 30px}footer.site-footer .foot-top{border-bottom:1px solid var(--on-dark-line);flex-wrap:wrap;justify-content:space-between;gap:20px;padding-bottom:24px;display:flex}footer.site-footer nav{flex-wrap:wrap;gap:18px;display:flex}footer.site-footer a{color:#ffffffbf}footer.site-footer .fine{color:#ffffff73;padding-top:20px;font-size:.82rem}.mt-0{margin-top:0}.center{text-align:center}.pill-list{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--accent-soft);color:var(--primary-dark);border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:700}@media (width<=600px){section{padding:44px 0}.cta{padding:34px 22px}.lesson.project{margin:0 -16px;padding:12px 16px}}.btn-block{justify-content:center;width:100%}.btn-ghost:hover{color:#fff;border-color:#ffffff80}.btn:disabled{opacity:.6;cursor:default;transform:none}.btn-done{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--c-accent)}.auth-wrap{justify-content:center;display:flex}.auth-split{grid-template-columns:minmax(0,1fr);align-items:center;gap:28px;width:100%;max-width:980px;margin:0 auto;display:grid}.auth-brand{flex-direction:column;align-items:center;gap:14px;display:flex}.auth-card{width:100%;max-width:400px;margin:0 auto}.auth-card h1{margin-bottom:20px;font-size:1.6rem}.auth-lead{color:var(--text-soft);margin-bottom:22px}@media (width>=900px){.auth-split{grid-template-columns:1fr 1fr;gap:64px;min-height:calc(100vh - 220px)}.auth-brand{border-right:1px solid var(--border);padding-right:64px}.auth-brand .logo-lg .logo-mark{width:150px;height:150px}.auth-brand .logo-lg .wordmark{font-size:2.6rem}.auth-brand .logo-lg .logo-tagline{font-size:1rem}.auth-card{margin:0}}@media (width<=899px){.auth-brand .logo-lg .logo-mark{width:72px;height:72px}.auth-brand .logo-lg .wordmark{font-size:1.6rem}}.social-signin{gap:10px;display:grid}.btn-social{background:var(--surface);border-color:var(--border);width:100%;color:var(--text);justify-content:center;gap:10px}.btn-social:hover{border-color:var(--text);text-decoration:none}.btn-apple{color:#fff;background:#000;border-color:#000}.btn-apple:hover{background:#1a1a1a;border-color:#1a1a1a}.social-mark{flex:none}.auth-divider{color:var(--text-soft);align-items:center;gap:12px;margin:18px 0;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-form label{flex-direction:column;gap:6px;font-size:.88rem;font-weight:600;display:flex}.auth-form input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:10px 12px;font-weight:400}.auth-form input:focus{outline:2px solid var(--c-primary);outline-offset:1px;border-color:#0000}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);margin:0;padding:8px 12px;font-size:.88rem}.link-button{color:var(--c-primary);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:18px;padding:0;font-weight:600}.link-button:hover{text-decoration:underline}.lesson-done{justify-content:center;margin:28px 0 8px;display:flex}.done-hint{font-weight:600}.lesson.done .num{background:var(--c-accent);color:#fff}.progress{background:var(--surface-alt);border-radius:999px;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--c-primary), var(--c-accent));border-radius:inherit;height:100%;transition:width .3s}.progress-label{color:var(--text-soft);margin:10px 0 0;font-size:.9rem}.month-progress{margin-bottom:16px}.month-progress-head{justify-content:space-between;gap:12px;margin-bottom:6px;font-size:.9rem;display:flex}.muted{color:var(--text-soft);font-size:.88rem}.hw-form,.hw-status{border-top:1px dashed color-mix(in srgb, var(--c-accent) 35%, transparent);margin-top:18px;padding-top:18px}.hw-form h4{margin:0 0 12px}.hw-form label{flex-direction:column;gap:6px;margin-bottom:12px;font-size:.88rem;font-weight:600;display:flex}.hw-form input,.hw-form textarea,.review-form textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);resize:vertical;width:100%;padding:10px 12px;font-weight:400}.hw-form input:focus,.hw-form textarea:focus,.review-form textarea:focus{outline:2px solid var(--c-primary);outline-offset:1px;border-color:#0000}.hw-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.hw-status-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:10px;display:flex}.hw-link{word-break:break-all;font-size:.9rem}.hw-feedback{background:var(--surface);border-radius:var(--radius-sm);margin-bottom:12px;padding:12px 14px}.hw-feedback p{white-space:pre-wrap;margin:4px 0 0}.status-badge{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-block}.status-pending{background:var(--warning-soft);color:var(--warning)}.status-accepted{background:var(--accent-soft);color:var(--accent-ink)}.status-needs_work{background:var(--danger-soft);color:var(--danger)}.my-submissions li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.my-submissions li:last-child{border-bottom:0}.my-submissions-meta{flex:none;align-items:center;gap:10px;display:flex}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.tabs button{font:inherit;color:var(--text-soft);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600}.tabs button.active{color:var(--c-primary);border-bottom-color:var(--c-primary)}.submission-list{gap:16px;display:grid}.submission-card{padding:20px 22px}.submission-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.submission-lesson{margin:0 0 8px}.submission-url{word-break:break-all;font-weight:600}.submission-note{background:var(--surface-alt);border-radius:var(--radius-sm);white-space:pre-wrap;padding:10px 12px}.review-form{border-top:1px solid var(--border);gap:10px;margin-top:14px;padding-top:14px;display:grid}.grade-picker{align-items:center;gap:6px;font-size:.9rem;font-weight:600;display:flex}.grade-picker button{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;font:inherit;cursor:pointer;border-radius:50%;font-weight:700}.grade-picker button.active{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.table-wrap{overflow-x:auto}.students-table td{vertical-align:top}.logo{align-items:center;gap:10px;line-height:1;display:inline-flex}.logo-mark{background:#fff;border-radius:11px;flex:none;place-items:center;width:40px;height:40px;display:grid}.logo-mark img{object-fit:contain;width:88%;height:88%;display:block}.logo-text{flex-direction:column;gap:4px;min-width:0;display:flex}.wordmark{letter-spacing:-.02em;white-space:nowrap;font-family:Montserrat,Arial Black,system-ui,sans-serif;font-size:1.3rem;font-weight:800}.wm-bilim{color:var(--c-primary)}.logo-dark .wm-kod{color:#fff}.logo-dark .wm-bilim{color:var(--primary-on-dark)}.logo-light .wm-kod{color:var(--c-secondary)}.logo-tagline{letter-spacing:.01em;font-size:.78rem;font-weight:600}.logo-dark .logo-tagline{color:#ffffffa6}.logo-light .logo-tagline{color:var(--c-secondary)}.logo-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--c-accent);font-size:.68rem;font-weight:700}.logo-sm .logo-mark{border-radius:9px;width:34px;height:34px}.logo-sm .wordmark{font-size:1.1rem}.logo-lg{text-align:center;flex-direction:column;gap:8px}.logo-lg .logo-mark{background:0 0;width:96px;height:96px}.logo-lg .logo-mark img{width:100%;height:100%}.logo-lg .logo-text{align-items:center}.logo-lg .wordmark{font-size:2rem}.auth-logo{justify-content:center;margin-bottom:18px;display:flex}@media (width<=420px){.site-header .logo-mark{width:34px;height:34px}.site-header .wordmark{font-size:1.1rem}}:where(a,button,input,select,textarea,summary):focus-visible{box-shadow:var(--focus);border-radius:var(--radius-sm);outline:none}.lang-select{position:relative}.lang-select-button{height:34px;font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.85rem;font-weight:600;display:inline-flex}.lang-select-dark .lang-select-button{background:var(--on-dark-line);color:var(--on-dark);border:1px solid #0000}.lang-select-dark .lang-select-button:hover{background:#ffffff2e}.lang-select-light .lang-select-button{background:var(--surface);color:var(--text);border:1px solid var(--border)}.lang-select-light .lang-select-button:hover{border-color:var(--c-primary)}.lang-select-short{display:none}.lang-select-caret{opacity:.7;font-size:.7rem}.lang-select-menu{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:170px;box-shadow:var(--shadow);padding:6px;position:absolute;top:calc(100% + 6px);right:0}.lang-select-menu button{width:100%;font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;padding:9px 12px;font-size:.9rem;display:flex}.lang-select-menu button:hover{background:var(--primary-soft)}.lang-select-menu [aria-selected=true] button{color:var(--c-primary);font-weight:700}@media (width<=520px){.lang-select-full{display:none}.lang-select-short{display:inline}}.nav-account{align-items:center;gap:8px;display:flex}.nav-account-mobile{display:none}.btn-ghost{color:var(--on-dark);background:0 0;border-color:#ffffff59}.btn-ghost:hover{border-color:var(--on-dark);background:var(--on-dark-line)}@media (width<=860px){.nav-account-desktop{display:none}.nav-links.open .nav-account-mobile{border-top:1px solid var(--on-dark-line);flex-wrap:wrap;margin-top:6px;padding-top:12px;display:flex}}.role-chip,.role-select{letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:800;display:inline-block}.role-student{background:var(--primary-soft);color:var(--primary-dark)}.role-teacher{background:var(--accent-soft);color:var(--accent-ink)}.role-admin{background:var(--dark);color:var(--on-dark)}.role-select{font:inherit;border-radius:var(--radius-sm);cursor:pointer;text-transform:none;letter-spacing:0;border:0;padding:6px 10px;font-size:.82rem;font-weight:700}.role-select:disabled{cursor:not-allowed;opacity:.7}.shell{background:var(--surface-alt);grid-template-columns:252px minmax(0,1fr);min-height:100vh;display:grid}.shell-sidebar{flex-direction:column;gap:6px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.shell-brand{padding:0 8px 18px}.shell-nav{flex-direction:column;flex:1;gap:2px;display:flex}.shell-link{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 12px;font-size:.92rem;font-weight:600;text-decoration:none;display:flex}.shell-link:hover{text-decoration:none}.shell-link-label{flex:1;min-width:0}.nav-icon{flex:none}.shell-badge{background:var(--c-primary);color:#fff;text-align:center;border-radius:999px;min-width:22px;padding:1px 7px;font-size:.75rem;font-weight:800}.shell-sidebar-footer{border-top:1px solid var(--border);padding-top:10px}.shell-student .shell-sidebar{background:var(--surface);border-right:1px solid var(--border)}.shell-student .shell-link{color:var(--text-soft)}.shell-student .shell-link:hover{background:var(--surface-alt);color:var(--text)}.shell-student .shell-link.active{background:var(--primary-soft);color:var(--c-primary)}.shell-teacher .shell-sidebar,.shell-admin .shell-sidebar{background:var(--dark);color:var(--on-dark-soft)}.shell-teacher .shell-link,.shell-admin .shell-link{color:var(--on-dark-soft)}.shell-teacher .shell-link:hover,.shell-admin .shell-link:hover{background:var(--on-dark-line);color:var(--on-dark)}.shell-teacher .shell-link.active,.shell-admin .shell-link.active{background:var(--c-primary);color:#fff}.shell-teacher .shell-link.active .shell-badge,.shell-admin .shell-link.active .shell-badge{color:var(--c-primary);background:#fff}.shell-teacher .shell-sidebar-footer,.shell-admin .shell-sidebar-footer{border-top-color:var(--on-dark-line)}.shell-main{flex-direction:column;min-width:0;display:flex}.shell-topbar{z-index:50;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 28px;display:flex;position:sticky;top:0}.shell-user{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.shell-user-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.shell-topbar-actions{align-items:center;gap:8px;display:flex}.shell-menu-button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;display:none}.shell-menu-button span{background:var(--text);width:16px;height:2px;margin:0 auto;display:block}.shell-scrim{display:none}.shell-content{width:100%;max-width:1120px;padding:28px}.shell-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.shell-head h1{margin:0 0 4px;font-size:1.6rem}.shell-head .muted{margin:0}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.shell-sidebar{z-index:200;width:272px;box-shadow:var(--shadow);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.shell-menu-open .shell-sidebar{transform:none}.shell-menu-open .shell-scrim{z-index:150;background:color-mix(in srgb, var(--dark) 45%, transparent);border:0;display:block;position:fixed;inset:0}.shell-menu-button{display:flex}.shell-topbar{padding:10px 16px}.shell-content{padding:20px 16px}}@media (width<=520px){.shell-user .role-chip{display:none}}@media (prefers-reduced-motion:reduce){.shell-sidebar,.btn,.progress-fill{transition:none}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:4px;padding:18px 20px;display:flex}.stat-link:hover{border-color:var(--c-primary);text-decoration:none}.stat-value{font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:800;line-height:1.1}.stat-label{color:var(--text-soft);font-size:.88rem;font-weight:600}.stat-attention{border-color:color-mix(in srgb, var(--c-primary) 35%, var(--border))}.stat-attention .stat-value{color:var(--c-primary)}.stat-loading,.stat-failed,.stat-attention .stat-loading,.stat-attention .stat-failed{color:var(--text-soft)}.stat-card-failed{border-style:dashed}.group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);margin:4px 0 10px;font-size:.8rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;padding:22px}.panel-title{margin:0 0 14px;font-size:1.05rem}.panel-title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-highlight{background:var(--primary-soft);border-color:#0000}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.overview-grid .panel{margin:0}.panel-wide{grid-column:1/-1}@media (width<=760px){.overview-grid{grid-template-columns:minmax(0,1fr)}}.next-lesson{flex-direction:column;gap:2px;margin-bottom:16px;display:flex}.next-lesson strong{color:var(--text);font-size:1.15rem}.month-progress-list{margin-top:16px}.row-list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.row-list li:last-child{border-bottom:0}.row-main{min-width:0;color:var(--text);flex-direction:column;flex:1;display:flex}a.row-main:hover{text-decoration:none}a.row-main:hover strong{color:var(--c-primary)}.row-main .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grade{font-variant-numeric:tabular-nums}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.segmented{background:var(--surface);border:1px solid var(--border);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.segmented button{font:inherit;color:var(--text-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 14px;font-size:.88rem;font-weight:600}.segmented button.active{background:var(--c-primary);color:#fff}.segmented-count{font-variant-numeric:tabular-nums;opacity:.75;margin-left:2px}.input,.search-input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:9px 14px}.search-input{flex:1;min-width:200px;max-width:360px}.table-card{padding:0 6px}.data-table{margin:0}.data-table td{vertical-align:middle}.num-cell{font-variant-numeric:tabular-nums}.state-line{color:var(--text-soft);align-items:center;gap:10px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--c-primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.page-loader{place-items:center;min-height:40vh;display:grid}.page-loader:after{content:"";border:3px solid var(--border);border-top-color:var(--c-primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner,.page-loader:after{animation-duration:2.4s}}.empty-state{flex-direction:column;align-items:flex-start;gap:6px;padding:18px 0;display:flex}.empty-title{color:var(--text);margin:0;font-weight:700}.empty-state .muted{margin:0 0 6px}.state-block{justify-items:start;gap:14px;max-width:460px;margin:15vh auto;padding:0 16px;display:grid}.form-success{color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--radius-sm);margin:0;padding:8px 12px;font-size:.88rem}.auth-portal-badge{background:var(--dark);width:max-content;color:var(--on-dark);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin:0 auto;padding:4px 12px;font-size:.72rem;font-weight:800;display:block}.auth-standalone{background:var(--surface-alt);min-height:100vh;padding:16px 16px 48px}.auth-standalone-bar{justify-content:flex-end;max-width:1120px;margin:0 auto 24px;display:flex}a.link-button{display:inline-block}.back-link{margin-bottom:18px;font-weight:600;display:inline-block}.profile-panel{max-width:520px}.profile-facts{gap:10px;margin:0;display:grid}.profile-facts dt{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.profile-facts dd{margin:2px 0 0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.load-error{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.load-error .form-error{flex:260px}.load-error-code{flex-basis:100%;margin:0;font-size:.8rem}.error-fallback{gap:14px;max-width:520px;margin:12vh auto;padding:0 16px;display:grid}.error-fallback h1{margin:0;font-size:1.5rem}.error-fallback p{margin:0}.error-fallback details{color:var(--text-soft);font-size:.85rem}.error-fallback pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-alt);border-radius:var(--radius-sm);padding:10px}.error-fallback-inline{max-width:640px;margin:24px 0}.auth-notice{color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--radius-sm);margin:0;padding:10px 12px;font-size:.9rem}.verify-status{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.auth-card .link-button{display:block}.verify-block{gap:8px;display:grid}.verify-status{margin:4px 0 0}.status-badge{white-space:normal}.access-btn{white-space:nowrap}.access-hint{color:var(--text-soft);margin-top:4px;font-size:.78rem;display:block}.access-chip{background:var(--surface-alt);color:var(--text-soft);border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:700;display:inline-block}.role-edit{margin-top:6px;font-size:.82rem}.role-edit>summary{cursor:pointer;color:var(--text-soft);width:max-content}.role-edit>summary:hover{color:var(--c-primary)}.role-edit[open]>summary{margin-bottom:6px}.stack-dock{align-items:center;gap:4px;min-width:1px;min-height:26px;display:inline-flex}.stack-dock img{width:26px;height:26px;animation:.5s cubic-bezier(.2,1.6,.4,1) both dock-pop}@keyframes dock-pop{0%{transform:scale(0)}to{transform:scale(1)}}.stack-panel{max-width:720px;margin-top:24px}.stack-panel h2{margin-bottom:4px;font-size:1.25rem}.stack-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:16px;display:grid}.stack-list li{text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:center;gap:6px;padding:18px 12px;display:flex}.stack-list li img{filter:grayscale();opacity:.35}.stack-list li.earned{border-color:color-mix(in srgb, var(--c-accent) 50%, white);background:var(--accent-soft)}.stack-list li.earned img{filter:none;opacity:1}.stack-celebration{z-index:1000;background:color-mix(in srgb, var(--dark) 70%, transparent);place-items:center;padding:16px;transition:background .5s;animation:.3s both cel-fade;display:grid;position:fixed;inset:0}.stack-celebration-card{text-align:center;background:var(--surface);border-radius:24px;width:min(420px,100%);padding:30px 28px 26px;transition:background .4s,box-shadow .4s;animation:.45s cubic-bezier(.2,1.4,.4,1) both cel-pop;position:relative;box-shadow:0 30px 80px #00000059}.stack-celebration-card h2{margin:14px 0 8px;font-size:1.4rem}.stack-celebration-card p{margin-bottom:20px}.stack-celebration-badge{z-index:1;width:180px;height:180px;margin:0 auto;transition:transform .85s cubic-bezier(.6,-.2,.7,.4),opacity .85s;animation:1s cubic-bezier(.2,1.5,.4,1) .1s both cel-badge;display:block;position:relative}.stack-burst{width:0;height:0;position:absolute;top:120px;left:50%}.stack-burst span{background:var(--c-accent);width:10px;height:10px;transform:rotate(calc(var(--i) * 30deg)) translateY(0);border-radius:3px;margin:-5px;animation:1.1s ease-out .25s both cel-burst;position:absolute}.stack-burst span:nth-child(3n){background:var(--c-primary)}.stack-burst span:nth-child(3n+1){background:#f7b500}@keyframes cel-fade{0%{opacity:0}to{opacity:1}}@keyframes cel-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@keyframes cel-badge{0%{transform:scale(0)rotate(-25deg)}70%{transform:scale(1.12)rotate(6deg)}to{transform:scale(1)rotate(0)}}@keyframes cel-burst{0%{transform:rotate(calc(var(--i) * 30deg)) translateY(0);opacity:1}to{transform:rotate(calc(var(--i) * 30deg)) translateY(-150px);opacity:0}}.stack-celebration.fly{pointer-events:none;background:0 0}.stack-celebration.fly .stack-celebration-card{box-shadow:none;background:0 0}.stack-celebration.fly .stack-celebration-card>:not(.stack-celebration-badge){opacity:0;transition:opacity .2s}.stack-celebration.fly .stack-celebration-badge{transform:translate(var(--fly-x,0), var(--fly-y,0)) scale(.15);opacity:.4;animation:none}@media (prefers-reduced-motion:reduce){.stack-celebration,.stack-celebration-card,.stack-celebration-badge,.stack-burst span,.stack-dock img{animation:none}.stack-celebration-badge{transition:opacity .3s}.stack-celebration.fly .stack-celebration-badge{opacity:0;transform:none}}.lesson-lock-actions:empty{display:none}.lesson-lock-contact{border-top:1px dashed var(--border);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:18px;padding-top:18px;display:flex}.lesson-lock-contact span{color:var(--text);font-weight:700}footer.site-footer .foot-contact{flex-wrap:wrap;align-items:center;gap:10px 14px;padding:18px 0 0;display:flex}footer.site-footer .foot-contact>span{color:#fff9;font-size:.9rem;font-weight:700}footer.site-footer .foot-contact-link{border-radius:8px;line-height:0;transition:transform .15s,opacity .15s;display:inline-flex}footer.site-footer .foot-contact-link:hover{opacity:.9;transform:translateY(-2px)}footer.site-footer .foot-contact-link:focus-visible{outline-offset:3px;outline:2px solid #fff}.homework-task{margin-bottom:26px}.homework-task-text{margin-bottom:14px}.homework-task-text p{color:var(--text)}.homework-task-text ul{margin:0 0 12px;padding-left:22px;list-style:outside}.homework-task-text li{margin-bottom:4px}.homework-task .lesson-block{box-shadow:none;background:0 0;border:0;margin-top:0;padding:0}.homework-task-note{margin:10px 0 0;font-size:.88rem}.homework-or{border-top:1px dashed var(--border);margin:8px 0 10px;padding-top:18px;font-size:1rem}.playground-toolbar .check-btn{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}.playground-toolbar .check-btn:hover{filter:brightness(.95)}.check-results{border-radius:var(--radius-sm);background:var(--surface-alt);border:1px solid var(--border);margin-top:14px;padding:14px 18px}.check-results p{color:var(--text);margin:0 0 8px;font-weight:700}.check-summary.all{color:var(--accent-ink)}.check-results ul{gap:6px;display:grid}.check-results li{align-items:flex-start;gap:10px;font-size:.93rem;display:flex}.check-results li>span{color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.8rem;font-weight:800;display:grid}.check-results li.pass>span{background:var(--c-accent)}.check-results li.fail>span{background:var(--danger)}.check-results li.fail{color:var(--text)}.lesson-panel{container-type:inline-size}@container (width<=720px){.playground{grid-template-columns:1fr}}.lesson-lock-contact .btn{gap:8px}.offer{background:var(--surface-alt);scroll-margin-top:72px}.offer-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.offer-table-card{padding:0;overflow:hidden}.offer-table{border-collapse:collapse;width:100%}.offer-table th,.offer-table td{text-align:center;border-bottom:1px solid var(--border);padding:14px 18px;font-size:.95rem}.offer-table tbody th{text-align:left;color:var(--text);font-weight:600}.offer-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);font-size:.85rem}.offer-table tr:last-child th,.offer-table tr:last-child td{border-bottom:0}.offer-table .offer-col-full{background:var(--primary-soft);color:var(--c-primary);font-weight:700}.offer-table thead .offer-col-full{color:var(--c-primary)}.offer-yes{color:var(--accent-ink);font-size:1.1rem;font-weight:800}.offer-col-full .offer-yes{color:var(--c-primary)}.offer-no{color:var(--text-soft)}.offer-price{border:2px solid var(--c-primary);padding:26px}.offer-price h3{margin-bottom:8px}.offer-price-value{color:var(--text);margin:0 0 14px;font-size:1.9rem;font-weight:800}.offer-price-ask{color:var(--text);font-weight:600}.offer-includes{gap:8px;margin:0 0 16px;display:grid}.offer-includes li{color:var(--text);padding-left:26px;position:relative}.offer-includes li:before{content:"✓";color:var(--c-accent);font-weight:800;position:absolute;left:0}.offer-how{font-size:.9rem}.offer-contacts{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.offer-contacts .btn{gap:8px}.offer-free-link{font-size:.92rem;font-weight:600}.offer-outcomes{margin-top:32px}.offer-outcomes ul{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:12px;display:grid}.offer-outcomes li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:16px 18px 16px 46px;position:relative}.offer-outcomes li:before{content:"🎯";position:absolute;top:15px;left:16px}.offer-faq{max-width:820px;margin-top:32px}.offer-faq details{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:10px}.offer-faq summary{cursor:pointer;padding:14px 18px;font-weight:700}.offer-faq details p{margin:0;padding:0 18px 14px}.lesson-lock-more{margin-top:16px;font-weight:600;display:inline-block}@media (width<=860px){.offer-grid{grid-template-columns:minmax(0,1fr)}.offer-table th,.offer-table td{padding:12px 10px;font-size:.88rem}}.home-hero{padding:64px 0 72px;overflow:hidden}.home-hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:32px;display:grid}.home-hero h1{font-size:clamp(2rem,4.4vw,3.1rem)}.home-hero p{color:#ffffffd1;max-width:560px;font-size:1.08rem}.home-hero-art{height:340px;position:relative}.home-hero-circle{aspect-ratio:1;background:radial-gradient(circle at 50% 40%,#fff 0%,#eaf0ff 70%);border-radius:50%;place-items:center;width:min(300px,82%);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px #00000059}.home-hero-circle img{width:46%;height:auto}.home-hero-badge{filter:drop-shadow(0 10px 18px #00000059);width:74px;height:74px;animation:5s ease-in-out infinite home-float;position:absolute}.home-hero-badge.b1{top:4%;left:8%}.home-hero-badge.b2{animation-delay:-1.6s;top:34%;right:6%}.home-hero-badge.b3{animation-delay:-3.2s;bottom:0;left:14%}@keyframes home-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (prefers-reduced-motion:reduce){.home-hero-badge{animation:none}}.home-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.home-steps li{padding:26px 22px 22px;position:relative}.home-step-num{color:var(--primary-soft);-webkit-text-stroke:1px color-mix(in srgb, var(--c-primary) 30%, white);font-size:2.2rem;font-weight:800;line-height:1;position:absolute;top:16px;right:18px}.home-step-icon{background:var(--primary-soft);border-radius:14px;place-items:center;width:52px;height:52px;margin-bottom:14px;font-size:1.6rem;display:grid}.home-steps h3{margin-bottom:8px;font-size:1.08rem}.home-steps p{margin:0;font-size:.95rem}.testimonial{flex-direction:column;justify-content:space-between;gap:16px;margin:0;display:flex}.testimonial blockquote{color:var(--text);margin:0;font-size:1rem;line-height:1.6}.testimonial figcaption{align-items:center;gap:12px;display:flex}.testimonial figcaption img{object-fit:cover;border-radius:50%;width:44px;height:44px}.testimonial figcaption>span{flex-direction:column;font-size:.9rem;display:flex}@media (width<=980px){.home-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.home-hero-grid{grid-template-columns:minmax(0,1fr)}.home-hero-art{order:-1;width:100%;max-width:300px;height:220px;margin:0 auto}.home-steps{grid-template-columns:minmax(0,1fr)}}.chat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:calc(100vh - 230px);min-height:420px;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.chat-list{overscroll-behavior:contain;background:#eef2f9;flex:1;padding:16px 18px 8px;overflow-y:auto}.chat-older{margin:0 auto 12px;display:block}.chat-empty{text-align:center;margin-top:40px}.chat-day{text-align:center;color:var(--text-soft);margin:14px 0 8px;font-size:.78rem;font-weight:700}.chat-msg{flex-direction:column;align-items:flex-start;margin-bottom:6px;scroll-margin:80px;display:flex;position:relative}.chat-msg.mine{align-items:flex-end}.chat-bubble{background:var(--surface);cursor:default;border-radius:14px;max-width:min(560px,82%);padding:7px 12px 6px;box-shadow:0 1px 1px #111d4514}.chat-msg.mine .chat-bubble{background:#d9e6ff;border-bottom-right-radius:4px}.chat-msg:not(.mine) .chat-bubble{border-bottom-left-radius:4px}.chat-author{color:var(--c-primary);align-items:center;gap:6px;margin-bottom:2px;font-size:.8rem;font-weight:800;display:flex}.chat-role{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:1px 7px;font-size:.68rem}.chat-text{color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.45}.chat-text a{word-break:break-all}.chat-deleted{color:var(--text-soft);margin:0;font-style:italic}.chat-sticker{width:140px;height:140px;display:block}.chat-quote{border:0;border-left:3px solid var(--c-primary);text-align:left;width:100%;font:inherit;cursor:pointer;background:#0556f912;border-radius:6px;flex-direction:column;align-items:flex-start;margin:2px 0 6px;padding:5px 9px;font-size:.82rem;display:flex}.chat-quote span{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.chat-meta{color:var(--text-soft);justify-content:flex-end;gap:6px;margin-top:2px;font-size:.7rem;display:flex}.chat-reactions{z-index:1;gap:4px;margin-top:-4px;display:flex}.chat-reactions button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;padding:1px 8px;font-size:.82rem}.chat-reactions button.own{border-color:var(--c-primary);background:var(--primary-soft)}.chat-actions{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;gap:2px;margin-top:3px;padding:3px;display:none}.chat-msg.selected .chat-actions{display:flex}@media (hover:hover){.chat-msg:hover .chat-actions{display:flex}}.chat-actions button{cursor:pointer;background:0 0;border:0;border-radius:50%;width:30px;height:30px;font-size:1rem}.chat-actions button:hover,.chat-actions button.own{background:var(--primary-soft)}.chat-msg.flash .chat-bubble{animation:1.4s chat-flash}@keyframes chat-flash{0%,60%{box-shadow:0 0 0 4px #0556f959}to{box-shadow:none}}.chat-composer{border-top:1px solid var(--border);background:var(--surface);padding:8px 10px 10px}.chat-context{border-left:3px solid var(--c-primary);background:var(--primary-soft);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:6px 10px;font-size:.85rem;display:flex}.chat-context div{flex-direction:column;min-width:0;display:flex}.chat-context span{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-form{align-items:flex-end;gap:8px;display:flex}.chat-form textarea{resize:none;border:1px solid var(--border);min-height:42px;max-height:140px;font:inherit;field-sizing:content;border-radius:20px;flex:1;padding:10px 14px}.chat-form textarea:focus{border-color:var(--c-primary);box-shadow:var(--focus);outline:none}.chat-sticker-btn{background:var(--surface-alt);cursor:pointer;border:0;border-radius:50%;flex:none;width:42px;height:42px;font-size:1.3rem}.chat-send{border-radius:50%;flex:none;justify-content:center;width:42px;height:42px;padding:0}.chat-stickers{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:8px}.chat-sticker-tabs{border-bottom:1px solid var(--border);gap:4px;padding:6px;display:flex}.chat-sticker-tabs button{cursor:pointer;color:var(--text-soft);background:0 0;border:0;border-radius:999px;padding:5px 12px;font-weight:700}.chat-sticker-tabs button[aria-selected=true]{background:var(--primary-soft);color:var(--c-primary)}.chat-sticker-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;max-height:220px;padding:8px;display:grid;overflow-y:auto}.chat-sticker-grid button{cursor:pointer;background:0 0;border:0;border-radius:12px;padding:4px}.chat-sticker-grid button:hover{background:var(--surface-alt)}.chat-sticker-grid img{width:72px;height:72px;margin:0 auto;display:block}@media (width<=600px){.chat{border-left:0;border-right:0;border-radius:0;height:calc(100vh - 190px);margin:0 -16px}.chat-bubble{max-width:88%}}.chat-msg.is-sticker .chat-bubble{box-shadow:none;background:0 0;padding:0}.chat-msg.is-sticker .chat-meta{background:#ffffffd9;border-radius:999px;width:max-content;margin-left:auto;padding:0 8px}.avatar{-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;line-height:1;display:inline-grid;overflow:hidden}.avatar img{align-self:start;width:auto;display:block}.avatar-initial{background:var(--primary-soft);color:var(--c-primary);font-weight:800}.shell-avatar{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:0;line-height:0;transition:border-color .15s}.shell-avatar:hover{border-color:var(--c-primary)}.shell-avatar:focus-visible{box-shadow:var(--focus);outline:none}.avatar-picker{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:8px;display:grid}.avatar-picker button{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;justify-self:center;padding:3px;line-height:0}.avatar-picker button:hover{border-color:var(--border)}.avatar-picker button.selected{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--primary-soft)}.profile-dialog{border-radius:var(--radius);border:0;width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);padding:24px;box-shadow:0 30px 80px #0000004d}.profile-dialog::backdrop{background:color-mix(in srgb, var(--dark) 55%, transparent)}.profile-dialog form{gap:10px;display:grid}.profile-dialog input[type=text]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font:inherit;padding:10px 12px}.profile-dialog-head{align-items:center;gap:14px;margin-bottom:6px;display:flex}.profile-dialog-head h2{margin:0;font-size:1.2rem}.profile-dialog-head p{margin:0;font-size:.88rem}.profile-dialog-label{color:var(--text);margin:8px 0 4px;font-size:.92rem;font-weight:700}.profile-dialog-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.chat-row{align-items:flex-end;gap:8px;max-width:100%;display:flex}.chat-msg.mine .chat-row{justify-content:flex-end}.chat-msg:not(.mine) .chat-reactions,.chat-msg:not(.mine) .chat-actions{margin-left:40px}.cert-page .container{max-width:980px}.cert-status{text-align:center;padding:60px 0}.cert-verify{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-ink);text-align:center;margin:0 0 16px;padding:10px 16px;font-weight:700}.cert-verify.revoked{background:var(--danger-soft);color:var(--danger)}.cert{aspect-ratio:297/210;box-shadow:var(--shadow);background:#fff;border-radius:6px;padding:18px;position:relative;overflow:hidden}.cert:before{content:"";background:radial-gradient(circle at 0 0, var(--primary-soft) 0 22%, transparent 22.2%), radial-gradient(circle at 100% 100%, var(--accent-soft) 0 26%, transparent 26.2%);position:absolute;inset:0}.cert-inner{border:3px double color-mix(in srgb, var(--c-primary) 55%, white);text-align:center;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:.6%;height:100%;padding:3% 6%;display:flex;position:relative}.cert-kicker{letter-spacing:.28em;color:var(--c-primary);margin:2% 0 0;font-size:clamp(1.4rem,4vw,2.6rem);font-weight:800}.cert-lead{color:var(--text-soft);margin:1% 0 0}.cert-name{border-bottom:2px solid var(--border);margin:1% 0;padding:0 4% 1%;font-size:clamp(1.6rem,5vw,3.2rem);line-height:1.1}.cert-course{color:var(--text);margin:1% 0 0;font-size:clamp(.9rem,1.8vw,1.15rem);font-weight:600}.cert-details{color:var(--text-soft);margin:0;font-size:clamp(.8rem,1.5vw,.98rem)}.cert-footer{justify-content:space-between;align-items:flex-end;width:100%;margin-top:4%;display:flex}.cert-footer>div{flex-direction:column;min-width:30%;display:flex}.cert-footer strong{border-top:1px solid var(--border);color:var(--text);padding-top:4px}.cert-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.cert-seal{width:clamp(44px,8vw,72px);height:auto}.cert-id{color:var(--text-soft);margin:3% 0 0;font-family:Menlo,Consolas,monospace;font-size:.72rem}.cert.is-revoked .cert-inner{opacity:.45}.cert-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.cert-hint{text-align:center;margin-top:10px;font-size:.85rem}.cert-home{text-align:center;margin-top:12px}.my-cert{max-width:720px;margin-top:24px}.my-cert h2{margin-bottom:6px;font-size:1.25rem}@media print{@page{size:A4 landscape;margin:0}header.site-header,footer.site-footer,.cert-verify,.cert-actions,.cert-hint,.cert-home{display:none!important}body{background:#fff}.cert-page{padding:0}.cert-page .container{max-width:none;padding:0}.cert{box-shadow:none;aspect-ratio:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:0;width:297mm;height:210mm}}@media screen and (width<=700px){.cert{aspect-ratio:auto;padding:10px}.cert-inner{gap:6px;padding:22px 14px}.cert-footer{gap:10px;margin-top:14px}.cert-footer>div{flex:1;min-width:0}.cert-id{word-break:break-all}}.chat-image{cursor:zoom-in;background:var(--surface-alt);border-radius:10px;max-width:min(320px,100%);height:auto;margin:2px 0 4px;display:block}.chat-image-loading{background:var(--surface-alt);border-radius:10px;width:220px;height:140px;display:block}.chat-image-missing{color:var(--text-soft);font-size:.88rem;font-style:italic;display:block}.chat-lightbox{z-index:1000;cursor:zoom-out;background:#000000d9;border:0;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.chat-lightbox img{border-radius:8px;max-width:100%;max-height:100%}.chat-code{margin:6px 0;display:block;position:relative}.chat-code code{color:#e4e7ef;white-space:pre;background:#111d45;border-radius:8px;padding:10px 76px 10px 12px;font:.85rem/1.5 Menlo,Consolas,monospace;display:block;overflow-x:auto}.chat-code-copy{color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:6px;padding:2px 8px;font-size:.72rem;position:absolute;top:6px;right:6px}.chat-inline-code{background:#111d4514;border-radius:4px;padding:1px 5px;font:.88em Menlo,Consolas,monospace}.chat-attachment{background:var(--surface-alt);border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:6px 10px;font-size:.85rem;display:flex}.chat-attachment img{object-fit:cover;border-radius:6px;width:56px;height:56px}.chat-attachment span{color:var(--text-soft);flex:1}.chat-code-btn{color:var(--c-primary);font:800 .8rem Menlo,Consolas,monospace}@media (width<=600px){.chat-form .chat-sticker-btn{width:36px;height:36px;font-size:1.1rem}}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;display:grid}.course-card{color:var(--text);flex-direction:column;padding:0;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.course-card:hover{box-shadow:0 14px 32px color-mix(in srgb, var(--c-secondary) 14%, transparent);text-decoration:none;transform:translateY(-3px)}.course-cover{aspect-ratio:16/7;color:#fff;place-items:center;font-size:3rem;display:grid}.course-cover>span{filter:drop-shadow(0 6px 12px #00000040)}.cover-blue{background:linear-gradient(135deg, var(--c-primary), var(--primary-dark))}.cover-teal{background:linear-gradient(135deg, var(--c-accent), var(--accent-ink))}.cover-navy{background:linear-gradient(135deg, var(--dark-2), var(--c-secondary))}.course-card-body{flex-direction:column;flex:1;gap:6px;padding:18px 20px 20px;display:flex}.course-card-title{font-size:1.15rem}.course-card-tags{color:var(--c-primary);font-size:.82rem;font-weight:600}.course-card-text{color:var(--text-soft);font-size:.95rem}.course-card-by{font-size:.85rem}.course-card-open{color:var(--c-primary);margin-top:auto;padding-top:8px;font-weight:700}.course-card:focus-visible{box-shadow:var(--focus), 0 14px 32px color-mix(in srgb, var(--c-secondary) 14%, transparent);outline:none}.course-card-text{line-height:1.55}.course-manager-page{padding-bottom:48px}.course-manager-page .container{gap:18px;display:grid}.course-manager-page .shell-head{margin-bottom:0}.course-manager-card{gap:18px;padding:24px;display:grid}.course-manager-card h2,.course-manager-card h3{margin:0}.course-manager-card h3{font-size:1.08rem}.course-manager-card form{border-top:1px solid var(--border);gap:16px;padding-top:20px;display:grid}.course-manager-card label{min-width:0;color:var(--text);gap:6px;font-size:.9rem;font-weight:650;display:grid}.course-manager-card input:not([type=checkbox]),.course-manager-card input[type=file],.course-manager-card select,.course-manager-card textarea,.course-manager-toolbar select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:0;color:var(--text);font:inherit;padding:10px 12px}.course-manager-card textarea{resize:vertical;min-height:92px}.course-manager-card input[type=checkbox]{width:18px;height:18px;accent-color:var(--c-primary);vertical-align:middle}.course-manager-card label:has(input[type=checkbox]){align-items:center;gap:9px;display:flex}.course-manager-card .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.course-manager-card .form-row>label{min-width:0}.course-manager-page .btn+.btn{margin-left:8px}.course-manager-toolbar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);justify-content:space-between;align-items:end;gap:14px;padding:16px 18px;display:flex}.course-manager-toolbar>label{gap:6px;width:min(440px,100%);font-size:.9rem;font-weight:700;display:grid}.course-manager-owner{grid-template-columns:1fr auto;align-items:center}.course-manager-owner h2{font-size:1.05rem}.course-manager-owner .course-manager-toolbar{box-shadow:none;border:0;grid-area:1/2;padding:0}.course-manager-preview{aspect-ratio:16/7;object-fit:cover;border-radius:var(--radius-sm);width:min(260px,100%)}.course-manager-error{margin:0}.course-manager-lesson-list{gap:8px;display:grid}.course-manager-lesson-row,.course-manager-student-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:12px;padding:12px 14px;display:flex}.course-manager-order{background:var(--primary-soft);width:34px;height:34px;color:var(--c-primary);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.course-manager-lesson-title,.course-manager-student-row>span{flex:1;min-width:0;font-weight:650;display:grid}.course-manager-lesson-title small,.course-manager-student-row small{color:var(--text-soft);font-size:.82rem;font-weight:450}.course-manager-student-row{justify-content:space-between}.course-manager-search{max-width:460px}@media (width<=760px){.course-manager-card{padding:18px}.course-manager-toolbar{flex-direction:column;align-items:stretch}.course-manager-toolbar>label{width:100%}.course-manager-owner{grid-template-columns:1fr}.course-manager-owner .course-manager-toolbar{grid-area:auto/1}.course-manager-card .form-row{grid-template-columns:1fr}.course-manager-lesson-row,.course-manager-student-row{align-items:flex-start}}.courses-more{margin-top:22px}.course-hero{padding:48px 0 56px}.course-hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:32px;display:grid}.course-hero-back{color:var(--on-dark-soft);margin-bottom:14px;font-weight:600;display:inline-block}.course-hero-back:hover{color:#fff}.course-hero h1{font-size:clamp(1.9rem,4vw,2.8rem)}.course-hero .course-hero-tags{color:var(--c-accent);font-size:.95rem;font-weight:700}.course-hero-by{font-size:.95rem}.course-hero-cover{border-radius:var(--radius);font-size:4.5rem;box-shadow:0 24px 60px #00000059}.course-soon{text-align:center;color:var(--text-soft)}.course-lesson-list{flex-direction:column;gap:8px;display:flex}.course-lesson-item{border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--border);color:var(--text);align-items:center;gap:14px;padding:14px 18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.course-lesson-item:hover{border-color:var(--c-primary);text-decoration:none;transform:translateY(-1px)}.course-lesson-num{background:var(--primary-soft);width:32px;height:32px;color:var(--c-primary);border-radius:8px;flex-shrink:0;place-items:center;font-size:.88rem;font-weight:800;display:grid}.course-lesson-info{flex:1;min-width:0}.course-lesson-title{font-size:.97rem;font-weight:600;display:block}.course-lesson-skill{color:var(--text-soft);margin-top:2px;font-size:.8rem;display:block}.course-lesson-page{padding:40px 0 80px}.course-lesson-breadcrumb{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:28px;font-size:.83rem;display:flex}.course-lesson-breadcrumb a{color:var(--text-soft)}.course-lesson-breadcrumb a:hover{color:var(--c-primary)}.course-lesson-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:32px;display:grid}.course-lesson-main{min-width:0}.course-lesson-header{margin-bottom:20px}.course-lesson-header h1{margin:6px 0 10px;font-size:clamp(1.4rem,2.8vw,2rem)}.course-lesson-badges{flex-wrap:wrap;gap:8px;display:flex}.course-lesson-sidebar{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);position:sticky;top:24px;overflow:hidden}.course-lesson-sidebar-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);border-bottom:1px solid var(--border);margin:0;padding:14px 16px 10px;font-size:.83rem;font-weight:700}.course-lesson-sidebar-list{max-height:70vh;margin:0;padding:8px 0;list-style:none;overflow-y:auto}.course-lesson-sidebar-item{color:var(--text);align-items:center;gap:10px;padding:9px 16px;font-size:.88rem;text-decoration:none;transition:background .12s;display:flex}.course-lesson-sidebar-item:hover{background:var(--surface-alt);text-decoration:none}.course-lesson-sidebar-item.active{background:var(--primary-soft);color:var(--c-primary);font-weight:600}.course-lesson-sidebar-num{color:var(--text-soft);min-width:18px;font-size:.78rem;font-weight:700}.course-lesson-sidebar-item.active .course-lesson-sidebar-num{color:var(--c-primary)}.course-lesson-sidebar-name{flex:1;min-width:0}.course-lesson-sidebar-free{color:var(--accent-ink);background:var(--accent-soft);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.72rem;font-weight:700}@media (width<=860px){.course-lesson-layout{grid-template-columns:minmax(0,1fr)}.course-lesson-sidebar{position:static}}@media (width<=760px){.course-hero-grid{grid-template-columns:minmax(0,1fr)}.course-hero-cover{order:-1;font-size:3.2rem}}.lesson-assessment{margin-top:20px}.lesson-assessment .panel-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.lesson-quiz{gap:16px;display:grid}.quiz-question{border:1px solid var(--border);border-radius:12px;min-width:0;padding:14px}.quiz-question legend{padding:0 6px;font-weight:700}.quiz-option{cursor:pointer;align-items:flex-start;gap:10px;margin:10px 0;display:flex}.quiz-option input{margin-top:4px}.qe-wrap{flex-direction:column;gap:14px;display:flex}.qe-question{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.qe-question-head{align-items:flex-start;gap:10px;display:flex}.qe-question-num{background:var(--c-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:22px;height:22px;margin-top:2px;font-size:.75rem;font-weight:700;display:flex}.qe-question-texts{flex:1;grid-template-columns:1fr 1fr;gap:8px;display:grid}.qe-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font-size:.875rem}.qe-option{grid-template-columns:auto 1fr 1fr auto;align-items:center;gap:8px;display:grid}.qe-option input[type=radio]{accent-color:var(--c-primary);cursor:pointer;flex-shrink:0;width:16px;height:16px}.qe-btn-remove{border:1px solid var(--border);cursor:pointer;color:var(--text-soft);background:0 0;border-radius:6px;flex-shrink:0;padding:2px 7px;font-size:.75rem}.qe-btn-remove:hover:not(:disabled){color:#f87171;border-color:#f87171}.qe-btn-remove:disabled{opacity:.35;cursor:not-allowed}@media (width<=640px){.qe-question-texts{grid-template-columns:1fr}.qe-option{grid-template-columns:auto 1fr auto}.qe-option input.qe-input:last-of-type{grid-column:2}}.carousel{padding-bottom:28px}.carousel-track{display:grid}.carousel-slide{opacity:0;visibility:hidden;grid-area:1/1;transition:opacity .5s,visibility 0s linear .5s}.carousel-slide.active{opacity:1;visibility:visible;transition:opacity .5s}.carousel-art{place-items:center;min-height:340px;display:grid}.carousel-art .home-hero-art{width:100%}.carousel-controls{justify-content:center;align-items:center;gap:12px;margin-top:26px;display:flex}.carousel-arrow,.carousel-pause{border:1px solid var(--on-dark-line);color:#fff;cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:38px;height:38px;font-size:1.4rem;line-height:1;display:grid}.carousel-pause{font-size:.75rem}.carousel-arrow:hover,.carousel-pause:hover{background:var(--on-dark-line)}.carousel-dots{gap:8px;display:flex}.carousel-dots button{cursor:pointer;background:#ffffff59;border:0;border-radius:999px;width:10px;height:10px;padding:0;transition:width .25s,background .25s}.carousel-dots button.active{background:var(--c-accent);width:28px}.carousel button:focus-visible{box-shadow:var(--focus);outline:none}.slide-tiles{grid-template-columns:repeat(3,92px);gap:16px;display:grid}.slide-tile{border-radius:22px;place-items:center;width:92px;height:92px;font-size:2.4rem;animation:6s ease-in-out infinite home-float;display:grid;box-shadow:0 16px 36px #0000004d}.slide-tile.t0{background:linear-gradient(135deg, var(--c-primary), var(--primary-dark))}.slide-tile.t1{background:linear-gradient(135deg, var(--c-accent), var(--accent-ink));animation-delay:-2s}.slide-tile.t2{background:#fff;animation-delay:-4s}.slide-code{border-radius:var(--radius);background:#0b1430;width:min(340px,100%);overflow:hidden;box-shadow:0 24px 60px #0006}.slide-code-bar{background:#ffffff0f;gap:6px;padding:10px 12px;display:flex}.slide-code-bar i{background:#ffffff40;border-radius:50%;width:10px;height:10px}.slide-code pre{color:var(--code-text);white-space:pre;margin:0;padding:16px 18px;font-size:.95rem;line-height:1.55}.slide-code-ok{background:var(--c-accent);color:#fff;letter-spacing:4px;padding:10px 18px;font-weight:800}.slide-quiz{justify-content:center;align-items:center;width:100%;display:flex}.slide-quiz-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius);background:#ffffff1a;border:1.5px solid #ffffff38;width:min(320px,100%);padding:22px 24px;box-shadow:0 24px 60px #0000004d}.slide-quiz-q{color:#fff;margin:0 0 16px;font-size:.97rem;font-weight:700;line-height:1.45}.slide-quiz-opts{flex-direction:column;gap:9px;display:flex}.slide-quiz-opt{color:#ffffffc7;border:1.5px solid #ffffff38;border-radius:9px;padding:10px 14px;font-size:.88rem;transition:background .15s}.slide-quiz-opt.sel{background:var(--c-primary);border-color:var(--c-primary);color:#fff;font-weight:600}.slide-laptop{justify-content:center;align-items:center;width:100%;display:flex}.slide-laptop-wrap{width:min(300px,100%)}.slide-laptop-screen{background:#0b1430;border:2px solid #ffffff2e;border-bottom:0;border-radius:12px 12px 0 0;padding:20px 18px}.slide-laptop-specs{flex-direction:column;gap:8px;display:flex}.slide-laptop-spec{color:#ffffffe6;background:#ffffff14;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:.88rem;display:flex}.slide-laptop-spec strong{min-width:22px;font-size:1rem}.slide-laptop-base{background:#ffffff2e;border:2px solid #ffffff2e;border-top:0;border-radius:0 0 8px 8px;height:14px}@media (prefers-reduced-motion:reduce){.carousel-slide,.carousel-slide.active{transition:none}.slide-tile{animation:none}}@media (width<=860px){.carousel-art{order:-1;min-height:220px}.slide-tiles{grid-template-columns:repeat(3,64px);gap:12px}.slide-tile{border-radius:16px;width:64px;height:64px;font-size:1.7rem}}.quiz-progress-row{align-items:center;gap:14px;margin-bottom:24px;display:flex}.quiz-progress-bar{background:var(--border);border-radius:99px;flex:1;height:6px;overflow:hidden}.quiz-progress-fill{background:var(--c-primary);border-radius:99px;height:100%;transition:width .3s}.quiz-question-block{margin-bottom:16px}.quiz-q-text{margin-bottom:14px;font-size:1.05rem}.quiz-options{flex-direction:column;gap:10px;display:flex}.quiz-option-btn{text-align:left;border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;padding:12px 16px;font-size:.97rem;transition:border-color .15s,background .15s}.quiz-option-btn:hover{border-color:var(--c-primary);background:var(--primary-soft)}.quiz-option-btn.selected{border-color:var(--c-primary);background:var(--primary-soft);font-weight:600}.lesson-nav-locked{text-align:right;border:2px dashed var(--border);min-width:200px;color:var(--text-muted);border-radius:12px;flex:1;padding:14px 18px;font-size:.9rem}.cm-layout{grid-template-columns:260px minmax(0,1fr);min-height:calc(100vh - 64px);display:grid}.cm-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;padding:0;display:flex;overflow-y:auto}.cm-sidebar-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 16px 12px;display:flex}.cm-sidebar-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);font-size:.92rem;font-weight:700}.cm-new-btn{border:1.5px solid var(--border);background:var(--bg);width:28px;height:28px;color:var(--c-primary);cursor:pointer;border-radius:8px;place-items:center;transition:background .15s,border-color .15s;display:grid}.cm-new-btn:hover{background:var(--primary-soft);border-color:var(--c-primary)}.cm-owner-row{border-bottom:1px solid var(--border);gap:8px;padding:12px 14px;display:grid}.cm-owner-form{gap:8px;display:flex}.cm-owner-form select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);min-width:0;color:var(--text);font:inherit;flex:1;padding:6px 10px;font-size:.88rem}.cm-course-list{flex:1;padding:6px 0}.cm-course-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:10px 14px;transition:background .12s;display:flex}.cm-course-item:hover{background:var(--surface-alt)}.cm-course-item.active{background:var(--primary-soft)}.cm-course-item.archived{opacity:.7}.cm-course-item-icon{text-align:center;flex-shrink:0;width:28px;font-size:1.3rem}.cm-course-item-info{flex:1;gap:3px;min-width:0;display:grid}.cm-course-item-name{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.cm-course-item-arrow{color:var(--c-primary);flex-shrink:0}.cm-badge{border-radius:5px;padding:1px 7px;font-size:.72rem;font-weight:700;line-height:1.6;display:inline-block}.cm-badge-live{background:var(--accent-soft);color:var(--accent-ink)}.cm-badge-draft{background:var(--surface-alt);color:var(--text-soft)}.cm-badge-archived{color:var(--text-soft);background:#0000000f}.cm-empty-hint{color:var(--text-soft);padding:16px 14px;font-size:.88rem}.cm-main{flex-direction:column;gap:0;min-width:0;padding:28px 32px;display:flex}.cm-error{margin-bottom:16px}.cm-splash{color:var(--text-soft);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 24px;display:flex}.cm-main-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.cm-main-title-row{align-items:center;gap:12px;display:flex}.cm-main-icon{font-size:2rem}.cm-main-title{margin:0;font-size:1.4rem}.cm-main-subtitle{color:var(--text-soft);margin:4px 0 0;font-size:.88rem}.cm-action-btns{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cm-action-btns .btn{align-items:center;gap:5px;display:flex}.cm-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:24px;padding-bottom:0;display:flex}.cm-tab{color:var(--text-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2.5px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 14px;font-size:.9rem;font-weight:600;transition:color .15s;display:flex}.cm-tab:hover{color:var(--text)}.cm-tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary)}.cm-panel{gap:24px;display:grid}.cm-field-group{gap:16px;display:grid}.cm-label{min-width:0;color:var(--text);gap:6px;font-size:.9rem;font-weight:650;display:grid}.cm-label input:not([type=checkbox]),.cm-label select,.cm-label textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;min-width:0;color:var(--text);font:inherit;padding:10px 12px;font-size:.93rem}.cm-label input:focus,.cm-label select:focus,.cm-label textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.cm-label textarea{resize:vertical;min-height:80px}.cm-row-3{grid-template-columns:120px 140px minmax(0,1fr)!important}.cm-cover-preview{aspect-ratio:16/7;object-fit:cover;border-radius:var(--radius-sm);width:min(260px,100%)}.cm-form-footer{gap:10px;padding-top:4px;display:flex}.cm-section{gap:14px;display:grid}.cm-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);font-size:.82rem;font-weight:700}.cm-subsection{border:1px solid var(--border);border-radius:var(--radius-sm);gap:12px;padding:14px;display:grid}.cm-subsection h4{margin:0;font-size:.92rem}.cm-lesson-form{gap:16px;display:grid}.cm-add-lesson{border-top:1px solid var(--border);padding-top:20px}.cm-add-lesson-title{margin:0 0 4px;font-size:1.02rem}.cm-lesson-list{gap:6px;max-height:340px;display:grid;overflow-y:auto}.cm-lesson-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:12px;padding:11px 14px;display:flex}.cm-lesson-row:hover{border-color:var(--c-primary)}.cm-lesson-order{background:var(--primary-soft);width:30px;height:30px;color:var(--c-primary);border-radius:50%;flex:none;place-items:center;font-size:.82rem;font-weight:800;display:grid}.cm-lesson-info{flex:1;gap:2px;min-width:0;display:grid}.cm-lesson-title{white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:650;overflow:hidden}.cm-lesson-info small{color:var(--text-soft);font-size:.8rem}.cm-lesson-row .btn{flex-shrink:0;align-items:center;gap:5px;display:flex}.cm-checkboxes{flex-wrap:wrap;gap:16px;display:flex}.cm-checkboxes label{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.cm-checkboxes input[type=checkbox]{width:17px;height:17px;accent-color:var(--c-primary)}.cm-student-list{gap:6px;display:grid}.cm-student-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.cm-student-info{gap:2px;min-width:0;display:grid}.cm-student-info strong{font-size:.92rem}.cm-student-info small{color:var(--text-soft);font-size:.8rem}.cm-search-label{max-width:420px}@media (width<=900px){.cm-layout{grid-template-columns:1fr}.cm-sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:260px}.cm-main{padding:20px 16px}.cm-row-3{grid-template-columns:1fr!important}}@media (width<=640px){.cm-main-head{flex-direction:column}.cm-action-btns{width:100%}}.icon-lucide{background:var(--primary-soft);width:48px;height:48px;color:var(--c-primary);border-radius:14px;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.home-hero-circle{background:radial-gradient(circle,#ffffff26 0%,#ffffff0a 100%);border:2px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;display:flex}.hero-code-art{flex-direction:column;gap:8px;padding:8px;display:flex}.hero-code-line{white-space:nowrap;font-family:Fira Code,monospace;font-size:.72rem}.cc-kw{color:#c792ea}.cc-var,.cc-fn{color:#82aaff}.cc-str{color:#c3e88d}.slide-career{flex-direction:column;justify-content:center;align-items:center;gap:20px;width:100%;display:flex}.slide-career-path{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius);background:#ffffff1a;border:1.5px solid #ffffff38;align-items:center;gap:10px;padding:18px 24px;display:flex}.slide-career-step{color:#fff;flex-direction:column;align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:flex}.slide-career-arrow{color:#ffffff8c;flex-shrink:0}.slide-career-icon{color:#ffffff2e}.slide-quiz-opt{align-items:center;gap:8px;display:flex}.course-hero.theme-blue{background:linear-gradient(135deg,#1e40af 0%,#0ea5e9 100%)}.course-hero.theme-teal{background:linear-gradient(135deg,#0d9488 0%,#6366f1 100%)}.course-hero.theme-navy{background:linear-gradient(135deg,#1e293b 0%,#1e40af 100%)}.course-hero.theme-green{background:linear-gradient(135deg,#15803d 0%,#16a34a 100%)}.course-hero.theme-purple{background:linear-gradient(135deg,#7c3aed 0%,#db2777 100%)}.course-hero.theme-orange{background:linear-gradient(135deg,#c2410c 0%,#f59e0b 100%)}.profile-info-card{margin-bottom:16px}.profile-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);margin:0 0 12px;font-size:.9rem;font-weight:700}.profile-name-label{flex-direction:column;gap:6px;margin-top:16px;font-size:.875rem;font-weight:600;display:flex}.profile-name-label input{margin-top:2px}.profile-save-row{margin-top:16px}.avatar-picker-none{border:2px dashed var(--border);cursor:pointer;background:0 0;border-radius:50%;justify-self:center;padding:3px;line-height:0}.avatar-picker-none:hover{border-color:var(--text-soft)}.avatar-picker-none.selected{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--primary-soft);border-style:solid}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-primary:#4d8bff;--c-accent:#2dd4be;--primary-dark:#3a7af0;--primary-soft:#4d8bff24;--primary-on-dark:#4d8bff;--accent-soft:#2dd4be24;--accent-ink:#20b09a;--dark:#09111f;--dark-2:#0f1a2f;--on-dark:#e0e6f8;--on-dark-soft:#e0e6f8b8;--on-dark-line:#e0e6f81a;--code-text:#7ee3d6;--surface:#101625;--surface-alt:#171e30;--text:#e0e6f8;--text-soft:#8b95b8;--border:#242d44;--danger:#f87171;--danger-soft:#3d1313;--warning:#fbbf24;--warning-soft:#2b1e09;--shadow:0 8px 24px #0000008c;--focus:0 0 0 3px #4d8bff73}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface-alt);color:var(--text);border-color:var(--border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .card{background:var(--surface);border-color:var(--border)}.skip-link{z-index:10000;background:var(--c-primary);color:#fff;border-radius:var(--radius-sm);padding:8px 20px;font-size:.9rem;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-100%;left:16px}.skip-link:focus{box-shadow:var(--focus);outline:none;top:8px}.theme-toggle{border:1.5px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-soft);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s,border-color .2s;display:flex}.theme-toggle:hover{background:var(--surface-alt);color:var(--text);border-color:var(--text-soft)}.theme-toggle:focus-visible{box-shadow:var(--focus);outline:none}.lesson-sidebar-toggle{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:8px;margin-bottom:8px;padding:12px 16px;font-size:.9rem;font-weight:600;display:none}.lesson-sidebar-toggle:hover{border-color:var(--c-primary);color:var(--c-primary)}@media (width<=860px){.lesson-sidebar-toggle{display:flex}.course-lesson-sidebar{display:none}.course-lesson-sidebar.open{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.badge{letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-primary{background:var(--primary-soft);color:var(--c-primary)}.badge-success{background:var(--accent-soft);color:var(--accent-ink)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-muted{background:var(--surface-alt);color:var(--text-soft);border:1px solid var(--border)}.btn-lg{padding:14px 30px;font-size:1rem}.btn-secondary{background:var(--surface-alt);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--border);color:var(--text)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--surface-alt) 25%, var(--border) 50%, var(--surface-alt) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.skeleton-text{height:1em;margin-bottom:8px}.skeleton-text.short{width:55%}.skeleton-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-height:280px;overflow:hidden}.skeleton-card-cover{aspect-ratio:16/9;background:linear-gradient(90deg, var(--surface-alt) 25%, var(--border) 50%, var(--surface-alt) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.skeleton-card-body{flex-direction:column;gap:10px;padding:18px 20px;display:flex}.course-cover{aspect-ratio:16/9!important}.cover-green{background:linear-gradient(135deg,#16a34a,#15803d)}.cover-purple{background:linear-gradient(135deg,#7c3aed,#5b21b6)}.cover-orange{background:linear-gradient(135deg,#ea580c,#c2410c)}.res-cat h3{align-items:center;gap:10px;font-size:1.05rem;display:flex}.res-cat h3 svg{width:20px;height:20px;color:var(--c-primary);opacity:.85;flex-shrink:0}[data-theme=dark] .auth-form input,[data-theme=dark] .auth-form textarea{background:var(--surface-alt);border-color:var(--border);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px}[data-theme=dark] .auth-brand{color:var(--text)}@media (width<=480px){.course-grid{grid-template-columns:1fr;gap:16px}}@media (width<=768px){.container{padding:0 16px}body{overflow-x:hidden}}@media (width<=600px){section{padding:44px 0}section.tight{padding:28px 0}}@media (width<=860px){.nav-right .theme-toggle{display:none}}.nav-theme-mobile{border-top:1px solid var(--on-dark-line);margin-top:6px;padding:10px 14px 14px;display:none}.nav-theme-mobile .theme-toggle{color:#fff;background:var(--on-dark-line);border-color:#0000;border-radius:8px;gap:8px;width:auto;padding:8px 14px;font-size:.9rem;font-weight:600}.nav-theme-mobile .theme-toggle:hover{background:var(--c-primary);color:#fff;border-color:#0000}.theme-toggle-label{font-size:.9rem;font-weight:600;line-height:1}@media (width<=860px){.nav-links.open .nav-theme-mobile{display:flex}}@media (width>=861px){.theme-toggle-label{display:none}}.home-hero-editor{justify-content:center;align-items:center;height:340px;display:flex;position:relative}.hero-editor-svg{border-radius:14px;width:100%;max-width:480px;height:auto;display:block;box-shadow:0 20px 60px #0006,0 8px 24px #0556f933}@media (width<=860px){.home-hero-editor{height:200px}.hero-editor-svg{max-width:340px}}
