/* Case study pages (public/work/*.html). Uses the tokens and components in sgl.css. */
.cs-hero{padding-bottom:clamp(60px,8vw,110px);overflow:hidden}
.cs-hero .h1{max-width:16ch}
.cs-hero-top{display:grid;gap:24px;margin-top:18px}
.cs-lede{max-width:60ch;margin-top:20px;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.65;color:#d6ddd5}
.cs-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:24px 0 28px}
.cs-type{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#b9c6bb}
.cs-status{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;background:rgba(200,233,138,.12);border:1px solid rgba(200,233,138,.35);color:var(--lime);font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.3}
.cs-status span{width:8px;height:8px;border-radius:50%;background:#e9c46a;box-shadow:0 0 0 4px rgba(233,196,106,.18);flex:none}
.cs-status.is-live span{background:var(--lime);box-shadow:0 0 0 4px rgba(200,233,138,.2)}
.cs-state .cs-status{background:rgba(75,125,79,.1);border-color:rgba(75,125,79,.3);color:var(--leaf)}

/* Hero stage: desktop site, Office inset, phone */
.cs-stage{position:relative;margin:clamp(36px,5vw,64px) auto 0;max-width:1080px;padding:0 0 clamp(40px,6vw,90px)}
.cs-desk{display:block;width:100%;cursor:zoom-in;box-shadow:0 50px 100px -40px rgba(0,0,0,.85)}
.cs-inset{position:absolute;right:-2%;bottom:0;width:46%;border-radius:14px;overflow:hidden;cursor:zoom-in;box-shadow:0 30px 70px -20px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.12);transition:transform .5s var(--ease)}
.cs-inset:hover{transform:translateY(-6px)}
.cs-phone{display:block;border-radius:30px;overflow:hidden;background:#0b1512;border:7px solid #0b1512;box-shadow:0 30px 70px -24px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.08)}
.cs-phone img{width:100%;height:auto;border-radius:22px}
.cs-phone--hero{position:absolute;left:-1%;bottom:-2%;width:clamp(110px,17%,190px)}

/* About */
.cs-about{display:grid;gap:clamp(30px,5vw,70px);align-items:start}
.cs-p{max-width:62ch;margin-top:16px;font-size:1.0625rem;line-height:1.7}
.cs-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cs-facts div{background:var(--white);padding:20px 22px}
.cs-facts dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.cs-facts dd{font-weight:700;line-height:1.35}

/* Challenges */
.cs-challenges{list-style:none;display:grid;gap:16px;margin-top:34px}
.cs-challenges li{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 24px}
.cs-n{display:block;font-family:var(--mono);font-size:.75rem;color:var(--grape);margin-bottom:12px}
.cs-challenges h3,.cs-features h3{font-family:var(--display);font-size:1.25rem;line-height:1.2;letter-spacing:-.01em;margin-bottom:8px}
.cs-challenges p,.cs-features p{color:var(--muted);line-height:1.6}

/* Website features */
.cs-features{list-style:none;display:grid;gap:16px;margin-top:34px}
.cs-features li{position:relative;padding:26px;border-radius:var(--r);background:var(--cream);border:1px solid var(--line)}
.cs-features li::before{content:"";display:block;width:34px;height:4px;border-radius:4px;background:var(--leaf);margin-bottom:16px}

/* Office */
.cs-office-shot{display:block;width:100%;margin-top:34px;cursor:zoom-in;box-shadow:0 50px 100px -40px rgba(0,0,0,.9)}
.cs-shot-note{margin-top:12px;font-size:.85rem;color:#a9b8ac}
.cs-office{display:grid;gap:26px;margin-top:40px}
.cs-og h3{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:14px;font-weight:500}
.cs-og ul{list-style:none;display:grid;gap:10px}
.cs-og li{padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09)}
.cs-og b{display:block;color:#f3efe3;margin-bottom:3px}
.cs-og span{color:#b9c6bb;font-size:.95rem;line-height:1.55}

/* Phones */
.cs-phones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,3vw,40px);margin-top:40px;max-width:980px;margin-inline:auto}
.cs-phone-fig figcaption{margin-top:14px;font-size:.92rem;color:var(--muted);text-align:center;line-height:1.4}
.cs-phone-fig .cs-phone{cursor:zoom-in;width:100%;transition:transform .5s var(--ease)}
.cs-phone-fig .cs-phone:hover{transform:translateY(-6px)}
.cs-phone-fig:nth-child(2){margin-top:clamp(0px,4vw,46px)}

/* Flow */
.cs-flow{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:34px}
.cs-flow li{position:relative;padding:18px 18px 20px;border-radius:16px;background:var(--ink);color:#f3efe3;font-weight:700;line-height:1.3}
.cs-fn{display:block;font-family:var(--mono);font-size:.7rem;color:var(--lime);font-weight:500;margin-bottom:10px}
.cs-flow-note{margin-top:26px}

/* Services and status */
.cs-two{display:grid;gap:clamp(34px,5vw,70px);align-items:start}
.cs-services{list-style:none;margin-top:26px;border-top:1px solid var(--line)}
.cs-services a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 2px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;font-size:1.05rem}
.cs-services a:hover{color:var(--leaf)}
.cs-state{background:var(--white);border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(24px,3vw,36px)}
.cs-state h3{font-family:var(--display);font-size:1.5rem;margin-bottom:14px}
.cs-state h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:24px 0 10px;font-weight:500}
.cs-built,.cs-later{list-style:none;display:grid;gap:9px}
.cs-built li{position:relative;padding-left:28px;line-height:1.5}
.cs-built li::before{content:"";position:absolute;left:0;top:.2em;width:18px;height:18px;border-radius:50%;background:var(--leaf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat}
.cs-later li{padding:12px 14px;border-radius:12px;background:var(--cream);line-height:1.45}
.cs-later b{display:block}
.cs-later span{color:var(--muted);font-size:.93rem}
.cs-fine{margin-top:20px;font-size:.85rem;color:var(--muted);line-height:1.55}

@media (min-width:760px){
  .cs-about{grid-template-columns:1.2fr .8fr}
  .cs-challenges{grid-template-columns:1fr 1fr}
  .cs-features{grid-template-columns:repeat(3,1fr)}
  .cs-office{grid-template-columns:repeat(3,1fr)}
  .cs-two{grid-template-columns:1fr 1fr}
  .cs-flow{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:759px){
  .cs-phones{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:68%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter)}
  .cs-phone-fig{scroll-snap-align:center}
  .cs-phone-fig:nth-child(2){margin-top:0}
  .cs-inset{width:52%;right:0;bottom:6%}
  .cs-phone--hero{width:26%;left:2%;bottom:0}
  .cs-stage{padding-bottom:70px}
}
@media (prefers-reduced-motion:reduce){.cs-inset,.cs-phone-fig .cs-phone{transition:none}.cs-inset:hover,.cs-phone-fig .cs-phone:hover{transform:none}}

/* Extra back-office screenshots and a verified client review */
.cs-more{display:grid;gap:18px;margin-top:22px}
.cs-more-shot{display:block;width:100%;cursor:zoom-in;box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.cs-review{max-width:900px}
.cs-quote{margin-top:18px;padding:clamp(26px,4vw,48px);border-radius:var(--r-l);background:var(--white);border:1px solid var(--line);position:relative}
.cs-quote::before{content:"\201C";position:absolute;top:-18px;left:28px;font-family:var(--display);font-size:7rem;line-height:1;color:var(--fresh)}
.cs-quote blockquote p{font-size:clamp(1.1rem,1.8vw,1.35rem);line-height:1.6;color:var(--text)}
.cs-quote blockquote p+p{margin-top:14px}
.cs-quote figcaption{margin-top:22px;font-size:.92rem;color:var(--muted)}
.cs-quote figcaption b{color:var(--text)}
.cs-quote figcaption a{color:var(--leaf)}
@media (min-width:760px){.cs-more{grid-template-columns:1fr 1fr}}

/* Blog (public/blog.html and public/blog/*.html) */
.bl-hero .h1{max-width:20ch}
.bl-meta{margin-top:18px;color:#c9d3ca;font-size:1rem}
.bl-body{max-width:70ch;margin:0 auto}
.bl-body>p,.bl-body li{font-size:1.0625rem;line-height:1.75}
.bl-body>p{margin:0 0 18px}
.bl-body h2{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em;margin:46px 0 14px}
.bl-body h3{font-family:var(--display);font-size:1.25rem;line-height:1.25;margin:30px 0 10px}
.bl-body a{color:var(--leaf);text-decoration:underline;text-underline-offset:3px}
.bl-answer{padding:22px 24px;border-radius:var(--r);background:var(--cream);border:1px solid var(--line);margin-bottom:26px!important}
.bl-list{margin:0 0 20px 1.2em;display:grid;gap:8px}
.bl-sources{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
.bl-sources h2{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.bl-sources ul{list-style:none;font-size:.92rem}
.bl-author{max-width:70ch;margin:56px auto 0;padding:clamp(22px,3vw,34px);border-radius:var(--r-l);background:var(--white);border:1px solid var(--line)}
.bl-author p{line-height:1.65}
.bl-more{max-width:70ch;margin:34px auto 0}
.bl-more ul{list-style:none;margin-top:10px;display:grid;gap:8px}
.bl-more a{font-weight:700;color:var(--text)}
.bl-cards{list-style:none;display:grid;gap:18px}
.bl-card{display:block;height:100%;padding:28px;border-radius:var(--r);background:var(--white);border:1px solid var(--line);text-decoration:none;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.bl-card:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(8,24,26,.45)}
.bl-card h2{font-family:var(--display);font-size:1.45rem;line-height:1.2;margin:10px 0}
.bl-card p{color:var(--muted);line-height:1.6}
.bl-date{display:block;margin-top:14px;font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
@media (min-width:760px){.bl-cards{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.bl-card{transition:none}.bl-card:hover{transform:none}}
/* Cinematics: looping recordings of a site's moving scenes (Oct 16, 2026) */
.cs-cines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,3vw,40px)}
.cs-cine-fig{margin:0}
.cs-cine-fig:first-child{grid-column:1/-1}
.cs-cine{display:block;overflow:hidden;box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.cs-cine-fig figcaption{margin-top:14px;display:flex;flex-direction:column;gap:4px;color:#cfd8cf;font-size:.95rem;line-height:1.5}
.cs-cine-fig figcaption b{color:#f3efe3;font-weight:600}
@media (max-width:760px){.cs-cines{grid-template-columns:1fr}}
