/* ============================================================================
   DIGITMI — CASE STUDY SYSTEM
   Extends css/style.css (tokens, nav, footer, buttons, .anim, particles).
   Dark theme locked. Accent: --aqua (#00F5C7) -> --purple (#7C5CFC).
   ========================================================================== */

/* ---- Shared rhythm ------------------------------------------------------- */
.cs-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.cs-section{padding:120px 0;position:relative;z-index:2}
.cs-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--aqua)}
.cs-eyebrow::before{content:'';width:22px;height:2px;background:var(--aqua);border-radius:2px}
.cs-h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(34px,4.6vw,60px);font-weight:900;line-height:1.02;text-transform:uppercase;letter-spacing:-.5px}
.cs-lead{font-size:clamp(17px,1.5vw,20px);line-height:1.7;color:rgba(240,240,240,.74);max-width:62ch}
.cs-muted{color:rgba(240,240,240,.6)}

/* ---- Back-to-work pill (sits under fixed nav) ---------------------------- */
.cs-back{position:fixed;top:96px;left:24px;z-index:90;display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px 9px 12px;border-radius:99px;font-family:'Barlow Condensed',sans-serif;font-size:12px;
  font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(240,240,240,.8);
  background:rgba(10,0,50,.6);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);transition:all .3s cubic-bezier(.16,1,.3,1)}
.cs-back:hover{color:var(--aqua);border-color:rgba(0,245,199,.4);transform:translateX(-3px)}
.cs-back i{font-size:16px}

/* ============================================================================
   HERO
   ========================================================================== */
.cs-hero{position:relative;min-height:100dvh;display:flex;align-items:center;overflow:hidden;padding:140px 0 80px}
.cs-hero-orb{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;z-index:0}
.cs-hero-orb.a{width:620px;height:620px;top:-220px;left:-160px;animation:orbA 12s ease-in-out infinite}
.cs-hero-orb.b{width:560px;height:560px;bottom:-200px;right:-140px;animation:orbB 15s ease-in-out infinite}
@keyframes orbA{0%,100%{transform:translate(0,0)}45%{transform:translate(50px,40px)}}
@keyframes orbB{0%,100%{transform:translate(0,0)}45%{transform:translate(-44px,-50px)}}
.cs-hero-grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(0,245,199,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,245,199,.03) 1px,transparent 1px);background-size:72px 72px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 80%)}
.cs-hero-inner{position:relative;z-index:3;display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center;width:100%}
.cs-hero-cat{font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(240,240,240,.55);margin:18px 0 22px}
.cs-hero-cat b{color:var(--aqua);font-weight:700}
.cs-hero h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(46px,6.4vw,92px);font-weight:900;line-height:.92;text-transform:uppercase;letter-spacing:-1.5px;margin-bottom:26px}
.cs-hero h1 .ac{display:inline-block}
.cs-hero-sub{font-size:clamp(16px,1.5vw,19px);line-height:1.72;color:rgba(240,240,240,.74);max-width:46ch;margin-bottom:38px}
.cs-hero-ctas{display:flex;gap:14px;flex-wrap:wrap}

/* Hero visual frame (brand-specific content slots inside) */
.cs-hero-visual{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/5;
  border:1px solid rgba(255,255,255,.08);box-shadow:0 50px 120px rgba(0,0,0,.55);background:rgba(255,255,255,.02)}
.cs-hero-visual img{width:100%;height:100%;object-fit:cover;display:block}
.cs-hero-visual .cs-hv-grad{position:absolute;inset:0;background:linear-gradient(150deg,rgba(0,245,199,.12),transparent 45%,rgba(124,92,252,.18))}

/* Project meta bar */
.cs-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:64px;
  border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.cs-meta-item{padding:26px 28px;border-right:1px solid rgba(255,255,255,.08)}
.cs-meta-item:last-child{border-right:none}
.cs-meta-k{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(240,240,240,.42);margin-bottom:8px}
.cs-meta-v{font-family:'Barlow Condensed',sans-serif;font-size:19px;font-weight:700;color:var(--anti)}

/* ============================================================================
   STORY — editorial statement
   ========================================================================== */
.cs-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.cs-statement{font-family:'Barlow Condensed',sans-serif;font-size:clamp(28px,3.2vw,46px);font-weight:800;line-height:1.12;text-transform:uppercase;letter-spacing:-.5px}
.cs-statement .ac{display:inline}
.cs-story-body p{font-size:16.5px;line-height:1.85;color:rgba(240,240,240,.72);margin-bottom:20px}
.cs-story-body p:last-child{margin-bottom:0}
.cs-pull{margin-top:30px;padding:22px 26px;border-left:2px solid var(--aqua);background:rgba(0,245,199,.04);border-radius:0 14px 14px 0}
.cs-pull span{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:700;color:rgba(240,240,240,.9);line-height:1.4}

/* ============================================================================
   APPROACH / SERVICE OVERVIEW — numbered ledger (not 3 equal cards)
   ========================================================================== */
.cs-ledger{margin-top:56px;border-top:1px solid rgba(255,255,255,.1)}
.cs-ledger-row{display:grid;grid-template-columns:84px 1fr 1.3fr;gap:32px;align-items:baseline;
  padding:34px 0;border-bottom:1px solid rgba(255,255,255,.08);transition:padding .35s cubic-bezier(.16,1,.3,1)}
.cs-ledger-row:hover{padding-left:14px}
.cs-ledger-n{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:800;color:var(--aqua);letter-spacing:1px}
.cs-ledger-h{font-family:'Barlow Condensed',sans-serif;font-size:clamp(22px,2.3vw,30px);font-weight:800;text-transform:uppercase;letter-spacing:.3px;line-height:1.08}
.cs-ledger-p{font-size:15.5px;line-height:1.75;color:rgba(240,240,240,.66)}

/* ============================================================================
   SOLUTION — alternating feature rows (max 2 consecutive, broken by other blocks)
   ========================================================================== */
.cs-feature{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-top:90px}
.cs-feature:first-of-type{margin-top:60px}
.cs-feature.flip .cs-feature-text{order:2}
.cs-feature-text h3{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,2.8vw,38px);font-weight:900;text-transform:uppercase;line-height:1.05;letter-spacing:-.3px;margin-bottom:18px}
.cs-feature-text p{font-size:16px;line-height:1.8;color:rgba(240,240,240,.7);margin-bottom:18px}
.cs-feature-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:22px}
.cs-feature-list li{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:rgba(240,240,240,.78)}
.cs-feature-list i{color:var(--aqua);font-size:18px;flex-shrink:0;margin-top:1px}
.cs-feature-visual{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3;
  border:1px solid rgba(255,255,255,.08);box-shadow:0 36px 90px rgba(0,0,0,.5);background:rgba(255,255,255,.02)}
.cs-feature-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.cs-feature-visual:hover img{transform:scale(1.05)}

/* ============================================================================
   BRAND-SYSTEM BOARD (logo lockup, palette, type) — for identity showcases
   ========================================================================== */
.cs-board{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(150px,auto);gap:18px;margin-top:56px}
.cs-tile{border-radius:18px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);
  padding:30px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.cs-tile .cs-tile-k{position:absolute;top:22px;left:26px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(240,240,240,.4)}
.cs-tile.col-7{grid-column:span 7}
.cs-tile.col-5{grid-column:span 5}
.cs-tile.col-4{grid-column:span 4}
.cs-tile.col-8{grid-column:span 8}
.cs-tile.col-6{grid-column:span 6}
.cs-tile.col-12{grid-column:span 12}
.cs-tile.row-2{grid-row:span 2}
.cs-tile.tall{min-height:320px}
.cs-tile-logo{display:flex;align-items:center;justify-content:center;flex:1;padding:20px}
.cs-tile-logo img{max-height:120px;width:auto;object-fit:contain;filter:drop-shadow(0 8px 30px rgba(0,0,0,.4))}
.cs-tile-img{padding:0}
.cs-tile-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* color swatches */
.cs-swatches{display:flex;gap:0;flex:1;border-radius:12px;overflow:hidden;margin-top:30px}
.cs-swatch{flex:1;display:flex;align-items:flex-end;padding:14px;min-height:130px}
.cs-swatch span{font-size:11px;font-weight:700;letter-spacing:.5px;font-family:'Barlow Condensed',sans-serif}
/* type specimen */
.cs-type-spec{display:flex;flex-direction:column;gap:6px;flex:1;justify-content:center}
.cs-type-spec .tt-big{font-family:'Barlow Condensed',sans-serif;font-size:54px;font-weight:900;line-height:.9;text-transform:uppercase}
.cs-type-spec .tt-row{font-size:13px;letter-spacing:1px;color:rgba(240,240,240,.55)}

/* ============================================================================
   GALLERY (product / dish grid)
   ========================================================================== */
.cs-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:56px}
.cs-gcell{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:1;border:1px solid rgba(255,255,255,.07);
  background:radial-gradient(circle at 50% 35%,rgba(124,92,252,.14),transparent 70%),rgba(255,255,255,.025)}
.cs-gcell img{width:100%;height:100%;object-fit:contain;padding:14%;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.cs-gcell:hover img{transform:scale(1.08) rotate(-2deg)}
.cs-gcell::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 120%,rgba(0,245,199,.16),transparent 60%);opacity:0;transition:opacity .4s}
.cs-gcell:hover::after{opacity:1}

/* horizontal scroll strip (mobile-friendly fallback for many items) */
.cs-strip{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;margin-top:40px;-webkit-overflow-scrolling:touch}
.cs-strip::-webkit-scrollbar{height:6px}
.cs-strip > *{scroll-snap-align:start;flex:0 0 auto}

/* ============================================================================
   RESULTS / IMPACT — metric tiles + outcomes
   ========================================================================== */
.cs-results{background:rgba(10,0,50,.5)}
.cs-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:56px}
.cs-metric{border-radius:18px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);padding:34px 30px}
.cs-metric-n{font-family:'Barlow Condensed',sans-serif;font-size:clamp(40px,4.4vw,58px);font-weight:900;line-height:1;
  background:linear-gradient(135deg,#00F5C7,#7C5CFC);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.cs-metric-l{font-size:15px;line-height:1.6;color:rgba(240,240,240,.62);margin-top:14px}
.cs-outcomes{display:grid;grid-template-columns:1fr 1fr;gap:16px 48px;margin-top:48px;list-style:none}
.cs-outcomes li{display:flex;gap:14px;align-items:flex-start;font-size:16px;line-height:1.6;color:rgba(240,240,240,.78);padding:16px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.cs-outcomes i{color:var(--aqua);font-size:20px;flex-shrink:0;margin-top:1px}

/* ============================================================================
   NEXT PROJECT + CTA
   ========================================================================== */
.cs-next{padding:0;position:relative;z-index:2}
.cs-next a{display:block;padding:80px 0;text-align:center;transition:background .4s}
.cs-next a:hover{background:rgba(0,245,199,.03)}
.cs-next-k{font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(240,240,240,.45)}
.cs-next-h{font-family:'Barlow Condensed',sans-serif;font-size:clamp(40px,6vw,84px);font-weight:900;text-transform:uppercase;line-height:1;margin-top:14px;letter-spacing:-1px}
.cs-next a:hover .cs-next-h{color:var(--aqua)}

.cs-cta{position:relative;overflow:hidden;text-align:center;padding:130px 0}
.cs-cta-orb{position:absolute;width:540px;height:540px;border-radius:50%;filter:blur(110px);background:radial-gradient(circle,rgba(0,245,199,.22),transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.cs-cta-inner{position:relative;z-index:2;max-width:720px;margin:0 auto}
.cs-cta h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(40px,6vw,76px);font-weight:900;text-transform:uppercase;line-height:.96;margin-bottom:22px}
.cs-cta p{font-size:17px;line-height:1.7;color:rgba(240,240,240,.72);max-width:52ch;margin:0 auto 34px}
.cs-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ============================================================================
   GSAP reveal primitives (driven by case.js; CSS sets the start state)
   ========================================================================== */
.r-up{opacity:0;transform:translateY(40px)}
.r-fade{opacity:0}
.r-scale{opacity:0;transform:scale(.94)}
.r-left{opacity:0;transform:translateX(-44px)}
.r-right{opacity:0;transform:translateX(44px)}
.is-in{opacity:1!important;transform:none!important}

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:1024px){
  .cs-hero-inner{grid-template-columns:1fr;gap:48px}
  /* let single-column grid children shrink below their content width (no h-overflow) */
  .cs-hero-inner > *,.cs-hero-copy,.cs-hero-visual,.cs-feature > *,.cs-story-grid > *{min-width:0}
  .cs-hero-visual{aspect-ratio:16/10;max-width:560px}
  .cs-story-grid{grid-template-columns:1fr;gap:36px}
  .cs-feature{grid-template-columns:1fr;gap:32px}
  .cs-feature.flip .cs-feature-text{order:0}
  .cs-meta{grid-template-columns:1fr 1fr}
  .cs-meta-item:nth-child(2){border-right:none}
  .cs-meta-item:nth-child(1),.cs-meta-item:nth-child(2){border-bottom:1px solid rgba(255,255,255,.08)}
  .cs-metrics{grid-template-columns:1fr 1fr}
  .cs-ledger-row{grid-template-columns:60px 1fr;gap:18px}
  .cs-ledger-p{grid-column:2}
  .cs-tile.col-7,.cs-tile.col-5,.cs-tile.col-4,.cs-tile.col-8,.cs-tile.col-6{grid-column:span 6}
}
@media(max-width:680px){
  .cs-section{padding:80px 0}
  .cs-hero{padding:120px 0 60px;min-height:auto}
  /* scale the hero headline down so long words never overflow narrow screens */
  .cs-hero h1{font-size:clamp(33px,8.6vw,46px);letter-spacing:-.8px}
  .cs-hero-sub{max-width:none}
  .cs-h2{font-size:clamp(28px,7.4vw,40px)}
  .cs-statement{font-size:clamp(24px,6.6vw,30px)}
  .cs-back{top:84px;left:16px}
  .cs-meta{grid-template-columns:1fr}
  .cs-meta-item{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}
  .cs-meta-item:last-child{border-bottom:none}
  .cs-outcomes{grid-template-columns:1fr;gap:0}
  .cs-metrics{grid-template-columns:1fr 1fr;gap:12px}
  .cs-board{grid-template-columns:repeat(6,1fr)}
  .cs-tile.col-7,.cs-tile.col-5,.cs-tile.col-4,.cs-tile.col-8,.cs-tile.col-6,.cs-tile.col-12{grid-column:span 6}
  .cs-ledger-row:hover{padding-left:0}
}

/* Reduced motion: reveal everything statically */
@media (prefers-reduced-motion: reduce){
  .r-up,.r-fade,.r-scale,.r-left,.r-right{opacity:1!important;transform:none!important}
  .cs-hero-orb,.cs-cta-orb{animation:none!important}
}
