@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-5{top:calc(var(--spacing) * 5)}.top-20{top:calc(var(--spacing) * 20)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.cl-badge,[class*=cl-badge],[class*=cl-developerBadge],[class*=developerBadge],[class*=clerk-badge]{display:none!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--surface-ink:#0f172a;--text:#0f172a;--text-soft:#64748b;--text-xsoft:#a09888;--text-light:#e8e3d8;--accent:#16a34a;--accent-dark:#15803d;--accent-bg:#f0fdf4;--success:#16a34a;--success-bg:#f0fdf4;--success-dark:#15803d;--error:#dc2626;--error-bg:#fef2f2;--reward:#a16207;--reward-bg:#fefce8;--reward-light:#fef3c7;--border:#e2e8f0;--border-dark:#0f172a;--bord:1px solid var(--border);--shadow:0 2px 12px #1a171412, 0 1px 3px #1a17140d;--shadow-sm:0 1px 4px #1a17140f;--serif:"Playfair Display", Georgia, "Times New Roman", serif;--garamond:"EB Garamond", Georgia, "Times New Roman", serif;--mono:"DM Mono", "SF Mono", "Fira Code", "Consolas", monospace;--font:"EB Garamond", Georgia, serif;--pixel:"Playfair Display", Georgia, serif;--vt:"EB Garamond", Georgia, serif;--duo-font:"EB Garamond", Georgia, serif;--sidebar-bg:var(--surface-ink);--code-dark:var(--surface-ink);--duo-sidebar-w:88px;--duo-right-w:300px;--duo-topbar-h:60px}html,body{height:100%}body{font-family:var(--garamond);background:var(--bg);color:var(--text);font-size:16px;line-height:1.7;overflow:hidden}.duo-shell{grid-template-columns:var(--duo-sidebar-w) 1fr var(--duo-right-w);grid-template-rows:var(--duo-topbar-h) 1fr;height:100vh;display:grid;overflow:hidden}.duo-topbar{z-index:50;background:#fff;border-bottom:1px solid #e2e8f0;grid-area:1/1/auto/-1;align-items:center;gap:20px;padding:0 28px;display:flex;position:relative}.topbar-left{position:relative}.course-switcher{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:6px 14px;transition:all .2s;display:flex}.course-switcher:hover{background:#f0fdf4;border-color:#84cc16}.course-icon{font-size:16px}.course-name{color:#0f172a;font-size:14px;font-weight:600}.course-chevron{color:#94a3b8;margin-left:4px;font-size:9px}.tb-sync{color:#94a3b8;font-size:11px}.course-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:200;min-width:240px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}.course-drop-item{cursor:pointer;width:100%;font-family:var(--garamond);color:var(--text);text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;align-items:center;gap:12px;padding:10px 16px;font-size:15px;font-weight:500;transition:background .15s;display:flex}.course-drop-item:last-child{border-bottom:none}.course-drop-item:hover:not(.locked){background:var(--accent-bg)}.course-drop-item.active{background:var(--accent-bg);border-left:2px solid var(--accent)}.course-drop-item.locked{color:var(--text-xsoft);cursor:not-allowed}.cdi-icon{font-size:16px}.cdi-title{flex:1}.cdi-soon{font-family:var(--garamond);color:var(--text-xsoft);letter-spacing:.03em;font-size:10px;font-style:italic}.topbar-center{flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.topbar-brand{width:auto;height:28px;display:block}.topbar-right{align-items:center;gap:12px;display:flex}.stat-chip{border:1px solid var(--border);font-family:var(--garamond);-webkit-user-select:none;user-select:none;color:var(--text);background:0 0;align-items:center;gap:5px;padding:4px 10px;font-size:15px;font-weight:600;display:flex}.stat-chip span:first-child{font-size:15px}.stat-chip.streak span:last-child{color:var(--reward)}.stat-chip.gems span:last-child{color:var(--accent)}.topbar-user{cursor:pointer;position:relative}.tb-avatar{background:var(--accent);color:#fff;width:32px;height:32px;font-family:var(--serif);border:1px solid var(--accent-dark);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.user-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:200;min-width:200px;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.user-drop-email{color:var(--text-soft);font-size:13px;font-family:var(--garamond);border-bottom:1px solid var(--border);margin-bottom:4px;padding:6px 10px}.user-drop-sync{color:var(--success);margin-bottom:4px;padding:4px 10px;font-size:12px;font-style:italic}.user-drop-btn{border:1px solid var(--border);width:100%;color:var(--error);cursor:pointer;font-size:14px;font-family:var(--garamond);text-align:left;letter-spacing:.02em;background:0 0;padding:7px 10px;font-weight:600;display:block}.user-drop-btn:hover{background:var(--error-bg)}.tb-signin{color:#0f172a;cursor:pointer;background:#84cc16;border:none;border-radius:8px;padding:7px 18px;font-size:13px;font-weight:700;transition:background .15s}.tb-signin:hover{background:#65a30d}.duo-sidebar{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;grid-area:2/1;align-items:center;gap:2px;padding:16px 0;display:flex;overflow:hidden}.duo-sidebar-item-wrap{flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.duo-nav-btn{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:80px;height:64px;margin:1px 4px;padding:6px 0;transition:background .15s;display:flex}.duo-nav-btn:hover{background:#f1f5f9}.duo-nav-btn.active{background:#f0fdf4}.duo-nav-icon{font-size:20px;line-height:1}.duo-nav-label{color:#94a3b8;letter-spacing:.07em;text-transform:uppercase;text-align:center;font-size:9px;font-weight:600}.duo-nav-btn.active .duo-nav-label{color:#16a34a}.more-menu{left:calc(var(--duo-sidebar-w) + 6px);z-index:200;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:200px;padding:8px 0;position:absolute;top:0;box-shadow:0 4px 20px #0000001a}.more-item{cursor:pointer;color:#374151;text-align:left;background:0 0;border:none;width:100%;padding:10px 18px;font-size:14px;font-weight:500;transition:background .15s;display:block}.more-item:hover{background:#f8fafc}.more-item.danger{color:#dc2626}.more-item.danger:hover{background:#fef2f2}.more-sep{background:#e2e8f0;height:1px;margin:6px 0}.more-version{color:#94a3b8;padding:6px 18px;font-size:11px}.duo-main{background:var(--bg);grid-area:2/2;overflow-y:auto}.duo-main::-webkit-scrollbar{width:5px}.duo-main::-webkit-scrollbar-track{background:var(--surface)}.duo-main::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.duo-right{background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;grid-area:2/3;gap:16px;padding:20px 16px;display:flex;overflow-y:auto}.duo-right::-webkit-scrollbar{width:4px}.duo-right::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.rp-card{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow-sm);padding:16px 18px}.rp-card-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;display:flex}.rp-card-icon{font-size:16px}.rp-card-title{font-family:var(--serif);color:var(--text);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:700}.streak-count{font-family:var(--serif);color:var(--reward);text-align:center;margin:4px 0 2px;font-size:48px;font-weight:800}.streak-sub{color:var(--text-soft);text-align:center;margin-bottom:18px;font-size:13px;font-style:italic}.streak-dots{justify-content:center;gap:10px;display:flex}.streak-day{flex-direction:column;align-items:center;gap:5px;display:flex}.sd-dot{background:#fff;border:1.5px solid #cbd5e1;border-radius:50%;width:14px;height:14px}.streak-day.lit .sd-dot{background:#16a34a;border-color:#16a34a;box-shadow:0 0 0 3px #dcfce7}.sd-label{color:var(--text-xsoft);letter-spacing:.04em;font-size:10px;font-weight:600}.stats-row{gap:16px;display:flex}.stat-item{flex:1;align-items:center;gap:10px;display:flex}.stat-icon{font-size:22px}.stat-val{font-family:var(--serif);color:var(--text);font-size:20px;font-weight:700;line-height:1}.stat-name{color:var(--text-soft);letter-spacing:.04em;text-transform:uppercase;margin-top:2px;font-size:11px}.hearts-row{justify-content:center;gap:4px;margin:8px 0 6px;font-size:20px;display:flex}.hearts-sub{color:var(--text-soft);text-align:center;font-size:12px;font-style:italic}.quest-item{margin-bottom:14px}.quest-item:last-child{margin-bottom:0}.quest-item.done{opacity:.55}.quest-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.quest-icon{font-size:14px}.quest-label{color:var(--text);font-size:13px;font-weight:500;font-family:var(--garamond);flex:1}.quest-xp{font-family:var(--garamond);color:var(--reward);border:1px solid var(--reward);padding:1px 6px;font-size:11px;font-style:italic}.quest-bar-track{background:var(--surface-2);height:4px;margin-bottom:3px;overflow:hidden}.quest-bar-fill{background:var(--accent);height:100%;transition:width .4s}.quest-progress-text{color:var(--text-xsoft);text-align:right;font-size:11px;font-style:italic}.courses-page{max-width:900px;margin:0 auto;padding:48px 40px 80px}.courses-hero{text-align:center;border-bottom:1px solid var(--border);margin-bottom:48px;padding-bottom:40px}.courses-bird{width:auto;height:48px;margin:0 auto 16px;animation:3s ease-in-out infinite bird-bounce;display:block}@keyframes bird-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.courses-title{font-family:var(--serif);color:var(--text);letter-spacing:.02em;margin-bottom:10px;font-size:28px;font-weight:700;line-height:1.3}.courses-sub{font-family:var(--garamond);color:var(--text-soft);font-size:16px;font-style:italic}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.course-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);gap:16px;padding:20px 18px;transition:all .2s;display:flex}.course-card.active{cursor:pointer}.course-card.active:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 16px #9b1c1c1a}.course-card.inactive{opacity:.5;cursor:not-allowed}.cc-icon{border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.cc-body{flex:1;min-width:0}.cc-title{font-family:var(--serif);color:var(--text);margin-bottom:4px;font-size:16px;font-weight:700}.cc-desc{color:var(--text-soft);margin-bottom:12px;font-size:14px;font-style:italic;line-height:1.55}.cc-bar-wrap{align-items:center;gap:8px;margin-bottom:6px;display:flex}.cc-bar-track{background:var(--surface-2);flex:1;height:3px;overflow:hidden}.cc-bar-fill{height:100%;transition:width .4s}.cc-pct{font-family:var(--garamond);color:var(--text-soft);flex-shrink:0;font-size:12px}.cc-phases{color:var(--accent);letter-spacing:.03em;font-size:12px;font-weight:500}.cc-soon{font-family:var(--garamond);border:1px solid var(--border);color:var(--text-xsoft);padding:2px 8px;font-size:11px;font-style:italic;display:inline-block}.course-hero{background:#fff;border:1.5px solid #e2e8f0;border-radius:20px;align-items:center;gap:40px;margin-bottom:8px;padding:36px 40px;display:flex;box-shadow:0 4px 20px #0000000f}.course-hero-left{flex:1;min-width:0}.course-hero-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.course-chip{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;padding:4px 11px;font-size:11.5px;font-weight:500}.course-hero-title{color:#0f172a;letter-spacing:-.02em;margin:0 0 10px;font-size:2rem;font-weight:800;line-height:1.15}.course-hero-desc{color:#475569;margin:0 0 20px;font-size:13.5px;line-height:1.6}.course-hero-stats{align-items:center;gap:0;margin-bottom:16px;display:flex}.course-stat{text-align:left;padding:0 20px}.course-stat:first-child{padding-left:0}.course-stat-val{color:#0f172a;letter-spacing:-.02em;font-size:1.6rem;font-weight:800;line-height:1;display:block}.course-stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.07em;margin-top:3px;font-size:11px;display:block}.course-stat-sep{background:#e2e8f0;width:1px;height:32px}.course-hero-progress{align-items:center;gap:10px;margin-bottom:20px;display:flex}.course-progress-bar{background:#e2e8f0;border-radius:99px;flex:1;height:6px;overflow:hidden}.course-progress-fill{background:#84cc16;border-radius:99px;min-width:4px;height:100%;transition:width .4s}.course-progress-label{color:#64748b;white-space:nowrap;font-size:12px}.course-hero-cta{color:#0f172a;cursor:pointer;background:#84cc16;border:none;border-radius:10px;padding:10px 22px;font-size:14px;font-weight:700;transition:background .15s}.course-hero-cta:hover{background:#65a30d}.course-hero-right{flex-shrink:0}.course-mascot-blob{background:radial-gradient(circle,#d9f99d 0%,#bbf7d0 50%,#0000 70%);border-radius:50%;justify-content:center;align-items:center;width:170px;height:170px;display:flex;position:relative}.course-mascot-star{color:#86efac;-webkit-user-select:none;user-select:none;font-size:14px;position:absolute}.course-hero-mascot{object-fit:contain;width:130px;height:130px}.roadmap-heading{width:100%;max-width:720px;padding:28px 0 4px}.roadmap-title{color:#0f172a;letter-spacing:-.01em;margin:0 0 4px;font-size:1.25rem;font-weight:700}.roadmap-sub{color:#64748b;margin:0;font-size:13px}.learn-path{flex-direction:column;align-items:center;gap:0;width:100%;padding:28px 28px 80px;display:flex}.course-hero,.roadmap-heading,.roadmap-body,.roadmap-cta-banner{width:100%;max-width:860px}.course-hero-actions{align-items:center;gap:12px;display:flex}.course-hero-outline{color:#0f172a;cursor:pointer;background:0 0;border:1.5px solid #cbd5e1;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:600;transition:border-color .15s}.course-hero-outline:hover{color:#166534;border-color:#84cc16}.roadmap-heading{justify-content:space-between;align-items:center;padding:28px 0 16px;display:flex}.roadmap-count{color:#64748b;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.roadmap-body{grid-template-columns:1fr 240px;align-items:start;gap:20px;display:grid}.roadmap-sections{flex-direction:column;gap:12px;display:flex}.phase-group{background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;overflow:hidden}.phase-group-header{align-items:center;gap:8px;padding:10px 16px;display:flex}.phase-group-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.phase-group-name{text-transform:uppercase;letter-spacing:.07em;flex:1;font-size:12px;font-weight:700}.phase-group-count{color:#94a3b8;font-size:11px;font-weight:500}.phase-row{cursor:pointer;border-top:1px solid #f1f5f9;align-items:center;gap:12px;padding:12px 16px;transition:background .12s;display:flex}.phase-row:hover:not(.phase-row--locked){background:#fafafa}.phase-row--locked{cursor:default;opacity:.6}.phase-row-num{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.phase-row-info{flex:1;min-width:0}.phase-row-title{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;display:block;overflow:hidden}.phase-row-sub{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11.5px;display:block;overflow:hidden}.phase-row-week{color:#94a3b8;white-space:nowrap;flex-shrink:0;font-size:11px}.phase-row-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:600}.badge--done{color:#166534;background:#f0fdf4}.badge--current{color:#1d4ed8;background:#eff6ff}.badge--locked{color:#94a3b8;background:#f8fafc}.roadmap-progress-panel{background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex;position:sticky;top:20px}.progress-panel-title{color:#0f172a;align-self:flex-start;margin:0;font-size:14px;font-weight:700}.progress-ring-wrap{justify-content:center;display:flex}.progress-badge-pill{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.progress-stats-row{border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;justify-content:center;align-items:center;gap:0;width:100%;padding:10px 0;display:flex}.progress-stat{text-align:center;padding:0 16px}.progress-stat-val{color:#0f172a;font-size:1.2rem;font-weight:800;display:block}.progress-stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:10px;display:block}.progress-stat-div{background:#e2e8f0;width:1px;height:28px}.progress-panel-sub{text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;align-self:flex-start;margin:0;font-size:11px;font-weight:700}.rec-item{cursor:pointer;background:#f8fafc;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px 10px;transition:background .12s;display:flex}.rec-item:hover{background:#f0fdf4}.rec-icon{flex-shrink:0;font-size:18px}.rec-info{min-width:0}.rec-title{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.rec-sub{color:#94a3b8;font-size:11px;display:block}.roadmap-cta-banner{background:#0f172a;border-radius:16px;align-items:center;gap:20px;margin-top:32px;padding:28px 36px;display:flex}.roadmap-cta-mascot{object-fit:contain;flex-shrink:0;width:56px;height:56px}.roadmap-cta-text{flex:1}.roadmap-cta-title{color:#fff;margin:0 0 4px;font-size:16px;font-weight:700}.roadmap-cta-sub{color:#94a3b8;margin:0;font-size:13px}.mascot-wrap{flex-direction:column;align-items:center;margin-bottom:12px;display:flex;position:relative}.mascot-bubble{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);max-width:280px;margin-bottom:6px;padding:10px 18px;position:relative}.mascot-bubble p{font-family:var(--garamond);color:var(--text);text-align:center;font-size:14px;font-style:italic;line-height:1.6}.mascot-tail{border-left:7px solid #0000;border-right:7px solid #0000;border-top:10px solid var(--border);width:0;height:0;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.mascot-tail:after{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:8px solid var(--surface);width:0;height:0;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.mascot-bird{width:auto;height:48px;margin-bottom:4px;animation:3s ease-in-out infinite bird-bounce;display:block}@keyframes mascot-bubble-pulse{0%{transform:scale(1)}30%{transform:scale(1.04);box-shadow:0 4px 18px #9b1c1c2e}65%{transform:scale(.98)}to{transform:scale(1)}}.mascot-bubble-pulse{animation:.6s ease-out forwards mascot-bubble-pulse}.mascot-ask-btn{border:1px solid var(--accent);background:var(--accent-bg);color:var(--accent);font-family:var(--garamond);letter-spacing:.04em;cursor:pointer;margin-top:8px;padding:5px 14px;font-size:12px;font-weight:600;transition:all .15s}.mascot-ask-btn:hover{background:var(--accent);color:#fff}.mascot-popover{background:var(--bg);border:1px solid var(--border);width:280px;box-shadow:var(--shadow);z-index:100;flex-direction:column;gap:8px;padding:12px 14px;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.mascot-popover-head{font-family:var(--garamond);color:var(--text-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:8px;font-size:12px;font-style:italic;display:flex}.mascot-popover-head button{cursor:pointer;color:var(--text-soft);background:0 0;border:none;padding:0 2px;font-size:14px}.mascot-popover-head button:hover{color:var(--text)}.mascot-popover-input{border:1px solid var(--border);width:100%;font-family:var(--garamond);background:var(--surface);color:var(--text);box-sizing:border-box;outline:none;padding:7px 10px;font-size:14px}.mascot-popover-input:focus{border-color:var(--accent)}.mascot-popover-send{background:var(--accent);color:#fff;font-family:var(--garamond);cursor:pointer;letter-spacing:.03em;border:none;align-self:flex-end;padding:5px 14px;font-size:13px;font-weight:600;transition:background .15s}.mascot-popover-send:hover:not(:disabled){background:var(--accent-dark)}.mascot-popover-send:disabled{opacity:.45;cursor:not-allowed}.mascot-popover-reply{font-family:var(--garamond);color:var(--text);background:var(--accent-bg);border-left:3px solid var(--accent);padding:8px 12px;font-size:14px;font-style:italic;line-height:1.65}.mascot-popover-again{border:1px solid var(--border);font-family:var(--garamond);color:var(--text-soft);cursor:pointer;background:0 0;align-self:flex-end;padding:4px 10px;font-size:12px;transition:all .15s}.mascot-popover-again:hover{border-color:var(--accent);color:var(--accent)}.mascot-popover-error{color:var(--error);font-size:12px;font-style:italic}.section-banner{background:var(--surface-ink);border:1px solid var(--border-dark);align-items:baseline;gap:12px;margin-bottom:24px;padding:10px 20px;display:flex}.sb-label{font-family:var(--serif);color:#ffffffe6;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:700}.sb-sub{font-family:var(--garamond);color:#ffffff8c;font-size:16px;font-style:italic}.path-nodes{flex-direction:column;align-items:center;display:flex;position:relative}.path-node-row{width:100%;transform:translateX(var(--node-offset,0px));flex-direction:column;align-items:center;margin-bottom:36px;display:flex;position:relative}.path-node-row+.path-node-row:before{content:"";background:var(--border);width:1px;height:30px;position:absolute;top:-32px;left:50%;transform:translate(-50%)}.path-node-wrap{flex-direction:column;align-items:center;gap:10px;display:flex}.path-node{border:1px solid var(--border);cursor:pointer;width:68px;height:68px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.path-node:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #1a17141f}.path-node:disabled{cursor:not-allowed}.path-node.done{background:var(--success);border-color:var(--success-dark);box-shadow:0 2px 8px #3d674140}.path-node.done:hover{background:var(--success-dark)}.path-node.current{background:var(--accent);border-color:var(--accent-dark);animation:2.5s infinite node-pulse;box-shadow:0 2px 16px #9b1c1c4d}@keyframes node-pulse{0%,to{box-shadow:0 2px 8px #9b1c1c4d,0 0 #9b1c1c33}50%{box-shadow:0 2px 8px #9b1c1c4d,0 0 0 10px #9b1c1c00}}.path-node.locked{background:var(--surface-2);border-color:var(--border);box-shadow:none;opacity:.75;animation:none}.node-icon{font-family:var(--serif);color:#fff;font-size:18px;font-weight:700;line-height:1}.locked-icon{opacity:.45;font-size:18px}.node-label{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.node-num{font-family:var(--garamond);color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-style:italic}.node-title{font-family:var(--garamond);color:var(--text);max-width:120px;font-size:12px;font-weight:600;line-height:1.35}.node-label.locked .node-num,.node-label.locked .node-title{color:var(--text-xsoft)}.node-label.done .node-num{color:var(--success-dark)}.node-label.current .node-num{color:var(--accent)}.path-node-wrap.is-current .path-node:after{content:"●";color:var(--accent);font-size:10px;animation:2s infinite dot-pulse;position:absolute;top:-10px;right:-6px}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.duo-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;padding:60px 40px;display:flex}.placeholder-icon{font-size:56px}.placeholder-title{font-family:var(--serif);color:var(--text);font-size:22px;font-weight:700;line-height:1.4}.placeholder-sub{font-family:var(--garamond);color:var(--text-soft);max-width:380px;font-size:16px;font-style:italic;line-height:1.6}.back-to-path{border:1px solid var(--border);background:var(--surface);cursor:pointer;font-family:var(--garamond);color:var(--text-soft);letter-spacing:.02em;align-items:center;gap:6px;margin:24px 44px 0;padding:7px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.back-to-path:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}@media (max-width:900px){.duo-shell{grid-template-columns:var(--duo-sidebar-w) 1fr;grid-template-rows:var(--duo-topbar-h) 1fr auto}.duo-right{display:none}}@media (max-width:600px){.duo-shell{grid-template-columns:1fr;grid-template-rows:var(--duo-topbar-h) 1fr 60px}.duo-sidebar{border-top:1px solid #ffffff1a;border-right:none;flex-direction:row;grid-area:3/1;justify-content:space-around;height:60px;padding:4px 0}.duo-nav-btn{width:60px;height:52px}.topbar-brand,.course-name{display:none}}.shell{height:100vh;display:flex;overflow:hidden}.main{flex:1;overflow-y:auto}.main::-webkit-scrollbar{width:5px}.main::-webkit-scrollbar-thumb{background:var(--border)}.phase-view{max-width:800px;margin:0 auto;padding:48px 48px 100px}.phase-title{font-family:var(--serif);color:var(--text);letter-spacing:.01em;margin-bottom:6px;font-size:22px;font-weight:700;line-height:1.4}.phase-title:before{content:"— ";color:var(--accent);font-style:normal}.phase-week{font-family:var(--garamond);color:var(--text-soft);letter-spacing:.03em;margin-bottom:36px;font-size:15px;font-style:italic}.section{margin-bottom:36px}.section-label{font-family:var(--serif);text-transform:uppercase;letter-spacing:.12em;color:var(--text-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:10px;font-size:11px;font-weight:700;display:flex}.section-progress{font-family:var(--garamond);color:var(--accent);font-size:14px;font-style:italic;font-weight:500}.phase-progress-bar-wrap{align-items:center;gap:12px;margin-bottom:28px;padding:16px 0 0;display:flex}.phase-nav-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:30px;height:30px;color:var(--text-soft);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:400;line-height:1;transition:all .2s;display:flex}.phase-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.phase-nav-btn:disabled{opacity:.25;cursor:default}.phase-progress-track{background:var(--surface-2);flex:1;height:4px;position:relative;overflow:visible}.phase-progress-fill{background:var(--success);height:100%;transition:width .5s}.phase-progress-dot{background:var(--bg);border:2px solid var(--success);z-index:2;border-radius:50%;width:12px;height:12px;transition:left .5s;position:absolute;top:50%;transform:translateY(-50%)}.phase-progress-pct{font-family:var(--garamond);color:var(--text-soft);text-align:right;flex-shrink:0;min-width:36px;font-size:13px;font-style:italic}.concept-card{border-bottom:1px solid var(--border);background:0 0;margin-bottom:0;overflow:hidden}.concept-card:first-child{border-top:1px solid var(--border)}.concept-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:13px 0;display:flex}.concept-head:hover{background:0 0}.concept-head:hover .concept-title{color:var(--accent)}.concept-check{border:1px solid var(--border);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:all .15s;display:flex}.concept-check.checked{background:var(--success);border-color:var(--success)}.concept-check.checked:after{content:"✓";color:#fff;font-size:9px;font-weight:700}.concept-title{font-family:var(--garamond);color:var(--text);flex:1;font-size:16px;font-weight:600;transition:color .15s}.concept-arrow{color:var(--text-xsoft);flex-shrink:0;font-size:10px;transition:transform .2s}.concept-arrow.open{transform:rotate(90deg)}.concept-body{font-family:var(--garamond);color:var(--text);border-left:2px solid var(--accent);margin-bottom:8px;margin-left:0;padding:4px 28px 20px;font-size:15px;line-height:1.8}.concept-body p{margin:8px 0}.concept-body strong{color:var(--text);font-weight:600}.concept-body em{font-style:italic}.concept-body ul,.concept-body ol{margin:8px 0;padding-left:20px}.concept-body li{margin:4px 0}.concept-body code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);padding:1px 6px;font-size:12px}.concept-body .example{background:var(--accent-bg);border-left:3px solid var(--accent);margin:12px 0;padding:12px 16px;font-size:14px}.concept-body .warning{background:var(--reward-bg);border-left:3px solid var(--reward);margin:12px 0;padding:12px 16px;font-size:14px}.concept-body .diagram{background:var(--surface-ink);color:#e4e4e7;font-family:var(--mono);white-space:pre-wrap;border:1px solid #ffffff1a;margin:12px 0;padding:14px 16px;font-size:12px;line-height:1.75}.assignment{border-bottom:1px solid var(--border);background:0 0;margin-bottom:0;overflow:hidden}.assignment:first-child{border-top:1px solid var(--border)}.asgn-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:13px 0;display:flex}.asgn-head:hover .asgn-title{color:var(--accent)}.asgn-check{border:1px solid var(--border);cursor:pointer;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:all .15s;display:flex}.asgn-check.checked{background:var(--success);border-color:var(--success)}.asgn-check.checked:after{content:"✓";color:#fff;font-size:9px;font-weight:700}.asgn-title{font-family:var(--garamond);color:var(--text);flex:1;font-size:16px;font-weight:600;transition:color .15s}.asgn-toggle{color:var(--text-xsoft);flex-shrink:0;font-size:10px;transition:transform .2s}.asgn-toggle.open{transform:rotate(90deg)}.asgn-body{font-family:var(--garamond);border-left:2px solid var(--border);margin-bottom:8px;padding:4px 28px 20px;font-size:15px;line-height:1.8}.asgn-body pre{background:var(--surface-ink);color:#e4e4e7;font-family:var(--mono);white-space:pre-wrap;border:1px solid #ffffff14;margin:10px 0;padding:16px;font-size:12px;line-height:1.75;overflow-x:auto}.asgn-body p{margin:8px 0;line-height:1.8}.asgn-body .week-plan{font-family:var(--mono);background:var(--surface-ink);color:#e4e4e7;white-space:pre-wrap;border:1px solid #ffffff14;margin-top:10px;padding:14px;font-size:12px;line-height:1.8}.notes-area{border:1px solid var(--border);width:100%;min-height:90px;font-family:var(--garamond);resize:vertical;background:var(--bg);color:var(--text);outline:none;margin-top:12px;padding:12px 14px;font-size:15px;line-height:1.7}.notes-area:focus{border-color:var(--accent)}.notes-label{font-family:var(--garamond);color:var(--text-soft);letter-spacing:.04em;margin-top:16px;font-size:11px;font-style:italic}.pq{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.pq:last-child{border-bottom:none}.pq-check{border:1px solid var(--border);cursor:pointer;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-top:3px;transition:all .15s}.pq-check.checked{background:var(--success);border-color:var(--success)}.pq-text{font-family:var(--garamond);flex:1;font-size:15px;line-height:1.7}.pq-q{margin-bottom:8px;font-weight:600}.pq-opts{gap:5px;margin:6px 0 4px;padding:0;list-style:none;display:grid}.pq-opt{border:1px solid var(--border);cursor:pointer;background:var(--surface);align-items:baseline;gap:8px;padding:7px 12px;font-size:14px;line-height:1.5;transition:all .15s;display:flex}.pq-opt:hover{border-color:var(--accent);background:var(--accent-bg)}.pq-opt .pq-letter{font-family:var(--garamond);color:var(--accent);flex-shrink:0;min-width:16px;font-size:12px;font-style:italic}.pq-opt.correct{background:var(--success-bg);border-color:var(--success)}.pq-opt.wrong{background:var(--error-bg);border-color:var(--error)}.pq-answer{color:var(--success-dark);background:var(--success-bg);border:1px solid var(--success);margin-top:8px;padding:7px 12px;font-size:13px;font-style:italic;display:none}.pq-answer.show{display:block}.pq-hint{color:var(--muted);margin-bottom:6px;font-size:13px;font-style:italic}.pq-submit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;margin-top:10px;padding:7px 20px;font-size:13px;font-weight:600;transition:opacity .15s}.pq-submit-btn:hover{opacity:.85}.pq-match-grid{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.pq-match-col{flex-direction:column;gap:6px;display:flex}.pq-match-item{border:1px solid var(--border);background:var(--surface);cursor:pointer;padding:8px 12px;font-size:13px;line-height:1.4;transition:all .15s}.pq-match-item.selected{border-color:var(--accent);background:var(--accent-bg)}.pq-match-item.matched{background:#f8fafc;border-color:#94a3b8}.pq-match-item.correct{background:var(--success-bg);border-color:var(--success)}.pq-match-item.wrong{background:var(--error-bg);border-color:var(--error)}.pq-fill-template{font-family:var(--mono,monospace);border:1px solid var(--border);word-break:break-all;background:#f1f5f9;margin:8px 0;padding:10px 14px;font-size:14px;line-height:1.6}.pq-fill-opts{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.pq-fill-chip{border:1px solid var(--border);background:var(--surface);font-size:13px;font-family:var(--mono,monospace);cursor:pointer;padding:6px 16px;transition:all .15s}.pq-fill-chip:hover{border-color:var(--accent)}.pq-fill-chip.selected{border-color:var(--accent);background:var(--accent-bg);font-weight:600}.pq-fill-chip.correct{background:var(--success-bg);border-color:var(--success)}.pq-fill-chip.wrong{background:var(--error-bg);border-color:var(--error)}.pq-order-list{flex-direction:column;gap:6px;margin:10px 0;display:flex}.pq-order-item{border:1px solid var(--border);background:var(--surface);align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.pq-order-item.correct{background:var(--success-bg);border-color:var(--success)}.pq-order-item.wrong{background:var(--error-bg);border-color:var(--error)}.pq-order-num{background:var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.pq-order-text{flex:1;line-height:1.4}.pq-order-arrows{flex-shrink:0;gap:4px;display:flex}.pq-order-arrows button{border:1px solid var(--border);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;transition:all .1s;display:flex}.pq-order-arrows button:hover:not(:disabled){border-color:var(--accent)}.pq-order-arrows button:disabled{opacity:.3;cursor:not-allowed}.pq-cv-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0;display:grid}.pq-cv-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:center;padding:14px 12px;transition:all .15s}.pq-cv-card:hover{border-color:var(--accent);background:var(--accent-bg)}.pq-cv-card.correct{background:var(--success-bg);border-color:var(--success)}.pq-cv-card.wrong{background:var(--error-bg);border-color:var(--error)}.pq-cv-label{margin-bottom:4px;font-size:14px;font-weight:600}.pq-cv-why{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.4}.prof-wrap{flex-direction:column;gap:24px;max-width:900px;margin:0 auto;padding:28px 32px 48px;display:flex}.prof-hero{border:1.5px solid var(--border);background:#fff;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;padding:28px 32px;display:flex}.prof-hero-left{flex:1;align-items:flex-start;gap:20px;display:flex}.prof-hero-right{flex-shrink:0}.prof-hero-mascot{opacity:.92;width:90px}.prof-avatar{background:#e2e8f0;border:2px solid #cbd5e1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.prof-avatar-img{object-fit:cover;width:100%;height:100%}.prof-avatar-letter{color:#475569;font-size:26px;font-weight:700}.prof-hero-info{flex-direction:column;gap:5px;display:flex}.prof-name{font-family:var(--serif);color:var(--text);margin:0;font-size:26px;font-weight:700}.prof-email{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.prof-copy-btn{cursor:pointer;color:var(--muted);opacity:.6;background:0 0;border:none;padding:0;font-size:14px;line-height:1;transition:opacity .15s}.prof-copy-btn:hover{opacity:1}.prof-tagline{color:#475569;font-size:13px;font-style:italic}.prof-meta{gap:14px;margin-top:2px;display:flex}.prof-meta-item{color:var(--muted);font-size:12px}.prof-stats-row{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.prof-stat-card{border:1.5px solid var(--border);background:#fff;border-radius:14px;flex-direction:column;gap:4px;padding:18px 16px 14px;display:flex}.prof-stat-top{align-items:center;gap:6px;margin-bottom:4px;display:flex}.prof-stat-icon{font-size:16px}.prof-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:600}.prof-stat-val{font-family:var(--serif);font-size:28px;font-weight:800;line-height:1}.prof-stat-sub{color:var(--muted);font-size:12px}.prof-bottom-grid{grid-template-columns:1.6fr 1fr;align-items:start;gap:16px;display:grid}.prof-section{border:1.5px solid var(--border);background:#fff;border-radius:14px;padding:20px 20px 18px}.prof-badges-section{padding-bottom:22px}.prof-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.prof-section-title{font-family:var(--serif);color:var(--text);margin:0;font-size:16px;font-weight:700}.prof-tabs{gap:4px;display:flex}.prof-tab{border:1.5px solid var(--border);cursor:pointer;color:var(--muted);background:0 0;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s}.prof-tab.active{color:#16a34a;background:#f0fdf4;border-color:#84cc16}.prof-course-list{flex-direction:column;gap:10px;display:flex}.prof-course-card{border:1.5px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.prof-course-card--done{background:#f0fdf4;border-color:#86efac}.prof-course-top{align-items:center;gap:10px;display:flex}.prof-course-icon{flex-shrink:0;font-size:22px}.prof-course-meta{flex:1}.prof-course-title{color:var(--text);font-size:14px;font-weight:700}.prof-course-section{color:var(--muted);font-size:12px}.prof-course-pct{color:#84cc16;font-size:13px;font-weight:700}.prof-done-badge{color:#fff;background:#84cc16;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.prof-course-foot{justify-content:space-between;display:flex}.prof-course-count{color:var(--muted);font-size:11px}.prof-bar-wrap{background:#f1f5f9;border-radius:3px;height:6px;overflow:hidden}.prof-bar-fill{border-radius:3px;height:100%;transition:width .4s}.prof-next-lesson{border:1px solid var(--border);background:#f8fafc;border-radius:10px;flex-direction:column;gap:4px;margin-top:2px;padding:12px 14px;display:flex}.prof-next-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:10px;font-weight:700}.prof-next-title{color:var(--text);font-size:13px;font-weight:600}.prof-next-sub{color:var(--muted);font-size:11px}.prof-continue-btn{color:#0f172a;cursor:pointer;background:#84cc16;border:none;border-radius:8px;align-self:flex-start;margin-top:6px;padding:8px 18px;font-size:13px;font-weight:700;transition:opacity .15s}.prof-continue-btn:hover{opacity:.88}.prof-empty{color:var(--muted);padding:8px 0;font-size:13px;font-style:italic}.prof-time-hero{align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.prof-time-big{font-family:var(--serif);color:var(--text);font-size:32px;font-weight:800}.prof-time-label{color:var(--muted);font-size:12px}.prof-bar-chart{align-items:flex-end;gap:6px;height:90px;display:flex}.prof-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.prof-bar-item{border-radius:4px 4px 0 0;width:100%;min-height:4px;transition:height .3s}.prof-bar-day{color:var(--muted);font-size:10px;font-weight:500}.prof-badges-grid{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.prof-badge{border:1.5px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;transition:all .15s;display:flex}.prof-badge.earned{background:#fffbeb;border-color:#fcd34d}.prof-badge.locked{opacity:.4;filter:grayscale()}.prof-badge-icon{font-size:26px}.prof-badge-label{color:var(--text);font-size:11px;font-weight:700;line-height:1.2}.prof-badge-desc{color:var(--muted);font-size:10px;line-height:1.3;display:none}.prof-badge:hover .prof-badge-desc{display:block}.prof-badge:hover{opacity:1;filter:none;background:#f0fdf4;border-color:#84cc16}.home-hero{text-align:center;padding:60px 0 40px}.home-hero h1{font-family:var(--serif);letter-spacing:.01em;color:var(--text);margin-bottom:14px;font-size:40px;font-weight:700;line-height:1.2}.home-hero h1 span{color:var(--accent);font-style:italic}.home-hero p{font-family:var(--garamond);color:var(--text-soft);margin-bottom:32px;font-size:18px;font-style:italic}.hero-stats{color:var(--text-soft);justify-content:center;gap:28px;margin-bottom:40px;font-size:15px;display:flex}.hero-stats span{color:var(--text);font-weight:600}.home-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;display:grid}.home-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;padding:18px 16px;transition:all .2s}.home-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 16px #9b1c1c14}.hc-num{font-family:var(--garamond);color:var(--text-xsoft);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-style:italic}.hc-title{font-family:var(--garamond);margin:8px 0 12px;font-size:15px;font-weight:600;line-height:1.45}.hc-bar{background:var(--surface-2);height:3px;overflow:hidden}.hc-fill{background:var(--accent);height:100%;transition:width .4s}.hc-stat{font-family:var(--garamond);color:var(--text-soft);margin-top:8px;font-size:13px;font-style:italic}.ide-wrap{border:1px solid var(--border);box-shadow:var(--shadow-sm);margin-top:14px;overflow:hidden}.ide-toolbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:7px 12px;display:flex}.ide-lang{letter-spacing:.06em;color:var(--text-soft);text-transform:uppercase;font-size:11px;font-weight:600;font-family:var(--garamond);flex:1}.ide-dot{color:var(--success);margin-right:2px}.ide-btn{border:1px solid var(--border);background:var(--bg);cursor:pointer;color:var(--text);font-size:12px;font-family:var(--garamond);letter-spacing:.02em;padding:4px 12px;font-weight:600;transition:all .15s}.ide-btn:hover{border-color:var(--text-soft);background:var(--surface-2)}.run-btn{background:var(--success-bg)!important;border-color:var(--success)!important;color:var(--success-dark)!important}.run-btn:disabled{opacity:.5;cursor:not-allowed}.colab-btn{background:var(--reward-bg)!important;border-color:var(--reward)!important;color:#92400e!important}.ide-out{font-family:var(--mono);background:var(--surface-ink);color:#e4e4e7;white-space:pre-wrap;border-top:1px solid #ffffff14;max-height:260px;padding:14px 16px;font-size:12px;line-height:1.75;overflow-y:auto}.ide-out .out-err{color:#fca5a5}.ide-out .out-info{color:#93c5fd}.ide-status{color:var(--text-soft);background:var(--surface);border-top:1px solid var(--border);padding:5px 12px;font-size:11px;font-style:italic}.CodeMirror{min-height:180px;font-family:var(--mono)!important;height:auto!important;font-size:12px!important;line-height:1.75!important}.CodeMirror-scroll{min-height:180px;max-height:480px}#ai-fab{z-index:500;background:var(--accent);border:1px solid var(--accent-dark);cursor:pointer;color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;transition:all .2s;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 16px #9b1c1c4d}#ai-fab:hover{background:var(--accent-dark);transform:translateY(-2px);box-shadow:0 6px 20px #9b1c1c66}#ai-panel{z-index:500;background:var(--bg);border:1px solid var(--border);opacity:0;pointer-events:none;flex-direction:column;width:380px;max-width:calc(100vw - 40px);height:520px;max-height:calc(100vh - 120px);transition:transform .2s,opacity .2s;display:flex;position:fixed;bottom:88px;right:28px;overflow:hidden;transform:scale(.94)translateY(14px);box-shadow:0 8px 32px #1a171426}#ai-panel.open{opacity:1;pointer-events:all;transform:scale(1)translateY(0)}.ai-head{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex}.ai-head-icon{flex-shrink:0;font-size:18px}.ai-head-info{flex:1}.ai-head-info h3{font-family:var(--serif);letter-spacing:.02em;margin:0;font-size:14px;font-weight:700}.ai-head-info p{font-family:var(--garamond);color:var(--text-soft);margin:0;font-size:13px;font-style:italic}.ai-head-close{cursor:pointer;color:var(--text-soft);background:0 0;border:none;padding:2px 6px;font-size:18px}.ai-head-close:hover{color:var(--text)}.ai-ctx-bar{color:var(--text-soft);background:var(--accent-bg);border-bottom:1px solid var(--border);flex-shrink:0;padding:6px 16px;font-size:12px;font-style:italic}.ai-ctx-bar span{color:var(--accent);font-style:normal;font-weight:600}.ai-msgs{flex-direction:column;flex:1;gap:12px;padding:14px 16px;display:flex;overflow-y:auto}.ai-msg{flex-direction:column;display:flex}.ai-msg.you{align-items:flex-end}.ai-msg.bot{align-items:flex-start}.ai-bubble{font-family:var(--garamond);border:1px solid var(--border);max-width:90%;padding:10px 14px;font-size:14px;line-height:1.65}.ai-msg.you .ai-bubble{background:var(--accent-bg);border-color:var(--accent)}.ai-msg.bot .ai-bubble{background:var(--surface)}.ai-bubble p{margin:5px 0}.ai-bubble p:first-child{margin-top:0}.ai-bubble p:last-child{margin-bottom:0}.ai-bubble strong{font-weight:600}.ai-bubble em{font-style:italic}.ai-bubble code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);padding:1px 5px;font-size:12px}.ai-bubble pre{background:var(--surface-ink);color:#e4e4e7;font-family:var(--mono);white-space:pre-wrap;border:1px solid #ffffff1a;margin:8px 0;padding:12px;font-size:12px;line-height:1.65;overflow-x:auto}.ai-bubble ul,.ai-bubble ol{margin:5px 0;padding-left:18px}.ai-bubble li{margin:3px 0}.ai-typing-dot{align-items:center;gap:5px;padding:12px 16px;display:flex}.ai-typing-dot span{background:var(--text-xsoft);border-radius:50%;width:6px;height:6px;animation:1s infinite ai-blink}.ai-typing-dot span:nth-child(2){animation-delay:.2s}.ai-typing-dot span:nth-child(3){animation-delay:.4s}@keyframes ai-blink{0%,80%,to{opacity:.3}40%{opacity:1}}.ai-chips{border-top:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:6px;padding:8px 16px;display:flex}.ai-chip{font-family:var(--garamond);border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text-soft);white-space:nowrap;padding:4px 10px;font-size:13px;font-style:italic;transition:all .15s}.ai-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.ai-foot{border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:8px;padding:10px 14px;display:flex}.ai-input{border:1px solid var(--border);font-size:15px;font-family:var(--garamond);background:var(--bg);color:var(--text);resize:none;outline:none;flex:1;max-height:90px;padding:9px 13px;line-height:1.5}.ai-input:focus{border-color:var(--accent)}.ai-send{background:var(--accent);cursor:pointer;color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;transition:all .15s;display:flex}.ai-send:hover{background:var(--accent-dark);transform:translateY(-1px)}.ai-send:disabled{opacity:.4;cursor:not-allowed;transform:none}.ai-err{color:var(--error);flex-shrink:0;padding:6px 16px;font-size:13px;font-style:italic}.modal-overlay{z-index:1000;background:#1a171480;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg);border:1px solid var(--border);width:420px;max-width:calc(100vw - 32px);box-shadow:0 16px 48px #1a171433}.modal-head{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h2{font-family:var(--serif);letter-spacing:.02em;margin:0;font-size:16px;font-weight:700}.modal-close{cursor:pointer;color:var(--text-soft);background:0 0;border:none;padding:2px 6px;font-size:20px}.modal-close:hover{color:var(--text)}.modal-body{padding:22px}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.modal-input{border:1px solid var(--border);width:100%;font-size:15px;font-family:var(--garamond);background:var(--bg);color:var(--text);outline:none;margin-bottom:12px;padding:9px 13px;display:block}.modal-input:focus{border-color:var(--accent)}.modal-success{color:var(--success-dark);background:var(--success-bg);border:1px solid var(--success);margin-top:10px;padding:10px 14px;font-size:14px;font-style:italic}.modal-error{color:var(--error);background:var(--error-bg);border:1px solid var(--error);margin-top:10px;padding:8px 12px;font-size:13px;font-style:italic}.modal-label{font-family:var(--garamond);color:var(--text-soft);margin-bottom:5px;font-size:12px;font-style:italic}.auth-mode-tabs{border-bottom:1px solid var(--border);display:flex}.auth-mode-tab{cursor:pointer;font-family:var(--garamond);color:var(--text-soft);letter-spacing:.03em;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:13px;transition:all .15s}.auth-mode-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.auth-mode-tab:hover:not(.active){background:var(--surface)}.modal-btn{border:1px solid var(--border);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--garamond);background:var(--surface);color:var(--text);letter-spacing:.04em;padding:8px 20px;transition:all .15s}.modal-btn:hover{border-color:var(--text-soft)}.modal-btn.primary{background:var(--accent);border-color:var(--accent-dark);color:#fff}.modal-btn.primary:hover{background:var(--accent-dark)}.modal-btn.primary:disabled{opacity:.5;cursor:not-allowed}#colab-toast{background:var(--surface-ink);color:#e4e4e7;box-shadow:var(--shadow);font-family:var(--garamond);z-index:999;border:1px solid #ffffff1f;max-width:300px;padding:14px 18px;font-size:14px;line-height:1.65;position:fixed;bottom:24px;right:24px}#colab-toast strong{color:var(--reward-light)}#colab-toast code{font-family:var(--mono);background:#ffffff1a;padding:1px 5px;font-size:12px}.menu-toggle{z-index:100;border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:center;width:34px;height:34px;font-size:18px;line-height:34px;display:none;position:fixed;top:12px;left:12px}.sidebar{background:var(--surface-ink);border-right:1px solid #ffffff0f;flex-direction:column;width:268px;min-width:268px;transition:left .25s;display:flex;overflow:hidden}.sidebar-head{border-bottom:1px solid #ffffff14;padding:22px 18px 16px}.sidebar-head h1{font-family:var(--serif);color:var(--text-light);letter-spacing:.04em;font-size:13px;font-weight:700;line-height:1.5}.sidebar-logotype{width:auto;height:22px;margin-bottom:4px;display:block}.sidebar-head p{font-family:var(--garamond);color:#fff6;margin-top:4px;font-size:14px;font-style:italic}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a}.phase-btn{cursor:pointer;text-align:left;width:100%;font-family:var(--garamond);color:#ffffff8c;background:0 0;border:none;border-bottom:1px solid #ffffff0a;align-items:center;gap:10px;padding:8px 10px;font-size:15px;transition:all .15s;display:flex}.phase-btn:hover{color:#fffc;background:#ffffff0d}.phase-btn.active{color:#fff;border-left:2px solid var(--accent);background:#9b1c1c26}.phase-btn .num{width:22px;height:22px;font-family:var(--garamond);color:#fff6;border:1px solid #ffffff26;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-style:italic;display:flex}.phase-btn.done .num{background:var(--success);border-color:var(--success);color:#fff;font-size:10px;font-style:normal}.phase-btn.in-progress .num{color:#fca5a5;border-color:#9b1c1c99}.phase-btn.active .num{border-color:var(--accent);color:#fff}.phase-btn .label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.stats-bar{font-family:var(--garamond);color:#ffffff59;border-top:1px solid #ffffff14;padding:14px 18px;font-size:14px}.stats-bar .bar-track{background:#ffffff14;height:3px;margin-top:8px;overflow:hidden}.stats-bar .bar-fill{background:var(--accent);height:100%;transition:width .4s}.reset-btn{font-family:var(--garamond);cursor:pointer;color:#ffffff4d;letter-spacing:.02em;background:0 0;border:1px solid #ffffff1a;margin-top:12px;padding:6px 14px;font-size:14px;font-style:italic}.reset-btn:hover{border-color:var(--error);color:#fca5a5}.sb-section{border-top:1px solid #ffffff14;padding:12px 18px}.sb-btn{cursor:pointer;color:#fff9;width:100%;font-size:14px;font-family:var(--garamond);text-align:center;letter-spacing:.02em;background:0 0;border:1px solid #ffffff1f;margin-bottom:6px;padding:7px 12px;transition:background .15s;display:block}.sb-btn:last-child{margin-bottom:0}.sb-btn:hover{background:#ffffff0f}.sb-btn.primary{color:#fca5a5;background:#9b1c1c33;border-color:#9b1c1c99}.sb-btn.primary:hover{background:#9b1c1c4d}.sb-btn.danger{color:#fca5a5;background:#9b1c1c1a;border-color:#9b1c1c66}.sb-user{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sb-avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:flex}.sb-email{color:#fff6;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-style:italic;overflow:hidden}.sb-dot{background:var(--success);border-radius:50%;width:6px;height:6px}.sb-sync{color:#ffffff40;margin-bottom:6px;font-size:12px;font-style:italic}@media (max-width:700px){.sidebar{z-index:99;height:100%;position:fixed;left:-280px}.sidebar.open{left:0}.menu-toggle{display:block}.phase-view{padding:32px 20px 80px}}.lp{color:#0f172a;background:#fff;height:100vh;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;overflow-y:auto}.lp-nav{z-index:100;background:#0f172a;border-bottom:1px solid #ffffff14;position:sticky;top:0}.lp-nav-inner{align-items:center;gap:40px;max-width:1180px;height:64px;margin:0 auto;padding:0 32px;display:flex}.lp-nav-logo{filter:brightness(0)invert();width:auto;height:28px}.lp-nav-links{flex:1;gap:28px;display:flex}.lp-nav-link{color:#ffffffb3;cursor:pointer;letter-spacing:.01em;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.lp-nav-link:hover{color:#fff}.lp-nav-actions{align-items:center;gap:10px;display:flex}.lp-nav-user{color:#ffffff80;font-size:13px}.lp-btn{cursor:pointer;letter-spacing:.01em;white-space:nowrap;border:none;border-radius:8px;padding:9px 20px;font-size:14px;font-weight:600;transition:all .15s}.lp-btn--primary{color:#0f172a;background:#84cc16}.lp-btn--primary:hover{background:#65a30d}.lp-btn--outline{color:#fff;background:0 0;border:1.5px solid #ffffff4d}.lp-btn--outline:hover{border-color:#fff}.lp-btn--outline-dark{color:#0f172a;background:0 0;border:1.5px solid #cbd5e1}.lp-btn--outline-dark:hover{border-color:#0f172a}.lp-btn--ghost{color:#ffffffb3;background:0 0}.lp-btn--ghost:hover{color:#fff;background:#ffffff14}.lp-btn--lg{border-radius:10px;padding:13px 28px;font-size:15px}.lp-badge{color:#166534;letter-spacing:.01em;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:100px;align-items:center;gap:6px;padding:5px 14px;font-size:13px;font-weight:600;display:inline-flex}.lp-badge--green{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.lp-hero{background:#fff;padding:80px 32px 60px}.lp-hero-inner{grid-template-columns:1fr 420px;align-items:center;gap:60px;max-width:1180px;margin:0 auto;display:grid}.lp-hero-left{flex-direction:column;gap:24px;display:flex}.lp-hero-heading{color:#0f172a;letter-spacing:-.02em;font-size:58px;font-weight:800;line-height:1.1}.lp-hero-accent{color:#84cc16}.lp-hero-sub{color:#475569;max-width:480px;font-size:18px;line-height:1.65}.lp-hero-btns{flex-wrap:wrap;gap:12px;display:flex}.lp-hero-tags{flex-wrap:wrap;gap:8px;display:flex}.lp-tag{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:100px;padding:5px 14px;font-size:13px;font-weight:500}.lp-hero-right{justify-content:center;align-items:center;height:380px;display:flex;position:relative}.lp-hero-blob{opacity:.5;background:radial-gradient(circle,#d9f99d 0%,#bbf7d0 50%,#0000 70%);border-radius:50%;width:340px;height:340px;position:absolute}.lp-hero-mascot{z-index:1;filter:drop-shadow(0 20px 40px #84cc1640);width:auto;height:280px;animation:4s ease-in-out infinite lp-float;position:relative}@keyframes lp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.lp-features{background:#fff;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1180px;margin:0 auto;padding:48px 32px;display:grid}.lp-feature-card{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:10px;padding:24px 20px;transition:all .2s;display:flex}.lp-feature-card:hover{border-color:#84cc16;transform:translateY(-2px)}.lp-feature-icon{font-size:28px}.lp-feature-title{color:#0f172a;font-size:15px;font-weight:700}.lp-feature-desc{color:#64748b;font-size:13px;line-height:1.6}.lp-courses{background:#f8fafc;padding:80px 32px}.lp-section-inner{max-width:1180px;margin:0 auto}.lp-section-head{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:48px;display:flex}.lp-section-title{color:#0f172a;letter-spacing:-.01em;font-size:36px;font-weight:800}.lp-section-sub{color:#64748b;font-size:16px}.lp-courses-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lp-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:12px;padding:24px;transition:all .2s;display:flex}.lp-card--active{cursor:default}.lp-card--active:hover{border-color:#84cc16;transform:translateY(-2px);box-shadow:0 8px 30px #84cc1626}.lp-card--soon{opacity:.7}.lp-card--enrolled{border-color:#86efac}.lp-card--enrolled:hover{border-color:#16a34a;transform:translateY(-2px);box-shadow:0 8px 30px #16a34a1f}.lp-card-status{letter-spacing:.08em;color:#16a34a;text-transform:uppercase;background:#dcfce7;border-radius:20px;padding:3px 8px;font-size:10px;font-weight:800}.lp-card-icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.lp-card-title{color:#0f172a;font-size:17px;font-weight:700}.lp-card-desc{color:#64748b;flex:1;font-size:14px;line-height:1.6}.lp-card-footer{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.lp-card-phases{color:#94a3b8;font-size:12px;font-weight:500}.lp-card-cta{color:#84cc16;font-size:13px;font-weight:700}.lp-card-badge{letter-spacing:.05em;text-transform:uppercase;color:#94a3b8;background:#f1f5f9;border-radius:100px;padding:3px 10px;font-size:11px;font-weight:700}.lp-cta{background:#0f172a;padding:72px 32px}.lp-cta-inner{flex-wrap:wrap;justify-content:center;align-items:center;gap:40px;max-width:900px;margin:0 auto;display:flex}.lp-cta-mascot{filter:drop-shadow(0 8px 24px #84cc164d);width:auto;height:100px}.lp-cta-text{flex:1;min-width:260px}.lp-cta-title{color:#fff;font-size:30px;font-weight:800;line-height:1.2}.lp-cta-sub{color:#fff9;margin-top:8px;font-size:15px}.lp-footer{background:#0f172a;border-top:1px solid #ffffff14;padding:28px 32px}.lp-footer-inner{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;display:flex}.lp-footer-logo{filter:brightness(0)invert();opacity:.6;width:auto;height:22px}.lp-footer-copy{color:#ffffff59;font-size:13px}@media (max-width:900px){.lp-hero-inner{grid-template-columns:1fr}.lp-hero-right{display:none}.lp-hero-heading{font-size:40px}.lp-courses-grid,.lp-features{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.lp-courses-grid,.lp-features{grid-template-columns:1fr}.lp-hero{padding:48px 20px 40px}.lp-hero-heading{font-size:32px}.lp-nav-links{display:none}.lp-cta-inner{text-align:center;flex-direction:column}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
