/* Sample B2 (T0220): B revised from Abbas's notes. Builds on ../shared/base.css (palette from his Instagram reference). */
:root{--sky:#BFD8FF;--peri:#8FB3FF;--f-px:"Press Start 2P","Courier New",monospace;--dotc:rgba(11,21,48,.07)}
body{background:#fff}
.dots{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}

/* light bands are never flat: a faint dot grid + the moving dots canvas behind (dark bands stay solid) */
.band-clear,.band-paper{position:relative;padding:72px 0;background-image:radial-gradient(var(--dotc) 1.1px,transparent 1.3px);background-size:22px 22px}
.band-paper{background-color:rgba(202,222,255,.62)}
@media (min-width:900px){.band-clear,.band-paper{padding:112px 0}}
.hero.band-clear{padding:40px 0 56px}
@media (min-width:900px){.hero.band-clear{padding:84px 0 96px}}
.head{margin-bottom:32px}

/* header */
.top nav{gap:8px}
.playpill{font-family:var(--f-px);font-size:10px;letter-spacing:.04em;color:#fff;background:var(--blue);border:2px solid #9DB8FF;border-radius:6px;padding:10px 12px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;box-shadow:0 3px 0 #1F56D5;animation:ppulse 1.6s ease-in-out infinite;white-space:nowrap}
.playpill:hover{background:#1F56D5}
@keyframes ppulse{0%,100%{box-shadow:0 0 0 0 rgba(48,107,235,.5),0 3px 0 #1F56D5}50%{box-shadow:0 0 0 8px rgba(48,107,235,0),0 3px 0 #1F56D5}}
@media (max-width:400px){.playpill{font-size:8px;padding:10px 8px}.top .btn{display:none}}

/* 1 hero */
.hb{display:grid;gap:36px;align-items:center}
@media (min-width:900px){.hb{grid-template-columns:1.1fr .9fr;gap:64px}}
.hb .h1{font-size:clamp(40px,11.4vw,84px);max-width:12ch}
.hb .lead{margin-top:14px;font-size:clamp(18px,2.4vw,22px)}
.hb .btns{margin-top:26px}
@media (max-width:420px){.hb .btns .btn{flex:1 1 auto}}
.chatphone{width:min(270px,72vw);margin-inline:auto}
@media (min-width:900px){.chatphone{width:300px}}
.cp{position:relative;aspect-ratio:9/17;border-radius:36px;background:var(--ink);padding:10px;box-shadow:0 40px 80px -36px rgba(11,21,48,.55)}
.cp::before{content:"";position:absolute;top:10px;left:50%;translate:-50% 0;width:32%;height:17px;background:var(--ink);border-radius:0 0 12px 12px;z-index:2}
.cp-head{position:absolute;inset:10px 10px auto;height:62px;padding:24px 14px 0;display:flex;align-items:center;gap:9px;background:#fff;border-radius:28px 28px 0 0;border-bottom:1px solid var(--line);z-index:1}
.cp-head .av{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#8FB3FF,var(--blue))}
.cp-head b{font-size:14px}.cp-head small{margin-inline-start:auto;font-size:11px;color:#1E9A4A;font-weight:700}
.cp-body{height:100%;border-radius:28px;background:#F4F7FF;padding:78px 12px 14px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.m{max-width:82%;font-weight:700;font-size:15px;line-height:1.3;padding:9px 13px;border-radius:17px 17px 17px 5px;background:#fff;color:var(--ink);align-self:flex-start;box-shadow:0 2px 0 var(--line)}
html[dir="rtl"] .m{border-radius:17px 17px 5px 17px}
.m.out{align-self:flex-end;background:var(--blue);color:#fff;border-radius:17px 17px 5px 17px;display:grid;gap:8px;box-shadow:none}
html[dir="rtl"] .m.out{border-radius:17px 17px 17px 5px}
.m .link{display:grid;gap:2px;background:#fff;color:var(--ink);border-radius:11px;padding:8px 10px}
.m .link b{font-size:13px}.m .link em{font-style:normal;font-size:11px;color:var(--body);font-weight:600}
.m .link em i{font-style:normal}
.typing{display:flex;gap:4px;padding:12px 14px}
.typing i{width:7px;height:7px;border-radius:50%;background:#9AA6C7;animation:tdot 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes tdot{50%{transform:translateY(-3px);opacity:.5}}
.order{align-self:center;margin-top:auto;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:14px;box-shadow:0 12px 26px -12px rgba(11,21,48,.35)}
.order .ic{width:17px;height:17px;color:#1E9A4A}
/* the thread plays as a loop (JS adds .on); without motion everything is simply shown */
html.mo .cp-body>*{opacity:0;transform:translateY(10px) scale(.96);transition:opacity .35s var(--ease),transform .45s var(--ease)}
html.mo .cp-body>.on{opacity:1;transform:none}
html.mo .cp-body>.typing:not(.on){display:none}
html:not(.mo) .typing{display:none}

/* 2 scroll scene: a rounded card where DM bubbles drift, then a store assembles (GSAP scrub; static end state otherwise) */
.scene{position:relative}
html.gsx .scene{height:260vh}
.scene-pin{padding:20px 0}
html.gsx .scene-pin{position:sticky;top:64px;height:calc(100svh - 64px);display:flex;align-items:center;padding:0}
.stage-wrap{width:min(100% - 2*14px,var(--wrap))}
.stage{position:relative;height:min(76svh,660px);min-height:520px;border-radius:30px;overflow:hidden;background:radial-gradient(rgba(11,21,48,.08) 1.1px,transparent 1.3px) 0 0/22px 22px,linear-gradient(165deg,#CADEFF 0%,#B4CFFC 100%);perspective:900px;isolation:isolate}
.say{position:absolute;top:24px;inset-inline:22px;z-index:3;display:grid;font-size:clamp(26px,7.4vw,58px);max-width:16ch}
.say>span{grid-area:1/1}
.say-a{opacity:0}
html.gsx .say-a{opacity:1}
html.gsx .say-b{opacity:0}
.bit{position:absolute;z-index:2;font-weight:700;font-size:clamp(14px,3.8vw,19px);padding:10px 15px;border-radius:18px 18px 18px 5px;background:#fff;color:var(--ink);white-space:nowrap;box-shadow:0 18px 30px -16px rgba(11,21,48,.45),inset 0 -3px 0 rgba(11,21,48,.06);will-change:transform;opacity:.28}
html.gsx .bit{opacity:1}
.bit.dark{background:var(--ink);color:#fff}
.bit.blue{background:var(--blue);color:#fff}
.b1{top:30%;left:6%}.b2{top:40%;right:5%}.b3{top:52%;left:12%}.b4{top:62%;right:14%}.b5{top:73%;left:4%}.b6{top:83%;right:8%}.b7{top:47%;left:42%}
.mock{position:absolute;z-index:2;left:50%;bottom:58px;translate:-50% 0;width:min(240px,62%);display:grid;gap:7px;padding:12px;border-radius:24px;background:#fff;box-shadow:0 34px 60px -30px rgba(11,21,48,.55)}
html.gsx .mock{background:transparent;box-shadow:none}
.mk{border-radius:12px;font-size:12px;font-weight:700;will-change:transform}
.mk-top{display:flex;justify-content:space-between;align-items:center;padding:2px 4px}.mk-top b{font-size:14px}.mk-top i{width:16px;height:10px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.mk-offer{display:flex;flex-direction:column;gap:3px;padding:12px;background:var(--ink);color:#fff}
.mk-offer span{align-self:flex-start;font-size:9px;letter-spacing:.08em;background:var(--blue);border-radius:6px;padding:2px 6px}
.mk-offer b{font-size:15px}
.mk-prod{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.mk-prod .ph{aspect-ratio:1;border-radius:12px;background:linear-gradient(140deg,#E5EEFF,#B4CFFC)}
.mk-prod .tag{position:absolute;bottom:6px;left:6px;background:#fff;border-radius:8px;padding:2px 7px;font-size:12px}
.mk-prod .tag.t2{left:auto;right:6px}
html[dir="rtl"] .mk-prod .tag{left:auto;right:6px}html[dir="rtl"] .mk-prod .tag.t2{right:auto;left:6px}
.mk-rev{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#F4F7FF}.stars{color:#F2B705;letter-spacing:1px}
.mk-pay{display:flex;gap:6px}.mk-pay span{flex:1;text-align:center;padding:7px 4px;border-radius:10px;background:#F4F7FF}
.mk-cta{padding:10px;text-align:center;background:var(--blue);color:#fff;border-radius:999px;font-size:13px}
html.gsx .mk-top{background:#fff;padding:8px 10px}
.meter{position:absolute;z-index:3;left:22px;right:22px;bottom:18px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--ink);direction:ltr}
.meter i{flex:1;height:3px;border-radius:3px;background:rgba(11,21,48,.15);overflow:hidden}
.meter i b{display:block;height:100%;width:100%;background:var(--blue);transform-origin:0 50%}
html.gsx .meter i b{transform:scaleX(0)}
html[dir="rtl"] .meter{direction:rtl}html[dir="rtl"] .meter i b{transform-origin:100% 50%}

/* 3 our work: the live site's segment (3 equal phones + 3 equal reels) */
.work .head{text-align:center}.work .kick{justify-content:center}.work .h2{margin-inline:auto}
.minis,.reels3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:820px;margin-inline:auto}
@media (min-width:600px){.minis,.reels3{gap:20px}}
.mini{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;text-decoration:none;color:inherit}
.mini .scr{width:100%;aspect-ratio:9/16;border-radius:18px;overflow:hidden;border:4px solid var(--ink);background:#fff;box-shadow:0 18px 30px -20px rgba(11,21,48,.7);transition:transform .4s var(--ease)}
.mini:hover .scr{transform:translateY(-6px)}
.mini .scr img{width:100%;height:100%;object-fit:cover;object-position:top}
.mini h3{font-size:clamp(14px,3.8vw,18px);margin-top:8px}
.mtag{font-size:12px;font-weight:700;color:var(--blue-t)}
.mtag.dim{color:var(--body)}
.soon .scr{display:flex;flex-direction:column;gap:6px;padding:12px 10px;background:#EFE9E1;border-style:dashed}
.soon .mt,.soon .mb{height:7px;border-radius:4px;background:#C4B5A2}.soon .mt{width:50%}.soon .mb{width:70%}
.soon .mc{height:18px;border-radius:999px;background:#2B2420}
.soon svg{flex:1;width:100%;min-height:0;fill:#2B2420}
.reels3{margin-top:22px}
.rl{margin:0;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:var(--ink);box-shadow:0 18px 30px -20px rgba(11,21,48,.7)}
.rl video{width:100%;height:100%;object-fit:cover;display:block}
.work .ig{margin:22px auto 0;display:flex;width:max-content}

/* 4 three steps */
.s3{list-style:none;margin:0;padding:0;display:grid;gap:12px}
@media (min-width:860px){.s3{grid-template-columns:repeat(3,1fr);gap:18px}}
.s3 li{display:grid;grid-template-columns:auto 1fr;gap:2px 16px;align-items:baseline;padding:22px;border-radius:22px;background:#fff;border:1px solid var(--line)}
.s3 .n{grid-row:span 2;font-family:var(--f-en);font-size:34px;font-weight:700;letter-spacing:-.04em;color:var(--blue);line-height:1;direction:ltr}
.s3 h3{font-size:20px}.s3 p{color:var(--body);font-size:15px}
@media (min-width:860px){.s3 li{grid-template-columns:1fr}.s3 .n{grid-row:auto;font-size:46px;margin-bottom:10px}}

/* 5 packages (B look) on the paper band */
.band-paper .pkg{background:#fff;border-color:#fff;box-shadow:0 18px 40px -30px rgba(11,21,48,.35)}

/* 6 arcade (ported from the live site) */
.arc-sec.band-clear{padding:56px 0}
.arcade{display:grid;grid-template-columns:118px 1fr;gap:14px;align-items:center;max-width:620px;margin-inline:auto;padding:14px;border-radius:22px;background:linear-gradient(180deg,#141F48,#0A1128);border:3px solid #22336E;box-shadow:0 0 0 2px #060C1E,0 0 40px -6px rgba(48,107,235,.6),inset 0 2px 0 rgba(255,255,255,.08);transition:box-shadow .3s}
@media (min-width:600px){.arcade{grid-template-columns:170px 1fr;gap:24px;padding:18px 22px}}
.arcade.hot{box-shadow:0 0 0 2px #060C1E,0 0 70px 0 rgba(48,107,235,.85),inset 0 2px 0 rgba(255,255,255,.08)}
.crt{position:relative;display:block;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:#050A1A;border:3px solid #2E437F;box-shadow:inset 0 0 22px rgba(0,0,0,.9),0 0 18px rgba(48,107,235,.45)}
.crt canvas{width:100%;height:100%;display:block;image-rendering:pixelated}
.crt::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}
.crt-hud{position:absolute;top:5px;inset-inline:6px;font-family:var(--f-px);font-size:7px;color:var(--sky);display:flex;justify-content:space-between;text-shadow:0 0 6px var(--blue)}
.crt-hud b{color:#fff;font-weight:400}
.arc-info{display:flex;flex-direction:column;gap:7px;min-width:0;text-align:left}
.px{font-family:var(--f-px);font-weight:400;letter-spacing:0;line-height:1.5;margin:0}
.px-k{font-size:8px;color:var(--peri)}
.px-t{font-size:clamp(15px,4.6vw,24px);line-height:1.35;color:#fff;text-shadow:3px 3px 0 var(--blue),0 0 18px rgba(48,107,235,.7)}
.px-s{font-size:8px;color:var(--sky)}.px-s b{color:#FFE27A;font-weight:400}
.arc-line{font-size:13px;color:#A7B3D1;line-height:1.35}
html[lang="ar"] .arc-line{font-family:var(--f-ar);text-align:right}
.px-btn{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;text-decoration:none;align-self:flex-start;min-height:44px}
.coin{font-size:8px;color:#FFE27A;animation:blink 1s steps(2,start) infinite}
@keyframes blink{to{visibility:hidden}}
.px-play{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-px);font-size:12px;background:var(--blue);color:#fff;padding:11px 16px;box-shadow:0 4px 0 #1F56D5,0 0 0 3px var(--ink),0 4px 0 3px var(--ink);transition:transform .1s}
html[lang="ar"] .px-play{font-family:var(--f-ar);font-weight:800;font-size:15px;padding:6px 16px}
.px-play .ic{width:14px;height:14px}
.px-btn:hover .px-play{transform:translateY(-2px)}

/* switcher pill: same as A/B/C */
.samp a.live-l{min-width:0;padding:0 14px;border-radius:999px;background:#fff;color:var(--ink);margin-inline-end:4px}

@media (prefers-reduced-motion:reduce){.playpill,.coin,.typing i{animation:none}}

/* phones: headline, one button and the chat phone together on the first screen */
@media (max-width:600px){
  .hero.band-clear{padding:22px 0 44px}
  .hb{gap:26px}
  .hb .eyebrow{margin-bottom:12px;font-size:13px}
  .hb .h1{font-size:clamp(36px,10.6vw,48px)}
  .hb .lead{margin-top:10px;font-size:17px}
  .hb .btns{margin-top:18px;flex-wrap:nowrap;align-items:center;gap:14px}
  .hb .btns .btn{flex:0 0 auto}
  .hb .btns .btn-line{border:0;background:none;padding:0 4px;min-height:44px;text-decoration:underline;text-underline-offset:4px;font-size:15px}
  .chatphone{width:min(250px,68vw)}
}

/* ===== Lusion-inspired motion layer (original; CSS + GSAP transforms only) ===== */
/* hero floating depth objects: glossy wedo shapes, idle float via `translate`, scroll/pointer parallax via transform */
.hero{overflow:hidden}
.hero .wrap{position:relative;z-index:1}
.floaters{position:absolute;inset:0;pointer-events:none;z-index:0}
.fl{position:absolute;display:block;will-change:transform;animation:bob 7s ease-in-out infinite}
.fl.d2{animation-duration:9s;animation-delay:-3s}
.fl.d3{animation-duration:11s;animation-delay:-6s;filter:blur(1.5px);opacity:.75}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -14px}}
.f-bub{width:78px;height:54px;border-radius:22px 22px 22px 6px;background:radial-gradient(120% 90% at 30% 20%,#2A3A6E 0%,#0B1530 60%);box-shadow:inset -6px -8px 14px rgba(0,0,0,.35),inset 6px 6px 12px rgba(255,255,255,.12),0 24px 40px -18px rgba(11,21,48,.6);top:8%;right:6%}
.f-bub::after{content:"";position:absolute;left:16px;top:22px;width:46px;height:6px;border-radius:4px;background:rgba(255,255,255,.35);box-shadow:0 -10px 0 rgba(255,255,255,.22)}
.f-ring{width:66px;height:66px;border-radius:50%;border:13px solid #306BEB;box-shadow:inset 3px 4px 6px rgba(255,255,255,.35),inset -4px -5px 8px rgba(0,0,0,.25),0 22px 36px -18px rgba(48,107,235,.7);top:46%;left:-14px}
.f-coin{width:48px;height:48px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#9DBBFF 0%,#306BEB 45%,#1F56D5 100%);box-shadow:0 18px 30px -14px rgba(48,107,235,.75);top:22%;left:58%}
.f-tag{width:70px;height:40px;border-radius:10px 20px 20px 10px;background:linear-gradient(160deg,#fff 0%,#E5EEFF 100%);box-shadow:inset -3px -4px 8px rgba(11,21,48,.08),0 20px 34px -18px rgba(11,21,48,.45);top:64%;right:-10px;rotate:-18deg}
.f-tag::before{content:"$";position:absolute;inset:0;display:grid;place-items:center;font:700 18px var(--f-en);color:#306BEB}
.f-pill{width:96px;height:34px;border-radius:99px;background:linear-gradient(90deg,#fff 50%,#306BEB 50%);box-shadow:inset 0 -5px 8px rgba(11,21,48,.12),0 18px 30px -16px rgba(11,21,48,.45);bottom:9%;left:8%;rotate:24deg}
.f-bub2{width:56px;height:40px;border-radius:18px 18px 6px 18px;background:linear-gradient(160deg,#fff,#DCE7FF);box-shadow:0 18px 30px -16px rgba(11,21,48,.4);top:84%;right:22%}
.f-dot{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3B4C80,#0B1530);top:34%;right:30%}
.f-coin2{width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0%,#CADEFF 55%,#9DBBFF 100%);top:2%;left:30%}
@media (min-width:900px){.f-bub{top:14%;right:44%}.f-ring{top:62%;left:4%}.f-coin{top:10%;left:auto;right:6%}.f-tag{top:78%;right:40%}.f-coin2{top:4%;left:46%}}
/* the chat phone sits above the floaters */
.chatphone{position:relative;z-index:1}

/* headline lines rise out of a mask (JS wraps words into .ln > .li) */
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.li{display:block;will-change:transform}

/* card-grow transitions between blocks (JS scrubs clip-path from a rounded card to full width) */
html.gsx .grow{will-change:clip-path}

@media (prefers-reduced-motion:reduce){.fl{animation:none}}
/* phones: floaters only at the edges and around the chat phone, never behind the headline or buttons */
@media (max-width:899px){
  .f-bub{top:auto;bottom:30%;right:-14px}
  .f-coin{top:47%;left:auto;right:4%}
  .f-dot{top:60%;right:auto;left:5%}
  .f-coin2{top:1%;left:auto;right:-20px;width:70px;height:70px}
  .f-ring{top:76%;left:-18px}
  .f-tag{top:66%;right:-14px}
  .f-pill{bottom:4%;left:4%}
  .f-bub2{top:auto;bottom:12%;right:-8px}
}

/* never scroll sideways, even mid-animation. clip on BODY (never on html): html must stay overflow:visible so the
   page keeps scrolling the window; otherwise body becomes its own scroll box and the sticky scroll scene stops sticking (T0224) */
body{overflow-x:clip}

/* T0222: package details (days, change fee, hosting/ownership line) in the same card look */
.pkg .days{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;font-size:14px;font-weight:700;color:var(--blue-t);background:var(--soft);border-radius:999px;padding:5px 12px 5px 10px}
html[dir="rtl"] .pkg .days{padding:5px 10px 5px 12px}
.pkg .days .ic{width:16px;height:16px}
.pkg li.no{color:var(--body)}
.pkg .chg{font-size:14px;font-weight:600;color:var(--body);margin-top:2px}
.own{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:16px;font-weight:700;color:var(--ink)}
.own .ic{width:20px;height:20px;color:var(--blue-t)}
.own + .pk-note{margin-top:8px}

/* T0225 header: no DM pill; PLAY + language switch as small quiet chips (the tap area stays 44px), bigger logo */
.top .wrap{height:64px}
.brand img{height:34px}
@media (min-width:900px){.brand img{height:40px}}
.top nav{gap:2px}
.top .playpill,.top .lang{min-height:44px;min-width:44px;padding:0 4px;background:none;border:0;box-shadow:none;animation:none;display:inline-flex;align-items:center;justify-content:center;font-size:inherit}
.top .playpill span{font-family:var(--f-px);font-size:8px;letter-spacing:.04em;color:var(--blue-t);border:1.5px solid #CADEFF;border-radius:999px;padding:7px 10px;line-height:1;transition:border-color .2s,background .2s}
.top .playpill:hover span{border-color:var(--blue);background:#F4F7FF}
.top .lang span{font-size:13px;font-weight:700;color:var(--body);border:1.5px solid var(--line);border-radius:999px;padding:5px 11px;line-height:1.2;transition:border-color .2s}
.top .lang:hover span{border-color:var(--ink);color:var(--ink)}
.top .playpill:focus-visible,.top .lang:focus-visible{outline:none}.top .playpill:focus-visible span,.top .lang:focus-visible span{outline:3px solid var(--blue);outline-offset:2px}
@media (min-width:900px){.f-ring{top:88%;left:2%}}
