HEX
Server: nginx/1.18.0
System: Linux vcwordpress 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/viitorx.stgviitor.com/wp-content/themes/viitorx/css/critical.css
/* critical.css — inlined directly in <head> via PHP.
 * Contains ONLY above-fold styles so the browser can paint the hero without
 * waiting for any external CSS file.  All other stylesheets are async-loaded.
 * Keep this file small (target < 8 KB).  Do not add below-fold rules here.
 */

/* ─── RESET ────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ─── CSS VARIABLES ─────────────────────────────────────────── */
:root{
  /* colour palette */
  --black:#0a0a0a;--black-rich:#0a0a0a;--dark:#121212;--dark-mid:#1a1917;
  --cream:#edeae3;--cream-light:#f5f3ef;--white:#ffffff;--off-white:#fcfcfc;
  --copper:#c8996a;--copper-light:#d4a97a;--copper-glow:rgba(200,153,106,.35);
  --text-muted:rgba(255,255,255,.65);--text-dim:rgba(255,255,255,.4);
  --border:rgba(255,255,255,.12);--border-mid:rgba(255,255,255,.18);
  /* typography */
  --font-main:'Archivo',sans-serif;--font-heading:'Lenia Sans',sans-serif;
  --font-serif:'DM Serif Display',serif;
  /* easing */
  --ease-smooth:cubic-bezier(.25,.46,.45,.94);--ease-expo:cubic-bezier(.16,1,.3,1);
  /* layout */
  --section-inline:clamp(20px,7vw,100px);
  --offerings-inline-start:var(--section-inline);
  --offerings-inline-end:env(safe-area-inset-right,0px);
  --offerings-pin-padding-block:clamp(72px,12svh,136px);
  --nav-bar-outer-height:calc(80px + env(safe-area-inset-top,0px));
  --anchor-under-nav-offset:calc(80px + env(safe-area-inset-top,0px) + 8px);
  /* offerings-page design tokens */
  --color-bg:#131313;--color-surface:#0f0f0f;
  --color-text:#f0f0e5;--color-muted:#b3b3b3;
  --color-border:rgba(217,217,217,.2);--color-border-strong:rgba(240,240,229,.4);
  --space-1:8px;--space-2:16px;--space-3:24px;--space-4:48px;--space-5:80px;
  --radius-1:16px;--radius-2:24px;
  --container-max:1200px;--content-max:72ch;--header-height:80px;
}

/* ─── HTML / BODY ────────────────────────────────────────────── */
html{scrollbar-gutter:stable;scroll-padding-top:var(--nav-bar-outer-height)}
html.lenis{height:auto}
html.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  font-family:var(--font-main);
  background:var(--black);
  color:var(--white);
  overflow-x:clip;overflow-y:auto;
  cursor:none;
}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

/* ─── CUSTOM CURSOR ──────────────────────────────────────────── */
#cursor{
  position:fixed;width:10px;height:10px;background:var(--white);
  border-radius:50%;pointer-events:none;z-index:99999;
  transform:translate(-50%,-50%);
  transition:width .2s,height .2s,background .2s;
  mix-blend-mode:difference;
}
#cursor-ring{
  position:fixed;width:36px;height:36px;
  border:1px solid rgba(255,255,255,.5);border-radius:50%;
  pointer-events:none;z-index:99998;transform:translate(-50%,-50%);
  transition:transform .08s linear,width .3s var(--ease-expo),height .3s var(--ease-expo);
}

/* ─── ACCESSIBILITY ──────────────────────────────────────────── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}

/* ─── HERO VARIANT CSS-VAR SETUP ─────────────────────────────── */
.hero-blog,.blog-hero,.hero-contact,.hero-offerings,.hero-industries,
.hero-cs,.hero-detail,.thank-you,.error-404-hero{
  --hero-inline:var(--section-inline);
  --hero-top-bar-h:80px;
  --hero-top-bar-total:calc(var(--hero-top-bar-h) + env(safe-area-inset-top,0px));
}

/* ─── PAGE SHELL ─────────────────────────────────────────────── */
.page{min-height:100vh;background:#131313;counter-reset:offering-count}
.container{width:min(90%,var(--container-max,1200px));margin:0 auto}

/* marketing-inner-layout.css inlined — removes that blocking request entirely */
body.viitorx-marketing-inner{
  --viitorx-pad-l:max(var(--section-inline),env(safe-area-inset-left,0px));
  --viitorx-pad-r:max(var(--section-inline),env(safe-area-inset-right,0px));
}
body.viitorx-marketing-inner.viitorx-blog-listing-body .blog-container,
body.viitorx-marketing-inner.viitorx-blog-listing-body .container,
body.viitorx-marketing-inner.viitorx-single-post-body .viitorx-blog-single-page .container,
body.viitorx-marketing-inner.contact-us-page .container,
body.viitorx-marketing-inner.offerings-page .container,
body.viitorx-marketing-inner.industries-page .container,
body.viitorx-marketing-inner.thank-you-page .container,
body.viitorx-marketing-inner.viitorx-single-case-study .cs-container,
body.viitorx-marketing-inner.viitorx-single-case-study .page .container,
body.viitorx-marketing-inner.viitorx-case-study-archive .container,
body.viitorx-marketing-inner.viitorx-case-study-archive .blog-container{
  width:100%;max-width:none;margin-left:0;margin-right:0;
  padding-left:var(--viitorx-pad-l);padding-right:var(--viitorx-pad-r);
  box-sizing:border-box;
}
body.viitorx-marketing-inner.viitorx-case-study-archive .worlds__title{
  padding-left:var(--viitorx-pad-l);padding-right:var(--viitorx-pad-r);
  margin-left:0;margin-right:0;
}
body.viitorx-marketing-inner.viitorx-case-study-archive .cs-grid{
  padding-left:var(--viitorx-pad-l);padding-right:var(--viitorx-pad-r);
}
body.viitorx-marketing-inner.viitorx-error-404-page .viitorx-error-404-wrap .error-404-hero{
  padding-left:var(--viitorx-pad-l);padding-right:var(--viitorx-pad-r);
}

/* ─── HERO OFFERINGS LAYOUT (above-fold section) ─────────────── */
.hero-offerings{
  position:relative;min-height:100vh;
  display:grid;place-items:center;
  overflow:hidden;
  padding:calc(var(--space-5,80px) + 20px + var(--hero-top-bar-total,80px)) 0 var(--space-5,80px);
  text-align:center;
}

/* ─── INNER-PAGE HERO ELEMENTS ───────────────────────────────── */
.hero-inner__video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:.82;pointer-events:none;
}
.hero-inner__overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(60% 60% at 50% 35%,rgba(184,92,32,.22) 0%,rgba(19,19,19,0) 60%),
    linear-gradient(180deg,rgba(19,19,19,.12) 0%,rgba(19,19,19,.45) 60%,#131313 100%);
  pointer-events:none;
}
.hero-inner__content{
  position:relative;z-index:2;display:grid;gap:20px;
  justify-items:center;text-align:center;
}
.hero-breadcrumb{
  color:#fff;display:flex;align-items:center;gap:.35rem .5rem;
  font-family:Archivo;font-weight:700;font-size:24px;line-height:100%;text-align:center;
}
.hero-breadcrumb a{font-weight:300}
.hero-inner__title{
  color:var(--color-text,rgba(240,240,229,1));
  font-family:'Lenia Sans',var(--font-heading),sans-serif;
  font-weight:700;font-size:clamp(32px,6vw,80px);line-height:1.1;
  letter-spacing:-.01em;text-align:center;
}
.hero-inner__subtitle{
  color:var(--color-text,rgba(240,240,229,1));
  font-family:Archivo,var(--font-main),sans-serif;
  font-weight:300;font-size:clamp(18px,2.4vw,24px);line-height:1.35;text-align:center;
}
@media(max-width:767px){
  .hero-inner__title{font-size:24px}
  .hero-inner__subtitle{font-size:16px}
  .hero-breadcrumb{font-size:18px}
}

/* ─── HERO WORDMARK ──────────────────────────────────────────── */
.hero-wordmark{
  position:absolute;top:0;left:0;right:0;z-index:10;box-sizing:border-box;
  display:flex;align-items:center;justify-content:center;
  width:100%;min-height:var(--hero-top-bar-total,80px);
  padding-top:env(safe-area-inset-top,0px);
  padding-inline:max(var(--section-inline),env(safe-area-inset-left,0px)) max(var(--section-inline),env(safe-area-inset-right,0px));
  margin:0;color:rgba(255,255,255,.92);text-transform:uppercase;white-space:nowrap;
  pointer-events:none;
  animation:heroWordmarkIn 1.15s var(--ease-expo) .25s both;
  font-family:Archivo;font-weight:400;font-size:24px;line-height:30px;
  letter-spacing:.6em;text-align:right;
}
.hero-wordmark__link{pointer-events:auto;color:inherit;text-decoration:none;display:inline-block;border-radius:4px}

/* ─── SECTION-REVEAL OVERRIDE ───────────────────────────────── */
/* Prevents containers going opacity:0 while section-reveal.css async-loads.
   !important beats the async stylesheet; JS still adds section-reveal--visible
   for child animations. */
.hero-inner__content[data-section-reveal]{opacity:1;transform:none;transition:none;will-change:auto}
/* Blog single — article + hero containers stay visible; only children animate */
body.viitorx-single-post-body .blog-details[data-section-reveal],
body.viitorx-single-post-body .blog-hero[data-section-reveal]{opacity:1!important;transform:none!important}
.offerings-page .hero-inner__content[data-section-reveal]>*,
.industries-page .hero-inner__content[data-section-reveal]>*{
  animation:section-reveal-rise .78s cubic-bezier(.22,1,.36,1) backwards;
}
.offerings-page .hero-inner__content[data-section-reveal]>*:nth-child(1),
.industries-page .hero-inner__content[data-section-reveal]>*:nth-child(1){animation-delay:.07s}
.offerings-page .hero-inner__content[data-section-reveal]>*:nth-child(2),
.industries-page .hero-inner__content[data-section-reveal]>*:nth-child(2){animation-delay:.14s}
.offerings-page .hero-inner__content[data-section-reveal]>*:nth-child(3),
.industries-page .hero-inner__content[data-section-reveal]>*:nth-child(3){animation-delay:.22s}

/* ─── INDUSTRIES PAGE — prevent FOUC + section-reveal opacity:0 ─────────────
   Without these, industry__media has no height → img collapses to 0px.
   !important keeps article containers visible; only children transition in.
──────────────────────────────────────────────────────────────────────────── */
.industries-page .industry[data-section-reveal],
.industries-page .stats[data-section-reveal]{opacity:1!important;transform:none!important}
/* Industry children: transform-only entrance — images always visible (no black space),
   subtle upward slide when revealed. No opacity means no FOUC and no black cards. */
.industries-page [data-section-reveal] .industry__text>*,
.industries-page [data-section-reveal] .industry__media{transform:translateY(24px);transition:transform .68s cubic-bezier(.22,1,.36,1),opacity .68s cubic-bezier(.22,1,.36,1)}
/* Case study: hero-media container stays visible; hero has section-reveal--visible inline */
body.viitorx-single-case-study .hero-media[data-section-reveal]{opacity:1!important;transform:none!important}

/* ─── CASE STUDY ARCHIVE — prevent FOUC ─────────────────────────────────── */
.viitorx-case-study-archive .cs-grid{display:grid;gap:clamp(16px,4vw,40px);padding:0 clamp(16px,5vw,300px)}
.viitorx-case-study-archive .cs-card{position:relative;height:clamp(260px,52vmin,600px);border-radius:clamp(12px,2vw,18px);overflow:hidden;display:block;isolation:isolate}
body.viitorx-blog-listing-body .archive-case-study .cs-card__img,.archive-case-study .cs-card__img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;z-index:0;display:block}
@media(min-width:768px){.viitorx-case-study-archive .cs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ─── INDUSTRIES PAGE — prevent FOUC before industries.css async-loads ─────
   Without these, industry__media has no height → img height:100% collapses
   to 0px and images disappear; layout is single-column plain text.
──────────────────────────────────────────────────────────────────────────── */
.industries-page .industries__inner{display:grid;gap:clamp(40px,8vw,120px)}
.industries-page .industry{display:grid;gap:24px;align-items:center}
.industries-page .industry__text{display:grid;gap:24px;align-content:start}
.industries-page .industry__media{border-radius:24px;overflow:hidden;background:#000;height:640px}
.industries-page .industry__img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.industries-page .stats__inner{display:grid;gap:16px}
.industries-page .stat-card{background:#191919;border:1px solid rgba(217,217,217,.2);border-radius:24px;padding:28px;display:grid;gap:10px;text-align:center}
.industries-page .stat-card__value{font-weight:700;font-size:40px;line-height:1.2}
@media(min-width:1024px){
  .industries-page .industry{grid-template-columns:463px 1fr;gap:50px}
  .industries-page .industry--reverse{grid-template-columns:1fr 463px}
  .industries-page .stats__inner{grid-template-columns:repeat(4,1fr)}
}

/* ─── STICKY NAV + DRAWER — prevent FOUC before marketing-shared.css loads ── */
/* These mirror the initial "hidden" states in marketing-shared.css so the nav
   never flashes as unstyled text during the async-CSS window. */
#sticky-nav{
  position:fixed;top:0;left:0;right:0;z-index:1002;
  box-sizing:border-box;
  min-height:calc(80px + env(safe-area-inset-top,0px));
  padding-top:env(safe-area-inset-top,0px);
  padding-left:max(var(--section-inline),env(safe-area-inset-left,0px));
  padding-right:max(var(--section-inline),env(safe-area-inset-right,0px));
  display:flex;align-items:center;justify-content:center;
  transform:translateY(-100%);-webkit-transform:translateY(-100%);
  background:rgba(19,19,19,.3);
  backdrop-filter:blur(50px);-webkit-backdrop-filter:blur(50px);
  border-bottom:1px solid rgba(255,255,255,.12);
  backface-visibility:hidden;
}
.nav-inner{
  display:flex;flex-direction:row;flex-wrap:nowrap;
  align-items:center;justify-content:center;
  gap:clamp(14px,1.85vw,26px);
  width:min(1440px,100%);min-height:80px;
  box-sizing:border-box;position:relative;
}
.nav-links{
  display:flex;align-items:center;
  list-style:none;margin:0;padding:0;
}
#nav-drawer{
  position:fixed;inset:0;z-index:1001;
  visibility:hidden;opacity:0;pointer-events:none;
}

/* ─── KEYFRAMES ──────────────────────────────────────────────── */
@keyframes heroWordmarkIn{
  from{opacity:0;transform:translateY(-10px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes section-reveal-rise{
  from{opacity:0;transform:translate3d(0,28px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}