/* Bitter Saints — shared design system (gothic-luxe, cinematic) */
@import url("https://fonts.googleapis.com/css2?family=EB+Garamond:ital@0;1&family=UnifrakturMaguntia&display=swap");

/* bespoke house typeface — Bitter Saints Display (custom-drawn, compiled) */
@font-face{font-family:'Bitter Saints Display';src:url('data:font/woff;base64,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') format('woff'),url('BitterSaintsDisplay.ttf') format('truetype');font-display:swap}
/* THE HOUSE VOICE — the custom typeface DOMINATES: headings, wordmark, nav, labels,
   buttons, meta, countdown, fine print. Only running body copy (Inter) and the one
   italic whisper (Garamond) stay different, by design. */
h1, h2, h3, h4, .display, .wm, .pl-word, .pl-sub,
nav a, .nav .brand, .nav .links a,
.kicker, .btn, .foot .meta, .meta, .cr,
.marquee span, .count b, .count span, .fine, .idx, .ed, .edition .top,
.ship, .sizes button, .seal .ch, .seal .st, .seal .nm, .price, .num, .relic li .c,
.tenets .n, .capture button{
  font-family:'Bitter Saints Display','Grenze Gotisch',serif !important;
  text-transform:uppercase;
}

:root{
  --void:#0a0a0b; --void2:#101012; --void3:#16161a; --bone:#ede8de; --dim:#9d988f;
  --ash:#8a857b; --ox:#7d2020; --oxd:#5a1414; --line:rgba(237,232,222,.12); --line2:rgba(237,232,222,.26);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--bone);font-family:'EB Garamond',serif;font-size:18px;-webkit-font-smoothing:antialiased;line-height:1.75;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
.narrow{max-width:720px;margin:0 auto;padding:0 26px}
.kicker{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.44em;text-transform:uppercase;color:var(--ash)}
.serif-it{font-family:'EB Garamond',serif;font-style:italic}
.display{font-family:'Grenze Gotisch',serif;font-weight:500;line-height:.92}
.cr{color:var(--ox);font-family:'Cinzel',serif;vertical-align:.28em;margin:0 .1em}

/* atmosphere */
.vignette{position:fixed;inset:0;pointer-events:none;z-index:2;background:radial-gradient(120% 90% at 50% 30%, rgba(0,0,0,0) 42%, rgba(0,0,0,.6) 100%)}
.grain{position:fixed;inset:-50%;pointer-events:none;z-index:3;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 6s steps(5) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-2%)}60%{transform:translate(-2%,4%)}80%{transform:translate(4%,-3%)}100%{transform:translate(0,0)}}

/* nav */
.nav{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:26px 32px}
.nav .brand{font-family:'Grenze Gotisch',serif;font-weight:500;font-size:22px}
.nav .links{display:flex;gap:26px}
.nav .links a{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);transition:color .2s}
.nav .links a:hover{color:var(--bone)}
@media(max-width:640px){.nav .links{display:none}}

/* reveal */
.rise{opacity:0;transform:translateY(22px);transition:opacity 1.3s cubic-bezier(.2,.7,.2,1),transform 1.3s cubic-bezier(.2,.7,.2,1)}
.rise.in{opacity:1;transform:none}

/* buttons */
.btn{display:inline-block;border:1px solid var(--line2);border-radius:40px;padding:15px 36px;font-family:'Cinzel',serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone);cursor:pointer;transition:all .3s;background:transparent}
.btn:hover{border-color:var(--bone);background:var(--bone);color:var(--void)}
.btn.solid{background:var(--bone);color:var(--void);border-color:var(--bone)}
.btn.solid:hover{background:transparent;color:var(--bone)}

/* footer */
.foot{position:relative;z-index:1;padding:88px 26px;text-align:center;border-top:1px solid var(--line)}
.foot .liturgy{font-family:'EB Garamond',serif;font-style:italic;font-size:22px;color:var(--dim)}
.foot .meta{font-family:'Cinzel',serif;font-size:10px;letter-spacing:.22em;color:var(--ash);margin-top:24px;text-transform:uppercase}

/* section scaffolding */
section{position:relative;z-index:1}
.divide{border-top:1px solid var(--line)}

/* garment/art frame */
.frame{position:relative;background:radial-gradient(circle at 50% 42%, rgba(122,32,32,.18), rgba(0,0,0,0) 62%),var(--void2);
  border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.frame .heartglow{filter:drop-shadow(0 0 30px rgba(122,32,32,.45))}

/* preloader — the Sacred Heart draws itself, then lifts away */
#preloader{position:fixed;inset:0;z-index:9999;background:var(--void);display:flex;align-items:center;justify-content:center;transition:opacity .9s ease,visibility .9s}
#preloader.done{opacity:0;visibility:hidden}
.pl-inner{display:flex;flex-direction:column;align-items:center;gap:24px}
.pl-heart{width:104px;height:104px;filter:drop-shadow(0 0 34px rgba(122,32,32,.55))}
.pl-heart .draw{fill:transparent;stroke:#ede8de;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:pl-draw 1.4s cubic-bezier(.5,0,.2,1) forwards}
@keyframes pl-draw{to{stroke-dashoffset:0}}
.pl-heart .fillfade{opacity:0;animation:pl-fade 1s ease 1s forwards}
@keyframes pl-fade{to{opacity:1}}
.pl-word{font-family:'Grenze Gotisch',serif;font-weight:500;font-size:28px;color:var(--bone);opacity:0;animation:pl-fade 1s ease 1.15s forwards}
.pl-word .cr{color:var(--ox);font-family:'Cinzel',serif;font-size:.6em;vertical-align:.2em;margin:0 .08em}
.pl-sub{font-family:'Cinzel',serif;font-size:10px;letter-spacing:.42em;color:var(--ash);opacity:0;animation:pl-fade 1s ease 1.45s forwards}

@media(prefers-reduced-motion:reduce){.grain{animation:none}.rise{transition:none;opacity:1;transform:none}
  .pl-heart .draw,.pl-heart .fillfade,.pl-word,.pl-sub{animation:none;opacity:1;stroke-dashoffset:0}}

/* ---- premium enhancements ---- */
/* smooth scroll (Lenis) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* candlelight cursor */
.cursor-glow{position:fixed;top:0;left:0;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;pointer-events:none;z-index:8;
  background:radial-gradient(circle,rgba(150,40,40,.20),rgba(122,32,32,.07) 42%,rgba(0,0,0,0) 70%);
  transform:translate(-9999px,-9999px);mix-blend-mode:screen;transition:opacity .5s}
@media(hover:none){.cursor-glow{display:none}}

/* magnetic buttons */
.btn.magnetic{transition:transform .25s cubic-bezier(.2,.7,.2,1),background .3s,color .3s,border-color .3s}

/* split-text headlines */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;line-height:1.05}
.split .w i{display:inline-block;font-style:inherit;transform:translateY(112%);transition:transform .95s cubic-bezier(.2,.75,.2,1)}
.split.in .w i{transform:none}

/* marquee ribbon */
.marquee{position:relative;z-index:1;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;background:var(--void)}
.marquee .track{display:inline-flex;align-items:center;white-space:nowrap;will-change:transform;animation:marq 28s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font-family:'Cinzel',serif;font-size:13px;letter-spacing:.36em;text-transform:uppercase;color:var(--dim);padding:0 12px}
.marquee .x{color:var(--ox)}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee .track{animation:none}.split .w i{transform:none}.cursor-glow{display:none}}

/* ---- next-level touches ---- */
/* drifting ember particles (behind content) */
#embers{position:fixed;inset:0;z-index:0;pointer-events:none}

/* scroll progress — a thin ember line */
#progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:20;pointer-events:none}
#progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--oxd),var(--ox));box-shadow:0 0 10px rgba(122,32,32,.7)}

/* illuminated blackletter drop cap */
.creed p:first-of-type::first-letter,.manifesto p:first-of-type::first-letter{
  font-family:'UnifrakturMaguntia',serif;font-size:3.6em;line-height:.66;float:left;margin:.04em .14em 0 0;color:var(--ox);text-shadow:0 0 22px rgba(122,32,32,.4)}

/* nav underline wipe */
.nav .links a{position:relative}
.nav .links a::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--bone);transition:right .4s cubic-bezier(.2,.7,.2,1)}
.nav .links a:hover::after{right:0}

/* framed art glows on hover */
.piece .art,.product .art svg{transition:filter .55s ease}
.piece .art:hover{filter:drop-shadow(0 0 30px rgba(122,32,32,.4))}

/* ---- brand soul: the small sacred details ---- */
/* highlighting text feels like the brand */
::selection{background:var(--oxd);color:var(--bone)}
::-moz-selection{background:var(--oxd);color:var(--bone)}
/* a thin, reverent scrollbar */
html{scrollbar-width:thin;scrollbar-color:#2a2a2e var(--void)}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--void)}
::-webkit-scrollbar-thumb{background:#26262a;border-radius:10px;border:2px solid var(--void)}
::-webkit-scrollbar-thumb:hover{background:var(--ox)}
/* keyboard focus in the house colors */
a:focus-visible,button:focus-visible,input:focus-visible{outline:1px solid var(--ox);outline-offset:3px}
/* a wax-seal cross crowns every footer */
footer::before{content:"✝";display:block;font-family:'Cinzel',serif;font-size:15px;color:var(--ox);width:46px;height:46px;line-height:44px;text-align:center;margin:0 auto 28px;border:1px solid var(--line2);border-radius:50%;box-shadow:0 0 22px rgba(122,32,32,.25) inset}
