:root{
  --ink:#0F0E0C; --bone:#EAE4D8; --brass:#A98D5F;
  --brass-40:rgba(169,141,95,.4); --brass-18:rgba(169,141,95,.18);
  --bone-70:rgba(234,228,216,.7); --bone-45:rgba(234,228,216,.45); --bone-30:rgba(234,228,216,.3);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost','Avenir Next','Century Gothic',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scrollbar-color:var(--brass-40) var(--ink)}
html,body{margin:0;padding:0;background:var(--ink);color:var(--bone)}
body{font-family:var(--serif);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
::selection{background:var(--brass);color:var(--ink)}
a{color:inherit}
[hidden]{display:none!important}
img{max-width:100%}
:focus-visible{outline:1px solid var(--brass);outline-offset:4px}

/* ---------- fade-in ---------- */
.fx{opacity:0;transform:translateY(16px);transition:opacity .85s ease,transform .85s ease}
.fx.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .fx{opacity:1;transform:none;transition:none}
  .cue{display:none}
}

/* ---------- ceremonial ---------- */
.cer{min-height:88vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:13vh 24px;position:relative}
.cer.short{min-height:62vh;padding:9vh 24px}
.stanza{font-size:clamp(1.42rem,2.5vw,1.95rem);line-height:1.62;max-width:36ch;margin:0}
.stanza + .stanza{margin-top:2.6em}
.turn .stanza{font-size:clamp(1.7rem,3.1vw,2.45rem);line-height:1.5;max-width:30ch}
.qline{font-size:clamp(1.3rem,2.3vw,1.75rem);color:var(--bone-70);margin:0}
.big{font-weight:400;font-size:clamp(2.7rem,7.4vw,4.9rem);line-height:1.06;margin:.14em 0 0;letter-spacing:.005em}
.lbl{font-family:var(--sans);font-weight:300;font-size:.68rem;letter-spacing:.52em;text-indent:.52em;color:var(--brass);text-transform:uppercase;margin:0 0 2.6rem}
.mark{font-weight:400;letter-spacing:.32em;text-indent:.32em;font-size:clamp(2.1rem,7.2vw,4.4rem);line-height:1.15;margin:0}
.mark.sm{font-size:clamp(1.55rem,4.6vw,2.9rem);letter-spacing:.28em;text-indent:.28em}
.sig{font-family:var(--sans);font-weight:300;font-size:.72rem;letter-spacing:.36em;text-indent:.36em;color:var(--bone-70);margin:2.6rem 0 0}
.small-note{font-family:var(--sans);font-weight:300;font-size:.7rem;letter-spacing:.3em;text-indent:.3em;color:var(--bone-45);margin:2.2rem 0 0}
.orn{width:130px;height:1px;background:linear-gradient(90deg,transparent,var(--brass),transparent);margin:0 auto;position:relative;border:0}
.orn::after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;background:var(--brass);transform:translate(-50%,-50%) rotate(45deg)}
.orn-sec{min-height:0;padding:1.5rem 24px}

/* ---------- atmosphere ---------- */
.art{position:absolute;inset:0;z-index:0;background-repeat:no-repeat;background-position:right center;background-size:auto 116%;opacity:.5;pointer-events:none}
.cer>*{position:relative;z-index:1}
.a-eclipse{background-image:url(/assets/eclipse.jpg)}
.a-stair{background-image:url(/assets/stair.jpg)}
.a-mirror{background-image:url(/assets/mirror.jpg)}
.a-vortex{background-image:url(/assets/vortex.jpg)}
.a-ring{background-image:url(/assets/ring.jpg)}
@media (max-width:760px){
  .art{opacity:.32;background-size:auto 100%;background-position:82% center}
}

/* ---------- CTA ---------- */
.cta{font-family:var(--sans);font-weight:300;font-size:.76rem;letter-spacing:.32em;text-indent:.32em;color:var(--brass);text-decoration:none;display:inline-block;padding:1em 0;background:none;border:0;cursor:pointer;transition:color .4s ease}
.cta:hover{color:var(--bone)}
.cta-row{margin-top:3.4rem}

/* ---------- header ---------- */
header#hd{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:1.15rem clamp(20px,4vw,52px);background:linear-gradient(rgba(15,14,12,.94),rgba(15,14,12,.78) 65%,rgba(15,14,12,0));border-bottom:1px solid transparent}
.hd-mark{font-family:var(--sans);font-weight:300;letter-spacing:.44em;text-indent:.44em;font-size:.7rem;color:var(--bone);text-decoration:none}
.hd-nav{display:flex;gap:2.1rem;align-items:center;font-family:var(--sans);font-weight:300;font-size:.63rem;letter-spacing:.3em}
.hd-nav a{text-decoration:none;color:var(--bone-45);transition:color .3s;text-transform:uppercase;text-indent:.3em}
.hd-nav a:hover{color:var(--bone)}
.hd-btn{border:1px solid var(--brass-40);padding:.65em 1.25em;color:var(--brass)!important}
.hd-btn:hover{border-color:var(--brass);color:var(--bone)!important}
.hd-nav a[aria-current="page"]{color:var(--bone)}

/* menu glyph (home + mobile) */
.glyph{width:28px;height:16px;position:relative;background:none;border:0;cursor:pointer;padding:0}
.glyph span{position:absolute;left:0;right:0;height:1px;background:var(--bone);transition:opacity .3s}
.glyph span:first-child{top:2px}.glyph span:last-child{bottom:2px}
#homeGlyph{position:fixed;top:1.35rem;right:clamp(20px,4vw,52px);z-index:41;opacity:0;pointer-events:none;transition:opacity .8s ease}
#homeGlyph.on{opacity:1;pointer-events:auto}
@media (max-width:860px){
  .hd-nav{display:none}
  #hdGlyph{display:block}
}
@media (min-width:861px){ #hdGlyph{display:none} }

/* ---------- overlay menu ---------- */
.ovl{position:fixed;inset:0;background:rgba(15,14,12,.985);z-index:60;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;opacity:0;pointer-events:none;transition:opacity .5s ease}
.ovl.open{opacity:1;pointer-events:auto}
.ovl a{font-family:var(--sans);font-weight:200;font-size:.95rem;letter-spacing:.46em;text-indent:.46em;color:var(--bone-45);text-decoration:none;text-transform:uppercase;transition:color .3s}
.ovl a:hover{color:var(--bone)}
.ovl a.gold{color:var(--brass)}
.ovl a.gold:hover{color:var(--bone)}
.ovl .x{position:absolute;top:1.35rem;right:clamp(20px,4vw,52px);width:28px;height:28px;background:none;border:0;cursor:pointer}
.ovl .x::before,.ovl .x::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:var(--bone)}
.ovl .x::before{transform:rotate(45deg)}.ovl .x::after{transform:rotate(-45deg)}

/* ---------- prose pages ---------- */
.prose{max-width:664px;margin:0 auto;padding:9.5rem 24px 5rem;position:relative;z-index:1}
.prose p{font-size:1.16rem;line-height:1.88;margin:0 0 1.55em}
.prose .lede{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.5;margin-bottom:2.2em}
.dim{color:var(--bone-70)}
.slbl{font-family:var(--sans);font-weight:300;font-size:.64rem;letter-spacing:.46em;text-indent:.46em;color:var(--brass);text-transform:uppercase;margin:4.6rem 0 1.8rem}
.rule{border:0;height:1px;background:var(--brass-18);margin:4rem 0}
.two-move p{font-size:clamp(1.35rem,2.3vw,1.7rem);line-height:1.6;color:var(--bone)}
.two-move p + p{margin-top:1.6em}

/* instruments */
.inst{margin:3.6rem 0}
.inst h3{font-family:var(--sans);font-weight:300;font-size:.76rem;letter-spacing:.42em;color:var(--bone);margin:0;text-transform:uppercase}
.inst .sub{display:block;font-style:italic;color:var(--brass);font-size:1.08rem;margin:.55rem 0 1.15rem;font-weight:400}
.inst p{margin:0;font-size:1.12rem}
.grp-rule{border:0;height:1px;width:96px;background:var(--brass-40);margin:4.2rem 0}

/* credentials */
.creds{list-style:none;padding:0;margin:1.4rem 0 0}
.creds li{padding:1.05rem 0;border-top:1px solid var(--brass-18);font-size:1.02rem;line-height:1.65}
.creds li:last-child{border-bottom:1px solid var(--brass-18)}
.scope{font-family:var(--sans);font-weight:300;font-size:.78rem;line-height:2;letter-spacing:.05em;color:var(--bone-45);margin-top:1.2rem}

/* how it works */
.how{margin:2rem 0}
.how .n{font-family:var(--sans);font-weight:300;font-size:.72rem;letter-spacing:.4em;color:var(--brass);text-transform:uppercase;display:block;margin-bottom:.55rem}
.how p{margin:0}
.fees{font-family:var(--sans);font-weight:300;font-size:.74rem;letter-spacing:.26em;color:var(--bone-45);margin-top:3rem;text-transform:uppercase}

/* form */
form.app{margin-top:1rem}
.field{margin:2.3rem 0}
.field label{display:block;font-family:var(--sans);font-weight:300;font-size:.6rem;letter-spacing:.4em;color:var(--bone-45);text-transform:uppercase;margin-bottom:.7rem}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(234,228,216,.22);color:var(--bone);font-family:var(--serif);font-size:1.18rem;padding:.45em 0;border-radius:0;outline:none;transition:border-color .35s}
.field input:focus,.field textarea:focus{border-color:var(--brass)}
.field textarea{resize:vertical;min-height:104px;line-height:1.7}
.form-notes{font-family:var(--sans);font-weight:300;font-size:.76rem;line-height:2;letter-spacing:.05em;color:var(--bone-45);margin-top:3.5rem}
#formDone p{font-size:clamp(1.3rem,2.2vw,1.6rem);color:var(--bone)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--brass-18);padding:4.6rem 24px 3.6rem;text-align:center;font-family:var(--sans);font-weight:300;position:relative;z-index:1}
.fm{font-size:.72rem;letter-spacing:.5em;text-indent:.5em;color:var(--bone);margin:0 0 1.5rem}
.fl{font-size:.68rem;letter-spacing:.16em;color:var(--bone-70);margin:.45rem 0}
.fl a{color:var(--bone-70);text-decoration:none}
.fl a:hover{color:var(--bone)}
.fd{max-width:540px;margin:2rem auto;font-size:.63rem;line-height:2;color:var(--bone-30);letter-spacing:.06em}
.flegal{font-size:.6rem;letter-spacing:.1em;color:var(--bone-30);margin:.4rem 0}
.flegal a{color:var(--bone-30);text-decoration:none}
.flegal a:hover{color:var(--bone-70)}

/* ---------- home specifics ---------- */
.cue{position:absolute;bottom:6vh;left:50%;width:1px;height:56px;background:linear-gradient(var(--brass),transparent);opacity:.75;animation:cue 2.8s ease-in-out infinite;transform-origin:top;transition:opacity .6s}
@keyframes cue{0%,100%{transform:scaleY(.35);opacity:.2}50%{transform:scaleY(1);opacity:.85}}
.cue.off{opacity:0}
#p-home .opener{min-height:100vh}

/* ---------- group page ---------- */
#p-the-group .cer{min-height:70vh}
#p-the-group .stanza{max-width:34ch}
.room-line{font-size:clamp(1.7rem,3.2vw,2.4rem)}

@media (max-width:600px){
  .cer{padding:11vh 22px}
  .prose{padding-top:8rem}
}
