/* =========================================================
   Tomorrow's Click — design + animation layer
   Styles the native blocks by their assigned class names.
   ========================================================= */

:root { --tc-accent:#00e5ff; --tc-base:#07090f; }

/* keyframes */
@keyframes tcRingSpin{to{transform:rotate(360deg)}}
@keyframes tcRingSpinR{to{transform:rotate(-360deg)}}
@keyframes tcPulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}
@keyframes tcBlink{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes tcMarquee{to{transform:translateX(-50%)}}
@keyframes tcReveal{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes tcSweep{0%{transform:translateY(-50%) rotate(0)}100%{transform:translateY(-50%) rotate(360deg)}}

.tc-reveal{opacity:0}
.tc-reveal.tc-in{animation:tcReveal .8s cubic-bezier(.22,1,.36,1) forwards}

/* editor guard: never hide content while editing */
.block-editor-page .tc-reveal,.wp-admin .tc-reveal{opacity:1!important}

/* ---------- nav / header ---------- */
.tc-nav{position:sticky;top:0;z-index:50;background:rgba(7,9,15,.72);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.07);padding:14px 44px!important}
.tc-nav .wp-block-site-title a{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.02em;color:#e8ecf4}
.tc-nav .wp-block-navigation{--wp--style--block-gap:30px;font-size:14px;font-weight:500}
.tc-nav .wp-block-navigation a{color:#aab2c5}
.tc-nav .wp-block-navigation a:hover{color:#fff}
.tc-brand-mark{width:32px;height:32px;border:1.5px solid var(--tc-accent);border-radius:8px;display:flex;align-items:center;justify-content:center;flex:none}
.tc-brand-mark span{width:9px;height:9px;background:var(--tc-accent);border-radius:50%;box-shadow:0 0 12px var(--tc-accent)}

/* ---------- shared bits ---------- */
.tc-eyebrow{font-family:'JetBrains Mono',monospace!important;font-size:12px!important;color:var(--tc-accent)!important;letter-spacing:.1em;text-transform:uppercase;margin:0 0 16px!important}
.tc-badge{display:inline-flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace!important;font-size:11.5px!important;letter-spacing:.14em;color:var(--tc-accent)!important;text-transform:uppercase;padding:7px 14px;border:1px solid rgba(0,229,255,.3);border-radius:100px}
.tc-badge::before{content:'';width:6px;height:6px;background:var(--tc-accent);border-radius:50%;animation:tcBlink 1.4s infinite}
.tc-mono{font-family:'JetBrains Mono',monospace!important}
.tc-muted{color:#98a1b5!important}

.tc-card{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:28px!important;height:100%}
.tc-svc{transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .4s,background .4s}
.tc-svc:hover{transform:translateY(-6px);border-color:rgba(0,229,255,.45)}
.tc-feature{border-color:rgba(0,229,255,.35)!important;background:linear-gradient(160deg,rgba(0,229,255,.12),transparent)!important}

/* ---------- hero ---------- */
.tc-hero{position:relative;overflow:hidden;padding:90px 44px 96px!important;background:
  radial-gradient(120% 120% at 80% 18%,rgba(0,229,255,.12),transparent 52%),
  radial-gradient(90% 90% at 8% 92%,rgba(80,110,224,.14),transparent 60%)}
.tc-radar{position:absolute!important;top:-120px;right:-90px;width:620px;height:620px;pointer-events:none;z-index:0}
.tc-radar i{position:absolute;border-radius:50%;display:block}
.tc-radar .r1{inset:0;border:1px solid rgba(0,229,255,.15);animation:tcPulse 6s ease-in-out infinite}
.tc-radar .r2{inset:85px;border:1px dashed rgba(0,229,255,.26);animation:tcRingSpin 30s linear infinite}
.tc-radar .r3{inset:180px;border:1px solid rgba(0,229,255,.32);animation:tcRingSpinR 20s linear infinite}
.tc-radar .r4{inset:270px;background:radial-gradient(circle,rgba(0,229,255,.5),transparent 70%);animation:tcPulse 4s ease-in-out infinite}
.tc-radar .sweep{top:50%;left:50%;width:220px;height:1px;border:0;border-radius:0;transform-origin:left center;background:linear-gradient(90deg,rgba(0,229,255,.6),transparent);animation:tcSweep 8s linear infinite}
.tc-hero>.wp-block-group{position:relative;z-index:1}
.tc-h1{font-size:clamp(2.6rem,1.5rem + 4vw,4rem)!important;line-height:1.01!important;letter-spacing:-.03em!important;margin:0 0 24px!important}
.tc-sub{font-size:18px!important;line-height:1.6;color:#aab2c5!important;max-width:540px;margin:0 0 12px!important}
.tc-stats{gap:40px!important;margin-top:40px}
.tc-num{font-family:'JetBrains Mono',monospace!important;font-size:30px!important;font-weight:500;color:#fff!important;margin:0!important}
.tc-num small{color:var(--tc-accent);font-size:30px}
.tc-numlabel{font-size:11.5px!important;color:#7f889c!important;margin:4px 0 0!important;font-family:'JetBrains Mono',monospace!important}

/* ---------- buttons ---------- */
.wp-block-button.tc-btn .wp-block-button__link{background:var(--tc-accent);color:#04121a;box-shadow:0 0 34px rgba(0,229,255,.35);transition:transform .25s}
.wp-block-button.tc-btn .wp-block-button__link:hover{transform:translateY(-2px)}
.wp-block-button.tc-ghost .wp-block-button__link{background:transparent;border:1px solid rgba(255,255,255,.16);color:#e8ecf4;transition:border-color .25s,background .25s}
.wp-block-button.tc-ghost .wp-block-button__link:hover{border-color:rgba(0,229,255,.5);background:rgba(0,229,255,.06)}
.wp-block-button.tc-dark .wp-block-button__link{background:#04121a;color:#fff}

/* ---------- marquee ---------- */
.tc-marquee-wrap{border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);overflow:hidden;background:#080a11;padding:0!important}
.tc-marquee{display:flex;align-items:center;gap:56px;padding:20px 0;width:max-content;animation:tcMarquee 32s linear infinite;font-family:'JetBrains Mono',monospace;font-size:13px;color:#5f6a80;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.tc-marquee b{color:var(--tc-accent);font-weight:400}

/* ---------- value props ---------- */
.tc-vp{gap:1px!important;background:rgba(255,255,255,.06)}
.tc-vp .wp-block-column{background:#07090f;padding:44px 36px!important;margin:0!important}
.tc-vp h3{font-size:20px!important;margin:0 0 12px!important}
.tc-vp p{font-size:14px!important;line-height:1.65;color:#98a1b5!important;margin:0!important}

/* ---------- section rhythm ---------- */
.tc-section{padding:70px 44px!important}
.tc-section--tight{padding:0 44px 90px!important}
.tc-h2{font-size:clamp(2rem,1.2rem + 3vw,2.6rem)!important;letter-spacing:-.03em!important;margin:0!important}
.tc-svc h3,.tc-soft-card h3{font-size:18px!important;margin:0 0 10px!important}
.tc-svc p{font-size:13.5px!important;line-height:1.6;color:#98a1b5!important;margin:0!important}
.tc-accent{color:var(--tc-accent)!important}

/* ---------- software feature ---------- */
.tc-software-panel{border:1px solid rgba(0,229,255,.2)!important;border-radius:22px;padding:52px!important;background:radial-gradient(120% 120% at 90% 10%,rgba(0,229,255,.1),transparent 55%)!important}
.tc-check{display:flex;align-items:center;gap:12px;font-size:14.5px;color:#cdd4e4;margin:0 0 14px}
.tc-check::before{content:'→';color:var(--tc-accent);font-family:'JetBrains Mono',monospace}
.tc-shot{aspect-ratio:4/3;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:#0b0f1c;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.tc-shot::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(0,229,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.08) 1px,transparent 1px);background-size:32px 32px}
.tc-shot span{position:relative;font-family:'JetBrains Mono',monospace;font-size:12px;color:#5c6478;text-align:center;line-height:1.7}
.tc-shot .wp-block-image,.tc-shot img{margin:0;width:100%;height:100%;object-fit:cover}

/* ---------- why us ---------- */
.tc-stat{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:26px!important}
.tc-statnum{font-family:'Space Grotesk',sans-serif!important;font-weight:700;font-size:32px!important;color:var(--tc-accent)!important;margin:0!important}
.tc-statlabel{font-size:13px!important;color:#98a1b5!important;margin:6px 0 0!important}

/* ---------- work gallery ---------- */
.tc-gallery{display:grid!important;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.tc-gallery .wp-block-image{margin:0;border-radius:14px;border:1px solid rgba(255,255,255,.1);overflow:hidden;position:relative}
.tc-gallery .wp-block-image img{width:100%;height:100%;object-fit:cover;display:block}
.tc-gallery figcaption{position:absolute;left:14px;bottom:14px;z-index:2;font-family:'JetBrains Mono',monospace;font-size:11px;color:#fff;background:rgba(4,10,18,.6);padding:4px 9px;border-radius:6px;backdrop-filter:blur(4px);margin:0}
.tc-tall{grid-row:span 2}
.tc-wide{grid-column:span 2}

/* ---------- testimonial ---------- */
.tc-quote{max-width:1000px;margin:0 auto;text-align:center}
.tc-quote p.tc-qmark{font-family:'Space Grotesk',sans-serif!important;font-size:80px!important;color:rgba(0,229,255,.25)!important;line-height:1;margin:0 0 -10px!important}
.tc-quote blockquote,.tc-quote .tc-qtext{font-family:'Space Grotesk',sans-serif!important;font-weight:500;font-size:28px!important;line-height:1.4;letter-spacing:-.02em;margin:0 0 26px!important;border:0;padding:0}
.tc-quote cite,.tc-quote .tc-qby{font-size:14px!important;color:#98a1b5!important;font-style:normal}

/* ---------- contact CTA ---------- */
.tc-cta-panel{border-radius:22px;padding:56px!important;background:linear-gradient(120deg,#00e5ff,#3f51b5)!important;position:relative;overflow:hidden}
.tc-cta-panel::before{content:'';position:absolute;top:-60px;right:-30px;width:280px;height:280px;border:1px solid rgba(255,255,255,.25);border-radius:50%}
.tc-cta-panel::after{content:'';position:absolute;top:30px;right:60px;width:180px;height:180px;border:1px dashed rgba(255,255,255,.35);border-radius:50%;animation:tcRingSpin 34s linear infinite}
.tc-cta-panel>*{position:relative;z-index:1}
.tc-cta-panel h2{color:#04121a!important;font-size:clamp(1.9rem,1.2rem + 2.5vw,2.4rem)!important;margin:0 0 12px!important;letter-spacing:-.02em}
.tc-cta-panel p{color:rgba(4,18,26,.8)!important;font-size:15.5px!important;margin:0 0 8px!important}
.tc-cta-meta{font-family:'JetBrains Mono',monospace!important;font-size:14px!important;color:#04121a!important;font-weight:500}

/* ---------- coverage map ---------- */
.tc-reach{min-height:100svh;display:grid;grid-template-columns:1.7fr 1fr;gap:40px;align-items:center;padding:56px 44px;box-sizing:border-box;max-width:1600px;margin:0 auto}
.tc-map-ar{position:relative;height:min(78vh,720px);border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;background:#07090f}
.tc-map-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.tc-reach-text{max-width:520px}
.tc-map-legend{display:flex;flex-direction:column;gap:12px;margin-top:28px;font-family:'JetBrains Mono',monospace;font-size:12px;color:#7f889c}
.tc-map-legend span{display:inline-flex;align-items:center;gap:8px}
.tc-map-legend i{display:inline-block}
.tc-map-legend .hub{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #00e5ff}
.tc-map-legend .dot{width:7px;height:7px;border-radius:50%;background:#00e5ff}
.tc-map-legend .line{width:20px;height:2px;background:linear-gradient(90deg,#00e5ff,#7b8cff)}
/* inline map svg internals */
.tc-map-svg .tc-state{fill:#0e1626;stroke:rgba(0,229,255,.16);stroke-width:.5}
.tc-map-svg .tc-arc-base{fill:none;stroke:rgba(0,229,255,.16);stroke-width:1}
.tc-map-svg .tc-arc-flow{fill:none;stroke:#00e5ff;stroke-width:1.6;stroke-linecap:round}
.tc-map-svg .tc-arc-main{stroke:url(#tcGrad);stroke-width:2.4}
.tc-map-svg .tc-city{fill:#00e5ff}
.tc-map-svg .tc-city-ring{fill:none;stroke:#00e5ff;stroke-width:1;opacity:.5}
.tc-map-svg .tc-hub-glow{fill:#00e5ff;opacity:.18;animation:tcHubPulse 3s ease-in-out infinite}
.tc-map-svg .tc-hub{fill:#fff;stroke:#00e5ff;stroke-width:2}
.tc-map-svg .tc-label{font:500 11px 'JetBrains Mono',ui-monospace,monospace;fill:#aeb8cc}
.tc-map-svg .tc-hublabel{font:700 14px 'Space Grotesk','Manrope',sans-serif;fill:#fff}
.tc-map-svg .tc-sublabel{font:500 10px 'JetBrains Mono',monospace;fill:#00e5ff;letter-spacing:.08em}
@keyframes tcHubPulse{0%,100%{r:8;opacity:.18}50%{r:16;opacity:.05}}
@keyframes tcFlow{to{stroke-dashoffset:var(--off)}}
@media(max-width:900px){.tc-reach{grid-template-columns:1fr;min-height:0;gap:22px;padding:40px 22px}.tc-map-ar{height:56vh;order:2}.tc-reach-text{order:1;max-width:none}.tc-map-legend{flex-direction:row;flex-wrap:wrap;font-size:11px}}

/* ---------- footer ---------- */
.tc-footer{border-top:1px solid rgba(255,255,255,.07);padding:56px 44px 40px!important}
.tc-footer .wp-block-site-title a{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;color:#e8ecf4}
.tc-foot-head{font-family:'JetBrains Mono',monospace!important;font-size:11px!important;color:#5c6478!important;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px!important}
.tc-footer a{color:#aab2c5}
.tc-footer a:hover{color:#fff}
.tc-fine{font-family:'JetBrains Mono',monospace!important;font-size:12.5px!important;color:#5c6478!important;border-top:1px solid rgba(255,255,255,.06);padding-top:24px;margin-top:40px}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .tc-hero{padding:56px 22px 60px!important}
  .tc-nav,.tc-section,.tc-section--tight,.tc-footer{padding-left:22px!important;padding-right:22px!important}
  .tc-radar{display:none}
  .tc-gallery{grid-template-columns:1fr 1fr}
  .tc-software-panel{padding:28px!important}
  .tc-cta-panel{padding:32px!important}
}
