:root{font-family:ui-rounded,"SF Pro Rounded",system-ui,sans-serif;color:#1f2940;background:#f6f8ff;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#e9f5ff 0,transparent 30%),#f6f8ff}.wrap{max-width:960px;margin:auto;padding:20px}nav{background:#ffffffdd;backdrop-filter:blur(10px);border-bottom:1px solid #e2e7f3;position:sticky;top:0;z-index:5}.nav{display:flex;gap:18px;align-items:center;padding-top:13px;padding-bottom:13px}.nav a{text-decoration:none;color:#46506a;font-weight:650}.brand{font-size:1.25rem!important;font-weight:900!important;color:#304fd2!important;margin-right:auto}.nav form{margin:0}.card{background:#fff;border:1px solid #e2e7f3;border-radius:22px;padding:24px;margin:20px 0;box-shadow:0 12px 35px #34447b0c}.narrow{max-width:520px;margin:45px auto}.hero{min-height:430px;display:grid;grid-template-columns:1.35fr .65fr;align-items:center;gap:30px}.hero h1,.pagehead h1{font-size:clamp(2.2rem,6vw,4.2rem);line-height:1.02;margin:.25em 0}.hero p{font-size:1.2rem;color:#606b84;max-width:620px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:900;color:#5a6bd8}.mascot{font-size:8rem;text-align:center;filter:drop-shadow(0 15px 15px #273a6b22)}.mascot span{display:block;font-size:1.2rem;letter-spacing:.35em;color:#5364c8}.cta,button{display:inline-block;background:#425bd7;color:#fff;border:0;border-radius:13px;padding:12px 18px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}button{width:100%}.ghost{background:#eef1ff;color:#4053b8;padding:9px 13px}.nav .ghost{width:auto}input{font:inherit;border:2px solid #dce2f1;border-radius:12px;padding:12px;width:100%;background:#fbfcff}input:focus{outline:3px solid #dce4ff;border-color:#6678df}label{display:block;font-weight:750;margin:14px 0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats div{display:flex;flex-direction:column}.stats b{font-size:1.25rem}.stats span,.small{color:#748099;font-size:.9rem}.pagehead{padding:35px 0 10px}.pagehead h1{font-size:3rem}.levelmap{display:grid;gap:13px}.level{display:flex;gap:18px;align-items:center;background:#fff;border:2px solid #e1e6f2;border-radius:20px;padding:18px}.level.current{border-color:#6678df;box-shadow:0 8px 25px #4a5ec422}.level.locked{opacity:.48}.level.done{background:#f7fff9}.levelicon{font-size:2.5rem}.level h3{margin:2px 0}.challenge-head{display:flex;align-items:center;justify-content:space-between;padding-top:25px}.challenge-head h1{margin:.2em 0}.xp-pill{background:#fff1b9;border:1px solid #f1d56a;padding:9px 14px;border-radius:99px;font-weight:900}.challenge{max-width:760px;margin:20px auto}.problem{font-size:clamp(2.6rem,8vw,4.5rem);font-weight:950;text-align:center;padding:25px}.problem span{color:#7b87a0}.steps{display:grid;gap:12px;margin:18px 0}.step{display:grid;grid-template-columns:42px 1fr 110px;gap:12px;align-items:center;background:#f7f9ff;border-radius:16px;padding:12px;margin:0}.stepnum{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e2e7ff;color:#4155bd}.step input{text-align:center;font-size:1.15rem}.final{background:#fff8d9;padding:16px;border-radius:16px;font-size:1.1rem}.final input{margin-top:8px;font-size:1.3rem}.skip{margin-top:10px}.center{text-align:center}.notice{padding:15px 18px;border-radius:15px;margin:20px 0}.notice.good{background:#eaf9ef;color:#17683c}.notice.bad{background:#fff0f0;color:#9c2e3b}.goodtxt{color:#16824b}.badtxt{color:#b12a36}.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.statgrid .card{margin:0;display:flex;flex-direction:column;text-align:center}.statgrid b{font-size:2rem}.bar{height:14px;background:#e9edf7;border-radius:20px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#5269df,#7a8bea);border-radius:20px}.badges{display:flex;flex-wrap:wrap;gap:12px}.badge{display:flex;align-items:center;gap:8px;background:#fff7d8;border:1px solid #f0df98;padding:9px 13px;border-radius:13px}.badge b{font-size:1.5rem}.attempt{border-top:1px solid #e6eaf2;padding:13px 0}.attempt summary{display:flex;justify-content:space-between;cursor:pointer}.attempt p{margin:8px 0 0 15px}footer{text-align:center;color:#8a93a7;padding:40px 20px}@media(max-width:650px){.nav{gap:10px;flex-wrap:wrap}.nav .brand{width:100%}.hero{grid-template-columns:1fr;min-height:auto;padding:40px 0}.mascot{font-size:5rem}.stats,.statgrid{grid-template-columns:1fr}.step{grid-template-columns:36px 1fr}.step input{grid-column:2}.challenge-head{align-items:flex-start}.attempt summary{gap:12px}.problem{padding:12px}}
.langswitch{margin-left:auto;display:flex;gap:.35rem;align-items:center;font-weight:800;font-size:.85rem}.langswitch a{opacity:.55;text-decoration:none}.langswitch a.active{opacity:1;text-decoration:underline;text-underline-offset:4px}@media(max-width:700px){.langswitch{margin-left:0}}
.rolepick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.rolepick label{margin:0}.rolepick input{width:auto;margin-right:5px}.childgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:15px}.childcard{background:#fff;border:2px solid #e1e6f2;border-radius:20px;padding:18px}.childcard.active{border-color:#6678df}.childcard h3{margin:.2rem 0}.childcard form{margin-top:10px}.goalrow{display:grid;grid-template-columns:1fr 100px auto;gap:10px;align-items:end}.goalrow button{width:auto}.mini-bar{height:10px;background:#e9edf7;border-radius:10px;overflow:hidden;margin:10px 0}.mini-bar i{display:block;height:100%;background:#6678df}.inline{display:flex;gap:10px;align-items:center}.inline button{width:auto}@media(max-width:650px){.rolepick{grid-template-columns:1fr}.goalrow{grid-template-columns:1fr}}
