/* The original airbble design, with larger, scroll-triggered movement. */
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { font-size: 16px; }
.reveal { animation: none !important; }
.site-header { transition: background .35s, box-shadow .35s; }
.hero { isolation: isolate; overflow: hidden; }
.hero-copy { z-index: 3; }
.hero-bubble { z-index: 1; }
.hero-bubble--one { width: 160px; height: 160px; right: 14%; top: 17%; }
.hero-bubble--two { width: 84px; height: 84px; left: 15%; bottom: 15%; }
.hero h1 { line-height: .83; }
.hero-kicker { font-size: 12px; }
.hero-note, .about-copy > p, .section-heading > p, .benefits-intro p,
.installation-copy > p, .reassurance-grid > div:first-child > p,
.reason-card p, .flow-copy p, .faq-side > p, .faq-answer p,
.benefit-story-copy p, .final-inner > p { font-size: 16px; line-height: 2; }
.desktop-nav a, .header-cta, .button, .text-link, .about-points span,
.recommend-list div, .charge-box p, .scale-row span, .install-table span,
.install-table strong, .product-for, .product-card dl div, .product-note,
.anxiety-list div, summary, .mobile-contact-bar a, .footer-grid address a,
.trial-callout strong { font-size: 14px; }
.section-label, .fineprint, .install-notes p, .product-consult,
.product-caution, .trial-callout small, .company-info p,
.footer-grid > div:first-child p, .footer-bottom, .model-note,
.image-tag, .trial-callout > span { font-size: 12px; }
.desktop-nav { gap: 23px; }
.about-image { overflow: hidden; border-radius: 4px 170px 4px 4px; }
.about-image img { transform-origin: center; }
.product-photo img, .science-visual img, .installation-visual img { object-fit: contain; }
.science-visual, .installation-visual { height: auto; min-height: 0; }
.science-visual img, .installation-visual img { height: auto; }
.button { min-height: 52px; }
.menu-button { min-width: 44px; min-height: 44px; }
.mobile-nav[hidden] { display: none !important; }
summary { cursor: pointer; padding-block: 15px; }
:focus-visible { outline: 3px solid #2099ca; outline-offset: 5px; }
.final-cta .button:focus-visible { outline-color: #fff; }
.motion-target { transform-origin: center; }
@media (prefers-reduced-motion: no-preference) {
  .hero:after { animation: halo-drift 14s ease-in-out infinite alternate; }
  .hero-bubble--one { animation: bubble-drift 8s ease-in-out infinite alternate; }
  .hero-bubble--two { animation: bubble-drift-small 6s ease-in-out infinite alternate; }
  .hero-kicker { animation: hero-rise 1.1s cubic-bezier(.16,1,.3,1) both; }
  .hero h1 { animation: hero-title 1.55s cubic-bezier(.16,1,.3,1) .1s both; }
  .hero h1 em { animation: word-in 1.8s cubic-bezier(.16,1,.3,1) .2s both; }
  .hero-ja, .hero-rule { animation: hero-rise 1.3s cubic-bezier(.16,1,.3,1) .25s both; }
  .hero-lead, .hero-note { animation: hero-rise 1.5s cubic-bezier(.16,1,.3,1) .35s both; }
  .hero .contact-buttons { animation: hero-rise 1.5s cubic-bezier(.16,1,.3,1) .5s both; }
  .motion-ready .motion-target { transition: opacity 1s ease, transform 1.35s cubic-bezier(.16,1,.3,1); transition-delay: var(--motion-delay, 0ms); }
  .motion-ready .motion-target.is-waiting { opacity: 0; transform: translate3d(0,110px,0) scale(.96); }
  .motion-ready .motion-target.is-waiting[data-motion="left"] { transform: translate3d(-115px,50px,0) scale(.94); }
  .motion-ready .motion-target.is-waiting[data-motion="right"] { transform: translate3d(115px,50px,0) scale(.94); }
  .motion-ready .motion-target.is-waiting[data-motion="photo"] { transform: translate3d(0,80px,0) scale(.86); }
  .motion-ready .motion-target img { transition: transform 1.8s cubic-bezier(.16,1,.3,1); }
  .motion-ready .motion-target.is-waiting img { transform: scale(1.16); }
  .motion-ready .motion-target.is-visible img { transform: scale(1); }
  .concern-card:hover img, .flow-card:hover img { transform: scale(1.08) !important; }
  .orb--large { animation: orb-drift 6s ease-in-out infinite alternate; }
  .orb--small { animation: orb-drift 7s ease-in-out -2s infinite alternate-reverse; }
  .orb--tiny { animation: orb-drift 5s ease-in-out -1s infinite alternate; }
  details[open] .faq-answer { animation: answer-in .45s ease both; }
  .button:hover { transform: translateY(-5px); box-shadow: 0 15px 35px #08283f30; }
  .scroll-cue span { animation: scroll-line 1.8s ease-in-out infinite; transform-origin: right; }
  @keyframes hero-rise { from { opacity: 0; transform: translateY(75px); } to { opacity: 1; transform: none; } }
  @keyframes hero-title { from { opacity: 0; transform: translateY(100px) scale(.86); } to { opacity: 1; transform: none; } }
  @keyframes word-in { from { opacity: 0; transform: translateX(85px); } to { opacity: 1; transform: none; } }
  @keyframes bubble-drift { from { transform: translate(-20px,30px) scale(.86); } to { transform: translate(35px,-80px) scale(1.15); } }
  @keyframes bubble-drift-small { from { transform: translate(-25px,30px) scale(.85); } to { transform: translate(50px,-55px) scale(1.18); } }
  @keyframes halo-drift { from { transform: translate(-15px,-45%) scale(.86); } to { transform: translate(35px,-54%) scale(1.12); } }
  @keyframes orb-drift { from { transform: translate(0,12px); } to { transform: translate(20px,-30px); } }
  @keyframes answer-in { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
  @keyframes scroll-line { 0%,100% { transform: scaleX(.55); } 50% { transform: scaleX(1.3); } }
}
@media (max-width: 1100px) { .header-inner { gap: 20px; } .desktop-nav { gap: 15px; } }
@media (max-width: 700px) {
  html { scroll-padding-top: 82px; }
  .hero { padding-top: 118px; padding-bottom: 80px; }
  .hero h1 { font-size: clamp(66px,19vw,92px); line-height: .85; }
  .hero-kicker { font-size: 12px; max-width: 275px; line-height: 1.8; }
  .hero-bubble--one { width: 112px; height: 112px; right: -22px; top: 24%; }
  .hero-bubble--two { width: 57px; height: 57px; left: 72%; bottom: 18%; }
  .hero-ja { font-size: 14px; }
  .hero-lead { font-size: 18px; }
  .about-points span { font-size: 12px; }
  .about-image { border-radius: 4px 95px 4px 4px; }
  .recommend-list { grid-template-columns: 1fr; margin-block: 25px; }
  .recommend-list div { padding-block: 12px; }
  .recommendation-panel { padding-top: 245px; }
  .product-photo { height: auto; }
  .product-photo img { height: auto; }
  .final-inner { padding-top: 220px; }
  .mobile-nav a { font-size: 15px; padding-block: 15px; }
  .mobile-contact-bar { padding-bottom: env(safe-area-inset-bottom); height: calc(62px + env(safe-area-inset-bottom)); }
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
  .motion-ready .motion-target.is-waiting[data-motion="left"],
  .motion-ready .motion-target.is-waiting[data-motion="right"] { transform: translate3d(0,85px,0) scale(.95); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .motion-target { opacity: 1 !important; transform: none !important; }
}
