*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-success:#16a34a;--color-error:#dc2626;--color-muted:#6b7280;--color-border:#e5e7eb;--color-surface:#f9fafb;--radius:8px;--nav-height:56px}body{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;color:#111;background:#fff}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.nav{position:-webkit-sticky;position:sticky;top:0;height:var(--nav-height);background:#fff;border-bottom:1px solid var(--color-border);display:flex;padding:0 1.5rem;gap:1.5rem;z-index:10}.nav,.nav-logo{align-items:center}.nav-logo{display:inline-flex;gap:.5rem;font-weight:700;font-size:1.125rem;color:#111;margin-right:auto}.nav-logo,.nav-logo:hover{text-decoration:none}.nav-link{font-size:.875rem;color:var(--color-muted)}.nav-link:hover{color:#111;text-decoration:none}.nav-link--active{color:#111;font-weight:600}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s}.btn,.btn:hover{text-decoration:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-outline{background:transparent;border-color:var(--color-border);color:#111}.btn-outline:hover{background:var(--color-surface)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.container{max-width:860px;margin:0 auto;padding:0 1.5rem}.page{padding:2.5rem 0}.card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem}.card+.card{margin-top:.75rem}.card-link{display:block;text-decoration:none;color:inherit;transition:border-color .15s}.card-link:hover{border-color:var(--color-primary);text-decoration:none}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:1rem;gap:1rem;margin-top:1.5rem}.course-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;transition:box-shadow .15s}.course-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}.course-card h3{font-size:1rem}.course-card p{font-size:.875rem;color:var(--color-muted);flex:1 1}.course-grid--foundation{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:0}.course-card--foundation{display:flex;flex-direction:column;border-color:var(--color-primary);background:#eef2ff;padding:1.5rem;margin-bottom:.5rem;text-decoration:none;color:inherit}.course-card--foundation:hover{box-shadow:0 2px 8px rgba(79,70,229,.15);text-decoration:none}.course-card--foundation h3{font-size:1.25rem;color:#111;margin-bottom:.375rem}.course-card--foundation p{font-size:.875rem;color:var(--color-muted)}.course-card-badge{display:inline-block;font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-success);background:#dcfce7;border:1px solid #86efac;padding:.2rem .625rem;border-radius:20px;margin-bottom:.875rem;align-self:flex-start}.course-card-badge--premium{color:#7c3aed;background:#f3e8ff;border-color:#d8b4fe}.course-section-label{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:2rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.chapter-list{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.chapter-item{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.chapter-header{padding:.875rem 1.25rem;background:var(--color-surface);font-weight:600}.subchapter-list{list-style:none}.subchapter-item{display:flex;align-items:center;padding:.625rem 1.25rem;border-top:1px solid var(--color-border);font-size:.9rem}.subchapter-item a{flex:1 1}.subchapter-item span{font-size:.75rem;color:var(--color-muted)}.lesson-header{margin-bottom:2rem}.lesson-header h1{font-size:1.5rem;margin-bottom:.375rem}.breadcrumb{font-size:.8125rem}.breadcrumb,.breadcrumb a{color:var(--color-muted)}.breadcrumb span{margin:0 .25rem}.exercises{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.exercise{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.exercise-header{padding:.625rem 1.25rem;background:var(--color-surface);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted)}.exercise-body{padding:1.25rem}.exercise-prompt{margin-bottom:1rem;white-space:pre-wrap}.exercise-prompt code{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:.875rem 1rem;display:block;font-family:ui-monospace,monospace;font-size:.8125rem;line-height:1.6;white-space:pre;overflow-x:auto}.exercise-footer{padding:.75rem 1.25rem;border-top:1px solid var(--color-border);display:flex;align-items:center;gap:.75rem}.mcq-choices{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.mcq-choice{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;font-size:.9rem;transition:border-color .1s,background .1s}.mcq-choice:hover{border-color:var(--color-primary);background:#eef2ff}.mcq-choice input[type=radio]{accent-color:var(--color-primary)}.trace-inputs{margin-bottom:1rem}.trace-row{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.trace-row label{width:80px;color:var(--color-muted)}.trace-row input{flex:1 1;padding:.375rem .625rem;border:1px solid var(--color-border);border-radius:4px;font-family:ui-monospace,monospace;font-size:.875rem}.predict-input{align-items:center;gap:.75rem;margin-bottom:1rem}.predict-input label{font-size:.875rem;color:var(--color-muted);white-space:nowrap}.predict-input input{width:180px;padding:.375rem .625rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem}.code-editor,.predict-input input{font-family:ui-monospace,monospace}.code-editor{min-height:140px;padding:.75rem;font-size:.8125rem;margin-bottom:.75rem;background:#fff}.code-editor:focus{outline:2px solid var(--color-primary);border-color:transparent}.output-panel{background:#1e1e1e;color:#d4d4d4;padding:.75rem;font-family:ui-monospace,monospace;font-size:.8125rem;line-height:1.6;min-height:60px;margin-bottom:.75rem;white-space:pre-wrap}.feedback{padding:.5rem .875rem;border-radius:4px;font-size:.875rem;font-weight:500}.feedback-correct{background:#dcfce7;color:var(--color-success)}.feedback-wrong{background:#fee2e2;color:var(--color-error)}.marketing-hero{padding:5rem 1.5rem 4rem;max-width:720px;margin:0 auto}.marketing-hero-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.15;margin-bottom:1.75rem}.marketing-hero-title-sub{display:block;font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;color:var(--color-muted);margin-top:1rem}.lp-hero-checklist{list-style:none;display:flex;flex-direction:column;align-items:flex-start;gap:.625rem;margin:0 0 2rem}.lp-hero-checklist li{display:flex;align-items:center;gap:.625rem;font-size:1.0625rem;color:var(--color-muted)}.lp-hero-checklist li:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#dcfce7;color:var(--color-success);font-size:.75rem;font-weight:700;flex-shrink:0}.lp-hero-checklist li.lp-hero-checklist-miss{color:#111;font-weight:700}.lp-hero-checklist li.lp-hero-checklist-miss:before{content:"✕";background:#fee2e2;color:var(--color-error)}.lp-hero-video{margin-top:.5rem}.lp-video-player{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;border-radius:var(--radius);background:#000;border:1px solid #c7d2fe;box-shadow:0 12px 28px -12px rgba(79,70,229,.25)}.lp-video-player-caption{display:block;margin-top:.625rem;text-align:center;font-size:.8125rem;color:var(--color-muted)}.lp-section{max-width:720px;margin:0 auto;padding:4rem 1.5rem;border-top:1px solid var(--color-border)}.lp-section-headline{font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.2;margin-bottom:1.5rem}.lp-body-text{font-size:1.0625rem;color:var(--color-muted);line-height:1.7;margin-bottom:.875rem}.lp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.5rem 0 0}.lp-table{width:100%;border-collapse:collapse;font-size:.9375rem}.lp-table th{text-align:left;padding:.625rem .875rem;background:var(--color-surface);font-weight:600;font-size:.8125rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.lp-table td,.lp-table th{border:1px solid var(--color-border)}.lp-table td{padding:.75rem .875rem;vertical-align:top;line-height:1.5}.lp-table tbody tr:nth-child(2n) td{background:var(--color-surface)}.lp-table-note{font-size:.8125rem;color:var(--color-muted);margin-top:.5rem;margin-bottom:.5rem}.lp-stat-callout{margin:1.75rem 0;padding:1.25rem 1.5rem;background:#f5f3ff;border-left:4px solid var(--color-primary);border-radius:0 var(--radius) var(--radius) 0}.lp-stat-callout p{font-size:1.0625rem;font-weight:600;line-height:1.5;color:#1e1b4b}.lp-pricing-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9375rem;min-width:460px}.lp-pricing-table td,.lp-pricing-table th{border-bottom:1px solid var(--color-border);padding:.875rem 1rem;text-align:center;vertical-align:middle}.lp-pricing-feature-head{text-align:left!important;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);vertical-align:bottom!important}.lp-pricing-table td:first-child{text-align:left;font-weight:500;color:#1e1b4b}.lp-pricing-tier{vertical-align:top}.lp-pricing-tier-name{display:block;font-size:.9375rem;font-weight:700;color:#111}.lp-pricing-tier-price{display:block;margin-top:.375rem;font-size:1.375rem;font-weight:800;color:#1e1b4b;letter-spacing:-.01em}.lp-pricing-per{font-size:.8125rem;font-weight:500;color:var(--color-muted);letter-spacing:0}.lp-pricing-tier-note{display:block;margin-top:.25rem;font-size:.75rem;color:var(--color-muted);font-weight:400}.lp-pricing-tier--premium{background:linear-gradient(180deg,#f5f3ff,#ffffff);border-top:2px solid var(--color-primary);border-radius:var(--radius) var(--radius) 0 0}.lp-pricing-cell--premium,.lp-pricing-tier--premium{border-left:1px solid #ddd6fe;border-right:1px solid #ddd6fe}.lp-pricing-cell--premium{background:#faf9ff}.lp-pricing-table tbody tr:last-child td.lp-pricing-cell--premium{border-bottom:1px solid #ddd6fe;border-radius:0 0 var(--radius) var(--radius)}.lp-pricing-badge{display:inline-block;margin-bottom:.5rem;padding:.125rem .5rem;border-radius:999px;background:var(--color-primary);color:#fff;font-size:.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.lp-pricing-yes{color:var(--color-primary);font-weight:600}.lp-pricing-no{color:var(--color-muted);font-weight:400}.lp-pricing-card-wrap{padding:1.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;margin-top:1.5rem;box-shadow:0 4px 16px rgba(16,24,40,.06)}.lp-pricing-card-wrap .lp-table-wrap{margin-top:0}.lp-pricing-scroll-hint{display:none}.lp-pricing-cta{margin-top:1.75rem}.lp-goals{max-width:720px;margin:0 auto;padding:4rem 1.5rem;border-top:1px solid var(--color-border)}.lp-goal-cards{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-top:1.5rem}.lp-goal-card-btn{width:100%;text-align:left;padding:1.25rem 1.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;cursor:pointer;font:inherit;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.lp-goal-card-btn:hover{border-color:#a5b4fc;box-shadow:0 4px 12px rgba(16,24,40,.07);transform:translateY(-1px)}.lp-goal-card-btn[aria-expanded=true]{border-color:var(--color-primary);background:#eef2ff;box-shadow:0 4px 14px rgba(79,70,229,.15)}.lp-goal-card-title{font-size:1.0625rem;font-weight:700;color:#111}.lp-goals-age-note{font-size:.8125rem;color:var(--color-muted);margin-top:1rem;line-height:1.5}.lp-goal-card-panel{margin-top:1.5rem;padding:1.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:0 1px 3px rgba(16,24,40,.05)}.lp-goal-panel-subhead{font-size:1.125rem;font-weight:700;color:#111;margin:.25rem 0 1rem}.lp-goal-bullets{margin:1rem 0 1.5rem;padding-left:1.25rem}.lp-goal-bullets li{font-size:1.0625rem;color:var(--color-muted);line-height:1.7;margin-bottom:.5rem}.btn-lg{padding:.75rem 1.75rem;font-size:1rem}.founder-story-link{display:inline-block;text-decoration:none;color:inherit}.founder-story-link:hover .founder-story-photo{border-color:#a5b4fc}.founder-story-link:hover .founder-story-name{color:var(--color-primary)}.founder-story-photo{display:block;width:96px;height:96px;margin:1.75rem 0 1rem;border-radius:50%;object-fit:cover;border:1px solid var(--color-border);transition:border-color .15s}.founder-story-name{font-size:1rem;font-weight:700;color:#111;transition:color .15s}.founder-story-role{font-size:.875rem;color:var(--color-muted)}.dashboard-welcome{margin-bottom:2rem}.dashboard-welcome h1{font-size:1.5rem;margin-bottom:.25rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:2rem}@media (max-width:600px){.dashboard-grid{grid-template-columns:1fr}}.stat-card{padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius)}.stat-card .stat-value{font-size:2rem;font-weight:700;color:var(--color-primary);line-height:1;margin-bottom:.25rem}.stat-card .stat-label{font-size:.875rem;color:var(--color-muted)}.progress-card{margin-bottom:2rem}.progress-card-title{font-size:1.125rem;margin-bottom:1rem}.progress-card-body{display:flex;align-items:center;gap:2.5rem;flex-wrap:wrap}.progress-donut{width:160px;height:160px;flex-shrink:0}.donut-seg--completed{stroke:var(--color-success)}.donut-seg--in-progress{stroke:var(--color-primary)}.donut-seg--not-started{stroke:#d1d5db}.donut-value{font-size:1.75rem;font-weight:700;fill:#111}.donut-label{font-size:.75rem;fill:var(--color-muted)}.progress-legend{list-style:none;display:flex;flex-direction:column;gap:.75rem;min-width:220px}.legend-item{display:flex;align-items:center;gap:.625rem;font-size:.9375rem}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-dot--completed{background:var(--color-success)}.legend-dot--in-progress{background:var(--color-primary)}.legend-dot--not-started{background:#d1d5db}.legend-count{margin-left:auto;font-weight:600}.section-title{font-size:1.125rem;margin-bottom:1rem}.course-progress-list{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:2rem}@media (max-width:700px){.course-progress-list{grid-template-columns:1fr}}.course-progress-item{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit}.progress-ring{width:56px;height:56px;flex-shrink:0}.ring-track{stroke:#d1d5db}.ring-fill{stroke:var(--color-primary)}.ring-value{font-size:.8125rem;font-weight:600;fill:#111}.course-progress-title{font-size:1rem;margin-bottom:.125rem}.course-progress-meta{font-size:.8125rem;color:var(--color-muted)}.course-card-progress{margin-top:.75rem}.progress-bar-track{height:6px;border-radius:999px;background:var(--color-border);overflow:hidden}.progress-bar-fill{height:100%;border-radius:999px;background:var(--color-primary)}.course-card-progress-label{display:inline-block;margin-top:.375rem;font-size:.75rem;color:var(--color-muted)}.course-card--locked{opacity:.6}.course-progress-lock{width:56px;height:56px;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.course-card-locked-note{margin-top:.75rem;font-size:.75rem;color:var(--color-muted)}.chapter-exam-locked{color:var(--color-muted);font-size:.875rem;cursor:not-allowed}.output-line--error{color:var(--color-error)}.locale-select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9375rem;background:#fff}.warmup-inputs{margin-top:.75rem}.warmup-inputs-label{display:block;font-size:.8125rem;color:var(--color-muted);margin-bottom:.25rem}.warmup-inputs-field{width:100%;max-width:240px}.content-lang-note{display:inline-block;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font-size:.8125rem;color:var(--color-muted)}.page-title{font-size:1.5rem;margin-bottom:.5rem}.page-subtitle{color:var(--color-muted);font-size:.9375rem;margin-bottom:1.5rem}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--color-muted)}.nav-actions{gap:.75rem}.nav-actions,.onboarding-shell{display:flex;align-items:center}.onboarding-shell{min-height:100vh;justify-content:center;background:var(--color-surface);padding:2rem 1rem}.onboarding-card{background:#fff;border:1px solid var(--color-border);border-radius:12px;padding:2.5rem;width:100%;max-width:560px;box-shadow:0 4px 24px rgba(0,0,0,.06)}.onboarding-progress-bar{height:4px;background:var(--color-border);border-radius:2px;margin-bottom:1.5rem}.onboarding-progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s}.onboarding-step-label{font-size:.75rem;color:var(--color-muted);margin-bottom:1.5rem}.onboarding-step{display:flex;flex-direction:column;gap:1rem}.onboarding-title{font-size:1.5rem;font-weight:700;line-height:1.25}.onboarding-body{color:#374151;line-height:1.65}.onboarding-lang-group{display:flex;flex-direction:column;gap:.5rem}.onboarding-lang-btn{padding:.625rem 1rem;border:2px solid var(--color-border);border-radius:var(--radius);background:#fff;cursor:pointer;text-align:left;font-size:.9375rem;font-weight:500;transition:border-color .15s}.onboarding-lang-btn.selected{border-color:var(--color-primary);color:var(--color-primary)}.onboarding-example-flow{display:flex;flex-direction:column;gap:0}.onboarding-flow-box{border:1px solid var(--color-border);border-radius:var(--radius);padding:.875rem 1rem;display:flex;flex-direction:column;gap:.375rem}.onboarding-flow-box.pseudo{background:#eef2ff;border-color:#c7d2fe}.onboarding-flow-box.real{background:#f0fdf4;border-color:#bbf7d0}.flow-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.flow-arrow,.flow-label{color:var(--color-muted)}.flow-arrow{text-align:center;font-size:1.25rem;margin:.25rem 0}.onboarding-exercise-list{padding-left:1.25rem;color:#374151;line-height:2}.intro-shell{max-width:680px}.intro-phase-bar{display:flex;gap:.5rem;margin-bottom:2rem}.intro-phase-dot{width:10px;height:10px;border-radius:50%;background:var(--color-border);transition:background .2s;border:none;padding:0;cursor:pointer}.intro-phase-dot:hover{background:var(--color-muted)}.intro-phase-dot.active{background:var(--color-primary)}.intro-section{display:flex;flex-direction:column;gap:1rem}.intro-phase-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary)}.keyword-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;background:var(--color-surface);display:flex;flex-direction:column;gap:.875rem}.keyword-chip{display:inline-block;background:#312e81;color:#fff;font-family:monospace;font-size:1rem;font-weight:700;padding:.25rem .75rem;border-radius:6px;letter-spacing:.04em}.keyword-syntax pre{background:#1e293b;color:#e2e8f0;border-radius:6px;padding:.75rem 1rem;font-size:.875rem;overflow-x:auto}.keyword-details{display:grid;grid-template-columns:max-content 1fr;grid-gap:.375rem 1rem;gap:.375rem 1rem;font-size:.875rem}.keyword-details dt{font-weight:600;color:var(--color-muted);white-space:nowrap}.keyword-details dd{color:#374151}.analogy-badge{display:inline-block;background:#fef9c3;border:1px solid #fde047;color:#713f12;font-size:.8125rem;font-weight:600;padding:.25rem .75rem;border-radius:20px}.intro-concept{color:#374151;line-height:1.7}.intro-bridge-text{font-style:italic;color:var(--color-muted)}.trace-table{width:100%;border-collapse:collapse;font-size:.875rem}.trace-table td,.trace-table th{border:1px solid var(--color-border);padding:.5rem .75rem;text-align:left;vertical-align:top}.trace-table th{background:var(--color-surface);font-weight:600}.trace-table code{font-size:.8125rem}.code-block{border-radius:var(--radius);padding:1rem 1.25rem;white-space:pre;overflow-x:auto}.code-block,.code-editor{background:#1e293b;color:#e2e8f0;font-family:monospace;font-size:.875rem}.code-editor{width:100%;border:1px solid var(--color-border);resize:vertical;line-height:1.6}.code-editor,.output-panel{padding:.75rem 1rem;border-radius:var(--radius)}.output-panel{background:#0f172a;color:#94a3b8;font-family:monospace;font-size:.875rem;min-height:2.5rem}.output-line{line-height:1.6}.exercise-runner{display:flex;flex-direction:column;gap:1.5rem;max-width:720px}.runner-header{justify-content:space-between}.runner-header,.runner-meta{display:flex;align-items:center}.runner-meta{gap:1rem}.runner-progress{font-size:.8125rem;color:var(--color-muted)}.runner-kind{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary)}.btn-ghost{background:none;border:none;cursor:pointer;font-size:.8125rem;color:var(--color-muted);padding:.25rem 0}.btn-ghost:hover{color:#111}.exercise-prompt{line-height:1.65;color:#374151}.exercise-prompt .code-block{margin:.75rem 0}.feedback-banner{padding:.875rem 1rem;border-radius:var(--radius);font-weight:500}.feedback-banner.correct{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.feedback-banner.wrong{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.solution-panel{padding:1rem 1.25rem;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius)}.mcq-options{display:flex;flex-direction:column;gap:.5rem}.mcq-option{padding:.75rem 1rem;border:2px solid var(--color-border);border-radius:var(--radius);background:#fff;text-align:left;cursor:pointer;font-size:.9375rem;transition:border-color .15s}.mcq-option:hover{border-color:#a5b4fc}.mcq-option.selected{border-color:var(--color-primary);background:#eef2ff}.trace-inputs{display:flex;flex-direction:column;gap:.5rem}.trace-input-row{display:flex;align-items:center;gap:.75rem}.trace-line-label{font-size:.8125rem;color:var(--color-muted);min-width:3rem}.trace-line-input{flex:1 1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:monospace;font-size:.875rem}.predict-input{gap:.5rem}.parsons-input,.predict-input,.write-logic-input{display:flex;flex-direction:column}.parsons-label{font-size:.8125rem;font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem}.parsons-pool{display:flex;flex-direction:column;gap:.375rem;background:var(--color-surface,#f9fafb);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem;min-height:3rem}.parsons-line{text-align:left;background:#fff;border:1px solid var(--color-border);border-radius:.375rem;padding:.5rem .75rem;cursor:pointer;transition:border-color .15s,background .15s}.parsons-line:hover:not(:disabled){border-color:var(--color-primary);background:#eef2ff}.parsons-line code{font-family:var(--font-mono,monospace);font-size:.875rem;white-space:pre}.parsons-answer{display:flex;flex-direction:column;gap:.375rem;background:var(--color-surface,#f9fafb);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem;min-height:3rem}.parsons-selected-line{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--color-border);border-radius:.375rem;padding:.5rem .75rem}.parsons-num{font-size:.75rem;font-weight:700;color:var(--color-muted);width:1.25rem;flex-shrink:0}.parsons-selected-line code{font-family:var(--font-mono,monospace);font-size:.875rem;flex:1 1;white-space:pre}.parsons-remove{background:none;border:none;color:var(--color-muted);cursor:pointer;font-size:1rem;padding:0 .25rem;line-height:1}.parsons-remove:hover{color:#dc2626}.parsons-empty{font-size:.8125rem;color:var(--color-muted);margin:0;font-style:italic}.fill-blank-input,.free-text-input{display:flex;flex-direction:column}.runner-dots{display:flex;gap:.5rem}.runner-dot{width:10px;height:10px;border-radius:50%;background:var(--color-border);border:2px solid var(--color-border)}.runner-dot.current{border-color:var(--color-primary);background:#fff}.runner-dot.done{background:var(--color-success);border-color:var(--color-success)}.runner-complete{text-align:center;padding:3rem 1.5rem}.runner-complete h2{margin:.75rem 0 .5rem;font-size:1.5rem}.runner-complete p{color:var(--color-muted)}.status-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;margin-left:.75rem}.status-badge.completed{background:#dcfce7;color:#166534}.status-badge.in-progress{background:#e0f2fe;color:#075985}.chapter-exam-row{background:#f8faff;border-top:1px solid var(--color-border)}.chapter-exam-link{font-size:.875rem;font-weight:600;color:var(--color-primary)}.chapter-exam-link:hover{text-decoration:underline}.lesson-exercises-layout{display:flex;gap:1.5rem;align-items:flex-start}.lesson-exercises-main{flex:1 1;min-width:0}.tutor-panel-desktop{display:none}@media (min-width:1024px){.lesson-exercises-layout{position:relative}.tutor-panel-desktop{display:flex;flex-direction:column;width:320px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:calc(var(--nav-height) + 1rem);max-height:calc(100vh - var(--nav-height) - 2rem);border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;overflow:hidden}}.tutor-inner{display:flex;flex-direction:column;height:100%;min-height:400px}.tutor-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.tutor-title{font-weight:600;font-size:.9rem}.tutor-quota-pill{display:inline-block;align-self:center;padding:.125rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;white-space:nowrap;background:#eef2ff;color:var(--color-primary);border:1px solid #c7d2fe}.tutor-quota-pill--empty{background:#fef2f2;color:var(--color-error);border-color:#fecaca}.tutor-limit-notice{margin:0 .75rem .5rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.8rem;line-height:1.5;background:#fffbeb;border:1px solid #fde68a;color:#92400e}.tutor-close{background:none;border:none;cursor:pointer;font-size:1.25rem;color:var(--color-muted);line-height:1;padding:0 .25rem}.tutor-close:hover{color:#111}.tutor-messages{flex:1 1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.625rem}.tutor-empty{font-size:.875rem;color:var(--color-muted);line-height:1.5}.tutor-msg{padding:.625rem .75rem;border-radius:var(--radius);font-size:.875rem;line-height:1.55;max-width:92%}.tutor-msg-user{align-self:flex-end;background:var(--color-primary);color:#fff}.tutor-msg-assistant{align-self:flex-start;background:var(--color-surface);border:1px solid var(--color-border)}.tutor-thinking{display:flex;align-items:center;gap:.3rem;padding:.625rem .875rem}.tutor-dot{width:8px;height:8px;border-radius:50%;background:var(--color-muted);animation:tutor-pulse 1.2s infinite}.tutor-dot:nth-child(2){animation-delay:.2s}.tutor-dot:nth-child(3){animation-delay:.4s}@keyframes tutor-pulse{0%,80%,to{opacity:.3;transform:scale(.9)}40%{opacity:1;transform:scale(1.1)}}.tutor-input-row{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid var(--color-border)}.tutor-input{flex:1 1;resize:none;padding:.5rem .625rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.875rem;font-family:inherit;line-height:1.4}.tutor-input:focus{outline:2px solid var(--color-primary);border-color:transparent}.tutor-send{align-self:flex-end}.tutor-fab{position:fixed;bottom:1.5rem;right:1.5rem;width:52px;height:52px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:1.375rem;border:none;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;z-index:100}@media (min-width:1024px){.tutor-fab{display:none}}.tutor-sheet{position:fixed;bottom:0;left:0;right:0;height:60vh;background:#fff;border-top:1px solid var(--color-border);border-radius:12px 12px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.12);z-index:200;display:flex;flex-direction:column;overflow:hidden}@media (min-width:1024px){.tutor-sheet{display:none}}.exam-header{margin-bottom:2rem}.breadcrumb-link{font-size:.8125rem;color:var(--color-muted);display:inline-block;margin-bottom:1rem}.exam-questions{display:flex;flex-direction:column;gap:1.75rem}.exam-question{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.exam-question-text{font-size:.9375rem;line-height:1.6;margin-bottom:1rem;color:#111}.exam-q-num{font-weight:700;color:var(--color-primary)}.exam-options{display:flex;flex-direction:column;gap:.5rem}.exam-option{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border:2px solid var(--color-border);border-radius:var(--radius);background:#fff;text-align:left;cursor:pointer;font-size:.9rem;transition:border-color .1s,background .1s}.exam-option:hover{border-color:#a5b4fc;background:#eef2ff}.exam-option.selected{border-color:var(--color-primary);background:#eef2ff;font-weight:500}.exam-option-letter{width:24px;height:24px;border-radius:50%;background:var(--color-border);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;color:var(--color-muted)}.exam-option.selected .exam-option-letter{background:var(--color-primary);color:#fff}.exam-footer{margin-top:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.exam-answered{font-size:.875rem;color:var(--color-muted)}.exam-result{text-align:center;padding:4rem 1.5rem;max-width:480px;margin:0 auto}.exam-result h1{font-size:1.75rem;margin:.75rem 0 .5rem}.exam-result-icon{font-size:3.5rem;line-height:1}.exam-result.passed h1{color:var(--color-success)}.exam-result.failed h1{color:var(--color-error)}.exam-score-label{font-size:1.125rem;color:var(--color-muted)}.exam-scenario-badge{display:inline-block;font-size:.75rem;font-weight:600;color:var(--color-primary);background:#eef2ff;border:1px solid #c7d2fe;padding:.2rem .625rem;border-radius:20px;margin-bottom:.625rem}.exam-result-btn{margin-top:1.5rem}.exam-result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}.name-input{padding:.375rem .625rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem}.cert-wrapper{max-width:600px;margin:0 auto}.cert-frame{background:linear-gradient(135deg,#4f46e5,#312e81);border-radius:20px;padding:18px}.cert-card{border-radius:14px;padding:2.75rem 2.5rem 2rem;text-align:center;background:linear-gradient(135deg,#eff6ff,#f5f3ff);position:relative;overflow:hidden}.cert-card:before{content:"";position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;background:rgba(99,102,241,.07)}.cert-brand{font-size:1rem;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:#4f46e5;margin-bottom:1.25rem}.cert-seal{width:72px;height:72px;border-radius:50%;background:#4f46e5;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.cert-label{font-size:1.375rem;font-weight:700;color:#1e1b4b;margin-bottom:1.25rem}.cert-certifies{font-size:.875rem;color:var(--color-muted);margin-bottom:.5rem}.cert-name{font-size:1.25rem;font-weight:700;color:#111;margin-bottom:1.25rem;word-break:break-all}.cert-completed{font-size:.875rem;color:var(--color-muted);margin-bottom:.5rem}.cert-chapter{font-size:1.125rem;font-weight:600;color:var(--color-primary);margin-bottom:2rem}.cert-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-muted);border-top:1px solid #c7d2fe;padding-top:1rem}.cert-verify-id{font-family:ui-monospace,monospace;letter-spacing:.05em}.cert-actions{display:flex;justify-content:center;gap:.75rem;margin-top:1.5rem}@media print{.nav,.no-print,footer,header,nav{display:none!important}body{background:white}.cert-frame{background:none;padding:0}.cert-card{border:3px solid #6366f1!important;box-shadow:none!important}.container{padding:0!important}}.auth-shell{min-height:100svh;justify-content:center;background:var(--color-surface);padding:2rem 1rem}.auth-card,.auth-shell{display:flex;flex-direction:column;align-items:center}.auth-card{background:#fff;border:1px solid var(--color-border);border-radius:14px;padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:0 4px 24px rgba(0,0,0,.07);gap:0}.auth-brand{gap:.5rem;margin-bottom:1.75rem;text-decoration:none}.auth-brand,.auth-brand-logo{display:flex;align-items:center}.auth-brand-logo{width:36px;height:36px;border-radius:8px;background:var(--color-primary);justify-content:center;flex-shrink:0}.auth-brand-name{font-size:1.25rem;font-weight:800;color:#111;letter-spacing:-.01em}.auth-title{font-size:1.375rem;font-weight:700;color:#111;text-align:center;line-height:1.3;margin-bottom:.375rem}.auth-subtitle{font-size:.9rem;color:var(--color-muted);text-align:center;line-height:1.55;margin-bottom:2rem}.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem 1.25rem;background:#fff;border:1px solid #dadce0;border-radius:8px;font-size:.9375rem;font-weight:600;color:#3c4043;cursor:pointer;transition:background .15s,box-shadow .15s;text-align:center}.auth-google-btn:hover{background:#f8f9fa;box-shadow:0 1px 4px rgba(0,0,0,.1)}.auth-google-btn:active{background:#f1f3f4}.auth-divider{display:flex;align-items:center;gap:.75rem;width:100%;margin:1.25rem 0;color:var(--color-muted);font-size:.8125rem}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--color-border)}.auth-footer{margin-top:1.75rem;font-size:.75rem;color:var(--color-muted);text-align:center;line-height:1.6}.auth-footer a{color:var(--color-muted);text-decoration:underline}.auth-cred-form{display:flex;flex-direction:column;gap:1rem;width:100%}.auth-cred-form .btn{width:100%}.auth-label{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem;font-weight:600;color:#111}.auth-input{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9375rem;font-family:inherit}.auth-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(79,70,229,.12)}.auth-error{font-size:.8125rem;color:var(--color-error);margin:0}@media (max-width:640px){.container{padding:0 1rem}.page{padding:1.5rem 0}.nav{padding:0 1rem;gap:.625rem}.nav-logo{font-size:1rem}.nav-link{font-size:.75rem}.nav-actions{gap:.5rem}.btn-sm{padding:.3125rem .5rem;font-size:.75rem}.page-title{font-size:1.25rem}.page-subtitle{font-size:.875rem}.marketing-hero{padding:2.5rem 1rem 2rem}.marketing-hero-title{font-size:1.75rem}.marketing-hero-title-sub{font-size:1.125rem}.marketing-features{padding:1rem 1rem 2rem;gap:.875rem}.lp-goals{padding:3rem 1.25rem}.lp-goal-cards{grid-template-columns:1fr}.lp-goal-card-panel,.lp-pricing-card-wrap{padding:1.25rem}.lp-pricing-scroll-hint{display:block;font-size:.8125rem;font-weight:600;color:var(--color-primary);margin-bottom:.75rem}.lp-pricing-card-wrap .lp-table-wrap{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}.lp-section{padding:3rem 1.25rem}.lp-table td,.lp-table th{padding:.5rem .625rem;font-size:.875rem}.lp-stat-callout{padding:1rem 1.125rem}.lp-goal-card-btn{padding:1rem 1.25rem}.lp-hero-checklist li:before{width:20px;height:20px}.onboarding-card{padding:1.5rem 1.125rem;border-radius:10px}.onboarding-title{font-size:1.25rem}.lesson-header{margin-bottom:1.25rem}.lesson-header h1{font-size:1.125rem;margin-top:.5rem}.breadcrumb{font-size:.75rem}.runner-header{flex-direction:column;align-items:flex-start;gap:.625rem}.runner-meta{width:100%;justify-content:space-between}.exercise-runner{max-width:100%}.mcq-option{padding:.875rem 1rem}.exam-question{padding:1rem}.exam-option{padding:.875rem;font-size:.875rem}.exam-footer{flex-direction:column;align-items:stretch;gap:.75rem;margin-top:1.5rem}.exam-footer .btn{width:100%;justify-content:center;padding:.75rem 1rem;font-size:.9375rem}.exam-result{padding:2.5rem .5rem}.exam-result h1{font-size:1.375rem}.exam-result-icon{font-size:3rem}.exam-result-btn{width:100%;justify-content:center}.cert-card{padding:2rem 1.25rem}.cert-label{font-size:1.125rem}.cert-name{font-size:1rem}.cert-meta{flex-direction:column;align-items:center;text-align:center;gap:.25rem}.cert-actions{flex-wrap:wrap}.chapter-exam-row{padding:.5rem 1.25rem}.tutor-sheet{height:72vh}.tutor-fab{bottom:1.25rem;right:1.25rem;width:48px;height:48px;font-size:1.25rem}.stat-card .stat-value{font-size:1.75rem}.intro-shell{max-width:100%}.keyword-card{padding:1rem}.trace-table{font-size:.8125rem}.trace-table td,.trace-table th{padding:.375rem .5rem}.runner-complete{padding:2rem 1rem}.site-footer-inner{flex-direction:column;align-items:flex-start;padding:1.25rem 1rem}.site-footer-contact{gap:1rem}.feedback-widget-button{right:1rem;padding:.625rem .875rem;font-size:.75rem}.feedback-widget-modal{padding:1.25rem}.admin-feedback-filters{flex-direction:column;align-items:stretch}.admin-feedback-item-header{flex-direction:column;gap:.25rem}.consult-card{padding:1.125rem 1rem}.consult-card .btn{display:block;text-align:center}}.panduan-page{max-width:720px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.panduan-breadcrumb{font-size:.875rem;color:var(--color-muted);margin-bottom:1rem}.panduan-header h1{font-size:1.875rem;line-height:1.25;margin-bottom:.5rem}.panduan-verified{font-size:.8125rem;color:var(--color-muted);margin-bottom:1.25rem}.panduan-intro{margin-bottom:.875rem;color:#333}.panduan-h2{font-size:1.375rem;margin:2rem 0 1rem}.os-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;margin:1.5rem 0 .5rem}.os-toggle-btn{padding:.5rem 1.25rem;border:none;background:#fff;font-size:.9375rem;cursor:pointer;color:var(--color-muted)}.os-toggle-btn.active{background:var(--color-primary);color:#fff;font-weight:600}.panduan-steps{list-style:none;display:flex;flex-direction:column;gap:1.5rem}.panduan-step{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.panduan-step-title{font-size:1.0625rem;margin-bottom:.625rem;display:flex;align-items:baseline;gap:.625rem}.panduan-step-num{flex-shrink:0;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-primary);color:#fff;font-size:.8125rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;position:relative;top:-.0625rem}.panduan-step-body{margin-bottom:.625rem;color:#333;white-space:pre-line}.panduan-command{background:#111;color:#4ade80;padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;overflow-x:auto;margin-bottom:.625rem}.panduan-expected{background:var(--color-surface);border-left:3px solid var(--color-success);padding:.625rem .875rem;border-radius:0 var(--radius) var(--radius) 0}.panduan-expected-label{font-size:.8125rem;font-weight:700;color:var(--color-success);margin-bottom:.25rem}.panduan-expected-body{font-size:.9375rem;color:#333}.panduan-attest{border:2px solid var(--color-primary);border-radius:var(--radius);padding:1.5rem;margin:2.5rem 0 0;display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.panduan-attest.attested{border-color:var(--color-success);background:#f0fdf4}.panduan-attest.locked{border-color:var(--color-border);background:var(--color-surface)}.panduan-attest-title{font-weight:700;font-size:1.0625rem}.panduan-attest-error{color:var(--color-error);font-size:.875rem}.panduan-trouble{display:flex;flex-direction:column;gap:1rem}.panduan-trouble-item{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem}.panduan-trouble-item dt{font-weight:600;margin-bottom:.375rem}.panduan-trouble-item dd{color:#333}.panduan-index-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.panduan-index-list .card-link{display:flex;flex-direction:column;gap:.25rem}.panduan-index-lang{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.panduan-index-title{color:var(--color-primary);font-weight:650}.panduan-index-list .card-link:hover .panduan-index-title{text-decoration:underline}.panduan-back{margin-bottom:.75rem;font-size:.875rem}.panduan-back a{color:var(--color-primary);font-weight:600;text-decoration:none}.panduan-back a:hover{text-decoration:underline}.hands-on-section{margin-top:2rem}.hands-on-section-subtitle{color:var(--color-muted);margin:-.5rem 0 1rem}.hands-on-shelf{margin-bottom:1.5rem}.hands-on-shelf-title{font-size:1rem;color:var(--color-muted);font-weight:600;margin-bottom:.75rem}.hands-on-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:.75rem;gap:.75rem}.hands-on-card{display:block;border:1px solid #fdba74;background:#fff7ed;border-radius:var(--radius);padding:1rem 1.25rem;color:inherit}.hands-on-card:hover{text-decoration:none;border-color:#f97316}.hands-on-card.locked{border-style:dashed;border-color:var(--color-border);background:var(--color-surface);color:var(--color-muted)}.hands-on-card.locked.card-link:hover{border-color:var(--color-primary)}.hands-on-card-language{font-size:.8125rem;font-weight:600;color:#c2410c;margin-bottom:.375rem;display:flex;align-items:center;gap:.5rem}.hands-on-card.locked .hands-on-card-language{color:var(--color-muted)}.hands-on-badge{font-size:.6875rem;font-weight:700;background:#ede9fe;color:#6d28d9;border-radius:999px;padding:.125rem .5rem}.hands-on-card-title{font-size:1.0625rem;margin-bottom:.375rem;color:#111}.hands-on-card.locked .hands-on-card-title{color:var(--color-muted)}.hands-on-card-teaser{font-size:.875rem;margin-bottom:.375rem}.hands-on-card-progress{font-size:.8125rem;font-weight:600;color:#c2410c}.hands-on-card-link{font-size:.875rem}.hands-on-page{max-width:720px}.hands-on-title{font-size:1.5rem;margin-bottom:.5rem}.hands-on-description{color:var(--color-muted);margin-bottom:1rem}.hands-on-callbacks{border-left:3px solid #f97316;background:#fff7ed;border-radius:0 var(--radius) var(--radius) 0;padding:.875rem 1.125rem;margin-bottom:1rem}.hands-on-callbacks-heading{font-size:.8125rem;font-weight:700;color:#c2410c;margin-bottom:.5rem}.hands-on-callback-snippet{display:inline-block;background:#fff;border:1px solid #fdba74;border-radius:4px;padding:.125rem .5rem;margin:0 .5rem .375rem 0;font-size:.875rem}.checkpoint-list{list-style:none;margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.checkpoint{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem}.checkpoint.done{background:#f0fdf4;border-color:#bbf7d0}.checkpoint.current{border-color:var(--color-primary);border-width:2px}.checkpoint.upcoming{color:var(--color-muted);background:var(--color-surface)}.checkpoint-head{display:flex;align-items:baseline;gap:.5rem}.checkpoint-head-toggle{width:100%;background:none;border:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.checkpoint-toggle-icon{margin-left:auto;color:var(--color-muted);font-size:.8125rem}.checkpoint-mark{font-size:1rem}.checkpoint-no{font-weight:700}.checkpoint-title{font-weight:600}.checkpoint-current-tag{margin-left:auto;font-size:.75rem;font-weight:700;color:var(--color-primary);white-space:nowrap}.checkpoint-guide-link{margin-left:auto;font-size:.8125rem}.checkpoint-body{margin-top:.75rem;display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.checkpoint-body p{white-space:pre-line}.checkpoint-code{background:#111;color:#e5e7eb;padding:.875rem 1rem;border-radius:var(--radius);font-size:.875rem;overflow-x:auto;width:100%}.checkpoint-expected-output{font-size:.875rem;color:#333;background:transparent;white-space:pre-wrap}.checkpoint-complete-banner{margin-top:1.25rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius);padding:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:600}.checkpoint-language-note{margin-top:.75rem;font-size:.8125rem;color:var(--color-muted)}.checkpoint-actions{gap:.75rem;align-items:flex-start}.checkpoint-actions,.hands-on-tutor{display:flex;flex-direction:column;width:100%}.hands-on-tutor{border:1px solid var(--color-border);border-radius:var(--radius);padding:.875rem;gap:.625rem;background:var(--color-surface)}.hands-on-tutor-note{font-size:.8125rem;color:var(--color-muted)}.hands-on-tutor-messages{display:flex;flex-direction:column;gap:.5rem;max-height:320px;overflow-y:auto}.hands-on-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.hands-on-view-all{font-size:.875rem;font-weight:600;white-space:nowrap}.hands-on-shelf-desc{font-size:.875rem;color:var(--color-muted);margin:-.5rem 0 .75rem;max-width:640px}.hands-on-page .os-toggle{margin:.5rem 0 1.5rem}.hands-on-teaser-link{display:block;max-width:480px}.hands-on-teaser-link:hover{text-decoration:none;border-color:var(--color-muted)}.hands-on-courses-banner{display:block;margin-top:.25rem}.billing-price{font-size:1.75rem;font-weight:700;color:var(--color-primary);margin:.25rem 0 .75rem}.billing-price-note{font-size:.8125rem;color:var(--color-muted);margin-top:.5rem}.billing-error{font-size:.8125rem;color:var(--color-error);margin-top:.75rem}.billing-status-active{color:var(--color-success);font-weight:600}.renewal-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border:1px solid #c7d2fe;background:#eef2ff;border-radius:var(--radius);padding:.875rem 1.125rem;margin-bottom:1.5rem}.renewal-banner--urgent{border-color:#fecaca;background:#fef2f2}.renewal-banner-title{font-weight:600;margin:0 0 .125rem}.renewal-banner-body{font-size:.8125rem;color:var(--color-muted);margin:0}.legal-page{max-width:720px}.legal-topbar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.legal-back,.legal-lang-switch{font-size:.875rem}.legal-lang-switch a{color:var(--color-muted);font-weight:600;text-decoration:none}.legal-lang-switch a:hover{color:var(--color-primary);text-decoration:underline}.legal-back a{color:var(--color-primary);font-weight:600;text-decoration:none}.legal-back a:hover{text-decoration:underline}.legal-toc{display:flex;gap:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius);padding:.875rem 1.125rem;margin-bottom:2rem}.legal-toc a{color:var(--color-primary);font-weight:600;font-size:.9375rem;text-decoration:none}.legal-toc a:hover{text-decoration:underline}.legal-section h1{font-size:1.875rem;line-height:1.25;margin-bottom:.375rem}.legal-section h2{font-size:1.25rem;margin:2rem 0 .75rem}.legal-section p,.legal-section ul{color:#333;line-height:1.65;margin-bottom:.875rem}.legal-section ul{padding-left:1.25rem}.legal-section li{margin-bottom:.375rem}.legal-updated{font-size:.8125rem;color:var(--color-muted);margin-bottom:1.5rem}.legal-contact{list-style:none;padding-left:0}.legal-contact-item{display:flex;align-items:center;gap:.5rem;color:var(--color-muted)}.legal-contact-item a{color:var(--color-primary);text-decoration:none}.legal-contact-item a:hover{text-decoration:underline}.legal-divider{border:none;margin:3rem 0}.legal-divider,.legal-footer{border-top:1px solid var(--color-border)}.legal-footer{margin-top:1.5rem;padding-top:1rem;font-size:.8125rem;color:var(--color-muted)}.site-footer{border-top:1px solid var(--color-border)}.site-footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1.5rem;padding:1.5rem;font-size:.8125rem;color:var(--color-muted)}.site-footer-copyright{margin:0}.site-footer-contact{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem}.site-footer-contact-item{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-muted);text-decoration:none}.site-footer-contact-item svg{flex-shrink:0}.site-footer-contact-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.75rem}.site-footer-contact-label{font-weight:500;color:var(--color-muted)}a.site-footer-contact-item:hover{color:var(--color-primary);text-decoration:underline}.feedback-widget-button{position:fixed;bottom:1.5rem;right:1.5rem;z-index:90;padding:.75rem 1.125rem;border-radius:999px;border:1px solid var(--color-border);background:#fff;color:#111;font-size:.8125rem;font-weight:500;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.1);transition:transform .15s,box-shadow .15s,border-color .15s}.feedback-widget-button:hover{border-color:var(--color-primary);box-shadow:0 4px 14px rgba(0,0,0,.14)}.feedback-widget-button:active{transform:scale(.97)}.feedback-widget-overlay{position:fixed;inset:0;background:rgba(17,17,17,.45);z-index:300;display:flex;align-items:center;justify-content:center;padding:1.5rem}.feedback-widget-modal{position:relative;width:100%;max-width:420px;max-height:85vh;overflow-y:auto;background:#fff;border-radius:var(--radius);padding:1.75rem;box-shadow:0 12px 40px rgba(0,0,0,.2)}.feedback-widget-close{position:absolute;top:.75rem;right:.75rem;width:28px;height:28px;border:none;background:transparent;color:var(--color-muted);font-size:.9rem;cursor:pointer;border-radius:6px}.feedback-widget-close:hover{background:var(--color-surface);color:#111}.feedback-widget-title{font-size:1.125rem;font-weight:600;margin:0 0 .5rem;padding-right:1.5rem}.feedback-widget-description{color:var(--color-muted);font-size:.875rem;margin:0 0 1rem;line-height:1.5}.feedback-widget-textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem;font-family:inherit;resize:vertical;min-height:110px}.feedback-widget-textarea:focus{outline:none;border-color:var(--color-primary)}.feedback-widget-counter{text-align:right;font-size:.75rem;color:var(--color-muted);margin-top:.25rem}.feedback-widget-honeypot{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.feedback-widget-error{color:var(--color-error);font-size:.8125rem;margin:.625rem 0 0}.feedback-widget-actions{display:flex;justify-content:flex-end;margin-top:1rem}.feedback-widget-success{text-align:center;padding:.5rem 0 .25rem}.feedback-widget-success .feedback-widget-description{margin-bottom:1.25rem}@media (max-width:1099px){.feedback-widget-button{bottom:5.25rem}}.admin-sub-nav{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.admin-sub-nav-inner{display:flex;gap:1.5rem;padding:.75rem 1.5rem}.admin-feedback-filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1.5rem}.admin-feedback-filter-field{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:500;color:var(--color-muted)}.admin-feedback-filter-field input{padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.875rem}.admin-feedback-summary{font-size:.8125rem;color:var(--color-muted);margin-bottom:1rem}.admin-feedback-item{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem}.admin-feedback-item+.admin-feedback-item{margin-top:.75rem}.admin-feedback-item-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.admin-feedback-meta{font-size:.8125rem;color:var(--color-muted)}.admin-feedback-meta strong{color:#111;font-weight:600}.admin-feedback-message{white-space:pre-wrap;font-size:.9375rem;line-height:1.55}.admin-feedback-empty{color:var(--color-muted);text-align:center;padding:2rem 0}.admin-feedback-pagination{display:flex;justify-content:center;gap:.75rem;margin-top:1.5rem}.consult-card{border:1px solid #c7d2fe;background:#eef2ff;border-radius:var(--radius);padding:1.375rem 1.5rem;margin-bottom:2rem}.consult-card-title{font-size:1.125rem;color:#1e1b4b;margin-bottom:.375rem}.consult-card-body{font-size:.9375rem;line-height:1.55;color:#312e81;margin-bottom:1rem}.lp-pricing-footnote{font-size:.75rem;color:var(--color-muted);margin-top:.75rem}.admin-promo-form{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.admin-promo-toggle{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500}.admin-promo-status{font-size:.8125rem;color:var(--color-muted)}.admin-promo-actions{display:flex;align-items:center;gap:.75rem;font-size:.8125rem}.admin-promo-saved{color:var(--color-success)}.admin-promo-manual{margin-top:2rem;font-size:.8125rem;color:var(--color-muted)}.admin-promo-manual h2{font-size:.9375rem;color:#111;margin-bottom:.5rem}.admin-promo-manual ul{list-style:disc;padding-left:1.125rem;line-height:1.6}.admin-promo-manual li+li{margin-top:.35rem}.admin-promo-lookup{margin-top:2rem}.admin-promo-lookup h2{font-size:.9375rem;color:#111;margin-bottom:.375rem}.admin-promo-lookup-hint{font-size:.8125rem;color:var(--color-muted);margin-bottom:.75rem;max-width:640px}.admin-promo-lookup-result{margin-top:1rem;padding:.875rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font-size:.8125rem}.admin-promo-lookup-result ul{list-style:disc;padding-left:1.125rem;margin-top:.5rem;line-height:1.6;color:var(--color-muted)}