/* ClinicCore motion language: paper apertures, living type and a continuous care line. */
.motion-sr { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.motion-ribbon { min-height:36px; display:flex; background:var(--deep); color:var(--mint); font-size:10px; font-weight:700; letter-spacing:.08em; }
.ribbon-window { min-width:0; flex:1; overflow:hidden; display:flex; align-items:center; mask-image:linear-gradient(90deg,transparent,black 28px,black calc(100% - 28px),transparent); }
.ribbon-track { display:flex; width:max-content; }
.ribbon-copy { flex-shrink:0; display:flex; align-items:center; gap:38px; padding-right:38px; white-space:nowrap; }
.ribbon-copy i { font-style:normal; font-size:20px; line-height:1; }
.motion-ready .ribbon-track { animation:care-ribbon 36s linear infinite; animation-play-state:paused; }
.motion-ready .motion-ribbon.is-inview .ribbon-track { animation-play-state:running; }
@keyframes care-ribbon { to { transform:translateX(-50%); } }
#motion-toggle { flex-shrink:0; min-width:140px; min-height:44px; padding:7px 17px; display:flex; align-items:center; justify-content:center; gap:10px; background:#1b434b; color:var(--mint); border:0; border-left:1px solid #44666a; font-size:10px; letter-spacing:.02em; }
#motion-toggle:hover { background:#28545a; }
.motion-toggle-icon { font-size:16px; line-height:1; }
.hero { height:calc(100svh - 222px); }
.motion-ready .hero-art { animation:open-aperture 1.25s cubic-bezier(.2,.75,.2,1) both; }
@keyframes open-aperture { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0); } }
.motion-ready .hero-description,.motion-ready .hero-actions,.motion-ready .hero-bottom { animation:welcome-detail .8s cubic-bezier(.2,.75,.2,1) both; }
.motion-ready .hero-description { animation-delay:.35s; }
.motion-ready .hero-actions { animation-delay:.48s; }
.motion-ready .hero-bottom { animation-delay:.6s; }
@keyframes welcome-detail { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
.motion-ready .hero-kicker .cross { animation:care-mark-turn 9s cubic-bezier(.7,0,.2,1) infinite; animation-play-state:paused; }
.motion-ready .hero.is-inview .hero-kicker .cross { animation-play-state:running; }
@keyframes care-mark-turn { 0%,35% { rotate:0deg; } 55%,85% { rotate:90deg; } 100% { rotate:180deg; } }
.motion-ready .brand-mark { transition:transform .65s cubic-bezier(.2,.9,.25,1); }
.motion-ready .wordmark:hover .brand-mark { transform:rotate(90deg) scale(.9); }
.motion-label,.button .motion-label { position:relative; display:inline-block; overflow:hidden; white-space:pre; vertical-align:middle; font:inherit; font-size:inherit; line-height:1.45; }
.motion-label .roll-char,.button .roll-char { display:inline-block; position:relative; font:inherit; font-size:inherit; line-height:1.45; transition:transform .5s cubic-bezier(.2,.75,.2,1); transition-delay:calc(var(--char-order) * 10ms); }
.motion-control .motion-label,.motion-control .motion-label * { margin-left:0; }
.roll-char::after { content:attr(data-char); position:absolute; top:100%; left:0; }
.motion-control .motion-arrow { display:inline-flex; width:1.25em; height:1.25em; flex-shrink:0; vertical-align:middle; align-items:center; justify-content:center; }
.motion-arrow svg { display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.motion-arrow path { stroke-dasharray:1; stroke-dashoffset:0; }
@media (hover:hover) and (pointer:fine) {
  .motion-control:hover .roll-char { transform:translateY(-100%); }
  .motion-control:hover .motion-arrow path { animation:arrow-ink .6s cubic-bezier(.2,.75,.2,1) both; }
  .motion-control:hover .motion-arrow { animation:arrow-nudge .6s cubic-bezier(.2,.75,.2,1) both; }
}
.motion-control:focus-visible .roll-char { transform:translateY(-100%); }
.motion-control:focus-visible .motion-arrow path { animation:arrow-ink .6s both; }
@keyframes arrow-ink { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes arrow-nudge { 45% { transform:translate(3px,-3px); } 100% { transform:none; } }
.button.motion-control { position:relative; isolation:isolate; overflow:hidden; transition:background .3s,color .3s,box-shadow .3s; }
.button.motion-control:hover { transform:none; box-shadow:inset 0 0 0 1px currentColor; }
.button.motion-control::before { content:""; position:absolute; inset:0; background:currentColor; opacity:.1; transform:translateY(102%); transition:transform .5s cubic-bezier(.2,.75,.2,1); z-index:-1; }
.button.motion-control:hover::before,.button.motion-control:focus-visible::before { transform:none; }
.site-footer nav a,.device-platforms a,.hero-watch { text-decoration-color:transparent; text-underline-offset:5px; transition:text-decoration-color .25s; }
.site-footer nav a:hover,.device-platforms a:hover,.hero-watch:hover { text-decoration:underline; text-decoration-color:currentColor; }
.motion-word { display:inline-block; overflow:clip; vertical-align:bottom; padding-bottom:.07em; margin-bottom:-.07em; }
.motion-word-inner { display:block; }
.motion-ready .motion-heading:not(.motion-seen) .motion-word-inner { transform:translateY(112%) rotate(2deg); }
.motion-heading.motion-seen .motion-word-inner { animation:word-curtain .95s cubic-bezier(.2,.75,.2,1) both; animation-delay:calc(var(--word-order) * 48ms); }
@keyframes word-curtain { from { transform:translateY(112%) rotate(2deg); } to { transform:none; } }
.motion-heading .motion-word-inner { color:inherit; }
.motion-ready .motion-row:not(.motion-seen) { opacity:0; transform:translateY(25px); }
.motion-row.motion-seen { animation:welcome-detail .75s cubic-bezier(.2,.75,.2,1) both; animation-delay:calc(var(--row-order,0) * 65ms); }
.feature-list details { position:relative; }
.feature-list details::before { content:""; position:absolute; left:0; top:-1px; width:100%; height:1px; background:var(--mint); transform:scaleX(0); transform-origin:left; transition:transform .65s cubic-bezier(.2,.75,.2,1); }
.feature-list details:hover::before,.feature-list details[open]::before { transform:scaleX(1); }
.feature-list summary h3 { transition:translate .4s cubic-bezier(.2,.75,.2,1); }
.feature-list summary:hover h3 { translate:7px 0; }
.feature-list details[data-closing] .plus { transform:rotate(0); }
.faq-list details[data-closing] summary > span { transform:rotate(0); }
details[data-animating] { overflow:hidden; }
.question-search > div { position:relative; }
.question-search > div::after { content:""; position:absolute; bottom:-1px; inset-inline:0; height:2px; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.question-search > div:focus-within::after { transform:scaleX(1); }
.clinic-collage { isolation:isolate; }
.clinic-collage > :not(.care-trace) { z-index:1; }
.care-trace { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; z-index:0; }
.care-trace path { fill:none; stroke:#7ca69b; stroke-width:1.2; vector-effect:non-scaling-stroke; stroke-dasharray:1; stroke-dashoffset:var(--trace-rest,0); opacity:.5; }
.care-trace path:nth-child(2) { opacity:.3; }
.care-trace path:nth-child(3) { opacity:.18; }
.motion-photo-surface { width:100%; height:100%; overflow:hidden; position:relative; }
.motion-photo-surface > img { height:calc(100% + 80px); position:absolute; top:-40px; left:0; object-fit:cover; transform:translateY(var(--photo-y,0px)); }
.collage-one { translate:0 var(--collage-y,0px); }
.collage-two { translate:0 var(--collage-y,0px); }
.collage-three { translate:0 var(--collage-y,0px); }
.motion-ready .motion-photo-surface:not(.motion-seen) { clip-path:inset(0 0 100%); }
.motion-photo-surface.motion-seen { animation:photo-curtain 1.15s cubic-bezier(.2,.75,.2,1) both; }
@keyframes photo-curtain { from { clip-path:inset(0 0 100%); } to { clip-path:inset(0); } }
.motion-ready .collage-photo img { transition:filter .55s; }
.collage-photo:hover img { filter:saturate(1.08); }
.device-photo > img { height:calc(100% + 100px); position:absolute; top:-50px; transform:translateY(var(--photo-y,0px)); }
.human-banner > img { transform:translateY(var(--photo-y,0px)) scale(var(--banner-scale,1.08)); transform-origin:center; }
.human-copy { transform:translateY(var(--copy-y,0px)); }
.product-theatre { position:relative; isolation:isolate; background:var(--deep); padding:100px 7% 65px; overflow:hidden; perspective:1800px; }
.stage-grid { position:absolute; inset:0; z-index:-1; background-image:linear-gradient(#86b2a21a 1px,transparent 1px),linear-gradient(90deg,#86b2a21a 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(transparent,#0009 55%,transparent); transform:perspective(600px) rotateX(24deg) scale(1.3); }
.product-theatre .screen-stage { position:relative; z-index:2; width:100%; border:1px solid #9bbbaf; box-shadow:0 40px 70px #041e25aa; transform:translateY(var(--stage-y,0px)) rotateX(var(--stage-rx,0deg)) rotateY(var(--stage-ry,0deg)); transform-origin:50% 45%; }
.product-theatre:focus-within .screen-stage { transform:none; }
.stage-satellite { width:44%; padding:7px; background:#aacbbb; border:1px solid #789b8e; position:absolute; top:38px; opacity:.6; z-index:1; pointer-events:none; box-shadow:0 18px 35px #061f2670; }
.stage-satellite img { aspect-ratio:3/2; object-fit:contain; }
.satellite-left { left:4%; transform:translateX(var(--spread-left,0px)) translateY(var(--satellite-y,0px)) rotate(-9deg); }
.satellite-right { right:4%; transform:translateX(var(--spread-right,0px)) translateY(var(--satellite-y,0px)) rotate(9deg); }
.demo-facts { display:grid; grid-template-columns:1fr 1fr 1fr; gap:45px; padding:42px 0; border-bottom:1px solid var(--line); }
.demo-facts > p { display:flex; align-items:center; gap:20px; }
.demo-facts strong { font-family:var(--display); font-size:clamp(60px,6vw,90px); font-weight:600; line-height:1; letter-spacing:-.04em; color:var(--teal); flex-shrink:0; }
.demo-facts p > span { max-width:180px; font-size:12px; line-height:1.6; }
.demo-facts .demo-fact-note { font-size:20px; line-height:1.45; justify-content:flex-end; letter-spacing:-.025em; }
.number-window { display:inline-flex; height:1em; overflow:hidden; vertical-align:top; }
.digit-reel { display:block; transform:translateY(calc(var(--digit-end) * -1em)); }
.digit-reel > span { display:block; height:1em; line-height:1em; }
.motion-ready [data-roll-number]:not(.motion-seen) .digit-reel { transform:translateY(0); }
[data-roll-number].motion-seen .digit-reel { animation:number-reel 1.45s cubic-bezier(.2,.75,.2,1) both; animation-delay:calc(var(--digit-order) * 90ms); }
@keyframes number-reel { from { transform:translateY(0); } to { transform:translateY(calc(var(--digit-end) * -1em)); } }
.care-cycle { display:grid; grid-template-columns:340px 1fr; column-gap:95px; row-gap:58px; align-items:center; padding-top:80px; }
.cycle-visual { aspect-ratio:1; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.cycle-visual svg { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke-width:1; transform:rotate(-90deg); }
.cycle-base { stroke:#547572; }
.cycle-clock { stroke:var(--mint); stroke-width:2; stroke-dasharray:1; stroke-dashoffset:var(--cycle-offset,.667); }
.cycle-number { font-family:var(--display); font-size:135px; font-weight:500; line-height:1; color:var(--mint); }
.cycle-label { font-size:9px; font-weight:700; letter-spacing:.09em; margin-top:18px; }
.cycle-orbit { position:absolute; top:16px; right:24px; background:var(--deep); padding:7px; font-size:29px; line-height:1; color:var(--mint); transition:rotate .7s; rotate:var(--cycle-turn,0deg); }
.cycle-story { position:relative; padding:32px 35px; min-width:0; }
.cycle-story::before,.cycle-story::after { content:""; position:absolute; height:22px; width:22px; border-color:#83aaa1; border-style:solid; transition:translate .6s; }
.cycle-story::before { left:0; top:0; border-width:1px 0 0 1px; translate:var(--corner-x,0px) 0; }
.cycle-story::after { right:0; bottom:0; border-width:0 1px 1px 0; translate:calc(var(--corner-x,0px) * -1) 0; }
.cycle-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:27px; }
.cycle-heading .eyebrow { color:#b5d4ca; font-size:10px; }
#cycle-play { display:inline-flex; background:none; color:var(--mint); border:1px solid #547572; min-height:44px; min-width:90px; padding:8px 14px; font-size:11px; }
#cycle-play:hover { background:#25474c; }
#cycle-play:disabled { opacity:.65; }
.cycle-copy { min-height:180px; }
.cycle-copy h3 { font-size:clamp(40px,4.6vw,68px); font-weight:500; max-width:550px; }
.cycle-copy p { font-size:15px; max-width:490px; line-height:1.8; color:#c5d9d3; margin-top:25px; }
#cycle-demo { display:inline-flex; align-items:center; margin-top:30px; color:var(--mint); min-height:44px; }
#cycle-demo > span:first-child { margin-left:0; }
.motion-shortcut { width:44px; min-height:44px; flex-shrink:0; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--ink); font-size:15px; }
.motion-shortcut:hover { background:var(--mint); }
.motion-shortcut[aria-pressed=true] { background:var(--deep); color:var(--mint); }
.cycle-steps { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.cycle-steps button { text-align:left; background:none; color:#bed3ce; border:0; border-top:1px solid #4c6d6e; padding:23px 0 14px; font-family:var(--display); font-size:28px; line-height:1.2; position:relative; }
.cycle-steps button > span { display:block; margin-bottom:12px; font-family:var(--body); font-size:10px; font-weight:600; letter-spacing:.05em; }
.cycle-steps button::before { content:""; position:absolute; top:-1px; left:0; right:0; height:2px; background:var(--mint); transform:scaleX(0); transform-origin:left; transition:transform .6s; }
.cycle-steps button[aria-pressed=true] { color:var(--mint); }
.cycle-steps button[aria-pressed=true]::before { transform:scaleX(1); }
.resource-card { transition:transform .35s; }
.resource-card .resource-art { transform-origin:center; }
.resource-card:hover .resource-art { transform:translateY(-4px); }
.resource-art { transition:transform .45s cubic-bezier(.2,.75,.2,1),clip-path .5s; }
.carousel-controls button { overflow:hidden; }
.resource-meta { position:relative; }
.resource-meta::before { content:""; position:absolute; top:-1px; left:0; right:0; height:1px; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:transform .65s; }
.resource-card:hover .resource-meta::before { transform:scaleX(1); }
.mobile-menu { overflow-y:auto; }
.mobile-menu nav a { overflow:hidden; transition:color .25s,padding-left .45s; }
.mobile-menu nav a:hover { color:var(--mint); padding-left:10px; }
.menu-toggle { overflow:hidden; }
.menu-toggle span { transition:width .3s,transform .3s; }
.menu-toggle:hover span:last-child { width:18px; }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }
.footer-type > .footer-letter { font:inherit; color:inherit; letter-spacing:inherit; }
.footer-letter { display:inline-block; transform-origin:50% 100%; }
.motion-ready .footer-type:not(.motion-seen) .footer-letter { opacity:.2; transform:translateY(80%) rotateX(45deg); }
.footer-type.motion-seen .footer-letter { animation:footer-rise 1.1s cubic-bezier(.2,.75,.2,1) both; animation-delay:calc(var(--letter-order) * 45ms); }
@keyframes footer-rise { from { opacity:.2; transform:translateY(80%) rotateX(45deg); } to { opacity:1; transform:none; } }
.site-footer .footer-type { overflow:hidden; gap:0; flex-wrap:nowrap; font-size:20vw; }
@media (max-width:700px) { .site-footer .footer-type { font-size:18.8vw; } }
html[data-page-visible=false] *,html[data-motion=paused] * { animation-play-state:paused!important; }
html[data-motion=paused] { scroll-behavior:auto; }
html[data-motion=paused] *,html[data-motion=paused] *::before,html[data-motion=paused] *::after { animation:none!important; transition:none!important; }
html[data-motion=paused] .motion-heading .motion-word-inner,html[data-motion=paused] .motion-row,html[data-motion=paused] .footer-letter { opacity:1!important; transform:none!important; }
html[data-motion=paused] .hero-art,html[data-motion=paused] .motion-photo-surface { clip-path:none!important; }
html[data-motion=paused] .collage-photo { translate:none; }
html[data-motion=paused] .screen-stage,html[data-motion=paused] .human-copy { transform:none!important; }
html[data-motion=paused] .motion-photo-surface > img,html[data-motion=paused] .device-photo > img { transform:none; }
html[data-motion=paused] .care-trace path { stroke-dashoffset:0!important; }
html[data-motion=paused] .roll-char { transform:none!important; }
html[data-motion=paused] .digit-reel { transform:translateY(calc(var(--digit-end) * -1em))!important; }
@media(max-width:1100px) {
  .care-cycle { grid-template-columns:270px 1fr; gap:45px; }
  .cycle-number { font-size:110px; }
  .cycle-story { padding:25px; }
  .cycle-copy { min-height:210px; }
  .product-theatre { padding:80px 4% 40px; }
  .demo-facts { gap:25px; }
  .demo-facts > p { gap:14px; }
}
@media(max-width:700px) {
  .chapter-dock a { padding-inline:11px; }
  .motion-ribbon { min-height:44px; font-size:9px; }
  #motion-toggle { min-width:120px; padding:8px 12px; font-size:10px; }
  .ribbon-copy { gap:25px; padding-right:25px; }
  .hero { height:auto; }
  .product-theatre { margin:0 -24px; padding:55px 18px 24px; }
  .product-theatre .screen-stage { padding:18px 12px 0; }
  .stage-satellite { top:16px; width:49%; padding:4px; opacity:.5; }
  .satellite-left { left:1%; }
  .satellite-right { right:1%; }
  .demo-facts { grid-template-columns:1fr 1fr; gap:25px; padding:30px 0; }
  .demo-facts > p { display:block; }
  .demo-facts strong { font-size:65px; }
  .demo-facts p > span { display:block; margin-top:10px; font-size:11px; }
  .demo-facts .demo-fact-note { display:none; }
  .care-cycle { display:block; padding-top:45px; }
  .cycle-visual { width:190px; margin:0 auto 30px; }
  .cycle-number { font-size:78px; }
  .cycle-label { font-size:7px; margin-top:10px; }
  .cycle-orbit { top:8px; right:10px; font-size:20px; }
  .cycle-story { padding:20px 18px; }
  .cycle-heading { margin-bottom:25px; gap:10px; }
  .cycle-heading .eyebrow { font-size:9px; }
  .cycle-copy { min-height:185px; }
  .cycle-copy h3 { font-size:42px; }
  .cycle-copy p { font-size:13px; margin-top:18px; }
  #cycle-demo { font-size:12px; margin-top:15px; }
  .cycle-steps { margin-top:35px; gap:12px; }
  .cycle-steps button { font-size:21px; padding-top:17px; }
  .cycle-steps button > span { font-size:8px; }
  .care-trace { opacity:.65; }
  .mobile-menu nav { padding:45px 0; gap:15px; }
  .mobile-menu nav a { font-size:clamp(30px,8vw,40px); }
}
@media(prefers-reduced-motion:reduce) {
  .motion-heading .motion-word-inner,.motion-row,.footer-letter { opacity:1!important; transform:none!important; }
  .hero-art,.motion-photo-surface { clip-path:none!important; }
  .collage-photo { translate:none; }
  .screen-stage,.human-copy { transform:none!important; }
  .motion-photo-surface > img,.device-photo > img { transform:none; }
  .care-trace path { stroke-dashoffset:0!important; }
  .roll-char { transform:none!important; }
  .digit-reel { transform:translateY(calc(var(--digit-end) * -1em))!important; }
}
