:root{color-scheme:dark;--black:#080709;--paper:#eee6eb;--muted:#d5c8d2;--pink:#d578ba;--gold:#c8a67a;--border:#624457;--serif:'Cormorant Garamond',Georgia,serif;--display:'Cinzel',Georgia,serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--paper);font-family:var(--serif);font-size:1.35rem;line-height:1.25}
a{color:inherit;text-decoration:none}
a:hover{color:#f1a6da}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid #ed9dd5;outline-offset:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;z-index:99;top:-60px;left:1rem;background:#201020;padding:.5rem 1rem}
.skip-link:focus{top:1rem}
.site-header{height:74px;background:#070608;border-bottom:1px solid #6a513c;display:flex;align-items:center;gap:2.5rem;padding:0 clamp(24px,4vw,65px);position:relative;z-index:10}
.wordmark{font-family:var(--display);font-size:1.18rem;white-space:nowrap;letter-spacing:.05em;position:relative;line-height:1.15}
.wordmark-rule{display:block;text-align:center;color:#e8c39b;font-size:.8rem;height:14px;line-height:14px;margin-top:5px;border-top:1px solid var(--gold)}
.desktop-nav{display:flex;justify-content:center;align-items:center;gap:clamp(15px,2.4vw,32px);flex:1;white-space:nowrap}
.desktop-nav a,.mobile-menu a{font-family:var(--display);font-size:.79rem;letter-spacing:.035em;text-transform:uppercase;padding:10px 0}
.desktop-nav a[aria-current="page"]{color:var(--pink);border-bottom:1px solid var(--pink)}
.header-symbols{display:flex;gap:2rem;color:#f1cf9f;align-items:center;font-size:1.7rem}
.header-symbols span:last-child{font-size:2.4rem}
.mobile-menu{display:none}
main{overflow:hidden}
h1,h2,h3,p,blockquote{margin-top:0}
h1{font-family:var(--display);font-size:clamp(3.5rem,6.6vw,5.3rem);font-weight:400;line-height:1.15;text-transform:uppercase;letter-spacing:.055em;margin:0}
.page-intro{text-align:center;padding:65px 24px 30px}
.star-divider{display:flex;align-items:center;gap:12px;justify-content:center;color:#f5d6ae;font-size:1.7rem;margin:12px auto 20px;max-width:340px;line-height:1}
.star-divider:before,.star-divider:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold))}
.star-divider:after{transform:rotate(180deg)}
.eyebrow{font-family:var(--display);font-size:1.12rem;color:var(--pink);letter-spacing:.29em;text-transform:uppercase;margin:22px 0 24px}
.intro-copy{font-size:clamp(1.48rem,2.15vw,1.9rem);line-height:1.2;color:var(--paper)}
.art-crop{display:block;width:100%;height:100%}
.home-hero img{display:block;width:100%;height:auto}
.outline-button{min-width:220px;display:inline-flex;align-items:center;justify-content:center;gap:1.8rem;border:1px solid var(--gold);padding:13px 30px;color:var(--paper);font-family:var(--display);font-size:1rem;letter-spacing:.1em;text-transform:uppercase;background:rgba(0,0,0,.3);transition:background .2s,box-shadow .2s}
.outline-button:hover{color:white;background:#341a2c;box-shadow:0 0 22px #75315d66}
.outline-button span{color:#f6cf99}
.reading-grid{max-width:1180px;margin:0 auto;padding:15px clamp(25px,4.6vw,60px) 25px;display:grid;grid-template-columns:repeat(4,1fr);gap:21px}
.reading-card{min-width:0;border:1px solid var(--border);background:linear-gradient(#130c14,#050405 65%);text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .2s,border-color .2s}
.reading-card:hover{transform:translateY(-5px);border-color:var(--pink);color:var(--paper)}
.reading-art{width:100%;height:195px;overflow:hidden;background:#170d19}
.reading-card-image{display:block;width:100%;height:100%;object-fit:cover}
.reading-card h2{font:400 1.22rem/1.25 var(--display);letter-spacing:.13em;text-transform:uppercase;margin:11px 8px 8px;min-height:3.1rem}
.reading-card p{font-size:1.43rem;line-height:1.08;padding:0 9px;margin:3px auto 18px;flex:1}
.pink-rule{display:block;width:62px;height:2px;background:var(--pink);margin:0 auto 28px}
.reading-details{max-width:1100px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:10px auto 45px;padding:0 clamp(25px,4.6vw,60px)}
.reading-detail{background:linear-gradient(125deg,#1b111b,#090709 75%);border:1px solid #54394b;padding:25px 28px;scroll-margin-top:20px}
.reading-detail:target{border-color:var(--pink);box-shadow:0 0 22px #ad4c8840}
.reading-detail h3{font:400 1.15rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--pink);margin-bottom:12px}
.reading-detail p{font-size:1.4rem;line-height:1.2;margin-bottom:18px}
.reading-detail a{display:inline-block;color:#eed4ba;font:400 .78rem var(--display);letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:5px}
.reading-detail a:hover{color:var(--pink)}
.reading-scene{text-align:center;padding-top:15px}
.reading-scene blockquote,.about-quote blockquote,.connect-panel blockquote{font-size:2rem;font-style:italic;color:#e8d0ae;margin:15px 12px 0}
.reading-scene .star-divider{margin-bottom:0}
.reading-scene .art-crop{height:auto;aspect-ratio:1088/350;max-height:350px;object-fit:cover}
.about-grid{max-width:1350px;margin:auto;display:grid;grid-template-columns:1.28fr .82fr;gap:clamp(35px,5vw,75px);padding:65px clamp(28px,4vw,60px) 70px;background:radial-gradient(circle at 99% 50%,#36112470,transparent 40%),#100e11}
.about-photo{height:min(78vw,900px);max-height:900px;border:1px solid var(--gold);padding:6px;box-shadow:0 0 55px #66223c28;background:#0d080c}
.about-photo .art-crop{object-fit:cover}
.about-copy{padding-top:10px}
.small-moon{text-align:center;color:#cda186;font-size:2.3rem;margin-bottom:12px}
.about-copy h1{font-size:clamp(3.5rem,6vw,5.2rem);text-align:center;margin-bottom:28px}
.about-copy h2{font:400 clamp(1.7rem,2.5vw,2.25rem)/1.05 var(--serif);letter-spacing:.035em;color:var(--pink);margin:0 0 8px}
.about-brand{font-family:var(--display);font-size:1.13rem;letter-spacing:.12em;margin-bottom:22px}
.about-copy p:not(.about-brand){font-size:clamp(1.36rem,1.85vw,1.7rem);line-height:1.15;margin-bottom:25px}
.jack-intro{padding:45px clamp(22px,4vw,60px);background:radial-gradient(ellipse at 80% 50%,#4b1c3c55,transparent 55%),#120d13;border-top:1px solid #493449;border-bottom:1px solid #493449}
.jack-intro-inner{max-width:1120px;margin:auto;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(25px,4vw,60px);align-items:center}
.jack-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.jack-photos img{display:block;width:100%;height:clamp(240px,29vw,360px);object-fit:cover;object-position:center 24%;border:1px solid var(--gold);padding:4px;background:#0b080c}
.jack-photos img:first-child{object-position:center 16%}
.jack-kicker{font:400 .75rem var(--display);letter-spacing:.19em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.jack-intro h2{font:400 clamp(1.8rem,3vw,2.5rem) var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--pink);margin-bottom:12px}
.jack-intro p:last-child{font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.25;max-width:780px;margin-bottom:0}
.gallery-section{background:radial-gradient(ellipse at 48% 0%,#31152955,transparent 50%),#090709;padding:65px clamp(22px,4vw,60px) 75px}
.gallery-heading{text-align:center;margin:0 auto 33px}
.gallery-heading h2{font:400 clamp(2rem,3.4vw,3.25rem)/1.2 var(--display);letter-spacing:.08em;text-transform:uppercase;margin-bottom:0}
.gallery-heading .star-divider{max-width:260px;margin:16px auto}
.gallery-grid{max-width:1250px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(180px,19vw,245px);grid-auto-flow:dense;gap:14px}
.gallery-tile{position:relative;min-width:0;min-height:0;margin:0;background:#130d16;border:1px solid #56384e;overflow:hidden}
.gallery-tile--feature{grid-column:span 2;grid-row:span 2}
.gallery-tile--portrait{grid-row:span 2}
.gallery-tile a{display:block;width:100%;height:100%}
.gallery-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.gallery-tile:hover img{transform:scale(1.025)}
.gallery-tile figcaption{position:absolute;bottom:0;left:0;right:0;padding:28px 14px 10px;background:linear-gradient(transparent,#090609e6);font:400 .76rem var(--display);letter-spacing:.08em;text-transform:uppercase;pointer-events:none}
.gallery-tile--brand a{display:grid;place-items:center;background:radial-gradient(circle,#401e35,#0c090d 78%)}
.gallery-tile--brand img{width:min(75%,190px);height:auto;aspect-ratio:1;object-fit:contain;border-radius:50%}
.about-quote{min-height:290px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 50% 100%,#36132866,transparent 60%),radial-gradient(ellipse at 0% 100%,#722a446b,transparent 35%),#100d10;text-align:center}
.about-quote blockquote{font-size:2.25rem;color:#fff}
.blog-intro{background:radial-gradient(ellipse at 0% 50%,#35112ba6,transparent 35%),radial-gradient(ellipse at 100% 50%,#35112ba6,transparent 35%);padding-bottom:18px}
.blog-intro h1{font-size:clamp(2.6rem,5.7vw,5rem)}
.blog-intro .eyebrow{font-size:1rem;letter-spacing:.18em;margin-top:14px;margin-bottom:10px}
.blog-intro .intro-copy{margin-bottom:0}
.post-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:15px clamp(25px,3.5vw,55px)}
.post-card{border:1px solid #542b40;background:#060506;min-width:0}
.post-link{display:block;height:100%}
.post-link:hover{color:var(--paper)}
.post-link:hover h2,.post-link:hover .read-post{color:#f1a6da}
.post-art{height:clamp(265px,35vw,450px);overflow:hidden}
.post-image{display:block;width:100%;height:100%;object-fit:cover}
.post-image--dancer{object-position:50% 48%}
.post-image--reflection{object-position:50% 46%}
.post-image--preparing{object-position:50% 52%;transform:scale(1.04)}
.post-content{padding:15px 16px 24px}
.post-content time{font-family:var(--display);font-size:.83rem;color:var(--pink);letter-spacing:.08em}
.post-content h2{font:400 clamp(1.5rem,2.35vw,2rem)/1.07 var(--serif);margin:10px 0 8px;min-height:2.2em}
.mini-divider{display:flex;align-items:center;gap:10px;color:#f2d5a9;font-size:1rem}
.mini-divider:before,.mini-divider:after{content:"";height:1px;background:#ab8d6a;flex:1}
.post-content p{font-size:clamp(1.2rem,1.8vw,1.53rem);line-height:1.13;margin:14px 0 0}
.read-post{display:inline-block;margin-top:20px;color:var(--pink);font:500 .76rem var(--display);letter-spacing:.1em;text-transform:uppercase}
.posts-note{text-align:center;font-family:var(--display);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--gold);width:max-content;max-width:90%;padding:12px 36px;margin:18px auto 0}
.full-post{max-width:850px;margin:0 auto;padding:45px 28px 80px}
.back-to-blog,.full-post-signature a{font:500 .8rem var(--display);color:var(--pink);letter-spacing:.05em}
.full-post-header{text-align:center;padding:42px 0 24px}
.full-post-header .eyebrow{font-size:.8rem;margin:0 0 20px}
.full-post-header h1{font-size:clamp(2.4rem,6vw,4.5rem)}
.full-post-header time{font:400 .82rem var(--display);color:var(--muted);letter-spacing:.09em}
.full-post-body{font-size:clamp(1.38rem,2.5vw,1.62rem);line-height:1.5}
.full-post-body p{margin:0 0 1.4em}
.full-post-image{margin:10px 0 42px}
.full-post-image img{display:block;width:100%;border:1px solid var(--border)}
.full-post-image--hero img{aspect-ratio:3/2;object-fit:cover}
.rituals-rose-cover{overflow:hidden}
.rituals-rose-cover img{transform:scale(1.12);object-position:center 44%}
.tarot-reflection-cover img{object-position:center 48%}
.full-post-image--portrait{max-width:560px;margin:10px auto 42px}
.full-post-image--portrait img{aspect-ratio:4/5;object-fit:cover}
.full-post-image figcaption{text-align:center;color:var(--muted);font-size:1.05rem;font-style:italic;margin-top:10px}
.ritual-wheel img{aspect-ratio:1/1;object-fit:contain;object-position:center;background:#09070b}
.ritual-ideas{margin:28px 0 38px;padding-left:1.35em}
.ritual-ideas li{font-size:clamp(1.3rem,2.3vw,1.55rem);line-height:1.45;margin-bottom:1em;padding-left:.25em}
.ritual-ideas li::marker{color:var(--pink)}
.download-panel{text-align:center;margin:48px 0 10px;padding:32px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.download-panel h2{font:500 clamp(1.3rem,3vw,1.8rem) var(--display);color:var(--pink);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.download-panel p{font-size:1.3rem;margin-bottom:24px}
.full-post-signature{border-top:1px solid var(--border);padding-top:24px;margin-top:45px}
.full-post-signature p{font:500 1rem var(--display);letter-spacing:.08em;margin-bottom:18px}
.blog-scene{height:210px;margin-top:40px}
.contact-intro{padding-bottom:10px;background:radial-gradient(ellipse at 0 70%,#3b10354f,transparent 37%),radial-gradient(ellipse at 100% 70%,#3b10354f,transparent 37%)}
.contact-grid{max-width:1230px;margin:10px auto 0;padding:0 clamp(25px,5vw,68px) 25px;display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-panel h2,.connect-panel h2{color:var(--pink);font:500 1.18rem var(--display);letter-spacing:.2em;text-transform:uppercase;margin-bottom:20px}
.contact-panel form{display:flex;flex-direction:column;gap:16px}
.contact-panel input,.contact-panel textarea,.contact-panel select{display:block;width:100%;border:1px solid #644b5e;border-radius:3px;color:var(--paper);background:#080609;padding:11px 17px;font-size:1.35rem;outline:none}
.contact-panel input:focus,.contact-panel textarea:focus,.contact-panel select:focus{border-color:var(--pink)}
.contact-panel input::placeholder,.contact-panel textarea::placeholder{color:#ab98a5}
.contact-panel textarea{resize:vertical;min-height:140px}
.contact-panel button{width:100%;margin-top:12px}
.contact-panel button:disabled{opacity:.6;cursor:wait}
.form-status{margin:0;text-align:center;color:#efb8d6;font-size:1.2rem;line-height:1.2}
.form-status[hidden]{display:none}
.form-status a{text-decoration:underline}
.form-note{font-size:1.05rem;line-height:1.3;color:var(--muted);margin:-4px 0 0}
.connect-panel{border-left:1px solid var(--pink);padding-left:48px}
.connect-panel ul{margin:30px 0 45px;padding:0;list-style:none;display:grid;gap:28px}
.connect-panel li{display:flex;align-items:baseline;gap:25px;font-size:1.5rem;overflow-wrap:anywhere}
.connect-panel li>span:first-child{flex:none;width:42px;color:#ee9dc7;font:1.7rem var(--display);text-align:center}
.connect-panel em{display:block;font-size:1.15rem;margin-top:4px}
.connect-panel blockquote{text-align:center;margin-top:10px}
.contact-scene{height:clamp(160px,27vw,320px);margin-top:35px}
.site-footer{min-height:112px;background:#070608;border-top:1px solid #644d3e;padding:20px clamp(25px,5vw,65px);display:flex;align-items:center;justify-content:space-between;gap:20px}
.footer-brand{font-family:var(--display);font-size:1.05rem;letter-spacing:.04em}
.site-footer small{display:block;font:.67rem var(--display);letter-spacing:.08em;margin-top:10px}
.site-footer b{color:var(--pink);padding:0 7px}
.footer-right{display:flex;gap:22px;font:400 .75rem var(--display);text-transform:uppercase}
.message-page{min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.message-page .outline-button{margin-top:20px}
@media(max-width:1060px){.site-header{gap:1.25rem;padding:0 23px}.wordmark{font-size:.93rem}.desktop-nav{gap:15px}.desktop-nav a{font-size:.66rem}.header-symbols{gap:12px}.reading-grid{gap:12px}.reading-art{height:170px}.reading-card h2{font-size:1rem}.reading-card p{font-size:1.2rem}.about-grid{gap:30px}.connect-panel{padding-left:30px}}
@media(max-width:740px){
 body{font-size:1.22rem}.site-header{height:67px;padding:0 18px;justify-content:space-between}.wordmark{font-size:.94rem}.header-symbols,.desktop-nav{display:none}
 .mobile-menu{display:block;position:relative;font: .76rem var(--display);text-transform:uppercase;letter-spacing:.12em}
 .mobile-menu summary{cursor:pointer;list-style:none;padding:12px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{margin-left:5px;color:var(--pink)}
 .mobile-menu nav{position:absolute;right:-18px;top:43px;width:min(85vw,300px);display:flex;flex-direction:column;padding:12px 25px;background:#0e090e;border:1px solid #67435b;box-shadow:0 14px 25px #000}
 .mobile-menu a{font-size:.78rem;padding:12px 4px;border-bottom:1px solid #463042}
 .page-intro{padding:55px 19px 18px}h1{font-size:clamp(2.8rem,10vw,4rem)}.eyebrow{font-size:.84rem;letter-spacing:.19em;margin:16px 0}.intro-copy{font-size:1.4rem}.wide-only{display:none}
 .home-hero{min-height:calc(100vh - 67px);min-height:calc(100svh - 67px);position:relative;background:#170c23}.home-hero img{width:100%;height:calc(100vh - 67px);height:calc(100svh - 67px);object-fit:cover;object-position:center}
 .reading-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:20px 16px}.reading-art{height:155px}.reading-card h2{font-size:.9rem;min-height:2.7rem;margin:9px 4px}.reading-card p{font-size:1.15rem}.pink-rule{margin-bottom:18px}
 .reading-details{grid-template-columns:1fr;gap:12px;padding:0 20px;margin:8px auto 30px}.reading-detail{padding:20px}.reading-detail p{font-size:1.26rem}.reading-scene blockquote{font-size:1.45rem}.reading-scene .art-crop{min-height:165px}
 .about-grid{grid-template-columns:1fr;padding:22px 20px 45px;gap:25px}.about-photo{height:88vw;max-height:570px}.about-copy{padding:0}.about-copy h1{text-align:left;font-size:3.2rem;margin-bottom:15px}.small-moon{display:none}.about-copy h2{font-size:1.9rem}.about-copy p:not(.about-brand){font-size:1.35rem}.jack-intro{padding:38px 24px}.jack-intro-inner{grid-template-columns:1fr;gap:26px}.jack-photos img{height:clamp(240px,62vw,360px)}.gallery-section{padding:48px 18px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px;gap:9px}.gallery-tile--feature{grid-column:span 2;grid-row:span 2}.gallery-tile--portrait{grid-row:span 2}.gallery-tile figcaption{font-size:.64rem}.about-quote{min-height:200px}
 .blog-intro h1{font-size:2.8rem}.blog-intro .eyebrow{line-height:1.5;font-size:.8rem}.post-grid{grid-template-columns:1fr;max-width:520px;padding:15px 20px}.post-art{height:340px}.post-content h2{min-height:0;font-size:1.85rem}.post-content p{font-size:1.35rem}.blog-scene{height:160px;margin-top:28px}
 .contact-grid{grid-template-columns:1fr;gap:20px;margin-top:16px;padding:0 22px}.connect-panel{border-left:0;border-top:1px solid var(--pink);padding:30px 0 0}.connect-panel ul{gap:18px;margin:25px 0}.connect-panel li{font-size:1.25rem;gap:12px}.contact-scene{height:185px}
 .site-footer{flex-direction:column;align-items:flex-start;min-height:120px;gap:18px}.footer-right{gap:18px}.message-page{min-height:70vh}
}
@media(max-width:500px){.gallery-grid{grid-template-columns:1fr;grid-auto-rows:260px}.gallery-tile--feature{grid-column:auto;grid-row:auto}.gallery-tile--portrait{grid-row:span 2}.gallery-tile--brand img{width:min(70%,230px)}}
@media(max-width:400px){.reading-grid{grid-template-columns:1fr;max-width:310px}.reading-art{height:205px}.reading-card h2{min-height:0}.reading-card p{font-size:1.3rem}.home-hero img{object-position:50% center}.post-art{height:300px}.footer-right{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading-card,.outline-button{transition:none}}

@media(max-width:760px){.reading-card .mobile-phrase{white-space:nowrap}.reading-card .mobile-break{display:block}}

.privacy-copy{max-width:760px;margin:0 auto;padding:0 24px 60px;font-size:1.2rem;line-height:1.55}.privacy-copy h2{font-family:var(--display);font-size:1.1rem;color:var(--pink);margin-top:2rem}.privacy-copy a,.form-note a{text-decoration:underline;text-underline-offset:3px}

.photo-carousel{max-width:960px;margin:0 auto;padding:0 20px 35px}.carousel-slide{margin:0}.carousel-slide[hidden]{display:none}.carousel-slide img{display:block;width:100%;height:clamp(280px,60vw,620px);object-fit:contain;background:#080709}.carousel-slide figcaption{text-align:center;color:var(--muted);margin-top:14px}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:22px}.carousel-controls .outline-button{padding:10px 18px;font-size:1rem}.carousel-counter{white-space:nowrap;font-size:1rem}@media(max-width:400px){.carousel-controls{gap:12px}.carousel-controls .outline-button{padding:10px 12px}}

.jack-photos{grid-template-columns:1fr;max-width:380px;width:100%;margin-inline:auto}.jack-photos img:first-child{object-position:center 24%}.about-membership{max-width:900px;margin:0 auto;padding:35px 24px;text-align:center}.about-membership h2{font:500 1.2rem var(--display);color:var(--pink);letter-spacing:.08em}.about-membership p{font-size:1.25rem;line-height:1.5}

.about-membership h3{font:500 1.1rem var(--display);color:var(--pink);margin-top:30px}.certificate-list{list-style:none;padding:0;margin:16px 0 0;font-size:1.25rem;line-height:1.6}.certificate-list li{margin:7px 0}
