﻿@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@600;700;800;900&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#342642;background:#fff9fc;font-synthesis:none;--ink:#342642;--muted:#776980;--pink:#f45b9f;--purple:#7d52bd;--line:#f0deea}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 90% 6%,#fce6f4 0,transparent 26rem),#fff9fc}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #6d45ad;outline-offset:3px}.skip{position:absolute;top:-100px;left:1rem;z-index:10;background:#fff;padding:1rem}.skip:focus{top:1rem}.topbar{max-width:1320px;margin:auto;padding:24px 5%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;border:0;background:none;color:#342642;text-align:left;font:900 25px/1 'Nunito',sans-serif;letter-spacing:-1px}.brand b{color:#ed5699}.brand small{display:block;font:800 8px/1.5 'Nunito',sans-serif;letter-spacing:1.1px}.brand-star{display:grid;place-items:center;width:39px;height:39px;border-radius:14px;background:#fbd4e8;color:#d93d88;font-size:23px}.top-actions{display:flex;align-items:center;gap:15px}.icon-button{border:1px solid #eadce9;border-radius:50%;width:40px;height:40px;background:#fff;font-size:20px;color:#8b60b8}.home-link{font-size:13px;font-weight:700;text-decoration:none;color:#796c7f}main{max-width:1190px;margin:auto;padding:0 30px 70px}.hero{min-height:495px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:4rem}.eyebrow{font:900 11px 'Nunito',sans-serif;letter-spacing:2px;color:#c04f8c}.eyebrow span{font-size:15px}.hero h1,.page-heading h1,.completion h1{font:900 clamp(45px,5.8vw,76px)/1.02 'Nunito',sans-serif;letter-spacing:-3px;margin:21px 0;color:#372443}.hero h1 em,.page-heading h1 em,.completion h1 em{font-style:normal;color:#e4589c}.hero-lead,.page-heading p{color:#776980;font-size:17px;line-height:1.75;max-width:500px}.hero-buttons{display:flex;align-items:center;gap:22px;margin-top:29px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:0;border-radius:15px;min-height:54px;padding:15px 23px;font-weight:800;text-decoration:none;transition:transform .16s,box-shadow .16s}.button:hover:not(:disabled){transform:translateY(-2px)}.button:active:not(:disabled){transform:translateY(1px)}.primary{color:white;background:linear-gradient(135deg,#f263a6,#e64595);box-shadow:0 6px 0 #cd4486,0 11px 22px #eab6d1}.primary span{font-size:21px}.tiny-note{font-size:12px;color:#8a7b8d}.tiny-note span{color:#e78ab6}.hero-art{position:relative;height:410px;display:grid;place-items:center}.mascot-disc{width:300px;height:300px;border-radius:50%;background:linear-gradient(145deg,#ffe0ee,#f0ddff);box-shadow:inset 0 0 0 14px #ffffff80,0 25px 60px #d9a8d342;display:grid;place-items:center;z-index:1}.mascot{width:90%;max-width:255px;filter:drop-shadow(0 12px 8px #b283ad38)}.art-orbit{position:absolute;border:1px solid #efd1e5;border-radius:50%;width:355px;height:355px}.orbit-two{width:405px;height:405px;opacity:.6}.floating-candy{position:absolute;z-index:2;display:grid;place-items:center;width:48px;height:48px;background:#fff;border-radius:18px;box-shadow:0 8px 20px #d7b3cf66;font-size:24px;color:#f4a62c}.candy-a{top:52px;left:17%}.candy-b{right:12%;top:110px;color:#ed72b0;transform:rotate(15deg)}.candy-c{bottom:50px;left:20%;color:#a67add}.art-label{position:absolute;z-index:3;right:4%;bottom:55px;background:#fff;border:1px solid #f6eaf2;border-radius:15px;padding:11px 16px;font-size:9px;letter-spacing:1px;color:#af91a7;box-shadow:0 8px 20px #d7b3cf55}.art-label strong{display:block;font:900 14px 'Nunito',sans-serif;letter-spacing:0;color:#503855}.home-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.progress-card,.mini-card{background:#fff;border:1px solid #f1e3ed;border-radius:21px;padding:20px;box-shadow:0 8px 30px #a97ca90d;display:flex;align-items:center;gap:16px}.card-icon,.mini-icon{flex:none;width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:#fff0d8;color:#e9a73e;font-size:27px}.mini-icon{background:#f3e8ff;color:#ac79d7}.progress-copy{flex:1}.label-row,.world-progress{display:flex;justify-content:space-between;gap:1rem;font-weight:800;font-size:13px}.label-row strong,.world-progress strong{color:#e2559c}.progress-track{height:9px;background:#f5eaf2;border-radius:20px;overflow:hidden;margin:9px 0}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#f49cbd,#ee58a3);border-radius:20px;transition:width .3s}.progress-copy small,.mini-card small{display:block;color:#9a8b9b;font-size:12px}.mini-card strong{font-size:14px}.mini-card small{margin-top:5px}.notice{margin-top:22px;display:flex;align-items:center;gap:12px;border-radius:16px;padding:12px 17px;background:#fff4df;color:#826343;font-size:12px;line-height:1.5}.notice>span{font-size:20px}.notice p{flex:1;margin:0}.notice button{border:0;background:none;font-size:22px;color:#9d806a}footer{text-align:center;color:#aa97a8;font-size:11px;padding:5px 20px 30px}footer span{color:#eaa0c3}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:60px 0 35px}.page-heading h1{font-size:clamp(39px,5vw,60px);margin:14px 0}.page-heading p{font-size:15px;margin:0}.overall-pill{min-width:155px;text-align:center;padding:17px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 25px #bc96b415}.overall-pill span,.overall-pill small{display:block;font-size:10px;font-weight:800;letter-spacing:1px;color:#9c889b}.overall-pill strong{display:block;font:900 30px 'Nunito',sans-serif;color:#e3549b}.overall-pill small{font-weight:500;letter-spacing:0}.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.world-card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:22px;box-shadow:0 9px 27px #ae83a516}.world-card.locked{opacity:.72}.world-top{display:flex;align-items:start;justify-content:space-between}.world-number{color:#a68fa2;letter-spacing:1.5px;font-size:10px;font-weight:900}.world-symbol{display:grid;place-items:center;width:55px;height:55px;margin-top:-3px;border-radius:19px;background:#ffe8f1;color:#e4589b;font-size:30px}.peach .world-symbol{background:#fff0e7;color:#ec8a61}.yellow .world-symbol{background:#fff7d7;color:#e3a82e}.blue .world-symbol{background:#e5f5fa;color:#60aac2}.purple .world-symbol{background:#f2eaff;color:#a774d4}.green .world-symbol{background:#e4f7ed;color:#64ad83}.world-card h2{font:900 21px/1.2 'Nunito',sans-serif;margin:13px 0 8px}.world-card p{min-height:42px;color:#8c7d8e;font-size:13px;line-height:1.6}.world-progress{font-size:11px;color:#968799;margin-top:22px}.world-button{width:100%;margin-top:11px;min-height:46px;padding:10px 12px;background:#fff1f7;color:#c94e8c;font-size:12px}.world-button span{margin-left:auto}.world-button:disabled{background:#f6f2f5;color:#9f929d}.map-bottom{display:flex;justify-content:space-between;align-items:center;color:#9a8999;font-size:12px;margin-top:25px}.text-button{border:0;background:none;text-decoration:underline;color:#9a688d;font-size:13px;padding:12px}.play-header{display:flex;align-items:center;gap:25px;max-width:820px;margin:35px auto 28px}.back-button{white-space:nowrap;border:0;background:#fff;border-radius:12px;padding:12px 15px;color:#8a6b84;font-weight:700}.play-progress{flex:1}.play-progress .label-row{font-size:12px}.play-count{text-align:center;color:#8e7990;font-size:10px}.play-count strong,.play-count span{display:block}.play-count strong{font-size:16px;color:#df569b}.challenge{max-width:820px;margin:auto;background:#fff;border:1px solid #f1e2ec;border-radius:27px;padding:clamp(22px,5vw,48px);box-shadow:0 18px 60px #a978a21c}.challenge-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.challenge-tag{display:inline-block;background:#fff0f7;border-radius:20px;padding:8px 12px;color:#d25396;font-size:11px;font-weight:800}.challenge-count{font-size:10px;font-weight:800;letter-spacing:1px;color:#a795a5;text-align:right}.challenge h1{font:900 clamp(22px,3vw,30px)/1.35 'Nunito',sans-serif;letter-spacing:-.4px;margin:25px 0}.question-context{color:#776980;line-height:1.6}.choices{display:grid;gap:11px}.choice{display:flex;align-items:center;text-align:left;gap:15px;width:100%;min-height:62px;padding:10px 15px;border:2px solid #f0e8ef;background:#fff;border-radius:15px;color:#4c3d4e;line-height:1.45}.choice:hover:not(:disabled){border-color:#eeb8d4;background:#fffafd}.choice.selected{border-color:#ea70ad;background:#fff3f9}.choice-badge{flex:none;display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#f8eff6;color:#b1729c;font-weight:800}.choice-check{margin-left:auto;color:#d75198}.numeric-input{display:block;width:100%;max-width:300px;border:2px solid #e9d9e7;border-radius:13px;padding:15px;margin:10px 0;font-size:18px}.input-label{font-weight:800}.input-hint{color:#948397}.challenge-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:25px}.challenge-actions .button{min-width:190px}.feedback{display:flex;gap:13px;margin-top:22px;padding:18px;border-radius:17px;line-height:1.55}.feedback.good{background:#ebf9ef;color:#376749}.feedback.try-again{background:#fff5e8;color:#80572f}.feedback-icon{font-size:23px}.feedback p{margin:5px 0 0;font-size:14px}.feedback summary{cursor:pointer;font-size:13px;margin-top:10px}.validation{color:#ab3a5c;font-size:13px}.encouragement{text-align:center;color:#a892a2;font-size:12px;margin:25px}.dev{margin-top:20px;color:#8b7b8a;font-size:12px}.completion,.empty{text-align:center;max-width:650px;margin:55px auto}.completion .mascot{width:160px}.completion h1{font-size:clamp(38px,6vw,64px)}.completion p{color:#8b7d8d;line-height:1.6}.completion-stats{display:flex;justify-content:center;gap:35px;margin:30px}.completion-stats strong,.completion-stats span{display:block}.completion-stats strong{font:900 26px 'Nunito',sans-serif;color:#e3549b}.completion-stats span{font-size:12px;color:#9a8999}.completion>a,.completion>.text-button{display:block;margin:20px auto}.loading{text-align:center;padding:100px;color:#a36b99}@media(max-width:800px){.hero{gap:1rem;min-height:auto;padding:45px 0}.hero-art{height:310px}.mascot-disc{width:230px;height:230px}.art-orbit{width:265px;height:265px}.orbit-two{width:300px;height:300px}.world-grid{grid-template-columns:repeat(2,1fr)}.hero-buttons{align-items:flex-start;flex-direction:column;gap:13px}}@media(max-width:550px){.topbar{padding:18px 20px}.home-link{display:none}main{padding:0 18px 50px}.hero{display:flex;flex-direction:column-reverse;align-items:stretch;padding:10px 0 34px;gap:0}.hero-art{height:240px}.mascot-disc{width:185px;height:185px}.art-orbit{width:215px;height:215px}.orbit-two{width:240px;height:240px}.mascot{width:84%}.floating-candy{width:38px;height:38px;font-size:19px;border-radius:13px}.candy-a{top:27px;left:12%}.candy-b{right:8%;top:52px}.candy-c{bottom:25px;left:13%}.art-label{right:0;bottom:20px;padding:8px 10px}.art-label strong{font-size:12px}.hero h1{font-size:48px;letter-spacing:-2px;margin:15px 0}.hero-lead{font-size:15px;line-height:1.6}.hero-buttons{margin-top:20px}.home-bottom{grid-template-columns:1fr;gap:10px}.progress-card,.mini-card{padding:15px}.notice{align-items:flex-start}.page-heading{padding:36px 0 25px;align-items:start}.page-heading h1{letter-spacing:-1.5px}.page-heading p{font-size:14px}.overall-pill{min-width:90px;padding:12px}.overall-pill strong{font-size:24px}.overall-pill span{font-size:8px}.world-grid{grid-template-columns:1fr;gap:12px}.world-card{padding:19px}.world-card p{min-height:0}.world-progress{margin-top:15px}.map-bottom{align-items:start;gap:10px}.play-header{gap:10px;margin:22px auto}.back-button{padding:11px}.back-button span{display:none}.challenge{padding:22px 18px;border-radius:21px}.challenge h1{margin:21px 0}.choice{padding:10px;gap:10px;font-size:15px}.challenge-actions .button{width:100%}.challenge-actions .text-button{margin:auto}.completion{margin:35px auto}.completion-stats{gap:20px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.reduce-motion *, .reduce-motion *::before,.reduce-motion *::after{transition:none!important;animation:none!important}
.curve-widget{background:#fcf7fd;border:1px solid #f1e5f1;border-radius:18px;padding:16px;margin:18px 0}.curve-intro{color:#796b80;font-size:13px;line-height:1.5;margin:0}.curve-widget svg{display:block;width:100%;max-height:220px;margin:12px auto}.curve-sliders{display:flex;gap:18px;flex-wrap:wrap}.curve-sliders label{flex:1;min-width:160px;font-size:12px;font-weight:700;color:#735f77}.curve-sliders input{display:block;width:100%;accent-color:#d9539a;min-height:44px}.curve-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.curve-choices .choice{justify-content:center;font-size:12px;min-height:44px;padding:9px;text-align:center}.hero-art{background:url('../assets/cloudscape.svg') center/contain no-repeat}.brand-star{background:#fbd4e8 url('../assets/candy.svg') center/70% no-repeat;color:transparent}@media(max-width:550px){.curve-choices{grid-template-columns:1fr}.curve-choices .choice{justify-content:flex-start}}
.source-graph{display:block;width:100%;max-width:550px;max-height:250px;object-fit:contain;margin:0 auto 20px}.order-built,.order-pieces{display:flex;flex-wrap:wrap;gap:9px;padding:12px;border-radius:15px;min-height:64px;align-items:center}.order-built{background:#faf3fa;border:2px dashed #e5cde0;color:#a58ba2;font-size:13px}.order-pieces{margin-top:10px}.order-piece{min-height:44px;border:1px solid #e8d7e5;background:#fff;border-radius:11px;padding:10px 14px;color:#664a63;font-weight:700}.order-piece.selected{background:#fde8f3;border-color:#efafd0;color:#b34783}
.category-list{display:grid;gap:10px;margin:15px 0}.category-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(150px,2fr);gap:12px;align-items:center;padding:12px;border:1px solid #f0e2ed;border-radius:13px;font-weight:700;font-size:14px}.category-row select{width:100%;min-height:44px;border:1px solid #e5d5e3;border-radius:10px;background:#fff;padding:9px;color:#4c3d4e;font:inherit;font-weight:500}@media(max-width:550px){.category-row{grid-template-columns:1fr;gap:7px}}
/* A small recurring friend keeps the quiz playful while leaving room for the question. */
.challenge-identity{display:flex;align-items:center;gap:10px;min-width:0}
.challenge-friend{display:grid;place-items:center;width:54px;height:54px;flex:none;border-radius:18px;background:linear-gradient(145deg,#ffe6f2,#f1e5ff);box-shadow:inset 0 0 0 3px #fff8}
.challenge-friend img{display:block;width:49px;height:48px;object-fit:contain}
.completion-art{position:relative;display:grid;place-items:center;width:min(260px,75vw);height:215px;margin:0 auto 22px;background:url('../assets/cloudscape.svg') center/cover no-repeat;border-radius:45% 45% 35% 35%;box-shadow:0 14px 35px #d9a8d333}
.completion .completion-art .mascot{width:190px;height:auto;max-width:75%;z-index:1}
.completion-sparkle{position:absolute;z-index:2;display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#fff;color:#ed74af;box-shadow:0 7px 18px #d7b3cf66;font-size:20px}
.completion-sparkle-left{left:8px;top:55px;color:#eda840}.completion-sparkle-right{right:8px;bottom:37px}
@media(max-width:550px){.challenge-identity{gap:7px}.challenge-friend{width:45px;height:45px;border-radius:15px}.challenge-friend img{width:41px;height:40px}.challenge-tag{font-size:10px;padding:7px 9px}.challenge-count{max-width:90px;font-size:9px}.completion-art{height:180px;width:225px;margin-bottom:18px}.completion .completion-art .mascot{width:155px}}
.challenge-top{background:linear-gradient(90deg,#fff9fbe8,#fff8fbe8),url('../assets/cloudscape.svg') center/cover;border-radius:18px;padding:8px 10px}
.challenge-friend{width:62px;height:62px}.challenge-friend img{width:58px;height:56px}
@media(max-width:550px){.challenge-top{padding:7px}.challenge-friend{width:55px;height:55px}.challenge-friend img{width:51px;height:50px}}
