:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "Cascadia Code", monospace;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1.0625rem;--text-md: 1.1875rem;--text-lg: 1.375rem;--text-xl: 1.625rem;--text-2xl: 2rem;--text-3xl: 2.375rem;--leading-tight: 1.25;--leading-normal: 1.55;--leading-relaxed: 1.7;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 2.5rem;--touch-min: 48px;--color-text-primary: #111111;--color-text-secondary: #4a4a4a;--color-text-tertiary: #767676;--color-background-primary: #ffffff;--color-background-secondary: #f4f6f9;--color-border-secondary: #d8dde5;--color-border-tertiary: #e8ecf1;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--accent: #185fa5;--accent-light: #e6f1fb;--accent-dark: #0c447c;--success-bg: #e1f5ee;--success-text: #085041;--error-bg: #fcebeb;--error-text: #791f1f;--max-width: 920px;--caption-tracking: .08em}@media(min-width:768px){:root{--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.3125rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);background:var(--color-background-secondary);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:.88em;background:var(--color-background-secondary);padding:3px 7px;border-radius:5px}.caption{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--caption-tracking);text-transform:uppercase;line-height:var(--leading-tight);color:var(--color-text-tertiary);margin-bottom:var(--space-xs)}.caption--accent{color:var(--accent)}.caption--success{color:#0f6e56}.caption--warn{color:#854f0b}.caption--on-dark{color:#ffffffbf}.caption-pill{display:inline-block;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--caption-tracking);text-transform:uppercase;padding:6px 14px;border-radius:999px;line-height:1}.caption-pill--accent,.caption-pill--cat{color:var(--accent);background:var(--accent-light)}.caption-pill,.caption-pill--accent,.caption-pill--cat{margin-bottom:var(--space-md)}.layout{min-height:100vh;display:flex;flex-direction:column}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-background-primary);border-bottom:1px solid var(--color-border-tertiary);position:sticky;top:0;z-index:100}.brand{display:flex;align-items:center;color:var(--color-text-primary);text-decoration:none;min-width:0}.brand:hover{text-decoration:none}.brand-logo{display:flex;align-items:center;gap:.65rem;min-width:0}.brand-mark{width:2.25rem;height:2.25rem;flex-shrink:0}.brand-lockup{display:flex;flex-direction:column;gap:.1rem;min-width:0}.brand-wordmark{font-family:Fraunces,Georgia,Times New Roman,serif;font-size:1.2rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;white-space:nowrap}.brand-wordmark-power{color:var(--color-text-primary)}.brand-wordmark-learn{color:var(--accent)}.brand-slogan{font-size:.6875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:520px){.brand-slogan{display:none}}@media(min-width:768px){.brand-mark{width:2.5rem;height:2.5rem}.brand-wordmark{font-size:1.3125rem}.brand-slogan{font-size:.71875rem}}.site-nav{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.lang-switcher{display:flex;align-items:center}.lang-switcher__select{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);background:var(--color-background-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-sm);padding:6px 10px;min-height:var(--touch-min);max-width:9rem;cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[dir=rtl] .site-nav,[dir=rtl] .nav-row,[dir=rtl] .prog-header,[dir=rtl] .exam-actions{flex-direction:row-reverse}.site-nav>a:not(.btn){display:none;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600}.user-chip{display:none;font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-background-secondary);padding:6px 12px;border-radius:999px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-main{flex:1;max-width:var(--max-width);width:100%;margin:0 auto;padding:var(--space-lg) var(--space-md) var(--space-2xl)}.site-main:has(.learning-app){padding-bottom:calc(var(--space-2xl) + 80px)}.site-footer{padding:var(--space-lg) var(--space-md);text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:var(--leading-relaxed);border-top:1px solid var(--color-border-tertiary)}.footer-note{margin-top:var(--space-xs);color:#854f0b;font-size:var(--text-sm)}@media(min-width:640px){.site-header{padding:var(--space-sm) var(--space-lg)}.site-nav>a:not(.btn){display:block}.user-chip{display:block}.site-main{padding:var(--space-xl) var(--space-lg) var(--space-2xl)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:var(--text-base);font-weight:600;min-height:var(--touch-min);padding:12px 20px;border-radius:var(--border-radius-md);border:2px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-ghost{background:var(--color-background-primary);color:var(--color-text-primary);border-color:var(--color-border-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-background-secondary)}.btn-sm{font-size:var(--text-sm);min-height:42px;padding:8px 16px}.btn-lg{font-size:var(--text-md);min-height:54px;padding:14px 28px}.btn-block{width:100%}.btn-google{width:100%;background:#fff;border:2px solid var(--color-border-secondary);color:var(--color-text-primary)}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;font-weight:600;text-decoration:underline;min-height:var(--touch-min)}.hero{text-align:center;padding:var(--space-lg) 0 var(--space-2xl)}.hero h1{font-size:var(--text-3xl);font-weight:800;line-height:var(--leading-tight);margin-bottom:var(--space-md);letter-spacing:-.02em}.hero h1 em{font-style:normal;color:var(--accent)}.hero-lead{font-size:var(--text-md);color:var(--color-text-secondary);line-height:var(--leading-relaxed);max-width:36rem;margin:0 auto var(--space-lg)}.hero-actions{display:flex;flex-direction:column;gap:var(--space-sm)}@media(min-width:480px){.hero-actions{flex-direction:row;justify-content:center;flex-wrap:wrap}}.features,.courses-section,.customize-cta{margin-bottom:var(--space-2xl)}.section-head{text-align:center;margin-bottom:var(--space-lg)}.section-head h2{font-size:var(--text-xl);font-weight:800;line-height:var(--leading-tight);letter-spacing:-.01em}.feature-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:540px){.feature-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.feature-grid{grid-template-columns:repeat(3,1fr)}}.feature-card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;display:flex;flex-direction:column}.feature-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:var(--color-background-secondary)}.feature-card-body{padding:var(--space-lg);flex:1}.feature-card h3{font-size:var(--text-md);font-weight:700;margin-bottom:var(--space-xs);line-height:var(--leading-tight)}.feature-card p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.course-grid{display:grid;gap:var(--space-lg);max-width:42rem;margin-inline:auto}.course-card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg);overflow:hidden;display:flex;flex-direction:column}.course-card .illustration--card{margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) var(--space-md)}.course-card-body{display:flex;flex-direction:column;flex:1}.course-card-tagline{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);line-height:var(--leading-normal);margin:0 0 var(--space-sm)}.course-card-toggle{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 var(--space-sm);padding:0;border:none;background:none;font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent}.course-card-toggle:hover{color:var(--accent-dark);text-decoration:underline}.course-card-toggle-icon{display:inline-block;font-size:.85em;line-height:1;transition:transform .15s ease}.course-card-toggle-icon.open{transform:rotate(180deg)}.course-card-details{margin-bottom:var(--space-sm)}.course-card-details .course-card-hook{margin-top:0}.course-card-hook{font-size:var(--text-base);font-weight:500;color:var(--accent-dark);line-height:var(--leading-relaxed);margin:0 0 var(--space-md);padding-left:var(--space-md);border-left:3px solid var(--accent)}.course-card-description{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0 0 var(--space-md)}.course-card-audience{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.course-card-audience-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);margin:0 0 var(--space-xs)}.course-card-audience p:last-child{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.illustration{margin:0 0 var(--space-md);max-width:100%}.illustration img{display:block;width:100%;height:auto;border-radius:var(--border-radius-md);border:1px solid var(--color-border-tertiary);background:var(--color-background-secondary)}.illustration--hero img{border-radius:var(--border-radius-lg)}.illustration--banner{margin-bottom:var(--space-lg)}.illustration--banner img{border-radius:var(--border-radius-lg);max-height:220px;object-fit:cover}.illustration--inline img{max-height:280px;object-fit:contain}.illustration--tutorial img{border-color:var(--accent);max-height:320px;object-fit:contain}.illustration--card img{border:none;border-radius:0;border-bottom:1px solid var(--color-border-tertiary);max-height:160px;object-fit:cover}.illustration-caption{margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-normal)}.illustration-credit{display:block;margin-top:.15rem;font-style:italic}.concept .illustration{margin:var(--space-xs) 0 var(--space-sm)}.analogy .illustration{margin-bottom:var(--space-sm)}.course-intro .illustration--hero{margin-bottom:var(--space-lg)}.course-card h3{font-size:var(--text-lg);font-weight:800;margin:var(--space-xs) 0 var(--space-xs);line-height:var(--leading-tight)}.course-card>p,.course-card-body>p:not(.course-card-hook):not(.course-card-description):not(.course-card-audience-label){color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:var(--space-md)}.course-meta{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-lg);margin-top:auto;padding-top:var(--space-sm)}.course-card .btn{margin-top:0}.course-card-actions{display:flex;gap:var(--space-sm);align-items:stretch}.course-card-actions .btn-primary{flex:1}.share-course-wrap{position:relative;display:inline-flex}.share-course-wrap--block{display:flex;width:100%}.share-course-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;flex-shrink:0;min-width:6.5rem}.share-course-wrap--block .share-course-btn{width:100%}.share-course-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:40;min-width:11rem;padding:.35rem;background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);box-shadow:0 8px 24px #0000001f}.share-course-menu__item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .65rem;border:0;border-radius:calc(var(--border-radius-md) - 2px);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.share-course-menu__item:hover,.share-course-menu__item:focus-visible{background:var(--color-background-secondary);outline:none}.share-course-icon{flex-shrink:0}.course-header .share-course-btn{margin-top:var(--space-xs)}.customize-cta{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg);text-align:center}.customize-cta h2{font-size:var(--text-xl);font-weight:800;margin-bottom:var(--space-sm)}.catalog-empty{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);padding:var(--space-xl)}.course-card--soon{opacity:.85}.course-soon-btn{pointer-events:none;width:100%}.sync-banner{font-size:var(--text-sm);font-weight:600;color:var(--accent);background:var(--accent-light);padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-md);margin-bottom:var(--space-md);text-align:center}.course-loading-shell{padding:var(--space-md) 0}.course-loading-title{font-size:var(--text-xl);font-weight:800;margin-bottom:var(--space-lg)}.learning-app{padding:0}.course-header{margin-bottom:var(--space-lg)}.course-header h1{font-size:var(--text-xl);font-weight:800;line-height:var(--leading-tight);display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.course-icon{font-size:1.75rem;flex-shrink:0}.course-subtitle{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-top:var(--space-xs);margin-bottom:var(--space-md)}.course-outline{margin-bottom:var(--space-lg)}.course-intro{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.intro-hook-block{margin-bottom:var(--space-md)}.intro-hook{font-size:var(--text-md);font-weight:600;line-height:var(--leading-relaxed);color:var(--color-text-primary);margin:0}.intro-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:640px){.intro-grid{grid-template-columns:1fr 1fr}}.intro-card{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:var(--space-md);margin-bottom:0}.intro-card-assumptions{background:#faeeda;border:1px solid #e8d5a8}.intro-body{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-secondary);margin:0}.intro-card-assumptions .intro-body{color:#5c4a1a}.sess-nav{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;margin:0 calc(-1 * var(--space-md));padding-left:var(--space-md);padding-right:var(--space-md);-webkit-overflow-scrolling:touch;scrollbar-width:none}.sess-nav::-webkit-scrollbar{display:none}.sess-card{position:relative;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:9.5rem;min-height:4.5rem;padding:10px 12px;border-radius:var(--border-radius-md);border:2px solid var(--color-border-secondary);background:var(--color-background-primary);color:var(--color-text-primary);cursor:pointer;text-align:left;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:border-color .15s,background .15s}.sess-card-num{font-size:var(--text-xs);font-weight:800;letter-spacing:var(--caption-tracking);text-transform:uppercase;color:var(--color-text-tertiary)}.sess-card-title{font-size:var(--text-sm);font-weight:700;line-height:var(--leading-tight);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sess-card-check{position:absolute;top:8px;right:8px;font-size:var(--text-xs);font-weight:800;color:#0f6e56}.sess-card.on{background:var(--accent);border-color:var(--accent)}.sess-card.on .sess-card-num,.sess-card.on .sess-card-title{color:#e6f1fb}.sess-card.on .sess-card-check{color:#b8f5d8}.sess-card.done:not(.on){border-color:#0f6e56;background:var(--success-bg)}.sess-card.done:not(.on) .sess-card-title{color:#085041}@media(min-width:640px){.sess-nav{margin:0;padding-left:0;padding-right:0;flex-wrap:wrap;overflow-x:visible}.sess-card{width:calc(25% - 8px);min-width:9rem}}.prog-wrap{margin-bottom:var(--space-lg)}.prog-header{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-sm)}.prog-title{font-size:var(--text-md);font-weight:700;line-height:var(--leading-tight);color:var(--color-text-primary)}.prog-pct{font-size:var(--text-sm);font-weight:700;color:var(--accent)}.prog-track{height:10px;background:var(--color-background-secondary);border-radius:999px;overflow:hidden;border:1px solid var(--color-border-tertiary)}.prog-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .4s}@media(min-width:480px){.prog-header{flex-direction:row;justify-content:space-between;align-items:baseline}}.exam-banner{display:flex;flex-direction:column;gap:var(--space-md);background:#eaf3de;border:2px solid #3b6d11;border-radius:var(--border-radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.exam-banner p{font-size:var(--text-base);font-weight:600;color:#27500a;line-height:var(--leading-relaxed)}.exam-banner .btn{width:100%}@media(min-width:480px){.exam-banner{flex-direction:row;align-items:center;justify-content:space-between}.exam-banner .btn{width:auto}}.stage-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:var(--space-lg)}@media(max-width:720px){.stage-tabs{display:flex;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.stab{min-width:4.75rem;flex-shrink:0;font-size:var(--text-xs);min-height:64px}}.stab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:72px;padding:var(--space-sm) 6px;font-size:var(--text-sm);font-weight:700;text-align:center;cursor:pointer;background:var(--color-background-primary);color:var(--color-text-secondary);border:2px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);font-family:inherit;position:relative;-webkit-tap-highlight-color:transparent}.stab.on{background:var(--accent-light);color:var(--accent-dark);border-color:var(--accent)}.stab-icon{font-size:1.5rem;line-height:1}.stab-badge{position:absolute;top:6px;right:8px;font-size:var(--text-xs);font-weight:800;color:#0f6e56}.panel{display:none}.panel.on{display:block}.theory-card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md)}.theory-card h2{font-size:var(--text-lg);font-weight:800;line-height:var(--leading-tight);margin-bottom:var(--space-md)}.text-block{display:flex;align-items:flex-start;gap:.375rem;margin-bottom:var(--space-sm);max-width:100%}.text-block:last-child{margin-bottom:0}.text-block-body{flex:1;min-width:0;max-width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.text-block-heading{margin-bottom:var(--space-md)}.text-block-heading h2,.text-block-step-title h4{margin:0}.text-block-question{margin-bottom:var(--space-md)}.text-block-question .q-text{margin-bottom:0}.text-block-inline{flex:1;margin-bottom:0}.text-block-list-item{display:inline-flex;align-items:flex-start;gap:var(--space-sm);width:100%}.keypoint.text-block{gap:var(--space-sm)}.keypoint.text-block .text-block-body{display:flex;align-items:flex-start;gap:var(--space-sm);flex:1;min-width:0}.keypoint.text-block.text-block-playing .text-block-body{display:block}.keypoint.text-block p{margin:0}.exam-banner.text-block{flex-direction:column;gap:var(--space-md)}@media(min-width:480px){.exam-banner.text-block{flex-direction:row;align-items:center;justify-content:space-between}}.feedback.text-block{align-items:flex-start}.prompt-box.text-block{margin:var(--space-sm) 0}.tts-btn{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-top:.15em;padding:0;border:1.5px solid var(--color-border-secondary);border-radius:50%;background:var(--color-background-primary);color:var(--accent);cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s,border-color .15s,color .15s}.tts-btn:hover{background:var(--accent-light);border-color:var(--accent)}.tts-btn.playing{background:var(--accent);border-color:var(--accent);color:#fff}.tts-icon{font-size:.5rem;line-height:1}.tts-btn-compact{width:1.375rem;height:1.375rem;margin-top:0}.karaoke-text{display:block;width:100%;max-width:100%;margin:0;line-height:var(--leading-relaxed);overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;white-space:normal}.karaoke-word{display:inline;border-radius:4px;padding:1px 0;transition:background .12s ease,color .12s ease;box-decoration-break:clone;-webkit-box-decoration-break:clone}.karaoke-word.spoken{color:var(--accent-dark)}.karaoke-word.active{background:#ffe566;color:#1a1a1a;font-weight:700;outline:2px solid #ffd43b;outline-offset:1px}.text-block-playing .text-block-body{line-height:var(--leading-relaxed)}.concept.text-block .text-block-body,.feedback.text-block .text-block-body,.prompt-box.text-block .text-block-body{width:100%;max-width:100%}.opt-row .karaoke-text{text-align:left}.opt-row{display:flex;align-items:stretch;gap:8px}.opt-row .opt{flex:1;min-width:0}.concept{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:var(--space-md);margin-bottom:var(--space-sm)}.concept.text-block{margin-bottom:var(--space-sm)}.concept .term{font-size:var(--text-base);font-weight:700;margin-bottom:6px;color:var(--color-text-primary)}.concept .def{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.analogy{background:var(--accent-light);border-radius:var(--border-radius-md);padding:var(--space-md);margin-top:var(--space-md);border-left:4px solid var(--accent)}.analogy p{font-size:var(--text-base);color:var(--accent-dark);line-height:var(--leading-relaxed)}.keypoint{display:flex;gap:var(--space-sm);align-items:flex-start;margin-bottom:var(--space-sm)}.keypoint span{color:var(--accent);font-size:var(--text-lg);line-height:1.2;flex-shrink:0}.keypoint p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.quiz-wrap{margin-bottom:var(--space-md)}.reinforce-panel h2{font-size:var(--text-lg);margin-bottom:var(--space-sm)}.reinforce-hint{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.matcher-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:640px){.matcher-grid{grid-template-columns:1fr}}.matcher-col{display:flex;flex-direction:column;gap:var(--space-sm)}.matcher-item{width:100%;text-align:left;padding:var(--space-md);border:2px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:var(--color-background-primary);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-primary);cursor:pointer;font-family:inherit}.matcher-item--def{font-size:var(--text-sm);color:var(--color-text-secondary)}.matcher-item.selected{border-color:var(--accent);background:var(--accent-light)}.matcher-item.matched{border-color:#3b6d11;background:#eaf3de;color:#27500a;cursor:default}.matcher-item.wrong{border-color:#c44;background:var(--error-bg);animation:matcher-shake .45s ease}@keyframes matcher-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.flashcard{width:100%;min-height:220px;margin:var(--space-md) 0 var(--space-sm);padding:0;border:none;background:transparent;cursor:pointer;perspective:1000px}.flashcard-inner{position:relative;width:100%;min-height:220px;transition:transform .45s ease;transform-style:preserve-3d}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;gap:var(--space-sm);padding:var(--space-lg);border-radius:var(--border-radius-lg);border:2px solid var(--color-border-secondary);backface-visibility:hidden;text-align:center}.flashcard-front{background:var(--accent-light);color:var(--accent-dark)}.flashcard-back{background:#eeedfe;color:#3c3489;transform:rotateY(180deg)}.flashcard-face p:last-child{font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0}.flashcard-tap-hint{text-align:center;font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.flashcard-nav{display:flex;justify-content:space-between;gap:var(--space-sm)}.q-card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md)}.q-text{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-md);line-height:var(--leading-relaxed);color:var(--color-text-primary)}.options{display:flex;flex-direction:column;gap:var(--space-sm)}.options .opt-row .opt{margin:0}.opt{min-height:var(--touch-min);padding:14px 16px;border-radius:var(--border-radius-md);border:2px solid var(--color-border-secondary);background:var(--color-background-secondary);font-size:var(--text-base);font-weight:500;cursor:pointer;text-align:left;font-family:inherit;line-height:var(--leading-normal);transition:border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}.opt:hover:not(:disabled),.opt:focus-visible:not(:disabled){border-color:var(--accent);background:var(--accent-light);outline:none}.opt.selected{border-color:var(--accent);background:var(--accent-light)}.opt.correct{background:var(--success-bg);border-color:#0f6e56;color:var(--success-text)}.opt.wrong{background:var(--error-bg);border-color:#a32d2d;color:var(--error-text)}.opt:disabled{cursor:default}.feedback{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--border-radius-md);font-size:var(--text-base);line-height:var(--leading-relaxed);display:none}.feedback.show{display:block}.feedback.ok{background:var(--success-bg);color:var(--success-text)}.feedback.bad{background:var(--error-bg);color:var(--error-text)}.quiz-score{background:var(--color-background-primary);border:2px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-xl);text-align:center;margin-top:var(--space-md)}.quiz-score .big{font-size:var(--text-3xl);font-weight:800;color:var(--accent);line-height:1}.quiz-score p{font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-sm);line-height:var(--leading-relaxed)}.retry-btn{margin-top:var(--space-md);width:100%}.tut-panel{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg)}.tut-panel>h2{font-size:var(--text-lg);font-weight:800;line-height:var(--leading-tight);margin-bottom:var(--space-lg)}.tut-step{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border-tertiary)}.tut-step:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.tut-num{width:36px;height:36px;border-radius:50%;background:var(--accent-light);color:var(--accent);font-size:var(--text-sm);font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tut-body h4{font-size:var(--text-base);font-weight:700;margin-bottom:var(--space-xs);line-height:var(--leading-tight)}.tut-body p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-sm)}.copyable-block{margin:var(--space-sm) 0}.copyable-block__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.copy-btn{font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--color-border-secondary);border-radius:6px;background:var(--color-background-primary);color:var(--accent);cursor:pointer}.copy-btn:hover{background:var(--accent-light);border-color:var(--accent)}.prompt-box,.code-box{background:var(--color-background-secondary);border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0;padding:var(--space-md);margin:0;font-size:var(--text-sm);font-family:var(--font-mono);line-height:var(--leading-relaxed);white-space:pre-wrap;overflow-x:auto}.prompt-box{border-left:4px solid #7f77dd}.code-box{border-left:4px solid var(--accent)}.code-box pre,.prompt-box pre{margin:0;font-family:inherit;white-space:pre-wrap;word-break:break-word}.tutorial-runtime-note{font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--accent-light);border-radius:var(--border-radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);line-height:var(--leading-relaxed)}.tutorial-colab-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--color-text-secondary);background:color-mix(in srgb,var(--accent) 12%,var(--color-background-secondary));border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);line-height:var(--leading-relaxed)}.tutorial-colab-banner p{flex:1;min-width:14rem;margin:0}.colab-code-block{margin-top:var(--space-sm)}.colab-code-block__actions{display:flex;justify-content:flex-end;margin-bottom:var(--space-xs)}.colab-code-block__pre{margin:0}.python-playground__dataset-wrap{margin-bottom:var(--space-sm)}.python-playground__dataset-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.python-playground__dataset-download{font-size:var(--text-xs);font-weight:600;color:var(--accent);text-decoration:none;padding:4px 10px;border:1px solid var(--accent);border-radius:6px}.python-playground__dataset-download:hover{background:var(--accent);color:#fff}.python-playground__dataset-panel{margin-top:var(--space-xs);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.python-playground__dataset-scenario{margin:0 0 var(--space-xs);font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.python-playground__dataset-error{margin:var(--space-xs) 0 0;font-size:var(--text-sm);color:var(--color-danger, #c0392b)}.python-playground__columns{margin-top:var(--space-sm)}.python-playground__column-list{margin:var(--space-xs) 0 0;padding-left:1.25rem;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.python-playground__column-list code{font-size:.9em;color:var(--color-text)}.python-playground__preview-wrap{margin-top:var(--space-sm)}.python-playground__preview-scroll{overflow-x:auto;margin-top:var(--space-xs)}.python-playground__preview{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.python-playground__preview th,.python-playground__preview td{border:1px solid var(--color-border);padding:4px 8px;text-align:left;white-space:nowrap}.python-playground__preview th{background:var(--color-bg-subtle, rgba(0, 0, 0, .04));font-weight:600}.python-playground__dataset-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:0;border:none;background:none;font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent}.python-playground__dataset-toggle:hover{color:var(--accent)}.python-playground__dataset-toggle code{font-family:var(--font-mono);font-size:.95em;color:var(--accent-dark)}.python-playground__dataset-icon{display:inline-block;font-size:.85em;line-height:1;transition:transform .15s ease}.python-playground__dataset-icon.open{transform:rotate(180deg)}.python-playground__dataset-desc{margin:var(--space-xs) 0 0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.python-playground{margin:var(--space-sm) 0}.python-playground__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:flex-end}.run-btn{font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 14px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.run-btn:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.run-btn:disabled,.copy-btn:disabled{opacity:.6;cursor:not-allowed}.python-playground__editor{width:100%;min-height:8rem;resize:vertical;border:1px solid var(--color-border-secondary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-primary)}.python-playground__editor:focus{outline:2px solid var(--accent-light);border-color:var(--accent)}.python-playground__output{margin-top:var(--space-sm);background:#0f172a;border-radius:var(--border-radius-md);padding:var(--space-md)}.python-playground__output .caption{color:#94a3b8;margin-bottom:var(--space-xs)}.python-playground__stdout,.python-playground__error,.python-playground__status{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:break-word}.python-playground__stdout{color:#e2e8f0}.python-playground__plot{display:block;max-width:100%;height:auto;margin:var(--space-sm) 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff}.python-playground__error{color:#fca5a5}.python-playground__status{color:#94a3b8}.python-playground__hint{margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-relaxed)}.tool-tag{display:inline-block;font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:6px;margin:4px 6px 4px 0;background:var(--accent-light);color:var(--accent-dark)}.tool-tag.ai{background:#eeedfe;color:#3c3489}.tool-tag.creative{background:#faeeda;color:#854f0b}.tool-tag.analytics{background:#eaf3de;color:#3b6d11}.tool-tag.ads{background:var(--accent-light);color:var(--accent)}.deliverable{background:#eaf3de;border-radius:var(--border-radius-md);padding:var(--space-md);margin-top:var(--space-sm);border-left:4px solid #3b6d11}.deliverable ul{padding-left:1.25rem;margin-top:var(--space-xs)}.deliverable li{font-size:var(--text-base);color:#27500a;line-height:var(--leading-relaxed);margin-bottom:4px}.learning-app .nav-row{position:fixed;bottom:0;left:0;right:0;display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);padding-bottom:max(var(--space-sm),env(safe-area-inset-bottom));background:var(--color-background-primary);border-top:1px solid var(--color-border-tertiary);box-shadow:0 -4px 20px #0000000f;z-index:90;align-items:center}.learning-app .nav-row .btn{flex:1}.learning-app .stage-status{display:none;font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);text-align:center}@media(min-width:640px){.site-main:has(.learning-app){padding-bottom:var(--space-2xl)}.learning-app .nav-row{position:static;box-shadow:none;padding:0;margin-top:var(--space-lg);background:transparent;border-top:none}.learning-app .nav-row .btn{flex:none}.learning-app .stage-status{display:block;flex:1}.retry-btn{width:auto}}.auth-page{display:flex;justify-content:center;padding:var(--space-lg) 0}.auth-card{width:100%;max-width:420px;background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-xl) var(--space-lg)}.auth-card h1{font-size:var(--text-xl);font-weight:800;margin-bottom:var(--space-xs)}.auth-sub{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-lg)}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:600}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border-tertiary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm);font-weight:700}.auth-form label .caption{margin-bottom:2px}.auth-form input{min-height:var(--touch-min);padding:12px 16px;border:2px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-family:inherit;font-size:var(--text-base)}.auth-form input:focus{outline:none;border-color:var(--accent)}.form-error{color:#a32d2d;font-size:var(--text-base);font-weight:600}.auth-switch,.auth-back{text-align:center;font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-lg)}.notice{padding:var(--space-md);border-radius:var(--border-radius-md);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:var(--space-md)}.notice-warn{background:#faeeda;color:#854f0b}.exam-page{max-width:720px;margin:0 auto}.exam-header{margin-bottom:var(--space-xl)}.exam-header h1{font-size:var(--text-xl);font-weight:800;margin-bottom:var(--space-sm);line-height:var(--leading-tight)}.exam-header p{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.exam-meta{font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);margin-top:var(--space-sm)}.exam-result{text-align:center;padding:var(--space-xl);border-radius:var(--border-radius-lg);margin-top:var(--space-lg)}.exam-result.success{background:var(--success-bg);color:var(--success-text)}.exam-result.fail{background:var(--error-bg);color:var(--error-text)}.exam-result .big{font-size:var(--text-3xl);font-weight:800}.exam-result p{font-size:var(--text-base);margin-top:var(--space-sm);line-height:var(--leading-relaxed)}.exam-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}@media(min-width:480px){.exam-actions{flex-direction:row;justify-content:center}}.cert-page{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.certificate{width:100%;max-width:800px}.cert-border{background:linear-gradient(135deg,var(--accent) 0%,#0c447c 100%);padding:4px;border-radius:var(--border-radius-lg)}.cert-inner{background:#fff;padding:var(--space-2xl) var(--space-lg);text-align:center;border-radius:calc(var(--border-radius-lg) - 2px)}.cert-inner h1{font-size:var(--text-2xl);margin:var(--space-sm) 0 var(--space-md);font-weight:800;line-height:var(--leading-tight)}.cert-name{font-size:var(--text-2xl);font-weight:800;color:var(--accent-dark);margin:var(--space-sm) 0 var(--space-md);font-family:Georgia,serif;line-height:var(--leading-tight)}.cert-body{font-size:var(--text-base);color:var(--color-text-secondary);max-width:28rem;margin:0 auto var(--space-xl);line-height:var(--leading-relaxed)}.cert-footer{display:flex;flex-direction:column;gap:var(--space-lg);border-top:1px solid var(--color-border-tertiary);padding-top:var(--space-lg)}@media(min-width:480px){.cert-footer{flex-direction:row;justify-content:space-around}}.cert-date,.cert-id{font-size:var(--text-base);font-weight:700}.cert-actions{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;max-width:400px}@media(min-width:480px){.cert-actions{flex-direction:row;max-width:none}}.page-loading{display:flex;justify-content:center;padding:var(--space-2xl)}.spinner{width:40px;height:40px;border:3px solid var(--color-border-secondary);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-box{text-align:center;padding:var(--space-xl);background:var(--color-background-primary);border-radius:var(--border-radius-lg);border:1px solid var(--color-border-tertiary)}.error-box h2{font-size:var(--text-lg);font-weight:800;margin-bottom:var(--space-sm)}.error-box p{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:var(--space-lg)}@media print{.no-print,.site-header,.site-footer,.nav-row{display:none!important}.site-main{max-width:none;padding:0}.cert-border{padding:2px}}.content-locale-bar{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised)}.content-locale-bar__label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);font-size:.9rem;font-weight:600}.content-locale-bar__select{min-width:10rem;padding:.35rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:inherit}.content-locale-bar__note,.content-locale-bar__locked{margin:0;color:var(--text-muted)}.content-locale-bar__cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.content-locale-bar__cta p{margin:0}.author-page{max-width:var(--max-width);margin:0 auto;padding-bottom:var(--space-2xl)}.author-header{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}@media(min-width:640px){.author-header{flex-direction:row;justify-content:space-between;align-items:flex-start}}.author-header h1{font-size:var(--text-2xl);font-weight:800;line-height:var(--leading-tight);margin:var(--space-xs) 0}.author-muted{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.author-stats{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.author-back-row{margin-bottom:var(--space-md)}.author-panel{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.author-panel h2{font-size:var(--text-lg);font-weight:800;margin-bottom:var(--space-md)}.author-form{display:grid;gap:var(--space-md)}@media(min-width:640px){.author-form{grid-template-columns:1fr 1fr auto;align-items:end}}.author-form label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--text-sm);font-weight:600}.author-form input,.author-form select,.author-panel input[type=file]{width:100%;margin-bottom:0;font-size:var(--text-base);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-sm);min-height:var(--touch-min)}.author-form__action{display:flex;flex-direction:column;gap:var(--space-xs)}.author-form__action:before{content:" ";font-size:var(--text-sm);font-weight:600;line-height:1.4;visibility:hidden;-webkit-user-select:none;user-select:none}.author-form__action .btn{width:100%;white-space:nowrap}.author-source-mode{display:inline-flex;gap:var(--space-xs);padding:var(--space-xs);margin-bottom:var(--space-md);background:var(--color-background-secondary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}.author-source-mode button{border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);cursor:pointer}.author-source-mode button.is-active{background:var(--color-background-primary);color:var(--color-text-primary);box-shadow:0 1px 2px #0000000f}.author-source-mode button:disabled{cursor:not-allowed;opacity:.6}.author-outline-input{width:100%;min-height:220px;padding:var(--space-md);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);font:inherit;line-height:1.5;resize:vertical;margin-bottom:var(--space-sm)}.author-outline-count{margin-bottom:var(--space-md)}.author-session-confirm{margin-top:var(--space-lg);padding:var(--space-lg);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-secondary)}.author-session-confirm h3{font-size:var(--text-base);font-weight:800;margin-bottom:var(--space-sm)}.author-session-confirm-label{font-size:var(--text-sm);font-weight:700;margin:var(--space-md) 0 var(--space-sm)}.author-session-confirm-list{margin:0 0 var(--space-md);padding-left:var(--space-lg);display:grid;gap:var(--space-sm)}.author-session-confirm-list li{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.author-session-confirm-list li span{color:var(--color-text-secondary)}.author-file-list{list-style:none;margin:var(--space-sm) 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.author-file-list--uploaded{color:var(--success-text);font-weight:600}.author-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.author-error{color:var(--error-text);background:var(--error-bg);padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);margin-bottom:var(--space-md);font-size:var(--text-sm);font-weight:600}.author-job{margin-top:var(--space-lg);padding:var(--space-md);background:var(--color-background-secondary);border-radius:var(--border-radius-md);border:1px solid var(--color-border-tertiary)}.author-job-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.author-job-percent{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1}.author-job-stage{font-size:var(--text-sm);font-weight:700;color:var(--color-text-primary);text-align:right}.author-job-bar{height:10px;background:var(--color-border-tertiary);border-radius:5px;overflow:hidden;margin-bottom:var(--space-sm)}.author-job-fill{height:100%;background:var(--accent);transition:width .5s ease}.author-job-fill--pulse{animation:author-job-pulse 2s ease-in-out infinite}@keyframes author-job-pulse{0%,to{opacity:1}50%{opacity:.65}}.author-job-message{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0 0 var(--space-sm)}.author-job-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.author-job-hint{width:100%;font-weight:500}.author-job-ill{font-size:var(--text-sm);font-weight:700;color:var(--accent-dark);margin:0 0 var(--space-sm)}.author-job-steps{list-style:none;display:grid;gap:var(--space-xs);margin:0 0 var(--space-md);padding:0}.author-job-step{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-tertiary)}.author-job-step--done{color:var(--success-text);font-weight:600}.author-job-step--current{color:var(--color-text-primary);font-weight:700}.author-job-step-icon{width:1.25rem;text-align:center;flex-shrink:0}.author-job-note{margin:0;font-size:var(--text-xs)}.author-job-cancel{margin-top:var(--space-sm);color:var(--error-text)}.author-job-cancel:hover{background:var(--error-bg)}.author-course-list{list-style:none;display:grid;gap:var(--space-sm)}.author-course-row{display:flex;gap:var(--space-sm);align-items:stretch}.author-course-row .author-course-item{flex:1}.author-delete-btn{flex-shrink:0;color:var(--error-text);align-self:center}.author-delete-btn:hover{background:var(--error-bg)}.author-course-item{width:100%;text-align:left;background:var(--color-background-secondary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:var(--space-md);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md);cursor:pointer;font-size:var(--text-base)}.author-course-item:hover{border-color:var(--accent)}.author-course-item strong{flex:1;min-width:10rem}.author-edit-link{margin-left:var(--space-sm)}.author-editor-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-sm)}.author-editor-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-md);background:var(--color-background-secondary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}.author-editor-row strong{display:block}.author-course-editor{position:relative}.author-edit-toolbar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin:calc(-1 * var(--space-md)) calc(-1 * var(--space-md)) var(--space-md);background:color-mix(in srgb,var(--accent) 12%,var(--color-background));border-bottom:1px solid var(--color-border-tertiary)}.author-edit-toolbar__left,.author-edit-toolbar__right{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.author-edit-badge{font-size:var(--text-sm);font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.author-edit-save{font-size:var(--text-sm);color:var(--color-text-secondary)}.author-edit-locale{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-secondary)}.author-edit-locale select{min-width:8rem;min-height:2rem;padding-top:.35rem;padding-bottom:.35rem}.author-edit-locale-note{margin:0 0 var(--space-md)}.author-edit-error{margin-bottom:var(--space-md)}.author-edit-add-panel{margin-bottom:var(--space-md);padding:var(--space-md);background:var(--color-background-secondary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}.author-form--inline{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:flex-end}.author-inline-field{display:flex;flex-direction:column;gap:var(--space-xs);flex:1;min-width:12rem;font-size:var(--text-sm);font-weight:600}.author-inline-field input,.author-inline-field select{width:100%;margin-bottom:0}.author-inline-field input{font-size:var(--text-base);font-weight:400;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-sm);min-height:var(--touch-min)}.author-inline-field--action{flex:0 0 auto;min-width:auto}.author-inline-field--action:before{content:" ";font-size:var(--text-sm);font-weight:600;line-height:1.4;visibility:hidden;-webkit-user-select:none;user-select:none}.author-inline-field--action .btn{white-space:nowrap}.learning-app--edit .editable-field-wrap{display:flex;flex-direction:column;gap:var(--space-xs);width:100%;min-width:0}.editable-field-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-tertiary)}.learning-app--edit .editable-field-display{display:block;width:100%;box-sizing:border-box;cursor:text;border-radius:var(--border-radius-md);border:1px solid transparent;padding:var(--space-sm) var(--space-md);transition:border-color .15s,background .15s,box-shadow .15s}.learning-app--edit .editable-field-display:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--color-border-tertiary));background:color-mix(in srgb,var(--accent) 5%,var(--color-background))}.learning-app--edit .editable-field-input{display:block;width:100%;box-sizing:border-box;margin:0;font-family:inherit;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-primary);background:var(--color-background);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:var(--space-sm) var(--space-md);resize:none;transition:border-color .15s,box-shadow .15s}.learning-app--edit .editable-field-input--active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);outline:none}.learning-app--edit .editable-field-input.term,.learning-app--edit .editable-field-display.term{font-weight:700}.learning-app--edit .editable-field-input.def,.learning-app--edit .editable-field-display.def{color:var(--color-text-secondary)}.learning-app--edit textarea.editable-field-input{min-height:5rem}.learning-app--edit textarea.editable-field-input.prompt-box,.learning-app--edit .editable-field-input.pre{font-family:var(--font-mono);font-size:var(--text-sm);min-height:8rem}.learning-app--edit .editable-field-display.text-block-heading,.learning-app--edit .editable-field-input.text-block-heading{font-size:var(--text-xl);font-weight:700}.learning-app--edit .editable-field-display.course-subtitle,.learning-app--edit .editable-field-input.course-subtitle{font-size:var(--text-lg);color:var(--color-text-secondary)}.editable-placeholder{color:var(--color-text-tertiary);font-style:italic}.learning-app--edit .concept .editable-field-wrap+.editable-field-wrap{margin-top:var(--space-sm)}.learning-app--edit .keypoint{display:flex;gap:var(--space-sm);align-items:flex-start}.learning-app--edit .keypoint .editable-field-wrap{flex:1}.editable-illustration{position:relative}.editable-illustration--edit{margin-bottom:var(--space-md)}.editable-illustration__regen{margin-top:var(--space-sm)}.editable-illustration__missing{padding:var(--space-lg);text-align:center;color:var(--color-text-secondary);border:1px dashed var(--color-border-tertiary);border-radius:var(--border-radius-md)}.author-edit-session-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md);margin:var(--space-md) 0;padding:var(--space-md);background:color-mix(in srgb,var(--accent) 8%,var(--color-background-secondary));border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}.author-regen-part-row{display:flex;justify-content:flex-end;margin:0 0 var(--space-sm)}.author-edit-session-title{flex:1;min-width:12rem;margin:0}.author-edit-session-short{flex:1;min-width:10rem;margin:0}.author-select,.author-form select,.author-inline-field select,.author-edit-locale select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:inherit;font-size:var(--text-sm);font-weight:500;line-height:1.25;color:var(--color-text-primary);background-color:var(--color-background-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:1rem;padding:.5rem 2.25rem .5rem .75rem;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-sm);min-height:2.375rem;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.author-select:hover:not(:disabled),.author-form select:hover:not(:disabled),.author-inline-field select:hover:not(:disabled),.author-edit-locale select:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-text-tertiary) 55%,var(--color-border-secondary))}.author-select:focus,.author-form select:focus,.author-inline-field select:focus,.author-edit-locale select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.author-select:disabled,.author-form select:disabled,.author-inline-field select:disabled,.author-edit-locale select:disabled{opacity:.55;cursor:not-allowed}.author-select--compact{min-width:11rem}.author-edit-session-format{display:inline-flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.author-edit-session-format__label{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--caption-tracking);text-transform:uppercase;line-height:1;color:var(--color-text-tertiary);white-space:nowrap;margin:0}.author-edit-pairs{list-style:none;padding:0;margin:var(--space-md) 0 0;display:grid;gap:var(--space-sm)}.author-edit-pair{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(14rem,2fr);gap:var(--space-md);align-items:start;padding:var(--space-md);background:var(--color-background-secondary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}@media(max-width:640px){.author-edit-pair{grid-template-columns:1fr}}.quiz-wrap .opt-edit{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:var(--color-background-secondary)}.quiz-wrap .opt-edit .editable-field-wrap{width:100%}.quiz-wrap .opt-edit--correct{color:var(--success-text)}
