@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--ink:#253d38;--paper:#faf8f1;--green:#245b45;--lime:#dcf189;--muted:#64736b;--line:#dce1d5;--red:#dc7163;--blue:#5f8fcb;--yellow:#efca55}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px 'DM Sans',sans-serif}button,a,select{touch-action:manipulation}button,a.primary{font:600 15px 'DM Sans',sans-serif}button{cursor:pointer;border:1px solid var(--line);background:#fffdf7;color:var(--ink);border-radius:100px;padding:12px 18px;min-height:46px}button:hover{border-color:var(--green);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:default;transform:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #a852c6;outline-offset:4px}a{color:inherit}header{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:26px 36px;border-bottom:1px solid var(--line);gap:16px}#brand{text-decoration:none;font-size:12px;letter-spacing:2px;font-weight:600}#brand strong{display:block;font:800 24px Outfit,sans-serif;letter-spacing:1px}.tools{display:flex;gap:8px}.tools button{font-size:12px;padding:10px 14px}main{max-width:1200px;margin:auto;padding:48px 36px 32px}h1,h2,h3{font-family:Outfit,sans-serif;line-height:1.05;margin:0}h1{font-size:clamp(45px,6.8vw,84px);font-weight:600;letter-spacing:-3px}h2{font-size:clamp(30px,4vw,48px);font-weight:600;letter-spacing:-1.2px}h3{font-size:25px}p{line-height:1.65}small,.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.eyebrow{color:var(--green);margin-bottom:20px;display:block}.intro{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;min-height:460px}.intro p{max-width:450px;color:var(--muted);font-size:18px}.primary{display:inline-block;background:var(--green);color:white;border:none;text-decoration:none;padding:17px 26px;border-radius:100px}.primary:hover{background:#173e2d}.secondary{background:transparent}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}.note{font-size:12px;color:var(--muted);margin-top:16px}.art{height:440px;border-radius:230px 230px 20px 20px;background:#e8ebdf;position:relative;overflow:hidden;border:1px solid #d9dfd0;display:flex;align-items:center;justify-content:center}.ring{position:absolute;border:28px solid;border-radius:50%;width:310px;height:310px;border-color:#d77a69 #e7c75f #72977d #6d92bc;transform:rotate(-25deg);box-shadow:0 0 0 20px #faf8f199,0 0 0 21px #d8dfd2}.ring:after{content:'';position:absolute;inset:30px;border:1px dashed #92a799;border-radius:50%}.art-center{position:relative;text-align:center;background:var(--paper);border-radius:50%;height:182px;width:182px;display:flex;flex-direction:column;align-items:center;justify-content:center}.art-center b{font:600 56px Outfit;letter-spacing:-3px}.art-center span{font-size:11px;letter-spacing:2px}.floating{position:absolute;bottom:20px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px}.dot{width:12px;height:12px;border-radius:50%;background:#679884;display:inline-block}.journey{margin-top:48px;border-top:1px solid var(--line);padding-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{border:1px solid var(--line);border-radius:18px;padding:24px;background:#ffffff60}.card small{color:var(--muted)}.card h3{margin-top:15px}.card p{font-size:14px;color:var(--muted);margin-bottom:0}.card.locked{opacity:.65}.card button{margin-top:18px}.progress{display:flex;gap:8px;margin-bottom:35px;align-items:center}.progress span{height:5px;background:#dfe4d6;border-radius:10px;flex:1}.progress span.done{background:var(--green)}.progress small{margin-left:12px;white-space:nowrap;font-size:10px;letter-spacing:1px}.scene{max-width:830px;margin:0 auto}.scene>p{color:var(--muted);font-size:18px;max-width:700px}.panel{background:#eeefe4;border-radius:24px;border:1px solid #dde2d2;padding:32px;margin-top:28px}.speaker{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.initial{display:grid;place-items:center;width:40px;height:40px;background:var(--green);color:white;border-radius:50%;font:600 15px Outfit}.feedback{min-height:55px;line-height:1.5;margin-top:20px;font-weight:500}.color-row{display:flex;gap:16px;justify-content:center;margin-top:30px}.color{height:96px;width:110px;border-radius:20px;border:3px solid transparent;display:flex;align-items:end;justify-content:center;padding-bottom:12px;color:#172e2c;text-shadow:0 1px 2px #ffffff88}.color[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:4px}.red{background:var(--red)}.blue{background:var(--blue)}.yellow{background:var(--yellow)}.green{background:#8fb48b}.mix{width:130px;height:130px;border-radius:50%;background:#dedfd2;margin:25px auto 0;border:8px solid #fff9;box-shadow:0 3px 0 #d5dacb;display:grid;place-items:center;font-weight:700;color:#19342d}.recipe{text-align:center;font-size:20px}.portal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:600px;margin:28px auto}.portal{height:120px;border-radius:60px 60px 20px 20px;border:4px solid #fff8;box-shadow:0 4px 0 #ccd2c4;transition:filter .15s,transform .15s;font-size:18px;display:flex;align-items:end;justify-content:center;padding:18px 6px}.portal.lit{filter:brightness(1.35);transform:translateY(-8px);outline:4px solid #263d36;outline-offset:3px}.choices{display:grid;gap:12px;margin-top:24px}.choice{text-align:left;border-radius:16px;padding:20px 24px;line-height:1.5;font-size:17px}.choice b{display:block;font-family:Outfit;font-size:20px}.story-text{font-size:21px;color:var(--ink)!important}.badge{width:190px;height:190px;border:2px solid var(--green);outline:1px solid var(--green);outline-offset:9px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:35px auto;background:#e3edc4;transform:rotate(-5deg)}.badge b{font:700 31px Outfit;text-align:center;line-height:1.1}.badge span{font-size:10px;letter-spacing:2px;margin-top:12px}.piano{display:flex;gap:8px;justify-content:center;margin-top:28px}.piano button{border-radius:10px 10px 22px 22px;height:125px;width:80px;display:flex;align-items:end;justify-content:center;padding:16px 4px}.certificate{text-align:center;background:#fffdf6;border:2px solid var(--green);padding:44px 22px;border-radius:8px}.certificate h2{margin:20px 0}.certificate p{max-width:500px;margin:15px auto}.certificate .line{width:70%;margin:40px auto 10px;border-bottom:1px solid var(--green)}dialog{max-width:580px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:24px;padding:35px}dialog::backdrop{background:#18332bb0}dialog label{display:block;font-weight:600}select{display:block;margin-top:12px;width:100%;padding:12px;background:white;border:1px solid var(--line);border-radius:8px}dialog button{margin-top:15px}footer{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1200px;margin:35px auto 0;padding:25px 36px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer button{font-size:12px;background:transparent}.fade{animation:enter .4s ease}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:700px){header{padding:18px;flex-wrap:wrap}.tools{width:100%;justify-content:space-between}.tools button{font-size:11px;padding:9px 11px}main{padding:30px 20px}.intro{grid-template-columns:1fr;gap:30px;min-height:0}h1{letter-spacing:-2px}.art{height:290px;border-radius:140px 140px 15px 15px}.ring{height:230px;width:230px;border-width:20px}.art-center{width:140px;height:140px}.art-center b{font-size:45px}.journey{grid-template-columns:1fr;gap:12px;margin-top:30px}.card{padding:20px}.card h3{margin-top:8px}.panel{padding:24px 18px}.portal-grid{gap:8px}.portal{height:95px;font-size:13px}.color-row{gap:12px}.color{width:85px;height:85px}.piano{gap:5px}.piano button{height:100px;font-size:10px}.story-text{font-size:18px}footer{padding:22px 20px;flex-wrap:wrap}footer span{display:none}.progress small{font-size:9px}.certificate{padding:30px 15px}}@media(prefers-reduced-motion:reduce){*,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{header,footer,.actions,.progress,.eyebrow,.no-print,dialog{display:none!important}body{background:white}main{padding:0}.certificate{margin:50px 0;border:3px solid black}.badge{background:white}a{display:none}}
/* Uncle TL's branded storybook world */
:root{--ink:#17294d;--paper:#fbf8f0;--green:#315bc9;--lime:#ffcf65;--muted:#66728b;--line:#dce1ef;--red:#ef7e84;--blue:#83b5ef;--yellow:#f8d465}body{background:radial-gradient(ellipse at 10% 2%,#dbe9ff 0,transparent 35%),radial-gradient(ellipse at 95% 60%,#eee1fa 0,transparent 35%),var(--paper)}header{max-width:1320px;border-bottom:0;padding:24px 36px}#brand{display:flex;align-items:center;gap:11px;letter-spacing:1.5px;color:#274897}#brand strong{font-size:23px}.brand-mark{background:#315bc9;border-radius:16px 16px 16px 5px;width:48px;height:48px;display:grid;place-items:center;color:#ffdc7b;font:800 24px Outfit;box-shadow:4px 4px 0 #f3bd5d}.tools button{background:#ffffffa8;border-color:#d6dfef;backdrop-filter:blur(8px)}main{max-width:1280px;padding-top:20px}.intro{position:relative;gap:0;grid-template-columns:.92fr 1.08fr;background:#152e63;border-radius:34px;overflow:hidden;min-height:560px;box-shadow:0 24px 70px #1b357a20;border:1px solid #b9c8e0}.intro>div:first-child{padding:50px 20px 50px 45px;position:relative;z-index:2;background:radial-gradient(ellipse at 0 0,#315aad88,transparent 80%)}.intro .eyebrow{color:#ffda81;font-size:10px;line-height:1.8;max-width:290px}.intro h1{font-size:clamp(45px,5.3vw,69px);letter-spacing:-2px;color:#fff9ee;font-weight:700;line-height:1.06}.intro h1 em{font-style:normal;color:#ffd772}.intro p{color:#d5e0f4;font-size:17px;line-height:1.7;max-width:370px}.intro .primary{background:#ffd372;color:#1b315e;border-bottom:4px solid #d39c3d;padding:17px 26px;box-shadow:0 7px 18px #0002}.intro .primary:hover{background:#ffe29d}.intro .note{color:#b6c8e8}.art{height:100%;min-height:560px;border:0;border-radius:0;background:#f6c377;overflow:hidden}.hero-uncle{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:34% center;filter:saturate(1.08)}.art:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#152e63 0,transparent 16%),linear-gradient(0deg,#0f244caa,transparent 35%)}.hero-sticker{position:absolute;right:22px;top:24px;background:#fff9eaeF;border:1px solid #ffffff9c;border-radius:18px;padding:16px 19px;z-index:2;transform:rotate(5deg);box-shadow:0 8px 30px #19305c20}.hero-sticker span{font-size:8px;letter-spacing:1.2px;color:#4e638a}.hero-sticker strong{display:block;font:700 25px Outfit;line-height:1.1;margin-top:8px;color:#284d9e}.floating{z-index:2;bottom:24px;color:white;font-size:9px;letter-spacing:1.5px;left:30px;right:25px}.journey{margin-top:35px;padding-top:0;border-top:0;gap:22px}.card{padding:0;background:white;overflow:hidden;position:relative;border-radius:24px;border:1px solid #d6deec;box-shadow:0 10px 26px #243f6d0b;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-5px);box-shadow:0 16px 30px #243f6d17}.card.locked{opacity:1}.card-art{height:245px;position:relative;background:#d9e4ef;overflow:hidden}.card-art img{width:100%;height:100%;object-fit:cover;object-position:center 27%;transition:transform .5s}.card:hover img{transform:scale(1.04)}.card:nth-child(3) .card-art img{object-position:center 30%}.card-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0f244c66,transparent 50%)}.chapter-number{position:absolute;z-index:1;left:20px;bottom:16px;font:700 38px Outfit;color:white;letter-spacing:-1px}.card-body{padding:25px}.card small{color:#315bc9;font-size:10px;letter-spacing:1.7px}.card h3{font-size:25px;line-height:1.15}.card p{min-height:46px}.card button{width:100%;background:#edf2ff;border-color:transparent;color:#2e54ae;font-size:13px}.card button:disabled{background:#f4f3ee;color:#66728b;opacity:1}.scene{max-width:1130px}.scene>.eyebrow{margin-top:10px}.scene>h2,.scene>[data-narration]{max-width:850px}.scene h2{font-weight:700;line-height:1.1}.chapter-stage{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:stretch;margin-top:30px}.chapter-portrait{margin:0;position:relative;min-height:510px;overflow:hidden;border-radius:26px;box-shadow:0 16px 38px #20366117;background:#d4dcee}.chapter-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 35%;position:absolute;inset:0}.chapter-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102c60d9,transparent 40%)}.chapter-portrait figcaption{position:absolute;bottom:28px;left:28px;right:24px;z-index:1;font:700 26px Outfit;color:white;line-height:1.15;max-width:280px}.chapter-stage>.panel{margin-top:0;padding:30px;background:#ffffffd9;border:1px solid #dbe2f1;border-radius:26px;box-shadow:0 14px 35px #1d38740a;display:flex;flex-direction:column;justify-content:center}.speaker{color:#345397;font-size:11px;margin-bottom:25px}.speaker-photo{width:56px;height:56px;object-fit:cover;object-position:50% 25%;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #e4bd62}.recipe{font-family:Outfit;font-size:22px}.mix{height:145px;width:145px;border:10px solid #fff;box-shadow:0 5px 0 #dae1ef,0 12px 25px #2a46850e}.color{box-shadow:inset 0 -5px 0 #00000012;border-radius:22px;font-weight:700;min-width:75px}.feedback{font-size:15px;color:#3b5276;background:#f1f5fd;border-radius:14px;padding:15px 18px;min-height:73px}.portal{box-shadow:0 5px 0 #cad3e6,0 10px 20px #304d7a15}.choice{border:1px solid #dae3f1;background:#f7f9ff;font-size:14px;padding:17px 19px}.choice b{font-size:18px;color:#284d9e}.choice:hover{background:#edf2ff}.badge{border-color:#d5a84e;background:radial-gradient(circle,#fff1c6,#f4d783);outline-color:#d5a84e;box-shadow:0 10px 40px #d2a64d2a;color:#213d76}.progress{margin-bottom:25px}.progress span.done{background:linear-gradient(90deg,#4d71d8,#9772cd)}[data-chapter="2"] .chapter-stage>.panel{background:#f5f8ff}[data-chapter="3"] .chapter-stage>.panel{background:#fffbff}[data-chapter="4"] .chapter-portrait img{object-position:33% center}.certificate{border-color:#c99d41;background:radial-gradient(ellipse at 50% 0,#e8efff,transparent 55%),#fffdf6;position:relative;overflow:hidden;padding-top:0}.certificate-host{width:calc(100% + 44px);margin:0 -22px 35px;height:220px;object-fit:cover;object-position:center 25%;border-bottom:5px solid #ebc565}.certificate small{color:#46629c}.certificate h2{color:#1b3e83}footer{border-color:#d9e1ed}dialog{border:2px solid #d1dcf3;box-shadow:0 30px 100px #102b5d40}dialog h2{font-size:34px;color:#254f9f}dialog .primary{background:#315bc9}.piano button{box-shadow:inset 0 -6px 0 #0001;transition:transform .15s}.piano button:active{transform:translateY(5px)}
@media(min-width:1100px){.chapter-stage .portal{height:120px}.chapter-stage .color-row{gap:18px}}
@media(max-width:900px){.intro>div:first-child{padding:35px 20px 35px 30px}.hero-sticker{right:12px;padding:13px;top:18px}.hero-sticker strong{font-size:21px}.chapter-stage{grid-template-columns:.65fr 1fr;gap:16px}.chapter-stage>.panel{padding:24px 18px}.card-art{height:205px}.card-body{padding:20px}.card h3{font-size:22px}.color-row{gap:10px}.color{width:75px}.portal-grid{gap:7px}.portal{font-size:12px}}
@media(max-width:700px){header{padding:20px}main{padding-top:5px}.intro{grid-template-columns:1fr;border-radius:25px;min-height:0}.intro>div:first-child{padding:30px 27px 23px;order:2}.intro .eyebrow{font-size:9px;margin-bottom:12px;max-width:none}.intro h1{font-size:44px;letter-spacing:-1.5px}.intro p{font-size:16px;max-width:100%}.intro .actions{margin-top:20px}.intro .primary{width:100%;text-align:center}.art{min-height:300px;height:300px;order:1}.hero-uncle{object-position:center 36%}.art:after{background:linear-gradient(0deg,#152e63 0,transparent 28%)}.hero-sticker{right:17px;top:18px;padding:12px 15px}.hero-sticker strong{font-size:21px}.hero-sticker span{font-size:7px}.floating{bottom:25px;left:22px;font-size:8px}.journey{grid-template-columns:1fr;gap:18px}.card{display:grid;grid-template-columns:37% 63%;border-radius:21px;min-height:220px}.card-art{height:100%;min-height:220px}.card-art img{object-position:50% 25%}.card-body{padding:20px 18px}.card h3{font-size:23px;margin-top:10px}.card p{font-size:13px;margin-top:10px;min-height:0}.card small{font-size:8px;letter-spacing:1.1px}.card button{font-size:11px;padding:10px;margin-top:13px}.chapter-number{font-size:30px;left:12px;bottom:14px}.chapter-stage{grid-template-columns:1fr;gap:0;margin-top:22px}.chapter-portrait{min-height:255px;border-radius:24px 24px 0 0;box-shadow:none}.chapter-portrait img{object-position:center 25%}.chapter-portrait figcaption{font-size:22px;bottom:20px;left:22px;max-width:230px}.chapter-stage>.panel{border-radius:0 0 24px 24px;padding:25px 20px}.speaker-photo{width:48px;height:48px}.speaker{margin-bottom:18px}.color{width:85px;height:90px}.color-row{gap:14px}.portal-grid{width:100%;gap:8px}.portal{height:105px;font-size:13px}.certificate-host{height:170px}.certificate h2{font-size:32px}.tools button{background:#fff9}.brand-mark{width:43px;height:43px;font-size:22px}#brand strong{font-size:21px}.scene>p,.story-text{font-size:17px}.chapter-stage .story-text{font-size:18px}.feedback{font-size:14px}.progress small{font-size:8px}.piano button{width:100%;height:110px;font-size:10px;padding:12px 2px}}
@media print{body{background:white}.certificate-host{height:170px}.certificate{background:white}.speaker-photo{display:none}.certificate h2{color:black}.badge{box-shadow:none}.certificate small{color:black}}
