/* ==========================================================
   Premium UI System (Bootstrap 5 + Custom)
   ========================================================== */
:root{
  --bg0:#06070a;
  --bg1:#0b1020;
  --ink:#eaf0ff;
  --muted:rgba(234,240,255,.72);
  --cyan:#00f5ff;
  --pink:#ff2da1;
  --blue:#4b7bff;
  --line:rgba(255,255,255,.12);
  --glassA:rgba(255,255,255,.085);
  --glassB:rgba(255,255,255,.045);
  --r:22px;
  --shadow:0 20px 70px rgba(0,0,0,.55);
}

html{scroll-behavior:smooth;}
body{
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 800px at 10% 10%, rgba(75,123,255,.18), transparent 60%),
    radial-gradient(1000px 700px at 85% 15%, rgba(255,45,161,.16), transparent 60%),
    radial-gradient(1000px 700px at 60% 90%, rgba(0,245,255,.12), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  overflow-x:hidden;
}

/* Accessibility */
.skip-link{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{
  left:16px;top:14px;width:auto;height:auto;z-index:2000;
  padding:10px 12px;border-radius:12px;
  background:#fff;color:#111;font-weight:800;
}

/* Utility */
.text-muted-2{color:var(--muted)!important}
.rule{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)}
.glass{
  background:linear-gradient(180deg,var(--glassA),var(--glassB));
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:0 18px 55px rgba(0,0,0,.35);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.hover-lift{transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}
.hover-lift:hover{
  transform:translateY(-8px);
  border-color:rgba(0,245,255,.22);
  box-shadow:0 26px 80px rgba(0,245,255,.08),0 26px 80px rgba(255,45,161,.06);
}

/* Reveal */
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .7s ease, transform .7s ease}
.is-visible{opacity:1!important;transform:none!important}

/* Header / Nav */
.site-header{
  position:sticky;top:0;z-index:1030;
  background:linear-gradient(100deg,rgba(255,45,161,.18),rgba(75,123,255,.16),rgba(0,245,255,.14));
  border-bottom:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 10px 40px rgba(0,0,0,.35);
}
.brand-mark{
  width:38px;height:38px;border-radius:14px;
  background:linear-gradient(135deg,rgba(0,245,255,.95),rgba(255,45,161,.85));
  box-shadow:0 0 0 1px rgba(255,255,255,.15) inset,0 18px 40px rgba(0,245,255,.15);
}
.brand-text{font-weight:900;letter-spacing:-.01em}
.navbar .nav-link{color:rgba(234,240,255,.84)!important;font-weight:700}
.navbar .nav-link:hover{color:#fff!important}
.navbar .nav-link.active{color:#fff!important}
.btn-cta{
  background:linear-gradient(135deg,rgba(0,245,255,.95),rgba(255,45,161,.92));
  color:#07101a!important;border:0;border-radius:999px;
  padding:.7rem 1.05rem;font-weight:900;
  transition:transform .2s ease, filter .2s ease;
}
.btn-cta:hover{transform:translateY(-1px);filter:saturate(1.2) contrast(1.05)}

/* Sections */
.section{padding:88px 0}
.section-tight{padding:70px 0}
.section-title{font-weight:900; letter-spacing:-.02em; font-size:clamp(1.8rem,2.6vw,2.6rem)}
.lead{color:var(--muted)}

/* Hero */
.hero{
  position:relative;
  padding:72px 0 34px;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(900px 600px at 20% 10%, rgba(0,245,255,.12), transparent 60%),
    radial-gradient(900px 600px at 80% 20%, rgba(255,45,161,.14), transparent 55%),
    radial-gradient(900px 600px at 55% 90%, rgba(75,123,255,.12), transparent 60%);
}
.hero-card{
  position:relative;
  padding:clamp(22px,3.6vw,42px);
  border-radius:calc(var(--r) + 6px);
}
.kicker{
  display:inline-flex;gap:.6rem;align-items:center;
  padding:.45rem .8rem;border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  font-weight:700;color:rgba(234,240,255,.86)
}
.kicker-dot{
  width:9px;height:9px;border-radius:999px;
  background:linear-gradient(135deg,var(--cyan),var(--pink));
}
.hero-title{
  font-weight:950;letter-spacing:-.02em;line-height:1.06;margin:14px 0 10px;
  font-size:clamp(2.2rem,4.2vw,4rem);
  background:linear-gradient(90deg,#fff,var(--cyan),var(--pink),#fff);
  background-size:240% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 6s linear infinite;
}
@keyframes shimmer {0%{background-position:0% 0}100%{background-position:240% 0}}
.btn-neo{border-radius:14px;padding:.9rem 1.1rem;font-weight:900;border:1px solid rgba(255,255,255,.12);transition:transform .2s ease, box-shadow .2s ease, background .2s ease}
.btn-primary-neo{background:linear-gradient(135deg,rgba(0,245,255,.95),rgba(255,45,161,.90));color:#07101a;box-shadow:0 18px 55px rgba(0,245,255,.10),0 18px 55px rgba(255,45,161,.08)}
.btn-primary-neo:hover{transform:translateY(-2px);box-shadow:0 22px 70px rgba(0,245,255,.18),0 22px 70px rgba(255,45,161,.14)}
.btn-ghost-neo{background:rgba(255,255,255,.06);color:var(--ink)}
.btn-ghost-neo:hover{transform:translateY(-2px);background:rgba(255,255,255,.10)}

/* Cards */
.icon-badge{
  width:46px;height:46px;border-radius:16px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
}

/* Portfolio filter */
.filter-row{display:flex;flex-wrap:wrap;gap:10px}
.filter-btn{
  border-radius:999px;
  padding:.55rem .9rem;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(234,240,255,.9);
  font-weight:800;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.filter-btn:hover{transform:translateY(-1px);background:rgba(255,255,255,.09)}
.filter-btn.active{border-color:rgba(0,245,255,.25);background:rgba(0,245,255,.10)}

/* Footer */
.site-footer{
  border-top:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg,rgba(11,16,32,.55),rgba(6,7,10,.95));
}
.footer-title{font-weight:900;margin-bottom:10px}
.chip{
  display:inline-flex;align-items:center;
  padding:.5rem .75rem;border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  color:rgba(234,240,255,.88);
}
.clock{font-weight:900}

/* Forms */
.form-control, .form-select{
  background:rgba(255,255,255,.06)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:var(--ink)!important;
  border-radius:14px!important;
}
.form-control::placeholder{color:rgba(234,240,255,.55)}
.form-label{font-weight:800}

/* Translate widget */
.translate-wrapper{position:fixed;bottom:18px;left:18px;z-index:1040}
.translate-toggle{
  background:rgba(255,255,255,.92);
  border-radius:999px;padding:9px 14px;
  display:flex;align-items:center;gap:10px;
  cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.28);
  transition:transform .18s ease;
  border:0;
}
.translate-toggle:hover{transform:translateY(-2px)}
.translate-icon{width:26px;height:26px}
.translate-text{font-size:14px;font-weight:900;color:#111}
.translate-mark{font-weight:900;color:#111}
.translate-popup{
  margin-top:10px;background:rgba(255,255,255,.96);
  padding:10px 12px;border-radius:14px;
  box-shadow:0 18px 44px rgba(0,0,0,.28);
  display:none;
}
.goog-te-banner-frame.skiptranslate{display:none!important}
body{top:0!important}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}

/* ==========================================================
   Blog module (listing + detail + forms)
   ========================================================== */
.page-blog .pagination .page-link,
.page-blog .pagination .page-link:focus{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(234,240,255,.9);
  border-radius:14px;
}
.page-blog .pagination .page-item.active .page-link{
  background:linear-gradient(135deg,rgba(0,245,255,.22),rgba(255,45,161,.18));
  border-color:rgba(0,245,255,.25);
  color:#fff;
}
.page-blog .pagination .page-item.disabled .page-link{
  opacity:.55;
}

.blog-card h2 a{transition:color .2s ease}
.blog-card h2 a:hover{color:rgba(0,245,255,.95)!important}

.blog-prose{
  color:rgba(234,240,255,.86);
  line-height:1.85;
  font-size:1.02rem;
}
.blog-prose h1,.blog-prose h2,.blog-prose h3{color:#fff;font-weight:950;letter-spacing:-.01em;margin-top:1.35rem}
.blog-prose h1{font-size:1.7rem}
.blog-prose h2{font-size:1.4rem}
.blog-prose h3{font-size:1.15rem}
.blog-prose p{margin-bottom:1rem}
.blog-prose a{color:rgba(0,245,255,.95);text-decoration:none}
.blog-prose a:hover{text-decoration:underline}
.blog-prose img{max-width:100%;height:auto;border-radius:18px;border:1px solid rgba(255,255,255,.10)}
.blog-prose blockquote{
  margin:1.1rem 0;
  padding:1rem 1rem 1rem 1.1rem;
  border-left:4px solid rgba(0,245,255,.35);
  background:rgba(255,255,255,.04);
  border-radius:16px;
}

.chip.active{
  border-color:rgba(0,245,255,.25);
  background:rgba(0,245,255,.10);
}

[data-loading-swap].is-loading{
  position:relative;
}
[data-loading-swap].is-loading > *{
  opacity:.35;
  filter:blur(.2px);
  transition:opacity .2s ease, filter .2s ease;
}
