/* ============================================================
   Sinhela website — base design (provided webpage) + CMS/i18n
   + interactive layer (parallax, tilt, magnetic, reveals)
   ============================================================ */
:root{
  --blue:#1557f6;
  --blue-2:#2f73ff;
  --navy:#08152f;
  --text:#0d1837;
  --muted:#61708e;
  --soft:#f6f9ff;
  --border:#e2eafb;
  --white:#fff;
  --shadow:0 18px 45px rgba(24,73,166,.10);
  --radius:28px;
  --font:Inter,"Noto Sans Sinhala","Noto Sans Tamil","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
:root{color-scheme:only light}
html{scroll-behavior:smooth;background:#edf4ff}
body{margin:0;font-family:var(--font);color:var(--text);background:#edf4ff;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button{font:inherit}
.site-shell{width:min(1440px,calc(100% - 24px));margin:12px auto;background:#fff;border:1px solid #dfe8f8;border-radius:34px;overflow:hidden;box-shadow:0 24px 80px rgba(33,73,142,.10)}
.site-header{min-height:96px;display:grid;grid-template-columns:210px 1fr auto auto;align-items:center;gap:20px;padding:0 48px;position:relative;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}
.brand img{width:190px;height:72px;object-fit:contain;object-position:left center}
.nav{display:flex;justify-content:center;gap:38px;font-size:14px;font-weight:600;color:#17203b}
.nav a{position:relative;padding:12px 0}.nav a.active,.nav a:hover{color:var(--blue)}
.nav a.active:after{content:"";position:absolute;left:18%;right:18%;bottom:4px;height:2px;border-radius:2px;background:var(--blue)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:12px;font-weight:700;font-size:15px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;border:1px solid transparent;cursor:pointer;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,var(--blue),#0b65ff);color:#fff;box-shadow:0 12px 28px rgba(21,87,246,.20)}
.btn-primary:hover{box-shadow:0 18px 36px rgba(21,87,246,.32)}
.btn-outline{border-color:#8eb0ff;color:var(--blue);background:#fff}
.header-cta{justify-self:end;min-height:46px}
.nav-toggle{display:none;background:transparent;border:0;padding:8px;cursor:pointer}.nav-toggle span{display:block;width:26px;height:2px;background:var(--navy);margin:5px;border-radius:2px;transition:.3s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.section-pad{padding-left:74px;padding-right:74px}

/* ---------- language switcher ---------- */
.lang-switch{display:flex;gap:4px;background:#eef4ff;border:1px solid var(--border);border-radius:999px;padding:4px}
.lang-switch a{padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:700;color:#4b5b7c;transition:.2s;white-space:nowrap}
.lang-switch a:hover{color:var(--blue)}
.lang-switch a.on{background:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(21,87,246,.28)}

/* ---------- hero ---------- */
.hero{min-height:690px;display:grid;grid-template-columns:43% 57%;align-items:center;position:relative;padding-top:45px;padding-bottom:22px;background:radial-gradient(circle at 75% 42%,#eff6ff 0 25%,transparent 55%)}
.hero-glow{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(560px circle at var(--gx,70%) var(--gy,40%),rgba(47,115,255,.10),transparent 62%)}
.hero-copy{position:relative;z-index:7;padding-bottom:75px}
.hero-logo{width:450px;height:120px;object-fit:contain;object-position:left center;margin:0 0 26px -8px}
.hero h1{font-size:54px;line-height:1.06;letter-spacing:-2.2px;margin:0 0 24px;font-weight:800;white-space:nowrap}.hero h1 span{color:var(--blue)}
.hero-copy>p{font-size:18px;line-height:1.72;max-width:560px;color:#495976;margin:0 0 28px}
.hero-actions{display:flex;gap:16px}
.social-proof{display:flex;align-items:center;gap:13px;font-size:13px;color:#576680;margin-top:28px}
.avatars{display:flex}
.avatars span,.avatars img{width:34px;height:34px;border-radius:50%;background:#e4ecff;border:2px solid #fff;margin-left:-9px;display:grid;place-items:center;font-size:15px;object-fit:cover;box-shadow:0 4px 10px rgba(16,33,75,.15);transition:transform .25s}
.avatars span:first-child,.avatars img:first-child{margin-left:0}
.avatars img:hover{transform:translateY(-4px) scale(1.15);z-index:2;position:relative}
.hero-visual{height:610px;position:relative;align-self:end;overflow:visible}
.hero-bg{position:absolute;right:-73px;bottom:0;width:870px;opacity:.78;z-index:1;filter:saturate(.9)}
.phones{position:absolute;right:45px;top:12px;width:570px;height:560px;object-fit:contain;z-index:5;filter:drop-shadow(0 30px 50px rgba(13,40,110,.22))}
.friends-wrap{position:absolute;left:-100px;bottom:-10px;width:460px;z-index:6}
.friends{width:100%}
.floating-chat{position:absolute;z-index:8;background:var(--blue);color:#fff;border-radius:15px;padding:4px 10px;font-weight:900;letter-spacing:2.5px;font-size:12px;box-shadow:0 8px 18px rgba(21,87,246,.25);white-space:nowrap}
.floating-chat.msg{letter-spacing:0;font-weight:700;font-size:10.5px;padding:5px 10px;border-bottom-left-radius:4px;white-space:normal;max-width:170px;line-height:1.35}
.floating-chat .fc-tr{display:block;font-size:8px;font-weight:600;opacity:.8;letter-spacing:.01em;margin-top:2px;border-top:1px dashed rgba(255,255,255,.35);padding-top:2px}
/* the three bubbles are anchored to the friends group (percent of .friends-wrap),
   floating in an arc just above their heads at every screen size */
.bubble-one{left:1%;top:56%}
.bubble-two{left:30%;top:-7%}
.bubble-three{left:auto;right:0;top:33%;border-bottom-left-radius:15px;border-bottom-right-radius:4px}
/* emoji reactions that jump out of a bubble and float away */
.fc-fly{position:absolute;z-index:9;font-size:16px;pointer-events:none;animation:flyUp 1.7s ease-out forwards}
@keyframes flyUp{0%{opacity:0;translate:0 8px;scale:.4}18%{opacity:1;scale:1.2}100%{opacity:0;translate:var(--fx,16px) -78px;scale:1;rotate:var(--fr,12deg)}}

/* pop/pulse live on an inner span so they don't fight the bubble's float animation */
.floating-chat i{display:inline-block;font-style:normal}
@keyframes bubblePop{0%{scale:.4;opacity:.2}70%{scale:1.12}100%{scale:1;opacity:1}}
.floating-chat i.fc-pop{animation:bubblePop .38s cubic-bezier(.34,1.56,.64,1)}
@keyframes dotPulse{0%,100%{opacity:.45}50%{opacity:1}}
.floating-chat i.fc-dots{animation:dotPulse 1s ease-in-out infinite}
.float-chip{position:absolute;z-index:8;background:#fff;border-radius:999px;padding:8px 12px;font-size:17px;box-shadow:0 10px 24px rgba(16,33,75,.16);border:1px solid var(--border)}
.chip-heart{right:14px;top:70px}
.chip-wave{right:92%;top:20%}
.chip-party{right:2%;bottom:26%}
.sparkle{position:absolute;z-index:8;color:#7ea4ff;font-size:18px;pointer-events:none}
.spk-1{left:46%;top:6%}
.spk-2{right:6%;top:52%}
.spk-3{left:8%;bottom:40px}

/* floating loops */
/* keyframes use translate/scale/rotate properties so the mouse-parallax
   transform on the same element is not overridden */
@keyframes floatA{0%,100%{translate:0 0}50%{translate:0 -13px}}
@keyframes floatB{0%,100%{translate:0 0}50%{translate:0 -20px}}
@keyframes floatC{0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -9px;rotate:2deg}}
@keyframes twinkle{0%,100%{opacity:.25;scale:.8;rotate:0deg}50%{opacity:1;scale:1.15;rotate:22deg}}
.float-a{animation:floatA 5s ease-in-out infinite}
.float-b{animation:floatB 6.4s ease-in-out .7s infinite}
.float-c{animation:floatC 5.5s ease-in-out .4s infinite}
.sparkle{animation:twinkle 3.2s ease-in-out infinite}
.spk-2{animation-delay:1.1s}.spk-3{animation-delay:2s}

/* ---------- features ---------- */
.features{position:relative;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0 64px 55px;margin-top:-22px}
.feature-card{min-height:145px;background:#fff;border:1px solid var(--border);border-radius:22px;padding:22px;display:flex;gap:18px;align-items:flex-start;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:box-shadow .3s,border-color .3s;transform-style:preserve-3d;will-change:transform}
.feature-card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(47,115,255,.10),transparent 65%)}
.feature-card:hover{box-shadow:0 26px 60px rgba(24,73,166,.16);border-color:#c6d8fb}
.feature-card:hover:before{opacity:1}
.feature-card img{width:58px;height:58px;object-fit:contain;border-radius:50%;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.feature-card:hover img{transform:scale(1.15) rotate(-8deg)}
.feature-card h2{font-size:18px;margin:2px 0 8px}
.feature-card p{font-size:13px;line-height:1.55;color:#62708b;margin:0 0 12px}
.feature-card a{font-size:12px;font-weight:800;color:var(--blue)}
.feature-card a span{display:inline-block;transition:transform .25s}
.feature-card a:hover span{transform:translateX(4px)}

/* ---------- stats strip (extra content) ---------- */
.stats-strip{margin:6px 64px 55px;background:linear-gradient(105deg,#1757f5,#2f7cff);border-radius:24px;color:#fff;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:30px 34px;box-shadow:0 22px 42px rgba(21,87,246,.2);position:relative;overflow:hidden}
.stats-strip:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.16),transparent 30%)}
.stat{text-align:center;position:relative}
.stat b{display:block;font-size:30px;font-weight:800;letter-spacing:-.5px}
.stat small{font-size:12.5px;opacity:.85}

/* ---------- "Everything Inside" feature grid ---------- */
.fx-section{padding:10px 64px 60px}
.fx-head{text-align:center;max-width:640px;margin:0 auto 34px}
.fx-head h2{font-size:30px;line-height:1.12;margin:0 0 12px;letter-spacing:-.6px}
.fx-head p{font-size:14px;line-height:1.7;color:#5e6c88;margin:0}
.fx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.fx-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:24px 22px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:box-shadow .3s,border-color .3s;transform-style:preserve-3d;will-change:transform}
.fx-card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(47,115,255,.10),transparent 65%)}
.fx-card:hover{box-shadow:0 26px 60px rgba(24,73,166,.16);border-color:#c6d8fb}
.fx-card:hover:before{opacity:1}
.fx-icon{width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,#e8f0ff,#f3f8ff);border:1px solid var(--border);display:grid;place-items:center;margin-bottom:14px;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.fx-icon span{font-size:24px}
.fx-icon img{width:30px;height:30px;object-fit:contain}
.fx-card:hover .fx-icon{transform:scale(1.12) rotate(-6deg)}
.fx-card h3{font-size:15.5px;margin:0 0 8px;letter-spacing:-.2px}
.fx-card p{font-size:12.5px;line-height:1.65;color:#62708b;margin:0}

/* ---------- community band ---------- */
.community-section{display:grid;grid-template-columns:.82fr 1.78fr 1.1fr;gap:28px;align-items:center;padding-top:25px;padding-bottom:55px}
.eyebrow{display:block;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);font-size:11px;font-weight:800;margin-bottom:13px}
.community-copy h2,.reviews h2,.about h2{font-size:30px;line-height:1.12;margin:0 0 18px;letter-spacing:-.6px}
.community-copy p,.about p{font-size:14px;line-height:1.75;color:#5e6c88;margin:0 0 18px}
.text-link{color:var(--blue);font-size:13px;font-weight:800;display:inline-block;transition:transform .2s}
.text-link:hover{transform:translateX(4px)}
.community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.community-card{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 10px 26px rgba(24,73,166,.08);transform-style:preserve-3d;will-change:transform;transition:box-shadow .3s}
.community-card:hover{box-shadow:0 22px 46px rgba(24,73,166,.18)}
.community-card .shot{aspect-ratio:4/3.1;overflow:hidden;position:relative;background:linear-gradient(135deg,#dbe9ff,#eef5ff)}
.community-card .shot img{width:100%;height:100%;object-fit:cover;transition:transform .55s}
.community-card:hover .shot img{transform:scale(1.09)}
.community-card .shot:after{content:"";position:absolute;top:0;bottom:0;left:-80%;width:50%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .6s}
.community-card:hover .shot:after{left:130%}
.community-card .shot .ph{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:4px;font-size:30px}
.community-card .shot .ph em{font-style:normal;font-size:11px;color:#5e6c88;font-weight:700}
.community-card .cbody{padding:10px 11px 12px}
.community-card .cbody .em{font-size:13px;margin-right:2px}
.community-card h3{font-size:11.5px;margin:0 0 5px;line-height:1.35;overflow-wrap:break-word}
.community-card p{font-size:10.5px;line-height:1.5;color:#62708b;margin:0;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reviews .dots{display:flex;gap:7px;justify-content:center;margin-top:14px}
.dots button{width:8px;height:8px;border-radius:50%;background:#c3d2f2;border:0;padding:0;cursor:pointer;transition:.3s}
.dots button.on{background:var(--blue);width:22px;border-radius:5px}
.testi-viewport{overflow:hidden}
.testi-track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.testi-card{flex:0 0 100%;background:#fff;border:1px solid var(--border);border-radius:20px;padding:22px 24px;box-shadow:var(--shadow);transform-style:preserve-3d;will-change:transform}
.testi-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.testi-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;flex:none;background:#e4ecff;display:grid;place-items:center;font-weight:800;color:var(--blue)}
.testi-avatar img{width:100%;height:100%;object-fit:cover}
.testi-head b{display:block;font-size:14px}
.testi-head small{font-size:12px;color:#61708e}
.testi-card>p{font-size:13.5px;line-height:1.7;color:#33405f;margin:0 0 10px}
.stars{color:var(--blue);letter-spacing:3px;font-size:14px}

/* ---------- download ---------- */
.download-section{margin:0 62px 55px;min-height:340px;border-radius:28px;overflow:hidden;position:relative;background:linear-gradient(105deg,#1757f5,#2f7cff,#1552e8,#2f7cff);background-size:250% 250%;animation:dlBg 14s ease-in-out infinite alternate;color:#fff;display:grid;grid-template-columns:42% 58%;align-items:center;padding:38px 48px;box-shadow:0 22px 42px rgba(21,87,246,.20)}
@keyframes dlBg{0%{background-position:0% 40%}100%{background-position:100% 60%}}
.download-section.no-art{grid-template-columns:1fr;text-align:center;padding:48px}
.download-section.no-art .download-copy p{max-width:520px;margin-inline:auto}
.download-section.no-art .store-buttons{justify-content:center}
.dl-glow{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(430px circle at var(--dx,75%) var(--dy,40%),rgba(255,255,255,.16),transparent 62%)}
.dl-shine{position:absolute;top:-10%;bottom:-10%;left:-28%;width:16%;z-index:3;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.15),transparent);transform:skewX(-18deg);animation:dlShine 8s ease-in-out infinite}
@keyframes dlShine{0%,55%{left:-28%}80%,100%{left:128%}}
/* birds gliding across the banner sky */
.bird{position:absolute;left:-70px;z-index:3;color:rgba(255,255,255,.85);pointer-events:none;animation:birdFly var(--bdur,24s) linear infinite;animation-delay:var(--bdel,0s)}
.bird svg{width:var(--bsz,24px);height:auto;display:block;animation:birdFlap .65s ease-in-out infinite}
@keyframes birdFly{0%{transform:translate(0,0);opacity:0}5%{opacity:1}92%{opacity:1}100%{transform:translate(1560px,var(--bdy,-46px));opacity:0}}
@keyframes birdFlap{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.4)}}
.bird-1{top:14%;--bdur:23s;--bdy:-40px;--bsz:24px}
.bird-2{top:27%;--bdur:32s;--bdel:7s;--bdy:-24px;--bsz:15px;color:rgba(255,255,255,.6)}
.bird-3{top:8%;--bdur:27s;--bdel:14s;--bdy:26px;--bsz:19px;color:rgba(255,255,255,.72)}
/* soft chat-emoji bubbles rising through the banner */
.dl-rise{position:absolute;bottom:-26px;z-index:2;pointer-events:none;opacity:0;animation:riseUp var(--rdur,5.5s) linear forwards}
@keyframes riseUp{0%{transform:translate(0,0) scale(.6);opacity:0}12%{opacity:.5}75%{opacity:.4}100%{transform:translate(var(--rx,12px),-300px) scale(1.1);opacity:0}}
.download-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 25%,rgba(255,255,255,.18),transparent 28%)}
.download-copy{position:relative;z-index:4}
.download-copy h2{font-size:34px;line-height:1.12;margin:0 0 15px}
.download-copy p{max-width:370px;line-height:1.65;color:#e7efff;margin:0 0 24px}
.store-buttons{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.store-badge{height:54px;min-width:142px;padding:7px 12px;border-radius:8px;background:#05070c;color:#fff;display:flex;gap:9px;align-items:center;font-weight:700;font-size:13px;transition:transform .25s,box-shadow .25s;will-change:transform}
.store-badge:hover{transform:translateY(-4px);box-shadow:0 14px 26px rgba(3,10,30,.4)}
.store-badge small{font-size:8px;display:block;font-weight:500}
.store-badge svg{width:24px;height:24px;flex:none}
/* Web app: same badge shape as the stores, brand colours so the
   "no install" option reads as a first-class choice, not a footnote. */
.web-badge{background:linear-gradient(135deg,var(--blue,#1557f6),#00c8ff);color:#fff}
.web-badge svg{stroke-width:1.9}
.web-badge:hover{box-shadow:0 14px 26px rgba(21,87,246,.42)}

.qr{width:58px;height:58px;border:5px solid #fff;background:#fff;color:#111;border-radius:5px;display:grid;place-items:center;overflow:hidden}
.qr img{width:100%;height:100%;object-fit:cover}
.qr-pattern{font-size:37px;line-height:1}
.dl-art-wrap{position:absolute;right:-10px;bottom:-50px;width:760px;height:430px;z-index:2;will-change:transform}
.download-art{width:100%;height:100%;object-fit:contain}
/* live banner bubbles (replace the old baked-in ones; texts cycle via JS) */
.dlb{position:absolute;z-index:4;background:#fff;color:var(--blue);font-weight:800;font-size:13.5px;padding:8px 14px;border-radius:16px;box-shadow:0 10px 24px rgba(5,15,50,.32);white-space:nowrap;display:none}
.dlb:not(:empty){display:inline-block}
.dlb-1{left:24%;top:14%;border-bottom-right-radius:5px}
.dlb-2{left:21%;top:43%;border-bottom-right-radius:5px}
.dlb-3{left:23%;top:64%;border-bottom-right-radius:5px}
.dlb-4{left:62%;top:22%;border-bottom-left-radius:5px}
.dl-spark{position:absolute;z-index:5;color:#fff;font-size:15px;opacity:.8}
.dls-1{right:30%;top:12%}.dls-2{right:12%;bottom:16%}

/* ---------- blog preview (extra content) ---------- */
.blog-preview{padding:5px 64px 55px}
.blog-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.blog-head h2{font-size:30px;letter-spacing:-.6px;margin:0}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.blog-card{background:#fff;border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:box-shadow .3s;transform-style:preserve-3d;will-change:transform}
.blog-card:hover{box-shadow:0 24px 52px rgba(24,73,166,.16)}
.blog-cover{aspect-ratio:16/8.5;background:linear-gradient(135deg,#dbe9ff,#eef5ff);display:grid;place-items:center;overflow:hidden}
.blog-cover img{width:100%;height:100%;object-fit:cover;transition:transform .55s}
.blog-card:hover .blog-cover img{transform:scale(1.07)}
.blog-cover span{font-size:34px}
.blog-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:7px;flex:1}
.blog-body time{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7385a8}
.blog-body h3{font-size:15.5px;line-height:1.35;margin:0}
.blog-body p{font-size:12.5px;line-height:1.6;color:#62708b;margin:0;flex:1}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:1fr 1.4fr;gap:70px;padding-top:5px;padding-bottom:60px;align-items:start}
.about p{font-size:16px;margin-top:32px}

/* ---------- support / contact (extra content) ---------- */
.support{padding:0 74px 60px;display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:start}
.support h2{font-size:30px;letter-spacing:-.6px;margin:0 0 16px}
.support .sub{font-size:14px;line-height:1.75;color:#5e6c88;margin:0 0 20px}
.support-mail{display:inline-flex;align-items:center;gap:9px;color:var(--blue);font-weight:800;font-size:14px}
.support-mail svg{width:20px;height:20px}
.support-form{background:var(--soft);border:1px solid var(--border);border-radius:24px;padding:26px;display:grid;gap:13px;box-shadow:var(--shadow)}
.support-form label{display:grid;gap:5px;font-size:12.5px;font-weight:700;color:#33405f}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.support-form input,.support-form textarea{font:inherit;font-size:14px;padding:11px 14px;border:1.5px solid var(--border);border-radius:12px;background:#fff;transition:border .25s,box-shadow .25s;resize:vertical;width:100%}
.support-form input:focus,.support-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(21,87,246,.12)}
.support-form .btn{justify-self:start}
/* Spam trap: off-screen for people, still a normal fillable input to a bot.
   display:none would work too, but bots have learned to skip that. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* The answer is two digits at most - a full-width box invites an essay. */
.support-form .captcha input{max-width:110px;letter-spacing:.08em}
.flash{padding:11px 15px;border-radius:12px;font-size:13px;font-weight:700}
.flash-success{background:#e5f7ec;color:#12784a}
.flash-error{background:#fdeaea;color:#b3312f}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--border);padding:34px 65px;display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:28px;background:#fbfdff}
.footer-brand img{width:185px}
.footer-links{display:flex;gap:28px;justify-content:center;font-size:13px;color:#53617a}
.footer-links a{transition:.2s}
.footer-links a:hover{color:var(--blue)}
footer p{font-size:11px;color:#7a879d;margin:0}

/* ---------- blog pages ---------- */
.page-hero{padding:60px 74px 30px;position:relative}
.page-hero h1{font-size:42px;letter-spacing:-1.6px;margin:0 0 10px}
.page-hero p{color:#5e6c88;max-width:60ch;margin:0}
.crumb{display:inline-block;color:var(--blue);font-weight:800;font-size:13px;margin-bottom:14px}
.blog-listing{padding:20px 64px 60px}
.pagination{display:flex;gap:8px;justify-content:center;margin-top:30px}
.pagination a{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);font-weight:700;font-size:13px;transition:.2s}
.pagination a:hover{border-color:var(--blue);color:var(--blue)}
.pagination a.active{background:var(--blue);border-color:var(--blue);color:#fff}
.post-wrap{padding:10px 74px 60px}
.post-cover{border-radius:22px;box-shadow:var(--shadow);margin-bottom:32px;max-height:420px;width:100%;object-fit:cover}
.prose{max-width:760px;font-size:16px;line-height:1.8;color:#2b3a63}
.prose p{margin:16px 0}
.prose h2,.prose h3,.prose h4{color:var(--text);margin:30px 0 10px;letter-spacing:-.4px}
.prose ul,.prose ol{margin:16px 0 16px 22px}
.prose li{margin:7px 0}
.prose a{color:var(--blue);font-weight:700}
.post-meta{font-size:12.5px;color:#7385a8;font-weight:700}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.22,.9,.34,1)}
.reveal.fade-up{transform:translateY(38px)}
.reveal.fade-right{transform:translateX(-46px)}
.reveal.fade-left{transform:translateX(46px)}
.reveal.zoom-in{transform:scale(.9)}
.reveal.shown{opacity:1;transform:none}
.d-1{transition-delay:.1s}.d-2{transition-delay:.2s}.d-3{transition-delay:.3s}.d-4{transition-delay:.4s}.d-5{transition-delay:.5s}

/* ---------- progress bar + to-top ---------- */
.progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--blue),#2ec5ff);z-index:1001}
.to-top{position:fixed;right:22px;bottom:22px;z-index:900;width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:var(--blue);color:#fff;font-size:17px;box-shadow:0 10px 26px rgba(21,87,246,.4);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .3s,transform .3s}
.to-top.visible{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:#0b3fd0}

/* ---------- ripple ---------- */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:ripple .6s ease-out forwards;pointer-events:none}
@keyframes ripple{to{transform:scale(3.2);opacity:0}}

/* Some mobile browsers (Samsung Internet, Chrome "Auto dark theme") repaint
   light pages dark. We are a light-only design — opt out and re-assert the
   real colours so the site never renders black on phones. */
@media (prefers-color-scheme: dark){
  html{background:#edf4ff}
  body{background:#edf4ff;color:var(--text)}
  .site-shell,.feature-card,.fx-card,.community-card,.testi-card,.blog-card,.dlb{background:#fff}
  .nav{background:rgba(255,255,255,.92)}
  footer{background:#fbfdff}
  .support-form{background:var(--soft)}
  .support-form input,.support-form textarea{background:#fff;color:var(--text)}
}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .float-a,.float-b,.float-c,.sparkle,.bird,.bird svg,.dl-shine,.download-section,.dl-rise{animation:none!important}
  .bird,.dl-shine{display:none}
  html{scroll-behavior:auto}
}

/* ============================================================
   Responsive (base design breakpoints + additions)
   ============================================================ */
@media(max-width:1100px){
  .site-header{padding:0 30px;grid-template-columns:170px 1fr auto auto;gap:12px}
  .nav{gap:20px}
  .section-pad{padding-left:42px;padding-right:42px}
  .hero{grid-template-columns:48% 52%;min-height:630px}
  .hero h1{font-size:48px}
  .hero-logo{width:380px}
  .phones{right:-10px;width:520px}
  .friends-wrap{left:-80px;width:390px}
  .features{padding-left:38px;padding-right:38px}
  .feature-card{padding:18px;gap:12px}
  .stats-strip{margin-left:38px;margin-right:38px}
  .fx-section{padding-left:38px;padding-right:38px}
  .fx-grid{grid-template-columns:1fr 1fr}
  .community-section{grid-template-columns:1fr 1.5fr}
  .reviews{grid-column:1/-1}
  .testi-card{max-width:560px;margin:0 auto}
  .download-section{margin-left:40px;margin-right:40px}
  .dl-art-wrap{right:-90px;width:690px}
  .blog-preview{padding-left:38px;padding-right:38px}
  .support{padding-left:42px;padding-right:42px;grid-template-columns:1fr;gap:26px}
  .page-hero,.post-wrap{padding-left:42px;padding-right:42px}
  .blog-listing{padding-left:38px;padding-right:38px}
}
@media(max-width:820px){
  .site-shell{width:100%;margin:0;border:0;border-radius:0}
  .site-header{min-height:78px;padding:10px 20px;grid-template-columns:1fr auto auto}
  .brand img{width:160px;height:56px}
  .header-cta{display:none}
  .nav-toggle{display:block;justify-self:end}
  .nav{display:none;position:absolute;left:14px;right:14px;top:72px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow);flex-direction:column;gap:4px}
  .nav.open{display:flex}
  .nav a{padding:10px 12px}
  .lang-switch{justify-self:end}
  .section-pad{padding-left:22px;padding-right:22px}
  .hero{display:block;padding-top:28px;padding-bottom:0;min-height:auto}
  .hero-copy{padding-bottom:20px}
  .hero-logo{width:310px;height:90px;margin-bottom:14px}
  .hero h1{font-size:42px;letter-spacing:-1.6px}
  .hero-copy>p{font-size:16px}
  .hero-visual{height:560px;margin:0 -22px}
  .hero-bg{right:-120px;width:790px}
  .phones{right:0;width:520px}
  .friends-wrap{left:-10px;width:330px}
  .features{grid-template-columns:1fr 1fr;padding:14px 20px 44px;margin:0}
  .stats-strip{margin:0 20px 40px;grid-template-columns:1fr 1fr;padding:22px}
  .fx-section{padding:0 20px 44px}
  .community-section{display:block;padding-top:20px}
  .community-copy{margin-bottom:22px}
  .reviews{display:block;margin-top:30px}
  .download-section{margin:0 20px 38px;display:block;padding:30px 26px 350px}
  .dl-art-wrap{width:690px;right:50%;transform:translateX(50%);bottom:-85px}
  .blog-preview{padding:0 20px 44px}
  .blog-grid{grid-template-columns:1fr}
  .about{display:block}
  .about p{margin-top:0}
  .support{padding:0 22px 44px}
  .form-row{grid-template-columns:1fr}
  footer{grid-template-columns:1fr;text-align:center}
  .footer-brand img{margin:auto}
  .footer-links{flex-wrap:wrap;justify-content:center}
  .footer-links,footer p{justify-self:center}
  .page-hero{padding:26px 22px 10px}
  .page-hero h1{font-size:32px}
  .post-wrap,.blog-listing{padding:10px 22px 44px}
}
@media(max-width:520px){
  .hero h1{font-size:36px;white-space:normal}
  .hero-actions{flex-direction:column;align-items:stretch}
  .social-proof{align-items:flex-start}
  .hero-visual{height:450px}
  .phones{width:430px;top:-5px;right:-80px}
  .friends-wrap{width:280px;left:-45px}
  .hero-bg{width:690px}
  .features{grid-template-columns:1fr}
  .feature-card{min-height:120px}
  .stats-strip{grid-template-columns:1fr 1fr}
  .fx-grid{grid-template-columns:1fr}
  .community-grid{grid-template-columns:1fr 1fr}
  .download-section{padding-bottom:285px}
  .download-copy h2{font-size:29px}
  .store-buttons{flex-wrap:wrap}
  .dl-art-wrap{width:550px}
  .community-copy h2,.reviews h2,.about h2,.support h2{font-size:27px}
}

/* footer legal links */
.footer-legal{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-bottom:8px;font-size:12px}
.footer-legal a{color:#53617a;transition:.2s}
.footer-legal a:hover{color:var(--blue)}
@media(max-width:820px){footer .footer-legal{justify-self:center}}

/* privacy policy pulled from the chat server, restyled to our theme */
.prose.policy h2{font-size:20px;margin:34px 0 10px;letter-spacing:-.3px}
.prose.policy h3{font-size:16px;margin:24px 0 8px}
.prose.policy .muted{font-size:13px;color:#7385a8;margin-top:-6px}
.prose.policy .card{background:var(--soft);border:1px solid var(--border);border-left:4px solid var(--blue);
  border-radius:14px;padding:16px 18px;margin:22px 0;font-size:15px;line-height:1.7}
.prose.policy ul,.prose.policy ol{margin:14px 0 14px 22px}
.prose.policy li{margin:7px 0}
.prose.policy table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px}
.prose.policy th,.prose.policy td{border:1px solid var(--border);padding:9px 12px;text-align:left}
.prose.policy th{background:var(--soft);font-weight:700}

/* ---------- hero v2: Sinhela Keyboard joins the chat app ---------- */
.ico-win,.ico-phone{width:20px;height:20px;flex:none}
.hero-pill{display:inline-block;background:#e9f1ff;color:var(--blue);font-weight:700;font-size:14px;padding:8px 16px;border-radius:12px;margin:0 0 20px}
.hero-v2 .hero-logo{margin-bottom:16px}
.hero-v2 .hero-actions{flex-direction:column;align-items:flex-start;gap:12px}
.hero-v2 .hero-actions .btn{min-height:54px;padding:0 26px;font-size:16px}
.hero-platforms{display:flex;gap:28px;margin-top:22px;color:#33415f}
.hero-platforms span{display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center;justify-content:start;font-size:13px}
.hero-platforms svg{width:26px;height:26px;grid-row:span 2;color:var(--blue)}
.hero-platforms b{font-weight:700;line-height:1.2}
.hero-platforms small{color:var(--muted);font-size:11.5px;line-height:1.2}
.hero-v2 .social-proof{margin-top:20px}
.hero-v2 .hero-copy{padding-bottom:40px}
.kb-laptop{position:absolute;left:-2%;top:10px;width:66%;z-index:3;filter:drop-shadow(0 26px 40px rgba(13,40,110,.20))}
.hero-v2 .phones{right:-2%;top:150px;width:54%;height:460px}
.hero-v2 .friends-wrap{left:-16%;width:56%}
.kb-badge{position:absolute;left:12%;top:-22px;z-index:9;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:12px 20px 12px 16px;box-shadow:0 14px 34px rgba(16,33,75,.14)}
.kb-badge .ico-win{width:34px;height:34px;color:var(--blue)}
.kb-badge span{display:grid}
.kb-badge b{color:var(--blue);font-size:17px;font-weight:800;line-height:1.25}
.kb-badge small{color:#33415f;font-size:12.5px}
.say{position:absolute;z-index:9;max-width:230px;background:linear-gradient(135deg,var(--blue),#0b65ff);color:#fff;font-weight:700;font-size:14px;line-height:1.45;padding:12px 16px;border-radius:16px;box-shadow:0 12px 26px rgba(21,87,246,.28)}
.say:after{content:"";position:absolute;bottom:-9px;width:18px;height:18px;background:#0e60fb;clip-path:polygon(0 0,100% 0,50% 100%)}
.say-pc{right:0;top:36%}.say-pc:after{left:26px}
.say-chat{left:1%;top:47%}
.hero-v2 .hero-copy>p{max-width:500px}.say-chat:after{left:30px}
/* seven links plus the language switch: keep each on one line */
.nav{gap:clamp(12px,1.6vw,26px)}.nav a{white-space:nowrap}
.site-header{gap:14px}
.hero-v2 .bubble-two{display:none}

/* ---------- Sinhela Keyboard section ---------- */
.nav a.nav-kb{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-weight:700}
.nav a.nav-kb svg{width:19px;height:19px}
.kb-section{display:grid;grid-template-columns:46% 54%;align-items:center;gap:20px;padding-top:70px;padding-bottom:70px;background:linear-gradient(180deg,#fff,#f4f8ff 60%,#fff)}
.kb-copy h2{font-size:38px;line-height:1.14;letter-spacing:-1px;margin:10px 0 16px}
.kb-copy>p{font-size:17px;line-height:1.7;color:#495976;margin:0 0 18px;max-width:540px}
.kb-list{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px}
.kb-list li{position:relative;padding-left:32px;font-size:15px;line-height:1.5;color:#22304f}
.kb-list li:before{content:"✓";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:#e9f1ff;color:var(--blue);font-weight:800;font-size:13px;display:grid;place-items:center}
.kb-version,.kb-note{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:12px;max-width:520px}
.kb-note{margin-top:6px;font-size:12px}
.kb-art{position:relative;min-height:420px}
.kb-art-sky{position:absolute;right:-30px;bottom:0;width:70%;opacity:.9}
.kb-art-laptop{position:relative;z-index:2;width:86%;margin-top:30px;filter:drop-shadow(0 30px 46px rgba(13,40,110,.22))}

/* ---------- sign-up ---------- */
.signup{display:grid;place-items:center;padding-top:60px;padding-bottom:80px;background:radial-gradient(circle at 50% 0,#eff6ff 0 30%,transparent 65%)}
.signup-card{width:min(480px,100%);background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:38px 36px}
.signup-card h1{font-size:28px;line-height:1.2;letter-spacing:-.6px;margin:0 0 10px}
.signup-card>p{color:#495976;line-height:1.6;margin:0 0 22px;font-size:15px;overflow-wrap:anywhere}
.signup-form{display:grid;gap:14px}
.signup-form label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#22304f}
.signup-form input{height:48px;border:1px solid #cfdcf7;border-radius:12px;padding:0 14px;font:inherit;font-weight:500;background:#fff;color:var(--text)}
.signup-form input:focus{outline:2px solid #9dbcff;border-color:var(--blue)}
.signup-form .btn{width:100%;margin-top:6px}
.signup-have{margin:18px 0 0!important;font-size:13.5px!important;text-align:center}
.signup-have a,.signup-alt button{color:var(--blue);font-weight:700}
.signup-alt{margin-top:14px;text-align:center}
.signup-alt button{background:none;border:0;font:inherit;font-weight:700;cursor:pointer;font-size:13.5px}
.signup-actions{display:grid;gap:12px}
.signup-tick{width:56px;height:56px;border-radius:50%;background:#e6f8ee;color:#12a150;font-size:28px;font-weight:800;display:grid;place-items:center;margin-bottom:16px}
.signup .flash{margin:0 0 16px}

@media(max-width:1100px){
.kb-copy h2{font-size:32px}
.kb-badge{left:6%;padding:10px 16px 10px 12px}.kb-badge b{font-size:15px}
.say{font-size:12.5px;max-width:190px;padding:10px 13px}
}
@media(max-width:820px){
.hero-v2 .hero-actions{align-items:stretch}
.hero-v2 .hero-visual{height:600px;margin-top:34px}
.kb-laptop{left:2%;width:74%}
.hero-v2 .phones{right:0;top:170px;width:58%;height:420px}
.hero-v2 .friends-wrap{left:-4%;width:60%}
.kb-badge{left:5%;top:-26px}
.say-pc{right:3%;top:33%}.say-chat{left:4%;top:52%}
.kb-section{grid-template-columns:1fr;padding-top:46px;padding-bottom:46px}
.kb-art{min-height:0}.kb-art-laptop{width:100%;margin-top:10px}.kb-art-sky{right:0;width:60%}
.signup-card{padding:28px 22px}
}
@media(max-width:520px){
.hero-platforms{gap:18px}
.hero-v2 .hero-visual{height:470px}
.hero-v2 .phones{top:130px;height:330px}
.say{font-size:11.5px;max-width:160px;padding:8px 11px}
.kb-badge small{display:none}
.kb-copy h2{font-size:28px}
}

/* ---------- my account ---------- */
.account{display:block}
.account-head{max-width:980px;margin:0 auto 22px}
.account-head h1{font-size:32px;letter-spacing:-.8px;margin:0 0 6px}
.account-head p{color:#495976;margin:0;overflow-wrap:anywhere}.account-head a{color:var(--blue);font-weight:700}
.account-grid{max-width:980px;margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:start}
.account .signup-card{width:auto}
.account .signup-card h2{font-size:22px;line-height:1.25;margin:8px 0 10px}
.account-steps{margin:18px 0 0;padding-left:20px;display:grid;gap:8px;font-size:14px;line-height:1.5;color:#22304f}
@media(max-width:820px){.account-grid{grid-template-columns:1fr}}

/* ---------- header fits every language ----------
   Tamil labels are about a third longer than English ones. The middle column
   may shrink, nothing wraps, and the type steps down before anything overlaps. */
@media(min-width:821px){
.site-header{grid-template-columns:auto minmax(0,1fr) auto auto}
.header-cta{white-space:nowrap}
.lang-switch{flex:none}
html[lang="ta"] .nav{font-size:12px;gap:clamp(6px,.8vw,12px)}
html[lang="ta"] .site-header{padding:0 28px;gap:10px}
html[lang="ta"] .nav a.nav-kb{gap:4px}html[lang="ta"] .nav a.nav-kb svg{width:15px;height:15px}
html[lang="ta"] .header-cta{font-size:13px;padding:0 14px}
html[lang="ta"] .lang-switch a{padding:6px 9px;font-size:12px}
html[lang="ta"] .brand img{max-width:150px}
}
@media(min-width:821px) and (max-width:1320px){
.nav{font-size:13px;gap:clamp(8px,1.1vw,16px)}
.header-cta{font-size:13px;padding:0 14px}
html[lang="ta"] .header-cta{display:none}
}
@media(min-width:821px) and (max-width:1100px){
.header-cta{display:none}
html[lang="ta"] .nav{font-size:11px;gap:5px}html[lang="ta"] .brand img{max-width:110px}
}
/* fewer links on narrower desktops: Communities, Blog and About stay reachable
   from the footer; Home, Features, Keyboard, Support and Sign in stay here */
@media(min-width:821px) and (max-width:1220px){
.nav a:nth-child(4),.nav a:nth-child(5),.nav a:nth-child(6){display:none}
}
@media(min-width:821px) and (max-width:940px){
.nav a:nth-child(2){display:none}
.site-header{padding:0 20px}
}
