:root{--bg:#111418;--bg-2:#1a1e22;--bg-3:#222629;--bg-code:#1e2226;--topbar-bg:#111418e0;--ink:#f5f7f8;--ink-2:#9aa3ac;--ink-3:#596068;--ink-4:#383f47;--line:#2a2f35;--line-2:#363b42;--line-3:#434a52;--accent:#35f28a;--accent-h:#5fff9e;--accent-l:#0a3320;--accent-l2:#071e14;--ok:#35f28a;--ok-bg:#071e14;--err:#ff4d4f;--err-bg:#200a0a;--warn:#ffb340;--warn-bg:#1f1200;--info:#5b8df6;--info-bg:#0a1530;--btn-primary-bg:#35f28a;--btn-primary-txt:#060f0a;--btn-primary-hover:#5fff9e;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #00000080, 0 4px 12px -4px #0006;--shadow-lg:0 4px 12px -4px #00000080, 0 20px 40px -16px #00000080;--font-body:"DM Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono:"DM Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-code:"JetBrains Mono", "SF Mono", Menlo, monospace;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:18px;--ease:cubic-bezier(.22, 1, .36, 1)}html[data-theme=light]{--bg:#fafaf9;--bg-2:#fff;--bg-3:#f4f4f3;--bg-code:#f8f8f7;--topbar-bg:#fafaf9d1;--ink:#0a0a0a;--ink-2:#525252;--ink-3:#8a8a8a;--ink-4:#b8b8b6;--line:#ececea;--line-2:#dcdcd9;--line-3:#c4c4c0;--accent:#35f28a;--accent-h:#22d97a;--accent-l:#d3f9e4;--accent-l2:#eafdf2;--ok:#35f28a;--ok-bg:#eafdf2;--err:#dc2626;--err-bg:#fef2f2;--warn:#d97706;--warn-bg:#fffbeb;--info:#1d4ed8;--info-bg:#eff6ff;--btn-primary-bg:#0a0a0a;--btn-primary-txt:#fafaf9;--btn-primary-hover:#1f1f1f;--shadow-sm:0 1px 2px #0000000a;--shadow:0 1px 3px #0000000f, 0 4px 12px -4px #0000000f;--shadow-lg:0 4px 12px -4px #00000014, 0 20px 40px -16px #00000014}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--accent-l);color:var(--ink)}html{height:100%}body{min-height:100%;font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em;font-size:15px;font-weight:400;line-height:1.55;overflow-x:hidden}.app{flex-direction:row;min-height:100vh;display:flex}.app-content{flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.sidebar{box-sizing:border-box;background:var(--bg-2);border-right:1px solid var(--line);width:232px;height:100vh;transition:flex-basis .22s var(--ease,ease), width .22s var(--ease,ease), padding .22s var(--ease,ease);flex:0 0 232px;padding:18px 12px;position:sticky;top:0;overflow-y:auto}.side-head{justify-content:space-between;align-items:center;gap:8px;padding:0 6px 8px 12px;display:flex}.side-section-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);padding:0 12px 8px;font-size:10.5px;font-weight:700}.side-head .side-section-label{padding:0}.side-collapse{width:26px;height:26px;color:var(--ink-3);border-radius:7px;flex:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.side-collapse:hover{background:var(--bg-3);color:var(--ink)}.side-collapse svg{width:16px;height:16px}body.sidebar-collapsed .sidebar,body.lesson-focus .sidebar{border-right:none;flex-basis:0;width:0;padding-left:0;padding-right:0;overflow:hidden}body.sidebar-collapsed .side-toggle{display:inline-flex}body.lesson-focus .side-toggle{display:none!important}.side-nav{flex-direction:column;gap:4px;display:flex}.side-link{text-align:left;border-radius:var(--r-md);width:100%;color:var(--ink-2);align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:600;transition:background .12s,color .12s;display:flex}.side-link:hover{background:var(--bg-3);color:var(--ink)}.side-link.is-active{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.side-link svg{flex:none;width:18px;height:18px}.side-toggle{border-radius:var(--r-md);width:38px;height:38px;color:var(--ink-2);justify-content:center;align-items:center;display:none}.side-toggle:hover{background:var(--bg-3);color:var(--ink)}@media (width<=880px){.sidebar{z-index:60;transition:transform .2s var(--ease,ease);position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 40px #00000073}.sidebar.open{transform:translate(0)}.side-toggle{display:inline-flex}body.drawer-open:before{content:"";z-index:55;background:#00000080;position:fixed;inset:0}}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}button:disabled{cursor:not-allowed}a{color:var(--accent);text-decoration:none}.topbar{background:var(--topbar-bg);-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:4px 32px;display:flex;position:relative}.brand{cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s var(--ease);align-items:center;display:flex}.brand:hover{opacity:.7}.brand-logo-img{flex-shrink:0;width:auto;height:130px;display:block}.brand-logo-dark{display:block}.brand-logo-light,html[data-theme=light] .brand-logo-dark{display:none}html[data-theme=light] .brand-logo-light{display:block}.brand-text{flex-direction:column;gap:0;line-height:1;display:flex}.brand-logo{font-family:var(--font-body);letter-spacing:-.022em;color:var(--ink);font-size:17px;font-weight:700}.brand-tag{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.06em;margin-top:3px;font-size:10px;font-weight:500}.topbar-stats{align-items:center;gap:8px;display:flex}.stat-pill{height:34px;font-family:var(--font-mono);background:var(--bg-2);border:1px solid var(--line);color:var(--ink-2);transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:999px;align-items:center;gap:6px;padding:0 13px;font-size:13px;font-weight:600;display:inline-flex}.stat-pill strong{color:var(--ink);font-weight:700}.stat-pill .pill-word{font-family:var(--font-body);color:var(--ink-3);font-size:12px;font-weight:600}.stat-pill.streak .pk-icon{color:var(--ink-3)}.stat-pill.streak.on .pk-icon{color:#35f28a}.stat-pill.streak:not(.on) strong{color:var(--ink-3)}.icon-btn{background:var(--bg-2);border:1px solid var(--line);width:34px;height:34px;color:var(--ink-2);cursor:pointer;transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.icon-btn:hover{border-color:var(--line-3);color:var(--ink)}.icon-btn .ib{pointer-events:none;width:16px;height:16px}.icon-btn .ib-off,.icon-btn.is-muted .ib-on{display:none}.icon-btn.is-muted .ib-off{display:block}.icon-btn.is-muted{color:var(--ink-3)}.icon-btn .ib-sun,html[data-theme=light] .theme-toggle .ib-moon{display:none}html[data-theme=light] .theme-toggle .ib-sun{display:block}.course-reset{text-align:center;margin-top:28px}.course-reset-btn{color:var(--ink-3);cursor:pointer;text-underline-offset:3px;transition:color .2s var(--ease);background:0 0;border:none;padding:6px 10px;font-size:12.5px;text-decoration:underline}.course-reset-btn:hover{color:var(--err)}#mainView{flex:1;width:100%;max-width:880px;margin:0 auto;padding:64px 24px 96px}.course-select-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:8px;display:grid}.course-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;transition:border-color .2s var(--ease), transform .2s var(--ease);padding:24px;position:relative}.course-card:hover{border-color:var(--line-3);transform:translateY(-2px)}.course-card-active{border-color:var(--accent)}.course-card-header{align-items:center;gap:14px;margin-bottom:14px;display:flex}.course-icon{border-radius:var(--r-md);flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.course-meta{flex:1;min-width:0}.course-code{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px;font-size:11px;font-weight:700}.course-tag{color:var(--ink-3);font-size:12px}.course-nota{font-family:var(--font-body);letter-spacing:-.035em;font-size:24px;font-weight:800;line-height:1}.course-name{letter-spacing:-.02em;color:var(--ink);margin-bottom:16px;font-size:18px;font-weight:700}.course-progress-row{align-items:center;gap:10px;margin-bottom:4px;display:flex}.course-enter-btn{font-weight:700!important}.course-pill{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:10px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.home-header{margin-bottom:56px;position:relative}.home-header h1.display{font-family:var(--font-body);letter-spacing:-.04em;color:var(--ink);margin-bottom:16px;font-size:clamp(38px,6vw,56px);font-weight:700;line-height:1.02}.home-header .subtitle{color:var(--ink-2);max-width:540px;font-size:17px;font-weight:400;line-height:1.55}.home-header .subtitle em{color:var(--ink);font-style:normal;font-weight:500}.section-title{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin:0 0 18px 4px;font-size:13px;font-weight:600}.unit-path{flex-direction:column;gap:8px;margin-bottom:48px;display:flex}.unit-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;transition:border-color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:18px;padding:20px 22px;display:flex;position:relative}.unit-card:hover{border-color:var(--line-3);transform:translateY(-1px)}.unit-body{flex:1;min-width:0}.unit-num{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:10.5px;font-weight:500}.unit-title{font-family:var(--font-body);letter-spacing:-.02em;color:var(--ink);margin-bottom:5px;font-size:17px;font-weight:600;line-height:1.25}.unit-desc{color:var(--ink-2);margin-bottom:12px;font-size:13.5px;line-height:1.5}.unit-progress{align-items:center;gap:12px;display:flex}.bar{background:var(--line);border-radius:999px;flex:1;height:4px;overflow:hidden}.bar-fill{background:var(--ucolor,var(--accent));height:100%;transition:width .4s var(--ease);border-radius:999px}.bar-text{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;font-size:11px;font-weight:500}.exam-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;transition:border-color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:18px;margin-top:8px;padding:20px 22px;display:flex;position:relative}.exam-card:hover{border-color:var(--ink-2);transform:translateY(-1px)}.exam-card.locked{opacity:.55;cursor:not-allowed}.exam-card.locked:hover{border-color:var(--line);transform:none}.exam-icon{background:var(--ink);width:48px;height:48px;color:var(--bg-2);border-radius:var(--r-md);flex-shrink:0;place-items:center;font-size:22px;font-weight:700;display:grid}.exam-card.locked .exam-icon{background:var(--ink-4)}.exam-title{font-family:var(--font-body);letter-spacing:-.02em;color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:600}.exam-desc{color:var(--ink-2);font-size:13.5px;line-height:1.5}.exam-best{font-family:var(--font-mono);color:var(--warn);margin-top:8px;font-size:11.5px;font-weight:600}.stats-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.stat-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;padding:18px 14px}.stat-num{font-family:var(--font-body);color:var(--ink);letter-spacing:-.025em;margin-bottom:4px;font-size:26px;font-weight:700;line-height:1}.stat-label{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:500}.back-btn{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--line);transition:all .2s var(--ease);background:0 0;border-radius:999px;align-items:center;gap:6px;margin-bottom:28px;padding:7px 12px;font-size:11.5px;font-weight:600;display:inline-flex}.back-btn:hover{color:var(--ink);border-color:var(--ink)}.unit-page-header{border-bottom:1px solid var(--line);align-items:flex-start;gap:22px;margin-bottom:32px;padding:0 0 28px;display:flex}.unit-page-icon{border-radius:var(--r-lg);width:60px;height:60px;font-family:var(--font-body);background:var(--bg-3);color:var(--ucolor,var(--ink));flex-shrink:0;place-items:center;font-size:28px;font-weight:600;display:grid}.unit-page-meta{flex:1}.unit-page-num{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:500}.unit-page-title{font-family:var(--font-body);letter-spacing:-.035em;color:var(--ink);margin-bottom:10px;font-size:32px;font-weight:700;line-height:1.05}.unit-page-desc{color:var(--ink-2);margin-bottom:14px;font-size:15px;line-height:1.55}.unit-page-tags{flex-wrap:wrap;gap:5px;display:flex}.tag{font-family:var(--font-mono);background:var(--bg-3);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:500;display:inline-flex}.lessons-list{flex-direction:column;gap:4px;display:flex}.lesson-card{border-radius:var(--r-md);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:16px;padding:14px 16px;display:flex}.lesson-card:hover{background:var(--bg-2);border-color:var(--line)}.lesson-body{flex:1;min-width:0}.lesson-title{color:var(--ink);letter-spacing:-.015em;margin-bottom:2px;font-size:15px;font-weight:600}.lesson-desc{color:var(--ink-2);margin-bottom:6px;font-size:13px;line-height:1.45}.lesson-meta{font-family:var(--font-mono);color:var(--ink-3);gap:12px;font-size:10.5px;font-weight:500;display:flex}.lesson-meta .not-done{color:var(--ink-3);font-style:italic}.lesson-practice-btn{border:1.5px solid var(--ucolor,var(--accent));color:var(--ucolor,var(--accent));font-size:10.5px;font-weight:700;font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:20px;padding:1px 10px;line-height:1.7;transition:background .15s,color .15s}.lesson-practice-btn:hover{background:var(--ucolor,var(--accent));color:#fff}.lesson-arrow{color:var(--ink-3);opacity:0;transition:opacity .15s var(--ease);font-size:18px}.lesson-card:hover .lesson-arrow{opacity:1;color:var(--ink)}.lesson-grade{flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;min-width:64px;padding-left:12px;display:flex}.lesson-grade-num{font-family:var(--font-body);letter-spacing:-.035em;font-size:28px;font-weight:800;line-height:1}.lesson-grade-label{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:9.5px;font-weight:600}.lesson-grade.theory .lesson-grade-tag{font-family:var(--font-mono);color:var(--ok);background:var(--ok-bg);border:1px solid var(--ok);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:10px;font-weight:600}.lesson-progress{align-items:center;gap:14px;margin-bottom:36px;display:flex}.abandon-btn{background:var(--bg-2);border:1px solid var(--line);width:32px;height:32px;color:var(--ink-2);transition:all .2s var(--ease);border-radius:999px;place-items:center;font-size:14px;display:grid}.abandon-btn:hover{color:var(--err);border-color:var(--err)}.back-card-btn{margin-top:10px}.card-nav-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.challenge-sol-img-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-3);margin:14px 0;overflow-x:auto}.challenge-sol-img{border-radius:var(--r-md);width:100%;min-width:580px;display:block}[data-theme=dark] .uml-light,[data-theme=light] .uml-dark{display:none}.progress-bar{background:var(--line);border-radius:999px;flex:1;height:4px;overflow:hidden}.progress-fill{background:var(--ink);height:100%;transition:width .4s var(--ease);border-radius:999px}.progress-text{font-family:var(--font-mono);color:var(--ink-2);text-align:right;min-width:50px;font-size:12px;font-weight:600}.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-xl);animation:cardIn .3s var(--ease);padding:36px;position:relative}@keyframes cardIn{0%{opacity:0;transform:translateY(8px)}}.card-title{font-family:var(--font-body);letter-spacing:-.03em;color:var(--ink);margin-bottom:16px;font-size:26px;font-weight:700;line-height:1.15}.card-question{color:var(--ink);margin-bottom:18px;font-size:16.5px;font-weight:400;line-height:1.55}.card-question p{margin-bottom:8px}.blk-lead{color:var(--ink-2);margin:4px 0 18px;font-size:15.5px;line-height:1.8}.blk-lead strong,.blk-step-b strong,.blk-key strong,.blk-col strong{color:var(--ink)}.blk-steps{flex-direction:column;gap:10px;margin:16px 0;display:flex}.blk-step{background:var(--bg-3);border:1px solid var(--line);border-radius:14px;align-items:flex-start;gap:14px;min-width:0;padding:14px 16px;display:flex}.blk-step-n{border:2px solid var(--line-2);width:30px;height:30px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:1px;font-size:14px;font-weight:700;display:flex}.blk-step-b{min-width:0;color:var(--ink-2);font-size:14.5px;line-height:1.75}.blk-step-t{color:var(--ink);margin-bottom:3px;font-size:14.5px;font-weight:700;display:block}.blk-formula{background:var(--bg-3);border:1px solid var(--line);text-align:center;scrollbar-width:none;border-radius:16px;min-width:0;margin:16px 0;padding:18px 16px;overflow-x:auto}.blk-formula .blk-cap{color:var(--ink-3);margin-top:10px;font-size:12.5px;line-height:1.6}.blk-key{border-left:3px solid var(--accent);background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%);color:var(--ink-2);border-radius:0 12px 12px 0;margin:16px 0;padding:13px 16px;font-size:15px;line-height:1.75}.blk-cols{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;display:grid}@media (width<=640px){.blk-cols{grid-template-columns:1fr}}.blk-col{background:var(--bg-3);border:1px solid var(--line);min-width:0;color:var(--ink-2);border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.7}.blk-col-t{color:var(--ink);margin-bottom:6px;font-size:13.5px;font-weight:700;display:block}.blk-tip{color:var(--ink-3);margin:14px 0 4px;font-size:13px;line-height:1.7}.blk-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0;display:grid}.blk-stat{background:var(--bg-3);border:1px solid var(--line);text-align:center;border-radius:14px;min-width:0;padding:14px 10px}.blk-stat-n{color:var(--ink);letter-spacing:-.02em;font-size:22px;font-weight:800;display:block}.blk-stat-l{color:var(--ink-3);margin-top:4px;font-size:11.5px;line-height:1.4;display:block}@media (width<=640px){.blk-stats{gap:8px}.blk-stat-n{font-size:18px}}.blk-table-wrap{min-width:0;margin:14px 0;overflow-x:auto}.blk-table{border-collapse:collapse;width:100%;font-size:14px}.blk-table th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);text-align:left;padding:6px 10px;font-size:10.5px;font-weight:600}.blk-table td{border-top:1px solid var(--line);color:var(--ink-2);padding:10px;line-height:1.5}.blk-table tr.hl td{color:var(--ink);background:color-mix(in srgb, var(--accent) 7%, transparent);font-weight:700}.hb-ref{margin:12px 0}.hb-ref.hb-ready{align-items:flex-end;gap:10px;min-width:0;display:flex}.hb-ref .pk{flex:none;position:relative}.hb-ref .hb-book{filter:drop-shadow(0 1px 2px #0006);width:26px;position:absolute;bottom:4px;right:-7px;transform:rotate(-12deg)}.hb-ref--flat.hb-ready{max-width:100%;display:inline-flex}.hb-ref--flat .hb-book-flat{filter:drop-shadow(0 1px 2px #0006);flex:none;width:30px}.hb-bubble{background:var(--bg-3);color:var(--ink-2);border:1px solid #fb923c55;border-radius:14px;align-items:center;gap:13px;min-width:0;padding:10px 18px 10px 13px;display:inline-flex}.hb-bubble-txt{flex-direction:column;gap:1px;min-width:0;display:flex}.hb-bubble .hb-tag{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#fb923c;font-size:10px;font-weight:700;display:block}.hb-ref:not(.hb-ready) .hb-txt{font-family:var(--font-mono);color:var(--ink-3);font-size:11px;display:block}.hb-ref--flat{cursor:pointer}.hb-ref--flat .hb-bubble{transition:border-color .15s var(--ease), background .15s var(--ease), transform .12s var(--ease)}.hb-ref--flat:hover .hb-bubble,.hb-ref--flat:focus-visible .hb-bubble{background:color-mix(in srgb, #fb923c 8%, var(--bg-3));border-color:#fb923c;transform:translateY(-1px)}.hb-ref--flat:focus-visible{outline:none}.hb-cta{font-family:var(--font-body);color:var(--ink);transition:color .15s var(--ease);font-size:13.5px;font-weight:700;display:block}.hb-ref--flat:hover .hb-cta,.hb-ref--flat:focus-visible .hb-cta{color:#fb923c}.hb-modal-backdrop,.fb-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s var(--ease);overscroll-behavior:contain;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.hb-modal-backdrop{z-index:9500}.fb-modal-backdrop{z-index:9400}.hb-modal-backdrop.open,.fb-modal-backdrop.open{opacity:1}.hb-modal-backdrop.closing,.fb-modal-backdrop.closing{opacity:0}.hb-modal{background:var(--bg-2);border:1px solid var(--line-2);width:100%;max-width:440px;box-shadow:var(--shadow-lg);text-align:center;transition:transform .22s var(--ease);border-radius:22px;padding:14px 30px 32px;position:relative;transform:scale(.92)translateY(10px)}.hb-modal-backdrop.open .hb-modal{transform:scale(1)translateY(0)}.hb-modal-close{width:34px;height:34px;color:var(--ink-3);background:var(--bg-3);border:1px solid var(--line);border-radius:50%;place-items:center;transition:color .15s,background .15s;display:grid;position:absolute;top:12px;right:12px}.hb-modal-close:hover{color:var(--ink);background:var(--line)}.hb-modal-close svg{width:17px;height:17px}.hb-modal-pk{justify-content:center;margin:4px 0 2px;display:flex}.hb-modal-pk .pk{filter:drop-shadow(0 12px 28px #00000052);position:relative}.hb-book--big{filter:drop-shadow(0 2px 5px #0006);width:62px;position:absolute;bottom:18px;right:2px;transform:rotate(-12deg)}.hb-modal-tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#fb923c;margin-top:8px;font-size:11px;font-weight:700}.hb-modal-body{color:var(--ink);margin-top:8px;font-size:16px;line-height:1.6}.fb-modal{background:var(--bg-2);border:1px solid var(--line-2);width:100%;max-width:620px;max-height:84dvh;box-shadow:var(--shadow-lg);text-align:left;transition:transform .22s var(--ease);scrollbar-width:thin;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;border-radius:20px;padding:22px 26px 26px;position:relative;overflow-y:auto;transform:scale(.94)translateY(10px)}.fb-modal-backdrop.open .fb-modal{transform:scale(1)translateY(0)}.fb-modal.ok{border-top:3px solid var(--ok)}.fb-modal.err{border-top:3px solid var(--err)}.fb-modal-head{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:8px;margin:2px 0 16px;font-size:22px;font-weight:800;display:flex}.fb-modal-body{min-width:0}.fb-modal .fb-got{background:var(--ink);width:100%;color:var(--bg);margin-top:18px;padding:14px;font-size:15px}.fb-modal .fb-got:hover{background:var(--ink);opacity:.88}.feedback .fb-body--wide{min-width:0;margin-top:12px}.card-figure{scrollbar-width:none;min-width:0;max-width:420px;margin:4px auto 14px;overflow-x:auto}.card-figure:has(table){max-width:100%}.card-figure svg{width:100%;height:auto;display:block}.card-figure .fig-grid{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}.card-figure .fig-grid figure{min-width:0;margin:0}.card-figure .fig-grid figcaption{color:var(--ink-3);margin-bottom:2px;font-size:11.5px;font-weight:600}.card-source{font-family:var(--font-mono);color:var(--ink-2);background:var(--bg-3);border:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;gap:5px;margin-bottom:14px;padding:3px 10px;font-size:10px;font-weight:600;display:inline-flex}.card-prose{color:var(--ink-2);margin-bottom:16px;font-size:15px;line-height:1.65}.card-prose p{margin-bottom:10px}.card-prose p:last-child{margin-bottom:0}.card-prose strong{color:var(--ink);font-weight:600}.card-prose em{color:var(--ink);font-style:italic;font-weight:500}.card-prose .prose-list{margin:12px 0;padding-left:0;list-style:none}.card-prose .prose-list li{margin-bottom:6px;padding-left:20px;position:relative}.card-prose .prose-list li:before{content:"·";color:var(--ink-3);font-weight:700;position:absolute;left:6px}.card-prose ol.prose-list,.fb-body ol.prose-list{counter-reset:prose-ol;list-style:none}.card-prose ol.prose-list li,.fb-body ol.prose-list li{counter-increment:prose-ol}.card-prose ol.prose-list li:before,.fb-body ol.prose-list li:before{content:counter(prose-ol);background:var(--accent);color:#fff;text-align:center;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:3px;left:2px}.card-prose .prose-table,.fb-body .prose-table{border-collapse:collapse;border-radius:var(--r-sm);border:1px solid var(--line);width:100%;margin:14px 0;font-size:13px;overflow:hidden}.card-prose .prose-table th,.fb-body .prose-table th{background:var(--bg-3);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);text-align:left;border-bottom:1.5px solid var(--line-2);white-space:nowrap;padding:8px 14px;font-size:11px;font-weight:600}.card-prose .prose-table td,.fb-body .prose-table td{border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top;padding:9px 14px;line-height:1.5}.card-prose .prose-table tr:last-child td,.fb-body .prose-table tr:last-child td{border-bottom:none}.inline-code{font-family:var(--font-mono);background:var(--bg-3);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:.88em;font-weight:500}.code-block,.inline-code,.opt-text code,.code-editor,.code-editor-overlay,.code-editor-overlay-code,.code-result pre,.pyqt-feedback code,.lp-mockup-code{font-family:var(--font-code)!important}.code-block{background:var(--bg-code);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--ink);white-space:pre;margin:14px 0 18px;padding:18px 20px;font-size:13px;font-weight:400;line-height:1.7;overflow-x:auto}.hl-kw{color:#c792ea;font-weight:600}.hl-bi{color:#82aaff}.hl-str{color:#35f28a}.hl-num{color:#f78c6c}.hl-com{color:var(--ink-3);font-style:italic}html[data-theme=light] .hl-kw{color:#7c3aed}html[data-theme=light] .hl-bi{color:#0369a1}html[data-theme=light] .hl-str{color:#047857}html[data-theme=light] .hl-num{color:#be185d}html[data-theme=light] .lp-mockup-code .hl-kw{color:#7c3aed}html[data-theme=light] .lp-mockup-code .hl-bi{color:#0369a1}html[data-theme=light] .lp-mockup-code .hl-fn{color:#047857}.blank-slot{background:var(--accent-l);color:var(--accent-h);border:1px dashed var(--accent);border-radius:4px;padding:1px 8px;font-weight:600}.options{flex-direction:column;gap:6px;margin:18px 0 4px;display:flex}.option{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;transition:border-color .15s var(--ease), background .15s var(--ease);width:100%;color:var(--ink);font-size:14.5px;font-family:var(--font-body);align-items:center;gap:14px;padding:14px 16px;font-weight:500;display:flex}.option:hover:not(:disabled){border-color:var(--ink-2)}.option:disabled{cursor:default}.option.correct{border-color:var(--ok);background:var(--ok-bg)}.option.wrong{border-color:var(--err);background:var(--err-bg)}.letter-pill{background:var(--bg-3);border:1px solid var(--line);width:28px;height:28px;font-family:var(--font-mono);color:var(--ink-2);transition:all .15s var(--ease);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.option.correct .letter-pill{background:var(--ok);color:var(--bg-2);border-color:var(--ok)}.option.wrong .letter-pill{background:var(--err);color:var(--bg-2);border-color:var(--err)}.opt-text{flex:1;min-width:0}.opt-text code{font-family:var(--font-mono);font-size:12.5px}.tf-options{grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 4px;display:grid}.tf-btn{font-family:var(--font-body);letter-spacing:-.01em;justify-content:center;padding:18px;font-size:16px;font-weight:600}.feedback{border-radius:var(--r-md);animation:fbIn .32s var(--ease);border:1px solid;margin-top:20px;padding:18px 20px}@keyframes fbIn{0%{opacity:0;transform:translateY(10px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.fb-header .pk-icon polyline,.fb-header .pk-icon line{stroke-dasharray:26;stroke-dashoffset:26px;animation:pkStrokeDraw .35s var(--ease) .12s forwards}.fb-header .pk-icon line:nth-of-type(2){animation-delay:.28s}@keyframes pkStrokeDraw{to{stroke-dashoffset:0}}.feedback.ok{border-color:var(--ok);background:var(--ok-bg)}.feedback.err{border-color:var(--err);background:var(--err-bg)}.fb-header{font-family:var(--font-body);letter-spacing:-.015em;margin-bottom:8px;font-size:16px;font-weight:700}.feedback.ok .fb-header{color:var(--ok)}.feedback.err .fb-header{color:var(--err)}.fb-body{color:var(--ink-2);margin-bottom:14px;font-size:14.5px;line-height:1.55}.fb-body strong{color:var(--ink)}.fb-sheet{z-index:9300;width:100%;max-width:520px;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));transition:transform .3s var(--ease), background .2s var(--ease), border-color .2s var(--ease);border-bottom:none;border-radius:22px 22px 0 0;margin:0 auto;animation:none;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%);box-shadow:0 -12px 40px #00000059}.fb-sheet.open{transform:translateY(0)}.fb-sheet.retry{background:var(--warn-bg);border-color:var(--warn)}.fb-sheet.answer{background:var(--bg-2);border-color:var(--line-2)}.fb-sheet.retry .fb-header{color:var(--warn)}.fb-sheet.answer .fb-header{color:var(--ink)}.fb-sheet .fb-header{margin-bottom:0;font-size:18px}.fb-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.fb-why{background:var(--ink);color:var(--bg);white-space:nowrap;transition:opacity .2s var(--ease), transform .1s var(--ease);border-radius:999px;flex:none;padding:9px 20px;font-size:13.5px;font-weight:700}.fb-why:hover{opacity:.88}.fb-why:active{transform:scale(.97)}.fb-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fb-actions .fb-pk{flex:none}.fb-actions .btn-primary,.fb-actions .btn-secondary{flex:auto;justify-content:center;min-width:0;padding:14px 18px;font-size:15px}.fb-sheet.retry .btn-primary{background:var(--warn);color:#221400}.fb-sheet.retry .btn-primary:hover{background:var(--warn);filter:brightness(1.08)}.fb-sheet.retry .btn-secondary{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--ink);border-color:#0000}.fb-sheet.retry .btn-secondary:hover{background:color-mix(in srgb, var(--warn) 26%, transparent);border-color:#0000}html[data-theme=light] .fb-sheet.retry .btn-primary{color:#201500;background:#f0b429}.fb-sheet.answer .btn-primary{background:var(--line-2);color:var(--ink)}.fb-sheet.answer .btn-primary:hover{background:var(--line-3)}html[data-theme=light] .fb-sheet.answer .btn-primary{background:#e9e9e6}html[data-theme=light] .fb-sheet.answer .btn-primary:hover{background:#dededb}.fb-spacer{height:170px}@media (width>=881px){.fb-sheet{left:232px}body.sidebar-collapsed .fb-sheet,body.lesson-focus .fb-sheet{left:0}}html[data-theme=light] .fb-sheet.ok .btn-primary,html[data-theme=light] .fb-sheet.err .btn-primary{color:#060f0a;background:#35f28a}html[data-theme=light] .fb-sheet.ok .btn-primary:hover,html[data-theme=light] .fb-sheet.err .btn-primary:hover{background:#5fff9e}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-txt);font-family:var(--font-body);letter-spacing:-.005em;white-space:nowrap;transition:background .2s var(--ease), transform .1s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:11px 22px;font-size:14px;font-weight:700;display:inline-flex}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary.is-running:disabled{opacity:.72;cursor:progress}.btn-secondary{background:var(--bg-2);border:1px solid var(--line-2);color:var(--ink);white-space:nowrap;transition:all .2s var(--ease);border-radius:999px;align-items:center;gap:7px;padding:10px 20px;font-size:13.5px;font-weight:500;display:inline-flex}.btn-secondary:hover{border-color:var(--ink)}.btn-ghost{color:var(--ink-3);white-space:nowrap;transition:color .2s var(--ease);border-radius:999px;padding:10px 16px;font-size:13px;font-weight:500}.btn-ghost:hover{color:var(--ink)}.btn-danger{background:var(--err);color:var(--bg-2);transition:background .2s var(--ease);border-radius:999px;padding:10px 20px;font-size:13.5px;font-weight:600}.btn-danger:hover{background:#b91c1c}.code-editor-group{margin:14px 0}.code-editor-chrome{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;border-bottom:none;justify-content:space-between;align-items:center;gap:10px;padding:7px 12px;display:flex}.cec-name{font-family:var(--font-mono);color:var(--ink-2);align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:inline-flex}.cec-lang{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;font-size:10.5px}.code-editor-group .code-editor-wrap{border-top-left-radius:0;border-top-right-radius:0;margin:0}@media (width<=420px){.cec-lang{display:none}}.code-editor-wrap{background:var(--bg-code);border:1px solid var(--line);border-radius:var(--r-md);min-height:220px;transition:border-color .2s var(--ease);margin:14px 0;position:relative;overflow:hidden}.code-editor-wrap:focus-within{border-color:var(--ink-2);box-shadow:0 0 0 3px #0000000a}.code-editor-overlay{font-family:var(--font-mono);white-space:pre;word-wrap:normal;pointer-events:none;color:var(--ink);background:0 0;margin:0;padding:20px;font-size:13px;line-height:1.65;position:absolute;inset:0;overflow:auto}.code-editor-overlay-code{background:0 0;min-height:100%;font-family:inherit;display:block}.code-editor{color:#0000;width:100%;height:100%;caret-color:var(--accent);font-family:var(--font-mono);white-space:pre;word-wrap:normal;resize:none;-webkit-text-fill-color:transparent;background:0 0;border:none;outline:none;margin:0;padding:20px;font-size:13px;font-weight:400;line-height:1.65;position:absolute;inset:0;overflow:auto}.code-editor::selection{background:var(--accent-l)}.card-hint{background:var(--warn-bg);border-radius:var(--r-sm);border:1px solid #fde68a;margin:8px 0 14px;padding:12px 16px;font-size:13.5px}.card-hint summary{cursor:pointer;color:var(--warn);-webkit-user-select:none;user-select:none;font-weight:600}.card-hint summary::marker{content:""}.card-hint summary::-webkit-details-marker{display:none}.card-hint p{color:var(--ink-2);margin-top:8px}.code-no-exec-banner{background:var(--info-bg);border:1px solid var(--line-2);border-left:3px solid var(--info);border-radius:var(--r-sm);color:var(--ink-2);align-items:flex-start;gap:10px;margin:8px 0 14px;padding:12px 14px;font-size:13.5px;display:flex}.code-no-exec-banner .ne-icon{color:var(--info);flex-shrink:0;margin-top:1px;line-height:1.2}.code-no-exec-banner .ne-text{flex:1;line-height:1.5}.code-actions{flex-wrap:wrap;gap:8px;margin:10px 0 14px;display:flex}.code-output{flex-direction:column;gap:8px;margin-top:12px;display:flex}.code-status{font-family:var(--font-mono);color:var(--ink-2);background:var(--bg-3);border-radius:var(--r-sm);border:1px solid var(--line);align-items:center;gap:8px;padding:10px 14px;font-size:12.5px;display:flex}.code-result{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 16px}.code-result.err{border-color:var(--err);background:var(--err-bg)}.code-result.hint{background:var(--warn-bg);border-color:#fde68a}.code-result.expected{border-color:var(--ok);background:var(--ok-bg)}.code-result .result-label{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:10.5px;font-weight:600}.code-result.err .result-label{color:var(--err)}.code-result.hint .result-label{color:var(--warn)}.code-result.expected .result-label{color:var(--ok)}.code-result pre{font-family:var(--font-mono);color:var(--ink);white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.55}.code-result.err pre{color:var(--err)}.code-hint-msg{font-family:var(--font-mono);color:var(--warn);padding:6px 14px;font-size:12px;font-weight:500}.order-list{flex-direction:column;gap:6px;margin:14px 0;display:flex}.order-help{background:var(--info-bg);border-radius:var(--r-sm);color:var(--ink);border:1px solid #c7d7fe;margin:12px 0;padding:10px 14px;font-size:13px}.order-bank-label{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-top:14px;margin-bottom:6px;font-size:10.5px;font-weight:600}.order-bank-label.answer{color:var(--accent);margin-top:18px}.order-bank{background:var(--bg-3);border:1px dashed var(--line-2);border-radius:var(--r-md);flex-direction:column;gap:6px;min-height:60px;padding:10px;display:flex}.order-answer-zone{background:var(--accent-l2);border:1.5px dashed var(--accent);border-radius:var(--r-md);flex-direction:column;gap:6px;min-height:80px;padding:10px;display:flex}.order-placeholder{text-align:center;color:var(--ink-3);padding:18px 12px;font-size:13px;font-style:italic}.order-item{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);cursor:grab;-webkit-user-select:none;user-select:none;font-family:var(--font-mono);transition:border-color .2s var(--ease);align-items:center;gap:12px;padding:12px 16px;font-size:12.5px;display:flex}.order-item:hover{border-color:var(--ink-3)}.order-item.dragging{opacity:.4}.order-item:active{cursor:grabbing}.order-item.order-selected{border-color:var(--accent);background:var(--accent-l2);box-shadow:0 0 0 2px var(--accent);transform:scale(1.01)}.order-tap-hint{text-align:center;color:var(--ink-3);margin:4px 0 10px;font-size:12px;font-style:italic}.drag-handle{color:var(--ink-3);font-size:16px}.wrong-order .order-item{border-color:var(--err)}.correct-order-hint{font-family:var(--font-mono);color:var(--ok);margin-top:14px;font-size:11.5px;font-weight:600}.order-item-static{background:var(--ok-bg);border:1px solid var(--ok);border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-mono);margin-top:6px;padding:10px 14px;font-size:12.5px}.exam-scroll-main{max-width:780px;margin:0 auto;padding:24px 20px 80px}.exam-back-btn{margin-bottom:20px}.exam-header{margin-bottom:32px}.exam-title-row{align-items:flex-start;gap:14px;margin-bottom:10px;display:flex}.exam-icon{flex-shrink:0;padding-top:2px;font-size:28px}.exam-title{letter-spacing:-.02em;margin:0 0 4px;font-size:24px;font-weight:800}.exam-subtitle{color:var(--ink-2);margin:0;font-size:14px}.exam-meta{color:var(--ink-3);flex-direction:column;align-items:flex-end;gap:2px;font-size:13px;display:flex}.sim-timer-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-size:11px}.sim-timer{font-variant-numeric:tabular-nums;color:var(--ink-1);letter-spacing:.04em;font-size:22px;font-weight:700;font-family:var(--mono)}.exam-q-src{color:var(--ink-3);margin-left:8px;font-size:11px;font-weight:400}.exam-section{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-2);margin-bottom:24px;padding:28px 24px}.exam-section-header{border-bottom:1.5px solid var(--line);margin-bottom:22px;padding-bottom:16px}.exam-section-num{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:4px;font-size:10.5px;font-weight:700}.exam-section-title{letter-spacing:-.01em;margin-bottom:2px;font-size:17px;font-weight:700}.exam-section-sub{color:var(--ink-3);font-size:12.5px;font-family:var(--font-mono)}.exam-instructions{color:var(--ink-2);margin-bottom:20px;font-size:13.5px;font-style:italic}.exam-question{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:28px}.exam-question:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.exam-q-num{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:8px;font-size:11px;font-weight:700}.exam-q-text{margin-bottom:12px}.exam-options{flex-direction:column;gap:8px;margin-top:14px;display:flex}.exam-option{border:1.5px solid var(--line);border-radius:var(--r-md);cursor:pointer;align-items:flex-start;gap:10px;padding:10px 14px;font-size:14px;line-height:1.5;transition:border-color .15s,background .15s;display:flex}.exam-option input[type=radio]{display:none}.exam-option:hover{border-color:var(--ink-3);background:var(--bg-3)}.exam-option.selected{border-color:var(--accent);background:var(--accent-l2)}.exam-option-letter{border:1.5px solid var(--line-2);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;transition:all .15s;display:grid}.exam-option.selected .exam-option-letter{background:var(--accent);color:#fff;border-color:var(--accent)}.exam-option-text{white-space:pre-wrap;flex:1}.exam-mc{margin-bottom:22px}.exam-mc-question{margin-bottom:12px}.exam-mc-opts{flex-direction:column;gap:8px;display:flex}.exam-mc-review .options{margin-top:12px}.exam-mc-review .review-q-num{display:block}.exam-dev-intro{color:var(--ink-2);margin-bottom:20px;font-size:14px}.exam-part{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:28px}.exam-part:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.exam-part-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:12px;font-size:11px;font-weight:700;display:inline-block}.exam-part-context{margin-bottom:12px}.exam-tasks{background:var(--bg-3);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);margin-top:14px;padding:12px 16px}.exam-tasks-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:6px;font-size:11px;font-weight:700}.exam-vf{margin-bottom:18px}.exam-vf-enunciado{margin-bottom:10px}.exam-vf-opts{gap:10px;margin-bottom:8px;display:flex}.exam-vf-opt{flex:none;min-width:120px}.exam-vf-justif{box-sizing:border-box;resize:vertical;background:var(--bg-3);width:100%;color:var(--ink-1);border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;padding:10px 12px;font-size:13.5px;line-height:1.5}.exam-vf-justif:focus{border-color:var(--accent);outline:none}.exam-footer{justify-content:center;padding:12px 0 32px;display:flex}.exam-submit-btn{min-width:220px;padding:14px 28px;font-size:16px}.review-header{border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:28px;padding:20px 24px 24px;overflow:hidden}.review-nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.review-body{align-items:center;gap:24px;display:flex}.review-info{flex:1}.review-badge{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-l2);border:1px solid var(--accent-l);border-radius:20px;margin-bottom:10px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.review-title{letter-spacing:-.02em;color:var(--ink);margin:0 0 14px;font-size:28px;font-weight:800}.review-mc-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.review-dots{gap:5px;display:flex}.review-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px}.dot-ok{background:var(--ok)}.dot-err{background:var(--err,#dc2626)}.dot-empty{background:var(--ink-4)}.review-mc-label{color:var(--ink-2);font-size:13px}.review-hint{color:var(--ink-3);margin:0;font-size:13px;line-height:1.5}.review-nota-card{background:var(--surface,#fafaf9);border:1.5px solid var(--line);border-radius:14px;flex-direction:column;flex-shrink:0;align-items:center;gap:4px;min-width:130px;padding:20px 32px;display:flex}.review-nota-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-size:10px;font-weight:600}.sim-review-nota{letter-spacing:-.02em;color:var(--ink-4);font-variant-numeric:tabular-nums;font-size:54px;font-weight:800;line-height:1;transition:color .5s,transform .4s}.sim-review-nota.nota-pass{color:var(--accent)}.sim-review-nota.nota-fail{color:var(--err,#dc2626)}.sim-review-nota.nota-revealed{transform:scale(1.06)}.review-nota-scale{display:none}.review-question{border-radius:var(--r-md);border:1.5px solid;margin-bottom:14px;padding:14px 16px}.review-ok{background:var(--ok-bg);border-color:var(--ok)}.review-err{background:var(--err-bg);border-color:var(--err)}.review-q-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.review-result-icon{font-size:16px;font-weight:700}.review-ok .review-result-icon{color:var(--ok)}.review-err .review-result-icon{color:var(--err)}.review-q-num{font-weight:700}.review-wrong-ans,.review-correct-ans{color:var(--ink-2);margin-left:auto;font-size:13px}.review-explanation{color:var(--ink-2);margin-top:8px;font-size:13.5px}.review-dev-part{border-bottom:1px solid var(--line);padding:20px 0}.review-dev-part:last-child{border-bottom:none}.chg-selected{ring:2px solid currentColor;font-weight:800;opacity:1!important}@media (width<=600px){.exam-section{padding:20px 16px}.exam-option{padding:9px 12px;font-size:13.5px}.exam-submit-btn{width:100%}}.challenge-context{margin-bottom:14px}.challenge-tasks{background:var(--bg-3);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);margin:14px 0;padding:12px 16px}.challenge-tasks-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:8px;font-size:11px;font-weight:700}.challenge-prompt{color:var(--ink-3);margin:14px 0 10px;font-size:13.5px;font-style:italic}.challenge-reveal-btn{margin-top:4px}.challenge-solution{border-top:1.5px solid var(--line-2);margin-top:20px;padding-top:16px}.challenge-sol-header{text-transform:uppercase;letter-spacing:.06em;color:var(--ok);margin-bottom:10px;font-size:11px;font-weight:700}.challenge-sol-explanation{margin-top:12px}.challenge-grade{margin-top:18px}.challenge-grade-label{margin-bottom:10px;font-weight:600}.challenge-grade-btns{flex-wrap:wrap;gap:8px;display:flex}.chg-btn{border-radius:var(--r-md);cursor:pointer;min-width:100px;transition:all .15s var(--ease);border:1.5px solid #0000;flex:1;padding:10px 14px;font-size:14px;font-weight:600}.chg-ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.chg-partial{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.chg-wrong{background:var(--err-bg);color:var(--err);border-color:var(--err)}.chg-btn:hover{filter:brightness(1.07)}.chg-btn:disabled{opacity:.5;cursor:default}.lesson-complete{text-align:center;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-xl);animation:cardIn .4s var(--ease) both;padding:56px 24px}.lc-icon{color:var(--ok);margin-bottom:18px;font-size:56px}.lesson-complete.fail .lc-icon{color:var(--err)}.lc-badge{color:var(--ok);justify-content:center;margin-bottom:18px;display:flex}.lc-badge svg{overflow:visible}.lcb-ring{stroke-dasharray:176;stroke-dashoffset:176px;transform-origin:32px 32px;animation:pkRingDraw .7s var(--ease) .15s forwards;transform:rotate(-90deg)}.lcb-check{stroke-dasharray:38;stroke-dashoffset:38px;animation:pkStrokeDraw .4s var(--ease) .7s forwards}@keyframes pkRingDraw{to{stroke-dashoffset:0}}.lesson-complete.fail .lc-badge{color:var(--err)}.lesson-complete h2{font-family:var(--font-body);letter-spacing:-.035em;color:var(--ink);margin-bottom:20px;font-size:34px;font-weight:700;line-height:1.05}.lc-grade-big{font-family:var(--font-body);letter-spacing:-.045em;color:var(--ok);margin:4px 0 6px;font-size:72px;font-weight:800;line-height:1}.lc-grade-label{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:26px;font-size:10.5px;font-weight:600}.lc-subtitle{color:var(--ink-2);margin:-8px 0 28px;font-size:14px}.lc-stats{grid-template-columns:1fr;gap:8px;max-width:240px;margin:0 auto 32px;display:grid}.lc-stat{background:var(--bg-3);border-radius:var(--r-md);border:1px solid var(--line);padding:16px 8px}.lc-num{font-family:var(--font-body);color:var(--ink);letter-spacing:-.025em;margin-bottom:2px;font-size:24px;font-weight:700;line-height:1}.lc-label{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:500}.lc-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.exam-mode{border-left:3px solid var(--err)}.exam-tag{font-family:var(--font-mono);letter-spacing:.12em;color:var(--err);background:var(--err-bg);border:1px solid var(--err);text-transform:uppercase;border-radius:999px;margin-bottom:12px;padding:3px 10px;font-size:10px;font-weight:700;display:inline-flex}.exam-grade{font-family:var(--font-body);letter-spacing:-.05em;color:var(--ink);margin-bottom:24px;font-size:96px;font-weight:800;line-height:.95}.exam-grade.grade-a{color:var(--ok)}.exam-grade.grade-b{color:var(--info)}.exam-grade.grade-c{color:var(--warn)}.exam-grade.grade-d{color:#ea580c}.exam-grade.grade-f{color:var(--err)}.exam-summary{text-align:left;max-width:560px;margin:24px auto}.exam-summary h3{font-family:var(--font-body);color:var(--ink);letter-spacing:-.02em;margin-bottom:14px;font-size:16px;font-weight:600}.topic-row{grid-template-columns:130px 1fr 60px;align-items:center;gap:12px;margin-bottom:8px;font-size:13px;display:grid}.topic-row>span:first-child{color:var(--ink);font-weight:500}.topic-score{font-family:var(--font-mono);color:var(--ink-2);text-align:right;font-size:11.5px;font-weight:600}.exam-review-card{margin-bottom:16px}.exam-review-card.ok{border-left:3px solid var(--ok)}.exam-review-card.err{border-left:3px solid var(--err)}.review-title{font-family:var(--font-body);letter-spacing:-.035em;color:var(--ink);margin-bottom:24px;font-size:28px;font-weight:700}.modal-bg{-webkit-backdrop-filter:blur(4px);z-index:1000;opacity:0;transition:opacity .2s var(--ease);background:#0a0a0a66;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-bg.show{opacity:1}.modal-box{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:460px;max-height:calc(100dvh - 48px);box-shadow:var(--shadow-lg);transition:transform .2s var(--ease);scrollbar-width:none;padding:28px;overflow-y:auto;transform:scale(.96)}.modal-box::-webkit-scrollbar{display:none}.modal-bg.show .modal-box{transform:scale(1)}@media (width<=520px){.modal-bg{padding:14px}.modal-box{max-height:calc(100dvh - 28px);padding:22px 18px}}.modal-box h3{font-family:var(--font-body);color:var(--ink);letter-spacing:-.025em;margin-bottom:10px;font-size:20px;font-weight:700}.modal-box p{color:var(--ink-2);margin-bottom:22px;font-size:14.5px;line-height:1.5}.modal-actions{justify-content:flex-end;gap:8px;display:flex}#toastRoot{z-index:2000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);transition:transform .4s var(--ease);box-shadow:var(--shadow);pointer-events:auto;min-width:180px;color:var(--ink);padding:12px 18px;font-size:13.5px;font-weight:600;transform:translate(140%)}.toast.show{transform:translate(0)}.toast-ok{border-color:var(--ok);color:var(--ok)}.toast-err{border-color:var(--err);color:var(--err)}.toast-warn{border-color:var(--warn);color:var(--warn)}.account-banner{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;padding:14px 18px;display:flex}.acct-info{flex:1;min-width:0}.acct-status{color:var(--ink);margin-bottom:2px;font-size:14px;font-weight:600}.acct-detail{color:var(--ink-2);font-size:13px}.acct-actions{flex-wrap:wrap;gap:8px;display:flex}.global-progress{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);max-width:540px;margin-top:24px;padding:16px 18px}.gp-header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.gp-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.gp-num{color:var(--ink-2);font-size:13px}.gp-num strong{color:var(--ink);font-weight:700}.gp-bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.gp-fill{background:var(--accent);height:100%;transition:width .5s var(--ease);border-radius:999px}.unit-card.locked,.lesson-card.locked{opacity:.55;cursor:pointer}.unit-card.locked:hover,.lesson-card.locked:hover{opacity:.75;border-color:var(--line-2);transform:none}.lock-tag{background:var(--bg-3);color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-block}.auth-modal h3{letter-spacing:-.025em;margin-bottom:6px;font-size:22px}.auth-modal p{color:var(--ink-2);margin-bottom:18px;font-size:13.5px}.btn-google{background:var(--bg-2);border:1px solid var(--line-2);width:100%;color:var(--ink);transition:all .2s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:11px 16px;font-size:14px;font-weight:600;display:flex}.btn-google:hover{border-color:var(--ink);background:var(--bg-3)}.auth-divider{font-family:var(--font-mono);color:var(--ink-3);align-items:center;gap:12px;margin:18px 0;font-size:11px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-divider span{white-space:nowrap}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form input{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;font:inherit;color:var(--ink);transition:border-color .2s var(--ease);outline:none;padding:11px 14px;font-size:14px}.auth-form input:focus{border-color:var(--ink)}.auth-error{color:var(--err);min-height:16px;font-size:12.5px;font-weight:500}.auth-switch{color:var(--ink-2);text-align:center;margin-top:16px;font-size:13px}.auth-switch a{color:var(--accent);margin-left:4px;font-weight:600}.subscribe-modal{text-align:center}.sub-icon{margin-bottom:14px;font-size:48px}.subscribe-modal h3{letter-spacing:-.025em;margin-bottom:10px;font-size:24px}.subscribe-modal p{color:var(--ink-2);margin-bottom:18px;font-size:14.5px;line-height:1.5}.sub-price{justify-content:center;align-items:baseline;gap:4px;margin:18px 0;display:flex}.sub-amount{color:var(--ink);letter-spacing:-.04em;font-size:38px;font-weight:800}.sub-period{color:var(--ink-3);font-size:14px}.sub-features{text-align:left;margin:18px auto 22px;list-style:none;display:inline-block}.sub-features li{color:var(--ink);margin-bottom:8px;padding-left:4px;font-size:13.5px}.subscribe-modal .btn-primary{width:100%;padding:13px;font-size:15px}.sub-disclaimer{color:var(--ink-3);margin-top:14px;font-size:11.5px;font-style:italic}.account-status{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;margin:14px 0 22px;padding:14px 16px}.account-status.premium{border-color:var(--accent);background:var(--accent-l2)}.acct-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:10px;font-weight:600}.acct-plan{color:var(--ink);font-size:18px;font-weight:700}.account-status.premium .acct-plan{color:var(--accent)}.pk-icon{vertical-align:-.18em;flex:none}.fb-header,.result-label{align-items:center;gap:7px;display:flex}.chg-btn,.lesson-practice-btn,.challenge-reveal-btn,.code-actions .btn-primary,.code-actions .btn-secondary{justify-content:center;align-items:center;gap:7px;display:inline-flex}.abandon-btn,.review-result-icon,.drag-handle{justify-content:center;align-items:center;display:inline-flex}.card-hint summary{align-items:center;gap:7px;display:flex}.toast{align-items:center;gap:8px;display:flex}.pk-loader{color:var(--accent);align-items:center;gap:9px;display:inline-flex}.pk-loader svg{overflow:visible}.pk-loader-path{stroke-dasharray:52;stroke-dashoffset:52px;animation:1.5s cubic-bezier(.45,.05,.4,.95) infinite pkDraw}.pk-loader-label{color:var(--ink-2);font-size:13px;font-weight:500}@keyframes pkDraw{0%{stroke-dashoffset:52px;opacity:1}58%{stroke-dashoffset:0;opacity:1}82%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:52px;opacity:0}}@media (prefers-reduced-motion:reduce){.pk-loader-path{stroke-dashoffset:0;animation:1.4s ease-in-out infinite pkPulse}@keyframes pkPulse{0%,to{opacity:.35}50%{opacity:1}}.fb-header .pk-icon polyline,.fb-header .pk-icon line,.lcb-ring,.lcb-check{stroke-dashoffset:0;animation:none}.feedback,.card{animation:none}.progress-fill{transition:none}.path-node.is-current{animation:none}}.path-rail{flex-direction:column;flex-shrink:0;align-self:stretch;align-items:center;width:44px;display:flex}.path-seg{background:var(--line);border-radius:2px;flex:1;width:2px;min-height:6px}.path-seg.seg-done{background:var(--ucolor,var(--accent));opacity:.8}.lessons-path>:first-child .seg-top,.lessons-path>:last-child .seg-bottom,.units-path>:first-child .seg-top,.units-path>:last-child .seg-bottom{background:0 0}.lessons-path{gap:0}.lessons-path .lesson-card{align-items:stretch;padding:6px 16px}.lessons-path .lesson-body{align-self:center;padding:10px 0}.lessons-path .lesson-grade,.lessons-path .lesson-arrow{align-self:center}.path-node{width:38px;height:38px;font-family:var(--font-mono);background:var(--bg-3);color:var(--ink-2);border:2px solid #0000;border-radius:50%;flex-shrink:0;place-items:center;margin:3px 0;font-size:12.5px;font-weight:700;display:grid}.path-node.is-done,.path-node.is-current{background:color-mix(in srgb, var(--ucolor,var(--accent)) 16%, var(--bg-2));border-color:var(--ucolor,var(--accent));color:var(--ucolor,var(--accent))}.path-node.is-current{animation:2.4s cubic-bezier(.4,0,.6,1) infinite pathPulse}.path-node.is-locked{color:var(--ink-3)}@keyframes pathPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ucolor,var(--accent)) 38%, transparent)}70%,to{box-shadow:0 0 0 10px #0000}}.lessons-path .lesson-card.is-current{background:var(--bg-2);border-color:var(--line)}.path-here{color:var(--ucolor,var(--accent));font-weight:700}.lessons-path .lesson-card.locked{opacity:1}.lessons-path .lesson-card.locked :is(.lesson-body,.lesson-arrow){opacity:.5}.lessons-path .lesson-card.locked:hover{opacity:1}.lessons-path .lesson-card.locked:hover :is(.lesson-body,.lesson-arrow){opacity:.72}.units-path{gap:0}.units-path .unit-card,.units-path .exam-card{border-radius:var(--r-lg);background:0 0;border-color:#0000;align-items:stretch;gap:16px;margin:0;padding:8px 18px}.units-path .unit-card:hover,.units-path .exam-card:hover{background:var(--bg-2);border-color:var(--line);transform:none}.units-path .unit-body,.units-path .exam-body{flex:1;align-self:center;min-width:0;padding:12px 0}.units-path .path-rail{width:56px}.unit-node{border-radius:50%;flex-shrink:0;place-items:center;width:48px;height:48px;margin:3px 0;display:grid;position:relative}.unit-ring{width:100%;height:100%;position:absolute;inset:0}.unit-node-label{font-family:var(--font-mono);color:var(--ink-2);align-items:center;font-size:13px;font-weight:700;display:inline-flex;position:relative}.unit-node.is-done .unit-node-label{color:var(--ucolor,var(--accent))}.unit-node.is-locked .unit-node-label,.unit-node.is-soon .unit-node-label{color:var(--ink-3)}.milestone-node{background:var(--bg-3);width:44px;height:44px;color:var(--ink);border:2px solid var(--line-3);border-radius:50%;flex-shrink:0;place-items:center;margin:3px 0;display:grid}.milestone-node.is-done{background:color-mix(in srgb, var(--accent) 16%, var(--bg-2));border-color:var(--accent);color:var(--accent)}.milestone-node.is-locked{color:var(--ink-3);border-color:var(--line)}.units-path .exam-card.locked{opacity:1;cursor:pointer}.units-path .exam-card.locked .exam-body{opacity:.5}.units-path .exam-card.locked:hover{transform:none}.dash-continue-card{padding:22px}@media (width>=881px){.units-path .unit-card,.units-path .exam-card{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);column-gap:18px;display:grid}.units-path .path-rail{grid-area:1/2;width:auto}.units-path .side-l .unit-body,.units-path .side-l .exam-body{grid-area:1/1}.units-path .side-r .unit-body,.units-path .side-r .exam-body{grid-area:1/3}.units-path :is(.unit-body,.exam-body){position:relative}.units-path .side-l :is(.unit-body,.exam-body):after,.units-path .side-r :is(.unit-body,.exam-body):before{content:"";background:var(--line-2);border-radius:2px;width:30px;height:2px;position:absolute;top:50%}.units-path .side-l :is(.unit-body,.exam-body):after{right:-30px}.units-path .side-r :is(.unit-body,.exam-body):before{left:-30px}}.course-card{background:radial-gradient(130% 100% at 100% 0%, color-mix(in srgb, var(--ccolor,var(--accent)) 13%, transparent), transparent 55%), var(--bg-2);border:1px solid color-mix(in srgb, var(--ccolor,var(--accent)) 22%, var(--line));transition:transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);position:relative;overflow:hidden}.course-card:hover{border-color:color-mix(in srgb, var(--ccolor,var(--accent)) 45%, var(--line));box-shadow:0 16px 44px -16px color-mix(in srgb, var(--ccolor,var(--accent)) 40%, transparent);transform:translateY(-3px)}.course-card .course-icon{background:color-mix(in srgb, var(--ccolor,var(--accent)) 16%, var(--bg-2));color:var(--ccolor,var(--accent))}.course-ring{flex-shrink:0;place-items:center;width:48px;height:48px;margin-left:auto;display:grid;position:relative}.course-ring .unit-ring{width:100%;height:100%;position:absolute;inset:0}.course-ring span{font-family:var(--font-mono);color:var(--ink-2);font-size:10.5px;font-weight:700;position:relative}.course-select-grid{gap:20px}.dash-stats{gap:16px}@media (width<=640px){.path-rail{width:34px}.units-path .path-rail{width:46px}.lessons-path .lesson-card{padding:4px 8px}.units-path .unit-card,.units-path .exam-card{gap:12px;padding:6px 8px}}@keyframes pillPulse{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.option.wrong{animation:.4s ease-out optShake}@keyframes optShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (width<=760px){.topbar{padding:4px 16px}.brand-logo-img{height:48px}#mainView{padding:28px 16px 64px}.stats-grid{grid-template-columns:repeat(2,1fr)}.topic-row{grid-template-columns:90px 1fr 50px}.unit-card{gap:14px;padding:16px}.unit-icon{width:44px;height:44px;font-size:20px}.unit-title{font-size:16px}.unit-page-title{font-size:26px}.unit-page-icon{width:52px;height:52px;font-size:24px}.card{padding:24px 20px}.card-title{font-size:22px}.home-header h1.display{font-size:36px}.home-header .subtitle{font-size:15.5px}.lc-stats{grid-template-columns:1fr;max-width:260px}.topbar{flex-wrap:wrap;gap:10px;padding:12px 16px}.topbar-stats{gap:6px}.stat-pill{height:30px;padding:0 10px;font-size:12px}.icon-btn,.account-btn{width:30px;height:30px}.exam-grade{font-size:72px}}@media (width<=640px){.feedback:not(.fb-sheet){padding:16px}.feedback .fb-say .pk,.feedback .fb-say .pk-bubble-sub{display:none}.feedback .fb-say{margin-bottom:0}.feedback .fb-say .pk-say-bubble{background:0 0;border:none;border-radius:0;padding:0}.feedback .fb-say .pk-say-bubble:before,.feedback .fb-say .pk-say-bubble:after{display:none}.card-nav-row{gap:10px;margin-top:14px}.card-nav-row .btn-primary,.card-nav-row .btn-secondary,.card-nav-row .btn-ghost{border-radius:14px;min-width:0;padding:13px 16px;font-size:14.5px}.card-nav-row .btn-primary{flex:1.25;font-size:15px}.card-nav-row .btn-secondary{flex:1;justify-content:center}.card-nav-row .btn-ghost{background:var(--bg-2);border:1px solid var(--line-2);color:var(--ink-2);flex:1;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.fb-sheet .fb-actions .btn-primary,.fb-sheet .fb-actions .btn-secondary{padding:13px 12px;font-size:14.5px}.fb-sheet .fb-header{white-space:nowrap;font-size:16px}.fb-modal-backdrop{align-items:flex-end;padding:0}.fb-modal{max-width:none;max-height:92dvh;padding:22px 18px calc(20px + env(safe-area-inset-bottom,0px));border-bottom:none;border-radius:22px 22px 0 0;transform:translateY(30px)}.fb-modal-backdrop.open .fb-modal{transform:translateY(0)}}.theme-toggle{flex-shrink:0}.widget-playground{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;margin:16px 0;display:grid}@media (width<=760px){.widget-playground{grid-template-columns:1fr;gap:12px}.widget-panel,.widget-code-panel{padding:12px}.pyqt-widget{padding:12px 10px}.qlineedit,.qspinbox,.qcombobox{max-width:100%}.qtextedit{min-height:80px;font-size:14px}.widget-code-panel .code-block{padding:12px 14px;font-size:11.5px}.qsliderwrap{flex-wrap:nowrap;gap:8px}}.widget-panel,.widget-code-panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex;overflow:hidden}.widget-code-panel pre,.widget-code-panel .code-block{max-width:100%;overflow-x:auto}.widget-panel-quiz{margin:16px 0}.widget-panel-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.pyqt-widget{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-height:56px;padding:16px;display:flex;overflow-x:auto}.pyqt-feedback{color:var(--ink-2);background:var(--bg);border-radius:var(--r-sm);border:1px dashed var(--line);font-size:13px;font-family:var(--font-mono);word-break:break-word;box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:4px;min-height:36px;padding:8px 12px;display:flex}.pyqt-feedback code{background:var(--accent-l2);color:var(--accent-h);border-radius:4px;margin:0 2px;padding:1px 6px;font-size:12px}.pyqt-feedback em{color:var(--ink-3);font-style:italic}.widget-explanation{background:var(--info-bg);border-left:3px solid var(--info);border-radius:var(--r-sm);color:var(--ink-2);margin:16px 0;padding:14px 16px;font-size:14px;line-height:1.55}.qlabel{font-family:var(--font-body);color:var(--ink);font-size:15px}.qpushbutton{font-family:var(--font-body);background:var(--accent);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;padding:8px 16px;font-size:14px;transition:transform 80ms,background .15s}.qpushbutton:hover{background:var(--accent-h)}.qlineedit,.qspinbox{font-family:var(--font-mono);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-2);color:var(--ink);box-sizing:border-box;width:100%;max-width:280px;padding:6px 10px;font-size:14px}.qlineedit:focus,.qspinbox:focus{outline:2px solid var(--accent);outline-offset:-1px}.qtextedit{font-family:var(--font-mono);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-2);color:var(--ink);resize:vertical;box-sizing:border-box;width:100%;min-height:60px;padding:8px 10px;font-size:13px}.qcheckbox,.qradio{color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:4px 0;font-size:14px;display:flex}.qradiogroup{flex-direction:column;gap:4px;display:flex}.qcombobox{font-family:var(--font-body);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-2);color:var(--ink);cursor:pointer;box-sizing:border-box;width:100%;max-width:240px;padding:6px 10px;font-size:14px}.qsliderwrap{align-items:center;gap:12px;width:100%;min-width:0;display:flex}.qslider{min-width:0;accent-color:var(--accent);flex:1}.qslider-val{font-family:var(--font-mono);color:var(--ink-2);text-align:right;min-width:32px;font-size:13px}.new-tag{letter-spacing:.04em;background:var(--accent);color:#fff;vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;animation:2s ease-in-out infinite new-tag-pulse;display:inline-block}@keyframes new-tag-pulse{0%,to{box-shadow:0 0 #05966966}50%{box-shadow:0 0 0 6px #05966900}}mjx-container{max-width:100%;overflow:auto hidden;color:var(--ink)!important}mjx-container[display=true]{max-width:100%;overflow-x:auto}.card-prose,.card-question,.opt-text,.fb-body,.order-item,.order-item-static,.card-hint,.card-hint p,.explorable-title,.explorable-prompt,.challenge-prompt,.blk-lead,.blk-key,.blk-step-b,.blk-col,.blk-cap{overflow-wrap:break-word;min-width:0;max-width:100%}.opt-text,.fb-body,.fb-body--wide,.blk-lead,.blk-key,.blk-step-b,.blk-col,.blk-cap{scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto}.opt-text::-webkit-scrollbar{display:none}.fb-body::-webkit-scrollbar{display:none}.fb-body--wide::-webkit-scrollbar{display:none}.blk-lead::-webkit-scrollbar{display:none}.blk-key::-webkit-scrollbar{display:none}.blk-step-b::-webkit-scrollbar{display:none}.blk-col::-webkit-scrollbar{display:none}.blk-cap::-webkit-scrollbar{display:none}.order-item>span{overflow-wrap:break-word;min-width:0}.card{overflow-x:clip}.card-prose table{border-collapse:collapse;width:100%;font-size:13px}.step-reveal{border:1px solid var(--line);background:var(--bg-3);border-radius:10px;margin:8px 0;overflow:hidden}.step-reveal>summary{cursor:pointer;color:var(--ink);align-items:center;gap:9px;padding:10px 14px;font-size:13.5px;font-weight:600;list-style:none;display:flex}.step-reveal>summary::-webkit-details-marker{display:none}.step-reveal>summary:before{content:"▸";color:var(--accent);font-weight:700;transition:transform .15s}.step-reveal[open]>summary:before{transform:rotate(90deg)}.step-reveal>summary:hover{background:var(--bg-2)}.step-reveal[open]>summary{border-bottom:1px solid var(--line)}.step-reveal .step-body{color:var(--ink-2);padding:6px 14px 12px;font-size:13.5px;line-height:1.7}.card-prose th,.card-prose td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}mjx-container::-webkit-scrollbar{display:none}.card-prose ::-webkit-scrollbar{display:none}mjx-container,.card-prose *{scrollbar-width:none;-ms-overflow-style:none}.card-prose th{color:var(--ink);font-weight:600}.subscribe-modal{text-align:left;max-width:460px}.subscribe-modal h3{margin:0 0 4px}.subscribe-modal .sub-sub{color:var(--ink-2);margin:0 0 18px;font-size:13px;line-height:1.5}.sub-course-list{flex-direction:column;gap:9px;display:flex}.sub-course{text-align:left;width:100%;font:inherit;color:inherit;background:var(--bg-3);border:1.5px solid var(--line);cursor:pointer;transition:border-color .18s var(--ease), background .18s var(--ease);border-radius:14px;align-items:center;gap:14px;padding:14px 16px;display:flex}.sub-course:hover:not(.owned){border-color:var(--line-3)}.sub-course.sub-course-sel{border-color:var(--accent);background:var(--accent-l2)}.sub-course.owned{cursor:default;opacity:.6}.sc-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.sc-name{color:var(--ink);letter-spacing:-.01em;overflow-wrap:anywhere;font-size:14.5px;font-weight:700;line-height:1.3}.sub-course.sub-course-sel .sc-name{color:var(--accent)}.sc-price{font-family:var(--font-mono);color:var(--ink);font-size:14.5px;font-weight:700;line-height:1.2}.sc-price span{color:var(--ink-3);font-size:11px;font-weight:500}.sc-price .sc-was{color:var(--ink-3);margin-left:7px;font-size:12px;font-weight:500;text-decoration:line-through}.sc-radio{border:2px solid var(--line-3);border-radius:50%;flex-shrink:0;width:20px;height:20px;transition:border-color .18s,background .18s}.sub-course.sub-course-sel .sc-radio{border-color:var(--accent);background:radial-gradient(circle at center, var(--accent) 0 5px, transparent 5.5px)}.sc-owned{color:var(--ink-3);white-space:nowrap;flex-shrink:0;font-size:11.5px;font-weight:600}.sub-note{background:var(--accent-l2);border:1px solid var(--accent-l);color:var(--accent);border-radius:var(--r-sm);margin-top:14px;padding:10px 14px;font-size:12.5px;font-weight:500}.subscribe-modal .sub-foot{color:var(--ink-3);text-align:center;margin:12px 0 0;font-size:11.5px}.subscribe-modal .modal-actions{justify-content:stretch;gap:10px;display:flex}.subscribe-modal .modal-actions .btn-secondary{flex:none}.subscribe-modal .modal-actions .btn-primary{flex:1;width:auto;min-width:0}@media (width<=520px){.sub-course{gap:11px;padding:13px 14px}.sc-name{font-size:14px}.sc-price{font-size:13.5px}}.account-btn{background:var(--accent);color:#060f0a;width:34px;height:34px;font-family:var(--font-body);cursor:pointer;transition:background .2s var(--ease), transform .15s var(--ease);-webkit-user-select:none;user-select:none;border:none;border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid}.account-btn:hover{background:var(--accent-h);transform:scale(1.08)}.account-panel{z-index:9000;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-lg);width:280px;box-shadow:var(--shadow-lg);animation:panel-in .18s var(--ease);flex-direction:column;gap:8px;padding:20px;display:flex;position:fixed;top:60px;right:24px}@keyframes panel-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.account-panel-name{color:var(--ink);letter-spacing:-.01em;font-size:15px;font-weight:700}.account-panel-email{color:var(--ink-3);font-size:12.5px;font-family:var(--font-mono);word-break:break-all}.account-panel-divider{background:var(--line);height:1px;margin:6px 0}.account-panel-plan{background:var(--bg-3);border-radius:var(--r-sm);padding:12px 14px}.account-panel-plan.premium{background:var(--accent-l2);border:1px solid var(--accent-l)}.account-panel-plan-label{color:var(--ink);margin-bottom:4px;font-size:13px;font-weight:700}.account-panel-plan.premium .account-panel-plan-label{color:var(--accent)}.account-panel-plan-desc{color:var(--ink-3);font-size:12px;line-height:1.45}.account-panel-upgrade{background:var(--accent-l2);border:1px solid var(--accent-l);border-radius:var(--r-sm);width:100%;color:var(--accent);cursor:pointer;transition:background .15s var(--ease);font-size:13px;font-weight:700;font-family:var(--font-body);margin-top:4px;padding:9px 0}.account-panel-upgrade:hover{background:var(--accent-l)}.account-panel-logout{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-sm);width:100%;color:var(--err);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease);margin-top:4px;padding:9px 0;font-size:13px;font-weight:600}.account-panel-logout:hover{background:var(--err-bg);border-color:var(--err)}.account-btn{padding:0;overflow:hidden}.account-avatar{object-fit:cover;width:100%;height:100%;display:block}.account-panel{gap:3px;width:268px;padding:14px}.acct-hd{align-items:center;gap:11px;padding:4px 6px 8px;display:flex}.acct-hd-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px}.acct-hd-initial{background:var(--accent);color:#060f0a;border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:grid}html[data-theme=light] .acct-hd-initial{color:#fff}.acct-hd-txt{min-width:0}.acct-hd .account-panel-name{font-size:14.5px}.acct-hd .account-panel-email{font-size:11.5px}.acct-row{width:100%;color:var(--ink);font-family:var(--font-body);cursor:pointer;text-align:left;transition:background .13s var(--ease);background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;padding:10px;font-size:14px;font-weight:500;display:flex}.acct-row:hover{background:var(--bg-3)}.acct-row-ic{width:20px;height:20px;color:var(--ink-2);flex-shrink:0;place-items:center;display:grid}.acct-row-ic svg{width:19px;height:19px}.acct-row-label{flex:1;min-width:0}.acct-row-state{color:var(--ink-3);font-size:12px;font-family:var(--font-mono);letter-spacing:.02em}.acct-row-arrow{color:var(--ink-3);place-items:center;display:grid}.acct-row-arrow svg{width:16px;height:16px}.acct-row--danger,.acct-row--danger .acct-row-ic{color:var(--err)}.acct-row--danger:hover{background:var(--err-bg)}.subs-status{max-width:460px}.subs-list{flex-direction:column;gap:14px;display:flex}.subs-item{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}.subs-item-hd{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.subs-item-name{color:var(--ink);min-width:0;font-size:14px;font-weight:700}.subs-item-code{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;flex-shrink:0;font-size:10.5px}.subs-bar{background:var(--line-2);border-radius:4px;height:7px;overflow:hidden}.subs-bar-fill{background:var(--accent);height:100%;transition:width .4s var(--ease);border-radius:4px}.subs-bar-fill.low{background:var(--err)}.subs-item-foot{color:var(--ink-3);margin-top:8px;font-size:12px}.subs-item-foot.low{color:var(--err)}#mainView.dashboard-view{max-width:920px;padding:48px 24px 96px}.dash-greeting{margin-bottom:36px}.dash-hello{letter-spacing:-.035em;color:var(--ink);margin-bottom:8px;font-size:clamp(28px,4vw,38px);font-weight:800;line-height:1.15}.dash-sub{color:var(--ink-2);font-size:15px;line-height:1.55}.dash-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:36px;display:grid}.dash-stat-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px}.dash-stat-num{letter-spacing:-.035em;color:var(--ink);margin-bottom:6px;font-size:28px;font-weight:800;line-height:1}.dash-stat-label{color:var(--ink-3);font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.dash-plan-card{cursor:default;justify-content:flex-start}.dash-plan-name{font-family:var(--font-body);letter-spacing:-.01em;color:var(--ink);margin-bottom:5px;font-size:13.5px;font-weight:700;line-height:1.25}.dash-plan-desc{color:var(--ink-3);font-size:12px;line-height:1.45}.dash-plan-upgrade{font-family:var(--font-body);color:var(--accent);letter-spacing:.01em;cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;margin-top:12px;padding:0;font-size:12px;font-weight:700}.dash-plan-upgrade:hover{color:var(--accent-h)}.dash-plan-premium{background:var(--accent-l2);border-color:var(--accent-l)}.dash-plan-premium .dash-plan-name{color:var(--accent)}.dash-continue-section{margin-bottom:36px}.dash-section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:12px;font-size:11px;font-weight:700}.dash-continue-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;transition:border-color .2s var(--ease), transform .18s var(--ease);align-items:center;gap:16px;padding:20px 22px;display:flex}.dash-continue-card:hover{border-color:var(--line-3);transform:translateY(-2px)}.dash-continue-icon{border-radius:var(--r-md);flex-shrink:0;place-items:center;width:48px;height:48px;font-size:22px;display:grid}.dash-continue-body{flex:1;min-width:0}.dash-continue-course{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:10.5px;font-weight:700}.dash-continue-lesson{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:15px;font-weight:600;overflow:hidden}.dash-continue-meta{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.dash-continue-btn{border-radius:var(--r-sm);color:#060f0a;cursor:pointer;transition:filter .15s var(--ease);border:none;flex-shrink:0;padding:9px 18px;font-size:13px;font-weight:700}.dash-continue-btn:hover{filter:brightness(1.1)}.dash-section-title+.course-select-grid{margin-top:0}.course-access-badge{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;margin-bottom:14px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-block}.course-access-badge.full{background:var(--accent-l2);color:var(--accent);border:1px solid var(--accent-l)}.course-access-badge.free{background:var(--bg-3);color:var(--ink-3);border:1px solid var(--line)}.course-access-badge.expired{color:#ff6b6b;background:#ff3b3b18;border:1px solid #ff3b3b44}.course-access-badge.expiring{color:#f59e0b;background:#f59e0b18;border:1px solid #f59e0b44}.course-expiring-note{color:#f59e0b;margin-bottom:4px;font-size:12px;line-height:1.5}.course-expired-note{color:#ff6b6b;margin-bottom:4px;font-size:12px;line-height:1.5}@media (width<=640px){.topbar{gap:10px;padding:4px 14px}.brand-logo-img{height:44px}.stat-pill .pill-word{display:none}#mainView.dashboard-view{padding:28px 16px 80px}.dash-hello{font-size:26px}.dash-stats{grid-template-columns:1fr 1fr}.dash-stats .dash-plan-card{grid-column:1/-1}.dash-stat-num{font-size:22px}.dash-continue-card{flex-direction:column;align-items:flex-start;gap:12px}.dash-continue-btn{text-align:center;width:100%;padding:11px 0}.dash-continue-lesson,.dash-continue-meta{white-space:normal;text-overflow:unset;overflow:visible}.course-select-grid{grid-template-columns:1fr}.account-panel{width:auto;left:12px;right:12px}#mainView{padding:28px 16px 80px}.unit-card{gap:12px;padding:14px 16px}.unit-icon{width:40px;height:40px;font-size:18px}.unit-title{font-size:15px}.unit-desc{margin-bottom:8px;font-size:12.5px}.home-header h1.display{font-size:30px}.home-header .subtitle{font-size:14px}.home-header{margin-bottom:36px}.card{padding:22px 18px}.card .card-prose{font-size:14.5px}.option-list{gap:8px}.option-btn{padding:12px 14px;font-size:14px}.lesson-footer{padding:14px 16px}.btn-next{justify-content:center;width:100%}.stats-grid{grid-template-columns:1fr 1fr}.back-btn{margin-bottom:20px;padding:8px 14px;font-size:13px}}#adm-root{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body)}.adm-page{max-width:980px;margin:0 auto;padding:28px 28px 80px}.adm-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-bottom:36px;padding-bottom:22px;display:flex}.adm-header-brand{align-items:center;gap:12px;display:flex}.adm-logo{width:auto;height:32px;display:block}.adm-logo--dark{display:block}.adm-logo--light,html[data-theme=light] .adm-logo--dark{display:none}html[data-theme=light] .adm-logo--light{display:block}.adm-header-badge{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;background:var(--accent-l);color:var(--accent);border:1px solid var(--accent-l2,#0a3320);border-radius:var(--r-xs);padding:3px 9px;font-size:10px;font-weight:700}html[data-theme=light] .adm-header-badge{background:var(--accent-l);color:var(--accent);border-color:#0000}.adm-header-right{align-items:center;gap:10px;display:flex}.adm-header-date{color:var(--ink-2);text-transform:capitalize;font-size:13px}.adm-icon-btn{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);width:32px;height:32px;color:var(--ink-2);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);justify-content:center;align-items:center;display:flex}.adm-icon-btn:hover{background:var(--bg-3);color:var(--ink)}.adm-btn-ghost{font-family:var(--font-body);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);cursor:pointer;transition:background .15s var(--ease);white-space:nowrap;padding:7px 14px;font-size:13px;font-weight:500}.adm-btn-ghost:hover{background:var(--bg-3)}.adm-kpi-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px;display:grid}.adm-kpi{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);align-items:flex-start;gap:13px;padding:18px 16px;display:flex}.adm-kpi:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.adm-kpi-icon{border-radius:var(--r-sm);background:color-mix(in srgb, var(--kc,var(--accent)) 14%, transparent);width:36px;height:36px;color:var(--kc,var(--accent));flex-shrink:0;justify-content:center;align-items:center;display:flex}.adm-kpi-value{letter-spacing:-1px;color:var(--ink);margin:0 0 4px;font-size:30px;font-weight:800;line-height:1}.adm-kpi-title{color:var(--ink-2);margin:0 0 2px;font-size:13px;font-weight:600}.adm-kpi-sub{color:var(--ink-3);margin:0;font-size:11px}.adm-row2{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.adm-stat2{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px}.adm-stat2--hl{border-color:var(--accent-l)}.adm-stat2-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin:0 0 6px;font-size:11px;font-weight:700}.adm-stat2-value{letter-spacing:-.5px;color:var(--ink);margin:0;font-size:26px;font-weight:800}.adm-stat2--hl .adm-stat2-value{color:var(--accent)}.adm-panels{grid-template-columns:1fr 1fr;gap:12px;display:grid}.adm-panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 20px}.adm-panel-title{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin:0 0 18px;font-size:11px;font-weight:700}.adm-plan-layout{align-items:center;gap:18px;display:flex}.adm-donut-wrap{flex-shrink:0}.adm-donut{display:block;overflow:visible}.adm-donut-n{fill:var(--ink);font-size:22px;font-weight:800;font-family:var(--font-body)}.adm-donut-label{fill:var(--ink-3);font-size:11px;font-family:var(--font-body)}.adm-plan-legend{flex-direction:column;flex:1;gap:10px;display:flex}.adm-plan-row{grid-template-columns:10px 52px 1fr 32px 28px;align-items:center;gap:8px;display:grid}.adm-plan-dot{border-radius:3px;width:10px;height:10px}.adm-plan-name{color:var(--ink-2);font-size:12px;font-weight:600}.adm-plan-pct{color:var(--ink-3);text-align:right;font-size:11px}.adm-plan-n{color:var(--ink);text-align:right;font-size:12px;font-weight:700}.adm-bar-track{background:var(--bg-3);border-radius:99px;height:6px;overflow:hidden}.adm-bar-track--lg{height:10px}.adm-bar-fill{height:100%;transition:width .55s var(--ease);border-radius:99px}.adm-course-list{flex-direction:column;gap:16px;display:flex}.adm-course-row{grid-template-columns:100px 1fr 34px 38px;align-items:center;gap:10px;display:grid}.adm-course-name{color:var(--ink);font-size:13px;font-weight:700}.adm-course-n{color:var(--ink);text-align:right;font-size:13px;font-weight:800}.adm-course-pct{color:var(--ink-3);text-align:right;font-size:12px}.adm-course-note{border-top:1px solid var(--line);color:var(--ink-3);margin-top:18px;padding-top:14px;font-size:12px}.adm-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:36px 0 16px;font-size:13px;font-weight:600}.adm-eng-notas{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:16px;padding-top:14px;display:flex}.adm-eng-nota-item{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;display:flex}.adm-eng-nota-item strong{color:var(--text)}.adm-eng-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.adm-bucket-list{flex-direction:column;gap:10px;display:flex}.adm-bucket-row{grid-template-columns:90px 1fr 36px 40px;align-items:center;gap:10px;display:grid}.adm-bucket-label{color:var(--ink-2);white-space:nowrap;font-size:12px}.adm-bucket-n{text-align:right;color:var(--text);font-size:13px;font-weight:600}.adm-bucket-pct{color:var(--ink-3);text-align:right;font-size:11px}.adm-center{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:70vh;padding:40px;display:flex}.adm-spinner{border:3px solid var(--bg-3);border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;animation:.65s linear infinite adm-spin}@keyframes adm-spin{to{transform:rotate(360deg)}}.adm-muted{color:var(--ink-2);margin:0;font-size:14px}.adm-error-msg{color:var(--err);margin:0;font-size:15px}@media (width<=720px){.adm-kpi-grid{grid-template-columns:repeat(2,1fr)}.adm-panels{grid-template-columns:1fr}.adm-plan-layout{flex-direction:column;align-items:flex-start}}@media (width<=480px){.adm-page{padding:16px 16px 60px}.adm-kpi-grid,.adm-row2{gap:10px}.adm-kpi-value{font-size:24px}.adm-header-date{display:none}}.predict-run{flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px;display:flex}.predict-run-out{width:100%;margin-top:0}.predict-run-out:empty{display:none}.review-focus-note{color:var(--warn);align-items:center;gap:7px;margin-top:10px;font-size:13px;display:flex}.drill-intro{text-align:center;max-width:560px;margin:24px auto;padding:40px 32px}.drill-intro-icon{width:64px;height:64px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg-2));border:2px solid var(--accent);border-radius:50%;place-items:center;margin:0 auto 18px;display:grid}.drill-title{font-family:var(--font-body);letter-spacing:-.03em;margin-bottom:18px;font-size:26px;font-weight:700}.drill-rules{text-align:left;flex-direction:column;gap:10px;max-width:420px;margin:0 auto 18px;padding:0;list-style:none;display:flex}.drill-rules li{color:var(--ink-2);align-items:flex-start;gap:9px;font-size:14px;line-height:1.5;display:flex}.drill-rules li .pk-icon{color:var(--accent);margin-top:3px}.drill-best{font-family:var(--font-mono);color:var(--ink-2);margin-bottom:6px;font-size:12.5px}.drill-intro-actions{justify-content:center;gap:10px;margin-top:18px;display:flex}.drill-head{align-items:center;gap:14px;margin-bottom:24px;display:flex}.drill-count{font-family:var(--font-mono);color:var(--ink-2);min-width:44px;font-size:12px;font-weight:600}.drill-timerbar{background:var(--line);border-radius:999px;flex:1;height:6px;overflow:hidden}.drill-timerfill{background:var(--accent);border-radius:999px;width:100%;height:100%;transition:width .1s linear,background .3s}.drill-timerfill.urgent{background:var(--err)}.drill-streak{font-family:var(--font-mono);color:var(--ink-3);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-size:12.5px;font-weight:700;transition:color .2s,border-color .2s;display:inline-flex}.drill-streak.on-fire{color:var(--accent);border-color:var(--accent);background:var(--accent-l2)}.drill-results{text-align:center;padding:44px 28px}.drill-newbest{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent-l);background:var(--accent-l2);border-radius:999px;align-items:center;gap:7px;margin-bottom:16px;padding:5px 13px;font-size:12px;font-weight:700;display:inline-flex}.drill-stats{grid-template-columns:repeat(3,1fr);max-width:380px}.drill-misses{flex-direction:column;gap:12px;max-width:720px;margin:28px auto 0;display:flex}.drill-misses-title{letter-spacing:-.02em;margin-bottom:2px;font-size:16px;font-weight:700}.drill-miss{background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--err);border-radius:var(--r-md);padding:16px 18px}.drill-miss-q{margin-bottom:10px;font-size:14px}.drill-miss-timeout{font-family:var(--font-mono);color:var(--warn);align-items:center;gap:6px;margin-bottom:8px;font-size:11px;display:inline-flex}.drill-miss-ans{color:var(--ok);align-items:baseline;gap:8px;margin-bottom:8px;font-size:13.5px;font-weight:600;display:flex}.drill-miss-ans .pk-icon{flex-shrink:0;align-self:center}.drill-miss-exp{color:var(--ink-2);font-size:13px}.drill-node.is-done{border-color:var(--accent)}.pg-hero{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-xl);flex-wrap:wrap;align-items:center;gap:32px;margin-bottom:24px;padding:24px 28px;display:flex}.pg-nota-ring{flex-shrink:0;place-items:center;display:grid;position:relative}.pg-nota-ring svg{display:block}.pg-nota-center{flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:0}.pg-nota-num{font-family:var(--font-body);letter-spacing:-.03em;color:var(--ink);font-size:26px;font-weight:800;line-height:1}.pg-nota-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:9px;font-weight:600}.pg-hero-stats{flex-wrap:wrap;gap:36px;display:flex}.pg-stat{flex-direction:column;gap:4px;display:flex}.pg-stat-num{font-family:var(--font-body);letter-spacing:-.025em;color:var(--ink);align-items:center;gap:7px;font-size:24px;font-weight:700;line-height:1;display:inline-flex}.pg-flame{color:var(--ink-3);vertical-align:middle;display:inline-flex}.pg-flame.on{color:#35f28a}.pg-stat-label{color:var(--ink-3);font-size:12.5px}.pg-course-list{flex-direction:column;gap:10px;margin-bottom:28px;display:flex}.pg-course-row{background:var(--bg-2);border:1px solid color-mix(in srgb, var(--ccolor,var(--accent)) 18%, var(--line));border-radius:var(--r-lg);cursor:pointer;transition:border-color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:18px;padding:16px 20px;display:flex}.pg-course-row:hover{border-color:color-mix(in srgb, var(--ccolor,var(--accent)) 45%, var(--line));transform:translateY(-1px)}.pg-course-ring{flex-shrink:0;place-items:center;width:46px;height:46px;display:grid;position:relative}.pg-course-ring .unit-ring{width:100%;height:100%;position:absolute;inset:0}.pg-course-ring span{font-family:var(--font-mono);color:var(--ink-2);font-size:10px;font-weight:700;position:relative}.pg-course-body{flex:1;min-width:0}.pg-course-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:7px;display:flex}.pg-course-code{font-family:var(--font-mono);color:var(--ccolor,var(--accent));font-size:12px;font-weight:700}.pg-course-name{color:var(--ink);font-size:14.5px;font-weight:600}.pg-course-nota{font-family:var(--font-body);margin-left:auto;font-size:16px;font-weight:800}.pg-unit-dots{flex-wrap:wrap;gap:5px;margin-bottom:6px;display:flex}.pg-dot{border:1.5px solid var(--line-3);background:0 0;border-radius:50%;width:12px;height:12px}.pg-dot-partial{border-color:var(--ccolor,var(--accent));background:color-mix(in srgb, var(--ccolor,var(--accent)) 30%, transparent)}.pg-dot-full{border-color:var(--ccolor,var(--accent));background:var(--ccolor,var(--accent))}.pg-course-meta{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.pg-course-arrow{color:var(--ink-3);flex-shrink:0;font-size:17px}.pg-weak-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.pg-weak-item{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:16px;padding:13px 18px;display:flex}.pg-weak-nota{font-family:var(--font-body);letter-spacing:-.03em;min-width:42px;font-size:20px;font-weight:800}.pg-weak-body{flex:1;min-width:0}.pg-weak-title{color:var(--ink);margin-bottom:2px;font-size:14px;font-weight:600}.pg-weak-meta{color:var(--ink-3);font-size:12px}.pg-weak-cta{flex-shrink:0;padding:7px 14px;font-size:12.5px}.pg-lapse-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.pg-lapse-label{color:var(--ink-3);font-size:12.5px}.pg-lapse-chip{color:var(--ink-2);background:var(--bg-2);border:1px solid color-mix(in srgb, var(--ccolor,var(--warn)) 35%, var(--line));cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:6px 13px;font-size:12.5px;font-weight:600;transition:border-color .15s;display:inline-flex}.pg-lapse-chip:hover{border-color:var(--ccolor,var(--warn));color:var(--ink)}.pg-lapse-chip b{color:var(--warn);font-weight:700}@media (width<=640px){.pg-hero{gap:20px;padding:20px}.pg-hero-stats{gap:22px}.pg-course-nota{margin-left:0}}.course-art{border:1px solid var(--line);background:var(--bg);border-radius:12px;margin-bottom:14px;position:relative;overflow:hidden}.course-art-svg{width:100%;height:auto;display:block}.course-art-chip{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ccolor,var(--accent));border:1px solid color-mix(in srgb, var(--ccolor,var(--accent)) 55%, transparent);background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;position:absolute;top:10px;left:10px}.course-ring-overlay{background:color-mix(in srgb, var(--bg) 72%, transparent);border-radius:50%;margin-left:0;position:absolute;top:9px;right:9px}.course-tag-line{margin:-4px 0 10px}.ca-draw{stroke-dasharray:420;stroke-dashoffset:0}.course-card:hover .ca-draw{animation:1.8s cubic-bezier(.3,0,.25,1) caDraw}@keyframes caDraw{0%{stroke-dashoffset:420px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.course-card:hover .ca-draw{animation:none}}.course-route{max-width:760px;margin:8px auto 34px}.course-route .route-seg{margin:0 0 6px}.route-station{border:1px solid var(--line);border-left:3px solid var(--ucolor);background:linear-gradient(135deg, color-mix(in srgb, var(--ucolor) 9%, var(--bg-2)), var(--bg-2) 62%);border-radius:16px;align-items:center;margin:18px 0 10px;padding:14px 18px;display:flex}.course-route>.route-station:first-child{margin-top:0}.rs-info{text-align:center;flex:1;min-width:0}.rs-title{color:var(--ink);font-size:16.5px;font-weight:700}.route-station.soon{opacity:.68;border-left-style:dashed}.route-station.extras{margin-top:26px}@media (width<=560px){.route-station{margin:14px 0 8px;padding:12px 13px}.rs-title{font-size:15px}}.route-graph{max-width:840px;margin:2px auto 8px}.route-graph svg{width:100%;height:auto;display:block;overflow:visible}.route-graph text{font-family:var(--font-body)}.route-graph .um-num{font-family:var(--font-mono)}.um-node{cursor:pointer;opacity:0;transform-box:fill-box;transform-origin:50%;outline:none;animation:.5s cubic-bezier(.2,.9,.3,1.2) forwards umPop}@keyframes umPop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.um-hex{transform-box:fill-box;transform-origin:50%;transition:transform .22s var(--ease), stroke .22s}.um-node:hover .um-hex,.um-node:focus-visible .um-hex{stroke:var(--um-c);transform:scale(1.07)}.um-edge-done{stroke-dasharray:1;stroke-dashoffset:1px;animation:umDraw .7s var(--ease) forwards}@keyframes umDraw{to{stroke-dashoffset:0}}.um-pulse{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite umPulse}@keyframes umPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:.2;transform:scale(1.09)}}.um-tag{animation:2.6s ease-in-out infinite umFloat}@keyframes umFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.um-node{opacity:1;animation:none}.um-edge-done{stroke-dashoffset:0;animation:none}.um-pulse,.um-tag{animation:none}.um-hex{transition:none}}html body:has(.landing){--bg:#111418;--bg-2:#1a1e22;--bg-3:#222629;--bg-code:#1e2226;--topbar-bg:#111418e0;--ink:#f5f7f8;--ink-2:#9aa3ac;--ink-3:#596068;--ink-4:#383f47;--line:#2a2f35;--line-2:#363b42;--line-3:#434a52;--accent:#35f28a;--accent-h:#5fff9e;--accent-l:#0a3320;--accent-l2:#071e14;--ok:#35f28a;--ok-bg:#071e14;--err:#ff4d4f;--err-bg:#200a0a;--warn:#ffb340;--warn-bg:#1f1200;--info:#5b8df6;--info-bg:#0a1530;--btn-primary-bg:#35f28a;--btn-primary-txt:#060f0a;--btn-primary-hover:#5fff9e;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #00000080, 0 4px 12px -4px #0006;--shadow-lg:0 4px 12px -4px #00000080, 0 20px 40px -16px #00000080;background:var(--bg)}.landing{font-family:var(--font-body);color:var(--ink);line-height:1.55;overflow-x:hidden}@property --gn-pos{syntax:"<number>";inherits:true;initial-value:0}@property --gn-radial-pos{syntax:"<number>";inherits:true;initial-value:0}@property --gn-width{syntax:"<number>";inherits:true;initial-value:100}@property --gn-opacity{syntax:"<number>";inherits:true;initial-value:20}@property --gn-shadow{syntax:"<number>";inherits:true;initial-value:15}@property --gn-scale{syntax:"<number>";inherits:true;initial-value:.85}@property --gn-li-opacity{syntax:"<number>";inherits:true;initial-value:0}.glow-nav{--gn-easing:cubic-bezier(.41, -.09, .55, 1.09);--gn-timing:.3s;transition:--gn-pos var(--gn-timing) var(--gn-easing) .2s, --gn-radial-pos var(--gn-timing) var(--gn-easing) .2s, --gn-width var(--gn-timing) var(--gn-easing) .2s;background:var(--bg);border-radius:999px;position:relative}.glow-nav:before{content:"";width:calc(var(--gn-width) * 1px - 8px);background:rgba(53, 242, 138, calc(var(--gn-shadow) * .008));filter:blur(18px);height:100%;transform:translateX(calc(var(--gn-pos) * 1px)) scale(1.1);pointer-events:none;border-radius:999px;display:block;position:absolute;top:0;left:0}.glow-nav ul{background-image:radial-gradient(ellipse 120px 70px at calc(var(--gn-radial-pos) * 1px) bottom, #35f28a8c 0%, #35f28a14 100%);border-radius:999px;height:52px;margin:0;padding:0;list-style:none;display:flex;position:relative}.glow-nav ul:before{content:"";background:var(--bg);border-radius:999px;width:calc(100% - 2px);height:calc(100% - 2px);position:absolute;top:1px;left:1px}.glow-nav ul:after{content:"";z-index:1;width:calc(var(--gn-width) * 1px - 12px);background:linear-gradient(to bottom, rgba(53, 242, 138, calc(var(--gn-opacity) * .008)), #35f28a0a);height:calc(100% - 12px);box-shadow:inset 0 -6px calc(var(--gn-shadow) * 1px) rgba(53, 242, 138, calc(var(--gn-opacity) * .01));transform:translateX(calc(var(--gn-pos) * 1px));transition:--gn-opacity var(--gn-timing) var(--gn-easing) 80ms, --gn-shadow var(--gn-timing) var(--gn-easing) 80ms, border-radius var(--gn-timing) var(--gn-easing) 80ms;pointer-events:none;border-radius:100px 12px 12px 100px;position:absolute;top:6px;left:6px}.glow-nav ul:has(li.gn-active:first-of-type):after{border-radius:100px 12px 12px 100px}.glow-nav ul:has(li.gn-active:last-of-type):after{border-radius:12px 100px 100px 12px}.glow-nav ul:has(li.gn-active:not(:first-of-type):not(:last-of-type)):after{border-radius:100px}.glow-nav ul li{width:100%;height:100%;transform-style:preserve-3d;padding:0;position:relative}.glow-nav ul li:not(.gn-active):hover{--gn-li-opacity:.25}.glow-nav ul li:before{content:"";z-index:1;pointer-events:none;opacity:var(--gn-li-opacity);transform:scale(var(--gn-scale)) rotateY(calc(var(--gn-tilt-y,0) * 3 * -1deg)) rotateX(calc(var(--gn-tilt-x,0) * 3 * 1deg)) translateZ(15px);transition:--gn-li-opacity var(--gn-timing) var(--gn-easing), --gn-scale calc(var(--gn-timing) / 2) var(--gn-easing) 40ms;background:linear-gradient(#35f28a0a,#35f28a26);border-radius:8px;position:absolute;inset:0}.glow-nav ul li:first-of-type:before{border-radius:100px 12px 12px 100px}.glow-nav ul li:last-of-type:before{border-radius:12px 100px 100px 12px}.glow-nav ul li a{width:100%;height:100%;color:var(--ink-3);z-index:10;white-space:nowrap;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s;display:flex;position:relative}.glow-nav ul li.gn-active a{color:var(--accent);font-weight:600}@media (width<=880px){.glow-nav{display:none}}.lp-nav{z-index:200;background:var(--topbar-bg);-webkit-backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid var(--line);transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;right:0}.lp-nav--hidden{transform:translateY(-100%)}.lp-nav-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1280px;margin:0 auto;padding:16px 32px;display:flex}.lp-brand{align-items:center;display:flex}.landing .lp-brand .brand-logo-img{width:auto;height:128px}.landing .lp-footer-brand .brand-logo-img{width:auto;height:76px}.lp-nav-cta{flex-shrink:0;align-items:center;gap:8px;display:flex}.lp-hamburger{cursor:pointer;width:40px;height:40px;color:var(--text);z-index:1;background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;padding:8px;display:none;position:relative}.lp-hamburger span{transform-origin:50%;background:currentColor;border-radius:2px;width:22px;height:2px;transition:transform .22s,opacity .22s;display:block}.lp-hamburger.open span:first-child{transform:translateY(7px)rotate(45deg)}.lp-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.lp-hamburger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.lp-mobile-menu{background:var(--topbar-bg);-webkit-backdrop-filter:saturate(180%)blur(16px);border-top:1px solid var(--line);padding:4px 0 12px;display:none}@media (width<=760px){.lp-mobile-menu.open{display:block}}.lp-mobile-menu ul{margin:0;padding:0;list-style:none}.lp-mobile-menu li a{color:var(--text);letter-spacing:-.01em;padding:13px 24px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s;display:block}.lp-mobile-menu li a:hover{background:var(--surface-2)}@media (width<=760px){.lp-hamburger{display:flex}.lp-nav-inner{gap:0;padding:10px 16px;position:relative}.lp-brand{position:absolute;left:50%;transform:translate(-50%)}.landing .lp-brand .brand-logo-img{height:62px}.lp-nav-center{display:none}.lp-nav-cta{margin-left:auto}}.lp-btn-primary,.lp-btn-secondary,.lp-btn-ghost{font-family:var(--font-body);cursor:pointer;transition:all .2s var(--ease);border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.lp-btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-txt);font-weight:700}.lp-btn-primary:hover{background:var(--btn-primary-hover);transform:translateY(-1px)}.lp-btn-secondary{background:var(--bg-2);color:var(--ink);border:1px solid var(--line-2)}.lp-btn-secondary:hover{border-color:var(--ink)}.lp-btn-ghost{color:var(--ink-2);background:0 0}.lp-btn-ghost:hover{color:var(--ink);background:var(--bg-3)}.lp-btn-full{width:100%;padding:12px 18px}.lp-hero-inner{text-align:center;z-index:1;max-width:880px;margin:0 auto;position:relative}.lp-badge{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-2);animation:lpFadeUp .6s var(--ease) both;border-radius:999px;align-items:center;gap:8px;margin-bottom:32px;padding:6px 14px;font-size:12.5px;font-weight:500;display:inline-flex}.lp-badge-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s infinite dotPulse}@keyframes dotPulse{0%,to{opacity:1;box-shadow:0 0 #35f28a66}50%{opacity:1;box-shadow:0 0 0 8px #35f28a00}}.lp-hero-title{font-family:var(--font-body);letter-spacing:-.045em;animation:lpFadeUp .7s .1s var(--ease) both;margin-bottom:24px;font-size:clamp(40px,7vw,76px);font-weight:800;line-height:1.02}.lp-grad{background:linear-gradient(135deg,#35f28a 0%,#5fff9e 50%,#35f28a 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.lp-typing{color:var(--ink);display:inline-block;position:relative}.lp-typing-ghost{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.lp-typing-text{white-space:nowrap;position:absolute;top:0;left:0}.lp-caret{color:var(--accent);z-index:1;margin-left:2px;font-weight:400;animation:1s infinite caretBlink;display:inline-block;position:relative}@keyframes caretBlink{0%,49%{opacity:1}50%,to{opacity:0}}.lp-hero-sub{color:var(--ink-2);max-width:580px;animation:lpFadeUp .7s .2s var(--ease) both;margin:0 auto 36px;font-size:18px;line-height:1.55}.lp-hero-sub strong{color:var(--ink);font-weight:600}.lp-hero-cta{animation:lpFadeUp .7s .3s var(--ease) both;flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:56px;display:flex}.lp-hero-stats{color:var(--ink-3);animation:lpFadeUp .7s .4s var(--ease) both;flex-wrap:wrap;justify-content:center;gap:36px;font-size:13.5px;display:flex}.lp-hero-stats strong{color:var(--ink);margin-right:4px;font-weight:700}@keyframes lpFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.lp-mockup-wrap{max-width:720px;animation:lpFadeUp .8s .5s var(--ease) both;margin:80px auto 0;position:relative}.lp-mockup{background:var(--bg-2);border:1px solid var(--line);transition:transform .4s var(--ease);border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000a,0 10px 40px -10px #00000014,0 30px 80px -20px #0000001a}.lp-mockup:hover{transform:translateY(-4px)}.lp-mockup-topbar{background:var(--bg-3);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 16px;display:flex}.lp-mockup-dots{gap:6px;display:flex}.lp-mockup-dots span{background:var(--line-3);border-radius:50%;width:11px;height:11px}.lp-mockup-dots span:first-child{background:#ff5f57}.lp-mockup-dots span:nth-child(2){background:#febc2e}.lp-mockup-dots span:nth-child(3){background:#28c840}.lp-mockup-tab{font-family:var(--font-mono);color:var(--ink-3);background:var(--bg-2);border-radius:6px;padding:4px 10px;font-size:11.5px}.lp-mockup-content{text-align:left;padding:28px 32px}.lp-mockup-question{max-width:100%}.lp-mockup-q-label{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;margin-bottom:8px;font-size:10.5px;font-weight:600}.lp-mockup-code{background:var(--bg-code);border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink);border-radius:10px;margin-bottom:14px;padding:14px 18px;font-size:12.5px;line-height:1.65}.lp-mockup-code .hl-kw{color:#c792ea;font-weight:600}.lp-mockup-code .hl-fn{color:#35f28a;font-weight:500}.lp-mockup-code .hl-str{color:#35f28a}.lp-mockup-opt{background:var(--bg-2);border:1px solid var(--line);cursor:pointer;transition:all .2s var(--ease);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;font-size:13.5px;display:flex}.lp-mockup-opt:hover{border-color:var(--ink-2)}.lp-mockup-opt code{font-family:var(--font-mono);font-size:12.5px}.lp-mockup-pill{background:var(--bg-3);width:22px;height:22px;font-family:var(--font-mono);color:var(--ink-2);border-radius:50%;place-items:center;font-size:10.5px;font-weight:700;display:grid}.lp-mockup-opt.mock-correct{border-color:var(--ok);background:var(--ok-bg);transform:translate(3px)}.lp-mockup-opt.mock-correct .lp-mockup-pill{background:var(--ok);color:#fff}.lp-mockup-opt.mock-wrong{border-color:var(--err);background:var(--err-bg);animation:mockShake .4s var(--ease)}.lp-mockup-opt.mock-wrong .lp-mockup-pill{background:var(--err);color:#fff}@keyframes mockShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.lp-float{background:var(--bg-2);border:1px solid var(--line);z-index:2;border-radius:14px;align-items:center;gap:10px;padding:12px 16px;animation:4s ease-in-out infinite lpFloat;display:flex;position:absolute;box-shadow:0 10px 30px -10px #0000001a}.lp-float-icon{background:var(--accent-l);width:36px;height:36px;color:var(--accent);border-radius:10px;place-items:center;font-size:14px;font-weight:700;display:grid}.lp-float-1{animation-delay:0s;top:-20px;left:-40px}.lp-float-2{animation-delay:1.3s;top:50%;right:-50px}.lp-float-3{animation-delay:2.6s;bottom:-10px;left:30%}@keyframes lpFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (width<=880px){.lp-float{display:none}.lp-mockup-content{padding:18px 16px}}.lp-trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);padding:32px}.lp-trust-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:0 auto;display:flex}.lp-trust-text{color:var(--ink-3);font-size:13px;font-style:italic}.lp-trust-marks{font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.04em;gap:14px;font-size:12px;font-weight:600;display:flex}.lp-trust-sep{color:var(--ink-4)}.lp-section-inner{max-width:1140px;margin:0 auto}.lp-section-head{text-align:center;max-width:720px;margin:0 auto 64px}.lp-eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;font-size:11px;font-weight:700;display:inline-block}.lp-section-title{font-family:var(--font-body);letter-spacing:-.035em;color:var(--ink);margin-bottom:16px;font-size:clamp(30px,4.5vw,44px);font-weight:700;line-height:1.1}.lp-section-sub{color:var(--ink-2);max-width:580px;margin:0 auto;font-size:17px;line-height:1.55}.lp-features-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=880px){.lp-features-grid{grid-template-columns:1fr}}.lp-feature{background:var(--bg-2);border:1px solid var(--line);transition:all .3s var(--ease);border-radius:16px;padding:28px 26px}.lp-feature:hover{border-color:var(--ink-2);transform:translateY(-3px);box-shadow:0 12px 32px -12px #0000001f}.lp-feature-icon{border-radius:12px;place-items:center;width:44px;height:44px;margin-bottom:18px;font-size:18px;font-weight:700;display:grid}.lp-feature h3{letter-spacing:-.025em;margin-bottom:8px;font-size:17px;font-weight:700}.lp-feature p{color:var(--ink-2);font-size:14px;line-height:1.55}.lp-steps{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (width<=880px){.lp-steps{grid-template-columns:1fr}}.lp-step{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;padding:32px 28px;position:relative}.lp-step-num{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;margin-bottom:16px;font-size:11.5px;font-weight:700}.lp-step h3{letter-spacing:-.025em;margin-bottom:10px;font-size:19px;font-weight:700}.lp-step p{color:var(--ink-2);margin-bottom:20px;font-size:14.5px;line-height:1.55}.lp-step-visual{background:var(--bg-3);border:1px solid var(--line);border-radius:12px;place-items:center;min-height:110px;margin-top:20px;padding:18px;display:grid}.lp-step-card-mock{align-items:center;gap:12px;width:100%;display:flex}.lp-step-card-icon{color:#dc2626;background:#fee2e2;border-radius:10px;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.lp-step-card-num{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;font-size:9.5px;font-weight:600}.lp-step-card-title{margin:2px 0 6px;font-size:14px;font-weight:600}.lp-step-card-bar{background:var(--line);border-radius:999px;height:3px;overflow:hidden}.lp-step-card-bar div{background:#dc2626;border-radius:999px;width:35%;height:100%}.lp-step-card-types{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.lp-step-card-types span{font-family:var(--font-mono);background:var(--bg-2);border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:4px 9px;font-size:10.5px;font-weight:500}.lp-step-grade{color:var(--ok);letter-spacing:-.04em;font-size:56px;font-weight:800;line-height:1}.lp-step-grade-label{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-top:6px;font-size:10.5px;font-weight:600}.lp-stats-row{background:var(--bg-2);border:1px solid var(--line);border-radius:20px;grid-template-columns:repeat(3,1fr);gap:16px;padding:48px 32px;display:grid}@media (width<=760px){.lp-stats-row{grid-template-columns:repeat(2,1fr);gap:32px}}.lp-stat-big{text-align:center}.lp-stat-num{font-family:var(--font-body);color:var(--ink);letter-spacing:-.04em;margin-bottom:8px;font-size:56px;font-weight:800;line-height:1}.lp-stat-label{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}@media (width<=880px){.lp-testimonials{grid-template-columns:1fr}}.lp-testimonial{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:28px 26px}.lp-testimonial p{color:var(--ink);margin-bottom:20px;font-size:15px;font-style:italic;line-height:1.55}.lp-testi-author{align-items:center;gap:10px;display:flex}.lp-testi-avatar{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:grid}.lp-testi-role{color:var(--ink-3);font-size:12px}.lp-pricing{grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin:0 auto;display:grid}@media (width<=760px){.lp-pricing{grid-template-columns:1fr}}.lp-price-card{background:var(--bg-2);border:1px solid var(--line);transition:all .3s var(--ease);border-radius:18px;padding:32px 28px;position:relative}.lp-price-card:hover{transform:translateY(-2px)}.lp-price-featured{border-color:var(--ink);border-width:2px;box-shadow:0 12px 32px -12px #00000026}.lp-price-tag{background:var(--ink);color:var(--bg);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:700;position:absolute;top:-12px;left:28px}.lp-price-name{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:11.5px;font-weight:600}.lp-price-amount{letter-spacing:-.04em;color:var(--ink);font-size:44px;font-weight:800;line-height:1}.lp-price-amount span{color:var(--ink-3);margin-left:4px;font-size:17px;font-weight:500}.lp-price-sub{color:var(--ink-3);margin:8px 0 24px;font-size:13px}.lp-price-features{margin:0 0 28px;padding:0;list-style:none}.lp-price-features li{color:var(--ink);border-bottom:1px solid var(--line);padding:7px 0;font-size:14px}.lp-price-features li:last-child{border-bottom:none}.lp-cta-final{text-align:center;background:var(--bg);padding:120px 32px;position:relative;overflow:hidden}.lp-cta-final:before{content:"";pointer-events:none;background:radial-gradient(circle,#35f28a1a,#0000 70%);border-radius:50%;width:900px;height:900px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lp-cta-inner{z-index:1;max-width:680px;margin:0 auto;position:relative}.lp-cta-final h2{letter-spacing:-.04em;margin-bottom:16px;font-size:clamp(32px,5vw,52px);font-weight:800;line-height:1.05}.lp-cta-final p{color:var(--ink-2);margin-bottom:32px;font-size:17px}.lp-footer{border-top:1px solid var(--line);background:var(--bg);padding:32px}.lp-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:0 auto;display:flex}.lp-footer-brand{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;display:flex}.lp-footer-links{gap:20px;display:flex}.lp-footer-links a{color:var(--ink-2);transition:color .2s var(--ease);font-size:13px;text-decoration:none}.lp-footer-links a:hover{color:var(--ink)}.reveal.revealed{opacity:1;transform:translateY(0)}.legal-page{font-family:var(--font-body);color:var(--ink);background:var(--bg);min-height:100vh;line-height:1.6}.legal-container{max-width:720px;margin:0 auto;padding:64px 32px 96px}.legal-page h1{font-family:var(--font-body);letter-spacing:-.035em;color:var(--ink);margin-bottom:12px;font-size:clamp(32px,5vw,44px);font-weight:800}.legal-updated{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.02em;margin-bottom:40px;font-size:12.5px}.legal-page h2{font-family:var(--font-body);letter-spacing:-.02em;color:var(--ink);margin-top:40px;margin-bottom:12px;font-size:19px;font-weight:700}.legal-page p{color:var(--ink);margin-bottom:16px;font-size:15.5px}.legal-page ul{margin:0 0 16px;padding-left:24px}.legal-page li{color:var(--ink);margin-bottom:6px;font-size:15.5px}.legal-page a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.legal-page a:hover{color:var(--ink)}.legal-page code{font-family:var(--font-mono);background:var(--bg-3);border-radius:4px;padding:1px 6px;font-size:13.5px}.legal-page strong{color:var(--ink);font-weight:700}.legal-footer{border-top:1px solid var(--line);margin-top:56px;padding-top:24px;font-size:14px}.lp-section{padding:100px 0}.lp-slide>.lp-section:first-child{padding-top:180px}.lp-section-alt{background:var(--bg-2)}.lp-section-inner{max-width:1100px;margin:0 auto;padding:0 24px}.lp-section-head{text-align:center;margin-bottom:56px}.lp-section-title{letter-spacing:-.03em;margin:0 0 16px;font-size:clamp(28px,4.5vw,46px);font-weight:800;line-height:1.1}.lp-section-sub{color:var(--ink-2);max-width:560px;margin:0 auto;font-size:17px}.lp-eyebrow{font-size:11px;font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);text-transform:uppercase;margin-bottom:12px}.reveal{opacity:0;transition:opacity .55s,transform .55s;transform:translateY(22px)}.revealed{opacity:1;transform:none}.lp-hero{padding:104px 0 40px;position:relative;overflow:hidden}.lp-hero-bg{pointer-events:none;background:radial-gradient(70% 60% at 50% -10%,#35f28a14 0%,#0000 70%);position:absolute;inset:0}.lp-hero-float{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.lp-af{opacity:.26;animation:lp-float var(--dur,12s) ease-in-out var(--del,0s) infinite;will-change:transform;position:absolute}.lp-af .acad-fig-svg{width:100%;height:auto;display:block}.lp-af-1{width:150px;top:8%;left:6%}.lp-af-2{opacity:.2;width:120px;top:6%;left:28%}.lp-af-3{opacity:.14;width:128px;top:13%;left:47%}.lp-af-4{opacity:.2;width:122px;top:7%;right:25%}.lp-af-5{width:148px;top:9%;right:6%}.lp-af-6{width:140px;top:40%;left:3%}.lp-af-7{opacity:.12;width:106px;top:34%;left:27%}.lp-af-8{opacity:.11;width:110px;top:45%;left:49%}.lp-af-9{opacity:.12;width:108px;top:33%;right:27%}.lp-af-10{width:140px;top:40%;right:2%}.lp-af-11{opacity:.2;width:128px;bottom:11%;left:12%}.lp-af-12{opacity:.2;width:132px;bottom:9%;right:9%}@keyframes lp-float{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-15px)rotate(2deg)}}@media (width<=880px){.lp-af-3,.lp-af-7,.lp-af-8,.lp-af-9{display:none}.lp-af{opacity:.16}.lp-af-1,.lp-af-5{width:96px}.lp-af-2,.lp-af-4{width:80px}.lp-af-6,.lp-af-10{width:92px}.lp-af-11,.lp-af-12{width:86px}}@media (prefers-reduced-motion:reduce){.lp-af{animation:none}}.lp-hero-pangui{margin-bottom:8px}.lp-hero-pangui .pk{filter:drop-shadow(0 8px 22px #00000047)}.lp-hero-inner{z-index:1;max-width:1100px;margin:0 auto;padding:0 24px;position:relative}.lp-hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:64px;display:grid}.lp-hero-label{font-size:11px;font-family:var(--font-mono);letter-spacing:.13em;color:var(--accent);text-transform:uppercase;margin-bottom:20px}.lp-hero-title{letter-spacing:-.04em;margin:0 0 20px;font-size:clamp(36px,5.5vw,64px);font-weight:900;line-height:1.05}.lp-grad{background:linear-gradient(130deg,#35f28a 0%,#4ee8a4 60%,#fff 120%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.lp-hero-sub{color:var(--ink-2);max-width:460px;margin-bottom:36px;font-size:17px;line-height:1.65}.lp-hero-cta{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.lp-btn-lg{padding:14px 28px;font-size:16px}.lp-btn-secondary{color:var(--ink-2);cursor:pointer;background:0 0;border:none;font-size:15px;text-decoration:none;transition:color .2s}.lp-btn-secondary:hover{color:var(--ink)}.lp-mockup-wrap{position:relative}.lp-mockup{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 24px 80px #00000059,0 0 0 1px #35f28a12}.lp-mockup-gamebar{border-bottom:1px solid var(--line);background:var(--bg-3);align-items:center;gap:8px;padding:10px 16px;display:flex}.lp-mockup-topbar{align-items:center;gap:8px;display:flex}.lp-xp-chip{color:var(--accent);font-size:11px;font-family:var(--font-mono);background:#35f28a1f;border:1px solid #35f28a40;border-radius:999px;padding:3px 10px;font-weight:700}.lp-streak-chip{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b33;border-radius:999px;padding:3px 10px;font-size:11px}.lp-score-chip{color:#8b5cf6;font-size:11px;font-family:var(--font-mono);background:#8b5cf61a;border:1px solid #8b5cf633;border-radius:999px;margin-left:auto;padding:3px 10px}.lp-mockup-content{padding:20px}.lp-mockup-q-label{font-size:10px;font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;margin-bottom:10px}.lp-mockup-q-text{color:var(--ink);margin-bottom:14px;font-size:14px;font-weight:600}.lp-mockup-code{background:var(--bg-3);border:1px solid var(--line);font-size:12px;font-family:var(--font-mono);border-radius:8px;margin-bottom:14px;padding:12px 14px;line-height:1.6;overflow-x:auto}.lp-mockup-code .hl-kw{color:#8b5cf6}.lp-mockup-code .hl-fn{color:var(--accent)}.lp-mockup-code .hl-num{color:#f59e0b}.lp-mockup-code .hl-bi{color:#60a5fa}.lp-mockup-options{flex-direction:column;gap:7px;display:flex}.lp-mockup-opt{border:1px solid var(--line);cursor:pointer;color:var(--ink-2);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;transition:border-color .2s,background .2s;display:flex}.lp-mockup-opt:hover{color:var(--ink);border-color:#35f28a59}.lp-mockup-opt.mock-correct{border-color:var(--accent);color:var(--accent);background:#35f28a14}.lp-mockup-opt.mock-wrong{color:#ef4444;background:#ef444414;border-color:#ef4444}.lp-mockup-pill{background:var(--bg-3);border:1px solid var(--line);width:22px;height:22px;font-size:10px;font-family:var(--font-mono);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.lp-float{background:var(--bg-2);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex;position:absolute;box-shadow:0 8px 24px #0000004d}.lp-float-icon{width:36px;height:36px;color:var(--accent);background:#35f28a1f;border-radius:9px;flex-shrink:0;place-items:center;display:grid}.lp-float-icon-purple{color:#8b5cf6;background:#8b5cf61f}.lp-float-label{color:var(--ink);font-size:13px;font-weight:700}.lp-float-sub{color:var(--ink-3);font-size:11px}.lp-float-chip{background:var(--accent);color:#0a0a0a;min-width:44px;height:44px;font-size:16px;font-weight:900;font-family:var(--font-mono);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.lp-float-1{animation:3s ease-in-out infinite floatY;top:0;left:0}.lp-float-2{animation:3s ease-in-out .8s infinite floatY;top:38%;right:0}.lp-float-3{animation:3s ease-in-out 1.5s infinite floatY;bottom:0;left:50%;transform:translate(-50%)}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.lp-uc-community{color:#93c5fd;letter-spacing:.04em;background:#3b82f61a;border:1px solid #3b82f64d;border-radius:999px;align-items:center;gap:7px;margin-bottom:16px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.lp-uc-community svg{stroke:#93c5fd;flex-shrink:0}.lp-benefit-strip{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.lp-benefit-strip-inner{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;max-width:1100px;margin:0 auto;padding:0 24px;display:flex}.lp-benefit-item{color:var(--ink-2);font-size:13px;font-family:var(--font-mono);letter-spacing:.02em;align-items:center;gap:7px;display:flex}.lp-benefit-item svg{color:var(--accent);flex-shrink:0}.lp-benefit-sep{color:var(--line);font-size:18px}.lp-benefit-uc{font-weight:600;color:#93c5fd!important}.lp-benefit-uc svg{color:#93c5fd!important}@keyframes lp-levitate{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.lp-testi-float-section{padding:12px 0 40px}.lp-tf-head{justify-content:center;align-items:center;gap:12px;margin-bottom:36px;display:flex}.lp-tf-count{color:var(--accent);font-size:13px;font-weight:700;font-family:var(--font-mono)}.lp-tf-label{color:var(--ink-3);font-size:12px;font-family:var(--font-mono)}.lp-tf-row{grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto;display:grid}.lp-tf-wrap{--tf-rot:0deg;transform:translateY(0) scale(1) rotate(var(--tf-rot));opacity:1;filter:blur();transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .6s ease-out,filter .7s ease-out}.lp-tf-row .lp-tf-wrap:first-child{transition-delay:0s}.lp-tf-row .lp-tf-wrap:nth-child(2){transition-delay:90ms}.lp-tf-row .lp-tf-wrap:nth-child(3){transition-delay:.18s}.lp-tf-row .lp-tf-wrap:nth-child(4){transition-delay:.27s}.lp-tf-row .lp-tf-wrap:nth-child(5){transition-delay:.36s}.lp-tf-row .lp-tf-wrap:nth-child(6){transition-delay:.45s}.lp-tf-wrap.tf-stack-hidden{opacity:0;filter:blur(10px);transform:translateY(60px)scale(.85)rotate(0)}.tf-w1{--tf-rot:-1.2deg}.tf-w2{--tf-rot:.8deg;margin-top:28px}.tf-w3{--tf-rot:-.5deg;margin-top:10px}.tf-w4{--tf-rot:.7deg;margin-top:4px}.tf-w5{--tf-rot:-.9deg;margin-top:22px}.tf-w6{--tf-rot:.4deg;margin-top:-6px}.lp-tf-card{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:22px}.tf-d0{animation:5s ease-in-out infinite lp-levitate}.tf-d1{animation:5s ease-in-out 1.8s infinite lp-levitate}.tf-d2{animation:5s ease-in-out 3.4s infinite lp-levitate}.tf-d3{animation:5s ease-in-out .9s infinite lp-levitate}.tf-d4{animation:5s ease-in-out 2.7s infinite lp-levitate}.tf-d5{animation:5s ease-in-out 4.2s infinite lp-levitate}.lp-tf-stars{color:var(--accent);letter-spacing:2px;margin-bottom:12px;font-size:12px}.lp-tf-stars span{color:var(--ink-3);font-size:11px;font-family:var(--font-mono);letter-spacing:0}.lp-tf-card p{color:var(--ink-2);margin:0 0 16px;font-size:14px;font-style:italic;line-height:1.65}.lp-tf-author{align-items:center;gap:10px;display:flex}.lp-tf-av{background:var(--accent);color:#000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:flex}.lp-tf-av-b{background:#a78bfa}.lp-tf-av-c{background:#f59e0b}.lp-tf-av-d{background:#34d399}.lp-tf-author>div:last-child{flex-direction:column;display:flex}.lp-tf-author span:first-child{color:var(--ink);font-size:13px;font-weight:600}.lp-tf-author span:last-child{color:var(--ink-3);font-size:11px;font-family:var(--font-mono)}.lp-problem-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.lp-problem-card{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:28px;transition:border-color .2s}.lp-problem-card:hover{border-color:#35f28a40}.lp-problem-icon{width:44px;height:44px;color:var(--accent);background:#35f28a14;border:1px solid #35f28a26;border-radius:12px;place-items:center;margin-bottom:16px;display:grid}.lp-problem-card h3{margin:0 0 8px;font-size:16px;font-weight:700}.lp-problem-card p{color:var(--ink-2);margin:0;font-size:14px}.lp-solution-timeline{justify-content:center;align-items:flex-start;gap:0;display:flex}.lp-solution-step{text-align:center;flex-direction:column;flex:1;align-items:center;max-width:180px;display:flex}.lp-sol-circle{width:52px;height:52px;color:var(--accent);background:#35f28a12;border:2px solid #35f28a59;border-radius:50%;flex-shrink:0;place-items:center;margin-bottom:14px;display:grid}.lp-solution-step h4{margin:0 0 6px;font-size:14px;font-weight:700}.lp-solution-step p{color:var(--ink-2);margin:0;font-size:13px}.lp-sol-connector{background:linear-gradient(90deg,#35f28a59,#35f28a1a);flex:0 0 32px;height:2px;margin-top:26px}.lp-btn-full{width:100%;margin-top:auto}.lp-how-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lp-how-card{background:var(--bg);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;padding:28px;transition:border-color .2s;display:flex}.lp-how-card:hover{border-color:#35f28a40}.lp-how-num{font-size:11px;font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;font-weight:700}.lp-how-card svg{color:var(--accent)}.lp-how-card h4{margin:0;font-size:16px;font-weight:700}.lp-how-card p{color:var(--ink-2);margin:0;font-size:14px}.lp-devices-layout{grid-template-columns:1fr 1fr;align-items:center;gap:80px;display:grid}.lp-device-benefits{flex-direction:column;gap:18px;margin-bottom:28px;display:flex}.lp-device-benefit{align-items:flex-start;gap:12px;display:flex}.lp-device-benefit svg{color:var(--accent);flex-shrink:0;margin-top:2px}.lp-device-benefit strong{color:var(--ink);margin-bottom:2px;font-size:14px;font-weight:700;display:block}.lp-device-benefit span{color:var(--ink-2);font-size:13px}.lp-devices-tagline{color:var(--ink-2);border-left:3px solid #35f28a59;padding-left:14px;font-size:14px;line-height:1.6}.lp-devices-visual{flex-direction:column;align-items:center;gap:20px;display:flex}.lp-devices-img{width:100%;max-width:520px;height:auto;display:block}.lp-device-laptop{background:var(--bg-3);border:1.5px solid var(--line);border-radius:10px;flex-direction:column;width:100%;max-width:340px;padding:0;display:flex;overflow:hidden}.lp-device-screen{background:var(--bg-2);min-height:160px}.lp-device-topbar-mini{border-bottom:1px solid var(--line);background:var(--bg-3);align-items:center;gap:6px;padding:8px 12px;display:flex}.lp-device-dots-mini{gap:4px;display:flex}.lp-device-dots-mini span{background:var(--line);border-radius:50%;width:7px;height:7px}.lp-device-progress{background:var(--bg-3);border-radius:2px;height:4px;overflow:hidden}.lp-device-progress>div{background:var(--accent);border-radius:2px;height:100%}.lp-device-base-bar{background:var(--bg-3);border-top:1px solid var(--line);height:10px}.lp-device-stand{background:var(--bg-3);border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;width:60px;height:18px;margin:0 auto}.lp-device-phone{background:var(--bg-2);border:1.5px solid var(--line);z-index:2;border-radius:18px;align-self:flex-end;width:160px;min-height:200px;margin-top:-60px;position:relative;overflow:hidden}.lp-phone-opt{color:var(--ink-2);background:var(--bg-3);border:1px solid var(--line);cursor:pointer;border-radius:6px;margin-bottom:5px;padding:6px 9px;font-size:10px}.lp-phone-opt.active{color:var(--accent);background:#35f28a1f;border-color:#35f28a59}.lp-pricing-2{grid-template-columns:repeat(2,1fr);align-items:start;gap:20px;max-width:760px;margin:0 auto;display:grid}.lp-price-card{background:var(--bg);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;padding:28px;display:flex;position:relative}.lp-price-card:hover{border-color:#35f28a40}.lp-price-featured{background:linear-gradient(160deg, var(--bg) 0%, #35f28a0d 100%);border-color:#35f28a59;box-shadow:0 0 0 2px #35f28a1f,0 16px 48px #0000004d}.lp-price-tag{background:var(--accent);color:#000;letter-spacing:.08em;white-space:nowrap;border-radius:999px;padding:3px 12px;font-size:10px;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.lp-price-name{color:var(--ink);font-size:19px;font-weight:800}.lp-price-desc{color:var(--ink-3);font-size:13px}.lp-price-wrapper{flex-direction:column;gap:2px;display:flex}.lp-price-regular{color:var(--ink-3);font-size:15px;text-decoration:line-through}.lp-price-regular span{font-size:12px}.lp-price-amount{letter-spacing:-.03em;color:var(--ink);font-size:36px;font-weight:900}.lp-price-amount span{color:var(--ink-3);vertical-align:middle;margin-left:4px;font-size:15px;font-weight:500}.lp-beta-badge{color:#000;letter-spacing:.07em;vertical-align:middle;background:#f59e0b;border-radius:4px;margin-left:6px;padding:2px 7px;font-size:9px;font-weight:800;display:inline-block}.lp-price-sub{color:var(--ink-3);font-size:12px;font-family:var(--font-mono);margin-top:-6px}.lp-price-features{flex-direction:column;flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lp-price-features li{color:var(--ink-2);font-size:14px}.lp-faq-layout{grid-template-columns:2fr 1fr;align-items:start;gap:56px;display:grid}.lp-faq-accordion{flex-direction:column;gap:8px;display:flex}.faq-item{border:1px solid var(--line);border-radius:10px;transition:border-color .2s;overflow:hidden}.faq-item.faq-open{border-color:#35f28a4d}.faq-q{background:var(--bg-2);cursor:pointer;text-align:left;width:100%;color:var(--ink);border:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;font-size:15px;font-weight:600;display:flex}.faq-q:hover{background:var(--bg-3)}.faq-arrow{color:var(--accent);flex-shrink:0;font-size:16px;transition:transform .25s}.faq-item.faq-open .faq-arrow{transform:rotate(180deg)}.faq-a{max-height:0;color:var(--ink-2);background:var(--bg-2);padding:0 18px;font-size:14px;line-height:1.65;transition:max-height .3s,padding .3s;overflow:hidden}.faq-item.faq-open .faq-a{max-height:200px;padding:0 18px 16px}.lp-faq-contact-card{background:var(--bg-2);text-align:center;border:1px solid #35f28a40;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:28px;display:flex}.lp-faq-contact-icon{width:52px;height:52px;color:var(--accent);background:#35f28a14;border:1px solid #35f28a26;border-radius:14px;place-items:center;display:grid}.lp-faq-contact-card h3{margin:0;font-size:17px;font-weight:700}.lp-faq-contact-card p{color:var(--ink-2);margin:0;font-size:14px}.lp-testimonials{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lp-testimonial{background:var(--bg);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;padding:24px;display:flex}.lp-testi-stars{color:var(--accent);letter-spacing:2px;font-size:14px}.lp-testimonial p{color:var(--ink-2);flex:1;margin:0;font-size:15px;font-style:italic}.lp-testi-author{align-items:center;gap:10px;margin-top:auto;display:flex}.lp-testi-avatar{width:36px;height:36px;color:var(--accent);background:#35f28a26;border:1px solid #35f28a40;border-radius:50%;flex-shrink:0;place-items:center;font-size:15px;font-weight:800;display:grid}.lp-testi-name{font-size:14px;font-weight:700}.lp-testi-role{color:var(--accent);font-size:12px;font-family:var(--font-mono)}.lp-team-grid{grid-template-columns:repeat(2,320px);justify-content:center;gap:24px;margin-bottom:48px;display:grid}.lp-team-card{background:var(--bg-2);border:1px solid var(--line);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:28px;transition:border-color .2s;display:flex}.lp-team-card:hover{border-color:#35f28a4d}.lp-team-avatar{width:120px;height:120px;color:var(--accent);background:linear-gradient(135deg,#35f28a33,#35f28a0d);border:2px solid #35f28a40;border-radius:50%;place-items:center;margin-bottom:8px;font-size:28px;font-weight:900;display:grid;overflow:hidden}.lp-team-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.lp-team-card h3{margin:0;font-size:18px;font-weight:800}.lp-team-role{font-size:10px;font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase}.lp-team-card p{color:var(--ink-2);margin:0;font-size:14px;font-weight:600}.lp-team-card span{color:var(--ink-3);font-size:13px}.lp-values-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lp-value-card{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;padding:24px;display:flex}.lp-value-icon{width:42px;height:42px;color:var(--accent);background:#35f28a12;border:1px solid #35f28a26;border-radius:12px;place-items:center;display:grid}.lp-value-card h4{margin:0;font-size:15px;font-weight:700}.lp-value-card p{color:var(--ink-2);margin:0;font-size:14px}.lp-cta-final{background:radial-gradient(ellipse 80% 60% at 50% 0%, #35f28a12 0%, transparent 70%), var(--bg);border-top:1px solid var(--line);padding:120px 0}.lp-cta-inner{max-width:1100px;margin:0 auto;padding:0 24px}.lp-cta-layout{justify-content:space-between;align-items:center;gap:48px;display:flex}.lp-cta-text h2{letter-spacing:-.04em;margin:0 0 16px;font-size:clamp(32px,4.5vw,52px);font-weight:900;line-height:1.1}.lp-cta-text p{color:var(--ink-2);margin-bottom:32px;font-size:17px}.lp-cta-buttons{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.lp-rocket-wrap{flex-shrink:0}.lp-rocket-svg{filter:drop-shadow(0 0 24px #35f28a59);width:120px;height:220px;animation:4s ease-in-out infinite rocketFloat}@keyframes rocketFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.lp-footer{background:var(--bg-2);border-top:1px solid var(--line);padding:56px 0 40px}.lp-footer-4col{grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;max-width:1100px;margin:0 auto;padding:0 24px;display:grid}.lp-footer-brand-col{flex-direction:column;gap:14px;display:flex}.lp-footer-copy{color:var(--ink-3);font-size:12px;line-height:1.6}.lp-footer-col{flex-direction:column;gap:10px;display:flex}.lp-footer-col strong{color:var(--ink);font-size:13px;font-weight:700}.lp-footer-col a{color:var(--ink-2);font-size:13px;text-decoration:none;transition:color .2s}.lp-footer-col a:hover{color:var(--accent)}@media (width<=1024px){.lp-hero-grid{grid-template-columns:1fr;gap:30px}.lp-hero-text{order:1}.lp-mockup-wrap{order:2;width:100%;max-width:480px;margin:0 auto;padding:48px 160px 64px 0}.lp-how-grid{grid-template-columns:repeat(2,1fr)}.lp-footer-4col{grid-template-columns:1fr 1fr}}@media (width<=760px){.lp-hero{padding:88px 0 40px}.lp-hero-title{font-size:38px}.lp-problem-grid{grid-template-columns:1fr}.lp-solution-timeline{flex-direction:column;align-items:center}.lp-sol-connector{background:linear-gradient(#35f28a59,#35f28a1a);flex:none;width:2px;height:28px;margin-top:0}.lp-solution-step{max-width:100%}.lp-how-grid{grid-template-columns:1fr}.lp-devices-layout{grid-template-columns:1fr;gap:40px}.lp-devices-visual{display:flex}.lp-devices-img{max-width:100%}.lp-pricing-2,.lp-faq-layout{grid-template-columns:1fr}.lp-faq-contact{order:-1}.lp-testimonials,.lp-team-grid,.lp-values-grid{grid-template-columns:1fr}.lp-cta-layout{text-align:center;flex-direction:column}.lp-cta-buttons{justify-content:center}.lp-footer-4col{grid-template-columns:1fr 1fr;gap:28px}.lp-benefit-strip-inner{gap:12px}.lp-benefit-sep{display:none}.lp-tf-row{grid-template-columns:repeat(2,1fr);gap:14px}.lp-tf-wrap{--tf-rot:0deg;margin-top:0}.tf-w6,.lp-float{display:none}.lp-mockup-wrap{padding:0}}.lp-nav-center{flex:1;justify-content:center;align-items:center;display:flex}.lp-footer-brand-col{align-items:flex-start}.landing .lp-footer-brand-col .brand-logo-img{width:auto;height:76px}.lp-mockup-wrap{align-self:center;padding:56px 180px 72px 0;position:relative}.lp-mockup-opt code{color:inherit;font-family:var(--font-mono);background:0 0;font-size:12px}.lp-h-scroll{height:100vh;position:relative;overflow:hidden}.lp-slide{width:100%;height:100%;display:none;overflow:hidden auto}.lp-slide.lp-slide--active{animation:.22s lp-fade-in;display:block}.lp-slide::-webkit-scrollbar{width:4px}.lp-slide::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}@keyframes lp-fade-in{0%{opacity:0}to{opacity:1}}@media (width<=760px){.lp-h-scroll{height:auto;overflow:visible}.lp-slide{height:auto;min-height:100svh;overflow:visible}}.lp-sol-3{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.lp-sol-card{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:14px;padding:28px 24px;transition:border-color .2s,box-shadow .2s;display:flex}.lp-sol-card:hover{border-color:#35f28a4d;box-shadow:0 8px 32px #35f28a0f}.lp-sol-num{font-size:11px;font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;font-weight:700}.lp-sol-icon{color:var(--accent)}.lp-sol-card h3{color:var(--ink);margin:0;font-size:17px;font-weight:700}.lp-sol-card p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}@media (width<=760px){.lp-sol-3{grid-template-columns:1fr}}@media (width<=1024px){.lp-mockup-wrap{padding:48px 160px 64px 0}}@media (width<=880px){.lp-mockup-wrap{padding:24px 0 32px}}@media (width<=760px){.lp-mockup-wrap{padding:0}.lp-btn-ghost{padding:8px 14px;font-size:13px;display:inline-flex}.lp-nav-cta .lp-btn-primary{display:none}.lp-section{padding:80px 0 56px}.lp-slide>.lp-section:first-child{padding-top:104px}.lp-section-head{margin-bottom:36px}.lp-section-inner{padding:0 16px}.lp-hero{padding:88px 0 28px}.lp-cta-final{padding:72px 0}.lp-footer{padding:40px 0 28px}.landing .lp-footer-brand-col .brand-logo-img{height:44px}}.lp-hero-inner{padding-top:20px}@media (width<=880px){.lp-hero-inner{padding-top:12px}}.lp-mockup-wrap.lp-demo-wrap{align-self:center;width:100%;padding:0}.lp-demo{text-align:left;overflow:hidden}.lp-demo:hover{transform:none}.lp-demo .code-editor-chrome{border:none;border-bottom:1px solid var(--line);border-radius:0}.lp-demo .code-editor-wrap{border:none;border-radius:0;min-height:188px;margin:0}.lp-demo .code-editor,.lp-demo .code-editor-overlay{scrollbar-width:none}.lp-demo .code-editor::-webkit-scrollbar{display:none}.lp-demo .code-editor-overlay::-webkit-scrollbar{display:none}.lp-demo-actions{border-top:1px solid var(--line);background:var(--bg-2);align-items:center;gap:10px;padding:12px 16px;display:flex}.lp-demo-hint{font-family:var(--font-mono);color:var(--ink-3);margin-left:auto;font-size:10.5px}.lp-demo-output{background:var(--bg-2);flex-direction:column;gap:8px;padding:0 16px 14px;display:flex}.lp-demo-output:empty{display:none}.lp-demo-after{color:var(--ink-2);padding-top:2px;font-size:13px}.lp-demo-cta{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.lp-demo-cta:hover{text-decoration:underline}.lp-problem-visual{max-width:780px;margin:0 auto}.lp-problem-svg{width:100%;height:auto;display:block}.lpp-chaos{color:var(--ink-3)}.lpp-arrow{color:var(--ink-2)}.lpp-arrow-path{stroke-dasharray:130;stroke-dashoffset:130px}.lpp-arrow-head{opacity:0}.lp-problem-visual.revealed .lpp-arrow-path{animation:lppDraw .9s var(--ease,ease) .35s forwards}.lp-problem-visual.revealed .lpp-arrow-head{animation:.3s 1.1s forwards lppFade}@keyframes lppDraw{to{stroke-dashoffset:0}}@keyframes lppFade{to{opacity:1}}.lpp-path{color:var(--accent)}.lpp-rail{stroke:var(--line-3)}.lpp-rail-done{stroke:var(--accent)}.lpp-node-done{fill:color-mix(in srgb, var(--accent) 16%, var(--bg))}.lpp-node-current{fill:color-mix(in srgb, var(--accent) 8%, var(--bg))}.lpp-node-next{stroke:var(--line-3);fill:none}.lpp-node-num{font-family:var(--font-mono);fill:var(--accent);stroke:none;font-size:11px;font-weight:700}.lpp-node-num.lpp-muted{fill:var(--ink-3)}.lpp-skel rect{fill:var(--line-2)}@media (prefers-reduced-motion:reduce){.lpp-arrow-path{stroke-dashoffset:0}.lpp-arrow-head{opacity:1}}.lp-pains-row{font-family:var(--font-mono);color:var(--ink-3);flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:20px;font-size:11.5px;font-weight:500;display:flex}.lp-pains-row i{color:var(--ink-4);font-style:normal}.lp-wt-grid{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}.lp-wt-card{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:24px;transition:border-color .2s}.lp-wt-card:hover{border-color:var(--line-3)}.lp-wt-card h3{color:var(--ink);margin:0 0 8px;font-size:17px;font-weight:700}.lp-wt-card p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.lp-wt-visual{background:var(--bg);border:1px solid var(--line);pointer-events:none;border-radius:12px;flex-direction:column;justify-content:center;gap:8px;min-height:196px;margin-bottom:18px;padding:18px;display:flex;overflow:hidden}.lp-wt-explorable{pointer-events:auto;justify-content:flex-start;padding:12px}.lp-wt-explorable .explorable-svg{width:100%;height:auto}.lp-wt-fbloop .lp-wt-opt{animation:wtOptLoop 7s var(--ease,ease) infinite}.lp-wt-fbloop .lp-wt-fb{animation:wtFbLoop 7s var(--ease,ease) infinite}@keyframes wtOptLoop{0%,14%{border-color:var(--line);color:var(--ink-2);background:0 0}22%,88%{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}96%,to{border-color:var(--line);color:var(--ink-2);background:0 0}}@keyframes wtFbLoop{0%,20%{opacity:0;transform:translateY(8px)}30%,86%{opacity:1;transform:translateY(0)}94%,to{opacity:0;transform:translateY(8px)}}.lp-wt-badge .lcb-ring{animation:wtRingLoop 7s var(--ease,ease) infinite}.lp-wt-badge .lcb-check{animation:wtCheckLoop 7s var(--ease,ease) infinite}@keyframes wtRingLoop{0%,8%{stroke-dashoffset:176px}32%,90%{stroke-dashoffset:0}to{stroke-dashoffset:176px}}@keyframes wtCheckLoop{0%,30%{stroke-dashoffset:38px}44%,92%{stroke-dashoffset:0}to{stroke-dashoffset:38px}}@media (prefers-reduced-motion:reduce){.lp-wt-fbloop .lp-wt-opt{border-color:var(--ok);background:var(--ok-bg);color:var(--ok);animation:none}.lp-wt-fbloop .lp-wt-fb{animation:none}.lp-wt-badge .lcb-ring,.lp-wt-badge .lcb-check{stroke-dashoffset:0;animation:none}}.lp-wt-pathrow{align-items:center;gap:12px;display:flex}.lp-wt-pathrow .path-node{width:34px;height:34px;margin:2px 0;font-size:11.5px}.lp-wt-skel{flex:1;min-width:0}.lp-wt-skel b,.lp-wt-skel i{background:var(--line-2);border-radius:4px;display:block}.lp-wt-skel b{height:8px;margin-bottom:6px}.lp-wt-skel i{background:var(--line);height:6px}.lp-wt-visual .option{padding:9px 12px;font-size:13px}.lp-wt-visual .feedback{margin-top:6px;padding:12px 14px}.lp-wt-visual .fb-header{margin-bottom:5px;font-size:14px}.lp-wt-visual .fb-body{margin-bottom:0;font-size:12.5px}.lp-wt-progress{text-align:center;align-items:center;gap:6px}.lp-wt-badge{margin-bottom:0}.lp-wt-nota{font-family:var(--font-body);letter-spacing:-.03em;color:var(--ok);flex-direction:column;align-items:center;gap:3px;font-size:30px;font-weight:800;line-height:1;display:flex}.lp-wt-nota span{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-3);font-size:9px;font-weight:600}.lp-wt-streak{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent-l);background:var(--accent-l2);border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.lp-hw-steps{flex-direction:column;max-width:640px;margin:0 auto;display:flex}.lp-hw-step{gap:18px;display:flex}.lp-hw-steps .path-rail{width:44px}.lp-hw-steps .path-seg{min-height:10px}.lp-hw-step:first-child .seg-top,.lp-hw-step:last-child .seg-bottom{background:0 0}.lp-hw-steps .path-node{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--bg-2))}.lp-hw-step-body{min-width:0;padding:12px 0 26px}.lp-hw-step-body h4{color:var(--ink);margin:0 0 6px;font-size:16.5px;font-weight:700}.lp-hw-step-body p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.lp-price-features li{align-items:center;gap:8px;display:flex}.lp-price-features .pk-icon{color:var(--accent);flex-shrink:0}@media (width<=980px){.lp-wt-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}}@media (width<=640px){.lp-demo-hint{display:none}.lp-demo .code-editor-wrap{min-height:150px}.lp-demo .code-editor-overlay,.lp-demo .code-editor{font-size:12px}.lp-hw-step-body{padding:10px 0 20px}.lp-hero-inner,.lp-section-inner{padding-left:20px;padding-right:20px}.lp-wt-visual{min-height:168px}}.lp-manifesto{text-align:center;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--bg-2);border-radius:14px;max-width:620px;margin:40px auto 0;padding:26px 30px}.lp-manifesto p{color:var(--ink-2);margin:0;font-size:16px;line-height:1.65}.reveal{transition-duration:.85s,.85s}.lp-tf-wrap{transition-duration:.8s}.lp-problem-visual.revealed .lpp-arrow-path{animation-duration:1.5s;animation-delay:.4s}.lp-problem-visual.revealed .lpp-arrow-head{animation-delay:1.75s}.lp-has-bg{position:relative;overflow:hidden}.lp-has-bg .lp-section-inner,.lp-has-bg .lp-cta-inner{z-index:1;position:relative}.lp-campus-bg{z-index:0;pointer-events:none;color:var(--ink-3);position:absolute;top:50%;transform:translateY(-50%)}.lp-campus-bg .lp-cbg-svg{opacity:.34;width:auto;height:min(74vh,540px);display:block}.cbg-low .lp-cbg-svg{opacity:.22}.cbg-draw path,.cbg-draw circle,.cbg-draw rect{stroke-dasharray:1500;stroke-dashoffset:1500px}.cbg-fill{opacity:0;transition:opacity 1s var(--ease,ease) 2.2s}.lp-campus-bg.revealed .cbg-draw path,.lp-campus-bg.revealed .cbg-draw circle,.lp-campus-bg.revealed .cbg-draw rect{animation:3s cubic-bezier(.3,0,.25,1) forwards campusDraw}.lp-campus-bg.revealed .cbg-fill{opacity:.1}@keyframes campusDraw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.cbg-draw path,.cbg-draw circle,.cbg-draw rect{stroke-dashoffset:0;animation:none!important}.cbg-fill{opacity:.1}}@media (width<=1100px){.lp-campus-bg{display:none}}.cbg-right{right:12px}.cbg-left{left:12px}.lp-hero-text{position:relative}.lp-hero-text>*{z-index:1;position:relative}.lp-hero-text .cbg-center{z-index:0}.cbg-center{pointer-events:none;color:var(--ink-3);position:absolute;top:-26px;left:50%;transform:translate(-50%)}.cbg-center .lp-cbg-svg{opacity:.3;width:auto;height:580px}@media (width<=1100px){.cbg-center{display:block}.cbg-center .lp-cbg-svg{opacity:.18;height:320px}}@media (width>=1101px){.lp-hero-text{padding-top:235px}}.orbital{width:100%;position:relative}.orbital-stage{width:100%;height:420px;position:relative}.orbital-ring{border:1px solid var(--line);border-radius:50%;animation:.6s orbital-fade-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbital-hub{background:radial-gradient(circle,#35f28a4d,#35f28a0a);border:1px solid #35f28a59;border-radius:50%;place-items:center;width:56px;height:56px;animation:.6s orbital-fade-in;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbital-hub-core{background:var(--accent);border-radius:50%;width:20px;height:20px;box-shadow:0 0 18px #35f28aa6}.orbital-hub-ping{border:1px solid #35f28a59;border-radius:50%;animation:2.6s cubic-bezier(0,0,.2,1) infinite orbital-ping;position:absolute;inset:-12px}.orbital-hub-ping-2{opacity:.6;animation-delay:.9s;inset:-26px}.orbital-hub-label{font-size:10px;font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-3);white-space:nowrap;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}@keyframes orbital-ping{0%{opacity:.7;transform:scale(.85)}75%,to{opacity:0;transform:scale(1.7)}}@keyframes orbital-fade-in{0%{opacity:0}to{opacity:1}}.orbital-node{cursor:pointer;animation:.5s backwards orbital-fade-in;animation-delay:calc(var(--node-i,0) * 90ms);flex-direction:column;align-items:center;gap:8px;transition:transform .8s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:50%;left:50%}.orbital-node-dot{background:var(--bg-2);border:2px solid var(--line);width:44px;height:44px;color:var(--node-color,var(--accent));border-radius:50%;place-items:center;transition:background .3s,border-color .3s,color .3s,transform .3s,box-shadow .3s;display:grid}.orbital-node-dot svg{width:18px;height:18px}.orbital-node:hover .orbital-node-dot{border-color:var(--node-color,var(--accent))}.orbital-node-related .orbital-node-dot{border-color:var(--node-color,var(--accent));animation:1.4s ease-in-out infinite orbital-pulse}.orbital-node-expanded .orbital-node-dot{background:var(--node-color,var(--accent));color:#06120c;border-color:var(--node-color,var(--accent));box-shadow:0 0 28px var(--node-color,var(--accent));transform:scale(1.25)}@keyframes orbital-pulse{0%,to{opacity:1}50%{opacity:.55}}.orbital-node-label{font-size:11.5px;font-weight:700;font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-3);white-space:nowrap;transition:color .3s}.orbital-node-expanded .orbital-node-label,.orbital-node-related .orbital-node-label{color:var(--ink)}.orbital-card{text-align:left;cursor:default;background:var(--bg-2);border:1px solid var(--line);z-index:5;border-radius:14px;width:100%;max-width:380px;margin:24px auto 0;padding:16px;animation:.3s cubic-bezier(.22,1,.36,1) orbital-card-in;position:relative;box-shadow:0 24px 60px #0006}@keyframes orbital-card-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.orbital-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.orbital-badge{letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800;font-family:var(--font-mono);border:1px solid;border-radius:999px;padding:3px 9px}.orbital-badge-accent{color:#06120c;background:var(--node-color,var(--accent));border-color:var(--node-color,var(--accent))}.orbital-badge-muted{color:var(--ink-3);border-color:var(--line);background:0 0}.orbital-card-sub{color:var(--ink-3);font-size:11px;font-family:var(--font-mono);text-align:right}.orbital-card-title{color:var(--ink);margin:0 0 8px;font-size:15px;font-weight:800}.orbital-card-content{color:var(--ink-2);font-size:13px;line-height:1.55}.orbital-card-content p{margin:0 0 8px}.orbital-card-content p:last-child{margin-bottom:0}.orbital-meter{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.orbital-meter-row{color:var(--ink-3);font-size:11px;font-family:var(--font-mono);justify-content:space-between;margin-bottom:6px;display:flex}.orbital-meter-bar{background:var(--bg-3);border-radius:999px;height:4px;overflow:hidden}.orbital-meter-fill{background:var(--node-color,var(--accent));border-radius:999px;height:100%;transition:width .6s}.orbital-related{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.orbital-related-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-size:10px;font-family:var(--font-mono);margin-bottom:8px}.orbital-related-list{flex-wrap:wrap;gap:6px;display:flex}.orbital-related-btn{font-size:11px;font-family:var(--font-body);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;transition:border-color .2s,color .2s}.orbital-related-btn:hover{border-color:var(--node-color,var(--accent));color:var(--ink)}.orbital-cta{text-align:center;cursor:pointer;border:none;width:100%;margin-top:14px;display:block}@media (width<=640px){.orbital-stage{height:360px}}@media (prefers-reduced-motion:reduce){.orbital-hub-ping{opacity:0;animation:none}.orbital-node-related .orbital-node-dot{animation:none}}.streak-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:36px;padding:18px 20px 20px}.streak-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.streak-flame{align-items:center;gap:8px;display:flex}.streak-flame-icon{color:var(--ink-3);line-height:1;display:inline-flex}.streak-flame-icon.is-active{color:#35f28a;animation:2.6s ease-in-out infinite streak-flicker}@keyframes streak-flicker{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.streak-text{color:var(--ink-2);font-size:14px}.streak-text strong{color:var(--ink);font-weight:800}.streak-tabs{background:var(--bg-3);border:1px solid var(--line);border-radius:999px;gap:2px;padding:2px;display:flex}.streak-tab{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 10px;font-size:10px;font-weight:700;transition:color .2s,background .2s}.streak-tab:hover{color:var(--ink)}.streak-tab.active{color:#06120c;background:#35f28a}.streak-grid-header{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px;display:grid}.streak-grid-header span{text-align:center;letter-spacing:.04em;color:var(--ink-3);font-size:11px;font-weight:700;font-family:var(--font-mono)}.streak-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.streak-grid-month{row-gap:8px}.streak-day-cell{aspect-ratio:1;border-radius:var(--r-md);width:100%;max-width:52px;color:var(--ink);place-items:center;margin:0 auto;font-size:14px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:grid}.streak-day-cell.is-empty{visibility:hidden}.streak-day-cell.is-future{color:var(--ink-3);opacity:.5}.streak-day-cell.is-today{box-shadow:inset 0 0 0 1.5px var(--ink-3)}.streak-day-cell.is-active{color:#06120c;background:#35f28a;font-weight:800}.streak-day-cell.is-active.is-today{box-shadow:inset 0 0 0 2px var(--bg-2)}.streak-month-title{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-3);text-transform:capitalize;margin-bottom:10px;font-size:11px;font-weight:700}.streak-year{gap:4px;display:flex}.streak-year-labels{flex-shrink:0;grid-template-rows:repeat(7,10px);gap:2px;display:grid}.streak-year-labels span{font-size:9px;font-family:var(--font-mono);color:var(--ink-3);align-items:center;display:flex}.streak-year-scroll{flex:1;min-width:0;padding-bottom:4px;overflow-x:auto}.streak-year-grid{grid-template-rows:repeat(7,10px);grid-auto-flow:column;gap:2px;width:max-content;display:grid}.streak-year-col{display:contents}.streak-year-cell{background:var(--bg-3);border:1px solid var(--line);border-radius:2px;width:10px;height:10px}.streak-year-cell.is-active{background:#35f28a;border-color:#35f28a}.streak-year-cell.is-today{border-color:var(--ink)}.streak-year-cell.is-future{opacity:.35}@media (width<=640px){.streak-card{padding:16px}.streak-tabs{justify-content:space-between;width:100%}.streak-tab{text-align:center;flex:1}.streak-day-cell{font-size:13px}.streak-grid-header span{font-size:10px}}@media (prefers-reduced-motion:reduce){.streak-flame-icon.is-active{animation:none}}.streak-day-cell.is-eval{box-shadow:inset 0 0 0 2px var(--warn,#f5a623);position:relative}.streak-eval-dot{background:var(--warn,#f5a623);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.streak-year-cell.is-eval{box-shadow:inset 0 0 0 1.5px var(--warn,#f5a623)}.streak-countdown{border-radius:var(--r-md);background:var(--bg-3);border:1px solid var(--line);color:var(--ink-2);align-items:center;gap:8px;margin:2px 0 14px;padding:10px 14px;font-size:13.5px;display:flex}.streak-countdown.is-soon{border-color:var(--warn,#f5a623);color:var(--ink)}.streak-countdown-text strong{color:var(--ink)}.streak-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;display:flex}.streak-filter-label{color:var(--ink-3);font-size:12px}.streak-filter-chip{border:1px solid var(--line);background:var(--bg-3);color:var(--ink-3);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .15s}.streak-filter-chip.is-on{color:var(--ink);border-color:var(--chip,var(--accent));box-shadow:inset 0 0 0 1px var(--chip,var(--accent))}.plan-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);margin-top:16px;padding:20px}.plan-header{margin-bottom:10px}.plan-title{color:var(--ink);font-size:16px;font-weight:700}.plan-sub{margin-top:2px;font-size:12.5px;font-weight:600}.plan-empty{color:var(--ink-2);margin:6px 0 0;font-size:13.5px}.plan-list{flex-direction:column;gap:8px;display:flex}.plan-item{text-align:left;cursor:pointer;background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 14px;transition:border-color .15s,transform .1s;display:flex}.plan-item:hover{border-color:var(--accent)}.plan-item:active{transform:scale(.99)}.plan-item-body{flex-direction:column;gap:2px;min-width:0;display:flex}.plan-item-unit{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.plan-item-title{color:var(--ink);font-size:14px;font-weight:600}.plan-item-course{font-weight:800}.plan-courses{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.plan-course-pill{border:1px solid;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.plan-warn{color:var(--ink-1);background:color-mix(in srgb, var(--warn,#f5a623) 14%, transparent);border:1px solid var(--warn,#f5a623);border-radius:var(--r-sm);margin:0 0 14px;padding:9px 12px;font-size:12.5px;line-height:1.5}.plan-timeline{flex-direction:column;gap:10px;display:flex}.plan-day{border:1px solid var(--line);border-left:3px solid var(--ink-3);border-radius:var(--r-md);background:var(--bg-3);padding:12px 14px}.plan-day-learn{border-left-color:var(--accent)}.plan-day-review{border-left-color:#8b9bb4}.plan-day-final{border-left-color:var(--warn,#f5a623)}.plan-day-exam{border-left-color:var(--err,#ef4444)}.plan-day-head{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.plan-day-date{color:var(--ink);text-transform:capitalize;font-size:14px;font-weight:700}.plan-day-rel{color:var(--ink-3);font-size:12px}.plan-day-phase{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin-left:auto;font-size:10.5px;font-weight:800}.plan-day-exam{color:var(--c,var(--ink));border:1px dashed var(--c,var(--line));border-radius:var(--r-sm);margin-bottom:8px;padding:7px 10px;font-size:13px;font-weight:700}.plan-day-section{margin-top:8px}.plan-day-h{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:6px;font-size:11px;font-weight:800}.plan-day-section .plan-item{margin-bottom:6px}.plan-day-repaso{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-day-repaso-txt{color:var(--ink-2);font-size:13px}.plan-tip{color:var(--ink-2);border-top:1px dashed var(--line);margin-top:10px;padding-top:8px;font-size:12.5px;line-height:1.5}.plan-day-encode{border-left-color:var(--accent)}.plan-day-retrieve{border-left-color:#6aa9ff}.plan-item-retrieve{opacity:.96}.plan-badge-retrieve{color:#6aa9ff;background:#6aa9ff33}.plan-intensity{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px;display:flex}.plan-intensity-label{color:var(--ink-3);margin-right:2px;font-size:12px}.plan-intensity-chip{border:1px solid var(--line);background:var(--bg-3);color:var(--ink-3);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .15s}.plan-intensity-chip.is-on{color:var(--ink);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}@media (width<=640px){.plan-card{padding:14px}.plan-day{padding:11px 12px}.plan-day-head{flex-wrap:wrap;gap:4px 8px}.plan-day-phase{margin-left:auto}.plan-item{gap:10px;padding:9px 11px}.plan-item-title{font-size:13.5px}.plan-tip,.plan-day-repaso-txt{font-size:12px}}.dash-plan-teaser{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 24px;padding:16px 20px;transition:border-color .15s;display:flex}.dash-plan-teaser:hover{border-color:var(--accent)}.dash-plan-teaser-body{flex:1;min-width:0}.dash-plan-teaser-meta{color:var(--ink-2);margin-top:4px;font-size:13.5px}.dash-plan-teaser-meta strong{color:var(--ink)}.dash-plan-teaser-btn{flex:none}@media (width<=640px){.dash-plan-teaser{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.dash-plan-teaser-btn{text-align:center;width:100%}}.plan-view-header{margin-bottom:8px}.plan-view-back{margin-bottom:12px}.plan-badge{white-space:nowrap;border-radius:999px;flex:none;padding:3px 9px;font-size:11px;font-weight:700}.plan-badge-new{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.plan-badge-weak{background:color-mix(in srgb, var(--warn,#f5a623) 20%, transparent);color:var(--warn,#f5a623)}.plan-more{color:var(--ink-3);text-align:center;margin-top:10px;font-size:12.5px}.plan-review{border-radius:var(--r-md);background:var(--accent);color:#08130d;cursor:pointer;border:none;width:100%;margin:0 0 14px;padding:11px 14px;font-size:13.5px;font-weight:700;transition:filter .15s;display:block}.plan-review:hover{filter:brightness(1.08)}.review-done{text-align:center;max-width:480px;margin:48px auto;padding:24px}.review-done-title{color:var(--ink);margin-bottom:10px;font-size:22px;font-weight:800}.review-done-sub{color:var(--ink-2);margin-bottom:20px;font-size:14px;line-height:1.55}.evals-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);margin-top:16px;padding:20px}.evals-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.evals-add{padding:7px 12px;font-size:13px}.evals-list{flex-direction:column;gap:8px;display:flex}.evals-item{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:10px;padding:10px 12px;display:flex}.evals-pill{border:1px solid;border-radius:999px;flex:none;padding:2px 9px;font-size:11px;font-weight:800}.evals-item-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.evals-item-name{color:var(--ink);font-size:14px;font-weight:600}.evals-item-meta{color:var(--ink-3);font-size:12px}.evals-act{cursor:pointer;color:var(--ink-2);background:0 0;border:none;flex:none;padding:4px 6px;font-size:12px;font-weight:600}.evals-act:hover{color:var(--ink);text-decoration:underline}.eval-form h3{color:var(--ink);margin:0 0 14px;font-size:18px}.eval-label{color:var(--ink-2);margin:12px 0 5px;font-size:12px;font-weight:700;display:block}.eval-hint{color:var(--ink-3);font-weight:400}.eval-input{box-sizing:border-box;background:var(--bg-3);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;padding:9px 11px;font-size:14px}.eval-input:focus{border-color:var(--accent);outline:none}.eval-units{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:6px;max-height:180px;padding:10px;display:flex;overflow-y:auto}.eval-unit{color:var(--ink-1);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;display:flex}.eval-empty{color:var(--ink-3);margin:4px 0;font-size:13px}.progress-course-list{flex-direction:column;gap:10px;margin:4px 0 8px;display:flex}.progress-course-row{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;padding:12px 14px;transition:border-color .15s,transform .1s}.progress-course-row:hover{border-color:var(--accent)}.progress-course-row:active{transform:scale(.995)}.progress-course-head{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.progress-course-code{letter-spacing:.03em;flex:none;font-size:12px;font-weight:700}.progress-course-name{color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13.5px;overflow:hidden}.progress-course-nota{flex:none;margin-left:auto;font-size:15px;font-weight:700}.progress-weak-empty{color:var(--ink-2);background:var(--bg-3);border:1px dashed var(--line);border-radius:var(--r-md);text-align:center;padding:16px;font-size:13.5px}.progress-weak-list{flex-direction:column;gap:8px;margin:4px 0 14px;display:flex}.progress-weak-item{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);align-items:stretch;gap:0;display:flex;overflow:hidden}.progress-weak-bar{flex:0 0 4px}.progress-weak-body{min-width:0;padding:10px 14px}.progress-weak-topic{color:var(--ink-1);font-size:14px;font-weight:600}.progress-weak-meta{color:var(--ink-3);margin-top:2px;font-size:12px}.progress-weak-cta{background:var(--accent);color:#08130d;border-radius:var(--r-md);cursor:pointer;border:none;width:100%;margin-top:2px;padding:12px 14px;font-size:14px;font-weight:700;transition:filter .15s;display:block}.progress-weak-cta:hover{filter:brightness(1.08)}.pk{--pk-fur:#e9b476;--pk-fur-dark:#d69a5b;--pk-cream:#f7dfb8;--pk-inner-ear:#e29b84;--pk-nose:#c1705c;--pk-brow:#4a3628;--pk-mouth:#7c4638;--pk-tongue:#e58a8a;--pk-hoodie:#21252d;--pk-hoodie-2:#333a45;--pk-outline:#9ba8b973;--pk-sole:#efede7;--pk-sclera:#fff;--pk-iris:#2fbe74;--pk-pupil:#17251c;--pk-whisker:#b2804aa6;--pk-glasses:#232830;--pk-accent:var(--accent,#35f28a);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;line-height:0;display:inline-block}.pk .pk-svg{width:100%;height:auto;display:block;overflow:visible}.pk .pk-cloth{stroke:var(--pk-outline);stroke-width:2px}.pk .pk-pupil-g{transform:translate(var(--pk-look-x,0px), var(--pk-look-y,0px));transition:transform .14s ease-out}.pk .pk-all,.pk .pk-head,.pk .pk-tail,.pk .pk-ear,.pk .pk-arm,.pk .pk-leg,.pk .pk-eye,.pk .pk-brow,.pk .pk-pupil-g,.pk .pk-body,.pk .pk-z,.pk .pk-spark,.pk .pk-flame,.pk .pk-glasses,.pk .pk-grade,.pk .pk-q{transform-box:fill-box;transform-origin:50%}.pk .pk-all{transform-origin:50% 100%}.pk .pk-head{transform-origin:50% 82%}.pk .pk-tail{transform-origin:8% 95%}.pk .pk-ear-l{transform-origin:85% 92%}.pk .pk-ear-r{transform-origin:15% 92%}.pk .pk-arm-l{transform-origin:88% 6%}.pk .pk-arm-r{transform-origin:12% 6%}.pk .pk-leg{transform-origin:50% 6%}.pk .pk-body{transform-origin:50% 100%}.pk .pk-eye-happy,.pk .pk-eye-closed,.pk .pk-mouth-open,.pk .pk-mouth-sad,.pk .pk-mouth-flat,.pk .pk-q,.pk .pk-zzz,.pk .pk-sparks,.pk .pk-glasses,.pk .pk-grade,.pk .pk-flame{display:none}.pk .pk-all{animation:3.4s ease-in-out infinite pkBob}.pk .pk-eye{animation:7.4s linear infinite pkBlink}.pk .pk-tail{animation:3.2s ease-in-out infinite pkTailSway}.pk .pk-ear-r{animation:7s ease-in-out infinite pkEarTwitch}.pk .pk-leg-l{animation:4.6s ease-in-out infinite pkStepL}.pk .pk-leg-r{animation:4.6s ease-in-out infinite pkStepR}@keyframes pkStepL{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-1.4px)rotate(-3deg)}55%{transform:translateY(0)rotate(0)}}@keyframes pkStepR{0%,to{transform:translateY(0)rotate(0)}55%{transform:translateY(-1.4px)rotate(3deg)}82%{transform:translateY(0)rotate(0)}}@keyframes pkBob{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(-2px)scaleY(1.012)}}@keyframes pkBlink{0%,42%,46%,87%,91%,93.5%,97.5%,to{transform:scaleY(1)}44%{transform:scaleY(.06)}89%{transform:scaleY(.06)}95.5%{transform:scaleY(.06)}}@keyframes pkTailSway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(6deg)}}@keyframes pkEarTwitch{0%,87%,95%,to{transform:rotate(0)}90%{transform:rotate(-9deg)}92%{transform:rotate(4deg)}}.pk--wave .pk-arm-r{animation:2.4s ease-in-out infinite pkWave}.pk--wave .pk-head{animation:2.4s ease-in-out infinite pkHeadTiltL}.pk--wave .pk-all{animation:2.4s ease-in-out infinite pkBob}.pk--wave .pk-leg-l{animation:2.4s ease-in-out infinite pkFootTap}@keyframes pkFootTap{0%,38%,62%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-2.5px)rotate(-7deg)}}@keyframes pkWave{0%,to{transform:translate(0)rotate(0)}22%{transform:translate(4px)rotate(-104deg)}36%{transform:translate(4px)rotate(-76deg)}50%{transform:translate(4px)rotate(-108deg)}64%{transform:translate(4px)rotate(-78deg)}80%{transform:translate(4px)rotate(-102deg)}}@keyframes pkHeadTiltL{0%,to{transform:rotate(0)}40%,70%{transform:rotate(-5deg)}}.pk--happy .pk-eye-happy{animation:1.9s linear both pkHideAfter;display:block}.pk--happy .pk-eye{animation:1.9s linear both pkShowAfter,7.4s linear 2.6s infinite pkBlink}.pk--happy .pk-mouth-smile{animation:1.9s linear both pkShowAfter}.pk--happy .pk-mouth-open{animation:1.9s linear both pkHideAfter;display:block}.pk--happy .pk-all{animation:.9s cubic-bezier(.36,0,.66,1) 2 pkHop,3.4s ease-in-out 1.8s infinite pkBob}.pk--happy .pk-tail{animation:.7s ease-in-out 3 pkTailSway,3.2s ease-in-out 2.1s infinite pkTailSway}.pk--happy .pk-ear-l{animation:.9s ease-in-out 2 pkEarPerk}.pk--happy .pk-ear-r{animation:.9s ease-in-out 2 pkEarPerkR}@keyframes pkHop{0%,to{transform:translateY(0)scale(1)}18%{transform:translateY(1px)scale(1.05,.93)}50%{transform:translateY(-11px)scale(.97,1.05)}82%{transform:translateY(0)scale(1.03,.96)}}@keyframes pkEarPerk{0%,to{transform:rotate(0)}50%{transform:rotate(7deg)}}@keyframes pkEarPerkR{0%,to{transform:rotate(0)}50%{transform:rotate(-7deg)}}@keyframes pkShowAfter{0%,99.9%{opacity:0}to{opacity:1}}@keyframes pkHideAfter{0%,99.9%{opacity:1}to{opacity:0}}.pk--celebrate .pk-eye-happy{animation:1.25s linear both pkHideAfter;display:block}.pk--celebrate .pk-eye{animation:1.25s linear both pkShowAfter,7.4s linear 1.8s infinite pkBlink}.pk--celebrate .pk-mouth-smile{animation:1.25s linear both pkShowAfter}.pk--celebrate .pk-mouth-open{animation:1.25s linear both pkHideAfter;display:block}.pk--celebrate .pk-sparks{display:block}.pk--celebrate .pk-all{animation:1.15s cubic-bezier(.36,0,.66,1) pkJump,3.4s ease-in-out 1.15s infinite pkBob}.pk--celebrate .pk-arm-l{animation:1.15s ease-in-out pkArmUpL}.pk--celebrate .pk-arm-r{animation:1.15s ease-in-out pkArmUpR}.pk--celebrate .pk-tail{animation:.6s ease-in-out 2 pkTailSway,3.2s ease-in-out 1.2s infinite pkTailSway}.pk--celebrate .pk-spark{animation:1.15s ease-in-out forwards pkTwinkle}.pk--celebrate .pk-spark2{animation-delay:.25s}.pk--celebrate .pk-spark3{animation-delay:.5s}@keyframes pkJump{0%,to{transform:translateY(0)scale(1)}15%{transform:translateY(2px)scale(1.07,.9)}45%{transform:translateY(-18px)scale(.96,1.06)rotate(-2deg)}60%{transform:translateY(-14px)scale(.98,1.03)rotate(2deg)}85%{transform:translateY(0)scale(1.04,.95)}}@keyframes pkArmUpL{0%,to{transform:translate(0)rotate(0)}40%,70%{transform:translate(-7px)rotate(112deg)}}@keyframes pkArmUpR{0%,to{transform:translate(0)rotate(0)}40%,70%{transform:translate(7px)rotate(-112deg)}}@keyframes pkTwinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:1;transform:scale(1.1)rotate(40deg)}}.pk--happy .pk-leg-l,.pk--happy .pk-leg-r{animation:.9s ease-in-out 2 pkTuck}.pk--celebrate .pk-leg-l,.pk--celebrate .pk-leg-r{animation:1.15s ease-in-out pkTuck}@keyframes pkTuck{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(-4px)scaleY(.86)}}.pk--party .pk-eye{display:none}.pk--party .pk-eye-happy{display:block}.pk--party .pk-mouth-smile{display:none}.pk--party .pk-mouth-open,.pk--party .pk-sparks{display:block}.pk--party .pk-grade{animation:4s ease-in-out infinite pkGradeShow;display:block}.pk--party .pk-all{transform-origin:50% 100%;animation:4s cubic-bezier(.5,0,.5,1) infinite pkParty}.pk--party .pk-arm-l{animation:4s ease-in-out infinite pkPartyArmL}.pk--party .pk-arm-r{animation:4s ease-in-out infinite pkPartyArmR}.pk--party .pk-leg-l{animation:4s ease-in-out infinite pkPartyLegL}.pk--party .pk-leg-r{animation:4s ease-in-out infinite pkPartyLegR}.pk--party .pk-tail{animation:.5s ease-in-out infinite pkTailSway}.pk--party .pk-ear-l{animation:.8s ease-in-out infinite pkEarPerk}.pk--party .pk-ear-r{animation:.8s ease-in-out infinite pkEarPerkR}.pk--party .pk-spark{animation:1s ease-in-out infinite pkTwinkle}.pk--party .pk-spark2{animation-delay:.33s}.pk--party .pk-spark3{animation-delay:.66s}@keyframes pkParty{0%{transform:translateY(0)scale(1)}9%{transform:translateY(-14px)scale(.97,1.05)}18%{transform:translateY(0)scale(1.06,.94)}28%{transform:translateY(-12px)scale(.98,1.04)}37%{transform:translateY(3px)scale(1.1,.88)}50%{transform:translateY(-38px)scale(.95,1.07)}61%{transform:translateY(-42px)scale(.99,1.02)}73%{transform:translateY(0)scale(1.05,.95)}83%{transform:translateY(0)scale(1.11,.87)}92%{transform:translateY(0)scale(1)}to{transform:translateY(0)scale(1)}}@keyframes pkPartyArmL{0%,to{transform:translate(-6px)rotate(108deg)}50%{transform:translate(-9px)rotate(132deg)}}@keyframes pkPartyArmR{0%,to{transform:translate(6px)rotate(-108deg)}50%{transform:translate(9px)rotate(-132deg)}}@keyframes pkPartyLegL{0%,to{transform:rotate(0)translateY(0)}18%{transform:rotate(-18deg)translateY(-2px)}49%{transform:rotate(12deg)scaleY(.9)}62%{transform:rotate(-14deg)scaleY(.9)}84%{transform:rotate(7deg)}}@keyframes pkPartyLegR{0%,to{transform:rotate(0)translateY(0)}28%{transform:rotate(18deg)translateY(-2px)}49%{transform:rotate(-12deg)scaleY(.9)}62%{transform:rotate(14deg)scaleY(.9)}84%{transform:rotate(-7deg)}}@keyframes pkGradeShow{0%{opacity:0;transform:translateY(8px)scale(.5)rotate(-10deg)}10%{opacity:1;transform:translateY(0)scale(1)rotate(0)}49%{transform:translateY(-4px)scale(1.06)rotate(4deg)}62%{transform:translateY(-9px)scale(1)rotate(-5deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}.pk--oops .pk-ear-l{animation:none;transform:rotate(-9deg)}.pk--oops .pk-ear-r{animation:none;transform:rotate(9deg)}.pk--oops .pk-brow-l{transform:translateY(1.5px)rotate(-7deg)}.pk--oops .pk-brow-r{transform:translateY(1.5px)rotate(7deg)}.pk--oops .pk-head{animation:3s ease-in-out infinite pkHeadComfort}.pk--oops .pk-arm-r{animation:1.5s ease-in-out infinite pkCheerPump}.pk--oops .pk-tail{animation:4s ease-in-out infinite pkTailSway}@keyframes pkHeadComfort{0%,to{transform:rotate(-3.5deg)}50%{transform:rotate(1deg)}}@keyframes pkCheerPump{0%,to{transform:translate(4px)rotate(-72deg)}50%{transform:translate(5px)rotate(-100deg)}}.pk--focus .pk-glasses{animation:.5s cubic-bezier(.34,1.56,.64,1) .15s both pkGlassesOn;display:block}.pk--focus .pk-mouth-smile{display:none}.pk--focus .pk-mouth-flat{display:block}.pk--focus .pk-brow-l{transform:translateY(-3px)rotate(-3deg)}.pk--focus .pk-brow-r{transform:translateY(-3px)rotate(3deg)}.pk--focus .pk-pupil-g{transform:translate(3px,1.5px)}.pk--focus .pk-head{animation:3.2s ease-in-out infinite pkLeanIn}.pk--focus .pk-arm-r{transform:translate(5px)rotate(-95deg)}.pk--focus .pk-ear-l{animation:none;transform:rotate(4deg)}.pk--focus .pk-ear-r{animation:none;transform:rotate(-4deg)}.pk--focus .pk-tail{animation:4.5s ease-in-out infinite pkTailSway}@keyframes pkGlassesOn{0%{opacity:0;transform:translateY(-14px)scale(.75)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pkLeanIn{0%,to{transform:rotate(2deg)translateY(1px)}50%{transform:rotate(4deg)translateY(2px)}}.pk--thinking .pk-mouth-smile{display:none}.pk--thinking .pk-mouth-flat{display:block}.pk--thinking .pk-q{animation:1.6s ease-in-out infinite pkQBob;display:block}.pk--thinking .pk-pupil-g{transform:translate(-2.5px,-3px)}.pk--thinking .pk-brow-r{transform:translateY(-4px)}.pk--thinking .pk-arm-r{transform:translate(5px)rotate(-95deg)}.pk--thinking .pk-head{animation:3.2s ease-in-out infinite pkHeadTiltR}@keyframes pkQBob{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}@keyframes pkHeadTiltR{0%,to{transform:rotate(2deg)}50%{transform:rotate(6deg)}}.pk--sleepy .pk-eye{display:none}.pk--sleepy .pk-eye-closed,.pk--sleepy .pk-zzz{display:block}.pk--sleepy .pk-all{animation:4.8s ease-in-out infinite pkBob}.pk--sleepy .pk-head{transform:rotate(7deg)translateY(3px)}.pk--sleepy .pk-ear-l{animation:none;transform:rotate(-8deg)}.pk--sleepy .pk-ear-r{animation:none;transform:rotate(8deg)}.pk--sleepy .pk-z{animation:3s ease-in-out infinite pkZFloat}.pk--sleepy .pk-z2{animation-delay:.5s}.pk--sleepy .pk-z3{animation-delay:1s}@keyframes pkZFloat{0%{opacity:0;transform:translateY(4px)}35%{opacity:1}to{opacity:0;transform:translate(6px,-14px)}}.pk--streak .pk-eye{display:none}.pk--streak .pk-eye-happy{display:block}.pk--streak .pk-mouth-smile{display:none}.pk--streak .pk-mouth-open{display:block}.pk--streak .pk-flame{animation:.5s ease-in-out infinite pkFlicker;display:block}.pk--streak .pk-all{animation:.6s cubic-bezier(.36,0,.66,1) infinite pkHop}.pk--streak .pk-arm-l{animation:1.2s ease-in-out infinite pkArmUpL}.pk--streak .pk-arm-r{animation:1.2s ease-in-out infinite pkArmUpR}.pk--streak .pk-tail{animation:.5s ease-in-out infinite pkTailSway}@keyframes pkFlicker{0%,to{transform:scaleY(1)scaleX(1)}50%{transform:scaleY(1.12)scaleX(.94)}}.pk--zen .pk-eye{display:none}.pk--zen .pk-eye-happy{display:block}.pk--zen .pk-all{animation:4.6s ease-in-out infinite pkBob}.pk--zen .pk-tail{animation:4.6s ease-in-out infinite pkTailSway}.pk-pop{z-index:1900;cursor:pointer;flex-direction:column;align-items:flex-start;gap:4px;animation:.55s cubic-bezier(.34,1.56,.64,1) both pkPopIn;display:flex;position:fixed;bottom:14px;left:20px}.pk-pop.pk-pop-out{animation:.4s ease-in both pkPopOut}.pk-pop .pk{filter:drop-shadow(0 6px 16px #00000047)}.pk-bubble{background:var(--bg-2,#1a1e22);border:1px solid var(--line,#2a2f33);border-radius:14px 14px 14px 4px;max-width:240px;margin-left:30px;padding:10px 14px;box-shadow:0 8px 24px #00000038}.pk-bubble-text{color:var(--ink,#e8eaed);font-size:14px;font-weight:700;line-height:1.3}.pk-bubble-sub{color:var(--ink-2,#9aa0a6);margin-top:3px;font-size:12.5px;line-height:1.35}@keyframes pkPopIn{0%{opacity:0;transform:translateY(110%)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pkPopOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(60%)scale(.85)}}.dash-greeting-row{align-items:center;gap:18px;margin-bottom:36px;display:flex}.dash-greeting-row .pk{cursor:pointer;flex-shrink:0}.dash-greeting-row .dash-greeting{flex:1;min-width:0;margin-bottom:0}.pk-say{display:flex}.pk-say .pk{flex-shrink:0}.pk-say-bubble{background:var(--bg-2,#1a1e22);border:1.5px solid var(--line,#2a2f33);border-radius:16px;min-width:0;padding:12px 16px;position:relative}.pk-say-bubble:before,.pk-say-bubble:after{content:"";width:0;height:0;position:absolute}.pk-say--row{align-items:flex-start;gap:14px}.pk-say--row .pk-say-bubble{flex:1}.pk-say--row .pk-say-bubble:before{border-top:8px solid #0000;border-bottom:8px solid #0000;border-right:11px solid var(--line,#2a2f33);top:22px;left:-11px}.pk-say--row .pk-say-bubble:after{border-top:7px solid #0000;border-bottom:7px solid #0000;border-right:10px solid var(--bg-2,#1a1e22);top:23px;left:-9px}.pk-say--top{flex-direction:column;align-items:center;gap:14px}.pk-say--top .pk-say-bubble{text-align:center;max-width:340px}.pk-say--top .pk-say-bubble:before{border-left:8px solid #0000;border-right:8px solid #0000;border-top:11px solid var(--line,#2a2f33);margin-left:-8px;bottom:-11px;left:50%}.pk-say--top .pk-say-bubble:after{border-left:7px solid #0000;border-right:7px solid #0000;border-top:10px solid var(--bg-2,#1a1e22);margin-left:-7px;bottom:-9px;left:50%}.fb-say{margin-bottom:2px}.fb-say .pk{margin-top:0}.fb-say .pk-say-bubble .fb-body{margin-top:6px}.lc-mascot{margin:0 auto 10px}.lc-mascot .pk{cursor:pointer}.review-done .pk-say,.review-done .pk{margin-bottom:14px}@media (width<=560px){.dash-greeting-row{gap:12px}.dash-greeting-row .pk{width:74px!important}.pk-bubble{max-width:190px}.fb-say{gap:10px}.fb-say .pk{width:58px!important}.fb-say .pk-say-bubble:before{top:14px}.fb-say .pk-say-bubble:after{top:15px}}@media (prefers-reduced-motion:reduce){.pk,.pk *,.pk-pop{animation:none!important}}:root{--ex-1:#35f28a;--ex-2:#38bdf8;--ex-3:#a78bfa;--ex-4:#ffb340;--ex-dim:#9aa3ac}html[data-theme=light]{--ex-1:#059669;--ex-2:#0284c7;--ex-3:#7c3aed;--ex-4:#b45309;--ex-dim:#6b7280}.explorable{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);max-width:100%;margin:14px 0;padding:14px;overflow:hidden}.explorable-title{color:var(--ink);margin:0 0 4px;font-size:.95rem;font-weight:600}.explorable-prompt{color:var(--ink-2);margin:0 0 10px;font-size:.88rem}.explorable-svg{touch-action:none;width:100%;height:auto;display:block;overflow:visible}.explorable-svg text{font-family:var(--font-mono);fill:var(--ink-3);-webkit-user-select:none;user-select:none;font-size:8px}.explorable-svg .explorable-label{fill:var(--ink-2);font-size:9px;font-weight:600}.explorable-axis{stroke:var(--line-2);stroke-width:1px}.explorable-grid{stroke:var(--line);stroke-width:.5px}.explorable-curve{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.explorable-asymptote{stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:4 3;fill:none}.explorable-segment{stroke:var(--ex-2);stroke-width:1.5px;fill:none}.explorable-point{fill:var(--bg-2);stroke:var(--accent);stroke-width:2px;cursor:default}.explorable-point.draggable{cursor:grab}.explorable-point.draggable:active{cursor:grabbing}.explorable-controls{flex-wrap:wrap;gap:10px 18px;margin-top:12px;display:flex}.explorable-control{color:var(--ink-2);flex-direction:column;flex:140px;gap:4px;min-width:120px;font-size:.78rem;display:flex}.explorable-slider{width:100%;accent-color:var(--accent)}.explorable-readout{font-family:var(--font-mono);color:var(--ink-2);border-top:1px solid var(--line);flex-wrap:wrap;gap:6px 16px;margin-top:10px;padding-top:10px;font-size:.82rem;display:flex}.explorable-readout strong{color:var(--accent);font-weight:600}.explorable-goal{border:1px solid var(--line-2);border-left:3px solid var(--ucolor,var(--accent));border-radius:var(--r-sm);background:var(--bg-3);color:var(--ink-2);transition:border-color .3s var(--ease), background .3s var(--ease);margin-top:12px;padding:10px 12px;font-size:.84rem}.explorable-goal-head{align-items:flex-start;gap:8px;display:flex}.explorable-goal-tag{color:var(--ucolor,var(--accent));letter-spacing:.02em;flex:none;font-weight:700}.explorable-goal-icon{width:15px;height:15px;color:var(--ucolor,var(--accent));transition:color .3s var(--ease);flex:none;margin-top:1px}.explorable-goal-result{border-top:1px dashed var(--line-2);color:var(--ink);align-items:flex-start;gap:8px;margin-top:9px;padding-top:9px;display:none}.explorable-goal-result .explorable-goal-icon{color:var(--accent)}.explorable-goal.done{border-color:var(--accent);border-left-color:var(--accent);background:var(--accent-l2)}.explorable-goal.done .explorable-goal-result{animation:ex-goal-pop .45s var(--ease);display:flex}@keyframes ex-goal-pop{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.explorable-probe-line{stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:3 3;pointer-events:none}.explorable-probe-dot{stroke:var(--bg-2);stroke-width:1.5px;pointer-events:none}.gtrav{max-width:100%;overflow:hidden}.gtrav-svg{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);touch-action:manipulation;width:100%;height:auto;display:block}.gtrav-edge{stroke:var(--line-2);stroke-width:2.5px}.gtrav-node-c{stroke:var(--card);stroke-width:3px;fill:var(--ex-dim);transition:fill .3s var(--ease)}.gtrav-node-t{font-family:var(--font-mono);fill:#fff;pointer-events:none;font-size:16px;font-weight:700}.gtrav-legend{color:var(--ink-2);flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:.78rem;display:flex}.gtrav-legend span{align-items:center;gap:5px;min-width:0;display:inline-flex}.gtrav-dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.gtrav-panels{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}@media (width<=480px){.gtrav-panels{grid-template-columns:1fr}}.gtrav-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);min-width:0;padding:10px 12px}.gtrav-panel-h{color:var(--ink);font-size:.85rem;font-weight:700}.gtrav-panel-sub{color:var(--muted);margin:2px 0 8px;font-size:.74rem}.gtrav-slots{flex-wrap:wrap;align-items:center;gap:6px;min-height:34px;display:flex}.gtrav-slot{border-radius:var(--r-sm);min-width:30px;height:30px;font-family:var(--font-mono);justify-content:center;align-items:center;padding:0 8px;font-size:.9rem;font-weight:700;display:inline-flex}.gtrav-slot-frontier{color:var(--ink);background:var(--bg-3);border:1.5px solid var(--accent)}.gtrav-slot-done{color:#062a16;background:var(--ex-1)}.gtrav-empty{color:var(--muted);font-size:.82rem;font-style:italic}.gtrav-explain{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-2);min-height:48px;margin-top:12px;padding:11px 13px;font-size:.86rem}.gtrav-explain b{color:var(--accent);font-weight:700}.gtrav-controls{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.gtrav-btn{font:inherit;border-radius:var(--r-sm);cursor:pointer;border:1.5px solid var(--line-2);background:var(--card);color:var(--ink);padding:8px 14px;font-size:.84rem;font-weight:600;transition:transform 80ms,opacity .2s,background .2s}.gtrav-btn:active{transform:scale(.96)}.gtrav-btn:disabled{opacity:.4;cursor:default}.gtrav-btn-step{background:var(--accent);color:#062a16;border-color:var(--accent)}.gtrav-btn-play{color:var(--ink-2)}.gtrav-btn-reset{color:var(--muted)}.gdiag{flex-wrap:wrap;gap:12px;max-width:480px;margin:14px auto 4px;display:flex}.gdiag-cell{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);text-align:center;flex:1 1 0;min-width:150px;padding:10px 12px 8px}.gdiag-label{color:var(--ink);font-size:.85rem;font-weight:700}.gdiag-svg{width:100%;max-width:200px;height:auto;margin:4px auto;display:block}.gdiag-sub{color:var(--muted);font-size:.74rem}.gdiag-edge{stroke:var(--ink-2);stroke-width:3px;stroke-linecap:round}.gdiag-arrowhead{fill:var(--ink-2)}.gdiag-node-c{fill:var(--accent);stroke:var(--card);stroke-width:2.5px}.gdiag-node-t{font-family:var(--font-mono);fill:#062a16;pointer-events:none;font-size:15px;font-weight:700}.adjv-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 20px;max-width:540px;margin:14px auto 4px;display:flex}.adjv-gcell{flex:none}.adjv-svg{width:190px;max-width:100%;height:auto;display:block}.adjv-list{flex-direction:column;gap:6px;min-width:0;display:flex}.adjv-row{align-items:center;gap:7px;display:flex}.adjv-chip{border-radius:var(--r-sm);background:var(--accent);color:#062a16;width:26px;height:26px;font-family:var(--font-mono);flex:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.adjv-arrow{color:var(--ink-2);font-weight:700}.adjv-nbrs{flex-wrap:wrap;gap:5px;min-width:0;display:inline-flex}.adjv-nb{border-radius:var(--r-sm);background:var(--bg-3);border:1px solid var(--line-2);min-width:24px;height:24px;color:var(--ink);font-family:var(--font-mono);justify-content:center;align-items:center;padding:0 6px;font-size:.82rem;font-weight:700;display:inline-flex}.adjv-matrix{flex:none;gap:3px;display:grid}.adjv-cell{width:26px;height:26px;font-family:var(--font-mono);border-radius:5px;justify-content:center;align-items:center;font-size:.82rem;font-weight:700;display:inline-flex}.adjv-corner{background:0 0}.adjv-head{color:var(--ink-2)}.adjv-zero{background:var(--bg-3);color:var(--muted)}.adjv-one{background:var(--accent);color:#062a16}.rec-viz{flex-direction:column;gap:12px;display:flex}.rec-controls{align-items:center}.rec-btnrow{flex-wrap:wrap;gap:8px;display:flex}.rec-btn{border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);font-family:var(--font-body);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:border-color .15s,background .15s}.rec-btn:hover{border-color:var(--ink-2)}.rec-btn:disabled{opacity:.45;cursor:not-allowed}.rec-stack{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;justify-content:flex-end;gap:6px;min-height:120px;padding:12px;display:flex}.rec-frame{border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-2);font-family:var(--font-mono);color:var(--ink);animation:recPush .28s var(--ease,ease) both;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}@keyframes recPush{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.rec-frame.active{border-color:var(--accent)}.rec-frame.resolved{border-color:var(--ok);background:var(--ok-bg)}.rec-frame.resolved .rec-ret{color:var(--ok)}.rec-ret{font-weight:700}.rec-caption{color:var(--ink-2);min-height:2.6em;font-size:13px;line-height:1.5}@media (prefers-reduced-motion:reduce){.rec-frame{animation:none}}
