/* ============================================================
   KOBBTAN — SHARED "TERMINAL NOIR" HUB TEMPLATE
   Used by vodafone.html / orange.html / etisalat.html / we.html.
   Each page only sets --accent (and --accent2 for the glow) on
   <body style="--accent:#e60000;--accent2:230,0,0">, everything
   else — layout, motion, typography — lives here once.
   ============================================================ */

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{min-height:100vh;font-family:'Tajawal',sans-serif;overflow-x:hidden;background:#000;color:#fff}
canvas{position:fixed;inset:0;z-index:0;pointer-events:none}
#rstars{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.rst{position:absolute;border-radius:50%;background:rgba(255,225,150,.9);animation:rtwink var(--d,2s) ease-in-out infinite var(--dl,0s)}
@keyframes rtwink{0%,100%{opacity:.05;transform:scale(.4)}50%{opacity:1;transform:scale(1.4)}}
.gbg{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:44px 44px}

/* ---- Top bar ---- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:100;backdrop-filter:blur(14px);background:rgba(0,0,0,.55);border-bottom:1px solid rgba(255,255,255,.06)}
.topbar-inner{max-width:480px;margin:0 auto;padding:13px 16px;display:flex;align-items:center;justify-content:space-between}
.tbback{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);color:rgba(220,220,235,.75);font-size:.78rem;font-weight:700;text-decoration:none;transition:.2s}
.tbback:hover{background:rgba(255,255,255,.09);color:#fff}
.tbback svg{transition:transform .2s}
.tbback:hover svg{transform:translateX(-4px)}
.kbadge{font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:700;letter-spacing:.6px;padding:6px 12px;border-radius:8px;background:rgba(255,185,50,.08);border:1px solid rgba(255,185,50,.2);color:rgba(255,205,90,.85)}

.wrap{position:relative;z-index:5;max-width:480px;margin:0 auto;padding:78px 16px 70px;display:flex;flex-direction:column;gap:14px}

/* ---- Hero ---- */
.hub-hero{
  border-radius:6px;
  clip-path:polygon(0 20px,20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%);
  padding:30px 20px 22px;text-align:center;position:relative;overflow:hidden;
  background:linear-gradient(155deg, rgba(var(--accent2),.13), rgba(var(--accent2),.02));
  border:1px solid rgba(var(--accent2),.28);
  box-shadow:0 30px 70px -32px rgba(0,0,0,.9);
}
.hub-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 55% at 50% 0%,rgba(var(--accent2),.16),transparent 70%)}
.hub-hero::after{content:'';position:absolute;top:0;left:8%;right:8%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:220% 100%;animation:kb-shimmer 3.2s linear infinite;box-shadow:0 0 10px 0 rgba(var(--accent2),.5)}
.hlogo{width:76px;height:76px;border-radius:16px;margin:0 auto 14px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;box-shadow:0 0 26px rgba(var(--accent2),.5);border:1px solid rgba(var(--accent2),.4)}
.hlogo img{width:100%;height:100%;object-fit:cover;display:block}
.hub-eyebrow{font-family:'JetBrains Mono','Space Mono',monospace;font-size:.58rem;font-weight:700;letter-spacing:1px;color:rgba(120,255,180,.7);margin-bottom:7px;position:relative;z-index:1;text-shadow:0 0 8px rgba(120,255,180,.4)}
.hub-hero h1{font-size:1.65rem;font-weight:900;color:#fff;margin-bottom:5px;position:relative;z-index:1;letter-spacing:.2px;text-shadow:0 0 26px rgba(var(--accent2),.35)}
.hub-hero p{font-size:.82rem;position:relative;z-index:1;color:rgba(235,235,245,.6)}
.hub-tags{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:14px;position:relative;z-index:1}
.hub-tag{font-family:'JetBrains Mono',monospace;font-size:.66rem;font-weight:700;padding:5px 12px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(230,230,240,.75)}

/* ---- Section tag ---- */
.hub-section-tag{display:flex;align-items:center;gap:10px;margin:6px 2px 0;font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:700;letter-spacing:.5px;color:rgba(255,205,90,.7)}
.hub-section-tag::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(255,205,90,.25),transparent)}

/* ---- Row card ---- */
.hub-row{display:flex;align-items:center;gap:13px;width:100%;padding:15px;border-radius:10px;text-decoration:none;position:relative;overflow:hidden;cursor:pointer;
  background:linear-gradient(148deg,#0d0d12,#08080b);
  border:1px solid rgba(255,255,255,.06);
  border-inline-start:3px solid var(--rc,var(--accent));
  box-shadow:0 18px 40px -24px rgba(0,0,0,.75);
  transition:transform .2s cubic-bezier(.2,1,.3,1),box-shadow .2s,filter .2s;
}
.hub-row:hover{transform:translateY(-3px);filter:brightness(1.06);box-shadow:0 22px 50px -22px rgba(0,0,0,.85)}
.hub-row:active{transform:scale(.98)}
.hub-row-icon{width:46px;height:46px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:rgba(var(--rc-rgb,var(--accent2)),.12);border:1px solid rgba(var(--rc-rgb,var(--accent2)),.25)}
.hub-row-body{flex:1;min-width:0}
.hub-row-body h3{font-size:.97rem;font-weight:800;color:rgba(245,245,255,.97);margin-bottom:3px}
.hub-row-body p{font-size:.72rem;color:rgba(220,218,240,.55);line-height:1.4}
.hub-row-badge{font-family:'JetBrains Mono',monospace;font-size:.6rem;font-weight:700;padding:3px 9px;border-radius:6px;background:rgba(var(--rc-rgb,var(--accent2)),.15);color:rgb(var(--rc-rgb,var(--accent2)));white-space:nowrap;margin-top:6px;display:inline-block}
.hub-row-arr{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.85rem;font-weight:800;color:rgb(var(--rc-rgb,var(--accent2)));background:rgba(var(--rc-rgb,var(--accent2)),.1);transition:transform .2s}
.hub-row:hover .hub-row-arr{transform:translateX(-5px)}

/* accent color variants (used per-carrier for category coding) */
.rc-r{--rc:#ff3b3b;--rc-rgb:255,59,59}
.rc-g{--rc:#22e07e;--rc-rgb:34,224,126}
.rc-b{--rc:#3b9dff;--rc-rgb:59,157,255}
.rc-p{--rc:#b968ff;--rc-rgb:185,104,255}
.rc-o{--rc:#ff9d33;--rc-rgb:255,157,51}
.rc-c{--rc:#33d1e0;--rc-rgb:51,209,224}

@keyframes kb-shimmer{0%{background-position:140% 0}100%{background-position:-140% 0}}

/* ---- Notice box ---- */
.hub-notice{border-radius:10px;padding:14px 16px;font-size:.78rem;line-height:1.8;text-align:center;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:rgba(220,220,235,.7);display:flex;align-items:flex-start;gap:10px;text-align:right}
.hub-notice b{color:#fff}

/* ---- Fade-in on scroll ---- */
.fade{opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s}
.fade.in{opacity:1;transform:translateY(0)}

@media (min-width:600px){ .wrap{max-width:560px} }
