/* ============================================================
   GRAV — Blocksy child theme main stylesheet
   Scoped under .grav-scope to avoid clashing with Blocksy core.
   All block patterns wrap their content in <div class="grav-scope">.
   ============================================================ */

/* ================ TOKENS ================ */
:root{
  --grav-ink:#060A1A;
  --grav-ink-1:#0A0F25;
  --grav-ink-2:#121834;
  --grav-ink-3:#1A2142;
  --grav-paper:#F7F7F3;
  --grav-paper-dim:rgba(247,247,243,0.74);
  --grav-paper-fade:rgba(247,247,243,0.48);
  --grav-paper-quiet:rgba(247,247,243,0.28);
  --grav-cobalt:#4D7BFF;
  --grav-cobalt-deep:#1E3CCB;
  --grav-cobalt-mid:#2B55E8;
  --grav-cobalt-glow:#8AB0FF;
  --grav-iris:#E8B8E0;
  --grav-iris-soft:#F4D6EA;
  --grav-iris-deep:#B87CAE;
  --grav-acid:#C7FF3D;
  --grav-line:rgba(255,255,255,0.08);
  --grav-line-2:rgba(255,255,255,0.04);
  --grav-line-hi:rgba(255,255,255,0.14);
  --grav-glass:rgba(255,255,255,0.04);
  --grav-glass-2:rgba(255,255,255,0.07);
  --grav-r-lg:22px;
  --grav-r-md:14px;
  --grav-r-sm:10px;
  --grav-ease-g:cubic-bezier(.2,.8,.2,1);
  --grav-ease-o:cubic-bezier(.16,1,.3,1);
  --grav-ff-sans:'Space Grotesk','Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,'SF Pro KR','Helvetica Neue',Arial,sans-serif;
  --grav-ff-display:'Space Grotesk','Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,'SF Pro KR','Helvetica Neue',Arial,sans-serif;
  --grav-ff-mono:'Space Grotesk',ui-monospace,'SF Mono','Menlo',monospace;
}

/* Animated conic gradient variable (Houdini) */
@property --grav-bangle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

/* ================ BODY / PAGE FRAME ================ */
/* When the home template is active, dim the body to ink */
body.grav-dark{
  background:var(--grav-ink);
  color:var(--grav-paper);
  font-family:var(--grav-ff-sans);
  letter-spacing:-0.015em;
  -webkit-font-smoothing:antialiased;
}
body.grav-dark::after{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:100;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.035 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.85;mix-blend-mode:overlay;
}

/* ================ SCOPE ================ */
.grav-scope{
  color:var(--grav-paper);
  font-family:var(--grav-ff-sans);
}
.grav-scope *{box-sizing:border-box;}
.grav-scope h1,
.grav-scope h2,
.grav-scope h3,
.grav-scope h4{
  font-family:var(--grav-ff-display);
  font-weight:600;
  letter-spacing:-0.03em;
  line-height:1.02;
  color:var(--grav-paper);
}
.grav-scope a{color:inherit;text-decoration:none;}

.grav-wrap{max-width:1280px;margin:0 auto;padding:0 28px;position:relative;z-index:2;}

.grav-eyebrow{
  font-size:11px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--grav-paper-fade);
  display:inline-flex;align-items:center;gap:10px;
}
.grav-eyebrow::before{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--grav-iris);
  box-shadow:0 0 14px var(--grav-iris);
}

/* ================ HERO ================ */
.grav-hero{
  position:relative;min-height:100vh;padding:140px 0 80px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;isolation:isolate;background:var(--grav-ink);
}
.grav-hero-stage{position:absolute;inset:0;z-index:0;}
.grav-hero-aura{
  position:absolute;inset:-15%;z-index:0;
  background:
    radial-gradient(ellipse 55% 55% at 50% 105%, rgba(232,184,224,0.36) 0%, transparent 62%),
    radial-gradient(ellipse 40% 55% at 28% 95%, rgba(77,123,255,0.34) 0%, transparent 60%),
    radial-gradient(ellipse 40% 55% at 72% 95%, rgba(30,60,203,0.30) 0%, transparent 60%),
    radial-gradient(ellipse 55% 40% at 50% 60%, rgba(77,123,255,0.18) 0%, transparent 70%);
  filter:blur(44px);
  animation:grav-auraDrift 22s ease-in-out infinite alternate;
  will-change:transform;
}
.grav-hero-aura-2{
  position:absolute;inset:-15%;z-index:0;
  background:radial-gradient(ellipse 30% 40% at 50% 80%, rgba(232,184,224,0.28) 0%, transparent 60%);
  filter:blur(66px);
  animation:grav-auraHue 17s ease-in-out infinite alternate;
  mix-blend-mode:screen;
}
.grav-hero-orb{
  position:absolute;z-index:0;pointer-events:none;
  top:22%;left:68%;width:28vw;height:28vw;border-radius:50%;
  background:radial-gradient(circle, rgba(138,176,255,0.28) 0%, rgba(138,176,255,0) 70%);
  filter:blur(40px);
  animation:grav-orbDrift 26s ease-in-out infinite alternate;
  will-change:transform;
}
.grav-hero-beam{position:absolute;inset:0;z-index:1;pointer-events:none;}
.grav-hero-beam svg{width:100%;height:100%;}
.grav-beam-outer{animation:grav-beamBreathe 7.3s ease-in-out infinite alternate;transform-origin:50% 100%;transform-box:fill-box;}
.grav-beam-core {animation:grav-coreShift 11.7s ease-in-out infinite alternate;transform-origin:50% 100%;transform-box:fill-box;}
.grav-beam-horizon{animation:grav-horizonPulse 5.1s ease-in-out infinite alternate;}
.grav-hero-gloss{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.035) 0%, rgba(255,255,255,0) 32%),
    radial-gradient(ellipse 120% 40% at 50% 0%, rgba(138,176,255,0.10) 0%, transparent 65%);
  mix-blend-mode:screen;
}
.grav-hero-vignette{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 45%, rgba(6,10,26,0.45) 100%),
    linear-gradient(to right, rgba(6,10,26,0.5), transparent 15%, transparent 85%, rgba(6,10,26,0.5));
}
.grav-hero-text{position:relative;z-index:5;text-align:center;padding:0 24px;max-width:1000px;margin:0 auto;}
.grav-hero-text .grav-chip{
  display:inline-flex;align-items:center;gap:10px;
  padding:9px 16px;border-radius:999px;
  background:rgba(255,255,255,0.06);
  border:1px solid var(--grav-line-hi);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.09), 0 10px 40px rgba(77,123,255,0.15);
  font-size:12px;color:var(--grav-paper-dim);letter-spacing:0.04em;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.grav-hero-text .grav-chip .grav-live-d{width:6px;height:6px;border-radius:50%;background:var(--grav-acid);box-shadow:0 0 12px var(--grav-acid);animation:grav-pulse 2s ease-in-out infinite;}
.grav-hero-text h1{
  margin-top:32px;font-size:clamp(60px,10vw,156px);font-weight:600;
  line-height:0.96;letter-spacing:-0.045em;color:var(--grav-paper);
  text-shadow:0 4px 80px rgba(6,10,26,0.55);
}
.grav-hero-text h1 .grav-sub{
  display:block;margin:22px auto 0;
  font-size:clamp(18px,2vw,24px);font-weight:400;letter-spacing:-0.005em;
  line-height:1.42;color:var(--grav-paper-dim);max-width:640px;
}
.grav-hero-text .grav-actions{margin-top:44px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* ================ BUTTONS ================ */
.grav-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 22px;border-radius:999px;
  font-size:14px;font-weight:600;
  transition:transform .4s var(--grav-ease-o),box-shadow .4s var(--grav-ease-o),background .3s var(--grav-ease-g);
  will-change:transform;
}
.grav-btn-primary{background:var(--grav-paper);color:var(--grav-ink);box-shadow:0 8px 32px rgba(247,247,243,0.15);}
.grav-btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(247,247,243,0.26);}
.grav-btn-ghost{background:var(--grav-glass);color:var(--grav-paper);border:1px solid var(--grav-line-hi);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.06);}
.grav-btn-ghost:hover{background:var(--grav-glass-2);}
.grav-btn .grav-arr{transition:transform .4s var(--grav-ease-o);}
.grav-btn:hover .grav-arr{transform:translateX(4px);}

/* ================ MARQUEE STRIP ================ */
.grav-strip{
  position:relative;border-top:1px solid var(--grav-line);border-bottom:1px solid var(--grav-line);
  padding:24px 0;overflow:hidden;background:rgba(6,10,26,0.6);backdrop-filter:blur(4px);
}
.grav-strip-inner{display:flex;gap:60px;font-family:var(--grav-ff-display);font-size:clamp(30px,4vw,52px);font-weight:700;letter-spacing:-0.02em;white-space:nowrap;animation:grav-marq 34s linear infinite;}
.grav-strip-inner span{display:inline-flex;align-items:center;gap:60px;color:var(--grav-paper);}
.grav-strip-inner i{width:8px;height:8px;border-radius:50%;background:var(--grav-cobalt);box-shadow:0 0 16px var(--grav-cobalt);font-style:normal;}
.grav-strip-inner i.grav-iris{background:var(--grav-iris);box-shadow:0 0 16px var(--grav-iris);}

/* ================ SECTION HEAD ================ */
.grav-section-head{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:end;padding:140px 0 56px;}
.grav-section-head h2{font-size:clamp(44px,5.6vw,80px);letter-spacing:-0.04em;line-height:1.02;}
.grav-section-head .grav-side{color:var(--grav-paper-dim);font-size:16px;line-height:1.55;max-width:460px;}

/* ================ SERVICES ================ */
.grav-services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.grav-svc{
  position:relative;border-radius:var(--grav-r-lg);padding:36px;min-height:380px;
  display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;
  border:1px solid var(--grav-line);background:var(--grav-ink-1);
  transition:transform .5s var(--grav-ease-o),border-color .3s var(--grav-ease-g),box-shadow .5s var(--grav-ease-o);
  isolation:isolate;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05),0 1px 1px rgba(0,0,0,0.2),0 20px 60px -20px rgba(0,0,0,0.35);
}
.grav-svc:hover{
  transform:translateY(-6px);border-color:var(--grav-line-hi);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),0 1px 1px rgba(0,0,0,0.2),0 32px 80px -24px rgba(77,123,255,0.35);
}
.grav-svc .grav-backdrop{position:absolute;inset:0;z-index:0;transition:opacity .4s var(--grav-ease-g),transform .8s var(--grav-ease-o);opacity:.95;}
.grav-svc:hover .grav-backdrop{opacity:1;transform:scale(1.04);}
.grav-svc .grav-gloss{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(255,255,255,0.08) 0%, transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.035) 0%, rgba(255,255,255,0) 28%, rgba(255,255,255,0) 78%, rgba(0,0,0,0.18) 100%);
  mix-blend-mode:screen;
}
.grav-svc .grav-halo{position:absolute;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s var(--grav-ease-g);filter:blur(28px);}
.grav-svc:hover .grav-halo{opacity:1;}
.grav-svc-1 .grav-backdrop{background:
  radial-gradient(ellipse 85% 70% at 80% 18%, rgba(77,123,255,0.68) 0%, transparent 60%),
  radial-gradient(ellipse 60% 60% at 20% 100%, rgba(30,60,203,0.45) 0%, transparent 55%),
  linear-gradient(135deg, #0F1740 0%, #060A1A 100%);}
.grav-svc-1 .grav-halo{inset:auto -10% -10% -10%;height:60%;background:radial-gradient(ellipse 60% 100% at 80% 100%, rgba(138,176,255,0.55) 0%, transparent 65%);}
.grav-svc-2 .grav-backdrop{background:
  radial-gradient(ellipse 90% 90% at 20% 30%, rgba(232,184,224,0.50) 0%, transparent 55%),
  radial-gradient(ellipse 80% 80% at 90% 100%, rgba(184,124,174,0.30) 0%, transparent 55%),
  linear-gradient(135deg, #1A0F22 0%, #060A1A 100%);}
.grav-svc-2 .grav-halo{inset:-10% -10% auto -10%;height:65%;background:radial-gradient(ellipse 60% 100% at 30% 0%, rgba(244,214,234,0.55) 0%, transparent 65%);}
.grav-svc-3 .grav-backdrop{background:
  radial-gradient(ellipse 90% 100% at 50% 115%, rgba(77,123,255,0.60) 0%, transparent 55%),
  radial-gradient(ellipse 60% 60% at 10% 20%, rgba(138,176,255,0.25) 0%, transparent 60%),
  linear-gradient(180deg, #060A1A 0%, #0F1C3E 100%);}
.grav-svc-3 .grav-halo{inset:auto -10% -15% -10%;height:70%;background:radial-gradient(ellipse 70% 100% at 50% 100%, rgba(138,176,255,0.55) 0%, transparent 65%);}
.grav-svc-4 .grav-backdrop{background:
  radial-gradient(ellipse 80% 90% at 100% 100%, rgba(199,255,61,0.26) 0%, transparent 55%),
  radial-gradient(ellipse 70% 70% at 20% 10%, rgba(77,123,255,0.42) 0%, transparent 60%),
  linear-gradient(225deg, #121834 0%, #060A1A 100%);}
.grav-svc-4 .grav-halo{inset:auto -10% -15% -10%;height:55%;background:radial-gradient(ellipse 50% 100% at 85% 100%, rgba(199,255,61,0.42) 0%, transparent 65%);}

.grav-svc-content{position:relative;z-index:3;display:flex;flex-direction:column;gap:10px;}
.grav-svc-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.grav-svc-no{font-family:var(--grav-ff-mono);font-size:11px;color:var(--grav-paper-fade);letter-spacing:0.18em;}
.grav-svc-cat{font-size:11px;color:var(--grav-paper-fade);letter-spacing:0.2em;text-transform:uppercase;}
.grav-svc h3{font-size:clamp(34px,3.8vw,50px);letter-spacing:-0.035em;line-height:1.02;margin-top:auto;color:var(--grav-paper);}
.grav-svc p{color:var(--grav-paper-dim);font-size:15px;line-height:1.55;margin-top:14px;max-width:360px;}
.grav-svc .grav-tags{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;}
.grav-svc .grav-tags span{font-size:11px;color:var(--grav-paper-dim);padding:6px 10px;border-radius:999px;background:var(--grav-glass);border:1px solid var(--grav-line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);}
.grav-svc-4 .grav-tags span.grav-live-tag{color:var(--grav-acid);border-color:rgba(199,255,61,0.35);box-shadow:inset 0 1px 0 rgba(199,255,61,0.15), 0 0 16px rgba(199,255,61,0.12);}
.grav-svc .grav-more{position:absolute;right:30px;top:30px;z-index:4;width:36px;height:36px;border-radius:50%;background:var(--grav-glass);border:1px solid var(--grav-line-hi);display:flex;align-items:center;justify-content:center;color:var(--grav-paper-dim);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .3s var(--grav-ease-g),color .3s var(--grav-ease-g),transform .4s var(--grav-ease-o);box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);}
.grav-svc:hover .grav-more{background:var(--grav-paper);color:var(--grav-ink);transform:rotate(-45deg);}

/* ================ APPROACH ================ */
.grav-approach{position:relative;margin-top:140px;padding:140px 0;overflow:hidden;border-top:1px solid var(--grav-line);border-bottom:1px solid var(--grav-line);isolation:isolate;}
.grav-approach::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 70vw 60vh at 50% 40%, rgba(77,123,255,0.46) 0%, transparent 58%),
    radial-gradient(ellipse 50vw 50vh at 15% 80%, rgba(232,184,224,0.30) 0%, transparent 60%),
    radial-gradient(ellipse 50vw 50vh at 85% 80%, rgba(30,60,203,0.32) 0%, transparent 60%),
    radial-gradient(ellipse 30vw 30vh at 50% 100%, rgba(138,176,255,0.25) 0%, transparent 55%);
  filter:blur(22px);
  animation:grav-auraDrift 26s ease-in-out infinite alternate;
}
.grav-approach-gloss{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.22) 100%);
  mix-blend-mode:screen;
}
.grav-approach-beam{position:absolute;left:50%;bottom:-10%;transform:translateX(-50%);width:120%;height:130%;z-index:0;opacity:.65;pointer-events:none;}
.grav-approach .grav-wrap{position:relative;z-index:2;text-align:center;}
.grav-approach h2{margin-top:22px;font-size:clamp(60px,9vw,140px);letter-spacing:-0.045em;line-height:0.98;max-width:1100px;margin-left:auto;margin-right:auto;}
.grav-approach .grav-lead{margin:28px auto 0;max-width:640px;color:var(--grav-paper-dim);font-size:18px;line-height:1.55;}
.grav-approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:80px;}
.grav-approach-item{
  position:relative;padding:32px 28px;
  background:rgba(255,255,255,0.04);border:1px solid var(--grav-line);border-radius:var(--grav-r-md);
  backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);
  text-align:left;
  transition:transform .5s var(--grav-ease-o),background .3s var(--grav-ease-g),border-color .3s var(--grav-ease-g),box-shadow .5s var(--grav-ease-o);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),inset 0 -1px 0 rgba(0,0,0,0.2),0 18px 40px -18px rgba(0,0,0,0.45);
  overflow:hidden;
  isolation:isolate;
}
.grav-approach-item::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 50% -30%, rgba(255,255,255,0.10) 0%, transparent 55%);
}
.grav-approach-item:hover{
  transform:translateY(-4px);background:rgba(255,255,255,0.06);border-color:var(--grav-line-hi);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12),inset 0 -1px 0 rgba(0,0,0,0.2),0 24px 60px -18px rgba(77,123,255,0.3);
}
.grav-approach-item > *{position:relative;z-index:1;}
.grav-approach-item .grav-n{font-family:var(--grav-ff-mono);font-size:11px;color:var(--grav-iris);letter-spacing:0.2em;text-transform:uppercase;}
.grav-approach-item h4{margin-top:16px;font-size:24px;letter-spacing:-0.02em;line-height:1.12;color:var(--grav-paper);}
.grav-approach-item p{margin-top:12px;font-size:14px;color:var(--grav-paper-dim);line-height:1.6;}

/* ================ WORKS ================ */
.grav-works{padding:140px 0 20px;}
.grav-works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.grav-case{
  position:relative;aspect-ratio:4/5;border-radius:var(--grav-r-lg);overflow:hidden;
  border:1px solid var(--grav-line);
  display:flex;flex-direction:column;justify-content:flex-end;padding:28px;
  transition:transform .5s var(--grav-ease-o),box-shadow .5s var(--grav-ease-o),border-color .3s var(--grav-ease-g);
  background:var(--grav-ink-1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05),0 20px 50px -20px rgba(0,0,0,0.4);
  isolation:isolate;
}
.grav-case:hover{
  transform:translateY(-6px);border-color:var(--grav-line-hi);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),0 32px 72px -22px rgba(77,123,255,0.28);
}
.grav-case .grav-bg{position:absolute;inset:0;z-index:0;transition:transform .8s var(--grav-ease-o);}
.grav-case:hover .grav-bg{transform:scale(1.05);}
.grav-case-1 .grav-bg{background:
  radial-gradient(circle at 30% 30%, rgba(232,184,224,0.65) 0%, transparent 48%),
  radial-gradient(ellipse at 80% 100%, rgba(138,176,255,0.3) 0%, transparent 55%),
  linear-gradient(160deg, #1E3CCB 0%, #060A1A 70%);}
.grav-case-2 .grav-bg{background:
  radial-gradient(ellipse at 50% 100%, #4D7BFF 0%, transparent 70%),
  radial-gradient(circle at 20% 20%, rgba(138,176,255,0.35) 0%, transparent 50%),
  linear-gradient(200deg, #060A1A 0%, #0F1740 100%);}
.grav-case-3 .grav-bg{background:
  radial-gradient(circle at 80% 100%, rgba(199,255,61,0.28) 0%, transparent 55%),
  radial-gradient(circle at 20% 30%, rgba(77,123,255,0.4) 0%, transparent 60%),
  linear-gradient(135deg, #060A1A 0%, #1E3CCB 80%, #8AB0FF 120%);}
.grav-case .grav-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 40%, rgba(6,10,26,0.82) 100%);}
.grav-case .grav-bg::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(255,255,255,0.08) 0%, transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 20%);
  mix-blend-mode:screen;
}
.grav-case .grav-info{position:relative;z-index:2;}
.grav-case .grav-cat{font-size:11px;letter-spacing:0.22em;color:var(--grav-paper-dim);text-transform:uppercase;}
.grav-case h4{margin-top:8px;font-size:28px;letter-spacing:-0.025em;line-height:1.08;color:var(--grav-paper);}
.grav-case .grav-meta{margin-top:14px;font-size:12px;color:var(--grav-paper-fade);display:flex;gap:14px;font-family:var(--grav-ff-mono);letter-spacing:0.05em;}

/* ================ CTA ================ */
.grav-cta{
  margin:140px 0 100px;border-radius:28px;position:relative;overflow:hidden;padding:84px 56px;
  border:1px solid var(--grav-line-hi);
  background:
    radial-gradient(ellipse 60% 80% at 78% 110%, rgba(232,184,224,0.36) 0%, transparent 58%),
    radial-gradient(ellipse 80% 80% at 18% 0%, rgba(77,123,255,0.58) 0%, transparent 58%),
    radial-gradient(ellipse 40% 40% at 100% 50%, rgba(184,124,174,0.22) 0%, transparent 55%),
    linear-gradient(135deg, #0F1740 0%, #060A1A 100%);
  isolation:isolate;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10),0 40px 100px -30px rgba(77,123,255,0.28);
}
.grav-cta::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 90% 40% at 50% 0%, rgba(255,255,255,0.10) 0%, transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 22%, transparent 78%, rgba(0,0,0,0.20) 100%);
  mix-blend-mode:screen;
}
.grav-cta::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 40% 40% at 18% 0%, rgba(138,176,255,0.22) 0%, transparent 55%);
  filter:blur(20px);
  animation:grav-ctaGlow 12s ease-in-out infinite alternate;
}
.grav-cta .grav-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:50px;position:relative;z-index:2;align-items:end;}
.grav-cta h2{font-size:clamp(44px,5.8vw,82px);letter-spacing:-0.04em;line-height:1;}
.grav-cta h2 em{font-style:normal;background:linear-gradient(120deg, var(--grav-paper), var(--grav-iris) 60%, var(--grav-cobalt-glow));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.grav-cta p{color:var(--grav-paper-dim);margin-top:20px;font-size:16px;line-height:1.6;max-width:460px;}
.grav-cta .grav-contact{
  padding:28px;border-radius:var(--grav-r-md);
  background:rgba(255,255,255,0.05);border:1px solid var(--grav-line-hi);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12),inset 0 -1px 0 rgba(0,0,0,0.2),0 20px 50px -16px rgba(0,0,0,0.35);
  position:relative;isolation:isolate;overflow:hidden;
}
.grav-cta .grav-contact .grav-kv{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--grav-line-2);font-size:13px;}
.grav-cta .grav-contact .grav-kv:last-of-type{border-bottom:0;}
.grav-cta .grav-contact .grav-kv .grav-k{color:var(--grav-paper-fade);letter-spacing:0.1em;text-transform:uppercase;font-size:11px;font-family:var(--grav-ff-mono);}
.grav-cta .grav-contact .grav-kv .grav-v{color:var(--grav-paper);font-weight:500;text-align:right;}
.grav-cta .grav-contact .grav-btn{margin-top:22px;width:100%;justify-content:center;}

/* ================ FOOTER ================ */
.grav-footer{padding:80px 0 50px;border-top:1px solid var(--grav-line);position:relative;z-index:2;isolation:isolate;background:var(--grav-ink);color:var(--grav-paper);}
.grav-footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:60%;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 40vw 30vh at 20% 0%, rgba(232,184,224,0.18) 0%, transparent 70%),
    radial-gradient(ellipse 40vw 30vh at 80% 0%, rgba(77,123,255,0.14) 0%, transparent 70%);
  filter:blur(30px);
}
.grav-footer .grav-wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;align-items:start;position:relative;z-index:2;}
.grav-footer .grav-brand-blk{display:flex;gap:14px;align-items:flex-start;}
.grav-footer .grav-brand-blk .grav-dot{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 30% 30%, var(--grav-cobalt-glow), var(--grav-cobalt) 45%, var(--grav-cobalt-deep) 100%);box-shadow:0 0 24px rgba(77,123,255,0.55), inset 0 1px 2px rgba(255,255,255,0.3);flex-shrink:0;}
.grav-footer .grav-brand-blk .grav-txt h5{font-family:var(--grav-ff-display);font-size:16px;letter-spacing:0.04em;color:var(--grav-paper);}
.grav-footer .grav-brand-blk .grav-txt p{margin-top:8px;font-size:12px;color:var(--grav-paper-fade);line-height:1.6;max-width:320px;}
.grav-footer .grav-col h6{font-family:var(--grav-ff-mono);font-size:11px;color:var(--grav-paper-fade);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:14px;}
.grav-footer .grav-col .grav-row{font-size:13px;color:var(--grav-paper-dim);line-height:1.8;}
.grav-footer .grav-col .grav-row .grav-label{font-family:var(--grav-ff-mono);display:block;font-size:10px;color:var(--grav-paper-quiet);letter-spacing:0.12em;text-transform:uppercase;margin-top:10px;}
.grav-footer .grav-bottom{margin-top:60px;padding-top:24px;border-top:1px solid var(--grav-line);display:flex;justify-content:space-between;gap:20px;color:var(--grav-paper-fade);font-size:12px;flex-wrap:wrap;position:relative;z-index:2;}
.grav-footer .grav-bottom .grav-links{display:flex;gap:18px;}
.grav-footer .grav-bottom .grav-links a:hover{color:var(--grav-paper);}

/* ================ ANIMATED NEON BORDER ================ */
.grav-svc::before,
.grav-approach-item::after,
.grav-case::before,
.grav-cta .grav-contact::before{
  content:"";position:absolute;inset:0;padding:1.5px;border-radius:inherit;
  background: conic-gradient(from var(--grav-bangle),
    transparent 0%, transparent 20%,
    rgba(138,176,255,0.40) 26%,
    rgba(77,123,255,0.95) 33%,
    rgba(232,184,224,0.92) 40%,
    rgba(138,176,255,0.45) 48%,
    transparent 58%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events:none;z-index:6;opacity:.5;will-change:--grav-bangle, opacity;
}
.grav-svc::before          { animation: grav-borderRotate 11s linear infinite, grav-borderPulse 3.1s ease-in-out infinite alternate; }
.grav-approach-item::after { animation: grav-borderRotate 13s linear infinite, grav-borderPulse 4.3s ease-in-out infinite alternate; }
.grav-case::before         { animation: grav-borderRotate 15s linear infinite, grav-borderPulse 3.7s ease-in-out infinite alternate; }
.grav-cta .grav-contact::before { animation: grav-borderRotate 9s linear infinite, grav-borderPulse 5.1s ease-in-out infinite alternate; }
.grav-svc-2::before { animation-delay: -2.5s, -0.8s; }
.grav-svc-3::before { animation-delay: -5.0s, -1.6s; }
.grav-svc-4::before { animation-delay: -8.0s, -2.3s; }
.grav-approach-item:nth-child(2)::after { animation-delay: -3.0s, -1.4s; }
.grav-approach-item:nth-child(3)::after { animation-delay: -6.0s, -2.8s; }
.grav-case-2::before { animation-delay: -4.0s, -1.0s; }
.grav-case-3::before { animation-delay: -8.0s, -2.5s; }
.grav-svc:hover::before,
.grav-approach-item:hover::after,
.grav-case:hover::before,
.grav-cta .grav-contact:hover::before { filter:brightness(1.4) saturate(1.15); }

/* ================ KEYFRAMES ================ */
@keyframes grav-auraDrift{
  0%{transform:translate(-6%,0) scale(1);}
  50%{transform:translate(7%,-5%) scale(1.08);}
  100%{transform:translate(-4%,4%) scale(1.12);}
}
@keyframes grav-auraHue{
  0%{opacity:.45;transform:translate(-5%,0) scale(1.00);}
  50%{opacity:.85;transform:translate(4%,-3%) scale(1.15);}
  100%{opacity:1.00;transform:translate(-3%,5%) scale(1.22);}
}
@keyframes grav-orbDrift{
  0%{transform:translate(6%,-4%) scale(0.95);opacity:.70;}
  50%{transform:translate(-10%,3%) scale(1.08);opacity:.95;}
  100%{transform:translate(-18%,12%) scale(1.18);opacity:1;}
}
@keyframes grav-beamBreathe{
  0%{opacity:0.72;transform:scaleY(0.95) scaleX(0.97);}
  100%{opacity:1.00;transform:scaleY(1.05) scaleX(1.06);}
}
@keyframes grav-coreShift{
  0%{opacity:0.45;transform:translateX(-3%) scaleY(0.96);}
  50%{opacity:0.85;transform:translateX(0.5%) scaleY(1.02);}
  100%{opacity:1.00;transform:translateX(3%) scaleY(1.04);}
}
@keyframes grav-horizonPulse{
  0%{opacity:0.30;transform:scaleX(0.88);}
  100%{opacity:1.00;transform:scaleX(1.06);}
}
@keyframes grav-ctaGlow{
  0%{opacity:.55;transform:translate(-4%,-2%) scale(0.96);}
  50%{opacity:.90;transform:translate(2%,2%) scale(1.06);}
  100%{opacity:1.00;transform:translate(8%,4%) scale(1.12);}
}
@keyframes grav-marq{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes grav-pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
@keyframes grav-borderRotate{to{--grav-bangle:360deg;}}
@keyframes grav-borderPulse{
  0%{opacity:0.22;}
  50%{opacity:0.55;}
  100%{opacity:0.88;}
}

/* ================ RESPONSIVE ================ */
@media (max-width:960px){
  .grav-section-head{grid-template-columns:1fr;padding:100px 0 40px;}
  .grav-services-grid{grid-template-columns:1fr;}
  .grav-approach-grid{grid-template-columns:1fr;gap:14px;}
  .grav-works-grid{grid-template-columns:1fr;}
  .grav-cta{padding:56px 28px;}
  .grav-cta .grav-grid{grid-template-columns:1fr;gap:36px;}
  .grav-footer .grav-wrap{grid-template-columns:1fr;gap:32px;}
}
@media (max-width:560px){
  .grav-hero{padding:120px 0 72px;}
  .grav-wrap{padding:0 20px;}
  .grav-svc{padding:28px;}
  .grav-approach-item{padding:26px 22px;}
  .grav-cta{padding:44px 22px;margin:100px 0 80px;}
}

/* ================ REDUCED MOTION ================ */
@media (prefers-reduced-motion: reduce){
  .grav-hero-aura,.grav-hero-aura-2,.grav-hero-orb,.grav-approach::before,
  .grav-beam-outer,.grav-beam-core,.grav-beam-horizon,.grav-strip-inner,.grav-cta::after,
  .grav-svc::before,.grav-approach-item::after,.grav-case::before,.grav-cta .grav-contact::before{
    animation:none !important;
  }
}


/* === CPT archive/single: hide author+date byline (by GRAV) === */
body.post-type-archive-work .entry-meta,
body.post-type-archive-service .entry-meta,
body.single-work .entry-meta,
body.single-service .entry-meta,
body.tax-work-category .entry-meta,
body.tax-service-category .entry-meta {
  display: none !important;
}

/* === Hide default "Home" H1 on home pages (hero H1 is authoritative) === */
body.home .entry-header,
body.home .page-title,
body.home h1.entry-title,
body.page-id-9 .entry-header,
body.page-id-9 .page-title,
body.page-id-9 h1.entry-title,
body.page-id-47 .entry-header,
body.page-id-47 .page-title,
body.page-id-47 h1.entry-title {
  display: none !important;
}


