.calendar-hub .calendar-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:28px 0}.calendar-card{border:4px solid white;border-radius:28px;background:#fff1bb;overflow:hidden;color:#233f50;text-decoration:none;display:flex;flex-direction:column;transform:none}.calendar-card:nth-child(3n+2){background:#e4dcf7}.calendar-card:nth-child(3n){background:#c8eee3}.calendar-copy{padding:22px;flex:1}.calendar-copy h2{margin:0 0 12px;font-size:1.55rem;line-height:1.2}.calendar-copy p{margin:0;font-weight:400;line-height:1.5}.calendar-picture{position:relative;aspect-ratio:16/9;border-top:4px solid white;display:block;background:#f9f6ed}.calendar-picture img{width:100%;height:100%;object-fit:cover}.calendar-picture b{position:absolute;right:12px;bottom:12px;padding:12px 18px;border-radius:13px;background:#284b56ed;color:white}.calendar-card:hover{box-shadow:0 5px 16px #244b6b20}.calendar-app{max-width:900px;margin:20px auto 32px;background:white;border:4px solid white;border-radius:28px;padding:20px;text-align:center}.calendar-app button{font:inherit;font-weight:700;color:#274657;cursor:pointer;border:3px solid transparent;border-radius:14px;background:#edf4f8;min-height:48px;padding:10px 16px}.calendar-app button:focus-visible,.calendar-card:focus-visible{outline:3px solid #315f80;outline-offset:3px}.calendar-app .primary{background:#df8a3b;color:white;box-shadow:0 4px 0 #b36a2d;font-size:1.2rem;min-height:60px;padding:12px 26px}.calendar-app #prompt{font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.25;margin:14px auto}.calendar-app #explain{max-width:660px;margin:10px auto 18px;line-height:1.5}.calendar-app #count{font-size:.85rem;color:#607784}.calendar-app progress{width:100%;height:8px;accent-color:#65ae98}.calendar-app #view{max-width:700px;margin:16px auto}.seasons{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.calendar-app .seasons button{background:transparent;padding:0;border:3px solid transparent}.seasons svg{display:block;width:100%}.seasons strong{display:block;padding:6px}.year-line{background:#e9f3ee;border-radius:12px;padding:10px;margin:12px 0;font-weight:700}.months{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.calendar-app .months button{display:flex;gap:8px;align-items:center;background:#f4f0fb;font-size:.95rem;padding:10px}.months small,.week small{background:white;border-radius:8px;min-width:25px;padding:4px;color:#607784}.week{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.week button{display:flex;flex-direction:column;gap:5px;align-items:center}.week button:nth-last-child(-n+2){background:#fcebc9}.cycle-note{font-size:.9rem;color:#607784;margin:10px auto}.calendar-app #options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px auto;max-width:700px}.calendar-app #feedback{min-height:1.5em;color:#367259;font-weight:700;line-height:1.4}.calendar-app .actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:16px 0 4px}.calendar-app .selected{border-color:#87b6a1!important}.calendar-app .correct{border-color:#65ae98!important;background:#e7f5eb!important}.calendar-app .try{border-color:#ddb17c}.calendar-app [hidden]{display:none!important}.month-head{background:#ddece6;border-radius:12px 12px 0 0;padding:10px;display:flex;justify-content:space-between}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:500px;margin:auto}.calendar-app #view:has(.month-grid){max-width:500px}.month-grid .weekday{padding:5px;color:#607784;font-size:.85rem}.calendar-app .month-grid button{min-height:35px;border-radius:8px;padding:4px}.calendar-app #end h2{font-size:2rem}.calendar-app #end a{display:block;margin-top:24px}.calendar-parent{line-height:1.75;margin:32px 0}.calendar-parent h2{font-size:1.6rem}.calendar-parent details{padding:15px 0;border-bottom:1px solid #d2e1e9}.calendar-parent summary{font-weight:700;cursor:pointer}.calendar-note{font-size:.85rem;color:#607784}.calendar-exercise>h1{font-size:1.4rem!important}@media(max-width:700px){.calendar-hub .calendar-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.calendar-copy{padding:18px}.calendar-copy h2{font-size:1.3rem}.calendar-app{padding:12px}.seasons{grid-template-columns:repeat(2,1fr)}.seasons svg{max-height:90px}.months{grid-template-columns:repeat(3,1fr)}.calendar-app .months button{font-size:.8rem;padding:7px 5px;gap:4px}.week{grid-template-columns:repeat(3,1fr)}.week button{font-size:.8rem}.calendar-app #options{grid-template-columns:1fr 1fr}.calendar-app #explain{font-size:.95rem}.calendar-app #view{margin:12px auto}.calendar-app .actions{margin-top:10px}}@media(max-width:460px){.calendar-hub .calendar-cards{grid-template-columns:1fr}}@media(max-height:740px){.calendar-app{margin-top:12px}.calendar-app #view{margin:8px auto}.calendar-app #explain{margin:8px auto}.calendar-app .seasons svg{max-height:65px}.calendar-app .months button,.calendar-app .week button{min-height:38px;padding:5px}.calendar-app #feedback{font-size:.9rem}}
.calendar-hub .calendar-cards{align-items:stretch!important}.calendar-hub .calendar-card,.calendar-hub .calendar-card:hover{margin:0!important;align-self:stretch;transform:none!important}.calendar-exercise .brand-promise{display:none}

body[data-calendar] .brand-promise{display:none}body[data-calendar] .portal-shell{padding-top:12px}body[data-calendar] .portal-shell>h1{margin:10px 0}.calendar-app #feedback:empty{display:none}.calendar-app progress{appearance:none;border:0;background:#e8f0f6;border-radius:8px;overflow:hidden;display:block;margin:8px 0}.calendar-app progress::-webkit-progress-bar{background:#e8f0f6}.calendar-app progress::-webkit-progress-value{background:#65ae98}.calendar-app progress::-moz-progress-bar{background:#65ae98}

@media(max-width:700px){.calendar-app .actions{flex-wrap:nowrap;align-items:center}.calendar-app .actions button{padding:10px 14px;font-size:1rem;min-width:0}.calendar-app .actions .primary{font-size:1.05rem}}
/* Picture planner: colorful tabs and real seasonal picture cards. */
.calendar-app{background:#fffcf4;border:4px solid #fff;box-shadow:0 5px 22px #3450630b}.calendar-app #view{max-width:760px}.calendar-app #explain{font-size:1rem;margin:8px auto 12px;max-width:680px}.calendar-app #count{font-weight:700;color:#708294}.calendar-app .flip-board{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:14px;max-width:650px;margin:auto}.calendar-app .flip-arrow,.calendar-app .day-nav button,.calendar-app .year-picker button{background:#efb64c;color:#423b2d;border:3px solid white;min-height:60px;padding:0;font-size:2.6rem;line-height:1;box-shadow:0 3px 0 #d9a13d;border-radius:18px}.flip-content{position:relative;min-width:0}.flip-title{display:block;font-size:1.75rem;line-height:1.2;margin:10px 0 4px;color:#25495b}.season-wheel{width:min(38dvh,280px);aspect-ratio:1;border:7px solid #fff;border-radius:50%;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:3px;position:relative;margin:auto;box-shadow:0 0 0 2px #ebc66c}.calendar-app .season-wheel button{padding:0;border:0;border-radius:0;position:relative;min-height:0;overflow:hidden}.season-wheel img{width:100%;height:100%;object-fit:cover;display:block}.season-wheel button>span{position:absolute;bottom:8px;left:5px;right:5px;border-radius:8px;background:#fffdf3e8;font-size:.8rem;font-weight:750;padding:3px}.season-wheel .selected{outline:5px solid #e89436;outline-offset:-5px;z-index:1}.wheel-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:5px solid white;border-radius:50%;background:#f7cc63;padding:8px;font-size:1.4rem;font-weight:800;line-height:1;pointer-events:none}.calendar-app .seasons{gap:12px}.calendar-app .seasons button{background:white;border:3px solid #fff;border-radius:18px;overflow:hidden}.seasons img{width:100%;height:115px;object-fit:cover;display:block}.seasons strong{padding:7px;font-size:1rem}.year-line{margin:12px auto 4px;background:#fff0bc;color:#5d583c;max-width:550px;font-size:.95rem}.month-hero{width:100%;height:160px;object-fit:cover;border-radius:20px;border:5px solid white;display:block;box-shadow:0 2px 0 #d9dfdb}.month-number{position:absolute;top:12px;right:12px;background:white;padding:6px 10px;border-radius:10px;font-size:.85rem;font-weight:800}.calendar-app .months button{display:flex;flex-direction:column;padding:0;gap:0;border:3px solid white;border-radius:12px;background:var(--tab);overflow:hidden;box-shadow:0 2px 0 #d0d9d6;position:relative}.months button>img{width:100%;height:65px;object-fit:cover}.months button>span{display:flex;align-items:center;gap:5px;padding:7px;font-size:.82rem;font-weight:750;line-height:1.2;justify-content:center;width:100%}.months button small{background:white;color:#4a6070;padding:3px;min-width:20px;border-radius:5px;font-size:.7rem}.calendar-app .month-ribbon{display:flex;gap:6px;overflow-x:auto;padding:6px 3px;scroll-snap-type:x mandatory;max-width:650px;margin:12px auto 0}.month-ribbon button{flex:0 0 94px;scroll-snap-align:center;min-height:0}.month-ribbon button>img{height:45px}.month-ribbon button>span{font-size:.7rem;padding:6px 3px}.month-ribbon small{display:none}.calendar-app .months .selected{outline:3px solid #397d90;outline-offset:-3px}.relation-caption{font-size:.95rem;margin:10px auto;color:#526f7b;font-weight:650}.day-page{background:var(--tab);border:6px solid white;border-radius:22px;max-width:180px;margin:auto;box-shadow:0 3px 0 #d4dacf;position:relative;padding:15px}.day-page:before,.day-page:after{content:'';position:absolute;top:-12px;width:14px;height:26px;border-radius:8px;background:#567384;border:3px solid #fff}.day-page:before{left:25px}.day-page:after{right:25px}.day-page>span{font-size:4rem;font-weight:800;line-height:1.1;color:#fff}.day-page>small{display:block;font-size:.8rem;font-weight:650;color:#294c5d}.calendar-app .week{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:12px auto;max-width:740px}.calendar-app .week button{background:var(--tab)!important;padding:10px 4px;border:3px solid white;border-radius:14px;box-shadow:0 2px 0 #d3d9cf}.week button small{background:#ffffffd9;color:#385c6e;min-width:27px;border-radius:7px}.week button strong{font-size:.72rem;font-weight:750;overflow-wrap:anywhere}.week-triplet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:600px;margin:12px auto}.calendar-app .week-triplet button{background:var(--tab);border:3px solid white;min-height:65px;padding:8px 5px;display:flex;flex-direction:column;gap:7px;justify-content:center}.week-triplet small{font-size:.75rem;color:#3c5860;font-weight:650}.week-triplet strong{font-size:.9rem}.week-triplet button:nth-child(2){outline:3px solid #fff;box-shadow:0 0 0 3px #e4ac40}.scope-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 auto 10px;padding:0;max-width:600px}.calendar-app .scope-tabs button{min-height:40px;padding:7px;font-size:.9rem;background:#f3ead3;border:2px solid white;border-radius:10px}.calendar-app .scope-tabs button[aria-pressed=true]{background:#bce0d4;border-color:#73b59d}.planner-heading{height:90px;border-radius:16px 16px 0 0;background-position:center 45%;background-size:cover;display:flex;justify-content:space-between;align-items:center;padding:8px;gap:8px;border:4px solid white;border-bottom:0;position:relative}.planner-heading>span{background:#fffdf0f5;border-radius:12px;padding:8px 14px;font-size:1.15rem;font-weight:700;margin:auto;box-shadow:0 2px 0 #6a8c8b25}.calendar-app .planner-heading button{min-height:42px;padding:0 10px;background:#fffdf0f5;border-radius:10px;font-size:1.8rem}.calendar-app .month-grid{padding:5px;background:white;border-radius:0 0 16px 16px;border:4px solid white;border-top:0;gap:4px}.calendar-app .month-grid button{background:color-mix(in srgb,var(--tab) 28%,white);min-height:34px;border:2px solid transparent;border-radius:8px;font-weight:750;color:#37536a;box-shadow:0 1px 0 #e2e8e6}.calendar-app .weekday{background:var(--tab);font-size:.8rem;border-radius:6px;padding:4px;color:#284b56;font-weight:750}.calendar-app .month-grid .picked{border-color:#dc8b32;background:#fff0b8;box-shadow:0 0 0 2px #efcb74}.day-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;max-width:350px;margin:10px auto 0}.calendar-app .day-nav button{min-height:42px;font-size:2rem;border-radius:12px}.day-nav>span{font-weight:750;font-size:1rem}.year-picker{display:flex;align-items:center;justify-content:center;gap:25px;margin:10px}.year-picker strong{font-size:1.5rem}.calendar-app .year-picker button{min-height:38px;width:44px;font-size:2rem;border-radius:10px}.date-week{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-app .date-week button{padding:8px 3px;background:var(--tab);border:3px solid white}.date-week small{display:block;font-size:.7rem;overflow-wrap:anywhere}.date-week strong{font-size:1.6rem;display:block;margin:8px}.date-week span{font-size:.75rem}.single-day{background:var(--tab);border:6px solid white;border-radius:20px;width:min(60%,250px);margin:12px auto;padding:12px;box-shadow:0 3px 0 #d1d9d4}.single-day>span{display:block;font-size:1rem;font-weight:700}.single-day>strong{font-size:5rem;line-height:1.3;color:#fff}.calendar-app #end{padding:15px}.calendar-card .calendar-picture{background:#fff9e9}.calendar-picture img{object-fit:cover}
@media(max-width:700px){.calendar-app .flip-board{grid-template-columns:40px minmax(0,1fr) 40px;gap:6px}.calendar-app .flip-board{grid-template-columns:40px minmax(0,1fr) 40px}.calendar-app .flip-arrow{min-height:52px;font-size:2.2rem;border-radius:14px}.season-wheel{width:min(31dvh,220px);border-width:5px}.flip-title{font-size:1.4rem}.month-hero{height:125px}.calendar-app .months{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.months button>img{height:42px}.months button>span{font-size:.7rem;padding:6px 2px;gap:3px}.months button small{font-size:.65rem;min-width:16px}.calendar-app .month-ribbon button>img{height:38px}.calendar-app .month-ribbon{margin-top:8px}.calendar-app .week{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.week button strong{font-size:.65rem}.calendar-app .week button{min-height:58px;padding:7px 2px;gap:5px}.calendar-app .week-triplet button{min-height:58px;padding:6px 2px}.week-triplet strong{font-size:.7rem}.week-triplet small{font-size:.65rem}.day-page{max-width:130px;padding:10px}.day-page>span{font-size:3rem}.calendar-app .day-nav{margin-top:8px}.planner-heading{height:68px;padding:5px}.planner-heading>span{font-size:1rem;padding:6px 9px}.calendar-app .month-grid button{min-height:31px}.calendar-app .scope-tabs button{font-size:.8rem;padding:6px 3px;min-height:35px}.calendar-app .date-week{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-app .seasons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.seasons img{height:90px}.calendar-app .seasons strong{font-size:.9rem;padding:6px}.calendar-app #explain{font-size:.9rem}.relation-caption,.year-line{font-size:.85rem}.calendar-app .actions{margin-top:12px}.calendar-app .actions button{padding:10px 13px}.calendar-app #view{margin:10px auto}}
.calendar-app .date-week .picked{outline:3px solid #dd8a3b;outline-offset:-3px}

.season-wheel button:nth-child(n+3)>span{top:10px;bottom:auto}.calendar-app .flip-board{max-width:520px}.calendar-app .season-wheel img{max-width:none}.calendar-app #count[hidden],.calendar-app progress[hidden]{display:none!important}

.month-hero{object-fit:contain;background:#fff}.calendar-app .month-ribbon{scrollbar-width:thin}.calendar-app .month-grid:has(.correct)~.actions{margin-top:10px}
/* One task at a time: listening, ordering, gaps, then relative days. */
.calendar-app .week-learn{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;max-width:540px;margin:24px auto}.calendar-app .weekday-card{background:var(--day);border:4px solid white;border-radius:17px;padding:20px 10px;display:flex;align-items:center;justify-content:center;min-height:88px;color:#234a58}.calendar-app .hero-day{min-height:170px}.hero-day strong{font-size:clamp(1.65rem,5vw,2.8rem)}.calendar-app .week-back{padding:0;min-height:54px;font-size:2rem;background:#efb64c}.calendar-app .week-track{display:flex;gap:8px;justify-content:center;align-items:center;margin:22px auto;flex-wrap:wrap}.week-track .weekday-card{flex:1 1 90px;max-width:200px;min-width:0;padding:15px 6px}.week-track .weekday-card strong{font-size:clamp(.78rem,2.2vw,1.15rem)}.week-learn+.week-track .weekday-card{flex:1 1 68px;min-height:45px;padding:8px 4px;max-width:110px}.week-learn+.week-track strong{font-size:.73rem}.weekday-slot{min-height:88px;min-width:80px;flex:1;max-width:200px;border:3px dashed #98acae;border-radius:17px;display:grid;place-items:center;font-size:1.5rem;font-weight:800}.calendar-app .week-answers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:30px auto 10px;max-width:650px}.week-answer{min-width:0}.calendar-app .week-answer>button:first-child{background:var(--day);border:4px solid white;min-height:110px;width:100%;padding:12px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.week-answer strong{font-size:clamp(.8rem,2.1vw,1.2rem)}.calendar-app .week-pick{width:100%;font-size:1rem;margin-top:8px;min-height:48px;padding:8px;background:#dd8937;color:#fff}.week-pick:disabled{opacity:.32}.calendar-app .time-arrow{font-size:2rem;color:#dd8937}.example-label{font-size:.9rem;color:#647a80}.arrive{animation:week-arrive .35s ease-out}@keyframes week-arrive{from{transform:translateY(14px);opacity:.2}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.arrive{animation:none}}@media(max-width:500px){.calendar-app .week-answers{gap:5px}.calendar-app .week-pick{font-size:.8rem;padding:7px 2px}.calendar-app .week-answer>button:first-child{min-height:92px}.calendar-app .hero-day{min-height:135px}.calendar-app .week-track{gap:5px}.calendar-app #prompt{font-size:1.2rem}.calendar-app .week-learn{margin:16px auto}}
