@font-face {
  font-family: SUITE;
  src: url('assets/SUITE-Variable.woff2') format('woff2');
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}
/* Informational type is deliberately separate from the emotional headline. */
body {font-family: SUITE, sans-serif; font-weight: 400; letter-spacing: 0; line-height: 1.8;}
h1,h2,h3 {font-family: SUITE, sans-serif; font-weight: 600!important; letter-spacing: -.025em;}
.nav-heading,.mobile-nav summary,.eyebrow,.purpose-card summary strong,.purpose-flyout-content h3,
.service-title h3,.section-heading,.equipment-card h3,.phone-number,.info-grid h2,
.home-doctor-copy h3,.doctor-info h2,.equipment-copy h3,.page-head h1,.footer-brand strong,
.floor-list strong,.ui-dialog h2,.consult-heading strong {font-family: SUITE, sans-serif;}
.nav-heading {font-size: 16px; letter-spacing: -.01em; font-weight: 500;}
.eyebrow {font-size: 11px; font-weight: 500; letter-spacing: .18em;}
.purpose-card summary strong {font-weight: 500; font-size: 21px; letter-spacing: -.025em;}
.purpose-flyout-content h3 {font-weight: 500!important; letter-spacing: -.01em;}
.section-lead,.equipment-card p,.notice-list span,.hours-note {font-weight: 400;}
.button,.text-link {letter-spacing: 0;}
.consult-heading strong {font-weight: 600; font-size: 19px; letter-spacing: -.025em; line-height: 1.4;}
.consult-heading small {font-family: SUITE,sans-serif; font-weight: 400;}
.consult-form,.consult-submit {font-family: SUITE,sans-serif;}
.facility-overlay h2 {font-family: SUITE,sans-serif; font-size: 36px; font-weight: 500!important; line-height: 1.6; letter-spacing: -.035em;}
.home-doctor-copy h3 {font-weight: 600!important; letter-spacing: -.025em;}
.doctors-intro h2 {font-family: Ridi,Gowun,serif; font-weight: 400!important; letter-spacing: .04em;}
.doctors-intro p {font-family: SUITE,sans-serif; font-size: 20px; line-height: 1.9; letter-spacing: -.01em;}
.airy-hero h1 {font-family: Gowun,serif; font-weight: 400!important; letter-spacing: .24em;}
.airy-hero-copy p {font-family: SUITE,sans-serif; font-weight: 400; font-size: 16px; letter-spacing: .035em;}
html[lang=en] .nav-heading,html[lang=en] .purpose-card summary strong,
html[lang=en] .home-doctor-copy h3,html[lang=en] .consult-heading strong {font-family: SUITE,sans-serif;}
html[lang=en] .nav-heading {font-size: 14px;}
html[lang=en] .doctors-intro h2 {font-family: Georgia,serif; font-weight: 400!important;}

.social-icon.instagram {filter: grayscale(1); transition: filter .25s,transform .25s;}
.social-icon.instagram:hover,.social-icon.instagram:focus-visible {filter: grayscale(0);}

.airy-hero {height: clamp(480px,46vw,690px); isolation: isolate;}
.hero-visual {position: absolute; inset: 0; opacity: 0; transition: opacity 1.15s ease;}
.hero-visual.is-active {opacity: 1;}
.hero-video {width: 100%; height: 100%; object-fit: cover; object-position: center;}
.hero-video-slide::after {content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#f3f7f9bb,#edf4f6a8 70%,#eef4f6b8); pointer-events: none;}
.hero-visual .hero-photo {width: 100%; height: 100%; object-fit: cover; object-position: center; transform: translate3d(-4%,0,0) scale(1.14); will-change: transform;}
.hero-visual:nth-child(2)::after {content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#eef3f6aa,#f4f7f9a8 45%,#edf3f855);}
.airy-hero::after {z-index: 0;}
.airy-hero-copy {z-index: 2; transform: translate(-50%,-50%); transition: opacity .55s;}
.airy-hero-copy h1,.airy-hero-copy p {animation: none;}
.airy-hero-copy.is-changing {opacity: .3;}
.hero-side-note {z-index: 2;}
.hero-controls {position: absolute; left: max(7.5%,24px); bottom: 36px; z-index: 4; display: flex; align-items: center; gap: 25px; color: #17394f;}
.hero-count {display: flex; align-items: center; gap: 15px; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums;}
.hero-current {width: 18px;}
.hero-progress {display: block; width: 170px; height: 2px; background: #274f6b32; overflow: hidden;}
.hero-progress-fill {display: block; width: 100%; height: 100%; background: #214965; transform: scaleX(0); transform-origin: left;}
.hero-total {white-space: nowrap; color: #456378;}
.hero-buttons {display: flex; gap: 3px;}
.hero-buttons button {display: grid; place-items: center; width: 44px; height: 44px; padding: 12px; border: 1px solid #315b732b; background: #ffffff5c; border-radius: 50%; transition: background .2s;}
.hero-buttons button:hover {background: #ffffffce;}
.hero-buttons button img {width: 16px; height: 16px;}
.hero-buttons button:disabled {opacity: .45; cursor: default;}

.heart-section,.heart-layout {min-height: 590px;}
.heart-photo {right: 34%;}
.heart-photo img {object-position: 34% center; transform: scale(1.18);}
.heart-copy {grid-column: 2; justify-self: center; transform: none;}
.manuscript-column {grid-template-rows: repeat(12,31px);}
.manuscript-column span {height: 31px; width: 31px; font-size: 20px;}
.manuscript-ko {gap: 19px;}
.manuscript-en {min-height: 355px;}
.heart-copy>.text-link {margin-top: 26px;}
.scene-photo {transform: scale(1.25);}
.doctors-scene-background {transform: scale(1.18);}
/* Scroll controls a long entrance; a clamped middle interval stays still. */
.motion-ready main [data-reveal],
.motion-ready main [data-reveal]:not(.in-view):not(:focus-within) {
  opacity: var(--entrance-opacity,1);
  transform: translate3d(var(--entrance-x,0px),var(--entrance-y,0px),0);
  transition: none;
}
.motion-ready main [data-reveal]:focus-within {opacity: 1!important;}
.airy-care {overflow: clip;}

.intro {background: transparent; overflow: hidden; transition: none;}
.intro::before,.intro::after {content: ''; position: absolute; left: 0; right: 0; height: calc(50% + 1px); background: #f2f7fa; transition: transform .82s cubic-bezier(.76,0,.24,1);}
.intro::before {top: 0; background: linear-gradient(#fafcfd,#f2f7fa);}
.intro::after {bottom: 0; background: linear-gradient(#f2f7fa,#eaf3f7);}
.intro-inner {position: relative; z-index: 1; width: calc(100% - 40px); animation: none; transition: opacity .4s,transform .65s;}
.intro-mark {position: relative; display: grid; place-items: center; width: 104px; height: 104px; margin: 0 auto 32px;}
.intro-mark img {width: 70px; height: 70px; margin: 0; animation: intro-symbol 1.1s cubic-bezier(.16,1,.3,1) both;}
.intro-mark .intro-orbit {position: absolute; inset: 0; margin: 0; border: 1px solid #8dabb755; border-top-color: #6c8fa3; border-left-color: transparent; border-radius: 50%; animation: intro-orbit 2s cubic-bezier(.22,1,.36,1) both;}
.intro-orbit.secondary {inset: -14px; border-color: #afc7d130; border-bottom-color: #8daab5aa; animation-direction: reverse;}
.intro-inner p {font-family: Gowun,serif; font-weight: 400; font-size: clamp(20px,3.2vw,44px); letter-spacing: .24em; line-height: 1.65; white-space: nowrap; color: #31546a; animation: intro-phrase 1.25s .28s cubic-bezier(.16,1,.3,1) both;}
.intro-inner .intro-name {font-family: SUITE,sans-serif; font-weight: 400; letter-spacing: .25em; font-size: 12px; margin-top: 24px; color: #8298a5; animation: intro-name .9s .8s both;}
.intro-track {height: 1px; width: 164px; overflow: hidden; margin: 31px auto 0; background: #b7cbd53b;}
.intro-track i {display: block; height: 100%; width: 100%; background: #64899e; transform-origin: left; animation: intro-line 1.85s .15s cubic-bezier(.4,0,.2,1) both;}
.intro button {z-index: 2; transition: opacity .2s; font-family: SUITE,sans-serif;}
.intro.is-leaving {opacity: 1; visibility: visible; pointer-events: none;}
.intro.is-leaving::before {transform: translateY(-100%);}
.intro.is-leaving::after {transform: translateY(100%);}
.intro.is-leaving .intro-inner {opacity: 0; transform: translateY(-28px);}
.intro.is-leaving button {opacity: 0;}
@keyframes intro-symbol {from {opacity: 0; transform: scale(.62) rotate(-16deg);} to {opacity: 1; transform: scale(1) rotate(0);}}
@keyframes intro-orbit {0% {opacity: 0; transform: scale(.7) rotate(-85deg);} 30% {opacity: .8;} 100% {opacity: 0; transform: scale(1.1) rotate(150deg);}}
@keyframes intro-phrase {from {opacity: 0; filter: blur(5px); transform: translateY(23px); clip-path: inset(0 100% 0 0);} to {opacity: 1; filter: blur(0); transform: none; clip-path: inset(0);}}
@keyframes intro-name {from {opacity: 0; transform: translateY(10px);} to {opacity: 1; transform: none;}}
@keyframes intro-line {from {transform: scaleX(0);} to {transform: scaleX(1);}}

@media(max-width:900px) {
  .airy-hero {height: 540px;}
  .hero-controls {left: 24px; bottom: 28px; gap: 16px;}
  .hero-progress {width: 125px;}
  .heart-section,.heart-layout {min-height: 560px;}
  .heart-photo {right: 25%;}
}
@media(max-width:640px) {
  .intro-inner p {font-size: clamp(16px,4.7vw,25px); letter-spacing: .15em;}
  html[lang=en] .intro-inner p {font-size: clamp(13px,3.7vw,22px); letter-spacing: .025em;}
  .airy-hero {height: 470px;}
  .airy-hero h1 {letter-spacing: .14em;}
  .airy-hero-copy p {font-size: 13px; margin-top: 22px;}
  .hero-controls {left: 20px; right: 20px; bottom: 22px; justify-content: space-between; gap: 8px;}
  .hero-count {gap: 10px; font-size: 10px;}
  .hero-progress {width: clamp(62px,20vw,96px);}
  .hero-buttons {gap: 2px;}
  .hero-buttons button {width: 40px; height: 40px; padding: 11px;}
  .hero-side-note {bottom: 94px;}
  .heart-section {min-height: 680px;}
  .heart-photo {inset: 0 0 auto; height: 370px;}
  .heart-photo img {object-position: 30% center;}
  .heart-layout {min-height: 680px; padding-top: 210px; padding-bottom: 45px;}
  .heart-copy {align-self: center; padding: 20px 30px 0;}
  .manuscript-column {grid-template-rows: repeat(12,28px);}
  .manuscript-column span {height: 28px; width: 28px; font-size: 19px;}
  .manuscript-en {width: 240px; min-height: 340px;}
  .purpose-card summary strong {font-size: 19px;}
  .consult-heading strong {font-size: 16px; font-weight: 600;}
  .consult-heading small {font-size: 9px;}
  .facility-overlay h2 {font-size: 30px; letter-spacing: -.035em;}
  .doctors-intro p {font-size: 17px;}
  html[lang=en] .consult-heading strong {font-size: 13px;}
  html[lang=en] .consult-heading small {font-size: 8px;}
  html[lang=en] .airy-hero h1 {font-size: clamp(14px,3.7vw,20px); letter-spacing: .035em;}
  html[lang=en] .purpose-card summary strong {font-size: 18px;}
}
@media(prefers-reduced-motion:reduce) {
  .intro-inner,.intro-mark img,.intro-orbit,.intro-inner p,.intro-name,.intro-track i {animation: none!important; transition: none!important;}
  .intro::before,.intro::after {transition: none;}
  .hero-visual {transition: none;}
  .hero-visual .hero-photo {transform: none!important; will-change: auto;}
  .airy-hero-copy {transform: translate(-50%,-50%); opacity: 1!important;}
  .heart-photo img,.scene-photo,.doctors-scene-background,.motion-ready [data-reveal],.heart-copy {transform: none!important; transition: none!important;}
}
