/* Critical Graffix 2026 Brand Alignment Layer
   Canonical colors: Critical Green #39FF14, Graffix Aqua #00E5FF */
:root {
  --cg-green:#39FF14;
  --cg-aqua:#00E5FF;
  --cg-black:#000000;
  --cg-ink:#050708;
  --cg-panel:#0a0f11;
  --cg-panel-2:#0e1518;
  --cg-white:#ffffff;
  --cg-muted:#a9b2b8;
  --cg-line:rgba(142,173,181,.32);
  --cg-radius:14px;
  --cg-shadow:0 20px 55px rgba(0,0,0,.44);
}

html { scroll-behavior:smooth; }
body {
  background:#030506;
  color:var(--cg-white);
  font-family:Arial, Helvetica, sans-serif;
  padding-top:92px;
}
body::before {
  background:
    radial-gradient(circle at 18% 18%, rgba(57,255,20,.07), transparent 28%),
    radial-gradient(circle at 82% 12%, rgba(0,229,255,.07), transparent 27%),
    linear-gradient(145deg, rgba(3,5,6,.98), rgba(6,10,12,.96)),
    url("../images/backgrounds/bg-main.png") center/cover fixed no-repeat;
  opacity:1;
}
body::after {
  /* Restored from the original Critical Graffix hex-grid artwork.
     Kept deliberately restrained so the new identity remains the focal point. */
  background:
    radial-gradient(circle at 16% 18%, rgba(57,255,20,.16), transparent 30%),
    radial-gradient(circle at 84% 22%, rgba(0,229,255,.18), transparent 31%),
    url("../images/backgrounds/hex-grid-2026.webp") center top / 520px auto repeat;
  opacity:.085;
  animation:none;
}

h1,h2,h3,h4,.nav-item,.cta,.btn,.cta-large,.section-label,.page-kicker,.academic-eyebrow {
  font-family:"Orbitron", Arial, sans-serif;
}
a { color:var(--cg-aqua); }
::selection { background:var(--cg-green); color:#000; }

/* Header */
.navbar {
  height:92px;
  background:rgba(2,4,5,.94);
  border-bottom:1px solid rgba(0,229,255,.22);
  box-shadow:0 10px 35px rgba(0,0,0,.35);
  backdrop-filter:blur(15px);
}
.navbar > .container,.navbar .nav-container { height:92px; padding:0 30px; }
.navbar .nav-inner { height:92px; justify-content:flex-end; }
.navbar .floating-logo {
  left:28px;
  width:320px;
  max-width:320px;
  height:66px;
  padding:8px 0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  justify-content:flex-start;
}
.navbar .floating-logo::before {
  content:"";
  position:absolute;
  left:0; bottom:-9px;
  width:44%; height:2px;
  background:var(--cg-green);
  box-shadow:0 0 8px rgba(57,255,20,.35);
}
.navbar .floating-logo::after {
  content:"";
  position:absolute;
  right:0; bottom:-9px;
  width:34%; height:2px;
  background:var(--cg-aqua);
  box-shadow:0 0 8px rgba(0,229,255,.35);
}
.navbar .floating-logo > img {
  width:100%!important;
  height:52px!important;
  max-width:310px!important;
  max-height:52px!important;
  object-fit:contain!important;
  object-position:left center;
  filter:none;
}
.navbar .nav-links {
  justify-content:flex-end;
  gap:18px;
  padding-left:340px;
  padding-right:180px;
}
.navbar .nav-item {
  font-size:.68rem;
  color:#c7ced2;
  letter-spacing:.075em;
}
.navbar .nav-item:hover,.navbar .nav-item.active {
  color:var(--cg-green);
  text-shadow:none;
}
.navbar .cta {
  right:30px;
  border:1px solid var(--cg-green);
  background:transparent;
  color:var(--cg-green);
  border-radius:6px;
  box-shadow:none;
  text-transform:uppercase;
}
.navbar .cta:hover { background:var(--cg-green); color:#000; }

/* Shared structure */
.container { max-width:1320px; }
.section,.page-hero,.academic-hero { position:relative; }
.section-label,.page-kicker,.academic-eyebrow { color:var(--cg-green); }
.about-copy h1,.contact-copy h1,.academic-hero h1,.portfolio-page h1,.wedding-page h1 {
  text-shadow:none;
}

.service-card,.contact-card,.contact-form,.about-photo-card,.portfolio-card,.academic-card {
  background:linear-gradient(145deg, rgba(10,15,17,.97), rgba(5,8,9,.95));
  border:1px solid var(--cg-line);
  box-shadow:var(--cg-shadow);
}
.service-card:hover,.portfolio-card:hover { border-color:rgba(0,229,255,.52); }

/* Buttons */
.btn,.btn-primary,.btn-secondary,.cta-large {
  border-radius:6px!important;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.79rem!important;
}
.btn-primary,.cta-large {
  background:var(--cg-green)!important;
  color:#020402!important;
  box-shadow:0 0 0 1px rgba(57,255,20,.25), 0 10px 30px rgba(57,255,20,.10)!important;
}
.btn-primary:hover,.cta-large:hover { background:#67ff4d!important; }
.btn-secondary {
  background:transparent!important;
  border:1px solid var(--cg-aqua)!important;
  color:var(--cg-aqua)!important;
}

/* New homepage */
.cg-home-hero { padding:52px 0 28px; }
.cg-hero-shell {
  position:relative;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:560px;
  align-items:center;
  gap:38px;
  padding:54px;
  border:1px solid var(--cg-line);
  border-radius:var(--cg-radius);
  background:linear-gradient(125deg, rgba(5,9,10,.97), rgba(6,11,13,.90));
  overflow:hidden;
  box-shadow:var(--cg-shadow);
}
.cg-hero-shell::before,.cg-section-shell::before {
  content:""; position:absolute; top:0; left:24px; width:28%; height:2px; background:var(--cg-green);
}
.cg-hero-shell::after,.cg-section-shell::after {
  content:""; position:absolute; top:0; right:24px; width:28%; height:2px; background:var(--cg-aqua);
}
.cg-kicker {
  display:inline-flex; align-items:center; gap:9px; margin-bottom:18px;
  color:var(--cg-green); font-family:"Orbitron",sans-serif; font-size:.76rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
}
.cg-kicker::before { content:""; width:28px; height:2px; background:var(--cg-aqua); }
.cg-home-hero h1 {
  margin:0; max-width:720px; font-size:clamp(2.8rem,5.4vw,5.3rem); line-height:.98; letter-spacing:-.045em;
  font-family:"Orbitron",sans-serif; text-transform:uppercase;
}
.cg-home-hero h1 .green { color:var(--cg-green); }
.cg-home-hero h1 .aqua { color:var(--cg-aqua); }
.cg-hero-lead { max-width:650px; margin:26px 0 0; color:#c1c9cd; font-size:1.08rem; line-height:1.72; }
.cg-hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }
.cg-trust-row { display:flex; gap:26px; flex-wrap:wrap; margin-top:34px; color:#98a3a8; font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; }
.cg-trust-row span { display:flex; align-items:center; gap:8px; }
.cg-trust-row i { width:8px; height:8px; display:inline-block; background:var(--cg-green); transform:rotate(45deg); }
.cg-trust-row span:nth-child(2) i { background:var(--cg-aqua); }
.cg-hero-visual { position:relative; min-height:430px; display:grid; place-items:center; }
.cg-hero-icon {
  width:min(390px,78%); aspect-ratio:1; object-fit:contain; filter:drop-shadow(0 24px 36px rgba(0,0,0,.52));
}
.cg-hero-wordmark {
  position:absolute; bottom:6%; left:2%; width:70%; padding:20px 24px; background:rgba(3,5,6,.88); border:1px solid var(--cg-line); border-radius:10px; box-shadow:0 16px 34px rgba(0,0,0,.36);
}
.cg-hero-wordmark img { width:100%; height:auto; }
.cg-hero-orbit { position:absolute; width:72%; aspect-ratio:1; border:1px solid rgba(0,229,255,.10); border-radius:50%; transform:rotate(-15deg); }
.cg-hero-orbit::before { content:""; position:absolute; inset:9%; border:1px solid rgba(57,255,20,.09); border-radius:50%; }

.cg-home-section { padding:20px 0; }
.cg-section-shell {
  position:relative; padding:38px; border:1px solid var(--cg-line); border-radius:var(--cg-radius); background:rgba(5,9,10,.88); box-shadow:0 15px 45px rgba(0,0,0,.28);
}
.cg-section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.cg-section-head h2 { margin:0; font-size:clamp(1.55rem,3vw,2.5rem); text-transform:uppercase; }
.cg-section-head p { margin:0; max-width:620px; color:var(--cg-muted); line-height:1.6; }
.cg-services { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cg-service {
  padding:26px 22px; border:1px solid rgba(156,180,186,.26); border-radius:10px; background:linear-gradient(145deg,#0b1012,#070a0b); min-height:230px;
}
.cg-service .icon { width:46px; height:46px; display:grid; place-items:center; margin-bottom:20px; border:1px solid currentColor; border-radius:8px; font-family:"Orbitron",sans-serif; font-weight:800; color:var(--cg-green); }
.cg-service:nth-child(even) .icon { color:var(--cg-aqua); }
.cg-service h3 { margin:0 0 10px; font-size:1rem; text-transform:uppercase; }
.cg-service p { color:var(--cg-muted); line-height:1.58; font-size:.91rem; }

.cg-work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cg-work-card { overflow:hidden; border:1px solid rgba(156,180,186,.26); border-radius:10px; background:#070a0b; }
.cg-work-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.cg-work-meta { padding:18px 18px 20px; }
.cg-work-meta strong { display:block; font-family:"Orbitron",sans-serif; text-transform:uppercase; font-size:.88rem; color:#fff; }
.cg-work-meta span { display:block; margin-top:8px; color:#8f9a9f; font-size:.78rem; }

.cg-values { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.cg-value { padding:18px 24px; border-right:1px solid rgba(255,255,255,.12); }
.cg-value:last-child { border-right:0; }
.cg-value strong { display:block; font-family:"Orbitron",sans-serif; color:#fff; text-transform:uppercase; font-size:.84rem; }
.cg-value span { display:block; color:var(--cg-muted); font-size:.78rem; margin-top:6px; line-height:1.45; }
.cg-value strong::before { content:"/ "; color:var(--cg-green); }
.cg-value:nth-child(even) strong::before { color:var(--cg-aqua); }

.cg-final-cta { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; }
.cg-final-cta > img { width:110px; height:110px; object-fit:contain; }
.cg-final-cta h2 { margin:0 0 8px; text-transform:uppercase; }
.cg-final-cta p { margin:0; color:var(--cg-muted); }

/* Footer restyle */
.footer { margin-top:58px; padding:42px 0 34px; background:#030506; border-top:1px solid var(--cg-line); }
.footer::before { content:""; display:block; width:min(1320px,calc(100% - 64px)); height:2px; margin:-43px auto 32px; background:linear-gradient(90deg,var(--cg-green) 0 28%,transparent 28% 72%,var(--cg-aqua) 72%); }
.cg-footer-affiliations { opacity:.8; }
.footer-bottom { color:#899399; }

@media (max-width:1180px) {
  .navbar .floating-logo { width:260px; }
  .navbar .nav-links { padding-left:270px; padding-right:160px; gap:12px; }
  .navbar .nav-item { font-size:.61rem; }
  .cg-services { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  body { padding-top:78px; }
  .navbar,.navbar > .container,.navbar .nav-container,.navbar .nav-inner { height:78px; }
  .navbar .floating-logo { left:18px; width:230px; height:60px; }
  .navbar .nav-links { display:none; }
  .navbar .cta { right:18px; }
  .cg-hero-shell { grid-template-columns:1fr; padding:34px; }
  .cg-hero-visual { min-height:340px; }
  .cg-work-grid { grid-template-columns:1fr; }
  .cg-values { grid-template-columns:repeat(2,1fr); }
  .cg-value:nth-child(2) { border-right:0; }
  .cg-final-cta { grid-template-columns:auto 1fr; }
  .cg-final-cta .btn { grid-column:1/-1; width:100%; text-align:center; }
}
@media (max-width:600px) {
  .container { padding-left:18px; padding-right:18px; }
  .navbar .floating-logo { width:190px; }
  .navbar .cta { padding:8px 10px; font-size:.6rem; }
  .cg-hero-shell,.cg-section-shell { padding:24px 20px; }
  .cg-home-hero h1 { font-size:2.35rem; }
  .cg-services { grid-template-columns:1fr; }
  .cg-values { grid-template-columns:1fr; }
  .cg-value { border-right:0; border-bottom:1px solid rgba(255,255,255,.10); }
  .cg-section-head { display:block; }
  .cg-section-head p { margin-top:12px; }
}

/* 2026 portfolio hierarchy: current identity vs. archived explorations */
.current-identity {
  position:relative;
  background:linear-gradient(180deg, rgba(57,255,20,.025), rgba(0,229,255,.018));
}
.cg-current-badge,.cg-archive-badge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  padding:7px 10px;
  border-radius:999px;
  font-family:"Orbitron",sans-serif;
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.cg-current-badge {
  color:var(--cg-green);
  border:1px solid rgba(57,255,20,.42);
  background:rgba(57,255,20,.06);
}
.cg-archive-badge {
  color:#9aa6ab;
  border:1px solid rgba(154,166,171,.28);
  background:rgba(154,166,171,.05);
}
.cg-current-identity-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:18px;
}
.cg-current-identity-grid .portfolio-item {
  margin:0;
  border:1px solid rgba(0,229,255,.24);
  border-radius:12px;
  overflow:hidden;
  background:#070a0b;
  box-shadow:0 16px 38px rgba(0,0,0,.28);
}
.cg-current-identity-grid .portfolio-item button { display:block; width:100%; }
.cg-current-identity-grid .portfolio-item img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}
.cg-current-identity-grid figcaption {
  min-height:82px;
  padding:16px 18px;
  color:#9ba6ab;
  line-height:1.45;
}
.cg-current-identity-grid figcaption strong {
  color:#fff;
  font-family:"Orbitron",sans-serif;
  text-transform:uppercase;
  font-size:.78rem;
}
.cg-current-primary { border-color:rgba(57,255,20,.35)!important; }
.cg-archive-section {
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.008);
}
.cg-archive-section .section-heading p { max-width:860px; }
.cg-archive-section .portfolio-item { opacity:.9; }
.cg-archive-section .portfolio-item:hover { opacity:1; }

@media (max-width:900px) {
  .cg-current-identity-grid { grid-template-columns:1fr; }
  .cg-current-identity-grid .portfolio-item img { aspect-ratio:auto; }
}


/* 2026 brand evolution timeline */
.cg-brand-evolution .cg-section-shell { overflow:hidden; }
.cg-evolution-track {
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  padding-top:18px;
}
.cg-evolution-track::before {
  content:"";
  position:absolute;
  top:0;
  left:4%;
  right:4%;
  height:2px;
  background:linear-gradient(90deg,var(--cg-green),rgba(57,255,20,.3),rgba(0,229,255,.3),var(--cg-aqua));
}
.cg-evolution-stage {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  border:1px solid rgba(156,180,186,.24);
  border-radius:12px;
  background:linear-gradient(145deg,#0b1012,#06090a);
  overflow:hidden;
}
.cg-evolution-stage::before {
  content:"";
  position:absolute;
  top:-23px;
  left:28px;
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--cg-green);
  box-shadow:0 0 18px rgba(57,255,20,.65);
}
.cg-evolution-stage:nth-child(even)::before { background:var(--cg-aqua); box-shadow:0 0 18px rgba(0,229,255,.65); }
.cg-evolution-final { border-color:rgba(57,255,20,.5); box-shadow:inset 0 0 0 1px rgba(0,229,255,.12),0 14px 35px rgba(0,0,0,.28); }
.cg-stage-number {
  position:absolute;
  z-index:2;
  top:12px;
  left:14px;
  padding:5px 8px;
  border-radius:5px;
  background:rgba(0,0,0,.78);
  color:var(--cg-green);
  font-family:"Orbitron",sans-serif;
  font-weight:800;
  font-size:.72rem;
  letter-spacing:.08em;
}
.cg-evolution-stage:nth-child(even) .cg-stage-number { color:var(--cg-aqua); }
.cg-stage-image { height:185px; display:grid; place-items:center; background:#030506; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.08); }
.cg-stage-image img { width:100%; height:100%; object-fit:contain; }
.cg-stage-copy { padding:20px; flex:1; }
.cg-stage-copy > span { color:var(--cg-green); font-family:"Orbitron",sans-serif; font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; }
.cg-evolution-stage:nth-child(even) .cg-stage-copy > span { color:var(--cg-aqua); }
.cg-stage-copy h3 { margin:8px 0 10px; font-size:.96rem; text-transform:uppercase; }
.cg-stage-copy p { margin:0; color:var(--cg-muted); font-size:.82rem; line-height:1.55; }
.cg-stage-copy a { display:inline-block; margin-top:14px; color:var(--cg-aqua); font-size:.78rem; font-weight:700; }

/* The Cat Lounge is the lead speculative case study. */
.portfolio-page .cat-lounge-case-study {
  border-color:rgba(168,185,154,.38);
  background:linear-gradient(135deg,rgba(41,75,53,.16),rgba(7,10,11,.94));
}
.portfolio-page .cat-lounge-case-study .case-copy span { color:#a8b99a; }

@media (max-width:1100px) {
  .cg-evolution-track { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cg-evolution-track::before { display:none; }
  .cg-evolution-stage::before { display:none; }
}
@media (max-width:650px) {
  .cg-evolution-track { grid-template-columns:1fr; }
  .cg-stage-image { height:220px; }
}


/* Fix-it v3: subtle depth control for restored hex field */
.cg-home-section,.portfolio-page .portfolio-section,.featured-work,.portfolio-hero { position:relative; }
.footer { background:rgba(3,5,6,.96); }
@media (prefers-reduced-motion: reduce) { body::after { animation:none!important; } }

/* Fix-it v4: selective integration of the strongest speculative-home visual language */

/* Technical frame language: sharp branded corners without boxing every pixel. */
.cg-hero-shell,.cg-section-shell {
  --cg-corner:18px;
}
.cg-hero-shell {
  border-color:rgba(124,159,167,.32);
  background:
    linear-gradient(125deg,rgba(5,9,10,.975),rgba(5,10,12,.90)),
    radial-gradient(circle at 80% 38%,rgba(0,229,255,.06),transparent 32%);
}
.cg-hero-shell > *:not(.cg-tech-grid) { position:relative; z-index:2; }
.cg-tech-grid {
  position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.72;
  background:
    linear-gradient(90deg,transparent 0 68%,rgba(0,229,255,.055) 68% 68.12%,transparent 68.12% 100%),
    linear-gradient(0deg,transparent 0 66%,rgba(57,255,20,.045) 66% 66.12%,transparent 66.12% 100%),
    repeating-linear-gradient(132deg,transparent 0 44px,rgba(0,229,255,.026) 44px 45px,transparent 45px 88px);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
.cg-tech-grid::before,.cg-tech-grid::after {
  content:""; position:absolute; width:135px; height:90px; pointer-events:none;
}
.cg-tech-grid::before {
  left:14px; top:14px;
  border-left:2px solid var(--cg-green); border-top:2px solid var(--cg-green);
  clip-path:polygon(0 0,100% 0,100% 2px,18px 2px,18px 18px,2px 18px,2px 100%,0 100%);
}
.cg-tech-grid::after {
  right:14px; bottom:14px;
  border-right:2px solid var(--cg-aqua); border-bottom:2px solid var(--cg-aqua);
  clip-path:polygon(calc(100% - 2px) 0,100% 0,100% 100%,0 100%,0 calc(100% - 2px),calc(100% - 18px) calc(100% - 2px),calc(100% - 18px) calc(100% - 18px),calc(100% - 2px) calc(100% - 18px));
}
.cg-section-shell {
  background:linear-gradient(145deg,rgba(6,10,11,.90),rgba(3,6,7,.86));
  border-color:rgba(124,159,167,.26);
}
.cg-section-shell::before,.cg-section-shell::after { box-shadow:0 0 10px currentColor; }

/* Hero: stronger branded composition and controlled edge illumination. */
.cg-home-hero .cg-hero-shell::before { width:34%; box-shadow:0 0 15px rgba(57,255,20,.22); }
.cg-home-hero .cg-hero-shell::after { width:34%; box-shadow:0 0 15px rgba(0,229,255,.22); }
.cg-hero-visual::before {
  content:""; position:absolute; width:76%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,rgba(0,229,255,.095),rgba(57,255,20,.035) 38%,transparent 67%);
  filter:blur(10px); pointer-events:none;
}
.cg-hero-icon { position:relative; z-index:2; filter:drop-shadow(0 0 18px rgba(0,229,255,.10)) drop-shadow(0 24px 36px rgba(0,0,0,.56)); }
.cg-hero-wordmark { z-index:3; border-color:rgba(0,229,255,.32); }
.cg-trust-row span { color:#b6c0c4; }
.cg-trust-row i { box-shadow:0 0 10px rgba(57,255,20,.42); }
.cg-trust-row span:nth-child(2) i { box-shadow:0 0 10px rgba(0,229,255,.42); }

/* Service cards: replace placeholder letter tiles with real visual symbols and edge cues. */
.cg-service { position:relative; overflow:hidden; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.cg-service::after {
  content:""; position:absolute; right:0; bottom:0; width:46px; height:2px; background:var(--cg-green);
}
.cg-service:nth-child(even)::after { background:var(--cg-aqua); }
.cg-service:hover { transform:translateY(-3px); border-color:rgba(57,255,20,.42); }
.cg-service:nth-child(even):hover { border-color:rgba(0,229,255,.42); }
.cg-service .icon { border:0; width:52px; height:52px; padding:5px; }
.cg-service .icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; }
.cg-service-link { display:block; margin-top:18px; color:var(--cg-green); font-family:"Orbitron",sans-serif; font-size:.62rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.cg-service:nth-child(even) .cg-service-link { color:var(--cg-aqua); }

/* Project cards get restrained technical corners instead of generic rectangles. */
.cg-work-card { position:relative; transition:transform .2s ease,border-color .2s ease; }
.cg-work-card::before,.cg-work-card::after { content:""; position:absolute; z-index:3; width:34px; height:34px; pointer-events:none; }
.cg-work-card::before { left:-1px; top:-1px; border-left:2px solid var(--cg-green); border-top:2px solid var(--cg-green); }
.cg-work-card::after { right:-1px; bottom:-1px; border-right:2px solid var(--cg-aqua); border-bottom:2px solid var(--cg-aqua); }
.cg-work-card:hover { transform:translateY(-3px); border-color:rgba(0,229,255,.42); }

/* Brand-evolution timeline: stronger connected progression; current stage earns the brightest treatment. */
.cg-brand-evolution .cg-section-shell {
  background:
    linear-gradient(145deg,rgba(5,9,10,.91),rgba(3,6,7,.88)),
    url("../images/backgrounds/hex-grid-2026.webp") center/430px auto repeat;
}
.cg-evolution-track::before { height:3px; box-shadow:0 0 12px rgba(0,229,255,.14); }
.cg-evolution-stage { transition:transform .2s ease,border-color .2s ease; }
.cg-evolution-stage:hover { transform:translateY(-3px); }
.cg-evolution-final {
  background:linear-gradient(145deg,rgba(9,18,13,.98),rgba(3,10,11,.98));
  border-color:rgba(57,255,20,.62);
  box-shadow:0 0 0 1px rgba(0,229,255,.14),0 0 30px rgba(57,255,20,.06),0 18px 40px rgba(0,0,0,.35);
}
.cg-evolution-final .cg-stage-number { background:var(--cg-green); color:#020402!important; }

/* Why Critical Graffix: turn the existing copy into a rapid-scan proof strip. */
.cg-values { position:relative; padding-top:58px; }
.cg-values-title { position:absolute; top:19px; left:24px; right:24px; padding-bottom:10px; border-bottom:1px solid rgba(57,255,20,.28); }
.cg-values-title span { font-family:"Orbitron",sans-serif; color:var(--cg-green); font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.cg-value { display:grid; grid-template-columns:46px 1fr; column-gap:12px; align-items:center; }
.cg-value-icon { grid-row:1/3; width:38px; height:38px; color:var(--cg-green); }
.cg-value:nth-of-type(odd) .cg-value-icon { color:var(--cg-aqua); }
.cg-value-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; }
.cg-value strong::before { display:none; }

/* Conversion CTA: more like a purposeful closing banner, not another content box. */
.cg-final-cta {
  position:relative; overflow:hidden;
  background:
    linear-gradient(110deg,rgba(4,9,8,.96),rgba(3,8,10,.94)),
    repeating-linear-gradient(132deg,transparent 0 44px,rgba(0,229,255,.025) 44px 45px,transparent 45px 88px);
  border-color:rgba(0,229,255,.34);
}
.cg-final-cta::after { width:42%; box-shadow:0 0 12px rgba(0,229,255,.22); }
.cg-final-cta > img { filter:drop-shadow(0 0 14px rgba(0,229,255,.14)); }
.cg-cta-email { display:inline-block; margin-top:12px; color:var(--cg-aqua); font-family:"Orbitron",sans-serif; font-size:.72rem; letter-spacing:.035em; }
.cg-cta-email::before { content:"✉ "; color:var(--cg-green); }

/* Navigation gains the subtle technical lower rail from the concept board. */
.navbar::after {
  content:""; position:absolute; left:max(30px,calc((100% - 1320px)/2)); right:max(30px,calc((100% - 1320px)/2)); bottom:5px; height:1px;
  background:linear-gradient(90deg,var(--cg-green),transparent 24%,transparent 76%,var(--cg-aqua)); opacity:.48; pointer-events:none;
}

@media (max-width:900px) {
  .cg-values { padding-top:58px; }
  .cg-value { grid-template-columns:42px 1fr; }
}
@media (max-width:600px) {
  .cg-values-title { position:static; margin-bottom:10px; }
  .cg-values { padding-top:20px; }
  .cg-value { padding-left:6px; padding-right:6px; }
  .cg-hero-shell { min-height:auto; }
}

/* Fix-it v5 — restore the approved hero emblem beside the canonical C/G mark. */
.cg-hero-visual {
  position:relative;
  min-height:430px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(6px,1vw,18px);
  isolation:isolate;
}
.cg-hero-emblem {
  position:relative;
  z-index:3;
  width:min(330px,54%);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 22px 30px rgba(0,0,0,.58)) drop-shadow(0 0 14px rgba(57,255,20,.08));
  transform:translateX(5%);
}
.cg-hero-icon {
  position:relative;
  z-index:2;
  width:min(315px,49%);
  height:auto;
  aspect-ratio:1;
  object-fit:contain;
  filter:drop-shadow(0 0 18px rgba(0,229,255,.13)) drop-shadow(0 24px 36px rgba(0,0,0,.56));
  transform:translateX(-5%);
}
.cg-hero-orbit {
  position:absolute;
  right:2%;
  width:62%;
  aspect-ratio:1;
  border:1px solid rgba(0,229,255,.10);
  border-radius:50%;
  transform:rotate(-15deg);
  z-index:0;
}
.cg-hero-visual::before {
  width:88%;
  background:radial-gradient(circle at 62% 50%,rgba(0,229,255,.10),rgba(57,255,20,.045) 38%,transparent 68%);
}
/* The old floating wordmark card is intentionally retired: the restored hero emblem already carries the wordmark. */
.cg-hero-wordmark { display:none!important; }

/* NSLS badge treatment — preserve the circular badge rather than cropping it into a generic avatar. */
.cg-footer-affiliation--nsls img {
  border-radius:50%;
  object-fit:contain;
  background:transparent;
}
.cg-affiliation-card--nsls .cg-affiliation-logo-frame img {
  object-fit:contain;
  padding:2px;
  background:transparent;
}

@media (max-width:900px) {
  .cg-hero-visual { min-height:360px; max-width:680px; width:100%; margin-inline:auto; }
  .cg-hero-emblem { width:min(315px,52%); transform:translateX(4%); }
  .cg-hero-icon { width:min(300px,47%); transform:translateX(-4%); }
}
@media (max-width:560px) {
  .cg-hero-visual { min-height:285px; gap:0; }
  .cg-hero-emblem { width:55%; transform:translateX(7%); }
  .cg-hero-icon { width:48%; transform:translateX(-7%); }
  .cg-hero-orbit { width:64%; right:-2%; }
}


/* =========================================================
   2026 PRIMARY OFFICIAL ICON + HERO GRAPHIC UPDATE
   Safe overrides layered onto the tested v7 site.
   ========================================================= */

.navbar .floating-logo {
  width: 104px;
  max-width: 104px;
}

.navbar .floating-logo > img {
  width: 72px !important;
  height: 72px !important;
  max-width: 72px !important;
  max-height: 72px !important;
  object-fit: contain !important;
}

.cg-hero-visual-new {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 390px;
}

.cg-hero-image-new {
  display: block;
  width: 100%;
  max-width: 720px;
  height: auto;
  border-radius: 16px;
  border: 1px solid rgba(15,172,241,.28);
  box-shadow:
    0 24px 56px rgba(0,0,0,.48),
    0 0 24px rgba(15,172,241,.10),
    0 0 26px rgba(219,242,40,.06);
}

@media (max-width: 900px) {
  .cg-hero-visual-new {
    min-height: auto;
  }
  .cg-hero-image-new {
    max-width: 100%;
  }
}


/* =========================================================
   NAVBAR HOVER / ACTIVE UNDERLINE — RESTORED
   ========================================================= */

.navbar .nav-item {
  position: relative;
  padding-bottom: 9px;
}

.navbar .nav-item::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    #DBF228 0%,
    #A1C507 34%,
    #0FACF1 68%,
    #28E6FF 100%
  );
  box-shadow:
    0 0 7px rgba(219, 242, 40, 0.32),
    0 0 10px rgba(15, 172, 241, 0.38);
  opacity: 0;
  transition:
    left 0.22s ease,
    right 0.22s ease,
    opacity 0.18s ease;
  pointer-events: none;
}

.navbar .nav-item:hover::after,
.navbar .nav-item:focus-visible::after,
.navbar .nav-item.active::after {
  left: 0;
  right: 0;
  opacity: 1;
}

.navbar .nav-item:hover,
.navbar .nav-item:focus-visible {
  color: #F5F8FA;
  text-shadow:
    0 0 8px rgba(15, 172, 241, 0.38),
    0 0 10px rgba(219, 242, 40, 0.18);
}

.navbar .nav-item.active {
  color: #F5F8FA;
}


/* ==========================================================
   CRITICAL GRAFFIX — MASTER LOGO / LIVE BRAND MOTION
   2026 website update
   ========================================================== */

/*
  The exact Rendered Master is used in the navbar.
  Motion is deliberately restrained: the mark "breathes" rather
  than flashes. Historical/development logos are intentionally
  excluded from this class.
*/

.navbar .floating-logo {
  width: 92px;
  max-width: 92px;
  height: 72px;
  padding: 4px 0;
  overflow: visible;
  justify-content: flex-start;
}

.navbar .floating-logo > img.cg-navbar-master-logo {
  width: 68px !important;
  height: 68px !important;
  max-width: 68px !important;
  max-height: 68px !important;
  object-fit: contain !important;
  object-position: center;
  transform-origin: center;
}

/* Make room for the square Master Logo instead of the old horizontal lockup. */
.navbar .nav-links {
  padding-left: 118px;
}

/* Current official brand marks only. */
.cg-brand-logo-live {
  will-change: filter, transform;
  animation: cg-logo-breathe 3.8s ease-in-out infinite;
  filter:
    drop-shadow(0 0 3px rgba(15, 172, 241, .30))
    drop-shadow(0 0 5px rgba(219, 242, 40, .22));
}

.cg-brand-logo-live--subtle {
  animation-duration: 4.8s;
}

.cg-brand-logo-live--hero {
  animation-duration: 5.4s;
}

@keyframes cg-logo-breathe {
  0%, 100% {
    transform: scale(1);
    filter:
      drop-shadow(0 0 2px rgba(15, 172, 241, .24))
      drop-shadow(0 0 4px rgba(219, 242, 40, .18));
  }
  50% {
    transform: scale(1.025);
    filter:
      drop-shadow(0 0 7px rgba(15, 172, 241, .50))
      drop-shadow(0 0 11px rgba(219, 242, 40, .38));
  }
}

/* Keep hover responsive without turning the animation into a strobe. */
.navbar .floating-logo:hover > img.cg-navbar-master-logo {
  filter:
    drop-shadow(0 0 8px rgba(15, 172, 241, .58))
    drop-shadow(0 0 13px rgba(219, 242, 40, .46));
}

/* Tablet/mobile sizing for the square Master Logo. */
@media (max-width: 1100px) {
  .navbar .floating-logo {
    width: 78px;
    max-width: 78px;
  }
  .navbar .floating-logo > img.cg-navbar-master-logo {
    width: 62px !important;
    height: 62px !important;
    max-width: 62px !important;
    max-height: 62px !important;
  }
  .navbar .nav-links {
    padding-left: 96px;
  }
}

@media (max-width: 900px) {
  .navbar .floating-logo {
    left: 18px;
    width: 72px;
    max-width: 72px;
    height: 66px;
  }
  .navbar .floating-logo > img.cg-navbar-master-logo {
    width: 58px !important;
    height: 58px !important;
    max-width: 58px !important;
    max-height: 58px !important;
  }
}

@media (max-width: 600px) {
  .navbar .floating-logo {
    width: 64px;
    max-width: 64px;
  }
  .navbar .floating-logo > img.cg-navbar-master-logo {
    width: 54px !important;
    height: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
  }
}

/* Accessibility: honor users who request less animation. */
@media (prefers-reduced-motion: reduce) {
  .cg-brand-logo-live {
    animation: none !important;
    transform: none !important;
  }
}

/* 2026-09 conversion-focused homepage process section */
.cg-process-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}
.cg-process-card{
  position:relative;
  min-height:220px;
  padding:26px 24px 24px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
  overflow:hidden;
}
.cg-process-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,var(--cg-green,#39ff14),var(--cg-aqua,#00e5ff));
}
.cg-process-number{
  display:inline-block;
  margin-bottom:22px;
  color:var(--cg-aqua,#00e5ff);
  font-family:'Orbitron',sans-serif;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
}
.cg-process-card h3{margin:0 0 12px;font-size:1.18rem;}
.cg-process-card p{margin:0;color:rgba(255,255,255,.72);line-height:1.65;}
.cg-service-link{display:inline-block;text-decoration:none;}
.cg-service-link:hover,.cg-service-link:focus-visible{text-decoration:underline;text-underline-offset:4px;}
@media (max-width:980px){.cg-process-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.cg-process-grid{grid-template-columns:1fr}.cg-process-card{min-height:auto;}}

/* Text-first service cards — no stock icon/glyph language. */
.home-page .cg-service {
  padding-top:30px;
}
.home-page .cg-service h3 {
  margin-top:0;
}
.home-page .cg-service .icon,
.home-page .cg-value-icon {
  display:none!important;
}

/* Keep the proof strip typographic and editorial rather than icon-driven. */
.home-page .cg-value {
  display:block;
  padding-top:20px;
  padding-bottom:20px;
}
.home-page .cg-value strong {
  display:block;
  margin-bottom:7px;
}
.home-page .cg-value span {
  display:block;
}

/* Trust row uses plain language only. */
.home-page .cg-trust-row span {
  display:inline-block;
}
.home-page .cg-trust-row span + span::before {
  content:"/";
  margin:0 12px 0 4px;
  color:rgba(255,255,255,.30);
}
.home-page .cg-trust-row i { display:none!important; }

/* No decorative envelope or glyph before the email address. */
.home-page .cg-cta-email::before { content:none!important; }

/* Closing CTA is intentionally text-only; brand mark already appears in header/hero. */
.home-page .cg-final-cta {
  grid-template-columns:minmax(0,1fr) auto;
}
.home-page .cg-final-cta > img { display:none!important; }

/* Let more of the established site background show through conversion sections. */
.home-page .cg-section-shell {
  background:linear-gradient(145deg,rgba(6,10,11,.82),rgba(3,6,7,.77));
  backdrop-filter:blur(1.5px);
}
.home-page .cg-process-card {
  background:rgba(6,10,12,.54);
  border-radius:10px;
}

@media (max-width:700px) {
  .home-page .cg-trust-row span {
    display:block;
    margin:6px 0;
  }
  .home-page .cg-trust-row span + span::before {
    content:none;
  }
  .home-page .cg-final-cta {
    grid-template-columns:1fr;
  }
}

/* Keep the primary navigation group centered independently of both the
   canonical logo at left and the Start a Project CTA at right. */
@media (min-width: 901px) {
  .navbar .nav-inner {
    position:relative;
    justify-content:center !important;
  }

  .navbar .nav-links {
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:max-content !important;
    max-width:calc(100vw - 360px) !important;
    margin:0 !important;
    padding:0 !important;
    gap:clamp(10px,1.05vw,20px) !important;
    white-space:nowrap;
  }

  .navbar .nav-item {
    font-size:clamp(.56rem,.64vw,.72rem) !important;
    letter-spacing:clamp(.035em,.05vw,.075em) !important;
  }

  .navbar .cta {
    right:28px !important;
  }
}

/* Tight desktop range: preserve exact center instead of shoving the links
   away from the logo. Reduce spacing/type slightly before mobile behavior. */
@media (min-width: 901px) and (max-width: 1250px) {
  .navbar .nav-links {
    gap:9px !important;
    max-width:calc(100vw - 300px) !important;
  }
  .navbar .nav-item {
    font-size:.55rem !important;
    letter-spacing:.025em !important;
  }
  .navbar .cta {
    padding:9px 12px !important;
    font-size:.62rem !important;
  }
}

/* On mobile/tablet the CTA is already removed from the top bar. Keep the
   remaining navigation visually centered rather than offset by legacy logo
   padding; horizontal scrolling remains available on very narrow screens. */
@media (max-width: 900px) {
  .navbar .nav-links {
    padding-left:88px !important;
    padding-right:18px !important;
    gap:12px !important;
    justify-content:center !important;
  }
}

/* ==========================================================
   2026-09-15 RESTORE LIVE ANIMATED HEX ATMOSPHERE
   Preserve bg-main.png as the base artwork while restoring the
   original moving/pulsing hex-grid layer and signal nodes.
   ========================================================== */
.home-page::before {
  background:
    linear-gradient(rgba(2,5,9,.10), rgba(2,5,9,.16)),
    url("../images/backgrounds/bg-main.png") center center / cover fixed no-repeat !important;
  opacity:1 !important;
}

.home-page::after {
  content:"" !important;
  position:fixed !important;
  inset:0 !important;
  background-image:url("../images/backgrounds/hex-grid-2026.webp") !important;
  background-repeat:repeat !important;
  background-size:520px auto !important;
  background-position:0 0;
  mix-blend-mode:screen;
  pointer-events:none !important;
  z-index:-2 !important;
  opacity:.075;
  animation:
    hexDrift 90s linear infinite,
    cgHexPulse 8s ease-in-out infinite !important;
}

/* Keep the original restrained signal-node pulses above the drifting grid. */
.home-page .signal-layer {
  display:block !important;
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
}
.home-page .signal-layer .node {
  display:block !important;
  animation:nodePulse 6s ease-in-out infinite !important;
}

@keyframes cgHexPulse {
  0%,100% { opacity:.055; filter:brightness(.92); }
  50%     { opacity:.115; filter:brightness(1.18); }
}

@media (prefers-reduced-motion: reduce) {
  .home-page::after {
    animation:none !important;
    opacity:.075 !important;
  }
  .home-page .signal-layer .node {
    animation:none !important;
    opacity:.22 !important;
  }
}


/* ==========================================================
   2026-09-15 SITE-WIDE CRITICAL GRAFFIX BACKGROUND SYSTEM
   Use the canonical bg-main artwork and animated hex atmosphere
   consistently across every active page. Page classes only vary
   the darkness of the readability veil.
   ========================================================== */
body {
  --cg-bg-veil-top:.16;
  --cg-bg-veil-bottom:.22;
}
.home-page {
  --cg-bg-veil-top:.10;
  --cg-bg-veil-bottom:.16;
}
.portfolio-page,
.academic-page,
.wedding-page {
  --cg-bg-veil-top:.18;
  --cg-bg-veil-bottom:.25;
}
.about-page,
.contact-page,
.terms-page {
  --cg-bg-veil-top:.25;
  --cg-bg-veil-bottom:.34;
}

body::before {
  content:"" !important;
  position:fixed !important;
  inset:0 !important;
  background:
    linear-gradient(
      rgba(2,5,9,var(--cg-bg-veil-top)),
      rgba(2,5,9,var(--cg-bg-veil-bottom))
    ),
    url("../images/backgrounds/bg-main.png") center center / cover fixed no-repeat !important;
  opacity:1 !important;
  z-index:-3 !important;
  pointer-events:none !important;
}

body::after {
  content:"" !important;
  position:fixed !important;
  inset:0 !important;
  background-image:url("../images/backgrounds/hex-grid-2026.webp") !important;
  background-repeat:repeat !important;
  background-size:520px auto !important;
  background-position:0 0;
  mix-blend-mode:screen;
  pointer-events:none !important;
  z-index:-2 !important;
  opacity:.075;
  animation:
    hexDrift 90s linear infinite,
    cgHexPulse 8s ease-in-out infinite !important;
}

/* Signal nodes are part of the shared site atmosphere, not home-only chrome. */
body .signal-layer {
  display:block !important;
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
}
body .signal-layer .node {
  display:block !important;
  animation:nodePulse 6s ease-in-out infinite !important;
}

@media (prefers-reduced-motion: reduce) {
  body::after {
    animation:none !important;
    opacity:.075 !important;
  }
  body .signal-layer .node {
    animation:none !important;
    opacity:.22 !important;
  }
}

/* ==========================================================
   2026-09-15 SITE-WIDE BACKGROUND VISIBILITY FIX
   Paint bg-main directly on BODY so it cannot be hidden behind
   the body's own background. Keep animated hex layer between
   the artwork and page content.
   ========================================================== */
body {
  position:relative;
  min-height:100vh;
  background-color:#030506 !important;
  background-image:
    linear-gradient(
      rgba(2,5,9,var(--cg-bg-veil-top)),
      rgba(2,5,9,var(--cg-bg-veil-bottom))
    ),
    url("../images/backgrounds/bg-main.png") !important;
  background-position:center center, center center !important;
  background-size:cover, cover !important;
  background-repeat:no-repeat, no-repeat !important;
  background-attachment:fixed, fixed !important;
}

/* Base art is now on body itself; do not duplicate it in ::before. */
body::before {
  content:"" !important;
  position:fixed !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  background-image:url("../images/backgrounds/hex-grid-2026.webp") !important;
  background-repeat:repeat !important;
  background-size:520px auto !important;
  background-position:0 0;
  mix-blend-mode:screen;
  opacity:.075;
  animation:
    hexDrift 90s linear infinite,
    cgHexPulse 8s ease-in-out infinite !important;
}

/* The old ::after layer is no longer needed for site atmosphere. */
body::after {
  content:none !important;
  display:none !important;
}

/* Keep actual page content above the animated atmosphere. */
body > main,
body > footer {
  position:relative;
  z-index:1;
}
body > .navbar {
  z-index:1000;
}
body > .signal-layer {
  z-index:0 !important;
}
body > .cg-sound-control {
  z-index:80 !important;
}

/* Internal pages should clearly retain the branded edge lighting. */
.home-page {
  --cg-bg-veil-top:.08;
  --cg-bg-veil-bottom:.14;
}
.portfolio-page,
.academic-page,
.wedding-page {
  --cg-bg-veil-top:.12;
  --cg-bg-veil-bottom:.20;
}
.about-page,
.contact-page,
.terms-page {
  --cg-bg-veil-top:.16;
  --cg-bg-veil-bottom:.24;
}

@media (max-width:900px) {
  body {
    background-attachment:scroll, scroll !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  body::before {
    animation:none !important;
    opacity:.075 !important;
  }
}


/* Agency-ready homepage refinement — 2026-09-24 */
@media (min-width: 900px) { .cg-work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cg-proof-section { padding:72px 0; }
.cg-proof-section .section-heading { max-width:900px; margin-bottom:26px; }
.cg-proof-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.cg-proof-grid article { padding:22px; border:1px solid rgba(156,180,186,.26); border-radius:10px; background:rgba(7,10,11,.82); position:relative; }
.cg-proof-grid article::before { content:''; position:absolute; left:0; top:0; width:44px; border-top:2px solid var(--cg-green); }
.cg-proof-grid article::after { content:''; position:absolute; right:0; bottom:0; width:44px; border-bottom:2px solid var(--cg-aqua); }
.cg-proof-grid strong, .cg-proof-grid h3 { display:block; color:#fff; margin:0 0 8px; font-size:1.02rem; font-weight:700; }
.cg-proof-grid span { color:#aeb8c1; line-height:1.55; }
.cg-about-principle { padding:18px 20px; border-left:3px solid var(--cg-green); background:rgba(0,229,255,.05); }
@media (max-width:899px) { .cg-proof-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:599px) { .cg-proof-grid { grid-template-columns:1fr; } }


/* Dudley Lions Selected Work card: preserve the full four-poster montage. */
.cg-work-card-lions img {
  object-fit: contain;
  background: #11161b;
}

/* Webster Hall Selected Work card: preserve the full poster without cropping. */
.cg-work-card-webster img {
  object-fit: contain;
  background: #11161b;
}


/* Mobile primary navigation fix — keep Home / Portfolio / About / Contact visible on phones. */
@media (max-width: 900px) {
  .navbar .nav-inner {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    overflow: hidden;
  }

  .navbar .nav-links {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    margin: 0 !important;
    padding-left: 88px !important;
    padding-right: 12px !important;
    width: 100% !important;
    max-width: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .navbar .nav-links::-webkit-scrollbar {
    display: none;
  }

  .navbar .nav-item {
    flex: 0 0 auto;
    font-size: .64rem !important;
  }
}

@media (max-width: 430px) {
  .navbar .nav-links {
    gap: 10px !important;
    padding-left: 76px !important;
    padding-right: 10px !important;
  }

  .navbar .nav-item {
    font-size: .59rem !important;
    letter-spacing: .035em !important;
  }
}
