
:root{--ivory:#eee7dd;--paper:#f7f2eb;--ink:#11141b;--muted:#6d665f;--gold:#a77a45;--line:rgba(17,20,27,.14);--pad:clamp(1.1rem,4vw,4rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ivory)}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.7}body[dir="rtl"]{font-family:Vazirmatn,Manrope,sans-serif}a{color:inherit}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem var(--pad);border-bottom:1px solid var(--line);background:rgba(238,231,221,.9);backdrop-filter:blur(18px)}.brand{font-weight:700;letter-spacing:.16em;text-decoration:none}.top nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.top nav a{text-decoration:none;font-size:.72rem}.top .cta{padding:.7rem 1rem;border-radius:999px;background:var(--ink);color:#fff}
.shell,.article-wrap{width:min(1180px,calc(100% - 2*var(--pad)));margin:auto}.insights-hero{padding:clamp(5.5rem,10vw,9rem) 0 4rem}.eyebrow{font-size:.62rem;letter-spacing:.16em;color:#857465}.insights-hero h1{font-size:clamp(3.1rem,8vw,8rem);line-height:.9;letter-spacing:-.065em;margin:.8rem 0 1.5rem;font-weight:500;max-width:12ch}.insights-hero p{max-width:44rem;color:var(--muted);font-size:.95rem}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding-bottom:7rem}.card{border:1px solid var(--line);border-radius:1.25rem;overflow:hidden;background:#f3ece3;display:flex;flex-direction:column;min-height:100%}.card-media{aspect-ratio:16/10;background:#161616;overflow:hidden}.card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.card:hover .card-media img{transform:scale(1.035)}.card-body{padding:1.2rem;display:flex;flex-direction:column;gap:.8rem;flex:1}.tag{font-size:.54rem;letter-spacing:.12em;color:#8b7963}.card h2{font-size:1.55rem;line-height:1.08;letter-spacing:-.035em;margin:0}.card p{font-size:.78rem;color:var(--muted);margin:0}.langs{margin-top:auto;display:flex;gap:.5rem;flex-wrap:wrap}.langs a{font-size:.65rem;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:.55rem .75rem;background:rgba(255,255,255,.35)}
.article-hero{padding:clamp(4.5rem,9vw,8rem) 0 2.5rem;display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:end}.article-hero h1{font-size:clamp(2.7rem,6.8vw,6.6rem);line-height:.94;letter-spacing:-.06em;margin:.7rem 0 1.2rem;font-weight:500}.dek{font-size:1rem;line-height:1.8;color:var(--muted);max-width:48rem}.meta{font-size:.67rem;color:#7d736a;display:flex;gap:1rem;flex-wrap:wrap}.hero-image{aspect-ratio:4/3;border-radius:1.3rem;overflow:hidden;background:#171717}.hero-image img{width:100%;height:100%;object-fit:cover;display:block}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 16rem;gap:clamp(2rem,6vw,6rem);padding:2rem 0 7rem}.prose{max-width:780px}.prose h2{font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.12;letter-spacing:-.035em;margin:3rem 0 1rem}.prose h3{font-size:1.2rem;margin:2rem 0 .7rem}.prose p,.prose li{font-size:.95rem;color:#383633}.prose ul,.prose ol{padding-inline-start:1.25rem}.prose strong{color:var(--ink)}.prose blockquote{margin:2rem 0;padding:1.2rem 1.4rem;border-inline-start:3px solid var(--gold);background:#f7f0e7;border-radius:.75rem}.prose a{text-decoration-color:#b18b5a;text-underline-offset:3px}.toc{position:sticky;top:6rem;align-self:start;border-top:1px solid var(--line);padding-top:1rem}.toc strong{display:block;font-size:.65rem;letter-spacing:.12em;margin-bottom:.6rem}.toc a{display:block;text-decoration:none;color:#6c645c;font-size:.72rem;padding:.35rem 0}.note{margin:2.5rem 0;padding:1.2rem 1.4rem;border:1px solid var(--line);border-radius:1rem;background:#f5eee5}.author{margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem}.author p{margin:0;max-width:36rem;font-size:.78rem;color:var(--muted)}.article-cta{margin-top:3rem;padding:1.5rem;border-radius:1.2rem;background:#171817;color:#f4ede4}.article-cta h3{margin:0 0 .5rem}.article-cta p{color:#c9c0b6;margin:0 0 1rem}.article-cta a{display:inline-flex;text-decoration:none;background:#f0e7dc;color:#171817;padding:.75rem 1rem;border-radius:999px;font-size:.72rem;font-weight:700}.related{padding:4rem 0 6rem;border-top:1px solid var(--line)}.related h2{font-size:2rem;margin:0 0 1.4rem}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.related a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:1rem;padding:1rem;background:rgba(255,255,255,.22)}.related span{font-size:.52rem;letter-spacing:.1em;color:#8b7963}.related strong{display:block;font-size:1rem;line-height:1.25;margin-top:.45rem}footer{border-top:1px solid var(--line);padding:1.25rem var(--pad);display:flex;justify-content:space-between;gap:1rem;font-size:.65rem;color:#756d65}
@media(max-width:900px){.article-hero{grid-template-columns:1fr}.article-grid{grid-template-columns:1fr}.toc{position:relative;top:auto;order:-1}.cards,.related-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.top nav a:not(.cta){display:none}.shell,.article-wrap{width:calc(100% - 2rem)}.insights-hero{padding-top:4.2rem}.cards,.related-grid{grid-template-columns:1fr}.article-hero{padding-top:4.2rem;gap:1.5rem}.article-hero h1{font-size:clamp(2.4rem,11vw,3.8rem)}.article-grid{padding-bottom:4.5rem}.prose p,.prose li{font-size:.9rem}.author,footer{flex-direction:column}.hero-image{border-radius:1rem}}

/* Compact public type scale */
.hub-hero h1,.case-hero h1,.service-hero h1,.article-hero h1,.insights-hero h1,.hero h1{
  font-size:clamp(2.15rem,4.4vw,4.35rem)!important;
  line-height:1!important;
  letter-spacing:-.045em!important;
  font-weight:450!important
}
.work-body h2,.hub-card h2{
  font-size:clamp(1.45rem,2.2vw,2.15rem)!important;
  line-height:1.08!important
}
.case h2,.content h2,.prose h2{
  font-size:clamp(1.45rem,2.4vw,2.15rem)!important;
  line-height:1.12!important
}
.card h2{font-size:1.28rem!important;line-height:1.16!important}
.related h2{font-size:1.55rem!important}
@media(max-width:620px){
  .hub-hero h1,.case-hero h1,.service-hero h1,.article-hero h1,.insights-hero h1,.hero h1{
    font-size:clamp(1.9rem,8.5vw,2.7rem)!important
  }
  .work-body h2,.hub-card h2{font-size:1.55rem!important}
  .case h2,.content h2,.prose h2{font-size:1.55rem!important}
}


/* Persian + mobile refinement */
body[dir="rtl"]{text-align:right}
body[dir="rtl"] h1,
body[dir="rtl"] h2,
body[dir="rtl"] h3{
  letter-spacing:0!important;
  line-height:1.36!important
}
body[dir="rtl"] .eyebrow,
body[dir="rtl"] .tag,
body[dir="rtl"] .toc strong,
body[dir="rtl"] .related span{
  letter-spacing:0!important
}
body[dir="rtl"] .insights-hero p,
body[dir="rtl"] .dek,
body[dir="rtl"] .prose p,
body[dir="rtl"] .prose li{
  line-height:2.05
}
@media(max-width:620px){
  .top nav a[href*="/fa/"],
  .top nav a[href*="/en/"],
  .top nav .lang-switch{
    display:inline-flex!important
  }
  body[dir="rtl"] .insights-hero,
  body[dir="rtl"] .article-hero{
    padding-top:3.5rem
  }
  body[dir="rtl"] .insights-hero h1,
  body[dir="rtl"] .article-hero h1{
    font-size:clamp(1.8rem,7.7vw,2.45rem)!important;
    line-height:1.38!important
  }
  body[dir="rtl"] .prose h2{
    font-size:1.45rem!important;
    line-height:1.45!important
  }
}


/* Unified calm typography — final portfolio scale */
.hub-hero h1,
.case-hero h1,
.service-hero h1,
.article-hero h1,
.insights-hero h1,
.hero h1{
  font-size:clamp(2rem,3.7vw,3.6rem)!important;
  line-height:1.04!important;
  font-weight:450!important
}
.work-body h2,
.hub-card h2{
  font-size:clamp(1.35rem,1.9vw,1.9rem)!important
}
.case h2,
.content h2,
.prose h2{
  font-size:clamp(1.35rem,2vw,1.9rem)!important;
  line-height:1.18!important
}
.card h2{font-size:1.2rem!important}
.related h2{font-size:1.4rem!important}
@media(max-width:620px){
  .hub-hero h1,
  .case-hero h1,
  .service-hero h1,
  .article-hero h1,
  .insights-hero h1,
  .hero h1{
    font-size:clamp(1.8rem,7.4vw,2.4rem)!important
  }
  .work-body h2,
  .hub-card h2,
  .case h2,
  .content h2,
  .prose h2{
    font-size:1.42rem!important
  }
}
