/* ═══════════════════════════════════════════
   ADARA — Design System
   Inspired by AppSpace (TailGrids) bento layouts
   and Aceternity scroll-driven phone tilt + dotted texture
═══════════════════════════════════════════ */

:root {
  --rose: #B76E79; --rose-d: #9A5862; --rose-l: #E8B4B8; --rose-xl: #F7E7CE;
  --cream: #F7E7CE; --cream-d: #EDD9B0;
  --white: #FFFFFF; --ink: #2B1F1C; --ink-s: #3D2B26;
  --mid: #7A6058; --soft: #A8908A; --ghost: #D4C4BE;
  --sand: #FBF5EF; --sand2: #F4E9DD; --ivory: #FFFCF9;
  --glass: rgba(255,255,255,.78);
  --sh: 0 20px 60px rgba(183,110,121,.10), 0 4px 16px rgba(183,110,121,.06);
  --shh: 0 32px 80px rgba(183,110,121,.16), 0 6px 22px rgba(183,110,121,.09);
  --shdk: 0 40px 100px rgba(43,31,28,.24), 0 8px 28px rgba(43,31,28,.13);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Jost', sans-serif; font-weight:300; background:var(--ivory); color:var(--ink); overflow-x:hidden; line-height:1.6; }
img { display:block; max-width:100%; }

.ico { display:inline-block; flex-shrink:0; color:currentColor; }
.ico path, .ico circle, .ico rect { vector-effect: non-scaling-stroke; }

/* cursor */
#cur { position:fixed; width:8px; height:8px; background:var(--rose); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .2s,height .2s; mix-blend-mode:multiply; }
#curR { position:fixed; width:30px; height:30px; border:1.5px solid rgba(183,110,121,.4); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); }

::-webkit-scrollbar{ width:3px; } ::-webkit-scrollbar-track{ background:var(--sand); } ::-webkit-scrollbar-thumb{ background:var(--rose-l); border-radius:2px; }

/* dotted texture (Aceternity-style world-map dot grid) */
.dot-grid {
  position:absolute; inset:0; opacity:.5;
  background-image: radial-gradient(circle, rgba(183,110,121,.16) 1px, transparent 1px);
  background-size: 18px 18px;
  mask-image: radial-gradient(ellipse 60% 50% at 50% 30%, black 20%, transparent 75%);
}
.dot-grid.dark {
  background-image: radial-gradient(circle, rgba(232,180,184,.14) 1px, transparent 1px);
}

/* subdomain bar */
.subdomain-bar{ background:var(--ink); color:rgba(255,255,255,.5); font-size:10.5px; letter-spacing:.06em; padding:7px 64px; display:flex; justify-content:space-between; align-items:center; }
.subdomain-bar .sd-url{ color:var(--rose-l); font-weight:500; }
.subdomain-bar .sd-tag{ display:flex; gap:18px; }
.subdomain-bar .sd-tag span{ opacity:.6; }

/* nav */
#nav{ position:sticky; top:0; left:0; right:0; z-index:800; padding:22px 64px; display:flex; align-items:center; justify-content:space-between; background:rgba(255,252,249,.92); backdrop-filter:blur(24px) saturate(160%); border-bottom:1px solid rgba(183,110,121,.1); transition:padding .4s; }
.nl{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.nl img{ width:34px; height:34px; border-radius:8px; box-shadow:0 2px 10px rgba(183,110,121,.2); }
.nl span{ font-family:'Instrument Serif', serif; font-style:italic; font-size:23px; color:var(--ink); }
.links{ display:flex; gap:34px; list-style:none; align-items:center; }
.links a{ font-size:11.5px; font-weight:400; letter-spacing:.04em; color:var(--mid); text-decoration:none; position:relative; transition:color .3s;  }
.links a.active{ color:var(--rose-d); }
.links a::after{ content:''; position:absolute; bottom:-2px; left:0; right:0; height:1px; background:var(--rose); transform:scaleX(0); transform-origin:left; transition:transform .32s cubic-bezier(.16,1,.3,1); }
.links a:hover{ color:var(--ink); } .links a:hover::after{ transform:scaleX(1); } .links a.active::after{ transform:scaleX(1); }
.ncta{ font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; background:var(--rose); color:var(--white)!important; padding:11px 26px; border-radius:100px; text-decoration:none; transition:background .3s,transform .25s!important;  display:inline-flex; align-items:center; gap:7px; }
.ncta::after{ display:none!important; }
.ncta:hover{ background:var(--rose-d)!important; transform:translateY(-1px); }
.mob{ display:none; flex-direction:column; gap:5px; background:none; border:none;  padding:4px; }
.mob span{ display:block; width:22px; height:1.5px; background:var(--ink); border-radius:2px; }

/* buttons */
.bdk{ font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; background:var(--ink); color:var(--white); padding:14px 34px; border-radius:100px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:all .35s cubic-bezier(.16,1,.3,1); box-shadow:0 4px 18px rgba(43,31,28,.16);  }
.bdk:hover{ background:var(--ink-s); transform:translateY(-2px); box-shadow:0 12px 34px rgba(43,31,28,.2); }
.brs{ font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; background:var(--rose); color:var(--white); padding:14px 34px; border-radius:100px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:all .35s cubic-bezier(.16,1,.3,1); box-shadow:0 4px 18px rgba(183,110,121,.28);  }
.brs:hover{ background:var(--rose-d); transform:translateY(-2px); box-shadow:0 12px 32px rgba(183,110,121,.34); }
.bgh{ font-size:13px; color:var(--mid); text-decoration:none; display:inline-flex; align-items:center; gap:7px; padding:14px 4px; transition:color .3s;  font-family:'Cormorant Garamond', serif; font-style:italic; font-size:16px; }
.bgh:hover{ color:var(--ink); } .bgh .ico{ transition:transform .3s; } .bgh:hover .ico{ transform:translateX(4px); }

sec{ padding:110px 64px; display:block; }
.W{ max-width:1280px; margin:0 auto; }
.ey{ font-size:9.5px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--rose-d); display:flex; align-items:center; gap:10px; margin-bottom:15px; }
.ey::before{ content:''; width:20px; height:1px; background:var(--rose); flex-shrink:0; }
.ey-w{ justify-content:center; }
h2.T{ font-family:'Instrument Serif', serif; font-style:italic; font-size:clamp(40px,5.2vw,70px); line-height:.95; letter-spacing:-1.5px; color:var(--ink); margin-bottom:18px; }
h2.T em{ color:var(--rose-d); font-style:normal; }
.sb{ font-family:'Cormorant Garamond', serif; font-size:18.5px; line-height:1.78; color:var(--mid); max-width:540px; }


/* icon chip — used wherever an emoji used to live */
.ichip{ width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:rgba(183,110,121,.08); color:var(--rose); flex-shrink:0; }
.ichip.dark{ background:rgba(232,180,184,.1); color:var(--rose-l); }
.ichip.lg{ width:58px; height:58px; border-radius:16px; }
.ichip.on-cream{ background:rgba(43,31,28,.06); color:var(--ink-s); }

/* footer */
footer{ background:var(--ink); padding:68px 64px 40px; }
.ft{ max-width:1280px; margin:0 auto; }
.fttop{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:56px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.06); margin-bottom:32px; }
.ftl{ display:flex; align-items:center; gap:9px; margin-bottom:14px; text-decoration:none; }
.ftl img{ width:32px; height:32px; border-radius:7px; } .ftl span{ font-family:'Instrument Serif', serif; font-style:italic; font-size:22px; color:var(--white); }
.fttg{ font-family:'Cormorant Garamond', serif; font-size:15.5px; line-height:1.75; color:rgba(255,255,255,.34); max-width:240px; }
.ftch{ font-size:8.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.25); margin-bottom:16px; }
.ftlinks{ list-style:none; }
.ftlinks li{ margin-bottom:12px; }
.ftlinks a{ font-family:'Cormorant Garamond', serif; font-size:15.5px; color:rgba(255,255,255,.46); text-decoration:none; transition:color .3s;  }
.ftlinks a:hover{ color:var(--white); }
.ftbot{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:13px; }
.ftcopy{ font-size:10.5px; color:rgba(255,255,255,.18); }
.socs{ display:flex; gap:11px; }
.soc{ width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.36); text-decoration:none; font-size:12px; transition:all .3s;  }
.soc:hover{ border-color:var(--rose); color:var(--rose-l); }

@media(max-width:1100px){ .fttop{ grid-template-columns:1fr 1fr; } .subdomain-bar{ padding:7px 36px; } }
@media(max-width:768px){
  #nav{ padding:15px 24px; }
  .links{ display:none; } .mob{ display:flex; }
  sec{ padding:68px 24px; }
  .fttop{ grid-template-columns:1fr; gap:34px; }
  .subdomain-bar{ padding:6px 20px; font-size:9px; }
  .subdomain-bar .sd-tag span:not(:first-child){ display:none; }
}

/* ═══════ V2 REDESIGN COMPONENTS ═══════ */

/* Massive stacked display headline (Payer-style) */
.mega{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(64px,10vw,150px); line-height:.88; letter-spacing:-4px; color:var(--ink); }
.mega em{ color:var(--rose-d); font-style:normal; }
.mega-sub{ font-family:'Cormorant Garamond',serif; font-size:clamp(17px,1.6vw,21px); line-height:1.75; color:var(--mid); max-width:460px; }

/* Vertical phone marquee (Bloom-style hero) */
.vmq-wrap{ display:flex; gap:24px; height:780px; overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent); mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent); }
.vmq-col{ display:flex; flex-direction:column; gap:20px; animation:vscroll 34s linear infinite; }
.vmq-col.rev{ animation:vscrollrev 38s linear infinite; }
@keyframes vscroll{ from{transform:translateY(0)} to{transform:translateY(-50%)} }
@keyframes vscrollrev{ from{transform:translateY(-50%)} to{transform:translateY(0)} }
.vmq-phone{ width:285px; flex-shrink:0; background:transparent; border:none; border-radius:0; padding:0; box-shadow:none; overflow:visible; }
.vmq-screen{ overflow:visible; }
.vmq-screen img{ width:100%; display:block; filter:drop-shadow(0 24px 50px rgba(183,110,121,.26)); }

/* Avatar cluster (Payer trusted-by) */
.av-cluster{ display:flex; align-items:center; }
.av{ width:44px; height:44px; border-radius:50%; border:2.5px solid var(--ivory); background:linear-gradient(135deg,var(--rose-l),var(--cream)); display:flex; align-items:center; justify-content:center; font-family:'Instrument Serif',serif; font-style:italic; font-size:17px; color:var(--ink-s); margin-left:-12px; box-shadow:0 3px 10px rgba(183,110,121,.18); }
.av:first-child{ margin-left:0; }
.av.more{ background:var(--ink); color:var(--rose-l); font-size:12px; font-family:'Jost',sans-serif; font-style:normal; font-weight:600; }

/* Notification stack (Bloom nudge cards) */
.notif-stack{ display:flex; flex-direction:column; gap:14px; }
.notif{ background:var(--white); border:1px solid rgba(183,110,121,.12); border-radius:18px; padding:16px 20px; display:flex; gap:14px; align-items:flex-start; box-shadow:var(--sh); }
.notif .ichip{ width:40px; height:40px; border-radius:12px; }
.notif-t{ font-family:'Jost',sans-serif; font-size:13px; font-weight:500; color:var(--ink); display:flex; justify-content:space-between; gap:12px; }
.notif-t span{ font-weight:300; font-size:10.5px; color:var(--ghost); }
.notif-b{ font-family:'Cormorant Garamond',serif; font-size:14.5px; color:var(--mid); line-height:1.5; margin-top:2px; }

/* Live phone UI (Payer CSS-built mock) */
.live-phone{ width:280px; background:var(--ink); border-radius:44px; padding:10px; box-shadow:var(--shdk); margin:0 auto; }
.live-screen{ background:linear-gradient(170deg,#FDF3F0,#F9E8E6); border-radius:35px; padding:22px 18px 26px; }
.lp-status{ display:flex; justify-content:space-between; font-size:10px; color:var(--ink-s); font-weight:500; margin-bottom:18px; }
.lp-greet{ font-family:'Instrument Serif',serif; font-style:italic; font-size:21px; color:var(--ink); line-height:1.15; }
.lp-sub{ font-size:10px; color:var(--soft); margin-top:3px; margin-bottom:16px; }
.lp-card{ background:rgba(255,255,255,.7); border:1px solid rgba(183,110,121,.14); border-radius:16px; padding:14px 16px; margin-bottom:10px; }
.lp-lab{ font-size:8px; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); margin-bottom:5px; font-weight:600; }
.lp-big{ font-family:'Instrument Serif',serif; font-style:italic; font-size:19px; color:var(--ink); }
.lp-row{ display:flex; gap:10px; }
.lp-row .lp-card{ flex:1; }
.lp-pill{ display:inline-flex; align-items:center; gap:5px; font-size:8.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; background:rgba(183,110,121,.1); color:var(--rose-d); padding:4px 10px; border-radius:100px; }

/* Big stat trio (Showu) */
.stat-trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; text-align:center; }
.stat-t-num{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(46px,6vw,84px); line-height:1; color:var(--rose-d); }
.stat-t-cap{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--soft); margin-top:8px; font-weight:600; }

/* Numbered steps 01/02/03 (Showu) */
.step-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.step-c{ padding:36px 30px; border-radius:22px; background:var(--white); border:1px solid rgba(183,110,121,.09); transition:transform .35s,box-shadow .35s; }
.step-c:hover{ transform:translateY(-4px); box-shadow:var(--shh); }
.step-n{ font-family:'Instrument Serif',serif; font-style:italic; font-size:52px; color:rgba(183,110,121,.22); line-height:1; margin-bottom:16px; }
.step-c h4{ font-family:'Instrument Serif',serif; font-style:italic; font-size:22px; color:var(--ink); margin-bottom:9px; }
.step-c p{ font-family:'Cormorant Garamond',serif; font-size:15.5px; color:var(--mid); line-height:1.72; }

/* Testimonial masonry (Bloom) */
.masonry{ columns:3; column-gap:18px; }
.mas-c{ break-inside:avoid; margin-bottom:18px; background:var(--white); border:1px solid rgba(183,110,121,.09); border-radius:22px; overflow:hidden; transition:transform .35s,box-shadow .35s; }
.mas-c:hover{ transform:translateY(-4px); box-shadow:var(--shh); }
.mas-body{ padding:28px; }
.mas-q{ font-family:'Instrument Serif',serif; font-style:italic; font-size:19px; line-height:1.5; color:var(--ink); margin-bottom:18px; }
.mas-q.lg{ font-size:23px; }
.mas-a{ display:flex; align-items:center; gap:10px; }
.mas-img{ width:100%; height:190px; object-fit:cover; }
.mas-n{ font-size:12px; font-weight:600; color:var(--ink); }
.mas-r{ font-size:10px; color:var(--soft); }

/* FAQ accordion (shared) */
.faq-wrap{ max-width:800px; margin:56px auto 0; }
.faq-item{ border-bottom:1px solid rgba(122,90,72,.09); }
.faq-q{ width:100%; background:none; border:none;  display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-family:'Instrument Serif',serif; font-style:italic; font-size:21px; color:var(--ink); text-align:left; transition:color .3s; gap:16px; }
.faq-q:hover{ color:var(--rose-d); }
.faq-ic{ width:32px; height:32px; border-radius:50%; flex-shrink:0; border:1px solid rgba(122,90,72,.18); display:flex; align-items:center; justify-content:center; color:var(--mid); transition:all .35s cubic-bezier(.16,1,.3,1); font-size:17px; }
.faq-item.open .faq-ic{ background:var(--ink); color:var(--white); transform:rotate(45deg); border-color:var(--ink); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .44s cubic-bezier(.16,1,.3,1),padding .3s; }
.faq-item.open .faq-a{ max-height:220px; padding-bottom:22px; }
.faq-a p{ font-family:'Cormorant Garamond',serif; font-size:17px; line-height:1.8; color:var(--mid); }

/* Giant wordmark footer (Payer) */
.ft-mega{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(90px,16vw,240px); line-height:.85; color:rgba(232,180,184,.1); text-align:center; letter-spacing:-5px; padding-top:40px; user-select:none; }

/* App CTA band (Bloom / Showu) */
.cta-band{ max-width:1180px; margin:0 auto; background:linear-gradient(150deg,#F9E4E2,#F7E7CE); border-radius:32px; padding:80px 70px; position:relative; overflow:hidden; display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:50px; }
.cta-band::before{ content:''; position:absolute; inset:0; background-image:radial-gradient(circle, rgba(183,110,121,.13) 1px, transparent 1px); background-size:16px 16px; mask-image:radial-gradient(ellipse 70% 80% at 30% 50%, black, transparent 80%); }
.cta-band-h{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(38px,4.6vw,62px); line-height:.95; letter-spacing:-1.5px; color:var(--ink); margin-bottom:16px; position:relative; }
.cta-band-p{ font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--mid); line-height:1.75; margin-bottom:32px; position:relative; }
.cta-phone-tilt{ position:relative; display:flex; justify-content:center; }
.cta-phone-tilt img{ max-width:340px; filter:drop-shadow(0 40px 70px rgba(43,31,28,.28)); }

@media(max-width:1100px){
  .masonry{ columns:2; }
  .step-row{ grid-template-columns:1fr; }
  .cta-band{ grid-template-columns:1fr; padding:56px 36px; }
  .vmq-wrap{ height:640px; }
}
@media(max-width:768px){
  .masonry{ columns:1; }
  .stat-trio{ grid-template-columns:1fr; gap:34px; }
  .mega{ letter-spacing:-2px; }
  .vmq-wrap{ display:none; }
}

/* ═══════ MOTION LAYER (v3) ═══════ */
/* Content is VISIBLE by default. Hidden states only arm when JS is confirmed. */
[data-rv]{ opacity:1; transform:none; }
html.js [data-rv]{ opacity:0; transform:translateY(26px); }
html.js [data-rv][data-rv="left"]{ transform:translateX(-30px); }
html.js [data-rv][data-rv="right"]{ transform:translateX(30px); }
html.js [data-rv][data-rv="scale"]{ transform:scale(.94); }
html.js [data-rv][data-rv="blur"]{ opacity:0; filter:blur(14px); transform:translateY(20px); }
html.js [data-rv].in{
  opacity:1; transform:none; filter:none;
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1), filter .9s ease;
}
@media (prefers-reduced-motion: reduce){
  html.js [data-rv]{ opacity:1!important; transform:none!important; filter:none!important; }
  .vmq-col,.mqt,.blob,.float{ animation:none!important; }
}

/* stagger children */
html.js [data-stagger] > *{ opacity:0; transform:translateY(22px); }
html.js [data-stagger].in > *{ opacity:1; transform:none; transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
html.js [data-stagger].in > *:nth-child(1){ transition-delay:.05s }
html.js [data-stagger].in > *:nth-child(2){ transition-delay:.13s }
html.js [data-stagger].in > *:nth-child(3){ transition-delay:.21s }
html.js [data-stagger].in > *:nth-child(4){ transition-delay:.29s }
html.js [data-stagger].in > *:nth-child(5){ transition-delay:.37s }
html.js [data-stagger].in > *:nth-child(6){ transition-delay:.45s }

/* scroll progress */
#prog{ position:fixed; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--rose),var(--cream)); transform:scaleX(0); transform-origin:left; z-index:1200; }

/* cursor only on fine pointers, only once JS confirms */
html.has-cursor, html.has-cursor a, html.has-cursor button, html.has-cursor .magnet{ cursor:none; }
#cur,#curR{ display:none; }
html.has-cursor #cur{ display:block; position:fixed; width:7px; height:7px; background:var(--rose-d); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .25s,height .25s; }
html.has-cursor #curR{ display:block; position:fixed; width:32px; height:32px; border:1.5px solid rgba(154,88,98,.45); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s,border-color .3s; }
html.cur-lg #cur{ width:14px; height:14px; }
html.cur-lg #curR{ width:52px; height:52px; border-color:rgba(154,88,98,.75); }

/* nav condense on scroll */
#nav{ transition:padding .45s cubic-bezier(.16,1,.3,1), background .4s, box-shadow .4s; }
#nav.small{ padding-top:13px; padding-bottom:13px; box-shadow:0 6px 30px rgba(43,31,28,.07); background:rgba(255,252,249,.96); }

/* MOBILE MENU — real state machine */
.mob{ position:relative; z-index:1001; }
.mob span{ transition:transform .35s cubic-bezier(.16,1,.3,1), opacity .25s; }
body.nav-open .mob span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
body.nav-open .mob span:nth-child(2){ opacity:0; }
body.nav-open .mob span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
@media(max-width:900px){
  .links{
    display:flex!important; flex-direction:column; align-items:flex-start; gap:4px;
    position:fixed; top:0; left:0; right:0; bottom:0;
    background:var(--ivory); padding:110px 32px 40px; z-index:1000;
    transform:translateX(100%); transition:transform .5s cubic-bezier(.16,1,.3,1);
    overflow-y:auto;
  }
  body.nav-open .links{ transform:none; }
  body.nav-open{ overflow:hidden; }
  .links li{ width:100%; border-bottom:1px solid rgba(183,110,121,.1); }
  .links a{ display:block; padding:20px 0; font-size:20px; font-family:'Instrument Serif',serif; font-style:italic; color:var(--ink); letter-spacing:0; }
  .links a::after{ display:none; }
  .links .ncta{ margin-top:24px; justify-content:center; padding:16px 28px; font-size:11px; }
  .links li:last-child{ border:none; }
}
@media(min-width:901px){ .mob{ display:none!important; } }

/* floating gradient blobs */
.blob{ position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:0; }
.blob.b1{ width:460px; height:460px; background:rgba(232,180,184,.4); animation:drift1 22s ease-in-out infinite; }
.blob.b2{ width:380px; height:380px; background:rgba(247,231,206,.55); animation:drift2 27s ease-in-out infinite; }
@keyframes drift1{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(50px,-40px) scale(1.12)} }
@keyframes drift2{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-45px,45px) scale(1.08)} }

/* generic float */
.float{ animation:floaty 7s ease-in-out infinite; }
.float.d1{ animation-delay:-2.3s } .float.d2{ animation-delay:-4.6s }
@keyframes floaty{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }

/* scrub-driven (uses --p 0→1 from JS) */
[data-scrub]{ will-change:transform; }
.scrub-scale{ transform:scale(calc(.86 + var(--p,0) * .14)); }
.scrub-rise{ transform:translateY(calc((1 - var(--p,0)) * 60px)); }
[data-px]{ will-change:transform; }

/* text mask reveal for big headlines */
.line-mask{ display:block; overflow:hidden; }
.line-mask > span{ display:block; }
html.js [data-rv="lines"] .line-mask > span{ transform:translateY(105%); }
html.js [data-rv="lines"].in .line-mask > span{ transform:none; transition:transform 1.05s cubic-bezier(.16,1,.3,1); }
html.js [data-rv="lines"].in .line-mask:nth-child(2) > span{ transition-delay:.1s }
html.js [data-rv="lines"].in .line-mask:nth-child(3) > span{ transition-delay:.2s }

/* underline sweep links */
.sweep{ position:relative; }
.sweep::after{ content:''; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:var(--rose-d); transform:scaleX(0); transform-origin:right; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.sweep:hover::after{ transform:scaleX(1); transform-origin:left; }

/* pinned sticky showcase */
.pin-wrap{ position:relative; }
.pin-stick{ position:sticky; top:0; height:100vh; display:flex; align-items:center; overflow:hidden; }
@media(max-width:900px){ .pin-stick{ position:relative; height:auto; padding:60px 0; } }

/* ═══ MOBILE MENU HARD FIX ═══ */
@media(max-width:900px){
  #nav{ z-index:1100; }
  .mob{ display:flex!important; position:fixed; top:14px; right:20px; z-index:1300;
        width:44px; height:44px; align-items:center; justify-content:center; gap:5px;
        background:rgba(255,252,249,.9); border:1px solid rgba(183,110,121,.18);
        border-radius:50%; backdrop-filter:blur(12px); }
  body.nav-open .mob{ background:transparent; border-color:transparent; }
  .links{
    display:flex!important; flex-direction:column; align-items:stretch; gap:0;
    position:fixed!important; top:0!important; left:0!important; right:0!important; bottom:0!important;
    width:100vw; height:100vh; height:100dvh;
    background:#FFFCF9!important; background-image:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(232,180,184,.22),transparent 60%)!important;
    padding:96px 28px 40px!important; margin:0!important; z-index:1200!important;
    transform:translateY(-100%); opacity:0; visibility:hidden;
    transition:transform .55s cubic-bezier(.16,1,.3,1), opacity .35s ease, visibility 0s .55s;
    overflow-y:auto; list-style:none;
  }
  body.nav-open .links{ transform:none; opacity:1; visibility:visible; transition:transform .55s cubic-bezier(.16,1,.3,1), opacity .3s ease, visibility 0s 0s; }
  .links li{ width:100%; border-bottom:1px solid rgba(183,110,121,.12); opacity:0; transform:translateY(16px); }
  body.nav-open .links li{ opacity:1; transform:none; transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1); }
  body.nav-open .links li:nth-child(1){transition-delay:.10s} body.nav-open .links li:nth-child(2){transition-delay:.16s}
  body.nav-open .links li:nth-child(3){transition-delay:.22s} body.nav-open .links li:nth-child(4){transition-delay:.28s}
  body.nav-open .links li:nth-child(5){transition-delay:.34s} body.nav-open .links li:nth-child(6){transition-delay:.40s}
  .links a{ display:block; padding:22px 4px; font-family:'Instrument Serif',serif; font-style:italic;
            font-size:28px; letter-spacing:-.5px; color:var(--ink)!important; text-transform:none; font-weight:400; }
  .links a.active{ color:var(--rose-d)!important; }
  .links a::after{ display:none!important; }
  .links li:last-child{ border:none; margin-top:28px; }
  .links .ncta{ display:flex!important; justify-content:center; padding:18px 30px!important;
                font-family:'Jost',sans-serif!important; font-style:normal!important;
                font-size:11px!important; letter-spacing:.12em; text-transform:uppercase;
                color:#fff!important; background:var(--rose); border-radius:100px; }
}

/* Apple auto-renewal disclosure */
.renew-disclosure{ max-width:820px; margin:34px auto 0; text-align:center; padding:26px 32px; background:var(--sand); border:1px solid rgba(183,110,121,.12); border-radius:18px; }
.renew-disclosure p{ font-family:'Cormorant Garamond',serif; font-size:15px; line-height:1.7; color:var(--mid); margin:0; }
.renew-links{ margin-top:16px; display:flex; align-items:center; justify-content:center; gap:14px; font-size:12px; letter-spacing:.04em; }
.renew-links a{ color:var(--rose-d); text-decoration:none; font-weight:500; }
.renew-links span{ color:var(--ghost); }

/* ============================================================
   ADARA — cookie consent, preferences, lead-magnet popup, newsletter
   (uses existing tokens: --rose, --ink, --cream, --sand, --ivory ...)
   ============================================================ */

/* shared buttons */
.adr-btn{ font-family:'Jost',sans-serif; font-size:12px; font-weight:600; letter-spacing:.06em; padding:12px 22px; border-radius:100px; border:1px solid transparent; cursor:pointer; transition:background .25s,color .25s,border-color .25s,transform .2s; white-space:nowrap; }
.adr-btn:hover{ transform:translateY(-1px); }
.adr-solid{ background:var(--rose); color:#fff; }
.adr-solid:hover{ background:var(--rose-d); }
.adr-ghost{ background:transparent; color:var(--ink-s); border-color:rgba(43,31,28,.18); }
.adr-ghost:hover{ border-color:var(--rose); color:var(--rose-d); }
.adr-block{ display:block; width:100%; text-align:center; }
.adr-eyebrow{ font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--rose-d); margin-bottom:12px; }

/* consent banner */
.adr-cc{ position:fixed; left:0; right:0; bottom:0; z-index:12000; padding:0 20px 20px; transform:translateY(120%); transition:transform .5s cubic-bezier(.16,1,.3,1); }
.adr-cc.show{ transform:translateY(0); }
.adr-cc-in{ max-width:1120px; margin:0 auto; background:var(--ivory); border:1px solid rgba(183,110,121,.2); border-radius:20px; box-shadow:0 30px 80px rgba(43,31,28,.20); padding:24px 28px; display:flex; align-items:center; gap:28px; }
.adr-cc-txt strong{ display:block; font-family:'Instrument Serif',serif; font-style:italic; font-size:20px; color:var(--ink); margin-bottom:6px; }
.adr-cc-txt p{ font-size:13px; line-height:1.6; color:var(--mid); max-width:640px; }
.adr-cc-txt a{ color:var(--rose-d); text-decoration:underline; text-underline-offset:2px; }
.adr-cc-btns{ display:flex; gap:10px; flex-shrink:0; }
@media(max-width:820px){ .adr-cc-in{ flex-direction:column; align-items:stretch; gap:16px; } .adr-cc-btns{ flex-wrap:wrap; } .adr-cc-btns .adr-btn{ flex:1; } }

/* preferences modal */
.adr-modal-ov{ position:fixed; inset:0; z-index:12500; background:rgba(43,31,28,.5); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .3s; }
.adr-modal-ov.show{ opacity:1; }
.adr-modal{ background:var(--ivory); border-radius:22px; max-width:540px; width:100%; max-height:88vh; overflow-y:auto; padding:34px 34px 28px; position:relative; box-shadow:0 40px 100px rgba(43,31,28,.3); transform:translateY(16px) scale(.98); transition:transform .3s cubic-bezier(.16,1,.3,1); }
.adr-modal-ov.show .adr-modal{ transform:translateY(0) scale(1); }
.adr-modal h3{ font-family:'Instrument Serif',serif; font-style:italic; font-size:28px; color:var(--ink); margin-bottom:8px; }
.adr-modal-sub{ font-size:13px; line-height:1.6; color:var(--mid); margin-bottom:22px; }
.adr-modal-sub a,.adr-fineprint a{ color:var(--rose-d); text-decoration:underline; text-underline-offset:2px; }
.adr-x{ position:absolute; top:18px; right:20px; width:34px; height:34px; border-radius:50%; border:1px solid rgba(43,31,28,.14); background:#fff; color:var(--ink); font-size:20px; line-height:1; cursor:pointer; transition:background .2s,color .2s; }
.adr-x:hover{ background:var(--rose); color:#fff; border-color:var(--rose); }
.adr-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:16px 0; border-top:1px solid rgba(183,110,121,.14); }
.adr-row-t{ display:block; font-weight:600; font-size:13.5px; color:var(--ink); margin-bottom:3px; }
.adr-row-d{ display:block; font-size:12px; line-height:1.5; color:var(--mid); }
.adr-modal-btns{ display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }
.adr-modal-btns .adr-btn{ flex:1; }

/* toggle switch */
.adr-sw{ position:relative; width:46px; height:26px; flex-shrink:0; margin-top:2px; }
.adr-sw input{ opacity:0; width:0; height:0; position:absolute; }
.adr-slider{ position:absolute; inset:0; background:var(--ghost); border-radius:100px; transition:background .25s; cursor:pointer; }
.adr-slider::before{ content:''; position:absolute; height:20px; width:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .25s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.adr-sw input:checked + .adr-slider{ background:var(--rose); }
.adr-sw input:checked + .adr-slider::before{ transform:translateX(20px); }
.adr-sw.locked .adr-slider{ background:var(--rose-l); cursor:not-allowed; opacity:.8; }

/* reopen settings pill */
.adr-reopen{ position:fixed; left:18px; bottom:18px; z-index:11000; display:inline-flex; align-items:center; gap:8px; font-family:'Jost',sans-serif; font-size:11px; font-weight:500; letter-spacing:.04em; color:var(--mid); background:var(--ivory); border:1px solid rgba(183,110,121,.22); border-radius:100px; padding:9px 15px; cursor:pointer; box-shadow:0 8px 26px rgba(43,31,28,.12); transition:color .2s,border-color .2s,transform .2s; opacity:.85; }
.adr-reopen:hover{ color:var(--rose-d); border-color:var(--rose); transform:translateY(-1px); opacity:1; }
.adr-reopen-dot{ width:7px; height:7px; border-radius:50%; background:var(--rose); }
@media(max-width:600px){ .adr-reopen{ font-size:0; padding:11px; gap:0; } .adr-reopen-dot{ width:9px; height:9px; } }

/* lead-magnet popup */
.adr-lm-ov{ position:fixed; inset:0; z-index:13000; background:rgba(43,31,28,.55); backdrop-filter:blur(5px); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .35s; }
.adr-lm-ov.show{ opacity:1; }
.adr-lm{ position:relative; display:flex; background:var(--ivory); border-radius:26px; max-width:760px; width:100%; overflow:hidden; box-shadow:0 50px 120px rgba(43,31,28,.4); transform:translateY(18px) scale(.97); transition:transform .4s cubic-bezier(.16,1,.3,1); }
.adr-lm-ov.show .adr-lm{ transform:translateY(0) scale(1); }
.adr-lm-art{ width:44%; flex-shrink:0; background:linear-gradient(160deg,#F3D4D7,#E8B4B8); display:flex; align-items:center; justify-content:center; padding:34px 22px; }
.adr-lm-art img{ width:100%; max-width:210px; height:auto; filter:drop-shadow(0 24px 44px rgba(43,31,28,.28)); border-radius:8px; }
.adr-lm-body{ padding:40px 38px; flex:1; }
.adr-lm-body h3{ font-family:'Instrument Serif',serif; font-style:italic; font-size:30px; line-height:1.05; color:var(--ink); margin-bottom:12px; }
.adr-lm-body > p{ font-size:14px; line-height:1.65; color:var(--mid); margin-bottom:20px; }
.adr-lm-x{ z-index:2; }

/* forms (popup + newsletter) */
.adr-form input{ width:100%; font-family:'Jost',sans-serif; font-size:14px; color:var(--ink); background:#fff; border:1px solid rgba(183,110,121,.28); border-radius:12px; padding:13px 16px; margin-bottom:11px; transition:border-color .2s,box-shadow .2s; }
.adr-form input:focus{ outline:none; border-color:var(--rose); box-shadow:0 0 0 3px rgba(183,110,121,.14); }
.adr-form input::placeholder{ color:var(--soft); }
.adr-form .adr-btn{ margin-top:4px; }
.adr-form-msg{ font-size:12px; margin-top:10px; min-height:16px; }
.adr-form-msg.err{ color:#B4433F; }
.adr-form-msg.ok{ color:#5C7A56; }
.adr-fineprint{ font-size:10.5px; line-height:1.5; color:var(--soft); margin-top:14px; }
@media(max-width:640px){ .adr-lm{ flex-direction:column; max-width:420px; } .adr-lm-art{ width:100%; padding:26px; } .adr-lm-art img{ max-width:150px; } .adr-lm-body{ padding:30px 26px; } }

/* newsletter section (above footer) */
.nlsec{ position:relative; background:linear-gradient(150deg,var(--ink) 0%,var(--ink-s) 55%,#7A4A45 100%); color:#fff; padding:96px 64px; overflow:hidden; }
.nlsec::before{ content:''; position:absolute; top:-40%; right:-10%; width:520px; height:520px; background:radial-gradient(circle,rgba(232,180,184,.22),transparent 70%); pointer-events:none; }
.nlsec-in{ max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; position:relative; }
.nlsec-eye{ font-size:11px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--rose-l); border-top:1px solid var(--rose-l); border-bottom:1px solid var(--rose-l); padding:5px 0; display:inline-block; margin-bottom:22px; }
.nlsec h2{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(2.2rem,4.4vw,3.4rem); line-height:1.02; letter-spacing:-1px; margin-bottom:18px; }
.nlsec h2 em{ color:var(--rose-l); font-style:italic; }
.nlsec-sub{ font-family:'Cormorant Garamond',serif; font-size:1.12rem; line-height:1.6; color:rgba(255,255,255,.72); max-width:460px; }
.nlsec-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:22px; padding:32px 30px; backdrop-filter:blur(6px); }
.nlsec-card .adr-form input{ background:rgba(255,255,255,.94); border-color:transparent; }
.nlsec-card .adr-fineprint{ color:rgba(255,255,255,.5); }
.nlsec-card .adr-fineprint a{ color:var(--rose-l); }
.nlsec-card .adr-form-msg.ok{ color:#EAD9BF; }
@media(max-width:900px){ .nlsec{ padding:72px 28px; } .nlsec-in{ grid-template-columns:1fr; gap:34px; } }
