/* Original clinic logo; all motion is decorative and optional. */
#dp-intro {
  position: fixed; inset: 0; z-index: 2147483000; overflow: hidden;
  display: grid; place-items: center; isolation: isolate;
  background: #f7f3eb; color: #293f50;
  font-family: Arial, sans-serif;
  transition: opacity .62s ease, visibility .62s;
  -webkit-font-smoothing: antialiased;
}
#dp-intro::before {
  content: ""; position: absolute; inset: -30%; z-index: -2;
  background: radial-gradient(ellipse at 50% 43%, #fffdf6 0, #fcf8ec 21%, transparent 54%),
    radial-gradient(ellipse at 7% 85%, #c7d8dc99, transparent 47%),
    radial-gradient(ellipse at 89% 17%, #e4d1a777, transparent 43%), #f7f3eb;
  animation: dp-atmosphere 5s ease-in-out both;
}
#dp-intro::after {
  content: ""; position: absolute; inset: 20px; z-index: -1;
  border: 1px solid #b6a47f38; pointer-events: none;
}
#dp-intro .dp-intro-light {
  position: absolute; left: 50%; top: 42%; width: min(140vw, 1600px); height: min(110vh, 1100px);
  background: conic-gradient(from 210deg, transparent 0 26deg, #cfb7791c 28deg, transparent 30deg 79deg,
    #fffdf299 84deg, transparent 90deg 146deg, #cfb77918 152deg, transparent 159deg 360deg);
  transform: translate(-50%, -50%) rotate(-15deg); opacity: .7;
  animation: dp-light 5s ease-out both; pointer-events: none;
}
#dp-intro .dp-intro-orbit {
  position: absolute; left: 50%; top: 43%; width: min(78vw, 830px); aspect-ratio: 1;
  border: 1px solid #ae936331; border-radius: 50%;
  transform: translate(-50%, -50%) scaleY(.69) rotate(-28deg);
  animation: dp-orbit-in 1.6s cubic-bezier(.2,.65,.25,1) both;
}
#dp-intro .dp-intro-orbit--two {
  width: min(93vw, 1050px); border-color: #35566813;
  transform: translate(-50%, -50%) scaleY(.62) rotate(28deg);
  animation-delay: .12s;
}
#dp-intro .dp-intro-orbit::after {
  content: ""; position: absolute; width: 7px; height: 7px; right: 18%; top: 10%;
  background: #cfac62; box-shadow: 0 0 22px 5px #dbbe7780; border-radius: 50%;
}
#dp-intro .dp-intro-center {
  width: min(88vw, 1000px); text-align: center; position: relative;
  padding: 30px 0 44px; transform: translateY(-1vh);
}
#dp-intro .dp-intro-eyebrow {
  margin: 0 0 29px; font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: #6c756f; line-height: 1.6;
  animation: dp-text-in 1s .18s both;
}
#dp-intro .dp-intro-emblem {
  width: clamp(170px, 20vw, 246px); height: clamp(170px, 20vw, 246px);
  margin: 0 auto 24px; position: relative; display: grid; place-items: center;
  perspective: 900px;
}
#dp-intro .dp-intro-emblem::before {
  content: ""; position: absolute; inset: -32px; border-radius: 50%;
  background: radial-gradient(circle, #fffae1cc, #eed39a3d 40%, transparent 70%);
  animation: dp-glow 3.2s ease-out both;
}
#dp-intro .dp-intro-ring {
  position: absolute; inset: -17px; width: calc(100% + 34px); height: calc(100% + 34px);
  overflow: visible; transform: rotate(-90deg);
}
#dp-intro .dp-intro-ring circle {
  fill: none; stroke: #baa16c; stroke-width: .6;
  stroke-dasharray: 628.32; stroke-dashoffset: 628.32;
  animation: dp-ring-draw 1.9s .1s cubic-bezier(.32,.1,.2,1) forwards;
}
#dp-intro .dp-intro-ring circle:last-child {
  stroke: #d2bf9766; stroke-width: .35; stroke-dasharray: 579;
  stroke-dashoffset: 579; animation-delay: .35s;
}
#dp-intro .dp-intro-logo {
  width: 100%; height: auto; display: block; position: relative;
  filter: drop-shadow(0 16px 17px #88692722);
  transform-origin: 50% 70%;
  animation: dp-logo-in 1.35s cubic-bezier(.18,.7,.25,1) both;
}
#dp-intro .dp-intro-title {
  margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400;
  font-size: clamp(40px, 5.2vw, 76px); line-height: 1.12; letter-spacing: -.035em;
  animation: dp-text-in 1.15s .35s both;
}
#dp-intro .dp-intro-subtitle {
  margin: 17px 0 0; font-size: clamp(10px, 1.1vw, 13px); line-height: 1.7;
  letter-spacing: .23em; text-transform: uppercase; color: #64736f;
  animation: dp-text-in 1.1s .52s both;
}
#dp-intro .dp-intro-rule {
  width: 90px; height: 1px; margin: 26px auto 0;
  background: linear-gradient(90deg, transparent, #b69b62, transparent);
  transform-origin: center; animation: dp-rule-in 1.5s .75s both;
}
#dp-intro .dp-intro-footer {
  position: absolute; bottom: max(46px, env(safe-area-inset-bottom)); left: 25px; right: 25px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(10px, 4vw, 64px); color: #6c756f;
  font-size: 9px; line-height: 1.7; text-transform: uppercase; letter-spacing: .2em;
  animation: dp-text-in 1s .7s both;
}
#dp-intro .dp-intro-footer span:last-child { color: #8d7a55; }
#dp-intro .dp-intro-speck {
  position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #bc9c5b;
  box-shadow: 0 0 10px #cbb67b55;
  left: var(--x); top: var(--y); opacity: 0;
  animation: dp-speck 3.4s var(--delay) ease-out both;
}
#dp-intro.dp-intro-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes dp-logo-in {
  from { opacity: 0; transform: translateY(25px) rotateX(18deg) scale(.88); filter: blur(5px) drop-shadow(0 20px 20px #88692722); }
  to { opacity: 1; transform: translateY(0) rotateX(0) scale(1); filter: blur(0) drop-shadow(0 16px 17px #88692722); }
}
@keyframes dp-text-in { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dp-ring-draw { to { stroke-dashoffset: 0; } }
@keyframes dp-glow { from { opacity: 0; transform: scale(.7); } 50% { opacity: 1; } to { opacity: .8; transform: scale(1.12); } }
@keyframes dp-rule-in { from { opacity: 0; transform: scaleX(.1); } to { opacity: 1; transform: scaleX(1); } }
@keyframes dp-atmosphere { from { transform: scale(1.06); opacity: .6; } to { transform: scale(1); opacity: 1; } }
@keyframes dp-light { from { opacity: 0; transform: translate(-50%, -50%) rotate(-30deg); } to { opacity: .7; transform: translate(-50%, -50%) rotate(0deg); } }
@keyframes dp-orbit-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes dp-speck { 0% { opacity: 0; transform: translateY(16px); } 35%, 75% { opacity: .55; } 100% { opacity: 0; transform: translateY(-26px); } }
@media (max-width: 600px) {
  #dp-intro::after { inset: 12px; }
  #dp-intro .dp-intro-center { width: calc(100% - 40px); padding-bottom: 30px; }
  #dp-intro .dp-intro-emblem { margin-bottom: 28px; }
  #dp-intro .dp-intro-eyebrow { font-size: 8px; letter-spacing: .24em; margin-bottom: 27px; }
  #dp-intro .dp-intro-title { max-width: 320px; margin: 0 auto; font-size: clamp(38px, 9.8vw, 55px); }
  #dp-intro .dp-intro-subtitle { max-width: 260px; margin: 18px auto 0; font-size: 9px; letter-spacing: .19em; }
  #dp-intro .dp-intro-orbit { width: 130vw; }
  #dp-intro .dp-intro-orbit--two { width: 163vw; }
  #dp-intro .dp-intro-footer { bottom: max(34px, env(safe-area-inset-bottom)); flex-direction: column; gap: 7px; font-size: 8px; text-align: center; }
}
@media (max-height: 650px) {
  #dp-intro .dp-intro-emblem { width: 145px; height: 145px; margin-bottom: 16px; }
  #dp-intro .dp-intro-eyebrow { margin-bottom: 18px; }
  #dp-intro .dp-intro-title { font-size: clamp(36px, 6vw, 54px); }
  #dp-intro .dp-intro-subtitle { margin-top: 12px; }
  #dp-intro .dp-intro-rule { margin-top: 19px; }
  #dp-intro .dp-intro-footer { bottom: 27px; }
}
@media (prefers-reduced-motion: reduce) {
  #dp-intro, #dp-intro *, #dp-intro::before { animation: none !important; transition: none !important; }
  #dp-intro .dp-intro-logo { transform: none; }
  #dp-intro .dp-intro-ring circle { stroke-dashoffset: 0; }
  #dp-intro .dp-intro-speck, #dp-intro .dp-intro-light { display: none; }
}
@media (max-height: 450px) and (orientation: landscape) {
  #dp-intro .dp-intro-center {
    width: min(calc(100% - 80px), 740px); display: grid;
    grid-template-columns: 150px 1fr; column-gap: 40px; row-gap: 12px;
    text-align: left; padding: 20px 0; transform: translateY(-8px);
  }
  #dp-intro .dp-intro-emblem { grid-column: 1; grid-row: 1 / 5; width: 150px; height: 150px; margin: 0; align-self: center; }
  #dp-intro .dp-intro-eyebrow { grid-column: 2; grid-row: 1; margin: 0; font-size: 8px; letter-spacing: .2em; }
  #dp-intro .dp-intro-title { grid-column: 2; grid-row: 2; font-size: clamp(32px, 5vw, 44px); margin: 0; max-width: none; }
  #dp-intro .dp-intro-subtitle { grid-column: 2; grid-row: 3; margin: 0; font-size: 9px; letter-spacing: .17em; max-width: 360px; }
  #dp-intro .dp-intro-rule { grid-column: 2; grid-row: 4; margin: 0; }
  #dp-intro .dp-intro-footer { bottom: 24px; flex-direction: row; font-size: 8px; text-align: left; }
}
@media (max-height: 450px) and (max-width: 650px) and (orientation: landscape) {
  #dp-intro .dp-intro-center { grid-template-columns: 112px 1fr; column-gap: 28px; row-gap: 10px; }
  #dp-intro .dp-intro-emblem { width: 112px; height: 112px; }
  #dp-intro .dp-intro-title { font-size: 32px; }
  #dp-intro .dp-intro-footer { font-size: 7px; letter-spacing: .15em; }
}
