/* Psalm 23 pastoral cinematic — independent of creation-light. */
.theo-psalm{
  --psalm-cream:#f3efe2;
  --psalm-copper:#d7c49a;
  --psalm-ink:#0e1a14;
  position:relative;width:100%;
  aspect-ratio:9/16;
  max-height:min(86svh, 920px);
  border-radius:20px;overflow:hidden;
  background:#0e1a14;margin:0 0 28px;isolation:isolate;
  touch-action:pan-y;cursor:pointer;
  outline:none;
}
@media (min-width:900px){
  .theo-psalm{aspect-ratio:16/9;max-height:min(78svh, 820px);}
}
.psalm-plate{
  position:absolute;inset:-8%;
  background:#0e1a14 center/cover no-repeat;
  opacity:0;transform:scale(1.04);
  will-change:transform,opacity;
  z-index:1;
}
.psalm-plate.is-on{opacity:1;}
.psalm-mist{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg, rgba(14,26,20,.15), rgba(14,26,20,.04) 40%, rgba(14,26,20,.35));
  opacity:.85;
}
.psalm-canvas{position:absolute;inset:0;z-index:3;pointer-events:none;}
.psalm-scrim{
  position:absolute;inset:0;z-index:4;pointer-events:none;
  background:
    radial-gradient(ellipse 78% 62% at 50% 46%, rgba(8,16,12,.18) 0%, rgba(8,16,12,.55) 58%, rgba(8,16,12,.78) 100%),
    linear-gradient(180deg, rgba(8,16,12,.2) 0%, transparent 18%, transparent 62%, rgba(8,16,12,.55) 100%);
  transition:opacity .7s ease;
}
.theo-psalm.is-finale .psalm-scrim{opacity:.55;}
.psalm-bars{position:absolute;inset:0;z-index:5;pointer-events:none;}
.psalm-bars i{position:absolute;left:0;right:0;height:2.4%;background:#0a120e;opacity:.7;}
.psalm-bars i:first-child{top:0;}
.psalm-bars i:last-child{bottom:0;}
.psalm-hands{
  position:absolute;left:50%;top:7%;
  transform:translateX(-50%);
  width:min(36vmin, 240px);height:min(36vmin, 240px);
  background:url("/page/img/theology/cinematic/psalm-shepherd/hands.webp") center/contain no-repeat;
  -webkit-mask-image:radial-gradient(ellipse at 50% 42%, #000 42%, transparent 74%);
  mask-image:radial-gradient(ellipse at 50% 42%, #000 42%, transparent 74%);
  opacity:0;pointer-events:none;z-index:6;
  filter:saturate(.9) contrast(1.05) drop-shadow(0 0 18px rgba(196,165,116,.22));
  mix-blend-mode:soft-light;
  transition:opacity 1.8s ease;
}
.psalm-hands.is-on{opacity:.42;}
@media (min-aspect-ratio: 1/1){
  .psalm-hands{top:3.5%;width:min(24vmin, 180px);height:min(24vmin, 180px);}
}
.psalm-hud{
  position:absolute;inset:0;z-index:7;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:max(72px, 10svh) 6% max(56px, 11svh);
  box-sizing:border-box;
}
.psalm-cluster{
  width:100%;max-width:22em;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
@media (min-width:900px){
  .psalm-cluster{max-width:28em;}
}
.psalm-prompt{
  appearance:none;pointer-events:auto;cursor:pointer;
  border:1px solid rgba(215,196,154,.55);
  background:rgba(14,26,20,.55);
  color:var(--psalm-cream);
  font:600 18px/1.45 "Noto Sans KR","Noto Sans",system-ui,sans-serif;
  padding:10px 18px;border-radius:999px;
  opacity:0;transform:translateY(-6px);
  text-shadow:0 1px 8px rgba(0,0,0,.7);
  transition:opacity 1.1s ease, transform 1.1s ease;
  max-width:18em;
}
.psalm-prompt.is-on{opacity:1;transform:none;}
.psalm-verse{
  font-family:"Noto Serif KR","Noto Serif",Georgia,serif;
  font-weight:700;font-size:clamp(24px, 4.8vw, 28px);line-height:1.6;
  color:var(--psalm-cream);
  text-shadow:0 2px 16px rgba(0,0,0,.88), 0 1px 3px rgba(0,0,0,.8);
  opacity:0;word-break:keep-all;overflow-wrap:break-word;
}
@media (min-width:900px){
  .psalm-verse{font-size:clamp(26px, 2.2vw, 34px);}
}
.psalm-verse.is-on{opacity:1;transition:opacity .6s ease;}
.psalm-vline{display:block;overflow:hidden;}
.psalm-vline-inner{
  display:inline-block;opacity:0;transform:translateY(.4em);
  filter:blur(2px);
  text-shadow:0 2px 16px rgba(0,0,0,.88), 0 0 0 rgba(215,196,154,0);
}
.psalm-vline.is-lit .psalm-vline-inner{
  opacity:1;transform:none;filter:none;
  animation:psalm-gleam 1.6s ease 1 forwards;
}
.psalm-verse.is-steady .psalm-vline-inner{
  animation:none;filter:none;
  text-shadow:0 2px 16px rgba(0,0,0,.88), 0 0 12px rgba(215,196,154,.18);
}
@keyframes psalm-gleam{
  0%{text-shadow:0 2px 16px rgba(0,0,0,.88), 0 0 0 rgba(215,196,154,0);}
  45%{text-shadow:0 2px 16px rgba(0,0,0,.88), 0 0 18px rgba(215,196,154,.55);}
  100%{text-shadow:0 2px 16px rgba(0,0,0,.88), 0 0 10px rgba(215,196,154,.2);}
}
.psalm-ref{
  font-size:16px;font-weight:600;line-height:1.6;letter-spacing:.04em;
  color:var(--psalm-copper);
  text-shadow:0 1px 10px rgba(0,0,0,.9);
  opacity:0;
}
.psalm-ref.is-on{opacity:1;transition:opacity 1s ease;}
.psalm-amen{
  position:absolute;inset:0;z-index:8;pointer-events:none;
  display:flex;align-items:center;justify-content:center;
  font-family:"Noto Serif KR","Noto Serif",Georgia,serif;
  font-weight:700;letter-spacing:.08em;
  font-size:clamp(2.4rem, 9vw, 4.6rem);
  color:var(--psalm-cream);
  text-shadow:0 0 28px rgba(196,165,116,.3), 0 8px 32px rgba(0,0,0,.7);
  opacity:0;transform:translateY(8px);
  padding:0 8%;
}
.psalm-amen.is-ko{letter-spacing:.12em;}
.psalm-amen.is-on{opacity:1;transform:none;transition:opacity 1.3s ease, transform 1.3s cubic-bezier(.16,1,.3,1);}
.theo-psalm.is-thanks .psalm-amen.is-on{transform:translateY(-8%);}
.psalm-thanks{
  position:absolute;left:7%;right:7%;bottom:11%;z-index:9;pointer-events:none;
  text-align:center;font-weight:600;font-size:20px;line-height:1.6;
  color:var(--psalm-cream);
  text-shadow:0 2px 16px rgba(0,0,0,.92);
  opacity:0;transform:translateY(10px);
  word-break:keep-all;max-width:28em;margin:0 auto;
}
.psalm-thanks.is-on{opacity:1;transform:none;transition:opacity 1.1s ease, transform 1.1s ease;}
.psalm-caption{
  position:absolute;left:0;right:0;bottom:13%;z-index:8;pointer-events:none;
  text-align:center;padding:0 8%;
  opacity:0;transform:translateY(10px);
  transition:opacity .7s ease, transform .8s cubic-bezier(.16,1,.3,1);
}
.psalm-caption.is-on{opacity:1;transform:none;}
.psalm-caption.is-off{opacity:0;transform:translateY(-6px);}
.psalm-caption .line{
  display:block;margin:0 auto;max-width:18em;
  font-family:"Noto Serif KR","Noto Serif",Georgia,serif;
  font-size:22px;line-height:1.6;font-weight:600;color:var(--psalm-cream);
  text-shadow:0 2px 16px rgba(0,0,0,.9);word-break:keep-all;
}
.psalm-caption .ref{
  display:block;margin-top:.4em;
  font-size:16px;font-weight:600;line-height:1.6;
  color:var(--psalm-copper);letter-spacing:.04em;
  text-shadow:0 1px 10px rgba(0,0,0,.9);
}
.psalm-replay{
  position:absolute;right:14px;top:14px;bottom:auto;z-index:10;
  appearance:none;border:1px solid rgba(215,196,154,.45);
  background:rgba(14,26,20,.6);color:var(--psalm-cream);
  font:700 16px/1 "Noto Sans KR","Noto Sans",system-ui,sans-serif;
  padding:10px 16px;border-radius:999px;cursor:pointer;
  opacity:0;pointer-events:none;transition:opacity .4s ease;
}
.psalm-replay.is-on{opacity:1;pointer-events:auto;}
.psalm-dots{
  position:absolute;left:0;right:0;bottom:max(8px, 2.8%);z-index:10;
  display:flex;justify-content:center;gap:8px;pointer-events:auto;padding:0 8%;
}
.psalm-dot{
  appearance:none;border:0;background:transparent;cursor:pointer;
  width:28px;height:28px;padding:0;position:relative;
}
.psalm-dot::after{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:14px;height:3px;border-radius:2px;background:rgba(243,239,226,.38);
}
.psalm-dot.is-on::after{background:var(--psalm-copper);width:18px;}
.psalm-cue{
  position:absolute;left:50%;top:50%;z-index:11;pointer-events:none;
  width:64px;height:64px;margin:-32px 0 0 -32px;
  border:2px solid rgba(243,239,226,.85);
  border-radius:50%;opacity:0;transform:scale(.86);
  background:rgba(14,26,20,.35) center/28px 28px no-repeat;
}
.psalm-cue.is-on{animation:psalm-cue .9s ease 1 forwards;}
.psalm-cue.is-pause{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='6' y='5' width='4' height='14' rx='1' fill='%23f3efe2'/><rect x='14' y='5' width='4' height='14' rx='1' fill='%23f3efe2'/></svg>");}
.psalm-cue.is-play{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23f3efe2' d='M8 5.5v13l11-6.5z'/></svg>");}
@keyframes psalm-cue{
  0%{opacity:0;transform:scale(.86);}
  25%{opacity:.9;transform:scale(1);}
  100%{opacity:0;transform:scale(1.08);}
}
.theo-psalm.is-finale .psalm-verse,
.theo-psalm.is-finale .psalm-prompt,
.theo-psalm.is-finale .psalm-ref,
.theo-psalm.is-finale .psalm-caption{opacity:0!important;pointer-events:none!important;transition:opacity .7s ease;}
.theo-psalm.is-finale .psalm-dots{opacity:0;pointer-events:none;}
@media (prefers-reduced-motion: reduce){
  .psalm-plate,.psalm-caption,.psalm-verse,.psalm-prompt,.psalm-amen,.psalm-hands{animation:none!important;transition:opacity .5s ease!important;}
  .psalm-vline.is-lit .psalm-vline-inner{animation:none!important;filter:none!important;}
}
