<!DOCTYPE html>

<html lang="en" data-theme="light">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<meta name="description" content="Sanctum Live helps church tech teams monitor livestreams, capture timestamped service issues, and turn them into follow-up tasks before next Sunday." />

<title>Sanctum Live | AI-Powered Service Monitoring for Church Tech Teams</title>

<style>

:root {

color-scheme: light;

--bg: #f7f5f0;

--surface: #ffffff;

--surface-muted: #efebe3;

--text: #161513;

--text-muted: #5f5b53;

--text-soft: #807a70;

--border: #dfd8cb;

--border-strong: #cfc5b5;

--accent: #8b5e34;

--accent-strong: #6f4725;

--accent-soft: #efe3d4;

--success: #4f6b58;

--shadow: 0 24px 70px rgba(37, 31, 23, 0.11);

--shadow-soft: 0 14px 36px rgba(37, 31, 23, 0.08);

--radius-xl: 28px;

--radius-lg: 20px;

--radius-md: 14px;

--max: 1160px;

--font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

--serif: Georgia, "Times New Roman", serif;

}



html[data-theme="dark"] {

color-scheme: dark;

--bg: #11100e;

--surface: #191713;

--surface-muted: #242019;

--text: #f4efe5;

--text-muted: #c7beb0;

--text-soft: #91897d;

--border: #342f27;

--border-strong: #4b4236;

--accent: #d4a36f;

--accent-strong: #e5b987;

--accent-soft: #32261b;

--success: #91b49a;

--shadow: 0 24px 70px rgba(0, 0, 0, 0.38);

--shadow-soft: 0 14px 36px rgba(0, 0, 0, 0.28);

}



* {

box-sizing: border-box;

}



html {

scroll-behavior: smooth;

}



body {

margin: 0;

font-family: var(--font);

background:

radial-gradient(circle at top left, rgba(139, 94, 52, 0.11), transparent 34rem),

linear-gradient(180deg, var(--bg), var(--bg));

color: var(--text);

line-height: 1.5;

-webkit-font-smoothing: antialiased;

text-rendering: optimizeLegibility;

}



a {

color: inherit;

text-decoration: none;

}



button,

input,

textarea {

font: inherit;

}



.page-shell {

overflow: hidden;

}



.container {

width: min(var(--max), calc(100% - 40px));

margin: 0 auto;

}



.nav {

position: sticky;

top: 0;

z-index: 20;

backdrop-filter: blur(18px);

background: color-mix(in srgb, var(--bg) 82%, transparent);

border-bottom: 1px solid color-mix(in srgb, var(--border) 75%, transparent);

}



.nav-inner {

height: 76px;

display: flex;

align-items: center;

justify-content: space-between;

gap: 20px;

}



.brand {

display: flex;

align-items: center;

gap: 12px;

font-weight: 750;

letter-spacing: -0.03em;

}



.brand-mark {

width: 38px;

height: 38px;

display: grid;

place-items: center;

border-radius: 12px;

background: var(--text);

color: var(--bg);

box-shadow: var(--shadow-soft);

font-size: 15px;

}



.brand small {

display: block;

color: var(--text-soft);

font-weight: 550;

letter-spacing: 0;

font-size: 12px;

margin-top: 1px;

}



.nav-links {

display: flex;

align-items: center;

gap: 26px;

color: var(--text-muted);

font-size: 14px;

font-weight: 600;

}



.nav-links a:hover {

color: var(--text);

}



.nav-actions {

display: flex;

align-items: center;

gap: 12px;

}



.theme-toggle {

border: 1px solid var(--border);

background: var(--surface);

color: var(--text);

border-radius: 999px;

padding: 9px 12px;

cursor: pointer;

display: inline-flex;

align-items: center;

gap: 8px;

box-shadow: 0 1px 0 rgba(255,255,255,0.04) inset;

}



.theme-toggle span {

font-size: 13px;

font-weight: 650;

}



.btn {

display: inline-flex;

align-items: center;

justify-content: center;

gap: 10px;

min-height: 46px;

padding: 0 18px;

border-radius: 999px;

border: 1px solid transparent;

font-weight: 750;

font-size: 14px;

letter-spacing: -0.01em;

cursor: pointer;

transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;

}



.btn:hover {

transform: translateY(-1px);

}



.btn-primary {

background: var(--text);

color: var(--bg);

box-shadow: var(--shadow-soft);

}



.btn-primary:hover {

box-shadow: var(--shadow);

}



.btn-secondary {

background: var(--surface);

border-color: var(--border);

color: var(--text);

}



.btn-secondary:hover {

border-color: var(--border-strong);

}



.hero {

padding: 84px 0 72px;

}



.hero-grid {

display: grid;

grid-template-columns: 1.02fr 0.98fr;

gap: 54px;

align-items: center;

}



.eyebrow {

display: inline-flex;

align-items: center;

gap: 9px;

padding: 8px 12px;

border: 1px solid var(--border);

background: color-mix(in srgb, var(--surface) 80%, transparent);

border-radius: 999px;

color: var(--text-muted);

font-size: 13px;

font-weight: 700;

margin-bottom: 22px;

}



.eyebrow-dot {

width: 8px;

height: 8px;

border-radius: 50%;

background: var(--success);

box-shadow: 0 0 0 5px color-mix(in srgb, var(--success) 16%, transparent);

}



h1,

h2,

h3,

p {

margin-top: 0;

}



h1 {

font-size: clamp(44px, 6vw, 76px);

line-height: 0.94;

letter-spacing: -0.075em;

margin-bottom: 24px;

max-width: 780px;

}



.hero-copy {

color: var(--text-muted);

font-size: clamp(18px, 2vw, 21px);

line-height: 1.55;

max-width: 650px;

margin-bottom: 32px;

}



.hero-actions {

display: flex;

align-items: center;

gap: 12px;

flex-wrap: wrap;

margin-bottom: 34px;

}



.hero-note {

display: flex;

flex-wrap: wrap;

gap: 14px;

color: var(--text-soft);

font-size: 14px;

font-weight: 620;

}



.hero-note span {

display: inline-flex;

align-items: center;

gap: 8px;

}



.check {

width: 18px;

height: 18px;

border-radius: 999px;

display: inline-grid;

place-items: center;

background: var(--accent-soft);

color: var(--accent-strong);

font-size: 12px;

font-weight: 900;

flex: 0 0 auto;

}



.product-card {

border: 1px solid var(--border);

background: color-mix(in srgb, var(--surface) 86%, transparent);

border-radius: var(--radius-xl);

box-shadow: var(--shadow);

overflow: hidden;

position: relative;

}



.product-card::before {

content: "";

position: absolute;

inset: 0;

pointer-events: none;

background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 38%);

}



.dashboard-top {

padding: 18px 18px 0;

position: relative;

z-index: 1;

}



.browser-bar {

height: 42px;

border: 1px solid var(--border);

border-radius: 16px 16px 0 0;

display: flex;

align-items: center;

justify-content: space-between;

padding: 0 14px;

background: var(--surface-muted);

}



.browser-dots {

display: flex;

gap: 6px;

}



.browser-dots i {

width: 8px;

height: 8px;

background: var(--border-strong);

border-radius: 50%;

display: block;

}



.live-badge {

color: var(--success);

font-size: 12px;

font-weight: 800;

display: flex;

align-items: center;

gap: 7px;

}



.live-badge::before {

content: "";

width: 7px;

height: 7px;

border-radius: 50%;

background: currentColor;

}



.dashboard-body {

padding: 20px;

position: relative;

z-index: 1;

}



.monitor-grid {

display: grid;

grid-template-columns: 1fr 0.82fr;

gap: 16px;

}



.video-panel {

min-height: 258px;

border-radius: 20px;

background:

linear-gradient(180deg, rgba(0,0,0,0.03), rgba(0,0,0,0.12)),

repeating-linear-gradient(90deg, color-mix(in srgb, var(--text) 10%, transparent) 0 1px, transparent 1px 44px),

linear-gradient(135deg, var(--surface-muted), color-mix(in srgb, var(--accent-soft) 68%, var(--surface)));

border: 1px solid var(--border);

padding: 16px;

display: flex;

flex-direction: column;

justify-content: space-between;

overflow: hidden;

position: relative;

}



.video-panel::after {

content: "";

position: absolute;

width: 180px;

height: 180px;

border: 1px solid color-mix(in srgb, var(--accent) 24%, transparent);

border-radius: 50%;

right: -44px;

bottom: -76px;

}



.service-title {

display: flex;

justify-content: space-between;

gap: 14px;

position: relative;

z-index: 1;

}



.service-title strong {

font-size: 14px;

letter-spacing: -0.01em;

}



.service-title small {

display: block;

color: var(--text-soft);

margin-top: 3px;

}



.health-score {

width: 70px;

height: 70px;

border-radius: 18px;

background: color-mix(in srgb, var(--surface) 70%, transparent);

border: 1px solid var(--border);

display: grid;

place-items: center;

text-align: center;

flex: 0 0 auto;

}



.health-score b {

display: block;

font-size: 25px;

letter-spacing: -0.05em;

}



.health-score span {

display: block;

color: var(--text-soft);

font-size: 10px;

font-weight: 800;

text-transform: uppercase;

letter-spacing: 0.08em;

}



.timeline {

position: relative;

z-index: 1;

background: color-mix(in srgb, var(--surface) 64%, transparent);

border: 1px solid var(--border);

border-radius: 16px;

padding: 12px;

}



.timeline-track {

height: 8px;

border-radius: 999px;

background: var(--border);

overflow: hidden;

margin-bottom: 12px;

}



.timeline-progress {

height: 100%;

width: 67%;

background: var(--accent);

border-radius: inherit;

}



.markers {

display: grid;

grid-template-columns: repeat(3, 1fr);

gap: 8px;

font-size: 11px;

color: var(--text-muted);

font-weight: 700;

}



.issue-panel {

display: grid;

gap: 12px;

}



.issue-card,

.metric-card,

.task-row {

border: 1px solid var(--border);

border-radius: 18px;

background: color-mix(in srgb, var(--surface) 82%, transparent);

padding: 14px;

}



.issue-card header {

display: flex;

justify-content: space-between;

align-items: flex-start;

gap: 12px;

margin-bottom: 9px;

}



.timestamp {

color: var(--accent-strong);

background: var(--accent-soft);

border-radius: 999px;

padding: 5px 8px;

font-size: 12px;

font-weight: 850;

white-space: nowrap;

}



.issue-card strong {

display: block;

font-size: 14px;

line-height: 1.28;

}



.issue-card p {

color: var(--text-muted);

font-size: 12px;

margin-bottom: 0;

}



.metric-row {

display: grid;

grid-template-columns: repeat(3, 1fr);

gap: 10px;

margin-top: 16px;

}



.metric-card b {

display: block;

font-size: 22px;

letter-spacing: -0.05em;

}



.metric-card span {

display: block;

color: var(--text-soft);

font-size: 12px;

font-weight: 700;

margin-top: 2px;

}



section {

padding: 76px 0;

}



.section-kicker {

color: var(--accent-strong);

font-size: 13px;

font-weight: 850;

letter-spacing: 0.1em;

text-transform: uppercase;

margin-bottom: 12px;

}



.section-header {

max-width: 760px;

margin-bottom: 36px;

}



.section-header.center {

margin-left: auto;

margin-right: auto;

text-align: center;

}



h2 {

font-size: clamp(34px, 4vw, 54px);

line-height: 1.02;

letter-spacing: -0.06em;

margin-bottom: 16px;

}


kjef.section-header p {

color: var(--text-muted);

font-size: 18px;

line-height: 1.65;

margin-bottom: 0;

}



.problem-grid {

display: grid;

grid-template-columns: 0.95fr 1.05fr;

gap: 24px;

align-items: stretch;

}



.problem-card {

background: var(--surface);

border: 1px solid var(--border);

border-radius: var(--radius-xl);

padding: 30px;

box-shadow: var(--shadow-soft);

}



.problem-card h3 {

font-size: 24px;

letter-spacing: -0.04em;

margin-bottom: 12px;

}



.problem-card p {

color: var(--text-muted);

margin-bottom: 0;

font-size: 16px;

}



.pain-list {

display: grid;

gap: 14px;

}



.pain-item {

display: grid;

grid-template-columns: auto 1fr;

gap: 14px;

padding: 18px;

border: 1px solid var(--border);

background: color-mix(in srgb, var(--surface) 72%, transparent);

border-radius: 18px;

}



.pain-icon {

width: 36px;

height: 36px;

border-radius: 12px;

background: var(--surface-muted);

display: grid;

place-items: center;

color: var(--accent-strong);

font-weight: 850;

}



.pain-item strong {

display: block;

margin-bottom: 4px;

letter-spacing: -0.02em;

}



.pain-item span {

color: var(--text-muted);

font-size: 14px;

}



.steps {

display: grid;

grid-template-columns: repeat(3, 1fr);

gap: 18px;

counter-reset: step;

}



.step-card {

counter-increment: step;

background: var(--surface);

border: 1px solid var(--border);

border-radius: var(--radius-xl);

padding: 26px;

position: relative;

min-height: 270px;

box-shadow: var(--shadow-soft);

}



.step-card::before {

content: "0" counter(step);

display: inline-grid;

place-items: center;

width: 46px;

height: 46px;

border-radius: 16px;

background: var(--text);

color: var(--bg);

font-weight: 850;

margin-bottom: 42px;

letter-spacing: -0.03em;

}



.step-card h3,

.feature-card h3,

.proof-card h3 {

font-size: 22px;

letter-spacing: -0.04em;

margin-bottom: 10px;

}



.step-card p,

.feature-card p,

.proof-card p {

color: var(--text-muted);

margin-bottom: 0;

}



.features-layout {

display: grid;

grid-template-columns: 0.88fr 1.12fr;

gap: 26px;

align-items: start;

}



.feature-list {

display: grid;

gap: 14px;

}



.feature-card {

border: 1px solid var(--border);

background: var(--surface);

border-radius: 22px;

padding: 22px;

display: grid;

grid-template-columns: auto 1fr;

gap: 16px;

box-shadow: 0 10px 28px rgba(0,0,0,0.03);

}



.feature-icon {

width: 42px;

height: 42px;

border-radius: 14px;

background: var(--accent-soft);

color: var(--accent-strong);

display: grid;

place-items: center;

font-weight: 900;

}



.ops-panel {

position: sticky;

top: 100px;

border: 1px solid var(--border);

background: var(--surface);

border-radius: var(--radius-xl);

padding: 20px;

box-shadow: var(--shadow);

}



.ops-panel-header {

display: flex;

align-items: center;

justify-content: space-between;

gap: 16px;

padding-bottom: 16px;

border-bottom: 1px solid var(--border);

margin-bottom: 16px;

}



.ops-panel-header strong {

font-size: 16px;

letter-spacing: -0.02em;

}



.ops-panel-header span {

color: var(--text-soft);

font-size: 12px;

font-weight: 700;

}



.pill {

display: inline-flex;

align-items: center;

justify-content: center;

border: 1px solid var(--border);

border-radius: 999px;

padding: 6px 10px;

color: var(--text-muted);

font-size: 12px;

font-weight: 800;

white-space: nowrap;

}



.task-list {

display: grid;

gap: 10px;

}



.task-row {

display: grid;

grid-template-columns: auto 1fr auto;

align-items: center;

gap: 12px;

}



.task-row input {

width: 18px;

height: 18px;

accent-color: var(--accent);

}



.task-row strong {

display: block;

font-size: 14px;

margin-bottom: 2px;

}



.task-row span {

display: block;

color: var(--text-soft);

font-size: 12px;

font-weight: 650;

}



.proof-section {

background: var(--surface-muted);

border-block: 1px solid var(--border);

}



.proof-grid {

display: grid;

grid-template-columns: repeat(3, 1fr);

gap: 18px;

}



.proof-card {

background: color-mix(in srgb, var(--surface) 76%, transparent);

border: 1px solid var(--border);

border-radius: var(--radius-xl);

padding: 26px;

}



.proof-stat {

font-family: var(--serif);

font-size: 44px;

line-height: 1;

letter-spacing: -0.05em;

margin-bottom: 18px;

color: var(--accent-strong);

}



.faq-wrap {

max-width: 860px;

margin: 0 auto;

}



.faq-list {

display: grid;

gap: 12px;

}



details {

background: var(--surface);

border: 1px solid var(--border);

border-radius: 18px;

padding: 4px 18px;

box-shadow: 0 8px 24px rgba(0,0,0,0.03);

}



summary {

cursor: pointer;

list-style: none;

padding: 18px 0;

font-weight: 800;

letter-spacing: -0.02em;

display: flex;

align-items: center;

justify-content: space-between;

gap: 18px;

}



summary::-webkit-details-marker {

display: none;

}



summary::after {

content: "+";

width: 28px;

height: 28px;

border-radius: 999px;

display: grid;

place-items: center;

border: 1px solid var(--border);

color: var(--text-muted);

flex: 0 0 auto;

}



details[open] summary::after {

content: "−";

}



details p {

color: var(--text-muted);

margin: 0;

padding: 0 0 18px;

}



.final-cta {

padding: 88px 0 96px;

}



.cta-card {

border-radius: 36px;

border: 1px solid var(--border);

background:

linear-gradient(135deg, color-mix(in srgb, var(--accent-soft) 46%, transparent), transparent 38%),

var(--surface);

box-shadow: var(--shadow);

padding: clamp(30px, 6vw, 64px);

display: grid;

grid-template-columns: 1fr auto;

align-items: center;

gap: 34px;

}



.cta-card h2 {

margin-bottom: 14px;

}



.cta-card p {

color: var(--text-muted);

font-size: 18px;

margin-bottom: 0;

max-width: 690px;

}



footer {

border-top: 1px solid var(--border);

padding: 28px 0;

color: var(--text-soft);

font-size: 14px;

}



.footer-inner {

display: flex;

justify-content: space-between;

gap: 18px;

flex-wrap: wrap;

}



.mobile-menu-btn {

display: none;

}



.mobile-panel {

display: none;

}



@media (max-width: 980px) {

.hero-grid,

.problem-grid,

.features-layout,

.cta-card {

grid-template-columns: 1fr;

}



.ops-panel {

position: relative;

top: auto;

}



.steps,

.proof-grid {

grid-template-columns: 1fr;

}



.step-card {

min-height: auto;

}



.step-card::before {

margin-bottom: 30px;

}

}



@media (max-width: 760px) {

.container {

width: min(100% - 28px, var(--max));

}



.nav-inner {

height: 68px;

}



.nav-links,

.nav-actions .btn {

display: none;

}



.mobile-menu-btn {

display: inline-flex;

}



.mobile-panel {

display: none;

border-top: 1px solid var(--border);

padding: 14px 0 18px;

}



.mobile-panel.open {

display: grid;

gap: 10px;

}



.mobile-panel a,

.mobile-panel .btn {

width: 100%;

justify-content: center;

}



.hero {

padding: 56px 0 44px;

}



section {

padding: 58px 0;

}



h1 {

font-size: clamp(42px, 14vw, 62px);

}



.monitor-grid,

.metric-row {

grid-template-columns: 1fr;

}



.video-panel {

min-height: 220px;

}



.feature-card,

.pain-item {

grid-template-columns: 1fr;

}



.task-row {

grid-template-columns: auto 1fr;

}



.task-row .pill {

grid-column: 2;

justify-self: start;

}



.cta-card {

border-radius: 28px;

}

}



@media (prefers-reduced-motion: reduce) {

*, *::before, *::after {

scroll-behavior: auto !important;

transition: none !important;

}

}

</style>

</head>

<body>

<div class="page-shell">

<nav class="nav" aria-label="Main navigation">

<div class="container">

<div class="nav-inner">

<a class="brand" href="#top" aria-label="Sanctum Live home">

<span class="brand-mark" aria-hidden="true">SL</span>

<span>Sanctum Live<small>Service monitoring for church teams</small></span>

</a>



<div class="nav-links" aria-label="Primary links">

<a href="#problem">Problem</a>

<a href="#how">How it works</a>

<a href="#features">Features</a>

<a href="#faq">FAQ</a>

</div>



<div class="nav-actions">

<button class="theme-toggle" type="button" aria-label="Toggle light and dark mode" id="themeToggle"><span aria-hidden="true">◐</span><span id="themeLabel">Dark</span></button>

<a class="btn btn-primary" href="#pilot">Join the pilot</a>

<button class="btn btn-secondary mobile-menu-btn" type="button" id="mobileMenuBtn" aria-expanded="false" aria-controls="mobilePanel">Menu</button>

</div>

</div>



<div class="mobile-panel" id="mobilePanel">

<a href="#problem">Problem</a>

<a href="#how">How it works</a>

<a href="#features">Features</a>

<a href="#faq">FAQ</a>

<a class="btn btn-primary" href="#pilot">Join the pilot</a>

</div>

</div>

</nav>



<main id="top">

<section class="hero" aria-labelledby="hero-title">

<div class="container hero-grid">

<div>

<div class="eyebrow"><span class="eyebrow-dot" aria-hidden="true"></span> Pilot program opening for weekly livestream churches</div>

<h1 id="hero-title">Catch livestream issues before they become next Sunday’s repeat mistakes.</h1>

<p class="hero-copy">Sanctum Live helps church tech teams monitor services, capture timestamped issues, and convert them into clear follow-up tasks while the service is still fresh.</p>

<div class="hero-actions">

<a class="btn btn-primary" href="#pilot">Join the pilot</a>

<a class="btn btn-secondary" href="#how">See how it works</a>

</div>

<div class="hero-note" aria-label="Pilot benefits">

<span><span class="check" aria-hidden="true">✓</span> Designed for Sunday service workflows</span>

<span><span class="check" aria-hidden="true">✓</span> Built for follow-up before next weekend</span>

<span><span class="check" aria-hidden="true">✓</span> AI-assisted, human-owned</span>

</div>

</div>



<aside class="product-card" aria-label="Sanctum Live dashboard preview">

<div class="dashboard-top">

<div class="browser-bar">

<div class="browser-dots" aria-hidden="true"><i></i><i></i><i></i></div>

<div class="live-badge">Monitoring live</div>

</div>

</div>

<div class="dashboard-body">

<div class="monitor-grid">

<div class="video-panel">

<div class="service-title">

<div>

<strong>Sunday 10:30am Service</strong>

<small>YouTube livestream · Worship center</small>

</div>

<div class="health-score"><div><b>92</b><span>Score</span></div></div>

</div>

<div class="timeline">

<div class="timeline-track" aria-hidden="true"><div class="timeline-progress"></div></div>

<div class="markers">

<span>0:00 Worship</span>

<span>24:12 Message</span>

<span>58:40 Close</span>

</div>

</div>

</div>

<div class="issue-panel">

<article class="issue-card">

<header><strong>Broadcast audio dipped under speaking level</strong><span class="timestamp">24:12</span></header>

<p>Flagged during sermon transition. Assign to broadcast mix review.</p>

</article>

<article class="issue-card">

<header><strong>Lower third covered scripture reference</strong><span class="timestamp">31:48</span></header>

<p>Create follow-up task for ProPresenter template adjustment.</p>

</article>

<article class="issue-card">

<header><strong>Camera 2 focus drift during altar response</strong><span class="timestamp">52:05</span></header>

<p>Add pre-service lens check to camera operator checklist.</p>

</article>

</div>

</div>

<div class="metric-row" aria-label="Dashboard metrics">

<div class="metric-card"><b>8</b><span>Issues captured</span></div>

<div class="metric-card"><b>5</b><span>Tasks drafted</span></div>

<div class="metric-card"><b>3</b><span>Assigned owners</span></div>

</div>

</div>

</aside>

</div>

</section>



<section id="problem" aria-labelledby="problem-title">

<div class="container">

<div class="section-header">

<div class="section-kicker">The weekly gap</div>

<h2 id="problem-title">Most churches notice production issues. Fewer churches have a system to close the loop.</h2>

<p>After service, everyone remembers a different version of what went wrong. By Wednesday, the details are fuzzy. By Sunday, the same avoidable issue can show up again.</p>

</div>



<div class="problem-grid">

<article class="problem-card">

<h3>Sanctum Live is built for the handoff between “we saw it” and “we fixed it.”</h3>

<p>It gives tech directors and production leaders a calmer way to review the service, document issues with timestamps, assign next steps, and improve without turning Sunday into a blame session.</p>

</article>



<div class="pain-list">

<div class="pain-item"><div class="pain-icon">01</div><div><strong>Problems get discussed but not owned.</strong><span>Audio drops, missed graphics, camera framing, and stream interruptions need clear owners—not hallway comments.</span></div></div>

<div class="pain-item"><div class="pain-icon">02</div><div><strong>Volunteers need coaching, not vague feedback.</strong><span>Timestamped examples make follow-up specific, fair, and easier to learn from.</span></div></div>

<div class="pain-item"><div class="pain-icon">03</div><div><strong>Sunday pressure makes memory unreliable.</strong><span>Capturing issues as they happen protects your team from relying on scattered notes and exhausted recall.</span></div></div>

</div>

</div>

</div>

</section>



<section id="how" aria-labelledby="how-title">

<div class="container">

<div class="section-header center">

<div class="section-kicker">How it works</div>

<h2 id="how-title">A simple service-review workflow your team can actually keep using.</h2>

<p>Sanctum Live is intentionally practical: monitor the stream, capture what matters, and leave with a next-Sunday action list.</p>

</div>



<div class="steps">

<article class="step-card">

<h3>Monitor the livestream</h3>

<p>Connect your weekly stream and let Sanctum Live watch for production moments your team should review, from audio level changes to visual presentation issues.</p>

</article>

<article class="step-card">

<h3>Capture timestamped notes</h3>

<p>Issue notes are tied to the exact service moment, so your team can review the clip, understand the context, and coach with clarity.</p>

</article>

<article class="step-card">

<h3>Turn issues into follow-up</h3>

<p>Convert notes into assigned tasks, checklist updates, volunteer coaching points, and pre-service reminders before next Sunday arrives.</p>

</article>

</div>

</div>

</section>



<section id="features" aria-labelledby="features-title">

<div class="container features-layout">

<div>

<div class="section-header">

<div class="section-kicker">Capabilities</div>

<h2 id="features-title">Operational clarity for the tech team behind the stream.</h2>

<p>The goal is not to replace your team. The goal is to give your team a tighter feedback loop.</p>

</div>



<div class="feature-list">

<article class="feature-card"><div class="feature-icon">↯</div><div><h3>Livestream monitoring</h3><p>Track service quality moments across the stream so your team can review the issues that affect the online congregation.</p></div></article>

<article class="feature-card"><div class="feature-icon">⌁</div><div><h3>Timestamped production notes</h3><p>Capture what happened, when it happened, and why it matters—without scrubbing through the whole service from memory.</p></div></article>

<article class="feature-card"><div class="feature-icon">✓</div><div><h3>Issue follow-up</h3><p>Move from “that happened again” to a clear owner, due date, and next action for audio, video, lighting, graphics, or stream teams.</p></div></article>

<article class="feature-card"><div class="feature-icon">↗</div><div><h3>Planning Center integration direction</h3><p>The pilot will help shape how service plans, team assignments, and follow-up tasks can connect with Planning Center workflows over time.</p></div></article>

</div>

</div>



<aside class="ops-panel" aria-label="Follow-up task preview">

<div class="ops-panel-header">

<div><strong>Next Sunday follow-up</strong><br /><span>Drafted from service review</span></div>

<span class="pill">Pilot workflow</span>

</div>

<div class="task-list">

<label class="task-row"><input type="checkbox" checked /><span><strong>Review sermon transition audio dip</strong><span>Owner: Broadcast audio · Due: Wednesday</span></span><em class="pill">24:12</em></label>

<label class="task-row"><input type="checkbox" /><span><strong>Update lower-third safe zone</strong><span>Owner: Graphics · Due: Thursday</span></span><em class="pill">31:48</em></label>

<label class="task-row"><input type="checkbox" /><span><strong>Add Camera 2 focus check</strong><span>Owner: Video lead · Due: Pre-service</span></span><em class="pill">52:05</em></label>

<label class="task-row"><input type="checkbox" /><span><strong>Send coaching note to volunteer</strong><span>Owner: Production director · Due: Tuesday</span></span><em class="pill">Follow-up</em></label>

</div>

</aside>

</div>

</section>



<section class="proof-section" aria-labelledby="proof-title">

<div class="container">

<div class="section-header center">

<div class="section-kicker">Pilot credibility</div>

<h2 id="proof-title">Built with real church production pain in mind.</h2>

<p>Sanctum Live is looking for pilot churches that livestream weekly and want a stronger rhythm for review, coaching, and service improvement.</p>

</div>



<div class="proof-grid">

<article class="proof-card"><div class="proof-stat">01</div><h3>Weekly-service focused</h3><p>The workflow is shaped around Sunday teams that need practical action items before the next rehearsal or service.</p></article>

<article class="proof-card"><div class="proof-stat">02</div><h3>Leadership-ready reporting</h3><p>Give worship pastors and church leadership a clearer view of what is improving without burying them in technical noise.</p></article>

<article class="proof-card"><div class="proof-stat">03</div><h3>Pilot churches shape the product</h3><p>Early teams will influence integrations, review flows, task structure, and the details that make this useful in real ministry environments.</p></article>

</div>

</div>

</section>



<section id="faq" aria-labelledby="faq-title">

<div class="container faq-wrap">

<div class="section-header center">

<div class="section-kicker">FAQ</div>

<h2 id="faq-title">Questions pilot churches usually ask.</h2>

</div>



<div class="faq-list">

<details>

<summary>Is Sanctum Live replacing our production team?</summary>

<p>No. Sanctum Live is designed to support the people already carrying the service. It helps them see patterns, review exact moments, and turn observations into follow-up.</p>

</details>

<details>

<summary>What kinds of issues can it help track?</summary>

<p>The pilot is focused on livestream and production issues such as audio consistency, camera moments, graphics problems, stream interruptions, missed cues, and recurring checklist gaps.</p>

</details>

<details>

<summary>Do we need a large church tech department?</summary>

<p>No. The best fit is any church that livestreams weekly and wants a more organized way to improve. That could be a single tech director, a worship pastor with volunteers, or a larger production team.</p>

</details>

<details>

<summary>How does AI fit into the workflow?</summary>

<p>AI assists with monitoring, summarizing, and organizing possible follow-up. Your team still decides what matters, who owns it, and what changes before next Sunday.</p>

</details>

<details>

<summary>Will Sanctum Live integrate with Planning Center?</summary>

<p>Planning Center integration is part of the product direction. The pilot will help define the most useful connection points, including assignments, service plans, team notes, and recurring follow-up tasks.</p>

</details>

<details>

<summary>What does the pilot involve?</summary>

<p>Pilot churches will test the service-monitoring workflow, give feedback on real Sunday use cases, and help shape the product around church production realities.</p>

</details>

</div>

</div>

</section>



<section class="final-cta" id="pilot" aria-labelledby="pilot-title">

<div class="container">

<div class="cta-card">

<div>

<div class="section-kicker">Join the pilot</div>

<h2 id="pilot-title">Build a calmer, clearer review rhythm before next Sunday.</h2>

<p>Sanctum Live is opening early access for churches that want fewer repeated mistakes, stronger volunteer coaching, and more confidence in the livestream every week.</p>

</div>

<a class="btn btn-primary" href="mailto:pilot@sanctumlive.com?subject=Sanctum%20Live%20Pilot%20Interest">Join the pilot</a>

</div>

</div>

</section>

</main>



<footer>

<div class="container footer-inner">

<span>© <span id="year"></span> Sanctum Live. Built for church production teams.</span>

<span>AI-assisted service monitoring · Human-led follow-up</span>

</div>

</footer>

</div>



<script>

const root = document.documentElement;

const themeToggle = document.getElementById('themeToggle');

const themeLabel = document.getElementById('themeLabel');

const mobileMenuBtn = document.getElementById('mobileMenuBtn');

const mobilePanel = document.getElementById('mobilePanel');

const year = document.getElementById('year');



year.textContent = new Date().getFullYear();



const savedTheme = localStorage.getItem('sanctum-theme');

const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;

const initialTheme = savedTheme || (prefersDark ? 'dark' : 'light');



function setTheme(theme) {

root.setAttribute('data-theme', theme);

localStorage.setItem('sanctum-theme', theme);

themeLabel.textContent = theme === 'dark' ? 'Light' : 'Dark';

}



setTheme(initialTheme);



themeToggle.addEventListener('click', () => {

const nextTheme = root.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';

setTheme(nextTheme);

});



mobileMenuBtn.addEventListener('click', () => {

const isOpen = mobilePanel.classList.toggle('open');

mobileMenuBtn.setAttribute('aria-expanded', String(isOpen));

mobileMenuBtn.textContent = isOpen ? 'Close' : 'Menu';

});



mobilePanel.querySelectorAll('a').forEach((link) => {

link.addEventListener('click', () => {

mobilePanel.classList.remove('open');

mobileMenuBtn.setAttribute('aria-expanded', 'false');

mobileMenuBtn.textContent = 'Menu';

});

});

</script>

</body>

</html>