/* ===== glass primitive ===== */
.glass{
  position:relative;
  background:var(--glass);
  border-radius:var(--r-lg);
  backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);
  box-shadow:var(--shadow),var(--inset);
  isolation:isolate;
}
.glass::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(255,255,255,.35) 36%,rgba(34,184,180,.30) 68%,rgba(185,143,53,.35));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;z-index:1;
}
.glass::after{
  content:"";position:absolute;left:8%;right:8%;top:0;height:1px;border-radius:99px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,1),transparent);
  pointer-events:none;
}
.glass--flat{box-shadow:0 16px 38px -24px rgba(8,45,85,.34),var(--inset)}
.glass--sheen{overflow:hidden}
.glass--sheen > .sheen{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  background:linear-gradient(112deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);
  background-size:250% 100%;background-position:140% 0;
  transition:opacity .3s ease;
}
.glass--sheen:hover > .sheen{opacity:1;animation:sheenRun 1.1s var(--ease) forwards}
@keyframes sheenRun{to{background-position:-140% 0}}

/* ===== eyebrow + titles ===== */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;
  color:var(--teal-deep);margin-bottom:18px;
}
.eyebrow::before{
  content:"";width:26px;height:1px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.h-xl{font-size:clamp(38px,6.4vw,74px);font-weight:600;color:var(--brand-deep)}
.h-lg{font-size:clamp(29px,3.9vw,50px);color:var(--brand-deep)}
.h-md{font-size:clamp(21px,2.2vw,28px);color:var(--brand-deep)}
.lead{font-size:clamp(16px,1.25vw,18.5px);color:var(--ink-dim);max-width:62ch}
.muted{color:var(--ink-mute)}
.gold-rule{
  height:1px;width:100%;
  background:linear-gradient(90deg,transparent,rgba(185,143,53,.55),transparent);
}
.sec-head{display:grid;gap:16px;margin-bottom:clamp(38px,4vw,60px);max-width:760px}
.sec-head--split{
  max-width:none;grid-template-columns:1fr auto;align-items:end;gap:24px 40px;
}
.sec-head--split .sec-head__txt{max-width:700px;display:grid;gap:14px}

/* copy that sits straight on the video gets a soft, edgeless light bloom */
.sec-head,.about__txt,.doc__txt,.faq__intro,.tooth-nav__hint{
  position:relative;
  isolation:isolate;
}
.sec-head::before,.about__txt::before,.doc__txt::before,.faq__intro::before,.tooth-nav__hint::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  inset:clamp(-34px,-3vw,-22px) clamp(-40px,-3.4vw,-26px);
  background:radial-gradient(115% 105% at 42% 48%,
    rgba(255,255,255,.86) 0%,
    rgba(255,255,255,.62) 42%,
    rgba(255,255,255,.24) 72%,
    rgba(255,255,255,0) 100%);
}
.sec-head .eyebrow,.sec-head h2,.sec-head h3,.sec-head .lead,
.tooth-nav__hint,.about__txt .eyebrow,.about__txt h2,.doc__txt .eyebrow,.doc__txt h2,
.faq__intro .eyebrow,.faq__intro h2{
  text-shadow:0 1px 8px rgba(255,255,255,.8);
}

/* ===== buttons ===== */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:11px;
  padding:14px 26px;border-radius:99px;overflow:hidden;
  font-family:var(--f-display);font-size:14.5px;font-weight:600;letter-spacing:.01em;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s var(--ease);
  will-change:transform;
}
.btn svg{width:17px;height:19px;flex:none;position:relative;z-index:2}
.btn > span{position:relative;z-index:2}
.btn::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.40) 50%,transparent 58%);
  background-size:260% 100%;background-position:150% 0;
}
.btn:hover::after{animation:sheenRun .9s var(--ease) forwards}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(-1px) scale(.985)}

.btn--primary{
  color:#fff;
  background:linear-gradient(135deg,var(--brand-2),var(--brand) 52%,var(--brand-deep));
  box-shadow:0 16px 32px -14px rgba(20,80,140,.62),inset 0 1px 0 rgba(255,255,255,.35);
}
.btn--primary:hover{box-shadow:0 22px 44px -14px rgba(20,80,140,.72),inset 0 1px 0 rgba(255,255,255,.4)}
.btn--teal{
  color:#04302f;
  background:linear-gradient(135deg,var(--teal-2),var(--teal) 52%,var(--teal-deep));
  box-shadow:0 16px 32px -14px rgba(34,184,180,.6),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn--gold{
  color:#2b1f04;
  background:linear-gradient(135deg,var(--gold-2),var(--gold) 58%,#96702a);
  box-shadow:0 16px 32px -16px rgba(185,143,53,.6),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn--ghost{
  color:var(--brand-deep);
  background:var(--glass-strong);
  border:1px solid var(--glass-edge);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  box-shadow:0 14px 30px -22px rgba(8,45,85,.5),var(--inset);
}
.btn--ghost:hover{border-color:rgba(34,184,180,.5);color:var(--brand)}
.btn--sm{padding:11px 19px;font-size:13px}
.btn--wide{width:100%;justify-content:center;padding:16px 26px}

.link-more{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-display);font-size:13.5px;font-weight:700;letter-spacing:.02em;
  color:var(--teal-deep);white-space:nowrap;
}
.link-more i{
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(34,184,180,.5);font-style:normal;font-size:12px;
  background:rgba(255,255,255,.7);
  transition:transform .35s var(--ease),background .35s var(--ease);
}
.link-more:hover i{transform:translateX(4px);background:rgba(34,184,180,.2)}

/* ===== TOOTH SHAPED BUTTONS ===== */
.tooth-rail{
  display:flex;flex-wrap:wrap;gap:clamp(10px,1.6vw,22px);
  justify-content:center;align-items:flex-start;
}
.tooth-btn{
  position:relative;display:grid;justify-items:center;gap:9px;
  width:clamp(84px,9vw,104px);
  transition:transform .45s var(--ease);
}
.tooth-btn:hover{transform:translateY(-7px)}
.tooth-btn:active{transform:translateY(-2px) scale(.97)}
.tooth-btn__face{
  position:relative;width:100%;aspect-ratio:100/110;
  display:grid;place-items:center;
  clip-path:url(#toothClip);
  background:linear-gradient(158deg,rgba(255,255,255,.94),rgba(232,244,253,.7));
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  transition:background .45s var(--ease);
}
.tooth-btn__face::after{
  content:"";position:absolute;inset:0;opacity:0;
  background:linear-gradient(155deg,var(--brand-2),var(--brand) 55%,var(--brand-deep));
  transition:opacity .45s var(--ease);
}
.tooth-btn:hover .tooth-btn__face::after,
.tooth-btn.is-active .tooth-btn__face::after{opacity:1}
.tooth-btn__outline{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;overflow:visible;
}
.tooth-btn__outline path{
  fill:none;stroke:rgba(20,80,140,.34);stroke-width:2.4;
  transition:stroke .45s var(--ease),filter .45s var(--ease);
}
.tooth-btn:hover .tooth-btn__outline path,
.tooth-btn.is-active .tooth-btn__outline path{
  stroke:var(--gold-2);
  filter:drop-shadow(0 0 7px rgba(185,143,53,.6));
}
.tooth-btn__num{
  position:relative;z-index:3;
  font-family:var(--f-display);font-size:19px;font-weight:700;
  color:var(--brand);
  transform:translateY(-6%);
  transition:color .4s var(--ease);
}
.tooth-btn:hover .tooth-btn__num,
.tooth-btn.is-active .tooth-btn__num{color:#fff}
.tooth-btn__label{
  font-size:11.5px;line-height:1.35;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;text-align:center;color:var(--ink-mute);
  text-shadow:0 1px 8px rgba(255,255,255,.9);
  transition:color .4s var(--ease);
}
.tooth-btn:hover .tooth-btn__label,
.tooth-btn.is-active .tooth-btn__label{color:var(--brand)}

/* small tooth icon chip (socials / quick actions) */
.tooth-chip{
  position:relative;width:42px;height:46px;display:grid;place-items:center;
  transition:transform .4s var(--ease);
}
.tooth-chip__face{
  position:absolute;inset:0;clip-path:url(#toothClip);
  background:linear-gradient(158deg,rgba(255,255,255,.92),rgba(232,244,253,.66));
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:background .4s var(--ease);
}
.tooth-chip__outline{position:absolute;inset:0;width:100%;height:100%}
.tooth-chip__outline path{fill:none;stroke:rgba(20,80,140,.45);stroke-width:2.8;transition:stroke .4s var(--ease)}
.tooth-chip svg.ico{position:relative;z-index:2;width:16px;height:16px;transform:translateY(-8%);color:var(--brand)}
.tooth-chip:hover{transform:translateY(-4px)}
.tooth-chip:hover .tooth-chip__face{background:linear-gradient(155deg,var(--brand-2),var(--brand))}
.tooth-chip:hover .tooth-chip__outline path{stroke:var(--gold-2)}
.tooth-chip:hover svg.ico{color:#fff}

/* ===== click FX ===== */
/* safety net: older cached scripts used to inject a .ripple node as a
   flex child, which stretched the button it was meant to decorate */
.ripple{display:none !important}

/* deliberately just a small scale: a filter here would break the
   backdrop-filter of the glass buttons for the duration of the press */
.pressed{animation:pressPop .36s var(--ease-out)}
@keyframes pressPop{
  0%{transform:scale(1)}
  40%{transform:scale(.958)}
  100%{transform:scale(1)}
}

/* ===== reveal on scroll ===== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal--l{transform:translateX(-34px)}
.reveal--r{transform:translateX(34px)}
.reveal--s{transform:scale(.94)}

/* ===== header ===== */
.header{position:sticky;top:0;z-index:70;padding:14px 0;transition:padding .45s var(--ease)}
.header__bar{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  padding:10px 12px 10px 16px;border-radius:99px;
  background:linear-gradient(158deg,rgba(255,255,255,.30),rgba(255,255,255,.14));
  border:1px solid rgba(255,255,255,.34);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  transition:box-shadow .45s var(--ease),background .45s var(--ease),border-color .45s var(--ease);
}
body.is-scrolled .header{padding:8px 0}
body.is-scrolled .header__bar{
  background:linear-gradient(158deg,rgba(255,255,255,.94),rgba(255,255,255,.8));
  border-color:rgba(255,255,255,.95);
  box-shadow:0 20px 44px -24px rgba(8,45,85,.45),var(--inset);
}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand__logo{
  width:126px;height:auto;max-width:none;
  filter:drop-shadow(0 2px 6px rgba(255,255,255,.6));
  animation:brandFloat 6s ease-in-out infinite;
}
@keyframes brandFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

.nav{display:flex;align-items:center;gap:2px}
.nav__link{
  position:relative;display:inline-flex;align-items:center;gap:8px;overflow:hidden;
  padding:10px 15px;border-radius:99px;
  font-family:var(--f-display);font-size:13.6px;font-weight:600;letter-spacing:.015em;
  color:var(--on-blue);transition:color .35s var(--ease),background .35s var(--ease);
}
.nav__link .tth{width:13px;height:14px;flex:none;transition:all .35s var(--ease)}
.nav__link .tth path{fill:none;stroke:currentColor;stroke-width:7;opacity:.55}
.nav__link:hover,.nav__link.is-active{background:rgba(255,255,255,.9);color:var(--brand)}
.nav__link:hover .tth path,.nav__link.is-active .tth path{opacity:1;fill:rgba(34,184,180,.28)}
body.is-scrolled .nav__link{color:var(--ink-dim)}
body.is-scrolled .nav__link:hover,body.is-scrolled .nav__link.is-active{color:var(--brand);background:rgba(20,80,140,.10)}
.nav__link::after{
  content:"";position:absolute;left:50%;bottom:5px;height:1px;width:0;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transition:width .4s var(--ease);
}
.nav__link.is-active::after{width:58%}
.header__cta{display:flex;align-items:center;gap:10px;flex:none}
.burger{position:relative;display:none;width:44px;height:48px;place-items:center}
.burger__face{
  position:absolute;inset:0;clip-path:url(#toothClip);
  background:linear-gradient(158deg,rgba(255,255,255,.95),rgba(232,244,253,.72));
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.burger__outline{position:absolute;inset:0;width:100%;height:100%}
.burger__outline path{fill:none;stroke:rgba(20,80,140,.34);stroke-width:2.6}
.burger i{
  position:relative;z-index:2;display:block;width:17px;height:1.8px;border-radius:2px;
  background:var(--brand);transition:transform .4s var(--ease),opacity .3s ease;
}
.burger i+i{margin-top:4.5px}
body.is-menu .burger i:nth-child(3){transform:translateY(6.3px) rotate(45deg)}
body.is-menu .burger i:nth-child(4){opacity:0}
body.is-menu .burger i:nth-child(5){transform:translateY(-6.3px) rotate(-45deg)}

/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:65;display:none;
  padding:calc(var(--nav-h) + 44px) 24px 40px;
  background:linear-gradient(180deg,rgba(11,53,99,.94),rgba(143,195,226,.94) 62%,rgba(255,255,255,.96));
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;
}
body.is-menu .drawer{opacity:1;visibility:visible}
.drawer__nav{display:grid;gap:10px;max-width:520px;margin-inline:auto}
.drawer__nav a{
  display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:var(--r);
  font-family:var(--f-display);font-size:17px;font-weight:600;color:var(--brand-deep);
  background:linear-gradient(158deg,rgba(255,255,255,.92),rgba(255,255,255,.76));
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 12px 26px -18px rgba(8,45,85,.5);
  transform:translateY(18px);opacity:0;transition:all .5s var(--ease-out);
}
body.is-menu .drawer__nav a{transform:none;opacity:1}
.drawer__nav a .tth{width:18px;height:20px;color:var(--teal-deep)}
.drawer__nav a .tth path{fill:rgba(34,184,180,.22);stroke:currentColor;stroke-width:7}
.drawer__foot{max-width:520px;margin:26px auto 0;display:grid;gap:12px}
