/* T20: a warm playfield, built with the source's own objects and native controls. */
:root,html[data-niche=kids]{color-scheme:light;--paper:#fff9eb;--paper-2:#f2ead6;--card:#fffdf6;--card-2:#fffdf6;--ink:#252b25;--ink-2:#353e35;--muted:#56604d;--line:#d1d0b6;--line-2:#888f76;--ctl:#858b73;--acc:#245532;--acc-ink:#fffdf6;--acc-text:#245532;--acc-soft:#e5edc2;--band:#fff9eb;--band-ink:#252b25;--band-muted:#56604d;--bar:#ffe357;--bar-ink:#323520;--f:Manrope,Arial,sans-serif;--fd:Manrope,Arial,sans-serif;--sh:none}
body{background:var(--paper)}
.demo-bar{background:#ffe357;color:#323520;font-size:11px;padding:6px 15px}.demo-bar span:before{display:none}
.masthead{max-width:1440px;padding:22px 48px;border-bottom:1px solid #dedcc5;position:relative;z-index:5}.brand-name{font-size:25px;font-weight:800;gap:10px;letter-spacing:-1px}.brand-name:before{display:none}.brand-dot{color:#ea4f2c;font-size:43px;line-height:1}.masthead p{font-size:12px}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{display:inline-flex;align-items:center;min-height:46px;color:var(--ink);font-size:14px;text-decoration:none;font-weight:700}.nav-links a:last-child{background:#245532;color:#fffdf6;padding:0 22px;border-radius:99px;gap:24px}
.band{background:#fff9eb;overflow:hidden}.band:before{display:none}.band .wrap{position:relative;display:flex;align-items:center;justify-content:center;max-width:1440px;height:690px;padding:30px 40px 35px;isolation:isolate}.hero-main{position:relative;z-index:2;width:100%;text-align:center;pointer-events:none}.hero-main a{pointer-events:auto}.kind{justify-content:center;font-size:14px;color:#245532;letter-spacing:0;text-transform:none;gap:0}.kind:before{display:none}.hero-main h1{font-size:clamp(64px,7.2vw,104px);font-weight:800;line-height:.98;letter-spacing:-.07em;margin:24px auto;max-width:1000px;color:#245532;text-wrap:balance}.poster-lead{font-size:16px;line-height:1.6;max-width:445px;margin:0 auto 25px;color:#46533c}.hero-action{background:#ea4f2c;color:#fff;padding:16px 25px;box-shadow:none;font-size:15px;min-height:56px;border-radius:99px}.hero-story-link{display:block;width:max-content;margin:8px auto 0;color:#245532;font-size:13px}.hero-help{font-size:11px;margin:10px auto 0;max-width:420px;color:#56604d}.interest-stage{position:absolute;inset:0;width:100%;max-width:none;height:100%;background:none;border-radius:0;z-index:1;pointer-events:none;isolation:auto}.interest-stage:before,.interest-stage:after,.stage-light,.stage-caption{display:none}.interest-object{width:245px;pointer-events:auto;transition:transform .2s ease}.interest-object img{filter:none}.interest-object>span{position:relative;display:table;left:auto;bottom:auto;margin:-23px auto 0;padding:8px 14px;min-height:0;border-radius:99px;background:#ffe357;color:#253b26;box-shadow:none;font-size:13px;white-space:nowrap}.interest-object small{display:inline;font-size:11px;margin-left:7px}.interest-object[aria-pressed=true]>span{background:#245532;color:#fff;box-shadow:none}.object-football{left:1%;top:7%;transform:rotate(-14deg)}.object-dance{right:1%;top:4%;transform:rotate(13deg)}.object-english{left:4%;bottom:1%;transform:rotate(9deg)}.object-chess{right:2%;bottom:2%;transform:rotate(-10deg)}.interest-object[aria-pressed=true]{transform:translateY(-5px) rotate(-6deg)}.interest-object:hover{transform:translateY(-5px) rotate(0)}
.activity-line{display:flex;max-width:none;background:#ffe357;border:0;margin:0;padding:23px 8%;gap:16px;justify-content:space-around}.activity-line p{font-size:16px;font-weight:800;color:#31402d}.activity-line p+p:before{content:'✳';color:#ea4f2c;margin-right:40px;font-size:22px}
.grid{display:grid;max-width:1440px;padding:0 48px 72px;gap:35px 48px;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);grid-template-areas:'story story' 'book next' 'book chat'}
.first-lesson{background:#bfe167;margin:0 -48px 28px;padding:65px 48px 35px;border:0}.lesson-heading{margin-bottom:35px}.lesson-heading h2{font-size:65px;letter-spacing:-.06em;color:#245532}.lesson-heading>p{max-width:390px;font-size:16px;color:#364728}.eyebrow{letter-spacing:0;text-transform:none;font-size:13px;color:#46533c}.lesson-choices{gap:10px}.lesson-choice{background:transparent;border-color:#667d40;color:#284628;font-size:15px}.lesson-choice[aria-pressed=true]{background:#245532;border-color:#245532;color:white}.lesson-body{grid-template-columns:1.1fr 1fr;gap:55px;align-items:center}.lesson-stage,.lesson-stage[data-scene]{background:#ffdf55;border-radius:28px;height:400px}.lesson-figure figcaption,.lesson-feedback,.lesson-disclosure{color:#3e502e}.lesson-copy h3{font-size:42px;color:#245532}.lesson-task{font-size:18px}.lesson-native,.lesson-details{border-color:#8ca54d}.lesson-disclosure{max-width:100%;font-size:11px}.lesson-feedback{min-height:0}.lesson-demo-button,.lesson-book{background:#245532;border-color:#245532;color:white}.lesson-motion{border-color:#667d40}
.card{box-shadow:none}.booking-heading{align-items:center}.booking-kicker{font-size:13px}#book h2{font-size:62px;color:#245532}.trial-ticket{background:#ffe357;border:0;border-radius:0 25px 25px 25px;transform:rotate(3deg);box-shadow:none}.place.available{background:#245532;border-color:#245532;box-shadow:none}.next{background:#fc9bca;color:#38213b;border:0;border-radius:30px 30px 0 30px;padding:28px}.next .eyebrow,.next-svc,.next-time{color:#4a2945}.next .btn{background:#245532;color:white}.next-time{font-size:32px}.svc .box{border-radius:18px;box-shadow:none;background:#c4dbf7}.svc .opt:nth-child(1) input:checked+.box{background:#c4dbf7}.svc .opt:nth-child(2) .box,.svc .opt:nth-child(2) input:checked+.box{background:#ffb5d6}.svc .opt:nth-child(3) .box,.svc .opt:nth-child(3) input:checked+.box{background:#ffe357}.svc .opt:nth-child(4) .box,.svc .opt:nth-child(4) input:checked+.box{background:#cbbbfa}.svc input:checked+.box{box-shadow:inset 0 0 0 3px #245532}.svc input:checked+.box:after{background:#245532}.svc .svc-name,.svc .svc-price{color:#253c2a}.svc .svc-meta{color:#48523e}.svc .svc-name{font-size:25px}.ins .box{background:#fffdf6}.chat{padding:28px;background:#f0e7ce;border:0;border-radius:25px}.chat .log{background:#fff9eb}.btn,.inp{border-radius:99px}.step-h{font-size:22px;font-weight:800}.step{border-color:#cccdb7}.foot{background:#245532;padding:50px 0;color:#e9edcf}.foot .wrap{max-width:1440px;padding:0 48px}.foot .sig{font-size:clamp(32px,4.6vw,66px);max-width:950px;letter-spacing:-.05em;color:#fff9eb}.foot .wrap>p:nth-child(2),.foot .small{color:#e9edcf}.mobile-book{display:none}a:focus-visible,button:focus-visible{outline:3px solid #252b25;outline-offset:4px}
@media(max-width:1100px) and (min-width:700px){.interest-object{width:180px}.hero-main h1{font-size:76px;max-width:800px}.band .wrap{height:660px}.object-football{left:0;top:0}.object-dance{right:0;top:0}.object-english{left:0;bottom:0}.object-chess{right:0;bottom:0}.grid{padding-left:28px;padding-right:28px;gap:28px}.first-lesson{margin-left:-28px;margin-right:-28px;padding-left:28px;padding-right:28px}.lesson-heading h2{font-size:52px}}
@media(max-width:899px){.grid{grid-template-columns:1fr;grid-template-areas:'story' 'next' 'book' 'chat'}.lesson-body{grid-template-columns:1fr}.lesson-heading{display:block}.lesson-heading>p{max-width:540px;margin-top:18px}.lesson-copy{max-width:none}.next{display:block}.next .btn{width:auto}.booking-heading{display:flex}.activity-line p+p:before{margin-right:10px}.masthead p{display:none}}
@media(max-width:699px){.demo-bar{font-size:10px;line-height:1.4;padding:7px 12px}.masthead{padding:10px 20px;gap:12px}.brand-name{font-size:20px;gap:5px}.brand-dot{font-size:30px}.nav-links{gap:0}.nav-links a:first-child{display:none}.nav-links a:last-child{font-size:12px;min-height:42px;padding:0 14px;gap:12px}.band .wrap{height:680px;padding:0 20px;display:flex;align-items:flex-start}.hero-main{padding-top:182px}.kind{font-size:11px}.hero-main h1{font-size:clamp(42px,11.7vw,70px);max-width:550px;line-height:1.02;letter-spacing:-.065em;margin:15px auto 17px}.poster-lead{font-size:13px;line-height:1.55;max-width:305px;margin:0 auto 17px}.hero-action{font-size:13px;min-height:48px;padding:12px 20px}.hero-story-link{font-size:11px;margin:3px auto 0}.hero-help{display:none}.interest-object{width:145px}.interest-object>span{font-size:11px;padding:6px 10px;margin:-17px auto 0;min-height:0}.interest-object small{font-size:10px;margin-left:4px}.object-football{left:3%;top:10px;transform:rotate(-13deg)}.object-dance{right:3%;top:5px;transform:rotate(12deg)}.object-english{left:2%;bottom:8px;transform:rotate(7deg)}.object-chess{right:2%;bottom:8px;transform:rotate(-8deg)}.activity-line{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;padding:17px 20px}.activity-line p{font-size:12px}.activity-line p+p:before{display:none}.grid{padding:0 20px 44px;gap:28px}.first-lesson{margin:0 -20px 4px;padding:37px 20px 25px}.lesson-heading h2{font-size:42px;line-height:1.04}.lesson-heading{margin-bottom:23px}.lesson-heading>p{font-size:14px;max-width:340px}.lesson-choices{gap:7px;margin-bottom:20px}.lesson-choice{font-size:12px;padding:10px 13px;min-height:46px}.lesson-body{gap:24px}.lesson-stage,.lesson-stage[data-scene]{height:275px;border-radius:20px}.lesson-copy h3{font-size:32px}.lesson-task{font-size:16px}.lesson-disclosure{font-size:11px}.lesson-demo-button,.lesson-motion{font-size:11px;padding:10px 12px}.lesson-feedback{font-size:12px}.lesson-native-price{font-size:23px}.booking-heading{display:block}#book h2{font-size:46px}.trial-ticket{transform:none;max-width:none;width:100%;margin-top:20px}.next{padding:24px}.next .btn{width:100%}.next-time{font-size:28px}.svc .box{min-height:224px}.svc .svc-name{font-size:20px}.svc .svc-meta{font-size:12px}.svc .svc-price{font-size:13px}.chat{padding:24px 18px}.foot{padding:35px 0 115px}.foot .wrap{padding:0 20px}.foot .sig{font-size:39px}.foot .small{font-size:12px}.mobile-book{position:fixed;z-index:20;bottom:12px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:14px 22px;background:#ea4f2c;color:#fff;font-size:14px;font-weight:800;border-radius:99px;text-decoration:none;box-shadow:0 5px 0 #b83218,0 0 0 6px #fff9eb;bottom:max(12px,env(safe-area-inset-bottom))}#book,#first-lesson{scroll-margin-top:20px}html{scroll-padding-bottom:100px}body{padding-bottom:0}.done-head h3{font-size:29px}.done-list div{grid-template-columns:95px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Reset the inherited column axis: mobile objects frame, rather than cross, the copy. */
.band .wrap{flex-direction:row}

/* T20b: a named centre, a three-step introduction and a compact booking sidebar. */
.brand-name{display:flex;align-items:center;gap:10px;letter-spacing:-.7px}
.brand-mark{flex:none;width:40px;height:40px}
.brand-name small{display:block;font-size:10px;line-height:1.5;font-weight:600;letter-spacing:0;color:#56604d;margin-top:2px}
.next{border-radius:30px}
.grid{grid-template-rows:auto auto;grid-template-areas:'story story' 'book side'}
.booking-side{grid-area:side;display:flex;flex-direction:column;gap:24px;min-width:0;align-self:start}
.booking-side .next,.booking-side .chat{width:100%;margin:0;position:static}
.chat .log{min-height:0;max-height:520px}
.chat .log>.msg:only-child{max-width:100%;width:100%}
.lesson-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0 0 32px;padding:0;border-top:1px solid #8ca54d;border-bottom:1px solid #8ca54d;gap:24px}
.lesson-route li{display:flex;align-items:flex-start;gap:14px;padding:20px 0}
.lesson-route li>span{font-size:28px;line-height:1.2;font-weight:800;letter-spacing:-1px;color:#245532}
.lesson-route strong{font-size:17px;color:#245532}
.lesson-route p{font-size:13px;line-height:1.5;margin:4px 0 0;color:#364728}
.lesson-body{grid-template-areas:'copy scene';grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.lesson-figure{grid-area:scene}.lesson-copy{grid-area:copy;padding-top:20px}
@media(max-width:899px){
.grid{grid-template-areas:'story' 'next' 'book' 'chat'}
.booking-side{display:contents}
.lesson-body{grid-template-columns:1fr;grid-template-areas:'scene' 'copy'}
.lesson-copy{padding-top:0}
.lesson-route{gap:12px}.lesson-route li{gap:8px}.lesson-route strong{font-size:14px}.lesson-route p{font-size:12px}
}
@media(max-width:599px){
.brand-mark{width:32px;height:32px}.brand-name{font-size:22px;gap:8px}.brand-name small{font-size:8px}
.lesson-route{grid-template-columns:1fr;gap:0;margin-bottom:24px}
.lesson-route li{padding:13px 0;gap:16px;align-items:center}.lesson-route li+li{border-top:1px dashed #8ca54d}
.lesson-route li>span{font-size:24px}.lesson-route strong{font-size:16px}.lesson-route p{font-size:12px;margin-top:1px}
.chat .log{max-height:560px}
}
/* A completed booking needs the confirmation and its own restart control. */
body:has(#done:not([hidden])) .mobile-book{display:none}
@media(max-width:599px){.done-list div{grid-template-columns:104px minmax(0,1fr)}}

/* T20c: keep the strip on one baseline; ornaments do not change line boxes. */
.activity-line{align-items:baseline}
.activity-line p{position:relative;line-height:1.5}
.activity-line p+p:before{position:absolute;right:calc(100% + 40px);top:50%;transform:translateY(-50%);margin:0;line-height:1}
.done-head h3{font-family:Manrope,Arial,sans-serif;font-weight:800}
.mobile-book[hidden]{display:none}
@media(max-width:699px){.activity-line{gap:4px 12px}.activity-line p{font-size:11px;white-space:nowrap}}

/* T20d: align navigation, route and empty states; use the chess-board object everywhere. */
@media(min-width:900px){.masthead{justify-content:flex-start}.masthead p{margin:0}.masthead .nav-links{margin-left:auto}}
.lesson-route li{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:baseline}
.lesson-route li>span{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1.5}
.lesson-route li>div{min-width:0}
.opts>.empty{grid-column:1 / -1;max-width:none;width:100%}
.tbtn .assistant-line{display:block}.tbtn .assistant-line:first-child{font-weight:800}.tbtn .assistant-line+span{font-size:12px;font-weight:500;margin-top:3px}
.svc .opt:nth-child(4) .box:before{background-image:url('assets/chess-board.svg')}
@media(max-width:599px){.lesson-route li{grid-template-columns:30px minmax(0,1fr);column-gap:16px;align-items:baseline}.lesson-route li>span{font-size:22px}.tbtn{width:100%}}

/* T20e: equal group cards and separate confirmation rows. */
#log .msg.bot:has(.times){width:100%;max-width:100%;box-sizing:border-box}
#log .times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#log .tbtn{width:100%;min-width:0;padding:10px 6px;white-space:normal;overflow-wrap:normal;line-height:1.4}
.done-list dt{text-transform:none}
