/* ============================================================
   ALEXANDRA JOHN — Monaco Noir
   ============================================================ */
:root{
  --noir:#08080A;
  --noir-2:#0E0E11;
  --noir-3:#15151A;
  --ivory:#F3EFE6;
  --ivory-dim:#B7B2A6;
  --muted:#7C776B;
  --champagne:#C9A86A;
  --champagne-lt:#E8D4A6;
  --hair:rgba(201,168,106,.18);
  --hair-soft:rgba(243,239,230,.08);
  --serif:'Cormorant Garamond', Georgia, serif;
  --display:'Marcellus', 'Cormorant Garamond', serif;
  --sans:'Jost', system-ui, sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(22px, 6vw, 120px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--noir);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  cursor:none;
}
@media (max-width:900px){ body{cursor:auto} }
::selection{background:var(--champagne);color:var(--noir)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
em{font-style:italic;color:var(--champagne-lt)}

/* ---------- grain + glow texture ---------- */
.grain{
  position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

/* ---------- custom cursor ---------- */
.cursor,.cursor-dot{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;border-radius:50%;mix-blend-mode:difference}
.cursor{width:34px;height:34px;border:1px solid var(--champagne-lt);transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),background .35s var(--ease)}
.cursor-dot{width:4px;height:4px;background:var(--champagne-lt);transform:translate(-50%,-50%)}
.cursor.is-hover{width:62px;height:62px;background:rgba(232,212,166,.12);border-color:transparent}
@media (max-width:900px){.cursor,.cursor-dot{display:none}}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:9000;background:var(--noir);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transition:opacity .8s var(--ease),visibility .8s}
.loader.done{opacity:0;visibility:hidden}
.loader-mark{font-family:var(--display);font-size:34px;letter-spacing:.22em;color:var(--champagne);padding-left:.22em}
.loader-line{width:160px;height:1px;background:var(--hair-soft);overflow:hidden}
.loader-line span{display:block;height:100%;width:0;background:var(--champagne);animation:load 1.5s var(--ease) forwards}
@keyframes load{to{width:100%}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;width:100%;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:26px var(--gut);transition:padding .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease);border-bottom:1px solid transparent}
.nav.scrolled{padding:16px var(--gut);background:rgba(8,8,10,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
.nav-logo{font-family:var(--display);font-size:19px;letter-spacing:.16em;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:38px}
.nav-links a{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-dim);position:relative;transition:color .4s}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--champagne);transition:width .4s var(--ease)}
.nav-links a:hover{color:var(--ivory)}
.nav-links a:hover::after{width:100%}
.nav-cta{padding:11px 22px;border:1px solid var(--hair);border-radius:40px;color:var(--champagne-lt)!important}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--champagne);color:var(--noir)!important;border-color:var(--champagne)}
.nav-burger{display:none;background:none;border:none;flex-direction:column;gap:6px;cursor:pointer}
.nav-burger span{width:26px;height:1px;background:var(--ivory);transition:.4s}

/* ---------- shared ---------- */
.eyebrow{font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--champagne);font-weight:400;margin-bottom:26px;display:inline-flex;align-items:center}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--champagne);margin-right:16px;opacity:.6}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(38px,5.2vw,76px);line-height:1.02;letter-spacing:-.01em}
.section-head{margin-bottom:clamp(50px,7vw,100px)}
.section-head.center{text-align:center}
.section-head.center .eyebrow::before{display:none}
.section-head.center .eyebrow{margin-right:0}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;padding:17px 34px;border-radius:40px;transition:.45s var(--ease)}
.btn-gold{background:var(--champagne);color:var(--noir);border:1px solid var(--champagne)}
.btn-gold:hover{background:transparent;color:var(--champagne-lt)}
.btn-ghost{border:1px solid var(--hair);color:var(--ivory-dim)}
.btn-ghost:hover{border-color:var(--champagne);color:var(--ivory)}

/* ============================== HERO (full-bleed portrait) ============================== */
.hero{position:relative;height:100vh;min-height:640px;width:100%;overflow:hidden;display:flex;align-items:flex-end}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-photo{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center 24%;animation:heroZoom 10s var(--ease) forwards}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-placeholder{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(ellipse at 50% 34%, var(--noir-3), var(--noir) 72%)}
.hero-placeholder .portrait-monogram{font-size:clamp(80px,13vw,160px);opacity:.4}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to top, rgba(8,8,10,.95) 0%, rgba(8,8,10,.4) 42%, rgba(8,8,10,.15) 62%, rgba(8,8,10,.5) 100%)}
.hero-content{position:relative;z-index:2;width:100%;max-width:1400px;margin:0 auto;padding:0 var(--gut) clamp(86px,12vh,140px)}
.hero-content .eyebrow{margin-bottom:22px}
.hero-name{font-family:var(--serif);font-weight:400;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(46px,8vw,116px);line-height:.94;margin-bottom:22px}
.hero-sub{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,29px);color:var(--ivory-dim);max-width:660px;line-height:1.4}
.hero-cta{margin-top:30px;background:rgba(8,8,10,.35);backdrop-filter:blur(4px)}
.hero-scroll{position:absolute;bottom:38px;right:var(--gut);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:3}
.hero-scroll span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.hero-scroll i{width:1px;height:54px;background:linear-gradient(var(--champagne),transparent);position:relative;overflow:hidden}
.hero-scroll i::after{content:'';position:absolute;top:0;left:0;width:100%;height:18px;background:var(--ivory);animation:scrolldown 2.2s var(--ease) infinite}
@keyframes scrolldown{0%{transform:translateY(-20px)}100%{transform:translateY(60px)}}

/* ============================== MARQUEE ============================== */
.marquee{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:26px 0;overflow:hidden;white-space:nowrap;background:var(--noir-2)}
.marquee-track{display:inline-flex;align-items:center;gap:42px;animation:slide 38s linear infinite reverse}
.marquee-track span{font-family:var(--serif);font-size:clamp(22px,2.6vw,34px);color:var(--ivory-dim);font-style:italic}
.marquee-track i{color:var(--champagne);font-size:14px;font-style:normal}
@keyframes slide{to{transform:translateX(-50%)}}

/* ============================== ABOUT ============================== */
.about{padding:clamp(90px,12vw,180px) var(--gut)}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,7vw,110px);align-items:center;max-width:1400px;margin:0 auto}
.portrait-frame{position:relative;aspect-ratio:4/5;border:1px solid var(--hair);background:linear-gradient(160deg,var(--noir-2),var(--noir-3))}
.portrait-frame img{width:100%;height:100%;object-fit:cover}
.portrait-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.portrait-monogram{font-family:var(--display);font-size:clamp(60px,8vw,110px);letter-spacing:.18em;color:var(--champagne);opacity:.55;padding-left:.18em}
.portrait-caption{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.portrait-corner{position:absolute;width:18px;height:18px;border:1px solid var(--champagne)}
.portrait-corner.tl{top:14px;left:14px;border-right:0;border-bottom:0}
.portrait-corner.tr{top:14px;right:14px;border-left:0;border-bottom:0}
.portrait-corner.bl{bottom:14px;left:14px;border-right:0;border-top:0}
.portrait-corner.br{bottom:14px;right:14px;border-left:0;border-top:0}
.about-copy h2{margin:0 0 32px}
.about-copy .lead{font-family:var(--serif);font-size:clamp(21px,2.1vw,28px);line-height:1.45;color:var(--ivory);font-style:italic;margin-bottom:24px}
.about-copy p{color:var(--ivory-dim);max-width:560px;margin-bottom:20px}
.signoff{font-family:var(--serif)!important;font-style:italic;font-size:22px;color:var(--champagne)!important;letter-spacing:.01em;margin-top:8px}

/* ============================== STORY / BACKGROUND ============================== */
.story{padding:clamp(40px,5vw,80px) var(--gut) clamp(80px,11vw,160px);border-top:1px solid var(--hair-soft)}
.story-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(40px,7vw,110px);align-items:center;max-width:1400px;margin:0 auto}
.story-copy h2{margin:0 0 32px}
.story-copy p{color:var(--ivory-dim);max-width:600px;margin-bottom:22px}
.story-portrait{max-width:480px;margin-left:auto}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,50px);max-width:1300px;margin:clamp(56px,7vw,100px) auto 0;padding-top:clamp(40px,5vw,68px);border-top:1px solid var(--hair)}
.stat{display:flex;flex-direction:column}
.stat-num{font-family:var(--serif);font-weight:400;font-size:clamp(48px,5.2vw,76px);color:var(--champagne-lt);line-height:1;height:clamp(48px,5.2vw,76px);display:flex;align-items:center}
.stat-label{margin-top:18px;font-size:13px;color:var(--ivory-dim);letter-spacing:.01em;max-width:200px;line-height:1.45}

/* ============================== VENTURES ============================== */
.ventures{padding:clamp(80px,10vw,160px) var(--gut);border-top:1px solid var(--hair-soft)}
.venture-list{max-width:1300px;margin:0 auto}
.venture{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(24px,5vw,80px);align-items:start;padding:clamp(34px,4vw,58px) 0;border-top:1px solid var(--hair-soft);position:relative;transition:padding-left .5s var(--ease)}
.venture::before{content:'';position:absolute;left:-30px;top:0;height:100%;width:1px;background:var(--champagne);transform:scaleY(0);transform-origin:top;transition:transform .6s var(--ease)}
.venture:hover{padding-left:30px}
.venture:hover::before{transform:scaleY(1)}
.venture:last-child{border-bottom:1px solid var(--hair-soft)}
.venture-index{font-family:var(--serif);font-size:18px;color:var(--champagne);font-style:italic;padding-top:10px}
.venture h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,52px);line-height:1;letter-spacing:.01em;transition:color .4s}
.venture:hover h3{color:var(--champagne-lt)}
.venture-role{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:14px 0 18px}
.venture-desc{color:var(--ivory-dim);max-width:620px;font-size:16px}
.venture-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne);border:1px solid var(--hair);border-radius:30px;padding:8px 18px;white-space:nowrap;align-self:start;margin-top:8px}
.venture-link{display:inline-block;margin-top:20px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne);position:relative}
.venture-link::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--champagne);transition:width .4s var(--ease)}
.venture-link:hover::after{width:100%}

/* ============================== MID CTA BAND ============================== */
.cta-band{position:relative;padding:clamp(90px,13vw,180px) var(--gut);text-align:center;border-top:1px solid var(--hair-soft);overflow:hidden}
.cta-band-glow{position:absolute;top:50%;left:50%;width:min(900px,90vw);height:420px;transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,rgba(201,168,106,.12),transparent 62%);filter:blur(30px);pointer-events:none}
.cta-band-inner{position:relative;z-index:2;max-width:780px;margin:0 auto}
.cta-band .eyebrow{margin-right:0}
.cta-band .eyebrow::before{display:none}
.cta-band h2{margin:0 0 40px}

/* ============================== METHOD ============================== */
.method{padding:clamp(90px,12vw,180px) var(--gut);background:var(--noir-2);border-top:1px solid var(--hair-soft)}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,4vw,64px);max-width:1300px;margin:0 auto}
.principle{padding-top:36px;border-top:1px solid var(--hair)}
.principle-num{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--champagne);display:block;margin-bottom:26px}
.principle h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.4vw,32px);line-height:1.15;margin-bottom:18px}
.principle p{color:var(--ivory-dim);font-size:15.5px}

/* ============================== PRESS ============================== */
.press{padding:clamp(90px,12vw,180px) var(--gut)}

/* books */
.books{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(30px,4vw,64px);max-width:1100px;margin:0 auto clamp(60px,7vw,100px)}
.book{display:flex;gap:clamp(20px,2.5vw,34px);align-items:center}
.book-cover{flex:0 0 auto;width:clamp(130px,15vw,200px);aspect-ratio:1179/1479;position:relative;overflow:hidden;border:1px solid var(--hair);box-shadow:0 30px 60px -30px rgba(0,0,0,.8);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.book:hover .book-cover{transform:translateY(-6px);box-shadow:0 40px 70px -28px rgba(201,168,106,.35)}
.book:hover .book-cover img{transform:scale(1.04)}
.book-tag{display:inline-block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne);border:1px solid var(--hair);border-radius:30px;padding:6px 14px;margin-bottom:18px}
.book-info h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,34px);line-height:1.05;margin-bottom:10px}
.book-info p{color:var(--ivory-dim);font-size:14px;font-style:italic;font-family:var(--serif)}

.press-rows{max-width:1300px;margin:0 auto}
.press-row{display:grid;grid-template-columns:140px 1fr auto;gap:30px;align-items:baseline;padding:30px 0;border-top:1px solid var(--hair-soft);transition:.4s var(--ease)}
.press-row:last-child{border-bottom:1px solid var(--hair-soft)}
.press-row:hover{background:linear-gradient(90deg,rgba(201,168,106,.05),transparent);padding-left:18px}
.press-year{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--champagne)}
.press-title{font-family:var(--serif);font-size:clamp(20px,2.2vw,30px);font-weight:400;color:var(--ivory)}
.press-meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* press collage — small, framed, curated */
.press-collage{max-width:380px;margin:clamp(50px,6vw,84px) auto 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.press-collage figcaption{order:-1;margin:0 0 22px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--champagne);display:inline-flex;align-items:center}
.press-collage figcaption::before,.press-collage figcaption::after{content:'';width:26px;height:1px;background:var(--champagne);opacity:.5;margin:0 14px}
.press-collage img{width:100%;border:1px solid var(--hair);padding:8px;background:var(--noir-2);filter:grayscale(.1);opacity:.92;transition:opacity .6s var(--ease),filter .6s var(--ease),transform .6s var(--ease)}
.press-collage:hover img{opacity:1;filter:none;transform:translateY(-4px)}

/* ============================== CONTACT ============================== */
.contact{position:relative;padding:clamp(110px,14vw,210px) var(--gut);text-align:center;overflow:hidden;border-top:1px solid var(--hair-soft)}
.contact-glow{position:absolute;bottom:-30%;left:50%;width:min(1000px,95vw);height:600px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(201,168,106,.14),transparent 60%);filter:blur(30px)}
.contact-inner{position:relative;z-index:2;max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.contact h2{margin:0 0 30px}
.contact .eyebrow::before{display:none}
.contact .eyebrow{margin-right:0}
.contact-lead{color:var(--ivory-dim);max-width:600px;margin-bottom:40px}

/* partnership area pills */
.contact-areas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:54px}
.contact-areas span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--champagne);border:1px solid var(--hair);border-radius:30px;padding:10px 20px}

/* form */
.contact-form{width:100%;max-width:620px;margin:0 auto;text-align:left}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--hair);color:var(--ivory);font-family:var(--sans);font-weight:300;font-size:15px;padding:14px 2px;transition:border-color .4s}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--champagne)}
.contact-form select{color:var(--muted);appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C9A86A'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}
.contact-form select option{background:var(--noir-2);color:var(--ivory)}
.contact-form textarea{margin-bottom:30px;resize:vertical;line-height:1.5}
.contact-submit{border:1px solid var(--champagne);cursor:pointer}
.hp{position:absolute;left:-9999px;opacity:0}

.contact-alt{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:46px;font-size:13px}
.contact-alt span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.contact-alt a{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ivory);transition:color .4s}
.contact-alt a:hover{color:var(--champagne-lt)}
.contact-socials{display:flex;align-items:center;justify-content:center;gap:30px;margin-top:28px;flex-wrap:wrap}
.contact-socials a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-dim);position:relative;transition:color .4s}
.contact-socials a:hover{color:var(--champagne)}
.contact-loc{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* ============================== FOOTER ============================== */
.footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:34px var(--gut);border-top:1px solid var(--hair);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.footer-sign{font-family:var(--serif);font-style:italic;letter-spacing:.04em;text-transform:none;font-size:15px;color:var(--champagne)}

/* ============================== RESPONSIVE ============================== */
@media (max-width:900px){
  .nav-links{position:fixed;inset:0;background:var(--noir);flex-direction:column;justify-content:center;gap:34px;transform:translateX(100%);transition:transform .6s var(--ease)}
  .nav-links.open{transform:none}
  .nav-links a{font-size:18px}
  .nav-burger{display:flex;z-index:101}
  .nav.menu-open .nav-burger span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .nav.menu-open .nav-burger span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .about-grid{grid-template-columns:1fr}
  .about-portrait{max-width:360px;margin:0 auto}
  .story-grid{grid-template-columns:1fr;gap:40px}
  .story-portrait{max-width:340px;margin:0 auto;order:-1}
  .stats{grid-template-columns:1fr 1fr;gap:34px 24px}
  .stat-label{max-width:none}
  .venture{grid-template-columns:1fr;gap:14px}
  .venture-index{padding-top:0}
  .venture-tag{justify-self:start}
  .principles{grid-template-columns:1fr;gap:0}
  .principle{margin-top:0}
  .press-row{grid-template-columns:1fr;gap:8px}
  .press-meta{display:none}
  .books{grid-template-columns:1fr;gap:34px}
  .contact-form .form-row{grid-template-columns:1fr;gap:20px}
  .contact-alt{flex-direction:column;gap:8px}
}
