/* ============ Fonts (self hosted, all Fraunces axes) ============ */
@font-face{
  font-family:"Fraunces";
  src:url("/assets/fonts/fraunces-latin-full-normal.woff2") format("woff2-variations"),
      url("/assets/fonts/fraunces-latin-full-normal.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Fraunces";
  src:url("/assets/fonts/fraunces-latin-full-italic.woff2") format("woff2-variations"),
      url("/assets/fonts/fraunces-latin-full-italic.woff2") format("woff2");
  font-weight:100 900; font-style:italic; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Extended characters (accents like é, ñ, ā) */
@font-face{
  font-family:"Fraunces";
  src:url("/assets/fonts/fraunces-latin-ext-full-normal.woff2") format("woff2-variations"),
      url("/assets/fonts/fraunces-latin-ext-full-normal.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Fraunces";
  src:url("/assets/fonts/fraunces-latin-ext-full-italic.woff2") format("woff2-variations"),
      url("/assets/fonts/fraunces-latin-ext-full-italic.woff2") format("woff2");
  font-weight:100 900; font-style:italic; font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{font-family:"DM Mono";src:url("/assets/fonts/dm-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"DM Mono";src:url("/assets/fonts/dm-mono-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"DM Mono";src:url("/assets/fonts/dm-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"DM Mono";src:url("/assets/fonts/dm-mono-latin-ext-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Mono";src:url("/assets/fonts/dm-mono-latin-ext-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Mono";src:url("/assets/fonts/dm-mono-latin-ext-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF}

/* ============ Brand palette ============ */
:root{
  --lavender:#B9B2EC;
  --sage:#BFD3B4;
  --night:#2A1F33;
  --plum:#3B2F4A;
  --sky:linear-gradient(100deg,#B9B2EC 0%,#BFD3B4 55%,#B9B2EC 100%);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --radius:22px;
  --display:"Fraunces", Georgia, "Times New Roman", serif;
  --body:"DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --soft:"SOFT" 100, "WONK" 1;
}

/* ============ Light theme (default) ============ */
:root{
  color-scheme:light;
  --bg:#F7F5FB;
  --surface:#FFFFFF;
  --surface-2:#F1EEF9;
  --text:#3B2F4A;
  --heading:#2A1F33;
  --label:#3B2F4A;
  --line:rgba(42,31,51,.14);
  --accent-line:rgba(185,178,236,.9);
  --btn-bg:#2A1F33; --btn-text:#FFFFFF; --btn-hover:#3B2F4A;
  --outline:rgba(42,31,51,.35);
  --glass:rgba(255,255,255,.35); --glass-hover:rgba(255,255,255,.6); --glass-border:rgba(42,31,51,.28);
  --hero:var(--sky);
  --hero-title:#2A1F33;
  --nav-bg:rgba(247,245,251,.84);
  --note-bg:rgba(191,211,180,.38);
  --chip-bg:#F1EEF9;
  --sig-bg:var(--sky); --sig-border:transparent; --sig-text:#3B2F4A; --sig-chip:rgba(255,255,255,.45);
  --step-bg:var(--sky); --step-text:#2A1F33;
  --gath-bg:#2A1F33; --gath-text:#E6E2F3; --gath-heading:#FFFFFF; --gath-label:#BFD3B4;
  --gath-card:rgba(255,255,255,.04); --gath-border:rgba(185,178,236,.35);
  --gath-btn:#B9B2EC; --gath-btn-text:#2A1F33; --gath-btn-hover:#BFD3B4;
  --contact-bg:var(--sky);
  --form-bg:rgba(255,255,255,.74); --form-border:rgba(42,31,51,.16);
  --input-bg:#FFFFFF; --input-border:rgba(42,31,51,.22); --input-text:#2A1F33; --ring:rgba(185,178,236,.65);
  --footer-bg:#2A1F33; --footer-text:#D9D5EC;
  --focus:#2A1F33;
  --grain-o:.32; --grain-blend:multiply;
  --section-glow:radial-gradient(40% 55% at 0% 0%,rgba(185,178,236,.28),transparent 70%),
                 radial-gradient(35% 50% at 100% 100%,rgba(191,211,180,.3),transparent 70%);
  --card-shadow:0 16px 34px rgba(42,31,51,.08);
  --ok:#2F5B2A; --err:#8A2F3A;
}

/* ============ Dark theme ============ */
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#2A1F33;
  --surface:#3B2F4A;
  --surface-2:#33283F;
  --text:#E6E2F3;
  --heading:#F4F2FB;
  --label:#BFD3B4;
  --line:rgba(185,178,236,.18);
  --accent-line:rgba(185,178,236,.55);
  --btn-bg:#B9B2EC; --btn-text:#2A1F33; --btn-hover:#BFD3B4;
  --outline:rgba(185,178,236,.5);
  --glass:rgba(255,255,255,.07); --glass-hover:rgba(255,255,255,.14); --glass-border:rgba(185,178,236,.4);
  --hero:radial-gradient(55% 75% at 18% 30%,rgba(185,178,236,.34),transparent 70%),
         radial-gradient(50% 70% at 82% 65%,rgba(191,211,180,.26),transparent 70%),
         radial-gradient(40% 50% at 55% 0%,rgba(185,178,236,.18),transparent 70%),
         #2A1F33;
  --hero-title:transparent;
  --nav-bg:rgba(42,31,51,.82);
  --note-bg:rgba(191,211,180,.13);
  --chip-bg:#2A1F33;
  --sig-bg:linear-gradient(160deg,rgba(185,178,236,.16),rgba(191,211,180,.12)),#3B2F4A; --sig-border:rgba(185,178,236,.55); --sig-text:#E6E2F3; --sig-chip:rgba(255,255,255,.08);
  --step-bg:var(--sky); --step-text:#2A1F33;
  --gath-bg:var(--sky); --gath-text:#3B2F4A; --gath-heading:#2A1F33; --gath-label:#3B2F4A;
  --gath-card:rgba(255,255,255,.35); --gath-border:rgba(42,31,51,.2);
  --gath-btn:#2A1F33; --gath-btn-text:#FFFFFF; --gath-btn-hover:#3B2F4A;
  --contact-bg:radial-gradient(55% 70% at 85% 20%,rgba(185,178,236,.28),transparent 70%),
               radial-gradient(50% 60% at 10% 90%,rgba(191,211,180,.22),transparent 70%),
               #2A1F33;
  --form-bg:rgba(59,47,74,.78); --form-border:rgba(185,178,236,.3);
  --input-bg:#2A1F33; --input-border:rgba(185,178,236,.35); --input-text:#F4F2FB; --ring:rgba(191,211,180,.45);
  --footer-bg:#221A2A; --footer-text:#D9D5EC;
  --focus:#BFD3B4;
  --grain-o:.22; --grain-blend:soft-light;
  --section-glow:radial-gradient(40% 55% at 0% 0%,rgba(185,178,236,.16),transparent 70%),
                 radial-gradient(35% 50% at 100% 100%,rgba(191,211,180,.12),transparent 70%);
  --card-shadow:0 16px 34px rgba(0,0,0,.28);
  --ok:#BFD3B4; --err:#F0B7C0;
}

/* ============ Base ============ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-weight:400;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .35s ease,color .35s ease}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-color:var(--accent-line);text-underline-offset:4px}
::selection{background:var(--lavender);color:var(--night)}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.narrow{max-width:720px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--btn-bg);color:var(--btn-text);padding:8px 14px;border-radius:999px;z-index:100}
.skip:focus{left:12px}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}

/* Type roles: Fraunces for display, DM Mono for reading and labels */
.display{font-family:var(--display);font-variation-settings:var(--soft);font-optical-sizing:auto;font-weight:600;font-style:normal;color:var(--heading);line-height:1.08;letter-spacing:-.005em}
.label{font-family:var(--body);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--label)}

/* Texture */
.glow{background:var(--hero)}
.grain{position:relative;isolation:isolate}
.grain::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:var(--grain-o);mix-blend-mode:var(--grain-blend);pointer-events:none;border-radius:inherit;z-index:0}
.grain > *{position:relative;z-index:1}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--btn-bg);color:var(--btn-text);text-decoration:none;font-family:var(--body);font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:14px 24px;border-radius:999px;border:1px solid var(--btn-bg);cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}
.btn:hover{transform:translateY(-1px);background:var(--btn-hover);border-color:var(--btn-hover)}
.btn-glass{background:var(--glass);color:var(--heading);border-color:var(--glass-border);backdrop-filter:blur(6px)}
.btn-glass:hover{background:var(--glass-hover);border-color:var(--glass-border)}
.btn-outline{background:transparent;color:var(--heading);border-color:var(--outline)}
.btn-outline:hover{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg)}
.btn-small{padding:10px 18px;font-size:11.5px}

/* Nav */
.nav{position:sticky;top:0;z-index:50;background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.nav::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--sky);opacity:.9}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.brand{font-family:var(--display);font-variation-settings:var(--soft);font-optical-sizing:auto;font-weight:600;font-size:24px;color:var(--heading);text-decoration:none;white-space:nowrap}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a:not(.btn){text-decoration:none;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.nav-links a:not(.btn):hover{text-decoration:underline;text-decoration-color:var(--lavender);text-decoration-thickness:2px}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.nav-toggle .bar{width:22px;height:1.5px;background:var(--heading);transition:transform .2s}

/* Theme switch */
.theme-toggle{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--glass);color:var(--heading);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s,border-color .2s}
.theme-toggle:hover{background:var(--glass-hover);border-color:var(--accent-line);transform:rotate(-12deg)}
.theme-toggle svg{width:20px;height:20px}
.theme-toggle .sun{display:none}
:root[data-theme="dark"] .theme-toggle .sun{display:block}
:root[data-theme="dark"] .theme-toggle .moon{display:none}

/* Hero */
.hero{min-height:calc(88vh - 68px);display:flex;align-items:center;text-align:center;padding:96px 0}
.hero-inner{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%}
.hero-title{line-height:0;width:100%;align-self:stretch;display:flex;justify-content:center}

.hero-lead{max-width:520px;font-size:16px;color:var(--text)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px}

/* Sections */
.section{padding:104px 0}
.sec-head{max-width:640px;margin-bottom:44px}
.sec-head .label{margin-bottom:12px;display:inline-flex;align-items:center;gap:10px}
.sec-head .label::before{content:"";width:22px;height:8px;border-radius:999px;background:var(--sky)}
.sec-head h2{font-size:clamp(38px,5.4vw,60px);margin-bottom:14px}
.sec-head-row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.sec-head-row h2{margin-bottom:0}

/* Soft brand glow behind the readings and journal sections */
#services,#journal{background:var(--section-glow)}

/* Services */
.service::before{content:"";position:absolute;left:28px;right:28px;top:0;height:3px;border-radius:0 0 999px 999px;background:var(--sky);opacity:.95}
.service-signature::before{display:none}
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.service{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:14px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.service:hover{transform:translateY(-3px);box-shadow:var(--card-shadow);border-color:var(--accent-line)}
.service h3{font-size:clamp(28px,3.2vw,36px)}
.service .tags{opacity:.85}
.meta{display:flex;flex-wrap:wrap;gap:8px}
.meta span{font-size:12px;padding:5px 12px;border-radius:999px;background:var(--chip-bg);border:1px solid var(--line)}
.meta span:first-child{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg);font-weight:500}
.includes{border-top:1px solid var(--line);padding-top:12px}
.includes summary{cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;list-style:none;display:flex;justify-content:space-between;align-items:center;color:var(--heading)}
.includes summary::-webkit-details-marker{display:none}
.includes summary::after{content:"+";font-family:var(--display);font-size:22px;font-weight:400;line-height:1;transition:transform .2s}
.includes[open] summary::after{transform:rotate(45deg)}
.includes ul{margin:12px 0 0 18px;display:grid;gap:6px}
.includes li::marker{color:var(--lavender)}
.includes .best{margin-top:12px}
.includes .best strong{font-weight:500;color:var(--heading)}
.note{font-size:13px;background:var(--note-bg);border-radius:14px;padding:12px 14px}
.service .book{margin-top:auto;align-self:flex-start}
.service-signature{background:var(--sig-bg);border-color:var(--sig-border);color:var(--sig-text)}
.service-signature .meta span:not(:first-child){background:var(--sig-chip)}
.service-signature .note{background:var(--sig-chip)}
.pill{position:absolute;top:22px;right:22px;background:var(--btn-bg);color:var(--btn-text);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:5px 11px;border-radius:999px}

/* Steps */
.steps-wrap{padding-top:0}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.steps li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.step-n{display:inline-flex;width:46px;height:46px;border-radius:50%;background:var(--step-bg);color:var(--step-text);align-items:center;justify-content:center;font-size:21px;margin-bottom:16px}
.steps h3{font-size:24px;margin-bottom:8px}

/* About */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.about-card{aspect-ratio:4/5;border-radius:var(--radius);display:flex;align-items:flex-end;padding:28px;background:var(--sky)}
.about-mark{font-size:clamp(56px,7vw,92px);font-style:italic;font-weight:500;color:#2A1F33}
.about .label{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px}
.contact-intro > .label::before,.page-head .label::before{content:"";width:22px;height:8px;border-radius:999px;background:var(--sky)}
.page-head .label{display:inline-flex;align-items:center;gap:10px}
.about .label::before{content:"";width:22px;height:8px;border-radius:999px;background:var(--sky)}
.about h2{font-size:clamp(38px,5vw,58px);margin-bottom:18px}
.about p + p{margin-top:14px}

/* Gatherings */
.gatherings{background:var(--gath-bg);color:var(--gath-text)}
.gatherings .display{color:var(--gath-heading)}
.gatherings .label{color:var(--gath-label)}
.events{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.event{border:1px solid var(--gath-border);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;gap:12px;background:var(--gath-card)}
.event h3{font-size:30px}
.event .btn{align-self:flex-start;margin-top:6px;background:var(--gath-btn);color:var(--gath-btn-text);border-color:var(--gath-btn)}
.event .btn:hover{background:var(--gath-btn-hover);border-color:var(--gath-btn-hover)}

/* Journal teaser + archive */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post-card,.archive-item{display:flex;flex-direction:column;gap:10px;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:transform .25s,box-shadow .25s,border-color .25s}
.post-card:hover,.archive-item:hover{transform:translateY(-3px);box-shadow:var(--card-shadow);border-color:var(--accent-line)}
.post-card h3{font-size:26px}
.more{margin-top:auto;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--heading)}
.page-head{padding:96px 0 80px}
.page-head h1{font-size:clamp(46px,8vw,96px);margin:10px 0 14px}
.lead{max-width:560px;font-size:16px}
.archive{list-style:none;display:grid;gap:16px;max-width:820px}
.archive-item h2{font-size:clamp(28px,3.6vw,38px)}

/* Post */
.post-head{padding:84px 0 64px}
.post-head h1{font-size:clamp(40px,7vw,78px);margin:18px 0 12px}
.back{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.back:hover{text-decoration:underline}
.post-body{padding-top:56px;font-size:16px;line-height:1.85}
.post-body > * + *{margin-top:1.1em}
.post-body h2,.post-body h3{font-family:var(--display);font-variation-settings:var(--soft);font-optical-sizing:auto;font-weight:600;color:var(--heading);line-height:1.15}
.post-body h2{font-size:32px;margin-top:1.6em}
.post-body h3{font-size:24px;margin-top:1.4em}
.post-body strong{font-weight:500;color:var(--heading)}
.post-body ul,.post-body ol{padding-left:22px}
.post-body li + li{margin-top:6px}
.post-body li::marker{color:var(--lavender)}
.post-body blockquote{font-family:var(--display);font-variation-settings:var(--soft);font-style:italic;font-weight:500;font-size:24px;line-height:1.35;color:var(--heading);border-left:3px solid var(--lavender);padding-left:20px}
.post-body img{border-radius:16px}
.post-foot{padding:48px 0 104px}
.post-foot p{border-top:1px solid var(--line);padding-top:24px}

/* Contact */
.contact-wrap{background:var(--contact-bg)}
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start}
.contact-intro > .label{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px}
.contact-intro h2{font-size:clamp(38px,5vw,58px);margin-bottom:14px}
.channels{display:grid;gap:12px;margin-top:28px}
.channel{display:flex;flex-direction:column;gap:2px;text-decoration:none;background:var(--glass);border:1px solid var(--glass-border);border-radius:18px;padding:16px 20px;transition:background .2s,transform .2s}
.channel:hover{background:var(--glass-hover);transform:translateX(3px)}
.channel span:last-child{color:var(--heading)}
.form{background:var(--form-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--form-border);border-radius:var(--radius);padding:32px;display:grid;gap:18px}
.form label{display:grid;gap:7px;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--heading)}
.form input,.form select,.form textarea{font-family:var(--body);font-size:15px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--input-text);background:var(--input-bg);border:1px solid var(--input-border);border-radius:14px;padding:12px 14px;width:100%}
.form ::placeholder{color:var(--text);opacity:.6}
.form textarea{resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--ring)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row.three{grid-template-columns:1fr 1fr 1.3fr}
.birth[hidden]{display:none}
.birth{border:1px dashed var(--input-border);border-radius:16px;padding:16px;display:grid;gap:10px}
.birth legend{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:0 6px;color:var(--heading)}
.hint{font-size:12.5px;opacity:.85}
.hp{position:absolute;left:-9999px}
.form .btn{justify-self:start}
.form-status{font-size:14px;min-height:1.4em}
.form-status.ok{color:var(--ok)}
.form-status.err{color:var(--err)}

/* Footer */
.footer{background:var(--footer-bg);color:var(--footer-text);padding:64px 0 28px;position:relative}
.footer::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--sky)}
.footer-inner{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
.brand-foot{color:#FFFFFF;font-size:30px}
.foot-note{max-width:440px;font-size:12.5px;margin-top:12px;opacity:.85}
.foot-links{display:grid;gap:10px;font-size:13px}
.foot-links a{text-decoration:none}
.foot-links a:hover{text-decoration:underline;text-decoration-color:var(--lavender)}
.foot-base{margin-top:40px;padding-top:20px;border-top:1px solid rgba(185,178,236,.2);font-size:12px;opacity:.75}

/* Responsive */
@media (max-width:900px){
  .services,.events,.posts,.steps{grid-template-columns:1fr}
  .about,.contact{grid-template-columns:1fr;gap:32px}
  .about-card{aspect-ratio:16/9}
  .section{padding:80px 0}
}
@media (max-width:760px){
  .nav-toggle{display:flex}
  .nav-right{gap:6px}
  .nav-links{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 24px 20px;display:none}
  .nav-links.open{display:flex}
  .nav-links a:not(.btn){padding:14px 0;width:100%;border-bottom:1px solid var(--line)}
  .nav-links .btn{margin-top:16px}
  .nav-toggle[aria-expanded="true"] .bar:first-of-type{transform:translateY(3.75px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] .bar:last-of-type{transform:translateY(-3.75px) rotate(-45deg)}
}
@media (max-width:560px){
  .wrap{padding:0 16px}
  .nav-links{padding:8px 16px 20px}
  .row,.row.three{grid-template-columns:1fr}
  .service,.form{padding:24px}
  .hero{padding:72px 0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}

/* ============ Logo (Moonbloom wordmark) ============ */
.logo{display:block;height:auto;overflow:visible}
.logo .lt{fill:var(--heading)}
.logo .on-dark{display:none}
:root[data-theme="dark"] .logo .on-light{display:none}
:root[data-theme="dark"] .logo .on-dark{display:inline}
.force-dark .logo .lt{fill:#F4F2FB}
.force-dark .logo .on-light{display:none}
.force-dark .logo .on-dark{display:inline}
.brand{display:inline-flex;align-items:center}
.brand .logo{height:30px;width:auto}
.brand-foot .logo{height:40px}
.logo-hero{width:min(100%,820px)}
:root[data-theme="dark"] .logo-hero .lt{fill:url(#kollgsky)}

/* Pricing note */
.pricing-note{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 20px;margin:-16px 0 28px;max-width:760px;position:relative;overflow:hidden}
.pricing-note::before{content:"";flex:none;width:10px;align-self:stretch;border-radius:999px;background:var(--sky)}
.pricing-note strong{font-weight:500;color:var(--heading)}
.pricing-note a{color:var(--heading);text-decoration-thickness:2px}

/* About closing line */
.about-close{font-family:var(--display);font-variation-settings:var(--soft);font-optical-sizing:auto;font-style:italic;font-weight:500;font-size:22px;line-height:1.4;color:var(--heading)}

/* Featured event */
.feature-event{display:grid;grid-template-columns:150px 1fr;gap:32px;border:1px solid var(--gath-border);border-radius:var(--radius);padding:36px;background:var(--gath-card)}
.date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;aspect-ratio:1;border-radius:22px;background:var(--sky);color:#2A1F33;text-align:center;align-self:start}
.db-month,.db-week{font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.db-day{font-size:58px;line-height:1;color:#2A1F33}
.fe-body{display:grid;gap:16px}
.fe-body h3{font-size:clamp(30px,3.8vw,44px)}
.fe-body .label a{color:inherit}
.fe-hosts{font-family:var(--display);font-variation-settings:var(--soft);font-style:italic;font-weight:500;font-size:20px;color:var(--gath-heading);margin-top:-8px}
.fe-facts{list-style:none;display:grid;gap:8px}
.fe-facts li{display:grid;grid-template-columns:70px 1fr;gap:12px;align-items:baseline}
.fe-facts a{color:inherit}
.fe-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;border-top:1px solid var(--gath-border);padding-top:18px}
.fe-cols .label{display:block;margin-bottom:8px}
.fe-list{padding-left:18px;display:grid;gap:6px}
.fe-list li::marker{color:var(--lavender)}
.fe-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.fe-cta .btn{background:var(--gath-btn);color:var(--gath-btn-text);border-color:var(--gath-btn)}
.fe-cta .btn:hover{background:var(--gath-btn-hover);border-color:var(--gath-btn-hover)}
.fe-cta .btn-ghost{background:transparent;color:var(--gath-heading);border-color:var(--gath-border)}
.fe-cta .btn-ghost:hover{background:var(--gath-card);color:var(--gath-heading);border-color:var(--gath-heading)}

@media (max-width:900px){
  .feature-event{grid-template-columns:1fr;padding:26px;gap:20px}
  .date-badge{flex-direction:row;aspect-ratio:auto;padding:12px 18px;gap:12px;justify-self:start}
  .db-day{font-size:34px}
  .fe-cols{grid-template-columns:1fr}
}
@media (max-width:560px){
  .brand .logo{height:26px}
  .pricing-note{margin-top:-12px}
  .fe-facts li{grid-template-columns:1fr;gap:2px}
}
