/* Localized presentation only. FR/EN keep the original artwork and styles. */
@font-face {
  font-family: 'Dreamtheon Khmer';
  src: url('assets/fonts/NotoSansKhmer-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
.language-switch button[lang="km"], a[lang="km"] {
  font-family: 'Dreamtheon Khmer', sans-serif;
  line-height: 1.8;
  padding-inline: 8px;
}
.language-switch button { min-width: 44px; }
.header-actions { flex-wrap: wrap; }
html[lang="km"], [lang="km"] { font-family: 'Dreamtheon Khmer', 'Segoe UI', sans-serif; }
html[lang="km"] .hero h1,
html[lang="km"] .vision-strip h2,
html[lang="km"] .vision-strip h3,
html[lang="km"] .section-heading h2,
html[lang="km"] .feature-card h3,
html[lang="km"] .app-copy h2,
html[lang="km"] .waitlist h2,
html[lang="km"] .phone-greeting,
html[lang="km"] .app-dream p,
[lang="km"] h2, [lang="km"] h3 {
  font-family: 'Dreamtheon Khmer', sans-serif;
  letter-spacing: normal;
  line-height: 1.65;
}
html[lang="km"] .hero h1 { width: 100%; font-size: clamp(33px, 3.9vw, 46px); font-weight: 650; }
html[lang="km"] .hero-copy > p:not(.launch-note) { line-height: 1.85; }
html[lang="km"] .hero { min-height: 495px; }
html[lang="km"] .hero-quote,
html[lang="km"] .waitlist-quote { font-family: 'Dreamtheon Khmer', sans-serif; line-height: 1.9; font-size: 13px; }
html[lang="km"] .hero-mantra { font-size: 9px; letter-spacing: 0; line-height: 1.8; }
html[lang="km"] .button { white-space: normal; line-height: 1.8; }
html[lang="km"] .preview-nav { gap: 10px; }
html[lang="km"] .preview-nav [data-i18n="visionNav"],
html[lang="km"] .preview-nav [data-i18n="newLabel"],
html[lang="km"] .preview-nav [data-i18n="launchNav"] { display: none; }
html[lang="km"] .vision-strip h2 { font-size: clamp(24px, 2.6vw, 30px); }
html[lang="km"] .vision-strip h3 { font-size: 16px; }
html[lang="km"] .section-heading h2 { font-size: 29px; }
html[lang="km"] .section-heading p { line-height: 1.9; }
html[lang="km"] .feature-card { min-height: 135px; gap: 12px; }
html[lang="km"] .feature-card h3 { font-size: 14px; }
html[lang="km"] .feature-card p { line-height: 1.9; }
html[lang="km"] .app-copy h2 { font-size: clamp(25px, 3vw, 34px); }
html[lang="km"] .app-copy > p, html[lang="km"] .platform-notes { line-height: 1.85; }
html[lang="km"] .phone-greeting { font-size: 12px; margin-block: 12px; }
html[lang="km"] .phone-menu > div { font-size: 9px; line-height: 1.8; }
html[lang="km"] .store-badge small { line-height: 1.9; }
html[lang="km"] .app-dream p { font-size: 12px; }
html[lang="km"] .waitlist h2 { font-size: 27px; }
html[lang="km"] .waitlist-copy p, html[lang="km"] .consent,
html[lang="km"] .waitlist-reassurance, html[lang="km"] .status { line-height: 1.9; }
html[lang="km"] .email-row button { line-height: 1.9; white-space: normal; padding-block: 8px; }
html[lang="km"] .waitlist::before {
  background-image: linear-gradient(180deg, #162458aa, #07133688 65%, #07133611), url('assets/dreamtheon-angkor-horizon-v1.png');
  /* The generated panoramic scene is letterboxed; crop its middle in CSS,
     without changing the image or putting an overlay above the form. */
  background-position: center, center;
  background-size: cover, 100% 260%;
}
[lang="km"] p { line-height: 1.9; }
@media (max-width: 680px) {
  .site-header { flex-wrap: wrap; }
  .language-switch { gap: 0; }
  html[lang="km"] .hero { min-height: 0; }
  html[lang="km"] .hero h1 { font-size: clamp(28px, 8vw, 41px); }
  html[lang="km"] .hero-copy > p:not(.launch-note) { font-size: 14px; }
  html[lang="km"] .hero-button { width: auto; max-width: 100%; }
  html[lang="km"] .vision-strip h2, html[lang="km"] .section-heading h2 { font-size: 25px; }
  html[lang="km"] .app-copy h2 { font-size: 26px; }
  html[lang="km"] .platform-notes { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  html[lang="km"] .platform-notes li:last-child { grid-column: 1 / -1; }
  html[lang="km"] .feature-card { min-height: 122px; }
  html[lang="km"] .waitlist h2 { font-size: 25px; }
  html[lang="km"] .email-row { grid-template-columns: auto minmax(0, 1fr); border-radius: 24px; padding: 5px 12px; }
  html[lang="km"] .email-row button { grid-column: 1 / -1; min-height: 44px; margin-bottom: 5px; border-radius: 18px; }
  html[lang="km"] .waitlist::before { background-size: cover, auto 260%; }
}
@media (forced-colors: active) { html[lang="km"] .waitlist::before { display: none; } }
