@import url('/palette.css');
@font-face{font-family:Nunito;src:url('/assets/nunito_600.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Nunito;src:url('/assets/nunito_800.ttf') format('truetype');font-weight:700 800;font-display:swap}
@font-face{font-family:Nunito;src:url('/assets/nunito_900.ttf') format('truetype');font-weight:900;font-display:swap}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--white);font:600 17px/1.65 Nunito,system-ui,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ink);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1040px,calc(100% - 64px));margin-inline:auto}.skip{position:absolute;top:-100px;left:20px;z-index:100;background:white;padding:12px 20px}.skip:focus{top:10px}.site-header{background:white}.header-inner{height:100px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--green);font-weight:900;font-size:40px;line-height:1;letter-spacing:-1.5px}.brand>img{width:45px;height:45px}.language{display:flex;align-items:center;gap:15px;font-size:12px;letter-spacing:.7px;text-transform:uppercase;font-weight:800}.language b{color:var(--blue);border:2px solid var(--rule);border-bottom-width:4px;border-radius:10px;padding:7px 10px}.language:hover b{transform:translateY(1px)}
.hero{display:grid;grid-template-columns:1fr 1.08fr;gap:60px;align-items:center;min-height:550px;padding-block:65px 80px}.hero-art{width:100%;max-width:470px;justify-self:center}.hero-copy{text-align:center;max-width:510px}.hero h1{font-size:42px;line-height:1.25;letter-spacing:-.9px;font-weight:800;margin:0 0 21px}.hero-description{font-size:18px;line-height:1.7;margin:0 auto 27px;max-width:440px}.hero-actions{display:grid;gap:14px;max-width:340px;margin:auto}.button{display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:900;letter-spacing:.7px;text-transform:uppercase;border:2px solid var(--rule);border-bottom-width:5px;padding:13px 22px;border-radius:15px;min-height:54px;line-height:1.3;transition:transform .15s}.button-green{background:var(--green);color:var(--white);border-color:var(--green);box-shadow:0 3px 0 var(--rule)}.button-outline{background:var(--white);color:var(--blue)}.button:hover{transform:translateY(2px)}.button:active{transform:translateY(4px)}.release-note{font-size:12px;margin:23px 0 0}.facts-bar{border-block:2px solid var(--rule)}.facts{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:23px}.facts>div{display:flex;align-items:center;gap:13px}.facts strong{font-size:27px;line-height:1.2;font-weight:900;color:var(--ink);white-space:nowrap}.facts span{font-size:13px;line-height:1.4;font-weight:800;letter-spacing:.2px}
h2{font-size:46px;font-weight:900;line-height:1.18;letter-spacing:-1px;color:var(--green);margin:0 0 26px}.story-spread{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-block:80px}.story-copy>p{font-size:17px;line-height:1.8;margin:0 0 24px}.story-copy p:last-child{margin-bottom:0}.story-copy h3{font-size:21px;font-weight:800;line-height:1.4;margin:0 0 10px}.story-copy .placement p,.story-copy .habit-note p{font-size:16px;line-height:1.8;margin:0}.placement,.habit-note{margin-top:30px}.course-levels{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:26px 0 0}.level{padding:9px 14px;border:2px solid var(--rule);border-bottom-width:4px;border-radius:12px}.level h3{font-size:13px;margin:0;line-height:1.4}.level-number,.level p{display:none}.review-tracks{display:grid;grid-template-columns:1fr 1fr;list-style:none;padding:0;margin:28px 0;gap:21px 12px}.track{display:flex;gap:10px;align-items:start}.track-mark{width:11px;height:11px;flex-shrink:0;border-radius:3px;display:block;margin-top:6px;background:var(--blue)}.track-purple .track-mark{background:var(--purple)}.track-orange .track-mark{background:var(--orange)}.track-green .track-mark{background:var(--green)}.track strong{display:block;font-size:14px;font-weight:800;line-height:1.5;margin-bottom:4px}.track small{display:block;font-size:12px;line-height:1.6}
figure{margin:0}.media-stage{position:relative;overflow:hidden;border-radius:27px;padding:0;background:transparent}.art-crop{position:relative;overflow:hidden;border-radius:27px;isolation:isolate}.art-crop img{position:absolute;top:0;left:0;width:100%;max-width:none;height:auto}.art-store{aspect-ratio:1206/1900}.art-store img{transform:translateY(-27%)}.art-map{aspect-ratio:1206/1680}.enlarge{position:absolute;right:12px;bottom:12px;width:35px;height:35px;display:grid;place-items:center;border:0;border-radius:10px;background:white;color:var(--ink);font-size:23px;font-weight:900}.enlarge:hover{transform:scale(1.06)}figcaption{text-align:center;font-size:11px;margin:14px 0 0;line-height:1.6}.review-product,.course-product,.map-product,.lesson-product{width:100%;max-width:355px;justify-self:center}.lesson-art{position:relative;width:100%;aspect-ratio:1206/1950;overflow:hidden;border-radius:27px}.lesson-art img{position:absolute;left:0;top:0;width:100%;height:auto;transform:translateY(-22%)}.lesson-steps{display:flex;gap:7px;margin-top:26px;flex-wrap:wrap}.lesson-step{padding:10px 12px;border:2px solid var(--rule);border-bottom-width:4px;border-radius:11px;background:white;text-align:center;font-size:11px;line-height:1.4;min-height:45px}.lesson-step strong{font-weight:800}.lesson-step[aria-selected=true]{border-color:var(--blue);background:var(--blue);color:white}.step-number,.step-description,.step-arrow{display:none}.story-copy .lesson-description{font-size:14px;margin:16px 0 0;min-height:75px;line-height:1.75}
.film-section{text-align:center;padding-block:80px 100px;border-top:2px solid var(--rule)}.film-section h2{margin-bottom:14px}.film-section>p{margin:0 0 35px;font-size:16px}.film-player{position:relative;border-radius:24px;overflow:hidden;background:var(--blue)}.film-player video{display:block;width:100%;height:auto;aspect-ratio:3840/1646}.film-start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:17px;align-items:center;border:2px solid var(--rule);border-bottom-width:5px;background:white;padding:16px 23px;border-radius:15px;font-size:13px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.film-start>span:first-child{font-size:18px}.film-controls{position:absolute;left:14px;right:14px;bottom:14px;background:white;border-radius:12px;padding:8px 12px;display:flex;gap:16px;align-items:center}.film-controls button{background:none;border:0;font-size:12px;font-weight:800;white-space:nowrap;padding:7px 5px}.film-controls progress{flex:1;min-width:40px;height:5px;accent-color:var(--blue)}.film-status{position:absolute;left:14px;right:14px;bottom:68px;margin:0;background:white;font-size:12px;padding:8px;border-radius:8px}.film-status:empty{display:none}.release-section{background:var(--blue);overflow:hidden}.release-inner{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:70px;padding-block:75px}.release-content h2{color:white;font-size:49px;margin-bottom:22px}.release-content>p{font-size:17px;line-height:1.8;margin:0;max-width:420px}.release-inner>img{width:420px}.store-badges{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.store-badges>span{display:flex;gap:19px;align-items:center;font-size:17px;border:2px solid var(--rule);border-bottom-width:5px;background:white;border-radius:14px;padding:12px 19px}.store-badges b{font-weight:800}.store-badges small{font-size:11px}.footer{background:var(--green)}.footer-inner{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-block:55px 35px}.footer .brand{color:white;font-size:40px}.footer-brand>p{font-size:13px;line-height:1.7;margin:17px 0 0}.footer nav{display:flex;flex-direction:column;gap:10px;justify-self:end;font-size:14px;font-weight:800}.footer a:hover{text-decoration:underline;text-underline-offset:4px}.copyright{grid-column:1/-1;font-size:12px}.footer-brand .brand:hover{text-decoration:none}dialog{border:0;border-radius:18px;padding:20px;max-width:min(90vw,720px);max-height:92vh;background:white;color:var(--ink);overflow:auto}dialog::backdrop{background:rgba(75,75,75,.55)}dialog img{width:100%;height:auto}.dialog-close{position:sticky;top:0;float:right;z-index:2;display:grid;place-items:center;width:40px;height:40px;font-size:28px;background:white;border:2px solid var(--rule);border-radius:12px}
@media(max-width:1000px){.hero{gap:40px;padding-block:55px}.hero h1{font-size:37px}.story-spread{gap:60px}.story-copy h2{font-size:39px}.review-tracks{grid-template-columns:1fr}.release-inner{gap:40px}.release-content h2{font-size:42px}}
@media(max-width:720px){.wrap{width:calc(100% - 40px)}.header-inner{height:78px}.brand{font-size:33px;gap:8px}.brand>img{width:38px;height:38px}.language{gap:9px}.language>span:first-child{display:none}.language b{font-size:11px}.hero{grid-template-columns:1fr;gap:24px;padding-block:22px 40px;min-height:0}.hero-art{max-width:275px}.hero-copy{justify-self:center;max-width:490px}.hero h1{font-size:33px;line-height:1.2;margin-bottom:16px;letter-spacing:-.5px}.hero-description{font-size:16px;line-height:1.7;margin-bottom:23px;max-width:440px}.hero-actions{max-width:330px}.release-note{margin-top:20px;font-size:11px}.facts{padding-block:20px;gap:14px}.facts>div{display:block;text-align:center;flex:1}.facts strong{font-size:23px;display:block;margin-bottom:6px}.facts span{font-size:10px;display:block}.story-spread{grid-template-columns:1fr;gap:30px;text-align:center;padding-block:55px;max-width:530px}.story-copy h2{font-size:36px;line-height:1.2;margin-bottom:23px}.story-copy>p{font-size:16px;line-height:1.8}.lesson-steps{justify-content:center;margin-top:23px}.lesson-step{font-size:11px}.story-copy .lesson-description{min-height:0;max-width:390px;margin-inline:auto}.review-product,.map-product{grid-row:2}.review-product,.course-product,.map-product,.lesson-product{max-width:315px}.review-tracks{grid-template-columns:1fr 1fr;text-align:left;max-width:370px;margin-inline:auto;gap:22px 18px}.track strong{font-size:13px}.track small{font-size:11px}.course-levels{justify-content:center}.placement,.habit-note{margin-top:27px}.story-copy h3{font-size:19px}.story-copy .placement p,.story-copy .habit-note p{font-size:15px}.film-section{padding-block:55px 60px}.film-section h2{font-size:34px}.film-section>p{font-size:14px;margin-bottom:26px}.film-player{border-radius:15px}.film-start{font-size:11px;padding:11px 15px;gap:11px;border-radius:12px}.film-controls{left:9px;right:9px;bottom:9px;padding:5px 8px;gap:11px;border-radius:9px}.film-controls button{font-size:10px}.release-inner{grid-template-columns:1fr;gap:30px;padding-block:50px 25px;text-align:center}.release-content h2{font-size:39px}.release-content>p{font-size:16px;margin:auto}.store-badges{justify-content:center;gap:10px;margin-top:25px}.store-badges>span{font-size:15px;padding:10px 15px;gap:13px}.store-badges small{font-size:10px}.release-inner>img{max-width:280px;justify-self:center}.footer-inner{gap:28px;padding-block:40px 25px}.footer .brand{font-size:33px}.footer-brand>p{font-size:12px;max-width:190px}.footer nav{font-size:12px;gap:12px}.copyright{font-size:11px}}
@media(max-width:380px){.wrap{width:calc(100% - 32px)}.hero-art{max-width:240px}.hero h1{font-size:30px}.hero-description{font-size:15px}.story-copy h2{font-size:33px}.lesson-step{font-size:10px;padding-inline:9px}.review-tracks{gap:18px 10px}.store-badges{gap:9px}.store-badges>span{padding-inline:12px;font-size:14px;gap:10px}.footer-inner{grid-template-columns:1fr}.footer nav{justify-self:start}.copyright{grid-column:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button:hover,.button:active,.enlarge:hover,.language:hover b{transform:none}}
/* App surfaces: hard lips, named colour pairs, press motion. */
@font-face{font-family:HaolaHan;src:url('/assets/han_resource_han_rounded_800.ttf') format('truetype');font-weight:800;font-display:swap}
.button{height:54px;min-height:54px;border:0;border-radius:16px;padding:13px 22px;transition:transform 130ms,box-shadow 130ms}
.button-green{background:var(--ui-green);color:white;box-shadow:0 4px 0 var(--ui-green-lip)}
.button-outline{border:2px solid var(--rule);background:white;color:var(--ink);box-shadow:0 4px 0 var(--rule)}
.button:hover{transform:none}.button:active{transform:translateY(4px);box-shadow:0 0 0 var(--ui-green-lip);transition-duration:70ms}
.story-copy h2{color:var(--ink)}.story-copy>p{line-height:1.55}.story-copy .placement p,.story-copy .habit-note p{line-height:1.55}
.facts-bar{border-block:2px solid var(--rule)}.facts{gap:20px}.facts>div{flex:1;border:2px solid var(--card-ring);border-radius:14px;padding:13px 17px;justify-content:center}.facts strong{font-size:26px}
.lesson-step{border:2px solid var(--rule);border-radius:16px;box-shadow:0 4px 0 var(--rule);padding:10px 12px;transition:transform 130ms,box-shadow 130ms}
.lesson-step[aria-selected=true]{background:var(--ui-blue-wash);border-color:var(--ui-blue-lip);color:var(--ink);box-shadow:0 4px 0 var(--ui-blue-lip)}
.lesson-step:active{transform:translateY(4px);box-shadow:none;transition-duration:70ms}
.level{border:2px solid var(--card-ring);border-radius:14px;padding:9px 14px;background:white}.level h3{font-size:13px}
.review-tracks{gap:14px}.track{border:2px solid var(--card-ring);border-radius:18px;padding:13px 11px;gap:10px;align-items:center}.track-mark{width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;margin-top:0;border-radius:9px;background:var(--ui-blue);box-shadow:0 2px 0 var(--ui-blue-lip);color:white;font:800 18px/1 HaolaHan,sans-serif}
.track-purple .track-mark{background:var(--ui-purple);box-shadow:0 2px 0 var(--ui-purple-lip)}.track-gold .track-mark{background:var(--ui-gold);box-shadow:0 2px 0 var(--ui-gold-lip)}.track-green .track-mark{background:var(--ui-green);box-shadow:0 2px 0 var(--ui-green-lip)}
.track strong{font-size:12px;line-height:1.35;margin-bottom:5px}.track small{font-size:10px;line-height:1.5}
@media(max-width:1000px){.review-tracks{grid-template-columns:1fr 1fr}.track{padding:12px 9px}.track-mark{width:24px;height:24px;font-size:17px}}
@media(max-width:720px){.facts{gap:10px;padding-block:16px}.facts>div{padding:11px 5px}.facts strong{font-size:21px}.facts span{font-size:10px}.review-tracks{gap:12px}.track{padding:12px 9px}.story-copy>p{line-height:1.6}.story-copy h2{font-size:34px}.hero-description{line-height:1.55}}
