@import url("https://fonts.googleapis.com/css2?family=Epilogue:wght@600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,400..700,0..1,0&display=block");:root{--ky-yellow:#FFD200;--ky-blue:#3A99FF;--ky-red:#E11D24;--ky-navy:#1E2A78;--ky-black:#000D60;--ky-white:#FFFFFF;--yellow-50:#FFFBE6;--yellow-100:#FFF3B8;--yellow-200:#FFE970;--yellow-300:#FFE07C;--yellow-400:#FFD200;--yellow-500:#ECC200;--yellow-600:#725C00;--blue-50:#ECF5FF;--blue-100:#D4E3FF;--blue-200:#A4C9FF;--blue-300:#6DB2FF;--blue-400:#3A99FF;--blue-500:#1E6FD9;--blue-600:#005FAD;--red-50:#FFEBEC;--red-100:#FFDAD6;--red-200:#F7898D;--red-300:#EE4F55;--red-400:#E11D24;--red-500:#BA1A1A;--red-600:#93000A;--green-50:#E4F7EE;--green-200:#75EDA4;--green-400:#1FA463;--green-600:#006D3E;--navy-900:#000D60;--navy-800:#1E2A78;--navy-700:#2C3A8E;--navy-600:#4150A6;--ink:#000D60;--slate-700:#3B4368;--slate-600:#525A82;--slate-500:#6A7197;--slate-400:#9298BC;--slate-300:#C3C7DE;--slate-200:#E2E4F0;--slate-100:#EFF1F8;--slate-50:#F7F8FC;--paper:#FBF8FF;--surface-low:#F4F2FF;--surface:#EDECFF;--surface-high:#E6E6FF;--surface-highest:#DFE0FF;--edge:#D4D7FF;--edge-yellow:#DDA800;--edge-blue:#1E6FD9;--edge-red:#93000A;--edge-green:#006D3E;--edge-navy:#000D60;--color-bg:var(--paper);--color-surface:var(--ky-white);--color-surface-alt:var(--surface-low);--color-border:var(--slate-200);--color-fg:var(--ink);--color-fg-muted:var(--slate-500);--color-fg-subtle:var(--slate-400);--color-primary:var(--ky-yellow);--color-primary-ink:var(--ky-navy);--color-link:var(--blue-600);--color-success:#1FA463;--color-success-bg:#E4F7EE;--color-warning:#F5A300;--color-warning-bg:#FFF3D6;--color-danger:var(--ky-red);--color-danger-bg:var(--red-50);--font-display:"Epilogue",system-ui,sans-serif;--font-body:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-pill:999px;--shadow-sm:0 3px 0 0 var(--edge);--shadow-md:0 8px 24px -4px rgba(30,42,120,0.08);--shadow-lg:0 10px 28px -4px rgba(30,42,120,0.10);--shadow-xl:0 20px 40px -8px rgba(30,42,120,0.18);--shell-side:248px;--shell-top:68px}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);font-family:var(--font-body);color:var(--color-fg);font-weight:500}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em}:focus-visible{outline:3px solid rgba(58,153,255,.55);outline-offset:2px}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(.7);opacity:0}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes kyPulse{0%,to{box-shadow:0 6px 0 var(--edge-yellow),0 0 0 0 rgba(255,210,0,.55)}50%{box-shadow:0 6px 0 var(--edge-yellow),0 0 0 14px rgba(255,210,0,0)}}@keyframes kyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes kyConfetti{0%{transform:translateY(-10vh) rotate(0)}to{transform:translateY(105vh) rotate(540deg)}}.ms{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.ms.fill{font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 24}.ky-btn{box-shadow:0 4px 0 0 var(--btn-edge,var(--edge));transition:transform .08s ease,box-shadow .08s ease,filter .12s ease}.ky-btn:hover:not(:disabled){filter:brightness(1.04)}.ky-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 0 var(--btn-edge,var(--edge))}.ky-card-hover{transition:transform .12s ease,box-shadow .12s ease;cursor:pointer}.ky-card-hover:hover{transform:translateY(-3px)}.ky-card-hover:active{transform:translateY(1px)}.ky-input{width:100%;padding:12px 16px;border-radius:14px;border:2px solid var(--slate-200);background:#fff;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.ky-input:focus{border-color:var(--ky-blue);box-shadow:0 0 0 3px rgba(58,153,255,.15)}body:has(.ky-shell){padding:var(--shell-top) 0 0 var(--shell-side)}.ky-side{position:fixed;inset:0 auto 0 0;width:var(--shell-side);z-index:90;background:#fff;border-right:2px solid var(--surface);display:flex;flex-direction:column;padding:18px 14px 16px}.ky-side-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px;text-decoration:none}.ky-side-brand b{font-family:var(--font-display);font-weight:800;font-size:11px;letter-spacing:.14em;color:var(--blue-600)}.ky-side-nav{display:flex;flex-direction:column;gap:4px;flex:1 1;overflow-y:auto;padding-bottom:6px}.ky-side-link{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 14px;border-radius:14px;text-decoration:none;font-weight:600;font-size:15px;color:var(--slate-600);transition:background .12s ease,color .12s ease}.ky-side-link:hover{background:var(--surface-low);color:var(--ink)}.ky-side-link[aria-current=page]{background:var(--ky-yellow);color:var(--ink);font-weight:800;box-shadow:0 4px 0 0 var(--edge-yellow)}.ky-side-logout{width:100%;border:0;background:none;cursor:pointer;font-family:var(--font-body);margin-top:8px;color:var(--red-500)}.ky-side-logout:hover{background:var(--red-50);color:var(--red-600)}.ky-side-level{background:var(--surface-low);border-radius:16px;padding:14px 16px;box-shadow:0 3px 0 0 var(--edge);margin-top:12px}.ky-top{position:fixed;inset:0 0 auto var(--shell-side);height:var(--shell-top);z-index:80;background:rgba(251,248,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 28px}.ky-top-logo{display:none}.ky-stat{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:999px;background:#fff;font-family:var(--font-display);font-weight:800;font-size:13.5px;color:var(--ink);white-space:nowrap;text-decoration:none}.ky-tabbar{display:none}.ky-page{max-width:1120px;margin:0 auto;padding:20px 28px 80px}.ky-h1{font-weight:800;font-size:clamp(26px,3.4vw,38px);line-height:1.15;letter-spacing:-.02em}.ky-h1,.ky-h2{font-family:var(--font-display);color:var(--ink);margin:0}.ky-h2{font-weight:700;font-size:clamp(20px,2.4vw,26px);line-height:1.25}.ky-sub{font-size:15px;color:var(--slate-600);line-height:1.6;margin:6px 0 0}.ky-label{font-family:var(--font-body);font-weight:800;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase}.ky-section{margin-top:36px}.ky-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.ky-link{font-weight:700;font-size:14px;color:var(--blue-600);text-decoration:none;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0;font-family:var(--font-body)}.ky-link:hover{text-decoration:underline}.course-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:10px;gap:10px;margin:0 0 28px}.course-facts>div{background:#fff;border-radius:14px;padding:12px 16px;box-shadow:var(--shadow-sm)}.course-facts dt{font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--blue-600)}.course-facts dd{margin:3px 0 0;font-size:14.5px;font-weight:600;line-height:1.45;color:var(--ink)}.ky-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.ky-grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}@media (max-width:960px){body:has(.ky-shell){padding:60px 0 calc(74px + env(safe-area-inset-bottom))}.ky-side{display:none}.ky-top{left:0;height:60px;padding:0 16px}.ky-top-logo{display:block}.ky-top-user-name{display:none}.ky-tabbar{position:fixed;inset:auto 0 0 0;z-index:90;display:flex;background:#fff;border-top:2px solid var(--surface);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}.ky-tab{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:12px;text-decoration:none;font-size:10.5px;font-weight:700;color:var(--slate-500)}.ky-tab[aria-current=page]{color:var(--ink);background:var(--yellow-100)}.ky-page{padding:16px 16px 40px}.ky-grid-2,.ky-grid-3{grid-template-columns:1fr;gap:16px}}@media (min-width:961px) and (max-width:1180px){.ky-grid-3{grid-template-columns:1fr 1fr}}.lesson-loading,.lesson-media-shell,.lesson-reading-shell{width:min(100%,1040px);margin-inline:auto}.lesson-loading{min-height:360px;display:grid;place-items:center;background:#fff;border-radius:20px;box-shadow:var(--shadow-md)}.lesson-media-shell{border-radius:20px;overflow:hidden;background:var(--navy-900);box-shadow:var(--shadow-lg)}.lesson-reading-shell{background:#fff;border-radius:22px;padding:clamp(22px,3.4vw,48px);box-shadow:var(--shadow-md)}.lesson-reading-shell[data-style=reading]{width:min(100%,860px)}.lesson-kicker{color:var(--blue-600);font-size:12px;font-weight:700;letter-spacing:.065em;line-height:1.5;margin-bottom:9px;text-transform:uppercase}.lesson-title{color:var(--navy-900);font-family:var(--font-display);font-size:clamp(26px,3vw,38px);font-weight:800;letter-spacing:-.025em;line-height:1.16;margin:0;max-width:25ch}.lesson-article{color:#303858;font-size:16.5px;font-weight:500;line-height:1.85;margin-top:32px;max-width:76ch}.lesson-article>:first-child{margin-top:0}.lesson-article>:last-child{margin-bottom:0}.lesson-article p{margin:0 0 1.35em}.lesson-article h2,.lesson-article h3,.lesson-article h4{color:var(--navy-900);font-family:var(--font-display);line-height:1.3;scroll-margin-top:24px}.lesson-article h2{font-size:25px;margin:2.1em 0 .65em}.lesson-article h3{font-size:20px;margin:1.8em 0 .55em}.lesson-article h4{font-size:17px;margin:1.55em 0 .45em}.lesson-article a{color:var(--blue-600);font-weight:600;text-underline-offset:3px}.lesson-article strong{color:var(--navy-900)}.lesson-article ol,.lesson-article ul{margin:0 0 1.45em;padding-left:1.45em}.lesson-article li{margin:.42em 0;padding-left:.25em}.lesson-article li::marker{color:var(--blue-500);font-weight:700}.lesson-article code{background:var(--blue-50);border:1px solid var(--blue-100);border-radius:6px;color:#174a7e;font-family:var(--font-mono);font-size:.9em;padding:.12em .38em}.lesson-article pre{background:#101735;border:1px solid #28356d;border-radius:15px;color:#edf4ff;line-height:1.65;margin:1.5em 0;overflow-x:auto;padding:20px 22px;-moz-tab-size:4;tab-size:4}.lesson-article pre code{background:transparent;border:0;color:inherit;font-size:13.5px;padding:0}.lesson-article .callout,.lesson-article blockquote{background:var(--blue-50);border:1px solid var(--blue-100);border-left:5px solid var(--ky-blue);border-radius:4px 14px 14px 4px;color:var(--slate-700);margin:1.6em 0;padding:16px 20px}.lesson-article .callout>:last-child,.lesson-article blockquote>:last-child{margin-bottom:0}.lesson-article figure{margin:2em 0}.lesson-article img{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:14px;display:block;height:auto;margin:1.75em auto;max-width:100%}.lesson-article figure img{margin-bottom:.65em}.lesson-article figcaption{color:var(--slate-500);font-size:13px;line-height:1.55;text-align:center}.lesson-article table{border-collapse:separate;border-spacing:0;display:block;margin:1.7em 0;max-width:100%;overflow-x:auto;width:max-content}.lesson-article td,.lesson-article th{border-bottom:1px solid var(--slate-200);padding:11px 14px;text-align:left}.lesson-article th{background:var(--slate-100);color:var(--navy-900);font-weight:700}.lesson-article tr:first-child th:first-child{border-top-left-radius:10px}.lesson-article tr:first-child th:last-child{border-top-right-radius:10px}.lesson-article hr{border:0;border-top:1px solid var(--slate-200);margin:2.2em 0}.lesson-article details{border:1px solid var(--slate-200);border-radius:12px;margin:1.3em 0;padding:13px 16px}.lesson-article summary{color:var(--navy-900);cursor:pointer;font-weight:700}.lesson-assignments{display:grid;grid-gap:14px;gap:14px;margin-top:30px}.lesson-assignment-card{background:linear-gradient(145deg,#fff9da,#fffef7);border:1px solid #f0d86b;border-radius:16px;padding:20px 22px}.lesson-assignment-label{color:#8b7000;font-size:11px;font-weight:800;letter-spacing:.08em;margin-bottom:5px;text-transform:uppercase}.lesson-assignment-card h2{color:var(--navy-900);font-family:var(--font-display);font-size:20px;line-height:1.35;margin:0 0 10px}.lesson-assignment-copy{color:var(--slate-700);font-size:14px;line-height:1.7}.lesson-assignment-copy>:first-child{margin-top:0}.lesson-assignment-copy>:last-child{margin-bottom:0}.lesson-assignment-checklist{list-style:none;margin:16px 0 0;padding:0}.lesson-assignment-checklist li{color:var(--slate-700);font-size:13.5px;line-height:1.55;padding:6px 0 6px 30px;position:relative}.lesson-assignment-checklist li:before{border:2px solid #d2b82c;border-radius:5px;content:"";height:16px;left:0;position:absolute;top:8px;width:16px}.lesson-assignment-meta{color:var(--slate-500);font-size:12px;margin-top:14px}@media (max-width:900px){.catalog-hero h1{font-size:clamp(22px,6vw,38px)!important}.course-grid{gap:16px!important}.course-grid,.dash-stats{grid-template-columns:repeat(2,1fr)!important}.detail-grid{grid-template-columns:1fr!important}}@media (max-width:560px){.course-grid{grid-template-columns:1fr!important}.dash-stats{grid-template-columns:1fr 1fr!important;gap:10px!important}.lesson-reading-shell{border-radius:16px;padding:22px 18px 28px}.lesson-media-shell{border-radius:14px}.lesson-article{font-size:15px;line-height:1.78;margin-top:24px}}.dash-hero{display:flex;align-items:center;gap:28px;position:relative}.dash-hero-cta{width:320px;flex-shrink:0;display:flex;flex-direction:column}@media (max-width:860px){.dash-hero{flex-direction:column;align-items:stretch;gap:20px}.dash-hero-cta{width:100%}}.learn{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}.learn-top{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:64px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:0 20px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:2px solid var(--surface)}.learn-icon-btn{width:42px;height:42px;border-radius:12px;border:0;cursor:pointer;flex-shrink:0;display:grid;place-items:center;background:var(--surface-high);color:var(--ink);box-shadow:0 3px 0 0 var(--edge);transition:transform .08s ease,box-shadow .08s ease}.learn-icon-btn:active{transform:translateY(2px);box-shadow:0 1px 0 0 var(--edge)}.learn-crumb{flex:1 1;min-width:0;font-size:14px;color:var(--slate-500);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.learn-crumb b{color:var(--ink);font-weight:800}.learn-panes{display:none}.learn-body{flex:1 1;display:grid;grid-gap:20px;gap:20px;padding:20px;align-items:start;grid-template-columns:300px minmax(0,1fr) 320px;width:100%;max-width:1560px;margin:0 auto}.learn-body[data-list=closed]{grid-template-columns:minmax(0,1fr) 320px}.learn-body[data-list=closed] .learn-list{display:none}.learn-body[data-view=practice]{grid-template-columns:280px minmax(0,1fr) 340px;max-width:none}.learn-body[data-view=practice][data-list=closed]{grid-template-columns:minmax(0,1fr) 340px}.learn-aside,.learn-list{position:-webkit-sticky;position:sticky;top:84px;max-height:calc(100vh - 84px - 96px);overflow-y:auto;background:#fff;border-radius:20px;box-shadow:var(--shadow-md)}.learn-sec{border-top:2px solid var(--surface-low)}.learn-sec-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px 12px 18px;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--font-body)}.learn-sec-head:hover{background:var(--surface-low)}.learn-row{width:100%;display:flex;align-items:center;gap:12px;padding:9px 14px 9px 18px;min-height:48px;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--font-body)}.learn-row:hover{background:var(--surface-low)}.learn-row[aria-current=true]{background:var(--blue-100);box-shadow:inset 4px 0 0 var(--ky-blue)}.learn-row-sub{padding-left:42px}.learn-row-dot{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--surface-high);color:var(--slate-500)}.learn-row-dot[data-state=done]{background:var(--green-600);color:#fff}.learn-row-dot[data-state=active]{background:var(--ky-blue);color:#fff}.learn-row-name{display:block;font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.35}.learn-row[aria-current=true] .learn-row-name{font-weight:800}.learn-row-meta{display:block;font-family:var(--font-mono);font-size:11px;color:var(--slate-500);margin-top:1px}.learn-main{min-width:0}.lesson-head{align-items:flex-start;gap:14px}.lesson-head,.lesson-meta{display:flex;flex-wrap:wrap}.lesson-meta{gap:6px 18px;margin-top:12px;font-size:13px;font-weight:600;color:var(--slate-600)}.lesson-meta span{display:inline-flex;align-items:center;gap:5px}.lesson-practice-shell{background:#fff;border-radius:22px;padding:20px;box-shadow:var(--shadow-md)}.lesson-callout{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:26px;border-radius:16px;padding:16px 18px;background:var(--surface-low);color:var(--ink)}.lesson-callout[data-tone=todo]{background:var(--yellow-100)}.lesson-callout b{display:block;font-size:15px}.lesson-callout span:not(.ms){display:block;font-size:13.5px;color:var(--slate-700);line-height:1.5}.learn-tabs{display:flex;gap:4px;padding:6px;margin:12px 12px 0;background:var(--surface-low);border-radius:14px}.learn-tabs button{flex:1 1;border:0;background:none;cursor:pointer;border-radius:10px;padding:8px 6px;min-height:38px;font-family:var(--font-body);font-weight:700;font-size:13.5px;color:var(--slate-600)}.learn-tabs button[aria-selected=true]{background:#fff;color:var(--ink);font-weight:800;box-shadow:0 2px 0 0 var(--edge)}.learn-tabs i{font-style:normal;font-family:var(--font-mono);font-size:11px;background:var(--blue-100);color:var(--blue-600);border-radius:999px;padding:1px 7px;margin-left:3px}.learn-aside-body{padding:16px 18px 20px}.learn-aside-body>:first-child{margin-top:0!important}.learn-aside-h{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink);margin:22px 0 10px}.learn-mission{background:var(--blue-50);border-radius:16px;padding:16px}.learn-mission-title{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:800;font-size:17px;color:var(--blue-600);margin-bottom:8px}.learn-mission-copy{font-size:14px;line-height:1.65;color:var(--ink)}.learn-mission-copy>:first-child{margin-top:0}.learn-mission-copy>:last-child{margin-bottom:0}.learn-mission-copy code,.learn-toc code{font-family:var(--font-mono);font-size:.9em;background:#fff;border-radius:6px;padding:.1em .35em}.learn-check{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--slate-600);padding:8px 12px;border-radius:12px;background:var(--surface-low);margin-bottom:6px}.learn-check[data-ok=true]{color:var(--green-600);background:var(--green-50)}.learn-aside-article .lesson-article{font-size:14px;line-height:1.65;margin-top:0}.learn-aside-article .lesson-article h2{font-size:16px;margin:1.3em 0 .4em}.learn-aside-article .lesson-article h3{font-size:14.5px;margin:1.2em 0 .35em}.learn-aside-article .lesson-article p{margin-bottom:.8em}.learn-aside-article .lesson-article ol,.learn-aside-article .lesson-article ul{margin-bottom:.8em;padding-left:1.3em}.learn-aside-article .lesson-article li{margin:.3em 0}.learn-aside-article .lesson-article>:first-child,.learn-aside-article .lesson-article>div:first-child>:first-child{margin-top:0}.learn-mission .lesson-article{color:var(--ink)}.lesson-try{margin:1.5em 0}.lesson-try pre{margin:0!important;border-radius:15px 15px 0 0!important}.lesson-try-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--surface-low);border-radius:0 0 15px 15px;padding:10px 12px 10px 16px;box-shadow:0 3px 0 0 var(--edge);font-size:13.5px;line-height:1.4;color:var(--slate-600)}.lesson-try[data-open=true] .lesson-try-bar{border-radius:0;box-shadow:none}.lesson-try-bar button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border:0;cursor:pointer;border-radius:12px;background:var(--ky-blue);color:#fff;font-family:var(--font-display);font-weight:800;font-size:13.5px;box-shadow:0 3px 0 0 var(--edge-blue);transition:transform .08s ease,box-shadow .08s ease}.lesson-try-bar button:active{transform:translateY(2px);box-shadow:0 1px 0 0 var(--edge-blue)}.lesson-try[data-open=true] .lesson-try-bar button{background:#fff;color:var(--ink);box-shadow:0 3px 0 0 var(--edge)}.lesson-try iframe{display:block;width:100%;height:480px;border:0;border-radius:0 0 15px 15px;background:#050B2A;box-shadow:0 3px 0 0 var(--edge)}.learn-toc{display:flex;flex-direction:column;border-left:3px solid var(--surface-high)}.learn-toc a{padding:6px 12px;margin-left:-3px;border-left:3px solid transparent;font-size:13.5px;font-weight:600;color:var(--slate-600);text-decoration:none;line-height:1.4}.learn-toc a[data-level="3"]{padding-left:24px;font-weight:500;font-size:13px}.learn-toc a:hover{color:var(--blue-600);border-left-color:var(--ky-blue)}.learn-tip{display:flex;gap:10px;margin-top:18px;background:var(--yellow-100);border-radius:14px;padding:14px;font-size:13.5px;line-height:1.55;color:var(--slate-700)}.learn-tip .ms{color:var(--yellow-600)}.learn-dock{position:-webkit-sticky;position:sticky;bottom:0;z-index:40;flex-shrink:0;justify-content:space-between;gap:14px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:2px solid var(--surface)}.learn-dock,.learn-dots{display:flex;align-items:center}.learn-dots{gap:7px;font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--slate-600)}.learn-dots i{width:10px;height:10px;border-radius:999px;background:var(--surface-highest);transition:width .2s ease}.learn-dots i[data-state=done]{background:var(--green-600)}.learn-dots i[data-state=active]{width:26px;background:var(--ky-blue)}.learn-dots span[data-always=false]{display:none}@media (max-width:1280px){.learn-body,.learn-body[data-view=practice]{grid-template-columns:280px minmax(0,1fr)}.learn-body[data-list=closed],.learn-body[data-view=practice][data-list=closed]{grid-template-columns:minmax(0,1fr)}.learn-aside{position:static;max-height:none;grid-column:-2/-1}}@media (max-width:900px){.learn-top{padding:0 12px;height:58px}.learn-crumb span,.learn-crumb-course,.learn-list-toggle,.learn-top-stat{display:none}.learn-panes{display:flex;gap:4px;padding:6px;margin:10px 12px 0;background:var(--surface);border-radius:14px}.learn-panes button{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:0;background:none;border-radius:10px;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:13.5px;color:var(--slate-600)}.learn-panes button[aria-selected=true]{background:#fff;color:var(--ink);font-weight:800;box-shadow:0 2px 0 0 var(--edge)}.learn-body,.learn-body[data-list],.learn-body[data-view]{display:block;padding:12px}.learn-aside,.learn-list{position:static;max-height:none;display:none}.learn-main{display:none}.learn-body[data-pane=aside] .learn-aside,.learn-body[data-pane=list] .learn-list,.learn-body[data-pane=main] .learn-main{display:block!important}.learn-dock{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.learn-dock-label,.learn-dots i{display:none}.learn-dots span[data-always]{display:inline}.lesson-practice-shell{padding:12px;border-radius:16px}}.quiz{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}.quiz-wrap{width:100%;max-width:980px;margin:0 auto;padding:20px 20px 140px;flex:1 1;display:flex;flex-direction:column}.quiz-bar{display:flex;align-items:center;gap:16px;background:#fff;border-radius:20px;padding:14px 18px;box-shadow:0 4px 0 0 var(--edge)}.quiz-q{font-family:var(--font-display);font-weight:800;font-size:clamp(22px,3.4vw,34px);line-height:1.22;letter-spacing:-.015em;color:var(--ink);margin:14px 0 22px;white-space:pre-wrap}.quiz-code{background:var(--ky-navy);color:#EDF4FF;border-radius:20px;padding:22px 24px;margin:-6px 0 22px;font-family:var(--font-mono);font-size:15px;font-weight:600;line-height:1.7;overflow-x:auto;-moz-tab-size:4;tab-size:4;box-shadow:0 6px 0 0 var(--edge-navy)}.quiz-opts{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.quiz-opt{display:flex;align-items:center;gap:16px;text-align:left;cursor:pointer;min-height:84px;padding:16px 18px;border-radius:20px;border:0;background:#fff;box-shadow:0 5px 0 0 var(--edge);font-family:var(--font-display);font-weight:700;font-size:clamp(16px,1.9vw,20px);color:var(--ink);line-height:1.3;transition:transform .08s ease,box-shadow .08s ease,background .12s ease}.quiz-opt:hover{background:var(--surface-low)}.quiz-opt:active{transform:translateY(3px);box-shadow:0 2px 0 0 var(--edge)}.quiz-opt[aria-checked=true]{background:var(--blue-100);box-shadow:0 5px 0 0 var(--blue-600)}.quiz-opt-key{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;background:var(--surface-high);color:var(--slate-600);font-family:var(--font-display);font-weight:800;font-size:18px}.quiz-opt[aria-checked=true] .quiz-opt-key{background:var(--blue-600);color:#fff;box-shadow:0 3px 0 0 #004884}.quiz-dock{position:fixed;inset:auto 0 0 0;z-index:30;background:#fff;border-top:2px solid var(--surface);padding:14px 20px calc(14px + env(safe-area-inset-bottom))}.quiz-dock>div{max-width:940px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.quiz-center{flex:1 1;display:grid;place-items:center;padding:24px 0}@media (max-width:720px){.quiz-opts{grid-template-columns:1fr;gap:12px}.quiz-opt{min-height:68px;border-radius:16px}.quiz-wrap{padding:12px 14px 130px}}.path-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:24px;gap:24px;align-items:start;margin-top:20px}.path-side{position:-webkit-sticky;position:sticky;top:calc(var(--shell-top) + 16px);display:flex;flex-direction:column;gap:16px}.path-unit{width:100%;display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;border:0;border-radius:20px;padding:16px 18px;color:#fff;font-family:var(--font-body);background:linear-gradient(100deg,var(--green-600),#1FA463 70%,var(--green-200));box-shadow:0 5px 0 0 #00522D}.path-unit[data-state=active]{background:linear-gradient(100deg,var(--blue-600),var(--ky-blue));box-shadow:0 5px 0 0 #004884}.path-unit[data-state=todo]{background:var(--surface-high);color:var(--ink);box-shadow:0 5px 0 0 var(--edge)}.path-unit-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.2);flex-shrink:0}.path-unit[data-state=todo] .path-unit-icon{background:#fff;color:var(--slate-500)}.path-unit-title{font-family:var(--font-display);font-weight:800;font-size:clamp(17px,2vw,21px);line-height:1.25}.path-unit-pill{background:rgba(255,255,255,.92);color:var(--ink);border-radius:999px;padding:7px 14px;font-weight:800;font-size:12.5px;white-space:nowrap;flex-shrink:0}.path-nodes{gap:30px;padding:30px 0 36px}.path-nodes,.path-step{position:relative;display:flex;flex-direction:column;align-items:center}.path-step{gap:10px;text-decoration:none;z-index:1;border:0;background:none;cursor:pointer;font-family:var(--font-body);padding:0}.path-node{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--ky-blue);box-shadow:0 6px 0 0 var(--edge-blue);transition:transform .08s ease,box-shadow .08s ease}.path-step:active .path-node{transform:translateY(4px);box-shadow:0 2px 0 0 var(--edge-blue)}.path-node[data-state=done]{background:var(--green-600);box-shadow:0 6px 0 0 #00522D}.path-node[data-state=todo]{background:var(--surface-highest);color:var(--slate-500);box-shadow:0 6px 0 0 var(--slate-300)}.path-node[data-state=active]{width:88px;height:88px;background:var(--ky-yellow);color:var(--ink);animation:kyPulse 1.8s ease-in-out infinite}.path-step-name{max-width:240px;text-align:center;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35;background:var(--paper);padding:2px 8px;border-radius:8px}.path-step-meta{font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--slate-500);margin-top:-6px;background:var(--paper);padding:0 6px}.path-bubble{position:absolute;bottom:calc(100% + 10px);background:var(--ink);color:#fff;border-radius:12px;padding:8px 14px;font-family:var(--font-display);font-weight:800;font-size:13.5px;white-space:nowrap;animation:kyFloat 2s ease-in-out infinite}.path-bubble:after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top:6px solid var(--ink)}.path-trail{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}@media (max-width:1100px){.path-layout{grid-template-columns:1fr}.path-side{position:static}}.podium{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;align-items:end;max-width:620px;margin:28px auto 0}.podium-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.podium-block{width:100%;border-radius:18px 18px 0 0;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:30px;color:var(--ink)}.rank-row{display:flex;align-items:center;gap:14px;padding:12px 18px;border-top:2px solid var(--surface-low)}.rank-row[data-me=true]{background:var(--yellow-100)}.rank-num{width:34px;text-align:center;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--slate-500);flex-shrink:0}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--paper)}.auth-hero{position:relative;overflow:hidden;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:clamp(28px,4vw,56px)}.auth-hero-glow{position:absolute;width:560px;height:560px;border-radius:50%;top:-180px;right:-160px;background:radial-gradient(circle,rgba(58,153,255,.38),rgba(58,153,255,0) 70%);pointer-events:none}.auth-stage{position:relative;flex:1 1;min-height:300px;display:grid;place-items:center}.auth-sticker{position:absolute;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:#fff;color:var(--ink);border-radius:16px;padding:10px 16px;font-family:var(--font-display);font-weight:800;font-size:14px;box-shadow:0 5px 0 0 var(--edge)}.auth-sticker-code{top:6%;left:2%;flex-direction:column;align-items:flex-start;gap:8px;background:var(--ky-navy);color:#EDF4FF;box-shadow:0 5px 0 0 #0A1250;transform:rotate(-4deg);padding:14px 18px}.auth-sticker-code code{font-family:var(--font-mono);font-weight:600;font-size:14px}.auth-sticker-code b{color:var(--ky-yellow);font-weight:700}.auth-sticker-code em{color:var(--green-200);font-style:normal}.auth-dots{display:flex;gap:6px}.auth-dots i{width:9px;height:9px;border-radius:50%;background:var(--ky-red)}.auth-dots i:nth-child(2){background:var(--ky-yellow)}.auth-dots i:nth-child(3){background:var(--green-200)}.auth-sticker-streak{top:12%;right:4%;transform:rotate(5deg);box-shadow:0 5px 0 0 var(--ky-yellow)}.auth-sticker-cert{bottom:10%;left:6%;transform:rotate(3deg);box-shadow:0 5px 0 0 var(--green-200)}.auth-nodes{position:absolute;right:6%;bottom:4%;display:flex;flex-direction:column;gap:14px;align-items:center}.auth-nodes>span{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--green-600);box-shadow:0 5px 0 0 #00522D}.auth-nodes>span:nth-child(2n){transform:translateX(-26px)}.auth-nodes>span[data-state=active]{width:62px;height:62px;background:var(--ky-yellow);color:var(--ink);box-shadow:0 5px 0 0 var(--edge-yellow)}.auth-nodes>span[data-state=todo]{background:var(--navy-600);color:rgba(255,255,255,.7);box-shadow:0 5px 0 0 var(--ky-navy)}.auth-title{font-family:var(--font-display);font-weight:800;font-size:clamp(30px,3.6vw,46px);line-height:1.08;letter-spacing:-.02em;margin:0 0 12px}.auth-title span{color:var(--ky-yellow)}.auth-lead{font-size:16.5px;line-height:1.6;color:rgba(255,255,255,.8);max-width:40ch;margin:0 0 20px}.auth-points{display:flex;gap:10px;flex-wrap:wrap}.auth-points>span{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700}.auth-main{display:grid;place-items:center;padding:clamp(20px,4vw,48px)}.auth-card{width:100%;max-width:440px}.auth-mobile-brand{display:none}.auth-tabs{display:flex;gap:4px;padding:6px;background:var(--surface);border-radius:16px;margin-bottom:20px}.auth-tabs button{flex:1 1;min-height:44px;border:0;background:none;cursor:pointer;border-radius:11px;font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--slate-600)}.auth-tabs button[aria-selected=true]{background:#fff;color:var(--ink);font-weight:800;box-shadow:0 3px 0 0 var(--edge)}.auth-field{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13.5px;color:var(--ink)}.auth-field>span{display:flex;align-items:center;gap:10px;padding:0 14px;min-height:52px;border-radius:14px;background:#fff;border:2px solid var(--slate-200);color:var(--slate-400);transition:border-color .12s ease,box-shadow .12s ease}.auth-field>span:focus-within{border-color:var(--ky-blue);box-shadow:0 0 0 3px rgba(58,153,255,.15);color:var(--ky-blue)}.auth-field input{flex:1 1;min-width:0;border:0;outline:0;background:none;font-family:var(--font-body);font-size:15.5px;font-weight:500;color:var(--ink);padding:14px 0}.auth-field button{border:0;background:none;cursor:pointer;color:var(--slate-500);width:40px;height:40px;margin-right:-8px;border-radius:10px;display:grid;place-items:center}.auth-alert{display:flex;gap:10px;border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:13.5px;font-weight:600;line-height:1.5}.auth-alert[data-kind=error]{background:var(--red-100);color:var(--red-600)}.auth-alert[data-kind=success]{background:var(--green-50);color:var(--green-600)}.auth-alert button{background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit;font-weight:800;text-decoration:underline}.auth-or{display:flex;align-items:center;gap:12px;margin:2px 0 16px;font-size:12px;font-weight:700;color:var(--slate-500)}.auth-or:after,.auth-or:before{content:"";flex:1 1;height:2px;background:var(--surface)}.auth-foot{text-align:center;font-size:14px;color:var(--slate-600);margin:22px 0 10px}@media (max-width:900px){.auth{grid-template-columns:1fr}.auth-hero{display:none}.auth-main{align-items:start;padding-top:32px}.auth-mobile-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}}:root{--ui-scale:1;--ui-radius:12px;--ui-gap:14px;--ui-tap:44px}html[data-ui-mode] body{font-size:calc(16px * var(--ui-scale))}html[data-ui-mode] .ky-btn,html[data-ui-mode] .ky-input{min-height:var(--ui-tap)}html[data-ui-mode=junior] h1{font-size:calc(30px * var(--ui-scale))}html[data-ui-mode=junior] h2{font-size:calc(22px * var(--ui-scale))}html[data-ui-mode=junior] p{line-height:1.8}html[data-ui-mode=pro] h1{letter-spacing:-.02em}html[data-ui-mode=pro] .ky-celebrate{animation:none!important}@media (prefers-reduced-motion:reduce){html[data-ui-mode] *,html[data-ui-mode] :after,html[data-ui-mode] :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}