:root{--ink:#1b2340;--ink-soft:#3a4266;--paper:#fbf6ed;--paper-dim:#f1eada;--sun:#f2a93b;--sun-dark:#d98f1f;--clay:#e2603f;--leaf:#3f8f5f;--sky:#6f98b8;--line:rgba(27,35,64,.14);--line-soft:rgba(27,35,64,.08);--shadow:0 10px 30px rgba(27,35,64,.14);--radius:14px;--serif:"Fraunces",serif;--sans:"Figtree",sans-serif;--mono:"IBM Plex Mono",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;overflow-x:hidden;width:100%}body{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input{font-family:inherit}::selection{background:var(--sun);color:var(--ink)}.container{max-width:1120px;margin:0 auto;padding:0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:999px;padding:13px 26px;font-weight:700;font-size:15px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--sun);color:var(--ink);box-shadow:0 6px 0 var(--sun-dark)}.btn-primary:hover{transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-dark{background:var(--ink);color:var(--paper)}.btn-dark:hover{background:var(--ink-soft)}.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn-ghost:hover{border-color:var(--ink)}.btn-block{width:100%}.btn-sm{padding:9px 16px;font-size:13px}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--sun);padding:5px 12px;border-radius:999px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{transition:none;opacity:1;transform:none}}@keyframes float-y{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-10px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-pulse{0%,to{opacity:.14;transform:scale(1)}50%{opacity:.24;transform:scale(1.08)}}@keyframes badge-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.hero h1,.hero p,.hero-cta,.hero-eyebrow{animation:fade-up .7s ease both}.hero h1{animation-delay:.06s}.hero p{animation-delay:.14s}.hero-cta{animation-delay:.22s}.stamp.done{animation:badge-pop .5s ease both}.stamp.done:first-child{animation-delay:.5s}.stamp.done:nth-child(2){animation-delay:.62s}.stamp.done:nth-child(3){animation-delay:.74s}.stamp.done:nth-child(4){animation-delay:.86s}@media (prefers-reduced-motion:reduce){.carnet-card,.hero h1,.hero p,.hero-cta,.hero-eyebrow,.hero-glow,.stamp.done{animation:none}}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:hsla(39,64%,96%,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft)}.nav-inner{justify-content:space-between;padding:16px 24px;max-width:1120px;margin:0 auto}.logo,.nav-inner{display:flex;align-items:center}.logo{gap:10px;font-family:var(--serif);font-weight:700;font-size:22px}.logo .dot{color:var(--clay)}.nav-links{display:flex;align-items:center;gap:28px;font-weight:600;font-size:14px}.nav-links a{opacity:.8}.nav-links a:hover{opacity:1}.nav-burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:38px;height:38px;border-radius:10px;border:1.5px solid var(--line);background:var(--paper);flex:none}.nav-burger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}.nav-burger.is-open span:first-child{transform:translateY(7px) rotate(45deg)}.nav-burger.is-open span:nth-child(2){opacity:0}.nav-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-mobile-panel{display:none;flex-direction:column;gap:4px;padding:0 16px;max-height:0;overflow:hidden;transition:max-height .22s ease,padding .22s ease;border-top:1px solid transparent}.nav-mobile-panel a{padding:12px 6px;font-weight:600;font-size:14.5px;border-bottom:1px solid var(--line-soft)}.nav-mobile-panel .btn{margin-top:10px}.nav-mobile-panel.is-open{max-height:320px;padding:10px 16px 18px;border-top-color:var(--line-soft)}.hero{padding:76px 24px 40px;position:relative;overflow:hidden}.hero-glow{position:absolute;top:-120px;right:-80px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,var(--sun) 0,transparent 70%);opacity:.18;filter:blur(10px);animation:glow-pulse 7s ease-in-out infinite;pointer-events:none;z-index:0}.hero-inner{position:relative;z-index:1;max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;grid-gap:48px;gap:48px;align-items:center}.hero-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--clay);font-weight:600;margin-bottom:18px;display:flex;align-items:center;gap:8px}.hero-eyebrow:before{content:"";width:22px;height:2px;background:var(--clay);display:inline-block}.hero h1{font-family:var(--serif);font-size:52px;line-height:1.04;margin:0 0 22px;font-weight:700;letter-spacing:-.01em}.hero h1 em{font-style:italic;color:var(--clay);font-weight:500}.hero p{font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:460px;margin:0 0 30px}.hero-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.hero-cta .note{font-size:13px;color:var(--ink-soft);font-family:var(--mono)}.carnet-art{position:relative;height:420px;display:flex;align-items:center;justify-content:center}.carnet-card{position:relative;width:300px;background:var(--ink);border-radius:18px;padding:26px 24px;box-shadow:var(--shadow);animation:float-y 6s ease-in-out infinite}.carnet-card:before{content:"";position:absolute;left:-10px;top:16px;bottom:16px;width:10px;background:repeating-linear-gradient(180deg,var(--sun) 0 10px,transparent 10px 20px);border-radius:6px}.carnet-title{font-family:var(--serif);color:var(--paper);font-size:15px;font-weight:600;margin-bottom:4px}.carnet-sub{font-family:var(--mono);color:var(--sun);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px}.stamp-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed hsla(39,64%,96%,.25);display:flex;align-items:center;justify-content:center;color:hsla(39,64%,96%,.35)}.stamp.done{border-style:solid;border-color:var(--sun);color:var(--sun);background:rgba(242,169,59,.08)}.stamp svg{width:20px;height:20px}.carnet-back{position:absolute;width:260px;height:340px;border:1.5px solid var(--line);border-radius:18px;transform:rotate(6deg) translate(70px,10px);z-index:-1}.carnet-back,.marquee{background:var(--paper-dim)}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;overflow:hidden}.marquee-track{display:flex;gap:40px;white-space:nowrap;font-family:var(--mono);font-size:13px;color:var(--ink-soft);animation:scroll 32s linear infinite;width:max-content}@keyframes scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.section{padding:64px 24px}.section-head{max-width:640px;margin:0 auto 40px;text-align:center}.section-head .eyebrow{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--clay);font-weight:700;margin-bottom:10px}.section-head h2{font-family:var(--serif);font-size:34px;margin:0 0 12px;font-weight:700}.section-head p{color:var(--ink-soft);font-size:15.5px;line-height:1.55}.subject-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);grid-gap:16px;gap:16px}.stat-bar{display:flex;gap:28px;flex-wrap:wrap;margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}.stat-bar .stat-num{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--ink)}.stat-bar .stat-label{font-size:11.5px;color:var(--ink-soft);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}.audience-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.audience-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:24px 22px;transition:transform .18s ease,box-shadow .18s ease}.audience-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.audience-card .tag{display:inline-block;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--leaf);background:rgba(63,143,95,.1);padding:4px 10px;border-radius:999px;margin-bottom:12px}.audience-card h4{font-family:var(--serif);font-size:18px;margin:0 0 8px}.audience-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin:0}.subject-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);padding:22px 18px;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,border-color .22s ease;cursor:pointer;display:block}.subject-card:hover{transform:translateY(-6px) scale(1.015);box-shadow:var(--shadow);border-color:var(--ink)}.subject-icon{width:38px;height:38px;margin-bottom:14px}.subject-card h3{font-family:var(--serif);font-size:17px;margin:0 0 6px;font-weight:600}.subject-card p{font-size:12.5px;color:var(--ink-soft);margin:0;line-height:1.4}.subject-count{font-family:var(--mono);font-size:11px;color:var(--sky);margin-top:10px;display:block}.how-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}.how-card{padding:26px;border-radius:var(--radius);background:var(--paper-dim)}.how-num{font-family:var(--mono);font-size:12px;color:var(--clay);font-weight:700;margin-bottom:10px}.how-card h4{font-family:var(--serif);font-size:19px;margin:0 0 8px}.how-card p{font-size:14px;color:var(--ink-soft);line-height:1.5;margin:0}.pricing{max-width:460px;margin:0 auto;background:var(--ink);color:var(--paper);border-radius:20px;padding:38px 34px;position:relative;overflow:hidden}.pricing:after{content:"";position:absolute;top:-60px;right:-60px;width:180px;height:180px;background:var(--sun);opacity:.14;border-radius:50%}.pricing h3{font-family:var(--serif);font-size:22px;margin:0 0 6px}.pricing .price{font-family:var(--serif);font-size:44px;font-weight:700;margin:14px 0 4px}.pricing .price span{font-size:16px;font-family:var(--sans);font-weight:600;color:var(--sun)}.pricing ul{list-style:none;padding:0;margin:22px 0 26px;display:flex;flex-direction:column;gap:11px}.pricing li{display:flex;gap:10px;font-size:14px;color:hsla(39,64%,96%,.85);align-items:flex-start}.pricing li svg{flex:none;width:16px;height:16px;color:var(--sun);margin-top:2px}footer{padding:34px 24px;border-top:1px solid var(--line)}.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:12.5px}.footer-inner,.footer-note{max-width:1120px;margin:0 auto;color:var(--ink-soft)}.footer-note{padding-top:14px;font-size:11.5px;opacity:.75;line-height:1.5}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:var(--ink)}.auth-card{background:var(--paper);border-radius:20px;max-width:420px;width:100%;padding:38px 34px;box-shadow:var(--shadow)}.auth-card .logo{margin-bottom:22px}.tabs{display:flex;gap:4px;background:var(--paper-dim);border-radius:999px;padding:4px;margin-bottom:24px}.tab-btn{flex:1 1;border:none;background:transparent;padding:9px;border-radius:999px;font-weight:700;font-size:13.5px;color:var(--ink-soft)}.tab-btn.active{background:var(--ink);color:var(--paper)}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px;color:var(--ink-soft)}.field input{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:14.5px;background:#fff}.field input:focus{outline:2px solid var(--sun);outline-offset:1px;border-color:var(--sun-dark)}.form-error{color:var(--clay);font-size:13px;margin:-4px 0 14px;font-weight:600}.form-hint{font-size:12px;color:var(--ink-soft);margin-top:14px;text-align:center}.payment-card{background:var(--paper);border-radius:20px;max-width:460px;width:100%;padding:38px;box-shadow:var(--shadow)}.payment-card h2{font-family:var(--serif);font-size:26px;margin:0 0 4px}.payment-card .sub{color:var(--ink-soft);font-size:13.5px;margin-bottom:22px}.plan-row{display:flex;justify-content:space-between;align-items:center;background:var(--paper-dim);padding:14px 16px;border-radius:12px;margin-bottom:20px}.plan-row strong{font-family:var(--serif);font-size:18px}.sim-badge{display:flex;gap:8px;align-items:flex-start;background:rgba(63,143,95,.1);border:1px solid rgba(63,143,95,.3);padding:10px 12px;border-radius:10px;font-size:12px;color:var(--leaf);margin-top:18px;line-height:1.4}.sim-badge svg{flex:none;width:16px;height:16px;margin-top:1px}.row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:230px;flex:none;background:var(--ink);color:var(--paper);padding:22px 14px;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar .logo{color:var(--paper);margin-bottom:26px;padding:0 8px}.side-link{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:11px;font-weight:600;font-size:13.5px;color:hsla(39,64%,96%,.72);margin-bottom:3px;border:none;background:none;width:100%;text-align:left}.side-link svg{width:18px;height:18px;flex:none}.side-link:hover{background:hsla(39,64%,96%,.06);color:var(--paper)}.side-link.active{background:rgba(242,169,59,.15);color:var(--sun)}.side-sep{height:1px;background:hsla(39,64%,96%,.1);margin:14px 8px}.side-foot{margin-top:auto;padding:12px 8px 0;font-size:12px;color:hsla(39,64%,96%,.5)}.user-chip{gap:10px;padding:10px;border-radius:11px;background:hsla(39,64%,96%,.05)}.user-avatar,.user-chip{display:flex;align-items:center}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--sun);color:var(--ink);justify-content:center;font-weight:800;font-size:13px;flex:none}.user-name{font-size:12.5px;font-weight:700;color:var(--paper)}.user-plan{font-size:10.5px;color:var(--sun);font-family:var(--mono);text-transform:uppercase}.logout-btn{background:none;border:none;color:hsla(39,64%,96%,.5);font-size:11.5px;margin-top:8px;text-decoration:underline;padding:0}.main-area{flex:1 1;min-width:0}.sidebar-backdrop{display:none}.dash-burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:38px;height:38px;border-radius:10px;border:1.5px solid var(--line);background:#fff;flex:none}.dash-burger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}.dash-burger.is-open span:first-child{transform:translateY(7px) rotate(45deg)}.dash-burger.is-open span:nth-child(2){opacity:0}.dash-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:hsla(39,64%,96%,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line-soft);padding:16px 32px;display:flex;align-items:center;gap:20px}.search-wrap{position:relative;flex:1 1;max-width:460px}.search-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-soft)}.search-input{width:100%;padding:11px 14px 11px 38px;border-radius:999px;border:1.5px solid var(--line);font-size:13.5px;background:#fff}.search-input:focus{outline:2px solid var(--sun);border-color:var(--sun-dark)}.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:360px;overflow:auto;z-index:20}.search-result-item{padding:11px 15px;font-size:13.5px;display:flex;flex-direction:column;gap:2px;cursor:pointer;background:none;border:none;border-bottom:1px solid var(--line-soft);width:100%;text-align:left}.search-result-item:hover{background:var(--paper-dim)}.search-result-item .sr-sub{font-size:11px;color:var(--ink-soft);font-family:var(--mono)}.search-empty{padding:14px 15px;font-size:13px;color:var(--ink-soft)}.content{padding:30px 32px 60px;max-width:900px}.page-title{font-family:var(--serif);font-size:30px;margin:0 0 6px;font-weight:700}.page-sub{color:var(--ink-soft);font-size:14.5px;margin:0 0 28px}.category-block{margin-bottom:34px}.category-title{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--sky);font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:10px}.category-title:after{content:"";flex:1 1;height:1px;background:var(--line)}.theme-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff;transition:border-color .15s ease,transform .15s ease;width:100%;text-align:left}.theme-row.clickable{cursor:pointer}.theme-row.clickable:hover{border-color:var(--ink);transform:translateX(2px)}.theme-row.locked{opacity:.6}.theme-status{width:28px;height:28px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--paper-dim)}.theme-status svg{width:14px;height:14px}.theme-status.done{background:rgba(63,143,95,.15);color:var(--leaf)}.theme-status.locked{background:rgba(27,35,64,.06);color:var(--ink-soft)}.theme-status.open{background:rgba(242,169,59,.15);color:var(--sun-dark)}.theme-name{font-weight:600;font-size:14.5px;flex:1 1}.theme-tag{font-family:var(--mono);font-size:10.5px;color:var(--clay);text-transform:uppercase;background:rgba(226,96,63,.1);padding:3px 8px;border-radius:999px}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--ink-soft);background:none;border:none;margin-bottom:18px;padding:0}.back-link svg{width:15px;height:15px}.lesson-card{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:30px 32px;margin-bottom:26px}.lesson-eyebrow{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--clay);letter-spacing:.08em;font-weight:700;margin-bottom:10px}.lesson-card h2{font-family:var(--serif);font-size:26px;margin:0 0 14px}.lesson-intro{font-size:15px;line-height:1.65;color:var(--ink-soft)}.lesson-intro,.lesson-section{margin-bottom:18px}.lesson-section h4{font-family:var(--serif);font-size:16.5px;margin:0 0 6px}.lesson-section p{font-size:14.5px;line-height:1.65;color:var(--ink);margin:0}.lesson-example{background:var(--paper-dim);border-left:3px solid var(--sun);padding:14px 16px;border-radius:8px;font-size:14px;line-height:1.6;margin-top:6px}.lesson-example strong{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;color:var(--sun-dark);display:block;margin-bottom:5px}.exercise-card{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:28px 32px}.exercise-card h3{font-family:var(--serif);font-size:20px;margin:0 0 20px}.q-block{margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line-soft)}.q-block:last-of-type{border-bottom:none}.q-text{font-weight:700;font-size:14.5px;margin-bottom:12px}.q-choice{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--line);border-radius:10px;margin-bottom:7px;font-size:13.5px;cursor:pointer}.q-choice:hover{border-color:var(--ink-soft)}.q-choice input{accent-color:var(--sun-dark)}.q-choice.correct{border-color:var(--leaf);background:rgba(63,143,95,.08)}.q-choice.wrong{border-color:var(--clay);background:rgba(226,96,63,.08)}.q-explain{font-size:12.5px;color:var(--ink-soft);margin-top:8px;padding:10px 12px;background:var(--paper-dim);border-radius:8px}.score-banner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:12px;background:var(--ink);color:var(--paper);margin-bottom:20px}.score-banner .big{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--sun)}.lesson-table-wrap{overflow-x:auto;margin:4px 0 14px;border:1px solid var(--line);border-radius:10px}.lesson-table{width:100%;border-collapse:collapse;font-size:13.5px}.lesson-table td,.lesson-table th{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line-soft);white-space:nowrap}.lesson-table th{background:var(--paper-dim);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.lesson-table tr:last-child td{border-bottom:none}.lesson-callout{display:flex;gap:10px;align-items:flex-start;background:rgba(111,152,196,.1);border:1px solid rgba(111,152,196,.3);border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:13.5px;line-height:1.55}.lesson-callout.kind-attention{background:rgba(226,96,63,.08);border-color:rgba(226,96,63,.3)}.lesson-callout.kind-astuce{background:rgba(242,169,59,.1);border-color:rgba(242,169,59,.35)}.lesson-callout .callout-icon{flex:none;width:15px;height:15px;margin-top:2px;color:var(--sky)}.kind-attention .callout-icon{color:var(--clay)}.kind-astuce .callout-icon{color:var(--sun-dark)}.lesson-callout strong{display:block;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.q-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.diff-filter{display:flex;gap:6px;background:var(--paper-dim);padding:4px;border-radius:999px}.diff-filter button{border:none;background:transparent;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;color:var(--ink-soft)}.diff-filter button.active{background:var(--ink);color:var(--paper)}.diff-badge{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px;font-weight:700}.diff-badge.facile{background:rgba(63,143,95,.14);color:var(--leaf)}.diff-badge.moyen{background:rgba(242,169,59,.16);color:var(--sun-dark)}.diff-badge.difficile{background:rgba(226,96,63,.14);color:var(--clay)}.q-open-input{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;background:#fff;margin-bottom:10px}.q-open-input:focus{outline:2px solid var(--sun);border-color:var(--sun-dark)}.q-open-reveal{background:var(--paper-dim);border-radius:8px;padding:12px 14px;font-size:13px;margin-top:4px}.q-open-reveal .label{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px;display:block}.q-open-reveal .expected{font-weight:700;margin-bottom:8px}.self-check{display:flex;align-items:center;gap:10px;margin-top:8px}.self-check span{font-size:12.5px;color:var(--ink-soft)}.self-check button{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:5px 14px;font-size:12.5px;font-weight:700}.self-check button.chosen-yes.active{background:rgba(63,143,95,.15);border-color:var(--leaf);color:var(--leaf)}.self-check button.chosen-no.active{background:rgba(226,96,63,.12);border-color:var(--clay);color:var(--clay)}.loading-box{padding:50px 20px;text-align:center;color:var(--ink-soft);font-size:14px}.spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--sun-dark);border-radius:50%;margin:0 auto 14px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.retry-note{margin-top:14px}.lock-panel{text-align:center;padding:70px 20px}.lock-panel svg{width:44px;height:44px;color:var(--clay);margin-bottom:16px}.lock-panel h3{font-family:var(--serif);font-size:22px;margin:0 0 8px}.lock-panel p{color:var(--ink-soft);font-size:14px;margin:0 0 22px}.carnet-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:14px;gap:14px}.carnet-subj-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:18px;text-align:center}.carnet-subj-card svg{width:30px;height:30px;margin-bottom:8px}.carnet-subj-card .pct{font-family:var(--serif);font-size:22px;font-weight:700}.carnet-subj-card .lbl{font-size:11.5px;color:var(--ink-soft);margin-top:2px}.progress-track{height:6px;background:var(--line-soft);border-radius:99px;margin-top:10px;overflow:hidden}.progress-fill{height:100%;background:var(--sun)}.install-banner{position:fixed;left:20px;right:20px;bottom:20px;max-width:420px;margin:0 auto;background:var(--ink);color:var(--paper);border-radius:16px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:var(--shadow);z-index:90;animation:fade-up .4s ease both}.install-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.install-banner-text strong{font-family:var(--serif);font-size:14.5px}.install-banner-text span{font-size:12px;color:hsla(39,64%,96%,.72);line-height:1.35}.install-banner-actions{display:flex;align-items:center;gap:10px;flex:none}.install-banner-actions .btn svg{width:14px;height:14px}.install-dismiss{background:none;border:none;color:hsla(39,64%,96%,.55);font-size:14px;padding:2px}.install-dismiss:hover{color:var(--paper)}@media (max-width:480px){.install-banner{left:12px;right:12px;bottom:12px;flex-direction:column;align-items:stretch}.install-banner-actions{justify-content:space-between}}.toast-viewport{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:10px;max-width:360px;width:calc(100% - 40px)}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--ink);color:var(--paper);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);animation:toast-in .18s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-default{border-left:3px solid var(--sun)}.toast-success{border-left:3px solid var(--leaf)}.toast-destructive{border-left:3px solid var(--clay)}.toast-body{flex:1 1;min-width:0}.toast-title{font-weight:700;font-size:13.5px;margin-bottom:2px}.toast-desc{font-size:12.5px;color:hsla(39,64%,96%,.75);line-height:1.4}.toast-close{background:none;border:none;color:hsla(39,64%,96%,.55);font-size:13px;flex:none;padding:0}.toast-close:hover{color:var(--paper)}.modal-overlay{position:fixed;inset:0;background:rgba(27,35,64,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:150;padding:20px}.pay-dialog{background:var(--paper);border-radius:18px;width:100%;max-width:720px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}.pay-dialog-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex:none}.pay-dialog-title{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:18px;font-weight:700}.pay-dialog-title svg{width:20px;height:20px;color:var(--sun-dark)}.pay-dialog-badge{font-family:var(--mono);font-size:11px;color:var(--ink-soft);text-transform:uppercase}.pay-dialog-close{background:none;border:none;font-size:18px;color:var(--ink-soft);padding:4px;line-height:1}.pay-dialog-close:hover{color:var(--ink)}.pay-dialog-body{position:relative;flex:1 1;min-height:480px;background:var(--paper-dim)}.pay-overlay-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:hsla(39,64%,96%,.97);z-index:5}.pay-overlay-state svg{width:40px;height:40px;margin-bottom:14px}.pay-overlay-state.is-error svg{color:var(--clay)}.pay-overlay-state.is-success{background:rgba(63,143,95,.08)}.pay-overlay-state.is-success svg{color:var(--leaf)}.pay-overlay-state p{margin:0;font-size:13.5px;color:var(--ink-soft)}.pay-overlay-state .pay-title{font-weight:700;font-size:15.5px;color:var(--ink);margin-bottom:6px}.pay-overlay-actions{display:flex;gap:10px;margin-top:18px}.spin{animation:spin .8s linear infinite}.pay-iframe{width:100%;height:100%;min-height:480px;border:none;display:block}.pay-iframe.is-hidden{visibility:hidden}@media (max-width:860px){.hero-inner{grid-template-columns:1fr}.carnet-art{height:auto;margin-top:20px}.subject-grid{grid-template-columns:repeat(2,1fr)}.how-grid{grid-template-columns:1fr}.app-shell{flex-direction:column}.sidebar{position:fixed;top:0;bottom:0;left:0;width:260px;max-width:82vw;height:100vh;transform:translateX(-100%);transition:transform .25s ease;z-index:130;overflow-y:auto;box-shadow:var(--shadow)}.sidebar.is-open{transform:translateX(0)}.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(27,35,64,.55);z-index:120}.sidebar-backdrop.is-open{display:block}.dash-burger{display:flex}.content{padding:22px 16px 50px}.topbar{padding:12px 16px;flex-wrap:wrap;row-gap:10px}.search-wrap{max-width:none;order:2;flex-basis:100%}.exercise-card,.lesson-card{padding:22px 18px}}@media (max-width:700px){.nav-inner{padding:14px 16px}.nav-links{display:none}.nav-burger,.nav-mobile-panel{display:flex}.hero{padding:44px 16px 28px}.hero h1{font-size:34px}.hero p{font-size:15.5px;max-width:none}.hero-cta{flex-direction:column;align-items:flex-start;gap:12px}.hero-cta .btn{width:100%}.carnet-back{display:none}.carnet-card{width:100%;max-width:320px;transform:none;margin:0 auto}.section{padding:44px 16px}.section-head h2{font-size:26px}.subject-grid{grid-template-columns:1fr}.pricing{padding:28px 22px}.pricing .price{font-size:34px}.footer-inner{flex-direction:column;align-items:flex-start}}@media (max-width:640px){.pay-dialog{max-height:96vh}.pay-dialog-body{min-height:420px}.pay-dialog-title{flex-wrap:wrap;font-size:16px}.modal-overlay,.overlay{padding:0;align-items:flex-end}.auth-card,.modal,.payment-card{padding:26px 20px}.auth-card,.modal,.pay-dialog,.payment-card{max-width:100%;border-radius:18px 18px 0 0}.row2{grid-template-columns:1fr}.field input{font-size:16px}.carnet-page-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:420px){.logo{font-size:19px}.hero h1{font-size:28px}.btn{padding:12px 20px;font-size:14px}.theme-name{font-size:13.5px}.lesson-card h2{font-size:21px}}