@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;700;800&family=Space+Grotesk:wght@500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&family=Newsreader:opsz,wght@6..72,500;6..72,600;6..72,700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,input,textarea,select{font:inherit}button{cursor:pointer}.container{width:min(1160px,calc(100% - 40px));margin-inline:auto}
*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}::selection{background:var(--primary);color:var(--on-primary)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:700;font-size:1.2rem;letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand-mark{width:36px;height:36px;border-radius:12px;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;font-size:.9rem;flex-shrink:0}.nav{display:flex;align-items:center;gap:clamp(12px,2vw,28px)}.nav-link{font-size:.88rem;color:var(--ink-soft);transition:color .2s;min-height:44px;display:inline-flex;align-items:center}.nav-link:hover,.nav-link.active{color:var(--primary);text-decoration:none}.nav-toggle{display:none;border:0;background:transparent;color:var(--ink);min-width:44px;min-height:44px}.nav-toggle span{display:block;width:24px;height:2.5px;border-radius:999px;background:var(--ink);transition:transform .2s,opacity .2s}.nav-toggle span+span{margin-top:5px}.nav-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--hero-gradient);color:var(--hero-text);padding:clamp(74px,11vw,150px) 0}.hero:after{content:"";position:absolute;inset:0;background:var(--hero-overlay);z-index:-1}.hero-content{max-width:760px;position:relative}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.15em}.hero .eyebrow{color:var(--accent-light)}h1,h2,h3,h4{font-family:var(--font-head);line-height:1.08;letter-spacing:-.04em;margin:0 0 18px}h1{font-size:clamp(2.8rem,7vw,5.6rem)}h2{font-size:clamp(2rem,4vw,3.2rem)}h3{font-size:clamp(1.2rem,2vw,1.6rem)}p{margin:0 0 18px;color:var(--ink-soft)}.hero p{color:color-mix(in srgb,var(--hero-text) 78%,transparent);font-size:clamp(1rem,2vw,1.15rem);max-width:650px}.section{padding:clamp(64px,9vw,100px) 0}.section.alt{background:var(--bg-alt)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px}.section-head p{max-width:520px;margin:0}.grid{display:grid;gap:22px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);text-decoration:none}.card-body{padding:26px;flex:1}.card-image{aspect-ratio:16/10;object-fit:cover;width:100%;background:var(--soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:var(--radius-pill);padding:0 22px;border:1px solid transparent;font-weight:750;font-size:.9rem;transition:transform .2s,background .2s,box-shadow .2s;text-decoration:none;cursor:pointer}.btn:hover{transform:translateY(-2px);text-decoration:none}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border-color:var(--border);color:var(--ink);background:transparent}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-light{background:var(--on-primary);color:var(--primary)}.btn-light:hover{filter:brightness(1.05)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.tag,.badge{display:inline-flex;padding:5px 10px;border-radius:var(--radius-pill);background:var(--accent-light);color:var(--primary-dark);font-size:.73rem;font-weight:800;letter-spacing:.03em}.muted{color:var(--ink-faint);font-size:.88rem}.rich p{color:var(--ink-soft)}.rich h2,.rich h3,.rich h4{margin-top:28px}.rich ul,.rich ol{padding-left:22px;color:var(--ink-soft);margin:0 0 14px}.rich li{margin-bottom:6px}.rich blockquote{border-left:3px solid var(--accent);padding-left:18px;font-family:var(--font-head);font-size:1.25rem;color:var(--ink);margin:18px 0}.rich a{text-decoration:underline;text-underline-offset:3px;color:var(--primary)}.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,7vw,90px);align-items:center}.visual{min-height:340px;border-radius:var(--radius-lg);background:var(--hero-gradient);overflow:hidden;position:relative}.visual img{width:100%;height:100%;object-fit:cover}.visual-placeholder{height:100%;min-height:340px;display:grid;place-items:center;color:var(--hero-text);font-family:var(--font-head);font-size:clamp(1.6rem,4vw,3rem);padding:30px;text-align:center}.event-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--ink-faint);font-size:.85rem;font-weight:600}.quote{padding:30px}.quote p{font-family:var(--font-head);font-size:1.35rem;color:var(--ink);line-height:1.4}.site-footer{background:var(--ink);color:var(--on-primary);padding:58px 0 26px}.site-footer p,.site-footer a{color:color-mix(in srgb,var(--on-primary) 68%,transparent)}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-bottom:48px}.footer-bottom{border-top:1px solid color-mix(in srgb,var(--on-primary) 20%,transparent);padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:.82rem;flex-wrap:wrap}.form{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:grid;gap:7px}.form-field.full{grid-column:1/-1}.form-label{font-size:.82rem;font-weight:800;color:var(--ink)}.form-input{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;background:var(--surface);color:var(--ink);min-height:46px}.form-input:focus{border-color:var(--accent);outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}.notice{padding:14px 16px;border-radius:var(--radius);background:var(--accent-light);color:var(--primary-dark);font-size:.9rem;font-weight:600;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.empty{padding:40px;border:1px dashed var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--ink-soft)}.powered-by{opacity:.8}.powered-by a{color:inherit;text-decoration:none}.powered-by a:hover{text-decoration:underline;opacity:1}
.notice-bar{background:var(--accent);color:var(--ink);padding:0;overflow:hidden}
.notice-bar-inner{display:flex;align-items:center;max-width:1160px;margin:0 auto;padding:0 20px}
.notice-label{flex-shrink:0;font-weight:800;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding:9px 14px 9px 0;border-right:1px solid color-mix(in srgb,var(--ink) 15%,transparent);margin-right:14px}
.notice-track{overflow:hidden;flex:1;position:relative}
.notice-items{display:flex;gap:32px;white-space:nowrap;animation:marquee 28s linear infinite}
.notice-items a{color:var(--ink);font-size:.85rem;font-weight:600}
.notice-items a:hover{text-decoration:underline}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.stats-strip{background:var(--soft);border-block:1px solid var(--border)}
.stats-strip .container{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:22px 0}
.stat-item{flex:1;min-width:130px;text-align:center;padding:8px}
.stat-num{font-family:var(--font-head);font-size:2rem;font-weight:700;color:var(--primary);line-height:1}
.stat-label{font-size:.82rem;color:var(--ink-soft);margin-top:4px;font-weight:600}
.cta-band{background:var(--hero-gradient);padding:56px 24px;text-align:center;color:var(--hero-text);position:relative;overflow:hidden;isolation:isolate}
.cta-band:after{content:"";position:absolute;inset:0;background:var(--hero-overlay);z-index:-1}
.cta-band h2{color:var(--hero-text);margin-bottom:10px}
.cta-band p{color:color-mix(in srgb,var(--hero-text) 80%,transparent);max-width:620px;margin:0 auto 24px}
.testimonial{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-sm)}
.testimonial .stars{color:var(--accent);margin-bottom:10px;letter-spacing:.1em}
.testimonial .text{font-style:italic;color:var(--ink);margin-bottom:12px;line-height:1.6}
.testimonial .author{font-weight:700;font-size:.9rem;color:var(--ink-soft)}
.page-hero{background:var(--hero-gradient);padding:64px 0 56px;text-align:center;position:relative;overflow:hidden;isolation:isolate;color:var(--hero-text)}
.page-hero:after{content:"";position:absolute;inset:0;background:var(--hero-overlay);z-index:-1}
.page-hero h1{color:var(--hero-text)}.page-hero p{color:color-mix(in srgb,var(--hero-text) 78%,transparent);max-width:640px;margin:0 auto}
.breadcrumbs{display:flex;gap:8px;justify-content:center;font-size:.82rem;margin-top:16px;flex-wrap:wrap}
.breadcrumbs a{color:color-mix(in srgb,var(--hero-text) 78%,transparent)}.breadcrumbs a:hover{color:var(--hero-text)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-item{position:relative;border-radius:var(--radius);overflow:hidden}
.gallery-item img{width:100%;height:240px;object-fit:cover;transition:transform .3s}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-item .caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;padding:24px 12px 10px;font-size:.85rem;font-weight:600}
.success-box{background:color-mix(in srgb,var(--accent-light) 85%,white);border:1px solid var(--accent);border-radius:var(--radius-lg);padding:28px;text-align:center}
.success-box h3{color:var(--primary-dark);margin-bottom:8px}
.success-box p{color:var(--ink-soft)}
.wa-float{position:fixed;right:18px;bottom:18px;background:#128C7E;color:#fff;border-radius:999px;padding:11px 16px;font-size:.83rem;font-weight:800;box-shadow:var(--shadow-lg);z-index:15;display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:transform .2s,box-shadow .2s}
.wa-float:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none;background:#0fa36a}
.wa-float svg{width:20px;height:20px;fill:currentColor}
/* Theme switcher */
.theme-btn{position:fixed;bottom:92px;right:18px;z-index:110;width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:background .15s,transform .15s}
.theme-btn:hover{background:var(--primary-dark);transform:translateY(-2px)}
.theme-btn svg{width:24px;height:24px}
.theme-panel{position:fixed;bottom:156px;right:18px;z-index:120;width:300px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:18px;display:none;text-align:left}
.theme-panel.open{display:block}
.theme-panel h3{font-family:var(--font-head);font-size:1.05rem;margin-bottom:4px}
.theme-panel .theme-sub{font-size:.82rem;color:var(--ink-soft);margin-bottom:14px}
.theme-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--soft);border:2px solid transparent;border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;cursor:pointer;font-family:var(--font-body);color:var(--ink);transition:border-color .15s,background .15s}
.theme-card:hover{background:color-mix(in srgb,var(--soft) 60%,var(--primary-light))}
.theme-card.active{border-color:var(--primary);background:var(--primary-light)}
.theme-swatches{display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.theme-swatches .sw{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);flex-shrink:0}
.theme-card .t-name{font-weight:700;font-size:.9rem;display:block}
.theme-card .t-desc{font-size:.75rem;color:var(--ink-soft);line-height:1.35;display:block}
.theme-note{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);font-size:.72rem;color:var(--ink-faint);line-height:1.4}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.btn,.wa-float{transition:none}.notice-items{animation:none}}
@media(max-width:900px){.card-grid.cols-3,.card-grid.cols-4{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.nav-toggle{display:grid;place-items:center}.nav{display:none;position:absolute;left:20px;right:20px;top:68px;padding:14px;flex-direction:column;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);gap:0}.nav.open{display:flex}.nav-link{padding:11px 12px;width:100%}.grid-3,.grid-2,.split,.footer-grid{grid-template-columns:1fr}.footer-grid{padding-bottom:32px}.section-head{display:block}.section-head .btn{margin-top:14px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}.gallery-grid{grid-template-columns:1fr 1fr}.stats-strip .container{justify-content:center}.theme-panel{right:12px;bottom:150px}.theme-btn{right:12px;bottom:88px}}
@media(max-width:640px){.gallery-grid{grid-template-columns:1fr}.card-grid.cols-2,.card-grid.cols-3{grid-template-columns:1fr}.stats-strip .container{gap:16px}}

/* ===================== Theme palettes ===================== */
:root{
  --primary:#b74d3d;
  --primary-dark:#8e362c;
  --primary-light:#f4ddd7;
  --accent:#e4a24c;
  --accent-light:#fff0d5;
  --bg:#fbf8f3;
  --bg-alt:#f3ece4;
  --surface:#fffdfa;
  --soft:#f5eee7;
  --border:#e7d9cc;
  --ink:#2c2020;
  --ink-soft:#725f5a;
  --ink-faint:#a38e85;
  --on-primary:#fffaf5;
  --font-head:'Playfair Display',Georgia,serif;
  --font-body:'DM Sans',-apple-system,sans-serif;
  --radius:14px;
  --radius-lg:28px;
  --radius-pill:999px;
  --hero-gradient:linear-gradient(125deg,#2c2020,#733c34 55%,#b74d3d);
  --hero-overlay:rgba(24,14,13,.18);
  --hero-text:#fffaf5;
  --shadow-sm:0 8px 24px rgba(86,48,36,.08);
  --shadow-md:0 18px 46px rgba(86,48,36,.13);
  --shadow-lg:0 28px 75px rgba(28,18,17,.22);
}
html[data-theme="afterglow"]{
  --primary:#b74d3d;
  --primary-dark:#8e362c;
  --primary-light:#f4ddd7;
  --accent:#e4a24c;
  --accent-light:#fff0d5;
  --bg:#fbf8f3;
  --bg-alt:#f3ece4;
  --surface:#fffdfa;
  --soft:#f5eee7;
  --border:#e7d9cc;
  --ink:#2c2020;
  --ink-soft:#725f5a;
  --ink-faint:#a38e85;
  --on-primary:#fffaf5;
  --font-head:'Playfair Display',Georgia,serif;
  --font-body:'DM Sans',-apple-system,sans-serif;
  --radius:14px;
  --radius-lg:28px;
  --radius-pill:999px;
  --hero-gradient:linear-gradient(125deg,#2c2020,#733c34 55%,#b74d3d);
  --hero-overlay:rgba(24,14,13,.18);
  --hero-text:#fffaf5;
  --shadow-sm:0 8px 24px rgba(86,48,36,.08);
  --shadow-md:0 18px 46px rgba(86,48,36,.13);
  --shadow-lg:0 28px 75px rgba(28,18,17,.22);
}
html[data-theme="afterglow"] .hero{border-bottom-right-radius:clamp(34px,8vw,110px)}
html[data-theme="afterglow"] .card{border-radius:20px}
html[data-theme="afterglow"] .brand-mark{border-radius:50%}
html[data-theme="afterglow"] .section-head h2{max-width:680px}

html[data-theme="blueprint"]{
  --primary:#315cf5;
  --primary-dark:#2044c7;
  --primary-light:#e2e9ff;
  --accent:#f6b94c;
  --accent-light:#fff2d3;
  --bg:#f6f8fc;
  --bg-alt:#e9eef8;
  --surface:#fff;
  --soft:#eef2f8;
  --border:#d6deed;
  --ink:#101a31;
  --ink-soft:#52617b;
  --ink-faint:#8996ad;
  --on-primary:#fff;
  --font-head:'Space Grotesk',-apple-system,sans-serif;
  --font-body:'Archivo',-apple-system,sans-serif;
  --radius:8px;
  --radius-lg:16px;
  --radius-pill:999px;
  --hero-gradient:linear-gradient(120deg,#101a31,#24429b 60%,#315cf5);
  --hero-overlay:rgba(7,14,30,.2);
  --hero-text:#fff;
  --shadow-sm:0 4px 14px rgba(16,26,49,.07);
  --shadow-md:0 14px 32px rgba(16,26,49,.12);
  --shadow-lg:0 24px 60px rgba(16,26,49,.18);
}
html[data-theme="blueprint"] .hero{clip-path:polygon(0 0,100% 0,100% 91%,0 100%);padding-bottom:clamp(100px,13vw,180px)}
html[data-theme="blueprint"] .card{border-radius:8px}
html[data-theme="blueprint"] .btn{border-radius:8px}
html[data-theme="blueprint"] .section{border-bottom:1px solid var(--border)}
html[data-theme="blueprint"] .brand-mark{border-radius:6px}

html[data-theme="gather"]{
  --primary:#536b4f;
  --primary-dark:#3b5039;
  --primary-light:#e0e8db;
  --accent:#9f603d;
  --accent-light:#f4e3d6;
  --bg:#f8f7f1;
  --bg-alt:#edf0e8;
  --surface:#fffef9;
  --soft:#f1f2eb;
  --border:#d8ddd0;
  --ink:#20261f;
  --ink-soft:#657063;
  --ink-faint:#98a094;
  --on-primary:#fbfaf3;
  --font-head:'Newsreader',Georgia,serif;
  --font-body:'Manrope',-apple-system,sans-serif;
  --radius:4px;
  --radius-lg:10px;
  --radius-pill:999px;
  --hero-gradient:linear-gradient(135deg,#20261f,#536b4f 68%,#9f603d);
  --hero-overlay:rgba(20,28,20,.25);
  --hero-text:#fbfaf3;
  --shadow-sm:0 2px 8px rgba(32,38,31,.06);
  --shadow-md:0 10px 26px rgba(32,38,31,.1);
  --shadow-lg:0 22px 52px rgba(32,38,31,.16);
}
html[data-theme="gather"] .hero{padding-block:clamp(60px,8vw,100px)}
html[data-theme="gather"] .hero h1{max-width:850px}
html[data-theme="gather"] .card{box-shadow:none}
html[data-theme="gather"] .card:hover{box-shadow:var(--shadow-md)}
html[data-theme="gather"] .section-head h2{font-weight:500}
html[data-theme="gather"] .brand-mark{border-radius:4px}
