:root {
  --deep: #163b5c;
  --blue: #2f6f9f;
  --water: #5c9bcd;
  --mist: #9dcae5;
  --snow: #f2f7fb;
  --white: #fff;
  --ink: #102f49;
  --muted: #5f7689;
  --line: rgba(22, 59, 92, .14);
  --glass: rgba(255, 255, 255, .68);
  --font: "Manrope", "DM Sans", system-ui, sans-serif;
  --content: min(1180px, calc(100vw - 64px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--snow); font-family: var(--font); overflow-x: hidden; }
body::selection { color: white; background: var(--blue); }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 14px; color: white; background: var(--deep); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.nav-shell { position: fixed; z-index: 50; top: 18px; left: 50%; display: flex; align-items: center; justify-content: space-between; width: min(1220px, calc(100vw - 36px)); height: 70px; padding: 0 14px 0 24px; border: 1px solid rgba(255,255,255,.42); border-radius: 22px; background: rgba(242,247,251,.76); backdrop-filter: blur(22px) saturate(145%); transform: translateX(-50%); transition: box-shadow .3s, background .3s, top .3s; }
.nav-shell.scrolled { top: 10px; background: rgba(242,247,251,.94); box-shadow: 0 12px 45px rgba(22,59,92,.11); }
.wordmark { font-size: 19px; font-weight: 700; letter-spacing: -.05em; }
.wordmark span { color: var(--water); }
.nav-shell nav { display: flex; gap: 32px; }
.nav-shell nav a { color: #435f75; font-size: 13px; font-weight: 600; transition: color .2s; }
.nav-shell nav a:hover { color: var(--blue); }
.nav-actions { display: flex; align-items: center; }
.nav-cta { padding: 14px 19px; color: white; border-radius: 14px; background: var(--deep); font-size: 12px; font-weight: 700; }
.nav-cta span { margin-left: 9px; }
.menu-button { display: none; width: 44px; height: 44px; border: 0; border-radius: 13px; background: var(--deep); place-content: center; }
.menu-button span { display: block; width: 18px; height: 1px; margin: 3px; background: white; transition: transform .2s; }

.hero { position: relative; display: grid; min-height: 100svh; padding: 160px max(32px, calc((100vw - 1180px) / 2)) 94px; background: linear-gradient(137deg, #f5faff 0%, #d9ebf7 47%, #88b7da 100%); align-items: center; overflow: hidden; }
.hero::after { position: absolute; inset: auto 0 0; height: 28%; background: linear-gradient(transparent, rgba(242,247,251,.78)); content: ""; pointer-events: none; }
.hero-noise { position: absolute; inset: 0; opacity: .35; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E"); pointer-events: none; }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.orb-one { top: 8%; right: -9%; width: 43vw; height: 43vw; background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.82), rgba(255,255,255,.08) 65%, transparent 70%); }
.orb-two { bottom: -25%; left: 29%; width: 40vw; height: 40vw; border: 1px solid rgba(255,255,255,.34); box-shadow: inset 0 0 100px rgba(255,255,255,.22); }
.hero-copy { position: relative; z-index: 3; width: min(54%, 660px); }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow > span { width: 27px; height: 1px; background: currentColor; }
.eyebrow.light { color: var(--mist); }
h1, h2, h3, p { text-wrap: balance; }
h1 { max-width: 720px; margin: 0; font-size: clamp(58px, 6.3vw, 96px); line-height: .95; letter-spacing: -.065em; font-weight: 500; }
h1 em, h2 em { display: block; color: var(--blue); font-style: normal; font-weight: 500; }
.hero-lede { max-width: 570px; margin: 30px 0 0; color: #4b677d; font-size: 17px; line-height: 1.75; }
.hero-actions { display: flex; gap: 12px; margin-top: 36px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 57px; padding: 0 21px; border: 1px solid transparent; border-radius: 16px; font-size: 13px; font-weight: 700; transition: transform .2s, background .2s, color .2s, border-color .2s; }
.button:hover { transform: translateY(-2px); }
.button.primary { color: white; background: var(--deep); box-shadow: 0 16px 36px rgba(22,59,92,.18); }
.button.primary:hover { background: var(--blue); }
.button.secondary { color: var(--deep); border-color: rgba(22,59,92,.18); background: rgba(255,255,255,.42); backdrop-filter: blur(8px); }
.trust-line { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 30px; color: #567187; font-size: 10px; font-weight: 600; }
.trust-line span { display: flex; align-items: center; gap: 6px; }
.trust-line i { width: 6px; height: 6px; border: 1px solid var(--blue); border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(255,255,255,.8); background: var(--water); }

.hero-visual { position: absolute; z-index: 2; top: 15%; right: max(1.5%, calc((100vw - 1320px) / 2)); width: min(48vw, 690px); height: min(72vh, 730px); perspective: 1200px; transform-style: preserve-3d; }
.visual-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; transform: translate(-50%,-50%) rotateX(66deg); }
.ring-one { width: 560px; height: 560px; box-shadow: 0 0 80px rgba(255,255,255,.22); }
.ring-two { width: 410px; height: 410px; border-style: dashed; opacity: .5; }
.tooth-stage { position: absolute; top: 48%; left: 51%; width: 330px; height: 400px; transform: translate(-50%,-50%) rotateY(-9deg) rotateX(4deg); transform-style: preserve-3d; transition: transform .25s ease-out; }
.tooth-glow { position: absolute; top: 52%; left: 50%; width: 230px; height: 230px; border-radius: 50%; background: rgba(255,255,255,.8); filter: blur(45px); transform: translate(-50%,-50%) translateZ(-40px); }
.tooth-object { position: relative; width: 100%; height: 100%; filter: saturate(.88); animation: toothFloat 5s ease-in-out infinite; }
.float-card { position: absolute; padding: 18px; border: 1px solid rgba(255,255,255,.55); border-radius: 18px; background: rgba(245,250,255,.72); box-shadow: 0 18px 50px rgba(22,59,92,.16); backdrop-filter: blur(18px); transform-style: preserve-3d; }
.patient-card { top: 17%; left: 0; width: 245px; transform: translateZ(70px) rotateY(5deg); }
.card-label, .ready-card header, .visual-status { color: var(--blue); font-size: 8px; font-weight: 700; letter-spacing: .11em; }
.patient-card p { margin: 16px 0; font-size: 15px; line-height: 1.45; }
.patient-card > div { display: flex; gap: 6px; }.patient-card > div span { padding: 6px 8px; color: var(--blue); border-radius: 9px; background: rgba(92,155,205,.13); font-size: 8px; font-weight: 700; }
.ready-card { right: 0; bottom: 12%; width: 255px; transform: translateZ(90px) rotateY(-5deg); }
.ready-card header { display: flex; align-items: center; justify-content: space-between; }.ready-card header i { width: 7px; height: 7px; border-radius: 50%; background: #4db69a; box-shadow: 0 0 0 5px rgba(77,182,154,.12); }
.ready-card dl { margin: 15px 0 0; }.ready-card dl div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; border-top: 1px solid var(--line); }.ready-card dt { color: var(--muted); font-size: 9px; }.ready-card dd { margin: 0; font-size: 9px; font-weight: 700; text-align: right; }
.visual-status { position: absolute; bottom: 8%; left: 11%; display: flex; align-items: center; gap: 9px; padding: 11px 14px; color: white; border-radius: 99px; background: rgba(22,59,92,.8); backdrop-filter: blur(10px); }.visual-status span { width: 6px; height: 6px; border-radius: 50%; background: #82e3c6; box-shadow: 0 0 0 4px rgba(130,227,198,.15); }
.scroll-cue { position: absolute; z-index: 3; bottom: 32px; left: 50%; display: flex; align-items: center; gap: 12px; color: var(--blue); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transform: translateX(-50%); }.scroll-cue i { width: 1px; height: 26px; background: var(--blue); animation: scrollLine 1.8s ease-in-out infinite; }

@keyframes toothFloat { 50% { transform: translateY(-14px) rotateZ(1.3deg); } }
@keyframes scrollLine { 50% { transform: scaleY(.4); transform-origin: top; } }

.proof-strip { position: relative; z-index: 4; display: grid; grid-template-columns: repeat(3, 1fr) 1.25fr; width: var(--content); margin: -36px auto 0; border: 1px solid rgba(255,255,255,.65); border-radius: 22px; background: rgba(255,255,255,.78); box-shadow: 0 22px 60px rgba(22,59,92,.09); backdrop-filter: blur(18px); }
.proof-strip > div { padding: 25px 28px; border-right: 1px solid var(--line); }.proof-strip strong { font-size: 29px; letter-spacing: -.05em; }.proof-strip > div > span { color: var(--blue); font-size: 12px; font-weight: 700; }.proof-strip div p { margin: 5px 0 0; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }.proof-note { display: flex; align-items: center; margin: 0; padding: 26px 28px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.section { width: var(--content); margin: 0 auto; padding: 140px 0; }
.section-heading { max-width: 850px; margin-bottom: 65px; }.section-heading.split { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; max-width: none; align-items: end; }.section-heading.split > p { margin: 0 0 8px; color: var(--muted); font-size: 14px; line-height: 1.75; }
h2 { margin: 0; font-size: clamp(47px, 5.5vw, 78px); line-height: 1; letter-spacing: -.06em; font-weight: 500; }.section-heading h2 em { color: var(--water); }

.journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.journey-card { position: relative; min-height: 410px; padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: rgba(255,255,255,.55); overflow: hidden; transition: transform .3s, background .3s, border-color .3s; }
.journey-card:hover { border-color: rgba(92,155,205,.45); background: white; transform: translateY(-7px); }.journey-card.featured { color: white; border-color: var(--blue); background: var(--blue); box-shadow: 0 24px 70px rgba(47,111,159,.18); transform: translateY(-18px); }.journey-card.featured:hover { transform: translateY(-24px); }
.journey-card > span { color: var(--water); font-size: 10px; font-weight: 700; letter-spacing: .12em; }.journey-card.featured > span { color: var(--mist); }
.mini-icon { display: grid; width: 78px; height: 78px; margin: 64px 0 34px; color: var(--blue); border: 1px solid rgba(92,155,205,.25); border-radius: 22px; background: rgba(157,202,229,.14); place-items: center; }.mini-icon svg { width: 38px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }.journey-card.featured .mini-icon { color: white; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.09); }
.journey-card h3 { margin: 0; font-size: 23px; letter-spacing: -.04em; }.journey-card p { margin: 14px 0 25px; color: var(--muted); font-size: 13px; line-height: 1.7; }.journey-card.featured p { color: rgba(255,255,255,.68); }.journey-card small { position: absolute; bottom: 26px; color: var(--blue); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.journey-card.featured small { color: var(--mist); }

.experience { position: relative; display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; width: auto; max-width: none; padding: 130px max(32px, calc((100vw - 1180px) / 2)); color: white; background: var(--deep); overflow: hidden; }.experience::before { position: absolute; top: -30%; right: -10%; width: 760px; height: 760px; border-radius: 50%; background: radial-gradient(circle, rgba(92,155,205,.22), transparent 65%); content: ""; }.experience-copy { position: relative; z-index: 1; align-self: center; }.experience h2 { font-size: clamp(50px, 5vw, 75px); }.experience h2 em { color: var(--mist); }.experience-copy > p:not(.eyebrow) { max-width: 430px; margin: 25px 0; color: rgba(255,255,255,.6); font-size: 14px; line-height: 1.75; }.step-dots { display: flex; gap: 8px; margin-top: 40px; }.step-dots button { width: 34px; height: 4px; padding: 0; border: 0; border-radius: 9px; background: rgba(255,255,255,.19); cursor: pointer; }.step-dots button.active { background: var(--mist); }
.experience-console { position: relative; z-index: 1; border: 1px solid rgba(255,255,255,.16); border-radius: 26px; background: rgba(10,37,59,.76); box-shadow: 0 38px 90px rgba(0,0,0,.24); overflow: hidden; backdrop-filter: blur(10px); }
.console-top { display: flex; align-items: center; justify-content: space-between; height: 58px; padding: 0 22px; border-bottom: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.52); font-size: 8px; font-weight: 700; letter-spacing: .12em; }.console-top span { display: flex; align-items: center; gap: 9px; }.console-top i { width: 7px; height: 7px; border-radius: 50%; background: #6fe0bf; box-shadow: 0 0 0 5px rgba(111,224,191,.1); }.console-top b { color: var(--mist); }
.console-body { display: grid; grid-template-columns: 1fr 1fr; min-height: 500px; }.conversation-pane { display: flex; flex-direction: column; gap: 14px; padding: 36px 28px; border-right: 1px solid rgba(255,255,255,.11); }.conversation-pane p { max-width: 87%; margin: 0; padding: 15px 17px; border-radius: 17px; font-size: 12px; line-height: 1.65; }.assistant-message { color: rgba(255,255,255,.8); background: rgba(255,255,255,.08); }.patient-message { align-self: flex-end; color: var(--deep); background: var(--snow); }.console-options { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }.console-options button { padding: 9px 12px; color: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; background: transparent; font-size: 9px; cursor: pointer; }.console-options button.active { color: var(--deep); border-color: var(--mist); background: var(--mist); }
.context-pane { padding: 27px 25px; background: rgba(255,255,255,.035); }.context-pane header { display: flex; justify-content: space-between; padding-bottom: 24px; color: rgba(255,255,255,.47); font-size: 8px; font-weight: 700; letter-spacing: .1em; }.context-pane header b { display: flex; align-items: center; gap: 8px; color: var(--mist); }.context-pane header b i { width: 6px; height: 6px; border-radius: 50%; background: #efc66f; }.context-pane.ready header b i { background: #6fe0bf; }.context-pane dl { margin: 0; }.context-pane dl div { padding: 21px 0; border-top: 1px solid rgba(255,255,255,.11); transition: background .3s; }.context-pane dt { color: rgba(255,255,255,.36); font-size: 8px; }.context-pane dd { margin: 8px 0 0; color: rgba(255,255,255,.35); font-size: 14px; }.context-pane .filled dd { color: white; }.context-pane .filled { position: relative; }.context-pane .filled::after { position: absolute; top: 27px; right: 0; color: #6fe0bf; content: "✓"; font-size: 11px; }
