:root {
  --color-peach: #F7C9B6;
  --color-sun: #FFF2A1;
  --color-cream: #FFF8D6;
  --color-sky: #B4D9E6;
  --color-mint: #CFF3D1;
  --color-navy: #17213B;
  --color-muted: #6E7688;
  --color-gold: #A77C35;
  --color-bg: var(--color-cream);
  --color-surface: #FFFDF3;
  --category-word: var(--color-sky);
  --category-evening: var(--color-peach);
  --category-morning: var(--color-sun);
  --category-editorial: var(--color-mint);
  --category-resource: var(--color-mint);
  --ivory: #f6f1e8;
  --warm-white: var(--color-surface);
  --beige: #e8dccb;
  --navy: var(--color-navy);
  --navy-deep: #0b1430;
  --ink: var(--color-navy);
  --gray: var(--color-muted);
  --blue-gray: var(--color-muted);
  --gold: var(--color-gold);
  --gold-deep: var(--color-gold);
  --sage: #8fa189;
  --sage-soft: #dce7d7;
  --white: var(--color-surface);
  --line: rgba(154, 116, 48, .3);
  --shadow: 0 24px 70px rgba(16, 24, 50, .14);
  --shadow-soft: 0 18px 50px rgba(16, 24, 50, .11);
  --shadow-lift: 0 30px 80px rgba(16, 24, 50, .2);
  --radius-card: 18px;
  --radius-section: 28px;
  --icon-size: 28px;
  --icon-badge: 48px;
  --paper-texture: repeating-linear-gradient(135deg, rgba(255,255,255,.16) 0 1px, transparent 1px 7px);
  --hero-gradient: radial-gradient(circle at 18% 16%, rgba(255,255,255,.86), transparent 28%), radial-gradient(circle at 82% 20%, rgba(255,242,161,.42), transparent 30%), radial-gradient(circle at 78% 86%, rgba(207,243,209,.45), transparent 34%), linear-gradient(135deg, var(--color-surface) 0%, var(--color-cream) 50%, #edf8ee 100%);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: linear-gradient(180deg, var(--color-bg) 0%, #f8f1dd 100%);
  color: var(--ink);
  font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", sans-serif;
  font-size: 18px;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: pretty;
}
a { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px clamp(20px, 4vw, 56px);
  background: rgba(255, 248, 214, .94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; min-width: max-content; }
.brand img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; }
.brand strong { display: block; font-family: "Noto Serif KR Variable", "Noto Serif KR", serif; font-size: 1.35rem; line-height: 1.15; }
.brand small { display: block; color: #111; font-weight: 700; white-space: nowrap; }
.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: 4px; flex-wrap: wrap; }
.site-nav a {
  position: relative;
  padding: 8px 10px;
  border-radius: 999px;
  color: var(--navy);
  text-decoration: none;
  font-weight: 700;
  font-size: .92rem;
  line-height: 1.2;
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 3px;
  height: 2px;
  border-radius: 999px;
  background: transparent;
  transition: background .2s ease;
}
.site-nav a:hover, .site-nav a.active { background: rgba(207, 243, 209, .56); color: var(--navy); }
.site-nav a:hover::after, .site-nav a.active::after { background: var(--gold); }
.menu-toggle { display: none; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: var(--white); }
.menu-toggle span:not(.sr-only) { display: block; width: 22px; height: 2px; margin: 5px auto; background: var(--navy); }
.hero, .page-hero {
  position: relative;
  isolation: isolate;
  margin: 24px auto 0;
  width: min(1180px, calc(100% - 40px));
  border-radius: var(--radius-section);
  overflow: hidden;
  background: var(--hero-gradient);
  box-shadow: var(--shadow);
}
.hero::before, .page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    var(--paper-texture),
    radial-gradient(ellipse at 70% 44%, rgba(255,255,255,.38), transparent 30%);
  opacity: .72;
}
.hero::after, .page-hero::after {
  content: "";
  position: absolute;
  right: clamp(18px, 5vw, 74px);
  bottom: clamp(-60px, -5vw, -24px);
  z-index: -1;
  width: clamp(190px, 28vw, 390px);
  aspect-ratio: 1;
  border: 1px solid rgba(199,161,90,.22);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255,253,248,.78), rgba(199,161,90,.14) 42%, transparent 68%);
  box-shadow: inset 0 0 40px rgba(255,255,255,.4);
}
.hero { min-height: 560px; display: flex; align-items: center; }
.hero-content, .page-hero { padding: clamp(34px, 7vw, 92px); }
.page-hero { min-height: 320px; }
.eyebrow {
  margin: 0 0 12px;
  color: var(--gold-deep);
  font: 700 .78rem/1 "Pretendard Variable", Pretendard, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
h1, h2, h3 { font-family: "Noto Serif KR Variable", "Noto Serif KR", serif; line-height: 1.22; color: var(--navy-deep); letter-spacing: 0; }
h1 { max-width: 860px; margin: 0; font-size: clamp(2.45rem, 4.8vw, 4.7rem); }
h2 { margin: 0 0 18px; font-size: clamp(1.9rem, 3.2vw, 3rem); }
h3 { margin: 0 0 10px; font-size: 1.35rem; }
.hero-name { margin: 8px 0 18px; color: var(--gold-deep); font-weight: 700; font-size: 1.35rem; }
.hero-copy, .page-hero p { max-width: 720px; color: var(--blue-gray); font-size: clamp(1.05rem, 1.75vw, 1.26rem); font-weight: 700; line-height: 1.75; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 13px 22px;
  border-radius: 999px;
  border: 1px solid var(--line);
  text-decoration: none;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(23, 33, 59, .16); }
.primary { background: var(--navy); color: var(--color-surface); border-color: var(--navy); }
.primary:hover { background: var(--gold); color: var(--navy-deep); border-color: var(--gold); }
.secondary { background: rgba(255,253,243,.72); color: var(--navy); }
.section, .article {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(54px, 8vw, 96px) 0;
}
.article { max-width: 820px; }
.hub-grid, .feature-grid, .content-grid, .video-grid, .card-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.hub-card, .feature-grid article, .content-card, .video-card, .form-panel, .price-card {
  position: relative;
  display: block;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: linear-gradient(145deg, rgba(255,253,243,.98), rgba(255,248,214,.72));
  box-shadow: 0 16px 42px rgba(16,24,50,.1);
  text-decoration: none;
  overflow: hidden;
}
.hub-card::after, .feature-grid article::after, .content-card::after, .video-card::after {
  content: "";
  position: absolute;
  top: 18px;
  right: 18px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(199,161,90,.28);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(199,161,90,.2), transparent 58%);
}
.hub-card:hover, .feature-grid article:hover, .content-card:hover, .video-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.hub-card span { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-bottom: 16px; border-radius: 50%; background: var(--navy); color: var(--gold); font-weight: 700; }
.hub-card strong, .content-card strong { display: block; font-size: 1.2rem; font-weight: 700; color: var(--navy-deep); }
.hub-card p, .content-card p, .video-card p, .muted { color: var(--gray); }
.split, .product-panel { display: grid; grid-template-columns: 1.1fr .9fr; gap: 34px; align-items: center; }
.pdf-product-card {
  display: grid;
  gap: 14px;
  min-height: 100%;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--white);
  box-shadow: 0 12px 30px rgba(23,33,59,.08);
}
.pdf-product-card.featured {
  border-color: rgba(199,161,90,.62);
  background:
    var(--paper-texture),
    radial-gradient(circle at 90% 12%, rgba(199,161,90,.18), transparent 28%),
    var(--white);
}
.product-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.product-badge {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgba(199,161,90,.14);
  color: var(--gold-deep);
  font-weight: 700;
  font-size: .82rem;
  white-space: nowrap;
}
.compact-list {
  margin: 0;
  padding-left: 20px;
  color: var(--gray);
}
.compact-list li { margin: 4px 0; }
.product-price {
  margin-top: auto;
  color: var(--navy-deep);
  font-weight: 700;
}
.product-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.product-actions .button {
  min-height: 46px;
  padding: 10px 16px;
  font-size: .92rem;
}
.devotion-highlight { padding: 42px; border-radius: 24px; background: var(--navy); color: white; }
.devotion-highlight h2, .devotion-highlight h3 { color: white; }
blockquote { margin: 0; padding: 24px; border-left: 6px solid var(--gold); background: linear-gradient(135deg, rgba(255,253,248,.92), rgba(199,161,90,.12)); border-radius: 14px; font-family: "Noto Serif KR Variable", "Noto Serif KR", serif; font-weight: 700; box-shadow: 0 10px 28px rgba(23,33,59,.07); }
blockquote cite { display: block; margin-top: 12px; color: var(--gold); font-style: normal; }
.topic-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.topic-grid a { padding: 16px; border-radius: 16px; background: var(--beige); text-decoration: none; font-weight: 700; text-align: center; }
.search-panel { padding: 40px; border-radius: 24px; background: rgba(255,248,214,.76); }
.search-box { display: flex; gap: 12px; }
input, textarea {
  width: 100%;
  min-height: 52px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: white;
  color: var(--navy);
  font: inherit;
}
input:focus, textarea:focus { outline: 3px solid rgba(199,161,90,.24); border-color: var(--gold); }
.form-panel { display: grid; gap: 18px; }
label { font-weight: 700; }
.checkbox-label { display: flex; gap: 12px; align-items: flex-start; font-weight: 700; color: var(--gray); }
.checkbox-label input { width: auto; min-height: auto; margin-top: 8px; }
.narrow { max-width: 780px; }
.text-link { color: var(--gold-deep); font-weight: 700; }
.check-list li { margin: 10px 0; }
.day-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.day-card { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.share-card { min-height: 260px; padding: 28px; border-radius: 22px; display: grid; align-content: center; gap: 12px; box-shadow: var(--shadow); }
.share-card span { color: var(--gold); font-weight: 700; }
.share-card strong { font: 700 1.6rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif; }
.share-card.navy { background: var(--navy); color: white; }
.share-card.ivory { background: #fffaf0; }
.share-card.sage { background: #dfe7da; }
.sub-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
}
.sub-hero-icon {
  display: inline-grid;
  place-items: center;
  width: 76px;
  height: 76px;
  border: 1px solid rgba(199,161,90,.34);
  border-radius: 50%;
  background: rgba(255,253,248,.68);
  box-shadow: inset 0 0 28px rgba(255,255,255,.6), 0 16px 32px rgba(23,33,59,.08);
}
.sub-hero-icon svg {
  width: var(--icon-size);
  height: var(--icon-size);
  fill: none;
  stroke: var(--gold-deep);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sub-hero--night {
  background:
    radial-gradient(circle at 20% 22%, rgba(199,161,90,.26), transparent 28%),
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.2), transparent 26%),
    linear-gradient(135deg, #111b33 0%, #17213b 56%, #56634f 100%);
}
.sub-hero--night h1, .sub-hero--night p { color: white; }
.sub-hero--night .eyebrow { color: var(--gold); }
.sub-hero--morning {
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.8), transparent 26%),
    radial-gradient(circle at 84% 16%, rgba(199,161,90,.32), transparent 30%),
    linear-gradient(135deg, #fffaf0 0%, #efe7da 45%, #f2dcae 100%);
}
.sub-hero--premium {
  background:
    radial-gradient(circle at 18% 18%, rgba(199,161,90,.28), transparent 26%),
    linear-gradient(135deg, #fffdf8 0%, #efe7da 45%, #17213b 140%);
}
.hero-photo {
  min-height: clamp(420px, 48vw, 620px);
  background-color: var(--navy-deep);
  background-size: cover;
  background-position: center;
  color: var(--white);
}
.hero-photo::before {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(7, 12, 28, .82) 0%, rgba(12, 19, 39, .64) 44%, rgba(12, 19, 39, .22) 100%),
    radial-gradient(circle at 24% 20%, rgba(255, 253, 248, .24), transparent 26%),
    var(--paper-texture);
  opacity: 1;
}
.hero-photo::after {
  opacity: .32;
  border-color: rgba(255, 253, 248, .18);
  background: radial-gradient(circle, rgba(255, 253, 248, .36), rgba(200, 168, 95, .08) 48%, transparent 70%);
}
.hero-photo h1,
.hero-photo p {
  color: var(--white);
  text-shadow: 0 3px 18px rgba(0, 0, 0, .42);
}
.hero-photo .eyebrow {
  color: #f1d38b;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .36);
}
.hero-photo .secondary {
  background: rgba(255, 253, 248, .9);
}
.hero-photo .sub-hero-icon {
  background: rgba(255, 253, 248, .84);
}
.hero-photo--home {
  background-image: url("../images/hero-home.png");
  background-position: center 48%;
}
.hero-photo--about {
  min-height: clamp(320px, 32vw, 420px);
  background-image: url("../images/hero-home.png");
  background-position: center 48%;
}
.hero-photo--about::before {
  background:
    linear-gradient(90deg, rgba(7, 12, 28, .9) 0%, rgba(12, 19, 39, .78) 46%, rgba(12, 19, 39, .34) 100%),
    radial-gradient(circle at 24% 20%, rgba(255, 253, 248, .18), transparent 28%),
    var(--paper-texture);
}
.hero-photo--prayers {
  min-height: clamp(320px, 32vw, 420px);
  background-image: url("../images/hero-prayer-cards.jpeg");
  background-position: center 72%;
}
.hero-photo--prayers::before {
  background:
    linear-gradient(90deg, rgba(7, 12, 28, .9) 0%, rgba(12, 19, 39, .76) 48%, rgba(12, 19, 39, .36) 100%),
    radial-gradient(circle at 24% 20%, rgba(180, 217, 230, .2), transparent 28%),
    var(--paper-texture);
}
.hero-photo--morning {
  background-image: url("../images/hero-morning.png");
  background-position: center 44%;
}
.hero-photo--night {
  background-image: url("../images/hero-night.png");
  background-position: center 50%;
}
.hero-photo--meditation {
  background-image: url("../images/hero-meditation.jpeg");
  background-position: center 38%;
}
.hero-photo--cards {
  background-image: url("../images/hero-prayer-cards.jpeg");
  background-position: center 42%;
}
.wave-divider {
  position: relative;
}
.wave-divider::after {
  content: "";
  display: block;
  width: min(1120px, calc(100% - 40px));
  height: 34px;
  margin: -20px auto 0;
  border-radius: 0 0 50% 50%;
  background: radial-gradient(ellipse at center, rgba(199,161,90,.2), transparent 68%);
}
.visual-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.visual-prayer-card {
  aspect-ratio: 1;
  display: grid;
  align-content: space-between;
  padding: 26px;
  border: 1px solid rgba(199,161,90,.42);
  border-radius: 24px;
  background:
    var(--paper-texture),
    radial-gradient(circle at 78% 18%, rgba(199,161,90,.22), transparent 28%),
    linear-gradient(135deg, #fffdf8, #efe7da);
  box-shadow: var(--shadow-soft);
}
.visual-prayer-card:nth-child(2n) {
  background:
    var(--paper-texture),
    radial-gradient(circle at 18% 22%, rgba(168,184,160,.3), transparent 30%),
    linear-gradient(135deg, #fffdf8, #dfe7da);
}
.visual-prayer-card:nth-child(3n) {
  background:
    radial-gradient(circle at 82% 20%, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg, #17213b, #2f3c5e);
  color: white;
}
.visual-prayer-card span { color: var(--gold-deep); font-weight: 700; }
.visual-prayer-card:nth-child(3n) span, .visual-prayer-card:nth-child(3n) strong, .visual-prayer-card:nth-child(3n) p { color: white; }
.visual-prayer-card strong { font: 700 1.5rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif; color: var(--navy-deep); }
.visual-prayer-card p { margin: 0; color: var(--gray); }
.card-carousel {
  position: relative;
  min-height: 570px;
  display: grid;
  align-items: center;
  padding: 22px clamp(50px, 7vw, 88px) 54px;
  perspective: 1600px;
  outline: none;
}
.card-carousel:focus-visible {
  border-radius: 24px;
  outline: 3px solid rgba(200,168,95,.32);
}
.card-stack {
  position: relative;
  min-height: 500px;
}
.stack-card {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(560px, 76vw);
  min-height: 480px;
  display: grid;
  align-content: start;
  gap: 14px;
  padding: clamp(24px, 4vw, 34px);
  border: 1px solid rgba(154,116,48,.34);
  border-radius: 26px;
  background:
    var(--paper-texture),
    radial-gradient(circle at 92% 10%, rgba(200,168,95,.18), transparent 24%),
    linear-gradient(145deg, #fffdf8 0%, #f7efe2 62%, #edf4ea 100%);
  box-shadow: 0 26px 70px rgba(16,24,50,.18);
  transform-origin: center;
  transition: transform .32s ease, opacity .32s ease, filter .32s ease;
  opacity: 0;
  pointer-events: none;
}
.stack-card::after {
  content: "";
  position: absolute;
  top: 18px;
  right: 18px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(200,168,95,.3);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.75), rgba(200,168,95,.14));
}
.stack-card.is-active {
  z-index: 4;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateZ(80px) scale(1) rotateY(0deg);
}
.stack-card.is-prev {
  z-index: 3;
  opacity: .62;
  filter: saturate(.88);
  transform: translateX(calc(-50% - 235px)) translateZ(-90px) scale(.88) rotateY(9deg);
}
.stack-card.is-next {
  z-index: 3;
  opacity: .62;
  filter: saturate(.88);
  transform: translateX(calc(-50% + 235px)) translateZ(-90px) scale(.88) rotateY(-9deg);
}
.stack-card.is-hidden {
  z-index: 1;
  opacity: 0;
  transform: translateX(-50%) translateZ(-180px) scale(.78);
}
.stack-card h3 {
  max-width: 88%;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  line-height: 1.28;
}
.stack-summary {
  margin: 0;
  color: var(--gray);
  font-weight: 700;
}
.stack-body {
  margin: 0;
  color: #344054;
  font-size: 1.02rem;
  line-height: 1.85;
}
.visual-stack-card {
  aspect-ratio: 1;
  min-height: auto;
  align-content: space-between;
}
.visual-stack-card .visual-label {
  width: fit-content;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(22,33,60,.08);
  color: var(--gold-deep);
  font-weight: 700;
}
.visual-stack-card small {
  color: var(--blue-gray);
  font-weight: 700;
}
.carousel-control {
  position: absolute;
  top: 45%;
  z-index: 8;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(154,116,48,.35);
  border-radius: 50%;
  background: rgba(255,253,248,.88);
  color: var(--navy-deep);
  box-shadow: 0 18px 36px rgba(16,24,50,.14);
  font-size: 2.3rem;
  line-height: 1;
  cursor: pointer;
}
.carousel-control.prev { left: 0; }
.carousel-control.next { right: 0; }
.carousel-control:hover {
  background: var(--gold);
  transform: translateY(-2px);
}
.carousel-status {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  margin: 0;
  color: var(--blue-gray);
  font-weight: 700;
}
.video-card {
  display: grid;
  gap: 12px;
  padding: 18px;
}
.video-thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  margin: -2px -2px 4px;
  overflow: hidden;
  border-radius: 16px;
  background: var(--navy);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}
.video-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .32s ease;
}
.video-thumb:hover img { transform: scale(1.04); }
.play-mark {
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: rgba(255,253,248,.92);
  color: var(--gold-deep);
  transform: translate(-50%, -50%);
  box-shadow: 0 14px 32px rgba(16,24,50,.2);
}
.challenge-path {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.challenge-path::before {
  content: "";
  position: absolute;
  top: 32px;
  left: 12%;
  right: 12%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.challenge-step {
  position: relative;
  z-index: 1;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--white);
  box-shadow: 0 12px 30px rgba(23,33,59,.08);
}
.challenge-step span {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold);
  font-weight: 700;
}
.brand-hero {
  min-height: 500px;
  display: grid;
  align-items: center;
}
.brand-hero-copy { max-width: 860px; }
.brand-hero h1 { max-width: 820px; }
.brand-hero p { max-width: 840px; }
.brand-story {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 34px;
  align-items: center;
}
.brand-story p { color: var(--gray); font-weight: 600; }
.story-steps {
  display: grid;
  gap: 14px;
}
.story-steps article, .audience-card, .journey-card, .principle-grid article, .resource-grid a {
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: 0 12px 30px rgba(23,33,59,.08);
}
.story-steps article {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 4px 16px;
  padding: 22px;
  border-radius: 18px;
}
.story-steps span {
  grid-row: span 2;
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold);
  font: 700 .9rem/1 "Pretendard Variable", Pretendard, sans-serif;
}
.story-steps strong, .audience-card strong, .journey-card strong, .principle-grid strong, .resource-grid strong {
  color: var(--navy-deep);
  font-weight: 700;
}
.story-steps p, .audience-card p, .journey-card p, .principle-grid p, .resource-bridge p {
  margin: 0;
  color: var(--gray);
}
.audience-grid, .journey-grid, .principle-grid {
  display: grid;
  gap: 18px;
}
.audience-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.journey-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.principle-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.audience-card, .journey-card {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 210px;
  padding: 24px;
  border-radius: 18px;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
.audience-card:hover, .journey-card:hover, .resource-grid a:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}
.journey-card span {
  display: inline-flex;
  width: fit-content;
  min-height: 34px;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(199,161,90,.14);
  color: var(--gold-deep);
  font-weight: 700;
  font-size: .84rem;
}
.video-journey {
  background:
    linear-gradient(135deg, rgba(23,33,59,.94), rgba(23,33,59,.82)),
    var(--navy);
}
.video-journey strong, .video-journey p { color: white; }
.video-journey span { background: rgba(255,255,255,.14); color: var(--gold); }
.principle-grid article {
  min-height: 230px;
  padding: 24px;
  border-radius: 18px;
}
.principle-grid strong {
  display: block;
  margin-bottom: 12px;
  font-size: 1.12rem;
  line-height: 1.45;
}
.resource-bridge {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 30px;
  align-items: center;
  padding: 42px;
  border-radius: 24px;
  background: var(--beige);
}
.resource-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.resource-grid a {
  display: grid;
  gap: 10px;
  min-height: 150px;
  padding: 22px;
  border-radius: 18px;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
.resource-grid span {
  align-self: end;
  color: var(--gold-deep);
  font-weight: 700;
}
.closing-cta {
  padding: 52px;
  border-radius: 26px;
  background: var(--navy);
  color: white;
}
.closing-cta h2, .closing-cta p { color: white; }
.closing-cta p { max-width: 720px; }
.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 40px clamp(20px, 4vw, 56px);
  background: var(--navy);
  color: white;
}
.footer-links { display: flex; flex-wrap: wrap; gap: 14px; }
.footer-links a { color: white; }
@media (max-width: 860px) {
  body { font-size: 17px; }
  .menu-toggle { display: block; }
  .site-header { align-items: flex-start; }
  .site-nav { display: none; position: absolute; left: 20px; right: 20px; top: 84px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: var(--shadow); }
  .site-nav.open { display: grid; }
  .brand small { white-space: normal; }
  .hub-grid, .feature-grid, .content-grid, .video-grid, .card-preview-grid, .split, .product-panel, .brand-story, .audience-grid, .journey-grid, .principle-grid, .resource-bridge, .resource-grid, .sub-hero, .visual-card-grid, .challenge-path { grid-template-columns: 1fr; }
  .topic-grid, .day-grid { grid-template-columns: repeat(2, 1fr); }
  .search-box { flex-direction: column; }
  .hero, .page-hero, .section, .article { width: min(100% - 32px, 1120px); }
  .resource-bridge, .closing-cta { padding: 32px 22px; }
  .sub-hero-icon { width: 62px; height: 62px; }
  .challenge-path::before { display: none; }
  .card-carousel { min-height: 590px; padding: 12px 42px 54px; }
  .card-stack { min-height: 520px; }
  .stack-card { width: min(430px, 78vw); min-height: 500px; }
  .stack-card.is-prev { transform: translateX(calc(-50% - 92px)) translateZ(-90px) scale(.84) rotateY(7deg); }
  .stack-card.is-next { transform: translateX(calc(-50% + 92px)) translateZ(-90px) scale(.84) rotateY(-7deg); }
  .carousel-control { width: 46px; height: 46px; font-size: 1.9rem; }
  .site-footer { flex-direction: column; }
}
@media (max-width: 430px) {
  .topic-grid, .day-grid { grid-template-columns: 1fr; }
  .hero-content, .page-hero { padding: 28px 22px; }
  h1 { font-size: 2.18rem; }
  .card-carousel { min-height: 620px; padding: 8px 36px 54px; }
  .card-stack { min-height: 550px; }
  .stack-card { width: min(330px, 78vw); min-height: 530px; padding: 22px; }
  .stack-card.is-prev { transform: translateX(calc(-50% - 48px)) translateZ(-80px) scale(.82) rotateY(6deg); }
  .stack-card.is-next { transform: translateX(calc(-50% + 48px)) translateZ(-80px) scale(.82) rotateY(-6deg); }
  .stack-body { font-size: .96rem; line-height: 1.75; }
}

/* Daily archive homepage */
.icon, .nav-icon, .icon-sm {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.icon-sm { width: 16px; height: 16px; stroke-width: 2; }
.icon-lg { width: 42px; height: 42px; }
.nav-icon { width: 18px; height: 18px; margin-right: 7px; color: var(--gold-deep); }
.site-nav a { display: inline-flex; align-items: center; gap: 0; }
.archive-home-hero h1 { max-width: 920px; }
.section-heading-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
}
.today-word-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(200,168,95,.38);
  border-radius: 26px;
  background:
    radial-gradient(circle at 86% 12%, rgba(200,168,95,.18), transparent 30%),
    linear-gradient(145deg, rgba(255,253,248,.98), rgba(248,241,228,.94));
  box-shadow: var(--shadow);
}
.today-word-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 8px;
  background: linear-gradient(180deg, var(--gold), rgba(168,184,160,.75));
}
.today-word-card::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -120px;
  width: 310px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(168,184,160,.28), transparent 68%);
}
.today-word-main {
  position: relative;
  z-index: 1;
  padding: clamp(28px, 5vw, 54px);
}
.today-word-meta, .archive-card-meta, .daily-card-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}
.today-word-meta span, .archive-card-meta span, .category-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgba(200,168,95,.14);
  color: var(--gold-deep);
  font-weight: 700;
  font-size: .86rem;
}
.today-word-main h3 { font-size: clamp(1.8rem, 3.2vw, 2.75rem); }
.prayer-line {
  margin: 22px 0 0;
  padding: 20px 22px;
  border-radius: 18px;
  background: rgba(22,33,60,.94);
  color: white;
  font-weight: 700;
  box-shadow: 0 18px 42px rgba(16,24,50,.16);
}
.tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.tag-row span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(207,243,209,.44);
  color: var(--navy);
  font-weight: 700;
  font-size: .84rem;
}
.daily-preview-grid, .visual-hub-grid, .search-results-grid, .archive-results-grid, .resource-cta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.daily-preview-card, .archive-word-card, .visual-hub-card, .resource-cta-grid a {
  position: relative;
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 260px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: linear-gradient(145deg, rgba(255,253,248,.98), rgba(250,245,235,.94));
  box-shadow: 0 14px 34px rgba(16,24,50,.09);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.daily-preview-card:hover, .archive-word-card:hover, .visual-hub-card:hover, .resource-cta-grid a:hover {
  transform: translateY(-3px);
  border-color: rgba(200,168,95,.55);
  box-shadow: var(--shadow);
}
.category-icon {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(22,33,60,.94);
  color: var(--gold);
  box-shadow: inset 0 0 18px rgba(255,255,255,.08), 0 12px 24px rgba(16,24,50,.14);
}
.theme-word .category-icon,
.daily-preview-card.theme-word .category-icon { background: var(--category-word); color: var(--navy); }
.theme-evening .category-icon,
.daily-preview-card.theme-evening .category-icon { background: var(--category-evening); color: var(--navy); }
.theme-morning .category-icon,
.daily-preview-card.theme-morning .category-icon { background: var(--category-morning); color: var(--navy); }
.theme-editorial .category-icon,
.daily-preview-card.theme-editorial .category-icon { background: var(--category-editorial); color: var(--navy); }
.daily-preview-card.theme-resource .category-icon { background: var(--category-resource); color: var(--navy); }
.scripture-ref {
  margin: 0;
  color: var(--gold-deep);
  font-weight: 700;
}
.visual-hub-section {
  position: relative;
}
.visual-hub-card {
  min-height: 240px;
  overflow: hidden;
  color: var(--navy-deep);
}
.visual-hub-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--paper-texture), radial-gradient(circle at 80% 20%, rgba(255,255,255,.62), transparent 28%);
  opacity: .8;
}
.visual-hub-card::after {
  content: "";
  position: absolute;
  right: -54px;
  bottom: -74px;
  width: 190px;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(200,168,95,.2);
  background: radial-gradient(circle, rgba(200,168,95,.2), transparent 68%);
}
.visual-hub-card > * { position: relative; z-index: 1; }
.visual-open-bible { background: linear-gradient(135deg, #fffdf8, #efe7da); }
.visual-morning-light { background: linear-gradient(135deg, #fff9e8, #dce7d7); }
.visual-night-window { background: linear-gradient(135deg, #16213c, #5d6c62); color: white; }
.visual-night-window strong, .visual-night-window p { color: white; }
.visual-soft-screen { background: linear-gradient(135deg, #f7f4ed, #dfe7ed); }
.visual-paper-card { background: linear-gradient(135deg, #fffdf8, #f1e3c8); }
.visual-prayer-note { background: linear-gradient(135deg, #f9f5eb, #dce7d7); }
.visual-letter-desk { background: linear-gradient(135deg, #fffdf8, #e6edf0); }
.archive-entrance-section {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 24px;
  align-items: stretch;
  padding: clamp(34px, 5vw, 52px);
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,.72), transparent 26%),
    linear-gradient(135deg, #efe7da, #dce7d7);
}
.archive-preview-panel, .archive-control-panel {
  padding: 22px;
  border: 1px solid rgba(200,168,95,.3);
  border-radius: 22px;
  background: rgba(255,253,248,.76);
  box-shadow: 0 16px 40px rgba(16,24,50,.08);
}
.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 12px 0 18px;
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 42px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--warm-white);
  color: var(--navy);
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.filter-chip.active, .filter-chip:hover {
  background: var(--navy);
  color: white;
  border-color: var(--navy);
}
.archive-preview-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.archive-preview-list .archive-word-card { min-height: 210px; padding: 20px; }
.daily-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  max-width: 860px;
  margin: 18px 0 24px;
}
.daily-search-form input {
  min-height: 58px;
  border-radius: 999px;
  padding-left: 22px;
  font-weight: 700;
}
.home-search-section {
  padding: clamp(40px, 6vw, 72px);
  border-radius: 28px;
  background: rgba(239,231,218,.68);
}
.soft-empty-state {
  grid-column: 1 / -1;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--warm-white);
  box-shadow: 0 12px 30px rgba(16,24,50,.08);
}
.resource-cta-section {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 28px;
  align-items: center;
  padding: clamp(38px, 6vw, 64px);
  border-radius: 28px;
  background:
    radial-gradient(circle at 92% 18%, rgba(200,168,95,.24), transparent 28%),
    linear-gradient(135deg, #111b33, #17213b 70%, #2d3c35);
  color: white;
  box-shadow: var(--shadow);
}
.resource-cta-section h2, .resource-cta-section p { color: white; }
.resource-cta-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resource-cta-grid a {
  min-height: 150px;
  background: rgba(255,253,248,.08);
  border-color: rgba(255,253,248,.18);
  color: white;
}
.resource-cta-grid strong { color: white; }
.resource-cta-grid span { color: #f1d38b; font-weight: 700; }
.archive-hero {
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.72), transparent 28%),
    radial-gradient(circle at 82% 20%, rgba(200,168,95,.26), transparent 30%),
    linear-gradient(135deg, #fffdf8, #efe7da 52%, #dce7d7);
}
.archive-control-section { padding-bottom: 22px; }
.archive-results-grid { padding-top: 0; }
@media (max-width: 860px) {
  .section-heading-row, .archive-entrance-section, .resource-cta-section { grid-template-columns: 1fr; align-items: start; }
  .daily-preview-grid, .visual-hub-grid, .search-results-grid, .archive-results-grid, .resource-cta-grid, .archive-preview-list { grid-template-columns: 1fr; }
  .daily-search-form { grid-template-columns: 1fr; }
  .daily-search-form .button { width: 100%; }
  .today-word-main, .home-search-section, .archive-entrance-section, .resource-cta-section { padding: 28px 20px; }
}
@media (max-width: 430px) {
  .filter-chip { width: 100%; justify-content: center; }
  .today-word-meta span, .archive-card-meta span { width: 100%; justify-content: center; }
}

/* Category daily content system */
:root {
  --tone-evening: var(--color-peach);
  --tone-morning: var(--color-sun);
  --tone-base: var(--color-cream);
  --tone-sky: var(--color-sky);
  --tone-renew: var(--color-mint);
}
.category-daily-section {
  position: relative;
  border-radius: 30px;
}
.category-daily-section::before {
  content: "";
  position: absolute;
  inset: 36px -18px auto;
  height: 180px;
  z-index: -1;
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(255,248,214,.7), transparent 68%);
}
.theme-word { --category-tone: var(--tone-sky); --category-soft: var(--tone-base); }
.theme-evening { --category-tone: var(--tone-evening); --category-soft: var(--tone-base); }
.theme-morning { --category-tone: var(--tone-morning); --category-soft: var(--tone-renew); }
.theme-editorial { --category-tone: var(--tone-renew); --category-soft: var(--tone-base); }
.theme-resource { --category-tone: var(--category-resource); --category-soft: var(--tone-base); }
.theme-video,
.sub-hero--video {
  --category-tone: var(--tone-sky);
  --category-soft: var(--navy);
}
.sub-hero--video {
  background:
    radial-gradient(circle at 82% 22%, rgba(180,217,230,.34), transparent 30%),
    radial-gradient(circle at 18% 12%, rgba(255,248,214,.18), transparent 24%),
    linear-gradient(135deg, #111b33, #17213b 62%, #2f4350);
}
.sub-hero--video.hero-photo--video {
  min-height: clamp(320px, 32vw, 420px);
  background-image: url("../images/hero-night.png");
  background-position: center 50%;
}
.sub-hero--video.hero-photo--video::before {
  background:
    linear-gradient(90deg, rgba(7, 12, 28, .92) 0%, rgba(12, 19, 39, .76) 48%, rgba(12, 19, 39, .3) 100%),
    radial-gradient(circle at 24% 20%, rgba(180, 217, 230, .2), transparent 28%),
    var(--paper-texture);
}
.sub-hero--video h1,
.sub-hero--video p { color: white; }
.sub-hero--video .eyebrow { color: #f1d38b; }
.category-daily-card {
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 5vw, 54px);
  border: 1px solid rgba(154,116,48,.28);
  border-radius: 28px;
  background:
    var(--paper-texture),
    radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--category-tone) 42%, transparent), transparent 30%),
    linear-gradient(145deg, rgba(255,253,248,.98), color-mix(in srgb, var(--category-soft) 48%, #fffdf8));
  box-shadow: var(--shadow);
}
.category-daily-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 9px;
  background: linear-gradient(180deg, var(--category-tone), var(--gold));
}
.category-daily-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-bottom: 22px;
}
.category-daily-head h2 {
  margin-bottom: 0;
  max-width: 860px;
}
.daily-summary {
  color: var(--gray);
  font-size: 1.1rem;
  font-weight: 700;
}
.daily-body,
.editorial-body {
  max-width: 920px;
  color: #344054;
  font-size: 1.05rem;
  line-height: 1.9;
  white-space: pre-line;
}
.editorial-body {
  max-width: 780px;
  font-family: "Noto Serif KR Variable", "Noto Serif KR", serif;
  font-size: 1.08rem;
}
.daily-application,
.daily-prayer,
.editorial-note,
.daily-confession {
  margin-top: 18px;
  padding: 20px 22px;
  border: 1px solid rgba(154,116,48,.24);
  border-radius: 18px;
  background: rgba(255,253,248,.74);
  box-shadow: 0 12px 28px rgba(16,24,50,.07);
}
.daily-application strong,
.daily-prayer strong,
.editorial-note strong {
  display: block;
  margin-bottom: 6px;
  color: var(--gold-deep);
}
.daily-application p,
.daily-prayer p,
.editorial-note p {
  margin: 0;
}
.daily-confession {
  background: var(--navy);
  color: white;
  font-weight: 700;
}
.category-archive-layout {
  display: grid;
  grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
  gap: 22px;
  margin-top: 24px;
}
.category-calendar-panel,
.category-recent-panel {
  padding: 24px;
  border: 1px solid rgba(154,116,48,.24);
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--category-tone) 24%, transparent), transparent 28%),
    rgba(255,253,248,.82);
  box-shadow: 0 14px 34px rgba(16,24,50,.08);
}
.calendar-toolbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin: 12px 0;
}
.calendar-toolbar strong {
  text-align: center;
  color: var(--navy-deep);
  font-family: "Noto Serif KR Variable", "Noto Serif KR", serif;
  font-size: 1.2rem;
}
.calendar-weekdays,
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 7px;
}
.calendar-weekdays span {
  color: var(--blue-gray);
  font-weight: 700;
  text-align: center;
  font-size: .82rem;
}
.calendar-day,
.calendar-blank {
  min-height: 44px;
  border-radius: 14px;
}
.calendar-day {
  border: 1px solid rgba(154,116,48,.25);
  background: var(--warm-white);
  color: var(--navy);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.calendar-day:hover,
.calendar-day.selected {
  border-color: var(--navy);
  background: var(--category-tone, var(--color-mint));
  color: var(--navy);
}
.calendar-day:disabled {
  cursor: not-allowed;
  opacity: .32;
  background: rgba(255,255,255,.42);
}
.calendar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.calendar-actions .button {
  min-height: 46px;
  padding: 10px 14px;
  font-size: .92rem;
}
.section-heading-row.compact {
  margin-bottom: 12px;
}
.category-recent-panel .archive-preview-list {
  grid-template-columns: 1fr;
}
.category-recent-panel .archive-word-card {
  min-height: auto;
}
.archive-word-card .text-link {
  margin-top: auto;
}
.resource-subcategory-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.resource-subcategory-grid a,
.resource-subcategory-grid .resource-tab {
  display: grid;
  gap: 12px;
  min-height: 230px;
  padding: 26px;
  border: 1px solid rgba(167,124,53,.24);
  border-radius: var(--radius-card);
  background:
    var(--paper-texture),
    radial-gradient(circle at 88% 14%, rgba(207,243,209,.45), transparent 30%),
    linear-gradient(145deg, var(--color-surface), var(--color-cream));
  color: var(--navy);
  font: inherit;
  text-align: left;
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(16,24,50,.09);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.resource-subcategory-grid a:hover,
.resource-subcategory-grid .resource-tab:hover,
.resource-subcategory-grid .resource-tab.is-active {
  transform: translateY(-3px);
  border-color: rgba(167,124,53,.52);
  box-shadow: var(--shadow);
}
.resource-subcategory-grid .resource-tab.is-active {
  background:
    var(--paper-texture),
    radial-gradient(circle at 88% 14%, rgba(199,161,90,.24), transparent 32%),
    linear-gradient(145deg, #fffdf8, #efe7da);
}
.resource-subcategory-grid span {
  width: fit-content;
  min-height: 32px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgba(207,243,209,.58);
  color: var(--navy);
  font-weight: 700;
  font-size: .86rem;
}
.resource-subcategory-grid strong {
  color: var(--navy-deep);
  font: 700 1.45rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif;
}
.resource-subcategory-grid p {
  margin: 0;
  color: var(--gray);
}
.resource-hub-hero {
  min-height: clamp(340px, 38vw, 430px);
}
.resource-hub-hero > div {
  max-width: 720px;
}
.resource-hub-hero .hero-actions {
  margin-top: 22px;
}
.resource-catalog-intro {
  max-width: 680px;
  margin: -6px 0 24px;
  color: var(--gray);
}
.resource-subcategory-grid .resource-tab {
  min-height: 208px;
  align-content: start;
  box-shadow: 0 10px 24px rgba(16,24,50,.07);
}
.resource-subcategory-grid .resource-tab[data-resource-tab="pdf"] {
  background: linear-gradient(145deg, rgba(255,253,243,.98), rgba(237,228,207,.88));
}
.resource-subcategory-grid .resource-tab[data-resource-tab="audio"] {
  background: linear-gradient(145deg, rgba(252,254,248,.98), rgba(218,234,221,.88));
}
.resource-subcategory-grid .resource-tab[data-resource-tab="card"] {
  background: linear-gradient(145deg, rgba(255,252,245,.98), rgba(244,225,212,.9));
}
.resource-subcategory-grid .resource-tab[data-resource-tab="audio"] span {
  background: rgba(184,214,194,.62);
}
.resource-subcategory-grid .resource-tab[data-resource-tab="card"] span {
  background: rgba(237,205,181,.58);
}
.faith-resource-shell {
  padding-bottom: clamp(28px, 5vw, 54px);
}
.access-pill {
  display: inline-flex;
  width: fit-content;
  min-height: 30px;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(168,184,160,.18);
  color: var(--navy);
  font-weight: 700;
  font-size: .82rem;
}
.resource-board-section {
  padding-top: clamp(40px, 6vw, 72px);
}
.resource-board-head,
.thread-detail-head,
.member-signup-panel,
.admin-resource-panel,
.admin-upload-layout {
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 24px;
  align-items: start;
}
.resource-board-head p,
.member-signup-panel > div p,
.admin-resource-panel > div p,
#cardThreadDescription {
  color: var(--gray);
}
.resource-browser-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr) auto;
  gap: 16px;
  align-items: end;
  margin-top: 28px;
}
.resource-type-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.resource-type-filter button {
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(167,124,53,.24);
  border-radius: 999px;
  background: rgba(255,253,243,.76);
  color: var(--navy);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.resource-type-filter button:hover,
.resource-type-filter button.is-active {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--color-surface);
}
.resource-search-field {
  display: grid;
  gap: 7px;
  color: var(--navy);
  font-size: .86rem;
  font-weight: 700;
}
.resource-search-field input {
  width: 100%;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid rgba(167,124,53,.32);
  border-radius: 12px;
  background: rgba(255,253,243,.82);
  color: var(--navy-deep);
  font: inherit;
}
.resource-search-field input:focus-visible {
  outline: 3px solid rgba(199,161,90,.28);
  border-color: var(--gold-deep);
}
.resource-reset {
  min-height: 42px;
  white-space: nowrap;
}
.resource-tag-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0;
}
.resource-tag-filter button,
.resource-tag-filter label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 15px;
  border: 1px solid rgba(167,124,53,.24);
  border-radius: 999px;
  background: rgba(255,253,243,.76);
  color: var(--navy);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.resource-tag-filter input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}
.resource-tag-filter button:hover,
.resource-tag-filter button.is-active,
.resource-tag-filter label:hover,
.resource-tag-filter label.is-active {
  background: var(--navy);
  color: var(--color-surface);
  border-color: var(--navy);
}
.resource-tag-filter label::before {
  content: "";
  width: 13px;
  height: 13px;
  border: 2px solid currentColor;
  border-radius: 4px;
}
.resource-tag-filter label.is-active::before {
  background: currentColor;
  box-shadow: inset 0 0 0 3px var(--navy);
}
.resource-filter-status {
  margin: -10px 0 22px;
  color: var(--gray);
  font-weight: 700;
}
.resource-board-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.faith-resource-card {
  display: grid;
  gap: 14px;
  min-height: 100%;
  padding: 24px;
  border: 1px solid rgba(167,124,53,.22);
  border-radius: var(--radius-card);
  background: rgba(255,253,243,.92);
  box-shadow: 0 10px 24px rgba(16,24,50,.07);
}
.faith-resource-card.resource-type-pdf {
  border-top: 4px solid rgba(167,124,53,.68);
  background: linear-gradient(145deg, rgba(255,253,243,.96), rgba(245,237,221,.88));
}
.faith-resource-card.resource-type-audio {
  border-top: 4px solid rgba(91,137,112,.72);
  background: linear-gradient(145deg, rgba(253,254,250,.97), rgba(226,239,229,.88));
}
.faith-resource-card.resource-type-card {
  border-top: 4px solid rgba(181,111,79,.66);
  background: linear-gradient(145deg, rgba(255,253,248,.97), rgba(247,229,218,.9));
}
.resource-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.faith-resource-card h3 {
  margin: 0;
  font: 700 clamp(1.25rem, 2.4vw, 1.65rem)/1.32 "Noto Serif KR Variable", "Noto Serif KR", serif;
  color: var(--navy-deep);
}
.resource-summary {
  margin: 0;
  color: var(--navy);
  font-weight: 700;
}
.resource-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.resource-card-tags span {
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(168,184,160,.18);
  color: var(--navy);
  font-weight: 700;
  font-size: .84rem;
}
.access-pill {
  max-width: 210px;
  min-height: 0;
  padding: 5px 9px;
  background: rgba(23,33,59,.08);
  text-align: right;
  line-height: 1.35;
  font-size: .72rem;
}
.public-preview {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid rgba(167,124,53,.18);
  border-radius: 16px;
  background: rgba(255,255,255,.42);
}
.public-preview > span,
.public-card-preview span {
  color: var(--gray);
  font-size: .78rem;
  font-weight: 700;
}
.public-preview ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  color: var(--navy);
  font-size: .91rem;
  font-weight: 700;
}
.public-card-preview {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0;
  overflow: hidden;
  background: transparent;
}
.public-card-preview div {
  display: grid;
  min-height: 104px;
  align-content: space-between;
  gap: 16px;
  padding: 15px;
  background: rgba(255,255,255,.46);
}
.public-card-preview div:nth-child(2) {
  background: rgba(255,247,235,.64);
}
.public-card-preview strong {
  color: var(--navy-deep);
  font: 700 1rem/1.5 "Noto Serif KR Variable", "Noto Serif KR", serif;
}
.public-audio-preview audio {
  width: 100%;
  height: 34px;
}
.resource-access-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(23,33,59,.1);
}
.resource-access-panel p {
  flex: 1 1 190px;
  margin: 0;
  color: var(--gray);
  font-size: .84rem;
  font-weight: 700;
}
.resource-access-panel .button {
  white-space: nowrap;
}
.resource-empty-state {
  grid-column: 1 / -1;
  display: grid;
  justify-items: start;
  gap: 10px;
  padding: 28px;
  border: 1px dashed rgba(167,124,53,.38);
  border-radius: var(--radius-card);
  background: rgba(255,253,243,.7);
  color: var(--navy);
}
.resource-empty-state p {
  margin: 0;
  color: var(--gray);
}
.card-thread-detail[hidden] {
  display: none;
}
.thread-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}
.thread-gallery-card {
  aspect-ratio: 4 / 5;
  display: grid;
  align-content: space-between;
  padding: 22px;
  border: 1px solid rgba(167,124,53,.26);
  border-radius: 22px;
  background:
    var(--paper-texture),
    radial-gradient(circle at 82% 16%, rgba(199,161,90,.22), transparent 28%),
    linear-gradient(145deg, #fffdf8, #efe7da);
  box-shadow: 0 14px 30px rgba(16,24,50,.08);
}
.thread-gallery-card:nth-child(3n) {
  background:
    radial-gradient(circle at 82% 16%, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg, #17213b, #2f3c5e);
  color: white;
}
.thread-gallery-card span {
  font-weight: 700;
  color: var(--gold-deep);
}
.thread-gallery-card:nth-child(3n) span,
.thread-gallery-card:nth-child(3n) strong,
.thread-gallery-card:nth-child(3n) p {
  color: white;
}
.thread-gallery-card strong {
  font: 700 1.45rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif;
  color: var(--navy-deep);
}
.thread-gallery-card p {
  margin: 0;
  color: var(--gray);
}
.thread-gallery-card img {
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255,253,248,.72);
}
.thread-gallery-card audio {
  width: 100%;
}
.admin-page {
  min-height: 100vh;
  padding-top: clamp(28px, 5vw, 64px);
}
.member-signup-panel,
.admin-gate-panel,
.admin-resource-panel {
  align-items: center;
  padding: 30px;
  border: 1px solid rgba(167,124,53,.22);
  border-radius: var(--radius-card);
  background:
    var(--paper-texture),
    linear-gradient(145deg, rgba(255,253,243,.98), rgba(239,231,218,.74));
  box-shadow: 0 16px 42px rgba(16,24,50,.08);
}
.admin-gate-panel {
  display: grid;
  grid-template-columns: 1fr .62fr;
  gap: 28px;
}
.signup-form,
.admin-gate-form,
.admin-resource-form {
  display: grid;
  gap: 12px;
}
.auth-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.text-button {
  width: fit-content;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--navy);
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}
.auth-notice {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 80;
  width: min(360px, calc(100% - 40px));
  padding: 16px 18px;
  border: 1px solid rgba(46,112,76,.34);
  border-radius: 14px;
  background: #eff8f0;
  color: #183a28;
  box-shadow: 0 16px 36px rgba(16,24,50,.18);
  font-weight: 700;
  line-height: 1.55;
}
.auth-notice.is-error {
  border-color: rgba(166,62,62,.34);
  background: #fff3f1;
  color: #782f2f;
}
.signup-form label,
.admin-gate-form label,
.admin-resource-form label {
  display: grid;
  gap: 7px;
  color: var(--navy);
  font-weight: 700;
}
.signup-form input,
.admin-gate-form input,
.admin-resource-form input,
.admin-resource-form select,
.admin-resource-form textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid rgba(167,124,53,.24);
  border-radius: 14px;
  background: rgba(255,253,243,.9);
  color: var(--navy);
  font: inherit;
}
.admin-gate-panel[hidden],
.admin-resource-panel[hidden] {
  display: none;
}
.dropzone-panel {
  min-height: 100%;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  padding: 28px;
  border: 2px dashed rgba(167,124,53,.34);
  border-radius: 22px;
  background: rgba(255,253,243,.64);
  text-align: center;
}
.dropzone-panel strong {
  color: var(--navy-deep);
  font-size: 1.2rem;
}
.dropzone-panel p {
  margin: 0;
}
.dropzone-panel span {
  color: var(--gold-deep);
  font-weight: 700;
}
.dropzone-panel.is-dragging {
  border-color: var(--navy);
  background: rgba(207,243,209,.42);
}
@media (max-width: 860px) {
  .category-archive-layout,
  .category-daily-head {
    grid-template-columns: 1fr;
  }
  .category-calendar-panel,
  .category-recent-panel,
  .category-daily-card {
    padding: 22px;
  }
  .calendar-actions .button {
    width: 100%;
  }
  .resource-subcategory-grid {
    grid-template-columns: 1fr;
  }
  .resource-board-head,
  .thread-detail-head,
  .member-signup-panel,
  .admin-gate-panel,
  .admin-resource-panel,
  .admin-upload-layout {
    grid-template-columns: 1fr;
  }
  .thread-gallery-grid {
    grid-template-columns: 1fr;
  }
  .resource-browser-toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .resource-reset {
    justify-self: start;
  }
  .resource-board-list {
    grid-template-columns: 1fr;
  }
  .member-signup-panel,
  .admin-gate-panel,
  .admin-resource-panel {
    width: min(1120px, calc(100% - 40px));
  }
  .auth-notice {
    right: 20px;
    bottom: 20px;
  }
}
@media (max-width: 430px) {
  .resource-card-head,
  .resource-access-panel {
    align-items: flex-start;
    flex-direction: column;
  }
  .access-pill {
    max-width: none;
    text-align: left;
  }
  .public-card-preview {
    grid-template-columns: 1fr;
  }
  .calendar-grid,
  .calendar-weekdays {
    gap: 5px;
  }
  .calendar-day,
  .calendar-blank {
    min-height: 42px;
    border-radius: 11px;
  }
}

/* 회원, 구매 자료, 소통게시판 */
.faith-account-control { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; white-space: nowrap; }
.account-link { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 11px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: var(--navy); font: inherit; font-size: .85rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.account-link:hover { border-color: rgba(167,124,53,.35); background: rgba(255,253,243,.7); }
.account-signup { background: var(--navy); color: var(--color-surface); }
.account-signup:hover { background: var(--gold); color: var(--navy-deep); }
.faith-auth-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; }
.faith-auth-modal[hidden],
.faith-auth-notice-modal[hidden],
.faith-auth-form[hidden] { display: none; }
.faith-auth-backdrop { position: absolute; inset: 0; background: rgba(11,20,48,.55); backdrop-filter: blur(4px); }
.faith-auth-dialog { position: relative; z-index: 1; width: min(470px, 100%); max-height: min(760px, calc(100vh - 40px)); overflow-y: auto; overscroll-behavior: contain; padding: clamp(28px, 5vw, 42px); border: 1px solid rgba(255,255,255,.6); border-radius: 22px; background: var(--color-surface); box-shadow: 0 32px 90px rgba(11,20,48,.38); }
.modal-close { position: absolute; top: 14px; right: 16px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(180,217,230,.42); color: var(--navy); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.faith-auth-dialog h2 { margin-bottom: 20px; font-size: clamp(1.8rem, 5vw, 2.25rem); }
.faith-auth-form { display: grid; gap: 14px; }
.faith-auth-form label { display: grid; gap: 7px; color: var(--navy); font-weight: 700; }
.faith-auth-form input, .faith-auth-form textarea, .faith-auth-form select, .community-compose-form input, .community-compose-form textarea, .community-compose-form select { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid rgba(167,124,53,.28); border-radius: 12px; background: rgba(255,253,243,.9); color: var(--navy); font: inherit; }
.faith-auth-form textarea, .community-compose-form textarea { min-height: 150px; resize: vertical; }
.faith-auth-form button:disabled { opacity: .62; cursor: wait; }
.faith-consent { grid-template-columns: auto 1fr; align-items: start; font-size: .9rem; line-height: 1.55; }
.faith-consent input { width: 18px; min-height: 18px; margin-top: 3px; }
.faith-consent a { color: var(--navy); }
.faith-auth-switch { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(167,124,53,.2); color: var(--muted); font-size: .92rem; font-weight: 700; }
.faith-auth-switch .text-button { min-height: 36px; }
.form-message { margin: 0; color: var(--muted); font-size: .9rem; font-weight: 700; line-height: 1.55; }
.form-message.is-error { color: #9b3d3d; }
.faith-auth-notice-modal { position: fixed; inset: 0; z-index: 260; display: grid; place-items: center; padding: 20px; }
.faith-auth-notice-backdrop { position: absolute; inset: 0; background: rgba(11,20,48,.42); backdrop-filter: blur(2px); }
.faith-auth-notice-dialog { position: relative; z-index: 1; width: min(390px, 100%); padding: 28px; border: 1px solid rgba(167,124,53,.32); border-top: 4px solid var(--gold-deep); border-radius: 8px; background: var(--color-surface); box-shadow: 0 24px 70px rgba(11,20,48,.42); color: var(--navy); text-align: center; word-break: keep-all; }
.faith-auth-notice-dialog h2 { margin: 0 0 12px; font-size: 1.45rem; }
.faith-auth-notice-dialog > p:not(.eyebrow) { margin: 0 0 22px; color: var(--muted); line-height: 1.7; }
.faith-auth-notice-dialog .button { width: 100%; }
.faith-auth-notice-modal[data-tone="success"] .faith-auth-notice-dialog { border-top-color: #4d7b62; }
.faith-auth-notice-modal[data-tone="error"] .faith-auth-notice-dialog { border-top-color: #9b3d3d; }
body.modal-open { overflow: hidden; }

.community-hero, .account-hero { display: block; }
.community-hero { background: linear-gradient(90deg, rgba(255,253,243,.96) 0%, rgba(255,253,243,.88) 42%, rgba(232,246,239,.5) 64%, rgba(216,239,247,.18) 100%), url("../images/community-hero-dawn.png") center / cover no-repeat; }
.community-guideline { max-width: 330px; margin: 0; color: var(--muted); font-size: .92rem; font-weight: 700; }
.community-filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 26px; }
.community-filter-row .filter-chip { min-height: 44px; border: 1px solid rgba(167,124,53,.26); background: var(--color-surface); color: var(--navy); }
.community-filter-row .filter-chip.is-active { border-color: rgba(23,33,59,.2); background: var(--category-editorial); }
.community-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr); gap: 26px; align-items: start; }
.community-post-list { display: grid; gap: 14px; }
.community-post-card, .community-detail-panel, .account-card, .account-history-grid > div { border: 1px solid rgba(167,124,53,.24); border-radius: var(--radius-card); background: linear-gradient(145deg, rgba(255,253,243,.96), rgba(255,248,214,.72)); box-shadow: 0 14px 38px rgba(16,24,50,.07); }
.community-post-card { padding: 24px; transition: transform .2s ease, box-shadow .2s ease; }
.community-post-card:hover { transform: translateY(-3px); box-shadow: 0 20px 44px rgba(16,24,50,.12); }
.community-post-card h3 { margin-top: 8px; }
.community-post-card p { margin: 0 0 12px; color: var(--gray); font-size: .96rem; }
.community-post-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.community-post-meta span:first-child { color: var(--gold-deep); }
.community-detail-panel { position: sticky; top: 110px; padding: 28px; }
.community-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.community-detail-head h2 { margin-bottom: 8px; font-size: clamp(1.6rem, 3vw, 2.25rem); }
.community-detail-body { padding: 18px 0; color: var(--navy); line-height: 1.9; }
.community-owner-actions { display: flex; flex-wrap: wrap; gap: 14px; padding: 14px 0 20px; border-top: 1px solid rgba(167,124,53,.22); border-bottom: 1px solid rgba(167,124,53,.22); }
.community-replies { margin-top: 24px; }
.community-replies h3 { font-size: 1.25rem; }
.community-replies article { padding: 14px 0; border-top: 1px solid rgba(167,124,53,.16); }
.community-replies article p { margin: 0 0 7px; font-size: .94rem; }
.community-replies article span { color: var(--muted); font-size: .78rem; }
.community-reply-form { display: grid; gap: 12px; margin-top: 22px; padding-top: 20px; border-top: 1px solid rgba(167,124,53,.22); }
.community-login-prompt { margin-top: 22px; padding: 18px; border-radius: 14px; background: rgba(207,243,209,.38); }
.community-login-prompt p { margin-top: 0; }
.community-compose-section { padding-top: 18px; padding-bottom: clamp(44px, 6vw, 72px); }
.community-compose-heading { align-items: end; margin-bottom: 18px; }
.community-compose-heading h2 { margin-bottom: 0; font-size: clamp(1.55rem, 2.8vw, 2.25rem); }
.community-compose-heading > p { max-width: 390px; margin: 0; color: var(--muted); font-size: .92rem; font-weight: 700; }
.community-compose-form { display: grid; grid-template-columns: 150px minmax(220px, 1fr) minmax(280px, 1.5fr) auto; gap: 12px; align-items: end; padding: 18px; border-radius: var(--radius-card); background: var(--navy); box-shadow: var(--shadow-soft); }
.community-compose-form label { display: grid; gap: 8px; color: var(--color-surface); font-weight: 700; }
.community-compose-form input, .community-compose-form textarea, .community-compose-form select { border-color: transparent; background: rgba(255,253,243,.97); }
.community-compose-form textarea { min-height: 52px; height: 52px; }
.community-compose-form .button { min-height: 52px; white-space: nowrap; }
.community-compose-form .primary { background: var(--color-sun); color: var(--navy); border-color: var(--color-sun); }

.account-hero { background: radial-gradient(circle at 76% 24%, rgba(255,255,255,.8), transparent 24%), radial-gradient(circle at 80% 86%, rgba(207,243,209,.6), transparent 32%), linear-gradient(135deg, #fffdf3, #e6f2f5); }
.account-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.account-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-card { padding: 28px; }
.account-card h2 { font-size: 1.6rem; }
.account-purchase-summary { background: linear-gradient(145deg, var(--navy), #26385f); color: var(--color-surface); border-color: transparent; }
.account-purchase-summary h2, .account-purchase-summary p { color: inherit; }
.account-purchase-summary .eyebrow { color: var(--color-sun); }
.account-purchase-summary .secondary { border-color: rgba(255,255,255,.35); background: transparent; color: var(--color-surface); }
.account-purchase-summary .text-button { color: var(--color-sun); }
.account-actions { display: grid; gap: 10px; margin-top: 18px; }
.account-content-section { padding-top: 20px; }
.account-history-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.account-history-grid > div { padding: 22px; }
.account-history-grid h3 { font-size: 1.2rem; }
.account-list { display: grid; gap: 10px; }
.account-list article { display: grid; gap: 4px; padding: 12px 0; border-top: 1px solid rgba(167,124,53,.18); }
.account-list article:first-child { border-top: 0; padding-top: 0; }
.account-list span, .account-list p { margin: 0; color: var(--muted); font-size: .82rem; }
.account-list strong { font-size: .95rem; }
.account-list a { color: var(--navy); font-size: .85rem; font-weight: 700; }
.account-bbs-section + .account-bbs-section { margin-top: 30px; }
.account-bbs-section h3 { margin-bottom: 12px; font-size: 1.2rem; }
.account-bbs-wrap { overflow-x: auto; border: 1px solid rgba(167,124,53,.24); border-radius: 8px; background: rgba(255,253,243,.92); box-shadow: 0 12px 32px rgba(16,24,50,.06); }
.account-bbs { width: 100%; border-collapse: collapse; color: var(--navy); font-size: .9rem; }
.account-bbs th, .account-bbs td { padding: 15px 16px; border-bottom: 1px solid rgba(167,124,53,.17); text-align: left; vertical-align: middle; }
.account-bbs th { background: rgba(239,231,218,.62); color: var(--gray); font-size: .8rem; white-space: nowrap; }
.account-bbs tbody tr:last-child td { border-bottom: 0; }
.account-bbs td strong { display: block; font-size: .95rem; }
.account-bbs a, .account-bbs .text-button { color: var(--navy); font-size: .84rem; font-weight: 800; }
.account-bbs td .text-button { display: block; margin-top: 5px; }
.account-order-actions { display: flex; flex-wrap: wrap; gap: 7px; min-width: 124px; }
.account-order-action { min-height: 38px; padding: 8px 10px; border: 1px solid rgba(32,55,47,.28); border-radius: 8px; background: var(--color-surface); color: var(--navy); font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.account-order-action:hover, .account-order-action:focus-visible { border-color: var(--color-gold); background: rgba(255,248,214,.72); }
.account-order-action.is-danger { border-color: rgba(155,65,54,.28); color: #8a3b32; }
.account-order-action:disabled { cursor: wait; opacity: .58; }
.account-bbs-empty { padding: 28px !important; color: var(--muted); text-align: center !important; }
.account-order-status { margin-top: 12px; }
.account-access-panel { text-align: center; }
.account-access-panel p { max-width: 540px; margin-left: auto; margin-right: auto; }

@media (max-width: 1180px) { .site-header { gap: 12px; } .site-nav a { padding: 7px 8px; font-size: .84rem; } .faith-account-control { margin-left: 0; } }
@media (max-width: 860px) { .faith-account-control { order: 2; margin-left: auto; margin-right: 4px; } .account-link { min-height: 44px; padding: 8px 9px; } .community-layout, .account-grid, .account-history-grid { grid-template-columns: 1fr; } .community-detail-panel { position: static; } .community-compose-form { grid-template-columns: 1fr 1fr; } .community-compose-form label:last-of-type { grid-column: 1 / -1; } .community-compose-form textarea { min-height: 92px; height: 92px; } .community-detail-head { display: grid; } }
@media (max-width: 560px) { .community-compose-heading { display: grid; gap: 8px; } .community-compose-form { grid-template-columns: 1fr; } .community-compose-form label:last-of-type { grid-column: auto; } .community-compose-form textarea { min-height: 128px; height: 128px; } }
@media (max-width: 700px) {
  .account-content-section .section-heading-row { align-items: flex-start; }
  .account-bbs-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .account-bbs, .account-bbs tbody, .account-bbs tr, .account-bbs td { display: block; width: 100%; }
  .account-bbs thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .account-bbs tbody { display: grid; gap: 10px; }
  .account-bbs tr { padding: 10px 14px; border: 1px solid rgba(167,124,53,.24); border-radius: 8px; background: rgba(255,253,243,.92); }
  .account-bbs td { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(167,124,53,.13); }
  .account-bbs td::before { content: attr(data-label); color: var(--muted); font-size: .76rem; font-weight: 800; }
  .account-bbs tr td:last-child { border-bottom: 0; }
  .account-order-actions { min-width: 0; }
  .account-order-action { min-height: 44px; }
  .account-bbs-empty { display: block !important; padding: 20px !important; }
  .account-bbs-empty::before { content: none; }
}
@media (max-width: 480px) { .faith-account-control .account-link:first-child { max-width: 108px; overflow: hidden; text-overflow: ellipsis; } .faith-account-control .account-signup { display: none; } .community-post-card, .community-detail-panel, .account-card { padding: 20px; } .faith-auth-dialog { padding: 28px 22px; } }

/* 개별 자료 구매 흐름과 읽기 중심 홈 화면 */
.site-nav-more { position: relative; }
.site-nav-more summary { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 8px 10px; border-radius: 999px; color: var(--navy); font-size: .92rem; font-weight: 700; line-height: 1.2; list-style: none; cursor: pointer; }
.site-nav-more summary::-webkit-details-marker { display: none; }
.site-nav-more summary > span { margin-left: 2px; color: var(--gold-deep); font-size: 1rem; transition: transform .18s ease; }
.site-nav-more[open] summary, .site-nav-more summary:hover, .site-nav-more summary.active { background: rgba(207,243,209,.56); }
.site-nav-more[open] summary > span { transform: rotate(180deg); }
.site-nav-more-panel { position: absolute; right: 0; top: calc(100% + 8px); z-index: 70; display: grid; min-width: 164px; padding: 8px; border: 1px solid rgba(167,124,53,.26); border-radius: 16px; background: rgba(255,253,243,.98); box-shadow: 0 16px 34px rgba(16,24,50,.14); }
.site-nav-more-panel a { white-space: nowrap; }
.home-intro { display: flex; align-items: end; justify-content: space-between; gap: 28px; min-height: 0; padding-top: clamp(42px, 7vw, 86px); padding-bottom: clamp(26px, 4vw, 44px); border-bottom: 1px solid rgba(167,124,53,.26); }
.home-intro > div { max-width: 840px; }
.home-intro h1 { max-width: 830px; margin-bottom: 16px; font: 700 clamp(2.15rem, 4.2vw, 3.6rem)/1.2 "Noto Serif KR Variable", "Noto Serif KR", serif; letter-spacing: -.045em; }
.home-intro p:not(.eyebrow) { max-width: 670px; margin-bottom: 0; color: var(--gray); font-size: 1.05rem; font-weight: 700; }
.home-intro .button { flex: 0 0 auto; }
.home-primary-section { padding-top: clamp(38px, 5vw, 68px); }
.situation-finder-section { padding-top: 18px; }
.situation-finder-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.situation-finder-grid a { display: grid; gap: 7px; min-height: 136px; align-content: end; padding: 20px; border: 1px solid rgba(167,124,53,.22); border-radius: 16px; background: rgba(255,253,243,.68); color: var(--navy); text-decoration: none; transition: border-color .18s ease, transform .18s ease, background .18s ease; }
.situation-finder-grid a:nth-child(2) { background: rgba(226,239,229,.56); }
.situation-finder-grid a:nth-child(3) { background: rgba(245,237,221,.76); }
.situation-finder-grid a:nth-child(4) { background: rgba(232,241,244,.66); }
.situation-finder-grid a:hover { transform: translateY(-2px); border-color: rgba(167,124,53,.58); background: var(--color-surface); }
.situation-finder-grid strong { font: 700 1.2rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif; }
.situation-finder-grid span { color: var(--gray); font-size: .9rem; font-weight: 700; line-height: 1.55; }
.journey-spotlight, .home-community-section { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 28px; align-items: center; padding: clamp(30px, 5vw, 56px); border: 1px solid rgba(167,124,53,.24); border-radius: 24px; background: linear-gradient(132deg, #17213b, #26385f); color: var(--color-surface); }
.journey-spotlight h2, .home-community-section h2 { color: inherit; font: 700 clamp(1.8rem, 3.5vw, 2.75rem)/1.32 "Noto Serif KR Variable", "Noto Serif KR", serif; }
.journey-spotlight p:not(.eyebrow), .home-community-section p:not(.eyebrow) { max-width: 730px; color: rgba(255,253,243,.8); font-weight: 600; }
.journey-spotlight .eyebrow, .home-community-section .eyebrow { color: #f1d99a; }
.journey-spotlight .secondary, .home-community-section .secondary { border-color: rgba(255,253,243,.52); background: transparent; color: var(--color-surface); }
.home-resource-section { padding-top: clamp(46px, 7vw, 84px); }
.section-intro { max-width: 720px; margin-top: -8px; color: var(--gray); font-weight: 700; }
.home-resource-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 26px; }
.home-resource-preview { display: grid; align-content: start; gap: 13px; min-height: 100%; padding: 24px; border: 1px solid rgba(167,124,53,.22); border-radius: 18px; background: rgba(255,253,243,.86); }
.home-resource-preview.resource-type-pdf { border-top: 4px solid rgba(167,124,53,.68); }
.home-resource-preview.resource-type-audio { border-top: 4px solid rgba(91,137,112,.72); background: rgba(250,253,249,.9); }
.home-resource-preview.resource-type-card { border-top: 4px solid rgba(181,111,79,.66); background: rgba(255,250,246,.92); }
.home-resource-preview h3 { margin: 0; color: var(--navy-deep); font: 700 1.35rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif; }
.home-resource-preview p:not(.eyebrow) { margin: 0; color: var(--gray); font-size: .94rem; font-weight: 700; line-height: 1.7; }
.home-resource-preview-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: auto; padding-top: 8px; }
.home-community-section { grid-template-columns: minmax(0, 1.2fr) auto; margin-bottom: clamp(52px, 8vw, 92px); background: linear-gradient(135deg, #fffdf3, #e8f1e8); color: var(--navy); }
.home-community-section p:not(.eyebrow) { color: var(--gray); }
.home-community-section .eyebrow { color: var(--gold-deep); }
.home-community-actions { display: grid; gap: 10px; min-width: 218px; }
.home-community-section .secondary { border-color: rgba(23,33,59,.25); color: var(--navy); }
.home-community-preview { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.home-community-preview > p { grid-column: 1 / -1; margin: 0; color: var(--gray) !important; }
.home-community-preview article { display: grid; gap: 7px; min-height: 156px; padding: 18px; border: 1px solid rgba(167,124,53,.22); border-radius: 14px; background: rgba(255,253,243,.72); color: var(--navy); }
.home-community-preview article span { color: var(--gold-deep); font-size: .78rem; font-weight: 700; }
.home-community-preview article strong { font: 700 1.05rem/1.4 "Noto Serif KR Variable", "Noto Serif KR", serif; }
.home-community-preview article p { margin: 0; color: var(--gray) !important; font-size: .84rem; line-height: 1.55; }
.home-community-preview article .text-link { margin-top: auto; font-size: .84rem; }
.resource-detail-link { font-size: .9rem; }
.resource-detail-content { grid-column: 1 / -1; display: grid; gap: 14px; max-width: 760px; padding: clamp(22px, 4vw, 32px); border: 1px solid rgba(167,124,53,.23); border-radius: 18px; background: rgba(255,253,243,.8); }
.resource-detail-content h3 { margin: 0; color: var(--navy-deep); font: 700 1.4rem/1.35 "Noto Serif KR Variable", "Noto Serif KR", serif; }
.resource-detail-content .compact-list { margin: 0; }
.resource-access-panel { align-items: center; }
#todayWordSection, #resourceCatalog, #faithResourceBrowser, #homeSearchSection, #dayGrid { scroll-margin-top: 112px; }
:focus-visible { outline: 3px solid rgba(167,124,53,.78); outline-offset: 3px; }
@media (max-width: 1040px) { .situation-finder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-resource-preview-grid, .home-community-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .site-nav-more { width: 100%; } .site-nav-more summary { width: 100%; min-height: 46px; padding: 10px 12px; } .site-nav-more-panel { position: static; min-width: 0; margin-top: 6px; box-shadow: none; } .home-intro, .journey-spotlight, .home-community-section { grid-template-columns: 1fr; align-items: start; } .home-intro { display: grid; } .home-intro .button, .home-community-actions { width: 100%; } .home-community-actions { min-width: 0; } }
@media (max-width: 560px) { .home-intro h1 { font-size: clamp(2rem, 10vw, 2.8rem); } .situation-finder-grid, .home-resource-preview-grid, .home-community-preview { grid-template-columns: 1fr; } .situation-finder-grid a { min-height: 112px; } .journey-spotlight, .home-community-section { padding: 28px 22px; border-radius: 20px; } .home-resource-preview { padding: 22px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
