:root{--ink:#453b45;--muted:#796e79;--pink:#f4a8bd;--pink-dark:#d66d91;--blush:#fff0f4;--cream:#fffaf2;--yellow:#f9d98d;--lilac:#e8ddf7;--green:#cbdcc8;--line:#f0e5e7;--white:#fff;--shadow:0 18px 55px rgba(104,69,86,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--ink);background:#fffdfb;font-family:"DM Sans",sans-serif;line-height:1.65}h1,h2,h3,.brand{font-family:"Nunito",sans-serif}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.3rem,6vw,5.7rem);line-height:1.02;letter-spacing:-.055em;margin:20px 0}h1 span,h2 em{color:var(--pink-dark);font-style:normal}h2{font-size:clamp(2.35rem,4vw,3.5rem);line-height:1.1;letter-spacing:-.04em;margin:14px 0 20px}h3{line-height:1.2}a{color:inherit;text-decoration:none}.announcement{text-align:center;background:#fbe0e8;color:#8c5369;font-size:.78rem;font-weight:700;padding:7px 12px;letter-spacing:.04em}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100% - 1180px)/2),5.5%);background:rgba(255,253,251,.94);position:sticky;top:0;z-index:20;border-bottom:1px solid #f8eef0;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;background:var(--blush);color:var(--pink-dark);border:1px solid #f8d5df;border-radius:16px;width:47px;height:47px;font-size:1rem;font-weight:900}.brand strong{display:block;font-size:1.25rem;line-height:1.1}.brand small{display:block;font-family:"DM Sans",sans-serif;font-size:.57rem;letter-spacing:.19em;font-weight:700;color:#9b8a95}.nav{display:flex;align-items:center;gap:30px;font-size:.88rem;font-weight:700}.nav>a:not(.nav-cta):hover,.footer a:hover{color:var(--pink-dark)}.nav-cta{background:var(--ink);color:white;padding:12px 18px;border-radius:99px}.nav-cta span{color:#f5bdce;margin-left:6px}.menu-toggle{display:none;border:0;background:none;font-size:1.5rem;color:var(--ink)}.hero{max-width:1180px;margin:auto;min-height:610px;padding:75px 5.5% 65px;display:grid;grid-template-columns:1.03fr .97fr;gap:25px;align-items:center}.eyebrow,.section-label{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:#a66c82}.sparkle{color:#e5a4b9;font-size:1.1rem;margin-right:7px}.hero-text{max-width:490px;font-size:1.05rem;color:var(--muted);line-height:1.85}.hero-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap;margin-top:30px}.button{border:0;border-radius:999px;padding:14px 23px;display:inline-flex;justify-content:center;align-items:center;gap:13px;font:800 .9rem "Nunito",sans-serif;cursor:pointer;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 9px 22px #d9b8c555}.primary{background:var(--pink-dark);color:white}.dark{background:var(--ink);color:white}.outline{background:white;border:1px solid #eadce1;color:var(--ink)}.text-link{font-size:.83rem;color:var(--muted);font-weight:600}.text-link span{display:block;color:var(--pink-dark);font-weight:800}.hero-note{display:flex;gap:12px;align-items:center;margin-top:44px;font-size:.82rem;color:var(--muted)}.hero-note strong{color:var(--ink)}.mini-flower{font-size:1.8rem;color:var(--pink-dark)}.hero-art{height:450px;position:relative;border-radius:46% 46% 35% 35%;background:#fff1f3;overflow:hidden;isolation:isolate}.sun-disc{position:absolute;width:240px;height:240px;border-radius:50%;background:#f9d98d;top:46px;right:65px;opacity:.8}.cloud{position:absolute;color:white;font-size:5rem;z-index:1}.cloud-one{top:35px;left:32px}.cloud-two{top:92px;right:24px;font-size:3rem}.sakura{position:absolute;color:#e9a0b7;font-size:2.2rem}.sakura-one{top:115px;left:60px}.sakura-two{bottom:65px;right:40px;font-size:3rem}.sakura-three{top:35px;right:135px;font-size:1.5rem}.book-card{position:absolute;width:210px;height:275px;left:calc(50% - 90px);top:95px;background:#fffdf8;border-radius:9px 20px 20px 9px;box-shadow:12px 16px 0 #e9b6c7,0 25px 35px #b67e9440;transform:rotate(-7deg);padding:20px;border-left:7px solid #f4d1dc;text-align:center;z-index:2}.book-top{font-size:.85rem;color:#9f617b;font-weight:800}.book-kana{font:900 2.1rem/1.45 "Nunito",sans-serif;color:#e29ab1;margin:15px 0}.book-caption{font-size:.55rem;letter-spacing:.18em;color:#a99aa2;font-weight:800}.mascot{position:absolute;z-index:4;bottom:47px;left:calc(50% + 58px);width:112px;height:103px;background:#fffdf9;border-radius:52% 48% 44% 56%;box-shadow:0 12px 24px #b67e9430;transform:rotate(8deg)}.bird-face{position:absolute;top:26px;left:25px;width:62px;height:45px;display:flex;justify-content:space-evenly;align-items:center}.eye{font-size:1.4rem}.beak{position:absolute;top:24px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #e9ae58}.cheek{position:absolute;width:13px;height:7px;border-radius:50%;background:#f3b3c5;top:34px}.cheek.left{left:-4px}.cheek.right{right:-4px}.bird-wing{position:absolute;right:-12px;top:43px;width:35px;height:27px;border-radius:50%;background:#f2d5df;transform:rotate(-25deg)}.floating-tag{position:absolute;z-index:5;background:white;border-radius:15px;padding:9px 14px;box-shadow:var(--shadow);font-size:.76rem;font-weight:800;color:#a96c83}.tag-one{top:90px;left:25px;transform:rotate(-7deg)}.tag-two{bottom:58px;right:30px;transform:rotate(6deg);color:#8e7b47}.ticker{background:#f9e6ec;color:#a5677f;text-align:center;padding:13px;font-size:.8rem;font-weight:800;letter-spacing:.06em}.ticker span{margin:0 18px}.section{padding:100px max(calc((100% - 1080px)/2),6%)}.intro{text-align:center;background:var(--cream)}.section-lede{max-width:610px;margin:0 auto;color:var(--muted);line-height:1.85}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:55px;text-align:left}.value-card{background:white;border:1px solid #f2e7e8;border-radius:20px;padding:26px;box-shadow:0 9px 24px #a7788510}.icon-bubble{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;font-size:1.5rem;font-weight:900;margin-bottom:20px}.pink{background:#ffe4ec;color:#d47797}.yellow{background:#fff0c9;color:#b38c35}.lilac{background:#eee4fb;color:#9b83c1}.value-card h3{font-size:1.15rem;margin-bottom:10px}.value-card p{font-size:.9rem;color:var(--muted);margin-bottom:0}.lessons-section{background:#fffdfb}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:42px}.section-heading>p{max-width:310px;color:var(--muted);font-size:.94rem}.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.lesson-card{border:1px solid var(--line);border-radius:25px;overflow:hidden;background:white;box-shadow:var(--shadow)}.lesson-art{height:220px;position:relative;overflow:hidden;display:grid;place-items:center}.foundation .lesson-art{background:#f9e2e9}.travel .lesson-art{background:#dce9df}.art-stamp{position:absolute;left:22px;top:20px;background:#ffffffa8;border-radius:99px;padding:5px 12px;font-size:.68rem;font-weight:900;letter-spacing:.1em}.big-kana{font:900 5.6rem/.9 "Nunito",sans-serif;color:#d987a4;text-align:center;transform:rotate(-5deg);text-shadow:3px 4px white}.big-kana small{font-size:1.3rem;letter-spacing:.1em}.art-flower{position:absolute;right:24px;bottom:13px;font-size:3rem;color:#fff9f0}.travel-sun{position:absolute;width:110px;height:110px;border-radius:50%;background:#f8d58b;top:23px;right:70px}.travel-mountain{position:absolute;bottom:0;width:100%;height:105px;background:#8da994;clip-path:polygon(0 100%,0 70%,22% 26%,38% 60%,60% 10%,83% 68%,100% 43%,100% 100%)}.travel-sign{z-index:1;position:relative;margin-top:42px;background:#fff8e8;border:3px solid #c1a575;border-radius:6px;padding:10px 20px;font-weight:900;color:#6f846f;transform:rotate(4deg)}.lesson-content{padding:27px 30px 30px}.pill{display:inline-block;border-radius:99px;padding:5px 10px;font-size:.62rem;font-weight:900;letter-spacing:.08em}.pink-pill{background:#ffedf2;color:#b25d7a}.yellow-pill{background:#fff3d3;color:#9c7b34}.lesson-content h3{font-size:1.55rem;margin:14px 0 10px}.lesson-content p,.lesson-content li{font-size:.9rem;color:var(--muted)}.lesson-content ul{padding-left:20px;margin:18px 0 23px}.lesson-content li{padding:3px 0}.card-link{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;font-weight:800;font-size:.9rem;color:#bb6c89}.disclaimer{margin-top:24px;font-size:.75rem;color:#9c9099}.process{background:#f8edf3;display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.process-copy>p{color:var(--muted);max-width:350px;margin:0 0 26px}.steps{display:grid;gap:18px}.step{display:flex;gap:20px;background:#fffdfb;border-radius:20px;padding:23px;box-shadow:0 6px 20px #8f627410}.step-num{flex:0 0 48px;height:48px;display:grid;place-items:center;background:#ffe2eb;color:#bc6f8b;border-radius:15px;font-weight:900}.step h3{margin:2px 0 6px;font-size:1.08rem}.step p{margin:0;color:var(--muted);font-size:.88rem}.quiz-section{display:grid;grid-template-columns:.75fr 1.25fr;gap:45px;align-items:center;background:#fffaf2}.quiz-decoration{grid-column:1;grid-row:1;background:#f8df9b;border-radius:24px;padding:25px;color:#99783c;font:900 1.5rem/1.6 "Nunito",sans-serif;transform:rotate(-3deg);text-align:center;max-width:240px;margin:0 auto 25px}.quiz-copy{grid-column:1;grid-row:2}.quiz-copy p{color:var(--muted)}.quiz-card{grid-column:2;grid-row:1 / span 2;background:white;border:1px solid var(--line);border-radius:25px;padding:30px;box-shadow:var(--shadow)}.quiz-progress{font-size:.68rem;font-weight:900;letter-spacing:.12em;color:#a66c82}.progress-track{height:5px;background:#f4e9ed;border-radius:10px;margin:12px 0 25px;overflow:hidden}.progress-track div{height:100%;width:25%;background:var(--pink-dark);transition:width .2s}.quiz-question{font:800 1.25rem "Nunito",sans-serif;margin-bottom:18px}.quiz-options{display:grid;gap:10px}.quiz-option{display:flex;gap:12px;align-items:center;border:1px solid #eee3e7;padding:12px 15px;border-radius:13px;cursor:pointer;font-size:.9rem}.quiz-option:has(input:checked){background:#fff0f4;border-color:#e9a0b7}.quiz-option input{accent-color:#d66d91}.quiz-controls{display:flex;justify-content:space-between;margin-top:24px}.quiz-result{padding:20px;background:#fff1f5;border-radius:15px;margin-top:20px}.quiz-result h3{margin-bottom:8px}.quiz-result p{margin-bottom:0;color:var(--muted)}.apply-section{background:#fff3f5;display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:start}.apply-copy{position:sticky;top:120px}.apply-copy>p{color:var(--muted)}.promise{display:flex;gap:14px;margin-top:24px}.promise>span{font-size:1.5rem;color:#c56e8c}.promise strong{font-family:"Nunito",sans-serif}.promise p{font-size:.85rem;color:var(--muted);margin:3px 0 0}.application-form{background:white;border:1px solid #f0dfe5;padding:32px;border-radius:24px;box-shadow:var(--shadow)}.application-form h3{font-size:1.55rem;margin-bottom:4px}.form-note{font-size:.74rem;color:#9a8d96}.application-form label,.contact-form label{display:block;font-size:.8rem;font-weight:800;margin-bottom:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}input:not([type=checkbox]),select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #eadde2;border-radius:11px;padding:12px 13px;background:#fffdfd;font:500 .87rem "DM Sans",sans-serif;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#d88ba5;box-shadow:0 0 0 3px #f9e4eb}textarea{resize:vertical}.consent{display:flex!important;align-items:flex-start;gap:9px;font-weight:500!important;color:var(--muted);line-height:1.5}.consent input{accent-color:#d66d91;margin-top:4px}.full{width:100%}.form-message{padding:13px;margin-top:15px;background:#f1f8ef;border-radius:10px;font-size:.86rem}.booking-section{background:#f7e8d7;padding-top:55px;padding-bottom:55px}.booking-inner{display:grid;grid-template-columns:70px 1fr auto;gap:25px;align-items:center}.booking-icon{width:65px;height:65px;border-radius:22px;background:#fff8ed;display:grid;place-items:center;font-size:1.8rem;color:#bc8b55}.booking-inner h2{font-size:2rem;margin:8px 0}.booking-inner p{max-width:620px;color:#7e7067;margin:0;font-size:.9rem}.booking-actions{display:grid;justify-items:start;gap:12px}.faq-section{background:#fffdfb}.faq-list{max-width:800px;margin:35px auto 0}.faq-list details{border-bottom:1px solid var(--line);padding:19px 0}.faq-list summary{cursor:pointer;font-family:"Nunito",sans-serif;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";font-size:1.3rem;color:#c97894}.faq-list details[open] summary:after{content:"−"}.faq-list details p{padding:14px 35px 0 0;color:var(--muted);font-size:.9rem;margin:0}.contact-section{background:#f8edf3;display:grid;grid-template-columns:.7fr 1fr 1fr;gap:35px;align-items:center}.contact-bubble{background:#fffdf9;border-radius:50%;width:175px;height:175px;display:grid;place-items:center;text-align:center;padding:25px;color:#bc6f8b;font-family:"Nunito",sans-serif;font-weight:900;transform:rotate(-7deg);box-shadow:var(--shadow)}.contact-section h2{font-size:2.5rem}.contact-section p{color:var(--muted);font-size:.9rem}.contact-form{background:white;padding:25px;border-radius:20px}.contact-form label{margin-bottom:12px}.contact-form .button{margin-bottom:8px}.footer{padding:35px max(calc((100% - 1080px)/2),6%);display:flex;align-items:center;gap:25px;flex-wrap:wrap;background:#fffaf2}.footer>p{margin:0;color:var(--muted);font-size:.8rem}.footer>p span{color:#d88ba5}.footer>div{margin-left:auto;display:flex;gap:18px;font-size:.8rem;font-weight:700}.copyright{width:100%;font-size:.68rem;color:#a79aa3}.menu-toggle{cursor:pointer}
@media(max-width:850px){.site-header{padding:0 5%;height:74px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:73px;left:0;right:0;background:#fffdfb;padding:22px 6%;box-shadow:0 12px 20px #8c6c7814;flex-direction:column;align-items:stretch;gap:18px}.nav.open{display:flex}.nav-cta{text-align:center}.hero{grid-template-columns:1fr;padding-top:60px}.hero-copy{max-width:650px}.hero-art{max-width:520px;width:100%;margin:15px auto 0;height:390px}.section{padding:75px 6%}.process{grid-template-columns:1fr;gap:35px}.quiz-section{grid-template-columns:1fr;gap:25px}.quiz-decoration,.quiz-copy,.quiz-card{grid-column:1;grid-row:auto}.quiz-decoration{margin:0 auto;max-width:100%;width:100%;border-radius:18px;padding:12px}.quiz-copy{text-align:center}.quiz-copy br{display:none}.apply-section{grid-template-columns:1fr;gap:30px}.apply-copy{position:static}.booking-inner{grid-template-columns:60px 1fr}.booking-actions{grid-column:2}.contact-section{grid-template-columns:1fr 1fr}.contact-bubble{grid-column:1;grid-row:1}.contact-section>div:nth-child(2){grid-column:2;grid-row:1}.contact-form{grid-column:1/-1}.footer{padding:30px 6%}}@media(max-width:600px){h1{font-size:3.5rem}.hero{padding-top:48px}.hero-actions{align-items:flex-start;flex-direction:column;gap:17px}.hero-art{height:330px}.sun-disc{width:190px;height:190px;right:35px}.book-card{transform:scale(.83) rotate(-7deg);transform-origin:top left;left:calc(50% - 100px);top:75px}.mascot{transform:scale(.8) rotate(8deg);transform-origin:bottom left;bottom:28px;left:calc(50% + 36px)}.tag-one{top:55px;left:12px}.tag-two{bottom:25px;right:10px}.ticker span{margin:0 6px}.values-grid,.lesson-grid{grid-template-columns:1fr}.section{padding:65px 5%}.section-heading{display:block}.section-heading>p{margin-top:10px}.lesson-art{height:190px}.lesson-content{padding:24px}.field-row{grid-template-columns:1fr;gap:0}.application-form{padding:23px}.booking-inner{grid-template-columns:1fr}.booking-icon{width:55px;height:55px}.booking-actions{grid-column:1}.contact-section{grid-template-columns:1fr}.contact-bubble{grid-column:1;grid-row:auto;width:130px;height:130px;margin:auto}.contact-section>div:nth-child(2){grid-column:1;grid-row:auto;text-align:center}.contact-form{grid-column:1}.footer{gap:18px}.footer>div{margin-left:0;width:100%}.step{padding:18px;gap:13px}.step-num{flex-basis:42px;height:42px}}

/* Accessible spam-trap field used by Netlify Forms. */
.form-honeypot { position: absolute !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; height: 1px !important; width: 1px !important; margin: -1px !important; padding: 0 !important; border: 0 !important; }
