:root {
  --landing-shell-max: min(1380px, calc(100vw - 2rem));
  --landing-mobile-header-clearance: calc(64px + env(safe-area-inset-top));
}

body {
  background-attachment: fixed;
}

body,
button,
input,
textarea,
select {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.page-wrap {
  position: relative;
  isolation: isolate;
}

.header {
  backdrop-filter: blur(22px) saturate(155%);
  box-shadow: 0 14px 36px rgba(4, 8, 18, 0.18);
}

.header-inner,
.quick-bar-inner,
.services-wrap,
.footer {
  width: var(--landing-shell-max);
  max-width: 1380px;
  margin-inline: auto;
}

.header-inner {
  gap: 1rem;
}

.header-brand {
  min-height: 52px;
}

.header-wordmark-top {
  letter-spacing: 0.08em;
}

.header-wordmark-sub {
  letter-spacing: 0.05em;
}

.header-logo {
  filter: drop-shadow(0 10px 18px color-mix(in srgb, var(--accent) 18%, transparent));
}

.quick-bar {
  top: calc(86px + env(safe-area-inset-top));
  backdrop-filter: blur(16px) saturate(150%);
  display: none !important;
}

.quick-bar-inner {
  gap: 0.8rem;
}

.q-chip {
  min-height: 44px;
  border-radius: 999px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.hero {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 18% auto auto 50%;
  width: min(540px, 72vw);
  height: min(540px, 72vw);
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 12%, transparent) 0, transparent 66%);
  opacity: 0.65;
  z-index: -1;
  pointer-events: none;
}

.hero-desc {
  max-width: 50rem;
  margin-inline: auto;
  font-size: clamp(1.02rem, 1.3vw, 1.12rem);
  line-height: 1.82;
  letter-spacing: -0.012em;
  color: color-mix(in srgb, var(--text) 70%, var(--muted));
  text-wrap: pretty;
}

.hero-title {
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.theme-picker,
.mode-toggle-row {
  scrollbar-width: none;
}

.theme-picker::-webkit-scrollbar,
.mode-toggle-row::-webkit-scrollbar {
  display: none;
}

.theme-pill,
.mode-pill {
  backdrop-filter: blur(10px);
}

.svc-grid {
  gap: 1.15rem;
}

.svc-card {
  border-radius: 28px;
  box-shadow:
    0 24px 54px rgba(4, 8, 18, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.svc-card:hover {
  transform: translateY(-5px);
  box-shadow:
    0 28px 62px rgba(4, 8, 18, 0.28),
    0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent);
}

.svc-card .svc-icon {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 16px 34px color-mix(in srgb, var(--accent) 14%, transparent);
}

.svc-title {
  font-size: clamp(1.16rem, 1.55vw, 1.3rem);
  line-height: 1.3;
  letter-spacing: -0.015em;
}

.svc-desc {
  font-size: 0.92rem;
  line-height: 1.72;
  letter-spacing: -0.012em;
  color: color-mix(in srgb, var(--text) 68%, var(--muted));
}

.header-nav a,
.hdr-btn,
.hdr-login,
.q-chip,
.announce-text {
  letter-spacing: -0.01em;
}

.announce-text {
  line-height: 1.6;
}

.visitor-grid {
  gap: 1rem;
}

.visitor-card {
  backdrop-filter: blur(14px);
}

.footer {
  padding-bottom: calc(5rem + env(safe-area-inset-bottom));
}

.bottom-tabs {
  backdrop-filter: blur(24px) saturate(180%);
  padding-bottom: calc(0.4rem + env(safe-area-inset-bottom));
}

.mobile-drawer {
  width: min(88vw, 380px);
  padding-bottom: calc(1.2rem + env(safe-area-inset-bottom));
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 18%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 92%, rgba(0, 0, 0, 0.12)), color-mix(in srgb, var(--bg) 88%, rgba(255, 255, 255, 0.02)));
  box-shadow: -24px 0 60px rgba(4, 8, 18, 0.34);
}

.drawer-link {
  border-radius: 18px;
}

@media (max-width: 860px) {
  .main {
    padding-top: calc(var(--landing-mobile-header-clearance) + 0.4rem);
  }

  .header-inner {
    gap: 0.75rem;
  }

  .header-nav a,
  .hdr-btn,
  .hdr-login {
    font-size: 0.93rem;
  }

  .quick-bar {
    top: calc(78px + env(safe-area-inset-top));
  }

  .hero {
    padding-top: 3.3rem !important;
  }

  .hero-glow-ring {
    top: 0.7rem;
    width: min(86vw, 520px);
    height: 250px;
  }

  .hero-emblem {
    margin-top: 0.35rem;
    margin-bottom: 1.45rem;
  }

  .theme-picker,
  .mode-toggle-row {
    justify-content: flex-start;
    overflow-x: auto;
    width: 100%;
    padding-inline: 0.1rem;
    mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  }

  .theme-pill,
  .mode-pill {
    flex: 0 0 auto;
  }

  .hero-desc {
    max-width: 34rem;
    font-size: 1rem;
  }

  .svc-title {
    font-size: 1.12rem;
  }

  .svc-desc {
    font-size: 0.9rem;
  }

  .svc-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 560px) {
  .main {
    padding-top: calc(var(--landing-mobile-header-clearance) + 0.7rem);
  }

  .header {
    padding-inline: 0.75rem;
  }

  .header-wordmark-sub {
    display: none;
  }

  .header-actions {
    gap: 0.45rem;
  }

  .hdr-btn,
  .hdr-login,
  .btn-menu {
    min-width: 42px;
    min-height: 42px;
  }

  .hdr-login {
    min-width: auto;
    padding-inline: 0.95rem;
  }

  .hdr-login span:first-child {
    display: none !important;
  }

  .hdr-login span:last-child {
    display: inline !important;
  }

  .hero {
    padding-top: 3.35rem !important;
    padding-inline: 0.95rem !important;
  }

  .hero-glow-ring {
    top: 1rem;
    width: min(94vw, 460px);
    height: 228px;
  }

  .hero-emblem {
    margin-top: 0.65rem;
    margin-bottom: 1.55rem;
  }

  .hero-emblem-ring {
    width: 96px;
    height: 96px;
    box-shadow:
      0 0 0 14px color-mix(in srgb, var(--accent) 7%, transparent),
      0 0 54px -8px var(--glow);
  }

  .hero-title {
    font-size: clamp(1.95rem, 9.4vw, 2.5rem) !important;
    line-height: 1.16;
    letter-spacing: -0.024em;
  }

  .hero-desc {
    font-size: 0.98rem;
    line-height: 1.78;
    letter-spacing: -0.013em;
  }

  .header-wordmark-top {
    font-size: 0.95rem;
  }

  .header-wordmark-sub {
    font-size: 0.72rem;
  }

  .svc-card {
    border-radius: 22px;
  }

  .svc-title {
    font-size: 1.08rem;
  }

  .svc-desc {
    font-size: 0.91rem;
    line-height: 1.68;
  }

  .q-chip {
    font-size: 0.76rem;
  }

  .quick-bar-inner {
    width: calc(100vw - 1rem);
  }

.footer {
    width: calc(100vw - 1rem);
  }
}

.is-hidden {
  display: none !important;
}

@media (max-width: 640px) {
  .hdr-login {
    min-width: auto;
    padding-inline: 0.95rem;
  }

  .hdr-login span:first-child {
    display: none !important;
  }

  .hdr-login span:last-child {
    display: inline !important;
  }
}

.hdr-install {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent) 36%, rgba(255, 255, 255, 0.12));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 24%, rgba(255, 255, 255, 0.06)), color-mix(in srgb, var(--surface) 86%, rgba(255, 255, 255, 0.04)));
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  box-shadow: 0 14px 30px rgba(4, 8, 18, 0.2);
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.hdr-install:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
  box-shadow: 0 18px 34px color-mix(in srgb, var(--accent) 18%, rgba(4, 8, 18, 0.24));
}

.hero-ritual-panel {
  width: min(100%, 860px);
  margin: 1.2rem auto 2rem;
  padding: clamp(1rem, 3vw, 1.35rem);
  border-radius: 28px;
  border: 1px solid color-mix(in srgb, var(--accent) 18%, rgba(255, 255, 255, 0.06));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--surface) 92%, rgba(255, 255, 255, 0.03)), color-mix(in srgb, var(--bg-raised) 88%, rgba(255, 255, 255, 0.02)));
  box-shadow:
    0 24px 56px rgba(4, 8, 18, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) auto;
  gap: 1rem;
  align-items: center;
  text-align: left;
}

.hero-ritual-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.45rem;
  color: var(--accent);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.hero-ritual-kicker::before {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 16px currentColor;
}

.hero-ritual-copy strong {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--text);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
}

.hero-ritual-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.75;
}

.hero-ritual-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.hero-install-btn,
.hero-secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 1.2rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.hero-install-btn {
  border: 1px solid color-mix(in srgb, var(--accent) 48%, transparent);
  background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--glow) 70%, var(--accent-soft)));
  color: color-mix(in srgb, var(--bg) 92%, #000);
  box-shadow: 0 18px 34px color-mix(in srgb, var(--accent) 18%, rgba(4, 8, 18, 0.2));
  cursor: pointer;
}

.hero-secondary-link {
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 84%, rgba(255, 255, 255, 0.02));
  color: var(--text);
}

.hero-install-btn:hover,
.hero-secondary-link:hover {
  transform: translateY(-2px);
}

.floating-install {
  position: fixed;
  left: 50%;
  bottom: calc(5.9rem + env(safe-area-inset-bottom));
  z-index: 185;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  width: min(94vw, 420px);
  padding: 0.9rem 1rem;
  border-radius: 20px;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, rgba(255, 255, 255, 0.06));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--surface) 95%, rgba(255, 255, 255, 0.03)), color-mix(in srgb, var(--bg) 88%, rgba(255, 255, 255, 0.02)));
  box-shadow: 0 26px 56px rgba(4, 8, 18, 0.34);
  backdrop-filter: blur(20px) saturate(155%);
  transform: translateX(-50%);
}

.floating-install-copy {
  display: grid;
  gap: 0.18rem;
}

.floating-install-kicker {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.floating-install-copy strong {
  color: var(--text);
  font-size: 0.98rem;
}

.floating-install-btn {
  min-width: 88px;
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid color-mix(in srgb, var(--accent) 48%, transparent);
  border-radius: 999px;
  background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--glow) 70%, var(--accent-soft)));
  color: color-mix(in srgb, var(--bg) 92%, #000);
  font-size: 0.88rem;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 860px) {
  .hero-ritual-panel {
    grid-template-columns: 1fr;
  }

  .hero-ritual-actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .hdr-install {
    display: none;
  }

  .hero-ritual-panel {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 22px;
  }

  .hero-ritual-actions {
    width: 100%;
  }

  .hero-install-btn,
  .hero-secondary-link {
    flex: 1 1 100%;
  }

  .floating-install {
    display: flex;
  }
}

/* 2026-08-13 final mobile QA: keep the floating PWA prompt off the hero area. */
.floating-install.is-context-hidden {
  display: none !important;
}

@media (max-width: 560px) {
  .floating-install {
    width: min(calc(100vw - 1rem), 420px);
    max-width: calc(100vw - 1rem);
    box-sizing: border-box;
  }
  .floating-install-copy {
    min-width: 0;
  }
  .floating-install-copy strong {
    overflow-wrap: anywhere;
  }
  .floating-install-btn {
    flex: 0 0 auto;
  }
}


/* V30 PWA install visibility policy: installation UI is opt-in and hidden by default. */
[data-pwa-install-ui][hidden],
html.kb-pwa-installed [data-pwa-install-ui] {
  display: none !important;
}

@media (display-mode: standalone),
       (display-mode: fullscreen),
       (display-mode: minimal-ui),
       (display-mode: window-controls-overlay) {
  [data-pwa-install-ui] {
    display: none !important;
  }
}


/* ================================================================
   V31 — Lively lower landing experience + restored business info
   ================================================================ */
.home-closing {
  position: relative;
  overflow: hidden;
  width: var(--landing-shell-max);
  max-width: 1380px;
  margin: clamp(2.2rem, 5vw, 4.8rem) auto clamp(1.4rem, 3vw, 2.4rem);
  padding: clamp(1.5rem, 4vw, 2.6rem);
  border-radius: 34px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  background:
    radial-gradient(circle at 12% 20%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 34%),
    radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--accent-2, var(--accent)) 14%, transparent), transparent 32%),
    linear-gradient(135deg, color-mix(in srgb, var(--surface-up) 92%, transparent), color-mix(in srgb, var(--bg-raised) 86%, transparent));
  box-shadow:
    0 34px 80px rgba(4, 8, 18, .28),
    inset 0 1px 0 rgba(255,255,255,.07);
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr);
  gap: clamp(1.4rem, 4vw, 3rem);
  align-items: center;
  isolation: isolate;
}
.home-closing::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0 43%, color-mix(in srgb, var(--accent) 8%, transparent) 50%, transparent 57% 100%);
  transform: translateX(-55%);
  animation: kbClosingSheen 11s ease-in-out infinite;
  pointer-events: none;
  z-index: -1;
}
.home-closing-orbit {
  position: absolute;
  width: 260px;
  height: 260px;
  right: -95px;
  top: -105px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent);
  box-shadow: 0 0 0 34px color-mix(in srgb, var(--accent) 4%, transparent), 0 0 0 68px color-mix(in srgb, var(--accent) 3%, transparent);
  opacity: .75;
  pointer-events: none;
}
.home-closing-kicker,
.footer-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  color: var(--accent);
}
.home-closing-kicker::before,
.footer-kicker::before {
  content: "";
  width: 28px;
  height: 1px;
  background: linear-gradient(90deg, var(--accent), transparent);
}
.home-closing-copy h2 {
  margin: .65rem 0 .65rem;
  font-family: "Noto Serif KR", "Nanum Myeongjo", Batang, Georgia, serif;
  font-size: clamp(1.55rem, 3vw, 2.35rem);
  line-height: 1.24;
  letter-spacing: -.035em;
  color: var(--text);
  text-wrap: balance;
}
.home-closing-copy p {
  margin: 0;
  max-width: 34rem;
  font-size: .94rem;
  line-height: 1.75;
  color: color-mix(in srgb, var(--text) 68%, var(--muted));
}
.home-closing-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}
.home-closing-action {
  min-width: 0;
  padding: 1.15rem 1rem;
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
  background: color-mix(in srgb, var(--surface) 78%, transparent);
  color: var(--text);
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.home-closing-action > span {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: .8rem;
  border-radius: 14px;
  background: color-mix(in srgb, var(--accent) 15%, var(--surface-up));
  box-shadow: 0 12px 24px color-mix(in srgb, var(--accent) 12%, transparent);
}
.home-closing-action strong,
.home-closing-action small { display: block; }
.home-closing-action strong { font-size: .92rem; letter-spacing: -.02em; }
.home-closing-action small { margin-top: .28rem; font-size: .72rem; color: var(--muted); line-height: 1.45; }
.home-closing-action:hover,
.home-closing-action:focus-visible {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--accent) 58%, transparent);
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  box-shadow: 0 20px 36px rgba(4,8,18,.2), inset 0 1px 0 rgba(255,255,255,.08);
  outline: none;
}
@keyframes kbClosingSheen {
  0%, 62%, 100% { transform: translateX(-62%); opacity: 0; }
  72% { opacity: .9; }
  88% { transform: translateX(72%); opacity: 0; }
}

.footer {
  position: relative;
  overflow: hidden;
  width: var(--landing-shell-max);
  max-width: 1380px;
  margin: 0 auto clamp(.55rem, 2vw, 1.4rem);
  padding: clamp(1.5rem, 4vw, 2.8rem) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
  border-radius: 34px;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--bg-raised) 94%, transparent), color-mix(in srgb, var(--surface) 84%, transparent));
  box-shadow: 0 34px 74px rgba(4,8,18,.24), inset 0 1px 0 rgba(255,255,255,.05);
  text-align: left;
  isolation: isolate;
}
.footer-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
  z-index: -1;
}
.footer-glow--one {
  width: 360px;
  height: 360px;
  left: -150px;
  top: -190px;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 18%, transparent), transparent 68%);
}
.footer-glow--two {
  width: 420px;
  height: 420px;
  right: -190px;
  bottom: -250px;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent-2, var(--accent)) 12%, transparent), transparent 70%);
}
.footer-stage {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr);
  gap: clamp(1.6rem, 4vw, 3.4rem);
  align-items: stretch;
}
.footer-story {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(.4rem, 1vw, .9rem);
}
.footer-brand {
  margin: .5rem 0 .45rem;
  font-size: clamp(1.55rem, 3vw, 2.15rem) !important;
  font-weight: 850;
  letter-spacing: .11em !important;
  color: var(--text) !important;
}
.footer-tagline {
  max-width: 38rem;
  margin: 0 0 1rem !important;
  font-size: .93rem !important;
  line-height: 1.68;
  color: color-mix(in srgb, var(--text) 73%, var(--muted)) !important;
}
.footer-verse {
  position: relative;
  margin: 0 0 1.35rem !important;
  padding: 1rem 1.05rem 1rem 1.2rem;
  border-left: 2px solid var(--accent);
  border-radius: 0 16px 16px 0;
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent);
  color: color-mix(in srgb, var(--text) 76%, var(--muted)) !important;
  opacity: 1 !important;
  font-size: .92rem !important;
  line-height: 1.65;
}
.footer-verse::before,
.footer-verse::after { content: none !important; }
.footer-links {
  justify-content: flex-start !important;
  gap: .55rem !important;
  margin: 0 !important;
}
.footer-link {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 .85rem;
  border: 1px solid color-mix(in srgb, var(--accent) 14%, var(--border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 72%, transparent);
  color: color-mix(in srgb, var(--text) 70%, var(--muted)) !important;
  font-size: .76rem !important;
  font-weight: 700;
}
.footer-link:hover,
.footer-link:focus-visible {
  color: var(--accent) !important;
  border-color: color-mix(in srgb, var(--accent) 46%, transparent);
  outline: none;
}
.footer-side {
  display: grid;
  gap: .9rem;
  min-width: 0;
}
.visitor-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem !important;
  margin: 0 !important;
}
.visitor-card {
  position: relative;
  overflow: hidden;
  min-width: 0 !important;
  padding: 1rem 1.05rem !important;
  border-radius: 20px !important;
  border-color: color-mix(in srgb, var(--accent) 16%, var(--border)) !important;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--surface-up) 88%, transparent), color-mix(in srgb, var(--surface) 76%, transparent)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.visitor-card::after {
  content: "";
  position: absolute;
  width: 92px;
  height: 92px;
  right: -28px;
  top: -34px;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent), transparent 68%);
}
.visitor-icon {
  position: absolute;
  right: 1rem;
  top: .8rem;
  color: color-mix(in srgb, var(--accent) 62%, transparent);
  font-size: 1rem;
}
.visitor-label { margin: 0; font-size: .72rem !important; font-weight: 700; color: var(--muted) !important; }
.visitor-value { margin: .25rem 0 0 !important; font-size: clamp(1.25rem, 2.5vw, 1.65rem) !important; color: var(--accent) !important; }

.footer-business {
  padding: 1.05rem 1.1rem;
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
  background: color-mix(in srgb, var(--surface) 70%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.footer-business-head {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .85rem;
}
.footer-business-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  border-radius: 13px;
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, var(--surface-up));
  border: 1px solid color-mix(in srgb, var(--accent) 24%, transparent);
}
.footer-business-head div > span {
  display: block;
  margin-bottom: .12rem;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--accent);
}
.footer-business-head strong {
  display: block;
  font-size: .9rem;
  color: var(--text);
}
.footer-business-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .58rem .8rem;
}
.footer-business-grid > div {
  min-width: 0;
  padding: .68rem .72rem;
  border-radius: 14px;
  background: color-mix(in srgb, var(--bg-raised) 58%, transparent);
  border: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
}
.footer-business-grid span,
.footer-business-grid strong,
.footer-business-grid a { display: block; }
.footer-business-grid span { margin-bottom: .16rem; font-size: .63rem; font-weight: 700; color: var(--muted); }
.footer-business-grid strong,
.footer-business-grid a {
  overflow-wrap: anywhere;
  font-size: .76rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text) 88%, var(--muted));
  text-decoration: none;
  font-weight: 700;
}
.footer-business-grid a:hover { color: var(--accent); }
.footer-business-wide { grid-column: 1 / -1; }
.footer-bottom {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}
.footer-bottom-line { width: 34px; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); }
.footer-copy { margin: 0 !important; color: color-mix(in srgb, var(--text) 48%, var(--muted)) !important; opacity: 1 !important; }
.footer-bottom-dot { margin-left: auto; color: var(--accent); opacity: .75; }

html[data-mode="light"] .home-closing,
html[data-mode="light"] .footer {
  box-shadow: 0 28px 64px rgba(35,44,58,.12), inset 0 1px 0 rgba(255,255,255,.9);
}
html[data-mode="light"] .footer-brand { color: hsl(220 28% 11%) !important; }
html[data-mode="light"] .footer-tagline,
html[data-mode="light"] .footer-verse { color: hsl(220 18% 28%) !important; }
html[data-mode="light"] .footer-business,
html[data-mode="light"] .visitor-card,
html[data-mode="light"] .home-closing-action { background: rgba(255,255,255,.76) !important; }

@media (max-width: 980px) {
  .home-closing { grid-template-columns: 1fr; }
  .footer-stage { grid-template-columns: 1fr; }
  .footer-story { padding: .2rem; }
}

@media (max-width: 640px) {
  .home-closing {
    width: calc(100vw - 1rem);
    margin-top: 1.8rem;
    padding: 1.15rem;
    border-radius: 24px;
  }
  .home-closing-copy h2 { font-size: 1.45rem; }
  .home-closing-copy p { font-size: .88rem; }
  .home-closing-actions { grid-template-columns: 1fr; gap: .58rem; }
  .home-closing-action {
    display: grid;
    grid-template-columns: 42px 1fr;
    grid-template-areas: "icon title" "icon desc";
    column-gap: .78rem;
    align-items: center;
    padding: .85rem .9rem;
    border-radius: 18px;
  }
  .home-closing-action > span { grid-area: icon; margin: 0; width: 42px; height: 42px; }
  .home-closing-action strong { grid-area: title; }
  .home-closing-action small { grid-area: desc; margin-top: .1rem; }
  .footer {
    width: calc(100vw - 1rem) !important;
    margin-bottom: calc(4.8rem + env(safe-area-inset-bottom)) !important;
    padding: 1.15rem !important;
    border-radius: 24px;
  }
  .footer-brand { font-size: 1.55rem !important; }
  .footer-tagline { font-size: .86rem !important; }
  .footer-verse { font-size: .84rem !important; padding: .85rem .9rem; }
  .footer-links { gap: .42rem !important; }
  .footer-link { min-height: 34px; padding-inline: .72rem; font-size: .72rem !important; }
  .visitor-grid { gap: .55rem !important; }
  .visitor-card { padding: .82rem .85rem !important; border-radius: 17px !important; }
  .visitor-value { font-size: 1.2rem !important; }
  .footer-business { padding: .9rem; border-radius: 18px; }
  .footer-business-grid { grid-template-columns: 1fr; gap: .45rem; }
  .footer-business-wide { grid-column: auto; }
  .footer-business-grid > div { padding: .62rem .68rem; }
  .footer-bottom { gap: .55rem; }
  .footer-bottom-line { width: 20px; }
  .footer-copy { font-size: .66rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  .home-closing::before { animation: none !important; }
  .home-closing-action { transition: none !important; }
}

/* ================================================================
   V34 — Sanctuary Luxe lower homepage
   Premium · mysterious · cinematic, with mobile-first restraint.
   ================================================================ */
.home-closing--sanctuary {
  display: block;
  position: relative;
  max-width: 1420px;
  margin-top: clamp(2.8rem, 6vw, 6rem);
  padding: clamp(2rem, 5vw, 4.2rem) clamp(1.15rem, 4.5vw, 4rem) clamp(1.7rem, 4vw, 3.2rem);
  border-radius: clamp(28px, 3vw, 44px);
  border: 1px solid color-mix(in srgb, #d8b66b 36%, var(--border));
  background:
    radial-gradient(ellipse 70% 90% at 50% -8%, rgba(219,189,115,.18), transparent 45%),
    radial-gradient(circle at 10% 74%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 30%),
    radial-gradient(circle at 90% 76%, rgba(50,112,95,.18), transparent 34%),
    linear-gradient(160deg, rgba(5,27,23,.98), rgba(4,17,17,.99) 52%, rgba(5,13,19,.99));
  box-shadow:
    0 42px 100px rgba(0,0,0,.38),
    0 0 0 1px rgba(218,184,104,.035),
    inset 0 1px 0 rgba(255,255,255,.075),
    inset 0 -1px 0 rgba(213,177,90,.06);
  isolation: isolate;
}
.home-closing--sanctuary::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(100deg, transparent 0 41%, rgba(255,231,174,.06) 48%, rgba(255,244,210,.12) 50%, rgba(255,231,174,.05) 52%, transparent 59% 100%);
  transform:translateX(-75%);
  animation:kbSanctuarySweep 13s ease-in-out infinite;
  z-index:-1;
}
.home-closing--sanctuary::after {
  content:"";
  position:absolute;
  inset:10px;
  border-radius:calc(clamp(28px, 3vw, 44px) - 10px);
  border:1px solid rgba(224,195,127,.055);
  pointer-events:none;
}
.home-closing-sky {
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:inherit;
  pointer-events:none;
  z-index:-2;
  opacity:.78;
  background-image:
    radial-gradient(circle, rgba(255,223,146,.72) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,.48) 0 .7px, transparent 1.3px),
    radial-gradient(circle, rgba(155,214,189,.40) 0 .8px, transparent 1.4px);
  background-size: 91px 91px, 137px 137px, 181px 181px;
  background-position: 8px 19px, 54px 77px, 91px 31px;
  mask-image:linear-gradient(to bottom, #000 0 72%, transparent 100%);
}
.home-closing-beam {
  position:absolute;
  left:50%;
  top:-18%;
  width:min(54vw,680px);
  height:72%;
  transform:translateX(-50%);
  pointer-events:none;
  opacity:.52;
  filter:blur(2px);
  background:conic-gradient(from 168deg at 50% 0%, transparent 0 10deg, rgba(255,235,185,.13) 13deg, transparent 18deg 24deg, rgba(255,249,225,.08) 27deg, transparent 33deg 360deg);
  mask-image:linear-gradient(#000,transparent 88%);
}
.home-closing-orbit--one,
.home-closing-orbit--two {
  border-color:rgba(214,181,101,.16);
  box-shadow:0 0 0 34px rgba(214,181,101,.025),0 0 0 72px rgba(214,181,101,.018);
}
.home-closing-orbit--one { right:-95px; top:-112px; }
.home-closing-orbit--two { left:-150px; bottom:-170px; top:auto; right:auto; width:330px; height:330px; opacity:.42; }
.home-closing--sanctuary .home-closing-copy {
  max-width:820px;
  margin:0 auto clamp(1.7rem,3.5vw,2.8rem);
  text-align:center;
}
.home-closing--sanctuary .home-closing-kicker {
  justify-content:center;
  color:#d9b968;
  font-size:.66rem;
  letter-spacing:.23em;
  text-shadow:0 0 18px rgba(220,184,94,.2);
}
.home-closing--sanctuary .home-closing-kicker::after {
  content:"";
  width:28px;
  height:1px;
  background:linear-gradient(90deg,transparent,#d9b968);
}
.home-closing--sanctuary .home-closing-copy h2 {
  margin:.8rem 0 .72rem;
  font-size:clamp(1.9rem,4.2vw,3.25rem);
  font-weight:760;
  line-height:1.18;
  letter-spacing:-.055em;
  color:#f6edd7;
  text-shadow:0 12px 46px rgba(0,0,0,.46),0 0 30px rgba(215,180,93,.10);
}
.home-closing--sanctuary .home-closing-copy p {
  max-width:650px;
  margin-inline:auto;
  font-size:clamp(.9rem,1.5vw,1rem);
  color:rgba(236,239,228,.72);
  line-height:1.82;
}
.home-closing--sanctuary .home-closing-actions {
  position:relative;
  z-index:2;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.72rem,1.8vw,1.1rem);
}
.home-closing--sanctuary .home-closing-action {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"no no no" "icon body arrow";
  align-items:center;
  column-gap:.9rem;
  min-height:190px;
  padding:1.15rem 1.15rem 1.25rem;
  overflow:hidden;
  border-radius:26px;
  border:1px solid rgba(219,185,103,.25);
  background:
    radial-gradient(circle at 16% 10%, rgba(230,197,113,.13), transparent 30%),
    linear-gradient(145deg, rgba(24,59,50,.64), rgba(8,27,27,.88));
  box-shadow:
    0 20px 44px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 0 -1px 0 rgba(215,178,92,.05);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .3s ease,box-shadow .3s ease,background .3s ease;
}
.home-closing--sanctuary .home-closing-action::before {
  content:"";
  position:absolute;
  inset:auto -18% -55% 15%;
  height:78%;
  border-radius:50%;
  background:radial-gradient(circle, rgba(215,179,91,.12), transparent 68%);
  pointer-events:none;
}
.home-closing--sanctuary .home-closing-action::after {
  content:"";
  position:absolute;
  top:0;
  left:15%;
  right:15%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,225,151,.58),transparent);
  opacity:.7;
}
.home-closing-action-no {
  grid-area:no;
  align-self:start;
  margin-bottom:1.25rem;
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.16em;
  color:rgba(220,190,116,.66);
}
.home-closing-action-icon {
  grid-area:icon;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:50%;
  background:
    radial-gradient(circle at 38% 28%, rgba(255,245,210,.18), transparent 28%),
    linear-gradient(145deg, rgba(214,181,100,.12), rgba(8,24,24,.78));
  border:1px solid rgba(223,190,108,.38);
  box-shadow:0 0 0 7px rgba(213,179,97,.035),0 12px 28px rgba(0,0,0,.22),0 0 28px rgba(216,180,88,.10);
}
.home-closing-action-icon svg {
  width:30px;
  height:30px;
  fill:none;
  stroke:#e3c477;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 6px rgba(226,193,111,.18));
}
.home-closing-action-body { grid-area:body; min-width:0; }
.home-closing--sanctuary .home-closing-action strong {
  font-family:"Noto Serif KR","Nanum Myeongjo",Batang,Georgia,serif;
  font-size:clamp(1rem,1.5vw,1.14rem);
  color:#f3e8cc;
  letter-spacing:-.035em;
}
.home-closing--sanctuary .home-closing-action small {
  margin-top:.42rem;
  font-size:.75rem;
  color:rgba(232,237,226,.64);
  line-height:1.62;
}
.home-closing-action-arrow {
  grid-area:arrow;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid rgba(221,187,104,.28);
  color:#ddbb69;
  background:rgba(4,16,17,.34);
  transition:transform .28s ease,background .28s ease,color .28s ease;
}
.home-closing--sanctuary .home-closing-action:hover,
.home-closing--sanctuary .home-closing-action:focus-visible {
  transform:translateY(-7px);
  border-color:rgba(230,199,118,.58);
  background:
    radial-gradient(circle at 16% 10%, rgba(238,204,116,.18), transparent 32%),
    linear-gradient(145deg, rgba(27,69,57,.75), rgba(7,30,28,.94));
  box-shadow:0 30px 58px rgba(0,0,0,.32),0 0 38px rgba(210,177,91,.06),inset 0 1px 0 rgba(255,255,255,.09);
}
.home-closing--sanctuary .home-closing-action:hover .home-closing-action-arrow,
.home-closing--sanctuary .home-closing-action:focus-visible .home-closing-action-arrow {
  transform:translateX(3px);
  color:#fff0c2;
  background:rgba(214,179,93,.12);
}
.home-closing-blessing {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.38rem;
  margin:clamp(1.8rem,4vw,3rem) auto 0;
  padding-top:clamp(1.25rem,2.5vw,1.8rem);
  max-width:900px;
  text-align:center;
  border-top:1px solid rgba(222,191,114,.16);
}
.home-closing-blessing::before {
  content:"";
  position:absolute;
  top:-1px;
  left:50%;
  width:180px;
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,#d8b66b,transparent);
  box-shadow:0 0 16px rgba(216,182,107,.28);
}
.home-closing-blessing-star { color:#e2bd68; font-size:.8rem; text-shadow:0 0 15px rgba(230,193,103,.5); }
.home-closing-blessing strong {
  font-family:"Noto Serif KR","Nanum Myeongjo",Batang,Georgia,serif;
  font-size:clamp(1rem,2vw,1.22rem);
  font-weight:650;
  color:#f0e4c7;
  letter-spacing:-.025em;
}
.home-closing-blessing > span:last-child { font-size:.72rem; color:rgba(222,228,218,.55); }

.footer--sanctuary {
  max-width:1420px;
  margin-top:0;
  padding:clamp(1.7rem,4vw,3.2rem)!important;
  border-radius:clamp(28px,3vw,42px);
  border-color:rgba(218,183,99,.23);
  background:
    radial-gradient(circle at 14% 7%, rgba(221,185,94,.10), transparent 26%),
    radial-gradient(circle at 90% 86%, rgba(40,104,88,.14), transparent 28%),
    linear-gradient(155deg, rgba(5,22,21,.985), rgba(3,13,17,.995));
  box-shadow:0 38px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.06);
}
.footer-stars {
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.45;
  background-image:
    radial-gradient(circle,rgba(233,199,114,.72) 0 1px,transparent 1.5px),
    radial-gradient(circle,rgba(255,255,255,.30) 0 .6px,transparent 1.2px);
  background-size:127px 127px,173px 173px;
  background-position:11px 32px,72px 91px;
  mask-image:linear-gradient(120deg,#000,transparent 78%);
}
.footer-horizon {
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:22px;
  pointer-events:none;
}
.footer-horizon::before {
  content:"";
  position:absolute;
  left:6%;
  right:6%;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(217,182,97,.7) 30%,rgba(247,224,166,.85) 50%,rgba(217,182,97,.7) 70%,transparent);
  box-shadow:0 0 22px rgba(220,186,102,.2);
}
.footer-horizon span {
  position:absolute;
  left:50%;
  top:-4px;
  width:9px;
  height:9px;
  transform:translateX(-50%) rotate(45deg);
  background:#d8b568;
  box-shadow:0 0 16px rgba(229,192,101,.45);
}
.footer--sanctuary .footer-stage {
  grid-template-columns:minmax(0,.86fr) minmax(480px,1.14fr);
  gap:clamp(1.5rem,4vw,3.3rem);
}
.footer-brand-lockup { display:flex; align-items:center; gap:1rem; margin-bottom:.95rem; }
.footer-brand-seal {
  position:relative;
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  flex:0 0 auto;
  border-radius:50%;
  border:1px solid rgba(226,191,105,.38);
  background:radial-gradient(circle at 35% 30%,rgba(255,241,199,.16),transparent 25%),linear-gradient(145deg,rgba(217,181,92,.08),rgba(5,21,20,.8));
  box-shadow:0 0 0 8px rgba(217,181,92,.025),0 15px 36px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.07);
}
.footer-brand-seal::before,
.footer-brand-seal::after {
  content:"";
  position:absolute;
  background:#ddba66;
  border-radius:99px;
  opacity:.85;
  box-shadow:0 0 10px rgba(222,187,102,.24);
}
.footer-brand-seal::before { width:2px; height:16px; top:12px; }
.footer-brand-seal::after { width:10px; height:2px; top:18px; }
.footer-brand-seal b {
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  font-weight:500;
  color:#e8c97d;
  line-height:1;
  transform:translateY(4px);
}
.footer-brand-seal i { position:absolute; right:11px; bottom:10px; font-size:.55rem; color:#ddba66; font-style:normal; }
.footer--sanctuary .footer-kicker { color:#d8b568; letter-spacing:.2em; font-size:.58rem; }
.footer--sanctuary .footer-brand {
  margin:.28rem 0 0!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(1.8rem,3vw,2.5rem)!important;
  font-weight:600;
  letter-spacing:.045em!important;
  color:#ead19a!important;
  text-transform:none;
  text-shadow:0 0 24px rgba(224,188,102,.12);
}
.footer--sanctuary .footer-tagline {
  max-width:560px;
  color:rgba(232,236,225,.72)!important;
  font-size:.9rem!important;
  line-height:1.82;
}
.footer-verse-card {
  position:relative;
  overflow:hidden;
  min-height:148px;
  margin:1.15rem 0 1.3rem;
  padding:1.15rem 1.2rem 1.1rem 1.45rem;
  border-radius:22px;
  border:1px solid rgba(219,184,100,.18);
  background:
    linear-gradient(90deg,rgba(214,180,98,.09),transparent 55%),
    radial-gradient(circle at 87% 95%,rgba(213,178,91,.11),transparent 34%),
    rgba(4,17,18,.46);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
.footer-verse-card::after {
  content:"";
  position:absolute;
  right:-36px;
  bottom:-56px;
  width:190px;
  height:120px;
  border:1px solid rgba(223,187,100,.1);
  border-radius:50% 50% 0 0;
  transform:rotate(-12deg);
  box-shadow:-18px -12px 0 -17px rgba(223,187,100,.08),-36px -24px 0 -35px rgba(223,187,100,.06);
}
.footer-verse-mark { display:block; font-family:Georgia,serif; font-size:2.8rem; line-height:.8; color:rgba(225,189,104,.5); }
.footer--sanctuary .footer-verse {
  margin:.55rem 0 .35rem!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  font-family:"Noto Serif KR","Nanum Myeongjo",Batang,Georgia,serif;
  font-size:1.02rem!important;
  color:#efe3c4!important;
  letter-spacing:-.02em;
}
.footer-verse-ref { font-size:.68rem; color:rgba(225,201,144,.58); }
.footer-verse-light { position:absolute; right:1.1rem; bottom:1rem; color:#d9b665; text-shadow:0 0 18px rgba(226,190,99,.52); }
.footer--sanctuary .footer-links { gap:.46rem!important; }
.footer--sanctuary .footer-link {
  min-height:34px;
  padding:0 .78rem;
  border-color:rgba(215,183,106,.14);
  background:rgba(3,14,16,.34);
  color:rgba(231,235,226,.66)!important;
}
.footer--sanctuary .footer-link:hover { color:#e3c172!important; border-color:rgba(222,189,111,.42); }
.footer--sanctuary .footer-side { gap:1rem; }
.footer--sanctuary .visitor-card {
  min-height:136px;
  padding:1.1rem 1.15rem!important;
  border-color:rgba(216,182,100,.19)!important;
  background:
    radial-gradient(circle at 88% 7%,rgba(215,180,93,.12),transparent 27%),
    linear-gradient(145deg,rgba(15,48,42,.60),rgba(5,22,23,.78))!important;
  box-shadow:0 16px 32px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.055);
}
.footer--sanctuary .visitor-label { color:rgba(226,201,145,.62)!important; font-size:.64rem!important; letter-spacing:.08em; }
.footer--sanctuary .visitor-value { color:#e3c071!important; text-shadow:0 0 16px rgba(222,186,101,.10); }
.visitor-note { display:block; margin-top:.32rem; font-size:.66rem; color:rgba(230,236,224,.48); line-height:1.45; }
.footer--sanctuary .visitor-icon { color:#dfbd6e; opacity:.6; }
.footer--sanctuary .footer-business {
  position:relative;
  overflow:hidden;
  padding:1.2rem 1.25rem;
  border-radius:24px;
  border-color:rgba(220,186,104,.26);
  background:
    radial-gradient(circle at 92% 4%,rgba(220,186,104,.09),transparent 29%),
    linear-gradient(145deg,rgba(12,40,35,.60),rgba(5,20,22,.84));
  box-shadow:0 18px 38px rgba(0,0,0,.17),inset 0 1px 0 rgba(255,255,255,.055);
}
.footer--sanctuary .footer-business::after {
  content:"";
  position:absolute;
  right:-58px;
  top:-72px;
  width:180px;
  height:180px;
  border-radius:50%;
  border:1px solid rgba(218,184,101,.09);
  box-shadow:0 0 0 26px rgba(218,184,101,.018),0 0 0 52px rgba(218,184,101,.012);
  pointer-events:none;
}
.footer--sanctuary .footer-business-mark {
  color:#e1be6e;
  background:rgba(218,183,100,.08);
  border-color:rgba(224,191,111,.25);
  box-shadow:0 0 22px rgba(220,184,98,.08);
}
.footer-business-badge {
  margin-left:auto;
  padding:.32rem .56rem;
  border-radius:999px;
  border:1px solid rgba(219,184,102,.18);
  color:rgba(222,193,127,.6);
  font-size:.52rem;
  font-weight:850;
  letter-spacing:.12em;
  background:rgba(3,14,16,.32);
}
.footer--sanctuary .footer-business-head div>span { color:#d9b86a; }
.footer--sanctuary .footer-business-head strong { color:#f1e6ca; font-family:"Noto Serif KR","Nanum Myeongjo",Batang,Georgia,serif; font-size:1rem; }
.footer--sanctuary .footer-business-grid>div {
  background:rgba(3,15,17,.38);
  border-color:rgba(219,185,105,.10);
}
.footer--sanctuary .footer-business-grid span { color:rgba(223,199,144,.54); }
.footer--sanctuary .footer-business-grid strong,
.footer--sanctuary .footer-business-grid a { color:rgba(239,240,229,.82); }
.footer--sanctuary .footer-bottom {
  justify-content:space-between;
  margin-top:1.4rem;
  padding-top:1.15rem;
  border-top-color:rgba(219,185,103,.12);
}
.footer-bottom-brand { display:flex; align-items:center; gap:.6rem; min-width:0; }
.footer-bottom-brand>span { color:#d6b366; font-size:.55rem; }
.footer--sanctuary .footer-copy { color:rgba(226,231,221,.42)!important; }
.footer-bottom-motto {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.42rem .72rem;
  border-radius:999px;
  border:1px solid rgba(218,183,100,.16);
  color:rgba(225,200,143,.55);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.13em;
  background:rgba(4,16,17,.30);
}
.footer-bottom-motto span { color:#d9b568; }

html[data-mode="light"] .home-closing--sanctuary {
  border-color:rgba(154,116,39,.24);
  background:
    radial-gradient(ellipse 70% 90% at 50% -8%,rgba(211,177,96,.18),transparent 45%),
    linear-gradient(160deg,#f7f3e8,#edf3ee 56%,#f4f0e6);
  box-shadow:0 34px 78px rgba(73,64,44,.14),inset 0 1px 0 #fff;
}
html[data-mode="light"] .home-closing--sanctuary .home-closing-copy h2 { color:#1e2d28; text-shadow:none; }
html[data-mode="light"] .home-closing--sanctuary .home-closing-copy p { color:#53625c; }
html[data-mode="light"] .home-closing--sanctuary .home-closing-action {
  border-color:rgba(153,118,45,.20)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(238,243,237,.94))!important;
  box-shadow:0 18px 42px rgba(70,61,41,.10),inset 0 1px 0 #fff;
}
html[data-mode="light"] .home-closing--sanctuary .home-closing-action strong { color:#26352f; }
html[data-mode="light"] .home-closing--sanctuary .home-closing-action small { color:#64716c; }
html[data-mode="light"] .home-closing-blessing strong { color:#35433e; }
html[data-mode="light"] .home-closing-blessing>span:last-child { color:#6c7772; }
html[data-mode="light"] .footer--sanctuary {
  border-color:rgba(153,116,39,.20);
  background:linear-gradient(155deg,#f9f7ef,#f0f4f0);
  box-shadow:0 30px 70px rgba(74,65,46,.12),inset 0 1px 0 #fff;
}
html[data-mode="light"] .footer--sanctuary .footer-brand { color:#9a7336!important; }
html[data-mode="light"] .footer--sanctuary .footer-tagline { color:#56645f!important; }
html[data-mode="light"] .footer-verse-card,
html[data-mode="light"] .footer--sanctuary .visitor-card,
html[data-mode="light"] .footer--sanctuary .footer-business { background:rgba(255,255,255,.78)!important; }
html[data-mode="light"] .footer--sanctuary .footer-verse { color:#39453f!important; }
html[data-mode="light"] .footer--sanctuary .visitor-label,
html[data-mode="light"] .footer--sanctuary .footer-business-grid span { color:#76623e!important; }
html[data-mode="light"] .footer--sanctuary .footer-business-grid>div { background:rgba(241,239,231,.72); }
html[data-mode="light"] .footer--sanctuary .footer-business-grid strong,
html[data-mode="light"] .footer--sanctuary .footer-business-grid a { color:#34403b; }
html[data-mode="light"] .visitor-note { color:#7a8580; }
html[data-mode="light"] .footer-bottom-motto { color:#7c6d4b; }

@media (max-width:1080px) {
  .home-closing--sanctuary .home-closing-actions { grid-template-columns:1fr; }
  .home-closing--sanctuary .home-closing-action { min-height:0; grid-template-columns:62px minmax(0,1fr) 38px; grid-template-areas:"no no no" "icon body arrow"; }
  .home-closing-action-no { margin-bottom:.85rem; }
  .footer--sanctuary .footer-stage { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .home-closing--sanctuary {
    width:calc(100vw - .8rem);
    margin-top:2rem;
    padding:1.4rem .9rem 1.2rem;
    border-radius:26px;
  }
  .home-closing--sanctuary::after { inset:6px; border-radius:20px; }
  .home-closing-beam { width:100vw; opacity:.34; }
  .home-closing--sanctuary .home-closing-copy { margin-bottom:1.3rem; }
  .home-closing--sanctuary .home-closing-kicker { font-size:.56rem; letter-spacing:.17em; }
  .home-closing--sanctuary .home-closing-copy h2 { font-size:clamp(1.55rem,7.7vw,2rem); }
  .home-closing--sanctuary .home-closing-copy p { font-size:.84rem; line-height:1.72; }
  .home-closing--sanctuary .home-closing-actions { gap:.62rem; }
  .home-closing--sanctuary .home-closing-action {
    min-height:0;
    grid-template-columns:48px minmax(0,1fr) 34px;
    grid-template-areas:"no no no" "icon body arrow";
    padding:.88rem .82rem;
    border-radius:19px;
    column-gap:.72rem;
  }
  .home-closing-action-no { margin-bottom:.66rem; font-size:.52rem; }
  .home-closing-action-icon { width:46px; height:46px; box-shadow:0 0 0 5px rgba(213,179,97,.025); }
  .home-closing-action-icon svg { width:24px; height:24px; }
  .home-closing-action-arrow { width:34px; height:34px; }
  .home-closing--sanctuary .home-closing-action strong { font-size:.95rem; }
  .home-closing--sanctuary .home-closing-action small { font-size:.69rem; line-height:1.5; }
  .home-closing-blessing { margin-top:1.3rem; padding-top:1rem; }
  .home-closing-blessing strong { font-size:.9rem; line-height:1.6; }
  .home-closing-blessing>span:last-child { font-size:.64rem; line-height:1.5; }

  .footer--sanctuary {
    width:calc(100vw - .8rem)!important;
    padding:1.25rem .9rem!important;
    border-radius:26px;
    margin-bottom:calc(4.75rem + env(safe-area-inset-bottom))!important;
  }
  .footer-horizon::before { left:10%; right:10%; }
  .footer-brand-lockup { gap:.78rem; }
  .footer-brand-seal { width:58px; height:58px; }
  .footer-brand-seal b { font-size:1.65rem; }
  .footer--sanctuary .footer-brand { font-size:1.65rem!important; }
  .footer--sanctuary .footer-tagline { font-size:.81rem!important; line-height:1.7; }
  .footer-verse-card { min-height:126px; padding:1rem; border-radius:18px; }
  .footer--sanctuary .footer-verse { font-size:.9rem!important; }
  .footer--sanctuary .footer-links { flex-wrap:wrap; }
  .footer--sanctuary .visitor-grid { grid-template-columns:1fr; }
  .footer--sanctuary .visitor-card { min-height:112px; }
  .footer--sanctuary .footer-business { padding:.95rem .82rem; border-radius:20px; }
  .footer-business-badge { display:none; }
  .footer--sanctuary .footer-business-head { align-items:flex-start; }
  .footer--sanctuary .footer-business-grid { grid-template-columns:1fr; }
  .footer--sanctuary .footer-business-wide { grid-column:auto; }
  .footer--sanctuary .footer-business-grid>div { padding:.7rem; }
  .footer--sanctuary .footer-bottom { align-items:flex-start; gap:.8rem; }
  .footer-bottom-motto { flex:0 0 auto; font-size:.49rem; padding:.38rem .52rem; }
}
@media (max-width:370px) {
  .footer--sanctuary .footer-bottom { flex-direction:column; }
  .footer-bottom-motto { align-self:flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  .home-closing--sanctuary::before { animation:none!important; }
  .home-closing--sanctuary .home-closing-action,
  .home-closing-action-arrow { transition:none!important; }
}
@keyframes kbSanctuarySweep {
  0%,68%,100% { transform:translateX(-78%); opacity:0; }
  75% { opacity:.7; }
  91% { transform:translateX(78%); opacity:0; }
}

/* ======================================================================
   V35 — SANCTUARY AURA / FULL HOME PREMIUM PASS
   Keeps the cross aura in its own visual zone and upgrades the entire home.
   ====================================================================== */

:root{
  --v35-emerald-950:#020806;
  --v35-emerald-900:#04100c;
  --v35-emerald-850:#071813;
  --v35-emerald-800:#0a2119;
  --v35-gold:#d9b96c;
  --v35-gold-soft:#f2dfaa;
  --v35-ivory:#f6f1e4;
  --v35-line:rgba(218,187,111,.20);
  --v35-line-soft:rgba(218,187,111,.10);
  --v35-shadow:0 28px 80px rgba(0,0,0,.34);
}

.header{
  background:linear-gradient(180deg,rgba(4,15,11,.91),rgba(3,10,8,.82)) !important;
  border-bottom-color:rgba(219,186,108,.17) !important;
  box-shadow:0 1px 0 rgba(224,194,120,.08),0 18px 48px rgba(0,0,0,.24) !important;
}
.header::after{
  content:"";
  position:absolute;
  left:12%; right:12%; bottom:-1px; height:1px;
  background:linear-gradient(90deg,transparent,rgba(225,193,116,.44),transparent);
  pointer-events:none;
}
.header-logo{filter:drop-shadow(0 0 13px rgba(203,181,108,.28)) !important;}
.header-nav a:hover,.header-nav a.active{
  background:linear-gradient(180deg,rgba(218,187,111,.12),rgba(39,83,63,.08)) !important;
  border-color:rgba(218,187,111,.22) !important;
  color:#f2dfaa !important;
}

.announce-bar{
  background:linear-gradient(90deg,rgba(6,22,16,.97),rgba(13,34,25,.96),rgba(6,22,16,.97)) !important;
  border-bottom:1px solid rgba(218,187,111,.13) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.14);
}

/* V36: hero/aura zone intentionally restored to the pre-V35 original design.
   The premium V35 styling continues from the service chapters downward. */

/* Every home chapter becomes part of one continuous premium sanctuary. */
.services-wrap{
  position:relative;
  max-width:1320px!important;
  padding-top:clamp(2.6rem,5vw,4.6rem)!important;
}
.services-wrap::before{
  content:"";
  position:absolute;
  left:50%;top:1.4rem;
  width:min(720px,72vw);height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(218,187,111,.36),transparent);
}
.svc-chapter{
  position:relative;
  margin-bottom:clamp(2.3rem,4vw,3.8rem)!important;
  padding:clamp(1rem,2vw,1.35rem);
  border:1px solid rgba(218,187,111,.085);
  border-radius:30px;
  background:
    linear-gradient(145deg,rgba(8,25,19,.48),rgba(3,12,9,.32)),
    radial-gradient(circle at 8% 0,color-mix(in srgb,var(--accent) 5%,transparent),transparent 34%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 22px 70px rgba(0,0,0,.12);
}
.svc-chapter::before{
  content:"";
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.028),transparent 22% 78%,rgba(218,187,111,.022));
}
.svc-chapter-header{border-bottom-color:rgba(218,187,111,.12)!important;}
.svc-chapter-header::after{width:84px!important;background:linear-gradient(90deg,#d8b76a,transparent)!important;}
.svc-chapter-title{
  color:#eee8d7!important;
  font-family:"Noto Serif KR","Nanum Myeongjo",Batang,Georgia,serif!important;
  letter-spacing:-.035em!important;
}
.svc-chapter-sub{color:rgba(223,226,214,.52)!important;}
.svc-card{
  border-color:rgba(218,187,111,.12)!important;
  background:
    linear-gradient(150deg,rgba(15,41,31,.78),rgba(5,17,13,.88)),
    radial-gradient(circle at 92% 8%,rgba(218,187,111,.07),transparent 28%) !important;
  box-shadow:0 18px 50px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.svc-card::before{background:radial-gradient(ellipse 78% 54% at 50% -8%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%)!important;opacity:.5!important;}
.svc-card::after{background:linear-gradient(90deg,transparent,#d6b666,var(--accent),transparent)!important;opacity:.78;}
.svc-card:hover{
  transform:translateY(-5px)!important;
  border-color:rgba(226,196,123,.32)!important;
  box-shadow:0 26px 72px rgba(0,0,0,.27),0 0 0 1px rgba(218,187,111,.055),inset 0 1px 0 rgba(255,255,255,.055)!important;
}
.svc-card .svc-icon{
  background:linear-gradient(145deg,rgba(218,187,111,.12),rgba(25,71,49,.16))!important;
  border:1px solid rgba(218,187,111,.13);
  box-shadow:0 12px 30px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.045)!important;
}
.svc-title{color:#f1ede2!important;}
.svc-desc{color:rgba(221,227,216,.61)!important;}
.svc-arrow{color:#d8b96d!important;}

.home-media-section{
  border-color:rgba(218,187,111,.12)!important;
  background:linear-gradient(155deg,rgba(12,36,27,.76),rgba(5,16,12,.88))!important;
  box-shadow:0 24px 65px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.home-media-section::before{background:radial-gradient(circle,rgba(218,187,111,.12),transparent 68%)!important;}
.home-media-card{border-color:rgba(218,187,111,.11)!important;background:rgba(4,16,12,.52)!important;}
.home-media-art{box-shadow:inset 0 0 0 1px rgba(229,198,123,.11),0 16px 36px rgba(0,0,0,.24);}

/* Preserve the V34 premium footer, give its transition more depth. */
.home-sanctuary-close{border-top-color:rgba(218,187,111,.16)!important;}
.footer--sanctuary{box-shadow:inset 0 1px 0 rgba(218,187,111,.11),0 -30px 90px rgba(0,0,0,.18);}

/* Light mode keeps the premium structure without becoming murky. */
html[data-mode="light"] .hero{
  background:
    linear-gradient(180deg,rgba(250,248,240,.20),rgba(246,243,233,.72) 72%,#f7f4eb 100%),
    radial-gradient(ellipse 22% 35% at 50% 0,rgba(78,142,101,.10),transparent 72%)!important;
}
html[data-mode="light"] .svc-chapter,
html[data-mode="light"] .svc-card,
html[data-mode="light"] .home-media-section{
  background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(248,246,238,.92))!important;
  border-color:rgba(116,91,38,.13)!important;
  box-shadow:0 20px 50px rgba(85,72,45,.08),inset 0 1px 0 #fff!important;
}
html[data-mode="light"] .svc-title,
html[data-mode="light"] .svc-chapter-title{color:#18261f!important;}
html[data-mode="light"] .svc-desc,
html[data-mode="light"] .svc-chapter-sub{color:#536058!important;}
html[data-mode="light"] .hero-title,
html[data-mode="light"] .hero-line{color:#14231b!important;text-shadow:0 0 12px rgba(72,127,91,.08)!important;}
html[data-mode="light"] .hero-desc{color:#556159!important;}

@media (max-width:860px){
  .hero{min-height:auto;padding-top:4.2rem!important;padding-bottom:3.4rem!important;}
  .hero-glow-ring{top:.15rem!important;width:min(430px,88vw)!important;height:180px!important;}
  .hero-emblem::before{width:126px;height:126px}.hero-emblem::after{width:156px;height:156px}
  .hero-title{font-size:clamp(2.35rem,11vw,3.8rem)!important;}
  .svc-chapter{padding:.85rem;border-radius:24px;}
}
@media (max-width:520px){
  .hero{padding-inline:.8rem!important;}
  .hero-emblem-ring{width:82px!important;height:82px!important;}
  .hero-emblem::before{width:112px;height:112px}.hero-emblem::after{width:136px;height:136px}
  .hero-glow-ring{height:160px!important;}
  .hero-title-wrap{padding-inline:.2rem;}
  .hero-title{font-size:clamp(2.05rem,12vw,3.1rem)!important;line-height:1.2!important;}
  .hero-desc{font-size:.94rem!important;line-height:1.75!important;}
  .services-wrap{padding-inline:.65rem!important;}
  .svc-chapter{padding:.72rem;border-radius:20px;}
  .svc-card{border-radius:22px!important;}
}

@media (prefers-reduced-motion:reduce){
  .hero-emblem-ring{animation:none!important;}
}


/* V36 — 100-verse hero safety sizing. Short verses keep the original hero scale. */
.hero-title.is-long { font-size:clamp(2.25rem,6.1vw,4.15rem); }
.hero-title.is-very-long { font-size:clamp(1.95rem,5.3vw,3.65rem); line-height:1.18; }
@media (max-width:640px){
  .hero-title.is-long { font-size:clamp(1.9rem,8.2vw,2.7rem); }
  .hero-title.is-very-long { font-size:clamp(1.7rem,7.4vw,2.35rem); line-height:1.2; }
}

/* V48 — hero aura/composition untouched; typography only gets a sharper raster edge. */
.hero-title,.hero-line{
  -webkit-font-smoothing:antialiased!important;
  -moz-osx-font-smoothing:grayscale!important;
  text-rendering:geometricPrecision!important;
}
.hero-line{-webkit-text-stroke:.28px color-mix(in srgb,currentColor 92%,transparent);}
@media(max-width:640px){.hero-line{-webkit-text-stroke:.18px color-mix(in srgb,currentColor 94%,transparent);}}
