
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500;1,600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --black:#0b0b0b;
  --charcoal:#151515;
  --cream:#eee7dc;
  --cream-2:#f6f1e8;
  --white:#fffdf8;
  --silver:#bfc0bd;
  --line:rgba(191,192,189,.35);
  --max:1240px;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Inter", Arial, sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--black);font-family:var(--sans);font-size:14px;line-height:1.6}
body.is-dark{background:var(--black);color:var(--cream)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
::selection{background:var(--black);color:var(--cream)}

.container{width:min(calc(100% - 48px),var(--max));margin:auto}
.narrow{width:min(calc(100% - 48px),820px);margin:auto}

.site-header{
  position:sticky;top:0;z-index:100;
  height:74px;background:rgba(11,11,11,.96);color:var(--cream);
  border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(12px)
}
.nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}
.logo{display:flex;flex-direction:column;align-items:center;line-height:.75;letter-spacing:-.05em;font-family:var(--serif);font-weight:600;font-size:25px;min-width:150px}
.logo small{font:500 7px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;margin-bottom:4px}
.logo-mark{font-size:10px;letter-spacing:0;margin-top:3px}
.nav-left,.nav-right{display:flex;align-items:center;gap:18px}
.nav-link{font-size:10px;text-transform:uppercase;letter-spacing:.12em;opacity:.8;transition:.25s}
.nav-link:hover,.nav-link.active{opacity:1}
.nav-cta{border:1px solid var(--silver);padding:11px 15px;font-size:9px;letter-spacing:.13em;text-transform:uppercase;transition:.25s}
.nav-cta:hover{background:var(--cream);color:var(--black)}
.icon-btn{width:32px;height:32px;display:grid;place-items:center;border:0;background:none;color:inherit;font-size:15px}
.mobile-toggle{display:none}

.hero{
  min-height:calc(100vh - 74px);position:relative;display:grid;place-items:center;overflow:hidden;background:var(--black);color:var(--cream)
}
.hero-media,.split-media,.photo-panel{
  background:
    radial-gradient(circle at 70% 28%,rgba(255,255,255,.09),transparent 25%),
    linear-gradient(135deg,#0d0d0d 0%,#1c1715 48%,#070707 100%);
  position:relative;overflow:hidden;
}
.hero-media:before,.split-media:before,.photo-panel:before{
  content:"";position:absolute;inset:0;opacity:.65;
  background:
    linear-gradient(105deg,transparent 0 36%,rgba(255,255,255,.06) 36.2%,transparent 37%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 7px);
}
.hero-media:after,.split-media:after,.photo-panel:after{
  content:"";position:absolute;width:52%;height:65%;right:-8%;bottom:-20%;
  border:1px solid rgba(191,192,189,.16);transform:rotate(-16deg)
}
.hero-inner{width:min(calc(100% - 48px),var(--max));display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;position:relative;z-index:2}
.hero-copy{padding:40px 0}
.eyebrow{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--silver);margin-bottom:18px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:.92;margin:0 0 20px}
h1{font-size:clamp(64px,9vw,132px);letter-spacing:-.045em}
h2{font-size:clamp(46px,6vw,82px);letter-spacing:-.04em}
h3{font-size:clamp(30px,4vw,48px)}
.hero-copy p{max-width:490px;color:rgba(11,11,11,.75);font-size:15px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 20px;border:1px solid var(--black);background:var(--black);color:var(--cream);
  text-transform:uppercase;letter-spacing:.13em;font-size:9px;transition:all .3s var(--ease)
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.13)}
.btn-light{background:var(--cream);color:var(--black);border-color:var(--cream)}
.btn-outline{background:transparent;color:inherit;border-color:currentColor}
.btn-silver{background:var(--silver);color:var(--black);border-color:var(--silver)}
.hero .btn-outline{color:var(--cream);border-color:rgba(238,231,220,.6)}
.hero-art{min-height:570px;display:flex;align-items:center;justify-content:center}
.package-art{
  width:min(88%,480px);aspect-ratio:4/5;border:1px solid rgba(191,192,189,.45);
  background:linear-gradient(145deg,#111 0%,#090909 70%);
  box-shadow:28px 34px 80px rgba(0,0,0,.55);position:relative;padding:28px
}
.package-art:before{content:"";position:absolute;inset:14px;border:1px solid rgba(191,192,189,.2)}
.package-art .brand{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font-family:var(--serif);font-size:64px;line-height:.78;letter-spacing:-.06em}
.package-art .tag{position:absolute;bottom:38px;left:38px;right:38px;text-align:center;font-size:8px;letter-spacing:.22em;color:var(--silver);text-transform:uppercase}
.crescent{position:absolute;width:72px;height:72px;border:1px solid var(--silver);border-radius:50%;right:42px;top:36px}
.crescent:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:#0b0b0b;left:15px;top:-6px}

.section{padding:105px 0}
.section-dark{background:var(--black);color:var(--cream)}
.section-cream {background: var(--cream-2);color: var(--black);}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:45px}
.section-head p{max-width:430px;color:rgba(11,11,11,.65)}
.section-dark .section-head p{color:rgba(238,231,220,.65)}
.kicker{font-size:9px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:12px;color:#666}
.section-dark .kicker{color:var(--silver)}

.intro{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}
.intro-copy p{font-size:18px;max-width:600px}
.pull{font-family:var(--serif);font-size:34px;line-height:1.05}
.rule{height:1px;background:var(--line);margin:30px 0}

.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.step{padding:35px 30px 45px;border-right:1px solid var(--line)}
.step:last-child{border-right:0}
.step-num{font-size:10px;letter-spacing:.2em;color:var(--silver);margin-bottom:55px}
.step h3{font-size:36px}
.step p{color:rgba(238,231,220,.65);max-width:330px}

.experience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.experience{
  border:1px solid rgba(11,11,11,.15);padding:34px;min-height:470px;display:flex;flex-direction:column;justify-content:space-between;
  background:var(--cream);position:relative;overflow:hidden;
  color:var(--black);
}
.experience.dark{background:var(--black);color:var(--cream);border-color:rgba(255,255,255,.16)}
.experience .price{font-size:12px;letter-spacing:.12em}
.experience ul{list-style:none;padding:0;margin:28px 0 0}
.experience li{padding:9px 0;border-top:1px solid rgba(11,11,11,.15);font-size:12px}
.experience.dark li{border-color:rgba(255,255,255,.14)}
.experience .label{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#777}
.experience.dark .label{color:var(--silver)}

.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;white-space:nowrap}
.marquee-track{display:inline-block;animation:marquee 28s linear infinite;font-family:var(--serif);font-size:30px;font-style:italic}
@keyframes marquee{to{transform:translateX(-50%)}}

.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.quote{padding:28px;border:1px solid rgba(11,11,11,.14);min-height:260px;display:flex;flex-direction:column;justify-content:space-between}
.quote p{font-family:var(--serif);font-size:28px;line-height:1.05;color:var(--black)}
.quote small{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#777}

.newsletter{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end}
.form-inline{display:flex;border-bottom:1px solid currentColor;padding-bottom:10px}
.form-inline input{flex:1;background:transparent;border:0;outline:0;color:inherit}
.form-inline button{border:0;background:none;color:inherit;text-transform:uppercase;font-size:9px;letter-spacing:.15em}

.page-hero{padding:100px 0 70px;background:var(--cream-2);border-bottom:1px solid rgba(11,11,11,.12)}
.page-hero.dark{background:var(--black);color:var(--cream);border-bottom-color:rgba(255,255,255,.12)}
.page-hero-inner{display:grid;grid-template-columns:1fr .7fr;gap:60px;align-items:end}
.page-hero h1{font-size:clamp(65px,9vw,120px)}
.page-hero p{max-width:460px;color:#666}
.dark .page-hero p,.page-hero.dark p{color:rgba(238,231,220,.65)}

.split{display:grid;grid-template-columns:1fr 1fr;min-height:620px}
.split-media{min-height:620px}
.split-content{padding:80px;display:flex;flex-direction:column;justify-content:center;background:var(--cream-2)}
.split-content.dark{background:var(--black);color:var(--cream)}

.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{border:1px solid rgba(11,11,11,.14);background:var(--cream-2);overflow:hidden}
.card-visual{aspect-ratio:1/1.05;background:linear-gradient(145deg,#181513,#080808);position:relative}
.card-visual:after{content:"";position:absolute;inset:12px;border:1px solid rgba(191,192,189,.2)}
.card-body{padding:20px}
.card-body h3{font-size:31px;margin-bottom:10px}
.card-body p{font-size:12px;color:#666}
.card-link{display:inline-block;margin-top:12px;font-size:9px;text-transform:uppercase;letter-spacing:.16em}

.product-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.product-art{background:#101010;min-height:650px;display:grid;place-items:center;padding:55px}
.book-cover{width:min(70%,300px);aspect-ratio:2/3;border:1px solid #555;background:linear-gradient(145deg,#27201d,#070707);box-shadow:22px 25px 45px rgba(0,0,0,.35);padding:25px;color:var(--cream);display:flex;flex-direction:column;justify-content:space-between}
.book-cover .title{font-family:var(--serif);font-size:44px;line-height:.82;text-transform:uppercase}
.product-info h1{font-size:72px}
.meta{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:#777}
.price-large{font-size:20px;letter-spacing:.1em;margin:20px 0}
.tabs{display:flex;gap:25px;border-bottom:1px solid rgba(11,11,11,.15);margin-top:45px}
.tab{padding:12px 0;border:0;background:none;font-size:9px;text-transform:uppercase;letter-spacing:.15em}
.tab.active{border-bottom:1px solid #111}

.questionnaire{background:var(--black);color:var(--cream);min-height:calc(100vh - 74px);padding:70px 0}
.q-wrap{width:min(calc(100% - 48px),900px);margin:auto}
.progress{height:2px;background:#2b2b2b;margin:25px 0 55px}
.progress span{display:block;height:100%;background:var(--silver);transition:width .3s}
.question{display:none}
.question.active{display:block}
.question h2{font-size:clamp(42px,6vw,76px)}
.question .sub{color:rgba(238,231,220,.6);max-width:650px}
.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:35px 0}
.option{border:1px solid rgba(238,231,220,.25);padding:18px;background:transparent;color:var(--cream);text-align:left;transition:.25s}
.option:hover,.option.selected{border-color:var(--silver);background:rgba(255,255,255,.06)}
.field{margin:20px 0}
.field label{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--silver);margin-bottom:9px}
.field input,.field textarea,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(238,231,220,.3);padding:13px 0;color:var(--cream);outline:0}
.field textarea{min-height:120px;resize:vertical}
.q-actions{display:flex;justify-content:space-between;gap:12px;margin-top:35px}

.accordion{border-top:1px solid rgba(11,11,11,.16)}
.faq-item{border-bottom:1px solid rgba(11,11,11,.16)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:23px 0;background:none;border:0}
.faq-q span:first-child{font-family:var(--serif);font-size:25px}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s}
.faq-a>div{overflow:hidden}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a p{padding:0 0 22px;color:#666;max-width:760px}

.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.contact-form{border-top:1px solid rgba(11,11,11,.16)}
.contact-form .field{border-bottom:1px solid rgba(11,11,11,.16);padding:5px 0 12px}
.contact-form input,.contact-form textarea,.contact-form select{color:var(--black);border:0}
.socials{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.social{border:1px solid rgba(11,11,11,.2);padding:11px 14px;font-size:9px;letter-spacing:.14em;text-transform:uppercase}

.journal-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px}
.article{border:1px solid rgba(11,11,11,.14);background:var(--cream-2)}
.article:first-child{grid-row:span 2}
.article-visual{aspect-ratio:1.25/1;background:linear-gradient(135deg,#0d0d0d,#2a201c);position:relative}
.article:first-child .article-visual{aspect-ratio:1/1.15}
.article-visual:after{content:"";position:absolute;inset:14px;border:1px solid rgba(191,192,189,.2)}
.article-body{padding:22px}
.article-body .tag{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:#777}
.article-body h3{font-size:32px;margin:12px 0}

.policy{max-width:850px}
.policy h2{font-size:43px;margin-top:55px}
.policy p,.policy li{color:#555}
.policy ul{padding-left:20px}

.site-footer{background:var(--black);color:var(--cream);padding:65px 0 25px}
.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:40px}
.footer-brand .logo{align-items:flex-start}
.footer-col h4{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--silver);margin-bottom:16px}
.footer-col a{display:block;font-size:11px;color:rgba(238,231,220,.68);margin:9px 0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:45px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:rgba(238,231,220,.45);font-size:9px;text-transform:uppercase;letter-spacing:.1em}

.toast{position:fixed;right:20px;bottom:20px;background:var(--black);color:var(--cream);border:1px solid rgba(255,255,255,.2);padding:14px 18px;font-size:10px;letter-spacing:.08em;transform:translateY(130%);transition:.35s;z-index:200}
.toast.show{transform:translateY(0)}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.visible{opacity:1;transform:none}

@media(max-width:980px){
  .nav-left .nav-link:nth-child(2),.nav-left .nav-link:nth-child(3){display:none}
  .nav-right .nav-link{display:none}
  .hero-inner,.intro,.newsletter,.page-hero-inner,.product-layout,.contact-grid{grid-template-columns:1fr}
  .hero{min-height:auto}
  .hero-art{min-height:430px}
  .split{grid-template-columns:1fr}
  .split-media{min-height:500px}
  .cards-3,.testimonials,.journal-grid{grid-template-columns:1fr 1fr}
  .journal-grid .article:first-child{grid-column:span 2}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr}
  .footer-grid .footer-col:last-child{grid-column:2}
}

@media(max-width:680px){
  .container,.narrow,.hero-inner,.q-wrap{width:min(calc(100% - 30px),var(--max))}
  .site-header{height:66px}
  .nav-left,.nav-right{display:none}
  .mobile-toggle{display:block}
  .logo{min-width:auto;font-size:22px}
  .nav{justify-content:space-between}
  .hero-inner{gap:10px}
  .hero-copy{padding:55px 0 20px}
  h1{font-size:64px}
  .hero-art{min-height:350px}
  .package-art{width:72%;padding:18px}
  .package-art .brand{font-size:46px}
  .section{padding:75px 0}
  .section-head{display:block}
  .section-head p{margin-top:20px}
  .steps,.experience-grid,.cards-3,.testimonials,.journal-grid{grid-template-columns:1fr}
  .step{border-right:0;border-bottom:1px solid var(--line)}
  .step:last-child{border-bottom:0}
  .experience{min-height:420px}
  .journal-grid .article:first-child{grid-column:auto}
  .split-content{padding:55px 30px}
  .product-art{min-height:500px}
  .product-info h1{font-size:56px}
  .option-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid .footer-brand{grid-column:span 2}
  .footer-grid .footer-col:last-child{grid-column:auto}
  .footer-bottom{display:block}
  .footer-bottom span{display:block;margin-top:8px}
}
