.chapter-journey { --journey-green:var(--ks-377052); --journey-line:var(--ks-dfe7dc); width:100%; max-width:none; padding:0 0 20px; }
.journey-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:11px; color:var(--kt-64705d); margin:0 0 22px; }
.journey-breadcrumb a { color:var(--kt-657560); }
.journey-breadcrumb a:hover { text-decoration:underline; }
.journey-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:25px; }
.journey-eyebrow { display:flex; align-items:center; gap:8px; font-size:10px; font-weight:700; letter-spacing:1.1px; text-transform:uppercase; color:var(--kt-587054); margin:0 0 10px; }
.journey-eyebrow .icon { width:16px; height:16px; }
.chapter-journey .journey-heading h1 { font-size:36px; line-height:1.16; margin:0 0 10px; }
.journey-heading>div>p:last-child { color:var(--kt-64705d); font-size:14px; line-height:1.6; }
.journey-player { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; max-width:300px; }
.journey-player>span,.journey-player>a { display:flex; align-items:center; gap:7px; white-space:nowrap; font-size:12px; font-weight:600; color:var(--kt-536a4c); background:var(--ks-fff); border:1px solid var(--journey-line); border-radius:12px; padding:11px 13px; }
.journey-player b { font-size:10px; color:var(--kt-7b6841); border-left:1px solid var(--ks-e7e7db); padding-left:8px; }
.journey-player .icon { width:17px; height:17px; color:var(--kt-a47447); }
.journey-overview { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr); gap:20px; margin-bottom:32px; }
.journey-quest { display:flex; align-items:center; justify-content:space-between; position:relative; min-width:0; min-height:250px; padding:28px; border:1px solid var(--ks-d5e7d6); border-radius:24px; background:var(--ks-e8f2df); overflow:hidden; }
.journey-quest-copy { position:relative; z-index:1; flex:1; min-width:0; }
.chapter-journey .journey-quest h2 { font-family:KahierNunito,Roboto,sans-serif; font-size:28px; line-height:1.16; margin:14px 0 12px; max-width:440px; }
.journey-quest-copy>p:not(.journey-eyebrow) { color:var(--kt-5d7356); font-size:13px; line-height:1.65; max-width:370px; }
.journey-quest-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:22px; }
.journey-quest-actions .button { font-size:13px; padding:11px 18px; }
.journey-quest-actions>a:not(.button) { font-size:12px; font-weight:600; color:var(--kt-426447); text-decoration:underline; text-underline-offset:4px; }
.journey-quest-art { position:relative; width:174px; height:185px; flex-shrink:0; display:grid; place-items:center; margin:0 -8px 0 12px; }
.journey-orbit { position:absolute; inset:15px 0; border:1px dashed var(--ks-a8c495); border-radius:50%; transform:rotate(-20deg); }
.journey-hero-emblem { display:grid; place-items:center; width:122px; height:132px; background:var(--ks-fffdf5); color:var(--kt-638856); border:5px solid var(--ks-fff); border-radius:30px; transform:rotate(-10deg); box-shadow:0 8px 0 var(--ks-b1ca99); }
.journey-hero-emblem .journey-art { width:94px; height:94px; }
.journey-float { position:absolute; display:grid; place-items:center; width:40px; height:40px; border-radius:13px; background:var(--ks-fae6d6); color:var(--kt-a36a47); font-size:26px; font-weight:700; }
.journey-float.one { top:4px; right:0; transform:rotate(13deg); }
.journey-float.two { left:0; bottom:11px; width:35px; height:35px; background:var(--ks-fffdf3); transform:rotate(-10deg); }
.journey-float .icon { width:22px; height:22px; }
.journey-art-label { position:absolute; bottom:0; right:0; transform:rotate(7deg); padding:8px 12px; background:var(--ks-f8edc6); border-radius:7px; color:var(--kt-7a6b3f); font-size:10px; font-weight:700; }
.journey-recap { display:flex; flex-direction:column; background:var(--ks-fff); border:1px solid var(--journey-line); border-radius:24px; padding:24px; min-width:0; }
.journey-recap-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.journey-recap-top>.icon { width:21px; height:21px; color:var(--kt-a3804d); }
.journey-recap-top .journey-eyebrow { margin:0; }
.journey-recap-intro { display:flex; align-items:center; gap:13px; margin:18px 0 12px; }
.journey-recap-star { display:grid; place-items:center; width:48px; height:48px; border-radius:16px; color:var(--ktk-a1774b); background:var(--ksk-f8efdd); flex-shrink:0; transform:rotate(-6deg); }
.journey-recap-star .icon { width:26px; height:26px; }
.chapter-journey .journey-recap h2 { font-family:KahierNunito,Roboto,sans-serif; font-size:20px; line-height:1.2; }
.journey-recap p:not(.journey-eyebrow) { font-size:12px; line-height:1.7; color:var(--kt-64705d); }
.journey-recap .journey-text-link,.journey-recap .journey-text-button { margin-top:auto; padding-top:18px; }
.journey-text-link,.journey-text-button { font-size:12px; font-weight:600; color:var(--kt-426849); line-height:1.5; background:none; border:0; padding:0; text-align:left; }
.journey-recap-stats { display:flex; gap:17px; align-items:center; margin:18px 0 14px; }
.journey-ring { flex-shrink:0; width:82px; height:82px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--ks-84a574) var(--journey-progress),var(--ks-eef2e8) 0); }
.journey-ring>span { display:flex; justify-content:center; align-items:baseline; gap:3px; width:64px; height:64px; line-height:64px; border-radius:50%; background:var(--ks-fff); }
.journey-ring strong { font-family:KahierNunito,Roboto,sans-serif; font-size:28px; }
.journey-ring small { font-size:11px; color:var(--kt-64705d); }
.journey-recap-stats h2 { margin-bottom:7px; }
.journey-recap-note { display:block; color:var(--kt-64705d); font-size:11px; line-height:1.65; }
.journey-section-title { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 14px; }
.chapter-journey .journey-section-title h2,.chapter-journey .journey-library-toolbar h2 { font-size:22px; margin:0; }
.journey-section-title>span { color:var(--kt-64705d); font-size:11px; }
.journey-worlds { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-bottom:30px; }
.journey-world { display:flex; align-items:center; gap:10px; min-height:77px; text-align:left; padding:12px; border-radius:17px; border:1px solid var(--journey-line); border-bottom-width:3px; background:var(--ksk-fff); color:var(--ktk-495d44); transition:transform .15s,border-color .15s; }
.journey-world:hover { transform:translateY(-2px); border-color:var(--world-strong); }
.journey-world[aria-pressed=true] { background:var(--world-pale); border-color:var(--world-strong); }
.journey-world>span:last-child { min-width:0; font-size:12px; font-weight:600; line-height:1.4; }
.journey-world small { display:block; font-size:10px; font-weight:400; color:var(--ktk-64705d); margin-top:5px; }
.journey-world-symbol { display:grid; place-items:center; flex-shrink:0; width:35px; height:40px; border-radius:12px; font-size:15px; font-weight:800; font-family:KahierNunito,Roboto,sans-serif; background:var(--world-pale); color:var(--world-strong); }
.journey-world-0 { --world-pale:var(--ksk-edf3dd); --world-strong:var(--ktk-779349); --world-ink:var(--ktk-556f32); }
.journey-world-1 { --world-pale:var(--ksk-faebdf); --world-strong:var(--ktk-bb8259); --world-ink:var(--ktk-9e623c); }
.journey-world-2 { --world-pale:var(--ksk-e1f0e9); --world-strong:var(--ktk-62947e); --world-ink:var(--ktk-3d785f); }
.journey-world-3 { --world-pale:var(--ksk-f8f0d5); --world-strong:var(--ktk-aa944a); --world-ink:var(--ktk-83722c); }
.journey-world-4 { --world-pale:var(--ksk-e4edf0); --world-strong:var(--ktk-6b949d); --world-ink:var(--ktk-4d7480); }
.journey-library-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; }
.journey-library-toolbar p { font-size:12px; line-height:1.6; color:var(--kt-64705d); margin-top:7px; }
.journey-filters { display:flex; gap:6px; flex-shrink:0; }
.journey-filters button { font-size:11px; font-weight:500; padding:9px 12px; border:1px solid transparent; background:transparent; color:var(--kt-64705d); border-radius:20px; }
.journey-filters button[aria-pressed=true] { background:var(--ks-e7eedf); border-color:var(--ks-dce7d1); color:var(--kt-456137); }
.journey-filters button:hover { background:var(--ks-eef2e7); }
.journey-filters [hidden] { display:none; }
.journey-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.journey-chapter { display:flex; flex-direction:column; min-width:0; padding:22px; border:1px solid var(--ks-e0e5da); border-bottom:4px solid var(--ks-dce4d3); border-radius:23px; background:var(--ks-fff); transition:transform .16s,box-shadow .16s; }
.journey-chapter:hover { transform:translateY(-3px); box-shadow:0 10px 24px var(--ks-4055320b); }
.journey-chapter.has-review { border-color:var(--ks-e9cdbb); }
.journey-chapter-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:16px; }
.journey-emblem { display:grid; place-items:center; width:68px; height:70px; border-radius:21px; background:var(--world-pale); color:var(--world-ink); box-shadow:0 4px 0 color-mix(in srgb,var(--world-pale),var(--world-strong) 22%); transform:rotate(-5deg); }
.journey-art { width:47px; height:47px; }
.journey-art text { fill:currentColor; stroke:none; text-anchor:middle; font-family:KahierNunito,Roboto,sans-serif; font-size:25px; font-weight:900; }
.journey-svg-fill { fill:currentColor; }
.journey-state { display:flex; align-items:center; gap:4px; font-size:10px; line-height:1.5; color:var(--kt-64705d); background:var(--ks-f6f8f1); padding:5px 7px; border-radius:20px; }
.journey-state .icon { width:12px; height:12px; }
.journey-state.is-learning { background:var(--ks-f9f0d9); color:var(--kt-7c5c23); }
.journey-state.is-review { background:var(--ks-fbeadf); color:var(--kt-8d4e2d); }
.journey-state.is-secure { background:var(--ks-e5f0e1); color:var(--kt-577b44); }
.journey-chapter-number { display:flex; flex-wrap:wrap; gap:5px; font-size:9px; letter-spacing:.6px; color:var(--kt-64705d); font-weight:600; margin:0 0 9px; }
.journey-chapter-number>span { font-weight:400; letter-spacing:0; }
.chapter-journey .journey-chapter h3 { font-size:21px; line-height:1.25; margin:0 0 12px; font-family:KahierNunito,Roboto,sans-serif; min-height:52px; }
.journey-description { font-size:12px; line-height:1.65; color:var(--kt-64705d); margin:0 0 20px; }
.journey-chapter-progress { display:flex; justify-content:space-between; flex-wrap:wrap; gap:7px; font-size:10px; color:var(--kt-64705d); margin-top:auto; margin-bottom:16px; padding-top:4px; }
.journey-chapter-progress>div { display:flex; justify-content:space-between; width:100%; }
.journey-chapter-progress strong { color:var(--kt-5c724e); }
.journey-chapter-progress progress { width:100%; height:5px; border:0; border-radius:5px; overflow:hidden; background:var(--ks-eff3e9); accent-color:var(--world-strong); }
.journey-chapter-progress progress::-webkit-progress-bar { background:var(--ks-eff3e9); border-radius:5px; }
.journey-chapter-progress progress::-webkit-progress-value { background:var(--world-strong); border-radius:5px; }
.journey-chapter-progress progress::-moz-progress-bar { background:var(--world-strong); border-radius:5px; }
.journey-open { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; min-height:43px; background:var(--world-pale); border:1px solid var(--world-pale); border-radius:12px; font-size:12px; color:var(--world-ink); font-weight:600; }
.journey-open:hover { border-color:var(--world-strong); }
.journey-open .icon { width:17px; height:17px; }
.journey-chapter-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; }
.journey-chapter-actions a { display:flex; align-items:center; gap:5px; font-size:10px; color:var(--kt-65795a); min-height:30px; }
.journey-chapter-actions .icon { width:14px; height:14px; }
.journey-chapter-actions a:hover { text-decoration:underline; text-underline-offset:3px; }
.journey-data-note { margin:24px 0 0; font-size:11px; color:var(--kt-64705d); line-height:1.8; max-width:850px; }
.journey-empty { grid-column:1/-1; text-align:center; border:1px dashed var(--ks-d8e3ce); padding:36px 24px; border-radius:20px; }
.journey-empty>.icon { width:34px; height:34px; padding:7px; border-radius:12px; background:var(--ks-e6efdf); color:var(--kt-60804b); }
.chapter-journey .journey-empty h3 { font-size:21px; margin:16px 0 10px; }
.journey-empty p { font-size:13px; color:var(--kt-718168); margin-bottom:18px; }
@media(min-width:1500px) { .journey-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1190px) {
  .journey-heading { align-items:flex-start; }
  .journey-player { max-width:210px; }
  .journey-overview { grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr); gap:16px; }
  .journey-quest { padding:23px; }
  .journey-quest-art { width:110px; height:160px; }
  .journey-hero-emblem { width:85px; height:102px; border-radius:23px; }
  .journey-hero-emblem .journey-art { width:65px; height:65px; }
  .journey-float { width:30px; height:30px; font-size:22px; }
  .journey-art-label { font-size:9px; padding:7px; }
  .journey-world { flex-direction:column; align-items:flex-start; padding:13px; gap:12px; }
  .journey-chapter { padding:19px; }
}
@media(max-width:1000px) { .journey-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .journey-overview { grid-template-columns:1.5fr 1fr; } .journey-quest-art { display:none; } }
@media(max-width:760px) {
  .journey-overview { grid-template-columns:1fr; }
  .journey-quest-art { display:grid; width:145px; }
  .journey-recap { padding:20px; }
  .journey-recap-intro,.journey-recap-stats { margin:14px 0 10px; }
  .journey-recap .journey-text-link { padding-top:12px; }
  .journey-worlds { grid-template-columns:repeat(5,145px); overflow-x:auto; padding:0 1px 10px; margin-bottom:20px; scroll-snap-type:x proximity; }
  .journey-world { scroll-snap-align:start; }
  .journey-section-title { align-items:flex-start; flex-direction:column; gap:6px; }
  .journey-heading { align-items:flex-start; flex-direction:column; gap:15px; }
  .journey-player { justify-content:flex-start; max-width:none; }
  .chapter-journey .journey-heading h1 { font-size:32px; }
  .journey-library-toolbar { flex-direction:column; align-items:flex-start; gap:13px; }
}
@media(max-width:540px) {
  .journey-card-grid { grid-template-columns:1fr; gap:16px; }
  .journey-heading { margin-bottom:20px; }
  .journey-breadcrumb { margin-bottom:18px; }
  .chapter-journey .journey-heading h1 { font-size:30px; }
  .journey-heading>div>p:last-child { font-size:13px; }
  .journey-player>span,.journey-player>a { padding:9px 12px; font-size:11px; }
  .journey-quest { padding:23px; }
  .journey-quest-art { width:90px; height:125px; margin:0 -10px 0 2px; }
  .journey-hero-emblem { width:66px; height:79px; border-width:3px; border-radius:18px; }
  .journey-hero-emblem .journey-art { width:52px; height:52px; }
  .journey-float { width:25px; height:25px; font-size:18px; border-radius:8px; }
  .journey-float.two { width:24px; height:24px; bottom:10px; }
  .journey-float .icon { width:17px; height:17px; }
  .journey-art-label { display:none; }
  .chapter-journey .journey-quest h2 { font-size:26px; }
  .journey-quest-actions { gap:14px; }
  .journey-quest-copy>.journey-eyebrow { font-size:9px; letter-spacing:.7px; }
  .journey-quest-art { display:none; }
  .journey-recap:has(.journey-recap-intro) .journey-recap-intro { display:none; }
  .journey-recap:has(.journey-recap-intro)>p { margin-top:10px; }
  .journey-chapter { padding:23px; }
  .chapter-journey .journey-chapter h3 { min-height:0; font-size:23px; }
  .journey-chapter-actions a { min-height:36px; font-size:11px; }
  .journey-description { font-size:13px; }
  .journey-overview { margin-bottom:27px; }
}
@media(prefers-reduced-motion:reduce) { .journey-world,.journey-chapter { transition:none; } .journey-world:hover,.journey-chapter:hover { transform:none; } }

.journey-world-5 { --world-pale:var(--ksk-f8e8df); --world-strong:var(--ktk-b37c5e); --world-ink:var(--ktk-8b553e); --world-line:var(--ksk-e7cbbb); }
.chapter-journey[data-chapter-journey="francais"] .journey-quest { background:var(--ksk-f8eee6); border-color:var(--ksk-ead7c5); }
.chapter-journey[data-chapter-journey="francais"] .journey-hero-emblem { color:var(--ktk-8b553e); box-shadow:0 8px 0 var(--ksk-e1c3ad); }
.chapter-journey[data-chapter-journey="francais"] .journey-worlds { grid-template-columns:minmax(0,1fr); }
.chapter-journey[data-chapter-journey="francais"] .journey-card-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); max-width:750px; }

.journey-world-6 { --world-pale:var(--ksk-e6f0e8); --world-strong:var(--ktk-668b72); --world-ink:var(--ktk-365e45); --world-line:var(--ksk-c2d8c8); }
