/* Theme tokens and the second release's booking/photo/cube components. */
:root{--surface:#fff;--surface-soft:#f0f3fa;--header-bg:#fafbf8f5;--section-soft:#edf0e9;--focus:#e5ebff;--field-bg:#f6f7fb;--accent-solid:#2549ec}
:root[data-theme=dark]{--paper:#101725;--ink:#edf2fc;--muted:#b1bdd0;--line:#303c51;--blue:#98adff;--surface:#1b2537;--surface-soft:#212e43;--header-bg:#101725f5;--section-soft:#151f2e;--focus:#283857;--field-bg:#162032;--accent-solid:#425fe6}
.header{background:var(--header-bg);border-color:var(--line)}.header-inner{gap:22px}.nav{gap:21px}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;flex-shrink:0}.theme-toggle:hover{border-color:var(--blue);background:var(--focus)}.theme-symbol{font-size:22px;line-height:1}.theme-label{font-size:12px;font-weight:650}.header-cta{gap:16px}.menu-toggle{flex-shrink:0}.nav{margin-left:auto}.button-blue{background:var(--accent-solid)}.button-blue:hover{background:#3454df}.button-yellow{color:#182026}.record-sticker,.photo-note{color:#182026}.floating-tag{background:var(--surface);border-color:var(--line)}.ribbon{background:var(--section-soft)}.moments{background:var(--section-soft)}.nav.is-open{background:var(--paper)}.social-links a{border-color:var(--line)}.social-links a:hover{background:var(--focus)}
[data-theme=dark] .header-cta:hover{background:#edf2fc;color:#101725}[data-theme=dark] .hero-portrait{filter:brightness(.88)}[data-theme=dark] .portrait-panel{background:#26364f}[data-theme=dark] .learning{background:#0b111c}[data-theme=dark] .learning-tabs button[aria-selected=true]{color:#182026}[data-theme=dark] .learning-tabs button:hover:not([aria-selected=true]){background:#26334b}[data-theme=dark] .skip-link{color:#182026}
.contact{background:#2549ec;padding-top:85px}.contact-inner{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:80px;align-items:center}.contact-intro{min-width:0}.contact h2{font-size:clamp(42px,4.5vw,67px);line-height:1.12;letter-spacing:-.055em}.contact-intro>p{font-size:16px;line-height:1.85;color:#e0e7ff}.contact-person{display:flex;align-items:center;gap:15px;margin:33px 0 29px;padding:22px 0;border-block:1px solid #ffffff38}.contact-person img{width:58px;height:58px;border-radius:50%;object-fit:cover;object-position:52% 25%;background:#eaf0ff}.contact-person strong{display:block;font-size:18px;font-weight:650;letter-spacing:-.025em}.contact-person span{display:block;color:#e0e7ff;font-size:12px;margin-top:4px}.direct-call{display:flex;align-items:center;gap:16px}.call-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff60;border-radius:50%;font-size:27px}.direct-call small{display:block;font-size:12px;color:#e0e7ff}.direct-call strong{font-size:27px;letter-spacing:-.04em;font-weight:650;line-height:1.6}.direct-call:hover strong{text-decoration:underline;text-underline-offset:7px}.contact-intro>.contact-reassurance{font-size:12px;color:#dbe3ff;margin-top:25px;line-height:1.9}.contact-word{margin-top:30px}
.booking-card{background:var(--surface);color:var(--ink);border:1px solid #ffffff24;padding:35px;border-radius:24px;box-shadow:0 24px 70px #091d681f;min-width:0}.booking-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.booking-kicker{font-size:10px;font-weight:700;letter-spacing:.11em;color:var(--muted)}.booking-badge{font-size:11px;color:var(--blue);background:var(--focus);padding:5px 10px;border-radius:20px;white-space:nowrap}.booking-card h3{font-size:30px;letter-spacing:-.045em;margin-bottom:9px}.booking-subtitle{font-size:14px;line-height:1.6;margin-bottom:25px}.booking-field{border:0;padding:0;margin:0 0 23px;min-width:0}.booking-field legend{font-size:14px;font-weight:650;margin-bottom:13px;padding:0;display:flex;align-items:center;gap:10px;letter-spacing:-.015em}.booking-field legend>span,.booking-send h4>span{width:23px;height:23px;display:inline-grid;place-items:center;border-radius:50%;background:var(--surface-soft);color:var(--blue);font-size:11px;font-weight:700;flex-shrink:0}.student-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.student-options label,.goal-options label{position:relative;cursor:pointer;min-width:0}.booking-field input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%;z-index:1}.student-options label>span{display:block;border:1px solid var(--line);border-radius:10px;text-align:center;padding:13px 8px;font-size:14px;font-weight:600;transition:background .18s,border-color .18s}.booking-field input:checked+span{border-color:var(--blue);background:var(--focus)}.booking-field input:focus-visible+span{outline:3px solid #fa8e35;outline-offset:3px}.goal-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.goal-options label>span{display:block;border:1px solid var(--line);border-radius:12px;padding:14px 10px 35px;min-height:112px;position:relative;transition:background .18s,border-color .18s}.goal-options b{display:block;font-size:12px;font-weight:700;line-height:1.4;letter-spacing:-.015em}.goal-options small{font-size:11px;line-height:1.5;color:var(--muted);display:block;margin-top:7px}.goal-options i{font-style:normal;position:absolute;bottom:11px;left:11px;width:17px;height:17px;border:1px solid var(--line);border-radius:50%;color:transparent;font-size:10px;display:grid;place-items:center}.goal-options input:checked+span i{background:var(--accent-solid);border-color:var(--accent-solid);color:#fff}.message-preview{border-radius:12px;background:var(--field-bg);padding:15px;margin:0 0 15px;border:1px solid var(--line)}.message-preview label{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--muted);display:block;margin-bottom:8px}.message-preview textarea{display:block;width:100%;resize:none;border:0;padding:0;font-family:inherit;font-size:13px;line-height:1.65;color:var(--ink);background:none;min-height:110px;border-radius:2px}.message-preview textarea:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.copy-request{width:100%;justify-content:center;gap:17px;border:0;font-size:14px;min-height:54px;cursor:pointer}.copy-request:disabled{opacity:.7;cursor:wait;transform:none}.copy-status{font-size:12px;line-height:1.6;color:var(--blue)}.copy-status:not(:empty){padding-top:12px}.booking-send{margin-top:23px;padding-top:21px;border-top:1px solid var(--line)}.booking-send h4{font-size:13px;line-height:1.5;font-weight:650;display:flex;align-items:center;gap:10px;margin:0 0 15px;letter-spacing:-.015em}.booking-send .social-links{gap:9px;margin:0}.booking-send .social-links a{justify-content:flex-start;padding:12px 10px;gap:8px;background:var(--surface)}.booking-send .social-links a:hover{background:var(--focus)}.booking-send .social-links b{font-size:14px;color:var(--blue);line-height:1}.booking-send .social-links span{font-size:11px;line-height:1.3}.booking-send .social-links i{font-style:normal;margin-left:auto;font-size:16px}.booking-send p{font-size:11px;line-height:1.75;color:var(--muted);margin:13px 0 0}.contact .eyebrow{color:#d4ddff}
.editorial-duo{display:grid;grid-template-columns:1fr 1.35fr;gap:24px;padding-top:48px}.editorial-photo{position:relative;overflow:hidden;min-width:0;border-radius:20px;margin:0;background:#eaf0ff}.editorial-photo>img{width:100%;height:450px;object-fit:cover;transition:transform .65s}.editorial-photo:first-child>img{object-position:center 46%}.editorial-photo:last-child>img{object-position:50% center}.editorial-photo:hover>img{transform:scale(1.035)}.editorial-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:50px 27px 24px;background:linear-gradient(transparent,#101b32d9);color:#fff;font-size:22px;font-weight:650;letter-spacing:-.035em;line-height:1.3}.editorial-photo figcaption small{display:block;font-size:11px;letter-spacing:.08em;font-weight:500;margin-bottom:8px;text-transform:uppercase;color:#e0e7ff}.editorial-photo .photo-expand{position:absolute;inset:0;background:transparent;border:0;border-radius:20px;z-index:1}.editorial-photo .photo-expand:focus-visible{outline-offset:-5px}
/* Decorative motion settles without requiring a pause control. */
.ribbon-track{animation-duration:18s;animation-iteration-count:1}.sun{animation-duration:5s;animation-iteration-count:1}.floating-tag{animation-duration:5s;animation-iteration-count:1}
@media(max-width:1200px){.header-inner{gap:16px}.nav{gap:16px}.theme-label{display:none}.theme-toggle{padding:8px}.contact-inner{gap:40px;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}.booking-card{padding:27px}.contact h2{font-size:48px}.contact-intro>p br{display:none}.hero .portrait-caption{left:80px;max-width:240px}.hero .portrait-caption strong{font-size:19px}.editorial-photo>img{height:390px}}
@media(max-width:1000px){.header-cta{margin-left:auto}.contact-inner{grid-template-columns:1fr;gap:40px}.contact-intro{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.contact-intro .eyebrow,.contact-intro h2,.contact-intro>p:first-of-type{grid-column:1}.contact-intro .contact-person{grid-column:2;grid-row:2;margin:0;align-self:center;padding:20px 0}.direct-call{grid-column:2;grid-row:3;align-self:center}.contact-intro>.contact-reassurance{grid-column:2;margin:12px 0 0}.contact h2{font-size:45px}.direct-call strong{font-size:22px}.direct-call small{font-size:11px}.booking-card{width:100%;padding:32px}.goal-options label>span{min-height:103px;padding:15px 15px 32px}.goal-options b{font-size:14px}.goal-options small{font-size:12px}.message-preview textarea{min-height:87px}.booking-send .social-links span{font-size:13px}.editorial-duo{gap:15px}.editorial-photo>img{height:340px}.editorial-photo figcaption{font-size:19px;padding:50px 20px 20px}.hero .portrait-caption{left:20px;bottom:145px;max-width:270px}.hero .portrait-caption>span{font-size:11px}}
@media(max-width:700px){.header-inner{gap:9px}.header-cta{font-size:11px;padding:8px 11px;gap:9px}.theme-toggle{width:36px;min-width:36px;min-height:38px;height:38px;padding:5px}.theme-symbol{font-size:21px}.header .brand{font-size:23px;gap:8px}.header .brand small{font-size:8px}.header .brand-icon{grid-template-columns:repeat(2,11px);gap:3px}.header .brand-icon i{height:11px}.hero-actions{flex-wrap:wrap;gap:19px}.hero-actions .text-link{max-width:none}.hero .portrait-caption{left:22px;bottom:150px;background:#142238e6;padding:10px 14px;border-radius:10px}.hero .portrait-caption strong{font-size:20px}.hero .portrait-caption>span{font-size:11px}.contact{padding-top:58px}.contact-inner{gap:29px}.contact-intro{display:block}.contact h2{font-size:clamp(39px,9.4vw,58px);letter-spacing:-.055em}.contact h2 br:nth-child(2){display:none}.contact-intro>p{font-size:15px;line-height:1.8}.contact-intro .contact-person{margin:23px 0;padding:18px 0}.contact-person strong{font-size:17px}.direct-call strong{font-size:25px}.direct-call small{font-size:11px}.contact-intro>.contact-reassurance{margin-top:19px;font-size:12px}.booking-card{padding:24px 20px;border-radius:20px}.booking-card h3{font-size:27px}.booking-kicker{font-size:9px}.booking-badge{font-size:10px;padding:5px 8px}.booking-subtitle{font-size:13px;margin-bottom:22px}.booking-field{margin-bottom:21px}.booking-field legend{font-size:13px;gap:8px}.student-options label>span{font-size:13px;padding:12px 5px}.goal-options{grid-template-columns:1fr;gap:8px}.goal-options label>span{min-height:0;padding:13px 42px 13px 14px;border-radius:10px}.goal-options b{font-size:13px}.goal-options small{font-size:11px;margin-top:3px}.goal-options i{left:auto;right:14px;bottom:calc(50% - 9px);height:19px;width:19px}.message-preview{padding:13px}.message-preview textarea{font-size:13px;min-height:153px;line-height:1.65}.copy-request{font-size:13px;padding:13px;gap:12px;min-height:54px}.booking-send{padding-top:19px;margin-top:20px}.booking-send h4{font-size:12px;align-items:flex-start;gap:8px}.booking-send .social-links{grid-template-columns:1fr;gap:8px}.booking-send .social-links a{padding:15px;gap:12px}.booking-send .social-links span{font-size:13px}.booking-send .social-links b{width:24px;text-align:center;font-size:16px}.booking-send p{font-size:11px}.editorial-duo{grid-template-columns:1fr;padding-top:30px;gap:17px}.editorial-photo>img{height:390px}.editorial-photo:last-child>img{height:300px}.editorial-photo figcaption{font-size:21px}.editorial-photo figcaption small{font-size:10px}.footer>span{margin-left:0}.footer .back-top{margin-left:auto}}
@media(max-width:380px){.header-cta{display:none}.theme-toggle{margin-left:auto}.menu-toggle{margin-left:0}.hero .portrait-caption{bottom:147px;padding:10px 12px}.hero .portrait-caption strong{font-size:18px}.contact h2{font-size:38px}.booking-card{padding:22px 17px}.booking-top{flex-wrap:wrap}.booking-card h3{font-size:25px}.message-preview textarea{min-height:174px}.editorial-photo>img{height:350px}.editorial-photo:last-child>img{height:260px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.cube-scene{cursor:default}}
.contact-inner .booking-card>.booking-subtitle{color:var(--muted);font-size:14px;line-height:1.6}[data-theme=dark] .contact{background:#16284e}.editorial-duo{padding-bottom:0}

/* Sculpted cubes: dark cores, inset glossy tiles and a soft ground shadow. */
.cube-scene {
  --unit: 36px;
  --half: calc(var(--unit) / 2);
  position: relative;
  width: 216px;
  height: 212px;
  flex-shrink: 0;
  perspective: 850px;
  pointer-events: none;
  user-select: none;
}
.cube-scene::after {
  content: '';
  position: absolute;
  width: 63%;
  height: 12%;
  left: 20%;
  bottom: 9%;
  border-radius: 50%;
  background: #10275330;
  filter: blur(10px);
  transform: rotate(-12deg);
}
.cube-model, .cube-pivot, .cube-piece, .cube-face {
  position: absolute;
  display: block;
  transform-style: preserve-3d;
}
.cube-model {
  left: 50%;
  top: 44%;
  width: 0;
  height: 0;
  transform: rotateX(-24deg) rotateY(-33deg) rotateZ(-7deg);
}
.cube-pivot { width: 0; height: 0; }
.cube-piece {
  width: var(--unit);
  height: var(--unit);
  left: calc(-1 * var(--half));
  top: calc(-1 * var(--half));
  transform: translate3d(calc(var(--x) * var(--unit)), calc(var(--y) * var(--unit)), calc(var(--z) * var(--unit))) var(--orientation);
}
.cube-face {
  inset: 0;
  background: #172333;
  border: 1px solid #101b29;
  border-radius: calc(var(--unit) * .17);
  backface-visibility: hidden;
}
.cube-color::before {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: calc(var(--unit) * .13);
  background: linear-gradient(145deg, #ffffff44, transparent 43%, #00000015), var(--tile);
  box-shadow: inset 0 1px 1px #ffffff95, inset 0 -2px 2px #00000025;
}
.cube-front { transform: translateZ(var(--half)); --tile: #3767f5; }
.cube-back { transform: rotateY(180deg) translateZ(var(--half)); --tile: #f5f7fb; }
.cube-right { transform: rotateY(90deg) translateZ(var(--half)); --tile: #ff9152; }
.cube-left { transform: rotateY(-90deg) translateZ(var(--half)); --tile: #39cda0; }
.cube-top { transform: rotateX(90deg) translateZ(var(--half)); --tile: #e9f970; }
.cube-bottom { transform: rotateX(-90deg) translateZ(var(--half)); --tile: #ed5261; }
.cube-playing .cube-model { animation: cube-poise 3.84s ease-in-out; }
@keyframes cube-poise {
  0%, 100% { transform: rotateX(-24deg) rotateY(-33deg) rotateZ(-7deg); }
  45% { transform: rotateX(-31deg) rotateY(-47deg) rotateZ(2deg); }
  75% { transform: rotateX(-19deg) rotateY(-26deg) rotateZ(-4deg); }
}
.hero-cube {
  position: absolute;
  --unit: 29px;
  width: 166px;
  height: 174px;
  left: -25px;
  bottom: -40px;
  z-index: 4;
}
.hero .portrait-caption { left: 29px; bottom: 120px; max-width: none; }
.hero .portrait-caption strong { font-size: 23px; }
.hero-portrait { object-position: 50% top; }
[data-theme=dark] .hero-portrait { filter: brightness(.96); }
.portrait-panel::after { inset: 58% 0 0; background: linear-gradient(transparent, #101924ba); }
.hero-visual { margin-bottom: 15px; }
.cube-widget {
  display: flex;
  align-items: center;
  gap: 17px;
  padding: 14px 16px 4px 0;
  margin-top: 28px;
  border-top: 1px solid var(--line);
  max-width: 445px;
}
.cube-widget p { margin: 0; font-size: 13px; line-height: 1.8; max-width: 170px; }
.cube-widget strong { color: var(--ink); display: block; font-size: 15px; font-weight: 650; margin-bottom: 7px; }
.cube-widget p span { display: block; font-size: 12px; }
[data-theme=dark] .cube-scene::after { background: #00000075; }
[data-theme=dark] .cube-face { background: #20324a; border-color: #172639; }

/* Editorial details: calmer alignment, legible framing, clearer interaction cues. */
h2, .panel-text h3 { text-wrap: balance; }
::selection { color: #182026; }
.eyebrow { display: flex; align-items: center; gap: 12px; }
.hero .eyebrow { gap: 0; }
.section .eyebrow::before { content: ''; width: 22px; height: 1px; background: currentColor; opacity: .6; flex-shrink: 0; }
.step { position: relative; gap: 22px; }
.step > span { display: grid; place-items: center; height: 36px; min-width: 36px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); margin-top: 0; font-size: 11px; }
.step h3 { padding-top: 4px; }
.gallery-item, .editorial-photo { box-shadow: 0 1px 0 #ffffff12, 0 12px 35px #101b3209; }
.gallery-item i { transition: background .2s, transform .2s; }
.gallery-item:hover i { background: #ffffff38; transform: rotate(45deg); }
.editorial-duo { grid-template-columns: .9fr 1.1fr; gap: 24px; padding-top: 64px; align-items: stretch; }
.editorial-photo > img { height: 520px; }
.editorial-photo:first-child > img { object-position: center top; }
.editorial-photo:last-child > img { object-position: 47% center; }
.photo-expand::after { content: '↗'; position: absolute; top: 20px; right: 20px; height: 38px; width: 38px; display: grid; place-items: center; border: 1px solid #ffffff80; color: white; border-radius: 50%; background: #16233860; font-size: 23px; transition: background .2s; }
.photo-expand:hover::after { background: #162338ad; }
.faq-list summary::after { width: 29px; height: 29px; display: grid; place-items: center; font-size: 24px; top: 0; border-radius: 50%; background: var(--surface-soft); line-height: 1; }
.faq-list summary:hover { color: var(--blue); }
.faq-list details[open] summary::after { background: var(--focus); }
.booking-card { border-color: var(--line); }
.contact-word { margin-top: 45px; font-size: clamp(160px, 22vw, 315px); }
@media (max-width: 1200px) {
  .hero-cube { --unit: 27px; width: 158px; height: 165px; left: -25px; bottom: -38px; }
  .hero .portrait-caption { left: 25px; bottom: 128px; }
  .hero .portrait-caption strong { font-size: 21px; }
  .cube-scene:not(.hero-cube) { --unit: 31px; width: 175px; height: 180px; }
  .cube-widget { gap: 5px; }
  .editorial-photo > img { height: 440px; }
}
@media (max-width: 1000px) {
  .hero-cube { --unit: 25px; width: 145px; left: -14px; }
  .record-sticker { min-width: 0; width: 190px; padding: 16px; right: 0; }
  .record-sticker > strong { font-size: 48px; }
  .record-sticker .record-top, .record-sticker > span:last-child { font-size: 8px; }
  .hero .portrait-caption { bottom: 136px; left: 22px; }
  .hero .portrait-caption strong { font-size: 20px; }
  .cube-widget { flex-wrap: wrap; padding-top: 15px; gap: 0; }
  .cube-widget p { max-width: 230px; }
  .editorial-duo { gap: 18px; }
  .editorial-photo > img { height: 390px; }
}
@media (max-width: 700px) {
  .hero-visual { margin-bottom: 20px; }
  .hero-cube { --unit: 26px; width: 145px; height: 156px; bottom: -31px; left: -8px; }
  .hero .portrait-caption { bottom: 135px; left: 23px; padding: 0; background: none; }
  .hero .portrait-caption strong { font-size: 21px; }
  .hero .portrait-caption > span { font-size: 11px; }
  .record-sticker { min-width: 0; width: 196px; padding: 16px; right: 0; }
  .record-sticker .record-top, .record-sticker > span:last-child { font-size: 8px; }
  .cube-widget { flex-wrap: nowrap; margin-top: 23px; gap: 12px; }
  .cube-scene:not(.hero-cube) { --unit: 28px; width: 153px; height: 170px; }
  .cube-widget strong { font-size: 14px; }
  .cube-widget p span { font-size: 11px; }
  .step { gap: 15px; }
  .step > span { min-width: 32px; height: 32px; }
  .step h3 { font-size: 22px; }
  .editorial-duo { grid-template-columns: 1fr; gap: 20px; padding-top: 32px; }
  .editorial-photo:first-child > img { height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
  .editorial-photo:last-child > img { height: 320px; }
  .photo-expand::after { top: 16px; right: 16px; }
  .contact-word { font-size: 27vw; margin-top: 35px; }
}
@media (max-width: 380px) {
  .hero-cube { --unit: 24px; width: 125px; height: 145px; bottom: -29px; left: -12px; }
  .record-sticker { width: 181px; padding: 14px; }
  .record-sticker > strong { font-size: 46px; }
  .hero .portrait-caption { left: 22px; bottom: 131px; }
  .hero .portrait-caption strong { font-size: 19px; }
  .cube-scene:not(.hero-cube) { --unit: 24px; width: 123px; height: 150px; }
  .cube-widget { gap: 9px; }
  .cube-widget strong { font-size: 13px; }
  .editorial-photo:last-child > img { height: 285px; }
}
@media (prefers-reduced-motion: reduce) { .cube-playing .cube-model { animation: none; } }

/* Give mobile headlines room between words and let the text wrap naturally. */
@media (max-width: 700px) {
  .hero h1 { font-size: clamp(34px, 9vw, 52px); line-height: 1.14; letter-spacing: -.03em; }
  .section h2, .contact h2 { letter-spacing: -.025em; line-height: 1.2; }
  .contact h2 { font-size: clamp(32px, 9vw, 52px); }
  .approach h2, .faq h2 { font-size: clamp(30px, 8.5vw, 40px); }
  .about h2 br, .faq h2 br { display: none; }
  .about h2 { font-size: clamp(28px, 8.1vw, 38px); }
  .about h2 > br { display: initial; }
  .panel-text h3, .step h3, .booking-card h3, .teacher-name { letter-spacing: -.02em; line-height: 1.3; }
  .teacher-name { margin-bottom: 22px; }
}
