/* editorial.css — the 2026-09 redesign layer.
 *
 * Loaded last on the main site, so it wins over base.css / rail.css / foot.css
 * / channels.css at equal specificity. Direction: type and rules instead of
 * boxes. Repeated content is a ruled, numbered list or an alternating row, not
 * a grid of bordered cards.
 *
 * Accent roles: teal = actions, links, one accent phrase per heading.
 * Coral = the diamond in an eyebrow chip. Amber = stars, status chips, seal.
 * Logical properties only. Arabic never takes letter-spacing (base.css forces
 * it to 0 for html[lang="ar"]). */


header.hero{padding-block:clamp(16px,2.4vw,32px) 0}

/* ---- pills: filled primary and outline secondary, each with an arrow disc --- */
.pill{display:inline-flex;align-items:center;gap:16px;min-height:52px;padding-block:6px;padding-inline:24px 7px;
  border:1.5px solid transparent;border-radius:var(--r-pill);font-size:15px;font-weight:700;line-height:1.2;
  text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.pill-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;flex:none;
  transition:background .25s,color .25s}
.pill--solid{background:var(--teal-deep);color:var(--on-accent)}
.pill--solid .pill-ico{background:rgba(255,255,255,.18)}
.pill--solid:hover{background:var(--teal-bright)}
.pill--line{background:var(--surface);color:var(--ink);border-color:rgba(var(--ink-rgb),.2)}
.pill--line .pill-ico{background:rgba(var(--ink-rgb),.08)}
.pill--line:hover{border-color:var(--teal-deep);color:var(--teal-deep)}
.pill--line:hover .pill-ico{background:var(--teal-deep);color:var(--on-accent)}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:28px}
html[dir="rtl"] .pill-ico .ico-arrow,html[dir="rtl"] .rail-contact-ico .ico-arrow{transform:scaleX(-1)}
@media (max-width:560px){
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .pill{justify-content:space-between}
  .hero-cta .hero-text-link{justify-content:center}
}

/* ---- hero, English: the name is the picture -------------------------------- */
.hero-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:32px;
  min-height:clamp(520px,57vw,700px);
  background:radial-gradient(80% 90% at 76% 28%,color-mix(in srgb,var(--teal) 20%,var(--page)),transparent 72%),
    linear-gradient(165deg,color-mix(in srgb,var(--teal) 12%,var(--page)),color-mix(in srgb,var(--teal) 4%,var(--page)))}
.hero-ghost{position:absolute;inset-inline:0;top:27%;z-index:1;text-align:center;white-space:nowrap;
  font:800 clamp(90px,14.2vw,205px)/.8 var(--sora);text-transform:uppercase;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1.5px rgba(var(--teal-rgb),.22);user-select:none;pointer-events:none}
.hero-figure{position:absolute;inset-inline-end:clamp(0px,5vw,72px);bottom:0;z-index:2;width:min(46%,500px)}
.hero-figure img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(#000 84%,transparent);mask-image:linear-gradient(#000 84%,transparent)}
.hero-top{position:absolute;inset-inline-start:clamp(20px,4vw,56px);top:clamp(24px,4vw,52px);z-index:4;width:min(340px,34%)}
.hero-top .hero-eyebrow{margin-bottom:0}
.hero-lead{margin-top:18px;font:700 clamp(13px,1.15vw,16px)/1.55 'Geist',system-ui,sans-serif;
  text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}
.hero-wordmark{position:absolute;inset-inline-start:clamp(20px,4vw,56px);bottom:clamp(14px,2.6vw,36px);z-index:3;
  margin:0;display:flex;flex-direction:column;
  font:800 clamp(52px,11.4vw,166px)/.86 var(--sora);letter-spacing:-.05em;text-transform:uppercase;color:var(--ink)}
.hero--en .mostaql-seal{inset-inline-end:6%;bottom:36%;z-index:5}
.hero-under{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(24px,5vw,72px);
  margin-top:clamp(24px,3vw,40px);align-items:start}
.hero-under .tag{margin:0;max-width:44ch;font-size:17px}
.hero-under .hero-cta{margin-top:0}
@media (max-width:860px){
  .hero-stage{display:flex;flex-direction:column;min-height:0;border-radius:24px}
  .hero-top{position:static;width:auto;padding:22px 20px 0;order:1}
  .hero-figure{position:relative;inset:auto;order:2;width:78%;margin:8px auto 0}
  .hero-wordmark{position:relative;inset:auto;order:3;padding:0 20px 22px;margin-top:-22vw;font-size:17.5vw}
  .hero-ghost{top:30%;font-size:22vw}
  .hero--en .mostaql-seal{inset-inline-end:8%;bottom:auto;top:44%}
  .hero-under{grid-template-columns:1fr}
}

/* ---- hero, Arabic: centred introduction ------------------------------------ */
.hero--ar .hero-in{display:flex;flex-direction:column;align-items:center;text-align:center}
.hero--ar .hero-eyebrow{margin-bottom:6px}
.ar-name{margin:6px 0 0}
html[lang="ar"] .hero h1.ar-name{font-family:Qomraa,'IBM Plex Sans Arabic',Tajawal,sans-serif;font-weight:800;
  font-size:clamp(3.6rem,10vw,8.5rem);line-height:1.12;letter-spacing:0;color:var(--ink)}
.ar-name .kash{color:var(--coral)}
html[lang="ar"] p.ar-role{margin:10px 0 0;color:var(--coral);font-weight:600;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6;max-width:none}
html[lang="ar"] p.ar-intro{margin:14px auto 0;max-width:34em;font-size:clamp(1.05rem,1.5vw,1.25rem);
  line-height:1.8;color:var(--ink-soft)}
.ar-stage{position:relative;width:min(100%,780px);margin-top:40px}
.ar-panel{position:relative;width:min(400px,76%);margin-inline:auto;aspect-ratio:4/5;border-radius:40px;overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--teal) 17%,var(--page)),color-mix(in srgb,var(--amber) 20%,var(--page)))}
.ar-panel img{position:absolute;inset-inline:0;bottom:0;width:100%;height:auto;display:block}
.chip{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:9px;padding:7px 16px 7px 8px;
  border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-size:14px;font-weight:600;line-height:1.3;
  box-shadow:0 14px 32px -14px rgba(var(--shadow-rgb),.35),0 0 0 1px rgba(var(--ink-rgb),.05)}
.chip b{font-family:var(--sora);font-weight:700;font-size:1.12em;direction:ltr;unicode-bidi:isolate}
.chip-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;flex:none;background:rgba(var(--teal-rgb),.13);color:var(--teal-deep)}
.chip-ico svg{width:15px;height:15px}
.chip--1{inset-block-start:16%;inset-inline-start:1%;background:var(--ink);color:var(--on-accent)}
.chip--1 .chip-ico{background:rgba(255,255,255,.16);color:var(--on-accent)}
.chip--2{inset-block-start:41%;inset-inline-end:0}
.chip--2 .chip-ico{background:rgba(var(--amber-rgb),.28);color:#8a5a00}
.chip--3{inset-block-end:9%;inset-inline-start:9%;background:var(--teal-deep);color:var(--on-accent)}
.chip--3 .chip-ico{background:rgba(255,255,255,.18);color:var(--on-accent)}
.chip--4{inset-block-start:2%;inset-inline-end:4%;background:var(--teal);color:var(--on-accent)}
.chip--4 .chip-ico{background:rgba(255,255,255,.18);color:var(--on-accent)}
.spark{position:absolute;z-index:3;pointer-events:none}
.spark--a{width:28px;color:var(--amber);inset-block-start:26%;inset-inline-end:12%}
.spark--b{width:22px;color:var(--ink);inset-block-end:26%;inset-inline-start:5%}
.trail-head{transform-box:fill-box;transform-origin:center;transform:scale(.7)}
.trail{position:absolute;inset-block-start:2%;width:clamp(70px,13vw,120px);height:auto;color:rgba(var(--ink-rgb),.3);pointer-events:none}
.trail--s{inset-inline-start:0}.trail--e{inset-inline-end:0}
.trail--e .trail-head{color:var(--teal)}.trail--s .trail-head{color:var(--amber)}
html[dir="ltr"] .trail--e,html[dir="rtl"] .trail--s{transform:scaleX(-1)}
.hero--ar .hero-stack{justify-content:center;border-block-start:0;max-width:none;margin-top:36px}
@media (max-width:640px){
  .ar-stage{margin-top:28px}
  .ar-panel{width:82%}
  .chip{font-size:12.5px;padding:5px 12px 5px 6px;gap:7px}
  .chip-ico{width:24px;height:24px}.chip-ico svg{width:12px;height:12px}
  .chip--1{inset-block-start:10%;inset-inline-start:-2%}
  .chip--2{inset-block-start:38%;inset-inline-end:-3%}
  .chip--3{inset-block-end:5%;inset-inline-start:0}
  .chip--4{inset-block-start:-2%;inset-inline-end:-2%}
  .trail{display:none}
}

/* ---- stats: one inline row of big numbers, no boxes ------------------------ */
.ledger-band{background:none;border:0;border-block-start:1px solid var(--line);
  margin-top:clamp(40px,5vw,72px);padding-block:clamp(28px,4vw,48px)}
.ledger{display:flex;flex-wrap:wrap;gap:20px clamp(32px,6vw,96px)}
.ledger-row{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"fig claim" "fig src";
  column-gap:16px;align-items:center;border:0!important;padding:0!important;background:none!important}
.ledger-icon{display:none}
.ledger .fig{grid-area:fig;font-size:clamp(46px,6.2vw,88px);color:var(--ink);margin:0}
.ledger-claim{grid-area:claim;max-width:15ch;font-size:14.5px;line-height:1.4;color:var(--ink-soft);align-self:end}
.ledger-src{grid-area:src;align-self:start;font-size:12.5px}

/* ---- about: one big statement and a meta column ---------------------------- */
.about-statement{margin-top:clamp(28px,4vw,48px);max-width:24em;color:var(--ink);
  font:600 clamp(20px,2.5vw,32px)/1.25 var(--sora);text-transform:uppercase;letter-spacing:-.015em}
html[lang="ar"] .about-statement{font-family:Qomraa,'IBM Plex Sans Arabic',sans-serif;font-weight:700;text-transform:none;
  font-size:clamp(1.5rem,2.7vw,2.25rem);line-height:1.75;max-width:40ch}
.inline-pic{display:inline-block;width:1.05em;height:1.05em;margin-inline:.1em;border-radius:50%;overflow:hidden;
  vertical-align:-.16em;background:rgba(var(--teal-rgb),.15)}
.inline-pic img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.about-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);
  margin-top:clamp(40px,5vw,72px);align-items:start}
.about-notes{display:grid;gap:18px;justify-items:start}
.about-notes p{margin:0;color:var(--ink-soft);font-size:17px;line-height:1.75;max-width:52ch}
html[lang="ar"] .about-notes p{font-size:17.5px;line-height:1.9}
.about-notes .about-trophy{display:flex;gap:10px;align-items:flex-start;color:var(--ink)}
.about-meta{display:grid;gap:26px;margin:0}
.about-meta dt{font-size:13px;font-weight:500;color:var(--ink-soft);margin-bottom:4px}
.about-meta dd{margin:0;font:600 clamp(16px,1.5vw,19px)/1.35 var(--sora);text-transform:uppercase;letter-spacing:-.005em;color:var(--ink);max-width:none}
html[lang="ar"] .about-meta dd{font-family:'IBM Plex Sans Arabic',Tajawal,sans-serif;font-weight:700;text-transform:none;font-size:18px;max-width:none}
@media (max-width:820px){.about-cols{grid-template-columns:1fr}}

/* ---- case studies: alternating image / text rows --------------------------- */
.casewall{gap:clamp(56px,8vw,112px)}
.case,.case.feat{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(24px,4.5vw,72px);
  align-items:center;border:0;background:none;border-radius:0}
.case:nth-child(even) .case-shot{order:2}
.case-shot{align-self:center;border-radius:24px;border:1px solid var(--line);
  box-shadow:0 30px 60px -32px rgba(var(--shadow-rgb),.4)}
.case-frame{block-size:auto;border-radius:inherit}
.case-shot img{block-size:auto;min-block-size:0;aspect-ratio:16/11}
.case-body{padding:0}
.case-body h3{font-family:var(--sora);font-weight:700;font-size:clamp(22px,2.5vw,34px);line-height:1.18;letter-spacing:-.02em;margin:0 0 20px}
html[lang="ar"] .case-body h3{font-family:Qomraa,'IBM Plex Sans Arabic',sans-serif;line-height:1.5}
@media (max-width:820px){
  .case,.case.feat{grid-template-columns:1fr;gap:20px}
  .case:nth-child(even) .case-shot{order:0}
}

/* ---- other work: a numbered list, not a grid ------------------------------- */
.casewall-more{display:block;counter-reset:mw;margin-top:22px;border-block-start:1px solid var(--line)}
.case-sm{counter-increment:mw;display:grid;grid-template-columns:3.5rem minmax(0,1fr) 132px;gap:6px 24px;align-items:start;
  padding-block:24px;border:0;border-block-end:1px solid var(--line);border-radius:0;background:none;box-shadow:none}
.case-sm::before{content:counter(mw,decimal-leading-zero);grid-column:1;grid-row:1;padding-top:.15em;
  font:600 14px var(--sora);color:var(--ink-soft)}
.case-sm-body{grid-column:2;grid-row:1;padding:0;border:0!important}
.case-sm-shot{grid-column:3;grid-row:1;border-radius:14px;overflow:hidden}
.case-sm-plate{display:none}
.case-sm h4{font-family:var(--sora);font-size:clamp(17px,1.7vw,21px)}
html[lang="ar"] .case-sm h4{font-family:Qomraa,'IBM Plex Sans Arabic',sans-serif}
@media (max-width:640px){
  .case-sm{grid-template-columns:2.4rem minmax(0,1fr)}
  .case-sm-shot{grid-column:2;grid-row:2;width:100%;max-width:240px}
}

/* ---- skills: numbered rows; stack: an open list ---------------------------- */
.skills-grid{display:block;counter-reset:sk;border:0;margin-top:clamp(40px,5vw,64px)}
.skill-cell{counter-increment:sk;display:grid;grid-template-columns:3.5rem minmax(0,1fr) minmax(0,1.7fr);
  gap:6px clamp(20px,3vw,40px);padding-block:clamp(24px,3vw,36px);padding-inline:0;
  border:0;border-block-start:1px solid var(--line)}
.skill-cell:last-child{border-block-end:1px solid var(--line)}
.skill-cell::before{content:counter(sk,decimal-leading-zero);grid-row:1/span 2;padding-top:.3em;
  font:600 14px var(--sora);color:var(--ink-soft)}
.skill-cell h3{grid-row:1/span 2;font-family:var(--sora);font-size:clamp(19px,2vw,26px);letter-spacing:-.015em}
html[lang="ar"] .skill-cell h3{font-family:Qomraa,'IBM Plex Sans Arabic',sans-serif}
.skill-cell p,.skill-cell .depth{grid-column:3;max-width:none}
.skill-cell .depth{margin-top:8px}
.stack{background:none;border:0;border-radius:0;box-shadow:none;padding:0}
.stack-group li{background:none}
@media (max-width:820px){
  .skill-cell{grid-template-columns:2.4rem minmax(0,1fr)}
  .skill-cell h3{grid-row:auto;grid-column:2}
  .skill-cell p,.skill-cell .depth{grid-column:2}
}

/* ---- reviews: open quotes between rules ------------------------------------ */
.wall{gap:0 clamp(28px,4vw,56px);margin-top:clamp(32px,4vw,48px);align-items:start}
.testi,.testi:nth-child(2){transform:none;box-shadow:none;border:0;border-block-start:1px solid var(--line);
  border-radius:0;background:none;text-align:start;padding:26px 0 40px}
.testi .who{flex-direction:row;align-items:center;gap:12px;margin-top:16px}
.testi .who small{text-align:start}
.testi .who .pic{width:44px;height:44px;border-width:1px}
.stars{display:flex;justify-content:flex-start;color:var(--amber)}
.stars svg{width:15px;height:15px}

/* ---- services: numbered rows ----------------------------------------------- */
.svc-stack{counter-reset:sv}
.svc-row{counter-increment:sv}
.svc-chip{display:none}
.svc-row::before{content:counter(sv,decimal-leading-zero);flex:none;width:3.5rem;
  font:600 14px var(--sora);color:var(--ink-soft)}
.svc-content h3{font-family:var(--sora);font-size:clamp(19px,2.2vw,28px);letter-spacing:-.015em}
html[lang="ar"] .svc-content h3{font-family:Qomraa,'IBM Plex Sans Arabic',sans-serif}
@media (max-width:640px){.svc-row::before{width:2.4rem}.svc-content{flex-basis:calc(100% - 3.4rem)}.svc-row .more{padding-inline-start:2.4rem}}

/* ---- career: vertical rule with numbered dots ------------------------------ */
.timeline{counter-reset:tl;border-inline-start:1px solid var(--line)}
.tl-item{counter-increment:tl;padding-inline-start:clamp(36px,4vw,56px)}
.tl-node{inset-inline-start:-15px;top:-2px;width:30px;height:30px;border:0;
  background:var(--teal-deep);box-shadow:0 0 0 6px var(--page);display:grid;place-items:center}
.tl-node::after{content:counter(tl);color:var(--on-accent);font:700 13px var(--sora)}
.tl-role{font-family:var(--sora);font-size:clamp(18px,1.9vw,24px)}
html[lang="ar"] .tl-role{font-family:Qomraa,'IBM Plex Sans Arabic',sans-serif}

/* ---- judgment, community: no panels ---------------------------------------- */
.judg-col + .judg-col{background:none;border-radius:0}
.comm-panel{background:none;border:0;border-radius:0;padding:0;max-width:none}
.comm-panel .sec-head{text-align:start}
.comm-panel .sec-head .sub{margin-inline:0}
.comm-perks{border-block-start:1px solid var(--line)}
.comm-perk{text-align:start}

/* coral belongs to the eyebrow diamond only; labels and tags use the muted ink */
.case-field dt,.case-sm-tags li,.depth li{color:var(--ink-soft)}
.depth li,.case-sm-tags li{background:none;border:1px solid var(--line)}
.case-sm-tags li.case-sm-unsourced{border-style:dashed}

/* the accent phrase inside the teal contact block would be teal on teal */
.cta h2 .acc{color:var(--on-accent);box-shadow:inset 0 -.16em 0 rgba(255,255,255,.28)}

/* the badge is positioned against the frame; base.css made the frame static on
   narrow screens, so the badge escaped onto the next section */
.case-frame{position:relative}

/* Accent phrase in headings: brown (rule lives here; chrome.css has the same for pages without editorial.css). Navy and the near-black ink are too close
   (1.5:1) for a navy accent word to read against the heading around it. */
.acc{color:var(--coral)}
.cta .acc,.cta h2 .acc{color:var(--on-accent)}

/* hero secondary: brown fill with a white disc, beside the navy primary */
.hero-cta .pill--line{background:var(--coral);border-color:var(--coral);color:var(--on-accent)}
.hero-cta .pill--line .pill-ico{background:rgba(255,255,255,.2);color:var(--on-accent)}
.hero-cta .pill--line:hover{background:#7a4b17;border-color:#7a4b17;color:var(--on-accent)}
.hero-cta .pill--line:hover .pill-ico{background:rgba(255,255,255,.28)}

/* buttons on inner pages take the pill shape */
.btn{border-radius:var(--r-pill)}
.live-eyebrow{font-family:inherit;text-transform:none;letter-spacing:0;background:var(--grey-chip);border:0;color:var(--ink-soft);font-weight:600}
.forum-head .eyebrow-pill{margin-bottom:14px}
.forum-head h1{margin:0 0 8px}

/* CV page: section labels become the chip, credentials an open row, role in brown */
section.blk h2{display:inline-flex;align-items:center;gap:8px;padding:5px 14px 5px 12px;border-radius:var(--r-pill);
  background:var(--grey-chip);color:var(--ink-soft);font:600 13px/1.7 'Geist',system-ui,sans-serif;letter-spacing:0;text-transform:none;margin-bottom:24px}
html[lang="ar"] section.blk h2{font-family:'IBM Plex Sans Arabic',Tajawal,sans-serif;font-size:14px}
section.blk h2::before{content:"";width:7px;height:7px;border-radius:1.5px;background:var(--coral);transform:rotate(45deg);flex:none}
body header.head{padding:clamp(28px,4vw,56px) 24px 32px}
body .role{color:var(--coral);font-family:inherit;font-weight:600}
body .creds{display:flex;flex-wrap:wrap;gap:24px clamp(28px,5vw,72px)}
body .cred{background:none;border:0;border-radius:0;padding:0;min-width:150px}
body .cred b{font-family:var(--sora);font-size:clamp(30px,3.6vw,44px);color:var(--ink)}
body .cred a{color:var(--coral)}
body .tl .when{color:var(--coral)}
.ledger .fig{color:var(--teal)}

/* the case badge sits on a screenshot: solid, legible, never translucent */
.case-shot .badge{background:var(--surface);color:var(--ink);border:1px solid var(--line);font-family:inherit;font-weight:600;
  box-shadow:0 6px 18px -8px rgba(var(--shadow-rgb),.4)}
