/* ============================================================
   KeepBolt — Product Landing (warm • editorial • green)
   ============================================================ */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{min-height:100%;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul{list-style:none}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:8px}

/* ---------- Tokens ---------- */
:root{
  /* warm surfaces */
  --cream:#FBF5EC;        /* hero canvas */
  --cream-2:#F5EFE4;      /* alt warm band */
  --paper:#FFFFFF;        /* white sections */
  --sand:#EFE8DB;         /* soft chips / rings */

  /* ink */
  --ink:#14180F;
  --ink-2:#3B3F33;
  --muted:#767A6B;

  /* brand green */
  --green:#4bde80;
  --green-strong:#25b863;
  --green-deep:#0f9a4f;
  --green-ink:#0a6e3a;
  --green-tint:#e7f9ed;
  --green-tint-2:#d6f5df;

  --line:rgba(20,24,15,.10);
  --line-soft:rgba(20,24,15,.06);

  --radius:20px;
  --radius-lg:28px;
  --radius-xl:36px;
  --pill:999px;

  --shadow-sm:0 6px 20px rgba(30,40,20,.06);
  --shadow:0 24px 60px -24px rgba(30,45,20,.22);
  --shadow-card:0 18px 46px -20px rgba(30,45,20,.28);
  --shadow-green:0 16px 34px -12px rgba(75,222,128,.45);

  --container:1180px;
  --ease:cubic-bezier(.22,1,.36,1);

  --serif:'Fraunces',ui-serif,Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  /* Authentic message-bubble tails — geometry ported 1:1 from
     tunnel_app/lib/widgets/chat/bubble_tail_painter.dart (10×16, Telegram
     swoosh: concave cubic upper edge → rounded tip → flush bottom). */
  --tail-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 10 16'%3E%3Cpath d='M0,0 C0.2,8 2.8,12.48 7.8,14.4 Q9.8,15.36 9.8,15.92 Q8.5,16 6.5,16 L0,16 Z' fill='%23000'/%3E%3C/svg%3E");
  --tail-left:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 10 16'%3E%3Cpath d='M10,0 C9.8,8 7.2,12.48 2.2,14.4 Q0.2,15.36 0.2,15.92 Q1.5,16 3.5,16 L10,16 Z' fill='%23000'/%3E%3C/svg%3E");
}

/* Reusable bubble-tail piece: a 10×16 mask filled with the bubble's own
   colour, sitting flush beside the bubble bottom (matches the Flutter
   CustomPaint sibling). `--bub` = the bubble background colour. */
.has-tail{position:relative}
.has-tail::after{content:'';position:absolute;bottom:0;width:10px;height:16px;
  background:var(--bub,#fff);
  -webkit-mask:var(--tail) no-repeat center/10px 16px;mask:var(--tail) no-repeat center/10px 16px}
.tail-left{border-bottom-left-radius:5px}
.tail-left::after{left:-8px;--tail:var(--tail-left)}
.tail-right{border-bottom-right-radius:5px}
.tail-right::after{right:-8px;--tail:var(--tail-right)}

/* ---------- Base ---------- */
body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  font-size:17px;
  line-height:1.6;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ---------- Typography ---------- */
.serif{font-family:var(--serif)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04;letter-spacing:-.02em;color:var(--ink)}
h1{font-size:clamp(2.6rem,6vw,4.7rem)}
h2{font-size:clamp(2rem,4.4vw,3.4rem)}
h3{font-size:1.35rem}
.lead{color:var(--ink-2);font-size:clamp(1.02rem,1.35vw,1.18rem);line-height:1.6}
.eyebrow{display:inline-block;font-size:14px;font-weight:600;letter-spacing:.01em;color:var(--green-strong)}
.hl{background:var(--green-tint);border-radius:8px;padding:0 .28em;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:26px}
.section{padding-block:clamp(64px,9vw,120px)}

/* ---------- Showcase marquee (auto-scrolling iPhones) ---------- */
:root{
  --i-vid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M23 7l-7 5 7 5V7z'/%3E%3Crect x='1' y='5' width='15' height='14' rx='2'/%3E%3C/svg%3E");
  --i-call:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M20 15.5c-1.2 0-2.4-.2-3.6-.6a1 1 0 00-1 .2l-2.2 2.2a15 15 0 01-6.6-6.6l2.2-2.2a1 1 0 00.2-1A11 11 0 018.5 4a1 1 0 00-1-1H4a1 1 0 00-1 1 17 17 0 0017 17 1 1 0 001-1v-3.5a1 1 0 00-1-1z'/%3E%3C/svg%3E");
  --i-play:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
  --i-mic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='2' width='6' height='11' rx='3' fill='%23000'/%3E%3Cpath d='M6 11a6 6 0 0012 0M12 19v3'/%3E%3C/svg%3E");
}
.showcase-sec{overflow:hidden;position:relative;background:linear-gradient(180deg,var(--cream),var(--paper))}
.pmarquee{position:relative;margin-top:clamp(28px,4vw,46px);overflow:hidden;padding:34px 0 24px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
/* soft brand glow pooling behind the row */
.pmarquee::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:76%;height:118%;pointer-events:none;z-index:0;
  background:radial-gradient(closest-side,rgba(75,222,128,.16),transparent 72%)}
.pmarquee-track{position:relative;z-index:1;display:flex;align-items:center;gap:40px;width:max-content;
  animation:pscroll 64s linear infinite;will-change:transform}
.pmarquee:hover .pmarquee-track{animation-play-state:paused}
@keyframes pscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.pmarquee-track{animation:none}}

.iphone.pm{position:static;right:auto;bottom:auto;z-index:auto;width:248px;flex:0 0 auto;margin:0;
  filter:drop-shadow(0 30px 48px rgba(20,45,22,.26))}
/* gentle staggered wave — pattern repeats every 7 so the cloned set lines up (seamless loop) */
.iphone.pm:nth-child(7n+1){transform:translateY(-9px)}
.iphone.pm:nth-child(7n+2){transform:translateY(15px)}
.iphone.pm:nth-child(7n+3){transform:translateY(-3px)}
.iphone.pm:nth-child(7n+4){transform:translateY(19px)}
.iphone.pm:nth-child(7n+5){transform:translateY(-7px)}
.iphone.pm:nth-child(7n+6){transform:translateY(11px)}
.iphone.pm:nth-child(7n+7){transform:translateY(3px)}

/* screen base + faux status bar */
.scr{position:absolute;inset:0;background:#fff;display:flex;flex-direction:column;overflow:hidden;color:#0f140d;font-family:var(--sans)}
.sbar{flex:0 0 auto;height:30px;display:flex;align-items:center;justify-content:space-between;padding:9px 18px 0;font-size:11px;font-weight:700}
.sbar .sb-i{width:22px;height:11px;border-radius:3px;border:1.4px solid currentColor;position:relative;opacity:.9}
.sbar .sb-i::after{content:'';position:absolute;top:2px;bottom:2px;left:2px;right:5px;background:currentColor;border-radius:1px}
.sbar.white,.sbar.light{color:#fff}

/* chat screen */
.scr-chat .s-top{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:5px 11px 7px;background:#f6f8f4;border-bottom:1px solid #ececec}
.s-back{color:var(--green-deep);font-size:19px;line-height:1}
.s-av{width:29px;height:29px;border-radius:50%;background-size:cover;background-position:center;flex:0 0 auto}
.s-av.a1{background-image:url('https://randomuser.me/api/portraits/women/68.jpg')}
.s-av.a2{background-image:url('https://picsum.photos/seed/kb-musics2/60/60')}
.s-who{flex:1;min-width:0}
.s-who b{font-size:12.5px;display:block;line-height:1.2}
.s-who small{font-size:9.5px;color:#8a8f86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.s-ic{width:19px;height:19px;flex:0 0 auto;background:var(--green-strong);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.s-ic.vid{-webkit-mask-image:var(--i-vid);mask-image:var(--i-vid)}
.s-ic.call{-webkit-mask-image:var(--i-call);mask-image:var(--i-call)}
.s-body{flex:1;padding:10px 9px;display:flex;flex-direction:column;gap:7px;overflow:hidden;
  background:linear-gradient(155deg,#84b968 0%,#a9cd84 45%,#cfe0a6 100%)}
.sb{max-width:80%;padding:6px 9px;border-radius:11px;font-size:11.5px;line-height:1.32;position:relative;box-shadow:0 1px 1.5px rgba(0,0,0,.09)}
.sb.in{align-self:flex-start;background:#fff;border-bottom-left-radius:4px;--bub:#fff}
.sb.out{align-self:flex-end;background:#effadf;color:#12300f;border-bottom-right-radius:4px;--bub:#effadf}
.sb.in::after{content:'';position:absolute;bottom:0;left:-5px;width:8px;height:12px;background:var(--bub);-webkit-mask:var(--tail-left) center/8px 12px no-repeat;mask:var(--tail-left) center/8px 12px no-repeat}
.sb.out::after{content:'';position:absolute;bottom:0;right:-5px;width:8px;height:12px;background:var(--bub);-webkit-mask:var(--tail-right) center/8px 12px no-repeat;mask:var(--tail-right) center/8px 12px no-repeat}
.sb em{font-style:normal;font-size:9px;color:#9aa094;margin-left:6px}
.sb.out em{color:#69a878}
.sb.card{display:flex;align-items:center;gap:8px;max-width:88%}
.fc-ic{width:30px;height:30px;border-radius:8px;background:var(--green-deep);flex:0 0 auto;position:relative}
.fc-ic::after{content:'';position:absolute;inset:0;background:#fff;-webkit-mask:var(--i-play) center/13px no-repeat;mask:var(--i-play) center/13px no-repeat}
.fc-t b{font-size:11px;display:block}.fc-t small{font-size:9.5px;color:#69a878}
.sb.gift{align-self:flex-start;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #ffe1a8;border-bottom-left-radius:4px;--bub:#fff}
.sb.gift .gf-ic{font-size:20px}
.sb.gift b{font-size:11px;display:block}.sb.gift small{font-size:9.5px;color:#c98a2a}
.s-inp{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:7px 10px;background:#fff;border-top:1px solid #ececec}
.s-plus{font-size:17px;color:#9aa094;line-height:1}
.s-field{flex:1;height:25px;border-radius:13px;background:#f1f3ee;display:flex;align-items:center;padding:0 10px;font-size:11px;color:#9aa094}
.s-mic{width:15px;height:15px;flex:0 0 auto;background:#9aa094;-webkit-mask:var(--i-mic) center/contain no-repeat;mask:var(--i-mic) center/contain no-repeat}

/* wallet screen */
.scr-wallet{background:#fff}
.wl-hero{background:linear-gradient(160deg,#33d06f,#12b45f);color:#fff;padding:0 18px 20px;border-radius:0 0 26px 26px}
.wl-top{display:flex;align-items:center;justify-content:space-between}
.wl-back{font-size:19px}
.wl-cur{font-size:11px;background:rgba(255,255,255,.2);padding:5px 11px;border-radius:14px;font-weight:600}
.wl-hi{font-size:16px;font-weight:800;margin-top:10px}
.wl-sub{font-size:11px;opacity:.85;margin-top:1px}
.wl-lab{text-align:center;font-size:11px;opacity:.85;margin-top:14px}
.wl-bal{text-align:center;font-size:24px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.wl-acts{display:flex;justify-content:center;gap:34px;margin-top:16px}
.wl-acts span{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px}
.wl-i{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:17px}
.wl-list{padding:4px 0}
.wl-row{display:flex;align-items:center;gap:12px;padding:13px 18px;font-size:12.5px;font-weight:500;border-bottom:1px solid #f3f3f3}
.wl-row b{margin-left:auto;color:#c2c6bd;font-weight:400;font-size:16px}
.wl-ri{width:20px;flex:0 0 auto;text-align:center;font-size:15px}
.wl-ri[data-i="user"]::before{content:"👤"}
.wl-ri[data-i="wallet"]::before{content:"👛"}
.wl-ri[data-i="gift"]::before{content:"🧧"}
.wl-ri[data-i="lock"]::before{content:"🔒"}

/* call screen */
.scr-call{background:linear-gradient(180deg,#4a9fe0,#3ec3d0);color:#fff;align-items:center}
.cl-mini{align-self:flex-start;padding:2px 18px;font-size:13px;letter-spacing:2px}
.cl-avwrap{position:relative;margin-top:30px;width:150px;height:150px;display:grid;place-items:center}
.cl-ring{position:absolute;border-radius:50%;background:rgba(255,255,255,.14);width:128px;height:128px}
.cl-ring.r2{width:150px;height:150px;background:rgba(255,255,255,.09)}
.cl-av{width:90px;height:90px;border-radius:50%;background-size:cover;background-position:center;border:3px solid rgba(255,255,255,.5)}
.cl-av.a1{background-image:url('https://picsum.photos/seed/kb-tayla/120/120')}
.cl-name{font-size:22px;font-weight:800;margin-top:36px}
.cl-status{font-size:13px;opacity:.92;margin-top:6px;display:flex;align-items:center;gap:6px}
.cl-dots{display:inline-flex;gap:3px}
.cl-dots i{width:5px;height:5px;border-radius:50%;background:#fff;opacity:.5}
.cl-dots i:nth-child(2){opacity:1}
.cl-ctrl{display:flex;gap:22px;margin-top:auto;padding-bottom:30px}
.cl-b{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px}
.cl-ic{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:18px}
.cl-ic.end{background:#f0463c}
.cl-ic.spk::before{content:"🔊"}
.cl-ic.mic::before{content:"🎙️"}
.cl-ic.end::before{content:'';width:19px;height:19px;background:#fff;-webkit-mask:var(--i-call) center/contain no-repeat;mask:var(--i-call) center/contain no-repeat;transform:rotate(135deg)}

/* ---------- Desktop window showcase (macOS) ---------- */
.desk-sec{background:radial-gradient(1000px 540px at 68% 8%,#eaf7e1,var(--cream) 62%)}
.deskshow{position:relative;max-width:1060px;margin:0 auto;padding-top:26px}
.macwin{border-radius:13px;overflow:hidden;background:#fff;
  box-shadow:0 50px 90px -34px rgba(30,50,25,.42),0 2px 8px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.05)}
.mw-bar{height:36px;display:flex;align-items:center;gap:14px;padding:0 15px;background:#f1f2ee;border-bottom:1px solid rgba(0,0,0,.06)}
.mw-bar.dark{background:#171a1f;border-bottom-color:rgba(255,255,255,.07)}
.mw-dots{display:flex;gap:8px}
.mw-dots i{width:12px;height:12px;border-radius:50%}
.mw-dots i:nth-child(1){background:#ff5f57}.mw-dots i:nth-child(2){background:#febc2e}.mw-dots i:nth-child(3){background:#28c840}
.mw-title{font-size:12.5px;color:var(--muted);font-weight:500}
.macwin img{display:block;width:100%;height:auto}
/* front light window, right-aligned */
.win-light{position:relative;z-index:2;width:74%;margin-left:auto}
/* dark window peeking behind, left */
.win-dark{position:absolute;z-index:1;left:0;top:50px;width:56%}
/* floating call card, overlapping top-right */
.dw-call{position:absolute;z-index:3;top:-18px;right:-18px;width:214px;height:auto;border-radius:24px;
  box-shadow:0 34px 62px -18px rgba(70,20,90,.5),0 0 0 1px rgba(0,0,0,.04)}
@media (max-width:860px){
  .deskshow{padding-top:14px}
  .win-light{width:100%}
  .win-dark{display:none}
  .dw-call{width:150px;top:-10px;right:-6px;border-radius:18px}
}

/* ---------- Pricing ---------- */
.pricing-sec{background:linear-gradient(180deg,var(--cream),var(--paper))}
.ptiers{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;align-items:stretch}
.pcard{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);
  border-radius:20px;padding:26px 20px 22px;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-card);border-color:rgba(75,222,128,.32)}
.pc-name{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-strong)}
.pc-price{font-size:1.85rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-top:9px}
.pc-note{font-size:12px;color:var(--muted)}
.pc-tag{font-size:13px;color:var(--muted);margin-top:11px;line-height:1.4;min-height:36px}
.pc-list{list-style:none;margin:18px 0 22px;padding:18px 0 0;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:11px;flex:1}
.pc-list li{position:relative;padding-left:23px;font-size:13px;line-height:1.4;color:var(--ink)}
.pc-list li::before{content:"✓";position:absolute;left:0;top:-1px;color:var(--green-strong);font-weight:800;font-size:13px}
.pcard .btn{width:100%;justify-content:center}

/* countdown bar — single line, green, prominent */
.sale-bar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  max-width:840px;margin:0 auto clamp(30px,4vw,44px);padding:14px 24px;border-radius:16px;
  background:linear-gradient(135deg,#4bde80,#22b863);color:#043a1d;
  box-shadow:0 22px 42px -20px rgba(75,222,128,.6)}
.sb-flash{font-size:20px;line-height:1}
.sb-title{font-size:15px;font-weight:800;letter-spacing:-.01em}
.sale-cd{display:inline-flex;align-items:center;gap:7px;background:#fff;border-radius:11px;padding:6px 14px;font-variant-numeric:tabular-nums}
.cd-seg{font-size:12px;font-weight:600;color:#0a7d40;display:inline-flex;align-items:baseline;gap:1px}
.cd-seg b{font-size:19px;font-weight:800;color:#0b8a45}
.cd-sep{color:#9fdcb6;font-weight:800}

/* discounted price row */
.pc-pricerow{display:flex;align-items:baseline;gap:9px;margin-top:9px;flex-wrap:wrap}
.pc-pricerow .pc-price{margin-top:0}
.pc-was{font-size:1.05rem;color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px;font-weight:600}
.pc-save{color:var(--green-strong);font-weight:700}
@media (max-width:520px){.sale-bar{padding:13px 16px}.sb-title{font-size:13.5px}}

/* featured */
.pcard.featured{background:linear-gradient(180deg,#eafae2,var(--paper) 55%);border:1.5px solid var(--green);
  box-shadow:0 34px 64px -28px rgba(75,222,128,.55)}
.pcard.featured:hover{transform:translateY(-7px)}
.pc-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--green);color:#053d1f;
  font-size:11px;font-weight:800;letter-spacing:.02em;padding:5px 13px;border-radius:999px;white-space:nowrap;
  box-shadow:0 6px 14px -4px rgba(75,222,128,.6)}

/* partner (dark) */
.pcard.pc-partner{background:linear-gradient(158deg,#16261c,#0b140e);border-color:transparent;color:#eafaf0}
.pc-partner .pc-name{color:#5be08a}
.pc-partner .pc-price,.pc-partner .pc-list li{color:#f0faf3}
.pc-partner .pc-note,.pc-partner .pc-tag{color:#9fc5ab}
.pc-partner .pc-list{border-top-color:rgba(255,255,255,.12)}
.pc-partner .pc-list li::before{color:#5be08a}
.pc-partner .btn{background:#fff;color:#0c160f}
.pc-partner .btn:hover{background:#eafaf0}

.pc-foot{text-align:center;color:var(--muted);font-size:14px;margin-top:30px}
.pc-foot a{color:var(--green-strong);font-weight:600;text-decoration:underline}

@media (max-width:1100px){.ptiers{grid-template-columns:repeat(3,1fr)}}
@media (max-width:780px){.ptiers{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.ptiers{grid-template-columns:1fr}.pc-tag{min-height:0}}

/* ---------- Admin control panel ---------- */
.admin-sec{background:radial-gradient(1000px 520px at 30% 6%,var(--green-tint),var(--paper) 60%)}
.admin-duo{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1080px;margin:0 auto}
.admin-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1080px;margin:clamp(24px,3vw,34px) auto 0}
.mw-screen{position:relative;aspect-ratio:16/10;overflow:hidden;background:#f2f3ef;display:grid;place-items:center}
.mw-screen.dark{background:#141820}
.mw-screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left}
.mw-ph{display:flex;flex-direction:column;align-items:center;gap:8px;color:#adb1a5;font-size:12.5px;
  font-weight:600;letter-spacing:.02em;text-align:center;padding:16px}
.mw-screen.dark .mw-ph{color:#586372}
.mw-ph svg{width:26px;height:26px;opacity:.75}
@media (max-width:900px){.admin-duo{grid-template-columns:1fr}.admin-gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.admin-gallery{grid-template-columns:1fr}}

/* admin — full-page auto-scroll windows */
.admin-showcase{max-width:1000px;margin:0 auto}
.admin-showcase .feature{margin:0 auto}
.admin-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:22px}
.awin{--awh:420px}
.awin.feature{--awh:540px}
.aw-screen{position:relative;overflow:hidden;height:var(--awh);background:#0e1621}
.aw-screen img{display:block;width:100%;height:auto;animation:awPan 24s ease-in-out infinite}
.awin:hover .aw-screen img{animation-play-state:paused}
.awin.feature .aw-screen img{animation-duration:28s}
.admin-row .awin:nth-child(1) .aw-screen img{animation-delay:-5s}
.admin-row .awin:nth-child(2) .aw-screen img{animation-delay:-11s}
.admin-row .awin:nth-child(3) .aw-screen img{animation-delay:-17s}
@keyframes awPan{0%,6%{transform:translateY(0)}48%,54%{transform:translateY(calc(-100% + var(--awh)))}96%,100%{transform:translateY(0)}}
.aw-hint{margin-left:auto;font-size:11px;color:#8b93a0;letter-spacing:.01em}
.aw-screen{cursor:zoom-in}
.aw-view{position:absolute;bottom:12px;right:12px;z-index:3;display:inline-flex;align-items:center;gap:6px;
  background:rgba(12,18,26,.82);backdrop-filter:blur(6px);color:#fff;font-size:12px;font-weight:600;
  padding:7px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.16);
  opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;pointer-events:none}
.aw-view svg{width:14px;height:14px}
.awin:hover .aw-view{opacity:1;transform:translateY(0)}
@media (max-width:820px){.admin-row{grid-template-columns:1fr}.awin{--awh:460px}.aw-view{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.aw-screen img{animation:none}}

/* full-page preview lightbox */
.alightbox{position:fixed;inset:0;z-index:200;display:none;background:rgba(8,12,10,.9);backdrop-filter:blur(7px)}
.alightbox.open{display:block;animation:albFade .25s ease}
@keyframes albFade{from{opacity:0}to{opacity:1}}
.alb-top{position:fixed;top:0;left:0;right:0;z-index:202;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:14px 20px;background:linear-gradient(180deg,rgba(8,12,10,.7),transparent)}
.alb-title{color:#fff;font-weight:700;font-size:14.5px;letter-spacing:-.01em}
.alb-close{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.16);transition:background .2s}
.alb-close:hover{background:rgba(255,255,255,.26)}
.alb-close svg{width:19px;height:19px}
.alb-scroll{position:absolute;inset:0;overflow-y:auto;padding:64px 18px 60px;display:flex;justify-content:center;align-items:flex-start}
.alb-scroll img{width:min(1120px,100%);height:auto;border-radius:12px;box-shadow:0 40px 90px rgba(0,0,0,.6);
  animation:albRise .3s var(--ease) both}
@keyframes albRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* admin — dedicated page */
.admin-page-hero{padding-top:clamp(112px,15vh,156px)}
.admin-page-hero .feat-head{max-width:880px}
.admin-page-hero h1{font-size:clamp(2.3rem,4.6vw,3.6rem);margin-bottom:16px}
.back-home{display:inline-block;font-size:14px;font-weight:600;color:var(--green-strong);margin-bottom:16px}
.back-home:hover{color:var(--green-deep)}
.ah-cta{display:flex;gap:14px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.center-cta{margin-top:clamp(28px,4vw,40px)}
.acaps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.acap{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px 20px;
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.acap:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);border-color:rgba(75,222,128,.32)}
.acap-i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--green-tint);color:var(--green-deep);margin-bottom:14px}
.acap-i svg{width:22px;height:22px}
.acap b{font-size:1.02rem;display:block;margin-bottom:5px}
.acap p{font-size:13.5px;color:var(--muted);line-height:1.5}
@media (max-width:820px){.acaps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.acaps{grid-template-columns:1fr}}

/* ---------- Checkout ---------- */
.co-body{background:var(--cream);min-height:100vh}
.co-head{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,4vw,44px);
  border-bottom:1px solid var(--line);background:rgba(255,255,255,.7);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}
.co-secure{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--green-deep)}
.co-secure svg{width:16px;height:16px}
.co-wrap{max-width:1000px;margin:0 auto;padding:clamp(28px,5vw,56px) clamp(18px,4vw,44px);
  display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,5vw,60px);align-items:start}
.co-summary{position:sticky;top:96px}
.co-eyebrow{font-size:13px;font-weight:600;color:var(--green-strong);text-transform:uppercase;letter-spacing:.06em;margin:14px 0 6px}
.co-plan{font-family:var(--serif);font-weight:500;font-size:clamp(1.9rem,3.4vw,2.6rem);letter-spacing:-.02em}
.co-price-row{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin-top:10px}
.co-price{font-size:2rem;font-weight:800;letter-spacing:-.02em}
.co-was{font-size:1.05rem;color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px;font-weight:600}
.co-badge{font-size:12.5px;font-weight:700;color:var(--green-deep);background:var(--green-tint);padding:3px 10px;border-radius:999px}
.co-once{font-size:13.5px;color:var(--muted);margin-top:8px}
.co-incl{list-style:none;margin:22px 0;padding:20px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:11px}
.co-incl li{position:relative;padding-left:24px;font-size:14px;color:var(--ink)}
.co-incl li::before{content:"✓";position:absolute;left:0;color:var(--green-strong);font-weight:800}
.co-trust{display:flex;flex-wrap:wrap;gap:16px;margin-top:6px}
.co-trust span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.co-trust svg{width:15px;height:15px;color:var(--green-deep)}

.co-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(22px,3vw,32px);box-shadow:var(--shadow-card)}
.co-title{font-size:1.2rem;font-family:var(--sans);font-weight:700;margin-bottom:18px}
.co-label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.co-input{width:100%;height:46px;border:1px solid rgba(20,24,15,.14);border-radius:12px;padding:0 13px;
  font:inherit;font-size:15px;color:var(--ink);background:#fff;margin-bottom:18px;transition:border-color .2s,box-shadow .2s}
.co-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(75,222,128,.18)}
.co-element{position:relative;min-height:190px;margin-bottom:20px}
.co-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:13px;background:#fff;color:var(--muted);font-size:13.5px;transition:opacity .3s}
.co-loading.hide{opacity:0;pointer-events:none}
.co-load-spin{width:28px;height:28px;border-radius:50%;border:3px solid rgba(75,222,128,.25);
  border-top-color:var(--green-strong);animation:cospin .7s linear infinite}
.co-submit{width:100%;justify-content:center;position:relative}
.co-submit:disabled{opacity:.55;cursor:not-allowed}
.co-spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(5,61,31,.35);border-top-color:#053d1f;
  display:inline-block;margin-left:8px;animation:cospin .7s linear infinite}
.co-spinner[hidden]{display:none}
@keyframes cospin{to{transform:rotate(360deg)}}
.co-msg{margin-top:12px;font-size:13.5px;min-height:1px}
.co-msg.err{color:#c23b3b}.co-msg.ok{color:var(--green-deep)}
.co-fine{margin-top:14px;font-size:12px;color:var(--muted);line-height:1.5}
.co-success{text-align:center;padding:14px 0}
.co-check{width:64px;height:64px;border-radius:50%;background:var(--green-tint);color:var(--green-deep);
  display:grid;place-items:center;margin:0 auto 18px}
.co-check svg{width:30px;height:30px}
.co-success h2{font-family:var(--sans);font-size:1.4rem;font-weight:800;margin-bottom:8px}
.co-success p{color:var(--muted);margin-bottom:22px}
.co-notice{background:var(--green-tint);border-radius:14px;padding:18px}
.co-notice p{font-size:13.5px;color:var(--ink-2);margin-top:5px}
.co-notice code{background:rgba(0,0,0,.06);padding:1px 6px;border-radius:5px;font-size:12.5px}
@media (max-width:760px){.co-wrap{grid-template-columns:1fr;gap:26px}.co-summary{position:static}}

/* ---------- Features bento ---------- */
.feat-head{max-width:660px;margin:0 auto clamp(34px,5vw,54px);text-align:center}
.feat-head .eyebrow{margin-bottom:14px}
.feat-head h2{margin-bottom:16px}
.feat-head .lead{margin-inline:auto}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:232px;gap:18px}
.bento-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:24px;
  border:1px solid var(--line);background:var(--paper);transition:transform .4s var(--ease),box-shadow .4s,border-color .4s}
.bento-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);border-color:rgba(75,222,128,.28)}
.b-wallet{grid-column:span 2;grid-row:span 2}
.b-video{grid-column:span 2}
.b-audio{grid-column:span 1}
.b-lock{grid-column:span 1}
.b-media{grid-column:span 2}
.b-groups{grid-column:span 2}
.bc-visual{flex:1;position:relative;overflow:hidden;padding:20px;display:flex;flex-direction:column;
  justify-content:center;background:linear-gradient(180deg,var(--cream) 0%,var(--paper) 100%)}
.bc-info{display:flex;align-items:flex-start;gap:13px;padding:16px 20px 20px;border-top:1px solid var(--line)}
.bc-ic{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:var(--green-tint);color:var(--green-deep)}
.bc-ic svg{width:21px;height:21px}
.bc-info h3{font-size:1.08rem;letter-spacing:-.01em;margin-bottom:3px}
.bc-info p{font-size:13px;line-height:1.5;color:var(--muted)}

/* Wallet visual */
.wallet-v{gap:12px;justify-content:flex-start;background:linear-gradient(160deg,#eafae6,var(--paper))}
.wcard{background:linear-gradient(140deg,#2fbf5f,#0f9d58);color:#fff;border-radius:16px;padding:15px 17px;
  box-shadow:0 14px 26px -12px rgba(15,157,88,.6)}
.wtop{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;opacity:.92}
.wchip{width:26px;height:19px;border-radius:5px;background:linear-gradient(135deg,#ffe08a,#e8b64c)}
.wbal{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin-top:6px}
.wnum{font-size:12px;letter-spacing:.14em;opacity:.85;margin-top:2px}
.wacts{display:flex;gap:8px}
.wbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;font-weight:600;
  padding:9px 6px;border-radius:11px;background:var(--paper);border:1px solid var(--line);color:var(--ink)}
.wbtn svg{width:14px;height:14px}
.wbtn.on{background:var(--green);color:#053d1f;border-color:transparent}
.wtx{display:flex;flex-direction:column;gap:7px;margin-top:2px}
.wrow{display:flex;align-items:center;gap:10px;font-size:13px}
.wrow .wi{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}
.wrow .wi svg{width:15px;height:15px}
.wi.out{background:#fdecec;color:#e05a5a}.wi.in{background:var(--green-tint);color:var(--green-deep)}
.wrow .wn{flex:1;font-weight:500;color:var(--ink)}
.wrow .wa{font-weight:700;color:var(--ink)}.wrow .wa.pos{color:var(--green-deep)}

/* Video visual */
.video-v{padding:16px}
.vfeed{position:relative;flex:1;border-radius:16px;background-size:cover;background-position:center 30%;overflow:hidden;min-height:110px}
.vfeed::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 40%,rgba(0,0,0,.42))}
.vlabel{position:absolute;top:11px;left:11px;z-index:2;display:flex;align-items:center;gap:6px;
  background:rgba(0,0,0,.42);backdrop-filter:blur(4px);color:#fff;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:999px}
.vlabel i{width:6px;height:6px;border-radius:50%;background:#3ee07a;box-shadow:0 0 7px #3ee07a}
.vpip{position:absolute;top:11px;right:11px;z-index:2;width:44px;height:58px;border-radius:9px;
  background-size:cover;background-position:center;border:2px solid rgba(255,255,255,.85);box-shadow:0 4px 10px rgba(0,0,0,.3)}
.vctrl{position:absolute;bottom:11px;left:50%;transform:translateX(-50%);z-index:2;display:flex;gap:8px}
.vc{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.22);
  backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.3)}
.vc svg{width:16px;height:16px}
.vc.end{background:#f0463c;border-color:transparent}
.vc.end svg{width:15px;height:15px}

/* Audio visual */
.audio-v{align-items:center;text-align:center;gap:14px;background:linear-gradient(180deg,#eafae6,var(--paper))}
.acall{position:relative;width:84px;height:84px;display:grid;place-items:center}
.acall .apulse{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(75,222,128,.4);
  box-shadow:0 0 0 8px rgba(75,222,128,.12)}
.acall .aav{width:64px;height:64px;border-radius:50%;background-size:cover;background-position:center;
  box-shadow:0 8px 18px -6px rgba(15,157,88,.5)}
.ameta b{display:block;font-size:14.5px}
.ameta small{font-size:12.5px;color:var(--green-deep);font-weight:600}

/* Lock visual */
.lock-v{align-items:center;justify-content:center;background:radial-gradient(circle at 50% 45%,#eafae6,var(--paper))}
.lock-v .lring{position:absolute;border-radius:50%;border:1.5px solid rgba(75,222,128,.28);width:104px;height:104px}
.lock-v .lring.r2{width:150px;height:150px;border-color:rgba(75,222,128,.16)}
.lbox{position:relative;width:64px;height:64px;border-radius:20px;display:grid;place-items:center;
  background:linear-gradient(140deg,#2fbf5f,#0f9d58);color:#fff;box-shadow:0 14px 26px -10px rgba(15,157,88,.6)}
.lbox svg{width:30px;height:30px}

/* Media visual */
.media-v{padding:18px}
.mgrid{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:8px;min-height:110px}
.mgrid span{border-radius:12px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.mgrid span b{position:absolute;inset:0;display:grid;place-items:center;background:rgba(15,60,30,.55);
  color:#fff;font-weight:700;font-size:16px;backdrop-filter:blur(1px)}

/* Groups visual */
.groups-v{align-items:center;justify-content:center;gap:16px;background:linear-gradient(180deg,#eafae6,var(--paper))}
.gav-stack{display:flex;align-items:center}
.gav-stack span{width:52px;height:52px;border-radius:50%;background-size:cover;background-position:center;
  border:3px solid var(--paper);margin-left:-14px;box-shadow:0 4px 10px rgba(0,0,0,.1)}
.gav-stack span:first-child{margin-left:0}
.gav-stack .gmore{display:grid;place-items:center;background:var(--green);color:#053d1f;font-size:12.5px;font-weight:800}
.gtag{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-size:12.5px;font-weight:600;color:var(--ink)}
@media (prefers-reduced-motion:no-preference){
  .acall .apulse{animation:apulse 2.2s ease-out infinite}
}
@keyframes apulse{0%{transform:scale(.9);opacity:.9}70%{transform:scale(1.25);opacity:0}100%{opacity:0}}
@media (max-width:1080px){
  .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}
  .b-wallet{grid-column:span 2;grid-row:auto}
  .b-video,.b-media,.b-groups{grid-column:span 2}
  .b-audio,.b-lock{grid-column:span 1}
  .bc-visual{min-height:172px}
}
@media (max-width:620px){
  .bento{grid-template-columns:1fr;gap:16px}
  .b-wallet,.b-video,.b-media,.b-groups,.b-audio,.b-lock{grid-column:span 1}
}

/* ---------- Desktop showcase (MacBook) ---------- */
#desktop{background:radial-gradient(1100px 560px at 50% -8%,var(--green-tint),var(--cream) 62%)}
.desktop-head{max-width:660px;margin:0 auto clamp(34px,5vw,56px);text-align:center}
.desktop-head .eyebrow{margin-bottom:14px}
.desktop-head h2{margin-bottom:16px}
.desktop-head .lead{margin-inline:auto}
.macbook{max-width:980px;margin:0 auto;display:flex;flex-direction:column;align-items:center;
  filter:drop-shadow(0 44px 60px rgba(30,55,30,.26))}
.mb-screen{position:relative;width:100%;padding:15px;border-radius:22px 22px 6px 6px;
  background:linear-gradient(150deg,#2c322f,#0b0e0d);
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.12),inset 0 0 0 3.5px rgba(0,0,0,.5)}
.mb-cam{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;
  background:#12150e;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);z-index:2}
.mb-screen img{display:block;width:100%;height:auto;border-radius:4px}
.mb-deck{position:relative;width:112%;height:16px;border-radius:0 0 11px 11px;
  background:linear-gradient(180deg,#e6e9ee,#bcc2ca 52%,#8f959e)}
.mb-deck::before{content:'';position:absolute;inset:0 0 auto 0;height:16px;border-radius:0 0 18px 18px;
  background:linear-gradient(180deg,rgba(255,255,255,.6),transparent 72%)}
.mb-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:15%;max-width:150px;height:8px;
  background:linear-gradient(#c4cad2,#9aa0aa);border-radius:0 0 12px 12px}
@media (max-width:600px){
  .mb-screen{padding:8px;border-radius:15px 15px 5px 5px}
  .mb-deck{height:12px}.mb-notch{height:6px}
}
.bg-paper{background:var(--paper)}
.bg-cream{background:var(--cream)}
.bg-cream2{background:var(--cream-2)}
.center{text-align:center}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);
  font-weight:600;font-size:15px;padding:14px 26px;border-radius:var(--pill);letter-spacing:-.01em;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .2s,color .2s,border-color .2s;
  white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-green{background:var(--green);color:#053d1f;box-shadow:var(--shadow-green)}
.btn-green:hover{background:var(--green-strong);transform:translateY(-2px)}
.btn-soft{background:var(--sand);color:var(--ink);border:1px solid var(--line)}
.btn-soft:hover{background:#e7e0d2;transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{background:rgba(20,24,15,.04)}
.btn-lg{padding:16px 30px;font-size:16px}

/* ---------- Nav ---------- */
.nav{position:sticky;top:0;z-index:100;background:rgba(251,245,236,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.nav.scrolled{border-color:var(--line-soft);background:rgba(251,245,236,.92)}
.nav-inner{display:flex;align-items:center;gap:20px;height:74px;max-width:var(--container);margin-inline:auto;padding-inline:26px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:21px;letter-spacing:-.02em}
.brand .mark{width:30px;height:30px}
.seg{display:inline-flex;align-items:center;gap:16px;margin-left:16px}
.seg button{font-size:14px;font-weight:500;color:var(--muted);padding:6px 17px;border-radius:var(--pill);transition:.2s}
.seg button.on{color:var(--ink);font-weight:600;border:1.5px solid var(--ink)}
.nav-links{display:flex;align-items:center;gap:26px;margin-left:auto}
.nav-links a{font-size:15px;color:var(--ink-2);font-weight:500;display:inline-flex;align-items:center;gap:5px;transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-links a svg{width:14px;height:14px;opacity:.6}
.nav-right{display:flex;align-items:center;gap:18px;margin-left:8px}
.nav-right .weblink{font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.nav-toggle{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);align-items:center;justify-content:center;background:var(--paper)}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:'';position:absolute;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:.3s}
.nav-toggle span{position:relative}
.nav-toggle span::before{top:-6px}.nav-toggle span::after{top:6px}
body.menu-open .nav-toggle span{background:transparent}
body.menu-open .nav-toggle span::before{top:0;transform:rotate(45deg)}
body.menu-open .nav-toggle span::after{top:0;transform:rotate(-45deg)}
.nav-menu{display:none}

/* ---------- Hero ---------- */
.hero{position:relative;overflow-x:clip;background:linear-gradient(180deg,var(--cream) 0%,var(--cream) 72%,var(--paper) 100%);
  padding-block:clamp(40px,6vw,88px) clamp(56px,8vw,110px)}
.hero-grid{display:grid;grid-template-columns:0.82fr 1.28fr;gap:clamp(20px,3vw,44px);align-items:center}
.hero-copy{text-align:left}
.hero-copy h1{font-size:clamp(2.3rem,4.2vw,3.9rem);line-height:1.04;margin-bottom:20px;font-weight:600;letter-spacing:-.03em}
.hero-copy .lead{max-width:46ch;margin:0}
.hero-cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.hero-note{display:flex;align-items:center;gap:8px;margin-top:22px;color:var(--muted);font-size:14px;font-weight:500}
.hero-note svg{width:16px;height:16px;color:var(--green-strong);flex-shrink:0}

/* hero right column — MacBook + iPhone device duo */
.hero-visual{position:relative;display:flex;justify-content:center;align-items:center}
.hero-visual::before{content:'';position:absolute;inset:-8% -12%;z-index:0;pointer-events:none;
  background:radial-gradient(54% 62% at 58% 46%,var(--green-tint),transparent 70%)}
.duo{position:relative;width:100%;max-width:760px}
/* concentric green rings radiating behind the laptop (WhatsApp-style, 180° dome) */
.duo::before{content:'';position:absolute;z-index:0;pointer-events:none;
  left:50%;top:52%;transform:translate(-50%,-50%);
  width:122%;aspect-ratio:1;border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,rgba(75,222,128,.20),transparent 46%),
    repeating-radial-gradient(circle at 50% 50%,
      transparent 0 14.6%,
      rgba(37,184,99,.42) 14.6% 15.1%,
      transparent 15.1% 15.6%);
  -webkit-mask:
    radial-gradient(circle at 50% 50%,#000 24%,rgba(0,0,0,.6) 50%,transparent 72%),
    linear-gradient(to bottom,#000 44%,transparent 54%);
          mask:
    radial-gradient(circle at 50% 50%,#000 24%,rgba(0,0,0,.6) 50%,transparent 72%),
    linear-gradient(to bottom,#000 44%,transparent 54%);
  -webkit-mask-composite:source-in;
          mask-composite:intersect}
.duo .macbook{position:relative;z-index:2;width:100%;max-width:none;margin:0;
  filter:drop-shadow(0 34px 52px rgba(30,55,30,.22))}

/* iPhone 17 Pro Max — sits in front, lower-right of the laptop */
.iphone{position:absolute;z-index:6;right:5%;bottom:-14%;width:28%;min-width:150px;margin:0;
  filter:drop-shadow(0 32px 46px rgba(20,40,20,.34))}
.ip-frame{position:relative;padding:6.5px;border-radius:14.5% / 7%;
  background:linear-gradient(145deg,#40474a,#161a1c 58%,#0a0d0e);
  box-shadow:inset 0 0 0 1.4px rgba(255,255,255,.16),inset 0 0 0 3px rgba(0,0,0,.55)}
.ip-screen{position:relative;border-radius:12% / 5.7%;overflow:hidden;background:#fff;aspect-ratio:591/1280}
.ip-screen img{display:block;width:100%;height:100%;object-fit:cover}
.ip-island{position:absolute;top:3.4%;left:50%;transform:translateX(-50%);width:30%;height:2.6%;min-height:12px;
  background:#000;border-radius:20px;z-index:3;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.ip-frame::before{content:'';position:absolute;right:-2px;top:26%;width:2.4px;height:13%;border-radius:0 3px 3px 0;
  background:linear-gradient(#40474a,#161a1c)}
.ip-frame::after{content:'';position:absolute;left:-2px;top:23%;width:2.4px;height:9%;border-radius:3px 0 0 3px;
  background:linear-gradient(#40474a,#161a1c);box-shadow:0 42px 0 -0.5px #262b2c,0 84px 0 -0.5px #262b2c}

/* encryption accent, top-left */
.hero-visual .fcard{z-index:7}
.hero-visual .f-lock{top:-6%;left:-6%;right:auto;bottom:auto;width:220px}

/* WhatsApp contact card — clickable, top-left on the laptop (instant reach-out) */
.hero-visual .f-whatsapp{top:-7%;left:-6%;right:auto;bottom:auto;z-index:9;
  display:flex;align-items:center;gap:13px;width:min(320px,84%);padding:13px 18px 13px 13px;
  border-radius:18px;text-decoration:none;cursor:pointer;
  box-shadow:0 18px 40px rgba(20,50,25,.20),0 2px 8px rgba(20,50,25,.10);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.hero-visual .f-whatsapp:hover{transform:translateY(-4px);
  box-shadow:0 24px 52px rgba(20,50,25,.26),0 3px 10px rgba(20,50,25,.12)}
.f-whatsapp .wa-ic{flex:0 0 auto;width:48px;height:48px;border-radius:50%;
  background:linear-gradient(150deg,#4bde80,#22b863);display:grid;place-items:center;
  box-shadow:0 6px 14px rgba(37,184,99,.42)}
.f-whatsapp .wa-ic svg{width:26px;height:26px;color:#fff}
.f-whatsapp .wa-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.f-whatsapp .wa-tx em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.02em;
  text-transform:uppercase;color:var(--green-deep)}
.f-whatsapp .wa-tx b{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.2}
.f-whatsapp .wa-tx small{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}

/* fixed floating WhatsApp button (phones/tablets) */
.wa-float{display:none;position:fixed;right:16px;bottom:16px;z-index:200;
  align-items:center;gap:10px;height:56px;padding:0 20px 0 15px;border-radius:32px;
  background:linear-gradient(150deg,#4bde80,#22b863);color:#fff;text-decoration:none;
  box-shadow:0 12px 30px rgba(37,184,99,.5),0 2px 8px rgba(20,50,25,.25);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.wa-float:active{transform:scale(.96)}
.wa-float svg{width:29px;height:29px;flex-shrink:0}
.wa-float-label{font-size:14.5px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
@media (max-width:420px){
  .wa-float{padding:0;width:56px;justify-content:center}
  .wa-float-label{display:none}
}

/* hero stage: phone + rings + floating cards */
.stage{position:relative;max-width:1000px;margin:44px auto 0;min-height:620px;display:flex;justify-content:center;align-items:flex-end}
.rings{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:900px;height:900px;pointer-events:none}
.rings span{position:absolute;left:50%;bottom:-40%;transform:translateX(-50%);border-radius:50%;border:1px solid rgba(75,222,128,.16)}
.rings span:nth-child(1){width:420px;height:420px}
.rings span:nth-child(2){width:640px;height:640px}
.rings span:nth-child(3){width:880px;height:880px}
.rings::after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:520px;height:420px;
  background:radial-gradient(circle at 50% 90%,rgba(75,222,128,.16),transparent 62%)}

/* Phone */
.phone{position:relative;z-index:3;width:288px;height:588px;border-radius:46px;background:#0b0d0a;
  padding:11px;box-shadow:var(--shadow),0 0 0 1px rgba(0,0,0,.06);}
.phone-screen{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.status{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 4px;font-size:12px;font-weight:700;color:#0b0d0a}
.status .dots{display:flex;gap:4px;align-items:center;opacity:.9}
.status .dots i{width:15px;height:10px;background:#0b0d0a;border-radius:2px;display:inline-block}
.notch{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:110px;height:24px;background:#0b0d0a;border-radius:0 0 14px 14px;z-index:5}
.app-top{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 2px}
.app-top .e{color:var(--green-strong);font-size:13px;font-weight:600}
.app-top .ico{display:flex;gap:14px;color:var(--green-strong)}
.app-top .ico svg{width:17px;height:17px}
.app-title{font-family:var(--serif);font-weight:600;font-size:26px;padding:2px 16px 8px}
.app-search{margin:0 14px 10px;height:34px;border-radius:10px;background:#f0f2f2;display:flex;align-items:center;gap:7px;padding:0 11px;color:#9aa0a0;font-size:13px}
.app-search svg{width:14px;height:14px}
.app-row2{display:flex;align-items:center;justify-content:space-between;padding:0 16px 10px;font-size:13px;font-weight:600;color:var(--green-strong)}
.clist{flex:1;overflow:hidden}
.crow{display:flex;align-items:center;gap:11px;padding:9px 16px}
.crow .av{width:42px;height:42px;border-radius:50%;flex-shrink:0;background-size:cover;background-position:center}
.crow .cm{flex:1;min-width:0}
.crow .cm b{font-size:13.5px;font-weight:600;display:block}
.crow .cm small{font-size:11.5px;color:#8a8f8a;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow .cm small svg{width:12px;height:12px;color:var(--green-strong);flex-shrink:0}
.crow .t{font-size:11px;color:#a7aca7;align-self:flex-start;margin-top:3px}
.fab{position:absolute;right:14px;bottom:16px;background:var(--green);color:#053d1f;border-radius:var(--pill);
  padding:11px 18px;font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:7px;box-shadow:var(--shadow-green);z-index:6}
.fab svg{width:15px;height:15px}

/* Floating cards */
.fcard{position:absolute;z-index:4;background:#fff;border-radius:16px;box-shadow:var(--shadow-card);
  border:1px solid var(--line-soft);animation:floaty 6.5s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
.f-voice{top:120px;left:2%;width:230px;padding:11px 12px;display:flex;align-items:center;gap:9px;animation-delay:0s}
.f-voice .play{width:30px;height:30px;border-radius:50%;background:var(--green);display:grid;place-items:center;flex-shrink:0}
.f-voice .play svg{width:12px;height:12px;color:#fff;margin-left:1px}
.f-voice .wave{flex:1;height:22px;display:flex;align-items:center;gap:2px;overflow:hidden}
.f-voice .wave i{width:2px;background:#c4cbc2;border-radius:2px;display:inline-block}
.f-voice .wave i:nth-child(-n+4){background:var(--green)}
.f-voice .av{width:30px;height:30px;border-radius:50%;flex-shrink:0;background-size:cover;background-position:center}
.f-voice .tt{position:absolute;left:12px;bottom:-16px;font-size:10px;color:var(--muted)}
.f-voice .tt.r{left:auto;right:52px}

.f-img{top:270px;left:5%;width:150px;animation-delay:1s}
.f-img .ph{height:96px;border-radius:14px 14px 14px 4px;background-size:cover;background-position:center}
.f-bubble{position:absolute;left:18px;bottom:-30px;background:var(--green-tint);color:#0a3b1f;font-size:11px;
  padding:6px 9px;border-radius:12px;border-bottom-left-radius:5px;box-shadow:var(--shadow-sm);white-space:nowrap;display:flex;align-items:center;gap:6px;--bub:var(--green-tint)}
.f-bubble::after{content:'';position:absolute;bottom:0;left:-8px;width:10px;height:16px;background:var(--bub);
  -webkit-mask:var(--tail-left) no-repeat center/10px 16px;mask:var(--tail-left) no-repeat center/10px 16px}
.f-bubble small{font-size:9px;color:var(--green-deep)}

.f-file{bottom:120px;left:1%;width:214px;padding:12px;animation-delay:2.1s}
.f-file .fr{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.f-file .fi{width:30px;height:30px;border-radius:50%;background:#eef1ee;display:grid;place-items:center;color:var(--ink-2);flex-shrink:0}
.f-file .fi svg{width:13px;height:13px;margin-left:1px}
.f-file b{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.f-file .bar{height:4px;border-radius:3px;background:#e9ede8;overflow:hidden}
.f-file .bar i{display:block;height:100%;width:58%;background:var(--green);border-radius:3px}
.f-file .fm{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:6px}

.f-lock{top:150px;right:2%;width:236px;padding:16px;animation-delay:.6s}
.f-lock .li{width:34px;height:34px;border-radius:10px;background:var(--green-tint);display:grid;place-items:center;color:var(--green-deep);margin-bottom:11px}
.f-lock .li svg{width:17px;height:17px}
.f-lock p{font-size:12.5px;color:var(--ink-2);line-height:1.45}
.f-lock b{color:var(--ink)}

.f-stat{bottom:120px;right:3%;width:180px;padding:18px;text-align:left;animation-delay:1.6s;background:var(--cream-2)}
.f-stat .si{width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--green-deep);margin-bottom:12px;box-shadow:var(--shadow-sm)}
.f-stat .si svg{width:17px;height:17px}
.f-stat .n{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1}
.f-stat small{font-size:11.5px;color:var(--muted);display:block;margin-top:3px}

/* ---------- Stats / growth ---------- */
.stats-top{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:54px}
.stats-top .lead{margin-top:16px;max-width:38ch}
.stat-big{text-align:left}
.stat-big .lbl{display:inline-block;background:var(--green-tint);color:var(--green-ink);font-weight:600;
  font-size:14px;padding:5px 13px;border-radius:var(--pill);margin-bottom:10px}
.stat-big .num{font-family:var(--serif);font-weight:600;font-size:clamp(4rem,10vw,7.5rem);line-height:.9;letter-spacing:-.03em}
.bars{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.bar-col{border-left:1px solid var(--line);padding:16px 20px;min-height:230px;display:flex;flex-direction:column;position:relative}
.bar-col:first-child{border-left:none}
.bar-col .yr{font-size:14px;color:var(--muted);font-weight:500}
.bar-col .fill{margin-top:auto;border-radius:12px 12px 0 0;display:flex;align-items:flex-start;padding:16px 16px 0;
  font-family:var(--serif);font-weight:600;font-size:clamp(1.1rem,2vw,1.6rem);color:var(--ink)}
.bar-col .fill.g{background:var(--green-tint);color:var(--green-ink)}
.bar-col .fill.n{background:var(--cream-2)}

/* ---------- Split feature (photo + text) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,84px);align-items:center}
.split.rev .split-media{order:2}
.split-copy .eyebrow{margin-bottom:14px}
.split-copy h2{margin-bottom:18px}
.split-copy .lead{max-width:42ch;margin-bottom:26px}
.split-cta{display:flex;gap:12px;flex-wrap:wrap}
.media-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);aspect-ratio:4/3;background:var(--sand)}
.media-photo img{width:100%;height:100%;object-fit:cover}
.media-photo.tall{aspect-ratio:1/1}

/* overlay chat cards on photos */
.ov{position:absolute;background:#fff;border-radius:14px;box-shadow:var(--shadow-card);border:1px solid var(--line-soft)}
.ov-call{top:16px;right:-14px;padding:10px 12px;display:flex;align-items:center;gap:9px}
.ov-call .av{width:30px;height:30px;border-radius:50%;background-size:cover;background-position:center}
.ov-call b{font-size:12.5px;font-weight:600;display:block}
.ov-call small{font-size:10.5px;color:var(--muted);display:flex;align-items:center;gap:4px}
.ov-call small svg{width:11px;height:11px;color:var(--green-strong)}
.ov-call .vico{width:30px;height:30px;border-radius:8px;background:var(--green-tint);display:grid;place-items:center;color:var(--green-deep)}
.ov-call .vico svg{width:15px;height:15px}
.chat-ov{position:absolute;left:-16px;bottom:20px;display:flex;flex-direction:column;gap:8px;width:230px}
.cbub{position:relative;background:#fff;padding:8px 11px;border-radius:14px;font-size:12.5px;box-shadow:var(--shadow-sm);align-self:flex-start;
  display:flex;align-items:center;gap:8px;--bub:#fff}
.cbub::after{content:'';position:absolute;bottom:0;left:-8px;width:10px;height:16px;background:var(--bub);
  -webkit-mask:var(--tail-left) no-repeat center/10px 16px;mask:var(--tail-left) no-repeat center/10px 16px}
.cbub{border-bottom-left-radius:5px}
.cbub small{font-size:10px;color:var(--muted)}
.cbub.me{align-self:flex-end;background:var(--green-tint);color:#0a3b1f;--bub:var(--green-tint);
  border-bottom-left-radius:14px;border-bottom-right-radius:5px}
.cbub.me::after{left:auto;right:-8px;-webkit-mask:var(--tail-right) no-repeat center/10px 16px;mask:var(--tail-right) no-repeat center/10px 16px}
.cbub.me small{color:var(--green-deep)}
.cbub.voice{align-self:flex-start;gap:7px;padding-right:14px}
.cbub.voice .play{width:26px;height:26px;border-radius:50%;background:var(--green-tint);display:grid;place-items:center;color:var(--green-deep);flex-shrink:0}
.cbub.voice .play svg{width:11px;height:11px}
.cbub.voice .w{display:flex;gap:2px;align-items:center;height:18px}
.cbub.voice .w i{width:2px;background:#c4cbc2;border-radius:2px}

/* ---------- Feature cards (Discover) ---------- */
.disc-head{max-width:640px;margin:0 auto clamp(38px,5vw,56px);text-align:center}
.disc-head .lead{max-width:46ch;margin:16px auto 0}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.fcard2{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.fcard2:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}
.fcard2 .thumb{aspect-ratio:3/3.4;overflow:hidden;background:var(--sand)}
.fcard2 .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.fcard2:hover .thumb img{transform:scale(1.05)}
.fcard2 .body{padding:18px 18px 22px}
.fcard2 .tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--green-strong);margin-bottom:8px}
.fcard2 .tag svg{width:14px;height:14px}
.fcard2 h3{font-size:1.15rem;margin-bottom:6px}
.fcard2 p{font-size:13.5px;color:var(--muted)}

/* ---------- CTA band ---------- */
.cta{position:relative;background:var(--green);border-radius:var(--radius-xl);padding:clamp(46px,7vw,84px) 32px;text-align:center;overflow:hidden}
.cta::before{content:'';position:absolute;inset:0;background:radial-gradient(600px 300px at 50% -10%,rgba(255,255,255,.28),transparent 60%)}
.cta>*{position:relative}
.cta h2{color:#053d1f}
.cta .lead{color:#0a4a26;max-width:44ch;margin:18px auto 30px;opacity:.9}
.cta .hero-cta{margin-top:0}
.cta .btn-green{background:#fff;color:#0a5a2e;box-shadow:0 16px 34px -14px rgba(0,0,0,.3)}
.cta .btn-green:hover{background:#f2fff6}
.cta .btn-soft{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.3)}
.cta .btn-soft:hover{background:rgba(255,255,255,.26)}

/* ---------- Footer ---------- */
.footer{background:var(--paper);border-top:1px solid var(--line);padding-block:60px 40px}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:40px}
.foot-brand p{color:var(--muted);font-size:14.5px;margin-top:14px;max-width:32ch}
.foot-col h4{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.foot-col a{display:block;color:var(--ink-2);font-size:14.5px;padding:5px 0}
.foot-col a:hover{color:var(--green-strong)}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:44px;padding-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:13.5px}
.foot-social{display:flex;gap:10px}
.foot-social a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:.2s}
.foot-social a:hover{border-color:var(--green);background:var(--green-tint)}
.foot-social svg{width:16px;height:16px;color:var(--ink-2)}

/* ---------- Reveal ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.show{opacity:1;transform:none}
.js .reveal.d1{transition-delay:.08s}.js .reveal.d2{transition-delay:.16s}.js .reveal.d3{transition-delay:.24s}
.rise{opacity:0;animation:rise .9s var(--ease) both}
.rise.d1{animation-delay:.1s}.rise.d2{animation-delay:.22s}.rise.d3{animation-delay:.34s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .rise{opacity:1;animation:none}.js .reveal{opacity:1;transform:none;transition:none}
  .fcard,.f-voice,.f-img,.f-file,.f-lock,.f-stat,.iphone{animation:none!important}
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .nav-links,.seg{display:none}
  .nav-right .weblink{display:none}
  .nav-toggle{display:flex}
  .nav-menu{position:fixed;inset:74px 0 auto 0;background:var(--cream);border-bottom:1px solid var(--line);
    padding:22px 26px;flex-direction:column;gap:4px;z-index:99}
  body.menu-open .nav-menu{display:flex}
  .nav-menu a{padding:13px 8px;font-size:16px;font-weight:500;border-radius:12px}
  .nav-menu a:hover{background:rgba(20,24,15,.04)}
  .nav-menu .btn{margin-top:12px}
  .split{grid-template-columns:1fr;gap:40px}
  .split.rev .split-media{order:0}
  .cards{grid-template-columns:repeat(2,1fr)}
  .stats-top{grid-template-columns:1fr;gap:20px}
  .foot-grid{grid-template-columns:1fr 1fr}
  /* hero stacks: copy on top (centered), desktop below */
  .hero-grid{grid-template-columns:1fr;gap:clamp(30px,6vw,48px)}
  .hero-copy{text-align:center;max-width:640px;margin-inline:auto}
  .hero-copy .lead{margin-inline:auto}
  .hero-cta,.hero-note{justify-content:center}
  .hero-visual .macbook{max-width:560px}
  .hero-visual .fcard{display:none}
  /* hero card is hidden here — show the fixed WhatsApp button instead */
  .wa-float{display:inline-flex}
}
@media (max-width:760px){
  /* hero: hide side floating cards on small screens (keep it clean) */
  .f-voice,.f-file,.f-stat{display:none}
  .f-img{left:0}
  .f-lock{right:0;width:200px;top:60px}
  .stage{min-height:560px}
  .bars{grid-template-columns:repeat(2,1fr)}
  .bar-col:nth-child(3){border-left:none}
  .cards{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .chat-ov{width:200px;left:-8px}
  .ov-call{right:0}
}
@media (max-width:440px){
  body{font-size:16px}
  .phone{width:262px;height:540px}
  .f-img,.f-lock{display:none}
  .cards{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .hero-cta{gap:10px}
}
