/* ==========================================================================
   وتد — Watad static theme
   One stylesheet, no framework. RTL first.
   Sections: 1 tokens · 2 base · 3 layout & axis · 4 type · 5 chrome
             6 components · 7 page blocks · 8 utilities · 9 responsive
             10–17 pages · 18 motion & interaction
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root{
  --teal:#0C4D5A;          /* brand primary */
  --sand:#B9A779;          /* brand accent — selection, index numerals, marks on dark */
  --sand-lit:#C4B387;      /* sand for small text on teal: the brand sand lifted to 4.5:1 there (marks keep --sand) */
  --ink:#282828;           /* body text on white */
  --grey:#6E6E75;          /* brand grey (#818189) darkened to 4.5:1 on white and paper — dates, quiet notes */
  --mid:#5F5F66;           /* secondary text */
  --hair:#DDE0E0;          /* hairlines */
  --paper:#F2F2F2;         /* boxes, sources */
  --on-dark:#DCE3E4;       /* text on teal */
  --on-dark-2:#ABB9BB;     /* quiet text on teal, 4.6:1 */
  --axis:rgba(12,77,90,.2);
  --axis-dark:rgba(185,167,121,.45);

  --disp:"El Messiri",system-ui,sans-serif;  /* headlines + UI */
  --body:"Amiri",Georgia,serif;              /* reading text */

  --cw:1240px;             /* content width */
  --rail:160px;            /* rail column */
  --gap:40px;              /* gutter */
  --axis-x:180px;          /* axis offset from the container's start edge (rail + half gutter) */
  --pad:24px;              /* outer margin on small screens */
  --bar-h:56px;            /* brand row of the header */
  --sub-h:46px;            /* sections row, the part that stays on screen */
  --stick-h:46px;          /* what the sticky header covers at the top of the viewport */

  --ease-out:cubic-bezier(.16,1,.3,1);   /* arrivals */
  --ease-in:cubic-bezier(.55,0,1,.45);   /* exits */
  --start:left;            /* physical side of inline-start, for transform-origin */
  --dir:1;                 /* reading direction, for small directional nudges */
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M20 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E");   /* forward in RTL; flip with scaleX(-1 * --dir) */
}
[dir="rtl"]{--start:right;--dir:-1}

/* 2. Base ------------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--disp);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--sand);outline-offset:3px}
::selection{background:rgba(185,167,121,.38);color:inherit}
html{scrollbar-color:#B9BCBC #fff}
input,select,textarea{caret-color:var(--teal)}
[id]{scroll-margin-top:calc(var(--stick-h) + 24px)}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.45}
p{margin:0}
ol,ul{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;inset-inline-start:12px;top:-60px;background:var(--sand);color:var(--ink);padding:10px 16px;z-index:100;font-weight:600}
.skip:focus{top:12px}

/* 3. Layout & axis ----------------------------------------------------------
   The axis (المحور) is a 1px vertical line in the gutter between the rail and
   the body. Nothing touches it. Wedge marks sit centred on it. */
.container{width:min(var(--cw),100% - 2*var(--pad));margin-inline:auto}
.page{position:relative}
.axis-layer{position:absolute;inset:0;pointer-events:none;z-index:0}
.axis-layer .container{position:relative;height:100%}
.axis{position:absolute;top:0;bottom:0;inset-inline-start:var(--axis-x);width:1px;background:var(--axis)}
.section{position:relative;z-index:1}

/* rail + body */
.l{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);column-gap:var(--gap);align-items:start}
.rail{position:relative;min-width:0}
.body{min-width:0}

/* wedge marks on the axis (placed inside .rail) */
.wedge{position:absolute;top:-4px;inset-inline-start:var(--axis-x);transform:translateX(50%);line-height:0;z-index:4}   /* stays on the axis, above a lifted board */
.wedge--low{top:22px}

/* body splits */
.split{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--gap);align-items:start}   /* 600 / 400 */
.split--rev{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.split--even{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.cols-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.stack>*+*{margin-top:var(--s,24px)}
.measure{max-width:600px}
.measure-wide{max-width:880px}

/* dark bands */
.band{position:relative;z-index:1;background:var(--teal);color:#fff}
.band .axis{background:var(--axis-dark)}
.band:not(.band--paper) .wedge path{fill:var(--sand)}   /* a teal mark on a teal band disappears */
.band--paper{background:var(--paper);color:var(--ink)}
.band--paper .axis{background:var(--axis)}

/* vertical rhythm */
.pt-s{padding-top:24px}.pt-m{padding-top:44px}.pt-l{padding-top:64px}.pt-xl{padding-top:80px}
.pb-s{padding-bottom:24px}.pb-m{padding-bottom:44px}.pb-l{padding-bottom:64px}.pb-xl{padding-bottom:80px}
.mt-s{margin-top:16px}.mt-m{margin-top:28px}.mt-l{margin-top:44px}

/* 4. Type ------------------------------------------------------------------ */
.kicker{display:inline-block;font-size:11.5px;font-weight:600;color:var(--teal);line-height:1.5}
.band .kicker,.kicker--sand{color:var(--sand)}
.t-mega{font-size:clamp(56px,11vw,172px);font-weight:700;line-height:.98}
.t-name{font-size:clamp(44px,6vw,84px);font-weight:700;line-height:1.05}
.t-xxl{font-size:clamp(32px,4vw,54px);font-weight:700;line-height:1.2}
.t-xl{font-size:clamp(26px,3vw,44px);font-weight:700;line-height:1.45}
.t-l{font-size:clamp(22px,2.4vw,36px);font-weight:600;line-height:1.42}
.t-m{font-size:clamp(19px,1.8vw,26px);font-weight:600;line-height:1.45}
.t-s{font-size:18px;font-weight:600;line-height:1.5}
.t-xs{font-size:15.5px;font-weight:600;line-height:1.5}
.dek{font-family:var(--body);font-size:17px;line-height:1.85;color:#3A3A40}
.band .dek{color:#CFD9DA}
.lead-text{font-family:var(--body);font-size:clamp(18px,1.8vw,23px);line-height:1.85;color:#3A3A40}
.prose p{font-family:var(--body);font-size:20px;line-height:1.95;color:var(--ink);margin:0 0 24px}
.prose p:last-child{margin-bottom:0}
.statement{font-family:var(--body);font-size:clamp(22px,2.6vw,36px);line-height:1.75}
.cap{font-size:12px;color:var(--grey);line-height:1.7}
.meta{font-size:12px;color:var(--mid)}
.meta b{font-weight:500;color:var(--ink)}
.band .meta{color:var(--on-dark-2)}.band .meta b{color:#fff}
.num{font-weight:600;line-height:1}
.hex{direction:ltr;unicode-bidi:isolate}

/* 5. Chrome: header, drawer, search overlay, footer ------------------------- */
.site-header{position:sticky;top:calc(-1 * var(--bar-h));z-index:30;background:var(--teal)}   /* the brand row scrolls away, the sections row stays */
.site-header__bar{height:var(--bar-h);display:flex;align-items:center;gap:18px}
.site-header__logo{display:flex;align-items:center;line-height:0}
.site-header__tag{font-size:12.5px;color:var(--on-dark-2);padding-inline-start:18px;border-inline-start:1px solid rgba(255,255,255,.2);line-height:1.6}
.site-header__tools{margin-inline-start:auto;display:flex;align-items:center;gap:20px}
.site-header__date{font-size:12px;color:var(--on-dark-2);padding-inline-end:4px;white-space:nowrap}
.site-header__tools a{font-size:12px;color:var(--on-dark-2);padding-block:19px 17px;border-bottom:2px solid transparent}
.site-header__tools a[aria-current="page"]{color:#fff;border-bottom-color:var(--sand)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:0;color:var(--on-dark-2)}
.icon-btn:hover{color:#fff}
.icon-btn svg{width:18px;height:18px}
.burger{display:none}
/* sections row: always on screen, full width, sticks to the top of the viewport */
.site-header__sub{border-top:1px solid rgba(255,255,255,.14)}
.site-header__subin{height:var(--sub-h);display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;column-gap:24px}
.site-header__secs{display:flex;justify-content:space-between;align-items:center;min-width:0}
.site-header__secs a{font-size:15.5px;font-weight:600;color:var(--on-dark);padding-block:12px 10px;border-bottom:2px solid transparent;white-space:nowrap}
.site-header__secs a:hover{color:#fff}
.site-header__secs a[aria-current="page"]{color:#fff;border-bottom-color:var(--sand)}
.site-header__mark{display:flex;align-items:center;line-height:0}
.site-header__acts{display:flex;justify-content:flex-end}
.site-header__mark,.site-header__acts{visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s}
.site-header.is-stuck .site-header__mark,.site-header.is-stuck .site-header__acts{visibility:visible;opacity:1;transition:opacity .35s,visibility 0s}   /* once the brand row is gone */

.drawer{position:fixed;inset:0;z-index:50;background:var(--teal);color:#fff;padding:22px var(--pad) 40px;display:none;overflow:auto}
.drawer.is-open{display:block}
.drawer__top{display:flex;justify-content:space-between;align-items:center}
.drawer nav a{display:flex;justify-content:space-between;align-items:baseline;font-size:26px;font-weight:600;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.drawer nav a span{font-size:12px;font-weight:400;color:var(--on-dark-2)}
.drawer__more{display:flex;gap:24px;margin-top:28px;font-size:14px;color:var(--on-dark)}

.search-overlay{position:fixed;inset:0;z-index:60;background:rgba(12,77,90,.97);display:none;align-items:flex-start;padding-top:18vh}
.search-overlay.is-open{display:flex}
.search-overlay form{width:min(880px,100% - 2*var(--pad));margin-inline:auto;border-bottom:2px solid var(--sand);display:flex;gap:16px;align-items:center;padding-bottom:12px}
.search-overlay input{flex:1;min-width:0;background:none;border:0;outline:0;color:#fff;caret-color:var(--sand);font-family:var(--disp);font-size:clamp(26px,4vw,44px);font-weight:600}
.search-overlay input::placeholder{color:rgba(255,255,255,.62)}
.search-overlay__close{position:absolute;top:18px;inset-inline-end:var(--pad);color:#fff}
.search-overlay .btn{background:transparent;border-color:rgba(255,255,255,.55)}   /* a teal button on the teal veil had no edge */
.search-overlay .btn:hover{background:#fff;border-color:#fff;color:var(--teal)}


/* 6. Components ------------------------------------------------------------ */
/* rail label */
.rail-label{border-top:1px solid var(--ink);padding-top:11px;font-size:12px;color:var(--mid);line-height:1.75}
.rail-label b,.rail-label h2{display:block;font-size:16px;font-weight:600;color:var(--teal);line-height:1.4;margin-bottom:2px}
.rail-label a{color:var(--teal)}
.rail-label a:hover{color:var(--ink)}
.rail-label--quiet{border-top-color:var(--hair)}
.band .rail-label{border-top-color:rgba(255,255,255,.3);color:var(--on-dark-2)}
.band .rail-label b,.band .rail-label h2{color:#fff}
.band .rail-label a{color:#fff}   /* teal links vanished on the teal band */
.band .rail-label a:hover{color:var(--sand)}
.crumbs{font-size:12px;line-height:1.8;color:var(--grey)}
.crumbs a{color:var(--grey)}.crumbs a:hover{color:var(--teal)}
.crumbs [aria-current]{color:var(--ink)}
.band .crumbs,.band .crumbs a{color:var(--on-dark-2)}.band .crumbs [aria-current]{color:#fff}.band .crumbs a:hover{color:#fff}

/* byline */
.byline{display:flex;gap:12px;align-items:baseline;font-size:12px;color:var(--mid);border-top:1px solid var(--hair);padding-top:8px;margin-top:10px}
.byline b{font-weight:500;color:var(--ink)}
.byline time{color:var(--grey);white-space:nowrap}
.band .byline{border-top-color:rgba(255,255,255,.26);color:#CFD9DA}
.band .byline b{color:#fff}.band .byline time{color:var(--on-dark-2)}

/* media ratios — posters are shown whole, covers may crop */
.poster,.cover{width:100%;object-fit:cover;background:var(--paper)}
.poster{aspect-ratio:9/16}
.cover{aspect-ratio:16/9}
.cover--wide{aspect-ratio:2.1/1}

/* story card-less units */
.story{display:block;min-width:0}
.story__title{display:block;margin-top:8px}
.story:hover .story__title{color:var(--teal)}
.band .story:hover .story__title{color:var(--sand)}
.story__dek{margin-top:10px}
.story--row{display:grid;grid-template-columns:minmax(0,1fr) var(--media,200px);gap:var(--gap);align-items:start}
.story--row .story__media{grid-column:2;grid-row:1}
.story--row .story__text{grid-column:1;grid-row:1}
.story--split{display:flex;flex-direction:column;justify-content:space-between;min-height:100%}

/* hairline list rows */
.rows>*{border-top:1px solid var(--hair)}
.rows>*:first-child{border-top-color:var(--ink)}
.row-item{display:block;padding:14px 0}

/* numbered index rows */
.idx{display:flex;gap:22px;align-items:baseline;border-top:1px solid var(--hair);padding:14px 0}
.idx>i{font-style:normal;flex:0 0 26px;font-size:12px;font-weight:600;color:var(--sand)}
.idx>b{flex:1;font-size:21px;font-weight:600;line-height:1.5}
.idx>.meta{flex:0 0 auto}
.idx:hover>b{color:var(--teal)}

/* figures (numbers) */
.fg{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--hair)}
.fg span{font-size:12.5px;color:var(--mid);line-height:1.5}
.fg b{font-size:16px;font-weight:600;white-space:nowrap}
.stat{border-top:1px solid var(--ink);padding-top:12px}
.stat b{display:block;font-size:40px;font-weight:700;line-height:1}
.stat span{display:block;font-size:12px;color:var(--mid);margin-top:9px}

/* buttons & links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--teal);background:var(--teal);color:#fff;font-family:var(--disp);font-size:14px;font-weight:600;padding:11px 28px;line-height:1.3}
.btn:hover{background:#093C47;border-color:#093C47}
.btn--ghost{background:transparent;color:var(--teal)}
.btn--ghost:hover{background:var(--teal);color:#fff}
.btn--block{width:100%}
.btn[aria-pressed="true"]{background:transparent;color:var(--teal)}   /* following: the state reads at a glance */
.btn[aria-pressed="true"]:hover{background:var(--paper)}
.link-accent{display:inline-block;font-size:14px;font-weight:600;color:var(--teal);border-bottom:2px solid var(--sand);padding-bottom:3px}
.band .link-accent{color:#fff}
.link-quiet{font-size:13px;color:var(--mid)}
.link-quiet:hover{color:var(--teal)}

/* social squares */
.social{display:flex;gap:8px;flex-wrap:wrap}
.social a{width:44px;height:44px;border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;color:var(--teal)}
.social a:hover{border-color:var(--teal);background:var(--teal);color:#fff}
.social svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square}

/* tabs (selected item underlined in sand) */
.tabs{display:flex;gap:28px;align-items:flex-end;border-bottom:1px solid var(--hair);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 12px;font-size:14px;color:var(--mid);white-space:nowrap}
.tab small{font-size:11px;color:var(--grey);padding-inline-start:6px}
.tab.is-active,.tab[aria-selected="true"]{color:var(--ink);font-weight:600;border-bottom-color:var(--sand)}

/* chips row (inline selectable) */
.chips{display:flex;gap:22px;flex-wrap:wrap;align-items:baseline}
.chip{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 3px;font-size:13px;color:var(--mid)}
.chip small{font-size:11px;color:var(--grey);padding-inline-start:5px}
.chip.is-active{color:var(--ink);font-weight:600;border-bottom-color:var(--sand)}

/* facets (filter rail) */
.facets{border-top:1px solid var(--ink);padding-top:12px}
.facets__head{display:flex;justify-content:space-between;align-items:baseline}
.facets__head b{font-size:15px;font-weight:600;color:var(--teal)}
.facet{margin-top:18px}
.facet__title{font-size:12px;font-weight:600;color:var(--teal);padding-bottom:6px;border-bottom:1px solid var(--ink)}
.facet__opt{display:flex;justify-content:space-between;align-items:baseline;width:100%;background:none;border:0;border-bottom:1px solid var(--hair);padding:7px 0;font-size:12.5px;color:var(--mid);text-align:start}
.facet__opt span:last-child{font-size:11px;color:var(--grey)}
.facet__opt.is-active span:first-child{color:var(--ink);font-weight:600;border-bottom:2px solid var(--sand);padding-bottom:2px}
.facet__opt:hover span:first-child{color:var(--teal)}
.facets.is-disabled .facet__title,.facets.is-disabled .facets__head b{color:#B9BCBC;border-color:var(--hair)}
.facets.is-disabled .facet__opt{color:#B9BCBC;pointer-events:none}

/* pager */
.pager{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pager a,.pager span{display:flex;align-items:center;justify-content:center;min-width:38px;height:38px;border:1px solid var(--hair);font-size:14px;padding:0 10px}
.pager a:not([aria-current]):hover{border-color:var(--teal);color:var(--teal)}   /* the current page is teal already */
.pager [aria-current="page"]{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.pager .pager__next,.pager .pager__prev{border:0;color:var(--mid);padding-inline:12px}
.pager .pager__prev[aria-disabled]{color:#B9BCBC}
.pager .pager__gap{border:0;min-width:18px;padding:0;color:var(--grey)}
.pager .pager__info{border:0;font-size:12px;color:var(--grey);padding-inline-start:10px}
.pager a{font-variant-numeric:tabular-nums}

/* forms */
.search-form{position:relative;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--hair);padding-bottom:12px}
.search-form::after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;background:var(--sand);opacity:0;transform-origin:var(--start) center}
.search-form:focus-within::after{opacity:1}   /* the input drops its outline; this line is its focus indicator */
.search-form label{font-size:13px;font-weight:600;color:var(--teal);white-space:nowrap}
.search-form input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:var(--disp);font-size:21px;color:var(--ink);padding:6px 0}

/* horizontal strip that scrolls on small screens */
.strip{display:flex;gap:var(--gap);align-items:flex-end}

/* pieces used in several pages */
.pull{border-top:2px solid var(--sand);padding-top:18px}
.pull__text{font-size:clamp(22px,2.2vw,29px);font-weight:600;line-height:1.55;margin-top:12px}
.note{border-inline-start:1px solid var(--hair);padding-inline-start:26px}
.band .note{border-color:rgba(255,255,255,.22)}
.box{background:var(--paper);padding:24px}
.portrait{position:relative;aspect-ratio:4/5;background:#E7EAEA;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait__ph{position:absolute;inset:0;width:100%;height:100%}
.portrait__cap{position:absolute;inset-inline:0;bottom:0;background:rgba(12,77,90,.9);padding:9px 14px;display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:600;color:#fff}
.portrait__cap small{font-size:11px;font-weight:400;color:var(--sand)}

/* 7. Page blocks ------------------------------------------------------------ */
/* home ticker */
.ticker{border-bottom:1px solid var(--hair);position:relative;z-index:1;background:#fff}
.ticker .l{padding-block:14px}
.ticker__items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.ticker__items a{display:block;padding-inline-start:18px;border-inline-start:1px solid var(--hair);font-size:13.5px;font-weight:500;line-height:1.5}
.ticker__items time{display:block;font-size:11px;color:var(--grey);font-weight:400}

/* article */
.art-hero{margin-top:30px}
.art-hero__img{width:100%;aspect-ratio:2.1/1;object-fit:cover}
.chapter{position:relative;border-top:1px solid var(--ink);padding-top:18px;margin:44px 0 22px}
.chapter .wedge{inset-inline-start:calc(-1 * (var(--gap) / 2 + 0px));top:-13px}
.chapter h2{font-size:clamp(22px,2vw,26px)}
.databand{background:var(--teal);color:#fff;padding:50px 40px 52px}
.databand__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.databand__grid>div{padding-inline:30px;border-inline-start:1px solid rgba(255,255,255,.24)}
.databand__grid>div:first-child{border:0;padding-inline-start:0}
.databand b{display:block;font-size:clamp(34px,4vw,54px);font-weight:600;line-height:1}
.databand span{display:block;font-size:12.5px;color:#CFD9DA;margin-top:11px}
.bignum{font-size:clamp(48px,5vw,76px);font-weight:600;line-height:.92}
.bignum small{font-size:.3em;font-weight:400;padding-inline-start:8px}
.sources ol{counter-reset:s;padding-inline-start:0}
.sources li{counter-increment:s;display:flex;gap:14px;font-size:13px;line-height:1.75;color:var(--mid);padding:10px 0;border-bottom:1px solid #E3E5E5}
.sources li::before{content:counter(s,decimal-leading-zero);flex:0 0 22px;font-size:12px;font-weight:600;color:var(--sand)}
.toc a{display:block;font-size:12px;line-height:1.55;color:var(--mid);padding:6px 0;border-bottom:1px solid var(--hair)}
.toc a:hover,.toc a.is-active{color:var(--teal)}

/* search results */
.results[data-view="list"] .res-grid,.results[data-view="list"] .res-compact{display:none}
.results[data-view="grid"] .res-list,.results[data-view="grid"] .res-compact{display:none}
.results[data-view="compact"] .res-list,.results[data-view="compact"] .res-grid{display:none}
.res-grid{columns:3;column-gap:var(--gap)}
.res-grid>*{break-inside:avoid;margin-bottom:44px;border-top:1px solid var(--ink);padding-top:14px}
.res-compact .line{display:grid;grid-template-columns:150px minmax(0,1fr) 150px 96px;gap:30px;align-items:baseline;border-top:1px solid var(--hair);padding:15px 0}
.res-compact .line b{font-size:18px;font-weight:600;line-height:1.5}
[data-hidden="true"]{display:none!important}
.tier{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px;margin-top:48px}
.tier:first-child{margin-top:0}
.tier small{font-size:11.5px;color:var(--grey)}
.bars .bar{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--hair)}
.bars .bar span:first-child{flex:0 0 118px;font-size:12.5px}
.bars .bar i{flex:1;height:9px;background:var(--paper);display:block;position:relative}
.bars .bar i::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--c,var(--teal))}
.bars .bar span:last-child{flex:0 0 30px;text-align:end;font-size:11.5px;color:var(--grey)}

/* archive */
.arow{display:grid;grid-template-columns:34px 160px minmax(0,1fr) 170px;gap:26px;align-items:baseline;border-top:1px solid var(--hair);padding:13px 0}
.arow i{font-style:normal;font-size:13px;font-weight:600;color:var(--sand)}
.arow b{font-size:18px;font-weight:600;line-height:1.5}
.arow .kicker{font-size:11.5px}
.arow>span:last-of-type{font-size:12px;color:var(--mid);text-align:end}   /* the author; the stretched link is the last child */
.arow:hover b{color:var(--teal)}
.month[data-open="false"] .month__body{display:none}
.month__toggle{display:flex;justify-content:space-between;align-items:baseline;width:100%;background:none;border:0;border-top:1px solid var(--ink);padding:16px 0 4px;text-align:start}

/* 8. Utilities -------------------------------------------------------------- */
.flex{display:flex}.between{justify-content:space-between}.baseline{align-items:baseline}.end{align-items:flex-end}.center{align-items:center}
.gap-s{gap:12px}.gap-m{gap:22px}.gap-l{gap:40px}
.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}
.rule{border-top:1px solid var(--ink)}
.rule-2{border-top:2px solid var(--ink)}
.rule-hair{border-top:1px solid var(--hair)}
.u-teal{color:var(--teal)}.u-sand{color:var(--sand)}.u-mid{color:var(--mid)}.u-grey{color:var(--grey)}.u-white{color:#fff}
.hide-desktop{display:none}

/* 9. Responsive ------------------------------------------------------------- */
@media (max-width:1199px){
  :root{--gap:32px;--rail:140px;--axis-x:156px}
}
@media (max-width:1023px){
  :root{--gap:24px;--axis-x:-12px}
  .l{grid-template-columns:minmax(0,1fr);row-gap:18px}
  .rail:empty{display:none}
  .wedge{inset-inline-start:-12px}
  :root{--sub-h:42px;--stick-h:42px}
  .site-header__tools .hide-tablet{display:none}
  .burger{display:inline-flex}
  .site-header__subin{grid-template-columns:minmax(0,1fr) auto;column-gap:8px}
  .site-header__mark{display:none}
  .site-header__secs{justify-content:flex-start;gap:22px;overflow-x:auto;scrollbar-width:none}
  .site-header__secs::-webkit-scrollbar{display:none}
  .site-header__secs a{font-size:14px;padding-block:10px 9px}
  .site-header__acts{display:none}
  .site-header.is-stuck .site-header__acts{display:flex}
  .ticker__items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ticker__items a:nth-child(n+3){display:none}
  .cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .res-grid{columns:2}
  .res-compact .line{grid-template-columns:120px minmax(0,1fr) 90px}
  .res-compact .line>:nth-child(3){display:none}
  .arow{grid-template-columns:30px minmax(0,1fr) 130px}
  .arow .kicker{display:none}
  .chapter .wedge{inset-inline-start:-12px}
  .hide-tablet{display:none}
}
@media (max-width:767px){
  :root{--gap:18px;--pad:24px}
  body{font-size:15px}
  .split,.split--rev,.split--even,.cols-3{grid-template-columns:minmax(0,1fr)}
  .cols-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
  .story--row{--media:120px!important;gap:16px}
  .prose p{font-size:17px;line-height:1.85;margin-bottom:16px}
  .ticker__items{grid-template-columns:1fr}
  .ticker__items a:nth-child(n+2){display:none}
  .strip{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin-inline:calc(-1 * var(--pad));padding-inline:var(--pad);scrollbar-width:none}
  .strip::-webkit-scrollbar{display:none}
  .strip>*{scroll-snap-align:start;flex:0 0 auto}
  .databand{padding:28px 20px}
  .databand__grid{grid-template-columns:1fr}
  .databand__grid>div{border:0;border-top:1px solid rgba(255,255,255,.24);padding:14px 0}
  .databand__grid>div:first-child{border:0;padding-top:0}
  .res-grid{columns:1}
  .res-compact .line{grid-template-columns:minmax(0,1fr) 70px;gap:14px}
  .res-compact .line>:first-child{display:none}
  .res-compact .line b{font-size:15.5px}
  .arow{grid-template-columns:22px minmax(0,1fr);gap:12px}
  .arow>span:last-of-type{display:none}
  .arow b{font-size:15.5px}
  .hide-mobile{display:none!important}
  .hide-desktop{display:block}
  .stat b{font-size:28px}
  .t-mega{font-size:clamp(64px,26vw,110px)}
  .idx{flex-wrap:wrap;row-gap:2px}
  .idx>.meta{flex:1 1 100%;padding-inline-start:48px}   /* under the title, past the numeral */
}

/* 10. Home ------------------------------------------------------------------ */
.home-lead{display:grid;grid-template-columns:minmax(0,684fr) minmax(0,316fr);gap:var(--gap);align-items:start}
.home-lead__main .split{grid-template-columns:minmax(0,420fr) minmax(0,234fr);gap:30px;margin-top:16px}
.home-lead__more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;border-top:1px solid var(--ink);margin-top:26px;padding-top:14px}
.boards{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--gap);align-items:end}
.boards__strip{display:flex;gap:30px;align-items:flex-end;margin-top:34px}
.boards__strip>:nth-child(1){width:266px}.boards__strip>:nth-child(2){width:200px}.boards__strip>:nth-child(3){width:160px}
.home-sec{display:grid;grid-template-columns:minmax(0,1fr) 240px 200px;gap:var(--gap);align-items:start}
.home-build{display:grid;grid-template-columns:320px minmax(0,1fr) 200px;gap:var(--gap);align-items:end}
.home-news{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--gap);align-items:start}
.xfeed{margin:0;padding:0;list-style:none}
.home-people{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--gap);align-items:start}
.pull-up{margin-top:-150px;position:relative;z-index:2}
.authors-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:26px}
.authors-row a{border-top:1px solid var(--sand);padding-top:14px;display:block}
.authors-row b{display:block;font-size:20px;font-weight:600;color:#fff}
.authors-row .kicker{margin-top:10px}
.authors-row span{display:block;font-size:13px;color:var(--on-dark);line-height:1.5;margin-top:5px}
.authors-row small{display:block;font-size:11px;color:var(--on-dark-2);margin-top:6px}
.archive-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;border-top:1px solid var(--ink);padding-top:18px}
.archive-bar select{font-family:var(--disp);font-size:13px;border:1px solid var(--hair);background:#fff;padding:8px 12px;color:var(--ink)}

@media (max-width:1199px){
  .home-sec{grid-template-columns:minmax(0,1fr) 220px 170px}
  .boards{grid-template-columns:260px minmax(0,1fr)}
  .home-build{grid-template-columns:260px minmax(0,1fr) 170px}
  .authors-row{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:30px}
}
@media (max-width:1023px){
  .home-lead{grid-template-columns:minmax(0,1fr) 240px}
  .home-lead__main .split{grid-template-columns:1fr}
  .home-sec{grid-template-columns:minmax(0,1fr) 200px}
  .home-sec>:nth-child(2){grid-column:1/-1;order:3}
  .home-build{grid-template-columns:220px minmax(0,1fr)}
  .home-build>:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:end}
  .home-build>:nth-child(3) .poster{grid-row:1/4}
  .home-news,.home-people{grid-template-columns:1fr}
  .pull-up{margin-top:0}
}
@media (max-width:767px){
  .home-lead,.boards,.home-sec,.home-build{grid-template-columns:1fr}
  .home-lead__more{grid-template-columns:1fr;gap:0}
  .home-lead__more>*{border-top:1px solid var(--hair);padding:12px 0}
  .home-lead__more>*:first-child{border-top:0}
  .home-lead__side{display:grid;grid-template-columns:120px 1fr;gap:16px}
  .boards>:first-child{max-width:260px}
  .boards__strip>:nth-child(1){width:150px}.boards__strip>:nth-child(2){width:120px}.boards__strip>:nth-child(3){width:100px}
  .home-build>:first-child{max-width:240px}
  .home-build>:nth-child(3){grid-template-columns:130px minmax(0,1fr)}
  .home-sec>:nth-child(3){max-width:220px}
  .authors-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .archive-bar form{flex-wrap:wrap}
  .archive-bar form>.meta{flex-basis:100%}
}

/* 11. Clickable story without nested links --------------------------------
   <article class="story"> … <a class="stretched" href="…" aria-label="…"></a></article>
   The stretched link covers the unit; author links sit above it. */
.story{position:relative}
.stretched{position:absolute;inset:0;z-index:1}
.stretched:focus-visible{outline:2px solid var(--sand);outline-offset:4px}
.story .byline a,.story .kicker a,.story .above{position:relative;z-index:2}
.byline a:hover b{color:var(--teal)}
.band .byline a:hover b{color:var(--sand)}
/* grid children must be allowed to shrink (long Arabic titles, strips) */
.l>*,.split>*,.cols-3>*,.cols-4>*,.home-lead>*,.boards>*,.home-sec>*,.home-build>*,.home-news>*,.home-people>*,.authors-row>*{min-width:0}

/* 12. Article --------------------------------------------------------------- */
.art-head .body{max-width:1000px}
.epigraph{display:flex;gap:30px;align-items:flex-start;border-top:1px solid var(--ink);margin-top:30px;padding-top:26px}
.epigraph p{font-family:var(--body);font-size:clamp(18px,1.8vw,23px);line-height:1.85;color:#3A3A40}
.art-author{border-top:1px solid var(--ink);padding-top:11px;margin-top:22px}
.art-author a{display:block;font-size:17px;font-weight:600}
.art-author a:hover{color:var(--teal)}
.toc{position:sticky;top:calc(var(--stick-h) + 20px)}
.intro-first{font-family:var(--body);font-size:clamp(19px,1.9vw,23px);line-height:1.85;margin-bottom:28px}
.art-body{max-width:880px}   /* starts on the axis, like the title, the chapters and the figures */
.lede-col{max-width:700px}
.margin-fig{border-inline-start:1px solid var(--hair);padding-inline-start:26px;margin-top:96px}
.margin-fig b{display:block;font-size:40px;font-weight:600;line-height:1}
.margin-fig b small{font-size:17px;font-weight:400;padding-inline-start:6px}
.margin-fig p{font-size:13px;color:var(--mid);line-height:1.7;margin-top:10px}
.break-h{font-size:clamp(28px,3vw,40px);font-weight:700;line-height:1.45;max-width:700px}
.break-grid{display:grid;grid-template-columns:minmax(0,496fr) minmax(0,340fr);gap:44px;margin:24px 0;align-items:start}
.two-cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.two-cases .kicker{display:block;padding-bottom:9px;border-bottom:1px solid var(--ink);margin-bottom:16px}
.remedy{display:grid;grid-template-columns:var(--rail) minmax(0,560fr) minmax(0,440fr);column-gap:var(--gap);align-items:start}
.remedy h2{font-size:22px;margin:30px 0 14px}
.closing{border-top:2px solid var(--ink);padding-top:30px;margin-top:40px}
.closing p{font-family:var(--body);font-size:clamp(22px,2.4vw,33px);line-height:1.8;max-width:1000px}
.sources-box{background:var(--paper);padding:30px 40px 26px}
.author-strip{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr);column-gap:var(--gap);row-gap:28px;align-items:start;border-top:1px solid var(--ink);padding-top:22px}
.author-strip__pic{width:120px}
.author-strip__name{display:block;margin-top:6px;font-size:26px;font-weight:700;line-height:1.3;transition:color .2s}
.author-strip__name:hover{color:var(--teal)}
.author-strip__bio{margin-top:10px;max-width:460px;font-family:var(--body);font-size:16.5px;line-height:1.8;color:#3A3A40}
.author-strip__acts{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;margin-top:16px}
.author-strip__more ol{margin:6px 0 0;padding:0;list-style:none}
.author-strip__more li a{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:14px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--hair)}
.author-strip__more time{font-size:12px;color:var(--grey);white-space:nowrap}
.author-strip__more b{font-size:15.5px;font-weight:600;line-height:1.5;transition:color .2s}
.author-strip__more li a:hover b{color:var(--teal)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .author-strip__pic:hover img,.author-strip:has(.author-strip__name:hover) .author-strip__pic img{transform:translateY(-6px)}
  .author-strip__pic:hover,.author-strip:has(.author-strip__name:hover) .author-strip__pic{background-position:50% 112%}
}
.next-read{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--gap);align-items:end}
.next-read__small{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;align-items:start;margin-top:32px}
@media (max-width:1023px){
  .remedy{grid-template-columns:minmax(0,1fr) 260px}
  .remedy>.rail{grid-column:1/-1}
  .toc{position:static}
  .next-read{grid-template-columns:1fr 240px}
  .next-read__small{gap:20px}
  .author-strip{grid-template-columns:104px minmax(0,1fr)}
  .author-strip__pic{width:104px}
  .author-strip__more{grid-column:1/-1}
}
@media (max-width:767px){
  .epigraph{gap:14px;margin-top:22px;padding-top:18px}
  .epigraph svg{width:26px;height:auto}
  .break-grid,.two-cases,.remedy,.next-read{grid-template-columns:1fr}
  .break-grid{margin-bottom:16px}
  .margin-fig{margin-top:8px;margin-bottom:24px}
  .sources-box{padding:20px 18px}
  .remedy .poster{max-width:220px}
  .next-read>:last-child{max-width:240px}
}

/* 13. Category ------------------------------------------------------------- */
.cat-head .body{border-bottom:2px solid var(--ink);padding-bottom:0}
.cat-head__row{display:grid;grid-template-columns:168px minmax(0,1fr);column-gap:28px;row-gap:22px;align-items:end}
.cat-head__row>*{min-width:0}
.cat-head__art{margin:0;line-height:0}
.cat-head__art .secart{width:168px}
.cat-head__desc{font-family:var(--body);font-size:clamp(20px,2vw,26px);line-height:1.6}
.cat-head__info .meta{margin-top:6px}
.cat-head__row .tabs{grid-column:1/-1}
.cat-head .tabs{border-bottom:0}
.cat-hero__img{width:100%;aspect-ratio:2.35/1;object-fit:cover}
.cat-hero__text{display:grid;grid-template-columns:minmax(0,600fr) minmax(0,400fr);gap:var(--gap);margin-top:18px;align-items:start}
.cat-pair{display:grid;grid-template-columns:320px 240px minmax(0,1fr);gap:var(--gap);align-items:end}
.cat-edit{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--gap);align-items:end}
.cat-feature{display:grid;grid-template-columns:minmax(0,440fr) minmax(0,560fr);gap:var(--gap);align-items:center}
.cat-files{display:flex;gap:var(--gap);align-items:flex-end}
.cat-files>:nth-child(1){width:300px}.cat-files>:nth-child(2){width:220px}.cat-files>:nth-child(3){flex:1}
.textrow{display:grid;grid-template-columns:150px minmax(0,1fr) 130px;gap:30px;align-items:baseline;border-top:1px solid var(--hair);padding:16px 0}
.textrow:first-child{border-top-color:var(--ink)}
@media (max-width:1023px){
  .cat-pair{grid-template-columns:260px minmax(0,1fr)}
  .cat-pair>:nth-child(3){grid-column:1/-1}
  .cat-feature{grid-template-columns:1fr}
}
@media (max-width:767px){
  .cat-hero__text,.cat-pair,.cat-edit{grid-template-columns:1fr}
  .cat-pair>*:first-child{max-width:260px}.cat-pair>:nth-child(2){max-width:200px}
  .cat-edit>:first-child{max-width:220px}
  .cat-files{flex-wrap:wrap}.cat-files>:nth-child(1){width:170px}.cat-files>:nth-child(2){width:130px}.cat-files>:nth-child(3){flex:1 1 100%}
  .textrow{grid-template-columns:1fr;gap:4px}
  .cat-head__row{grid-template-columns:104px minmax(0,1fr);column-gap:16px}
  .cat-head__art .secart{width:104px}
}

/* 14. Search ---------------------------------------------------------------- */
.s-head__row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:16px}
.s-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:14px}
.viewbtn{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 5px;font-size:13px;color:var(--mid)}
.viewbtn.is-active{color:var(--ink);font-weight:600;border-bottom-color:var(--sand)}
.res-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap);align-items:start}
.res-list .res-top{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,480fr) minmax(0,520fr);gap:var(--gap);border-top:1px solid var(--ink);padding:20px 0 30px}
.res-list .res-top>div:first-child{min-width:0}
.res-list .res-row{display:grid;grid-template-columns:minmax(0,1fr) var(--media,180px);gap:24px;border-top:1px solid var(--hair);padding:20px 0}
.res-list .res-row .poster{width:120px;justify-self:end}
.res-list .res-row.is-poster{--media:120px}
.res-list .res-row .story__title{font-size:clamp(17px,1.5vw,20px)}
.res-empty-filter{border-top:1px solid var(--ink);padding:26px 0;font-size:15px;color:var(--mid)}
.terms a{display:block;font-size:12.5px;color:var(--mid);padding:6px 0;border-bottom:1px solid var(--hair)}
.terms a:hover{color:var(--teal)}
@media (max-width:1023px){
  .res-list{grid-template-columns:1fr}
  .s-rail{display:none}
  .s-rail.is-open{display:block}
  .filter-toggle{display:inline-flex!important}
}
@media (max-width:767px){
  .res-list,.res-list .res-top{grid-template-columns:1fr}
  .res-list .res-top>div:last-child{order:-1}
  .res-list .res-row{--media:110px!important;gap:16px}
  .res-list .res-row .poster{width:110px}
}
.filter-toggle{display:none}

/* 15. Author ---------------------------------------------------------------- */
.au-head{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--gap);align-items:end}
.au-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin-top:36px;padding-bottom:28px;border-bottom:2px solid var(--ink)}
.au-latest{display:grid;grid-template-columns:minmax(0,640fr) minmax(0,360fr);gap:var(--gap);margin-top:22px;align-items:start}
.au-row{display:grid;grid-template-columns:200px minmax(0,1fr) 300px;gap:var(--gap);align-items:stretch;border-top:1px solid var(--ink);padding-top:22px}
.au-peers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.au-peers .poster{max-width:215px}
@media (max-width:1023px){
  .au-head{grid-template-columns:200px minmax(0,1fr)}
  .au-stats,.au-peers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .au-row{grid-template-columns:160px minmax(0,1fr)}
  .au-row>:last-child{grid-column:1/-1}
}
@media (max-width:767px){
  .au-head{grid-template-columns:130px minmax(0,1fr);align-items:end;gap:16px}
  .au-head__text{grid-column:1/-1}
  .au-latest{grid-template-columns:1fr}
  .au-row{grid-template-columns:110px minmax(0,1fr);gap:16px}
  .au-peers{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
}

/* 16. About ----------------------------------------------------------------- */
.ab-hero{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:end}
.ab-lead{font-size:clamp(24px,2.8vw,38px);font-weight:600;line-height:1.5;color:#fff;margin-top:22px;max-width:620px}
.ab-offer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.ab-offer__h{border-top:1px solid var(--ink);padding-top:14px}
.ab-offer__h i{font-style:normal;font-size:12px;font-weight:600;color:var(--sand)}
.ab-offer__h b{display:block;font-size:25px;font-weight:600;line-height:1.35;margin-top:6px}
.ab-offer__h p{font-family:var(--body);font-size:16px;line-height:1.8;color:#3A3A40;margin-top:6px}
.ab-offer--media{align-items:end;margin-top:22px}
.ab-stance{font-size:clamp(24px,3vw,40px);font-weight:600;line-height:1.6;max-width:960px}
.ab-mark{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:stretch}
.ab-mark__art{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:50px 30px}
.ab-mark__art svg{width:min(320px,80%);height:auto}
@media (max-width:1023px){
  .ab-hero,.ab-mark{grid-template-columns:1fr}
  .ab-offer{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
}
@media (max-width:767px){
  .ab-offer{grid-template-columns:1fr}
  .ab-offer--media{display:flex;overflow-x:auto;gap:16px;margin-inline:calc(-1*var(--pad));padding-inline:var(--pad)}
  .ab-offer--media>*{flex:0 0 150px}
}

/* 17. Archive & 404 --------------------------------------------------------- */
.ar-title{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:20px}
.ar-rhythm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:30px}
.ar-rhythm b{font-size:58px;font-weight:700;line-height:.9}
.ar-rhythm i{display:block;height:8px;background:var(--paper);margin-top:12px;position:relative}
.ar-rhythm i::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--c,var(--sand))}
.ar-strip{display:flex;gap:var(--gap);align-items:flex-end}
.ar-strip>*{width:180px}.ar-strip>.is-cover{width:280px}
.e404{font-size:clamp(56px,9vw,116px);font-weight:700;line-height:1.05;color:#fff}
@media (max-width:767px){
  .ar-rhythm{grid-template-columns:1fr;gap:16px}
  .ar-rhythm b{font-size:40px}
  .ar-strip{overflow-x:auto;gap:14px;margin-inline:calc(-1*var(--pad));padding-inline:var(--pad)}
  .ar-strip>*{flex:0 0 140px}.ar-strip>.is-cover{flex-basis:220px}
}

/* 18. Motion & interaction ---------------------------------------------------
   One idea, carried through: the wedge (وتد) is driven into the axis, and a
   board (لوح) can be lifted off the wall. Everything else is quiet feedback.
   Colour and opacity changes run for everyone; anything that moves sits behind
   prefers-reduced-motion:no-preference. Nothing starts hidden unless watad.js
   has already taken charge of revealing it (sections 11-14 there). */

/* feedback: colour */
.site-header__tools a,.site-header__secs a,.icon-btn,.story__title,.idx>b,.arow b,.tab,.chip,.viewbtn,.facet__opt span,.link-quiet,.link-accent,.crumbs a,.toc a,.terms a,.xfeed a,.ticker__items a,.rail-label a,.art-author a,.byline b,.site-footer__col a,.authors-row b,.btn,.social a,.pager a{transition:color .2s,background-color .2s,border-color .2s}
.site-header__tools a:hover,.site-header__secs a:hover,.xfeed a:hover{color:#fff}
.ticker__items a:hover{color:var(--teal)}
.authors-row a:hover b{color:var(--sand)}

/* the selection language: a sand line under the chosen item; hover previews it at half strength */
.site-header__tools a,.site-header__secs a,.tab,.chip,.viewbtn,.link-accent,.toc a{position:relative}
.site-header__tools a::after,.site-header__secs a::after,.tab::after,.chip::after,.viewbtn::after{content:"";position:absolute;inset-inline:0;bottom:-2px;height:2px;background:var(--sand);opacity:0;transform-origin:var(--start) center;transition:opacity .2s,transform .4s var(--ease-out);pointer-events:none}
.site-header__tools a[aria-current]::after,.site-header__secs a[aria-current]::after,.tab.is-active::after,.tab[aria-selected="true"]::after,.chip.is-active::after,.viewbtn.is-active::after{display:none}
/* accent links redraw their line in the text colour; the chapter in view is underlined in the contents */
.link-accent::after{content:"";position:absolute;inset-inline:0;bottom:-2px;height:2px;background:currentColor;opacity:0;transform-origin:var(--start) center;transition:opacity .2s,transform .45s var(--ease-out);pointer-events:none}
.toc a::after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;background:var(--sand);opacity:0;transform-origin:var(--start) center;transition:opacity .25s,transform .5s var(--ease-out)}
.toc a.is-active::after{opacity:1}
@media (hover:hover){
  .site-header__tools a:hover::after,.site-header__secs a:hover::after,.tab:hover::after,.chip:hover::after,.viewbtn:hover::after{opacity:.55}
  .link-accent:hover::after,a:hover>.link-accent::after,.month__toggle:hover .link-accent::after{opacity:1}
}

/* images arrive instead of popping (the class is only ever set by watad.js) */
img{transition:opacity .6s var(--ease-out)}
img.is-loading{opacity:0}

/* boards: a sand frame stands off the poster. Posters are always shown whole, so they never crop or zoom. */
.story>img.poster:first-child{outline:1px solid transparent;outline-offset:6px;transition:outline-color .3s,outline-offset .5s var(--ease-out),opacity .45s var(--ease-out)}
@media (hover:hover){.story:hover>img.poster:first-child{outline-color:var(--sand)}}
/* in teal bands the board lifts off the wall and follows the pointer (watad.js 11); the others step back */
.lift>img.poster{transform-origin:50% 100%}   /* it stands on its base like a planted board, so the label under it stays clear */
.lift.is-lifted{z-index:3}
.band .lift.is-lifted>img.poster:first-child{outline-color:var(--sand)}
.has-lift .lift:not(.is-lifted)>img.poster{opacity:.45}
.read-progress{position:fixed;top:var(--stick-h);inset-inline:0;height:3px;background:var(--sand);transform:scaleX(0);transform-origin:var(--start) center;z-index:45;pointer-events:none}
.read-progress.is-timeline{animation:read-grow linear both;animation-timeline:scroll(root block)}   /* range set by watad.js 14 */

@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation-duration:.2s}
  ::view-transition-new(root){animation-duration:.35s}

  /* signature: the axis is drawn down the first screen, and each wedge is driven into it */
  .axis{animation:axis-draw 1.4s var(--ease-out) backwards}
  .wedge>svg,.epigraph>svg{animation:wedge-in .7s .55s backwards}
  .wedge.is-waiting>svg{opacity:0;animation:none}
  .wedge.is-waiting.is-in>svg{opacity:1;animation:wedge-in .7s backwards}
  .ab-mark__art.is-waiting path{opacity:0}
  .ab-mark__art.is-in path{opacity:1;animation:fade-in .8s var(--ease-out) backwards}
  .ab-mark__art.is-in path[fill="#B9A779"]{animation:mark-cut .9s .3s backwards}   /* the sharp angle: where the peg enters the ground */
  .ar-rhythm i::after{transform-origin:var(--start) center;animation:bar-grow 1.1s .35s var(--ease-out) backwards}
  .ar-rhythm>div:nth-child(2) i::after{animation-delay:.45s}
  .ar-rhythm>div:nth-child(3) i::after{animation-delay:.55s}

  /* lines draw from the start edge */
  .site-header__tools a::after,.site-header__secs a::after,.tab::after,.chip::after,.viewbtn::after,.link-accent::after,.toc a::after,.search-form::after{transform:scaleX(0)}
  .toc a.is-active::after,.search-form:focus-within::after{transform:none}
  .search-form::after{transition:opacity .2s,transform .5s var(--ease-out)}

  /* menu and search: a teal curtain drops from the top, then the items land in order.
     The curtain is a transform on its own layer, so the full-screen panel is never repainted per frame. */
  .drawer{background:transparent;transition:display .34s allow-discrete}
  .drawer::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--teal);transform-origin:top;transform:scaleY(0);transition:transform .34s var(--ease-in)}
  .drawer.is-open::before{transform:none;transition:transform .55s var(--ease-out)}
  @starting-style{.drawer.is-open::before{transform:scaleY(0)}}
  .drawer>*{transition:opacity .14s var(--ease-in)}
  .drawer:not(.is-open)>*{opacity:0}   /* on close the items go first, then the curtain rises */
  .drawer.is-open .drawer__top{animation:fade-in .45s .12s var(--ease-out) backwards}
  .drawer.is-open nav a,.drawer.is-open .drawer__more{animation:drop-in .6s var(--ease-out) backwards}
  .drawer.is-open nav a:nth-child(2){animation-delay:.03s}.drawer.is-open nav a:nth-child(3){animation-delay:.06s}
  .drawer.is-open nav a:nth-child(4){animation-delay:.09s}.drawer.is-open nav a:nth-child(5){animation-delay:.12s}
  .drawer.is-open nav a:nth-child(6){animation-delay:.15s}.drawer.is-open nav a:nth-child(7){animation-delay:.18s}
  .drawer.is-open nav a:nth-child(n+8),.drawer.is-open .drawer__more{animation-delay:.21s}
  .search-overlay{opacity:0;transition:opacity .22s var(--ease-in),display .22s allow-discrete}
  .search-overlay.is-open{opacity:1;transition:opacity .35s var(--ease-out),display .35s allow-discrete}
  @starting-style{.search-overlay.is-open{opacity:0}}
  .search-overlay.is-open form{animation:rise .6s .05s var(--ease-out) backwards}

  /* press */
  .btn,.icon-btn,.social a,.pager a{transition:color .2s,background-color .2s,border-color .2s,transform .16s var(--ease-out)}
  .btn:active,.icon-btn:active,.social a:active,.pager a:active{transform:scale(.96)}
}

@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .site-header__tools a:hover::after,.site-header__secs a:hover::after,.tab:hover::after,.chip:hover::after,.viewbtn:hover::after,.link-accent:hover::after,a:hover>.link-accent::after,.month__toggle:hover .link-accent::after{transform:none}
  /* covers (16:9, allowed to crop) drift closer inside a fixed frame: the clip shrinks as the image grows */
  .story .cover,.story .cat-hero__img{clip-path:inset(0);transition:transform 1.2s var(--ease-out),clip-path 1.2s var(--ease-out),opacity .6s var(--ease-out)}
  .story:hover :is(.cover,.cat-hero__img),.story:has(.stretched:focus-visible) :is(.cover,.cat-hero__img){transform:scale(1.045);clip-path:inset(2.153%)}
  .story>img.poster:first-child{outline-offset:0}
  .story:hover>img.poster:first-child{outline-offset:6px}
  .band .lift.is-lifted>img.poster:first-child{outline-offset:7px}
  /* list rows lean a step into the reading direction */
  .idx>b,.arow b{transition:color .2s,translate .5s var(--ease-out)}
  .idx:hover>b,.arow:hover b{translate:calc(5px * var(--dir)) 0}
}

@keyframes axis-draw{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 calc(100% - 100vh) 0)}}
@keyframes wedge-in{
  0%{opacity:0;transform:translateY(-22px);animation-timing-function:cubic-bezier(.55,0,1,.45)}
  55%{opacity:1;transform:translateY(2px);animation-timing-function:cubic-bezier(.16,1,.3,1)}
  100%{opacity:1;transform:none}
}
@keyframes mark-cut{
  0%{opacity:0;transform:translate(10px,-4px);animation-timing-function:cubic-bezier(.55,0,1,.45)}
  60%{opacity:1;transform:translate(-.4px,.15px);animation-timing-function:cubic-bezier(.16,1,.3,1)}
  100%{opacity:1;transform:none}
}
@keyframes bar-grow{from{transform:scaleX(0)}}
@keyframes read-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fade-in{from{opacity:0}}
@keyframes drop-in{from{opacity:0;transform:translateY(-12px)}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}

/* 19. Breaking news (عاجل) ----------------------------------------------------
   The wire is live. The headlines take turns: the current one is inked in
   reading direction while a sand line runs down its edge, then it hands over
   and the sand wedge beside the label beats once. Below 1024px it is one slot
   that drops each headline in (swipe, next, "1 من 5"); stepping by hand stops
   the auto-turn. Hover and keyboard focus hold it; it rests off screen.
   watad.js 15 drives it; without JS it is the plain list, and with reduced
   motion nothing advances on its own. */
.ticker__rail{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px}
.ticker__rail .cap{grid-column:1/-1}
.ticker__label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600}
.ticker__live{display:block;line-height:0}
.ticker__live svg{display:block;overflow:visible}
.ticker__live path{fill:var(--sand)}
.ticker__echo{opacity:0}
.ticker__ctrl{grid-column:2;grid-row:1;display:flex;align-items:center;gap:6px}
.ticker__count{font-size:11px;color:var(--grey);font-variant-numeric:tabular-nums;white-space:nowrap;padding-inline-end:4px}
.ticker__btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--hair);background:#fff;color:var(--teal);transition:border-color .2s,background-color .2s,color .2s}
.ticker__btn:hover{border-color:var(--teal)}
.ticker__btn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:square}
.ticker__items a{position:relative}
.ticker__items a::before{content:"";position:absolute;inset-inline-start:-1px;top:0;width:2px;height:100%;background:var(--sand);transform:scaleY(0);transform-origin:top;pointer-events:none}
.ticker.is-auto .ticker__items a.is-current::before{animation:tick-run 6s linear forwards}
.ticker.is-offscreen .ticker__items a::before,.ticker.is-auto:has(.ticker__items a:focus-visible) .ticker__items a::before{animation-play-state:paused}
@media (hover:hover){.ticker.is-auto .ticker__items:hover a::before{animation-play-state:paused}}   /* reading holds it; a tapped button does not */
@media (min-width:1024px){
  .ticker__ctrl{display:none}   /* all five headlines are on screen */
  .ticker.is-auto .ticker__items a{color:var(--mid);transition:color .5s}
  .ticker.is-auto .ticker__items a.is-current{color:var(--ink)}
  .ticker.is-auto .ticker__items a.is-current time{color:var(--teal)}
  .ticker.is-auto .ticker__items a:hover{color:var(--teal)}
}
@media (max-width:1023px){
  .ticker__rail{display:flex;align-items:center;gap:14px}
  .ticker__ctrl{margin-inline-start:auto}
  .ticker__btn{width:32px;height:32px}
  .ticker.is-live .ticker__items{grid-template-columns:minmax(0,1fr);touch-action:pan-y}
  .ticker.is-live .ticker__items a{display:block;grid-area:1/1;opacity:0;pointer-events:none}
  .ticker.is-live .ticker__items a.is-current{opacity:1;pointer-events:auto;z-index:1}
  .ticker__items a::before{inset-inline:0;top:auto;bottom:-15px;width:auto;height:2px;transform:scaleX(0);transform-origin:var(--start) center}   /* runs along the ticker's bottom rule */
  .ticker.is-auto .ticker__items a.is-current::before{animation-name:tick-run-x}
}
.ticker__live path{transform-box:fill-box;transform-origin:50% 70%}
@media (prefers-reduced-motion:no-preference){
  /* the timeline page's live mark beats once on arrival; the ticker's beats on each handover (watad.js 15) */
  .tl-live .ticker__live path:last-child{animation:beat 2.6s .6s}
  .tl-live .ticker__echo{animation:echo 2.6s .6s var(--ease-out)}
}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
  /* the wire comes online: headlines feed in from the start edge */
  .ticker__items a{animation:feed .6s var(--ease-out) backwards}
  .ticker__items a:nth-child(2){animation-delay:.07s}.ticker__items a:nth-child(3){animation-delay:.14s}
  .ticker__items a:nth-child(4){animation-delay:.21s}.ticker__items a:nth-child(n+5){animation-delay:.28s}
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    /* ink passes through the headline in reading direction: mid, then ink, then mid again as it hands over */
    .ticker.is-auto .ticker__items a{background-image:linear-gradient(90deg,var(--mid) 33.34%,var(--ink) 33.34% 66.66%,var(--mid) 66.66%);background-size:300% 100%;background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
    .ticker.is-auto .ticker__items a time{-webkit-text-fill-color:currentColor}
    .ticker.is-auto .ticker__items a.is-current{animation:feed .6s var(--ease-out) backwards,ink-in .9s var(--ease-out) forwards}
    .ticker.is-auto .ticker__items a.is-leaving{animation:feed .6s var(--ease-out) backwards,ink-out .7s var(--ease-in) forwards}
    .ticker.is-auto .ticker__items a:hover{-webkit-text-fill-color:var(--teal)}
  }
}
@media (max-width:1023px) and (prefers-reduced-motion:no-preference){
  .ticker.is-live .ticker__items a.is-current:not(.is-still){animation:tick-in .55s var(--ease-out) both}
  .ticker.is-live .ticker__items a.is-leaving{animation:tick-out .28s var(--ease-in) both}
}
/* the ink sweep paints text with a background; print and forced colours drop backgrounds, so give the text its colour back */
@media print,(forced-colors:active){.ticker .ticker__items a{background:none!important;-webkit-text-fill-color:currentColor!important}}
@keyframes beat{0%,32%,100%{transform:none}7%{transform:scale(1.3)}15%{transform:scale(.94)}23%{transform:scale(1.14)}}
@keyframes echo{0%{opacity:.55;transform:none}55%,100%{opacity:0;transform:scale(3)}}
@keyframes tick-run{to{transform:scaleY(1)}}
@keyframes tick-run-x{to{transform:scaleX(1)}}
@keyframes feed{from{opacity:0;transform:translateX(calc(-14px * var(--dir)))}}
@keyframes ink-in{from{background-position:0 0}to{background-position:50% 0}}
@keyframes ink-out{from{background-position:50% 0}to{background-position:100% 0}}
@keyframes tick-in{0%{opacity:0;transform:translateY(-14px)}60%{opacity:1;transform:translateY(1px)}100%{opacity:1;transform:none}}
@keyframes tick-out{to{opacity:0;transform:translateY(10px)}}

/* 20. Section title artwork (عناوين الاقسام) ---------------------------------
   The designer letters each section's name and the admin uploads it; it then
   replaces .secart__art as an img whose alt is the section name, at the same square. Until
   then these are typographic placeholders in the brand colours; the words
   scale with the card (container units), so one card serves every size. */
.secart{position:relative;display:block;aspect-ratio:1;overflow:hidden;container-type:inline-size;isolation:isolate;outline:1px solid transparent;outline-offset:6px;transition:outline-color .3s,outline-offset .5s var(--ease-out)}
.secart>img{display:block;width:100%;height:100%;object-fit:cover}
.secart__art{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5cqi}
.secart__word{position:relative;z-index:1;font-size:27cqi;font-weight:700;line-height:1;white-space:nowrap}
.secart__sub{position:relative;z-index:1;font-size:11cqi;font-weight:600;line-height:1}
.secart__deco{position:absolute;inset:0;width:100%;height:100%;z-index:0;transition:transform .7s var(--ease-out)}
.secart__num{position:absolute;top:10cqi;inset-inline-start:10cqi;font-size:7.5cqi;font-weight:600;color:var(--sand);font-variant-numeric:tabular-nums;direction:ltr}
.secart--binaa{background:var(--teal);color:var(--sand)}
.secart--binaa .secart__deco{color:var(--sand);opacity:.6}
.secart--siyasa{background:var(--sand);color:var(--teal)}
.secart--siyasa .secart__cut{inset:auto;top:13%;inset-inline-start:9%;width:78%;height:auto;color:var(--teal)}
.secart--wiki{background:var(--ink);color:#fff}
.secart--wiki .secart__sub{color:var(--sand)}
.secart--wiki .secart__deco{color:#fff;opacity:.3}
.secart--nas{background:var(--paper);color:var(--teal)}
.secart__crowd path{fill:rgba(12,77,90,.13)}
.secart__crowd .is-one{fill:var(--sand)}
.secart--news{background:#093C47;color:#fff}
.secart--news .secart__sub{color:var(--sand)}
.secart__quote{inset:auto;top:11%;inset-inline-end:11%;width:15%;height:auto;color:var(--sand)}
.secarts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.secarts>*{min-width:0}
@media (hover:hover){a.secart:hover{outline-color:var(--sand)}}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  a.secart{outline-offset:0}
  a.secart:hover{outline-offset:6px}
  a.secart:hover .secart__deco{transform:translateX(calc(4cqi * var(--dir)))}
  .secart--nas:hover .secart__crowd{transform:translateY(-3cqi)}
  .secart--news:hover .secart__quote{transform:translateY(-3cqi)}
}
@media (max-width:767px){
  .secarts{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--pad));padding:8px var(--pad);scrollbar-width:none}
  .secarts::-webkit-scrollbar{display:none}
  .secarts>*{flex:0 0 40%;scroll-snap-align:start}
}

/* 21. Section list (مواد القسم) ------------------------------------------------
   The client's format: square picture at the start, title, dek, then the
   writer with an avatar. Covers crop into the square; posters stay whole in
   it; text-only pieces get the quote mark. Two columns, then one. */
.alist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap);border-top:1px solid var(--ink)}
.aitem{display:grid;grid-template-columns:128px minmax(0,1fr);column-gap:22px;align-content:start;padding:22px 0;border-bottom:1px solid var(--hair)}
.aitem>*{min-width:0}
.aitem__thumb{grid-column:1;grid-row:1/span 4;display:block;aspect-ratio:1;overflow:hidden;background:var(--paper)}
.aitem__thumb img{width:100%;height:100%;object-fit:cover}
.aitem__thumb img.poster{aspect-ratio:auto;object-fit:contain}
.aitem__thumb--text{display:grid;place-items:center}
.aitem__kicker,.aitem__title,.aitem__dek,.aitem__by{grid-column:2}
.aitem__title{font-size:clamp(17px,1.45vw,19.5px);font-weight:700;line-height:1.5;margin-top:4px}
.aitem__dek{font-family:var(--body);font-size:15.5px;line-height:1.8;color:#3A3A40;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aitem__by{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin-top:12px;font-size:12px;color:var(--grey)}
.aitem__by b{font-weight:600;color:var(--teal)}
.aitem__by time{white-space:nowrap}
.avatar{flex:0 0 auto;width:26px;height:26px;display:inline-grid;place-items:center;background:var(--teal);color:#fff;font-size:12.5px;font-weight:700;line-height:1}
.alist-foot{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap;margin-top:32px}
@media (max-width:1023px){.alist{grid-template-columns:minmax(0,1fr)}}
@media (max-width:767px){
  .aitem{grid-template-columns:92px minmax(0,1fr);column-gap:14px;padding:18px 0}
  .aitem__title{font-size:16px}
  .aitem__dek{font-size:14.5px}
  .pager a:not([aria-current]):not(.pager__next),.pager .pager__gap{display:none}   /* previous, this page, next, and where you are */
}

/* 22. خبر وتعليق timeline ------------------------------------------------------
   Posts hang on a spine at the start edge, each with a sand wedge where it
   meets the line; the day label rides along under the sticky header. The
   headline opens the post in a popup (its single page, watad.js 18). */
.tl{position:relative;margin:0;padding:0;list-style:none}
.tl::before{content:"";position:absolute;top:0;bottom:0;inset-inline-start:16px;width:1px;background:var(--hair)}
.tl__day{position:sticky;top:calc(var(--stick-h) + 10px);z-index:2;padding:22px 0 8px}
.tl__day span{display:inline-block;background:var(--teal);color:#fff;font-size:12px;font-weight:600;line-height:1.5;padding:5px 12px}
.tl__item{position:relative;padding:20px 0 22px;padding-inline-start:52px;border-bottom:1px solid var(--hair)}
.tl__item::before{content:"";position:absolute;inset-inline-start:11px;top:30px;width:11px;height:14.5px;background:url(../img/brand/wedge-quote.svg) no-repeat center/contain}
.post__head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:12.5px;color:var(--grey)}
.post__avatar{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;background:var(--teal)}
.post__name{font-size:14px;font-weight:700;color:var(--ink)}
.post__place{font-weight:600;color:var(--teal)}
.post__head time{font-variant-numeric:tabular-nums}
.post__news{font-size:clamp(18px,1.7vw,22px);font-weight:700;line-height:1.55;margin-top:12px}
.post__news a:hover{color:var(--teal)}
.post__comment{max-width:680px;margin-top:14px;padding-top:10px;border-top:2px solid var(--sand)}
.post__label{display:block;margin-bottom:4px;font-size:11.5px;font-weight:600;color:var(--teal)}
.post__comment p{font-family:var(--body);font-size:17.5px;line-height:1.85;color:#3A3A40}
.post__acts{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:12px}
.post__btn{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0;background:none;border:0;font-size:12.5px;color:var(--mid)}
.post__btn svg{width:17px;height:17px}
.post__btn:hover,.post__btn.is-done{color:var(--teal)}
.tl-live{display:inline-flex;align-items:center;gap:7px;color:var(--teal);font-weight:600}
@media (max-width:767px){
  .tl::before{inset-inline-start:9px}
  .tl__item{padding-inline-start:32px}
  .tl__item::before{inset-inline-start:4px}
}

/* 23. Popups (dialog) -----------------------------------------------------------
   Native <dialog>: focus stays inside, Esc closes, focus goes back. A click
   on the veil closes too (watad.js 17). On phones it is a sheet from below. */
.modal{width:min(820px,100% - 2 * var(--pad));max-width:none;max-height:min(88vh,920px);margin:auto;padding:0;border:0;background:#fff;color:var(--ink);overflow:auto;overscroll-behavior:contain}
.modal::backdrop{background:rgba(12,77,90,.88)}
html:has(dialog[open]){overflow:hidden}
.modal__head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;background:#fff;border-bottom:1px solid var(--hair)}
.modal__head .icon-btn{color:var(--teal)}
.modal__head .icon-btn:hover{color:var(--ink)}
.modal__kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--teal)}
.modal__kicker .post__avatar{width:30px;height:30px}
.modal__nav{display:flex;gap:2px}
.modal__title{font-size:22px;font-weight:700}
.modal__title small{font-size:12px;font-weight:400;color:var(--grey);padding-inline-start:8px}
.modal__body{padding:28px 32px 34px}
.nm__meta{font-size:12.5px;color:var(--grey)}
.nm__meta b{font-weight:600;color:var(--teal)}
.nm__news{font-size:clamp(24px,2.6vw,34px);font-weight:700;line-height:1.45;margin-top:10px}
.nm__text p{font-family:var(--body);font-size:19px;line-height:1.9;margin-top:14px}
.nm__comment{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;margin-top:24px;padding-top:18px;border-top:2px solid var(--sand)}
.nm__comment p{font-family:var(--body);font-size:clamp(19px,1.9vw,23px);line-height:1.8}
.nm__acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;margin-top:26px;padding-top:14px;border-top:1px solid var(--hair)}
@media (max-width:767px){
  .modal{width:100%;max-height:92vh;margin-block-end:0}
  .modal__head{padding:8px var(--pad)}
  .modal__body{padding:22px var(--pad) 28px}
}
@media (prefers-reduced-motion:no-preference){
  .modal{opacity:0;transform:translateY(24px);transition:opacity .22s var(--ease-in),transform .22s var(--ease-in),overlay .22s allow-discrete,display .22s allow-discrete}
  .modal[open]{opacity:1;transform:none;transition:opacity .4s var(--ease-out),transform .55s var(--ease-out),overlay .4s allow-discrete,display .4s allow-discrete}
  @starting-style{.modal[open]{opacity:0;transform:translateY(24px)}}
  .modal::backdrop{opacity:0;transition:opacity .22s,overlay .22s allow-discrete,display .22s allow-discrete}
  .modal[open]::backdrop{opacity:1;transition:opacity .4s,overlay .4s allow-discrete,display .4s allow-discrete}
  @starting-style{.modal[open]::backdrop{opacity:0}}
  .nm.is-swap{animation:fade-in .35s var(--ease-out)}
}

/* 24. Writers (كتاب وتد) --------------------------------------------------------
   Each writer's photo, cut out from its background (transparent PNG), stands
   on a teal tile with the sand wedge behind; the placeholder silhouette holds
   the place until the real cut-outs arrive. Home shows six and a "click for
   more" tile that opens the full list; writers.html has everyone. */
.writer{display:block;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}
.writer__pic{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#0A4450 url(../img/brand/wedge-quote.svg) no-repeat 50% 130%/76% auto;border-bottom:2px solid var(--sand);transition:background-position .7s var(--ease-out)}
.writer__pic img{position:absolute;bottom:0;inset-inline-start:6%;width:88%;height:auto;transition:transform .6s var(--ease-out)}
.writer__name{display:block;margin-top:12px;font-size:16.5px;font-weight:700;line-height:1.4}
.writer__field{display:block;margin-top:3px;font-size:12px;font-weight:600;color:var(--teal)}
.writer__count{display:block;margin-top:3px;font-size:11px;color:var(--grey)}
.band .writer__name{color:#fff}
.band .writer__field{color:var(--sand)}
.band .writer__count{color:var(--on-dark-2)}
.writer--more .writer__pic{display:grid;place-content:center;justify-items:center;gap:6px;background:#093C47}
.writer__plus{font-size:40px;font-weight:700;line-height:1;color:var(--sand);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}
.writer__all{font-size:13px;font-weight:600;color:#fff}
.writer--card .writer__latest{display:block;margin-top:12px;padding-top:10px;border-top:1px solid var(--hair);font-size:14px;font-weight:600;line-height:1.55}
.writer--card .writer__latest .cap{display:block;font-weight:400}
.writers-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:20px;align-items:start}   /* a <button> tile would centre itself in a stretched cell */
.writers-list,.writers-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}
.writers-grid{gap:44px var(--gap)}
.writers-list .writer__name{font-size:15px}
@media (hover:hover){
  .writer:hover .writer__name{color:var(--teal)}
  .band .writer:hover .writer__name{color:var(--sand)}
  .writer--card:hover .writer__latest{color:var(--teal)}
  .writer--more:hover .writer__pic{background:var(--sand)}
  .writer--more:hover .writer__plus,.writer--more:hover .writer__all{color:var(--teal)}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .writer:hover .writer__pic img{transform:translateY(-6px)}
  .writer:hover .writer__pic{background-position:50% 112%}   /* the wedge rises behind the portrait */
}
@media (max-width:1199px){.writers-row{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:30px}}
@media (max-width:767px){.writers-row,.writers-list,.writers-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}}

/* 25. وتد على اكس ----------------------------------------------------------------
   The last six posts on X, set like the feed they come from. */
.xside{border-top:1px solid rgba(255,255,255,.5)}
.xside__head{display:flex;align-items:center;gap:12px;padding:14px 0 12px}
.xside__logo{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;background:#fff;color:var(--teal)}
.xside__logo svg{width:16px;height:16px}
.xside__who b{display:block;font-size:14px;color:#fff}
.xside__who span{display:block;font-size:11px;color:var(--on-dark-2)}
.xside__follow{margin-inline-start:auto;padding:6px 16px;background:#fff;color:var(--teal);font-size:12.5px;font-weight:600;transition:background-color .2s}
.xside__follow:hover{background:var(--sand)}
.xpost{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:10px;padding:12px 0;border-top:1px solid rgba(255,255,255,.16)}
.xpost__avatar{grid-row:1/span 2;width:28px;height:28px;display:grid;place-items:center;background:rgba(255,255,255,.08)}
.xpost__text{font-size:13.5px;line-height:1.6;color:var(--on-dark);transition:color .2s}
.xpost__meta{display:flex;gap:6px;margin-top:4px;font-size:11px;color:var(--on-dark-2)}
.xpost:hover .xpost__text{color:#fff}

/* 26. Archive by date (التصفح بالتاريخ) -------------------------------------------
   Year tabs over a month grid: Levantine names with the international ones,
   the count, and a bar for the month's weight in its year. The chosen month
   is underlined in sand (watad.js 20 reads ?y=&m=). */
.arcal__top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 28px;flex-wrap:wrap;border-bottom:1px solid var(--hair)}
.arcal__years{flex:1 1 auto;min-width:0;border-bottom:0}
.arcal__jump{display:flex;align-items:center;gap:8px;padding-bottom:10px}
.arcal__jump select{max-width:100%;padding:8px 10px;border:1px solid var(--hair);background:#fff;color:var(--ink);font-family:var(--disp);font-size:13px}
.arcal__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:20px;margin-top:6px}
.arcal__grid[hidden],.arcal__result[hidden],.arcal__empty[hidden]{display:none}   /* author display rules beat the hidden attribute */
.tab small,.chip small{unicode-bidi:isolate}   /* "2026" + "96" would otherwise read as one number, 202696 */
.arcal__m{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:8px;padding:14px 0 12px;border-bottom:1px solid var(--hair)}
.arcal__name{font-size:15px;font-weight:600;line-height:1.4}
.arcal__alt{grid-column:1;font-size:11px;color:var(--grey)}
.arcal__n{grid-column:2;grid-row:1/span 2;font-size:26px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.arcal__bar{position:relative;grid-column:1/-1;display:block;height:4px;margin-top:10px;background:var(--paper)}
.arcal__bar::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--sand)}
a.arcal__m:hover .arcal__name,a.arcal__m:hover .arcal__n{color:var(--teal)}
a.arcal__m:hover .arcal__bar::after{background:var(--teal)}
.arcal__m.is-empty{color:#B9BCBC}
.arcal__m.is-empty .arcal__alt{color:#C9CCCC}
.arcal__m[aria-current="true"]{padding-bottom:11px;border-bottom:2px solid var(--sand)}
.arcal__m[aria-current="true"] .arcal__name,.arcal__m[aria-current="true"] .arcal__n{color:var(--teal)}
.arcal__m[aria-current="true"] .arcal__bar::after{background:var(--teal)}
.arcal__filters{margin-top:18px}
.arcal__result{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin-top:26px;padding-top:14px;border-top:2px solid var(--ink)}
.arcal__result b{font-size:26px;font-weight:700}
.arcal__result span{font-size:13px;color:var(--mid)}
.arcal__empty{margin-top:14px;padding:16px 20px;background:var(--paper);font-size:14px;line-height:1.8;color:var(--mid)}
.month.is-picked .rail-label b{color:var(--teal)!important}
.arcal__note{margin-top:14px;padding:12px 16px;background:var(--paper);font-size:13px;line-height:1.7;color:var(--mid)}   /* section / type filter in force (watad.js 22) */
.arcal__note b{font-weight:600;color:var(--teal)}
.arcal__note button{padding:0 0 2px;border:0;border-bottom:1px solid currentColor;background:none;font:inherit;color:var(--teal);cursor:pointer}
.month__none{padding:14px 0;border-top:1px solid var(--hair);font-size:13px;color:var(--grey)}
@media (max-width:1023px){.arcal__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:767px){
  .arcal__grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px}
  .arcal__name{font-size:13px}
  .arcal__n{font-size:20px}
  .arcal__jump{width:100%}
  .arcal__jump select{flex:1;min-width:0}
}
@media (prefers-reduced-motion:no-preference){
  .arcal__grid:not([hidden]) .arcal__bar::after{transform-origin:var(--start) center;animation:bar-grow .9s var(--ease-out) backwards;animation-delay:calc(var(--i) * 40ms + 150ms)}
}

/* 27. ثورة ويكي register (home) -----------------------------------------------
   The index works: the years filter it, the search box searches every year,
   and the entry under the pointer (or keyboard focus) is shown at the side,
   as its poster or, when it has none, as its index card (watad.js 21). Each
   row is one link. Without JS it shows the latest year, and the years are
   links into the archive. */
.wk{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--gap);align-items:start}
.wk>*{min-width:0}
.wk-preview{position:sticky;top:calc(var(--stick-h) + 24px)}
.wk-preview__frame{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;background:var(--teal)}
.wk-preview__frame .poster{width:100%;height:100%}
.wk-preview__meta{margin-top:12px}
.wk-preview__title{display:block;margin-top:6px;font-size:17px;font-weight:700;line-height:1.5}
.wk-preview__by{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--hair);font-size:12px;color:var(--grey)}
.wk-card{position:absolute;inset:0;display:flex;flex-direction:column;padding:22px 20px;background:var(--teal);color:#fff}
.wk-card__label{font-size:11.5px;font-weight:600;color:var(--on-dark-2)}
.wk-card__n{margin-top:10px;font-size:64px;font-weight:700;line-height:1;color:var(--sand);font-variant-numeric:tabular-nums}
.wk-card__type{margin-top:auto;font-size:12.5px;font-weight:600;color:var(--sand)}
.wk-card__title{margin-top:8px;font-size:22px;font-weight:700;line-height:1.45}
.wk-card__by{margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.22);font-size:12px;color:var(--on-dark-2)}
.wk-card__mark{position:absolute;top:22px;inset-inline-end:20px;width:24px;height:auto}
.wk-card__mark path{fill:var(--sand)}
.wk-head{display:flex;justify-content:space-between;align-items:center;gap:14px 28px;flex-wrap:wrap}
.wk-years{gap:18px}
.wk-search{display:flex;align-items:center;gap:8px;flex:0 1 300px;min-width:220px;height:42px;padding-inline:12px;border:1px solid var(--hair);background:#fff;transition:border-color .2s}
.wk-search:focus-within{border-color:var(--teal);outline:2px solid var(--sand);outline-offset:2px}
.wk-search svg{flex:0 0 auto;width:16px;height:16px;color:var(--grey)}
.wk-search input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:none;font-family:var(--disp);font-size:14px;color:var(--ink)}
.wk-search input::placeholder{color:var(--grey)}
.wk-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--mid);cursor:pointer;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/contain no-repeat}
.wk-preview{transition:opacity .3s}
.wk-preview.is-empty{opacity:.3}
.wk-count{margin:18px 0 8px;font-size:12.5px;color:var(--mid)}
.wk-count b{font-weight:600;color:var(--ink)}
.wk-count a{margin-inline-start:4px;font-weight:600;color:var(--teal)}
.wk-count a:hover{color:var(--ink)}
.wk-table{width:100%;border-collapse:collapse;font-size:13px}
.wk-table th{padding:0 0 8px;border-bottom:1px solid var(--ink);font-size:11px;font-weight:600;color:var(--grey);text-align:start}
.wk-table th:first-child{padding-inline-start:12px}
.wk-table tr{position:relative}   /* each row is one link: the title's ::after covers the row */
.wk-table td{padding:12px 0;border-bottom:1px solid var(--hair);vertical-align:baseline;transition:background-color .2s}
.wk-table td.wk-n{position:relative;width:56px;padding-inline-start:12px;font-weight:600;color:var(--sand);font-variant-numeric:tabular-nums}
.wk-n::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:2px;background:var(--sand);transform:scaleY(0);transition:transform .35s var(--ease-out)}
.wk-type{width:100px;font-weight:600;color:var(--teal)}
.wk-title a{font-size:15px;font-weight:600;line-height:1.5}
.wk-title a::after{content:"";position:absolute;inset:0}
.wk-title a:focus-visible{outline:0}
.wk-author{width:160px;color:var(--mid)}
.wk-year{width:52px;color:var(--grey);font-variant-numeric:tabular-nums}
.wk-go{width:30px}
.wk-go::before{content:"";display:block;width:16px;height:16px;margin-inline-start:auto;background:var(--teal);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;opacity:0;transform:scaleX(calc(-1 * var(--dir)));transition:opacity .2s}
.wk-table tbody tr:is(:hover,:focus-within,.is-previewed) td{background:var(--paper)}
.wk-table tbody tr:is(:hover,:focus-within) :is(.wk-title a,.wk-n),.wk-table tbody tr.is-previewed .wk-n{color:var(--teal)}
.wk-table tbody tr:is(:hover,:focus-within,.is-previewed) .wk-go::before{opacity:1}
.wk-table tbody tr.is-previewed .wk-n::before{transform:none}
.wk-table tbody tr:has(a:focus-visible){outline:2px solid var(--sand);outline-offset:-2px}
.wk-empty{padding:26px 0;border-top:1px solid var(--hair);font-size:15px;color:var(--mid)}
.wk-empty button{margin-inline-start:6px;padding:0 0 3px;border:0;border-bottom:2px solid var(--sand);background:none;font:inherit;font-size:14px;font-weight:600;color:var(--teal)}
.wk-foot{display:flex;justify-content:space-between;align-items:baseline;gap:12px 24px;flex-wrap:wrap;margin-top:18px}
@media (max-width:1023px){
  .wk{grid-template-columns:200px minmax(0,1fr)}
  .wk-author,.wk-table th:nth-child(4){display:none}
}
@media (max-width:767px){
  .wk{grid-template-columns:minmax(0,1fr);gap:22px}
  .wk-preview{position:static;display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center}
  .wk-preview__meta{margin-top:0}
  .wk-card{justify-content:center;padding:10px}
  .wk-card>:not(.wk-card__n){display:none}
  .wk-card__n{margin:0;font-size:30px;text-align:center}
  .wk-head{flex-direction:column;flex-wrap:nowrap;align-items:stretch}   /* a wrapping column sizes its line to the widest item */
  .wk-years{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1 * var(--pad));padding:0 var(--pad) 4px;scrollbar-width:none}
  .wk-years::-webkit-scrollbar{display:none}
  .wk-search{flex:1 1 auto;min-width:0}
  .wk-year,.wk-go,.wk-table th:nth-child(n+5){display:none}
  .wk-type{width:76px}
  .wk-table td.wk-n{width:44px}
}
@media (prefers-reduced-motion:no-preference){
  .wk-preview.is-swap .wk-preview__frame>*{animation:wk-in .5s var(--ease-out) both}
  .wk-preview.is-swap .wk-preview__meta{animation:fade-in .4s var(--ease-out) both}
}
@keyframes wk-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}   /* the board is lowered into its frame */

/* 28. Home closing: عن وتد + السجل ---------------------------------------------
   A statement, the meaning of the name, and three ways in; then the archive
   on paper: every year with its weight (the bars grow in view, watad.js 12),
   a month jump that reads as one control, and the numbered pages. */
.wd-about{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gap) calc(var(--gap) * 1.5);align-items:start}
.wd-about>*{min-width:0}
.wd-about__lead{max-width:17em;font-size:clamp(26px,2.9vw,40px);font-weight:700;line-height:1.45;text-wrap:balance}
.wd-about__def{display:flex;gap:16px;align-items:flex-start;max-width:32em;margin-top:26px;padding-top:20px;border-top:1px solid var(--hair);font-family:var(--body);font-size:clamp(17px,1.5vw,19px);line-height:1.85;color:#3A3A40}
.wd-about__def svg{flex:0 0 auto;margin-top:8px}
.wd-about__def b{font-family:var(--disp);font-weight:700;color:var(--teal)}
.wd-about__main .link-accent{margin-top:24px}
.wd-about__pillars{margin:0;padding:0;list-style:none;border-top:2px solid var(--ink)}
.wd-about__pillars a{display:grid;grid-template-columns:minmax(0,1fr) 22px;column-gap:18px;align-items:center;padding:20px 0 18px;border-bottom:1px solid var(--hair)}
.wd-about__pillars b{font-size:19px;font-weight:700;line-height:1.4;transition:color .2s}
.wd-about__pillars span{grid-column:1;margin-top:5px;font-family:var(--body);font-size:16px;line-height:1.8;color:#3A3A40}
.go{grid-column:2;grid-row:1/span 2;display:block;width:20px;height:20px;background:var(--sand);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transform:scaleX(calc(-1 * var(--dir)));transition:background-color .2s,translate .45s var(--ease-out)}
.wd-about__pillars a:hover b{color:var(--teal)}
.wd-about__pillars a:hover .go{background:var(--teal)}
.wd-rec{position:relative;z-index:1;background:var(--paper)}
.wd-rec__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px 48px;align-items:end;padding-bottom:28px;border-bottom:2px solid var(--ink)}
.wd-rec__title{max-width:16em;font-size:clamp(22px,2.3vw,32px);font-weight:700;line-height:1.5;text-wrap:balance}
.wd-jump{display:grid;gap:8px}
.wd-jump__label{font-size:12px;font-weight:600;color:var(--teal)}
.wd-jump__ctl{display:flex;height:48px;border:1px solid var(--ink);background:#fff}
.wd-jump__ctl:focus-within{outline:2px solid var(--sand);outline-offset:2px}
.wd-jump__ctl select{min-width:0;height:100%;padding:0 14px;border:0;border-inline-end:1px solid var(--hair);background:#fff;font-family:var(--disp);font-size:14px;color:var(--ink);cursor:pointer}
.wd-jump__ctl select:focus-visible{outline:0;background:var(--paper)}
.wd-jump__ctl .btn{height:100%;padding:0 26px;border:0}
.wd-jump__ctl .btn:focus-visible{outline:0;background:#093C47}
.wd-years{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:18px;margin:0;padding:0;list-style:none}
.wd-years>*{min-width:0}
.wd-years a{display:block;padding:22px 0 18px;border-bottom:1px solid #D8DBDB}
.wd-years b{display:block;font-size:26px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;transition:color .2s}
.wd-years span{display:block;margin-top:8px;font-size:12px;color:var(--mid)}
.wd-years i{position:relative;display:block;height:3px;margin-top:14px;background:#E0E3E3}
.wd-years i::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--sand);transform-origin:var(--start) center;transition:background-color .2s}
.wd-years a:hover b{color:var(--teal)}
.wd-years a:hover i::after{background:var(--teal)}
.wd-rec__foot{display:flex;justify-content:space-between;align-items:center;gap:16px 28px;flex-wrap:wrap;margin-top:30px}
.wd-rec__foot .meta b{font-weight:600}
@media (max-width:1023px){
  .wd-about,.wd-rec__head{grid-template-columns:minmax(0,1fr)}
  .wd-years{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:4px}
}
@media (max-width:767px){
  .wd-jump__ctl select{flex:1 1 0;padding:0 10px;font-size:13px}
  .wd-jump__ctl .btn{padding:0 18px}
  .wd-years{column-gap:14px}
  .wd-years b{font-size:20px}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .wd-about__pillars a:hover .go{translate:calc(6px * var(--dir)) 0}
}
@media (prefers-reduced-motion:no-preference){
  [data-grow].is-waiting:not(.is-in) i::after{transform:scaleX(0)}   /* .is-waiting stays on; the bars must not fall back to 0 after growing */
  [data-grow].is-in i::after{animation:bar-grow 1s var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 60ms + 100ms)}
}

/* 29. Footer (colophon) -----------------------------------------------------------
   Aligned to the rail. The axis runs on into the footer and ends on the base
   row's ground line, where the sand quote-wedge is planted (it drops in when
   it scrolls into view, watad.js 12). */
.site-footer{position:relative;z-index:1;background:var(--teal);color:var(--on-dark)}
.site-footer__part{position:relative}
.site-footer .axis{background:var(--axis-dark)}
.site-footer__main{padding:60px 0 52px}
.site-footer__logo{display:block;line-height:0}
.site-footer__logo svg{width:100%;max-width:158.6px;height:auto}
.site-footer__tag{margin-top:16px;font-family:var(--body);font-size:18px;line-height:1.6;color:#CFD9DA}
.site-footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px var(--gap)}
.site-footer__cols>*{min-width:0}
.site-footer__col h2{margin-bottom:8px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.22);font-size:12.5px;font-weight:600;line-height:1.5;color:var(--sand)}
.site-footer__col ul{margin:0;padding:0;list-style:none}
.site-footer__col li a{display:inline-block;padding:6px 0;font-size:14.5px;color:var(--on-dark)}
.site-footer__col li a:hover{color:#fff}
.site-footer__follow .social{margin-top:14px}
.site-footer__follow p{margin-top:14px;font-size:12.5px;line-height:1.7;color:var(--on-dark-2)}
.social--dark a{border-color:rgba(255,255,255,.3);color:#fff}
.social--dark a:hover{background:var(--sand);border-color:var(--sand);color:var(--teal)}
.site-footer__base{border-top:1px solid rgba(255,255,255,.2)}
.site-footer__end{top:-12px}   /* straddles the ground line */
.site-footer__legal{display:flex;justify-content:space-between;align-items:center;gap:10px 24px;flex-wrap:wrap;padding:20px 0 24px;font-size:12px;color:var(--on-dark-2)}
.site-footer__up{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:12.5px;font-weight:600;color:#fff}
.site-footer__up svg{width:16px;height:16px;transition:translate .35s var(--ease-out)}
.site-footer__up:hover{color:var(--sand)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.site-footer__up:hover svg{translate:0 -3px}}
@media (max-width:1023px){
  .site-footer__main{padding:44px 0 36px;row-gap:28px}
  .site-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer__base{row-gap:0}
}
@media (max-width:767px){.site-footer__follow{grid-column:1/-1}}

/* 30. Home خبر وتعليق band -------------------------------------------------------
   The news in a line with the editor's comment under it, now with pictures:
   a lead with its cover, then pictured rows (covers crop into the square,
   posters stay whole in it). Each item opens its post in the timeline popup.
   The X panel keeps pace beside it (sticky). */
.home-news__col{min-width:0}
.nlist{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.5)}
.nitem .story{display:grid;grid-template-columns:104px minmax(0,1fr);column-gap:20px;align-items:start;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.nitem__img{display:block;aspect-ratio:1;overflow:hidden;background:#0A4450}
.nitem__img img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.nitem__img img.poster{object-fit:contain;background:none}   /* the frame colour shows beside a whole poster, not the paper tone */
.nitem__text{min-width:0}
.nitem__where{font-size:12px;font-weight:600;line-height:1.5;color:var(--sand)}
.nitem__where time{margin-inline-start:8px;font-weight:400;color:var(--on-dark-2)}
.nitem__news{margin-top:6px;font-size:17px;font-weight:600;line-height:1.55;color:#fff}
.nitem__comment{margin-top:6px;font-family:var(--body);font-size:15.5px;line-height:1.75;color:#CFD9DA;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nitem--lead .story{grid-template-columns:minmax(0,11fr) minmax(0,10fr);column-gap:28px;align-items:center;padding:22px 0 24px}
.nitem--lead .nitem__img{aspect-ratio:16/9}
.nitem--lead .nitem__news{font-size:clamp(20px,1.9vw,25px);font-weight:700;line-height:1.45}
.nitem--lead .nitem__comment{font-size:16.5px;-webkit-line-clamp:3}
.home-news__more{margin-top:22px}
.home-news__side{display:grid;gap:36px;align-content:start;min-width:0}
.mread{border-top:1px solid rgba(255,255,255,.5)}
.mread__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0 10px;font-size:14px;font-weight:700;line-height:1.5;color:#fff}
.mread__head small{font-size:11px;font-weight:400;color:var(--on-dark-2)}
.mread__list{margin:0;padding:0;list-style:none}
.mread__list a{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:12px;padding:12px 0;border-top:1px solid rgba(255,255,255,.16)}
.mread__n{grid-row:1/span 2;font-size:26px;font-weight:700;line-height:1;color:var(--sand);font-variant-numeric:tabular-nums}   /* the rank is the information here */
.mread__t{font-size:14px;font-weight:600;line-height:1.55;color:var(--on-dark);transition:color .2s}
.mread__k{grid-column:2;margin-top:4px;font-size:11px;color:var(--on-dark-2)}
.mread__list a:hover .mread__t{color:#fff}
@media (max-width:1023px){.home-news__side{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}}
@media (max-width:767px){.home-news__side{grid-template-columns:minmax(0,1fr)}}
@media (max-width:767px){
  .nitem .story{grid-template-columns:80px minmax(0,1fr);column-gap:14px;padding:16px 0}
  .nitem__news{font-size:15.5px}
  .nitem__comment{font-size:14.5px}
  .nitem--lead .story{grid-template-columns:minmax(0,1fr);row-gap:14px}
  .nitem--lead .nitem__news{font-size:20px}
}

/* 31. Article: the reading experience ------------------------------------------------
   Arrival: the title words settle one after another, the epigraph's wedge is
   driven in, and the lead picture is lowered into its frame. Reading: the
   page axis fills with sand down to where the reader is; each chapter rule
   draws from the start edge as its wedge is planted; the thesis and the
   closing line ink word by word with the scroll; the figures tally and the
   data bars grow. Tools: citations preview their source, a selected
   passage can be quoted or shared, and the contents show the time left.
   With reduced motion the tools stay and nothing moves on its own. */
.tw{display:inline-block}
.axis-fill{position:absolute;top:0;bottom:0;inset-inline-start:calc(var(--axis-x) - .5px);width:2px;background:var(--sand);transform:scaleY(0);transform-origin:top;pointer-events:none}
.axis-fill.is-timeline{animation:axis-fill linear both;animation-timeline:scroll(root block)}   /* --from / --to set by watad.js 23 */
@keyframes axis-fill{from{transform:scaleY(var(--from,0))}to{transform:scaleY(var(--to,1))}}

.chapter{border-top:0}
.chapter::before{content:"";position:absolute;top:0;inset-inline:0;height:1px;background:var(--ink);transform-origin:var(--start) center}

.databand b[data-count],.hex[data-count]{font-variant-numeric:tabular-nums}
.databand__bar{position:relative;display:block;height:3px;margin-top:16px;background:rgba(255,255,255,.14)}
.databand__bar::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--on-dark-2);transform-origin:var(--start) center}
.databand__bar--now::after{background:var(--sand)}
.databand__grid>div:nth-child(2) .databand__bar{--i:2}
.databand__grid>div:nth-child(3) .databand__bar{--i:4}

.cite{margin-inline-start:3px;font-size:.6em;line-height:0;vertical-align:super}
.cite a{display:inline-block;min-width:1.7em;padding:0 .35em;border:1px solid var(--hair);font-family:var(--disp);font-weight:700;line-height:1.55;text-align:center;color:var(--teal);transition:background-color .2s,border-color .2s,color .2s}
.cite a:hover,.cite a:focus-visible,.cite a.is-open{background:var(--teal);border-color:var(--teal);color:#fff}
.cite-pop{position:fixed;z-index:40;width:min(330px,calc(100vw - 32px));padding:14px 16px 15px;background:var(--teal);color:#fff;font-size:13px;line-height:1.75;pointer-events:none}
.cite-pop b{display:block;margin-bottom:4px;font-size:11.5px;color:var(--sand)}
.cite-pop[hidden]{display:none}
.sources li{scroll-margin-top:calc(var(--stick-h) + 90px);transition:background-color .6s}
.sources li:target{animation:src-flash 2.6s var(--ease-out)}
@keyframes src-flash{from,30%{background:rgba(185,167,121,.32)}}

.quote-bar{position:fixed;z-index:41;display:flex;background:var(--teal);transform:translate(-50%,calc(-100% - 12px))}
.quote-bar[hidden]{display:none}
.quote-bar::after{content:"";position:absolute;top:100%;left:50%;width:10px;height:10px;background:var(--teal);transform:translate(-50%,-50%) rotate(45deg)}
.quote-bar button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:0;background:none;font-family:var(--disp);font-size:13px;font-weight:600;color:#fff;cursor:pointer}
.quote-bar button+button{border-inline-start:1px solid rgba(255,255,255,.2)}
.quote-bar button:hover{background:#093C47}
.quote-bar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}

.art-share{margin-top:20px;padding-top:12px;border-top:1px solid var(--hair)}
.art-share__label{display:block;font-size:11.5px;font-weight:600;color:var(--grey)}
.art-share__row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.art-share__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--hair);background:#fff;color:var(--teal);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.art-share__btn:hover{border-color:var(--teal);background:var(--teal);color:#fff}
.art-share__btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square}
.art-share__done{position:absolute;top:calc(100% + 6px);inset-inline-start:0;padding:3px 8px;background:var(--ink);color:#fff;font-size:11px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.art-share__copy.is-done .art-share__done{opacity:1}
.art-share__copy.is-done{border-color:var(--teal);background:var(--teal);color:#fff}
.toc__left{margin-top:12px;font-size:11.5px;font-weight:600;color:var(--teal)}
.toc__left:empty{display:none}
@media (max-width:1023px){
  .toc__left{display:none}
  .art-share{display:flex;align-items:center;gap:14px;margin-top:14px;padding-top:10px}
  .art-share__row{margin-top:0}
}

@media (prefers-reduced-motion:no-preference){
  .tw{animation:word-in .8s var(--ease-out) backwards;animation-delay:calc(var(--i) * 55ms + 120ms)}
  .art-head .epigraph>svg{animation-delay:1s}
  .art-hero__img{animation:hero-in 1.3s .45s var(--ease-out) backwards}
  .art-hero figcaption{animation:fade-in .8s 1.2s var(--ease-out) backwards}
  .chapter.is-waiting:not(.is-in)::before{transform:scaleX(0)}
  .chapter.is-in::before{animation:rule-draw 1s var(--ease-out) backwards}
  .cite-pop:not([hidden]),.quote-bar:not([hidden]){animation:pop-in .2s var(--ease-out)}
  @supports (animation-timeline:view()){
    [data-ink].is-inked{view-timeline:--ink block}
    [data-ink].is-inked .iw{animation:ink-w linear both;animation-timeline:--ink;animation-range:cover calc(16% + var(--i) / var(--n) * 34%) cover calc(23% + var(--i) / var(--n) * 34%)}
  }
  [data-ink].is-inked-io .iw{color:var(--ink-from,#C9CCCC);transition:color .5s var(--ease-out);transition-delay:calc(var(--i) * 45ms)}
  [data-ink].is-inked-io.is-in .iw{color:inherit}
}
@keyframes word-in{from{opacity:0;transform:translateY(.4em);filter:blur(6px)}}
@keyframes hero-in{from{clip-path:inset(2.83% 2.83% 100% 2.83%);transform:scale(1.06)}to{clip-path:inset(0);transform:none}}   /* the side insets cancel the scale, so it never grows past its frame */
@keyframes rule-draw{from{transform:scaleX(0)}}
@keyframes ink-w{from{color:var(--ink-from,#C9CCCC)}}
.band [data-ink]{--ink-from:rgba(255,255,255,.3)}
@keyframes pop-in{from{opacity:0;translate:0 6px}}

/* 32. Author page ----------------------------------------------------------------------
   Arrival: the portrait stands on its teal tile as the sand wedge rises
   behind it, and the name settles word by word. The writing profile counts
   up, splits the work between the sections and shows the last twelve months
   month by month (hover a month for its count). The works list filters,
   sorts and pages in place (watad.js 30), and the sand line slides to the
   chosen section. */
.au-portrait{position:relative;aspect-ratio:4/5;overflow:hidden;background:#0A4450 url(../img/brand/wedge-quote.svg) no-repeat 50% 118%/78% auto;border-bottom:2px solid var(--sand)}
.au-portrait img{position:absolute;bottom:0;inset-inline-start:6%;width:88%;height:auto}
.follow{gap:10px}
.follow__mark{display:none;line-height:0}
.follow[aria-pressed="true"] .follow__mark{display:inline-block}
.follow[aria-pressed="true"] .follow__mark path{fill:var(--sand)}

.au-stats .stat b{font-variant-numeric:tabular-nums}
.stat b span{display:inline;margin:0;font-size:inherit;color:inherit}   /* ".stat span" is the caption; a counter inside the figure keeps the figure's size */
.mix{display:flex;gap:3px;height:8px;margin-top:14px}
.mix>i{display:block;width:var(--w);height:100%;background:var(--teal);transform-origin:var(--start) center}
.mix>i+i{background:var(--sand)}
.au-mix span em{font-style:normal;white-space:nowrap}
.au-mix span em::before{content:"";display:inline-block;width:8px;height:8px;margin-inline-end:5px;background:var(--teal)}
.au-mix span .mix__b::before{background:var(--sand)}
.rhythm{display:flex;align-items:flex-end;gap:4px;height:40px;margin:14px 0 0;padding:0;list-style:none}
.rhythm li{position:relative;display:flex;flex:1;align-items:flex-end;height:100%}
.rhythm i{display:block;width:100%;height:max(var(--h),2px);background:var(--sand);transform-origin:bottom;transition:background-color .2s}
.rhythm li:last-child i{background:var(--teal)}   /* this month */
.rhythm li::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);inset-inline-start:50%;translate:calc(50% * -1 * var(--dir)) 0;padding:4px 8px;background:var(--ink);color:#fff;font-size:11px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.rhythm li:hover::after{opacity:1}
.rhythm li:hover i{background:var(--teal)}

.works-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 24px;flex-wrap:wrap;border-bottom:1px solid var(--hair)}
.works-tabs{position:relative;border-bottom:0}
.tabs__ink{position:absolute;bottom:0;left:0;width:1px;height:2px;background:var(--sand);transform:translateX(var(--x,0)) scaleX(var(--wn,0));transform-origin:0 0;pointer-events:none}   /* one pixel scaled to the tab's width: it slides and stretches on the compositor */
.tabs.has-ink{position:relative}   /* any tab row with the sliding line (watad.js tabInk): archive years, category types, author works */
.has-ink .tab.is-active{border-bottom-color:transparent}
.has-ink .tab.is-active::after{display:none}
.works-sort{padding-bottom:12px}
.works{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.work{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr) 80px 24px;column-gap:24px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--hair)}
.work__date{display:block;font-size:12px;line-height:1.5;color:var(--grey)}
.work__date b{display:block;margin-bottom:4px;font-size:28px;font-weight:700;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;transition:color .2s}
.work__title{margin-top:4px;font-size:18px;font-weight:700;line-height:1.5}
.work__dek{margin-top:4px;font-family:var(--body);font-size:15.5px;line-height:1.75;color:#3A3A40}
.work__time{font-size:12px;color:var(--grey);text-align:end;white-space:nowrap}
.work__go{align-self:center;width:18px;height:18px;background:var(--teal);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;opacity:0;transform:scaleX(calc(-1 * var(--dir)));transition:opacity .2s}
.work:hover .work__date b,.work:has(.stretched:focus-visible) .work__date b{color:var(--teal)}
.work:hover .work__go,.work:has(.stretched:focus-visible) .work__go{opacity:1}
.au-peers{margin-top:0}
@media (max-width:767px){
  .work{grid-template-columns:62px minmax(0,1fr);column-gap:14px;padding:16px 0}
  .work__date b{font-size:22px}
  .work__time{grid-column:2;text-align:start;margin-top:6px}
  .work__go{display:none}
  .work__title{font-size:16px}
  .works-bar{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
  .works-tabs{overflow-x:auto}
}
@media (prefers-reduced-motion:no-preference){
  .au-portrait{animation:wedge-rise 1.1s .15s var(--ease-out) backwards}
  .au-portrait img{animation:figure-rise .9s .4s var(--ease-out) backwards}
  .tabs__ink{transition:transform .45s var(--ease-out)}
  .follow[aria-pressed="true"] .follow__mark svg{animation:wedge-in .6s backwards}
  .au-stats.is-waiting:not(.is-in) .mix>i{transform:scaleX(0)}
  .au-stats.is-waiting:not(.is-in) .rhythm i{transform:scaleY(0)}
  .au-stats:not(.is-waiting) .mix>i,.au-stats.is-in .mix>i{animation:bar-grow 1s .5s var(--ease-out) backwards}
  .au-stats:not(.is-waiting) .mix>i+i,.au-stats.is-in .mix>i+i{animation-delay:.65s}
  .au-stats:not(.is-waiting) .rhythm i,.au-stats.is-in .rhythm i{animation:grow-y .7s var(--ease-out) backwards;animation-delay:calc(var(--i) * 45ms + .55s)}
}
@keyframes wedge-rise{from{background-position:50% 175%}}
@keyframes figure-rise{from{opacity:0;transform:translateY(10%)}}
@keyframes grow-y{from{transform:scaleY(0)}}

/* 33. Lists arrive (watad.js 31) --------------------------------------------------------
   Rows and cards below the fold rise into place as the reader reaches them,
   a beat apart when several come in together. */
@media (prefers-reduced-motion:no-preference){
  [data-arrive]>.is-waiting:not(.is-in){opacity:0}
  [data-arrive]>.is-waiting.is-in{animation:rise .8s var(--ease-out) backwards;animation-delay:calc(var(--k,0) * 80ms)}
}
@media print{[data-arrive]>*{opacity:1!important;animation:none!important}}

/* 34. Category page -----------------------------------------------------------------------
   Arrival: the section's title tile is raised into place, its lettering
   settles and the sharp angle cuts in, the rule under the head is drawn
   and the editors' pick is uncovered. The type tabs filter the list in
   place under one sliding sand line (watad.js 30). A piece without a picture
   shows its writer on the teal tile, the Watad mark for the editorial board,
   or its section's artwork. */
.cat-head .body{position:relative;border-bottom:0;padding-bottom:2px}
.cat-head .body::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--ink);transform-origin:var(--start) center}
.cat-head__info .meta [data-count]{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.aitem__thumb{outline:1px solid transparent;outline-offset:0;transition:outline-color .3s,outline-offset .5s var(--ease-out)}
.aitem__thumb--writer{position:relative;background:#0A4450 url(../img/brand/wedge-quote.svg) no-repeat 50% 135%/84% auto}
.aitem__thumb--writer img{position:absolute;bottom:0;inset-inline-start:10%;width:80%;height:auto;object-fit:contain}
.aitem__thumb--board{display:grid;place-items:center;background:var(--teal)}
.aitem__thumb--board svg{width:46%;height:auto}
.aitem__thumb .secart{width:100%}
@media (hover:hover){
  .aitem:hover .aitem__thumb:not(:has(.cover)){outline-color:var(--sand)}
}
.aitem:has(.stretched:focus-visible) .aitem__thumb:not(:has(.cover)){outline-color:var(--sand)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .aitem:hover .aitem__thumb:not(:has(.cover)){outline-offset:5px}
  .aitem__thumb--writer img{transition:transform .7s var(--ease-out)}
  .aitem:hover .aitem__thumb--writer img{transform:translateY(-5%)}
  .aitem__thumb--board path[fill="#B9A779"]{transition:transform .6s var(--ease-out)}
  .aitem:hover .aitem__thumb--board path[fill="#B9A779"]{transform:translateX(calc(3px * var(--dir)))}
}
@media (prefers-reduced-motion:no-preference){
  .cat-head__art .secart{animation:tile-up 1s .1s var(--ease-out) backwards}
  .cat-head__art .secart__word,.cat-head__art .secart__sub{animation:rise .9s .5s var(--ease-out) backwards}
  .cat-head__art .secart__deco,.cat-head__art .secart__num{animation:fade-in .8s .75s var(--ease-out) backwards}
  .cat-head__art .secart__cut{animation:mark-cut .9s .75s backwards}
  .cat-head .body::after{animation:rule-draw 1.2s .25s var(--ease-out) backwards}
  .cat-head__desc .tw{animation-delay:calc(var(--i) * 55ms + .4s)}
  .cat-head .tab{animation:fade-in .6s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 45ms + .7s)}
  .cat-hero__img{animation:hero-in 1.3s .5s var(--ease-out) backwards}
}
@keyframes tile-up{from{clip-path:inset(100% 0 0 0)}}

/* 35. Archive page -------------------------------------------------------------------------
   The title settles and its rule is drawn from the start edge. The years
   sit under one sliding sand line and their months step in (watad.js 20).
   The years band is a chart of the whole archive: each bar is a year, and it
   opens that year in the calendar above. */
.ar-title{position:relative;border-bottom:0}
.ar-title::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--ink);transform-origin:var(--start) center}
.arcal{scroll-margin-top:calc(var(--stick-h) + 24px)}
.section:has(>.container>.l>.arcal){scroll-margin-top:var(--stick-h)}
.ar-years{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none}
.ar-years>*{min-width:0}
.ar-years a{display:flex;flex-direction:column;color:#fff}
.ar-years__bar{position:relative;display:block;height:150px;margin-bottom:14px;border-bottom:1px solid rgba(255,255,255,.35)}
.ar-years__bar::after{content:"";position:absolute;inset-inline-start:0;bottom:0;width:min(56px,62%);height:var(--h);background:var(--sand);transform-origin:bottom;transition:background-color .25s}
.ar-years b{font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;transition:color .25s}
.ar-years span{margin-top:4px;font-size:12px;color:var(--on-dark-2)}
.ar-years a:hover b,.ar-years a:focus-visible b{color:var(--sand)}
.ar-years a:hover .ar-years__bar::after,.ar-years a:focus-visible .ar-years__bar::after{background:#fff}
@media (max-width:767px){   /* one scale kept on a phone: the columns turn into rows */
  .ar-years{grid-template-columns:minmax(0,1fr);gap:12px}
  .ar-years a{display:grid;grid-template-columns:44px minmax(0,1fr) 58px;align-items:center;column-gap:12px}
  .ar-years b{grid-area:1/1;font-size:17px}
  .ar-years__bar{grid-area:1/2;height:12px;margin:0;border:0;background:rgba(255,255,255,.08)}
  .ar-years__bar::after{inset-block:0;width:var(--h);height:auto;transform-origin:var(--start) center}
  .ar-years span{grid-area:1/3;margin:0;text-align:end;white-space:nowrap}
}
@media (prefers-reduced-motion:no-preference){
  .ar-title::after{animation:rule-draw 1.2s .2s var(--ease-out) backwards}
  .ar-years.is-waiting:not(.is-in) .ar-years__bar::after{transform:scaleY(0)}
  .ar-years:not(.is-waiting) .ar-years__bar::after,.ar-years.is-in .ar-years__bar::after{animation:grow-y .9s var(--ease-out) backwards;animation-delay:calc(var(--i) * 70ms + .15s)}
}
@media (prefers-reduced-motion:no-preference) and (max-width:767px){
  .ar-years.is-waiting:not(.is-in) .ar-years__bar::after{transform:scaleX(0)}
  .ar-years:not(.is-waiting) .ar-years__bar::after,.ar-years.is-in .ar-years__bar::after{animation-name:bar-grow}
}

/* 36. Search pages ------------------------------------------------------------------------
   The query settles in and its rule is drawn. The words searched for are
   marked in the results by a sand highlighter that sweeps in the reading
   direction (watad.js 32), and results glide to their new places on a view
   switch or a filter (watad.js 3-4). With nothing found, the page offers
   shorter queries instead of dead filters. */
.s-head__row{position:relative;border-bottom:0}
.s-head__row::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--ink);transform-origin:var(--start) center}
[data-result-count]{display:inline-block}
mark.hit{background:linear-gradient(0deg,rgba(185,167,121,.55) 0 36%,transparent 36%) no-repeat var(--start) 0/100% 100%;color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.try .terms a{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;color:var(--ink)}
.try .terms a::after{content:"";flex:0 0 14px;height:14px;background:var(--teal);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transform:scaleX(calc(-1 * var(--dir)));opacity:.35;transition:opacity .2s}
.try .terms a:hover{color:var(--teal)}
.try .terms a:hover::after{opacity:1}
@media (max-width:1023px){.l>.try{order:1}}   /* on one column the message comes first, then what to try */
@media (max-width:767px){   /* three posters become a strip to swipe instead of three screens to scroll */
  .posters3{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--pad));padding-inline:var(--pad);scrollbar-width:none}
  .posters3::-webkit-scrollbar{display:none}
  .posters3>*{flex:0 0 60%;scroll-snap-align:start}
}
@media (prefers-reduced-motion:no-preference){
  h1[data-query]{animation:word-in .8s .1s var(--ease-out) backwards}
  .s-head__row::after{animation:rule-draw 1.2s .2s var(--ease-out) backwards}
  .s-empty{animation:rise .8s .45s var(--ease-out) backwards}
  mark.hit{animation:hit-sweep .9s .8s var(--ease-out) backwards}
  [data-arrive]>.is-waiting:not(.is-in) mark.hit{animation:none;background-size:0 100%}
  [data-arrive]>.is-waiting.is-in mark.hit{animation:hit-sweep-in .9s var(--ease-out) backwards;animation-delay:calc(var(--k,0) * 80ms + .45s)}
}
@keyframes hit-sweep{from{background-size:0 100%}}
@keyframes hit-sweep-in{from{background-size:0 100%}}   /* a second name restarts the sweep when a result arrives */

/* 37. خبر وتعليق page ------------------------------------------------------------------------
   The timeline is the page: a post links to the piece behind it as a card
   (or carries its photo), the spine fills with sand down to where the reader
   is (watad.js 23), and the days sit beside it, the day being read marked
   (watad.js 33). Posts rise in as they are reached. */
.tl-wrap{display:grid;grid-template-columns:minmax(0,1fr) 230px;column-gap:var(--gap);align-items:start}
.tl-wrap>*{min-width:0}
.tl-col{position:relative}
.tl__fill{position:absolute;top:0;bottom:0;inset-inline-start:16px;width:2px;margin-inline-start:-.5px;background:var(--sand);transform:scaleY(0);transform-origin:top;pointer-events:none;z-index:1}
.tl__fill.is-timeline{animation:axis-fill linear both;animation-timeline:scroll(root block)}
.tl__day,.tl__item::before{z-index:2}
.post__card{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:16px;max-width:680px;margin-top:16px;padding:10px;padding-inline-end:18px;border:1px solid var(--hair);background:#fff;transition:border-color .25s}
.post__card-img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--paper)}
.post__card-img img{width:100%;height:100%;object-fit:cover}
.post__card-img img.poster{object-fit:contain}
.post__card-kicker{display:block;margin-bottom:4px;font-size:11.5px;font-weight:600;color:var(--teal)}
.post__card b{display:block;font-size:15.5px;font-weight:700;line-height:1.55;color:var(--ink);transition:color .2s}
.post__card:hover,.post__card:focus-visible{border-color:var(--sand)}
.post__card:hover b,.post__card:focus-visible b{color:var(--teal)}
.post__media{max-width:680px;margin:16px 0 0;overflow:hidden}
.post__media img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.tl-side{align-self:stretch}   /* as tall as the timeline, so the index inside can ride along */
.tl-side__in{position:sticky;top:calc(var(--stick-h) + 28px);padding-top:22px}
.tl-days{margin-top:14px;border-top:1px solid var(--hair)}
.tl-days a{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:10px;padding:11px 0;border-bottom:1px solid var(--hair);color:var(--mid);transition:color .2s}
.tl-days a::before{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;background:var(--sand);transform:scaleX(0);transform-origin:var(--start) center;transition:transform .45s var(--ease-out)}   /* the day being read is underlined in sand, like every chosen item */
.tl-days span{font-size:15px;font-weight:600}
.tl-days small{grid-column:1;font-size:11.5px;color:var(--grey)}
.tl-days b{grid-column:2;grid-row:1/span 2;font-size:20px;font-weight:700;line-height:1;color:var(--grey);font-variant-numeric:tabular-nums}
.tl-days a:hover{color:var(--teal)}
.tl-days a.is-active{color:var(--ink)}
.tl-days a.is-active::before{transform:none}
.tl-days a.is-active b{color:var(--teal)}
.tl-follow{margin-top:28px;padding:18px;background:var(--paper)}
.tl-follow b{display:block;font-size:15px;font-weight:700;color:var(--teal)}
.tl-follow p{margin-top:4px;font-size:12.5px;line-height:1.7;color:var(--mid)}
.tl-follow .social{margin-top:12px}
.tl-follow .social a{background:#fff}
@media (max-width:1023px){
  .tl-wrap{grid-template-columns:minmax(0,1fr)}
  .tl-side{display:none}   /* one column: the sticky day labels carry the days */
}
@media (max-width:767px){
  .tl__fill{inset-inline-start:9px}
  .post__card{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:8px;padding-inline-end:12px}
  .post__card b{font-size:14.5px}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .post__card-img img.cover,.post__media img{transition:transform 1s var(--ease-out)}
  .post__card:hover .post__card-img img.cover,.tl__item:hover .post__media img{transform:scale(1.04)}
}

/* 38. About page ---------------------------------------------------------------------------
   The name and the line settle, and the motto is written in from the start
   edge. The four examples share one frame; the comment is shown as a
   comment. The stance inks in white and sand as it is read (watad.js 25).
   The mark reads part by part: point at a part and it stands out in the
   logo while the rest steps back. */
.ab-offer--media .poster,.ab-note__card{aspect-ratio:9/16}
.ab-note__card{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:22px 18px;background:var(--paper)}
.ab-note__card b{font-size:17px;font-weight:700;line-height:1.5;color:var(--ink)}
.ab-note__card i{display:block;height:2px;margin:6px 0 4px;background:var(--sand)}
.ab-note__card p{font-family:var(--body);font-size:15px;line-height:1.8;color:#3A3A40}
.ab-note{outline:1px solid transparent}
@media (hover:hover){.ab-note:hover .ab-note__card{background:#EAEBEB}}
.ab-mark__art{position:relative;flex-direction:column}
.ab-mark__art path{transition:opacity .35s var(--ease-out),transform .6s var(--ease-out)}
.ab-mark__hint{margin-top:18px;font-size:11.5px;color:var(--grey)}
.ab-part{outline:0;transition:border-color .25s}
.ab-part:hover,.ab-part:focus-visible{border-top-color:var(--sand)}
.ab-part:focus-visible{box-shadow:0 -2px 0 var(--sand)}
.ab-mark[data-show="quote"] .ab-mark__art path:not(.mk-quote),
.ab-mark[data-show="cut"] .ab-mark__art path:not(.mk-cut){opacity:.12}   /* set by watad.js 34 */
.ab-links a{position:relative;transition:border-color .25s}
.ab-links a::after{content:"";position:absolute;top:18px;inset-inline-end:0;width:16px;height:16px;background:var(--teal);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transform:scaleX(calc(-1 * var(--dir)));opacity:0;transition:opacity .25s,translate .45s var(--ease-out)}
.ab-links a:hover,.ab-links a:focus-visible{border-top-color:var(--sand)}
.ab-links a:hover b,.ab-links a:focus-visible b{color:var(--teal)}
.ab-links a:hover::after,.ab-links a:focus-visible::after{opacity:1}
@media (hover:none){.ab-mark__hint{display:none}}
@media (prefers-reduced-motion:no-preference){
  .ab-lead .tw{animation-delay:calc(var(--i) * 55ms + .25s)}
  .ab-motto{animation:write-in 1.1s .9s var(--ease-out) backwards}
  .ab-mark[data-show="cut"] .mk-cut{transform:translate(-1.4px,.6px)}   /* the point goes in */
  .ab-mark[data-show="quote"] .mk-quote{transform:translateY(-1px)}
  .ab-links a::after{translate:calc(-6px * var(--dir)) 0}
  .ab-links a:hover::after,.ab-links a:focus-visible::after{translate:0 0}
}
@keyframes write-in{from{clip-path:inset(0 0 0 100%)}}   /* written from the right, the start of an Arabic line */

/* 39. 404 and the pages index -------------------------------------------------------------
   404: the title settles beside the outline of the peg that is not there,
   drawn stroke by stroke, and the search sits right under it. Pages index:
   the rows arrive, and the one under the pointer points onward. */
.e404__row{display:flex;align-items:flex-end;gap:clamp(14px,2vw,28px)}
.e404__peg{flex:0 0 auto;width:clamp(38px,5.4vw,74px);margin-bottom:.12em;line-height:0}
.e404__peg svg{width:100%;height:auto;overflow:visible}
.e404__peg path{fill:none;stroke:var(--sand);stroke-width:1.6;stroke-linejoin:round;stroke-dasharray:.035 .025}
.e404__search{display:flex;gap:8px;margin-top:14px}
.e404__search input{flex:1;min-width:0;padding:9px 0;border:0;border-bottom:1px solid var(--ink);background:none;font-family:var(--disp);font-size:15px;color:var(--ink);border-radius:0}
.e404__search input:focus{border-bottom-color:var(--sand)}   /* the site's focus ring still shows */
.e404__search .btn{padding:8px 18px}
.idx{position:relative;padding-inline-end:30px}
.idx::after{content:"";position:absolute;inset-inline-end:0;top:50%;width:16px;height:16px;margin-top:-8px;background:var(--teal);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transform:scaleX(calc(-1 * var(--dir)));opacity:0;transition:opacity .2s}
.idx:hover::after,.idx:focus-visible::after{opacity:1}
.idx:hover>i,.idx:focus-visible>i{color:var(--teal)}
.idx>i{transition:color .2s}
@media (prefers-reduced-motion:no-preference){
  .e404__peg path{stroke-dasharray:1 0;stroke-dashoffset:1;animation:peg-draw 1.6s .55s var(--ease-out) forwards,peg-dash .01s 2.2s forwards}
  .e404__note{animation:rise .8s .5s var(--ease-out) backwards}
  .idx::after{translate:calc(-6px * var(--dir)) 0;transition:opacity .2s,translate .45s var(--ease-out)}
  .idx:hover::after,.idx:focus-visible::after{translate:0 0}
}
@keyframes peg-draw{to{stroke-dashoffset:0}}
@keyframes peg-dash{to{stroke-dasharray:.035 .025;stroke-dashoffset:0}}   /* once traced, the outline breaks into a dashed mark: the place, not the peg */

/* 40. Writers: photo, cut-out or initial; finding a writer ------------------------------------
   A writer's picture is a cut-out standing on the teal tile when there is one
   (transparent PNG or WebP), an ordinary photo filling the tile otherwise, and
   the writer's initial in sand when there is no photo at all, so a writer the
   admin adds without a cut-out still looks placed. The writers page and the
   home popup find a writer by name or field as you type (watad.js 35); the
   popup lists everyone as compact rows. */
.writer__pic--photo{background:#0A4450}
.writer__pic--photo img{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.writer__pic--mono{display:grid;place-items:center}
.writer__mono{position:relative;z-index:1;margin-top:-16%;font-size:clamp(44px,5vw,70px);font-weight:700;line-height:1;color:#0A4450}   /* cut into the sand wedge */
.au-portrait--photo img{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.aitem__thumb--mono{display:grid;place-items:center}
.aitem__thumb--mono .writer__mono{margin-top:-12%;font-size:46px}
.writers-find{position:relative;margin-bottom:30px}
.writers-find::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:18px;height:18px;margin-top:-9px;background:var(--mid);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none}
.writers-find input{width:100%;padding:12px 0;padding-inline-start:30px;border:0;border-bottom:2px solid var(--ink);border-radius:0;background:none;font-family:var(--disp);font-size:17px;color:var(--ink)}
.writers-find input::placeholder{color:var(--grey)}
.writers-find input:focus{border-bottom-color:var(--sand)}
.writers-empty{padding:22px 0;border-top:1px solid var(--hair);font-size:15px;color:var(--mid)}
.writers-empty[hidden]{display:none}
.writers-empty button{padding:0;border:0;background:none;font:inherit;color:var(--teal);cursor:pointer}
.writers-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--gap)}
.writer--row{display:grid;grid-template-columns:48px minmax(0,1fr);align-content:center;align-items:center;column-gap:14px;padding:10px 0;border-bottom:1px solid var(--hair)}
.writer--row .writer__pic{grid-row:1/span 2;width:48px;border-bottom-width:2px}
.writer--row .writer__name{margin-top:0;font-size:15px;line-height:1.35}
.writer--row .writer__field{margin-top:2px;font-size:11.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.writer--row .writer__mono{margin-top:-12%;font-size:22px}
.writer--card .writer__field{min-height:2.9em;line-height:1.45}
@media (max-width:1023px){.writers-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.writers-list{grid-template-columns:minmax(0,1fr)}}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .writer:hover .writer__pic--photo img,.writer:has(.stretched:focus-visible) .writer__pic--photo img{transform:scale(1.05)}
}

/* 41. Tablet and phone -----------------------------------------------------------------------
   Touch gets targets it can hit: small text links, tabs, chips and the header
   sections carry an invisible hit area around them, so nothing moves and
   nothing looks different. On one column the article opens with its section,
   then the title, the writer and sharing, and only then the epigraph. A
   counter keeps its figure's size wherever it sits. Phones get a tighter
   vertical rhythm. */
[data-count]>.count-anim{display:inline;margin:0;font-size:inherit;font-weight:inherit;color:inherit}
input,textarea,select{caret-color:var(--teal);accent-color:var(--teal)}
.secart__num{font-size:max(11px,7.5cqi)}
.secart__sub{font-size:max(11px,11cqi)}

@media (pointer:coarse){
  .byline a,.aitem__by a,.crumbs a,.rail-label a,.art-author a,.link-quiet,.link-accent,.chip,.tab,.viewbtn,.site-header__secs a,.cite a,.cat-head__label a,.author-strip__more li a{position:relative}   /* not the ثورة ويكي titles: their ::after already makes the whole row the link */
  .byline a::before,.aitem__by a::before,.crumbs a::before,.rail-label a::before,.art-author a::before,.link-quiet::before,.link-accent::before,
  .chip::before,.tab::before,.viewbtn::before,.site-header__secs a::before,.cite a::before,.cat-head__label a::before{content:"";position:absolute;inset:-10px -6px}
  .crumbs a::before{inset:-3px -8px}   /* stacked a line apart: they must not reach into each other */
  .ar-years a{padding-block:5px}
  .site-footer__col li a{min-width:44px}   /* a one-word link in a column: wide enough to hit */
}

@media (max-width:1023px){
  /* the article's head reads section, title, writer, share, then the epigraph */
  .art-head{position:relative}
  .art-head .rail,.art-head .body{display:contents}
  .art-head .wedge{top:60px}   /* on .art-head now: its 64px top padding, less the mark's usual 4px lift */
  .art-head .rail-label{order:1}
  .art-head .art-title{order:2;font-size:clamp(27px,4.3vw,40px);margin:0}
  .art-head .art-author{order:3;margin-top:4px}
  .art-head .art-share{order:4;margin-top:0}
  .art-head .epigraph{order:5;margin-top:10px}
  /* the home بناء column: a narrower board, the quote and its line centred beside it */
  .home-build>:nth-child(3){grid-template-columns:150px minmax(0,1fr);grid-template-rows:1fr auto auto 1fr;row-gap:0}
  .home-build>:nth-child(3) .poster{grid-row:1/-1}
  .home-build>:nth-child(3)>:not(.poster):not(.stretched){grid-column:2}
  .home-build>:nth-child(3) .dek{grid-row:2;margin-top:0!important}
  .home-build>:nth-child(3) .byline{grid-row:3}
  /* search rows: a board as tall as the words beside it, not twice their height */
  .res-list .res-row.is-poster{--media:96px}
  .res-list .res-row .poster{width:96px}
}

@media (max-width:767px){
  .pt-m{padding-top:36px}.pt-l{padding-top:48px}.pt-xl{padding-top:60px}
  .pb-l{padding-bottom:48px}.pb-xl{padding-bottom:60px}
  .art-head .wedge{top:44px}
  .cite{font-size:max(.6em,11.5px)}
  .home-build>:nth-child(3){grid-template-columns:120px minmax(0,1fr)}
  .res-list .res-row.is-poster{--media:84px!important}
  .res-list .res-row .poster{width:84px}
  /* the month keeps its whole name: it gets the first row, the year and the button the second */
  .arcal__jump{flex-wrap:wrap}
  .arcal__jump select[name="m"]{flex:1 1 100%}
}

/* 42. One column, section by section -------------------------------------------------------
   Two rules never sit one under the other. On one column the section's label
   opens it without a rule of its own (the rule would land under the one
   closing the section before), a byline belongs to its item without a rule
   (items are divided by theirs), and a bar that measures (a month, a year)
   is its own baseline. Nothing hides past the edge on a phone: the five
   section tiles, the boards, the years and the examples all stay in view,
   and a row that still scrolls (tabs, the header's sections) fades on the
   side that has more (watad.js 36). */
.wd-years a{border-bottom:0}
.arcal__m,.arcal__m[aria-current="true"]{border-bottom:0;padding-bottom:12px}
.arcal__m[aria-current="true"] .arcal__name{box-shadow:inset 0 -2px var(--sand)}   /* the chosen month is underlined in sand */
.sources li:last-child,.note .fg:last-child,.facets .facet:last-child .facet__opt:last-child{border-bottom:0}
.arcal__filters>div:last-of-type{border-bottom:0!important}   /* the month under it opens with its own rule */
.s-empty{border-top:0;padding-top:0}   /* the search field's line is right above it */
.tl-side .rail-label{border-top:0;padding-top:0}   /* the head's rule is right above it */
.ticker + .section .rail-label{border-top:0;padding-top:0}   /* the ticker's rule opens the first section */
.au-stats .stat{border-top:0;padding-top:0}   /* the portrait's ground line is right above them; the row closes with its own rule */
.byline{flex-wrap:wrap;row-gap:2px}   /* a long name keeps its line and the date goes under it, not a name broken beside its date */
.home-sec__title{display:none}   /* the poster carries its title on wide screens; a phone shows it beside the smaller poster */
[data-more~="end"]{-webkit-mask-image:linear-gradient(to right,transparent,#000 40px);mask-image:linear-gradient(to right,transparent,#000 40px)}   /* the end of a right-to-left row is its left edge */
[data-more~="start"]{-webkit-mask-image:linear-gradient(to left,transparent,#000 40px);mask-image:linear-gradient(to left,transparent,#000 40px)}
[data-more~="start"][data-more~="end"]{-webkit-mask-image:linear-gradient(to right,transparent,#000 40px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(to right,transparent,#000 40px,#000 calc(100% - 40px),transparent)}

@media (max-width:1023px){
  .rail-label{border-top:0;padding-top:0}
  .byline{border-top:0;padding-top:0;margin-top:8px}
  .wd-rec__head{border-bottom:0;padding-bottom:6px}
  /* one column has no axis to stand on: its line would only run down the margin */
  .axis,.axis-fill{display:none}
  .ticker__items a{padding-inline-start:0;border-inline-start:0}   /* one headline at a time: no divider beside it */
  /* nor the news timeline's spine and its marks: the sticky day labels and the rules between items carry the time */
  .tl::before,.tl__fill,.tl__item::before{display:none}
  .tl__item{padding-inline-start:0}
  /* the article head: the writer and sharing share one row under one rule */
  .art-head{grid-template-columns:minmax(0,1fr) auto;column-gap:0}
  .art-head .rail-label,.art-head .art-title,.art-head .epigraph{grid-column:1/-1}
  .art-head .art-author{grid-column:1;padding-top:12px}
  .art-head .art-share{grid-column:2;margin-top:4px;padding-top:12px;border-top:1px solid var(--ink)}
  .art-head .art-share__done{inset-inline-start:auto;inset-inline-end:0}   /* the buttons end the row now: the note opens inward, not past the edge */
  /* the footer: the brand and where to follow it, then the three link groups side by side */
  .site-footer__main{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"brand brand follow" "secs about browse";column-gap:var(--gap);row-gap:34px}
  .site-footer__cols{display:contents}
  .site-footer__brand{grid-area:brand}
  .site-footer__cols>:nth-child(1){grid-area:secs}
  .site-footer__cols>:nth-child(2){grid-area:about}
  .site-footer__cols>:nth-child(3){grid-area:browse}
  .site-footer__follow{grid-area:follow}
}

@media (max-width:767px){
  .note,.margin-fig{border-inline-start:0;padding-inline-start:0}
  /* the ثورة ويكي preview is the card above the table here, so no row is marked as the one shown */
  .wk-table tbody tr.is-previewed td{background:none}
  .wk-table tbody tr.is-previewed .wk-n{color:var(--sand)}
  .wk-table tbody tr.is-previewed .wk-n::before{transform:scaleY(0)}
  .wk-table tbody tr.is-previewed .wk-go::before{opacity:0}
  .art-head .art-share__label{display:none}
  /* the five section tiles, three over two */
  .secarts{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;overflow:visible;margin-inline:0;padding:0}
  .secarts>*{flex:0 0 calc((100% - 24px) / 3)}
  /* the boards: the lead board beside its title, the other three side by side under them */
  .boards{grid-template-columns:128px minmax(0,1fr);column-gap:16px;row-gap:28px;align-items:center}
  .boards>:first-child{grid-column:1;grid-row:1;max-width:none}
  .boards>div{display:contents}
  .boards>div>article{grid-column:2;grid-row:1}
  .boards__strip{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;overflow:visible}
  .boards__strip>:nth-child(n){width:auto}
  /* politics: the list first, then the board as its last row, its title beside it */
  .home-sec>:nth-child(2){order:0}
  .home-sec>:nth-child(3){max-width:none;display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:1fr auto auto auto 1fr;column-gap:16px;margin-top:-18px;padding-top:16px;border-top:1px solid var(--hair)}
  .home-sec>:nth-child(3)>.poster{grid-row:1/-1}
  .home-sec>:nth-child(3)>:not(.poster):not(.stretched){grid-column:2}
  .home-sec>:nth-child(3)>div:first-of-type{grid-row:2;margin-top:0!important}
  .home-sec__title{display:block;grid-row:3;margin-top:4px}
  .home-sec>:nth-child(3)>.byline{grid-row:4}
  /* build: each board beside its words, the two boards on one column line */
  .home-build{grid-template-columns:120px minmax(0,1fr);column-gap:16px;row-gap:30px;align-items:start}
  .home-build>:first-child{grid-column:1;max-width:none}
  .home-build>:nth-child(2){grid-column:2}
  .home-build>:nth-child(2) .t-l{font-size:21px}
  .home-build>:nth-child(3){grid-column:1/-1}
  /* the ثورة ويكي years wrap onto two lines instead of running off the edge */
  .wk-years{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;justify-items:start;column-gap:22px;row-gap:12px;overflow:visible;margin-inline:0;padding:0}   /* four years a line, in columns */
  /* ناس: its board row puts the board on the start side, as every other board row on a phone does */
  .story--row{grid-template-columns:var(--media) minmax(0,1fr);align-items:center}
  .story--row .story__media{grid-column:1}
  .story--row .story__text{grid-column:2}
  /* writers: six tiles, then all of them as one row across */
  .writers-row .writer--more{grid-column:1/-1;display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;align-content:center}
  .writers-row .writer--more .writer__pic{grid-row:1/span 2;width:72px;aspect-ratio:1}
  .writers-row .writer--more .writer__plus{font-size:28px}
  .writers-row .writer--more .writer__all{display:none}
  .writers-row .writer--more .writer__name{margin-top:0;align-self:end}
  .writers-row .writer--more .writer__count{align-self:start}
  /* the related board in an article, and the three to start from on the empty search and the 404: a board beside its words */
  .remedy .story{display:grid;grid-template-columns:110px minmax(0,1fr);column-gap:16px;align-items:center}
  .remedy .story>.poster{width:110px;max-width:none}
  .remedy .story>div{margin-top:0!important}
  .posters3{display:grid;grid-template-columns:minmax(0,1fr);gap:0;overflow:visible;margin-inline:0;padding:0}
  .posters3>.story{display:grid;grid-template-columns:96px minmax(0,1fr);grid-template-rows:1fr auto auto auto 1fr;column-gap:16px;padding:14px 0;border-top:1px solid var(--hair)}
  .posters3>.story:first-child{border-top:0;padding-top:0}
  .posters3>.story>.poster{grid-row:1/-1}
  .posters3>.story>:not(.poster):not(.stretched){grid-column:2}
  .posters3>.story>div:first-of-type{grid-row:2;margin-top:0!important}
  .posters3>.story>.story__title{grid-row:3}
  .posters3>.story>.byline{grid-row:4}
  /* keep reading: the next piece's board beside its title, the other two under them */
  .next-read{grid-template-columns:120px minmax(0,1fr);column-gap:16px;row-gap:28px;align-items:center}
  .next-read>div{display:contents}
  .next-read>:last-child{grid-column:1;grid-row:1;max-width:none}
  .next-read>div>article{grid-column:2;grid-row:1}
  .next-read .story__title.t-xl{font-size:23px}
  .next-read .story__dek{display:none}   /* beside a 120px board the title is enough */
  .next-read__small{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:0}
  .next-read__small>.story{display:grid;grid-template-columns:84px minmax(0,1fr);grid-template-rows:1fr auto auto auto 1fr;column-gap:16px;padding:14px 0;border-top:1px solid rgba(255,255,255,.18)}
  .next-read__small>.story>.poster{grid-row:1/-1}
  .next-read__small>.story>:not(.poster):not(.stretched){grid-column:2}
  .next-read__small>.story>div:first-of-type{grid-row:2;margin-top:0!important}
  .next-read__small>.story>.story__title{grid-row:3}
  .next-read__small>.story>.byline{grid-row:4}
  /* about: the four examples, two by two */
  .ab-offer--media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px;overflow:visible;margin-inline:0;padding:0}
  .ab-offer--media>*{flex:none}
  /* archive: a month's pictures in two columns, each whole */
  .ar-strip{display:block;columns:2;column-gap:12px;overflow:visible;margin-inline:0;padding:0}
  .ar-strip>*,.ar-strip>.is-cover{width:auto;margin-bottom:14px;break-inside:avoid}
  /* the writer: the portrait beside the name, the rest under them */
  .au-head{grid-template-columns:112px minmax(0,1fr);column-gap:16px;row-gap:0;align-items:start}
  .au-head__text{display:contents}
  .au-portrait{grid-row:1/span 3}
  .au-head__text>.kicker,.au-head__text>h1,.au-head__text>div:first-of-type{grid-column:2}
  .au-head__text>.kicker{align-self:end;padding-top:6px}
  .au-head .au-name{font-size:36px;margin-top:6px!important}
  .au-head__text>div:first-of-type{font-size:16.5px!important;line-height:1.5;margin-top:8px!important}
  .au-head__text>p,.au-head__text>.flex{grid-column:1/-1}
  /* the footer on a phone: the brand, where to follow it under one line, then the links in two columns */
  .site-footer__main{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"brand brand" "follow follow" "secs about" "browse browse";row-gap:28px}
  .site-footer__follow{padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.18)}
  .site-footer__follow h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .site-footer__follow .social{margin-top:0}
  .site-footer__col h2{margin-bottom:6px;padding-bottom:0;border-bottom:0}
  .site-footer__cols>:nth-child(3) ul{columns:2;column-gap:var(--gap)}
  .site-footer__cols>:nth-child(3) li{break-inside:avoid}
}

/* the tablet: ناس keeps its side column (a full-width second picture would weigh as much as the lead),
   the four examples on من نحن stay one row (two by two they stood 620px tall), a writer's latest piece
   gives its summary half the row, and the writers' "more" tile takes the last two places of the second
   row, its box as tall as the portraits */
@media (min-width:768px) and (max-width:1023px){
  .home-people{grid-template-columns:minmax(0,1fr) 250px}
  .ab-offer--media{grid-template-columns:repeat(4,minmax(0,1fr))}
  .au-latest{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1023px){
  .ab-hero .note{border-inline-start:0;padding-inline-start:0}   /* under the lead now, not beside it: a side rule would hang off the edge */
}
@media (min-width:768px) and (max-width:1199px){
  .writers-row{container-type:inline-size}
  .writers-row .writer--more{grid-column:span 2}
  .writers-row .writer--more .writer__pic{aspect-ratio:auto;height:calc((100cqi - 60px) * .3125)}   /* a portrait: a quarter of the row less its gaps, at 4:5 */
}

/* 43. Every page, desktop first ------------------------------------------------------------
   The article's running text starts on the axis, as its title, chapters and
   figures do. At its end the writer's strip shows her portrait, who she is and
   more of her writing, and the next read fills its shelf: the lead board beside
   its title and summary, three more boards under them. */
@media (min-width:1024px) and (max-width:1199px){   /* a tablet and a phone keep their own layouts (12, 42) */
  .next-read{grid-template-columns:minmax(0,1fr) 300px}
  .next-read__small{gap:20px}
}
@media (max-width:767px){
  /* the writer: the portrait beside the name, the rest under them */
  .author-strip{grid-template-columns:88px minmax(0,1fr);column-gap:16px;row-gap:0;padding-top:18px}
  .author-strip__pic{width:88px;grid-row:1/span 3}
  .author-strip__who{display:contents}
  .author-strip__who>.kicker,.author-strip__name,.author-strip__who>.meta{grid-column:2}
  .author-strip__who>.kicker{align-self:end}
  .author-strip__name{font-size:23px}
  .author-strip__who>.meta{align-self:start}
  .author-strip__bio,.author-strip__acts,.author-strip__more{grid-column:1/-1}
  .author-strip__bio{margin-top:14px;font-size:16px}
  .author-strip__more{margin-top:26px}
}
/* the head of a section: beside its title, the people who write in it; the head of
   خبر وتعليق: where to follow it (it was at the foot of the day index, which a tablet
   or a phone never shows) */
.cat-head__row{grid-template-columns:168px minmax(0,1fr) 290px}
.cat-head__people,.cat-head .tl-follow{align-self:end}
.cat-head .tl-follow{margin:0}
.cat-head__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--hair);font-size:12px;font-weight:600;color:var(--mid)}
.cat-head__label a{color:var(--teal);font-weight:500}
.cat-head__label a:hover{color:var(--ink)}
.cat-head__people ul{margin:0;padding:0;list-style:none}
.cat-head__people li a{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-content:center;padding:6px 0}
.cat-head__people li+li a{border-top:1px solid var(--hair)}
.cat-head__people .writer__pic{grid-row:1/span 2;width:36px;border-bottom-width:2px}
.cat-head__people b{align-self:end;font-size:14.5px;font-weight:700;line-height:1.35;transition:color .2s}
.cat-head__people small{align-self:start;overflow:hidden;font-size:11.5px;line-height:1.5;color:var(--grey);white-space:nowrap;text-overflow:ellipsis}
.cat-head__people li a:hover b{color:var(--teal)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .cat-head__people li a:hover .writer__pic img{transform:translateY(-3px)}
}
@media (max-width:1199px){
  .cat-head__row{grid-template-columns:168px minmax(0,1fr) 250px}
}
@media (max-width:1023px){
  .cat-head__row{grid-template-columns:168px minmax(0,1fr)}
  .cat-head__people,.cat-head .tl-follow{grid-column:1/-1}
  .cat-head__people ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap)}
  .cat-head__people li+li a{border-top:0}
  .cat-head .tl-follow{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;align-items:center}
  .cat-head .tl-follow .social{grid-column:2;grid-row:1/span 2;margin-top:0}
}
@media (max-width:767px){
  .cat-head__row{grid-template-columns:104px minmax(0,1fr)}
  .cat-head__people ul{column-gap:12px}
  .cat-head__people li a{display:block;padding:10px 0 0}
  .cat-head__people .writer__pic{width:48px}
  .cat-head__people b{display:block;margin-top:8px;font-size:13px}
  .cat-head__people small{display:none}
}
/* the writers: five to a row on a wide screen, and beside them the letters, riding
   along the rail while the list scrolls (watad.js 37); the letter being read is
   underlined in sand, a letter the search has emptied is set aside */
.wr-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px;border-top:1px solid var(--hair)}
.wr-index a{position:relative;display:grid;place-items:center;height:38px;border-bottom:1px solid var(--hair);font-family:var(--disp);font-size:17px;font-weight:600;color:var(--teal);transition:color .2s}
.wr-index a::after{content:"";position:absolute;inset-inline:9px;bottom:-1px;height:2px;background:var(--sand);transform:scaleX(0);transition:transform .35s var(--ease-out)}
.wr-index a:hover{color:var(--ink)}
.wr-index a:hover::after{transform:scaleX(.5)}
.wr-index a.is-active{color:var(--ink)}
.wr-index a.is-active::after{transform:none}
.wr-index a[aria-disabled="true"]{color:var(--grey);opacity:.4;pointer-events:none}
[data-writers] .writer{scroll-margin-top:calc(var(--stick-h) + 24px)}
@media (min-width:1024px){
  .l[data-writers]>.rail{align-self:stretch}
  .wr-rail{position:sticky;top:calc(var(--stick-h) + 24px)}
}
@media (min-width:1200px){
  [data-writers] .writers-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:40px 24px}
}
@media (max-width:1023px){
  /* over the list: the letters in one line */
  .wr-index{grid-template-columns:repeat(auto-fit,minmax(34px,1fr));margin-top:14px;border-top:0}   /* one line on a tablet, two even lines on a phone */
  .wr-index a{height:36px}
}
/* a long list keeps its label in view: the rail's label rides along beside it
   (the section's list, a writer's works, an archive month, the news timeline) */
@media (min-width:1024px){
  .l--stick>.rail{align-self:stretch}
  .l--stick>.rail>.rail-label{position:sticky;top:calc(var(--stick-h) + 24px)}
}
/* a phrase separator in a label or a meta row (سياسة، تحليل): drawn as a short bar
   in the colour of its text, read and copied as a comma */
.sep.sep{display:inline-block;flex:none;align-self:center;width:12px;height:1px;margin:0 7px;padding:0;border:0;overflow:hidden;background:currentColor;opacity:.55;font-size:0;line-height:0;vertical-align:middle}   /* doubled: a label's own "span" rules (.tl__day span, .stat span) must not restyle it */
.arcal__m.is-empty .arcal__n::before{content:"";display:block;width:14px;height:2px;margin-top:.55em;background:currentColor}   /* a month still to come has no count */
.xpost__meta .sep.sep{margin:0 2px}   /* the row's own gap spaces it */
/* titles break into even lines (never one word left alone on the last), paragraphs
   avoid a lone last word; neither changes how many lines a title takes */
h1,h2,h3,.story__title,.t-mega,.t-xl,.t-l,.t-m{text-wrap:balance}
.dek,.prose p,.story__dek,.aitem__dek,.work__dek,.author-strip__bio,.nitem__comment,.post__comment p,.cat-head__desc{text-wrap:pretty}
.author-strip__more time,.cat-head__info .meta{font-variant-numeric:tabular-nums}
/* small sand text on teal reads at 4.5:1: labels, fields, the current section, hovers */
.band .kicker,.band .writer__field,.band .nitem__where,.site-footer__col h2,.site-header__secs a[aria-current="page"],.site-header__tools a[aria-current="page"],
.band .byline a:hover b,.band .rail-label a:hover,.band .writer:hover .writer__name,.band .story:hover .story__title,.band .cap .u-sand{color:var(--sand-lit)}
