:root{font-family:Manrope,Noto Sans KR,sans-serif;color:#162033;background:#f4f6fa;font-synthesis:none;--navy:#0d1424;--ink:#162033;--muted:#667085;--line:#e3e7ef;--surface:#fff;--lime:#b9f227;--lime-dark:#82ba00;--violet:#7759ed;--orange:#ff8058;--soft:#f4f6fa;--shadow:0 18px 45px rgba(26,38,65,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button,a{transition:.2s ease}a{text-decoration:none;color:inherit}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(119,89,237,.35);outline-offset:3px}.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:#fff;color:var(--navy);padding:10px 14px;border-radius:8px;font-weight:800;transform:translateY(-150%)}.skip-link:focus{transform:none}.button{min-height:44px;padding:0 20px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;cursor:pointer}.button svg{width:18px}.button.primary{background:var(--navy);color:#fff;box-shadow:0 8px 18px #0d142429}.button.primary:hover{transform:translateY(-2px);background:#1a2741}.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.button.secondary:hover,.button.subtle:hover{border-color:#bbc3d1;background:#f9fafb}.button.ghost{border:1px solid rgba(255,255,255,.25);color:#fff}.button.subtle{background:#eef1f6;color:var(--ink)}.button.light{background:#fff;color:var(--navy)}.button.danger{color:#c83737;background:#fff5f5;border:1px solid #f1caca}.button.small{min-height:38px;padding:0 15px;font-size:14px}.button.large{min-height:52px;padding:0 25px}.button.full{width:100%}.button:disabled{opacity:.4;cursor:not-allowed;transform:none}.icon-button{width:42px;height:42px;border-radius:11px;background:transparent;display:grid;place-items:center;cursor:pointer;color:inherit}.icon-button:hover{background:#eef1f6}.eyebrow{font-size:14px;font-weight:800;letter-spacing:.17em;color:#7259dc}.page{padding:54px clamp(24px,5vw,74px) 80px;max-width:1480px;margin:0 auto}.page-heading{margin-bottom:34px}.page-heading h1{font-size:clamp(30px,4vw,46px);margin:8px 0;letter-spacing:-.045em}.page-heading p{color:var(--muted);font-size:16px;margin:0}.screen-center{min-height:70vh;display:grid;place-content:center;text-align:center;padding:30px}.loader{width:38px;height:38px;border:3px solid #e3e7ef;border-top-color:var(--violet);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.landing-page{min-height:100vh;background:var(--navy);color:#fff;overflow:hidden}.landing-nav{height:86px;max-width:1240px;padding:0 28px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:800;letter-spacing:-.04em}.brand small{display:block;font-size:14px;text-transform:uppercase;letter-spacing:.13em;color:#99a3b5;margin-top:1px}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--lime);color:var(--navy);display:inline-grid;place-items:center;font-weight:900;box-shadow:inset -5px -5px 12px #4464002b}.hero{max-width:1240px;min-height:660px;padding:80px 28px 105px;margin:auto;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:70px}.hero-copy{position:relative;z-index:2}.eyebrow-pill{display:inline-flex;align-items:center;gap:8px;background:#b9f2271a;border:1px solid rgba(185,242,39,.23);color:#dfff88;border-radius:100px;padding:8px 13px;font-size:14px;font-weight:700}.hero h1{font-size:clamp(46px,5.4vw,75px);line-height:1.09;letter-spacing:-.065em;margin:27px 0 24px}.hero h1 em{font-style:normal;color:var(--lime)}.hero-copy>p{font-size:17px;line-height:1.75;color:#aeb8c9;max-width:580px}.hero-actions{display:flex;gap:12px;margin:34px 0}.hero .button.primary{background:var(--lime);color:var(--navy);box-shadow:0 12px 30px #b9f22726}.hero .button.primary:hover{background:#caf85a}.hero .button.subtle{background:#202b3e;color:#e5e9ef;border:1px solid #303d51}.trust-line{display:flex;flex-wrap:wrap;gap:20px;color:#8e9aac;font-size:14px;font-weight:600}.trust-line span{display:flex;gap:6px;align-items:center}.trust-line svg{width:14px;color:var(--lime)}.hero-visual{position:relative;min-height:440px;display:grid;place-items:center}.hero-visual:before{content:"";position:absolute;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(119,89,237,.27),transparent 67%);filter:blur(3px)}.code-window{position:relative;width:100%;max-width:530px;background:#121c30;border:1px solid #2a3850;border-radius:18px;box-shadow:0 35px 90px #00000061;transform:rotate(1.5deg);overflow:hidden}.window-bar{height:48px;background:#19253a;border-bottom:1px solid #2a3850;display:flex;align-items:center;padding:0 17px;gap:7px}.window-bar i{width:9px;height:9px;border-radius:50%;background:#ff756e}.window-bar i:nth-child(2){background:#ffc658}.window-bar i:nth-child(3){background:#58d68d}.window-bar span{margin-left:10px;font-size:14px;color:#8090a8;font-family:DM Mono,monospace}.code-window pre{padding:28px 27px 36px;margin:0;color:#d6deee;font:14px/1.9 DM Mono,monospace;overflow:auto}.code-purple{color:#cf91ff}.code-blue{color:#70c9ff}.code-orange{color:#ffc477}.code-green{color:#80e3b1}.floating-card{position:absolute;background:#fff;color:var(--ink);border-radius:14px;box-shadow:0 16px 40px #00000040}.floating-card.score{right:-28px;top:27px;padding:16px 20px;display:flex;flex-direction:column}.floating-card.score span,.floating-card.score small{font-size:14px;color:#7c8797}.floating-card.score strong{font-size:26px;color:#5e45d1}.floating-card.concept{left:-38px;bottom:22px;padding:14px 17px;display:flex;align-items:center;gap:12px}.floating-card.concept>svg{color:#654ad6;background:#eeeaff;padding:8px;width:38px;height:38px;border-radius:11px}.floating-card.concept span{display:flex;flex-direction:column}.floating-card.concept small{font-size:14px;color:#8992a0}.floating-card.concept strong{font-size:14px}.feature-strip{background:#f8f9fc;color:var(--ink);display:grid;grid-template-columns:repeat(4,1fr);padding:30px max(28px,calc((100vw - 1184px)/2));gap:18px}.feature-strip article{display:flex;gap:13px;align-items:center;padding:12px}.feature-strip article>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#ebf8c9;color:#638b00}.feature-strip article:nth-child(2)>span{background:#eeeaff;color:#654ad6}.feature-strip article:nth-child(3)>span{background:#e5f2ff;color:#3581c1}.feature-strip article:nth-child(4)>span{background:#fff0e7;color:#d96d38}.feature-strip svg{width:20px}.feature-strip strong{font-size:14px}.feature-strip p{font-size:14px;color:#7a8494;margin:3px 0 0;line-height:1.5}.landing-footer{text-align:center;padding:28px;color:#657188;font-size:14px}.back-link{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700}.back-link svg{width:17px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--navy);color:#fff;padding:25px 18px 20px;display:flex;flex-direction:column;z-index:30}.brand-row{display:flex;justify-content:space-between;align-items:center;padding:0 5px 28px}.sidebar-close{display:none;color:#fff}.main-nav{display:grid;gap:6px}.main-nav a,.settings-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;color:#98a4b7;font-size:14px;font-weight:700}.main-nav a:hover,.main-nav a.active,.settings-link:hover{background:#202a3d;color:#fff}.main-nav a.active{box-shadow:inset 3px 0 var(--lime)}.main-nav a.active svg{color:var(--lime)}.sidebar-spacer{flex:1}.sidebar-progress{border:1px solid #27344a;background:#151f31;border-radius:13px;padding:15px;margin-bottom:13px}.sidebar-progress>div:first-child{display:flex;justify-content:space-between;font-size:14px;color:#a5afbf}.sidebar-progress strong{color:var(--lime)}.sidebar-progress p{font-size:14px;color:#687589;margin:9px 0 0}.progress-track{height:5px;background:#29364b;border-radius:10px;overflow:hidden;margin-top:10px}.progress-track span,.progress-track i{display:block;height:100%;background:var(--lime);border-radius:10px}.storage-link{border-top:1px solid #263248;margin-top:10px;padding:16px 5px 0;color:#fff;display:flex;align-items:center;gap:10px}.storage-link-icon{width:34px;height:34px;border-radius:10px;background:#7159dd;color:#fff;display:grid;place-items:center}.storage-link>span:last-child{display:flex;flex-direction:column;flex:1}.storage-link strong{font-size:14px}.storage-link small{font-size:14px;color:#6f7d91;margin-top:2px}.app-main{margin-left:250px;min-height:100vh;background:#f5f7fa}.mobile-header{display:none}.status-banner{padding:11px 22px;font-size:14px;text-align:center}.status-banner.warning{background:#fff1ba;color:#654d00}.status-banner.error{background:#ffe1e1;color:#8f2020}.status-banner.neutral{background:#edf1ff;color:#4936a3;border-radius:10px;margin-bottom:18px}.sidebar-backdrop{display:none}.dashboard-heading{display:flex;justify-content:space-between;align-items:center}.dashboard-heading h1{font-size:34px}.streak-chip{display:flex;gap:10px;align-items:center;background:#fff4eb;border:1px solid #ffdfca;border-radius:14px;padding:10px 17px;color:#e06128}.streak-chip>svg{fill:#ff8058;stroke:#ff8058}.streak-chip span{display:flex;flex-direction:column}.streak-chip strong{font-size:14px}.streak-chip small{font-size:14px;color:#a27662}.dashboard-grid{display:grid;gap:20px}.top-grid{grid-template-columns:1.4fr 1fr}.lower-grid{grid-template-columns:1fr 1.25fr 1.1fr;margin-top:20px}.panel,.accent-card{border-radius:18px;box-shadow:0 2px 3px #10182808}.panel{background:#fff;border:1px solid #e7eaf0;padding:23px}.accent-card{background:linear-gradient(135deg,#694bdd,#8a6cf3);color:#fff;padding:24px 28px;position:relative;overflow:hidden}.accent-card:after{content:"</>";position:absolute;right:5%;bottom:-45px;font:150px/1 DM Mono;color:#ffffff0e;transform:rotate(-9deg)}.card-topline{display:flex;justify-content:space-between;font-size:14px;color:#d6ceff;position:relative;z-index:1}.card-topline span{display:flex;align-items:center;gap:7px}.continue-body{display:flex;align-items:center;justify-content:space-between;gap:25px;position:relative;z-index:1;margin-top:20px}.chapter-tag{font-size:14px;letter-spacing:.08em;font-weight:800;color:#7259dd;background:#eeeaff;padding:5px 8px;border-radius:5px}.accent-card .chapter-tag{color:#e5dfff;background:#ffffff21}.continue-body h2{font-size:24px;margin:13px 0 8px;letter-spacing:-.035em}.continue-body p{font-size:14px;color:#d4ccf8;max-width:470px;margin:0 0 19px;line-height:1.55}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.panel-title>span{font-size:14px;font-weight:800;display:flex;align-items:center;gap:8px}.panel-title svg{width:17px;color:#7056dc}.panel-title>a{font-size:14px;color:#7259dc;font-weight:700}.overview-body{display:flex;align-items:center;gap:25px}.progress-ring{position:relative;flex:none}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:9}.ring-bg{stroke:#edf0f4}.ring-value{stroke:var(--lime-dark);stroke-linecap:round;transition:stroke-dashoffset .5s}.progress-ring>strong{position:absolute;inset:0;display:grid;place-content:center;font-size:22px}.progress-ring small{font-size:14px}.accent-card .ring-bg{stroke:#ffffff26}.accent-card .ring-value{stroke:var(--lime)}.accent-card .progress-ring>strong{color:#fff}.overview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;flex:1}.overview-stats div{display:flex;flex-direction:column}.overview-stats strong{font-size:21px}.overview-stats small{font-size:14px;color:#929bab}.overview-stats span{font-size:14px;color:#8a94a3;margin-top:3px}.level-card{display:flex;align-items:center;gap:17px}.level-card .panel-title{position:absolute}.level-card{padding-top:66px;position:relative}.level-badge{width:58px;height:58px;border-radius:50%;background:#eeeaff;color:#684cd8;display:grid;place-items:center;font-size:23px;font-weight:900;border:6px solid #f8f6ff;flex:none}.level-label{font-size:14px;color:#7156dd;font-weight:800}.level-card h3{font-size:14px;margin:4px 0}.level-card p{font-size:14px;color:#7c8694;line-height:1.5;margin:0}.concept-list{display:grid;gap:13px}.concept-list>div{display:grid;grid-template-columns:90px 1fr 34px;align-items:center;gap:9px;font-size:14px}.concept-list strong{text-align:right}.mini-bar{height:5px;border-radius:8px;background:#edf0f4;overflow:hidden}.mini-bar i{display:block;height:100%;background:#ff936f;border-radius:8px}.empty-mini{display:flex;align-items:center;gap:12px;color:#728094}.empty-mini>svg{background:#f0f8dc;color:#7ca20f;padding:8px;width:40px;height:40px;border-radius:11px}.empty-mini strong{font-size:14px;color:var(--ink)}.empty-mini p{font-size:14px;margin:3px 0}.activity-list{list-style:none;padding:0;margin:0;display:grid;gap:15px}.activity-list li{display:flex;gap:10px}.success-dot,.retry-dot{width:8px;height:8px;background:#83bd0b;border-radius:50%;margin-top:3px}.retry-dot{background:#ff8058}.activity-list div{display:flex;flex-direction:column}.activity-list strong{font-size:14px}.activity-list small{font-size:14px;color:#929aa6;margin-top:2px}.level-card{display:block;padding-top:23px;position:static}.level-card .panel-title{position:static}.level-card-body{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:17px}.level-card-copy{min-width:0}.module-section{margin-top:40px}.module-heading{display:flex;gap:18px;align-items:center;margin-bottom:20px}.module-number{font-size:14px;font-weight:900;color:#6c52d6;background:#eeeaff;padding:11px;border-radius:10px}.module-heading h2{font-size:21px;margin:0}.module-heading p{font-size:14px;color:var(--muted);margin:4px 0}.lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.lesson-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:25px;position:relative;overflow:hidden;box-shadow:0 4px 15px #10182809}.lesson-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#c9c0f2}.lesson-card-head{display:flex;justify-content:space-between}.lesson-index{font:700 14px DM Mono;color:#9aa3b0}.complete-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e7f8bc;color:#649200}.complete-icon svg{width:15px}.lesson-icon{width:48px;height:48px;border-radius:13px;background:#eeeaff;color:#6c50d8;display:grid;place-items:center;margin:17px 0}.lesson-status{font-size:14px;color:#765dde;text-transform:uppercase;font-weight:800;letter-spacing:.08em}.lesson-card h3{font-size:19px;letter-spacing:-.03em;margin:7px 0}.lesson-card p{font-size:14px;color:#778292;line-height:1.6;min-height:35px}.lesson-card-footer{display:flex;justify-content:space-between;margin-top:24px;color:#8c95a2;font-size:14px}.lesson-card-footer span{display:flex;align-items:center;gap:5px}.lesson-card-footer svg{width:14px}.lesson-card-footer span:last-child{color:#6e54d8;font-weight:800}.card-progress{height:4px;background:#eef1f4;position:absolute;bottom:0;left:0;right:0}.card-progress i{display:block;height:100%;background:var(--lime-dark)}.lesson-page{background:#fff;min-height:100vh}.lesson-topbar{height:66px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr minmax(220px,390px) 1fr;align-items:center;padding:0 35px;position:sticky;top:0;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.lesson-top-progress{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:800}.lesson-top-progress .progress-track{flex:1;margin:0;background:#edf0f4}.lesson-top-progress .progress-track i{background:var(--lime-dark)}.bookmark-button{justify-self:end}.lesson-content{width:min(100% - 42px,800px);margin:auto;padding:65px 0 100px}.lesson-hero{text-align:center;margin-bottom:47px}.lesson-hero h1{font-size:clamp(34px,5vw,53px);letter-spacing:-.055em;margin:13px 0}.lesson-hero>p{font-size:16px;color:#6f7988;line-height:1.7;max-width:690px;margin:auto}.lesson-meta{display:flex;justify-content:center;gap:20px;margin-top:20px;color:#87909e;font-size:14px}.lesson-meta span{display:flex;align-items:center;gap:5px}.lesson-meta svg{width:15px}.objectives{display:flex;gap:20px;background:#f6f4ff;border:1px solid #e5e0ff;border-radius:16px;padding:24px 27px;margin:35px 0 50px}.objective-icon{width:42px;height:42px;background:#7258de;color:#fff;border-radius:12px;display:grid;place-items:center;flex:none}.objectives h2{font-size:15px;margin:0 0 11px}.objectives ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}.objectives li{font-size:14px;color:#636e7d;display:flex;align-items:center;gap:7px}.objectives li svg{width:14px;color:#78a60a}.lesson-section{margin:46px 0}.lesson-section h2{font-size:25px;letter-spacing:-.04em;margin-bottom:16px}.lesson-section p{font-size:15px;line-height:1.85;color:#4f5c6c}.code-panel{background:#111a2a;border-radius:15px;overflow:hidden;box-shadow:0 15px 35px #10192a24}.code-panel-head{height:42px;background:#172337;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:#76859a;font:14px DM Mono}.code-panel-head>span:first-child{display:flex;gap:6px}.code-panel-head i{display:block;width:8px;height:8px;border-radius:50%;background:#ff786c}.code-panel-head i:nth-child(2){background:#ffc052}.code-panel-head i:nth-child(3){background:#64d491}.code-panel pre{margin:0;padding:25px;color:#d7deeb;font:14px/1.8 DM Mono,monospace;overflow:auto}.code-caption{font-size:14px!important;color:#7a8492!important;margin:10px 5px!important}.callout{border-left:4px solid #765cde;background:#f7f5ff;padding:17px 20px;margin:30px 0;border-radius:0 12px 12px 0}.callout.warning{border-color:#ff8b5f;background:#fff6f1}.callout strong{font-size:14px}.callout p{font-size:14px;color:#657181;line-height:1.6;margin:4px 0 0}.section-complete{border:1px solid #dce2ea;background:#fafbfd;border-radius:16px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.section-complete strong{font-size:14px}.section-complete p{font-size:14px;color:#7a8594;margin:4px 0}.quiz-section{margin-top:70px;padding-top:55px;border-top:1px solid var(--line)}.quiz-section>h2{font-size:28px;margin:8px 0}.quiz-section>p{color:#84909f;font-size:14px}.question-card{border:1px solid var(--line);border-radius:17px;padding:25px;margin-top:20px;background:#fff}.question-meta{display:flex;justify-content:space-between;font-size:14px;text-transform:uppercase;color:#735adc;font-weight:800}.question-card h3{font-size:17px;line-height:1.55;margin:12px 0 18px}.code-block{background:#121c2d;color:#d8dfeb;padding:19px;border-radius:12px;font:14px/1.7 DM Mono;overflow:auto}.answer-list{display:grid;gap:9px}.answer-list label{border:1px solid #e0e4eb;border-radius:11px;padding:12px;display:flex;align-items:center;gap:11px;font-size:14px;cursor:pointer}.answer-list label.selected{border-color:#755bdf;background:#f7f5ff}.answer-list input[type=radio]{position:absolute;opacity:0}.choice-marker{width:26px;height:26px;display:grid;place-items:center;background:#f0f2f5;border-radius:7px;font-size:14px;font-weight:800}.selected .choice-marker{background:#7258dd;color:#fff}.text-answer{height:48px;border:1px solid #dce1e9;border-radius:11px;padding:0 14px;width:100%}.question-actions{display:flex;justify-content:space-between;margin-top:16px}.hint-box{font-size:14px;color:#765d1e;background:#fff9e7;padding:11px;border-radius:9px;display:flex;align-items:center;gap:8px}.feedback{display:flex;gap:11px;padding:15px;margin-top:15px;border-radius:11px}.feedback>span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;flex:none}.feedback svg{width:16px}.feedback strong{font-size:14px}.feedback p{font-size:14px;margin:3px 0 0;line-height:1.6}.feedback.correct{background:#eef9d7;color:#496900}.feedback.correct>span{background:#7fab16;color:#fff}.feedback.incorrect{background:#fff0ed;color:#9d3f2d}.feedback.incorrect>span{background:#ed755e;color:#fff}.lesson-finish{background:var(--navy);color:#fff;border-radius:20px;padding:28px 31px;margin-top:50px;display:flex;align-items:center;justify-content:space-between;gap:25px}.lesson-finish span{color:var(--lime);font-size:14px;font-weight:800;text-transform:uppercase}.lesson-finish h2{font-size:19px;margin:6px 0}.lesson-finish p{font-size:14px;color:#8d99aa;margin:0}.test-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.test-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:27px}.test-number{display:flex;align-items:center;justify-content:space-between;color:#765bdf;margin-bottom:24px}.test-number svg{background:#eeeaff;padding:9px;width:42px;height:42px;border-radius:11px}.test-number span{font:700 14px DM Mono}.test-card h2{font-size:21px;margin:12px 0 7px}.test-card>p{font-size:14px;color:#778293;line-height:1.6}.test-meta{display:flex;gap:15px;font-size:14px;color:#8993a0;margin:20px 0}.test-meta span{display:flex;align-items:center;gap:4px}.test-meta svg{width:13px}.test-result-summary,.test-empty{min-height:55px;border-top:1px solid var(--line);padding:15px 0;margin-top:8px}.test-result-summary{display:flex;gap:10px;align-items:center}.test-result-summary>svg{color:#7ea70f}.test-result-summary div{display:flex;flex-direction:column}.test-result-summary span{font-size:14px;font-weight:800}.test-result-summary small,.test-empty{font-size:14px;color:#8993a1}.test-runner{min-height:100vh;background:#fff}.test-runner>header{height:70px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 35px;border-bottom:1px solid var(--line);font-size:14px}.test-runner>header>span{font-weight:800}.test-runner>header>strong{text-align:right;color:#7056d9}.runner-progress{height:4px;background:#edf0f4}.runner-progress i{height:100%;display:block;background:var(--lime-dark);transition:width .3s}.runner-main{max-width:760px;margin:auto;padding:75px 25px}.question-count{font:700 14px DM Mono;color:#7359df;letter-spacing:.1em}.runner-question h1{font-size:29px;line-height:1.45;letter-spacing:-.04em;margin:14px 0 30px}.runner-answers{display:grid;gap:11px}.runner-answers button{min-height:58px;background:#fff;border:1px solid #dde2e9;border-radius:13px;text-align:left;padding:0 16px;display:flex;align-items:center;gap:13px;cursor:pointer;font-size:14px}.runner-answers button>span{width:29px;height:29px;border-radius:8px;background:#f0f2f5;display:grid;place-items:center;font-size:14px;font-weight:800}.runner-answers button:hover,.runner-answers button.selected{border-color:#7359df;background:#f8f6ff}.runner-answers button.selected>span{background:#7359df;color:#fff}.large-input{font-size:18px}.runner-actions{display:flex;justify-content:space-between;margin-top:40px;padding-top:22px;border-top:1px solid var(--line)}.result-page{max-width:900px}.result-hero{text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:42px}.result-score{width:120px;height:120px;border-radius:50%;background:#fff0ed;color:#d85f47;display:grid;place-content:center;margin:0 auto 23px;border:8px solid #fff8f6}.result-score.passed{background:#edf9d5;color:#658d00;border-color:#f7fce9}.result-score strong{font-size:45px;line-height:1}.result-score span{font-size:14px}.result-hero h1{font-size:30px;margin:8px 0}.result-hero>p{color:#798493;font-size:14px}.result-actions{display:flex;justify-content:center;gap:10px;margin-top:23px}.result-review{margin-top:30px}.result-review>h2{font-size:20px}.result-item{display:flex;gap:17px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;margin-top:12px}.result-item>div{min-width:0;flex:1}.correct-mark,.wrong-mark{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;flex:none;background:#eaf7ce;color:#699500}.wrong-mark{background:#ffebe7;color:#db5e49}.correct-mark svg,.wrong-mark svg{width:15px}.result-item small{color:#8993a0}.result-item h3{font-size:14px;margin:4px 0 10px}.result-item p{font-size:14px}.explanation{font-size:14px;color:#637080;background:#f7f8fa;padding:10px;border-radius:8px}.review-columns{display:grid;grid-template-columns:1.35fr .65fr;gap:24px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-heading>span{display:flex;gap:8px;align-items:center;font-weight:800;font-size:14px}.section-heading svg{color:#7055d8;width:18px}.section-heading strong{font-size:14px;background:#e9e4ff;color:#674bd2;border-radius:20px;padding:4px 8px}.question-card.compact{margin-top:12px}.bookmark-list{display:grid;gap:11px}.bookmark-list>a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.bookmark-list>a:hover{border-color:#bfb4ef}.bookmark-list span{font-size:14px;color:#755adb;font-weight:800}.bookmark-list strong{font-size:14px;display:block;margin:5px 0}.bookmark-list p{font-size:14px;color:#7d8795;line-height:1.5;margin:0}.empty-state{background:#fff;border:1px dashed #ccd3de;border-radius:16px;padding:45px 25px;text-align:center;color:#778393}.empty-state>svg{color:#779f14;width:35px}.empty-state h2{font-size:16px;color:var(--ink)}.empty-state p{font-size:14px}.empty-state.small{padding:30px 18px}.settings-page{max-width:1000px}.settings-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:25px;margin-top:17px}.settings-panel h2{font-size:17px;margin:0 0 9px}.settings-panel>p{font-size:14px;color:#768190}.storage-summary{display:flex;align-items:center;gap:13px;margin-top:18px}.storage-summary-icon{width:46px;height:46px;border-radius:13px;background:#7159dd;color:#fff;display:grid;place-items:center}.storage-summary>div{display:flex;flex-direction:column;flex:1}.storage-summary strong{font-size:14px}.storage-summary small{font-size:14px;color:#828c99;margin-top:3px}.setting-actions{display:flex;gap:10px;margin-top:18px}.setting-note{display:block;color:#7c8794;margin-top:13px}.danger-zone{border-color:#efcaca}.danger-zone h2{color:#b83838}.danger-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid #f0dddd}.danger-row strong{font-size:14px}.danger-row p{font-size:14px;color:#8b7777;margin:3px 0}.not-found{min-height:100vh;background:var(--navy);color:#fff}.not-found>span{font-size:90px;font-weight:900;color:var(--lime)}.not-found h1{font-size:30px}.not-found p{color:#8c98ab}.missing h1{font-size:26px}.missing p{color:#778292}@media(max-width:1050px){.top-grid,.lower-grid{grid-template-columns:1fr 1fr}.lower-grid .activity-card{grid-column:1/-1}.hero{gap:25px}.feature-strip{grid-template-columns:repeat(2,1fr)}.floating-card{display:none}}@media(max-width:820px){.sidebar{transform:translate(-100%);transition:transform .25s;width:270px}.sidebar.is-open{transform:none}.sidebar-close{display:grid}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#070d188c;z-index:20}.app-main{margin-left:0}.mobile-header{display:flex;height:62px;align-items:center;justify-content:space-between;padding:0 18px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:15}.mobile-brand{display:flex;align-items:center;gap:8px;font-weight:900}.mobile-brand .brand-mark{width:29px;height:29px}.hero{grid-template-columns:1fr;padding-top:55px;text-align:center}.hero-copy>p{margin-left:auto;margin-right:auto}.hero-actions,.trust-line{justify-content:center}.hero-visual{min-height:360px}.lesson-grid,.test-grid,.review-columns{grid-template-columns:1fr}.lesson-topbar{padding:0 16px}.page{padding:40px 22px 70px}}@media(max-width:620px){.hero h1{font-size:43px}.hero-visual{display:none}.hero{min-height:auto;padding-bottom:65px}.feature-strip{grid-template-columns:1fr}.landing-nav{height:72px}.top-grid,.lower-grid{grid-template-columns:1fr}.lower-grid .activity-card{grid-column:auto}.dashboard-heading{align-items:flex-start}.streak-chip{padding:9px}.streak-chip small{display:none}.continue-body{align-items:flex-end}.continue-body .progress-ring{width:80px!important;height:80px!important}.overview-body{align-items:flex-start}.overview-stats{grid-template-columns:1fr}.lesson-topbar{grid-template-columns:1fr auto}.lesson-top-progress{display:none}.lesson-content{width:min(100% - 32px,800px);padding-top:42px}.objectives{flex-direction:column}.section-complete,.lesson-finish,.danger-row{align-items:flex-start;flex-direction:column}.test-runner>header{padding:0 15px;grid-template-columns:1fr auto}.test-runner>header>span{display:none}.result-hero{padding:30px 17px}.result-actions,.setting-actions{flex-direction:column}.page-heading h1{font-size:31px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}.dialog-backdrop{position:fixed;inset:0;z-index:100;background:#090f1ba6;display:grid;place-items:center;padding:20px}.confirm-dialog{width:min(100%,440px);background:#fff;border-radius:18px;padding:27px;box-shadow:0 28px 80px #0000004d}.confirm-dialog h2{font-size:20px;margin:0 0 10px}.confirm-dialog p{color:#697586;font-size:14px;line-height:1.7;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.example-flow{position:relative;margin:82px 0;padding:0 30px 34px;border:1px solid #ccd4e2;border-top:4px solid #7258dd;border-radius:24px;background:linear-gradient(180deg,#fbfcff 0,#fff 35%);box-shadow:0 20px 52px #16203317}.example-flow.comparison,.example-flow.reference{border-top-color:#d77a2b}.example-flow-header{min-height:64px;margin:0 -30px;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:20px 20px 0 0;background:#111b2c;color:#fff}.example-flow-index{display:flex;align-items:baseline;gap:8px;white-space:nowrap}.example-flow-index small{color:#b9f227;font:800 14px DM Mono;letter-spacing:.14em}.example-flow-index strong{font:800 22px DM Mono;letter-spacing:-.05em}.example-flow-tags{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px}.example-flow-kind,.example-flow-result{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border-radius:100px;font-size:14px;font-weight:800}.example-flow-kind{background:#2a3650;color:#dce5f4}.example-flow-result.has-final{background:#dff4a9;color:#3f5d00}.example-flow-result.non-merge{background:#ffe2c4;color:#8c480f}.example-flow>.lesson-section{margin:32px 0}.example-flow>.lesson-section:first-of-type{padding-bottom:26px;border-bottom:1px solid #e2e6ee}.example-flow>.lesson-section:first-of-type h2{margin-top:0}.example-flow>.code-relationship{margin:28px 0 34px}.example-flow>.complete-source{margin-top:42px}.example-flow>.non-merge-note{margin-top:42px}.example-flow+.example-flow{margin-top:96px}.code-relationship{margin:28px 0 42px;padding:22px 24px;border:1px solid #ded8f8;border-radius:16px;background:#faf9ff}.code-relationship.comparison,.code-relationship.reference{border-color:#f0d7bd;background:#fffaf4}.code-relationship-head{display:flex;align-items:center;gap:11px}.code-relationship-head>span{padding:5px 8px;border-radius:6px;background:#e8e2ff;color:#6649ce;font:800 14px DM Mono;letter-spacing:.08em}.code-relationship.comparison .code-relationship-head>span,.code-relationship.reference .code-relationship-head>span{background:#ffead5;color:#a75b17}.code-relationship h2{margin:0;font-size:16px;letter-spacing:-.025em}.code-relationship>p{margin:11px 0 17px;color:#626d7c;font-size:14px;line-height:1.75}.code-relationship ol{display:flex;align-items:stretch;gap:8px;list-style:none;margin:0;padding:0;overflow-x:auto}.code-relationship li{display:flex;align-items:center;gap:8px;min-width:230px}.code-relationship li>span{width:27px;height:27px;display:grid;place-items:center;flex:none;border-radius:8px;background:#7258dd;color:#fff;font:800 14px DM Mono}.code-relationship.comparison li>span,.code-relationship.reference li>span{background:#d77a2b}.code-relationship li>div{display:flex;flex:1;min-width:0;max-width:230px;flex-direction:column;gap:4px}.code-relationship li strong{font-size:14px;line-height:1.45}.code-relationship li small{color:#697386;font-size:14px;line-height:1.55;white-space:normal}.code-relationship li>svg{width:14px;color:#a8a0c8;flex:none}.code-relationship ol{scroll-snap-type:x proximity;padding-bottom:4px}.code-relationship li{scroll-snap-align:start}.complete-source{padding:25px 24px 22px;border:1px solid #cfe7a0;border-radius:18px;background:linear-gradient(180deg,#fbfff3 0,#fff)}.complete-source-label{display:inline-flex;margin-bottom:8px;padding:5px 9px;border-radius:100px;background:#e8f7c6;color:#507400;font:800 14px DM Mono;letter-spacing:.05em}.complete-source>h2{margin-top:7px}.complete-source .code-panel{box-shadow:0 18px 40px #36530821}.complete-source .code-panel-head>span:last-child{color:#b9f227;font-weight:700}.non-merge-note{border-left-color:#d77a2b;background:#fff8ef}.code-panel pre:focus-visible,.code-block:focus-visible{outline:3px solid #b9f227;outline-offset:-3px}.complete-source-meta{display:grid;margin:18px 0 0;padding:5px 16px;border:1px solid #dce8c5;border-radius:13px;background:#fff}.complete-source-meta>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:center;padding:12px 0}.complete-source-meta>div+div{border-top:1px solid #e7eddc}.complete-source-meta dt{color:#687453;font-size:14px;font-weight:800}.complete-source-meta dd{min-width:0;margin:0;color:#263314;font-size:15px;line-height:1.6}.complete-source-filename{display:block;width:fit-content;max-width:100%;padding:7px 10px;border:1px solid #d3dfbe;border-radius:8px;background:#f3f8e9;color:#23320c;font:700 14px/1.55 DM Mono,monospace;overflow-wrap:anywhere;white-space:normal;-webkit-user-select:all;user-select:all}.complete-source-instruction{margin:10px 2px 18px!important;color:#59644a!important;font-size:14px!important;line-height:1.7!important}.privacy-page{min-height:100vh;padding:32px;background:#f6f8fc}.privacy-page>.back-link{max-width:760px;margin:0 auto 20px}.privacy-document{max-width:760px;margin:auto;background:#fff;border:1px solid #e5e9f2;border-radius:24px;padding:clamp(28px,6vw,56px);box-shadow:0 18px 50px #18274b14}.privacy-document h1{font-size:clamp(2rem,5vw,3rem);margin:10px 0 16px}.privacy-document>p{color:#5d6678;line-height:1.75}.privacy-document section{display:grid;grid-template-columns:auto 1fr;gap:16px;margin-top:32px}.privacy-document section>svg{color:#625bf6}.privacy-document h2{font-size:1.1rem;margin:0 0 8px}.privacy-document section p{margin:0;color:#5d6678;line-height:1.7}.privacy-updated{margin-top:36px;font-size:14px}.landing-footer a{color:inherit;text-decoration:underline}.syntax-highlighted-code{display:block;min-width:max-content;white-space:pre;tab-size:2;font:inherit;color:inherit}.syntax-token{font:inherit}.syntax-comment{color:#91a0b5;font-style:italic}.syntax-string{color:#a8da7d}.syntax-number{color:#f5bd73}.syntax-keyword{color:#c99bff;font-weight:600}.syntax-literal{color:#f09d76}.syntax-tag{color:#70d6a3}.syntax-attribute{color:#79c7f5}.syntax-property{color:#8fd5ff}.syntax-selector{color:#d7b978}.syntax-function{color:#70c9ff}.syntax-operator{color:#89ddff}.syntax-punctuation{color:#aebbd0}.syntax-variable{color:#f2a9c7}@media(max-width:620px){.example-flow{margin:68px 0;padding:0 14px 24px;border-radius:19px}.example-flow-header{min-height:58px;margin:0 -14px;padding:12px 13px;border-radius:15px 15px 0 0;align-items:flex-start}.example-flow-index strong{font-size:19px}.example-flow-tags{gap:5px}.example-flow-kind,.example-flow-result{min-height:24px;padding:4px 7px;font-size:14px}.example-flow>.lesson-section{margin:27px 0}.example-flow>.lesson-section:first-of-type{padding-bottom:21px}.example-flow>.code-relationship{padding:18px 15px}.example-flow>.complete-source{padding:20px 14px}.example-flow .code-panel pre{padding:20px 17px}.example-flow .code-relationship ol{flex-direction:column;overflow:visible;gap:16px}.example-flow .code-relationship li{position:relative;width:100%;min-width:0;align-items:flex-start}.example-flow .code-relationship li>div{max-width:none}.example-flow .code-relationship li>svg{position:absolute;left:6px;bottom:-15px;transform:rotate(90deg)}}@media(max-width:620px){.complete-source-meta{padding:5px 13px}.complete-source-meta>div{grid-template-columns:1fr;gap:3px}.complete-source-filename{width:100%}}small{font-size:14px}
