/* ══════════════════════════════════════════════════════════
   Azzetech — public site design system
   One stylesheet for home, service pages, blog and articles.
   ══════════════════════════════════════════════════════════ */
:root{
  --bg:#05070C; --bg-2:#080B12;
  --surface:rgba(255,255,255,.028); --surface-2:rgba(255,255,255,.05);
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16);
  --text:#EAF0F7; --muted:#8593A8; --dim:#5C6779;
  --accent:#25D366; --cyan:#3DE8FF; --violet:#8B5CF6;
  --amber:#FFB020; --red:#FF5F6D;
  --r:16px; --max:1180px;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--text);
  font-family:'Space Grotesk',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}

/* ── AMBIENT ───────────────────────────────────────────── */
.aurora{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.aurora::before{
  content:"";position:absolute;inset:-40%;
  background:
    radial-gradient(46% 38% at 22% 14%, rgba(37,211,102,.16), transparent 62%),
    radial-gradient(42% 36% at 82% 26%, rgba(61,232,255,.13), transparent 64%),
    radial-gradient(50% 42% at 52% 88%, rgba(139,92,246,.11), transparent 66%);
  filter:blur(46px);animation:drift 26s ease-in-out infinite alternate;
}
@keyframes drift{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(-2.5%,2%,0) scale(1.07)}
  100%{transform:translate3d(2.5%,-2%,0) scale(1.02)}
}
.grid-bg{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 78% 62% at 50% 32%,#000 38%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 32%,#000 38%,transparent 100%);
}

/* ── PRIMITIVES ────────────────────────────────────────── */
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.narrow{max-width:760px}
section{padding:96px 0;position:relative}
section.tight{padding:64px 0}
h1,h2,h3,h4{line-height:1.12;letter-spacing:-.033em;font-weight:600}
h1{font-size:clamp(2.1rem,5.2vw,3.85rem);letter-spacing:-.042em}
h2{font-size:clamp(1.7rem,3.6vw,2.6rem);margin-bottom:18px}
h3{font-size:1.13rem;letter-spacing:-.02em;margin-bottom:9px}
p{color:var(--muted)}
a{color:var(--cyan);text-decoration:none}
.lead{font-size:clamp(1.02rem,1.5vw,1.19rem);max-width:660px;line-height:1.68}

.tag{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.19em;text-transform:uppercase;
  color:var(--accent);margin-bottom:22px;
  padding:6px 13px;border:1px solid rgba(37,211,102,.26);border-radius:100px;
  background:rgba(37,211,102,.06);
}
.tag::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 9px var(--accent);animation:pulse 2.2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}
.tag.cy{color:var(--cyan);border-color:rgba(61,232,255,.26);background:rgba(61,232,255,.06)}
.tag.cy::before{background:var(--cyan);box-shadow:0 0 9px var(--cyan)}
.tag.am{color:var(--amber);border-color:rgba(255,176,32,.26);background:rgba(255,176,32,.06)}
.tag.am::before{background:var(--amber);box-shadow:0 0 9px var(--amber)}
.tag.vi{color:var(--violet);border-color:rgba(139,92,246,.3);background:rgba(139,92,246,.07)}
.tag.vi::before{background:var(--violet);box-shadow:0 0 9px var(--violet)}

.grad{
  background:linear-gradient(102deg,var(--accent) 0%,var(--cyan) 52%,var(--violet) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  background-size:200% auto;animation:shift 7s linear infinite;
}
@keyframes shift{to{background-position:200% center}}

.btn{
  position:relative;display:inline-flex;align-items:center;gap:10px;
  background:var(--accent);color:#04220F;font-weight:700;
  padding:15px 30px;border-radius:12px;text-decoration:none;font-size:1rem;
  border:none;cursor:pointer;font-family:inherit;overflow:hidden;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 34px -8px rgba(37,211,102,.55)}
.btn::after{
  content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-22deg);transition:left .6s ease;
}
.btn:hover::after{left:150%}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line-2);box-shadow:none}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:none}
.btn.cy{background:var(--cyan);color:#032630}
.btn.cy:hover{box-shadow:0 10px 34px -8px rgba(61,232,255,.55)}
.btn.sm{padding:11px 20px;font-size:.9rem}
.btn-row{display:flex;gap:13px;flex-wrap:wrap;margin-top:34px}
.note{font-size:.85rem;color:var(--dim);margin-top:17px}

.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:27px;position:relative;overflow:hidden;
  backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);
  transition:border-color .3s,transform .3s cubic-bezier(.2,.8,.2,1),background .3s;
}
.card:hover{border-color:var(--line-2);transform:translateY(-3px);background:var(--surface-2)}
.card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
  opacity:0;transition:opacity .3s;
}
.card:hover::before{opacity:1}

.grid{display:grid;gap:17px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){.g2,.g3{grid-template-columns:1fr}}
@media(max-width:560px){.g4{grid-template-columns:1fr}}

.ico{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  font-size:1.15rem;margin-bottom:17px;
  background:linear-gradient(140deg,rgba(37,211,102,.16),rgba(61,232,255,.09));
  border:1px solid rgba(37,211,102,.2);
}

/* ── REVEAL ────────────────────────────────────────────── */
.rv{opacity:0;transform:translateY(26px);
  transition:opacity .75s cubic-bezier(.2,.8,.2,1),transform .75s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .aurora::before,.grad,.tag::before,.wa::before{animation:none}
  html{scroll-behavior:auto}
}

/* ── NAV ───────────────────────────────────────────────── */
nav.topbar{
  position:sticky;top:0;z-index:60;
  background:rgba(5,7,12,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s;
}
nav.topbar.stuck{border-bottom-color:var(--line);background:rgba(5,7,12,.9)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:70px;gap:18px}
.logo{
  font-weight:700;font-size:1.16rem;color:var(--text);text-decoration:none;
  letter-spacing:-.035em;display:flex;align-items:center;gap:9px;flex-shrink:0;
}
.logo-dot{
  width:9px;height:9px;border-radius:50%;
  background:linear-gradient(140deg,var(--accent),var(--cyan));
  box-shadow:0 0 13px rgba(37,211,102,.75);
}
.nav-links{display:flex;gap:4px;align-items:center}
.nav-links a{
  color:var(--muted);text-decoration:none;font-size:.92rem;padding:8px 13px;
  border-radius:9px;transition:color .2s,background .2s;white-space:nowrap;
}
.nav-links a:hover,.nav-links a.on{color:var(--text);background:var(--surface-2)}
.nav-cta{background:var(--accent)!important;color:#04220F!important;font-weight:700;padding:9px 18px!important}
.nav-admin{color:var(--violet)!important;border:1px solid rgba(139,92,246,.4);padding:7px 14px!important}
.nav-admin:hover{background:rgba(139,92,246,.12)!important}
@media(max-width:900px){.nav-links a:not(.nav-cta){display:none}}

/* ── PAGE HEADER ───────────────────────────────────────── */
.phead{padding:72px 0 44px}
.phead h1{margin-bottom:18px}
.crumbs{
  font-family:var(--mono);font-size:.74rem;color:var(--dim);
  margin-bottom:20px;letter-spacing:.06em;
}
.crumbs a{color:var(--dim)}
.crumbs a:hover{color:var(--accent)}

/* ── PRICING ───────────────────────────────────────────── */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px;align-items:start}
@media(max-width:940px){.plans{grid-template-columns:1fr;max-width:440px;margin-inline:auto}}
.plan{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:30px;display:flex;flex-direction:column;position:relative;
  backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);
  transition:border-color .3s,transform .3s;
}
.plan:hover{border-color:var(--line-2);transform:translateY(-3px)}
.plan.hot{
  border-color:rgba(37,211,102,.42);
  background:linear-gradient(168deg,rgba(37,211,102,.07),var(--surface));
  box-shadow:0 22px 60px -26px rgba(37,211,102,.42);
}
@media(min-width:941px){.plan.hot{transform:scale(1.035)}.plan.hot:hover{transform:scale(1.035) translateY(-3px)}}
.badge{
  position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  background:linear-gradient(100deg,var(--accent),var(--cyan));color:#04220F;
  font-family:var(--mono);font-size:.63rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;padding:5px 15px;border-radius:100px;white-space:nowrap;
}
.amt{font-size:2.6rem;font-weight:700;letter-spacing:-.045em;margin:15px 0 3px}
.amt sub{font-size:.9rem;font-weight:400;color:var(--dim);vertical-align:baseline}
.plan ul{list-style:none;margin:22px 0 28px;display:grid;gap:11px}
.plan li{font-size:.92rem;color:var(--muted);display:flex;gap:11px;align-items:flex-start}
.chk{color:var(--accent);flex-shrink:0;font-size:.82rem;padding-top:3px}
.plan .btn{margin-top:auto;justify-content:center}
.anchor-note{text-align:center;margin-top:26px;font-size:.88rem;color:var(--dim)}

/* ── LOGO ──────────────────────────────────────────────── */
.logo{gap:7px}
.logo .mark{flex-shrink:0;display:block;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.logo:hover .mark{transform:translateY(-2px)}
.foot-col a.logo{display:flex}
.wordmark{font-weight:600;letter-spacing:-.045em;font-size:1.2rem;color:var(--text)}
.wordmark i{font-style:normal;color:var(--accent)}
@media(prefers-reduced-motion:reduce){.logo .mark{transition:none}.logo:hover .mark{transform:none}}

/* ── HOME: BLOG TEASER ─────────────────────────────────── */
.blog-teaser{
  display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:center;
  padding:36px 38px;border-radius:20px;
  background:linear-gradient(140deg,rgba(139,92,246,.09),rgba(61,232,255,.045));
  border:1px solid rgba(139,92,246,.24);
}
@media(max-width:880px){.blog-teaser{grid-template-columns:1fr;gap:28px;padding:28px 24px}}
.bt-copy{min-width:0}
.bt-list{list-style:none;display:grid;gap:2px}
.bt-list a{
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  padding:13px 15px;border-radius:11px;color:var(--text);
  transition:background .25s,transform .25s;
}
.bt-list a:hover{background:rgba(255,255,255,.05);transform:translateX(3px)}
.bt-cat{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;padding:4px 9px;border-radius:100px;white-space:nowrap;
  color:var(--c,var(--accent));
  border:1px solid color-mix(in srgb,var(--c,var(--accent)) 38%,transparent);
  background:color-mix(in srgb,var(--c,var(--accent)) 9%,transparent);
}
.bt-title{
  font-size:.95rem;font-weight:500;line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.bt-list a:hover .bt-title{color:var(--c,var(--accent))}
.bt-time{font-family:var(--mono);font-size:.72rem;color:var(--dim);white-space:nowrap}
@media(max-width:520px){
  .bt-list a{grid-template-columns:1fr;gap:7px}
  .bt-cat{justify-self:start}
  .bt-time{display:none}
}

/* ── BLOG: HEADER + CATEGORY NAV ───────────────────────── */
.blog-head{padding:64px 0 30px}
.blog-head h1{font-size:clamp(2.2rem,5vw,3.6rem)}
.cat-bar{display:flex;gap:9px;flex-wrap:wrap;margin:34px 0 4px}
.cat-pill{
  font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  padding:9px 16px;border-radius:100px;border:1px solid var(--line);
  color:var(--muted);transition:all .25s;background:var(--surface);
  display:inline-flex;align-items:center;gap:8px;
}
.cat-pill b{
  font-size:.66rem;opacity:.55;font-weight:500;
  padding:1px 6px;border-radius:20px;background:rgba(255,255,255,.08);
}
.cat-pill:hover{border-color:var(--line-2);color:var(--text);transform:translateY(-1px)}
.cat-pill.on{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:700}
.cat-pill.on b{background:rgba(0,0,0,.14);opacity:.75}

/* Category accents, used by pills and card badges */
.cat-local-seo{--c:#25D366} .cat-ai{--c:#3DE8FF}
.cat-web-dev{--c:#8B5CF6}   .cat-tech{--c:#FFB020}
.cat-pill.cat-local-seo:hover,.cat-pill.cat-ai:hover,
.cat-pill.cat-web-dev:hover,.cat-pill.cat-tech:hover{border-color:var(--c);color:var(--c)}

/* ── BLOG: CARDS ───────────────────────────────────────── */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px}
@media(max-width:980px){.pgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.pgrid{grid-template-columns:1fr}}

.feature-wrap{margin-top:30px}

.pcard{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  overflow:hidden;transition:border-color .35s,transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;
}
.pcard:hover{
  border-color:var(--line-2);transform:translateY(-4px);
  box-shadow:0 22px 48px -26px rgba(0,0,0,.9);
}
.pcard-media{
  position:relative;aspect-ratio:16/9;overflow:hidden;flex-shrink:0;
  display:grid;place-items:center;
}
.pcard-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
}
.pcard:hover .pcard-media img{transform:scale(1.05)}
.pcard-glyph{
  font-family:var(--mono);font-size:3.4rem;font-weight:700;
  color:rgba(255,255,255,.16);letter-spacing:-.04em;user-select:none;
}
.pcard-cat{
  position:absolute;top:13px;left:13px;
  font-family:var(--mono);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;padding:5px 11px;border-radius:100px;
  background:rgba(5,7,12,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  color:var(--c,var(--accent));border:1px solid color-mix(in srgb,var(--c,var(--accent)) 40%,transparent);
}
.pcard-body{padding:22px;display:flex;flex-direction:column;flex:1}
.pcard-meta{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.07em;color:var(--dim);
  margin-bottom:11px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;
}
.pcard-meta .dot{opacity:.5}
.pcard h3{font-size:1.12rem;line-height:1.32;margin-bottom:9px;transition:color .25s}
.pcard:hover h3{color:var(--c,var(--accent))}
.pcard p{font-size:.9rem;line-height:1.62;flex:1}
.pcard-more{
  font-family:var(--mono);font-size:.73rem;color:var(--dim);margin-top:16px;
  display:inline-flex;align-items:center;gap:7px;transition:color .25s;
}
.pcard-more i{font-style:normal;transition:transform .25s}
.pcard:hover .pcard-more{color:var(--c,var(--accent))}
.pcard:hover .pcard-more i{transform:translateX(4px)}

/* Featured: side-by-side on desktop, stacked on mobile */
.pcard-feature{flex-direction:row;align-items:stretch}
.pcard-feature .pcard-media{width:56%;aspect-ratio:auto;min-height:330px}
.pcard-feature .pcard-body{width:44%;padding:38px;justify-content:center}
.pcard-feature h3{font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.03em;margin-bottom:13px}
.pcard-feature p{font-size:1rem;flex:0}
.pcard-feature .pcard-glyph{font-size:6rem}
@media(max-width:860px){
  .pcard-feature{flex-direction:column}
  .pcard-feature .pcard-media{width:100%;aspect-ratio:16/9;min-height:0}
  .pcard-feature .pcard-body{width:100%;padding:24px}
}

.section-rule{
  display:flex;align-items:center;gap:18px;margin:56px 0 4px;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--dim);
}
.section-rule::after{content:"";flex:1;height:1px;background:var(--line)}

.cta-band{
  display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  padding:34px;border-radius:18px;
  background:linear-gradient(140deg,rgba(37,211,102,.1),rgba(61,232,255,.05));
  border:1px solid rgba(37,211,102,.26);
}

/* ── ARTICLE ───────────────────────────────────────────── */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;background:transparent}
.progress i{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--accent),var(--cyan),var(--violet));
}

.art-hero{position:relative;padding:70px 0 44px;overflow:hidden}
.art-hero:not(.has-cover)::before{
  content:"";position:absolute;inset:0;background:var(--catgrad);opacity:.14;
}
.art-hero.has-cover{padding:150px 0 46px;min-height:440px;display:flex;align-items:flex-end}
.art-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art-hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,7,12,.5) 0%,rgba(5,7,12,.82) 55%,var(--bg) 100%);
}
.art-hero-in{position:relative;max-width:820px}
.art-hero h1{font-size:clamp(2rem,4.6vw,3.3rem);margin-bottom:18px}
.art-standfirst{font-size:clamp(1.02rem,1.6vw,1.22rem);line-height:1.62;max-width:680px;color:var(--muted)}
.art-meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:26px;
  font-size:.88rem;color:var(--dim);
}
.art-meta b{color:var(--text);font-weight:600}
.art-meta .dot{opacity:.45}
.art-avatar{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  font-weight:700;font-size:.9rem;color:#04220F;flex-shrink:0;
  background:linear-gradient(140deg,var(--accent),var(--cyan));
}
.art-avatar.lg{width:52px;height:52px;font-size:1.3rem}

.article{max-width:730px;margin:0 auto;padding-top:44px}
.article-body{font-size:1.09rem;line-height:1.8}
.article-body p{color:#C6D1DF;margin:0 0 26px}
.article-body > p:first-of-type{font-size:1.18rem;line-height:1.72;color:#DAE3EE}
.article-body h2{
  font-size:clamp(1.4rem,2.6vw,1.75rem);margin:52px 0 18px;color:var(--text);
  letter-spacing:-.028em;position:relative;padding-left:18px;
}
.article-body h2::before{
  content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:3px;border-radius:3px;
  background:linear-gradient(180deg,var(--accent),var(--cyan));
}
.article-body h3{font-size:1.24rem;margin:38px 0 13px;color:var(--text)}
.article-body ul{margin:0 0 26px;padding-left:4px;list-style:none}
.article-body li{color:#C6D1DF;margin-bottom:11px;padding-left:24px;position:relative}
.article-body li::before{
  content:"";position:absolute;left:4px;top:.62em;width:6px;height:6px;border-radius:50%;
  background:var(--accent);opacity:.75;
}
.article-body strong{color:var(--text);font-weight:600}
.article-body em{color:#D9E2EE}
.article-body a{color:var(--cyan);border-bottom:1px solid rgba(61,232,255,.32)}
.article-body a:hover{border-bottom-color:var(--cyan)}
.article-body code{
  font-family:var(--mono);font-size:.86em;background:rgba(255,255,255,.07);
  padding:2px 7px;border-radius:5px;color:var(--cyan);
}
.article-body pre{
  background:rgba(0,0,0,.42);border:1px solid var(--line);border-radius:12px;
  padding:20px 22px;overflow-x:auto;margin:0 0 28px;
}
.article-body pre code{background:none;padding:0;color:#C6D1DF;font-size:.88rem;line-height:1.7}
.article-body blockquote{
  border-left:3px solid var(--accent);padding:2px 0 2px 24px;margin:32px 0;
  color:var(--text);font-size:1.14rem;line-height:1.65;font-style:italic;
}
.article-body hr{border:none;border-top:1px solid var(--line);margin:48px 0}

/* Media inside posts */
.post-figure{margin:36px 0}
.post-figure img{
  width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--line);
}
.post-figure figcaption{
  font-size:.85rem;color:var(--dim);text-align:center;margin-top:12px;line-height:1.55;
}
.post-video{
  position:relative;aspect-ratio:16/9;margin:36px 0;border-radius:14px;overflow:hidden;
  border:1px solid var(--line);background:#000;
}
.post-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Share + author */
.share{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin:44px 0 0;padding-top:26px;border-top:1px solid var(--line);
}
.share-label{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--dim);margin-right:4px;
}
.share-btn{
  font-size:.84rem;padding:8px 15px;border-radius:100px;
  border:1px solid var(--line);background:var(--surface);color:var(--muted);
  cursor:pointer;font-family:inherit;transition:all .22s;
}
.share-btn:hover{border-color:var(--accent);color:var(--accent)}
.share-btn.ok{border-color:var(--accent);color:var(--accent);background:rgba(37,211,102,.1)}

.author-box{
  display:flex;gap:20px;align-items:flex-start;margin:44px 0 0;padding:28px;
  border-radius:16px;background:var(--surface);border:1px solid var(--line);
}
.author-box h4{font-size:1rem;margin-bottom:7px;letter-spacing:-.01em}
.author-box p{font-size:.92rem;line-height:1.65;margin-bottom:12px}
.art-link{font-family:var(--mono);font-size:.78rem;color:var(--accent)}

.cta-inline{
  margin:52px 0 0;padding:32px;border-radius:16px;
  background:linear-gradient(140deg,rgba(37,211,102,.1),rgba(61,232,255,.05));
  border:1px solid rgba(37,211,102,.28);
}
.cta-inline h3{font-size:1.25rem;color:var(--text);margin-bottom:10px}
.cta-inline p{margin-bottom:20px;font-size:.98rem}

@media(prefers-reduced-motion:reduce){
  .pcard,.pcard-media img,.pcard-more i,.logo .mark{transition:none}
  .pcard:hover{transform:none}
}

/* ── AD SLOTS ──────────────────────────────────────────── */
.ad-slot{
  margin:46px auto;max-width:920px;min-height:92px;border-radius:13px;
  border:1px dashed var(--line);display:grid;place-items:center;
  font-family:var(--mono);font-size:.72rem;color:var(--dim);letter-spacing:.1em;
}
.ad-slot.live{border:none;min-height:0;display:block}

/* ── FAQ ───────────────────────────────────────────────── */
details{
  background:var(--surface);border:1px solid var(--line);border-radius:13px;
  padding:19px 24px;margin-bottom:11px;transition:border-color .25s;
}
details[open]{border-color:var(--line-2)}
summary{
  cursor:pointer;font-weight:500;font-size:1rem;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:18px;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";color:var(--accent);font-size:1.45rem;font-weight:300;
  transition:transform .28s;flex-shrink:0;line-height:1;
}
details[open] summary::after{transform:rotate(45deg)}
details p{margin-top:15px;font-size:.95rem}

/* ── FORM ──────────────────────────────────────────────── */
.form-wrap{
  background:linear-gradient(168deg,rgba(255,255,255,.045),rgba(255,255,255,.02));
  border:1px solid var(--line-2);border-radius:19px;padding:36px;margin-top:38px;
  backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);
}
@media(max-width:560px){.form-wrap{padding:24px}}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 17px}
@media(max-width:640px){.fgrid{grid-template-columns:1fr}}
.field{margin-bottom:18px}
label{
  display:block;font-size:.79rem;font-weight:500;margin-bottom:7px;color:var(--muted);
  font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;
}
input,textarea,select{
  width:100%;background:rgba(0,0,0,.32);border:1px solid var(--line);
  color:var(--text);padding:13px 15px;border-radius:11px;font-size:.97rem;
  font-family:inherit;transition:border-color .22s,box-shadow .22s,background .22s;
}
input:focus,textarea:focus,select:focus{
  outline:none;border-color:var(--accent);background:rgba(0,0,0,.5);
  box-shadow:0 0 0 3px rgba(37,211,102,.11);
}
textarea{min-height:92px;resize:vertical}
select option{background:#0B0F17}
.form-wrap .btn{width:100%;justify-content:center;margin-top:6px}
#thanks,#oops{display:none;border-radius:13px;padding:22px;margin-bottom:24px}
#thanks{background:linear-gradient(120deg,rgba(37,211,102,.14),rgba(61,232,255,.07));border:1px solid var(--accent)}
#thanks strong{color:var(--accent)}
#oops{background:rgba(255,95,109,.1);border:1px solid rgba(255,95,109,.5)}
#oops strong{color:var(--red)}

/* ── FOOTER ────────────────────────────────────────────── */
footer{padding:56px 0 40px;border-top:1px solid var(--line);margin-top:80px}
.foot-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
@media(max-width:760px){.foot-in{grid-template-columns:1fr;gap:26px}}
footer p,footer a{font-size:.88rem;color:var(--dim);text-decoration:none}
footer a:hover{color:var(--accent)}
.foot-col h4{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:14px;font-weight:500;
}
.foot-col a{display:block;margin-bottom:9px}

/* ── WHATSAPP FAB ──────────────────────────────────────── */
.wa{
  position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;
  background:var(--accent);display:grid;place-items:center;
  text-decoration:none;z-index:70;box-shadow:0 10px 34px -6px rgba(37,211,102,.6);
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.wa:hover{transform:scale(1.09) translateY(-2px)}
.wa::before{
  content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);
  animation:ring 2.4s ease-out infinite;
}
@keyframes ring{0%{transform:scale(1);opacity:.75}100%{transform:scale(1.65);opacity:0}}

/* ── MISC ──────────────────────────────────────────────── */
.empty-state{
  text-align:center;padding:70px 24px;border:1px dashed var(--line);
  border-radius:var(--r);color:var(--muted);
}
.pager{display:flex;gap:12px;justify-content:center;margin-top:44px}

/* ══════════════════════════════════════════════════════════
   CLIENT PORTAL
   ══════════════════════════════════════════════════════════ */
body.portal{background:var(--bg)}
.portal-main{padding:38px 22px 20px;max-width:1000px}

.p-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
  flex-wrap:wrap;margin-bottom:26px}
.p-head h1{font-size:clamp(1.6rem,3.4vw,2.2rem)}
.p-sub{color:var(--muted);font-size:.93rem;margin-top:4px}
.p-sub a{color:var(--muted)}
.p-sub a:hover{color:var(--accent)}

.p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.p-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:860px){.p-grid,.p-grid-2{grid-template-columns:1fr}}

.p-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;
  backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px)}
.p-card-h{display:flex;justify-content:space-between;align-items:center;gap:14px}
.p-card-h h2{font-size:1.02rem;margin:0;letter-spacing:-.015em}
.p-link{font-family:var(--mono);font-size:.76rem;color:var(--dim)}
.p-link:hover{color:var(--accent)}
.p-big{font-size:2.3rem;font-weight:700;letter-spacing:-.04em;line-height:1.1;margin-top:14px;
  background:linear-gradient(140deg,var(--accent),var(--cyan));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.p-unit{font-size:.85rem;font-weight:400;color:var(--dim);-webkit-text-fill-color:var(--dim)}
.p-note{color:var(--muted);font-size:.89rem;line-height:1.6}
.p-wa{display:inline-block;margin-top:16px;font-size:.85rem;color:var(--accent);
  font-family:var(--mono)}

.bar{height:8px;background:rgba(255,255,255,.07);border-radius:20px;overflow:hidden}
.bar i{display:block;height:100%;border-radius:20px;
  background:linear-gradient(90deg,var(--accent),var(--cyan));transition:width .6s}

.p-alert{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  padding:20px 24px;border-radius:14px;margin-bottom:20px;
  background:rgba(255,176,32,.07);border:1px solid rgba(255,176,32,.28)}
.p-alert strong{color:var(--amber)}
.p-alert p{font-size:.88rem;margin-top:5px;max-width:520px}

.pflash{padding:13px 18px;border-radius:11px;margin-bottom:20px;font-size:.92rem}
.pflash.ok{background:rgba(37,211,102,.1);border:1px solid rgba(37,211,102,.4);color:#9FF5C4}
.pflash.err{background:rgba(255,95,109,.1);border:1px solid rgba(255,95,109,.45);color:#F5C0C6}
.pflash.warn{background:rgba(255,176,32,.09);border:1px solid rgba(255,176,32,.4);color:#FFD79A}

/* Auth cards */
.auth-card{max-width:520px;margin:6vh auto;background:var(--surface);
  border:1px solid var(--line);border-radius:18px;padding:38px;
  backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px)}
@media(max-width:560px){.auth-card{padding:26px 22px;margin:3vh auto}}
.auth-card h1{font-size:1.6rem;margin-bottom:8px}
.auth-sub{color:var(--muted);font-size:.93rem;margin-bottom:24px}
.auth-alt{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);
  font-size:.9rem;color:var(--muted);text-align:center}
.ferr{display:block;font-size:.8rem;color:var(--red);margin-top:6px}
.fhint{display:block;font-size:.79rem;color:var(--dim);margin-top:6px}

/* Two-factor */
.twofa-setup{display:flex;gap:28px;flex-wrap:wrap;margin-top:20px;align-items:flex-start}
.qrbox{background:#fff;padding:16px;border-radius:14px;width:272px;height:272px;
  display:grid;place-items:center}
@media(max-width:400px){.qrbox{width:100%;max-width:272px;height:auto;aspect-ratio:1}}
.qrbox img,.qrbox canvas{display:block}
.secret{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:.9rem;
  letter-spacing:.06em;color:var(--cyan);background:rgba(0,0,0,.35);
  padding:9px 13px;border-radius:9px;border:1px solid var(--line);word-break:break-all}
.codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:9px;margin-top:16px}
.codes span{font-family:var(--mono);font-size:.9rem;letter-spacing:.05em;text-align:center;
  padding:10px;border-radius:9px;background:rgba(0,0,0,.35);border:1px solid var(--line);color:var(--text)}

/* Tickets */
.tlist{display:grid;gap:2px;margin-top:12px}
.trow{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  padding:14px;border-radius:11px;color:var(--text);transition:background .2s}
.trow:hover{background:rgba(255,255,255,.045)}
.tsubj{font-weight:500;font-size:.95rem;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tmeta{font-family:var(--mono);font-size:.74rem;color:var(--dim);white-space:nowrap}
.tstatus{font-family:var(--mono);font-size:.64rem;letter-spacing:.11em;text-transform:uppercase;
  font-weight:700;padding:4px 10px;border-radius:100px;white-space:nowrap}
.s-open{background:rgba(255,176,32,.14);color:var(--amber);border:1px solid rgba(255,176,32,.35)}
.s-answered{background:rgba(61,232,255,.13);color:var(--cyan);border:1px solid rgba(61,232,255,.35)}
.s-closed{background:rgba(255,255,255,.06);color:var(--dim);border:1px solid var(--line)}
.prio{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--red);border:1px solid rgba(255,95,109,.4);padding:2px 8px;border-radius:100px}
@media(max-width:620px){
  .trow{grid-template-columns:1fr;gap:8px}
  .tstatus{justify-self:start}
}

.thread{display:grid;gap:14px}
.msg{padding:18px 20px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.msg.mine{margin-left:auto;max-width:88%;background:rgba(37,211,102,.07);border-color:rgba(37,211,102,.24)}
.msg.theirs{margin-right:auto;max-width:88%;background:var(--surface-2)}
.msg-h{display:flex;justify-content:space-between;gap:14px;margin-bottom:9px;font-size:.79rem}
.msg-who{font-weight:600;color:var(--text)}
.msg-when{color:var(--dim);font-family:var(--mono);font-size:.73rem}
.msg-b{font-size:.95rem;line-height:1.68;color:#C6D1DF}

/* Progress checklist */
.tasklist{list-style:none;margin-top:14px;display:grid;gap:2px}
.tasklist li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:flex-start;
  padding:13px 12px;border-radius:10px}
.tasklist li:hover{background:rgba(255,255,255,.03)}
.tick{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  border:1px solid var(--line-2);font-size:.72rem;color:var(--dim);margin-top:1px}
.tasklist li.done .tick{background:var(--accent);border-color:var(--accent);color:#04220F;font-weight:700}
.tname{display:block;font-size:.94rem;color:var(--text)}
.tasklist li.done .tname{color:var(--muted)}
.twhy{display:block;font-size:.82rem;color:var(--dim);margin-top:3px}

/* ══════════════════════════════════════════════════════════
   SIGNATURE VISUALS
   Everything here is CSS + a little vanilla JS. No libraries,
   and all of it collapses under prefers-reduced-motion.
   ══════════════════════════════════════════════════════════ */

/* ── Geo-grid: the map going from red to green ─────────── */
.geogrid-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;
  padding:30px;border-radius:20px;background:var(--surface);border:1px solid var(--line);
}
@media(max-width:820px){.geogrid-wrap{grid-template-columns:1fr;gap:20px}}
.geogrid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:7px;
  aspect-ratio:1;max-width:360px;margin:0 auto;width:100%;
}
.gpin{
  border-radius:5px;background:var(--red);opacity:.82;
  transition:background 1.1s cubic-bezier(.2,.8,.2,1),opacity 1.1s,transform .5s;
  transition-delay:calc(var(--i) * 22ms);
}
.geogrid.after .gpin{background:var(--accent);opacity:.95}
.geogrid.after .gpin[data-keep="amber"]{background:var(--amber)}
.gtoggle{display:flex;gap:8px;margin-top:20px}
.gbtn{
  flex:1;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  padding:11px;border-radius:10px;border:1px solid var(--line);background:transparent;
  color:var(--muted);cursor:pointer;transition:all .25s;
}
.gbtn.on{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:700}
.glegend{display:flex;gap:18px;margin-top:16px;flex-wrap:wrap;font-size:.8rem;color:var(--dim)}
.glegend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:6px}

/* ── Line chart: calls over time ───────────────────────── */
.chart{width:100%;height:auto;overflow:visible}
.chart .axis{stroke:var(--line);stroke-width:1}
.chart .gridline{stroke:rgba(255,255,255,.05);stroke-width:1}
.chart .area{fill:url(#chartFill);opacity:0;transition:opacity 1.1s ease .5s}
.chart .line{
  fill:none;stroke:url(#chartStroke);stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--len);stroke-dashoffset:var(--len);
  transition:stroke-dashoffset 1.7s cubic-bezier(.4,0,.2,1);
}
.chart .dot{fill:var(--cyan);opacity:0;transition:opacity .4s}
.chart .lbl{fill:var(--dim);font-family:var(--mono);font-size:9px}
.chart.in .line{stroke-dashoffset:0}
.chart.in .area{opacity:1}
.chart.in .dot{opacity:1;transition-delay:1.5s}

/* ── Comparison bars ───────────────────────────────────── */
.vs{display:grid;gap:18px;margin-top:30px}
.vs-row{display:grid;grid-template-columns:130px 1fr auto;gap:16px;align-items:center}
@media(max-width:600px){.vs-row{grid-template-columns:1fr;gap:6px}}
.vs-name{font-size:.9rem;color:var(--muted)}
.vs-track{height:30px;background:rgba(255,255,255,.045);border-radius:8px;overflow:hidden}
.vs-fill{
  height:100%;width:0;border-radius:8px;
  transition:width 1.4s cubic-bezier(.2,.8,.2,1);
}
.vs-fill.them{background:linear-gradient(90deg,#2B3542,#3C4757)}
.vs-fill.you{background:linear-gradient(90deg,var(--accent),var(--cyan))}
.vs-val{font-family:var(--mono);font-size:.85rem;color:var(--text);min-width:46px;text-align:right}

/* ── Magnetic / tilt cards ─────────────────────────────── */
.tilt{transform-style:preserve-3d;will-change:transform}
.tilt-inner{transform:translateZ(24px)}

/* ── Spotlight that follows the cursor ─────────────────── */
.spot{position:relative;overflow:hidden}
.spot::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  transition:opacity .4s;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),
             rgba(37,211,102,.09),transparent 62%);
}
.spot:hover::after{opacity:1}

/* ── Marquee of the cities served ──────────────────────── */
.marquee{
  overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  padding:8px 0;
}
.marquee-track{display:flex;gap:44px;width:max-content;animation:slide 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee span{
  font-family:var(--mono);font-size:.9rem;color:var(--dim);white-space:nowrap;
  display:flex;align-items:center;gap:12px;
}
.marquee span::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--line-2)}

/* ── Scroll progress on the whole page ─────────────────── */
.scrollbar{position:fixed;top:0;left:0;right:0;height:2px;z-index:90;background:transparent}
.scrollbar i{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--accent),var(--cyan),var(--violet));
}

/* ── Number that counts and shimmers ───────────────────── */
.metric{
  font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;letter-spacing:-.04em;line-height:1;
  background:linear-gradient(100deg,var(--accent),var(--cyan) 60%,var(--violet));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  background-size:200% auto;animation:shift 6s linear infinite;
}

@media(prefers-reduced-motion:reduce){
  .gpin,.chart .line,.chart .area,.chart .dot,.vs-fill{transition:none}
  .marquee-track{animation:none}
  .chart .line{stroke-dashoffset:0}
  .chart .area,.chart .dot{opacity:1}
  .spot::after{display:none}
  .metric{animation:none}
}

/* ══════════════════════════════════════════════════════════
   AUTH SHELL — login / register / two-factor
   ══════════════════════════════════════════════════════════ */
body.auth-body{min-height:100vh}
.auth-split{
  display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;
}
@media(max-width:920px){.auth-split{grid-template-columns:1fr}}

/* ── Brand side ─────────────────────────────────────────── */
.auth-brand{
  display:flex;flex-direction:column;justify-content:space-between;gap:40px;
  padding:44px 52px;position:relative;overflow:hidden;
  border-right:1px solid var(--line);
  background:
    radial-gradient(120% 90% at 15% 10%, rgba(37,211,102,.13), transparent 60%),
    radial-gradient(110% 80% at 85% 90%, rgba(139,92,246,.12), transparent 62%),
    linear-gradient(160deg,#070A11,#05070C);
}
.auth-brand::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(ellipse 80% 70% at 30% 40%,#000 20%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 30% 40%,#000 20%,transparent 100%);
}
.auth-brand > *{position:relative;z-index:1}
.auth-logo{align-self:flex-start}
.auth-brand-mid{max-width:420px}
.auth-brand h2{
  font-size:clamp(1.6rem,2.6vw,2.15rem);letter-spacing:-.035em;line-height:1.18;
  margin-bottom:16px;
}
.auth-brand-p{font-size:1rem;line-height:1.65;margin-bottom:26px}
.auth-points{list-style:none;display:grid;gap:16px}
.auth-points li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.auth-points span{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;
  font-size:.95rem;color:var(--accent);
  background:linear-gradient(140deg,rgba(37,211,102,.16),rgba(61,232,255,.08));
  border:1px solid rgba(37,211,102,.22);
}
.auth-points b{display:block;font-size:.94rem;font-weight:600;color:var(--text);margin-bottom:2px}
.auth-points div{font-size:.87rem;color:var(--muted);line-height:1.55}
.auth-brand-foot{font-size:.85rem;color:var(--dim);max-width:380px}

@media(max-width:920px){
  .auth-brand{
    border-right:none;border-bottom:1px solid var(--line);
    padding:26px 22px 30px;gap:22px;
  }
  .auth-brand h2{font-size:1.35rem;margin-bottom:10px}
  .auth-brand-p{font-size:.93rem;margin-bottom:18px}
  .auth-points{gap:12px}
  .auth-brand-foot{display:none}
}
@media(max-width:560px){
  .auth-points li:nth-child(n+3){display:none}
  .auth-brand-p{display:none}
}

/* ── Form side ──────────────────────────────────────────── */
.auth-main{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:44px 32px;gap:20px;position:relative;
}
@media(max-width:560px){.auth-main{padding:32px 20px}}
.auth-back{
  position:absolute;top:28px;right:32px;font-size:.85rem;color:var(--dim);
}
.auth-back:hover{color:var(--accent)}
@media(max-width:920px){.auth-back{position:static;align-self:flex-end;margin-bottom:-6px}}

.auth-box{width:100%;max-width:410px}
.auth-box h1{font-size:1.75rem;letter-spacing:-.03em;margin-bottom:8px}
.auth-box .auth-sub{color:var(--muted);font-size:.94rem;margin-bottom:26px}
.auth-box .field{margin-bottom:17px}
.auth-box .btn{width:100%;justify-content:center;margin-top:4px}
.auth-box .fgrid{grid-template-columns:1fr 1fr;gap:0 14px}
@media(max-width:480px){.auth-box .fgrid{grid-template-columns:1fr}}
.auth-legal{font-size:.78rem;color:var(--dim);max-width:410px;width:100%;text-align:center}

.auth-alt{
  margin-top:24px;padding-top:20px;border-top:1px solid var(--line);
  font-size:.9rem;color:var(--muted);text-align:center;
}
.auth-alt a{font-weight:600}

/* One-time-code input */
.otp{
  font-family:var(--mono);font-size:1.6rem;letter-spacing:.42em;text-align:center;
  padding:16px 12px 16px 22px;
}

/* Password visibility toggle */
.pw-wrap{position:relative}
.pw-wrap input{padding-right:52px}
.pw-toggle{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--dim);cursor:pointer;font-size:.75rem;
  font-family:var(--mono);padding:8px 10px;border-radius:8px;letter-spacing:.05em;
}
.pw-toggle:hover{color:var(--accent);background:rgba(255,255,255,.05)}

/* Back-to-website link in the portal nav */
.nav-home{
  color:var(--dim)!important;border:1px solid var(--line);
  padding:7px 13px!important;border-radius:9px;font-size:.85rem!important;
}
.nav-home:hover{border-color:var(--accent);color:var(--accent)!important;background:transparent!important}

/* ── POST REACTIONS ────────────────────────────────────── */
.reactions{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:44px 0 0;padding-top:26px;border-top:1px solid var(--line);
}
.react-q{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);margin-right:4px;
}
.react-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.88rem;font-family:inherit;padding:9px 16px;border-radius:100px;
  border:1px solid var(--line);background:var(--surface);color:var(--muted);
  cursor:pointer;transition:all .22s cubic-bezier(.2,.8,.2,1);
}
.react-btn:hover:not(:disabled){border-color:var(--line-2);color:var(--text);transform:translateY(-1px)}
.react-btn:disabled{opacity:.5;cursor:default}
.react-btn.on{border-color:var(--accent);color:var(--accent);background:rgba(37,211,102,.1)}
.react-btn .react-ico{font-size:1rem;line-height:1}
.react-btn b{
  font-family:var(--mono);font-size:.75rem;font-weight:500;
  padding:1px 7px;border-radius:20px;background:rgba(255,255,255,.08);
}
.react-btn.on b{background:rgba(37,211,102,.2)}
.react-msg{font-size:.85rem;color:var(--dim)}
@media(prefers-reduced-motion:reduce){.react-btn{transition:none}.react-btn:hover{transform:none}}
