/* Slide Studio — dependency-free teaching presentation styles. */
@font-face { font-family: "Studio Display"; src: local("Comfortaa"); }
@font-face { font-family: "Studio Text"; src: local("Atkinson Hyperlegible"), local("Inter"), local("Noto Sans"); }
@font-face { font-family: "Sermon Display"; src: local("Outfit"), local("Atkinson Hyperlegible"), local("Inter"); }
@font-face { font-family: "Sermon Quote"; src: local("Crimson Pro"), local("Georgia"); }

:root {
  color-scheme: dark;
  --bg: #07101a;
  --surface: #0d1926;
  --ink: #edf2f4;
  --muted: #9baab8;
  --accent: #bca36a;
  --accent-soft: rgba(188, 163, 106, .2);
  --mark: #f4d35e;
  --slide-ratio: 16 / 9;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
body { background: #02070c; color: var(--ink); font-family: var(--slide-body-font, "Studio Text"), sans-serif; }
code { padding-right: .2em; font-family: "Maple Mono NF", monospace; }
button, textarea, select { font: inherit; }

body[data-theme="paper"] { --bg:#f4f0e7; --surface:#e9e1d3; --ink:#25221e; --muted:#726b61; --accent:#9b6637; }
body[data-theme="westside"] { --bg:#f8f7f2; --surface:#eeece4; --ink:#49453d; --muted:#77766b; --accent:#898a55; }
body[data-theme="aubergine"] { --bg:#17131b; --surface:#241d29; --ink:#f1eaee; --muted:#ab9da7; --accent:#c3957d; }
body[data-theme="temple"] {
  --bg:#15100a;
  --surface:#241a0f;
  --ink:#f5ecd8;
  --muted:#b8a98f;
  --accent:#d6ad58;
  --accent-soft:rgba(214,173,88,.16);
  --mark:#d6ad58;
  background:#0d0906;
  font-family:"Sermon Display",sans-serif;
}
body[data-theme="temple"] .ss-stage { background:#0d0906; }
body[data-theme="temple"] .ss-slide {
  background:
    linear-gradient(90deg,transparent 0 8%,rgba(214,173,88,.07) 8% 8.15%,transparent 8.15% 91.85%,rgba(214,173,88,.07) 91.85% 92%,transparent 92%),
    radial-gradient(ellipse at 50% 108%,rgba(166,50,37,.22),transparent 40%),
    linear-gradient(155deg,#2b1d10 0%,var(--bg) 56%,#0d0906 100%);
}
body[data-theme="temple"] .ss-slide::after {
  inset:clamp(20px,1.7vw,34px);
  width:auto;
  height:auto;
  border:1px solid rgba(214,173,88,.2);
  border-radius:0;
  background:
    linear-gradient(90deg,var(--accent),transparent 24%) top left/34% 2px no-repeat,
    linear-gradient(90deg,transparent,var(--accent)) bottom right/34% 2px no-repeat;
  z-index:-1;
}
body[data-theme="temple"] .ss-content h1 {
  font-family:"Sermon Quote",Georgia,serif;
  font-weight:650;
  letter-spacing:-.035em;
}
body[data-theme="temple"] .ss-kicker { color:#e7c77f; }
body[data-theme="temple"] .ss-body blockquote {
  border-left-color:var(--accent);
  background:rgba(13,9,6,.32);
  font-family:"Sermon Quote",Georgia,serif;
}
body[data-theme="temple"] .ss-slide.layout-title .ss-content::before {
  content:"";
  display:block;
  width:clamp(68px,6vw,112px);
  height:clamp(8px,.65vw,13px);
  margin:0 auto clamp(25px,2.3vw,42px);
  border-block:2px solid var(--accent);
  background:linear-gradient(90deg,transparent 0 12%,var(--accent) 12% 18%,transparent 18% 82%,var(--accent) 82% 88%,transparent 88%);
  opacity:.82;
}
body[data-theme="temple"] .ss-footer { color:var(--muted); }
body[data-theme="ohtobelikethee"] {
  --bg:#10231f;
  --surface:#19332c;
  --ink:#f7f1df;
  --muted:#b9c2b5;
  --accent:#d9b56d;
  --accent-soft:rgba(217,181,109,.17);
  --mark:#e8c77f;
  background:#091612;
  font-family:"Sermon Display",sans-serif;
}
body[data-theme="ohtobelikethee"] .ss-stage { background:#091612; }
body[data-theme="ohtobelikethee"] .ss-slide {
  background:
    radial-gradient(circle at 84% 16%,rgba(217,181,109,.13),transparent 25%),
    linear-gradient(145deg,#1b382f 0%,var(--bg) 58%,#091612 100%);
}
body[data-theme="ohtobelikethee"] .ss-slide::after {
  width:30vw;
  height:30vw;
  right:-17vw;
  bottom:-19vw;
  border:2.2vw solid rgba(217,181,109,.11);
  box-shadow:0 0 0 1px rgba(247,241,223,.06);
}
body[data-theme="ohtobelikethee"] .ss-content h1 {
  font-family:"Sermon Display",sans-serif;
  font-weight:650;
  letter-spacing:-.035em;
}
body[data-theme="ohtobelikethee"] .ss-kicker { color:#e8c77f; }
body[data-theme="ohtobelikethee"] .ss-body blockquote {
  border-left-color:var(--accent);
  background:rgba(9,22,18,.38);
  font-family:"Sermon Quote",Georgia,serif;
}
body[data-theme="ohtobelikethee"] .ss-slide.layout-title .ss-content::before {
  content:"";
  display:block;
  width:clamp(58px,5vw,96px);
  height:3px;
  margin:0 auto clamp(22px,2vw,38px);
  background:var(--accent);
}
body[data-theme="ohtobelikethee"] .ss-footer { color:var(--muted); }
body[data-theme="sermons"] {
  --bg:#0d0d0c;
  --surface:#191816;
  --ink:#f2eee3;
  --muted:#aaa395;
  --accent:#c3a15d;
  --accent-dark:#8f713c;
  --accent-bright:#dcc17f;
  --accent-soft:rgba(195,161,93,.16);
  --mark:#8e713c;
  --sermon-deep:#070706;
  --sermon-raised:#211f1b;
  --sermon-line:rgba(220,193,127,.22);
  --sermon-hairline:rgba(242,238,227,.065);
  --sermon-shadow:rgba(7,7,6,.42);
  background:var(--sermon-deep);
  font-family:"Sermon Display",sans-serif;
}
body[data-theme="sermons"] .ss-stage { background:var(--sermon-deep); }

.ss-stage { position: fixed; inset: 0; display: grid; place-items: center; background: #02070c; }
.ss-deck { position: relative; width:min(100vw,calc(100vh * var(--slide-ratio-value,1.77778))); aspect-ratio:var(--slide-ratio); overflow:hidden; background:var(--bg); }
.ss-slide {
  position: absolute; inset: 0; display: none; grid-template-rows: auto 1fr auto;
  padding: clamp(36px, 5vw, 100px) clamp(46px, 7vw, 138px) clamp(30px, 4vw, 78px);
  background: var(--bg); color: var(--ink); isolation: isolate;
}
.ss-slide.is-active { display: grid; }
.ss-slide::before { content:""; position:absolute; inset:0; z-index:-2; background:var(--background-image, none) center/cover no-repeat; opacity:var(--background-opacity, .12); }
.ss-slide::after { content:""; position:absolute; width:34vw; height:34vw; right:-22vw; bottom:-24vw; border:2.8vw solid var(--accent-soft); border-radius:50%; z-index:-1; }
body[data-theme="sermons"] .ss-slide {
  background:
    radial-gradient(circle at 88% 14%,var(--accent-soft),transparent 28%),
    linear-gradient(145deg,var(--surface) 0%,var(--bg) 56%,var(--sermon-deep) 100%);
}
body[data-theme="sermons"] .ss-slide::after {
  inset:clamp(18px,1.5vw,30px);
  width:auto;
  height:auto;
  border:1px solid color-mix(in srgb,var(--sermon-hairline) 55%,transparent);
  border-radius:2px;
  background:
    linear-gradient(90deg,var(--accent),transparent 28%) top left/38% 2px no-repeat,
    linear-gradient(180deg,var(--accent),transparent 24%) top left/2px 32% no-repeat;
  opacity:.85;
  z-index:-1;
}
body[data-theme="sermons"] .ss-content h1 {
  font-family:"Sermon Display",sans-serif;
  font-weight:650;
  letter-spacing:-.035em;
  text-shadow:0 2px 24px var(--sermon-shadow);
}
body[data-theme="sermons"] .ss-kicker {
  color:var(--accent-bright);
  font-family:"Sermon Display",sans-serif;
  font-weight:650;
  letter-spacing:.2em;
}
.ss-kicker { color:var(--accent); font:700 clamp(16px,1.45vw,28px)/1 "Studio Display",sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.ss-content { align-self:center; max-height:76vh; overflow:hidden; }
.ss-content h1 { margin:0 0 .38em; max-width:15ch; font:700 clamp(54px,6.7vw,132px)/.98 var(--slide-display-font, "Studio Display"),sans-serif; letter-spacing:-.055em; text-wrap:balance; }
.ss-body { max-width:48em; font-size:clamp(25px,2.25vw,44px); line-height:1.34; text-wrap:pretty; }
.ss-body p { margin:.55em 0; }
.ss-body ul,.ss-body ol { display:grid; gap:.42em; padding-left:1.25em; }
.ss-body blockquote { margin:.4em 0; padding:.25em 0 .25em .8em; border-left:.13em solid var(--accent); font-size:.88em; }
.ss-body table {
  width:100%;
  border:0;
  border-collapse:separate;
  border-spacing:0;
  background:transparent;
}
.ss-body .ss-table-card {
  width:max-content;
  max-width:100%;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);
  border-radius:clamp(10px,1vw,18px);
  background:color-mix(in srgb,var(--surface) 88%,var(--bg));
  box-shadow:0 18px 50px rgba(0,0,0,.34),0 2px 8px rgba(0,0,0,.22);
}
.ss-body th,.ss-body td {
  padding:.62em .88em;
  border-right:1px solid color-mix(in srgb,var(--ink) 8%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);
}
.ss-body th:last-child,.ss-body td:last-child { border-right:0; }
.ss-body tr:last-child td { border-bottom:0; }
.ss-body thead:last-child tr:last-child th { border-bottom:0; }
body[data-theme="sermons"] .ss-body blockquote {
  position:relative;
  margin:.4em 0;
  padding:.7em .9em .72em 1em;
  border:1px solid var(--sermon-hairline);
  border-left:3px solid var(--accent);
  border-radius:8px;
  background:linear-gradient(120deg,var(--sermon-raised),var(--surface));
  box-shadow:0 16px 48px var(--sermon-shadow);
  font-family:"Sermon Quote",Georgia,serif;
  font-size:.8em;
}
body[data-theme="sermons"] .ss-body blockquote::after {
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:22%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--sermon-line));
}
body[data-theme="sermons"] .ss-body blockquote p { margin:0; overflow-wrap:break-word; text-wrap:pretty; hyphens:auto; }
body[data-theme="sermons"] .ss-body blockquote p + p { margin-top:.45em; }
body[data-theme="sermons"] .ss-body blockquote strong,
body[data-theme="sermons"] .ss-body blockquote b { color:var(--accent-bright); font-weight:750; }
body[data-theme="sermons"] .ss-body ul,
body[data-theme="sermons"] .ss-body ol { gap:.5em; }
body[data-theme="sermons"] .ss-body li::marker { color:var(--accent); font-weight:700; }
body[data-theme="sermons"] .ss-body table { min-width:min(100%,34em); font-size:.84em; }
body[data-theme="sermons"] .ss-body th,
body[data-theme="sermons"] .ss-body td { padding:.66em .92em; text-align:left; }
body[data-theme="sermons"] .ss-body th { color:var(--accent-bright); font-weight:650; }
body[data-theme="sermons"] .ss-slide.layout-title .ss-content::before {
  content:"";
  display:block;
  width:clamp(54px,5vw,96px);
  height:3px;
  margin:0 auto clamp(22px,2vw,38px);
  background:var(--accent);
  box-shadow:0 0 24px var(--accent-soft);
}
body[data-theme="sermons"] .ss-slide.layout-scripture .ss-body { color:color-mix(in srgb,var(--ink) 88%,var(--muted)); }
body[data-theme="sermons"] .ss-footer { color:color-mix(in srgb,var(--muted) 82%,transparent); letter-spacing:.14em; }
body[data-theme="sermons"] .ss-progress { height:3px; background:linear-gradient(90deg,var(--accent-dark),var(--accent-bright)); }
.ss-body .underline { text-decoration:none; background:linear-gradient(transparent 64%, var(--accent-soft) 64%); }
.ss-body mark,.ss-live-board mark {
  padding:.04em .22em;
  border-radius:.3em;
  color:inherit;
  background:var(--mark);
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.ss-footer { display:flex; justify-content:space-between; color:var(--muted); font-size:clamp(13px,1vw,20px); letter-spacing:.1em; text-transform:uppercase; }
.ss-running-header { position:absolute; top:3.2%; left:7%; right:7%; display:none; color:var(--muted); font-size:clamp(12px,.9vw,18px); letter-spacing:.12em; text-transform:uppercase; }
.ss-footer { visibility:hidden; }
body[data-show-header="true"] .ss-running-header { display:block; }
body[data-show-footer="true"] .ss-footer .ss-footer-brand { visibility:visible; }
body[data-show-numbers="true"] .ss-footer { visibility:visible; }
body[data-show-numbers="true"] .ss-footer-number { visibility:visible; }
body[data-show-footer="true"] .ss-footer { visibility:visible; }
.ss-footer-brand,.ss-footer-number { visibility:hidden; }
.ss-progress { display:none; position:absolute; left:0; bottom:0; height:5px; width:var(--progress,0%); background:var(--accent); transition:width .25s ease; }
body[data-show-progress="true"] .ss-progress { display:block; }

.ss-slide.layout-title .ss-content,.ss-slide.layout-center .ss-content { text-align:center; margin:auto; }
.ss-slide.layout-center .ss-content {
  position:absolute;
  top:50%;
  left:clamp(46px,7vw,138px);
  right:clamp(46px,7vw,138px);
  transform:translateY(-50%);
  margin:0;
}
.ss-slide.layout-title .ss-content h1,.ss-slide.layout-center .ss-content h1 { max-width:17ch; margin-inline:auto; }
.ss-slide.layout-scripture .ss-body { font-size:clamp(25px,1.85vw,36px); max-width:58em; }
.ss-slide.layout-questions .ss-content { width:100%; max-height:82vh; }
.ss-slide.layout-questions .ss-content h1 {
  max-width:24ch;
  margin-bottom:.28em;
  font-size:clamp(34px,4vw,72px);
  line-height:1.04;
}
.ss-slide.layout-questions .ss-body { max-width:64em; font-size:clamp(18px,1.45vw,28px); line-height:1.16; }
.ss-slide.layout-questions .ss-body ol { gap:clamp(5px,.65vh,10px); margin:.2em 0 0; padding-left:1.55em; }
.ss-slide.layout-questions .ss-body li { padding-left:.18em; }
.ss-slide.layout-questions .ss-body li::marker { color:var(--accent); font-weight:700; }
.ss-question-response {
  min-height:clamp(20px,2.4vh,34px);
  margin:clamp(3px,.45vh,7px) 0 0;
  padding:.18em .42em;
  border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);
  border-radius:8px;
  outline:none;
  background:color-mix(in srgb,var(--surface) 62%,transparent);
  color:var(--ink);
  font-size:.84em;
  line-height:1.2;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.ss-question-response:focus {
  border-color:color-mix(in srgb,var(--accent) 72%,transparent);
  background:color-mix(in srgb,var(--surface) 84%,transparent);
  box-shadow:0 0 0 2px var(--accent-soft);
}
.ss-slide.layout-statement .ss-content h1 { max-width:13ch; font-size:clamp(64px,7.6vw,150px); }
.ss-slide.layout-split .ss-content { width:56%; }
.ss-slide.layout-split::before { left:55%; opacity:var(--background-opacity, .12); }
.ss-slide.layout-text-com .ss-content { width:100%; max-height:80vh; }
.ss-slide.layout-text-com .ss-content h1 { max-width:22ch; font-size:clamp(44px,5.2vw,100px); }
.ss-slide.layout-text-com .ss-body,
.ss-body:has(> .text):has(> .com) { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); align-items:stretch; gap:clamp(24px,3vw,58px); max-width:none; }
.ss-body > .text { min-width:0; margin:0; padding:0; color:var(--ink); font-size:.9em; text-align:left; }
.ss-body > .com { min-width:0; margin:0; padding:.75em .85em; border-radius:12px; background:color-mix(in srgb,var(--surface) 88%,transparent); color:color-mix(in srgb,var(--accent) 82%,white); font-size:.72em; font-style:italic; text-align:left; }
.ss-body > .text > :first-child,.ss-body > .com > :first-child { margin-top:0; }
.ss-body > .text > :last-child,.ss-body > .com > :last-child { margin-bottom:0; }
.ss-slide.layout-h2 .ss-body h2,
.ss-slide.layout-h3 .ss-body h3 {
  margin:.45em 0;
  max-width:24ch;
  color:var(--ink);
  font-family:"Studio Display",sans-serif;
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.ss-slide.layout-h2 .ss-body h2 { font-size:clamp(42px,4.8vw,92px); }
.ss-slide.layout-h3 .ss-body h3 { font-size:clamp(34px,3.7vw,72px); color:color-mix(in srgb,var(--ink) 88%,var(--accent)); }

.fragment { opacity:0; transform:translateY(22px); transition:opacity .38s ease,transform .38s ease; }
.fragment.is-visible { opacity:1; transform:none; }
.ss-slide[data-transition="fade"].is-entering { animation:ss-fade .34s ease both; }
.ss-slide[data-transition="slide"].is-entering { animation:ss-slide .38s cubic-bezier(.2,.8,.2,1) both; }
.ss-slide[data-transition="push"].is-entering { animation:ss-push .42s cubic-bezier(.2,.8,.2,1) both; }
.ss-slide[data-transition="wipe"].is-entering { animation:ss-wipe .48s cubic-bezier(.2,.8,.2,1) both; }
.ss-slide[data-transition="mask"].is-entering { animation:ss-mask .52s cubic-bezier(.2,.8,.2,1) both; }
.ss-slide[data-transition="zoom"].is-entering { animation:ss-zoom .36s ease both; }
.ss-slide[data-transition="blur"].is-entering { animation:ss-blur .46s ease both; }
.ss-slide[data-transition="flip"].is-entering { animation:ss-flip .58s cubic-bezier(.2,.8,.2,1) both; transform-origin:center; perspective:900px; }
.ss-slide[data-transition="dissolve"].is-entering { animation:ss-dissolve .72s ease both; }
@keyframes ss-fade { from { opacity:0 } }
@keyframes ss-slide { from { opacity:0; transform:translateX(5%) } }
@keyframes ss-push { from { opacity:0; transform:translateX(100%) } }
@keyframes ss-wipe { from { clip-path:inset(0 100% 0 0); } }
@keyframes ss-mask { from { clip-path:circle(0 at 50% 50%); opacity:.2; } }
@keyframes ss-zoom { from { opacity:0; transform:scale(.965) } }
@keyframes ss-blur { from { opacity:0; filter:blur(18px); transform:scale(1.025); } }
@keyframes ss-flip { from { opacity:0; transform:rotateY(-14deg) translateX(3%); } }
@keyframes ss-dissolve { 0% { opacity:0; filter:blur(9px); } 55% { opacity:.55; } 100% { opacity:1; filter:none; } }

.ss-live-board { position:absolute; z-index:8; inset:auto 6% 8%; display:none; max-height:72%; overflow:auto; padding:.7em .9em; color:var(--ink); background:color-mix(in srgb,var(--bg) 92%,transparent); border:2px solid var(--accent); border-radius:18px; box-shadow:0 24px 90px rgba(0,0,0,.35); font-size:clamp(28px,3vw,58px); line-height:1.28; white-space:pre-wrap; }
.ss-live-board.is-visible { display:block; }
.ss-help { position:fixed; z-index:20; inset:8%; display:none; padding:3rem; overflow:auto; color:#edf2f4; background:rgba(4,10,16,.96); border:1px solid #33485d; border-radius:20px; font-size:22px; line-height:1.6; }
.ss-help.is-visible { display:block; }
.ss-help kbd { padding:.12em .45em; color:#07101a; background:#dce5ea; border-radius:5px; }
.ss-pointer { position:absolute; z-index:12; display:none; width:24px; height:24px; border:4px solid #fff; background:#e3342f; border-radius:50%; box-shadow:0 0 24px #e3342f; transform:translate(-50%,-50%); pointer-events:none; }
.ss-pointer.is-visible { display:block; }
.ss-highlight-palette { position:fixed; z-index:30; display:none; gap:10px; padding:12px; background:#0a1520; border:1px solid #40566b; border-radius:14px; box-shadow:0 18px 70px rgba(0,0,0,.55); }
.ss-highlight-palette.is-visible { display:flex; }
.ss-highlight-color { width:38px; height:38px; padding:0; border:3px solid rgba(255,255,255,.75); border-radius:50%; cursor:pointer; }
.ss-highlight-color:hover,.ss-highlight-color:focus { transform:scale(1.12); outline:2px solid white; outline-offset:2px; }
.ss-content mark { cursor:pointer; }

@media print {
  html,body { overflow:visible; background:white; }
  .ss-stage,.ss-deck { display:block; position:static; width:auto; height:auto; }
  .ss-slide { display:grid; position:relative; width:13.333in; height:7.5in; break-after:page; }
  .fragment { opacity:1; transform:none; }
}

/* Slide Studio 2.0 component and motion layer.  Themes override these tokens
   in their own files; custom decks may override the same variables safely. */
:root {
  --chart-2:#62c6a7;
  --chart-3:#78a8ff;
  --chart-4:#df7c9d;
  --chart-5:#e6a85d;
  --slide-radius:18px;
  --slide-shadow:0 24px 80px rgba(0,0,0,.32);
  --slide-grid:clamp(22px,3vw,58px);
}

.ss-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.ss-slide-art { position:absolute; z-index:-1; inset:0; overflow:hidden; opacity:.82; pointer-events:none; }
.ss-slide-art svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; fill:none; stroke:var(--accent); stroke-width:2; opacity:.52; }
.ss-slide-art .ss-graphic-orbit ellipse { stroke-dasharray:10 16; transform-origin:670px 270px; animation:ss-orbit 24s linear infinite; }
.ss-slide-art .ss-graphic-orbit circle { fill:var(--accent); stroke:none; }
.ss-slide-art .ss-graphic-grid path { stroke-width:1; opacity:.34; }
.ss-slide-art .ss-graphic-rays path { stroke-width:1.5; stroke-dasharray:2 12; opacity:.48; }
.ss-slide-art .ss-graphic-glass path { fill:var(--accent-soft); stroke-width:3; }
.ss-slide-art .ss-graphic-glass circle { fill:var(--accent-soft); stroke-width:3; }
.ss-slide-art .ss-graphic-paper path { fill:var(--accent-soft); stroke-width:1; }
.ss-graphic-component { width:min(100%,68em); margin:.35em 0; }
.ss-graphic-component svg { display:block; width:100%; height:auto; overflow:visible; fill:none; stroke:var(--accent); stroke-width:2; opacity:.78; }
.ss-graphic-component .ss-graphic-orbit ellipse { stroke-dasharray:10 16; transform-origin:670px 270px; animation:ss-orbit 24s linear infinite; }
.ss-graphic-component .ss-graphic-orbit circle { fill:var(--accent); stroke:none; }
.ss-graphic-component .ss-graphic-grid path { stroke-width:1; opacity:.34; }
.ss-graphic-component .ss-graphic-rays path { stroke-width:1.5; stroke-dasharray:2 12; opacity:.48; }
.ss-graphic-component .ss-graphic-glass path { fill:var(--accent-soft); stroke-width:3; }
.ss-graphic-component .ss-graphic-glass circle { fill:var(--accent-soft); stroke-width:3; }
.ss-graphic-component .ss-graphic-paper path { fill:var(--accent-soft); stroke-width:1; }
.layout-title-editorial .ss-content { align-self:end; margin-bottom:clamp(24px,4vw,70px); }
.layout-title-editorial .ss-content h1 { max-width:11ch; font-size:clamp(68px,9.8vw,190px); }
.layout-title-poster .ss-content { max-width:88%; align-self:end; }
.layout-title-poster .ss-content h1 { max-width:8ch; font-size:clamp(76px,12vw,240px); line-height:.82; text-transform:uppercase; }
.layout-title-poster .ss-kicker { font-size:clamp(12px,1vw,20px); }
.layout-title-split .ss-content { width:53%; margin-left:0; }
.layout-title-split .ss-slide-art { left:52%; }
.layout-title-collage .ss-content { width:65%; margin-left:0; padding:clamp(18px,2vw,38px); background:color-mix(in srgb,var(--surface) 76%,transparent); border:1px solid color-mix(in srgb,var(--accent) 42%,transparent); border-radius:var(--slide-radius); box-shadow:var(--slide-shadow); transform:rotate(-1deg); }
.layout-title-scripture .ss-content h1 { font-family:"Sermon Quote",Georgia,serif; font-style:italic; }
.layout-section .ss-content h1 { font-size:clamp(70px,8vw,160px); }
.layout-quote .ss-body blockquote { max-width:22ch; font-size:clamp(30px,3.4vw,68px); }
.layout-definition .ss-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.65fr); gap:var(--slide-grid); align-items:center; }
.layout-two-column .ss-body,.layout-comparison .ss-body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--slide-grid); max-width:none; }
.layout-steps .ss-body ol { counter-reset:ss-step; list-style:none; padding:0; }
.layout-steps .ss-body li { counter-increment:ss-step; display:grid; grid-template-columns:auto 1fr; gap:.5em; align-items:start; }
.layout-steps .ss-body li::before { content:counter(ss-step,decimal-leading-zero); color:var(--accent); font-size:.7em; font-weight:800; letter-spacing:.05em; }
.layout-timeline .ss-body { max-width:none; }
.layout-timeline .ss-body ul,.layout-timeline .ss-body ol { grid-template-columns:repeat(auto-fit,minmax(10em,1fr)); list-style:none; padding:0; }
.layout-timeline .ss-body li { border-top:3px solid var(--accent); padding-top:.55em; }
.layout-answer .ss-body { filter:blur(18px); opacity:.15; transition:filter .35s ease,opacity .35s ease; }
.layout-answer.is-answer-revealed .ss-body { filter:none; opacity:1; }
.layout-chart .ss-body,.layout-metrics .ss-body,.layout-diagram .ss-body { max-width:none; }
.layout-canvas .ss-content { max-width:none; width:100%; }

.ss-chart { width:min(100%,68em); margin:0; color:var(--ink); }
.ss-chart svg { display:block; width:100%; height:auto; overflow:visible; }
.ss-chart-title { fill:var(--ink); font:700 20px/1 "Studio Text",sans-serif; }
.ss-chart-label { fill:var(--muted); font:400 15px/1 "Studio Text",sans-serif; }
.ss-chart-axis { fill:var(--muted); font:600 16px/1 "Studio Text",sans-serif; text-anchor:middle; }
.ss-chart-value { fill:var(--ink); font:700 16px/1 "Studio Text",sans-serif; text-anchor:middle; }
.ss-chart-axis-line { stroke:color-mix(in srgb,var(--ink) 22%,transparent); stroke-width:2; }
.ss-chart-bar { fill:var(--accent); rx:8; transform-origin:bottom; animation:ss-chart-bar-in .65s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--bar-index) * 80ms); }
.ss-chart-line { fill:none; stroke:var(--accent); stroke-width:7; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 8px 14px color-mix(in srgb,var(--accent) 30%,transparent)); }
.ss-chart-area { fill:var(--accent-soft); stroke:none; }
.ss-chart-point { fill:var(--bg); stroke:var(--accent); stroke-width:5; }
.ss-chart-track { fill:color-mix(in srgb,var(--ink) 12%,transparent); stroke:none; }
.ss-chart-progress { fill:var(--accent); }
.ss-chart-donut { fill:none; stroke-width:34; transform:rotate(-90deg); transform-origin:480px 205px; }
.ss-chart figcaption { margin-top:.4em; color:var(--muted); font-size:.55em; }
.ss-chart.is-building .ss-chart-bar { animation-play-state:paused; transform:scaleY(0); }
.ss-chart.is-building .ss-chart-line { stroke-dasharray:1200; stroke-dashoffset:1200; }
.ss-chart.is-built .ss-chart-line { animation:ss-chart-line-in 1s ease both; }
.ss-metric { display:inline-grid; gap:.08em; min-width:7em; margin:.25em; padding:.55em .7em; border:1px solid color-mix(in srgb,var(--accent) 30%,transparent); border-radius:var(--slide-radius); background:color-mix(in srgb,var(--surface) 80%,transparent); box-shadow:var(--slide-shadow); }
.ss-metric strong { color:var(--accent); font-size:2.4em; line-height:.9; }
.ss-metric span { color:var(--ink); font-size:.65em; }
.ss-metric small { color:var(--chart-2); font-size:.55em; }
.ss-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(11em,1fr)); gap:clamp(12px,1.5vw,28px); }
.ss-cards > * { margin:0; padding:.8em; border:1px solid color-mix(in srgb,var(--ink) 12%,transparent); border-radius:var(--slide-radius); background:color-mix(in srgb,var(--surface) 82%,transparent); box-shadow:var(--slide-shadow); }
.ss-callout { margin:.5em 0; padding:.7em .9em; border:1px solid color-mix(in srgb,var(--accent) 40%,transparent); border-left:5px solid var(--accent); border-radius:var(--slide-radius); background:color-mix(in srgb,var(--surface) 78%,transparent); box-shadow:var(--slide-shadow); }
.ss-callout.tone-warn { --accent:var(--chart-5); }
.ss-callout.tone-calm { --accent:var(--chart-2); }
.ss-diagram ol { display:flex; flex-wrap:wrap; gap:1.3em; align-items:center; padding:0; list-style:none; counter-reset:ss-diagram; }
.ss-diagram li { position:relative; padding:.7em .9em; border:1px solid color-mix(in srgb,var(--accent) 42%,transparent); border-radius:var(--slide-radius); background:var(--surface); counter-increment:ss-diagram; }
.ss-diagram li + li::before { content:"→"; position:absolute; left:-1.05em; color:var(--accent); }

[data-motion="none"] *,body[data-motion="none"] * { animation:none!important; transition:none!important; }
body[data-motion="subtle"] .ss-slide-art .ss-graphic-orbit ellipse { animation:none; }
body[data-motion="maximal"] .ss-slide-art { opacity:1; }
body[data-motion="maximal"] .ss-slide-art svg { filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 38%,transparent)); }
body[data-motion="maximal"] .ss-content h1 { animation:ss-title-in .8s cubic-bezier(.2,.8,.2,1) both; }
body[data-motion="maximal"] .ss-kicker { animation:ss-kicker-in .6s ease both; }
.reveal-fade-up { --reveal-y:28px; }
.reveal-scale { --reveal-scale:.86; }
.reveal-glow { text-shadow:0 0 0 transparent; }
.fragment.reveal-glow.is-visible { animation:ss-glow-in .7s ease both; }
.fragment.reveal-scale { transform:scale(var(--reveal-scale,.86)); }
.fragment.reveal-scale.is-visible { transform:none; }
@keyframes ss-orbit { to { transform:rotate(360deg); } }
@keyframes ss-chart-bar-in { from { transform:scaleY(0); opacity:0; } to { transform:scaleY(1); opacity:1; } }
@keyframes ss-chart-line-in { to { stroke-dashoffset:0; } }
@keyframes ss-title-in { from { opacity:0; transform:translateY(30px) skewY(2deg); filter:blur(12px); } to { opacity:1; transform:none; filter:none; } }
@keyframes ss-kicker-in { from { opacity:0; letter-spacing:.5em; } to { opacity:1; letter-spacing:.16em; } }
@keyframes ss-glow-in { from { opacity:0; text-shadow:0 0 0 transparent; } 50% { text-shadow:0 0 28px var(--accent); } to { opacity:1; text-shadow:0 0 0 transparent; } }

body[data-theme="electric-revival"] { --bg:#10051e; --surface:#1e0d31; --ink:#fff9ff; --muted:#d6b9df; --accent:#ff3bd4; --accent-soft:rgba(255,59,212,.28); --chart-2:#19f5d1; --chart-3:#7a5cff; --chart-4:#ff7b29; --chart-5:#edff43; color-scheme:dark; background:#050109; font-family:"Studio Text",sans-serif; }
body[data-theme="electric-revival"] .ss-stage { background:radial-gradient(circle at 20% 20%,#34105a,transparent 38%),radial-gradient(circle at 85% 80%,#052e3e,transparent 35%),#050109; }
body[data-theme="electric-revival"] .ss-slide { background:linear-gradient(125deg,#12051f 0%,#22083d 48%,#050c1a 100%); overflow:hidden; }
body[data-theme="electric-revival"] .ss-slide::after { inset:0; width:auto; height:auto; border:0; border-radius:0; background:linear-gradient(115deg,transparent 0 42%,rgba(255,59,212,.14) 42% 43%,transparent 43% 57%,rgba(25,245,209,.14) 57% 58%,transparent 58%); mix-blend-mode:screen; animation:ss-electric-sweep 7s linear infinite; }
body[data-theme="electric-revival"] .ss-content h1 { color:#fff; text-shadow:5px 0 var(--chart-2),-5px 0 var(--accent),0 0 42px color-mix(in srgb,var(--accent) 54%,transparent); letter-spacing:-.08em; }
body[data-theme="electric-revival"] .ss-kicker { color:var(--chart-5); text-shadow:0 0 18px color-mix(in srgb,var(--chart-5) 70%,transparent); }
body[data-theme="electric-revival"] .ss-slide-art { mix-blend-mode:screen; }
body[data-theme="electric-revival"] .ss-slide-art svg { stroke-width:3; }
body[data-theme="electric-revival"] .ss-chart-bar { filter:drop-shadow(0 0 16px var(--accent)); }
body[data-theme="electric-revival"] .ss-progress { height:8px; background:linear-gradient(90deg,var(--chart-3),var(--accent),var(--chart-5),var(--chart-2)); background-size:300% 100%; animation:ss-electric-gradient 2s linear infinite; }
@keyframes ss-electric-sweep { from { transform:translateX(-70%); } to { transform:translateX(70%); } }
@keyframes ss-electric-gradient { to { background-position:300% 0; } }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.001ms!important; }
}

.ss-stage::after { content:""; position:absolute; z-index:1000; inset:0; background:#000; opacity:0; pointer-events:none; transition:opacity 450ms ease; }
.ss-blackout .ss-stage::after { opacity:1; pointer-events:auto; }
@media (prefers-reduced-motion:reduce) { .ss-stage::after { transition:none; } }
@media print { .ss-stage::after { display:none; } }

/* Explicit artwork modes used by generated sermon graphics.  Legacy slides
   remain on the low-opacity `normal' mode. */
.ss-slide.background-full::before { opacity:var(--background-opacity, 1); }
.ss-slide.background-full::after { display:none; }
.ss-slide.background-image-only { padding:0; display:none; place-items:stretch; }
.ss-slide.background-image-only.is-active { display:block; }
.ss-slide.background-image-only::before { opacity:var(--background-opacity, 1); z-index:-2; }
.ss-slide.background-image-only .ss-running-header,
.ss-slide.background-image-only .ss-kicker,
.ss-slide.background-image-only .ss-content,
.ss-slide.background-image-only .ss-footer,
.ss-slide.background-image-only .ss-slide-art { display:none; }
.ss-slide.background-image-only::after { display:none; }
.ss-overview { position:fixed; z-index:40; inset:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); align-content:start; gap:18px; overflow:auto; padding:clamp(24px,5vw,80px); background:color-mix(in srgb,var(--bg) 96%,#000); }
.ss-overview button { min-height:120px; padding:16px; border:1px solid color-mix(in srgb,var(--ink) 20%,transparent); border-radius:12px; color:var(--ink); background:var(--surface); text-align:left; cursor:pointer; box-shadow:var(--slide-shadow); }
.ss-overview button:hover,.ss-overview button:focus,.ss-overview button.is-current { border-color:var(--accent); outline:2px solid var(--accent-soft); }
.ss-overview button span { display:block; margin-bottom:10px; color:var(--accent); font-size:1.35em; font-weight:800; }
.ss-electric-particle { position:absolute; z-index:0; left:var(--particle-x); top:var(--particle-y); width:5px; height:5px; border-radius:50%; background:var(--chart-2); box-shadow:0 0 16px 4px var(--chart-2); animation:ss-particle 5s ease-in-out var(--particle-delay) infinite; pointer-events:none; }
@keyframes ss-particle { 0%,100% { opacity:.12; transform:translate3d(0,12px,0) scale(.6); } 50% { opacity:.9; transform:translate3d(18px,-18px,0) scale(1.5); } }

/* Progressive roll: semantic effects and stable element IDs. */
.ss-deck { container-type:size; }
[data-ss-id] { transition:opacity .35s ease,transform .35s ease,filter .35s ease; }
.ss-roll-hidden { opacity:0!important; visibility:hidden; pointer-events:none; }
[data-effect="fade-up"].ss-roll-hidden { transform:translateY(1em); }
[data-effect="fade-down"].ss-roll-hidden { transform:translateY(-1em); }
[data-effect="slide-left"].ss-roll-hidden { transform:translateX(2em); }
[data-effect="slide-right"].ss-roll-hidden { transform:translateX(-2em); }
[data-effect="zoom"].ss-roll-hidden { transform:scale(.8); }
[data-effect="appear"] { transition:none; }
[data-tone="dim"] { opacity:.3; }
[data-tone="highlight"],[data-tone="emphasize"] { filter:drop-shadow(0 0 .3em var(--accent)); }
[data-tone="emphasize"] { font-weight:800; }
[data-effect="highlight"]:not(.ss-roll-hidden) { background:var(--accent-soft); }
[data-effect="dim"]:not(.ss-roll-hidden) { opacity:.3; }
[data-effect="emphasize"]:not(.ss-roll-hidden) { font-weight:800; }
.ss-draw { transition:stroke-dashoffset .7s ease; }
.ss-chart-line.ss-draw { stroke-dasharray:1; stroke-dashoffset:0; }
.ss-chart-bar { transform-box:fill-box; transform-origin:center bottom; transition:transform .6s ease; }
.ss-roll-hidden[data-effect="draw"] .ss-chart-bar { transform:scaleY(0); }
.ss-route { fill:none; stroke:var(--accent); stroke-width:5; stroke-dasharray:1; stroke-dashoffset:0; }
.ss-route-hidden { stroke-dashoffset:1; visibility:hidden; }
.ss-roll-hidden .ss-draw { stroke-dashoffset:1; }
.ss-city { fill:var(--accent); stroke:var(--ink); stroke-width:2; }
.ss-city-future { opacity:.3; } .ss-city-past { opacity:.55; }
.ss-city-current { filter:drop-shadow(0 0 6px var(--accent)); }
.ss-map-land { fill:var(--surface); stroke:var(--muted); }
.ss-journey { margin:0; } .ss-journey svg { width:100%; max-height:32cqh; }
.ss-journey figcaption { font-size:.75em; }
.layout-chart .ss-content h1 { font-size:clamp(36px,4.2cqw,96px); }
.ss-stop-caption { font-size:.65em; }
.ss-map-notice { font-size:.4em; color:var(--muted); }
.ss-journey-rail,.ss-thread,.ss-history ol { display:flex; flex-wrap:wrap; gap:.8em; padding:0; list-style:none; }
.ss-journey-rail { font-size:.45em; }
.ss-body .ss-journey-rail { display:flex; }
.ss-passages { position:absolute; bottom:4%; left:7%; right:7%; font-size:clamp(11px,1.15cqw,23px); max-height:20%; overflow:auto; background:var(--bg); }
.ss-passage-current { color:var(--accent); font-weight:800; }
.ss-thread { align-items:center; } .ss-thread .is-future { opacity:.55; }
.ss-thread .is-current,.ss-journey-rail .is-current { color:var(--accent); font-weight:bold; }
.ss-history { color:var(--muted); } .ss-history ol { display:inline-flex; margin:.3em; }
.ss-history-list ol { display:block; padding-left:1em; list-style:disc; }
.ss-history-breadcrumb li + li::before { content:"› "; }
.ss-history-rail { border-top:1px solid var(--accent); padding-top:.4em; }
.ss-history-compact { font-size:.8em; }
.ss-roll-status { position:absolute; right:2%; bottom:1%; font-size:clamp(10px,.8cqw,18px); color:var(--muted); }
body[data-show-numbers="false"] .ss-roll-status { clip-path:inset(50%); width:1px; height:1px; overflow:hidden; }
.ss-step-progress { position:absolute; bottom:5px; left:0; height:3px; background:var(--chart-2); transition:width .2s; }
body[data-show-progress="false"] .ss-step-progress { display:none; }
.ss-action-callouts { position:absolute; bottom:12%; right:6%; max-width:55%; font-size:1.8cqw; }
.ss-component-error { color:var(--ink); background:#702424; padding:1rem; }
.ss-chart [data-ss-id] .ss-chart-bar { animation:none; }
.ss-timeline ol { border-top:3px solid var(--accent); }
.ss-slide:has(> .ss-passages) .ss-content { max-height:64cqh; }
@media (max-width:700px) { [data-ss-id][style*="absolute"] { position:relative!important; left:auto!important; top:auto!important; max-width:100%; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media print { .ss-roll-hidden { opacity:1!important; visibility:visible!important; transform:none!important; } .ss-roll-status,.ss-step-progress { display:none; } }
