@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-outline-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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.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)}.block{display:block}.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}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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{-webkit-backdrop-filter:saturate(160%)blur(12px);z-index:50;background:#ffffffd9;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{align-items:center;display:flex;position:relative}.topbar-home{cursor:pointer;color:#0f172a;background:0 0;border:1px solid #0f172a1a;border-radius:999px;align-items:center;gap:8px;padding:8px 14px 8px 12px;font-family:EB Garamond,serif;font-size:13px;font-weight:600;transition:transform .18s cubic-bezier(.6,.2,.2,1),background .2s,border-color .2s;display:inline-flex}.topbar-home:hover{background:#0f172a08;border-color:#0f172a;transform:translate(-2px)}.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:#64748b;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-family:EB Garamond,serif;font-size:12px;display:inline-flex}.tb-sync-dot{background:#16a34a;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite lp-live-blink}.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:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:999px;align-items:center;gap:6px;padding:9px 20px;font-family:EB Garamond,serif;font-size:13px;font-weight:700;transition:transform .18s cubic-bezier(.6,.2,.2,1),background .2s,box-shadow .25s;display:inline-flex;box-shadow:0 8px 22px -8px #0f172a80}.tb-signin:hover{background:#1e293b;transform:translateY(-2px);box-shadow:0 12px 24px -10px #0f172a8c}.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 .2s,transform .2s cubic-bezier(.4,1.6,.4,1);display:flex;position:relative}.duo-nav-btn:before{content:"";opacity:0;background:#16a34a;border-radius:0 3px 3px 0;width:3px;transition:opacity .25s,transform .3s cubic-bezier(.4,1.6,.4,1);position:absolute;top:12px;bottom:12px;left:-4px;transform:scaleY(.3)}.duo-nav-btn.active:before{opacity:1;transform:scaleY(1)}.duo-nav-btn:hover{background:#f1f5f9;transform:translateY(-1px)}.duo-nav-btn.active{background:#f0fdf4}.duo-nav-btn.active .duo-nav-icon{transform:scale(1.1)}.duo-nav-icon{color:#64748b;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:transform .3s cubic-bezier(.4,1.6,.4,1),color .2s;display:inline-flex}.duo-nav-btn.active .duo-nav-icon{color:#16a34a}.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;align-items:center;gap:10px;width:100%;padding:10px 16px;font-family:EB Garamond,serif;font-size:14px;font-weight:600;transition:background .15s;display:flex}.more-item-icon{color:#64748b;justify-content:center;align-items:center;display:inline-flex}.more-item.danger .more-item-icon{color:#dc2626}.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(--surface);border-radius:18px;padding:20px 22px;transition:transform .25s cubic-bezier(.4,1.6,.4,1),box-shadow .3s,border-color .25s;box-shadow:0 8px 22px -14px #0f172a26}.rp-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px -14px #0f172a38}.rp-card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:14px;padding-bottom:12px;display:flex}.rp-card-icon{color:#b45309;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:inline-flex}.rp-card-title{color:var(--text);letter-spacing:.14em;text-transform:uppercase;font-family:Playfair Display,serif;font-size:12px;font-weight:700}.streak-count{color:#b45309;text-align:center;letter-spacing:-.03em;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);-webkit-background-clip:text;background-clip:text;margin:6px 0 2px;font-family:Playfair Display,serif;font-size:64px;font-weight:700;line-height:1}.streak-sub{color:var(--text-soft);text-align:center;margin-bottom:20px;font-family:Playfair Display,serif;font-size:13px;font-style:italic}.streak-dots{justify-content:center;gap:10px;display:flex}.streak-day{flex-direction:column;align-items:center;gap:6px;display:flex}.sd-dot{background:#fff;border:1.5px solid #e2e8f0;border-radius:50%;width:14px;height:14px;transition:transform .3s cubic-bezier(.4,1.6,.4,1),background .25s,border-color .25s,box-shadow .3s}.streak-day.lit .sd-dot{background:#16a34a;border-color:#16a34a;transform:scale(1.15);box-shadow:0 0 0 3px #dcfce7}.sd-label{color:#94a3b8;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:700}.stats-row{gap:8px;display:flex}.stat-item{border-radius:12px;flex:1;align-items:center;gap:12px;padding:6px 4px;transition:background .2s;display:flex}.stat-item:hover{background:#0f172a08}.stat-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:inline-flex}.stat-item:first-child .stat-icon{color:#b45309;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%)}.stat-item:nth-child(3) .stat-icon,.stat-item.gems .stat-icon{color:#1d4ed8;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%)}.stat-val{color:var(--text);letter-spacing:-.02em;font-family:Playfair Display,serif;font-size:24px;font-weight:700;line-height:1}.stat-name{color:var(--text-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:4px;font-size:10px;font-weight:600}.hearts-row{justify-content:center;gap:6px;margin:10px 0 8px;font-size:22px;display:flex}.hearts-sub{color:var(--text-soft);text-align:center;font-family:Playfair Display,serif;font-size:12px;font-style:italic}.quest-item{margin-bottom:16px}.quest-item:last-child{margin-bottom:0}.quest-item.done{opacity:.55}.quest-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.quest-icon{font-size:15px}.quest-label{color:var(--text);flex:1;font-family:EB Garamond,serif;font-size:13px;font-weight:600}.quest-xp{color:#b45309;background:#fef3c7;border-radius:999px;padding:2px 8px;font-family:EB Garamond,serif;font-size:11px;font-weight:700}.quest-bar-track{background:#f1f5f9;border-radius:999px;height:5px;margin-bottom:4px;overflow:hidden}.quest-bar-fill{background:linear-gradient(90deg,#16a34a 0%,#84cc16 100%);border-radius:999px;height:100%;transition:width .8s cubic-bezier(.2,.7,.2,1)}.quest-progress-text{color:#94a3b8;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:linear-gradient(#fff 0%,#fafaf7 100%);border:1px solid #0f172a14;border-radius:24px;align-items:center;gap:40px;margin-bottom:8px;padding:40px 44px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px -24px #0f172a2e}.course-hero:before{content:"";pointer-events:none;opacity:.8;background-image:linear-gradient(#0f172a0a 1px,#0000 1px),linear-gradient(90deg,#0f172a0a 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 50% at 30% 40%,#000 0%,#0000 80%);mask-image:radial-gradient(70% 50% at 30% 40%,#000 0%,#0000 80%)}.course-hero-left{z-index:1;flex:1;min-width:0;position:relative}.course-hero-chips{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.course-chip{color:#475569;background:#fff;border:1px solid #0f172a14;border-radius:999px;padding:5px 12px;font-family:EB Garamond,serif;font-size:12px;font-weight:600;transition:transform .2s,border-color .2s;box-shadow:0 2px 8px -4px #0f172a1a}.course-chip:hover{border-color:#16a34a;transform:translateY(-1px)}.course-hero-title{color:#0f172a;letter-spacing:-.03em;margin:0 0 12px;font-family:Playfair Display,serif;font-size:44px;font-weight:700;line-height:1.05}.course-hero-desc{color:#475569;max-width:480px;margin:0 0 24px;font-family:EB Garamond,serif;font-size:16px;line-height:1.55}.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-family:Playfair Display,serif;font-size:28px;font-weight:700;line-height:1;display:block}.course-stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.12em;margin-top:5px;font-size:10px;font-weight:600;display:block}.course-stat-sep{background:#e2e8f0;width:1px;height:32px}.course-hero-progress{align-items:center;gap:12px;margin-bottom:20px;display:flex}.course-progress-bar{background:#f1f5f9;border-radius:999px;flex:1;height:6px;overflow:hidden}.course-progress-fill{background:linear-gradient(90deg,#16a34a 0%,#84cc16 100%);border-radius:999px;min-width:4px;height:100%;transition:width .8s cubic-bezier(.2,.7,.2,1);box-shadow:0 0 10px #16a34a66}.course-progress-label{color:#64748b;white-space:nowrap;font-size:12px}.course-hero-cta{color:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:999px;align-items:center;gap:6px;padding:12px 26px;font-family:EB Garamond,serif;font-size:14px;font-weight:700;transition:transform .18s cubic-bezier(.6,.2,.2,1),background .25s,box-shadow .3s;display:inline-flex;box-shadow:0 8px 22px -8px #0f172a80}.course-hero-cta:hover{background:#1e293b;transform:translateY(-2px);box-shadow:0 14px 28px -10px #0f172a8c}.course-hero-cta:active{transform:translateY(0)}.course-hero-right{z-index:1;flex-shrink:0;position:relative}.course-mascot-blob{filter:blur(1px);background:radial-gradient(circle at 35% 35%,#d9f99d 0%,#86efac 40%,#0000 70%);border-radius:46% 54% 62% 38%/50% 45% 55% 50%;justify-content:center;align-items:center;width:200px;height:200px;animation:8s ease-in-out infinite lp-blob-morph;display:flex;position:relative}.course-mascot-star{color:#f59e0b;-webkit-user-select:none;user-select:none;filter:none;font-size:14px;position:absolute}.course-mascot-blob:after{content:none}.course-hero-mascot{object-fit:contain;filter:drop-shadow(0 16px 32px #16a34a47);z-index:2;width:150px;height:150px;animation:5s ease-in-out infinite lp-float;position:relative}.roadmap-heading{justify-content:space-between;align-items:center;width:100%;max-width:860px;padding:40px 0 20px;display:flex}.roadmap-title{color:#0f172a;letter-spacing:-.02em;margin:0 0 6px;font-family:Playfair Display,serif;font-size:32px;font-weight:700}.roadmap-sub{color:#64748b;margin:0;font-family:EB Garamond,serif;font-size:15px}.roadmap-count{color:#16a34a;letter-spacing:.05em;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;padding:6px 14px;font-family:EB Garamond,serif;font-size:12px;font-weight:700}.learn-path{flex-direction:column;align-items:center;gap:0;width:100%;padding:32px 32px 96px;display:flex}.course-hero,.roadmap-heading,.roadmap-body,.roadmap-cta-banner{width:100%;max-width:900px}.course-hero-actions{align-items:center;gap:12px;display:flex}.course-hero-outline{color:#0f172a;cursor:pointer;background:0 0;border:1.5px solid #0f172a26;border-radius:999px;padding:12px 24px;font-family:EB Garamond,serif;font-size:14px;font-weight:700;transition:transform .18s cubic-bezier(.6,.2,.2,1),border-color .25s,background .2s}.course-hero-outline:hover{border-color:#0f172a;transform:translateY(-2px)}.roadmap-body{grid-template-columns:1fr 260px;align-items:start;gap:24px;display:grid}.roadmap-sections{flex-direction:column;gap:16px;display:flex}.phase-group{background:#fff;border:1px solid #0f172a14;border-radius:18px;transition:box-shadow .3s;overflow:hidden;box-shadow:0 8px 22px -14px #0f172a1f}.phase-group:hover{box-shadow:0 16px 34px -18px #0f172a2e}.phase-group-header{border-left:3px solid #0000;align-items:center;gap:10px;padding:14px 20px;display:flex}.phase-group-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 3px #fff9}.phase-group-name{text-transform:uppercase;letter-spacing:.14em;flex:1;font-family:EB Garamond,serif;font-size:12px;font-weight:800}.phase-group-count{color:#94a3b8;letter-spacing:.04em;font-size:11px;font-weight:600}.phase-row{cursor:pointer;border-top:1px solid #0f172a0d;align-items:center;gap:14px;padding:16px 20px;display:flex;position:relative}.phase-row:hover:not(.phase-row--locked){background:#fafafa}.phase-row--locked{cursor:default;opacity:.55}.phase-row-num{border:2px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-family:Playfair Display,serif;font-size:15px;font-weight:700;transition:transform .3s cubic-bezier(.4,1.6,.4,1),box-shadow .3s;display:flex}.phase-row:not(.phase-row--locked):hover .phase-row-num{transform:scale(1.06);box-shadow:0 6px 14px -6px #0f172a4d}.phase-row-info{flex:1;min-width:0}.phase-row-title{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.005em;font-family:Playfair Display,serif;font-size:16px;font-weight:700;display:block;overflow:hidden}.phase-row-sub{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-family:EB Garamond,serif;font-size:13px;display:block;overflow:hidden}.phase-row-week{color:#94a3b8;white-space:nowrap;background:#f8fafc;border:1px solid #f1f5f9;border-radius:999px;flex-shrink:0;padding:4px 10px;font-family:EB Garamond,serif;font-size:11px}.phase-row-badge{white-space:nowrap;letter-spacing:.04em;border-radius:999px;flex-shrink:0;padding:5px 12px;font-family:EB Garamond,serif;font-size:11px;font-weight:700}.badge--done{color:#15803d;background:#dcfce7}.badge--current{color:#1d4ed8;background:#dbeafe}.badge--locked{color:#94a3b8;background:#f1f5f9}.roadmap-progress-panel{background:linear-gradient(#fff 0%,#fafaf7 100%);border:1px solid #0f172a14;border-radius:20px;flex-direction:column;align-items:center;gap:16px;padding:24px 20px;display:flex;position:sticky;top:20px;box-shadow:0 12px 30px -18px #0f172a2e}.progress-panel-title{color:#0f172a;letter-spacing:-.005em;align-self:flex-start;margin:0;font-family:Playfair Display,serif;font-size:16px;font-weight:700}.progress-ring-wrap{justify-content:center;padding:4px 0;display:flex}.progress-badge-pill{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:700}.progress-stats-row{border-top:1px solid #0f172a0d;border-bottom:1px solid #0f172a0d;justify-content:center;align-items:center;gap:0;width:100%;padding:14px 0;display:flex}.progress-stat{text-align:center;padding:0 20px}.progress-stat-val{color:#0f172a;letter-spacing:-.02em;font-family:Playfair Display,serif;font-size:24px;font-weight:700;line-height:1;display:block}.progress-stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.12em;margin-top:6px;font-size:10px;font-weight:600;display:block}.progress-stat-div{background:#e2e8f0;width:1px;height:32px}.progress-panel-sub{text-transform:uppercase;letter-spacing:.12em;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{--lp-ink:#0b1120;--lp-ink-2:#1e293b;--lp-muted:#64748b;--lp-muted-2:#94a3b8;--lp-line:#e5e7eb;--lp-surface:#fff;--lp-bg:#fafaf7;--lp-accent:#16a34a;--lp-accent-2:#84cc16;--lp-accent-3:#d9f99d;--lp-warm:#f59e0b;color:var(--lp-ink);background:var(--lp-bg);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;height:100vh;min-height:100vh;font-family:EB Garamond,ui-serif,Georgia,Times New Roman,serif;overflow-y:auto}.lp em{color:var(--lp-accent);font-family:Playfair Display,serif;font-style:italic}.lp-nav{z-index:100;background:#fff0;border-bottom:1px solid #0000;transition:background .35s,border-color .35s,-webkit-backdrop-filter .35s,backdrop-filter .35s,box-shadow .35s;position:sticky;top:0}.lp-nav--scrolled{-webkit-backdrop-filter:saturate(160%)blur(14px);background:#ffffffc7;border-bottom-color:#0f172a14;box-shadow:0 8px 30px -18px #0f172a26}.lp-nav-inner{align-items:center;gap:40px;max-width:1200px;height:72px;margin:0 auto;padding:0 32px;display:flex}.lp-nav-brand{cursor:pointer;align-items:center;gap:10px;display:flex}.lp-nav-logo{width:auto;height:24px}.lp-nav-links{flex:1;justify-content:center;gap:32px;display:flex}.lp-nav-link{color:var(--lp-ink-2);cursor:pointer;letter-spacing:.01em;font-size:15px;font-weight:500;transition:color .2s;position:relative}.lp-nav-link:after{content:"";background:var(--lp-ink);transform-origin:0;width:100%;height:2px;transition:transform .35s cubic-bezier(.6,.2,.2,1);position:absolute;bottom:-6px;left:0;transform:scaleX(0)}.lp-nav-link:hover{color:var(--lp-ink)}.lp-nav-link:hover:after{transform:scaleX(1)}.lp-nav-actions{align-items:center;gap:10px;display:flex}.lp-nav-avatar{background:var(--lp-ink);color:#fff;cursor:pointer;border:1.5px solid #0f172a26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;transition:transform .2s;display:flex;overflow:hidden}.lp-nav-avatar:hover{transform:scale(1.06)}.lp-nav-avatar img{object-fit:cover;width:100%;height:100%}.lp-btn{cursor:pointer;white-space:nowrap;letter-spacing:.01em;border:none;border-radius:999px;align-items:center;gap:8px;padding:11px 22px;font-family:EB Garamond,serif;font-size:14px;font-weight:600;transition:transform .18s cubic-bezier(.6,.2,.2,1),background .2s,color .2s,box-shadow .25s,border-color .2s;display:inline-flex}.lp-btn:active{transform:translateY(1px)scale(.98)}.lp-btn--sm{padding:8px 14px;font-size:13px}.lp-btn--lg{padding:14px 28px;font-size:15px}.lp-btn--primary{background:var(--lp-ink);color:#fff;box-shadow:0 8px 22px -8px #0f172a80,inset 0 -2px #ffffff14}.lp-btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px #0f172a8c}.lp-btn--outline{color:var(--lp-ink);background:0 0;border:1.5px solid #0f172a26}.lp-btn--outline:hover{border-color:var(--lp-ink);transform:translateY(-1px)}.lp-btn--outline-dark{color:var(--lp-ink);background:0 0;border:1.5px solid #0f172a33}.lp-btn--outline-dark:hover{border-color:var(--lp-ink);transform:translateY(-2px)}.lp-btn--ghost{color:var(--lp-ink-2);background:0 0}.lp-btn--ghost:hover{color:var(--lp-ink);background:#0f172a0d}.lp-hero{background:linear-gradient(#fafaf7 0%,#fff 100%);padding:88px 32px 72px;position:relative;overflow:hidden}.lp-hero-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lp-hero-grid{background-image:linear-gradient(#0f172a0b 1px,#0000 1px),linear-gradient(90deg,#0f172a0b 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 40%,#0000 90%);mask-image:radial-gradient(70% 60% at 50% 30%,#000 40%,#0000 90%)}.lp-hero-glow{filter:blur(80px);opacity:.55;border-radius:50%;position:absolute}.lp-hero-glow--a{background:radial-gradient(circle,#bbf7d0 0%,#0000 60%);width:480px;height:480px;animation:14s ease-in-out infinite lp-drift-a;top:-120px;left:-140px}.lp-hero-glow--b{background:radial-gradient(circle,#d9f99d 0%,#0000 60%);width:520px;height:520px;animation:18s ease-in-out infinite lp-drift-b;bottom:-180px;right:-160px}@keyframes lp-drift-a{0%,to{transform:translate(0)}50%{transform:translate(30px,40px)}}@keyframes lp-drift-b{0%,to{transform:translate(0)}50%{transform:translate(-40px,-30px)}}.lp-hero-inner{grid-template-columns:1.05fr .95fr;align-items:center;gap:60px;max-width:1200px;margin:0 auto;display:grid;position:relative}.lp-hero-left{flex-direction:column;gap:22px;display:flex}.lp-pill{color:var(--lp-ink);opacity:0;background:#fff;border:1px solid #0f172a1a;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:600;animation:.7s cubic-bezier(.2,.7,.2,1) 50ms forwards lp-fade-up;display:inline-flex;box-shadow:0 4px 12px -6px #0f172a26}.lp-pill svg{color:var(--lp-accent)}.lp-hero-heading{color:var(--lp-ink);letter-spacing:-.025em;margin:4px 0;font-family:Playfair Display,serif;font-size:76px;font-weight:700;line-height:1.02}.lp-hero-line{display:block}.lp-word{opacity:0;will-change:transform, opacity;margin-right:.28em;animation:.55s cubic-bezier(.2,.7,.2,1) forwards lp-word-up;display:inline-block;transform:translateY(20px)}.lp-word:last-child{margin-right:0}@keyframes lp-word-up{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.lp-word,.lp-pill,.lp-hero-sub,.lp-hero-btns,.lp-hero-tags,.lp-feature-card,.lp-course,.lp-step,.lp-quote-inner,.lp-cta-inner{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}.lp-hero-mascot-wrap,.lp-quote-mascot,.lp-cta-mascot{animation:none!important}}.lp-hero-accent{color:var(--lp-accent);font-style:italic;position:relative}.lp-hero-accent:after{content:"";background:var(--lp-accent-3);z-index:-1;transform-origin:0;border-radius:4px;height:10px;animation:1.1s cubic-bezier(.6,.2,.2,1) 1s forwards lp-underline;position:absolute;bottom:6px;left:0;right:10%;transform:scaleX(0)}@keyframes lp-underline{to{transform:scaleX(1)}}.lp-hero-dot{color:var(--lp-accent)}.lp-hero-sub{color:var(--lp-muted);opacity:0;max-width:480px;font-family:EB Garamond,serif;font-size:19px;line-height:1.6;animation:.7s cubic-bezier(.2,.7,.2,1) forwards lp-fade-up}.lp-hero-btns{opacity:0;flex-wrap:wrap;gap:12px;animation:.7s cubic-bezier(.2,.7,.2,1) forwards lp-fade-up;display:flex}.lp-hero-tags{opacity:0;flex-wrap:wrap;gap:8px;animation:.7s cubic-bezier(.2,.7,.2,1) forwards lp-fade-up;display:flex}.lp-tag{color:var(--lp-ink-2);background:#fff;border:1px solid #0f172a17;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500;transition:transform .2s,border-color .2s,background .2s}.lp-tag:hover{border-color:var(--lp-accent);background:#f0fdf4;transform:translateY(-2px)}@keyframes lp-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.lp-hero-right{justify-content:center;align-items:center;height:480px;display:flex;position:relative}.lp-hero-blob{opacity:.55;filter:blur(6px);background:radial-gradient(circle at 35% 35%,#d9f99d 0%,#86efac 40%,#0000 70%);border-radius:50%;width:380px;height:380px;transition:transform .3s cubic-bezier(.2,.7,.2,1);animation:8s ease-in-out infinite lp-blob-morph;position:absolute}@keyframes lp-blob-morph{0%,to{border-radius:46% 54% 62% 38%/50% 45% 55% 50%}50%{border-radius:60% 40% 45% 55%/40% 60%}}.lp-hero-ring{border:1.5px dashed #0f172a26;border-radius:50%;width:340px;height:340px;transition:transform .35s cubic-bezier(.2,.7,.2,1);animation:60s linear infinite lp-spin;position:absolute}@keyframes lp-spin{to{transform:rotate(360deg)}}.lp-hero-mascot-wrap{z-index:2;transition:transform .3s cubic-bezier(.2,.7,.2,1);animation:5s ease-in-out infinite lp-float;position:relative}.lp-hero-mascot{filter:drop-shadow(0 24px 44px #16a34a40);width:auto;height:300px}@keyframes lp-float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-18px)rotate(1deg)}}.lp-spark{color:var(--lp-warm);animation:2.4s ease-in-out infinite lp-twinkle;position:absolute}.lp-spark svg{width:18px;height:18px}.lp-spark--1{animation-delay:0s;top:10%;left:-10px}.lp-spark--2{color:var(--lp-accent);animation-delay:.8s;top:30%;right:-14px}.lp-spark--3{color:var(--lp-accent-2);animation-delay:1.4s;bottom:8%;left:20%}@keyframes lp-twinkle{0%,to{opacity:.3;transform:scale(.7)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(20deg)}}.lp-float-chip{z-index:3;color:var(--lp-ink);background:#fff;border:1px solid #0f172a14;border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:600;animation:6s ease-in-out infinite lp-float-chip;display:flex;position:absolute;box-shadow:0 12px 30px -12px #0f172a40}.lp-float-chip--a{animation-delay:0s;top:8%;left:-6%}.lp-float-chip--b{animation-delay:1.5s;bottom:6%;right:-4%}.lp-float-dot{background:var(--lp-accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #16a34a2e}.lp-float-num{color:var(--lp-accent);font-weight:800}@keyframes lp-float-chip{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.lp-section-head{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:640px;margin:0 auto 48px;display:flex}.lp-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--lp-accent);background:#f0fdf4;border:1px solid #16a34a40;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.lp-section-title{color:var(--lp-ink);letter-spacing:-.02em;font-family:Playfair Display,serif;font-size:48px;font-weight:700;line-height:1.1}.lp-section-sub{color:var(--lp-muted);font-family:EB Garamond,serif;font-size:18px;line-height:1.5}.lp-features{background:var(--lp-bg);padding:88px 32px}.lp-features-grid{grid-template-columns:repeat(4,1fr);gap:20px;max-width:1200px;margin:0 auto;display:grid}.lp-feature-card{opacity:0;background:#fff;border:1px solid #0f172a14;border-radius:20px;flex-direction:column;gap:12px;padding:28px 22px;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .3s;display:flex;position:relative;overflow:hidden;transform:translateY(24px)}.lp-features.is-in .lp-feature-card{opacity:1;transform:translateY(0)}.lp-feature-card:hover{border-color:#16a34a66;box-shadow:0 22px 44px -22px #16a34a40}.lp-feature-icon{width:44px;height:44px;color:var(--lp-accent);background:linear-gradient(135deg,#f0fdf4 0%,#ecfccb 100%);border-radius:12px;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.4,1.6,.4,1);display:flex}.lp-feature-card:hover .lp-feature-icon{transform:rotate(-6deg)scale(1.08)}.lp-feature-title{color:var(--lp-ink);font-family:Playfair Display,serif;font-size:20px;font-weight:700}.lp-feature-desc{color:var(--lp-muted);font-size:15px;line-height:1.55}.lp-feature-shine{pointer-events:none;background:linear-gradient(120deg,#0000 40%,#ffffffb3 50%,#0000 60%);width:40%;height:100%;transition:left .8s cubic-bezier(.4,.2,.2,1);position:absolute;top:0;left:-40%;transform:skew(-16deg)}.lp-feature-card:hover .lp-feature-shine{left:120%}.lp-how{background:#fff;border-top:1px solid #0f172a0d;padding:96px 32px}.lp-steps{grid-template-columns:repeat(3,1fr);gap:32px;max-width:1100px;margin:0 auto;display:grid;position:relative}.lp-steps-track{z-index:0;transform-origin:0;background:repeating-linear-gradient(90deg,#0f172a26 0 6px,#0000 6px 12px);height:2px;transition:transform 1.2s cubic-bezier(.4,.2,.2,1) .3s;position:absolute;top:40px;left:12%;right:12%;transform:scaleX(0)}.lp-how.is-in .lp-steps-track{transform:scaleX(1)}.lp-step{z-index:1;text-align:center;opacity:0;flex-direction:column;align-items:center;gap:14px;padding:0 12px;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);display:flex;position:relative;transform:translateY(24px)}.lp-how.is-in .lp-step{opacity:1;transform:translateY(0)}.lp-step-num{border:2px solid var(--lp-ink);width:80px;height:80px;color:var(--lp-ink);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-family:Playfair Display,serif;font-size:24px;font-weight:700;transition:transform .3s cubic-bezier(.4,1.6,.4,1);display:flex;box-shadow:0 12px 30px -14px #0f172a40}.lp-step:hover .lp-step-num{transform:translateY(-4px)scale(1.06)}.lp-step-title{color:var(--lp-ink);font-family:Playfair Display,serif;font-size:24px;font-weight:700}.lp-step-desc{color:var(--lp-muted);max-width:280px;font-size:15px;line-height:1.55}.lp-courses{background:var(--lp-bg);border-top:1px solid #0f172a0d;padding:96px 32px}.lp-section-inner{max-width:1200px;margin:0 auto}.lp-courses-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.lp-course{opacity:0;background:#fff;border:1px solid #0f172a14;border-radius:22px;flex-direction:column;gap:14px;padding:24px;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .35s;display:flex;position:relative;overflow:hidden;transform:translateY(24px)}.lp-courses.is-in .lp-course{opacity:1;transform:translateY(0)}.lp-course:hover{border-color:#16a34a59;transform:translateY(-6px);box-shadow:0 26px 50px -24px #16a34a47}.lp-course--soon{opacity:.7}.lp-course--enrolled{background:linear-gradient(#fff 0%,#f0fdf4 100%);border-color:#16a34a59}.lp-course-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lp-course-icon{border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;transition:transform .3s cubic-bezier(.4,1.6,.4,1);display:flex}.lp-course:hover .lp-course-icon{transform:rotate(-6deg)scale(1.06)}.lp-course-status{letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:5px 10px;font-size:10px;font-weight:800}.lp-course-status--new{color:var(--lp-accent);background:#dcfce7}.lp-course-status--soon{color:var(--lp-muted);background:#f1f5f9}.lp-course--enrolled .lp-course-status{color:var(--lp-accent);background:#dcfce7}.lp-course-title{color:var(--lp-ink);letter-spacing:-.01em;font-family:Playfair Display,serif;font-size:22px;font-weight:700}.lp-course-desc{color:var(--lp-muted);flex:1;font-size:15px;line-height:1.55}.lp-course-progress{align-items:center;gap:12px;display:flex}.lp-course-bar{background:#0f172a14;border-radius:999px;flex:1;height:6px;overflow:hidden}.lp-course-bar-fill{background:linear-gradient(90deg, var(--lp-accent) 0%, var(--lp-accent-2) 100%);border-radius:999px;height:100%;transition:width 1s cubic-bezier(.2,.7,.2,1);box-shadow:0 0 12px #16a34a66}.lp-course-pct{color:var(--lp-accent);font-family:Playfair Display,serif;font-size:14px;font-weight:700}.lp-course-meta{color:var(--lp-muted-2);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.lp-course-actions{gap:8px;margin-top:4px;display:flex}.lp-course-cta{background:var(--lp-ink);color:#fff;cursor:pointer;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:11px 14px;font-family:EB Garamond,serif;font-size:14px;font-weight:700;transition:transform .18s cubic-bezier(.6,.2,.2,1),background .2s,box-shadow .25s;display:inline-flex}.lp-course-cta:hover{background:#1e293b;transform:translateY(-2px);box-shadow:0 12px 24px -12px #0f172a66}.lp-course-cta--ghost{color:var(--lp-ink);background:0 0;border:1.5px solid #0f172a26}.lp-course-cta--ghost:hover{border-color:var(--lp-ink);background:0 0}.lp-course-cta--enrolled{background:linear-gradient(135deg, var(--lp-accent) 0%, #15803d 100%)}.lp-course-cta--enrolled:hover{box-shadow:0 14px 26px -12px #16a34a8c}.lp-course-cta--disabled{color:var(--lp-muted-2);cursor:not-allowed;background:#0f172a0f}.lp-course-cta--disabled:hover{box-shadow:none;background:#0f172a0f;transform:none}.lp-quote{text-align:center;background:#fff;border-top:1px solid #0f172a0d;padding:96px 32px}.lp-quote-inner{opacity:0;flex-direction:column;align-items:center;gap:22px;max-width:820px;margin:0 auto;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);display:flex;transform:translateY(20px)}.lp-quote.is-in .lp-quote-inner{opacity:1;transform:translateY(0)}.lp-quote-mascot{filter:drop-shadow(0 12px 28px #16a34a40);width:auto;height:76px;animation:5s ease-in-out infinite lp-float}.lp-quote-text{color:var(--lp-ink);letter-spacing:-.005em;font-family:Playfair Display,serif;font-size:30px;font-style:italic;line-height:1.4;position:relative}.lp-quote-mark{color:var(--lp-accent);vertical-align:-6px;margin:0 4px;font-size:42px}.lp-quote-who{color:var(--lp-muted);letter-spacing:.04em;font-size:14px}.lp-cta{background:var(--lp-ink);padding:96px 32px;position:relative;overflow:hidden}.lp-cta-bg{pointer-events:none;position:absolute;inset:0}.lp-cta-glow{filter:blur(30px);background:radial-gradient(circle,#84cc1640 0%,#0000 60%);border-radius:50%;width:700px;height:700px;animation:6s ease-in-out infinite lp-pulse-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes lp-pulse-glow{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}}.lp-cta-inner{opacity:0;flex-wrap:wrap;justify-content:center;align-items:center;gap:40px;max-width:1000px;margin:0 auto;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);display:flex;position:relative;transform:translateY(20px)}.lp-cta.is-in .lp-cta-inner{opacity:1;transform:translateY(0)}.lp-cta-mascot-wrap{position:relative}.lp-cta-mascot{filter:drop-shadow(0 12px 30px #84cc1666);width:auto;height:120px;animation:5s ease-in-out infinite lp-float}.lp-cta-star{color:var(--lp-accent-3);animation:2.2s ease-in-out infinite lp-twinkle;position:absolute}.lp-cta-star svg{width:20px;height:20px}.lp-cta-star--1{top:-6px;right:-12px}.lp-cta-star--2{color:var(--lp-warm);animation-delay:.9s;bottom:6px;left:-14px}.lp-cta-text{flex:1;min-width:260px}.lp-cta-title{color:#fff;letter-spacing:-.02em;font-family:Playfair Display,serif;font-size:40px;font-weight:700;line-height:1.15}.lp-cta-sub{color:#ffffffb3;margin-top:10px;font-family:EB Garamond,serif;font-size:17px}.lp-cta .lp-btn--primary{background:var(--lp-accent-2);color:var(--lp-ink)}.lp-cta .lp-btn--primary:hover{background:#a3e635;box-shadow:0 16px 34px -12px #84cc168c}@media (max-width:1024px){.lp-features-grid{grid-template-columns:repeat(2,1fr)}.lp-hero-heading{font-size:60px}}@media (max-width:900px){.lp-hero-inner{grid-template-columns:1fr;gap:40px}.lp-hero-right{height:360px}.lp-hero-heading{font-size:46px}.lp-section-title{font-size:34px}.lp-courses-grid{grid-template-columns:repeat(2,1fr)}.lp-steps{grid-template-columns:1fr;gap:40px}.lp-steps-track{display:none}.lp-nav-links{gap:20px}}@media (max-width:600px){.lp-courses-grid,.lp-features-grid{grid-template-columns:1fr}.lp-hero{padding:56px 20px 40px}.lp-hero-heading{font-size:38px}.lp-nav-links{display:none}.lp-nav-inner{gap:16px;height:64px;padding:0 20px}.lp-cta-inner{text-align:center;flex-direction:column}.lp-quote-text{font-size:22px}.lp-float-chip{display:none}}.lp-reveal{opacity:0;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(24px)}.lp-reveal--in{opacity:1;transform:translateY(0)}.course-hero--anim .course-mascot-blob,.course-hero--anim .course-hero-mascot{transition:transform .35s cubic-bezier(.2,.7,.2,1)}.course-hero--anim .course-mascot-star{animation:2.6s ease-in-out infinite lp-twinkle}.course-hero--anim .course-mascot-star:nth-child(2){animation-delay:.8s}.course-hero--anim .course-mascot-star:nth-child(3){animation-delay:1.5s}.phase-row--anim{opacity:0;transition:transform .18s cubic-bezier(.6,.2,.2,1),box-shadow .25s,border-color .25s,background .2s;animation:.55s cubic-bezier(.2,.7,.2,1) forwards phase-row-in}@keyframes phase-row-in{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0)}}.phase-row:not(.phase-row--locked):hover{transform:translate(4px);box-shadow:0 12px 26px -14px #0f172a33}.phase-row--current{position:relative;overflow:hidden}.phase-row--current:after{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 40%,#84cc162e 50%,#0000 60%);animation:3.2s ease-in-out infinite phase-shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes phase-shine{0%{transform:translate(-100%)}60%{transform:translate(100%)}to{transform:translate(100%)}}.progress-ring-wrap{transition:transform .3s cubic-bezier(.4,1.6,.4,1)}.roadmap-progress-panel:hover .progress-ring-wrap{transform:scale(1.04)rotate(-2deg)}.phase-view--anim{animation:.5s cubic-bezier(.2,.7,.2,1) both phase-view-in}@keyframes phase-view-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section--anim{opacity:0;animation:.55s cubic-bezier(.2,.7,.2,1) forwards section-in}@keyframes section-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.back-to-path{transition:transform .2s cubic-bezier(.6,.2,.2,1),background .2s,color .2s}.back-to-path:hover{transform:translate(-3px)}@media (prefers-reduced-motion:reduce){.lp-reveal,.phase-row--anim,.phase-view--anim,.section--anim{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}.phase-row--current:after{animation:none!important}}.lp[data-theme=dark]{--lp-ink:#f4f4f0;--lp-ink-2:#d1d5db;--lp-muted:#94a3b8;--lp-muted-2:#64748b;--lp-line:#ffffff17;--lp-surface:#0f172a;--lp-bg:#070b14;--lp-accent:#a3e635;--lp-accent-2:#d9f99d;--lp-accent-3:#365314;--lp-warm:#fbbf24;color:var(--lp-ink);background:var(--lp-bg)}.lp[data-theme=dark] em{color:var(--lp-accent-2)}.lp-theme-toggle{width:40px;height:40px;color:var(--lp-ink);cursor:pointer;background:#fff;border:1.5px solid #0f172a26;border-radius:50%;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.4,1.6,.4,1),background .2s,border-color .2s,box-shadow .25s;display:inline-flex;position:relative;overflow:hidden}.lp-theme-toggle:hover{transform:rotate(20deg)scale(1.08);box-shadow:0 8px 22px -10px #0f172a66}.lp-theme-toggle svg{width:18px;height:18px}.lp[data-theme=dark] .lp-theme-toggle{color:var(--lp-accent-2);background:#ffffff0f;border-color:#ffffff1f}.lp[data-theme=dark] .lp-nav--scrolled{background:#070b14c7;border-bottom-color:#ffffff14;box-shadow:0 8px 30px -18px #0009}.lp[data-theme=dark] .lp-nav-logo{filter:brightness(0)invert()}.lp[data-theme=dark] .lp-nav-link{color:#f4f4f0b3}.lp[data-theme=dark] .lp-nav-link:after{background:var(--lp-accent-2)}.lp[data-theme=dark] .lp-nav-link:hover{color:#fff}.lp[data-theme=dark] .lp-nav-avatar{background:var(--lp-accent);color:var(--lp-bg);border-color:#ffffff26}.lp[data-theme=dark] .lp-btn--primary{background:var(--lp-accent);color:var(--lp-bg);box-shadow:0 8px 22px -8px #a3e63566}.lp[data-theme=dark] .lp-btn--primary:hover{background:var(--lp-accent-2);box-shadow:0 14px 28px -10px #d9f99d80}.lp[data-theme=dark] .lp-btn--outline{color:#fff;border-color:#ffffff2e}.lp[data-theme=dark] .lp-btn--outline:hover{border-color:#fff}.lp[data-theme=dark] .lp-btn--outline-dark{color:var(--lp-ink);border-color:#ffffff2e}.lp[data-theme=dark] .lp-btn--outline-dark:hover{border-color:var(--lp-ink)}.lp[data-theme=dark] .lp-btn--ghost{color:#f4f4f0b3}.lp[data-theme=dark] .lp-btn--ghost:hover{color:#fff;background:#ffffff0f}.lp[data-theme=dark] .lp-hero{background:radial-gradient(80% 60% at 50% 20%,#0f172a 0%,#070b14 60%)}.lp[data-theme=dark] .lp-hero-grid{background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px)}.lp[data-theme=dark] .lp-hero-glow--a{opacity:.8;background:radial-gradient(circle,#a3e63547 0%,#0000 60%)}.lp[data-theme=dark] .lp-hero-glow--b{opacity:.7;background:radial-gradient(circle,#d9f99d38 0%,#0000 60%)}.lp[data-theme=dark] .lp-pill{color:var(--lp-ink);background:#ffffff0a;border-color:#ffffff1a;box-shadow:0 4px 14px -6px #0009}.lp[data-theme=dark] .lp-pill svg{color:var(--lp-accent)}.lp[data-theme=dark] .lp-hero-heading{color:#fff}.lp[data-theme=dark] .lp-hero-accent{color:var(--lp-accent)}.lp[data-theme=dark] .lp-hero-accent:after{background:#a3e63547}.lp[data-theme=dark] .lp-hero-sub{color:#f4f4f0a6}.lp[data-theme=dark] .lp-tag{color:#f4f4f0bf;background:#ffffff0d;border-color:#ffffff14}.lp[data-theme=dark] .lp-tag:hover{border-color:var(--lp-accent);color:#fff;background:#a3e63514}.lp[data-theme=dark] .lp-hero-blob{opacity:.7;background:radial-gradient(circle at 35% 35%,#a3e63573 0%,#16a34a4d 40%,#0000 70%)}.lp[data-theme=dark] .lp-hero-ring{border-color:#ffffff1a}.lp[data-theme=dark] .lp-hero-mascot{filter:drop-shadow(0 24px 44px #a3e63559)}.lp[data-theme=dark] .lp-float-chip{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111827d9;border-color:#ffffff1a}.lp[data-theme=dark] .lp-eyebrow{color:var(--lp-accent);background:#a3e63514;border-color:#a3e63547}.lp[data-theme=dark] .lp-section-title{color:#fff}.lp[data-theme=dark] .lp-section-sub{color:var(--lp-muted)}.lp[data-theme=dark] .lp-features{background:var(--lp-bg)}.lp[data-theme=dark] .lp-feature-card{background:#ffffff08;border-color:#ffffff12}.lp[data-theme=dark] .lp-feature-card:hover{border-color:#a3e63566;box-shadow:0 22px 44px -22px #a3e63540}.lp[data-theme=dark] .lp-feature-icon{color:var(--lp-accent);background:linear-gradient(135deg,#a3e63526 0%,#16a34a1a 100%)}.lp[data-theme=dark] .lp-feature-title{color:#fff}.lp[data-theme=dark] .lp-feature-desc{color:var(--lp-muted)}.lp[data-theme=dark] .lp-feature-shine{background:linear-gradient(120deg,#0000 40%,#a3e6352e 50%,#0000 60%)}.lp[data-theme=dark] .lp-how{background:#ffffff04;border-top-color:#ffffff0f}.lp[data-theme=dark] .lp-steps-track{background:repeating-linear-gradient(90deg,#ffffff2e 0 6px,#0000 6px 12px)}.lp[data-theme=dark] .lp-step-num{color:#fff;background:#ffffff0d;border-color:#fff3;box-shadow:0 12px 30px -14px #000000b3}.lp[data-theme=dark] .lp-step-title{color:#fff}.lp[data-theme=dark] .lp-step-desc{color:var(--lp-muted)}.lp[data-theme=dark] .lp-courses{background:var(--lp-bg);border-top-color:#ffffff0f}.lp[data-theme=dark] .lp-course{background:#ffffff08;border-color:#ffffff12}.lp[data-theme=dark] .lp-course:hover{border-color:#a3e63566;box-shadow:0 26px 50px -24px #a3e63547}.lp[data-theme=dark] .lp-course--enrolled{background:linear-gradient(#ffffff08 0%,#a3e6350d 100%);border-color:#a3e6354d}.lp[data-theme=dark] .lp-course-title{color:#fff}.lp[data-theme=dark] .lp-course-desc{color:var(--lp-muted)}.lp[data-theme=dark] .lp-course-meta{color:var(--lp-muted-2)}.lp[data-theme=dark] .lp-course-status--new{color:var(--lp-accent);background:#a3e63526}.lp[data-theme=dark] .lp-course-status--soon{color:var(--lp-muted);background:#ffffff0f}.lp[data-theme=dark] .lp-course--enrolled .lp-course-status{color:var(--lp-accent);background:#a3e63526}.lp[data-theme=dark] .lp-course-bar{background:#ffffff14}.lp[data-theme=dark] .lp-course-bar-fill{background:linear-gradient(90deg, var(--lp-accent) 0%, var(--lp-accent-2) 100%);box-shadow:0 0 14px #a3e63580}.lp[data-theme=dark] .lp-course-pct{color:var(--lp-accent)}.lp[data-theme=dark] .lp-course-cta{background:var(--lp-accent);color:var(--lp-bg)}.lp[data-theme=dark] .lp-course-cta:hover{background:var(--lp-accent-2);box-shadow:0 12px 24px -12px #a3e6358c}.lp[data-theme=dark] .lp-course-cta--ghost{color:#fff;background:0 0;border-color:#ffffff26}.lp[data-theme=dark] .lp-course-cta--ghost:hover{background:0 0;border-color:#fff}.lp[data-theme=dark] .lp-course-cta--enrolled{background:linear-gradient(135deg, var(--lp-accent) 0%, #65a30d 100%);color:var(--lp-bg)}.lp[data-theme=dark] .lp-course-cta--disabled{color:var(--lp-muted-2);background:#ffffff0d}.lp[data-theme=dark] .lp-quote{background:#ffffff04;border-top-color:#ffffff0f}.lp[data-theme=dark] .lp-quote-text{color:#fff}.lp[data-theme=dark] .lp-quote-mark{color:var(--lp-accent)}.lp[data-theme=dark] .lp-quote-who{color:var(--lp-muted)}.lp[data-theme=dark] .lp-quote-mascot{filter:drop-shadow(0 12px 28px #a3e63559)}.lp[data-theme=dark] .lp-cta{background:#030509}.lp[data-theme=dark] .lp-cta-glow{background:radial-gradient(circle,#a3e63552 0%,#0000 60%)}.lp[data-theme=dark] .lp-cta .lp-btn--primary{background:var(--lp-accent-2);color:#030509}.lp[data-theme=dark] .lp-cta .lp-btn--primary:hover{background:var(--lp-accent);box-shadow:0 16px 34px -12px #a3e63599}.lp-continue-bar{z-index:90;opacity:0;pointer-events:none;width:calc(100% - 32px);max-width:1160px;margin:0 auto;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .4s;position:sticky;top:72px;transform:translateY(-8px)}.lp-continue-bar.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.lp-continue-bar-inner{-webkit-backdrop-filter:saturate(160%)blur(16px);background:#ffffffd9;border:1px solid #0f172a1a;border-radius:999px;align-items:center;gap:16px;padding:12px 16px 12px 20px;display:flex;box-shadow:0 18px 40px -20px #0f172a59}.lp[data-theme=dark] .lp-continue-bar-inner{background:#0f172ad1;border-color:#ffffff1a;box-shadow:0 18px 40px -20px #000000b3}.lp-continue-icon{background:linear-gradient(135deg,#dcfce7 0%,#a3e635 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;animation:2s ease-in-out infinite lp-continue-pulse;display:flex}@keyframes lp-continue-pulse{0%,to{box-shadow:0 0 #a3e63566}50%{box-shadow:0 0 0 10px #a3e63500}}.lp-continue-text{flex-direction:column;flex:1;min-width:0;display:flex}.lp-continue-label{letter-spacing:.1em;text-transform:uppercase;color:var(--lp-accent);font-size:11px;font-weight:700}.lp-continue-title{color:var(--lp-ink);text-overflow:ellipsis;white-space:nowrap;font-family:Playfair Display,serif;font-size:17px;font-weight:700;overflow:hidden}.lp[data-theme=dark] .lp-continue-title{color:#fff}.lp-continue-bar-progress{align-items:center;gap:10px;min-width:140px;display:flex}.lp-continue-bar-track{background:#0f172a14;border-radius:999px;flex:1;height:5px;overflow:hidden}.lp[data-theme=dark] .lp-continue-bar-track{background:#ffffff1a}.lp-continue-bar-fill{background:linear-gradient(90deg,#16a34a 0%,#a3e635 100%);border-radius:999px;height:100%;transition:width 1s cubic-bezier(.2,.7,.2,1)}.lp-continue-pct{color:var(--lp-accent);font-family:Playfair Display,serif;font-size:13px;font-weight:700}.lp-continue-cta{cursor:pointer;background:var(--lp-ink);color:#fff;border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:9px 18px;font-family:EB Garamond,serif;font-size:14px;font-weight:700;transition:transform .18s cubic-bezier(.6,.2,.2,1),background .2s,box-shadow .25s;display:inline-flex}.lp-continue-cta:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px #0f172a66}.lp[data-theme=dark] .lp-continue-cta{background:var(--lp-accent);color:var(--lp-bg)}.lp[data-theme=dark] .lp-continue-cta:hover{background:var(--lp-accent-2)}.lp-continue-close{cursor:pointer;width:32px;height:32px;color:var(--lp-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background .2s,color .2s;display:flex}.lp-continue-close:hover{color:var(--lp-ink);background:#0f172a0f}.lp[data-theme=dark] .lp-continue-close:hover{color:#fff;background:#ffffff0f}@media (max-width:700px){.lp-continue-bar-inner{border-radius:20px;flex-wrap:wrap;gap:10px;padding:10px 12px}.lp-continue-bar-progress{order:3;width:100%;min-width:0}.lp-continue-cta{padding:8px 14px;font-size:13px}}html[data-theme=dark] body{color:#e6e8ee;background:#070b14}html[data-theme=dark] .duo-main{background:#070b14}html[data-theme=dark] .duo-topbar{background:#0f172ab3;border-bottom-color:#ffffff0f}html[data-theme=dark] .topbar-brand{filter:brightness(0)invert()}html[data-theme=dark] .topbar-home{color:#e6e8ee;border-color:#ffffff1f}html[data-theme=dark] .topbar-home:hover{background:#ffffff0d;border-color:#ffffff4d}html[data-theme=dark] .tb-sync{color:#d1d5db;background:#a3e63514;border-color:#a3e63540}html[data-theme=dark] .tb-signin{color:#070b14;background:#a3e635;box-shadow:0 8px 22px -8px #a3e63566}html[data-theme=dark] .tb-signin:hover{background:#d9f99d;box-shadow:0 12px 24px -10px #a3e6358c}html[data-theme=dark] .duo-sidebar{background:#0b1220;border-right-color:#ffffff0f}html[data-theme=dark] .duo-nav-btn:hover{background:#ffffff0a}html[data-theme=dark] .duo-nav-btn.active{background:#a3e63514}html[data-theme=dark] .duo-nav-btn:before{background:#a3e635}html[data-theme=dark] .duo-nav-icon{color:#94a3b8}html[data-theme=dark] .duo-nav-btn.active .duo-nav-icon{color:#a3e635}html[data-theme=dark] .duo-nav-label{color:#64748b}html[data-theme=dark] .duo-nav-btn.active .duo-nav-label{color:#a3e635}html[data-theme=dark] .more-menu{background:#0f172a;border-color:#ffffff1a;box-shadow:0 12px 30px #0009}html[data-theme=dark] .more-item{color:#e6e8ee}html[data-theme=dark] .more-item:hover{background:#ffffff0d}html[data-theme=dark] .more-item.danger{color:#f87171}html[data-theme=dark] .more-item.danger:hover{background:#f8717114}html[data-theme=dark] .more-sep{background:#ffffff14}html[data-theme=dark] .more-version{color:#475569}html[data-theme=dark] .duo-right{background:#0b1220;border-left:1px solid #ffffff0f}html[data-theme=dark] .rp-card{background:#ffffff08;border-color:#ffffff14;box-shadow:0 8px 22px -14px #0009}html[data-theme=dark] .rp-card-head{border-bottom-color:#ffffff0f}html[data-theme=dark] .rp-card-title{color:#f4f4f0}html[data-theme=dark] .rp-card-icon{color:#fbbf24;background:linear-gradient(135deg,#f59e0b33 0%,#d9770626 100%)}html[data-theme=dark] .streak-sub{color:#94a3b8}html[data-theme=dark] .sd-dot{background:#ffffff0f;border-color:#ffffff26}html[data-theme=dark] .streak-day.lit .sd-dot{background:#a3e635;border-color:#a3e635;box-shadow:0 0 0 3px #a3e63533}html[data-theme=dark] .sd-label{color:#64748b}html[data-theme=dark] .stat-item:first-child .stat-icon{color:#fbbf24;background:linear-gradient(135deg,#f59e0b33 0%,#d9770626 100%)}html[data-theme=dark] .stat-item:nth-child(3) .stat-icon,html[data-theme=dark] .stat-item.gems .stat-icon{color:#93c5fd;background:linear-gradient(135deg,#3b82f633 0%,#1d4ed826 100%)}html[data-theme=dark] .stat-val{color:#fff}html[data-theme=dark] .stat-name{color:#94a3b8}html[data-theme=dark] .stat-item:hover{background:#ffffff0a}html[data-theme=dark] .course-hero{background:linear-gradient(#ffffff08 0%,#ffffff03 100%);border-color:#ffffff14;box-shadow:0 18px 40px -24px #0009}html[data-theme=dark] .course-hero:before{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px)}html[data-theme=dark] .course-chip{color:#d1d5db;background:#ffffff0d;border-color:#ffffff14;box-shadow:0 2px 8px -4px #00000080}html[data-theme=dark] .course-chip:hover{border-color:#a3e635}html[data-theme=dark] .course-hero-title{color:#fff}html[data-theme=dark] .course-hero-desc{color:#94a3b8}html[data-theme=dark] .course-stat-val{color:#fff}html[data-theme=dark] .course-stat-label{color:#94a3b8}html[data-theme=dark] .course-stat-sep{background:#ffffff1a}html[data-theme=dark] .course-hero-cta{color:#070b14;background:#a3e635;box-shadow:0 8px 22px -8px #a3e63580}html[data-theme=dark] .course-hero-cta:hover{background:#d9f99d;box-shadow:0 14px 28px -10px #a3e63599}html[data-theme=dark] .course-hero-outline{color:#fff;border-color:#ffffff26}html[data-theme=dark] .course-hero-outline:hover{background:#ffffff0d;border-color:#fff}html[data-theme=dark] .course-progress-bar{background:#ffffff14}html[data-theme=dark] .course-hero-mascot{filter:drop-shadow(0 16px 32px #a3e63559)}html[data-theme=dark] .roadmap-title{color:#fff}html[data-theme=dark] .roadmap-sub{color:#94a3b8}html[data-theme=dark] .roadmap-count{color:#a3e635;background:#a3e6351a;border-color:#a3e63540}html[data-theme=dark] .phase-group{background:#ffffff08;border-color:#ffffff14;box-shadow:0 8px 22px -14px #0009}html[data-theme=dark] .phase-group:hover{box-shadow:0 16px 34px -18px #000000b3}html[data-theme=dark] .phase-row{border-top-color:#ffffff0d}html[data-theme=dark] .phase-row:hover:not(.phase-row--locked){background:#ffffff08}html[data-theme=dark] .phase-row-title{color:#fff}html[data-theme=dark] .phase-row-sub{color:#94a3b8}html[data-theme=dark] .phase-row-week{color:#94a3b8;background:#ffffff0d;border-color:#ffffff0f}html[data-theme=dark] .badge--done{color:#a3e635;background:#a3e63526}html[data-theme=dark] .badge--current{color:#93c5fd;background:#3b82f626}html[data-theme=dark] .badge--locked{color:#64748b;background:#ffffff0d}html[data-theme=dark] .roadmap-progress-panel{background:linear-gradient(#ffffff08 0%,#ffffff03 100%);border-color:#ffffff14;box-shadow:0 12px 30px -18px #0009}html[data-theme=dark] .progress-panel-title{color:#fff}html[data-theme=dark] .progress-stats-row{border-top-color:#ffffff0f;border-bottom-color:#ffffff0f}html[data-theme=dark] .progress-stat-val{color:#fff}html[data-theme=dark] .progress-stat-label{color:#64748b}html[data-theme=dark] .progress-stat-div{background:#ffffff1a}html[data-theme=dark] .roadmap-progress-panel svg circle:first-of-type{stroke:#ffffff14}html[data-theme=dark] .roadmap-progress-panel svg text{fill:#fff}html[data-theme=dark] .phase-title{color:#fff}html[data-theme=dark] .phase-week{color:#94a3b8}html[data-theme=dark] .section-label{color:#fff;border-bottom-color:#ffffff14}html[data-theme=dark] .section-label span:last-child,html[data-theme=dark] .section-progress{color:#94a3b8}html[data-theme=dark] .concept-card,html[data-theme=dark] .assignment,html[data-theme=dark] .practice-q{background:#ffffff08;border-color:#ffffff14}html[data-theme=dark] .concept-title,html[data-theme=dark] .asgn-title{color:#fff}html[data-theme=dark] .concept-body,html[data-theme=dark] .asgn-body{color:#d1d5db}html[data-theme=dark] .concept-body code,html[data-theme=dark] .asgn-body code{color:#a3e635;background:#ffffff0f}html[data-theme=dark] .phase-progress-bar-wrap{background:#ffffff08;border-color:#ffffff14}html[data-theme=dark] .phase-progress-track{background:#ffffff14}html[data-theme=dark] .phase-nav-btn{color:#e6e8ee;background:#ffffff0d;border-color:#ffffff1a}html[data-theme=dark] .back-to-path{color:#94a3b8}html[data-theme=dark] .back-to-path:hover{color:#fff}@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-outline-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}
