/* HGX Media — Our Work */
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:ital,wght@1,400;1,600&display=swap&font-display=swap" rel="stylesheet">
/* ─── RESET ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ─── DESIGN SYSTEM VARIABLES ─── */
:root {
--blue:           #1B6CF2;
--blue-hover:     #1560d9;
--blue-bg:        rgba(27, 108, 242, 0.04);
--page-bg:        #070b15;
--surface:        #0d1526;
--text-primary:   #ffffff;
--text-secondary: #94a0b8;
--text-muted:     #5a6478;
--border:         rgba(255, 255, 255, 0.08);
--font:           'Inter', -apple-system, sans-serif;
--playfair:       'Playfair Display', Georgia, serif;
--max-w:          1200px;
--r:    12px;
--r-sm:  8px;
--r-lg: 16px;
--r-xl: 20px;
}

/* ─── BASE ─── */
html { scroll-behavior: smooth; }

#hgx-work-page {
font-family: var(--font);
background-color: var(--page-bg);
background-image: radial-gradient(circle, rgba(255,255,255,0.045) 1px, transparent 1px);
background-size: 24px 24px;
color: var(--text-primary);
overflow-x: clip;
-webkit-font-smoothing: antialiased;
position: relative;
}

::-webkit-scrollbar { width: 2px; }
::-webkit-scrollbar-track { background: var(--page-bg); }
::-webkit-scrollbar-thumb { background: rgba(27,108,242,0.4); }

/* ─── SCROLL PROGRESS ─── */

/* ─── CURSOR ─── */

/* ─── GRAIN OVERLAY ─── */
.hgx-grain-overlay { position: relative; }
.hgx-grain-overlay::after {
content: ''; position: absolute; inset: 0;
pointer-events: none; z-index: 1;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
background-size: 128px 128px; opacity: 0.5; mix-blend-mode: overlay;
}

/* ─── BUTTONS ─── */
.hgx-btn-primary {
background: linear-gradient(135deg, #2979ff 0%, #1B6CF2 50%, #1254d4 100%);
color: #fff; border: 1px solid rgba(255,255,255,0.1);
padding: 12px 28px; border-radius: 100px;
font-family: var(--font); font-size: 13px; font-weight: 600;
cursor: pointer; text-decoration: none;
display: inline-flex; align-items: center; gap: 6px;
letter-spacing: .01em; position: relative; overflow: hidden;
box-shadow: 0 4px 20px rgba(27,108,242,0.45),
            0 0 60px rgba(27,108,242,0.12),
            inset 0 1px 2px rgba(255,255,255,0.3),
            inset 0 -2px 4px rgba(0,0,0,0.15);
transform: translateZ(0);
transition: all .35s cubic-bezier(.23,1,.32,1);
}
.hgx-btn-primary::before {
content: ''; position: absolute; top: 0; left: -100%;
width: 60%; height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
animation: btnShimmer 3.5s ease infinite; pointer-events: none;
}
@keyframes btnShimmer {
0%   { left: -100%; }
40%  { left: 130%; }
100% { left: 130%; }
}
.hgx-btn-primary:hover {
background: linear-gradient(135deg, #4494ff 0%, #287cf8 50%, #1866e4 100%);
box-shadow: 0 8px 36px rgba(27,108,242,0.65), 0 0 90px rgba(27,108,242,0.3),
            inset 0 1px 2px rgba(255,255,255,0.45);
transform: translateZ(0) translateY(-2px) scale(1.015);
}
.hgx-btn-primary.btn-large { padding: 15px 36px; font-size: 14px; }

.hgx-btn-ghost {
background: transparent; color: var(--text-secondary);
border: 1px solid var(--border); padding: 12px 28px; border-radius: 100px;
font-family: var(--font); font-size: 13px; font-weight: 500;
cursor: pointer; text-decoration: none;
display: inline-flex; align-items: center; gap: 6px;
position: relative; overflow: hidden; transform: translateZ(0);
transition: all .3s cubic-bezier(.23,1,.32,1);
}
.hgx-btn-ghost:hover {
border-color: rgba(27,108,242,0.5); color: var(--blue);
background: rgba(27,108,242,0.08);
box-shadow: 0 4px 16px rgba(27,108,242,0.15);
transform: translateZ(0) translateY(-2px);
}
.hgx-btn-ghost.btn-large { padding: 15px 36px; font-size: 14px; }

/* ─── SECTIONS ─── */
section { padding: 96px 48px; position: relative; }
.hgx-section-inner { max-width: var(--max-w); margin: 0 auto; }

.hgx-section-label {
font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
color: var(--blue); margin-bottom: 10px; font-weight: 600;
opacity: 0; transform: translateX(-12px);
transition: opacity .5s ease, transform .5s ease;
}
.hgx-section-label.hgx-label-visible { opacity: 1; transform: translateX(0); }

.hgx-section-title {
font-size: clamp(24px, 3vw, 38px); font-weight: 500;
line-height: 1.2; letter-spacing: -.025em; max-width: 520px;
}
.hgx-section-title strong {
font-family: var(--playfair); font-style: italic;
font-weight: 600; letter-spacing: -0.01em;
}
.hgx-section-note {
font-size: 13px; color: var(--text-secondary);
max-width: 340px; line-height: 1.7; font-weight: 400;
}
.hgx-section-header {
display: flex; justify-content: space-between;
align-items: flex-start; margin-bottom: 56px; gap: 40px;
}

/* ─── ANIMATIONS ─── */
.hgx-gsap-fade {
opacity: 0; transform: translateY(24px);
transition: opacity .7s cubic-bezier(.23,1,.32,1), transform .7s cubic-bezier(.23,1,.32,1);
}
.hgx-gsap-fade.hgx-fade-in { opacity: 1; transform: translateY(0); }

.hgx-reveal-card {
opacity: 0; transform: translateY(28px);
transition: opacity .55s cubic-bezier(.23,1,.32,1), transform .55s cubic-bezier(.23,1,.32,1);
}
.hgx-reveal-card.hgx-is-visible { opacity: 1; transform: translateY(0); }

/* Word split */
.hgx-split-word {
display: inline-block; overflow: hidden;
vertical-align: bottom; margin-right: .22em;
padding-bottom: 0.12em; margin-bottom: -0.12em;
}
.hgx-split-word .hgx-word-inner {
display: inline-block; transform: translateY(105%);
transition: transform .65s cubic-bezier(.23,1,.32,1);
}
.hgx-split-revealed .hgx-split-word .hgx-word-inner { transform: translateY(0); }
.hgx-split-word:nth-child(1) .hgx-word-inner { transition-delay: 0s }
.hgx-split-word:nth-child(2) .hgx-word-inner { transition-delay: .06s }
.hgx-split-word:nth-child(3) .hgx-word-inner { transition-delay: .12s }
.hgx-split-word:nth-child(4) .hgx-word-inner { transition-delay: .18s }
.hgx-split-word:nth-child(5) .hgx-word-inner { transition-delay: .24s }
.hgx-split-word:nth-child(6) .hgx-word-inner { transition-delay: .30s }
.hgx-split-word:nth-child(7) .hgx-word-inner { transition-delay: .36s }
.hgx-split-word:nth-child(8) .hgx-word-inner { transition-delay: .42s }

/* Ripple */
.hgx-ripple-host { overflow: hidden; position: relative; }
.hgx-ripple-wave {
position: absolute; border-radius: 50%;
background: rgba(255,255,255,0.22); transform: scale(0);
animation: rippleAnim .55s ease-out forwards;
pointer-events: none; z-index: 10;
}
@keyframes rippleAnim { to { transform: scale(4); opacity: 0; } }


/* ══════════════════════════════════════════════
   01  HERO FRAME + HERO
══════════════════════════════════════════════ */

/* outer wrapper — hosts the glow ring (same technique as #work) */
.hgx-hero-frame {
position: relative;
margin: 12px 12px 0;
border-radius: var(--r-xl);
overflow: hidden;
background: #070b15;
border: 1px solid rgba(255,255,255,0.04);
}

/* rotating conic border glow */
.hgx-hero-glow-ring {
position: absolute; left: -50%; top: -50%;
width: 200%; height: 200%; pointer-events: none; z-index: 0;
background: conic-gradient(
    from var(--ray-angle, 0deg),
    transparent 0deg,
    rgba(27,108,242,0.0) 55deg,
    rgba(27,108,242,0.5) 88deg,
    rgba(100,160,255,0.82) 100deg,
    rgba(27,108,242,0.5) 112deg,
    rgba(27,108,242,0.0) 155deg,
    transparent 360deg);
animation: rayRotate 7s linear infinite; /* slightly slower than work */
}

/* masks the glow interior — only the 2px border strip shows */
.hgx-hero-ray-mask {
position: absolute; inset: 2px;
background: #070b15;
border-radius: calc(var(--r-xl) - 2px);
z-index: 1;
}

#hero {
min-height: 92dvh; min-height: 92vh;
display: flex; flex-direction: column;
justify-content: center; align-items: center;
padding: 140px 48px 120px; /* 140px top = clears fixed navbar + breathing room */
margin: 0; border-radius: 0;
position: relative; overflow: hidden;
background: #070b15;
z-index: 2; text-align: center;
}

/* ── FULL-COVER BACKGROUND IMAGE ── */
.hgx-hero-bg {
position: absolute; inset: 0; z-index: 0; background: #070b15;
}
.hgx-hero-bg img {
width: 100%; height: 100%;
object-fit: cover; object-position: center center;
}
/* Heavier center vignette for centered content readability */
.hgx-hero-bg::after {
content: ''; position: absolute; inset: 0;
background:
    radial-gradient(ellipse 70% 80% at 50% 50%, rgba(7,11,21,0.72) 0%, rgba(7,11,21,0.2) 70%, transparent 100%),
    linear-gradient(180deg, rgba(7,11,21,0.5) 0%, transparent 30%, transparent 65%, rgba(7,11,21,0.85) 100%);
}

/* ── BOTTOM GRADIENT FADE ── */
#hero::after {
content: ''; position: absolute;
bottom: 0; left: 0; right: 0;
height: 220px; pointer-events: none; z-index: 3;
background: linear-gradient(to bottom, transparent 0%, rgba(7,11,21,0.7) 55%, #070b15 100%);
}

/* ── CENTERED CONTENT ── */
.hgx-hero-content {
max-width: 860px; width: 100%;
position: relative; z-index: 4;
display: flex; flex-direction: column; align-items: center;
}

/* Kicker tag — lines on both sides for centered look */
.hgx-hero-tag {
font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
color: var(--blue); margin-bottom: 32px; font-weight: 600;
display: flex; align-items: center; gap: 14px; justify-content: center;
}
.hgx-hero-tag::before,
.hgx-hero-tag::after {
content: ''; display: block; width: 24px; height: 1px;
background: var(--blue); opacity: .6; flex-shrink: 0;
}

/* Big headline */
.hgx-work-hero-headline {
font-size: clamp(36px, 5.25vw, 76px);
font-weight: 500; line-height: .95;
letter-spacing: -.04em;
max-width: 100%; margin-bottom: 22px;
color: var(--text-primary);
}
.hgx-work-hero-headline .hgx-hl {
font-family: var(--playfair); font-style: italic;
font-weight: 400; color: var(--blue); letter-spacing: -0.01em;
}

/* Caption below headline */
.hgx-hero-sub-work {
font-size: 15px; line-height: 1.7;
color: rgba(255,255,255,0.38);
max-width: 440px; font-weight: 400;
margin-bottom: 40px;
}

/* ── STAT PILLS ── */
.hgx-hero-pills {
display: flex; gap: 10px; flex-wrap: wrap;
justify-content: center; margin-bottom: 36px;
}

.hgx-hero-pill {
display: inline-flex; align-items: center; gap: 8px;
padding: 10px 20px; border-radius: 100px;
background: rgba(255,255,255,0.06);
border: 1px solid rgba(255,255,255,0.11);
backdrop-filter: blur(20px) saturate(160%);
-webkit-backdrop-filter: blur(20px) saturate(160%);
box-shadow: 0 2px 12px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.08);
transition: background .3s, border-color .3s, transform .3s cubic-bezier(.23,1,.32,1);
cursor: default;
}
.hgx-hero-pill:hover {
background: rgba(27,108,242,0.12);
border-color: rgba(27,108,242,0.3);
transform: translateY(-2px);
}

.hgx-hero-pill-num {
font-size: 15px; font-weight: 700;
color: #fff; letter-spacing: -.025em;
text-shadow: 0 0 24px rgba(27,108,242,0.5);
}
.hgx-hero-pill-sep {
color: rgba(255,255,255,0.18); font-size: 13px; font-weight: 300;
}
.hgx-hero-pill-label {
font-size: 12px; color: rgba(255,255,255,0.42); font-weight: 400;
}

/* ── HERO CTA ── */
.hgx-hero-cta { display: flex; gap: 12px; align-items: center; justify-content: center; }

/* ── SCROLL INDICATOR — mouse outline ── */
.hgx-hero-scroll {
position: absolute; bottom: 36px; left: 50%;
transform: translateX(-50%);
display: flex; flex-direction: column; align-items: center; gap: 9px;
z-index: 5; pointer-events: none;
opacity: 0; animation: heroScrollFadeIn .8s ease 1.8s forwards;
}
@keyframes heroScrollFadeIn { to { opacity: 1; } }

/* mouse body */
.hgx-hero-scroll-mouse {
width: 20px; height: 32px;
border: 1.5px solid rgba(255,255,255,0.22);
border-radius: 10px;
display: flex; justify-content: center;
padding-top: 6px;
box-sizing: border-box;
}
/* scrolling wheel dot inside mouse */
.hgx-hero-scroll-wheel {
width: 3px; height: 6px;
background: var(--blue);
border-radius: 2px;
animation: mouseWheel 2s cubic-bezier(.4,0,.2,1) 1.8s infinite;
}
@keyframes mouseWheel {
0%   { transform: translateY(0);    opacity: 1; }
60%  { transform: translateY(8px);  opacity: 0; }
61%  { transform: translateY(0);    opacity: 0; }
100% { transform: translateY(0);    opacity: 1; }
}

.hgx-hero-scroll-label {
font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
color: rgba(255,255,255,0.25); font-weight: 500;
}


/* ══════════════════════════════════════════════
   01b  CLIENTS — logo grid (copied from homepage)
══════════════════════════════════════════════ */
#clients {
padding: 72px 48px 48px;
background: #ffffff;
margin: 12px 12px 0;        /* equal gap above + same side margins */
border-radius: var(--r-xl); /* fully rounded — own card now */
}
#clients .hgx-section-label { color: var(--blue); }
#clients .hgx-section-title { color: #0a0f1c; }
#clients .hgx-section-note  { color: #6b7a99; }

.hgx-logo-grid {
margin-top: 48px;
display: grid;
grid-template-columns: repeat(6, 1fr);
border: 1px solid rgba(0,0,0,0.1);
border-radius: var(--r);
overflow: hidden;
background: #ffffff;
}
.hgx-logo-cell {
aspect-ratio: 1.6/1;
display: flex; align-items: center; justify-content: center;
border-right:  1px solid rgba(0,0,0,0.08);
border-bottom: 1px solid rgba(0,0,0,0.08);
padding: 24px 28px;
background: #ffffff;
transition: background .35s, border-color .35s;
cursor: pointer; overflow: hidden;
opacity: 0; transform: translateY(10px) scale(0.97);
animation: none;
}
.hgx-logo-grid.hgx-revealed .hgx-logo-cell {
animation: logoReveal .55s cubic-bezier(.23,1,.32,1) forwards;
}
@keyframes logoReveal { to { opacity: 1; transform: translateY(0) scale(1); } }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(1)  { animation-delay:.03s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(2)  { animation-delay:.06s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(3)  { animation-delay:.09s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(4)  { animation-delay:.12s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(5)  { animation-delay:.15s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(6)  { animation-delay:.20s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(7)  { animation-delay:.25s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(8)  { animation-delay:.30s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(9)  { animation-delay:.35s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(10) { animation-delay:.40s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(11) { animation-delay:.45s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(12) { animation-delay:.50s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(13) { animation-delay:.55s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(14) { animation-delay:.60s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(15) { animation-delay:.65s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(16) { animation-delay:.70s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(17) { animation-delay:.75s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(18) { animation-delay:.80s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(19) { animation-delay:.85s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(20) { animation-delay:.90s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(21) { animation-delay:.94s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(22) { animation-delay:.97s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(23) { animation-delay:1.00s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(24) { animation-delay:1.03s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(25) { animation-delay:1.06s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(26) { animation-delay:1.09s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(27) { animation-delay:1.12s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(28) { animation-delay:1.15s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(29) { animation-delay:1.18s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(30) { animation-delay:1.21s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(31) { animation-delay:1.24s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(32) { animation-delay:1.27s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(33) { animation-delay:1.30s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(34) { animation-delay:1.33s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(35) { animation-delay:1.36s }
.hgx-logo-grid.hgx-revealed .hgx-logo-cell:nth-child(36) { animation-delay:1.39s }
.hgx-logo-cell:nth-child(6n)        { border-right: none; }
.hgx-logo-cell:nth-last-child(-n+6) { border-bottom: none; }
.hgx-logo-cell:hover {
background: rgba(27,108,242,0.04);
border-color: rgba(27,108,242,0.15);
}
.hgx-logo-cell img {
max-width: 95%; max-height: 80px;
object-fit: contain;
filter: opacity(0.72);
transition: filter .3s, transform .3s cubic-bezier(.23,1,.32,1);
}
.hgx-logo-cell:hover img { filter: opacity(1); transform: scale(1.06); }

.hgx-clients-cta { text-align: center; margin-top: 36px; }


/* ══════════════════════════════════════════════
   02  FEATURED WORK — 3-column card grid
══════════════════════════════════════════════ */
#work {
background: #060a13;
border-radius: var(--r-xl);
margin: 12px 12px 0;        /* equal gap above — matches hero frame + clients */
overflow: hidden;
position: relative;
border: 1px solid rgba(255,255,255,0.05);
}

/* rotating conic border glow */
#work > .hgx-work-glow-ring {
position: absolute; left: -50%; top: -50%;
width: 200%; height: 200%; pointer-events: none; z-index: 0;
background: conic-gradient(
    from var(--ray-angle, 0deg),
    transparent 0deg,
    rgba(27,108,242,0.0) 60deg,
    rgba(27,108,242,0.55) 90deg,
    rgba(100,160,255,0.85) 100deg,
    rgba(27,108,242,0.55) 110deg,
    rgba(27,108,242,0.0) 160deg,
    transparent 360deg);
animation: rayRotate 4s linear infinite;
}
@keyframes rayRotate {
from { transform: rotate(0deg);   transform-origin: center; }
to   { transform: rotate(360deg); transform-origin: center; }
}
.hgx-work-ray-mask {
position: absolute; inset: 2px;
background: #060a13; border-radius: calc(var(--r-xl) - 2px); z-index: 1;
}
#work .hgx-section-inner { position: relative; z-index: 2; }
#work .hgx-section-title { color: #fff; }
#work .hgx-section-note  { color: rgba(255,255,255,0.4); }
#work .hgx-section-label { color: var(--blue); }

/* ── CARD GRID ── */
.hgx-work-card-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}

.hgx-work-card {
background: rgba(255,255,255,0.025);
border: 1px solid rgba(255,255,255,0.07);
border-radius: var(--r-lg);
overflow: hidden;
cursor: pointer;
display: flex; flex-direction: column;
transition: transform .4s cubic-bezier(.23,1,.32,1),
            box-shadow .4s cubic-bezier(.23,1,.32,1),
            border-color .3s;
}
.hgx-work-card:hover {
transform: translateY(-6px);
border-color: rgba(27,108,242,0.28);
box-shadow: 0 24px 56px rgba(0,0,0,0.5), 0 0 0 1px rgba(27,108,242,0.1),
            0 0 60px rgba(27,108,242,0.06);
}

/* Visual area */
.hgx-wc-visual {
height: 220px; position: relative; overflow: hidden;
display: flex; align-items: center; justify-content: center;
flex-shrink: 0; background: #070d1a;
}

/* Full-bleed placeholder image */
.hgx-wc-img {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: cover; object-position: center;
filter: none;
transition: transform .6s cubic-bezier(.23,1,.32,1);
z-index: 0;
}
.hgx-work-card:hover .hgx-wc-img {
transform: scale(1.04);
}

/* Bottom gradient over image */
.hgx-wc-visual::before {
content: ''; position: absolute; inset: 0; z-index: 1;
background: linear-gradient(to top, rgba(6,10,19,0.85) 0%, rgba(6,10,19,0.2) 60%, transparent 100%);
pointer-events: none;
}
/* Top-edge subtle fade */
.hgx-wc-visual::after {
content: ''; position: absolute; top: 0; left: 0; right: 0; height: 60px; z-index: 1;
background: linear-gradient(to bottom, rgba(6,10,19,0.5) 0%, transparent 100%);
pointer-events: none;
}

/* Ghost watermark — sits on top of image */
.hgx-wc-ghost {
font-size: clamp(64px, 8vw, 100px);
font-weight: 900; letter-spacing: -.05em;
color: rgba(255,255,255,0.07);
user-select: none; pointer-events: none;
position: absolute; z-index: 2;
transition: transform .5s cubic-bezier(.23,1,.32,1), color .4s;
mix-blend-mode: overlay;
}
.hgx-work-card:hover .hgx-wc-ghost {
transform: scale(1.06);
color: rgba(255,255,255,0.12);
}

/* Arrow badge */
.hgx-wc-arrow-badge {
position: absolute; top: 14px; right: 14px;
width: 32px; height: 32px; border-radius: 50%;
background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
display: flex; align-items: center; justify-content: center;
font-size: 13px; color: rgba(255,255,255,0.2);
z-index: 3;
transition: all .3s cubic-bezier(.23,1,.32,1);
}
.hgx-work-card:hover .hgx-wc-arrow-badge {
background: var(--blue); border-color: var(--blue);
color: #fff; transform: rotate(0deg) scale(1.1);
box-shadow: 0 4px 16px rgba(27,108,242,0.5);
}

/* ── FILTER BAR ── */
.hgx-work-filters {
display: flex; flex-wrap: wrap; gap: 8px;
margin-bottom: 32px;
}
.hgx-wf-btn {
font-family: var(--font); font-size: 11px; font-weight: 600;
letter-spacing: .08em; text-transform: uppercase;
padding: 7px 16px; border-radius: 100px;
background: rgba(255,255,255,0.04);
border: 1px solid rgba(255,255,255,0.08);
color: rgba(255,255,255,0.4);
cursor: pointer; transition: all .2s cubic-bezier(.23,1,.32,1);
white-space: nowrap;
}
.hgx-wf-btn:hover {
background: rgba(255,255,255,0.07);
color: rgba(255,255,255,0.7);
border-color: rgba(255,255,255,0.14);
}
.hgx-wf-btn.hgx-wf-active {
background: rgba(27,108,242,0.15);
border-color: rgba(27,108,242,0.4);
color: #fff;
}

/* Card hidden state (filter) */
.hgx-work-card.hgx-wc-hidden {
display: none;
}

/* Card body */
.hgx-wc-body {
padding: 18px 18px 16px;
display: flex; flex-direction: column;
}

.hgx-wc-category {
font-size: 9.5px; letter-spacing: .16em;
text-transform: uppercase; color: var(--blue);
margin-bottom: 8px; font-weight: 600;
}

.hgx-wc-name {
font-size: 15px; font-weight: 700;
letter-spacing: -.02em; line-height: 1.2;
color: #ffffff; margin-bottom: 0;
}

/* Card footer — outcome + year */
.hgx-wc-footer {
margin-top: 14px; padding-top: 12px;
border-top: 1px solid rgba(255,255,255,0.06);
display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.hgx-wc-outcome {
font-size: 11.5px; font-weight: 400; line-height: 1.4;
color: rgba(255,255,255,0.35);
flex: 1; min-width: 0;
transition: color .3s;
}
.hgx-work-card:hover .hgx-wc-outcome {
color: rgba(255,255,255,0.58);
}
.hgx-wc-since {
font-size: 10px; font-weight: 600; letter-spacing: .07em;
text-transform: uppercase;
color: var(--blue); flex-shrink: 0;
opacity: .7; transition: opacity .3s;
}
.hgx-work-card:hover .hgx-wc-since { opacity: 1; }


/* ══════════════════════════════════════════════
   03  LONG-TERM PARTNERSHIPS — 3D flip card grid
══════════════════════════════════════════════ */
#longterm { background: transparent; }
#longterm .hgx-section-title { color: var(--text-primary); }

/* ── FLIP GRID ── */
.hgx-flip-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}

/* ── CARD WRAPPER ── */
.hgx-flip-card {
perspective: 900px;
height: 296px;
cursor: pointer;
/* staggered entrance */
opacity: 0;
transform: translateY(28px);
transition: opacity .55s cubic-bezier(.23,1,.32,1),
            transform .55s cubic-bezier(.23,1,.32,1);
}
.hgx-flip-card.hgx-is-visible { opacity: 1; transform: translateY(0); }

/* ── INNER ROTATING PIECE ── */
.hgx-flip-card-inner {
position: relative; width: 100%; height: 100%;
transform-style: preserve-3d;
transition: transform .65s cubic-bezier(.23,1,.32,1);
border-radius: var(--r-lg);
}

/* Desktop: hover triggers flip */
@media (hover: hover) and (pointer: fine) {
.hgx-flip-card:hover .hgx-flip-card-inner {
    transform: rotateY(180deg);
}
.hgx-flip-card:hover {
    filter: drop-shadow(0 12px 36px rgba(27,108,242,0.22));
}
}

/* Touch / programmatic flip via JS */
.hgx-flip-card.hgx-flipped .hgx-flip-card-inner {
transform: rotateY(180deg);
}
.hgx-flip-card.hgx-flipped {
filter: drop-shadow(0 12px 36px rgba(27,108,242,0.25));
}

/* ── SHARED FACE STYLES ── */
.hgx-flip-front,
.hgx-flip-back {
position: absolute; inset: 0;
border-radius: var(--r-lg);
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
overflow: hidden;
}

/* ── FRONT FACE — editorial image ── */
.hgx-flip-front {
background: var(--surface);
border: 1px solid rgba(255,255,255,0.07);
}

/* full-bleed cover image */
.hgx-flip-img {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: cover; object-position: center 20%;
filter: grayscale(25%) brightness(0.65) saturate(0.85);
transition: transform .7s cubic-bezier(.23,1,.32,1),
            filter .5s cubic-bezier(.23,1,.32,1);
z-index: 0;
}
@media (hover: hover) and (pointer: fine) {
.hgx-flip-card:hover .hgx-flip-img {
    transform: scale(1.05);
    filter: grayscale(0%) brightness(0.72) saturate(1.1);
}
}

/* bottom text overlay */
.hgx-flip-front-overlay {
position: absolute; inset: 0; z-index: 1;
background: linear-gradient(
    to top,
    rgba(7,11,21,0.92) 0%,
    rgba(7,11,21,0.45) 40%,
    rgba(7,11,21,0.1) 70%,
    transparent 100%
);
display: flex; flex-direction: column;
justify-content: flex-end; padding: 20px 20px 18px;
}

.hgx-flip-front-name {
font-size: 14px; font-weight: 700; letter-spacing: -.01em;
color: rgba(255,255,255,0.95); line-height: 1.25;
margin-bottom: 5px;
}

.hgx-flip-hint {
font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
color: rgba(255,255,255,0.28); font-weight: 500;
display: flex; align-items: center; gap: 6px;
transition: color .3s, gap .3s;
}
.hgx-flip-hint::after {
content: '↗'; font-size: 11px;
transition: transform .3s cubic-bezier(.23,1,.32,1);
}
@media (hover: hover) and (pointer: fine) {
.hgx-flip-card:hover .hgx-flip-hint {
    color: rgba(255,255,255,0.55); gap: 8px;
}
.hgx-flip-card:hover .hgx-flip-hint::after { transform: translate(2px,-2px); }
}

/* ── BACK FACE ── */
.hgx-flip-back {
background: linear-gradient(150deg,
    rgba(17,36,72,0.98) 0%,
    rgba(10,20,44,0.99) 55%,
    rgba(13,21,38,1) 100%
);
border: 1px solid rgba(27,108,242,0.25);
transform: rotateY(180deg);
display: flex; flex-direction: column;
justify-content: flex-end; padding: 26px 24px;
}
/* prismatic top edge on back */
.hgx-flip-back::before {
content: ''; position: absolute;
top: 0; left: 0; right: 0; height: 2px;
background: linear-gradient(90deg,
    transparent 0%,
    rgba(27,108,242,0.5) 20%,
    rgba(100,160,255,0.9) 50%,
    rgba(27,108,242,0.5) 80%,
    transparent 100%
);
}
/* subtle mesh pattern */
.hgx-flip-back::after {
content: ''; position: absolute; inset: 0;
background-image: radial-gradient(circle, rgba(27,108,242,0.06) 1px, transparent 1px);
background-size: 20px 20px;
pointer-events: none; opacity: 0.6;
}

.hgx-flip-back-mono {
font-size: 32px; font-weight: 800; letter-spacing: -.035em;
line-height: 1; margin-bottom: 10px;
position: relative; z-index: 1;
}

.hgx-flip-back-name {
font-size: 14px; font-weight: 600; letter-spacing: -.01em;
color: rgba(255,255,255,0.92); line-height: 1.3;
margin-bottom: 5px; position: relative; z-index: 1;
}

.hgx-flip-back-since {
font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
color: var(--blue); font-weight: 600;
margin-bottom: 16px; position: relative; z-index: 1;
}

.hgx-flip-back-tags {
display: flex; flex-wrap: wrap; gap: 5px;
position: relative; z-index: 1;
}
.hgx-flip-back-tag {
font-size: 10px; letter-spacing: .06em; text-transform: uppercase;
padding: 4px 10px; border-radius: 100px;
background: rgba(27,108,242,0.1);
border: 1px solid rgba(27,108,242,0.2);
color: rgba(255,255,255,0.5); font-weight: 500;
}


/* ══════════════════════════════════════════════
   05  CTA
══════════════════════════════════════════════ */
#cta {
display: flex; flex-direction: column;
align-items: center; justify-content: center;
text-align: center; position: relative; overflow: hidden;
padding: 80px 48px 72px;
}
.hgx-cta-glow {
position: absolute; inset: 0;
background: radial-gradient(ellipse 55% 55% at 50% 50%, rgba(27,108,242,0.09) 0%, transparent 70%);
pointer-events: none;
}
.hgx-cta-glow-ring {
position: absolute; top: 50%; left: 50%;
transform: translate(-50%,-50%);
width: 560px; height: 560px; border-radius: 50%;
background: radial-gradient(circle, rgba(27,108,242,0.05) 0%, transparent 60%);
pointer-events: none;
animation: ctaPulse 4s ease-in-out infinite;
}
@keyframes ctaPulse {
0%,100% { transform: translate(-50%,-50%) scale(1);   opacity: 1; }
50%      { transform: translate(-50%,-50%) scale(1.1); opacity: 0.6; }
}

.hgx-cta-label {
font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
color: var(--blue); margin-bottom: 18px; font-weight: 600;
position: relative; z-index: 2;
opacity: 0; transform: translateX(-12px);
transition: opacity .5s ease, transform .5s ease;
}
.hgx-cta-label.hgx-label-visible { opacity: 1; transform: translateX(0); }

.hgx-cta-headline {
font-size: clamp(40px, 6.5vw, 84px);
font-weight: 500; letter-spacing: -.04em;
line-height: 1.0; margin-bottom: 16px;
color: var(--text-primary); position: relative; z-index: 2;
}
.hgx-cta-headline .hgx-hl {
font-family: var(--playfair); font-style: italic;
font-weight: 400; color: var(--blue);
}

.hgx-cta-sub {
font-size: 14px; color: rgba(255,255,255,0.4);
max-width: 360px; line-height: 1.7;
margin-bottom: 36px; position: relative; z-index: 2;
}

.hgx-cta-buttons {
display: flex; gap: 12px; align-items: center;
position: relative; z-index: 2;
}
#cta .hgx-btn-ghost {
border-color: rgba(255,255,255,0.15); color: rgba(255,255,255,0.65);
}
#cta .hgx-btn-ghost:hover {
border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.9);
background: rgba(255,255,255,0.06);
}

.hgx-cta-trust {
margin-top: 20px; font-size: 11px;
color: rgba(255,255,255,0.18); font-weight: 400;
position: relative; z-index: 2; letter-spacing: .02em;
}


/* ─── ACCESSIBILITY + REDUCED MOTION ─── */
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 4px; }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
}
}


/* ─── TABLET ─── */
@media (max-width: 1100px) {
.hgx-work-card-grid { grid-template-columns: repeat(2, 1fr); }
.hgx-flip-grid      { grid-template-columns: repeat(2, 1fr); }
}

/* ─── MOBILE ─── */
@media (max-width: 900px) {
section { padding: 64px 20px; }

.hgx-section-header { flex-direction: column; gap: 12px; margin-bottom: 36px; }
.hgx-section-title  { font-size: clamp(22px,6vw,30px); max-width: 100%; }
.hgx-section-note   { max-width: 100%; }

/* ── hero frame + hero ── */
.hgx-hero-frame { margin: 6px 6px 0; border-radius: var(--r-lg); }
.hgx-hero-ray-mask { border-radius: calc(var(--r-lg) - 2px); }
#hero {
    padding: 60px 24px 100px;
    margin: 0; border-radius: 0;
    min-height: 90dvh; min-height: 90vh;
}
.hgx-hero-tag { margin-bottom: 20px; }
.hgx-work-hero-headline { font-size: clamp(28px, 7.5vw, 42px); margin-bottom: 16px; }
.hgx-hero-sub-work { font-size: 14px; max-width: 300px; margin-bottom: 28px; }
.hgx-hero-pills { gap: 8px; }
.hgx-hero-pill { padding: 8px 14px; }
.hgx-hero-pill-num { font-size: 13px; }
.hgx-hero-pill-label { font-size: 11px; }
.hgx-hero-cta { flex-direction: column; width: 100%; max-width: 300px; }
.hgx-hero-cta .hgx-btn-primary,
.hgx-hero-cta .hgx-btn-ghost { width: 100%; justify-content: center; }
.hgx-hero-scroll { bottom: 28px; }

/* ── rest ── */
#clients { padding: 48px 20px 36px; margin: 6px 6px 0; border-radius: var(--r-lg); }
.hgx-logo-grid { grid-template-columns: repeat(3,1fr); margin-top: 28px; }
.hgx-logo-cell:nth-child(6n)        { border-right: 1px solid rgba(0,0,0,0.08); }
.hgx-logo-cell:nth-child(3n)        { border-right: none; }
.hgx-logo-cell:nth-last-child(-n+6) { border-bottom: 1px solid rgba(0,0,0,0.08); }
.hgx-logo-cell:nth-last-child(-n+3) { border-bottom: none; }

#work { margin: 6px 6px 0; }
.hgx-work-card-grid  { grid-template-columns: 1fr; gap: 12px; }

/* Flip grid → horizontal scroll on mobile */
.hgx-flip-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 14px;
    /* padding creates space so drop-shadows / glows don't get clipped */
    padding: 12px 20px 20px;
    margin: -12px -20px -20px;
    scrollbar-width: none;
}
.hgx-flip-grid::-webkit-scrollbar { display: none; }
.hgx-flip-card {
    flex-shrink: 0;
    width: 260px;
    scroll-snap-align: start;
}

.hgx-cta-buttons { flex-direction: column; width: 100%; }
.hgx-cta-buttons .hgx-btn-primary,
.hgx-cta-buttons .hgx-btn-ghost { width: 100%; justify-content: center; }
#cta { padding: 64px 20px 56px; }
}

@media (max-width: 480px) {
section { padding: 48px 16px; }
.hgx-hero-frame { margin: 4px 4px 0; }
#hero   { padding: 56px 16px 96px; }
.hgx-work-hero-headline { font-size: clamp(24px, 6.5vw, 32px); }
.hgx-hero-pill { padding: 7px 12px; }
.hgx-hero-pill-label { display: none; } /* show only number on tiny phones */
#work   { margin: 8px 4px; }
.hgx-flip-card { width: 236px; height: 272px; }
}
