@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@500;600&display=swap');
.fractionbar{display:flex;max-width:350px;height:35px;margin:18px auto;border:2px solid #24634f}.fractionbar i{flex:1;border-right:1px solid #24634f}.fractionbar i.filled{background:#69b697}.numberline{text-align:center;font-size:20px;color:#24634f;margin:20px 0}.graph{padding:15px;background:#edf4e9;margin:16px auto;max-width:480px;color:#24634f;font-size:20px;display:flex;flex-wrap:wrap;gap:10px}.graph div{width:100%}.graph span{text-align:center;flex:1;font-size:16px}.unitgrid{display:grid;max-width:240px;margin:15px auto;border:1px solid #24634f}.unitgrid i{aspect-ratio:1;border:1px solid #24634f;background:#b3d8bd}.clock{position:relative;width:150px;height:150px;border:5px solid #24634f;border-radius:50%;margin:15px auto;background:repeating-conic-gradient(#24634f 0deg 1deg,transparent 1deg 6deg)}.clock:before{content:'';position:absolute;inset:7px;border-radius:50%;background:#fff}.clock span{position:absolute;font-weight:bold;font-size:14px;z-index:1}.clock12{top:10px;left:61px}.clock3{right:12px;top:62px}.clock6{bottom:10px;left:66px}.clock9{left:12px;top:62px}.clock i{position:absolute;left:68px;bottom:70px;transform-origin:bottom;border-radius:4px;z-index:2}.hourhand{height:38px;width:5px;background:#193c3c}.minutehand{height:54px;width:3px;background:#3f9270}.question{font-size:clamp(22px,2.5vw,32px)!important;line-height:1.45}.answers button{font-size:clamp(14px,1.6vw,22px)!important;overflow-wrap:anywhere}
:root{font-family:'DM Sans',sans-serif;color:#193c3c;background:#f3f6ee;--green:#215c4b;--gold:#ffd469}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:12px;padding:12px 18px;font-weight:700;color:inherit;background:#e7eee4}button:hover{filter:brightness(.95);transform:translateY(-1px)}button:disabled{cursor:default;opacity:.5;transform:none}button:focus-visible,a:focus-visible{outline:3px solid #2874c4;outline-offset:3px}header{height:90px;border-bottom:1px solid #dbe4d7;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fffef8}.brand{display:flex;align-items:center;gap:12px;font-family:Fredoka,sans-serif;font-size:32px;text-decoration:none;color:#24634f}.brand span{font-size:21px;line-height:1}.brand b{display:block;letter-spacing:3px;font-size:14px;margin-top:5px}.player{display:flex;gap:24px;align-items:center;font-weight:700}.player button{background:none;border:1px solid #d6dfd0}main{max-width:1440px;margin:auto;padding:34px 5vw}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:20px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;color:#628373}h1,h2,h3{font-family:Fredoka,sans-serif;font-weight:500}h1{font-size:36px;margin:8px 0}p{line-height:1.6;color:#61756b;margin:8px 0}.intro button{background:white;border:1px solid #d6dfd0;white-space:nowrap}.intro button span{background:#eaf1e5;padding:3px 7px;border-radius:6px;margin-left:8px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px}.world{background:white;border-radius:22px;overflow:hidden;border:1px solid #d6dfd0;box-shadow:0 8px 30px #193c3c0b}.worldtop{display:flex;justify-content:space-between;padding:18px 24px;background:#193f3b;color:#eff8e7;font-size:12px;font-weight:700;letter-spacing:1px}.scene{position:relative;height:330px;background:linear-gradient(#497e74,#a9c698);background-image:linear-gradient(#123e3420,#123e3435),url('forest.png');background-position:center;background-size:cover;display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:20px}.bubble{background:#fffff4ee;border:1px solid #ffffff9e;max-width:580px;border-radius:14px;padding:13px 20px;text-align:center;font-size:14px;box-shadow:0 5px 16px #193c3c18}.fighters{display:flex;width:80%;justify-content:space-around;align-items:center;gap:20px}.fighter{text-align:center;min-width:140px}.tag{font-size:12px;letter-spacing:1px;font-weight:bold;color:white;text-shadow:0 2px 5px #163d35}.character{font-size:85px;line-height:1.3;filter:drop-shadow(0 12px 4px #193c3c44);animation:float 3s ease-in-out infinite}.enemy{animation-delay:-1.5s}.health{height:9px;width:140px;background:#183b3677;border:2px solid #fff9;border-radius:20px;margin:10px auto 5px;overflow:hidden}.health i{display:block;height:100%;width:100%;background:#a5f293;transition:width .5s}.enemyhealth i{background:#ffcf74}.fighter>span{color:white;font-size:12px;font-weight:bold;text-shadow:0 2px 3px #163d35}.versus{color:#ffe598;font-size:38px;text-shadow:0 0 20px white}.playpanel{padding:24px 28px;min-height:245px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:14px}.panelhead h2{font-size:23px;margin:0}.badge{font-size:12px;background:#eaf1e5;padding:6px 10px;border-radius:6px;font-weight:bold}.spellbuttons{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 14px}.spell{background:#f1f5ef;border:1px solid #d8e4d1;padding:17px 10px}.spell strong{display:block;font-family:Fredoka;font-size:18px;margin:6px 0}.spell small{font-weight:500;color:#677a6d;font-size:12px}.primary{background:var(--green);color:white}.question{font-family:Fredoka;font-size:36px;text-align:center;margin:18px 0}.answers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.answers button{background:#f1f5ef;border:2px solid #d8e4d1;font-size:22px;padding:14px}.answers button.wrong{border-color:#d69373;background:#fff0e8}.feedback{min-height:25px;margin-top:14px;font-size:14px;color:#537261}.hint{background:#fff4d5;padding:12px;margin-top:12px;border-radius:10px;font-size:14px;line-height:1.6}.textbutton{background:none;text-decoration:underline;font-size:14px;padding:8px}.quest{padding:22px;background:#e5ecdd;border-radius:16px}.quest h2{font-size:23px;margin:12px 0}.quest p{font-size:14px}.questprogress{height:7px;background:#cedbc6;border-radius:20px;margin:18px 0 10px;overflow:hidden}.questprogress i{display:block;width:0;height:100%;background:#3d8262}.quest>span:last-child{font-size:12px;color:#597461}nav{display:flex;flex-direction:column;gap:8px;margin:18px 0}nav button{display:flex;gap:12px;align-items:center;text-align:left;padding:14px;background:transparent;border:1px solid transparent}nav button.active{background:#fffef8;border-color:#cbdac4;box-shadow:0 4px 10px #193c3c06}nav button .icon{font-size:25px}nav button strong{display:block;font-size:14px}nav button small{display:block;font-size:12px;font-weight:500;color:#70806c;margin-top:4px}.daily{border:1px dashed #c4d2bb;border-radius:14px;padding:18px}.daily>span{font-size:12px;font-weight:bold;letter-spacing:1px}.daily h3{margin:12px 0 4px;font-size:20px}.daily p{font-size:14px}.daily b{font-size:18px;display:block;margin-top:14px}footer{font-size:12px;color:#7d8d7b;display:flex;justify-content:space-between;margin-top:22px;gap:16px}dialog{border:1px solid #dbe4d7;border-radius:20px;max-width:520px;width:calc(100% - 32px);padding:28px;color:#193c3c;background:#fffef8;box-shadow:0 20px 100px #163d3544}dialog::backdrop{background:#123c3580;backdrop-filter:blur(5px)}.dialoghead{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialoghead h2{margin:0 0 20px;font-size:25px}.close{background:none;font-size:25px;padding:0 10px;align-self:flex-start}label{display:block;margin:15px 0;font-size:14px;font-weight:700}input,select{display:block;width:100%;padding:12px;border:1px solid #c9d8c3;border-radius:9px;background:white;margin-top:7px;color:#193c3c}.check{display:flex;gap:12px;align-items:center;line-height:1.5}.check input{width:auto;margin:0}.small{font-size:12px}.report{background:#edf2e9;padding:16px;border-radius:12px;margin:16px 0;font-size:14px;line-height:1.8}#settings .primary{width:100%}#reset{display:block;margin:12px auto 0}.petcard{display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid #dbe4d7}.petcard>span{font-size:45px}.petcard h3{margin:0;font-size:20px}.petcard p{font-size:14px}#effect{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;color:#fff;font-family:Fredoka;font-size:60px;text-shadow:0 0 20px #ffc85c}.burst{animation:burst .8s ease-out}.reward{text-align:center}.reward .big{font-size:55px}.reward h2{font-size:30px;margin:10px}.reward p{margin:10px 0 20px}@keyframes float{50%{transform:translateY(-7px)}}@keyframes burst{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(1.6)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:900px){main{padding:25px 20px}.layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}nav{margin:0;grid-row:span 2}.daily{margin:0}.intro h1{font-size:29px}.player{gap:12px}header{padding:0 20px}.intro{align-items:flex-start}.intro p{font-size:14px}}@media(max-width:560px){header{height:75px}.brand span{font-size:16px}.brand b{font-size:11px}.player{font-size:12px;gap:8px}.player button{padding:8px;font-size:12px}.intro{display:block}.intro button{margin-top:12px}.scene{height:300px;padding:15px 10px}.bubble{font-size:12px}.fighters{width:100%;gap:5px}.fighter{min-width:115px}.character{font-size:70px}.health{width:110px}.tag{font-size:10px}.worldtop{padding:15px;font-size:10px}.playpanel{padding:20px 16px}.panelhead h2{font-size:20px}.badge{font-size:10px}.spellbuttons{gap:6px}.spell strong{font-size:15px}.spell small{font-size:11px}.answers{grid-template-columns:repeat(2,1fr)}.question{font-size:32px}aside{display:block}nav{margin:16px 0;display:grid;grid-template-columns:1fr 1fr}.daily{margin-top:16px}footer{display:block;line-height:1.6}footer span{display:block}}

/* Laptop adventure and skill journal */
.world{align-self:start}.player{gap:10px}.player button{font-size:14px;padding:10px}dialog{max-height:90vh;overflow:auto}#settings{max-width:720px}.skillrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #dbe4d7;font-size:14px}.skillrow button{font-size:12px;padding:8px;white-space:nowrap}.worked{text-align:center;font-size:25px;padding:20px;background:#edf4e9;border-radius:12px;margin:15px 0}.worked small{font-size:16px}details{margin:20px 0}summary{cursor:pointer;font-weight:bold}#mapDialog{max-width:720px}#mapNodes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}#mapNodes button{min-height:120px;border:1px solid #ccd8c4;background:#ecf3e5;display:flex;flex-direction:column;gap:10px;align-items:center}#mapNodes button:last-child{grid-column:span 2;background:#f8edcc}#mapNodes span{font-size:32px}#mapNodes small{font-weight:500}#campContents button{margin:5px}#campContents h3{margin-top:24px}@media(max-width:800px){header{height:auto;min-height:90px;gap:15px;padding-top:15px;padding-bottom:15px;flex-wrap:wrap}.player{flex-wrap:wrap}.skillrow{align-items:flex-start}.skillrow span{max-width:60%}}

.pacingstrip{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 22px;padding:12px 16px;background:#e6eee0;border-radius:12px;font-size:14px}.pacingstrip>span:first-child{flex:1;font-weight:700;min-width:240px}.pacingstrip label{margin:0;font-size:12px}.pacingstrip input{width:100px;margin:0;padding:0;accent-color:#215c4b}.planrow{display:flex;gap:20px;padding:10px;border-bottom:1px solid #dbe4d7;font-size:14px}.planrow strong{min-width:90px}.planrow.current{background:#e4efda;border-radius:8px}.player{flex-wrap:wrap}header{height:auto;min-height:90px;padding-top:16px;padding-bottom:16px;gap:16px}
/* Original full-body sprites and turn-based battle effects */
.sprite{display:inline-block;width:140px;height:187px;background-image:url('characters.png');background-size:400% 200%;background-repeat:no-repeat;vertical-align:middle}.sprite-0{background-position:0% 0%}.sprite-1{background-position:33.333% 0%}.sprite-2{background-position:66.667% 0%}.sprite-3{background-position:100% 0%}.sprite-4{background-position:0% 100%}.sprite-5{background-position:33.333% 100%}.sprite-6{background-position:66.667% 100%}.sprite-7{background-position:100% 100%}.scene{height:435px;overflow:hidden;isolation:isolate}.fullbody{font-size:0;line-height:1;height:190px;animation:float 3s ease-in-out infinite}.boss-sprite{transform:scale(1.18);transform-origin:center bottom;filter:drop-shadow(0 0 12px #ffd469)}.fighters{width:90%}.fighter{position:relative;z-index:1}.bubble{position:relative;z-index:2}.battlemeta{display:flex;justify-content:space-between;gap:15px;padding:12px 20px;background:#edf3e9;font-size:12px;font-weight:700;letter-spacing:.5px}#teamStrip{display:flex;gap:10px;padding:12px 18px;border-bottom:1px solid #d9e3d3}.teamcard{flex:1;display:grid;grid-template-columns:45px 1fr;gap:4px 8px;align-items:center;font-size:12px;border:1px solid #d8e3d1;border-radius:10px;padding:8px;max-width:230px}.teamcard .sprite{width:45px;height:60px;grid-row:span 2}.teamcard.active{border:2px solid #498b61;background:#eef6e6}.teamcard.resting{opacity:.45}.teamcard strong{font-size:12px}.recruitrow{display:flex;align-items:center;gap:16px;border-bottom:1px solid #dbe4d7;padding:10px 0}.recruitrow .sprite{width:90px;height:120px}.spell-bolt{position:absolute;z-index:5;top:58%;left:22%;font-size:45px;filter:drop-shadow(0 0 15px #fff);animation:projectile .6s ease-in forwards;pointer-events:none}.damage-number{position:absolute;top:55%;font:600 36px Fredoka;color:#ffef9d;text-shadow:0 2px 4px #123b34;z-index:6;animation:damagefloat .8s ease-out forwards;pointer-events:none}.enemy-damage{left:73%}.hero-damage{left:20%;color:#ffe7e0}.hit-flash{animation:hitflash .5s ease-out!important}.attack-lunge{animation:lunge .5s ease-out!important}.screen-shake{animation:shake .25s ease-in-out!important}@keyframes projectile{0%{transform:translateX(0) scale(.5);opacity:0}15%{opacity:1}90%{opacity:1}100%{transform:translateX(350px) scale(1.1);opacity:0}}@keyframes damagefloat{to{transform:translateY(-70px);opacity:0}}@keyframes hitflash{20%,60%{filter:brightness(1.8) drop-shadow(0 0 12px #fff)}40%,80%{transform:translateX(5px)}}@keyframes lunge{50%{transform:translateX(20px)}}@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@media(max-width:560px){.sprite{width:105px;height:140px}.fullbody{height:145px}.scene{height:370px}.teamcard{display:flex;flex-direction:column;padding:6px;text-align:center}.teamcard .sprite{width:36px;height:48px}.battlemeta{font-size:10px;padding:10px}.spell-bolt{font-size:30px}@keyframes projectile{to{transform:translateX(180px);opacity:0}}}
@media(prefers-reduced-motion:reduce){.spell-bolt{animation:none!important;left:70%}.damage-number{animation:none!important}.hit-flash,.attack-lunge,.screen-shake{animation:none!important}}

.audio-control{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.pacingstrip>span:first-child{flex-basis:100%}

.recruitnotice{padding:14px 18px;background:#fff0bd;border:1px solid #e7d38e;border-radius:12px;margin-bottom:18px;font-size:14px;font-weight:700}.recruitnotice[hidden]{display:none}

/* Reserve space between battle labels and smaller character artwork. */
.scene .fullbody{height:165px;padding-top:14px;margin-top:4px}.scene .sprite{width:110px;height:147px}.scene .boss-sprite{transform:scale(1.08)}.scene .tag{position:relative;z-index:3;max-width:190px;min-height:30px;line-height:1.4;margin:auto}.scene .fighters{align-items:flex-end}.scene .versus{align-self:center}@media(max-width:560px){.scene .sprite{width:90px;height:120px}.scene .fullbody{height:140px;padding-top:14px}.scene .tag{max-width:125px}}
/* Trail exploration, constructed answers, and clear tactical choices. */
.trail-map{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:22px 8px;background:radial-gradient(ellipse,#dfebd2,transparent);border-radius:18px}.trail-node{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:125px;background:#fffef4;border:2px solid #cad9bf;box-shadow:0 5px 0 #d5e0cd}.trail-node span{font-size:30px}.trail-node small{font-weight:400}.trail-node.ready{border-color:#48836b;background:#eaf5df}.trail-node.complete{opacity:.75;background:#dfebd3}.trail-status{padding:12px 0;font-size:13px;color:#557160}.routechoices,.rewardchoices{display:flex;gap:12px;margin:18px 0;flex-wrap:wrap}.routechoices button,.rewardchoices button{flex:1;min-width:120px;padding:18px;background:#edf3e5;border:1px solid #d1dec7}.routechoices small,.rewardchoices small{display:block;margin-top:8px;font-weight:400}.rewardchoices span{font-size:30px;display:block;margin-bottom:8px}.rewardchoices strong{display:block}.npc-dialog{background:#fff7e3;padding:20px;border-radius:16px}.quest-finish{padding:18px;background:#f6f0d8;border-radius:14px;margin:12px 0}.quest-finish button{margin:6px}.scene.exploring .fighters{visibility:hidden}.scene.exploring:after{content:'✦  ⋯  ✦  ⋯  ✦';position:absolute;bottom:80px;left:0;right:0;text-align:center;font-size:36px;color:#fff0ae;text-shadow:0 0 16px #ffd469}.scene[data-land="1"]{background-image:linear-gradient(#673c2266,#b6572830),url('forest.png')}.scene[data-land="2"]{background-image:linear-gradient(#216b8970,#77dad43d),url('forest.png')}.scene[data-land="3"]{background-image:linear-gradient(#a7d5ee88,#e5f5ff50),url('forest.png')}.scene[data-land="4"]{background-image:linear-gradient(#37245888,#7462994a),url('forest.png')}.scene[data-outfit="sun"] #hero{filter:drop-shadow(0 0 10px #ffcc64)}.scene[data-outfit="moon"] #hero{filter:drop-shadow(0 0 10px #c6bbff)}.scene[data-outfit="garden"] .bubble{border:3px solid #91cbb0}.bridge-view{display:flex;justify-content:center;align-items:center;gap:10px;margin:18px 0;background:linear-gradient(#d9efe7,#a3d1d6);border-radius:14px;padding:20px}.bridge-view>span{font-size:28px}.bridge-view .bridge-plank{background:#a9b7ae;color:#435e55;border:3px dashed #e6f1e3;padding:10px 22px;border-radius:8px}.bridge-view .bridge-plank.built{background:#b78a50;color:#ffeca2;border:3px solid #eac880}.construct-answer{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;margin:15px 0}.construct-answer label{grid-column:1/-1;margin:0}.construct-answer input{margin:0;min-width:0}.intent{background:#fff3d5;border-left:4px solid #e3b64d;padding:12px;border-radius:8px;font-size:14px;margin-top:14px}.tactics{display:flex;gap:12px;margin-top:12px}.tactics button{flex:1;background:#e6eef4}.tactics small{display:block;font-weight:400;font-size:12px;margin-top:6px}.cosmetic-camp{background:#f1ecfa;border-radius:12px;padding:16px;margin-bottom:18px}.cosmetic-camp button{margin:4px}.question{font-size:30px}.scene .bubble{max-height:150px;overflow:auto}#readQuestion{font-size:13px}@media(max-width:560px){.tactics{flex-direction:column}.trail-map{gap:10px;padding:12px 0}.trail-node{min-height:110px;padding:12px 8px}.construct-answer{grid-template-columns:1fr}.question{font-size:25px}}

.scene.exploring{height:220px}.scene.exploring .bubble{margin-bottom:65px}.scene[data-outfit="garden"]:before{content:'🌿 ✦ 🌿';position:absolute;bottom:12px;left:12px;color:#dbffc9;font-size:24px;pointer-events:none}.scene.exploring:after{bottom:22px}.trail-map:before{content:'';position:absolute;inset:55px 22%;border:3px dashed #a1b68d;border-radius:45%;z-index:0}.trail-node{position:relative;z-index:1}.npc-dialog h2{margin-top:0}.pacingstrip #musicStatus{font-size:12px}.construct-answer button.wrong{border:2px solid #d69373}.construct-answer input{font-size:22px}.tactics button:hover{background:#d6e8f3}.trail-node:disabled{opacity:.6}.trail-node.complete:disabled{opacity:.85}

.group-builder{padding:14px;background:#f0eafa;border-radius:14px}.group-builder button{padding:8px 12px;margin:6px;background:white}.crystal-group{display:inline-block;padding:8px;border:1px solid #b6a6cf;border-radius:10px;margin:4px;color:#8060ba}.reward #strategyReflection{text-align:left;margin-bottom:18px}

.scene.exploring{justify-content:center}.scene.exploring .fighters{display:none}.scene.exploring .bubble{flex-shrink:0;max-height:125px;margin-bottom:55px}

/* Illustrated destinations replace the card grid with landmarks on a real trail. */
.illustrated-map{position:relative;isolation:isolate;aspect-ratio:3/2;background-image:var(--land-art);background-size:cover;background-position:center;border-radius:18px;overflow:hidden;margin:20px -10px 12px;border:1px solid #d4deca;box-shadow:inset 0 0 50px #0c25342b,0 8px 24px #203a3820}.illustrated-map:after{content:'';position:absolute;inset:75% 0 0;background:linear-gradient(transparent,#102b3770);z-index:-1}.map-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:0;background:transparent;padding:0;width:135px;z-index:2;color:#193c3c;filter:drop-shadow(0 3px 4px #193c3c70)}.map-node:hover{transform:translate(-50%,-50%) scale(1.03);filter:drop-shadow(0 4px 8px #fff7b9)}.map-node:disabled{opacity:1;transform:translate(-50%,-50%);cursor:default}.map-marker{width:35px;height:35px;display:grid;place-items:center;font-size:18px;border-radius:50%;background:#193c3cea;color:#fff3b2;border:2px solid #ffe8a9;margin-bottom:5px}.map-node strong{background:#fffdf0f5;padding:6px 9px 3px;border-radius:9px 9px 0 0;font-size:12px;line-height:1.2;max-width:135px}.map-node small{font-size:10px;background:#fffdf0f5;padding:0 9px 5px;border-radius:0 0 8px 8px;min-width:60px}.map-node.ready .map-marker{background:#ffd575;color:#3b522a;box-shadow:0 0 0 5px #ffdf9950,0 0 24px #ffdb75;animation:markerGlow 2.5s ease-in-out infinite}.map-node.complete .map-marker{background:#2d7954;border-color:#d3f7c9}.map-node:not(.ready):not(.complete) strong,.map-node:not(.ready):not(.complete) small{background:#eaf0e9eb;color:#4e625c}.map-caption{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:white;font-size:12px;font-weight:700;text-shadow:0 2px 4px #17353e;pointer-events:none}.scene[data-land]{background-image:linear-gradient(#122c3a25,#122c3a3b),var(--land-art);background-position:center 58%}.scene.exploring{height:180px}.scene.exploring:after{display:none}.scene.exploring .bubble{margin:0;max-width:580px}.scene .tag{background:#12333a9e;border-radius:7px;padding:4px 7px;min-height:30px}.sidequests{margin:18px 0;padding:18px;background:#eef2e8;border:1px solid #d5dfcb;border-radius:15px}.sidequests h3{margin:7px 0;font-size:20px}.sidequest-buttons{display:flex;gap:12px;margin-top:12px}.sidequest-buttons button{flex:1;background:#fffef4;padding:14px 10px;border:1px solid #d3ddc9;text-align:left}.sidequest-buttons span{font-size:25px;float:left;margin-right:10px}.sidequest-buttons strong{display:block;font-size:13px}.sidequest-buttons small{display:block;font-size:11px;font-weight:400;margin-top:6px}.fraction-river{padding:25px 18px 16px;border-radius:18px;background:repeating-linear-gradient(170deg,#bddde0 0px,#b0d5dc 30px,#bfe7e1 34px,#a9d5de 60px);box-shadow:inset 0 0 40px #266f813b;margin:18px 0}.river-bank{display:flex;justify-content:space-between;color:#23586c;font-weight:bold;font-size:14px;margin-bottom:12px}.stepping-stones{display:grid;grid-template-columns:repeat(var(--stones),1fr);gap:7px;position:relative;align-items:center;min-height:75px}.stepping-stones button{border:2px solid #8dadae;background:linear-gradient(#f1f4e9,#ccdcd4);border-radius:45%;height:48px;padding:0;min-width:0;color:#52776c;box-shadow:0 5px 0 #658e9738;font-size:22px}.stepping-stones button:nth-child(odd){margin-top:12px}.stepping-stones button.selected{color:#597934;border-color:#78a35c;background:#e8f2bd;box-shadow:0 0 0 4px #c5df9360,0 5px 0 #78925c4d}.fraction-entry{display:flex;align-items:end;justify-content:center;gap:14px;margin:22px 0;flex-wrap:wrap}.fraction-entry label{margin:0;max-width:120px}.fraction-entry input{font-size:25px;text-align:center;margin-top:8px}.fraction-slash{font-size:35px;padding-bottom:8px;color:#4e7665}.fraction-entry button{align-self:flex-end}.fraction-lantern{padding:20px;border-radius:14px;background:#eee8f6;margin:18px 0}.lantern-pieces{display:flex;border:2px solid #8f7dad;border-radius:12px;overflow:hidden;height:65px}.lantern-pieces button{flex:1;border-radius:0;padding:0;font-size:24px;color:#a79cb6;background:#e3dceb;border-right:1px solid #a294b8}.lantern-pieces button.planted{color:#fff2ae;background:#9a79c9}.tile-garden{background:linear-gradient(#edf2da,#d7e6c5);padding:22px;border-radius:18px;margin:20px 0;border:1px solid #ccd8b6}.garden-grid{display:grid;grid-template-columns:repeat(var(--columns),1fr);max-width:380px;margin:auto;gap:4px;padding:7px;background:#9a7955;border:3px solid #785d43;border-radius:10px}.garden-grid button{aspect-ratio:1;padding:0;border-radius:4px;background:linear-gradient(#b99773,#a37c52);border:1px solid #8a683f;min-width:0;box-shadow:inset 0 2px 3px #6b4c3426}.garden-grid button span{opacity:.1;font-size:clamp(14px,2.5vw,28px)}.garden-grid button.planted{background:linear-gradient(#d6ebb9,#a4c889);border-color:#76a062}.garden-grid button.planted span{opacity:1}.garden-tools{display:flex;gap:10px;justify-content:center;margin-top:14px}.garden-tools button{background:#fffef3;padding:9px 12px;font-size:12px}.tile-garden p,.fraction-river p{font-size:13px;margin:15px 0 0}.fraction-entry input:focus{outline:3px solid #79a795}.construct-answer button.wrong,.fraction-entry button.wrong{border:2px solid #d69373}@keyframes markerGlow{50%{box-shadow:0 0 0 8px #ffdf9930,0 0 28px #ffdb75}}@media(max-width:560px){.illustrated-map{margin:18px -8px 12px}.map-node{width:100px}.map-node strong{font-size:10px;max-width:100px;padding:4px 6px 2px}.map-node small{font-size:9px;padding:0 6px 4px}.map-marker{width:28px;height:28px;font-size:14px;margin-bottom:3px}.map-caption{font-size:10px;bottom:8px}.sidequest-buttons{flex-direction:column}.stepping-stones{gap:3px}.stepping-stones button{height:36px;font-size:18px}.fraction-river{padding:18px 10px}.fraction-entry{gap:8px}.fraction-entry label{max-width:100px}.fraction-entry button{width:100%}.garden-grid{gap:3px}.tile-garden{padding:14px}.scene.exploring{height:160px}}
/* Character evolution and elemental combat choreography */
.character-shell{position:relative;display:inline-block;vertical-align:middle;line-height:0}.character-shell .sprite{display:block}.armor-mantle{position:absolute;left:27%;top:39%;width:43%;height:36%;background:linear-gradient(120deg,#b5ded8,#277c73 45%,#174741);clip-path:polygon(12% 0,88% 0,100% 87%,50% 100%,0 87%);opacity:.9;border-top:3px solid #e5e6bb}.armor-shoulder{position:absolute;top:34%;width:22%;height:12%;background:linear-gradient(140deg,#eef8e9,#83b5ac,#2c6b66);clip-path:polygon(15% 15%,85% 0,100% 80%,0 100%)}.armor-shoulder.left{left:20%}.armor-shoulder.right{right:19%}.armor-crest{position:absolute;left:42%;top:45%;width:20%;font-size:18px;line-height:1;color:#ffed9b;text-align:center;filter:drop-shadow(0 0 3px #154e45)}.tier-1{filter:drop-shadow(0 0 4px #8de3cf)}.tier-2{filter:drop-shadow(0 0 8px #ffd968)}.tier-2 .armor-mantle{background:linear-gradient(130deg,#fff5ae,#ad742b 48%,#513b6f);border-top-color:#fff5b0}.tier-2 .armor-shoulder{background:linear-gradient(140deg,#fff6ab,#d3a44d,#91613b)}.tier-2 .armor-crest{top:12%;font-size:22px}.mira .armor-mantle{background:linear-gradient(120deg,#b6c1ff,#7162af,#32266c)}.rowan .armor-mantle{background:linear-gradient(120deg,#d9e5ed,#627f99,#263f50)}.teamcard .character-shell{grid-row:span 2}.teamcard .armor-crest{font-size:9px}.recruitrow .armor-crest{font-size:15px}.hero-progress{display:grid;gap:7px;margin:14px 0;color:#29574b;font-size:13px}.hero-progress progress{width:100%;height:10px;accent-color:#458b71}.hero-progress small{line-height:1.5}.signature-attacks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.signature{display:grid;gap:5px;padding:14px;border:1px solid #bca1dc;background:linear-gradient(120deg,#f8f2ff,#fff6dd);text-align:left;border-radius:12px}.signature span{font-size:25px}.signature small{font-size:11px;line-height:1.4}.signature:disabled{opacity:.48}.evolution-notice{padding:12px;background:#fff0b9;border-radius:10px;color:#5f471d}.attack-fx{position:absolute;inset:0;z-index:5;pointer-events:none;--energy:#ff9b42}.attack-fx.water{--energy:#79dfff}.attack-fx.leaf{--energy:#abef74}.casting-ring,.impact-ring{position:absolute;border:4px solid var(--energy);border-radius:50%;box-shadow:0 0 18px var(--energy)}.casting-ring{left:17%;top:56%;width:75px;height:75px;animation:cast-charge 1.05s both}.energy-orb{position:absolute;left:24%;top:56%;font-size:40px;filter:drop-shadow(0 0 10px var(--energy));animation:energy-flight 1.05s both}.energy-trail{position:absolute;left:25%;right:25%;top:64%;height:7px;background:linear-gradient(90deg,transparent,var(--energy),white);border-radius:50%;transform-origin:left;animation:energy-trail 1.05s both;box-shadow:0 0 18px var(--energy)}.impact-ring{left:72%;top:53%;width:70px;height:70px;animation:impact-bloom 1.05s both}.impact-spark{position:absolute;left:76%;top:62%;width:9px;height:9px;border-radius:50%;background:var(--energy);box-shadow:0 0 8px white;animation:spark-burst 1.05s both}.signature-fx .energy-orb{font-size:60px}.signature-fx .impact-ring{border-width:7px}.support-aura{position:absolute;inset:15% 10%;font-size:85px;line-height:1;color:#87efa5;filter:drop-shadow(0 0 12px currentColor);animation:support-glow 1s both}.support-aura.shield{color:#8ed9ff}@keyframes cast-charge{0%{transform:scale(.2);opacity:0}20%{opacity:1}40%{transform:scale(1.2);opacity:1}60%,100%{transform:scale(1.5);opacity:0}}@keyframes energy-flight{0%,20%{opacity:0;transform:scale(.3)}30%{opacity:1;transform:scale(1)}65%{left:75%;opacity:1;transform:scale(1.2)}85%,100%{left:75%;opacity:0;transform:scale(1.8)}}@keyframes energy-trail{0%,25%{transform:scaleX(0);opacity:0}60%{transform:scaleX(1);opacity:1}85%,100%{opacity:0}}@keyframes impact-bloom{0%,45%{opacity:0;transform:scale(.1)}65%{opacity:1}100%{transform:scale(2.2);opacity:0}}@keyframes spark-burst{0%,45%{opacity:0;transform:rotate(var(--angle)) translateX(0)}65%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateX(95px)}}@keyframes support-glow{0%{opacity:0;transform:scale(.5)}50%{opacity:.85}100%{opacity:0;transform:scale(1.3)}}@media(prefers-reduced-motion:reduce){.attack-fx *,.support-aura{animation:none!important}.energy-orb,.impact-ring{opacity:.8}.casting-ring,.energy-trail,.impact-spark{display:none}}@media(max-width:560px){.signature-attacks{grid-template-columns:1fr}.energy-orb{font-size:30px}.signature-fx .energy-orb{font-size:40px}}
#welcome{width:min(920px,94vw);max-width:920px}#welcomeSlots{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.save-slot{padding:20px;border:1px solid #d6e2d2;border-radius:16px;background:#f3f7ee;display:flex;flex-direction:column;gap:10px}.save-slot.selected{border:2px solid #468870}.save-slot.testing{background:#f1eef8}.save-slot h3{font-size:17px;margin:0}.slot-name{font-size:22px;font-weight:600;margin:4px 0}.save-slot .small{line-height:1.6}.slot-team{font-size:12px;line-height:1.5;margin-bottom:12px}.save-slot button{margin-top:auto}.save-slot p{margin:0}@media(max-width:680px){#welcomeSlots{grid-template-columns:1fr}.save-slot{padding:16px}header .player{flex-wrap:wrap}}
.evolved-sprite{background-image:url('heroes-evolved-v9.png');background-size:300% 200%;}.evolved-0{background-position:0 0}.evolved-1{background-position:50% 0}.evolved-2{background-position:100% 0}.evolved-3{background-position:0 100%}.evolved-4{background-position:50% 100%}.evolved-5{background-position:100% 100%}.battle-boon{font-size:13px;padding:10px;border-radius:9px;background:#eaf4fb;color:#24526a}.signature-shape{position:absolute;left:70%;top:45%;width:90px;height:100px;opacity:0;animation:signature-shape 1.05s both}.move-comet .signature-shape{border-right:12px solid #ffb758;border-radius:50%;transform:rotate(40deg);box-shadow:12px 0 20px #ffc650}.move-starfall .signature-shape{background:#e9ffa9;clip-path:polygon(50% 0,61% 35%,100% 40%,70% 60%,80% 100%,50% 77%,20% 100%,30% 60%,0 40%,39% 35%)}.move-frost .signature-shape{background:#a7ecff;clip-path:polygon(50% 0,60% 30%,90% 10%,70% 40%,100% 50%,70% 60%,90% 90%,60% 70%,50% 100%,40% 70%,10% 90%,30% 60%,0 50%,30% 40%,10% 10%,40% 30%)}.move-storm .signature-shape{background:#f8e5ff;clip-path:polygon(65% 0,20% 55%,48% 55%,30% 100%,90% 35%,60% 35%)}.move-earth .signature-shape{background:linear-gradient(45deg,#506b3c,#c8b178);clip-path:polygon(0 100%,10% 60%,25% 80%,40% 20%,60% 75%,75% 40%,100% 100%)}.move-solar .signature-shape{border:10px solid #ffe48d;border-radius:50%;box-shadow:0 0 30px #fff0a0,inset 0 0 15px #ffc550}.move-frost{--energy:#b4f5ff}.move-storm{--energy:#dc9cff}.move-earth{--energy:#d8bd78}.move-solar{--energy:#ffe891}@keyframes signature-shape{0%,40%{opacity:0;scale:.2}65%{opacity:1;scale:1.2}100%{opacity:0;scale:1.8}}@media(prefers-reduced-motion:reduce){.signature-shape{opacity:.75}}
.scene .evolved-sprite{width:147px;height:147px}.teamcard .evolved-sprite{width:60px;height:60px}.teamcard:has(.evolved-sprite){grid-template-columns:60px 1fr}.recruitrow .evolved-sprite{width:120px;height:120px}@media(max-width:560px){.scene .evolved-sprite{width:120px;height:120px}.teamcard .evolved-sprite{width:48px;height:48px}}
.land-discovery,.parent-summary{background:#edf5ed;border:1px solid #d5e4d3;border-radius:14px;padding:18px;margin:18px 0}.land-discovery button,.parent-summary button{margin:5px}.land-discovery p{line-height:1.65}.save-confirmation{background:#e2f3dc;border-radius:12px;padding:16px;font-weight:600}#sessionContents p{line-height:1.7}header .player{flex-wrap:wrap;justify-content:flex-end}
