/* P9.2 — Authentic winding learning-path feel, real lessons and actual server progress.
   Duolingo-inspired interaction; no alternative currency, fabricated streak/XP or second nav. */
.li-academy-intro{background:linear-gradient(115deg,#fff8ec,#fff2f8 58%,#f0ecff);border-color:#f2deed}
.li-academy-intro h1{margin:7px 0;font-size:clamp(30px,4vw,45px)}
.li-academy-intro p{max-width:860px;line-height:1.55}
.li-academy-summary{display:flex;gap:12px 24px;flex-wrap:wrap;align-items:center;border-top:1px solid #ecd7e2;margin-top:18px;padding-top:16px;font-weight:800;color:#724c73}
.li-academy-summary b{font-family:"Fredoka",system-ui,sans-serif;font-size:20px}
.li-academy-profile{background:#fffdfb;border-radius:19px;padding:15px 18px;box-shadow:0 4px 0 #efdfec}
.li-map{background:#fff8f0;position:relative;isolation:isolate;border:2px solid #f0dded;border-radius:27px;padding:24px clamp(12px,4vw,30px) 20px;margin:22px 0;box-shadow:0 8px 0 #eee2e9,0 21px 29px #613c6310}
.li-map-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.li-map-eyebrow{color:#c52c84;font-weight:950;letter-spacing:.07em;font-size:12px}
.li-map-top h2{color:#633667;margin:6px 0 9px;font-family:"Fredoka",system-ui,sans-serif;font-size:clamp(27px,3.5vw,38px);text-wrap:balance}
.li-map-top p{font-size:14px;color:#776078;line-height:1.65;margin:0;max-width:520px}
.li-map-totals{display:flex;flex-direction:column;gap:9px;font-weight:900;white-space:nowrap;font-size:14px}
.li-map-totals span{background:#fff;border:2px solid #efdfde;padding:8px 14px;border-radius:999px;color:#7b4f78}
.li-map-chapterbar{display:grid;grid-template-columns:53px minmax(0,1fr) 53px;align-items:end;gap:10px;max-width:580px;margin:26px auto 19px}
.li-map-chapterbar label{font-size:12px;color:#70496f;font-weight:900;display:grid;gap:7px}
.li-map-chapterbar select{min-height:55px;border:2px solid #d7b6de;border-radius:15px;background:#fff;padding:10px 12px;color:#613967;font:800 15px "Nunito Sans",system-ui,sans-serif;width:100%;box-shadow:0 4px 0 #e7d8ec}
.li-map-chapterbar button{border:2px solid #d9bbdd;color:#813e79;border-radius:14px;background:#fff;box-shadow:0 5px 0 #e4cae5;min-height:55px;font-size:32px;cursor:pointer;transition:transform .15s,box-shadow .15s}
.li-map-chapterbar button:hover:not(:disabled){transform:translateY(-2px);background:#ffeff8;box-shadow:0 7px 0 #e4cae5}
.li-map-chapterbar button:disabled{opacity:.4;cursor:not-allowed}
.li-map-stage{display:flex;align-items:center;gap:16px;position:relative;overflow:hidden;padding:21px 24px;border-radius:23px;box-shadow:0 7px 0 rgba(47,66,59,.12);max-width:690px;margin:10px auto 25px;color:#345b52}
.li-map-stage.explorer{background:#a8e6cf}
.li-map-stage.adventurer{background:#ffba77;color:#713c27}
.li-map-stage.master{background:#a772ce;color:#fff}
.li-map-stage-icon{display:grid;place-items:center;font-size:37px;width:63px;height:63px;background:#ffffff73;border-radius:18px;flex-shrink:0}
.li-map-stage div>span{font-size:11px;font-weight:950;letter-spacing:.13em}
.li-map-stage h3{font-family:"Fredoka",system-ui,sans-serif;margin:3px 0;font-size:clamp(20px,3vw,28px);color:inherit}
.li-map-stage p{margin:0;font-size:13px;font-weight:800}
.li-map-stage-stars{margin-left:auto;white-space:nowrap;font-size:24px;opacity:.77}
.li-map-progress{max-width:500px;margin:0 auto 10px}
.li-map-progress-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:3px 10px;color:#6e5272;font-size:13px}
.li-map-progress-label small{font-size:11px;color:#927c92;font-weight:750}
.li-map-track{height:17px;background:#e5e5e5;border-radius:999px;overflow:hidden;border:2px solid #fff;box-shadow:inset 0 1px 4px #71717112;margin-top:11px}
.li-map-track>span{display:block;height:100%;border-radius:999px;background:#58cc02;transition:width .4s ease}
.li-map-scroll{max-width:510px;margin:0 auto;position:relative}
.li-map-canvas{position:relative;width:360px;max-width:100%;margin:0 auto}
.li-map-curve{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;overflow:visible}
.li-map-road{fill:none;stroke:#e9d5ff;stroke-width:24;stroke-linejoin:round;stroke-linecap:round}
.li-map-road-dash{fill:none;stroke:#fff;stroke-width:6;stroke-dasharray:14 14;stroke-linecap:round;opacity:.96}
.li-map-stop{position:absolute;width:90px;z-index:2;display:flex;align-items:center;flex-direction:column;transform:translate(-50%,-43px)}
.li-map-node{position:relative;display:grid;place-items:center;flex-shrink:0;height:76px;width:76px;border:6px solid #fff;border-bottom-width:7px;border-radius:50%;background:#e5e5e5;color:#777;box-shadow:0 8px 0 #cecece,0 11px 16px #4b3e451c;font:950 33px "Fredoka",system-ui,sans-serif;cursor:pointer;transition:transform .19s cubic-bezier(.2,.7,.3,1.2),box-shadow .19s ease;touch-action:manipulation}
.li-map-stop.done .li-map-node{background:#58cc02;color:white;box-shadow:0 8px 0 #46a302,0 12px 17px #368a272a}
.li-map-stop.current .li-map-node{background:#ffc800;color:#573a44;box-shadow:0 8px 0 #ff8c42,0 12px 17px #e8a4362b;animation:li-map-pulse 2.4s ease-in-out infinite}
.li-map-stop.chest .li-map-node{height:84px;width:84px;border-radius:27px}
.li-map-stop .li-map-node:hover{transform:translateY(-5px) scale(1.06)}
.li-map-stop .li-map-node:active{transform:translateY(5px) scale(.98);box-shadow:0 2px 0 #b8b8b8}
.li-map-stop .li-map-node:focus-visible{outline:4px solid #78449c;outline-offset:5px}
.li-map-stop.current .li-map-node-icon{animation:li-map-float 2.7s ease-in-out infinite}
.li-map-stop .li-map-node-icon{line-height:1}
.li-map-lion{position:absolute;top:-23px;left:64px;font-size:25px;pointer-events:none;animation:li-map-float 2.7s ease-in-out infinite}
.li-map-lesson-label{width:142px;text-align:center;position:absolute;top:84px;left:50%;transform:translateX(-50%);line-height:1.3;display:flex;flex-direction:column;gap:3px;border:1px solid #f0dfdb;border-radius:12px;padding:7px 6px;background:#fffdf9ed;box-shadow:0 3px 0 #e8ddd8}
.li-map-lesson-label b{color:#654467;font-size:12px;font-weight:950;overflow-wrap:anywhere}
.li-map-lesson-label small{color:#977b8c;font-size:10px;font-weight:850}
.li-map-stop.done .li-map-lesson-label{border-color:#b9e9b4}
.li-map-stop.current .li-map-lesson-label{border-color:#ffd46c;background:#fffcec;box-shadow:0 3px 0 #ffdb8d}
.li-map-foot{display:flex;gap:11px 17px;justify-content:center;flex-wrap:wrap;font-size:12px;color:#7b657a;font-weight:800;margin:10px 0}
.li-map-warning{max-width:690px;margin:23px auto 5px;padding:14px 16px;background:#fff;border:1px solid #eedfe6;border-radius:15px;font-size:12px;color:#786276;line-height:1.6}
.li-map-dialog{padding:0;border:4px solid #e5e5e5;border-radius:28px;background:#fff;max-width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 42px);box-shadow:0 18px 0 #a4817a35,0 31px 55px #34243b5e;color:#593c67;overflow:auto}
.li-map-dialog[open]{animation:li-map-dialog-in .32s cubic-bezier(.34,1.56,.64,1) both}
.li-map-dialog::backdrop{background:#261b2b9c;backdrop-filter:blur(3px)}
.li-map-dialog-inner{padding:31px clamp(17px,4vw,31px) 26px;text-align:center;position:relative}
.li-map-dialog-close{position:absolute;top:9px;right:11px;width:41px;height:41px;border:0;background:#f7eff8;border-radius:50%;font-size:28px;color:#754c77;cursor:pointer}
.li-map-dialog-badge{display:inline-block;background:#e8fbd9;border-radius:999px;color:#3d6b32;padding:8px 12px;font-size:11px;font-weight:950;letter-spacing:.04em}
.li-map-dialog-hero{font-size:60px;margin:11px auto}
.li-map-dialog h2{font:750 clamp(24px,4vw,31px) "Fredoka",system-ui,sans-serif;line-height:1.1;margin:4px 0 11px;color:#51365c}
.li-map-dialog-code{font-size:12px;color:#8c758d;font-weight:850}
.li-map-dialog-text{font-size:14px;line-height:1.6;color:#6e5671}
.li-map-dialog-steps{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;padding:17px 10px;background:#fff8f0;border:2px solid #ffe9c2;border-radius:17px;margin:20px 0}
.li-map-dialog-steps span{background:#fff;border-radius:10px;padding:8px;font-size:12px;font-weight:900;color:#6b4d6d}
.li-map-dialog-start{display:block;width:100%;min-height:57px;border:2px solid #fff;border-radius:15px;background:#58cc02;box-shadow:0 7px 0 #46a302;color:white;font:950 19px "Fredoka",system-ui,sans-serif;cursor:pointer;transition:transform .12s,box-shadow .12s}
.li-map-dialog-start:hover{background:#53c000}
.li-map-dialog-start:active{transform:translateY(5px);box-shadow:0 2px 0 #46a302}
.li-map-dialog-secondary{border:0;background:transparent;color:#8c5c89;margin-top:19px;font-size:13px;font-weight:900;cursor:pointer}
.li-map-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:5}
.li-map-confetti i{position:absolute;left:var(--x);top:20%;height:11px;width:12px;background:#58cc02;animation:li-map-confetti 1.4s ease-out both;animation-delay:calc(var(--i)*19ms)}
.li-map-confetti i:nth-child(3n){background:#ffc800;border-radius:50%}
.li-map-confetti i:nth-child(3n+1){background:#c0267a}
.li-map-confetti i:nth-child(4n){background:#1cb0f6}
.li-academy-catalog,.li-academy-tools{margin:16px 0;box-shadow:0 4px 0 #ede2eb}
.li-academy-catalog>summary,.li-academy-tools>summary{min-height:68px;display:flex;align-items:center;font-weight:950;font-size:16px}
.li-academy-catalog[open] .full-academy{margin:15px 0}
@keyframes li-map-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes li-map-pulse{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 12px #ffc80080)}}
@keyframes li-map-dialog-in{from{transform:scale(.83) translateY(29px);opacity:0}65%{transform:scale(1.03) translateY(-5px)}to{transform:scale(1);opacity:1}}
@keyframes li-map-confetti{from{transform:translateY(-15px) rotate(0deg);opacity:1}to{transform:translateY(230px) rotate(730deg);opacity:0}}
@media(max-width:620px){
 .li-map{border-radius:20px;padding:16px 10px}
 .li-map-totals{flex-direction:row;white-space:normal;flex-wrap:wrap;font-size:12px}
 .li-map-stage{padding:14px;gap:12px}.li-map-stage-stars{display:none}
 .li-map-chapterbar{grid-template-columns:41px minmax(0,1fr) 41px;gap:7px}
 .li-map-chapterbar button{min-height:51px}.li-map-chapterbar select{min-height:51px;font-size:12px}
 .li-map-lesson-label{width:119px;font-size:11px}.li-map-lesson-label b{font-size:11px}
 .li-map-node{height:72px;width:72px}
 .li-map-stop.chest .li-map-node{width:80px;height:80px}
 .li-map-dialog-inner{padding:30px 17px 22px}
}
@media(prefers-reduced-motion:reduce){
 .li-map-stop.current .li-map-node,.li-map-stop.current .li-map-node-icon,.li-map-lion,
 .li-map-dialog[open],.li-map-confetti i{animation:none!important}
 .li-map-stop .li-map-node,.li-map-dialog-start,.li-map-chapterbar button,.li-map-track>span{transition:none!important}
 .li-map-stop .li-map-node:hover,.li-map-stop .li-map-node:active{transform:none!important}
}


/* Child-only 26-stage Adventure: same winding path, four collapsible worlds. */
.li-adventure-route{background:linear-gradient(150deg,#effbf1,#fdf9e9,#f7edff);border-radius:24px;padding:clamp(13px,3vw,27px);border:2px solid #e4dce8;box-shadow:0 6px 0 #e5dbe7}
.li-adventure-route .adventure-route-heading{margin-bottom:22px}
.li-adventure-route .adventure-route-heading h2{font-family:"Fredoka",system-ui,sans-serif;font-size:clamp(25px,3vw,33px);color:#604168}
.li-adventure-route .adventure-route-heading p{color:#806682;line-height:1.5;font-size:13px}
.li-adventure-worlds{display:grid;gap:13px}
.li-adventure-world{border:2px solid #e4d4e4;border-radius:22px;background:#fffaf9;box-shadow:0 5px 0 #e8deea;overflow:hidden}
.li-adventure-world>summary{min-height:86px;list-style:none;display:flex;align-items:center;gap:14px;padding:13px 18px;cursor:pointer;color:#5b3e62}
.li-adventure-world>summary::-webkit-details-marker{display:none}
.li-adventure-world>summary:focus-visible,.li-adventure-node:focus-visible{outline:4px solid #854da5;outline-offset:2px}
.li-adventure-world[open]>summary{border-bottom:2px solid #fff9fc;background:#a8e6cf}
.li-adventure-world.world-2[open]>summary{background:#ffca94}
.li-adventure-world.world-3[open]>summary{background:#d8d0ff}
.li-adventure-world.world-4[open]>summary{background:#ecc2ee}
.li-adventure-world-icon{display:grid;place-items:center;font-size:27px;width:51px;height:51px;background:#ffffff99;border-radius:16px;flex-shrink:0}
.li-adventure-world>summary span:nth-child(2){display:grid;gap:4px;min-width:0}
.li-adventure-world>summary small{font-size:11px;font-weight:950;color:#8b5b80}
.li-adventure-world>summary b{font-family:"Fredoka",system-ui,sans-serif;font-size:clamp(18px,2.7vw,23px);line-height:1.1}
.li-adventure-world-chevron{font-size:25px;margin-left:auto;color:#916b96;transition:transform .16s}
.li-adventure-world[open] .li-adventure-world-chevron{transform:rotate(180deg)}
.li-adventure-world-content{padding:13px 7px 19px;background:#fff8f0}
.li-adventure-canvas{position:relative;width:360px;max-width:100%;margin:auto}
.li-adventure-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.li-adventure-stop{position:absolute;transform:translate(-50%,-40px);display:flex;align-items:center;flex-direction:column;z-index:2;width:90px}
.li-adventure-node{width:76px;height:76px;border-radius:50%;border:6px solid #fff;background:#e5e5e5;color:#8f858e;box-shadow:0 8px 0 #c8c8c8,0 12px 14px #41344225;display:grid;place-items:center;font-size:31px;cursor:pointer;transition:transform .15s,box-shadow .15s}
.li-adventure-node span{line-height:1}
.li-adventure-stop.done .li-adventure-node{background:#58cc02;color:#fff;box-shadow:0 8px 0 #46a302,0 12px 14px #3b812b30}
.li-adventure-stop.current .li-adventure-node{background:#ffc800;color:#694956;box-shadow:0 8px 0 #ff8c42,0 12px 14px #c7783c30;animation:li-map-pulse 2.4s ease-in-out infinite}
.li-adventure-stop.locked .li-adventure-node{cursor:not-allowed;opacity:.78}
.li-adventure-node:hover:not(:disabled){transform:translateY(-4px) scale(1.045)}
.li-adventure-node:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #aeaeae}
.li-adventure-label{position:absolute;top:84px;left:50%;transform:translateX(-50%);text-align:center;width:135px;display:grid;gap:3px;padding:6px;border-radius:12px;background:#fffdf8f0;box-shadow:0 3px 0 #eddfdf;border:1px solid #f2dfec}
.li-adventure-label b{font-size:11px;color:#704b73;overflow-wrap:anywhere}
.li-adventure-label small{font-size:10px;color:#856c84;font-weight:800}
.li-adventure-note{max-width:500px;margin:auto;background:#fff;border-radius:13px;color:#8a7189;padding:11px;font-size:11px;line-height:1.5}
@media(max-width:620px){.li-adventure-route{padding:12px}.li-adventure-node{width:70px;height:70px}.li-adventure-label{width:118px}.li-adventure-world>summary{padding:11px}}
@media(prefers-reduced-motion:reduce){.li-adventure-stop.current .li-adventure-node{animation:none!important}.li-adventure-world-chevron,.li-adventure-node{transition:none!important}.li-adventure-node:hover{transform:none!important}}
