:root{
  /* ---- Brand colours (use sparingly) ---- */
  --cream:#faf6f1; --cream-2:#f5efe8; --cream-3:#fdfaf5;
  --plum-ink:#241e28; --plum-soft:#685871;
  --lavender:#b7a6c9; --lavender-light:#ded4e6; --lavender-bg:#efe9f3;
  --gold:#c2a878; --gold-soft:#dcc9a4;

  /* ---- Neutral scale (for everything that isn't a Lumi moment) ---- */
  --line:rgba(36,30,40,.10); --line-strong:rgba(36,30,40,.18);
  --text-soft:rgba(36,30,40,.72); --text-faint:rgba(36,30,40,.50);
  --neutral-bg:rgba(36,30,40,.04); --neutral-bg-hover:rgba(36,30,40,.07);

  /* ---- Shadows ---- */
  --shadow:0 24px 60px rgba(36,30,40,.10); --shadow-sm:0 12px 32px rgba(36,30,40,.08);

  /* ---- Radius scale (4 values only) ---- */
  --radius-sm:8px;    /* tiny chips, pills inside cards */
  --radius:16px;      /* default for buttons/inputs/inline cards */
  --radius-lg:24px;   /* main section cards */
  --radius-xl:32px;   /* hero cards, modals */
  --radius-pill:100px; /* fully rounded */

  /* ---- Spacing scale (8px-based) ---- */
  --space-1:4px;   --space-2:8px;   --space-3:12px;  --space-4:16px;
  --space-5:20px;  --space-6:24px;  --space-8:32px;  --space-10:40px;
  --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px;

  /* ---- Type weights (3 only) ---- */
  --fw-body:400;     /* default text */
  --fw-emph:600;     /* emphasis, labels, buttons, titles */
  --fw-strong:700;   /* strong emphasis, headlines, eyebrows */
  /* (No 500 / 800 anywhere — they read inconsistent) */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Manrope",sans-serif; color:var(--plum-ink); line-height:1.55;
  background:linear-gradient(180deg,var(--cream-3) 0%,var(--cream) 40%,#f7f0e6 100%) no-repeat;
  background-color:var(--cream);
  min-height:100vh;
}
.serif{font-family:"Cormorant Garamond",Georgia,serif}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:700;color:var(--text-faint)}
a{color:inherit;text-decoration:none}

/* NAV */
.topbar{position:sticky;top:0;z-index:50;background:rgba(250,246,241,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:11px}
.brand-mark{width:44px;height:38px;object-fit:contain}
.brand-name{font-family:"Cormorant Garamond",serif;font-size:27px;font-weight:600;letter-spacing:.01em}
.navlinks{display:flex;gap:34px;font-size:14px;font-weight:600}
.navlinks a{color:var(--text-soft);transition:color .2s}
.navlinks a:hover{color:var(--plum-ink)}
.nav-cta{display:flex;align-items:center;gap:14px}
.btn{display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:14px;border-radius:100px;padding:12px 24px;transition:transform .15s,box-shadow .2s,background .2s}
.btn-primary{background:var(--plum-ink);color:var(--cream)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(36,30,40,.25)}
.btn-ghost{background:transparent;color:var(--plum-ink);border:1px solid var(--line-strong)}
.btn-ghost:hover{background:rgba(36,30,40,.04)}
.btn-lav{background:var(--lavender);color:#fff}
.btn-lav:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(183,166,201,.45)}

/* HERO */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:72px 0 60px;position:relative;overflow:hidden}
.hero > *:not(.hero-decor){position:relative;z-index:1}
.hero .hero-decor{position:absolute;pointer-events:none;z-index:0}
.hero .hero-decor svg{width:100%;height:100%;display:block}
.hero-decor-tr{top:-30px;right:-40px;width:380px;height:380px;opacity:.85}
.hero-decor-bl{bottom:-40px;left:-50px;width:340px;height:340px;opacity:.7}
@media(max-width:900px){
  .hero-decor-tr{width:240px;height:240px;top:-10px;right:-50px;opacity:.6}
  .hero-decor-bl{display:none}
}
.hero-eyebrow{margin-bottom:20px}
.hero h1{font-family:"Cormorant Garamond",serif;font-size:64px;line-height:1.04;font-weight:600;letter-spacing:-.01em;margin-bottom:22px}
.hero h1 em{font-style:italic;color:var(--plum-soft)}
.hero p.lead{font-size:18px;color:var(--text-soft);max-width:480px;margin-bottom:32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-trust{display:flex;gap:26px;margin-top:36px;flex-wrap:wrap}
.hero-trust div{font-size:13px;color:var(--text-faint);display:flex;align-items:center;gap:7px}
.hero-trust b{color:var(--plum-ink);font-size:20px;font-family:"Cormorant Garamond",serif;font-weight:700}
/* Lumi orb card */
.lumi-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:30px;border:1px solid rgba(255,255,255,.7);position:relative;overflow:hidden}
.lumi-card::before{content:"";position:absolute;top:-60px;right:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--lavender-light),transparent 70%);opacity:.7}
.lumi-head{display:flex;align-items:center;gap:13px;margin-bottom:18px;position:relative}
.orb{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--lavender) 60%,var(--plum-soft));box-shadow:0 0 0 6px var(--lavender-bg),0 8px 20px rgba(183,166,201,.5);flex-shrink:0;animation:pulse 3.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 6px var(--lavender-bg),0 8px 20px rgba(183,166,201,.5)}50%{box-shadow:0 0 0 10px rgba(222,212,230,.5),0 8px 26px rgba(183,166,201,.65)}}
.lumi-name{font-weight:700;font-size:15px}
.lumi-sub{font-size:12px;color:var(--text-faint)}
.lumi-bubble{background:var(--cream);border-radius:16px 16px 16px 4px;padding:15px 17px;font-size:14.5px;color:var(--text-soft);position:relative;margin-bottom:11px}
.lumi-bubble.user{background:var(--lavender-bg);border-radius:16px 16px 4px 16px;margin-left:38px;color:var(--plum-ink)}
.typing{display:inline-flex;gap:4px;padding:3px 0}
.typing span{width:6px;height:6px;border-radius:50%;background:var(--lavender);animation:blink 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

/* SECTION shells */
section.block{padding:64px 0}
.sec-head{text-align:center;max-width:640px;margin:0 auto 44px}
.sec-head h2{font-family:"Cormorant Garamond",serif;font-size:44px;font-weight:600;line-height:1.1;margin:12px 0 14px}
.sec-head p{color:var(--text-soft);font-size:16px}

/* PHASE PICKER */
.phase-shell{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(255,255,255,.6)}
.phase-top{padding:30px 34px 22px;border-bottom:1px solid var(--line)}
.phase-top .eyebrow{margin-bottom:8px}
.phase-q{font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:22px 34px 26px}
.chip{border:1px solid var(--line-strong);background:transparent;border-radius:100px;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--text-soft);transition:all .18s}
.chip:hover{border-color:var(--plum-soft);color:var(--plum-ink);background:var(--neutral-bg)}
.chip.active{background:var(--plum-ink);color:var(--cream);border-color:var(--plum-ink);box-shadow:0 0 0 2px var(--gold-soft)}
/* result grid */
.phase-result{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.pr-col{padding:30px 34px}
.pr-col+.pr-col{border-left:1px solid var(--line)}
.pr-lumi{display:flex;gap:13px;align-items:flex-start;margin-bottom:18px}
.pr-lumi .orb{width:38px;height:38px;animation:none;box-shadow:0 0 0 5px var(--lavender-bg)}
.pr-tone{font-family:"Cormorant Garamond",serif;font-size:22px;font-weight:600;line-height:1.25;margin-bottom:6px}
.pr-lens{font-size:14px;color:var(--plum-soft);font-style:italic}
.pr-focus{font-size:14.5px;color:var(--text-soft);margin:16px 0 4px}
.pr-list-title{font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:var(--text-faint);margin:20px 0 10px;display:flex;align-items:center;gap:8px}
.pr-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.pr-list li{font-size:14px;color:var(--text-soft);padding-left:22px;position:relative;line-height:1.45}
.pr-list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--plum-soft)}
.pr-list.move li::before{background:var(--gold)}

/* THE EDIT */
.edit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pcard{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid var(--line);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.pcard-img{height:180px;background:var(--cream-2);display:flex;align-items:center;justify-content:center;padding:18px;position:relative}
.pcard-img img{max-height:100%;max-width:100%;object-fit:contain;mix-blend-mode:multiply}
.badge{position:absolute;top:14px;left:14px;background:var(--plum-ink);color:var(--cream);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:100px;z-index:2;box-shadow:0 2px 8px rgba(36,30,40,.18)}
.badge.match{background:var(--gold);color:var(--plum-ink);left:auto;right:14px}
.pcard-body{padding:20px;display:flex;flex-direction:column;flex:1}
.pcard-brand{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:700;color:var(--text-faint);margin-bottom:5px}
.pcard-title{font-family:"Cormorant Garamond",serif;font-size:21px;font-weight:600;line-height:1.2;margin-bottom:12px}
.pcard-why{background:var(--cream-2);border-radius:16px;padding:13px 15px;margin-bottom:14px}
.pcard-why .wl{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--plum-soft);margin-bottom:6px}
.pcard-why .wl .orb{width:18px;height:18px;animation:none;box-shadow:0 0 0 3px #fff}
.pcard-why p{font-size:13px;color:var(--text-soft);line-height:1.5}
.pcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.price{font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:700}
.price small{font-size:13px;color:var(--text-faint);font-family:"Manrope"}

/* PILLARS */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pillar{text-align:center;padding:30px 24px;background:#fff;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.pillar-ic{width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:var(--cream-2);display:flex;align-items:center;justify-content:center}
/* line-icon system */
.ic{width:15px;height:15px;flex-shrink:0;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ic-lav{stroke:var(--lavender)} .ic-gold{stroke:var(--gold)} .ic-plum{stroke:var(--plum-soft)}
.ic-lg{width:27px;height:27px;fill:none;stroke:var(--plum-soft);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ic-info{width:14px;height:14px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;margin-top:1px}
.pillar h3{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600;margin-bottom:8px}
.pillar p{font-size:14px;color:var(--text-soft)}

/* COMMUNITY */
.composer{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px;max-width:760px;margin:0 auto 34px}
.composer-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.02em}
.avatar.you{background:var(--plum-ink);color:var(--cream)}
.avatar.member{background:var(--cream-2);color:var(--plum-soft);border:1px solid var(--line)}
.composer-head input{flex:1;border:none;font-family:"Cormorant Garamond",serif;font-size:21px;font-weight:600;color:var(--plum-ink);outline:none;background:transparent}
.composer-head input::placeholder{color:var(--text-faint)}
.composer textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:13px 15px;font-family:inherit;font-size:14.5px;color:var(--text-soft);resize:vertical;outline:none;background:var(--cream-3)}
.composer textarea:focus{border-color:var(--plum-soft)}
.composer-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;flex-wrap:wrap;gap:12px}
.phase-pick{display:flex;align-items:center;gap:6px}
.phase-pick select{border:1px solid var(--line-strong);border-radius:100px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-soft);background:#fff;cursor:pointer;outline:none}
.feed{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.post{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.post-main{padding:22px 24px}
.post-top{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.post-who{flex:1}
.post-author{font-weight:700;font-size:14px}
.post-meta{font-size:12px;color:var(--text-faint)}
.tag{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--plum-soft);background:var(--cream-2);padding:4px 10px;border-radius:100px}
.post-title{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600;line-height:1.2;margin-bottom:8px}
.post-body{font-size:14.5px;color:var(--text-soft);line-height:1.55}
/* replies */
.replies{background:var(--cream);border-top:1px solid var(--line);padding:18px 24px}
.reply{display:flex;gap:12px;padding:12px 0}
.reply+.reply{border-top:1px solid var(--line)}
.reply-body{flex:1}
.reply-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.reply-author{font-weight:700;font-size:13px}
.reply-time{font-size:11.5px;color:var(--text-faint)}
.reply-text{font-size:13.5px;color:var(--text-soft);line-height:1.5}
.ai-badge{font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--lavender);color:#fff;padding:3px 8px;border-radius:100px}
.reply.lumi .reply-text{background:var(--lavender-bg);border-radius:8px 14px 14px 14px;padding:11px 14px}
.reply .orb{width:34px;height:34px;animation:none;box-shadow:0 0 0 4px var(--lavender-bg)}
.reply-actions{display:flex;align-items:center;gap:14px;margin-top:8px}
.reply-act{font-size:12px;font-weight:700;color:var(--text-faint);cursor:pointer;background:none;border:none;font-family:inherit;display:flex;align-items:center;gap:5px}
.reply-act:hover{color:var(--plum-soft)}
.reply-compose{display:flex;gap:9px;padding:14px 24px;border-top:1px solid var(--line);background:var(--cream)}
.reply-compose input{flex:1;border:1px solid var(--line-strong);border-radius:100px;padding:10px 16px;font-family:inherit;font-size:13.5px;outline:none}
.reply-compose input:focus{border-color:var(--plum-soft)}

/* LUMI SECTION (persona) */
.lumi-feature{background:linear-gradient(135deg,var(--plum-ink),#3a3142);border-radius:var(--radius-lg);padding:56px;color:var(--cream);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;position:relative;overflow:hidden}
.lumi-feature::after{content:"";position:absolute;bottom:-120px;left:-80px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(183,166,201,.35),transparent 70%)}
.lf-left{position:relative;z-index:2;min-width:0}
.lf-chat{min-width:0}
.lf-left .eyebrow{color:var(--lavender-light);margin-bottom:14px}
.lf-left h2{font-family:"Cormorant Garamond",serif;font-size:42px;font-weight:600;line-height:1.1;margin-bottom:18px}
.lf-left p{color:rgba(250,246,241,.78);font-size:16px;margin-bottom:16px}
.lf-principles{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:24px}
.lf-principles li{display:flex;gap:12px;font-size:14.5px;color:rgba(250,246,241,.9)}
.lf-principles li span{color:var(--lavender-light);font-weight:700}
.lf-chat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:24px;position:relative;z-index:2;backdrop-filter:blur(6px)}
.lf-chat .lumi-bubble{background:rgba(255,255,255,.1);color:rgba(250,246,241,.92)}
.lf-chat .lumi-bubble.user{background:var(--lavender);color:var(--plum-ink)}
.lf-disc{font-size:12px;color:rgba(250,246,241,.55);margin-top:16px;display:flex;gap:8px;align-items:flex-start}

/* FOOTER */
footer{background:var(--plum-ink);color:rgba(250,246,241,.7);padding:56px 0 32px;margin-top:40px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.foot-brand .brand-name{color:var(--cream)}
.foot-brand p{font-size:13.5px;margin-top:14px;max-width:280px}
.foot-col h4{color:var(--cream);font-size:12px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:16px}
.foot-col a{display:block;font-size:14px;margin-bottom:10px;color:rgba(250,246,241,.7);transition:color .2s}
.foot-col a:hover{color:var(--cream)}
.foot-bottom{border-top:1px solid rgba(250,246,241,.14);padding-top:24px;display:flex;justify-content:space-between;font-size:12.5px;flex-wrap:wrap;gap:12px;color:rgba(250,246,241,.5)}
.compliance{background:rgba(250,246,241,.06);border-radius:16px;padding:16px 20px;font-size:12.5px;line-height:1.6;margin-bottom:32px;color:rgba(250,246,241,.6);border:1px solid rgba(250,246,241,.1)}

section.block{scroll-margin-top:86px}
section[id]{scroll-margin-top:86px}
@media(max-width:980px){
  .hero,.phase-result,.lumi-feature{grid-template-columns:1fr}
  .edit-grid,.pillars{grid-template-columns:1fr}
  .pr-col+.pr-col{border-left:none;border-top:1px solid var(--line)}
  .navlinks{display:none}
  .hero h1{font-size:46px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .lumi-feature{padding:36px 26px}
}
@media(max-width:600px){
  .wrap{padding:0 20px}
  .nav{height:64px}
  .brand-name{font-size:22px}
  .brand-mark{width:36px;height:32px;object-fit:contain}
  .nav-cta .btn-ghost{display:none}            /* hide Sign in on phones */
  .nav-cta .btn-primary{padding:10px 16px;font-size:13px}
  section.block{padding:44px 0}
  .hero{padding:36px 0 40px;gap:32px}
  .hero h1{font-size:38px}
  .hero p.lead{font-size:16px}
  .sec-head h2{font-size:32px}
  .lumi-feature{padding:30px 20px;gap:28px}
  .lf-left h2{font-size:30px}
  .lumi-card,.phase-shell{border-radius:24px}
  .lumi-card{padding:22px}
  .phase-top,.chips,.pr-col{padding-left:22px;padding-right:22px}
  .pcard-img{height:200px}
  .foot-grid{grid-template-columns:1fr;gap:28px}
  .hero-trust{gap:14px}
  .lumi-feature h2,.lf-left h2{word-break:normal}
}

/* ===== SHOP / CART / AUTH / MODAL (shop-v6) ===== */
.shop-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:46px 0 26px}
.shop-head h1{font-family:"Cormorant Garamond",serif;font-size:46px;font-weight:600;line-height:1.05}
.shop-head p{color:var(--text-soft);font-size:15px;max-width:440px;margin-top:8px}
.shop-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:30px}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:60px}
.cart-count-pill{background:var(--plum-ink);color:var(--cream);border-radius:100px;font-size:11px;font-weight:700;padding:2px 8px;margin-left:6px}
/* product detail + cart drawer overlay */
.overlay{position:fixed;inset:0;background:rgba(36,30,40,.5);backdrop-filter:blur(3px);z-index:100;opacity:0;pointer-events:none;transition:opacity .25s}
.overlay.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:420px;max-width:92vw;background:var(--cream);z-index:101;box-shadow:-20px 0 60px rgba(36,30,40,.2);transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}
.drawer-head h3{font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:600}
.drawer-x{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-faint);line-height:1}
.drawer-body{flex:1;overflow-y:auto;padding:20px 24px}
.drawer-foot{border-top:1px solid var(--line);padding:20px 24px;background:#fff}
/* modal (product detail + auth) */
.modal{position:fixed;inset:0;z-index:101;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .25s}
.modal.open{opacity:1;pointer-events:auto}
.modal-card{background:var(--cream);border-radius:var(--radius-lg);max-width:880px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-strong);position:relative}
.modal-card.sm{max-width:420px}
.modal-x{position:absolute;top:18px;right:20px;background:rgba(255,255,255,.7);border:none;width:34px;height:34px;border-radius:50%;font-size:20px;cursor:pointer;color:var(--plum-ink);z-index:2}
.pd-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:0}
.pd-img{background:var(--cream-2);display:flex;align-items:center;justify-content:center;padding:40px;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}
.pd-img img{max-width:100%;max-height:340px;object-fit:contain;mix-blend-mode:multiply}
.pd-body{padding:34px 36px}
.pd-brand{font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--text-faint)}
.pd-title{font-family:"Cormorant Garamond",serif;font-size:32px;font-weight:600;line-height:1.1;margin:6px 0 10px}
.pd-price{font-family:"Cormorant Garamond",serif;font-size:28px;font-weight:700;margin-bottom:16px}
.pd-price small{font-size:14px;color:var(--text-faint);font-family:"Manrope"}
.pd-desc{font-size:14.5px;color:var(--text-soft);line-height:1.55;margin-bottom:18px}
.pd-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:700;color:var(--text-faint);margin:20px 0 10px}
.lumi-review{background:linear-gradient(135deg,var(--plum-ink),#3a3142);color:var(--cream);border-radius:var(--radius);padding:20px 22px;margin:18px 0}
.lumi-review-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.lumi-review-head .orb{width:30px;height:30px;animation:none;box-shadow:0 0 0 4px rgba(183,166,201,.25)}
.lumi-review-head .nm{font-weight:700;font-size:14px}
.lumi-review-head .ai-badge{background:var(--lavender)}
.lumi-review p{font-size:14px;line-height:1.55;color:rgba(250,246,241,.92)}
.stars{color:var(--gold);letter-spacing:2px;font-size:14px}
.review{padding:13px 0;border-top:1px solid var(--line)}
.review-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.review-author{font-weight:700;font-size:13px}
.review-text{font-size:13.5px;color:var(--text-soft);line-height:1.5}
.cart-line{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.cart-line img{width:54px;height:54px;object-fit:contain;mix-blend-mode:multiply;background:var(--cream-2);border-radius:16px;padding:4px}
.cart-line-info{flex:1}
.qty{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-strong);border-radius:100px;padding:3px 10px;margin-top:6px}
.qty button{background:none;border:none;cursor:pointer;font-size:15px;color:var(--plum-soft);line-height:1}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;font-weight:700;color:var(--text-soft);margin-bottom:6px}
.field input{width:100%;border:1px solid var(--line-strong);border-radius:16px;padding:11px 14px;font-family:inherit;font-size:14px;outline:none}
.field input:focus{border-color:var(--plum-soft)}
.auth-tabs{display:flex;gap:6px;background:var(--cream-2);border-radius:100px;padding:4px;margin-bottom:22px}
.auth-tab{flex:1;text-align:center;padding:9px;border-radius:100px;font-weight:700;font-size:13.5px;cursor:pointer;border:none;background:none;color:var(--text-soft)}
.auth-tab.active{background:#fff;color:var(--plum-ink);box-shadow:var(--shadow-sm)}
.auth-note{font-size:11.5px;color:var(--text-faint);text-align:center;margin-top:14px;line-height:1.5}
@media(max-width:860px){.shop-grid{grid-template-columns:1fr 1fr}.pd-grid{grid-template-columns:1fr}.pd-img{border-radius:var(--radius-lg) var(--radius-lg) 0 0}}
@media(max-width:600px){.shop-grid{grid-template-columns:1fr}.shop-head h1{font-size:34px}}

/* ===== INTAKE — "Let Lumi get to know you" ===== */
.intake-cta{max-width:760px;margin:26px auto 0;background:linear-gradient(135deg,var(--plum-ink),#3a3142);border-radius:var(--radius);padding:18px 22px;display:flex;align-items:center;gap:14px;color:var(--cream)}
.intake-cta .orb{width:36px;height:36px;animation:none;box-shadow:0 0 0 5px rgba(183,166,201,.25);flex-shrink:0}
.intake-cta p{flex:1;font-size:13.5px;color:rgba(250,246,241,.85);line-height:1.45}
.intake-cta b{color:var(--cream)}
.intake-modal-card{max-width:520px;width:100%;background:var(--cream);border-radius:var(--radius-lg);box-shadow:var(--shadow-strong);padding:30px 32px;position:relative;max-height:90vh;overflow-y:auto}
.intake-prog{height:5px;border-radius:100px;background:var(--cream-2);margin:14px 0 22px;overflow:hidden}
.intake-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--lavender),var(--plum-soft));border-radius:100px;transition:width .3s}
.intake-q{font-family:"Cormorant Garamond",serif;font-size:25px;font-weight:600;line-height:1.2;margin-bottom:6px}
.intake-why{font-size:12.5px;color:var(--text-faint);margin-bottom:16px;line-height:1.5}
.intake-opts{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:8px}
.intake-opts .chip.sel{background:var(--plum-ink);color:var(--cream);border-color:var(--plum-ink)}
.intake-input{width:100%;border:1px solid var(--line-strong);border-radius:16px;padding:12px 15px;font-family:inherit;font-size:14px;outline:none;background:#fff;line-height:1.5;resize:vertical;min-height:80px}
.intake-input:focus{border-color:var(--plum-soft)}
.intake-nav{display:flex;justify-content:space-between;align-items:center;margin-top:22px}
.intake-skip{background:none;border:none;font-family:inherit;font-size:13px;color:var(--text-faint);cursor:pointer;text-decoration:underline}
.intake-note{font-size:11px;color:var(--text-faint);margin-top:14px;line-height:1.5;text-align:center}
.lumi-knows{max-width:760px;margin:14px auto 0;background:var(--lavender-bg);border-radius:16px;padding:12px 18px;font-size:13px;color:var(--plum-soft);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lumi-knows .orb{width:22px;height:22px;animation:none;box-shadow:0 0 0 3px #fff;flex-shrink:0}
.lumi-knows button{margin-left:auto;background:none;border:none;font-family:inherit;font-size:12px;font-weight:700;color:var(--plum-soft);cursor:pointer;text-decoration:underline}

/* ===== MOBILE HAMBURGER NAV ===== */
.nav-burger{display:none;background:none;border:none;cursor:pointer;width:34px;height:34px;padding:6px;border-radius:8px;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.nav-burger:hover{background:rgba(36,30,40,.04)}
.nav-burger span{display:block;width:20px;height:2px;background:var(--plum-ink);border-radius:8px;transition:transform .25s,opacity .2s}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:fixed;top:0;right:0;height:100vh;width:300px;max-width:90vw;background:var(--cream);box-shadow:-20px 0 60px rgba(36,30,40,.2);z-index:60;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;padding:90px 30px 32px}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu a{display:block;font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:600;color:var(--plum-ink);padding:14px 0;border-bottom:1px solid var(--line)}
.mobile-menu a:last-of-type{border-bottom:none}
.mobile-menu .mm-cta{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.mobile-menu .mm-cta .btn{width:100%;justify-content:center}
.mobile-overlay{position:fixed;inset:0;background:rgba(36,30,40,.42);z-index:55;opacity:0;pointer-events:none;transition:opacity .25s}
.mobile-overlay.open{opacity:1;pointer-events:auto}
@media(max-width:980px){.nav-burger{display:flex}}
@media(max-width:600px){.nav-cta .btn-primary:not(.mm-cta .btn-primary){padding:9px 14px;font-size:12.5px}}

/* mobile: stack intake CTA so the button never overflows */
@media(max-width:600px){
  .intake-cta{flex-direction:column;align-items:flex-start;padding:18px 20px}
  .intake-cta .btn{width:100%;justify-content:center}
  .lumi-knows{flex-wrap:wrap}
}

@media(max-width:600px){
  .reply-compose{flex-wrap:wrap;padding:14px 18px}
  .reply-compose input{flex:1 1 100%;min-width:0}
  .reply-compose .btn{flex:1}
  .composer,.post-main,.replies{padding-left:18px;padding-right:18px}
}

/* ===== ONBOARDING — full-page Lumi conversation for first-time visitors ===== */
.onboard{position:fixed;inset:0;background:linear-gradient(180deg,var(--cream-3) 0%,var(--cream) 50%,#f7f0e6 100%);z-index:200;display:flex;flex-direction:column;overflow:hidden}
.onboard-top{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--line);background:rgba(250,246,241,.92);backdrop-filter:blur(10px)}
.onboard-top .brand{display:flex;align-items:center;gap:10px}
.onboard-top .brand-mark{width:34px;height:30px}
.onboard-top .brand-name{font-family:"Cormorant Garamond",serif;font-size:22px;font-weight:600}
.onboard-skip{background:none;border:none;font-family:inherit;font-size:13px;color:var(--text-faint);cursor:pointer;text-decoration:underline}
.onboard-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:30px 24px 0}
.onboard-thread{width:100%;max-width:620px;display:flex;flex-direction:column;gap:14px;padding-bottom:14px}
.ob-bubble{font-size:15.5px;line-height:1.55;padding:14px 18px;border-radius:16px 18px 18px 6px;background:#fff;border:1px solid var(--line);color:var(--plum-ink);max-width:88%;align-self:flex-start;box-shadow:0 4px 14px rgba(36,30,40,.04);white-space:pre-wrap}
.ob-bubble.me{background:var(--lavender-bg);border-color:transparent;color:var(--plum-ink);border-radius:16px 18px 6px 18px;align-self:flex-end}
.ob-bubble.with-orb{position:relative;margin-left:48px}
.ob-bubble.with-orb::before{content:"";position:absolute;left:-46px;top:0;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--lavender) 60%,var(--plum-soft));box-shadow:0 0 0 4px var(--lavender-bg)}
.ob-options{display:flex;flex-wrap:wrap;gap:8px;max-width:620px;width:100%;margin-bottom:8px}
.ob-options .chip{background:#fff;border:1px solid var(--line-strong);font-size:13.5px;padding:9px 16px;cursor:pointer}
.ob-options .chip:hover{border-color:var(--plum-soft);color:var(--plum-ink);background:var(--neutral-bg)}
.ob-options .chip.sel{background:var(--plum-ink);color:var(--cream);border-color:var(--plum-ink)}
.onboard-input{border-top:1px solid var(--line);background:rgba(250,246,241,.94);backdrop-filter:blur(8px);padding:16px 24px}
.onboard-input-wrap{max-width:620px;margin:0 auto;display:flex;gap:10px;align-items:flex-end}
.onboard-input textarea{flex:1;border:1px solid var(--line-strong);border-radius:16px;padding:13px 16px;font-family:inherit;font-size:14.5px;outline:none;background:#fff;resize:none;max-height:120px;min-height:46px;line-height:1.4}
.onboard-input textarea:focus{border-color:var(--plum-soft)}
.onboard-input .btn{flex-shrink:0}
.ob-progress{max-width:620px;margin:6px auto 0;font-size:11.5px;color:var(--text-faint);text-align:center}
.ob-multi-confirm{align-self:flex-end;background:var(--plum-ink);color:var(--cream);border:none;border-radius:100px;padding:9px 18px;font-family:inherit;font-weight:700;font-size:13px;cursor:pointer;margin-top:2px}
@media(max-width:600px){
  .onboard-top{padding:14px 18px}
  .onboard-body{padding:18px 16px 0}
  .ob-bubble.with-orb{margin-left:42px}
  .ob-bubble.with-orb::before{left:-40px;width:30px;height:30px}
  .onboard-input{padding:12px 14px}
}

/* ===== TODAY DASHBOARD (Lumi's personal plan + light tracking) ===== */
.today-empty{max-width:760px;margin:24px auto 0;background:#fff;border:1px dashed var(--line-strong);border-radius:var(--radius);padding:30px 32px;text-align:center}
.today-empty h3{font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:600;margin-bottom:8px}
.today-empty p{font-size:14px;color:var(--text-soft);max-width:460px;margin:0 auto 16px;line-height:1.5}
.today-dash{max-width:880px;margin:30px auto 0;display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.td-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px 26px}
.td-hello{grid-column:1/-1;background:linear-gradient(135deg,var(--plum-ink),#3a3142);color:var(--cream);padding:28px 30px;display:flex;align-items:center;gap:16px}
.td-hello .orb{width:46px;height:46px;animation:none;box-shadow:0 0 0 6px rgba(183,166,201,.25);flex-shrink:0}
.td-hello-text{flex:1}
.td-hello-text h3{font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600;margin-bottom:6px;line-height:1.2}
.td-hello-text p{color:rgba(250,246,241,.78);font-size:14px;line-height:1.5}
.td-edit{background:transparent;border:none;color:var(--plum-soft);font-family:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;align-self:flex-start;margin-top:3px}
.td-label{display:flex;align-items:center;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--text-faint);margin-bottom:14px}
.td-label svg{width:14px;height:14px;stroke:var(--lavender);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.td-tips{list-style:none;display:flex;flex-direction:column;gap:11px;margin:0}
.td-tips li{font-size:14px;line-height:1.5;color:var(--text-soft);padding-left:22px;position:relative}
.td-tips li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.td-tips li b{color:var(--plum-ink);font-weight:700}
.td-products{display:flex;flex-direction:column;gap:12px}
.td-prod{display:flex;align-items:center;gap:12px;padding:11px;background:var(--cream);border-radius:16px}
.td-prod img{width:46px;height:46px;object-fit:contain;mix-blend-mode:multiply;background:#fff;border-radius:16px;padding:4px}
.td-prod-info{flex:1;min-width:0}
.td-prod-name{font-family:"Cormorant Garamond",serif;font-size:16px;font-weight:600;line-height:1.2}
.td-prod-why{font-size:11.5px;color:var(--text-faint);margin-top:2px;line-height:1.4}
.td-prod-price{font-family:"Cormorant Garamond",serif;font-size:16px;font-weight:700;color:var(--plum-ink);flex-shrink:0}
.td-log{grid-column:1/-1}
.td-log-row{display:flex;gap:10px;margin-bottom:11px;align-items:flex-end}
.td-log-row input{flex:1;border:1px solid var(--line);border-radius:16px;padding:12px 15px;font-family:inherit;font-size:14px;outline:none;background:var(--cream-3)}
.td-log-row input:focus{border-color:var(--plum-soft)}
.td-log-row .btn{flex-shrink:0;padding:11px 18px;font-size:13px}
.td-log-out{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.td-log-entry{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--cream);border-radius:16px;font-size:13px}
.td-log-entry .kind{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--plum-soft);background:var(--cream-2);padding:3px 8px;border-radius:100px}
.td-log-entry .name{flex:1;color:var(--text-soft)}
.td-log-entry .val{font-weight:700;color:var(--plum-ink)}
.td-log-entry .x{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px}
.td-thinking{font-size:12px;color:var(--text-faint);padding:8px 4px;display:flex;align-items:center;gap:8px}
.td-thinking i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--lavender);animation:lumiBlink 1.2s infinite}
.td-thinking i:nth-child(2){animation-delay:.2s}.td-thinking i:nth-child(3){animation-delay:.4s}
.td-totals{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--text-soft);display:flex;gap:18px;flex-wrap:wrap}
.td-totals b{color:var(--plum-ink);font-weight:700}
/* Lumi avatar image (replaces abstract orb where a face is needed) */
.lumi-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:0 0 0 4px var(--lavender-bg),0 6px 18px rgba(183,166,201,.4)}
.lumi-avatar.sm{width:42px;height:42px;box-shadow:0 0 0 3px var(--lavender-bg)}
.lumi-avatar.md{width:56px;height:56px}
.lumi-avatar.lg{width:100px;height:100px}

/* Personalised command center (replaces hero for returning users) */
.lumi-command{max-width:880px;margin:0 auto;padding:30px 0 10px}
.lumi-cmd-card{background:linear-gradient(135deg,var(--plum-ink),#3a3142);border-radius:var(--radius-lg);padding:36px 40px;color:var(--cream);display:flex;gap:24px;align-items:center;position:relative;overflow:hidden}
.lumi-cmd-card::after{content:"";position:absolute;bottom:-60px;right:-40px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(183,166,201,.2),transparent 70%)}
.lumi-cmd-left{flex-shrink:0;text-align:center}
.lumi-cmd-left .lumi-avatar{box-shadow:0 0 0 4px rgba(183,166,201,.3),0 8px 24px rgba(0,0,0,.3)}
.lumi-cmd-body{flex:1;min-width:0;position:relative;z-index:2}
.lumi-cmd-body h2{font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:600;margin-bottom:6px;line-height:1.2}
.lumi-cmd-quote{font-size:14.5px;color:rgba(250,246,241,.7);font-style:italic;margin-bottom:18px;line-height:1.5}
.lumi-cmd-actions{display:flex;gap:10px;flex-wrap:wrap}
.lumi-cmd-actions .btn{font-size:13.5px;padding:11px 20px}
@media(max-width:600px){
  .lumi-cmd-card{flex-direction:column;text-align:center;padding:28px 22px}
  .lumi-cmd-actions{justify-content:center}
  .lumi-cmd-body h2{font-size:24px}
}

/* Structured daily sections (eat / drink / move / support) */
.td-section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px 24px;margin-bottom:18px}
.td-section-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.td-section-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.td-section-icon.eat{background:#fef3e2}
.td-section-icon.drink{background:#e8f4fd}
.td-section-icon.move{background:#fce8e8}
.td-section-icon.support{background:var(--lavender-bg)}
.td-section-title{font-family:"Cormorant Garamond",serif;font-size:20px;font-weight:600}
.td-bullets{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0}
.td-bullets li{font-size:14px;line-height:1.5;color:var(--text-soft);padding-left:24px;position:relative}
.td-bullets li::before{content:"";position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:8px}
.td-bullets.eat li::before{background:#f5c842}
.td-bullets.drink li::before{background:#64b5f6}
.td-bullets.move li::before{background:#ef9a9a}
.td-bullets.support li::before{background:var(--lavender)}
.td-bullets li b,.td-bullets li strong{color:var(--plum-ink);font-weight:700}

/* Today dash products inline */
.td-prod-inline{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}
.td-prod-mini{display:flex;align-items:center;gap:10px;background:var(--cream);border-radius:16px;padding:10px 14px;flex:1;min-width:220px;cursor:pointer;transition:transform .15s}
.td-prod-mini:hover{transform:translateY(-2px)}
.td-prod-mini img{width:40px;height:40px;object-fit:contain;mix-blend-mode:multiply;background:#fff;border-radius:8px;padding:3px}
.td-prod-mini-info{flex:1;min-width:0}
.td-prod-mini-name{font-size:13px;font-weight:700;line-height:1.2}
.td-prod-mini-why{font-size:11px;color:var(--text-faint);line-height:1.3;margin-top:2px}
.td-prod-mini-price{font-family:"Cormorant Garamond",serif;font-size:15px;font-weight:700;flex-shrink:0}
.td-prod-mini .btn{font-size:11px;padding:6px 12px;flex-shrink:0}

/* Update td-hello for avatar */
.td-hello .lumi-avatar{box-shadow:0 0 0 4px rgba(183,166,201,.3),0 6px 18px rgba(0,0,0,.2)}

@media(max-width:760px){.today-dash{grid-template-columns:1fr}.td-prod-inline{flex-direction:column}}

/* ---- Photo attachment (chat + community) ---- */
.photo-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:100px;border:1px solid var(--line);background:transparent;color:var(--plum-soft);cursor:pointer;flex-shrink:0;transition:all .15s ease}
.photo-btn:hover{background:var(--neutral-bg);border-color:var(--plum-soft);color:var(--plum-ink)}
.photo-btn svg{width:20px;height:20px}
.photo-btn.dark{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:var(--lavender-light)}
.photo-btn.dark:hover{background:rgba(255,255,255,.12);color:var(--cream)}
.photo-btn.sm{width:34px;height:34px}
.photo-btn.sm svg{width:16px;height:16px}
.reply-compose{align-items:center}
.reply-compose .photo-btn{flex-shrink:0;align-self:center}
@media(max-width:760px){.reply-compose .photo-btn{order:0;align-self:center}.reply-compose input[data-reply]{flex:1 1 calc(100% - 48px)!important}}
.photo-preview{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.photo-preview:empty{display:none}
.photo-chip{position:relative;width:64px;height:64px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#f5efe8}
.photo-chip img{width:100%;height:100%;object-fit:cover;display:block}
.photo-chip .px{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:rgba(36,30,40,.7);color:#fff;font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.photo-chip .px:hover{background:rgba(36,30,40,.9)}
.bubble-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.bubble-photos img{max-width:180px;max-height:180px;border-radius:16px;display:block;object-fit:cover;cursor:zoom-in;border:1px solid rgba(255,255,255,.15)}
.lumi-bubble.user .bubble-photos img{border-color:rgba(255,255,255,.25)}
.post-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:12px;max-width:540px}
.post-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px;cursor:zoom-in;border:1px solid var(--line)}
.reply-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.reply-photos img{max-width:140px;max-height:140px;border-radius:16px;cursor:zoom-in;border:1px solid var(--line);object-fit:cover}
.td-log-food{display:flex;gap:8px;align-items:center}
.td-log-food .photo-btn.sm{flex-shrink:0}
.td-log-thumb{width:44px;height:44px;object-fit:cover;border-radius:16px;cursor:zoom-in;margin-right:8px;flex-shrink:0;border:1px solid var(--line)}
.td-log-entry{display:flex;align-items:center;flex-wrap:wrap}
.td-log-tip{flex-basis:100%;font-size:12.5px;color:var(--text-soft);font-style:italic;margin-top:4px;padding-left:52px}
/* Pending state (waiting for Lumi) */
.td-log-entry.td-log-pending{background:var(--cream-2);opacity:.85}
.td-log-entry.td-log-pending .name{color:var(--text-soft);font-style:italic}
.td-log-spinner{display:inline-flex;gap:4px;align-items:center;justify-content:flex-end}
.td-log-spinner i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--lavender);animation:lumiBlink 1.2s infinite}
.td-log-spinner i:nth-child(2){animation-delay:.15s}
.td-log-spinner i:nth-child(3){animation-delay:.3s}
/* Failed state */
.td-log-entry.td-log-failed{background:rgba(201,112,112,.05);border:1px solid rgba(201,112,112,.18)}
.td-log-entry.td-log-failed .kind{background:rgba(201,112,112,.12);color:#a85a5a}
.td-log-retry{background:var(--plum-ink);color:var(--cream);border:none;border-radius:100px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;margin-right:6px}
.td-log-retry:hover{background:var(--plum-soft)}
.td-log-tip-error{color:#a85a5a;font-style:normal;background:transparent}

/* ---- Community: Me too / Follow / mentions ---- */
.post-actions{display:flex;gap:8px;padding:12px 0 4px;margin-top:8px;border-top:1px dashed var(--line);flex-wrap:wrap}
.me-too-btn,.follow-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line-strong);border-radius:100px;padding:6px 14px;font-family:inherit;font-size:13px;color:var(--text-soft);cursor:pointer;transition:all .15s ease}
.me-too-btn:hover,.follow-btn:hover{background:var(--lavender-bg);border-color:var(--lavender);color:var(--plum-ink)}
.me-too-btn.active{background:var(--lavender-bg);border-color:var(--lavender);color:var(--plum-ink);font-weight:600}
.me-too-icon{font-size:14px}
.me-too-count{background:var(--gold);color:var(--plum-ink);font-size:11px;font-weight:700;padding:1px 8px;border-radius:100px;margin-left:2px}
.follow-btn.active{background:var(--plum-ink);border-color:var(--plum-ink);color:var(--cream)}
.follow-btn.active:hover{background:var(--plum-soft);color:var(--cream)}
.thread-new-badge{display:inline-block;background:var(--gold);color:var(--plum-ink);font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:100px;margin-left:8px;letter-spacing:.02em}
.reply-text .mention{color:var(--lavender);font-weight:600;background:rgba(183,166,201,.12);padding:1px 5px;border-radius:8px}
.reply-compose{position:relative}
.mention-pop{position:absolute;bottom:calc(100% + 4px);left:48px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(36,30,40,.12);z-index:5;overflow:hidden;min-width:160px}
.mention-pop button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 14px;font-family:inherit;font-size:13.5px;color:var(--plum-ink);cursor:pointer}
.mention-pop button:hover{background:var(--lavender-bg)}

/* ---- Today targets (CTA card + filled state + modal) ---- */
.td-targets-cta{display:flex;gap:16px;background:linear-gradient(135deg,var(--lavender-bg),var(--cream-2));border:1px solid var(--lavender);border-radius:var(--radius);padding:22px;margin-bottom:24px}
.td-cta-icon{font-size:32px;flex-shrink:0;line-height:1}
.td-cta-body{flex:1}
.td-cta-title{font-size:20px;color:var(--plum-ink);margin-bottom:6px}
.td-cta-body p{font-size:14px;color:var(--text-soft);line-height:1.5;margin-bottom:14px}
.td-targets{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:24px;box-shadow:0 4px 16px rgba(36,30,40,.04)}
.td-targets-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.td-targets-title{font-family:"Cormorant Garamond",serif;font-size:18px;color:var(--plum-ink);font-weight:600}
.td-targets-title b{color:var(--plum-ink);font-weight:700}
.td-targets-edit{background:none;border:none;color:var(--plum-soft);font-size:13px;cursor:pointer;font-family:inherit;text-decoration:underline}
.td-targets-grid{display:flex;flex-direction:column;gap:12px}
.td-target-row{display:grid;grid-template-columns:90px 1fr 170px;gap:16px;align-items:center;font-size:13.5px}
/* Calories = primary signal: thicker bar, larger text */
.td-target-row:first-child{font-size:14.5px}
.td-target-row:first-child .td-target-bar{height:12px}
.td-target-row:first-child .td-target-num b{font-size:16px}
.td-target-label{color:var(--plum-ink);font-weight:600}
.td-target-bar{height:6px;background:var(--cream-2);border-radius:100px;overflow:hidden}
.td-target-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--lavender),var(--gold));transition:width .35s ease;border-radius:100px}
.td-target-num{text-align:right;color:var(--text-soft);font-size:13px}
.td-target-num b{color:var(--plum-ink);font-weight:700}
.td-target-num span{color:var(--text-faint);margin-left:8px;font-size:12px}
.td-targets-secondary{display:flex;gap:18px;padding-top:10px;margin-top:4px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--text-faint);flex-wrap:wrap}
.td-targets-tdee{margin-left:auto}
@media(max-width:600px){.td-target-row{grid-template-columns:1fr;gap:4px}.td-target-num{text-align:left}.td-targets-secondary{gap:10px}}

.td-targets-card{background:var(--cream);border-radius:var(--radius-lg);max-width:480px;width:calc(100% - 32px);padding:32px;box-shadow:0 30px 80px rgba(36,30,40,.25);position:relative;max-height:90vh;overflow-y:auto}
.td-targets-card h2{font-size:24px;color:var(--plum-ink);margin-bottom:8px}
.td-targets-card > p{font-size:14px;color:var(--text-soft);line-height:1.5;margin-bottom:18px}
.td-targets-card label{display:block;font-size:13px;color:var(--text-soft);margin-bottom:14px}
.td-targets-card input,.td-targets-card select{display:block;width:100%;margin-top:6px;border:1px solid var(--line-strong);border-radius:16px;padding:11px 14px;font-family:inherit;font-size:14px;outline:none;background:#fff;color:var(--plum-ink)}
.td-targets-card input:focus,.td-targets-card select:focus{border-color:var(--plum-soft)}
.td-tm-actions{display:flex;justify-content:center;margin-top:18px}
.td-tm-note{font-size:11.5px;color:var(--text-faint);margin-top:14px;line-height:1.5;text-align:center}
.td-tm-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--plum-soft);font-weight:700;margin:18px 0 8px}
.td-tm-section-label:first-of-type{margin-top:0}
.td-tm-help{display:block;font-size:11.5px;color:var(--text-faint);line-height:1.45;margin-top:4px;font-weight:400}
.td-targets-journey{background:linear-gradient(90deg,var(--lavender-bg),var(--cream-2));padding:9px 14px;border-radius:16px;font-size:13px;color:var(--plum-ink);margin-bottom:14px}
.td-targets-journey b{color:var(--plum-ink);font-weight:600}
.td-targets-journey-soft{background:rgba(194,168,120,.08);color:var(--text-soft);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.td-targets-journey-soft button{font-size:12.5px;padding:0;color:var(--plum-soft);background:none;border:none;cursor:pointer;text-decoration:underline;font-family:inherit;font-weight:600}
.td-log-tip.td-log-tip-next{font-style:normal;color:var(--plum-ink);background:rgba(183,166,201,.12);padding:10px 14px;border-radius:16px;margin-left:0;padding-left:14px}
.td-log-tip.td-log-tip-next b{color:var(--lavender);margin-right:4px}
.td-log-tip.td-log-tip-next em{font-style:italic;color:var(--text-soft);display:block;margin-top:4px}

/* ---- Footer support link (works on both light + dark footer bgs) ---- */
.foot-support{display:flex;align-items:center;justify-content:center;gap:12px;padding:22px 0 14px;border-top:1px solid rgba(255,255,255,.1);margin-top:24px;flex-wrap:wrap;font-size:13px;color:rgba(250,246,241,.7)}
.foot-support .support-link{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--plum-ink);padding:8px 18px;border-radius:100px;text-decoration:none;font-weight:600;font-size:13.5px;transition:all .15s ease;border:1px solid transparent}
.foot-support .support-link:hover{background:var(--gold-soft);color:var(--plum-ink);transform:translateY(-1px);box-shadow:0 4px 12px rgba(194,168,120,.4)}
.foot-support-sub{font-size:12px;color:rgba(250,246,241,.5);flex-basis:100%;text-align:center;margin-top:-2px}
@media(max-width:600px){.foot-support{flex-direction:column;gap:8px;text-align:center}}
.photo-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;cursor:zoom-out}
.photo-lightbox.open{display:flex}
.photo-lightbox img{max-width:95vw;max-height:90vh;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.5)}

/* ---- Invite-only gate ---- */
#invite-gate{position:fixed;inset:0;z-index:10000;background:linear-gradient(180deg,var(--cream-3) 0%,var(--cream) 40%,#f7f0e6 100%);display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}
.invite-card{background:#fff;border-radius:var(--radius-lg);max-width:460px;width:100%;padding:36px 32px 28px;box-shadow:0 30px 80px rgba(36,30,40,.18);text-align:center;position:relative}
.invite-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 14px;box-shadow:0 4px 16px rgba(36,30,40,.12)}
.invite-eyebrow{font-size:10.5px;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--lavender);margin-bottom:6px}
.invite-title{font-size:24px;color:var(--plum-ink);line-height:1.2;margin-bottom:10px}
.invite-lead{font-size:14px;color:var(--text-soft);line-height:1.55;margin-bottom:20px}
#invite-form,#waitlist-form{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
#waitlist-form{display:none;margin-top:8px}
.invite-card input{border:1px solid var(--line-strong);border-radius:100px;padding:12px 18px;font-family:inherit;font-size:14px;outline:none;text-align:center;background:#fff;color:var(--plum-ink)}
.invite-card input:focus{border-color:var(--lavender)}
.invite-card #invite-code{letter-spacing:.05em;font-weight:600;text-transform:uppercase}
.invite-msg{font-size:13px;min-height:18px;margin:6px 0 4px}
.invite-msg.ok{color:#5a8a6a}
.invite-msg.err{color:#a85a5a}
.invite-divider{display:flex;align-items:center;gap:14px;margin:18px 0;color:var(--text-faint);font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.invite-divider::before,.invite-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.invite-link{background:none;border:none;color:var(--lavender);font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0;display:block;margin:0 auto}
.invite-link:hover{color:var(--plum-soft)}
.invite-foot{font-size:11px;color:var(--text-faint);margin-top:18px;line-height:1.5}

/* ---- Beta banner (top of every page) ---- */
.beta-banner{position:sticky;top:0;z-index:60;background:linear-gradient(90deg,#efe9f3,#faf6f1,#efe9f3);border-bottom:1px solid rgba(183,166,201,.4);box-shadow:0 2px 8px rgba(36,30,40,.04)}
.beta-banner-inner{max-width:1240px;margin:0 auto;padding:9px 32px;display:flex;align-items:center;gap:14px;font-size:13px;line-height:1.45;color:var(--plum-ink)}
.beta-tag{flex-shrink:0;background:var(--plum-ink);color:var(--cream);font-size:10px;font-weight:700;letter-spacing:.08em;padding:3px 9px;border-radius:100px;font-family:"Manrope",sans-serif}
.beta-msg{flex:1;color:var(--text-soft)}
.beta-msg b{color:var(--plum-ink);font-weight:600}
.beta-x{flex-shrink:0;border:none;background:transparent;color:var(--text-faint);width:28px;height:28px;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.beta-x:hover{background:rgba(36,30,40,.08);color:var(--plum-ink)}
html.has-beta-banner .topbar{top:0}
/* Mobile: collapse banner to 1 line by default; click to expand */
@media(max-width:760px){
  .beta-banner-inner{padding:8px 14px;gap:8px;font-size:12.5px}
  .beta-msg{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
  .beta-banner.expanded .beta-msg{display:block;-webkit-line-clamp:initial;overflow:visible}
}

/* ---- Keyboard a11y: focus rings on all interactive elements ---- */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
  border-radius:8px;
}
/* Avatars / icon buttons keep round focus */
.lumi-avatar:focus-visible,
.avatar:focus-visible,
.photo-btn:focus-visible,
.beta-x:focus-visible,
.modal-x:focus-visible{border-radius:50%}

/* ---- Lumi typing indicator: stop after 4s to avoid permanent motion ---- */
.lumi-card .typing{animation:lumiTypingFade 0.5s ease-out 4s forwards}
@keyframes lumiTypingFade{to{opacity:0;height:0;overflow:hidden;margin:0}}

/* ---- Sign in / Save modal ---- */
#signin-modal{background:rgba(36,30,40,.5);backdrop-filter:blur(4px)}
.signin-card{background:var(--cream);border-radius:var(--radius-lg);max-width:460px;width:calc(100% - 32px);padding:32px;box-shadow:0 30px 80px rgba(36,30,40,.25);position:relative}
.signin-head{display:flex;gap:14px;align-items:center;margin-bottom:20px}
.signin-head .lumi-avatar.md{width:54px;height:54px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:0 4px 12px rgba(36,30,40,.12)}
.signin-title{font-size:22px;color:var(--plum-ink);margin-bottom:2px}
.signin-sub{font-size:13.5px;color:var(--text-soft);line-height:1.45}
.signin-tabs{display:flex;gap:0;background:var(--cream-2);border-radius:100px;padding:4px;margin-bottom:18px}
.signin-tab{flex:1;border:none;background:transparent;color:var(--text-soft);font-family:inherit;font-size:13.5px;font-weight:400;padding:10px 14px;border-radius:100px;cursor:pointer;transition:all .15s ease}
.signin-tab.active{background:var(--cream);color:var(--plum-ink);box-shadow:0 2px 8px rgba(36,30,40,.06)}
.signin-body input[type="email"]{width:100%;border:1px solid var(--line-strong);border-radius:100px;padding:13px 18px;font-family:inherit;font-size:14px;outline:none;background:#fff}
.signin-body input[type="email"]:focus{border-color:var(--lavender)}
.signin-msg{margin-top:10px;font-size:13px;min-height:18px;text-align:center}
.signin-msg.err{color:#a85a5a}
.signin-msg.ok{color:#5a8a6a}
.signin-note{font-size:12px;color:var(--text-faint);margin-top:14px;line-height:1.5;text-align:center}
