:root {
  --ink: #242722;
  --muted: #687069;
  --paper: #f7f7f3;
  --line: #d8ddd5;
  --accent: #356346;
  font-family: Pretendard, "Noto Sans KR", "Malgun Gothic", sans-serif;
}

.intro-splash { position:fixed; inset:0; z-index:100; display:grid; place-items:center; overflow:hidden; background:#111; opacity:1; transition:opacity .4s ease, visibility .4s ease; }
.intro-splash.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.intro-splash video { width:100%; height:100%; object-fit:cover; background:#111; }
.intro-message { position:absolute; z-index:1; left:24px; right:24px; top:50%; transform:translateY(-50%); margin:0; color:#fff; text-align:center; font-size:1.55rem; font-weight:800; line-height:1.45; text-shadow:0 2px 12px #0008; word-break:keep-all; opacity:1; transition:opacity .35s ease; }
.intro-message.is-faded { opacity:0; }
.intro-splash button { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; }
.intro-splash button span { position:absolute; left:50%; bottom:max(28px,env(safe-area-inset-bottom)); transform:translateX(-50%); padding:8px 13px; border-radius:2px; background:#1118; font:700 .72rem/1 Pretendard,"Noto Sans KR","Malgun Gothic",sans-serif; white-space:nowrap; }

.hero { height: auto; min-height: 470px; justify-content: flex-start; padding: 30px 24px 38px; background: #e8eee7; }
.hero-copy { width: 100%; margin: 0; position: relative; z-index: 2; }
.hero .eyebrow { margin-bottom: 7px; }
.theme-line { margin: 0; color: #59645b; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.hero h1, .page-intro h2, .thanks h2, .category-hero h2, .talk-title h2 { font-family: Pretendard, "Noto Sans KR", "Malgun Gothic", sans-serif; font-weight: 800; letter-spacing: 0; }
.hero h1 { font-size:2.25rem; line-height:1.22; margin:108px 0 22px; text-align:left; }
.hero-sub { font-size: 1rem; margin-bottom: 24px; }
.church-logo { width: 138px; display: block; mix-blend-mode: multiply; }
.church-shape { right: -72px; bottom: -60px; width: 340px; opacity: .055; }

.home-actions { padding-top: 20px; }
.menu-button { border-radius: 2px; font-size: .94rem; }
.talk-entry { width:calc(100% - 40px); margin:10px 20px 22px; padding:17px 0 15px; border:0; border-top:1px solid #b8c2b8; border-bottom:1px solid #b8c2b8; background:transparent; color:var(--ink); text-align:left; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.talk-entry span { display:block; min-width:0; }
.talk-entry b { display:block; font-size:.93rem; font-weight:800; }
.talk-entry small { display: block; margin-top: 5px; color: var(--muted); font-size: .7rem; }
.talk-entry i { flex:none; font-size:1.15rem; font-style:normal; color:#778078; }
.home-footer { padding: 20px 20px 32px; text-align: center; }
.home-footer .mission { margin: 0 0 14px; color: #6d756e; font-size: .7rem; white-space: nowrap; }
.home-footer .church-logo { width: 132px; margin: 0 auto; }

.page-intro h2, .thanks h2 { font-size: 1.8rem; }
.choice-list label span { border-radius: 2px; font-size: .8rem; white-space: nowrap; }
.choice-list input:focus-visible + span { outline: 3px solid #abc2b2; outline-offset: 2px; }
.cta, .field input, .field textarea, .category-card, .team-row { border-radius: 2px; }
.page-head { grid-template-columns:44px 1fr 52px; }
.home-link { width: 50px; height: 36px; padding: 0; border: 1px solid #b8cbbb; border-radius:4px; background:#e6efe8; color:#315a40; font: inherit; font-size: .76rem; font-weight: 800; white-space: nowrap; cursor: pointer; }
.home-link:active { background:#d3e4d7; }
#categoriesTitle { width:max-content; max-width:100%; justify-self:center; padding:6px 10px; background:#e7efe8; border-radius:3px; color:#274f36; }

.team-photo { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin: -10px 0 25px; background: #e5e8e2; }

.talk-story { padding: 0; background: #20231f; }
.talk-title, .talk-story > section, .talk-story blockquote, .talk-ending { min-height: calc(100dvh - 60px); display: flex; flex-direction: column; justify-content: center; padding: 58px 28px; position: relative; }
.talk-title { background: #eef1eb; color: var(--ink); }
.talk-title h2 { margin: 0 0 18px; font-size: 2.35rem; line-height: 1.25; }
.talk-title > p:last-child { margin: 0; color: var(--muted); font-size: .92rem; }
.talk-story > section { border: 0; background: #222521; color: #fff; text-align: center; }
.talk-story > section:nth-of-type(even) { background: #f1f2ed; color: var(--ink); }
.talk-story > section > span { position: absolute; top: 34px; right: 27px; color: #91a693; font-size: .72rem; font-weight: 800; }
.talk-story h3 { margin: 0 0 24px; font-size: 1.65rem; line-height: 1.42; }
.talk-story section p { margin: 0; color: #dce1da; font-size: 1.05rem; line-height: 1.85; word-break: keep-all; }
.talk-story > section:nth-of-type(even) p { color: #444b44; }
.talk-story blockquote { margin: 0; background: #48614e; color: #fff; text-align: center; }
.talk-story blockquote p { margin: 0 0 20px; font-size: 1.75rem; line-height: 1.55; font-weight: 800; }
.talk-story blockquote cite { color: #c6d1c7; font-size: .74rem; font-style: normal; }
.talk-ending { background: #eef1eb; text-align: center; }
.talk-ending > p { margin: 0 0 16px; font-size: 1.65rem; line-height: 1.55; font-weight: 800; }
.talk-ending > strong { display: block; margin-bottom: 34px; color: var(--accent); font-size: .92rem; }

@media (max-width: 379px) {
  .hero { min-height: 450px; padding-left: 20px; padding-right: 20px; }
  .hero h1 { font-size: 2.05rem; }
  .theme-line { font-size: .7rem; }
  .hero-sub { font-size: .85rem; }
  .choice-list { padding-left: 14px; padding-right: 14px; }
  .choice-list label span { padding-left: 9px; padding-right: 7px; font-size: .72rem; }
  .choice-list label span::before { margin-right: 7px; width: 18px; height: 18px; }
  .menu-button { font-size: .88rem; }
  .home-footer .mission { font-size: .64rem; }
  .talk-title, .talk-story > section, .talk-story blockquote, .talk-ending { padding-left: 22px; padding-right: 22px; }
  .talk-story h3 { font-size: 1.45rem; }
  .talk-story section p { font-size: .94rem; }
}

/* 2026 festival refinements */
:root { --z01:#a8c8e4; --z02:#eaa9b5; --z03:#f8e164; --z04:#eb9e38; --z05:#52b67b; }
.zone-mark { display:flex; gap:4px; }
.hero > .zone-mark { position:absolute; top:24px; right:24px; z-index:3; }
.zone-mark i { width:11px; height:11px; border-radius:2px; background:var(--z01); }
.zone-mark i:nth-child(2) { background:var(--z02); }
.zone-mark i:nth-child(3) { background:var(--z03); }
.zone-mark i:nth-child(4) { background:var(--z04); }
.zone-mark i:nth-child(5) { background:var(--z05); }
.home-footer .mission { max-width:360px; margin:0 auto 14px; font-size:.78rem; line-height:1.55; white-space:normal; word-break:keep-all; }
.home-footer .mission span { white-space:nowrap; }
.choice-list label span { font-size:.94rem; line-height:1.45; white-space:normal; word-break:keep-all; }
.category-card strong,.team-row strong { font-size:1rem; line-height:1.4; word-break:keep-all; }
.category-card[data-category="Z05"] strong { font-size:.86rem; white-space:nowrap; }
.category-card small,.team-row small { font-size:.83rem; line-height:1.48; white-space:normal; word-break:keep-all; }
.category-card em { display:block; margin-top:7px; color:var(--zone-ink); font-size:.78rem; font-style:normal; font-weight:800; }
.category-card .arrow,.team-row .arrow { color:var(--zone-ink,#657067); }
.categories-intro { position:relative; }
.categories-intro .zone-mark { margin:0 0 18px; }
.category-search { width:100%; height:50px; margin-top:20px; border:1px solid #c9cec7; border-radius:2px; padding:0 14px; background:#fff; font:inherit; font-size:.94rem; }
.empty-result { padding:24px 4px; color:var(--muted); text-align:center; }
.team-title { margin-bottom:22px; }
.category-hero em { display:block; margin-top:9px; color:var(--zone-ink); font-size:.82rem; font-style:normal; font-weight:800; }
.team-group-title { margin:17px 2px 4px; padding:9px 11px; border-left:5px solid var(--color,#d8ddd5); background:#ecefe9; color:#3f4841; font-size:.9rem; }
.team-title .tag { color:var(--zone-ink); font-size:.88rem; }
.team-title h2 { font-size:1.9rem; }
.team-intro { margin:0 0 24px; font-size:1.03rem; line-height:1.68; color:#464d47; word-break:keep-all; }
.detail-block h3 { color:var(--color); font-size:.92rem; }
.detail-block p { font-size:1rem; line-height:1.72; word-break:keep-all; overflow-wrap:break-word; }
.fact span { font-size:.82rem; }
.fact strong { font-size:.98rem; line-height:1.55; white-space:pre-line; word-break:keep-all; }
.interest-notice { padding:14px 15px; border-left:4px solid var(--accent); background:#eef2ec; text-align:left; word-break:keep-all; }
.interest-notice strong,.interest-notice span { display:block; }
.interest-notice strong { font-size:.94rem; }
.interest-notice span { margin-top:5px; color:var(--muted); font-size:.82rem; line-height:1.5; }
.team-interest .cta { margin-top:10px; }
.serving-field { padding:0; border:0; }
.serving-field legend { margin-bottom:8px; font-size:.9rem; font-weight:800; }
.serving-field b { color:#a4453e; font-size:.7rem; }
.segmented { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.segmented input { position:absolute; width:1px; height:1px; padding:0; opacity:0; }
.segmented span { display:grid; min-height:48px; place-items:center; border:1px solid #c9cec7; background:#fff; font-size:.94rem; }
.segmented input:checked + span { border-color:var(--accent); background:#e9f1e9; color:#245236; font-weight:800; }
.selected-count { width:100%; color:var(--muted); font-size:.8rem; }
.team-picker { max-height:310px; }
.team-group { border-bottom:1px solid var(--line); }
.team-group summary { min-height:48px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border-left:5px solid var(--color); cursor:pointer; font-size:.9rem; font-weight:800; }
.team-group summary small { color:var(--muted); font-size:.75rem; }
.team-option { min-height:46px; font-size:.94rem; }
.field>span { font-size:.9rem; }
.consent strong { font-size:.94rem; line-height:1.45; }
.consent small { font-size:.79rem; line-height:1.55; }
.thanks > div { max-width:370px; }
.thanks-message { margin:30px 0 0; color:var(--ink)!important; font-size:1.18rem!important; line-height:1.65!important; font-weight:800; word-break:keep-all; }
.thanks-guide { margin:28px 0 0; padding-top:22px; border-top:1px solid var(--line); color:var(--muted); font-size:.88rem; line-height:1.7; word-break:keep-all; }
.thanks-teams { justify-content:center; margin:20px 0 8px; }
.talk-title > small { margin-top:38px; color:var(--muted); font-size:.78rem; }
@media (max-width:379px) {
  .choice-list label span { padding-left:10px; padding-right:9px; font-size:.88rem; }
  .hero-sub { font-size:.82rem; }
  .menu-button { font-size:.86rem; }
  .home-footer { padding-left:8px; padding-right:8px; }
  .home-footer .mission { font-size:.61rem; }
}
