/* ==========================================================
   Grably Tech · shared stylesheet
   Used by index.html and cases/*.html
   ========================================================== */

:root{
  --paper:#ffffff;
  --ink:#0a0a0a;
  --ink-70:rgba(10,10,10,.7);
  --ink-50:rgba(10,10,10,.5);
  --ink-30:rgba(10,10,10,.3);
  --line:rgba(10,10,10,.12);
  --rule:rgba(10,10,10,.85);
  --accent:#ff2d1f;
  --sans:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --gap:24px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:400;font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11","tnum";
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--accent);color:#fff;}

.wrap{max-width:1320px;margin:0 auto;padding:0 40px;}

.mono{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:400;}
.rule{height:1px;background:var(--rule);width:100%;}
.line{height:1px;background:var(--line);width:100%;}

h1,h2,h3,h4{font-weight:500;letter-spacing:-.02em;}
.display{font-weight:400;font-size:clamp(48px,7.6vw,112px);line-height:.94;letter-spacing:-.035em;}
.h2{font-weight:500;font-size:clamp(36px,4.8vw,68px);line-height:1;letter-spacing:-.025em;}
.h3{font-weight:500;font-size:clamp(22px,1.8vw,28px);line-height:1.18;letter-spacing:-.015em;}
em.red{font-style:normal;color:var(--accent);}
.lead{font-size:18px;line-height:1.5;color:var(--ink);max-width:58ch;}
.soft{color:var(--ink-70);}
.muted{color:var(--ink-50);}
.tiny{color:var(--ink-30);}

/* ==========================================================
   NAV
   ========================================================== */

nav.top{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--rule);}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:24px;}
.brand{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:color .2s;}
.brand b{color:var(--accent);font-weight:500;transition:color .2s;}
.brand .year{color:var(--ink-30);margin-left:8px;}
.brand:hover b{color:var(--ink);}

.nav-links{display:flex;gap:28px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-50);}
.nav-links a{position:relative;padding-bottom:3px;transition:color .2s ease;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--accent);transition:width .25s ease;}
.nav-links a:hover{color:var(--ink);}
.nav-links a:hover::after{width:100%;}
.nav-links a.is-back{color:var(--ink);}
.nav-links a.is-back::before{content:"←";display:inline-block;margin-right:6px;transition:transform .2s;}
.nav-links a.is-back:hover::before{transform:translateX(-3px);color:var(--accent);}

.nav-cta{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:2px;white-space:nowrap;transition:color .2s,border-color .2s,letter-spacing .2s;}
.nav-cta:hover{color:var(--accent);border-color:var(--accent);letter-spacing:.09em;}

/* lang toggle (kept as visible stub — EN returns RU until translated) */
.toggle{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-30);}
.toggle .lbl{color:var(--ink-30);}
.toggle .opts{display:inline-flex;gap:0;border:1px solid var(--line);}
.toggle .opt{padding:4px 9px;cursor:pointer;color:var(--ink-50);background:transparent;border:none;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;transition:background .15s,color .15s;}
.toggle .opt + .opt{border-left:1px solid var(--line);}
.toggle .opt:hover{color:var(--ink);}
.toggle .opt.is-active{background:var(--ink);color:#fff;}

/* ==========================================================
   SECTION BASE
   ========================================================== */

section{padding:96px 0;border-bottom:1px solid var(--rule);}
.meta-strip{
  display:grid;grid-template-columns:auto 1fr auto;column-gap:24px;align-items:baseline;
  padding-bottom:24px;margin-bottom:32px;border-bottom:1px solid var(--line);
}
.meta-strip .l{color:var(--ink);}
.meta-strip .m{color:var(--ink-50);}
.meta-strip .r{color:var(--ink-30);text-align:right;}
.sec-head{max-width:22ch;}
.sec-head.wide{max-width:28ch;}
.sec-lead{margin-top:24px;max-width:64ch;font-size:18px;line-height:1.5;color:var(--ink-70);}

/* ==========================================================
   BUTTONS
   ========================================================== */

.btn{
  display:inline-flex;align-items:center;gap:14px;
  background:var(--ink);color:#fff;border:1px solid var(--ink);
  padding:16px 22px;
  font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  transition:background .15s,border-color .15s,color .15s,transform .15s;
}
.btn:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px);}
.btn .arrow{display:inline-block;transition:transform .2s;}
.btn:hover .arrow{transform:translateX(4px);}
.btn.inv{background:#fff;color:var(--ink);border-color:#fff;}
.btn.inv:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);}
.btn.ghost:hover{background:#fff;color:var(--ink);border-color:#fff;}

/* ==========================================================
   CHIPS
   ========================================================== */

.chipset{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:8px;}
.chip{
  display:inline-flex;align-items:center;
  font-family:var(--mono);font-size:11px;letter-spacing:.01em;
  padding:5px 9px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);
  transition:background .15s, color .15s, border-color .15s, transform .15s;
}
.chip:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-1px);}
.chip.red{border-color:var(--accent);color:var(--accent);}
.chip.red:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.chip.dim{border-color:var(--line);color:var(--ink-50);}

/* ==========================================================
   HERO
   ========================================================== */

.hero{padding:48px 0 96px;border-bottom:1px solid var(--rule);}
.hero-meta{display:grid;grid-template-columns:repeat(4,1fr);column-gap:var(--gap);padding-bottom:28px;border-bottom:1px solid var(--line);}
.hero-meta .cell .k{display:block;color:var(--ink-30);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.hero-meta .cell .v{display:block;color:var(--ink);font-family:var(--mono);font-size:12px;letter-spacing:.02em;}
.hero-meta .cell .v.r{color:var(--accent);}

.hero h1{margin-top:64px;}
.hero-sub{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;}
.hero-sub .col .k{display:block;margin-bottom:12px;color:var(--ink-50);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.hero-sub .col p{font-size:17px;line-height:1.55;max-width:46ch;}

.hero-foot{margin-top:64px;display:grid;grid-template-columns:auto 1fr;column-gap:48px;align-items:end;}
.hero-foot .specs{display:grid;grid-template-columns:repeat(4,1fr);column-gap:var(--gap);}
.spec .k{display:block;color:var(--ink-30);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.spec .v{display:block;color:var(--ink);font-size:14px;font-weight:500;line-height:1.3;}

/* ==========================================================
   SERVICES
   ========================================================== */

.services-intro{display:grid;grid-template-columns:1fr auto;column-gap:40px;align-items:end;padding-bottom:24px;}
.services-intro .count{text-align:right;border-left:1px solid var(--line);padding-left:24px;}
.services-intro .count .big{display:block;font-size:64px;line-height:.9;font-weight:400;letter-spacing:-.03em;}
.services-intro .count .lbl{display:block;margin-top:8px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}

.module{
  padding:36px 0;border-top:1px solid var(--rule);
  position:relative;transition:padding .2s;
}
.module:last-of-type{border-bottom:1px solid var(--rule);}
.module::before{
  content:"";position:absolute;left:-12px;top:50%;width:3px;height:0;background:var(--accent);
  transform:translateY(-50%);transition:height .25s ease;
}
.module:hover::before{height:60%;}
.module-head{display:grid;grid-template-columns:120px 1fr;column-gap:40px;align-items:start;margin-bottom:24px;}
.module-num .big{display:block;font-size:48px;line-height:1;font-weight:400;letter-spacing:-.03em;color:var(--ink);transition:color .2s;}
.module:hover .module-num .big{color:var(--accent);}
.module-num .lbl{display:block;margin-top:8px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.module-title{max-width:30ch;}
.module-body{display:grid;grid-template-columns:120px 1fr 1fr;column-gap:40px;row-gap:24px;}
.module-body .sp{grid-column:1;}
.module-body .col p{font-size:15px;line-height:1.55;max-width:48ch;}
.module-tags{grid-column:2 / -1;}
.module-tags .k{display:block;margin-bottom:10px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.module-link{margin-top:14px;display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:2px;transition:color .2s,border-color .2s,letter-spacing .2s;}
.module-link:hover{color:var(--accent);border-color:var(--accent);letter-spacing:.09em;}

/* tag-block label inside modules */
.module-body .col .k{display:block;margin-bottom:10px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}

/* ==========================================================
   TRUST
   ========================================================== */

.trust-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);column-gap:96px;row-gap:40px;margin-top:32px;align-items:start;}
.trust-col{display:flex;flex-direction:column;gap:40px;}
.trust-block .k{display:block;margin-bottom:12px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.trust-block ul{list-style:none;}
.trust-block li{padding:14px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.5;display:grid;grid-template-columns:36px 1fr;transition:padding-left .2s;}
.trust-block li:last-child{border-bottom:1px solid var(--line);}
.trust-block li:hover{padding-left:6px;}
.trust-block li:hover .n{color:var(--accent);}
.trust-block li .n{color:var(--ink-30);font-family:var(--mono);font-size:11px;padding-top:3px;transition:color .2s;}
.trust-block .links{margin-top:4px;display:flex;gap:8px;flex-wrap:wrap;}
/* default inline link inside trust list — regular text, with thin underline */
.trust-block li a.lk{
  border-bottom:1px solid var(--line);padding-bottom:1px;
  transition:color .15s,border-color .15s;
}
.trust-block li a.lk:hover{color:var(--accent);border-color:var(--accent);}
/* small mono links inside the .links container (e.g., YouTube ↗) */
.trust-block .links a.lk{
  font-family:var(--mono);font-size:11px;color:var(--ink-50);
}
.trust-block.span2{grid-column:1 / -1;}

/* ==========================================================
   CASE CARDS GRID (homepage)
   ========================================================== */

.case-grid{
  display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:0;
  border-top:1px solid var(--rule);
  margin-top:24px;
}
.case-card{
  display:grid;grid-template-rows:auto auto auto auto auto auto 1fr auto;
  padding:32px 28px 28px;
  border-bottom:1px solid var(--rule);
  position:relative;
  background:var(--paper);
  transition:background .2s, transform .2s;
  overflow:hidden;
}
.case-card + .case-card{border-left:1px solid var(--rule);}
.case-card:nth-child(2n+1){border-left:none;}
.case-card:nth-child(odd):not(:first-child)::before{
  content:"";position:absolute;top:0;left:0;width:1px;height:100%;background:var(--rule);
}
/* If 5th card is alone in last row — span full width as a feature row */
.case-card.case-card--feature{
  grid-column:1 / -1;
  display:grid;grid-template-rows:none;grid-template-columns:1.1fr 1fr;
  gap:32px;
  padding:36px 32px;
}
.case-card.case-card--feature::before{display:none;}
.case-card.case-card--feature .case-card-img{margin-bottom:0;aspect-ratio:auto;min-height:280px;display:flex;align-items:center;justify-content:center;}
.case-card.case-card--feature .case-card-content{display:flex;flex-direction:column;}
.case-card.case-card--feature .case-card-title{font-size:26px;max-width:38ch;}
.case-card.case-card--feature .case-card-teaser{max-width:50ch;font-size:16px;}
.case-card.case-card--feature .case-card-arrow{margin-top:auto;}
.case-card::after{
  content:"";position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--accent);
  transition:width .35s ease;
}
.case-card:hover{background:#fafafa;}
.case-card:hover::after{width:100%;}

.case-card-head{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:baseline;margin-bottom:18px;}
.case-card-num{font-size:48px;line-height:.9;font-weight:400;letter-spacing:-.03em;color:var(--ink);transition:color .2s;}
.case-card:hover .case-card-num{color:var(--accent);}
.case-card-cat{display:block;font-family:var(--mono);font-size:11px;color:var(--ink-30);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;}
.case-card-client{display:block;font-family:var(--mono);font-size:11px;color:var(--ink-50);letter-spacing:.04em;text-transform:uppercase;}

.case-card-img{
  border:1px solid var(--line);background:#f3f3f3;overflow:hidden;
  margin-bottom:20px;aspect-ratio:16/10;
}
.case-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.case-card:hover .case-card-img img{transform:scale(1.04);}

.case-card-title{font-size:22px;font-weight:500;letter-spacing:-.015em;line-height:1.2;margin-bottom:12px;max-width:30ch;}
.case-card-teaser{font-size:15px;line-height:1.55;color:var(--ink-70);margin-bottom:14px;max-width:42ch;}
.case-card-tags{margin-bottom:20px;}
.case-card-arrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink);border-top:1px solid var(--line);padding-top:14px;
  display:flex;justify-content:space-between;align-items:center;
}
.case-card-arrow .ar{display:inline-block;transition:transform .25s;}
.case-card:hover .case-card-arrow{color:var(--accent);}
.case-card:hover .case-card-arrow .ar{transform:translateX(6px);}

/* ==========================================================
   MINOR CASES
   ========================================================== */

.minor-list{list-style:none;}
.minor-list li{
  padding:18px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.5;
  display:grid;grid-template-columns:36px 1fr 220px;column-gap:16px;align-items:baseline;
  transition:padding-left .2s, color .2s;
}
.minor-list li:last-child{border-bottom:1px solid var(--line);}
.minor-list li:hover{padding-left:8px;}
.minor-list li:hover .n{color:var(--accent);}
.minor-list li .n{color:var(--ink-30);font-family:var(--mono);font-size:11px;transition:color .2s;}
.minor-list li .tag{text-align:right;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;}

/* ==========================================================
   PROCESS
   ========================================================== */

.process-pipeline{margin-top:24px;}
.pl-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:0;border:1px solid var(--rule);}
.pl-col{padding:24px;}
.pl-col + .pl-col{border-left:1px solid var(--rule);}
.pl-col .lbl{display:block;font-family:var(--mono);font-size:11px;color:var(--ink-30);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;}
.pl-col .ttl{font-size:20px;font-weight:500;letter-spacing:-.015em;margin-bottom:14px;}
.pl-col ul{list-style:none;margin:0;padding:0;}
.pl-col li{padding:8px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.45;display:grid;grid-template-columns:18px 1fr;gap:6px;}
.pl-col li:last-child{border-bottom:1px solid var(--line);}
.pl-col li .n{font-family:var(--mono);font-size:11px;color:var(--ink-30);padding-top:2px;}
.pl-gates{display:grid;grid-template-columns:auto repeat(5,1fr);column-gap:0;border:1px solid var(--rule);border-top:none;align-items:center;}
.pl-gates .gates-lbl{padding:14px 18px;font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;border-right:1px solid var(--rule);}
.pl-gates .gate{padding:14px 18px;font-family:var(--mono);font-size:11px;color:var(--ink);letter-spacing:.04em;text-transform:uppercase;transition:background .15s, color .15s;}
.pl-gates .gate + .gate{border-left:1px solid var(--rule);}
.pl-gates .gate::before{content:"●";color:var(--accent);margin-right:8px;}
.pl-gates .gate:hover{background:var(--ink);color:#fff;}

.process-handoff{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;align-items:start;padding-top:32px;border-top:1px solid var(--rule);}
.process-handoff .left .k{display:block;margin-bottom:14px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.process-handoff .left h3{font-size:24px;font-weight:500;letter-spacing:-.015em;margin-bottom:12px;max-width:28ch;}
.process-handoff .right p{font-size:15px;line-height:1.6;color:var(--ink-70);max-width:54ch;}

.process-closer{margin-top:40px;padding-top:24px;border-top:1px solid var(--rule);font-size:20px;line-height:1.4;font-weight:500;letter-spacing:-.01em;max-width:60ch;}
.process-closer em{color:var(--accent);font-style:normal;}

/* ==========================================================
   ABOUT
   ========================================================== */

.about-body{display:grid;grid-template-columns:340px 1fr;column-gap:48px;align-items:start;margin-top:32px;}
.about-photo{border:1px solid var(--line);overflow:hidden;background:#f0f0f0;aspect-ratio:3/4;transition:border-color .25s;}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease, filter .6s ease;filter:saturate(.92);}
.about-photo:hover{border-color:var(--accent);}
.about-photo:hover img{transform:scale(1.04);filter:saturate(1.1);}
.about-meta{margin-top:14px;font-family:var(--mono);font-size:11px;color:var(--ink-30);letter-spacing:.04em;text-transform:uppercase;}

.about-info .role{font-family:var(--mono);font-size:11px;color:var(--ink-30);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;}
.about-info .about-tag{font-family:var(--mono);font-size:11px;color:var(--ink-30);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;}
.about-info .name{font-size:clamp(36px,3.6vw,52px);font-weight:400;letter-spacing:-.03em;line-height:1;margin-bottom:20px;}
.about-info .bio{font-size:17px;line-height:1.55;color:var(--ink);max-width:54ch;margin-bottom:24px;}
.about-info .k{display:block;margin-bottom:10px;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.about-info ul{list-style:none;}
.about-info li{display:grid;grid-template-columns:24px 1fr;padding:12px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.5;transition:padding-left .2s;}
.about-info li:last-child{border-bottom:1px solid var(--line);}
.about-info li:hover{padding-left:6px;}
.about-info li .n{color:var(--ink-30);font-family:var(--mono);font-size:11px;padding-top:3px;}
.about-info a.lk{border-bottom:1px solid var(--line);padding-bottom:1px;transition:color .15s,border-color .15s;}
.about-info a.lk:hover{color:var(--accent);border-color:var(--accent);}
.about-specs{margin-top:32px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);column-gap:var(--gap);row-gap:18px;}
.about-specs .k{display:block;color:var(--ink-30);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.about-specs .v{display:block;color:var(--ink);font-size:14px;font-weight:500;line-height:1.3;}

/* ==========================================================
   FAQ
   ========================================================== */

.faq-top{display:grid;grid-template-columns:1fr auto;column-gap:40px;align-items:end;}
.faq-top .meta{color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.faq-list{margin-top:32px;border-top:1px solid var(--rule);}
details.q{border-bottom:1px solid var(--line);transition:padding-left .2s;}
details.q:hover{padding-left:6px;}
details.q > summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:56px 1fr 32px;column-gap:24px;padding:20px 0;align-items:baseline;}
details.q > summary::-webkit-details-marker{display:none;}
summary .n{color:var(--ink-30);font-family:var(--mono);font-size:12px;letter-spacing:.04em;transition:color .2s;}
summary .t{font-size:17px;line-height:1.4;letter-spacing:-.005em;font-weight:500;transition:color .2s;}
summary .s{text-align:right;font-family:var(--mono);font-size:18px;color:var(--ink-50);transition:transform .25s,color .2s;}
details.q[open] summary .s{transform:rotate(45deg);color:var(--accent);}
details.q:hover summary .t{color:var(--accent);}
details.q:hover summary .n{color:var(--accent);}
details.q .a{display:grid;grid-template-columns:56px 1fr 32px;column-gap:24px;padding:0 0 24px;}
details.q .a .body{grid-column:2;color:var(--ink-70);font-size:15px;line-height:1.6;max-width:64ch;}
details.q .a .body p + p{margin-top:10px;}
details.q .a .body strong{color:var(--ink);}

/* ==========================================================
   FINAL CTA
   ========================================================== */

.final{background:var(--ink);color:#fff;padding:140px 0;border:none;}
.final .meta-strip{border-color:rgba(255,255,255,.18);}
.final .meta-strip .l{color:#fff;}
.final .meta-strip .m{color:rgba(255,255,255,.5);}
.final .meta-strip .r{color:rgba(255,255,255,.35);}
.final h2{max-width:20ch;margin-top:24px;}
.final em.red{color:var(--accent);}
.final .body{margin-top:48px;max-width:60ch;color:rgba(255,255,255,.75);font-size:18px;line-height:1.55;}
.final .act{margin-top:48px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.final .act .status{color:rgba(255,255,255,.5);font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin-left:8px;}
.final .sig{margin-top:96px;padding-top:32px;border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--gap);color:rgba(255,255,255,.55);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.final .sig .e{display:flex;flex-direction:column;gap:6px;}
.final .sig .e .k{color:rgba(255,255,255,.3);}

/* ==========================================================
   FOOTER
   ========================================================== */

footer{background:var(--ink);color:rgba(255,255,255,.5);padding:32px 0 48px;}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;}
footer .links{display:flex;gap:18px;flex-wrap:wrap;}
footer a{transition:color .2s;}
footer a:hover{color:var(--accent);}

/* ==========================================================
   CASE PAGE — additional styles
   ========================================================== */

.case-hero{padding:48px 0 80px;border-bottom:1px solid var(--rule);}
.case-hero .case-meta{display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--gap);padding-bottom:28px;border-bottom:1px solid var(--line);}
.case-hero .case-meta .cell .k{display:block;color:var(--ink-30);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.case-hero .case-meta .cell .v{display:block;color:var(--ink);font-family:var(--mono);font-size:12px;letter-spacing:.02em;}
.case-hero h1.case-title{
  margin-top:48px;font-weight:400;font-size:clamp(40px,5.4vw,76px);
  line-height:1.02;letter-spacing:-.025em;max-width:24ch;
}
.case-hero .case-client-line{margin-top:32px;font-size:17px;color:var(--ink-70);max-width:60ch;}
.case-hero .case-client-line a.lk{border-bottom:1px solid var(--ink-30);transition:color .2s, border-color .2s;}
.case-hero .case-client-line a.lk:hover{color:var(--accent);border-color:var(--accent);}
.case-hero .case-tags{margin-top:32px;}

.case-section{padding:80px 0;border-bottom:1px solid var(--rule);}
.case-section .meta-strip .r{font-family:var(--mono);font-size:11px;color:var(--ink-30);letter-spacing:.06em;text-transform:uppercase;}
.case-section h2{font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:-.02em;line-height:1.05;margin-bottom:28px;}
.case-section .body{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;}
.case-section .body .sp{display:none;}
.case-section .body p{font-size:17px;line-height:1.6;}
.case-section .body p + p{margin-top:14px;}
.case-section .body ul{list-style:none;margin-top:8px;}
.case-section .body ul li{padding:8px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.5;display:grid;grid-template-columns:24px 1fr;column-gap:8px;transition:padding-left .2s;}
.case-section .body ul li:last-child{border-bottom:1px solid var(--line);}
.case-section .body ul li:hover{padding-left:6px;}
.case-section .body ul li:hover .n{color:var(--accent);}
.case-section .body ul li .n{color:var(--ink-30);font-family:var(--mono);font-size:11px;padding-top:3px;transition:color .2s;}

.case-result-card{
  margin-top:32px;padding:36px 28px;border:1px solid var(--rule);background:#fafafa;
  display:grid;grid-template-columns:120px 1fr;column-gap:40px;align-items:start;
}
.case-result-card .k{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;}
.case-result-card .v{font-size:20px;line-height:1.45;font-weight:500;letter-spacing:-.01em;max-width:48ch;}

/* clickable shots gallery */
.shots-grid{display:grid;column-gap:20px;row-gap:20px;margin-top:32px;}
.shots-grid.cols-1{grid-template-columns:1fr;}
.shots-grid.cols-2{grid-template-columns:repeat(2,1fr);}
.shots-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.shots-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.shot{
  position:relative;border:1px solid var(--line);background:#f8f8f8;cursor:zoom-in;overflow:hidden;
  transition:border-color .2s, transform .2s;
}
.shot img{width:100%;height:auto;display:block;transition:transform .5s ease;}
.shot:hover{border-color:var(--ink);}
.shot:hover img{transform:scale(1.03);}
.shot .cap{
  padding:8px 10px;font-family:var(--mono);font-size:10px;color:var(--ink-30);
  letter-spacing:.04em;text-transform:uppercase;border-top:1px solid var(--line);background:#fff;
}
.shot .zoom-hint{
  position:absolute;top:10px;right:10px;
  font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:var(--ink);padding:4px 7px;
  opacity:0;transition:opacity .2s;
}
.shot:hover .zoom-hint{opacity:.95;}

/* lightbox */
.lightbox{
  position:fixed;inset:0;background:rgba(10,10,10,.92);z-index:200;
  display:flex;align-items:center;justify-content:center;padding:40px;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox-inner{max-width:1400px;max-height:90vh;width:100%;display:flex;flex-direction:column;align-items:center;}
.lightbox img{max-width:100%;max-height:80vh;object-fit:contain;display:block;border:1px solid rgba(255,255,255,.1);}
.lightbox-cap{margin-top:14px;font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.6);letter-spacing:.06em;text-transform:uppercase;}
.lightbox-close{
  position:absolute;top:24px;right:32px;background:transparent;border:1px solid rgba(255,255,255,.4);
  color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  padding:8px 14px;cursor:pointer;transition:border-color .15s, background .15s;
}
.lightbox-close:hover{border-color:var(--accent);background:var(--accent);}

/* other-cases strip on case pages */
.other-cases{padding:80px 0;border-bottom:1px solid var(--rule);}
.other-cases h2{font-size:clamp(24px,2.5vw,32px);font-weight:500;letter-spacing:-.02em;margin-bottom:24px;}
.other-cases .other-grid{display:grid;grid-template-columns:repeat(4,1fr);column-gap:20px;border-top:1px solid var(--rule);padding-top:24px;}
.other-cases .other-card{
  border:1px solid var(--line);padding:18px;background:var(--paper);
  display:flex;flex-direction:column;gap:8px;
  transition:background .2s, border-color .2s, transform .2s;
}
.other-cases .other-card:hover{background:#fafafa;border-color:var(--ink);transform:translateY(-2px);}
.other-cases .other-card .num{font-size:20px;line-height:1;color:var(--ink-50);font-family:var(--mono);}
.other-cases .other-card .ttl{font-size:15px;line-height:1.3;font-weight:500;letter-spacing:-.005em;flex:1;}
.other-cases .other-card .ar{align-self:flex-end;color:var(--ink-30);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;transition:color .2s, transform .2s;}
.other-cases .other-card:hover .ar{color:var(--accent);transform:translateX(3px);}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 980px){
  section{padding:64px 0;}
  .hero-meta{grid-template-columns:repeat(2,1fr);row-gap:14px;}
  .hero-sub{grid-template-columns:1fr;row-gap:32px;}
  .hero-foot{grid-template-columns:1fr;row-gap:24px;}
  .hero-foot .specs{grid-template-columns:repeat(2,1fr);row-gap:14px;}
  .module-head,.module-body{grid-template-columns:1fr;}
  .module-body .sp{display:none;}
  .module-tags{grid-column:1;}
  .case-grid{grid-template-columns:1fr;}
  .case-card + .case-card{border-left:none;}
  .case-card:nth-child(odd):not(:first-child)::before{display:none;}
  .case-card.case-card--feature{grid-template-columns:1fr;}
  .pl-cols{grid-template-columns:1fr;}
  .pl-col + .pl-col{border-left:none;border-top:1px solid var(--rule);}
  .pl-gates{grid-template-columns:1fr;}
  .pl-gates .gates-lbl{border-right:none;border-bottom:1px solid var(--rule);}
  .pl-gates .gate + .gate{border-left:none;border-top:1px solid var(--rule);}
  .trust-grid{grid-template-columns:1fr;row-gap:32px;}
  .process-handoff{grid-template-columns:1fr;row-gap:18px;}
  .about-body{grid-template-columns:1fr;row-gap:24px;}
  .about-photo{max-width:280px;}
  .about-specs{grid-template-columns:repeat(2,1fr);row-gap:14px;}
  .minor-list li{grid-template-columns:30px 1fr;}
  .minor-list li .tag{grid-column:1 / -1;text-align:left;padding-top:4px;}
  nav.top .wrap{flex-wrap:wrap;}
  .nav-links{order:3;width:100%;flex-wrap:wrap;}
  .final .sig{grid-template-columns:repeat(2,1fr);row-gap:18px;}
  .case-section .body{grid-template-columns:1fr;}
  .case-section .body .sp{display:none;}
  .case-result-card{grid-template-columns:1fr;row-gap:14px;}
  .shots-grid.cols-3,.shots-grid.cols-4{grid-template-columns:1fr 1fr;}
  .other-cases .other-grid{grid-template-columns:1fr 1fr;row-gap:20px;}
}
