/*
Theme Name: Acceletex 2026
Theme URI: https://acceletex.com/
Author: Dziner Studio
Author URI: https://dzinerstudio.com/
Description: Signal-driven 2026 redesign for Acceletex, the parent platform for a portfolio of real-time sensing and AI ventures. Built around an oscilloscope/pulse motif that reflects the portfolio's connected-sensor DNA.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: acceletex-2026
*/

/* ---------------------------------------------------
   0. Design tokens
--------------------------------------------------- */
:root{
  --bg: #0b0f14;
  --bg-alt: #0e141b;
  --surface: #131a22;
  --surface-2: #171f28;
  --line: rgba(140,173,254,.16);
  --line-soft: rgba(237,242,244,.08);
  --text: #edf2f4;
  --text-dim: #93a2ac;
  --text-faint: #5c6a74;
  --accent: #8CADFE;
  --accent-dim: rgba(140,173,254,.35);
  --accent-2: #7C89F0;
  --accent-2-dim: rgba(124,137,240,.35);
  --radius-sm: 10px;
  --radius-md: 10px;
  --maxw: 1200px;
  --font-display: 'Archivo', 'Arial Narrow', sans-serif;
  --font-body: 'IBM Plex Sans', -apple-system, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
}

/* ---------------------------------------------------
   1. Reset
--------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit;}
h1,h2,h3,h4,p{margin:0;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
@media(max-width:700px){.container{padding:0 20px;}}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);
  font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin-bottom:18px;
}
.eyebrow::before{
  content:"";width:22px;height:1px;background:var(--accent);
}

h2.section-title{
  font-family:var(--font-display);
  font-weight:800;
  font-stretch:expanded;
  font-size:clamp(28px,4vw,46px);
  letter-spacing:-.01em;
  line-height:1.08;
  max-width:820px;
}

.section-sub{
  color:var(--text-dim);
  max-width:560px;
  font-size:16.5px;
  margin-top:16px;
}

section{position:relative;padding:96px 0;}
@media(max-width:700px){section{padding:64px 0;}}

.grid-dots{
  background-image:radial-gradient(var(--line-soft) 1px, transparent 1px);
  background-size:24px 24px;
}

/* ---------------------------------------------------
   2. Signal thread (signature element)
--------------------------------------------------- */
.signal-thread{width:100%;height:56px;display:block;opacity:.85;}
.signal-thread path{
  fill:none;stroke:var(--accent);stroke-width:1.4;
  stroke-dasharray:6 5;
  animation:threadFlow 3.5s linear infinite;
}
@keyframes threadFlow{to{stroke-dashoffset:-110;}}
.signal-thread circle{fill:var(--accent);filter:drop-shadow(0 0 6px var(--accent));}

@media(prefers-reduced-motion:reduce){
  .signal-thread path{animation:none;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important;}
}

/* ---------------------------------------------------
   3. Header
--------------------------------------------------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px 0;
  transition:background .3s ease, padding .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(11,15,20,.86);
  backdrop-filter:blur(10px);
  padding:14px 0;
  border-bottom:1px solid var(--line-soft);
}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.site-logo{
  font-family:var(--font-mono);
  font-weight:600;font-size:18px;letter-spacing:.02em;
  display:flex;align-items:center;gap:9px;
}
.site-logo .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);}
.site-logo span{color:var(--text-faint);}
.site-logo img,
.custom-logo-link img{
  height:34px;
  width:auto;
  max-width:180px;
  object-fit:contain;
  display:block;
}

.primary-nav ul{display:flex;align-items:center;gap:34px;}
.primary-nav a{
  font-size:14.5px;color:var(--text-dim);
  position:relative;padding:4px 0;
  transition:color .2s ease;
}
.primary-nav a:hover,.primary-nav a:focus-visible{color:var(--text);}
.primary-nav li.menu-item-has-children{position:relative;}
.primary-nav .sub-menu{
  position:absolute;top:calc(100% + 14px);left:-16px;
  background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--radius-md);padding:8px;min-width:220px;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:.18s ease;
}
.primary-nav li.menu-item-has-children:hover .sub-menu,
.primary-nav li.menu-item-has-children:focus-within .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.primary-nav .sub-menu a{display:block;padding:9px 12px;border-radius:6px;font-size:14px;}
.primary-nav .sub-menu a:hover{background:var(--surface-2);color:var(--accent);}

.header-actions{display:flex;align-items:center;gap:18px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:13.5px;letter-spacing:.03em;
  padding:12px 20px;border-radius:var(--radius-sm);
  cursor:pointer;
  transition:transform .3s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px) scale(1.015);}
.btn-primary{background:var(--accent);color:#04120d;font-weight:600;}
.btn-primary:hover{background:#b7c9ff;}
.btn-outline{
  border:1px solid var(--accent);
  color:var(--accent);
  background:transparent;
  transition:transform .3s ease, background-color .25s ease, color .25s ease;
}
.btn-outline:hover{background:var(--accent);color:#04120d;}
.btn-ghost{color:var(--text-dim);}
.btn-ghost:hover{color:var(--text);}

/* Premium gradient CTA — Navbar "Join the Accelerator" ONLY.
   Not applied to any other button on the site. */
.btn-cta{
  position:relative;
  color:#fff;font-weight:600;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:linear-gradient(135deg,#9dbbff 0%,#7c89f0 55%,#5b67e8 100%);
  background-size:200% 200%;
  background-position:0% 50%;
  cursor:pointer;
  box-shadow:
    0 0 0 1px rgba(140,173,254,.22),
    0 10px 26px -12px rgba(91,103,232,.6);
  transition:transform .3s ease,
             box-shadow .3s ease,
             background-position .3s ease,
             border-color .3s ease;
}
.btn-cta::before{
  content:"";
  position:absolute;inset:-8px;
  border-radius:inherit;
  background:inherit;
  filter:blur(16px);
  opacity:.32;
  z-index:-1;
  animation:ctaGlowPulse 5s ease-in-out infinite;
}
@keyframes ctaGlowPulse{
  0%,100%{opacity:.28;}
  50%{opacity:.46;}
}
.btn-cta:hover,.btn-cta:focus-visible{
  color:#fff;
  transform:translateY(-2.5px) scale(1.015);
  background-position:100% 50%;
  border-color:rgba(255,255,255,.28);
  box-shadow:
    0 0 0 1px rgba(140,173,254,.38),
    0 16px 32px -12px rgba(91,103,232,.7);
}
.btn-cta:hover::before{opacity:.65;filter:blur(18px);}
.btn-cta:active{transform:translateY(-1px) scale(1.01);}


.menu-toggle{display:none;flex-direction:column;gap:5px;padding:6px;}
.menu-toggle span{width:22px;height:2px;background:var(--text);}

@media(max-width:900px){
  .primary-nav{
    position:fixed;inset:0 0 0 30%;background:var(--bg-alt);
    padding:100px 28px 40px;transform:translateX(100%);
    transition:transform .3s ease;border-left:1px solid var(--line-soft);
  }
  .primary-nav.is-open{transform:translateX(0);}
  .primary-nav ul{flex-direction:column;align-items:flex-start;gap:6px;}
  .primary-nav a{padding:12px 0;font-size:17px;width:100%;}
  .primary-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;padding:0 0 0 14px;display:none;}
  .primary-nav li.menu-item-has-children.is-open .sub-menu{display:block;}
  .header-actions .btn-cta{display:none;}
  .menu-toggle{display:flex;}
}

/* ---------------------------------------------------
   4. Hero
--------------------------------------------------- */
.hero{
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding-top:140px;position:relative;
  background:
    radial-gradient(ellipse 60% 50% at 80% 0%, rgba(140,173,254,.10), transparent 60%),
    radial-gradient(ellipse 50% 40% at 10% 100%, rgba(124,137,240,.09), transparent 60%),
    var(--bg);
}
.hero-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom, black, transparent 85%);
  opacity:.5;
}
.hero-inner{position:relative;z-index:2;}
.hero h1{
  font-family:var(--font-display);
  font-weight:800;font-stretch:expanded;
  font-size:clamp(38px,6.4vw,84px);
  line-height:.98;letter-spacing:-.015em;
  max-width:920px;
}
.hero h1 em{
  font-style:normal;color:var(--accent);
}
.hero-sub{
  margin-top:28px;max-width:560px;
  color:var(--text-dim);font-size:18px;line-height:1.65;
}
.hero-actions{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap;}
.hero-scope{margin-top:64px;}

.oscilloscope{width:100%;max-width:920px;height:140px;}
.oscilloscope path{
  fill:none;stroke:var(--accent);stroke-width:1.8;
  filter:drop-shadow(0 0 10px var(--accent-dim));
  stroke-dasharray:1400;stroke-dashoffset:1400;
  animation:draw 2.6s cubic-bezier(.4,0,.2,1) forwards .3s;
}
@keyframes draw{to{stroke-dashoffset:0;}}
.oscilloscope .baseline{stroke:var(--line-soft);stroke-width:1;filter:none;stroke-dasharray:none;animation:none;}

/* ---------------------------------------------------
   5. Portfolio — badge / title / description / art cards
--------------------------------------------------- */
.portfolio-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;}

.proj-grid{
  margin-top:48px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media(max-width:860px){.proj-grid{grid-template-columns:1fr;}}

.proj-card{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  min-height:340px;
  padding:40px 40px 36px;
  border-radius:32px;
  background:var(--surface);
  border:1px solid var(--line-soft);
  text-decoration:none;color:inherit;cursor:pointer;
  will-change:transform;
  transition:transform .35s cubic-bezier(.16,1,.3,1),
             box-shadow .35s ease,
             border-color .35s ease,
             background-color .35s ease;
}
.proj-card:hover{
  transform:translateY(-6px);
  background:var(--surface-2);
  border-color:rgba(var(--proj-accent-rgb),.35);
  box-shadow:
    0 0 0 1px rgba(var(--proj-accent-rgb),.25),
    0 30px 60px -22px rgba(var(--proj-accent-rgb),.28),
    0 26px 54px -24px rgba(0,0,0,.6);
}

/* Decorative art — abstract circle cluster tinted per project, bleeds off the edge */
.proj-art{
  position:absolute;
  right:-46px;bottom:-46px;
  width:250px;height:250px;
  pointer-events:none;
  opacity:.5;
  transition:opacity .35s ease, transform .5s cubic-bezier(.16,1,.3,1);
}
.proj-card:hover .proj-art{opacity:.75;transform:scale(1.04) rotate(3deg);}
.proj-art svg{width:100%;height:100%;}
.proj-art circle{fill:var(--proj-accent);}
.proj-art circle:nth-child(1){opacity:.85;}
.proj-art circle:nth-child(2){opacity:.4;}
.proj-art circle:nth-child(3){opacity:.6;}
.proj-art circle:nth-child(4){opacity:.3;}

.proj-content{position:relative;z-index:1;max-width:78%;}

.proj-badge{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;
  color:var(--text-dim);
  background:rgba(var(--proj-accent-rgb),.10);
  border:1px solid rgba(var(--proj-accent-rgb),.22);
  padding:8px 14px 8px 10px;border-radius:999px;
  text-transform:uppercase;
}
.proj-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--proj-accent);flex-shrink:0;}

.proj-content h3{
  font-family:var(--font-display);font-weight:800;font-stretch:expanded;
  font-size:clamp(28px,3.2vw,38px);
  letter-spacing:-.01em;line-height:1.04;
  margin-top:24px;
}
.proj-content p{
  color:var(--text-dim);font-size:15px;line-height:1.6;
  margin-top:14px;max-width:320px;
}
.proj-link{
  margin-top:28px;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:13.5px;color:var(--text);
  border-bottom:1px solid var(--line-soft);padding-bottom:5px;
  transition:color .3s ease, border-color .3s ease;
}
.proj-card:hover .proj-link{color:var(--proj-accent);border-color:var(--proj-accent);}
.proj-link svg{width:13px;height:13px;transition:transform .25s ease;}
.proj-card:hover .proj-link svg{transform:translateX(4px);}

@media(max-width:700px){
  .proj-card{padding:32px 28px 30px;border-radius:26px;min-height:auto;}
  .proj-content{max-width:100%;}
  .proj-content p{max-width:none;}
  .proj-art{width:190px;height:190px;right:-40px;bottom:-40px;opacity:.4;}
}

/* ---------------------------------------------------
   6. About split
--------------------------------------------------- */
.about-wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
@media(max-width:860px){.about-wrap{grid-template-columns:1fr;gap:40px;}}
.about-copy p{color:var(--text-dim);margin-top:18px;font-size:15.5px;line-height:1.7;}
.about-copy p:first-of-type{margin-top:22px;}
.about-visual{
  aspect-ratio:1/1;border:1px solid var(--line-soft);border-radius:var(--radius-md);
  position:relative;overflow:hidden;background:var(--surface);
}
.about-visual svg{width:100%;height:100%;}

/* ---------------------------------------------------
   7. Process
--------------------------------------------------- */
.process-list{margin-top:56px;border-top:1px solid var(--line-soft);}
.process-item{
  display:grid;grid-template-columns:90px 1fr 1fr;gap:24px;
  padding:34px 0;border-bottom:1px solid var(--line-soft);
  align-items:start;
}
@media(max-width:760px){.process-item{grid-template-columns:60px 1fr;}.process-item h3{grid-column:2;}}
.process-item .num{font-family:var(--font-mono);color:var(--accent);font-size:15px;padding-top:4px;}
.process-item h3{font-family:var(--font-display);font-weight:700;font-size:22px;}
.process-item p{color:var(--text-dim);font-size:15px;line-height:1.6;}

/* ---------------------------------------------------
   8. CTA band
--------------------------------------------------- */
.cta-band{
  padding:110px 0;text-align:center;position:relative;
  background:var(--bg-alt);
}
.cta-band h2{
  font-family:var(--font-display);font-weight:800;font-stretch:expanded;
  font-size:clamp(30px,5vw,56px);max-width:760px;margin:0 auto;line-height:1.08;
}
.cta-band .section-sub{margin:20px auto 36px;text-align:center;}
.cta-band .btn{padding:16px 30px;font-size:14.5px;}

/* ---------------------------------------------------
   9. Footer
--------------------------------------------------- */
.site-footer{padding:80px 0 32px;border-top:1px solid var(--line-soft);}
.footer-top{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;
  padding-bottom:56px;
}
@media(max-width:860px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.footer-top{grid-template-columns:1fr;}}
.footer-brand p{color:var(--text-dim);font-size:14.5px;margin-top:18px;max-width:320px;line-height:1.65;}
.footer-col h4{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-faint);margin-bottom:18px;
}
.footer-col ul li{margin-bottom:12px;}
.footer-col a{color:var(--text-dim);font-size:14.5px;transition:color .2s ease;}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  padding-top:28px;border-top:1px solid var(--line-soft);
  font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint);
}

/* ---------------------------------------------------
   10. Reveal-on-scroll
--------------------------------------------------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

/* ---------------------------------------------------
   11. Generic page/single content
--------------------------------------------------- */
.page-hero{padding:170px 0 60px;}
.page-hero h1{
  font-family:var(--font-display);font-weight:800;font-stretch:expanded;
  font-size:clamp(32px,5vw,54px);
}
.entry-content{padding-bottom:100px;max-width:760px;}
.entry-content p{color:var(--text-dim);margin-bottom:18px;font-size:16px;line-height:1.75;}
.entry-content h2,.entry-content h3{font-family:var(--font-display);font-weight:700;margin:36px 0 14px;}
.entry-content img{border-radius:var(--radius-md);margin:24px 0;}
.entry-content a{color:var(--accent);text-decoration:underline;}
