* { margin: 0; padding: 0; box-sizing: border-box; }
    html { overflow-anchor: none; }
    body { font-family: 'Lato', sans-serif; overflow-x: clip; }
    /* scroll-behavior removed — nav links use JS smooth scroll instead */

    .reveal {
      opacity: 0;
      transform: translateY(40px);
      transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal.active {
      opacity: 1;
      transform: translateY(0);
    }
    .stagger-children .reveal-child {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .stagger-children.active .reveal-child {
      opacity: 1;
      transform: translateY(0);
    }
    .stagger-children.active .reveal-child:nth-child(1) { transition-delay: 0.08s; }
    .stagger-children.active .reveal-child:nth-child(2) { transition-delay: 0.16s; }
    .stagger-children.active .reveal-child:nth-child(3) { transition-delay: 0.24s; }
    .stagger-children.active .reveal-child:nth-child(4) { transition-delay: 0.32s; }
    .stagger-children.active .reveal-child:nth-child(5) { transition-delay: 0.40s; }
    .stagger-children.active .reveal-child:nth-child(6) { transition-delay: 0.48s; }
    .stagger-children.active .reveal-child:nth-child(7) { transition-delay: 0.56s; }
    .stagger-children.active .reveal-child:nth-child(8) { transition-delay: 0.64s; }
    .stagger-children.active .reveal-child:nth-child(9) { transition-delay: 0.72s; }

    .reveal-left {
      opacity: 0;
      transform: translateX(-50px);
      transition: opacity 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal-left.active {
      opacity: 1;
      transform: translateX(0);
    }
    .reveal-right {
      opacity: 0;
      transform: translateX(50px);
      transition: opacity 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal-right.active {
      opacity: 1;
      transform: translateX(0);
    }
    .reveal-scale {
      opacity: 0;
      transform: scale(0.92);
      transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal-scale.active {
      opacity: 1;
      transform: scale(1);
    }

    .hero-title-line {
      opacity: 0;
      transform: translateY(30px);
      animation: heroFadeUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    }
    .hero-title-line:nth-child(1) { animation-delay: 0.2s; }
    .hero-title-line:nth-child(2) { animation-delay: 0.4s; }
    .hero-subtitle {
      opacity: 0;
      transform: translateY(20px);
      animation: heroFadeUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.6s forwards;
    }
    .hero-cta {
      opacity: 0;
      transform: translateY(20px);
      animation: heroFadeUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.9s forwards;
    }
    @keyframes heroFadeUp {
      to { opacity: 1; transform: translateY(0); }
    }

    .nav-link { position: relative; }
    .gallery-card {
      transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease;
    }
    .gallery-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    }
    .service-row {
      transition: background-color 0.3s ease, padding-left 0.3s ease;
    }
    .service-row:hover {
      background-color: rgba(93, 201, 231, 0.05);
      padding-left: 8px;
    }
    .testimonial-card {
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .testimonial-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 12px 24px rgba(0, 0, 0, 0.06);
    }

    .popover-wrap { position: relative; display: inline-block; }
    .popover-wrap .popover {
      visibility: hidden;
      opacity: 0;
      position: absolute;
      bottom: calc(100% + 10px);
      left: 50%;
      transform: translateX(-50%) translateY(6px);
      background: #1f2937;
      color: #fff;
      padding: 8px 14px;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 500;
      white-space: nowrap;
      box-shadow: 0 8px 24px rgba(0,0,0,0.15);
      transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
      pointer-events: none;
      z-index: 20;
    }
    .popover-wrap .popover::after {
      content: '';
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      border-width: 6px;
      border-style: solid;
      border-color: #1f2937 transparent transparent transparent;
    }
    .popover-wrap:hover .popover,
    .popover-wrap:focus-within .popover {
      visibility: visible;
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    /* .form-input {
      transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
      box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.1);
    } */
    .form-input:focus {
      transform: translateY(-1px);
      box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.1);
      border-color: rgba(93, 201, 231, 0.8);
    }

    /* /*     @media (prefers-reduced-motion: reduce) {
      .reveal, .reveal-left, .reveal-right, .reveal-scale, .stagger-children .reveal-child {
        opacity: 1; transform: none; transition: none;
      }
      .hero-title-line, .hero-subtitle, .hero-cta {
        animation: none; opacity: 1; transform: none;
      }
    } */

    .dr-choe-highlight {
      position: relative;
      display: inline-block;
      padding: 0 8px;
      z-index: 1;
    }
    .dr-choe-highlight::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(93, 201, 231, 0.5) 50%, transparent 50%);
      border-radius: 3px;
      transform: translateX(-5pt);
      z-index: -1;
    }

    .office-img-wrap {
      position: relative;
      overflow: hidden;
      border-radius: 12px;
    }
    .office-img-wrap img {
      max-width: 100%;
      height: auto;
      width: auto;
      display: block;
      transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .office-img-wrap:hover img {
      transform: scale(1.04);
    }
    .office-img-wrap .office-label {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 16px;
      background: linear-gradient(to top, rgba(0,0,0,0.55), transparent);
      color: white;
      font-weight: 600;
      font-size: 15px;
      opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.4s ease, transform 0.4s ease;
    }
    .office-img-wrap:hover .office-label {
      opacity: 1;
      transform: translateY(0);
    }

    .btn-shimmer { 
      position: relative; 
      overflow: hidden; 
    }
    
    .btn-shimmer::after {
      content: '';
      position: absolute;
      top: 0;
      left: -75%;
      width: 50%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
      transform: skewX(-20deg);
      transition: left 0s;
    }
    .btn-shimmer:hover::after {
      left: 125%;
      transition: left 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .contact-panel {
      background: #ffffff;
      border-radius: 16px;
      padding: 2.5rem;
      box-shadow: 0 12px 48px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
      border: 1px solid rgba(0, 0, 0, 0.04);
      transition: box-shadow 0.4s ease, transform 0.4s ease;
    }
    .contact-panel:hover {
      box-shadow: 0 16px 56px rgba(0, 0, 0, 0.1), 0 6px 16px rgba(0, 0, 0, 0.05);
    }

    @media (max-width: 768px) {
      .contact-panel {
        padding: 1.5rem;
      }
    }

    /* Gallery — refined frame, badges, and autoplay progress rail */
    .gallery-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: 'Lato', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: #3FABC9;
    }
    .gallery-eyebrow::before {
      content: '';
      width: 28px;
      height: 1px;
      background: #5DC9E7;
    }
    .gallery-frame {
      padding: 10px;
      background: #ffffff;
      border-radius: 20px;
      box-shadow: 0 20px 45px rgba(15, 55, 65, 0.16);
    }
    .gallery-frame-inner {
      width: 100%;
      border-radius: 14px;
      overflow: hidden;
      margin: 0 auto;
    }
    .gallery-badge {
      font-family: 'Lato', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 4px 10px;
      border-radius: 999px;
      backdrop-filter: blur(4px);
    }
    .gallery-badge-before { background: rgba(0,0,0,0.35); color: #fff; }
    .gallery-badge-after { background: rgba(93,201,231,0.92); color: #06313a; }
    .gallery-counter {
      font-family: 'Lato', sans-serif;
      font-size: 11px;
      font-weight: 600;
      color: #fff;
      background: rgba(0,0,0,0.35);
      backdrop-filter: blur(4px);
      padding: 4px 10px;
      border-radius: 999px;
    }
    .gallery-progress-track {
      width: 200px;
      max-width: 50%;
      height: 3px;
      background: rgba(93,201,231,0.15);
      border-radius: 999px;
      overflow: hidden;
      margin: 16px auto 0;
    }
    .gallery-progress-fill {
      height: 100%;
      width: 0%;
      background: linear-gradient(90deg, #BEEBF7, #9FE0F2);
      border-radius: 999px;
    }
    /* 5s matches the carousel's autoplay `duration` in main.js — keep both in sync if you change one */
    .gallery-progress-fill.animate {
      animation: galleryProgress 5s linear forwards;
    }
    @keyframes galleryProgress {
      from { width: 0%; }
      to { width: 100%; }
    }
    .gallery-thumb-frame {
      transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.35s ease;
    }
    .gallery-thumb-frame:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 20px rgba(15, 55, 65, 0.12);
    }
    @media (prefers-reduced-motion: reduce) {
      .gallery-progress-fill.animate { animation: none; width: 100%; }
    }
