/* ============================================================
   Owambe Planner — landing (DARK, full-screen multi-phone slider)
   Self-contained: index.html loads ONLY this file, so nothing
   here touches the legal pages (which keep using styles.css).
   ============================================================ */

@font-face { font-family:"Satoshi"; font-style:normal; font-weight:400; src:url("fonts/Satoshi-Regular.otf") format("opentype"); font-display:swap; }
@font-face { font-family:"Satoshi"; font-style:normal; font-weight:500; src:url("fonts/Satoshi-Medium.otf") format("opentype"); font-display:swap; }
@font-face { font-family:"Satoshi"; font-style:normal; font-weight:700; src:url("fonts/Satoshi-Bold.otf") format("opentype"); font-display:swap; }
@font-face { font-family:"Satoshi"; font-style:normal; font-weight:900; src:url("fonts/Satoshi-Black.otf") format("opentype"); font-display:swap; }

:root {
  --bg:#120A0E; --bg-2:#1A0F14; --ink:#F5EDEA; --muted:#B4A3AB; --faint:#8C7A82;
  --line:rgba(255,255,255,0.09);
  --coral:#FA5C4C; --coral-deep:#D8453A; --coral-light:#FF8577;
  --navy:#3444a6; --navy-deep:#232a6e; --amber:#C89A46; --green:#34C778;
  --glass:linear-gradient(180deg,rgba(255,255,255,0.055) 0%,rgba(255,255,255,0.02) 100%);
  --glass-line:1px solid rgba(255,255,255,0.08);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
html, body { max-width:100%; overflow-x:hidden; }
.o-page { background:var(--bg); color:var(--ink); font-family:"Satoshi","Segoe UI",system-ui,Arial,sans-serif; line-height:1.55; margin:0; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
.o-wrap { margin:0 auto; max-width:1160px; padding:0 24px; width:100%; }
.o-eyebrow { align-items:center; color:var(--coral-light); display:inline-flex; font-size:12px; font-weight:900; gap:8px; letter-spacing:0.22em; text-transform:uppercase; }
.o-eyebrow--light { color:rgba(255,255,255,0.86); }

/* Nav + brand styles now live in /chrome.css (shared header/footer template). */
.o-btn { align-items:center; border:0; border-radius:999px; cursor:pointer; display:inline-flex; font-family:inherit; font-size:15px; font-weight:900; gap:9px; justify-content:center; padding:13px 24px; text-decoration:none; transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; }
.o-btn--coral { background:var(--coral); box-shadow:0 12px 28px rgba(250,92,76,0.4); color:#fff; }
.o-btn--coral:hover { background:var(--coral-deep); transform:translateY(-2px); }
.o-btn--white { background:linear-gradient(180deg,#fff,#f1f5f9); color:#1a1020; box-shadow:0 12px 26px rgba(0,0,0,0.4); }
.o-btn--white:hover { transform:translateY(-2px); }
/* liquid-glass coral — matches the feature icon tiles */
.o-btn--glass { background:linear-gradient(135deg,rgba(250,92,76,0.24),rgba(250,92,76,0.06)); border:1px solid rgba(250,92,76,0.30); color:var(--coral-light); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); box-shadow:inset 0 1px 1px rgba(255,255,255,0.10); }
.o-btn--glass:hover { background:linear-gradient(135deg,rgba(250,92,76,0.36),rgba(250,92,76,0.12)); color:#fff; transform:translateY(-2px); }
/* liquid-glass coral fill — translucent, blurred, glossy */
.o-btn--liquid { position:relative; overflow:hidden; color:#fff;
  background:linear-gradient(180deg, rgba(250,92,76,0.88) 0%, rgba(216,69,58,0.80) 100%);
  border:1px solid rgba(255,255,255,0.26);
  -webkit-backdrop-filter:blur(14px) saturate(180%); backdrop-filter:blur(14px) saturate(180%);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.55), inset 0 -3px 8px rgba(170,46,38,0.5), 0 8px 22px rgba(250,92,76,0.22); }
.o-btn--liquid::before { content:""; position:absolute; left:0; right:0; top:0; height:48%; border-radius:inherit; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0.42), transparent); }
.o-btn--liquid:hover { transform:translateY(-2px); background:linear-gradient(180deg, rgba(250,92,76,0.95), rgba(216,69,58,0.88));
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.6), inset 0 -3px 8px rgba(170,46,38,0.5), 0 12px 28px rgba(250,92,76,0.3); }
.o-nav__cta { padding:11px 20px; }

/* ============================================================
   FULL-SCREEN SLIDER HERO
   ============================================================ */
.stage { position:relative; width:100%; min-height:100svh; overflow:hidden; }
.card { position:relative; width:100%; min-height:100svh; overflow:hidden;
  background:
    radial-gradient(125% 100% at 50% 120%, #000000 0%, transparent 62%),
    linear-gradient(158deg,#050814 0%, #02040A 52%, #000103 100%);
  opacity:0; animation:fade-in 0.7s 0.05s ease forwards; }
@keyframes fade-in { to{ opacity:1; } }

/* ---- Animated navy water motion background ---- */
.water { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.wb { position:absolute; border-radius:50%; filter:blur(72px); mix-blend-mode:screen; will-change:transform; }
.wb1 { width:74vw; height:74vw; left:-14%; top:-18%;
  background:radial-gradient(circle at 50% 50%, rgba(46,68,175,0.38) 0%, transparent 62%); animation:wdrift1 20s ease-in-out infinite; }
.wb2 { width:64vw; height:64vw; right:-16%; top:14%;
  background:radial-gradient(circle at 50% 50%, rgba(30,54,160,0.50) 0%, transparent 60%); animation:wdrift2 27s ease-in-out infinite; }
.wb3 { width:82vw; height:82vw; left:18%; bottom:-32%;
  background:radial-gradient(circle at 50% 50%, rgba(20,40,130,0.46) 0%, transparent 60%); animation:wdrift3 33s ease-in-out infinite; }
.wcaustic { position:absolute; inset:-30%; opacity:0.10; mix-blend-mode:screen; filter:blur(3px); will-change:transform;
  background:
    repeating-radial-gradient(circle at 30% 30%, transparent 0 26px, rgba(120,158,255,0.30) 26px 30px, transparent 30px 60px),
    repeating-radial-gradient(circle at 72% 64%, transparent 0 30px, rgba(96,132,240,0.24) 30px 34px, transparent 34px 70px);
  animation:wcaustic 24s linear infinite; }
@keyframes wdrift1 { 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(7vw,6vh) scale(1.14); } }
@keyframes wdrift2 { 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-7vw,5vh) scale(1.10); } }
@keyframes wdrift3 { 0%,100%{ transform:translate(0,0) scale(1.04); } 50%{ transform:translate(5vw,-6vh) scale(0.94); } }
@keyframes wcaustic { 0%{ transform:translate(0,0) rotate(0deg); } 100%{ transform:translate(4%,-3%) rotate(8deg); } }
@media (prefers-reduced-motion: reduce) { .wb, .wcaustic { animation:none; } }
.card-sheen { position:absolute; inset:0; pointer-events:none; z-index:5; mix-blend-mode:screen;
  background:radial-gradient(820px circle at var(--mx,50%) var(--my,50%), rgba(250,92,76,0.14) 0%, transparent 44%); }
.film-grain { position:absolute; inset:0; pointer-events:none; z-index:6; opacity:0.06; mix-blend-mode:overlay;
  background:url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23n)"/></svg>'); }
.bg-grid { position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0.5; background-size:58px 58px;
  background-image:linear-gradient(to right, rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,0.05) 1px, transparent 1px);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 42%, black 0%, transparent 78%); mask-image:radial-gradient(ellipse 70% 60% at 50% 42%, black 0%, transparent 78%); }
.bg-glow { position:absolute; z-index:1; pointer-events:none; width:70vw; height:70vw; max-width:880px; max-height:880px; top:-14%; left:50%; transform:translateX(-50%);
  background:radial-gradient(circle, rgba(250,92,76,0.20) 0%, transparent 62%); filter:blur(20px); }

.slider { position:relative; z-index:10; width:100%; min-height:100svh; overflow:hidden; }
.slides { display:flex; min-height:100svh; transition:transform 0.7s cubic-bezier(.5,0,0,1); will-change:transform; }
.slide { flex:0 0 100%; min-width:100%; min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; perspective:1300px; padding:92px 34px 96px; }
@media(min-width:1000px){ .slide{ display:grid; grid-template-columns:1.12fr 0.88fr; grid-template-areas:"copy phone" "actions phone"; align-items:center; column-gap:20px; padding:104px 7vw 92px; } }

/* mobile stack order: description (copy) -> phone -> store buttons */
.slide__copy { order:1; text-align:center; max-width:560px; }
@media(min-width:1000px){ .slide__copy{ grid-area:copy; align-self:end; text-align:left; } }
.slide__copy .ey { color:var(--coral-light); font-size:12px; font-weight:900; letter-spacing:0.22em; text-transform:uppercase; }
/* consistent silver headline across every slide (slide-1 hero scale) */
.slide__copy h3 { font-size:clamp(34px,5.4vw,64px); font-weight:900; letter-spacing:-0.03em; line-height:1.0; margin:14px 0 14px; text-wrap:balance;
  background:linear-gradient(180deg,#FFFFFF 0%, #C9A9AE 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; filter:drop-shadow(0 12px 24px rgba(0,0,0,0.5)); }
.slide__copy p { color:rgba(255,255,255,0.86); font-size:16px; line-height:1.6; margin:0 auto; max-width:40ch; }
@media(min-width:1000px){ .slide__copy p{ margin:0; } }
.slide__copy .o-btn { margin-top:24px; }
.slide--hero .slide__copy .lead { color:rgba(255,255,255,0.90); font-size:17.5px; margin-top:18px; max-width:46ch; }

/* slide 1 — bold-typography "feel" */
.hpill { align-items:center; display:inline-flex; gap:8px; padding:8px 16px; border-radius:999px; font-size:11.5px; font-weight:900; letter-spacing:0.14em; text-transform:uppercase; color:var(--coral-light);
  background:linear-gradient(135deg,rgba(250,92,76,0.20),rgba(250,92,76,0.05)); border:1px solid rgba(250,92,76,0.35);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.08), 0 8px 20px rgba(250,92,76,0.16); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.hpill svg { color:var(--coral); flex:none; }
.slide--hero .slide__copy h3.hbig { font-size:clamp(36px,5vw,68px); line-height:0.98; letter-spacing:-0.04em; margin:20px 0 16px;
  background:none; -webkit-text-fill-color:#fff; color:#fff; filter:drop-shadow(0 12px 26px rgba(0,0,0,0.55)); }
@media(min-width:1000px){
  .slide--hero .slide__copy { max-width:680px; }
  .slide--hero .slide__copy h3.hbig { white-space:nowrap; }
}
.slide--hero .slide__copy h3.hbig .grad { background:none; color:var(--coral); -webkit-text-fill-color:var(--coral); }
.slide--hero .hero-actions { order:3; display:flex; flex-wrap:wrap; gap:13px; margin-top:26px; justify-content:center; }
@media(min-width:1000px){ .slide--hero .hero-actions{ grid-area:actions; align-self:start; justify-content:flex-start; } }
/* phones: keep both store buttons on one line */
@media(max-width:720px){
  .slide--hero .hero-actions{ flex-wrap:nowrap; width:100%; max-width:420px; gap:10px; }
  .slide--hero .hero-actions .sbtn{ min-width:0; flex:1 1 0; padding:0 12px; }
}

/* ---- multi-phone stage ---- */
.mockup { order:2; margin:40px 0 36px; position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:62vh; max-height:600px; transform-style:preserve-3d; transition:transform 0.12s ease-out; will-change:transform; }
@media(min-width:1000px){ .mockup{ grid-area:phone; } }
@media(max-width:640px){ .mockup{ height:52vh; } }

.phone { position:absolute; width:250px; height:520px; border-radius:2.7rem; transform-style:preserve-3d;
  background-color:#111; box-shadow:inset 0 0 0 2px #52525B, inset 0 0 0 7px #000, 0 40px 80px -15px rgba(0,0,0,0.9), 0 15px 25px -5px rgba(0,0,0,0.7); }
.mockup.one .phone { position:relative; transform:scale(1.14); }
/* two-phone fan */
.mockup.two .phone.p1 { transform:translateX(-92px) rotate(-7deg) scale(0.85); z-index:1; }
.mockup.two .phone.p2 { transform:translateX(92px) rotate(6deg); z-index:2; }
/* three-phone fan */
.mockup.three .phone.p1 { transform:translateX(-176px) rotate(-11deg) scale(0.74); z-index:1; }
.mockup.three .phone.p2 { transform:translateY(-8px) scale(0.9); z-index:3; }
.mockup.three .phone.p3 { transform:translateX(176px) rotate(11deg) scale(0.74); z-index:1; }
@media(max-width:999px){
  .mockup.two .phone.p1 { transform:translateX(-66px) rotate(-7deg) scale(0.7); }
  .mockup.two .phone.p2 { transform:translateX(56px) rotate(6deg) scale(0.82); }
  .mockup.three .phone.p1 { transform:translateX(-104px) rotate(-11deg) scale(0.56); }
  .mockup.three .phone.p2 { transform:translateY(-6px) scale(0.68); }
  .mockup.three .phone.p3 { transform:translateX(104px) rotate(11deg) scale(0.56); }
  .mockup.one .phone { transform:scale(0.98); }
}
/* tablet only (grid still 2-col): nudge the hero phone rightward for breathing room */
@media(min-width:1000px) and (max-width:1200px){
  .slide--hero .mockup { transform:translateX(72px); }
}

.hw { position:absolute; background:linear-gradient(90deg,#404040 0%,#171717 100%); box-shadow:-2px 0 5px rgba(0,0,0,0.8),inset -1px 0 1px rgba(255,255,255,0.15),inset 1px 0 2px rgba(0,0,0,0.8); z-index:0; }
.screen { position:absolute; inset:7px; background:#0B0608; border-radius:2.2rem; overflow:hidden; box-shadow:inset 0 0 15px rgba(0,0,0,1); color:#fff; z-index:10; }
.glare { position:absolute; inset:0; z-index:40; pointer-events:none; background:linear-gradient(110deg,rgba(255,255,255,0.08) 0%,rgba(255,255,255,0) 45%); }
.island { position:absolute; top:8px; left:50%; transform:translateX(-50%); width:96px; height:25px; background:#000; border-radius:999px; z-index:50; display:flex; align-items:center; justify-content:flex-end; padding-right:11px; box-shadow:inset 0 -1px 2px rgba(255,255,255,0.1); }
.island .dot { width:6px; height:6px; border-radius:50%; background:var(--coral); box-shadow:0 0 8px rgba(250,92,76,0.9); animation:pulse 1.8s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.35} }
/* Android variant: hole-punch camera instead of the iOS Dynamic Island */
.phone.android { border-radius:2.2rem; }
.phone.android .screen { border-radius:1.8rem; }
.phone.android .island { display:none; }
.phone.android .app { padding-top:36px; }
.phone.android .cam { position:absolute; top:13px; left:50%; transform:translateX(-50%); width:9px; height:9px; border-radius:50%; background:#000; box-shadow:inset 0 0 0 1.5px #2c2c2c, 0 0 0 1px rgba(0,0,0,0.6); z-index:55; }
.phone.android .cam::after { content:""; position:absolute; inset:2.5px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #3a4a7a, #0b1020); }

/* real screenshots inside a phone — crossfade cycle (covers the CSS fallback) */
.shots { position:absolute; inset:0; z-index:20; }
/* scaleY only (anchored top): trims the bottom strip (Android system nav) without
   cropping the sides — full screen width stays visible */
.shot-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; opacity:0; transition:opacity 0.8s ease; transform:scaleY(1.06); transform-origin:top center; }
.shot-img.is-on { opacity:1; }
.phone.shot .island { display:none; }
.badge .bic.bic-logo { background:transparent; border:0; border-radius:11px; overflow:hidden; box-shadow:0 6px 14px rgba(250,92,76,0.35); }
.badge .bic.bic-logo img { width:100%; height:100%; object-fit:cover; display:block; }
.app { position:relative; width:100%; height:100%; padding:44px 15px 20px; display:flex; flex-direction:column; }
.app-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.app-head .k { font-size:9px; text-transform:uppercase; letter-spacing:0.18em; color:#B7A4AC; font-weight:800; }
.app-head .ti { font-size:16.5px; font-weight:800; letter-spacing:-0.01em; }
.avatar { width:32px; height:32px; border-radius:50%; background:rgba(250,92,76,0.16); border:1px solid rgba(250,92,76,0.4); color:#FFD9D2; display:grid; place-items:center; font-weight:800; font-size:12px; }

/* screen: My Event */
.ring-wrap { position:relative; width:150px; height:150px; margin:2px auto 18px; display:grid; place-items:center; filter:drop-shadow(0 15px 25px rgba(0,0,0,0.8)); }
.ring-wrap svg { position:absolute; inset:0; width:100%; height:100%; }
.ring-bg { fill:none; stroke:rgba(255,255,255,0.05); stroke-width:12; }
.ring-fg { fill:none; stroke:var(--coral); stroke-width:12; stroke-linecap:round; transform:rotate(-90deg); transform-origin:center; stroke-dasharray:402; stroke-dashoffset:402; animation:ring 2s 0.9s cubic-bezier(.3,.8,.3,1) forwards; }
@keyframes ring { to{ stroke-dashoffset:120; } }
.ring-num { text-align:center; z-index:2; }
.ring-num .v { font-size:34px; font-weight:900; letter-spacing:-0.04em; }
.ring-num .l { font-size:8.5px; text-transform:uppercase; letter-spacing:0.14em; color:rgba(255,209,201,0.6); font-weight:800; margin-top:2px; }

.rows { display:flex; flex-direction:column; gap:8px; }
.row { display:flex; align-items:center; padding:9px 10px; border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,0.045) 0%,rgba(255,255,255,0.01) 100%);
  box-shadow:0 10px 20px rgba(0,0,0,0.3),inset 0 1px 1px rgba(255,255,255,0.05),inset 0 -1px 1px rgba(0,0,0,0.5); border:1px solid rgba(255,255,255,0.03); }
.row .ic { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; margin-right:10px; font-size:14px; flex:none; }
.row .ic.coral { background:linear-gradient(135deg,rgba(250,92,76,0.22),rgba(250,92,76,0.05)); border:1px solid rgba(250,92,76,0.25); }
.row .ic.green { background:linear-gradient(135deg,rgba(52,199,120,0.22),rgba(52,199,120,0.05)); border:1px solid rgba(52,199,120,0.25); }
.row .ic.navy { background:linear-gradient(135deg,rgba(120,140,255,0.22),rgba(120,140,255,0.05)); border:1px solid rgba(120,140,255,0.25); }
.row .tx { flex:1; min-width:0; }
.row .tx .a { font-size:11.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.row .tx .b { font-size:10px; color:#9C8790; margin-top:1px; }
.row .price { font-size:11.5px; font-weight:800; color:#FFD9D2; flex:none; }
.home-ind { position:absolute; bottom:7px; left:50%; transform:translateX(-50%); width:108px; height:4px; background:rgba(255,255,255,0.22); border-radius:999px; }

/* screen: Vendors search */
.scr-search { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:11px; padding:10px 12px; font-size:11px; color:#9C8790; margin-bottom:12px; }

/* screen: Vendor detail */
.vd-hero { border-radius:16px; padding:16px; margin-bottom:12px; color:#fff; background:linear-gradient(140deg,rgba(250,92,76,0.9),rgba(216,69,58,0.85)); box-shadow:0 14px 26px rgba(216,69,58,0.35); }
.vd-hero .vic { width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,0.2); display:grid; place-items:center; font-size:20px; margin-bottom:10px; }
.vd-hero .vn { font-size:16px; font-weight:900; letter-spacing:-0.01em; }
.vd-hero .vm { font-size:11px; opacity:0.9; margin-top:2px; }
.vd-hero .vp { font-size:11px; font-weight:800; margin-top:8px; background:rgba(255,255,255,0.18); display:inline-block; padding:4px 9px; border-radius:999px; }
.vd-btn { margin-top:auto; background:var(--coral); color:#fff; text-align:center; padding:11px; border-radius:13px; font-size:12.5px; font-weight:800; }

/* screen: Chat */
.chat { display:flex; flex-direction:column; gap:8px; }
.bub { max-width:82%; padding:8px 11px; border-radius:14px; font-size:11px; line-height:1.4; background:rgba(255,255,255,0.06); align-self:flex-start; }
.bub.me { align-self:flex-end; background:linear-gradient(135deg,var(--coral),var(--coral-deep)); color:#fff; }

/* screen: Quote card */
.quote-card { margin:auto 0; background:linear-gradient(180deg,rgba(255,255,255,0.06),rgba(255,255,255,0.02)); border:1px solid rgba(250,92,76,0.28); border-radius:16px; padding:15px; }
.quote-card .qh { font-size:9px; text-transform:uppercase; letter-spacing:0.12em; color:#9C8790; font-weight:800; }
.quote-card .qa { font-size:26px; font-weight:900; margin:5px 0 3px; letter-spacing:-0.02em; }
.quote-card .qd { font-size:10.5px; color:#9C8790; line-height:1.4; }
.quote-card .qb { margin-top:12px; background:var(--coral); color:#fff; text-align:center; padding:9px; border-radius:11px; font-size:11.5px; font-weight:800; }

/* screen: success / booked */
.success { margin:auto 0; text-align:center; }
.success .sck { width:70px; height:70px; border-radius:50%; margin:0 auto 14px; display:grid; place-items:center; font-size:32px;
  background:radial-gradient(circle,rgba(52,199,120,0.3),rgba(52,199,120,0.06)); border:1px solid rgba(52,199,120,0.4); color:#7ee0a6; }
.success .st { font-size:17px; font-weight:900; }
.success .ss { font-size:11px; color:#9C8790; margin-top:5px; }
.success .sr { margin-top:16px; display:flex; justify-content:space-between; padding:11px 13px; border-radius:12px; background:rgba(255,255,255,0.04); font-size:11.5px; }
.success .sr b { color:#7ee0a6; }

/* screen: Broski */
.ai-bub { background:rgba(250,92,76,0.13); border:1px solid rgba(250,92,76,0.28); border-radius:15px 15px 15px 4px; padding:10px 12px; font-size:11.5px; line-height:1.45; color:#FFD9D2; margin-bottom:12px; }
.plan-line { display:flex; justify-content:space-between; align-items:center; padding:9px 12px; border-radius:11px; background:rgba(255,255,255,0.04); font-size:11.5px; margin-bottom:7px; }
.plan-line b { font-weight:800; }
.plan-total { display:flex; justify-content:space-between; align-items:center; padding:10px 12px; border-radius:11px; margin-top:2px; background:linear-gradient(135deg,rgba(52,199,120,0.18),rgba(52,199,120,0.05)); border:1px solid rgba(52,199,120,0.3); font-size:12px; font-weight:800; color:#7ee0a6; }

/* screen: Budget */
.bud-total { font-size:9px; text-transform:uppercase; letter-spacing:0.14em; color:#9C8790; font-weight:800; }
.bud-amt { font-size:30px; font-weight:900; letter-spacing:-0.03em; margin:3px 0 12px; }
.bud-bar { height:9px; border-radius:999px; background:rgba(255,255,255,0.08); overflow:hidden; margin-bottom:5px; }
.bud-bar > i { display:block; height:100%; width:92%; border-radius:999px; background:linear-gradient(90deg,var(--coral),var(--coral-light)); }
.bud-cap { font-size:10px; color:#9C8790; margin-bottom:14px; }

/* contextual floating badge */
.badge { position:absolute; z-index:30; display:flex; align-items:center; gap:11px; padding:12px 14px; border-radius:16px;
  background:linear-gradient(135deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0.02) 100%);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  box-shadow:0 0 0 1px rgba(255,255,255,0.1),0 20px 40px -12px rgba(0,0,0,0.8),inset 0 1px 1px rgba(255,255,255,0.2); animation:floaty 6s ease-in-out infinite; }
.badge .bic { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font-size:16px; background:radial-gradient(circle,rgba(250,92,76,0.25),rgba(250,92,76,0.05)); border:1px solid rgba(250,92,76,0.3); }
.badge .a { color:#fff; font-size:12.5px; font-weight:800; letter-spacing:-0.01em; }
.badge .b { color:rgba(255,209,201,0.55); font-size:10.5px; font-weight:600; }
.badge.bl { top:4%; left:0; }
@media(max-width:999px){ .badge{ display:none; } }

/* notification cards — glass, matching the wedding badge */
.notif { position:absolute; z-index:31; display:flex; align-items:center; gap:10px; width:232px; padding:11px 13px; border-radius:16px;
  background:linear-gradient(135deg,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 100%);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  box-shadow:0 0 0 1px rgba(255,255,255,0.10), 0 22px 44px -12px rgba(0,0,0,0.72), inset 0 1px 1px rgba(255,255,255,0.2);
  animation:floaty 6.5s ease-in-out infinite; }
.notif__ic { flex:none; width:38px; height:38px; border-radius:11px; overflow:hidden; box-shadow:0 6px 14px rgba(250,92,76,0.35); }
.notif__ic img { width:100%; height:100%; object-fit:cover; display:block; }
.notif__tx { flex:1; min-width:0; }
.notif__tx b { display:block; font-size:12.5px; font-weight:800; color:#fff; line-height:1.2; }
.notif__tx span { font-size:11px; color:rgba(255,255,255,0.6); }
.notif__meta { display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex:none; }
.notif__time { font-size:10px; color:rgba(255,255,255,0.5); font-weight:700; }
.notif__dot { width:8px; height:8px; border-radius:50%; background:var(--coral); box-shadow:0 0 8px rgba(250,92,76,0.7); }
.notif.n-tr { top:15%; right:-9%; }
.notif.n-br { bottom:25%; right:-7%; animation-delay:1.7s; }

/* floating vendor card */
.vcard-float { position:absolute; z-index:32; left:-7%; bottom:-3%; width:240px; border-radius:18px; overflow:hidden;
  background:linear-gradient(180deg,#171420,#0e0b14); border:1px solid rgba(255,255,255,0.09);
  box-shadow:0 34px 64px -14px rgba(0,0,0,0.85); animation:floaty 7.5s ease-in-out infinite; animation-delay:1s; }
.vcf-img { position:relative; height:118px; }
.vcf-img > img { width:100%; height:100%; object-fit:cover; display:block; }
.vcf-img::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%, rgba(10,7,10,0.72)); }
.vcf-chip { position:absolute; top:9px; left:9px; z-index:2; background:rgba(0,0,0,0.72); color:#fff; font-size:9.5px; font-weight:800; padding:4px 9px; border-radius:8px; }
.vcf-vetted { position:absolute; top:9px; right:9px; z-index:2; background:rgba(52,199,120,0.92); color:#fff; font-size:9.5px; font-weight:800; padding:4px 8px; border-radius:999px; }
.vcf-loc { position:absolute; bottom:9px; left:9px; z-index:2; color:#fff; font-size:10.5px; font-weight:700; }
.vcf-price { position:absolute; bottom:9px; right:9px; z-index:2; background:var(--coral); color:#fff; font-size:10.5px; font-weight:800; padding:5px 10px; border-radius:999px; }
.vcf-body { padding:12px 13px 13px; }
.vcf-head { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.vcf-name { font-size:13.5px; font-weight:900; color:#fff; white-space:nowrap; }
.vcf-rate { font-size:11px; font-weight:800; color:#fff; white-space:nowrap; }
.vcf-rate .s { color:var(--amber); }
.vcf-rate small { color:rgba(255,255,255,0.5); font-weight:700; }
.vcf-desc { font-size:10.5px; color:rgba(255,255,255,0.62); margin:6px 0 10px; line-height:1.45; }
.vcf-tags { display:flex; gap:6px; margin-bottom:12px; flex-wrap:wrap; }
.vcf-tag { font-size:9px; font-weight:700; color:rgba(255,255,255,0.72); background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); padding:4px 8px; border-radius:7px; }
.vcf-foot { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.vcf-reply { font-size:9.5px; font-style:italic; color:rgba(255,255,255,0.5); }
.vcf-btn { background:var(--coral); color:#fff; font-size:10.5px; font-weight:800; padding:8px 13px; border-radius:10px; }

/* on tablet keep only the left vendor card; the right notif chips crowd the edge */
@media(max-width:1200px){
  .notif { display:none; }
  .badge.bl { left:-22%; }               /* push the wedding badge further out past the phone edge */
  .vcard-float { left:-24%; bottom:-16%; } /* push the vendor card further out + lower */
}
@media(max-width:820px){ .vcard-float { display:none; } }
@keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* slider controls */
.slider-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:45; width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.16); color:#fff; display:grid; place-items:center; cursor:pointer;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); transition:background 0.15s ease; }
.slider-arrow:hover { background:rgba(250,92,76,0.42); }
.slider-arrow.prev { left:18px; }
.slider-arrow.next { right:18px; }
@media(max-width:640px){ .slider-arrow{ width:40px; height:40px; } .slider-arrow.prev{ left:8px; } .slider-arrow.next{ right:8px; } }

/* hero footer: dots + store buttons pinned bottom */
.hero-foot { position:absolute; left:0; right:0; bottom:26px; z-index:40; display:flex; flex-direction:column; align-items:center; gap:16px; padding:0 20px; pointer-events:none; }
.hero-foot > * { pointer-events:auto; }
.dots { display:flex; gap:8px; justify-content:center; }
.dot2 { width:9px; height:9px; border-radius:999px; background:rgba(255,255,255,0.28); border:0; cursor:pointer; padding:0; transition:width 0.25s ease, background 0.25s ease; }
.dot2.active { background:var(--coral); width:26px; }
.store-btns { display:flex; flex-wrap:wrap; gap:13px; justify-content:center; }
.sbtn { position:relative; display:flex; align-items:center; gap:11px; height:54px; min-width:188px; padding:0 20px; border-radius:15px; text-decoration:none; transition:transform 0.35s cubic-bezier(.25,1,.5,1); }
.sbtn .sub { font-size:9px; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; display:block; white-space:nowrap; }
.sbtn .big { font-size:16px; font-weight:800; line-height:1; letter-spacing:-0.01em; white-space:nowrap; }
.sbtn svg { width:23px; height:23px; flex:none; }
.sbtn-light { background:linear-gradient(180deg,#FFFFFF 0%,#F1F5F9 100%); color:#0F172A; box-shadow:0 0 0 1px rgba(0,0,0,0.05),0 12px 24px -4px rgba(0,0,0,0.4),inset 0 1px 1px #fff; }
.sbtn-light .sub { color:#64748B; }
.sbtn-light:hover { transform:translateY(-3px); }
.sbtn-dark { background:#000; color:#fff; box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 12px 26px -6px rgba(0,0,0,0.6); }
.sbtn-dark .sub { color:rgba(255,255,255,0.72); }
.sbtn-dark:hover { transform:translateY(-3px); box-shadow:0 0 0 1px #fff,0 16px 30px -6px rgba(0,0,0,0.5); }

/* ---------------- Section shell ---------------- */
.o-sec { padding:88px 0; position:relative; }
.o-sec--glow::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; background:radial-gradient(50% 44% at 50% 0%, rgba(250,92,76,0.10), transparent 70%); }
/* blend by OVERLAP: How it works pulls up over the hero's bottom and fades in from
   transparent, so the hero's black bleeds through and resolves into --bg (no seam) */
#how { position:relative; z-index:2; margin-top:-200px; padding-top:210px;
  background:linear-gradient(180deg,
    transparent 0px,
    rgba(9,15,34,0.32) 90px,
    rgba(9,15,34,0.80) 175px,
    #0A1124 260px); }
/* keep the How it works heading on a single line (desktop) */
/* section 2 title + text — same spec as the hero */
#how .o-sec__head { max-width:820px; }
#how .o-sec__head h2 { font-size:clamp(36px,5vw,68px); font-weight:900; line-height:0.98; letter-spacing:-0.04em;
  background:none; color:#fff; -webkit-text-fill-color:#fff; filter:drop-shadow(0 12px 24px rgba(0,0,0,0.5)); }
#how .o-sec__head h2 .coral { color:var(--coral); -webkit-text-fill-color:var(--coral); }
#how .o-sec__head p { color:rgba(255,255,255,0.90); font-size:17.5px; }
/* FAQ head — same treatment as the hero title */
.o-faq .o-sec__head { max-width:900px; }
.o-faq .o-sec__head h2 { font-size:clamp(36px,5vw,68px); font-weight:900; line-height:0.98; letter-spacing:-0.04em;
  background:none; color:#fff; -webkit-text-fill-color:#fff; filter:drop-shadow(0 12px 24px rgba(0,0,0,0.5)); }
.o-faq .o-sec__head h2 .coral { color:var(--coral); -webkit-text-fill-color:var(--coral); }
.o-faq .o-sec__head p { color:rgba(255,255,255,0.90); font-size:17.5px; }
@media (min-width:721px){ .o-faq .o-sec__head h2 { white-space:nowrap; } }
.o-sec > .o-wrap { position:relative; z-index:1; }
.o-sec__head { margin:0 auto 48px; max-width:660px; text-align:center; }
.o-sec__head h2 { color:var(--ink); font-size:42px; font-weight:900; letter-spacing:-0.9px; line-height:1.06; margin:14px 0 0; text-wrap:balance;
  background:linear-gradient(180deg,#FFFFFF 0%, #CBBAC1 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.o-sec__head p { color:var(--muted); font-size:18px; margin:16px 0 0; }

/* trust strip */
.o-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg-2); }
.o-strip__inner { align-items:center; color:var(--ink); display:flex; flex-wrap:wrap; gap:14px 34px; justify-content:center; padding:22px 24px; }
.o-strip__item { align-items:center; display:inline-flex; font-size:14.5px; font-weight:800; gap:9px; }
.o-strip__item svg { color:var(--coral); flex:none; }

/* how it works — 2 cards | phone | 2 cards */
.o-steps { position:relative; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:28px; }
.o-steps__col { display:flex; flex-direction:column; gap:22px; }
.o-steps__phone { position:relative; z-index:2; display:flex; justify-content:center; }
.o-steps__phone::before { content:""; position:absolute; z-index:-1; left:50%; top:50%; transform:translate(-50%,-50%);
  width:118%; height:70%; border-radius:50%; background:radial-gradient(circle, rgba(52,68,166,0.30) 0%, transparent 68%); filter:blur(12px); }
.mphone { position:relative; width:clamp(230px,23vw,290px); aspect-ratio:9/19.3; border-radius:44px; padding:9px;
  background:linear-gradient(160deg,#20263f,#0a0e1e); box-shadow:0 0 0 1px rgba(255,255,255,0.10), 0 40px 80px -24px rgba(0,0,0,0.85), 0 0 60px -14px rgba(52,68,166,0.45); }
.mphone__screen { position:relative; width:100%; height:100%; border-radius:36px; overflow:hidden; background:#0e1430; }
/* scaleY only (anchored top): trims the bottom Android nav strip, keeps full width */
.mphone__screen img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; transform:scaleY(1.06); transform-origin:top center; }
/* crossfading step screens */
.hiw-shot { position:absolute; inset:0; opacity:0; transition:opacity 0.6s ease; }
.hiw-shot.is-on { opacity:1; }
.mphone__island { position:absolute; z-index:4; top:20px; left:50%; transform:translateX(-50%); width:84px; height:25px; border-radius:16px; background:#05060c; }
.o-step { position:relative; z-index:1; overflow:hidden; border-radius:22px; padding:28px 24px;
  background:linear-gradient(165deg,#171A2C 0%, #10121F 100%); border:1px solid rgba(255,255,255,0.09);
  box-shadow:0 20px 44px -22px rgba(0,0,0,0.8);
  transition:transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; }
.o-step:hover, .o-step.is-active { border-color:rgba(250,92,76,0.45); box-shadow:0 30px 60px -20px rgba(0,0,0,0.85), 0 0 40px -12px rgba(250,92,76,0.35); transform:translateY(-6px); }
/* light sweep across the card on hover / when active */
.o-step::after { content:""; position:absolute; z-index:0; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(120deg, transparent 28%, rgba(255,255,255,0.10) 47%, transparent 64%);
  transform:translateX(-120%); transition:transform 0.75s cubic-bezier(.2,.8,.2,1); }
.o-step:hover::after, .o-step.is-active::after { transform:translateX(120%); }
/* faint oversized ghost numeral on the right */
.o-step__ghost { position:absolute; z-index:0; top:-18px; right:6px; line-height:1; pointer-events:none;
  font-size:150px; font-weight:900; letter-spacing:-0.05em;
  background:linear-gradient(180deg, rgba(250,92,76,0.20) 0%, rgba(250,92,76,0.03) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  transition:transform 0.45s cubic-bezier(.2,.8,.2,1), opacity 0.25s ease; }
.o-step:hover .o-step__ghost, .o-step.is-active .o-step__ghost { transform:translateY(5px) scale(1.08);
  background:linear-gradient(180deg, rgba(250,92,76,0.36) 0%, rgba(250,92,76,0.06) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
@media(max-width:1024px){
  .o-steps { grid-template-columns:1fr 1fr; }
  .o-steps__phone { order:-1; grid-column:1 / -1; margin-bottom:6px; }
}
@media(max-width:520px){
  .o-steps { grid-template-columns:1fr; }
}
.o-step__ic { position:relative; z-index:1; align-items:center; display:flex; justify-content:center; height:52px; width:52px; color:#fff;
  background:linear-gradient(135deg,var(--coral),var(--coral-deep)); border-radius:15px;
  box-shadow:0 12px 24px -6px rgba(250,92,76,0.5), inset 0 1px 1px rgba(255,255,255,0.35);
  transition:transform 0.28s cubic-bezier(.2,.8,.2,1), box-shadow 0.28s ease; }
.o-step:hover .o-step__ic, .o-step.is-active .o-step__ic { transform:translateY(-3px) scale(1.08) rotate(-4deg);
  box-shadow:0 18px 32px -6px rgba(250,92,76,0.62), inset 0 1px 1px rgba(255,255,255,0.45); }
@media (prefers-reduced-motion: reduce){
  .o-step, .o-step__ic, .o-step__ghost, .o-step::after { transition:none; }
  .o-step:hover, .o-step.is-active, .o-step:hover .o-step__ic, .o-step.is-active .o-step__ic,
  .o-step:hover .o-step__ghost, .o-step.is-active .o-step__ghost { transform:none; }
  .o-step:hover::after, .o-step.is-active::after { transform:translateX(-120%); }
}
.o-step h3 { position:relative; z-index:1; color:#fff; font-size:20px; font-weight:900; letter-spacing:-0.3px; margin:20px 0 8px; }
.o-step p { position:relative; z-index:1; color:rgba(255,255,255,0.86); font-size:15px; margin:0; max-width:30ch; }

/* features */
.o-feat { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); }
.o-card { background:var(--glass); border:var(--glass-line); border-radius:22px; padding:30px 26px; transition:transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease; }
.o-card:hover { border-color:rgba(250,92,76,0.4); box-shadow:0 24px 50px -18px rgba(0,0,0,0.7); transform:translateY(-4px); }
.o-card__ic { align-items:center; background:linear-gradient(135deg,rgba(250,92,76,0.24),rgba(250,92,76,0.06)); border:1px solid rgba(250,92,76,0.28); border-radius:15px; color:var(--coral-light); display:flex; height:54px; justify-content:center; margin-bottom:20px; width:54px; }
.o-card h3 { color:var(--ink); font-size:19px; font-weight:900; letter-spacing:-0.3px; margin:0 0 8px; }
.o-card p { color:var(--muted); font-size:15px; margin:0; }
.o-card p em { color:var(--coral-light); font-style:normal; }

/* ===== vendor marketplace — text left, image right (dark water design) ===== */
.o-market { position:relative; overflow:hidden;
  background:
    radial-gradient(120% 90% at 50% 120%, #000000 0%, transparent 55%),
    linear-gradient(158deg,#17151A 0%, #0C0A0E 50%, #050405 100%); }
.o-market > .o-wrap { position:relative; z-index:2; }
/* dark, neutral drift (override the hero's navy blobs for this section only) */
.o-market .wb1 { background:radial-gradient(circle at 50% 50%, rgba(70,66,78,0.34) 0%, transparent 62%); }
.o-market .wb2 { background:radial-gradient(circle at 50% 50%, rgba(52,48,60,0.32) 0%, transparent 60%); }
.o-market .wb3 { background:radial-gradient(circle at 50% 50%, rgba(40,36,46,0.30) 0%, transparent 60%); }
.o-market .wcaustic { opacity:0.05; }
.o-market__grid { display:grid; grid-template-columns:0.98fr 1.12fr; align-items:center; gap:36px; }
.o-market__media img { transform:scale(1.10); transform-origin:center; }
.o-market__text h2 { color:#fff; font-size:clamp(36px,5vw,68px); font-weight:900; letter-spacing:-0.04em; line-height:0.98; margin:16px 0 0; text-wrap:balance; filter:drop-shadow(0 12px 24px rgba(0,0,0,0.5)); }
.o-market__text p { color:rgba(255,255,255,0.90); font-size:17.5px; line-height:1.55; margin:16px 0 26px; max-width:460px; }
.o-market__media img { width:100%; height:auto; display:block; filter:drop-shadow(0 40px 70px rgba(0,0,0,0.55)); }
@media (max-width:1024px){
  .o-market__grid { grid-template-columns:1fr; gap:30px; text-align:center; }
  .o-market__text p { margin-left:auto; margin-right:auto; }
  .o-market__media { max-width:440px; margin:0 auto; }
}

/* ===== blend the last 3 bands into the section above (overlap + top fade mask) ===== */
.o-vendor { position:relative; z-index:3; margin-top:-70px;
  -webkit-mask-image:linear-gradient(180deg, transparent 0px, #000 110px, #000 100%);
          mask-image:linear-gradient(180deg, transparent 0px, #000 110px, #000 100%); }
.o-vendor__inner { padding-top:150px; }
#vendors.o-sec { position:relative; z-index:4; margin-top:-70px; padding-top:158px; padding-bottom:70px; }
.o-market { -webkit-mask-image:linear-gradient(180deg, transparent 0px, #000 110px, #000 100%);
                    mask-image:linear-gradient(180deg, transparent 0px, #000 110px, #000 100%); }
#broski.o-sec { position:relative; z-index:5; margin-top:-70px; }

/* broski band — full-bleed, copy on the right / sphere on the left */
#broski.o-sec { padding:0; }
#broski .o-wrap { max-width:none; padding:0; }
.o-broski { background:linear-gradient(140deg,#2a151d 0%, #150b10 60%); border-radius:0; color:#fff; overflow:hidden; position:relative;
  -webkit-mask-image:linear-gradient(180deg, transparent 0px, #000 110px, #000 100%);
          mask-image:linear-gradient(180deg, transparent 0px, #000 110px, #000 100%); }
.o-broski__grid { align-items:center; display:grid; gap:32px; grid-template-columns:1fr 1fr; padding:150px 6vw 84px; position:relative; z-index:1; }
.o-broski__side { align-self:stretch; }
/* Broski ask box — decorative; placeholder types out realistic prompts */
.o-broski__grid > div { min-width:0; }
.o-ask { display:flex; align-items:center; gap:12px; margin-top:26px; padding:8px 8px 8px 16px; border-radius:18px; min-width:0; max-width:100%;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.08), 0 18px 40px -18px rgba(0,0,0,0.7); }
.o-ask__ic { flex:none; width:34px; height:34px; border-radius:10px; display:grid; place-items:center; color:#fff;
  background:linear-gradient(135deg, rgba(250,92,76,0.42) 0%, rgba(250,92,76,0.14) 100%);
  border:1px solid rgba(250,92,76,0.4); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.28), 0 6px 16px -6px rgba(250,92,76,0.55); }
.o-ask__field { flex:1; min-width:0; display:flex; align-items:center; height:24px; overflow:hidden; }
.o-ask__type { color:rgba(255,255,255,0.9); font-size:15.5px; font-weight:600; white-space:nowrap; }
.o-ask__caret { flex:none; width:2px; height:19px; margin-left:1px; background:var(--coral); border-radius:1px; animation:askBlink 1s steps(1) infinite; }
@keyframes askBlink { 0%,50%{opacity:1} 50.01%,100%{opacity:0} }
.o-ask__send { flex:none; width:42px; height:42px; border-radius:13px; border:0; cursor:default; display:grid; place-items:center; color:#fff;
  background:linear-gradient(135deg, var(--coral), var(--coral-deep)); box-shadow:0 8px 18px -6px rgba(250,92,76,0.7); }
@media (prefers-reduced-motion: reduce){ .o-ask__caret { animation:none; } }

/* chips as a vertical auto-scroller: one row visible, rows slide up, top/bottom fade */
.o-broski__chips { --row-h:104px; margin-top:34px; height:var(--row-h); overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 26%, #000 74%, transparent 100%);
  mask-image:linear-gradient(to bottom, transparent 0%, #000 26%, #000 74%, transparent 100%); }
.chip-track { display:flex; flex-direction:column; animation:chipRoll 26s linear infinite; }
.chip-row { flex:none; height:var(--row-h); display:grid; grid-template-columns:1fr 1fr; gap:14px; align-content:center; }
/* end-credits scroll: rows drift up continuously; track is 4 rows (2 unique x2)
   so -50% is exactly one cycle and loops seamlessly */
@keyframes chipRoll {
  from { transform:translateY(0); }
  to   { transform:translateY(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .o-broski__chips { height:auto; -webkit-mask-image:none; mask-image:none; }
  .chip-track { animation:none; }
  .chip-row[aria-hidden="true"] { display:none; }
  .chip-row { margin-bottom:14px; }
}
/* breathing Broski sphere (real app asset) */
.broski-orb { position:absolute; z-index:0; top:50%; left:13%; right:auto; transform:translateY(-50%); width:340px; height:340px; pointer-events:none;
  background:url('/assets/broski-sphere.png') center/contain no-repeat;
  filter:drop-shadow(0 0 60px rgba(250,92,76,0.4));
  animation:broskiBreathe 4.6s ease-in-out infinite; }
@keyframes broskiBreathe {
  0%,100% { transform:translateY(-50%) scale(1);    filter:drop-shadow(0 0 46px rgba(250,92,76,0.32)); }
  50%     { transform:translateY(-50%) scale(1.06); filter:drop-shadow(0 0 84px rgba(250,92,76,0.6)); }
}
@media (prefers-reduced-motion: reduce){ .broski-orb { animation:none; } }
@media (max-width:1024px){ .broski-orb { display:none; } .o-broski__side { display:none; } }
.o-broski h2 { font-size:clamp(36px,5vw,68px); font-weight:900; letter-spacing:-0.04em; line-height:0.98; margin:16px 0 0; text-wrap:balance; }
.o-broski__grid > div > p { color:#fff; font-size:17px; margin:16px 0 26px; max-width:none; }
.o-chip { align-items:center; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:16px; display:flex; gap:13px; padding:15px 18px; }
.o-chip__ic { align-items:center; border-radius:11px; color:#fff; display:flex; flex:none; height:40px; justify-content:center; width:40px;
  background:linear-gradient(135deg, rgba(250,92,76,0.42) 0%, rgba(250,92,76,0.14) 100%);
  border:1px solid rgba(250,92,76,0.4); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.28), 0 6px 16px -6px rgba(250,92,76,0.55); }
.o-chip b { display:block; font-size:15px; font-weight:800; }
.o-chip span { color:rgba(255,255,255,0.66); font-size:13px; }

/* celebration band */
.o-celebrate { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.o-celebrate a { align-items:center; background:var(--glass); border:var(--glass-line); border-radius:999px; color:var(--ink); display:inline-flex; font-size:15px; font-weight:800; gap:9px; padding:12px 20px; text-decoration:none; transition:transform 0.15s ease, border-color 0.15s ease; }
.o-celebrate a:hover { border-color:rgba(250,92,76,0.5); transform:translateY(-3px); }

/* vendor band (navy) */
.o-vendor { position:relative; overflow:hidden; color:#fff;
  background:linear-gradient(155deg,#0C1030 0%, #080A1E 52%, #03040C 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), inset 0 -1px 0 rgba(0,0,0,0.5); }
/* liquid-glass light refraction — slow drifting coloured blobs */
.o-vendor::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(55% 46% at 82% 4%, rgba(122,150,255,0.22), transparent 62%),
    radial-gradient(52% 44% at 8% 100%, rgba(72,102,222,0.18), transparent 60%),
    radial-gradient(44% 42% at 52% 54%, rgba(96,124,242,0.08), transparent 72%);
  filter:blur(6px); animation:vliquid 14s ease-in-out 1 both; }
/* glossy top highlight + a diagonal glass glint that sweeps across */
.o-vendor::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.08) 0%, transparent 13%),
    linear-gradient(122deg, transparent 44%, rgba(255,255,255,0.07) 50%, transparent 56%);
  background-size:100% 100%, 260% 100%;
  background-repeat:no-repeat;
  background-position:0 0, -80% 0;
  animation:vsheen 3.2s ease-in-out 0.4s 1 both; }
@keyframes vliquid { 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-3%,2%) scale(1.08); } }
@keyframes vsheen { 0%{ background-position:0 0, -60% 0; } 60%,100%{ background-position:0 0, 170% 0; } }
/* phone breathing float */
.o-vendor__media .mphone { animation:phoneFloat 6.5s ease-in-out infinite; }
@keyframes phoneFloat { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
@media (prefers-reduced-motion: reduce){ .o-vendor::before, .o-vendor::after, .o-vendor__media .mphone { animation:none; } }
.o-vendor__inner { padding:82px 24px; position:relative; z-index:1; }
.o-vendor__grid { align-items:center; display:grid; gap:52px; grid-template-columns:0.95fr 1.05fr; }
.o-vendor h2 { font-size:clamp(40px,4.8vw,64px); font-weight:900; letter-spacing:-1px; line-height:1.02; margin:16px 0 0; text-wrap:balance; }
.o-vendor__sub { color:rgba(255,255,255,0.82); font-size:18px; margin:16px 0 28px; max-width:420px; }
.o-vpoints { display:grid; gap:16px; }
.o-vpoint { align-items:flex-start; display:flex; gap:14px; }
.o-vpoint__ic { align-items:center; background:rgba(255,255,255,0.14); border-radius:12px; color:#fff; display:flex; flex:none; height:44px; justify-content:center; width:44px; }
.o-vpoint b { display:block; font-size:16.5px; font-weight:800; }
.o-vpoint span { color:rgba(255,255,255,0.74); font-size:14.5px; }
.o-vendor__cta { margin-top:30px; }
/* vendor phone + floating stat cards */
.o-vendor__media { position:relative; display:flex; justify-content:center; align-items:center; min-height:520px; }
.vshot { position:absolute; inset:0; opacity:0; transition:opacity 0.6s ease; }
.vshot.is-on { opacity:1; }
.mphone--navy { box-shadow:0 0 0 1px rgba(255,255,255,0.12), 0 44px 90px -24px rgba(0,0,0,0.7), 0 0 70px -14px rgba(255,255,255,0.28); }
.vstat { position:absolute; z-index:3; border-radius:16px; padding:13px 15px; color:#fff;
  background:linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.06) 100%);
  border:1px solid rgba(255,255,255,0.22); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  box-shadow:0 22px 44px -16px rgba(0,0,0,0.6), inset 0 1px 1px rgba(255,255,255,0.28); animation:vfloat 7s ease-in-out infinite; }
.vstat--earn { top:11%; left:-5%; display:flex; flex-direction:column; gap:3px; width:196px; }
.vstat--earn .vstat__k { font-size:11px; font-weight:700; color:rgba(255,255,255,0.72); }
.vstat--earn .vstat__v { font-size:25px; font-weight:900; letter-spacing:-0.6px; }
.vstat--earn .vstat__t { font-size:11px; font-weight:800; color:#7EE7A6; }
.vstat--book, .vstat--verified { display:flex; align-items:center; gap:11px; width:205px; }
.vstat--book { bottom:15%; left:-9%; animation-delay:1.4s; }
.vstat--verified { top:29%; right:-7%; animation-delay:2.4s; }
.vstat__ic { flex:none; width:36px; height:36px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:16px; background:rgba(255,255,255,0.2); }
.vstat__ic--logo { background:transparent; overflow:hidden; box-shadow:0 6px 14px rgba(250,92,76,0.4); }
.vstat__ic--logo img { width:100%; height:100%; object-fit:cover; display:block; }
.vstat--verified .vstat__ic { background:linear-gradient(135deg,#4257C9,#232A6E); color:#fff; box-shadow:0 6px 14px rgba(35,42,110,0.5); }
.vstat--book div b, .vstat--verified div b { display:block; font-size:14px; font-weight:800; color:#fff; }
.vstat--book div span, .vstat--verified div span { font-size:12px; color:rgba(255,255,255,0.74); }
@keyframes vfloat { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
@media(max-width:1080px){ .vstat { display:none; } .o-vendor__media { min-height:auto; } }
@media (prefers-reduced-motion: reduce){ .vstat { animation:none; } }

/* FAQ */
.o-faq__list { max-width:820px; margin:36px auto 0; display:flex; flex-direction:column; gap:12px; }
.o-faq__item { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:16px; overflow:hidden; transition:border-color 0.18s ease, background 0.18s ease; }
.o-faq__item:hover { border-color:rgba(250,92,76,0.35); }
.o-faq__item[open] { border-color:rgba(250,92,76,0.45); background:rgba(250,92,76,0.06); }
.o-faq__item summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; font-size:17px; font-weight:800; color:#fff; }
.o-faq__item summary::-webkit-details-marker { display:none; }
.o-faq__ic { flex:none; display:grid; place-items:center; width:26px; height:26px; color:var(--coral-light); transition:transform 0.25s ease; }
.o-faq__ic svg { width:20px; height:20px; }
.o-faq__item[open] .o-faq__ic { transform:rotate(180deg); }
.o-faq__a { padding:0 22px 20px; }
.o-faq__a p { color:rgba(255,255,255,0.8); font-size:15.5px; line-height:1.65; margin:0; max-width:none; }
@media (max-width:720px){
  .o-faq__item summary { padding:17px 18px; font-size:15.5px; }
  .o-faq__a { padding:0 18px 17px; }
}

/* final cta */
.o-final { text-align:center; }
.o-final h2 { color:#fff; -webkit-text-fill-color:#fff; font-size:clamp(36px,5vw,68px); font-weight:900; letter-spacing:-0.04em; line-height:0.98; margin:0 auto; max-width:640px; text-wrap:balance;
  background:none; }
/* PC + tablet: keep the final heading on one line */
@media (min-width:721px){ .o-final h2 { white-space:nowrap; max-width:none; } }
.o-final p { color:#fff; font-size:19px; margin:16px auto 0; max-width:520px; }
.o-final .store-btns { margin-top:32px; }

/* Footer styles now live in /chrome.css (shared header/footer template). */

/* reveal */
.o-reveal { opacity:0; transform:translateY(22px); transition:opacity 0.6s ease, transform 0.6s ease; }
.o-reveal.is-in { opacity:1; transform:none; }

/* responsive */
/* landscape tablet / small laptop: sphere column too wide -> give the copy more room */
@media (min-width:1025px) and (max-width:1280px) {
  .o-broski__grid { grid-template-columns:0.5fr 1.5fr; column-gap:48px; }
  .broski-orb { left:2%; }
}
@media (max-width:1024px) {
  .o-broski__grid, .o-vendor__grid { grid-template-columns:1fr; }
  .o-broski__grid { padding:96px 28px 56px; }
  .o-broski__grid > div:first-child { order:0; }
  .o-broski__chips { order:0; }
  .o-steps, .o-feat { grid-template-columns:1fr; }
  /* trim the big overlap top-padding when stacked so it isn't over-spaced */
  .o-vendor__inner { padding-top:104px; }
  #vendors.o-sec { padding-top:104px; }
  .o-vendor__media { min-height:auto; margin-top:8px; }
  /* chips: there's room when stacked — show all as a static 2-up grid (no scroller/clip) */
  .o-broski__chips { height:auto; -webkit-mask-image:none; mask-image:none; }
  .chip-track { display:block; animation:none; }
  .chip-row { height:auto; margin-bottom:14px; }
  .chip-row[aria-hidden="true"] { display:none; }
  .o-footer__inner { grid-template-columns:1fr 1fr; }
}
@media (max-width:720px) {
  .o-nav__links { display:none; }
  .o-sec { padding:60px 0; }
  .o-sec__head h2, .o-vendor h2, .o-broski h2 { font-size:32px; }
  .o-footer__inner { grid-template-columns:1fr; gap:26px; }
  /* phones: make the mockups slightly bigger */
  .mockup.one .phone { transform:scale(1.08); }
  .mphone { width:clamp(262px,84vw,320px); }
  /* hero: give the description more width (fits ~3 lines) */
  .slide { padding-left:20px; padding-right:20px; }
  .slide--hero .slide__copy .lead { font-size:17.5px; line-height:1.55; max-width:none; margin-top:14px; }
  /* phone sits in natural flow (like the How-it-works phone) — no 62vh dead space;
     balanced margins give clean spacing above and below */
  .mockup { height:auto; margin:34px 0 32px; }
  /* final-CTA store buttons on one line (same as hero) */
  .o-final .store-btns { flex-wrap:nowrap; width:100%; max-width:420px; margin-left:auto; margin-right:auto; gap:10px; }
  .o-final .store-btns .sbtn { min-width:0; flex:1 1 0; padding:0 12px; }
  /* Broski chips (phones): re-enable the end-credits scroller — 2 chips in view, 1 per row */
  .o-broski__chips { --row-h:158px; height:var(--row-h); overflow:hidden;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%); }
  .chip-track { display:flex; flex-direction:column; animation:chipRoll 30s linear infinite; }
  .chip-row { display:grid; grid-template-columns:1fr; height:auto; gap:12px; margin:0 0 12px; align-content:start; }
  .chip-row[aria-hidden="true"] { display:grid; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation:none !important; scroll-behavior:auto; }
  .card { opacity:1; }
  .slides { transition:none; }
  .ring-fg { stroke-dashoffset:120; }
  .o-reveal { opacity:1; transform:none; transition:none; }
}
