/* The route represents completed training units, never a skill percentage. */
.journey-panel{isolation:isolate;overflow:hidden;border:1px solid #635480;border-radius:28px;background:radial-gradient(ellipse at 86% 18%,#63568860,transparent 40%),linear-gradient(135deg,#252033,#13131c);color:#faf8ff;margin:20px 0 28px;box-shadow:0 24px 55px #27124919}.journey-header{padding:32px 34px 0;display:flex;gap:24px;justify-content:space-between;align-items:center}.journey-eyebrow{color:#bb9aff;font-size:11px;font-weight:750;letter-spacing:3px}.journey-header h2{font-size:clamp(22px,3vw,34px);line-height:1.2;letter-spacing:-.8px;max-width:440px;margin:12px 0}.journey-header p{color:#d2c8e3;margin:0}.journey-percent{color:#96f5cf;font-size:56px;font-weight:750;line-height:1;white-space:nowrap}.journey-percent small{display:block;font-size:12px;font-weight:500;text-align:right;margin-top:10px;color:#d2c8e3}.journey-scene{display:block;width:100%;height:auto;max-height:380px;overflow:visible}.journey-moon{fill:#a98ce7;fill-opacity:.15}.journey-mountain-back{fill:#463760}.journey-mountain-front{fill:#302840}.journey-island{fill:#213737}.journey-road-shadow{fill:none;stroke:#11111b;stroke-opacity:.73;stroke-width:54;stroke-linecap:round;stroke-linejoin:round}.journey-road{fill:none;stroke:#776294;stroke-width:33;stroke-linecap:round;stroke-linejoin:round}.journey-road-done{fill:none;stroke:#90e7c0;stroke-width:10;stroke-linecap:round}.journey-dot{fill:#c7badb}.journey-dot-done{fill:#b1ffde;stroke:#315e4b;stroke-width:4}.journey-flag{fill:#aeeccc;stroke:#aeeccc;stroke-width:4;stroke-linejoin:round}.journey-svg-label{fill:#d9ccec;font:600 15px system-ui;letter-spacing:2px}.journey-avatar{mix-blend-mode:lighten}.journey-avatar-shadow{fill:#11111b;fill-opacity:.6}.journey-bottom{padding:0 34px 26px;display:flex;align-items:center;gap:24px;justify-content:space-between}.journey-bottom strong{font-size:18px}.journey-bottom p{font-size:13px;color:#c6bdd6;margin:6px 0 0;max-width:420px}.journey-link{flex-shrink:0;padding:13px 18px;display:inline-flex;gap:25px;border-radius:14px;background:#a7f0d0;color:#132a20;text-decoration:none;font-weight:700;min-height:46px}.journey-panel>.learning-progress{display:block;height:5px;border-radius:0}.journey-link:hover{background:#c0ffe2}.journey-panel~.learning-panel{border-radius:24px}.character-card{border-radius:20px}.character-card.earned{background:radial-gradient(ellipse at top left,#775bc033,transparent 70%),#191720}
@media(prefers-reduced-motion:no-preference){.journey-avatar{animation:journey-arrival .7s ease-out both}.journey-link,.character-card{transition:transform .2s ease,box-shadow .2s ease}.journey-link:hover{transform:translateY(-2px)}@keyframes journey-arrival{from{opacity:0}to{opacity:1}}}
@media(max-width:600px){.journey-panel{border-radius:22px}.journey-header{padding:22px 20px 10px;gap:12px}.journey-header h2{font-size:23px}.journey-percent{font-size:38px}.journey-header p{font-size:13px}.journey-eyebrow{font-size:10px;letter-spacing:2px}.journey-scene{min-height:180px}.journey-bottom{padding:0 20px 22px;display:block}.journey-link{margin-top:18px;width:100%;justify-content:space-between}.journey-bottom p{max-width:none}}

.journey-panel .journey-scene{max-height:340px}.journey-panel .journey-header{padding-bottom:0}.journey-panel .journey-road-shadow{stroke-width:48px}.journey-panel .journey-road{stroke-width:30px}.journey-panel .journey-road-done{stroke-width:8px}.journey-panel .journey-bottom{padding-top:8px}.journey-panel h2{color:#faf8ff}.journey-panel .journey-header>div>p{color:#d2c8e3}@media(max-width:600px){.journey-panel .journey-scene{min-height:170px}.journey-panel .journey-header{align-items:flex-start}.journey-panel .journey-percent{font-size:34px}.journey-panel .journey-header h2{font-size:21px}}

.world-journey{position:relative;isolation:isolate;overflow:hidden;border-radius:30px;background:#eee7f4;border:1px solid #d8c9e6;box-shadow:0 22px 60px #39244d18;margin:24px 0 32px;color:#30283f}.world-map svg{display:block;width:100%;height:auto}.world-heading{position:absolute;z-index:2;top:26px;left:28px;max-width:44%;background:#fffc;padding:22px 24px;border:1px solid #fff;border-radius:22px;box-shadow:0 12px 35px #34244812;backdrop-filter:blur(10px)}.world-heading h2{font-size:clamp(21px,2.4vw,34px);line-height:1.16;color:#30283f;margin:10px 0}.world-heading p{margin:0;font-size:14px;color:#655974}.world-heading .journey-eyebrow{color:#7043a1;letter-spacing:2px}.world-card{position:absolute;left:28px;top:47%;width:210px;background:#fffef7eb;backdrop-filter:blur(12px);border-radius:22px;padding:22px;box-shadow:0 12px 35px #34244820;border:1px solid #fff}.world-card>strong{font-size:38px;color:#6641a6;display:block}.world-card>span{display:block;font-size:13px;margin:3px 0 13px}.world-card p,.world-card small{font-size:12px;line-height:1.55;color:#655974}.world-card .journey-link{font-size:13px;display:block;margin-top:12px;padding:11px}.world-mascot{filter:drop-shadow(0 5px 3px #3e22533d)}@media(max-width:650px){.world-journey{border-radius:22px}.world-heading{position:relative;top:auto;left:auto;max-width:none;margin:14px 14px 0;padding:18px}.world-heading h2{font-size:25px}.world-card{position:relative;left:auto;top:auto;width:auto;margin:0 14px 14px;padding:18px;display:grid;grid-template-columns:70px 1fr;column-gap:12px}.world-card>strong{grid-row:span 2}.world-card p,.world-card a,.world-card small{grid-column:1/-1}.world-map{margin-top:-8px}}

.task-world{position:relative}.task-world .world-journey{margin-bottom:20px}.task-world-next{position:absolute;right:25px;bottom:30px;width:310px;max-width:38%;background:#fffdf4ed;border:1px solid #fff;border-radius:22px;padding:22px;backdrop-filter:blur(12px);box-shadow:0 12px 35px #34244820;color:#30283f}.task-world-next h2{font-size:23px;line-height:1.15;margin:8px 0 12px}.task-world-next p{font-size:13px;line-height:1.55}.task-world-next .task-eyebrow{font-size:10px;letter-spacing:1px;color:#7043a1}.task-world-next button{width:100%;background:#7750bd;color:white}.task-world .world-card .journey-link{display:none}@media(max-width:650px){.task-world-next{position:relative;right:auto;bottom:auto;max-width:none;width:auto;margin:-8px 0 24px}.task-world .world-card{margin-bottom:14px}}

/* Mountain artwork owns its lighting. UI stays outside the terrain. */
.world-journey[class*="mountain-stage"]{background:#f5eee6;border-color:#e6dcd1;box-shadow:0 16px 40px #38283f0c;border-radius:24px}
.world-journey[class*="mountain-stage"] .world-heading{position:relative;inset:auto;max-width:none;margin:0;padding:30px 32px 12px;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
.world-journey .world-heading h2{font-size:clamp(23px,2.7vw,34px);letter-spacing:-.7px;margin:10px 0;max-width:640px}
.world-journey .world-map{position:relative;max-width:900px;margin:0 auto;width:100%}
.world-journey .mountain-terrain{filter:none}
.world-journey .world-mascot{filter:none}
.world-atmosphere{position:absolute;left:28px;bottom:18px;margin:0;color:#756853;font-size:12px;letter-spacing:.25px}
.world-journey[class*="mountain-stage"] .world-card{position:relative;inset:auto;display:flex;align-items:center;gap:28px;width:auto;margin:0;padding:24px 32px;background:#fffaf4;border:0;border-top:1px solid #e7ddd0;border-radius:0;box-shadow:none;backdrop-filter:none}
.world-progress-number{flex-shrink:0}.world-progress-number strong{display:block;font-size:34px;color:#63448c;line-height:1.1;letter-spacing:-1px}.world-progress-number span{display:block;font-size:11px;color:#766783;margin-top:6px}
.world-progress-detail{flex:1;min-width:100px}.world-stage-label{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:9px}.world-stage-label span{color:#756780;font-variant-numeric:tabular-nums}.world-progress-detail p{font-size:11px;margin:8px 0 0}.world-card .journey-link{margin:0;white-space:nowrap;min-height:44px;display:flex;align-items:center;font-size:12px}
.world-card>small{max-width:125px;color:#74677d}.mountain-milestone{pointer-events:none}
.task-world-next{position:relative;inset:auto;max-width:none;width:auto;margin:-6px 0 28px;padding:24px 28px;background:#38264e;color:#fffafc;border:1px solid #503968;border-radius:20px;box-shadow:0 10px 28px #39244812;backdrop-filter:none}
.task-world-next h2{color:#fffafc;margin:8px 0}.task-world-next .task-eyebrow{color:#cdb4ef}.task-world-next p{color:#e0d5e8;max-width:620px}.task-world-next button{width:auto;min-width:190px;background:#b6e6cf;color:#233c32;margin-top:8px}.task-world .world-journey{margin-bottom:20px}
@media(max-width:650px){.world-journey[class*="mountain-stage"]{border-radius:20px;margin:16px 0 24px}.world-journey[class*="mountain-stage"] .world-heading{padding:22px 20px 6px}.world-journey .world-heading h2{font-size:25px;letter-spacing:-.6px}.world-journey .world-heading p{font-size:13px}.world-atmosphere{left:20px;bottom:8px;font-size:10px}.world-journey[class*="mountain-stage"] .world-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;padding:20px}.world-progress-number strong{font-size:30px}.world-progress-number span{font-size:10px;line-height:1.5}.world-card .journey-link,.world-card>small{grid-column:1/-1;max-width:none;justify-content:space-between}.world-progress-detail p{font-size:10px}.task-world-next{padding:22px;margin-bottom:24px}.task-world-next button{width:100%}}

.journey-phone-frame{display:block;width:390px;max-width:100%;height:850px;margin:20px auto 0;border:1px solid #dacfe3;border-radius:20px;background:#f5eee6}.journey-embedded{margin:0;padding:0;background:#f5eee6;min-width:0}.journey-embedded .world-journey[class*="mountain-stage"]{margin:0;border:0;border-radius:0;box-shadow:none}

.journey-sun{pointer-events:none;will-change:transform}.world-journey .world-map{overflow:hidden}.world-journey .world-map svg{overflow:hidden}.journey-phone-frame{height:850px}@media(prefers-reduced-motion:reduce){.journey-sun{will-change:auto}}
