@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 700;font-display:swap;size-adjust:97%;src:url(fonts/cormorant-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 700;font-display:swap;size-adjust:97%;src:url(fonts/cormorant-latin.woff2?v=2) format('woff2');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+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-latin.woff2?v=2) format('woff2');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+FEFF,U+FFFD}
:root{--bg-deep:#A0624E;--gold:#D4A843;--text:#1E0F08;--parch:#EDE4D5;--hd:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,sans-serif;--r-xl:20px;--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg-deep);color:var(--text);font:400 1.06rem/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}
.bg-waves{position:fixed;inset:0;z-index:-1;overflow:hidden;background:var(--bg-deep)}
.hdr{position:fixed;top:12px;left:50%;transform:translateX(-50%);width:calc(100vw - 32px);max-width:none;z-index:200;background:rgba(44,26,14,.82);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,240,220,.12);border-radius:var(--r-xl)}
.hdr__row{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 24px}
.hdr__burger{display:none}.hdr__cross{display:inline-block;width:1.3em;height:1.3em;font-size:1.35rem;color:var(--gold);background:currentColor;-webkit-mask:url(img/chrism-mask.png?v=1) center/contain no-repeat;mask:url(img/chrism-mask.png?v=1) center/contain no-repeat;vertical-align:-0.28em}.hdr__cross svg{display:none!important}.hdr__name{font:600 .95rem/1 var(--hd);color:var(--parch);letter-spacing:2px;text-transform:uppercase}.hdr__nav{display:flex;gap:24px}.hdr__nav a{font:.8rem/1 var(--sans);font-weight:500;color:rgba(237,228,213,.78);text-transform:uppercase;letter-spacing:.5px}
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.page-hero{padding:120px 0 56px;background:linear-gradient(180deg,rgba(44,26,14,.98),var(--bg-deep));text-align:center;position:relative;overflow:hidden}
.page-hero__title{color:#fff}.page-hero__tag{color:#EDE4D5}.page-hero__sub{color:#FFE1A8}
/* Reveal-on-scroll initial state in critical (render-blocking) CSS so above-the-fold sections do not flash visible then hide when the async sheet lands. reveal.js adds .revealed; reduced-motion + no-JS stay visible. */
.reveal{opacity:0;transform:translateY(32px)}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
.cal__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;margin-bottom:1px}
.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(128px,auto);gap:2px}
@media(max-width:960px){.cal__weekdays{display:none}.cal__grid{display:flex;flex-direction:column;gap:6px}}
