/* ===== Tokens ===== */
:root{
  --red-950:#2c050a; --red-900:#4a0912; --red-800:#6e0e1b; --red-700:#8c1424;
  --navy:#122a78; --navy-d:#0b1b52;
  --gold-1:#f6e3a8; --gold-2:#d9b26a; --gold-3:#a8782e;
  --cream:#fbf5ea; --ink:#2a1015; --mut:#e9cfc6;
  --ink-1:var(--gold-1); --ink-2:var(--gold-2); --ink-3:var(--gold-3);  /* text-effect colour hooks */
  --r:18px; --bar:68px;
  --serif:'Playfair Display',Georgia,serif; --sans:'Be Vietnam Pro',system-ui,sans-serif; --script:'Pinyon Script',cursive;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--red-950);color:var(--cream);line-height:1.55;font-size:16px;
  padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom));overflow-x:hidden}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
.wrap{padding:0 18px;max-width:560px;margin:0 auto}
[hidden]{display:none!important}

/* ===== Text effects (pure CSS, in the style of colorion text-effects) ===== */
/* 1. gradient flow – gold foil */
.fx-gold{
  background:linear-gradient(100deg,var(--ink-3) 0%,var(--ink-1) 25%,var(--ink-2) 50%,var(--ink-1) 75%,var(--ink-3) 100%);
  background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:flow 5s linear infinite;
}
@keyframes flow{to{background-position:-220% center}}

/* 2. letter rise reveal (JS adds .ch spans with --i) */
.fx-rise .ch{display:inline-block;opacity:0;transform:translateY(.7em) rotateX(-70deg);transform-origin:50% 100%;
  animation:rise .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*38ms + .15s)}
.fx-rise .sp{display:inline-block;width:.28em}
@keyframes rise{to{opacity:1;transform:none}}

/* 3. neon glow pulse */
.fx-glow{color:#ffe9b0;text-shadow:0 0 4px #ffd27a,0 0 12px #e7a53c,0 0 26px #b9731a;animation:glow 2.6s ease-in-out infinite alternate}
@keyframes glow{from{text-shadow:0 0 3px #ffd27a,0 0 8px #e7a53c,0 0 16px #b9731a}to{text-shadow:0 0 5px #fff1c8,0 0 16px #ffc65a,0 0 34px #d38a25}}

/* 4. typewriter with caret */
.fx-type{color:var(--gold-1);font-weight:700;border-right:2px solid var(--gold-2);padding-right:3px;animation:caret .8s steps(1) infinite}
@keyframes caret{50%{border-color:transparent}}

/* 5. shimmer sweep on buttons */
.fx-shimmer{position:relative;overflow:hidden;isolation:isolate}
.fx-shimmer::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.65) 50%,transparent 65%);
  transform:translateX(-120%);animation:sweep 3.2s ease-in-out infinite}
@keyframes sweep{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

@media (prefers-reduced-motion:reduce){
  .fx-gold,.fx-glow,.fx-type,.fx-shimmer::after{animation:none}
  .fx-rise .ch{animation:none;opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ===== Header ===== */
.top{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;background:linear-gradient(#2c050aee,#2c050a00)}
.brand{display:flex;align-items:center;gap:10px}
.mono{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-family:var(--serif);font-weight:800;font-size:16px;
  color:var(--red-900);background:linear-gradient(135deg,var(--gold-1),var(--gold-2))}
.brand-t{font-size:10px;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.top-cta{padding:9px 16px;border-radius:99px;font-weight:600;font-size:13px;color:var(--red-900);background:linear-gradient(135deg,var(--gold-1),var(--gold-2))}

/* ===== Hero ===== */
.hero{position:relative;padding:84px 0 36px;overflow:hidden}
.hero-bg{position:absolute;top:56px;left:0;width:100%;height:440px;object-fit:cover;object-position:50% 30%;opacity:.8}
.hero-shade{position:absolute;inset:0;background:
  linear-gradient(#2c050a 0%,#2c050acc 14%,#2c050a99 32%,#2c050af0 60%,var(--red-950) 76%)}
.hero-in{position:relative}
.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;margin-bottom:10px}
.h1{font-family:var(--serif);font-weight:800;font-size:clamp(30px,9.4vw,44px);line-height:1.12;letter-spacing:-.01em}
.h1>span{display:block}
.h1-2{font-style:italic;font-weight:700;font-size:.78em;margin-top:6px}
.typed-line{margin:14px 0 14px;font-size:17px;color:var(--mut)}
.trust{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.trust li{font-size:12.5px;padding:6px 11px 6px 26px;border-radius:99px;position:relative;
  border:1px solid #d9b26a66;background:#ffffff0d;backdrop-filter:blur(4px)}
.trust li::before{content:"✓";position:absolute;left:10px;color:var(--gold-1);font-weight:700}

/* ===== Cards / forms ===== */
.card{border-radius:var(--r);padding:18px 16px 16px}
.form-card{background:linear-gradient(160deg,#fffaf0,#f6e9cf);color:var(--ink);
  box-shadow:0 18px 50px #00000066,0 0 0 1px #d9b26a88 inset}
.form-title{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--red-800);line-height:1.2}
.form-sub{font-size:13.5px;color:#5b3a3f;margin:4px 0 12px}
.lf{display:grid;gap:12px}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.f{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--red-800)}
.f input{width:100%;padding:14px 14px;font:inherit;font-weight:500;font-size:17px;color:var(--ink);
  background:#fff;border:1.5px solid #d8c29a;border-radius:12px;outline:0;transition:border .15s,box-shadow .15s}
.f input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #122a7833}
.f input.bad{border-color:#c0182c;box-shadow:0 0 0 3px #c0182c26}
.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.chip{padding:12px 0;border-radius:11px;font-weight:600;font-size:14px;color:var(--navy-d);background:#fff;border:1.5px solid #d8c29a;transition:.15s}
.chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff;transform:translateY(-1px);box-shadow:0 6px 14px #122a7855}
.err{font-size:13px;color:#b3122a;font-weight:600}
.fine{font-size:11.5px;color:#7a5b5f;text-align:center}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 20px;border-radius:14px;font-weight:700;font-size:16px;min-height:52px;text-align:center}
.btn-block{display:flex;width:100%}
.btn-gold{color:var(--red-950);background:linear-gradient(135deg,var(--gold-1),var(--gold-2) 55%,var(--gold-3));
  box-shadow:0 8px 22px #a8782e66,0 1px 0 #fff8 inset;transition:transform .12s}
.btn-gold:active{transform:scale(.98)}
.btn-ghost{border:1.5px solid var(--gold-2);color:var(--gold-1);margin-top:22px}
.btn[disabled]{opacity:.7;pointer-events:none}
.link{display:block;margin:10px auto 0;font-size:13px;color:var(--gold-1);text-decoration:underline;text-underline-offset:3px}

/* ===== Sections ===== */
.sec{padding:44px 0}
.sec-dark{background:linear-gradient(180deg,var(--red-900),var(--red-950))}
.h2{font-family:var(--serif);font-weight:800;font-size:clamp(25px,7.4vw,34px);line-height:1.15;margin-bottom:12px}
.lead{color:var(--mut);font-size:15px;margin-bottom:18px}

/* use cases */
.uses{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.use{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/1;text-align:left;box-shadow:0 8px 20px #0006;border:1px solid #d9b26a55}
.use img{width:100%;height:100%;object-fit:cover}
.use span{position:absolute;left:0;right:0;bottom:0;padding:26px 10px 10px;font-size:13px;font-weight:600;
  background:linear-gradient(transparent,#2c050af2);color:var(--gold-1)}

/* horizontal rails */
.rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 18px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail-hint{text-align:center;font-size:12px;color:#e9cfc6aa;margin:2px 0 6px}
.prod{flex:0 0 78%;max-width:340px;scroll-snap-align:center;border-radius:var(--r);overflow:hidden;background:var(--red-900);border:1px solid #d9b26a55;box-shadow:0 14px 34px #0007}
.prod img{width:100%;aspect-ratio:1556/2200;object-fit:cover}
.prod-b{padding:12px 14px 16px;display:grid;gap:4px}
.prod-s{font-size:13.5px;color:var(--mut);text-align:center;margin-bottom:6px}
.rail-sm .col{flex:0 0 56%;max-width:240px;scroll-snap-align:center;border-radius:14px;overflow:hidden;position:relative;border:1px solid #d9b26a55}
.col img{width:100%;aspect-ratio:1556/2200;object-fit:cover}
.col span{position:absolute;left:8px;top:8px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700;background:#fffaf0;color:var(--red-800)}

/* steps */
.steps{list-style:none;display:grid;gap:14px;margin-top:14px}
.steps li{display:flex;gap:14px;align-items:center;padding:14px;border-radius:14px;background:#ffffff0c;border:1px solid #d9b26a40}
.num{font-family:var(--serif);font-size:40px;line-height:1;width:34px;text-align:center}
.steps strong{display:block;font-size:16px}
.steps span{font-size:13.5px;color:var(--mut)}

/* policy */
.pol{display:grid;gap:12px;margin-top:10px}
.pol-i{display:grid;gap:3px;padding:16px;border-radius:14px;background:linear-gradient(150deg,#122a78,#0b1b52);border:1px solid #d9b26a88}
.pol-i strong{color:var(--gold-1);font-size:16px}
.pol-i span:last-child{font-size:13.5px;color:#d7defa}
.ic{font-size:26px}

/* faq */
.faq{border-bottom:1px solid #d9b26a40;padding:14px 0}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";color:var(--gold-2);font-size:22px;line-height:1}
.faq[open] summary::after{content:"–"}
.faq p{margin-top:8px;color:var(--mut);font-size:14.5px}

/* final */
.final{background:radial-gradient(100% 60% at 50% 0%,var(--red-800),var(--red-950))}
.qr{margin-top:20px;display:flex;gap:14px;align-items:center;padding:12px;border-radius:14px;background:#ffffff10;border:1px solid #d9b26a40}
.qr img{width:104px;height:104px;border-radius:8px;background:#fff}
.qr p{font-size:14px;color:var(--mut)}
.foot{padding:26px 18px 30px;text-align:center;font-size:12.5px;color:#e9cfc6bb;border-top:1px solid #d9b26a30}

/* ===== Sticky bar ===== */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:8px;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#2c050af5;backdrop-filter:blur(10px);
  border-top:1px solid #d9b26a66;transition:transform .25s}
.sticky.off{transform:translateY(110%)}
.s-btn{display:grid;place-items:center;height:48px;padding:0 16px;border-radius:12px;font-weight:700;font-size:15px;text-decoration:none}
.s-call{background:#fff1;border:1px solid var(--gold-2);color:var(--gold-1)}
.s-zalo{background:#0068ff;color:#fff}
.s-quote{flex:1;color:var(--red-950);background:linear-gradient(135deg,var(--gold-1),var(--gold-2) 55%,var(--gold-3))}

/* ===== Sheet ===== */
.sheet-wrap{position:fixed;inset:0;z-index:100}
.sheet-bg{position:absolute;inset:0;background:#000a;animation:fade .2s}
.sheet{position:absolute;left:0;right:0;bottom:0;max-height:92dvh;overflow:auto;background:linear-gradient(160deg,#fffaf0,#f6e9cf);color:var(--ink);
  border-radius:22px 22px 0 0;padding:22px 16px calc(20px + env(safe-area-inset-bottom));animation:up .28s cubic-bezier(.2,.8,.2,1);max-width:560px;margin:0 auto}
.sheet .form-title{padding-right:36px}
.sheet-prod{display:inline-block;margin:6px 0 12px;padding:4px 12px;border-radius:99px;font-size:13px;font-weight:700;background:var(--navy);color:#fff}
.x{position:absolute;top:10px;right:12px;width:40px;height:40px;font-size:28px;line-height:1;border-radius:50%;color:var(--red-800);z-index:2}
@keyframes up{from{transform:translateY(100%)}}
@keyframes fade{from{opacity:0}}

/* ===== Lightbox ===== */
.lb{position:fixed;inset:0;z-index:110;background:#000e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:16px}
.lb .x{color:#fff}
.lb img{max-height:78dvh;width:auto;max-width:100%;border-radius:10px;object-fit:contain}
.lb-cta{width:100%;max-width:340px}

/* ok state */
.ok{text-align:center;padding:10px 0 4px;display:grid;gap:10px}
.ok-ic{margin:0 auto;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:700;color:#fff;background:#1e9d5c}

@media (min-width:700px){
  .wrap{max-width:620px}
  body{background:#1a0306}
}

/* ===== Video / gallery ===== */
.prod-img{position:relative}
.play{position:absolute;right:10px;top:10px;z-index:2;display:flex;align-items:center;gap:7px;padding:7px 13px 7px 9px;border-radius:99px;
  font-size:13px;font-weight:700;color:var(--red-950);background:linear-gradient(135deg,var(--gold-1),var(--gold-2));box-shadow:0 6px 16px #0008;animation:pulse 2.2s ease-in-out infinite}
.play i{width:22px;height:22px;border-radius:50%;background:var(--red-900);position:relative;display:block}
.play i::after{content:"";position:absolute;left:8px;top:6px;border-left:8px solid var(--gold-1);border-top:5px solid transparent;border-bottom:5px solid transparent}
@keyframes pulse{50%{box-shadow:0 0 0 7px #f6e3a833,0 6px 16px #0008}}
@media (prefers-reduced-motion:reduce){.play{animation:none}}
.lb-tabs{display:flex;gap:6px;padding:4px;border-radius:99px;background:#ffffff1a}
.lb-tab{padding:8px 18px;border-radius:99px;font-size:14px;font-weight:600;color:#fff}
.lb-tab.on{background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:var(--red-950)}
.lb video{max-height:74dvh;max-width:100%;aspect-ratio:9/16;border-radius:12px;background:#000;object-fit:contain}
