/* speak-weave.css: the Voice Weave look for sajspeak.com (website/index.html and
   website/<code>/index.html, generated by scripts/website-i18n/build.mjs).
   Ported from the approved prototype (sajspeak-weave.html, 24 September 2026).
   Everything is prefixed wv- so nothing collides with the shared saj-family.css,
   which still loads first (tokens, font fallbacks, the family page contract). */
.wv{
  --bg:#071019; --surface:#13232F; --raised:#1A2F3D; --line:#22394A; --line2:#2C4659;
  --ink:#F0F7FF; --muted:#AFC4D4; --faint:#7F97A8;
  --accent:#47DED5; --accent-ink:#032322; --blue:#8DABFF; --sand:#E8C49A; --orchid:#E6A0D4;
  --gutter:clamp(16px,4vw,56px); --shell:80rem;
  --f-mono:"Geist Mono","Geist Mono Fallback",ui-monospace,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
}
html{color-scheme:dark;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body.wv{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-ui,"Geist","Noto Sans Arabic",system-ui,sans-serif);font-size:17px;line-height:1.6;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:clip}
html[lang="ar"] body.wv{font-family:"Noto Sans Arabic","Noto Sans Arabic Fallback","Geist",system-ui,sans-serif;font-size:18px;line-height:1.8;font-weight:400}
html[lang="ar"] .wv :is(h1,h2,h3){font-family:"Cairo","Noto Sans Arabic",sans-serif;font-weight:700;letter-spacing:0}
html[lang="ur"] body.wv{font-size:18px;line-height:2.1;font-weight:400}
html[lang="ur"] .wv :is(h1,h2,h3){font-family:"Noto Nastaliq Urdu","Noto Sans Arabic",serif;font-weight:700;letter-spacing:0;line-height:1.9}
:where(.wv) :is(h1,h2,h3,h4,p,ol,ul,dl,dd,figure){margin:0}
:where(.wv) :is(ul,ol){padding:0;list-style:none}
:where(.wv) a{color:inherit}
:where(.wv) button{font:inherit;color:inherit}
:where(.wv) bdi{unicode-bidi:isolate}
.wv :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.wv main:focus{outline:none}
.wv-shell{width:min(100%,var(--shell));margin-inline:auto;padding-inline:var(--gutter)}
.wv-skip{position:absolute;inset-inline-start:12px;top:-60px;background:var(--accent);color:var(--accent-ink);padding:10px 14px;border-radius:10px;z-index:100;text-decoration:none;font-weight:500}
.wv-skip:focus{top:12px}
.wv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:999px;font-weight:500;text-decoration:none;font-size:16px;transition:background .16s,border-color .16s,color .16s;max-width:100%;text-align:center;padding-block:10px}
.wv-btn-a{background:var(--accent);color:var(--accent-ink)}
.wv-btn-a:hover{background:#6FE9E1}
.wv-btn-g{border:1px solid var(--line2);color:var(--ink)}
.wv-btn-g:hover{border-color:var(--accent);color:var(--accent)}
.wv-muted{color:var(--muted)}
.wv-h2{font-size:clamp(30px,4.2vw,54px);line-height:1.06;letter-spacing:-.03em;font-weight:600;text-wrap:balance}
html[dir="rtl"] .wv-h2{line-height:1.35}
.wv-sec{padding-block:clamp(72px,10vw,140px)}

/* nav */
.wv-nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.wv-nav .wv-shell{display:flex;align-items:center;gap:20px;min-height:68px}
.wv-brand{display:inline-flex;gap:10px;align-items:center;text-decoration:none;font-weight:600;font-size:18px;letter-spacing:-.01em;margin-inline-end:auto}
.wv-brand svg{width:26px;height:26px}
.wv-nav-links{display:flex;gap:22px;font-size:15px}
.wv-nav-links a{text-decoration:none;color:var(--muted)}
.wv-nav-links a:hover{color:var(--ink)}
.wv-langmenu{position:relative}
.wv-langmenu>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:999px;cursor:pointer;color:var(--muted);font-size:14px;white-space:nowrap}
.wv-langmenu>summary::-webkit-details-marker{display:none}
.wv-langmenu>summary:hover,.wv-langmenu[open]>summary{color:var(--ink);border-color:var(--line2)}
.wv-langmenu>summary svg{width:16px;height:16px;flex:none}
.wv-langmenu-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wv-langmenu ul{position:absolute;inset-inline-end:0;top:calc(100% + 8px);min-width:200px;max-height:min(70vh,520px);overflow:auto;background:var(--surface);border:1px solid var(--line2);border-radius:14px;padding:6px;box-shadow:0 24px 60px -20px rgba(0,0,0,.6);z-index:50}
.wv-langmenu a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--muted);font-size:15px;min-height:44px}
.wv-langmenu a:hover{background:var(--raised);color:var(--ink)}
.wv-langmenu a[aria-current="page"]{color:var(--ink);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.wv-langmenu a[lang="ar"]{font-family:"Noto Sans Arabic",sans-serif}
.wv-langmenu a[lang="ur"]{font-family:"Noto Nastaliq Urdu","Noto Sans Arabic",sans-serif}
.wv-nav .wv-btn{min-height:42px;padding:0 18px;font-size:15px}
@media (max-width:900px){.wv-nav-links{display:none}}
@media (max-width:480px){.wv-nav .wv-btn{display:none}}

/* hero */
.wv-hero{padding-top:clamp(32px,5vw,72px)}
.wv-hero-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.wv-kicker{grid-column:1/-1;color:var(--muted);font-size:15px;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.wv-kicker::before{content:"";width:28px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--sand),var(--blue),var(--orchid))}
.wv-hero h1{grid-column:1/9;grid-row:2;font-size:clamp(46px,7vw,100px);line-height:.95;letter-spacing:-.045em;font-weight:600;text-wrap:balance}
html[dir="rtl"] .wv-hero h1{font-size:clamp(40px,6.6vw,96px);line-height:1.3}
.wv-hero-sub{grid-column:9/13;grid-row:2;align-self:end}
.wv-hero-sub .wv-ctas .wv-btn{padding:0 18px}
.wv-lede{font-size:clamp(17px,1.5vw,20px);color:var(--muted);line-height:1.55}
html[dir="rtl"] .wv-lede{line-height:1.85}
.wv-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.wv-proof{margin-top:22px;font-size:14px;color:var(--faint);max-width:52ch}
@media (max-width:1100px){.wv-hero h1{grid-column:1/-1}.wv-hero-sub{grid-column:5/13;grid-row:3;margin-top:32px}}
@media (max-width:860px){.wv-hero h1,.wv-hero-sub{grid-column:1/-1}}

/* loom */
.wv-loom-wrap{margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 38%,transparent),transparent 70%)}
.wv-loom-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:18px 32px;padding-block:28px 8px}
.wv-loom-title{font-size:18px;font-weight:500;max-width:34ch;line-height:1.45}
.wv-wake-pick{display:flex;flex-wrap:wrap;gap:8px}
.wv-wake{--c:var(--accent);display:grid;gap:0;justify-items:start;text-align:start;background:transparent;border:1px solid var(--line);border-radius:14px;padding:8px 16px 8px 14px;min-height:56px;min-width:96px;cursor:pointer;position:relative;transition:border-color .16s,background .16s}
.wv-wake::before{content:"";position:absolute;inset-inline-start:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--c);opacity:.5}
.wv-wake .wv-ph{font-size:20px;font-weight:500;line-height:1.35;color:var(--ink)}
.wv-wake .wv-ln{font-size:12.5px;color:var(--faint);line-height:1.3}
.wv-wake[data-l="ar"] .wv-ph{font-family:"Noto Sans Arabic",sans-serif}
.wv-wake[data-l="hi"] .wv-ph{font-family:"Noto Sans Devanagari",sans-serif}
.wv-wake[data-l="ur"] .wv-ph{font-family:"Noto Nastaliq Urdu","Noto Sans Arabic",sans-serif;font-size:18px;line-height:1.6;padding-top:2px}
.wv-wake[data-l="ur"] .wv-ln{margin-top:4px}
.wv-wake:hover{border-color:var(--line2)}
.wv-wake[aria-pressed="true"]{border-color:var(--c);background:color-mix(in srgb,var(--c) 9%,transparent)}
.wv-wake[aria-pressed="true"]::before{opacity:1}
.wv-loom{position:relative;padding-inline:var(--gutter);max-width:100rem;margin-inline:auto}
.wv-lgrid{display:grid;grid-template-columns:12% repeat(5,minmax(0,1fr)) 12%}
.wv-lab{font-size:14px;font-weight:500;text-align:center;color:var(--muted);padding-top:18px;transition:color .3s}
.wv-lab.hit{color:var(--ink)}
.wv-lab.out{color:var(--faint);font-weight:400}
.wv-loom canvas{display:block;width:100%;height:clamp(260px,34vw,420px)}
.wv-cell{text-align:center;padding:0 6px 26px;font-size:13px;line-height:1.4;color:var(--faint)}
.wv-cell .wv-nm{display:none;font-weight:500;color:var(--muted)}
.wv-cell code{font-family:var(--f-mono);font-size:12.5px;color:var(--muted);direction:ltr;unicode-bidi:isolate}
.wv-cell .wv-note{display:block;font-size:12px;margin-top:2px}
.wv-cell .wv-st{display:block;margin-top:4px;min-height:1.4em;transition:color .3s}
.wv-cell.on .wv-st{color:var(--ink)}
.wv-cell.on .wv-st::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c,var(--accent));margin-inline-end:6px;vertical-align:1px}
.wv-cell.under .wv-st{color:var(--faint);font-style:italic}
html[dir="rtl"] .wv-cell.under .wv-st{font-style:normal}
.wv-loom-hint{padding-bottom:26px;font-size:14px;color:var(--faint)}
@media (max-width:760px){
  .wv-lgrid{grid-template-columns:4% repeat(5,minmax(0,1fr)) 8%}
  .wv-lgrid.labels{display:none}
  .wv-cell{padding:0 2px 20px;font-size:11.5px}
  .wv-cell .wv-nm{display:block;font-size:12px;line-height:1.25;margin-bottom:4px}
  .wv-cell code,.wv-cell .wv-note{display:none}
  .wv-loom canvas{height:250px}
  .wv-wake{min-width:0;flex:1 1 40%;padding:6px 12px}
}

/* principles */
.wv-why .wv-shell{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.wv-why .wv-h2{position:sticky;top:110px}
.wv-plist li{padding:28px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px 32px}
.wv-plist li:last-child{border-bottom:1px solid var(--line)}
.wv-plist h3{font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.35}
.wv-plist p{color:var(--muted)}
@media (max-width:860px){.wv-why .wv-shell{grid-template-columns:1fr}.wv-why .wv-h2{position:static}.wv-plist li{grid-template-columns:1fr}}

/* engines */
.wv-engines{position:relative;background:
  repeating-linear-gradient(90deg,transparent 0 47px,color-mix(in srgb,var(--line) 45%,transparent) 47px 48px);
}
.wv-engines::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--bg),transparent 18%,transparent 82%,var(--bg));pointer-events:none}
.wv-engines .wv-shell{position:relative;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,80px);align-items:start}
.wv-eng-intro{position:sticky;top:110px}
.wv-eng-intro p{margin-top:20px;color:var(--muted);max-width:40ch}
.wv-egroup{--c:var(--accent);background:color-mix(in srgb,var(--bg) 88%,transparent);border-inline-start:1px solid color-mix(in srgb,var(--c) 40%,transparent);margin-bottom:28px}
.wv-egroup h3{font-size:15px;font-weight:500;color:var(--c);padding:10px 20px;letter-spacing:0}
.wv-erow{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.9fr);gap:6px 28px;padding:18px 20px;border-top:1px solid var(--line);outline:none;cursor:default}
.wv-erow::before{content:"";position:absolute;inset-inline-start:-1px;top:-1px;height:2px;width:100%;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 0%,transparent));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
html[dir="rtl"] .wv-erow::before{transform-origin:right;background:linear-gradient(270deg,var(--c),color-mix(in srgb,var(--c) 0%,transparent))}
.wv-erow::after{content:"";position:absolute;inset-inline-start:-2px;top:0;bottom:0;width:3px;background:var(--c);opacity:0;transition:opacity .25s}
.wv-erow:hover::before,.wv-erow:focus::before{transform:scaleX(1)}
.wv-erow:hover::after,.wv-erow:focus::after{opacity:1}
.wv-erow:focus-visible{background:color-mix(in srgb,var(--c) 6%,transparent);border-radius:0}
.wv-erow .wv-en{font-weight:500;font-size:17px;transition:color .2s}
.wv-erow:hover .wv-en,.wv-erow:focus .wv-en{color:var(--c)}
.wv-erow code{display:block;font-family:var(--f-mono);font-size:13px;color:var(--faint);margin-top:2px;direction:ltr;text-align:start}
html[dir="rtl"] .wv-erow code{text-align:right}
.wv-erow p{color:var(--muted);font-size:16px}
.wv-erow .wv-langs{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.wv-erow .wv-langs span{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--faint);transition:color .2s,border-color .2s}
.wv-erow:hover .wv-langs span,.wv-erow:focus .wv-langs span{color:var(--ink);border-color:color-mix(in srgb,var(--c) 60%,transparent)}
@media (max-width:860px){.wv-engines .wv-shell{grid-template-columns:1fr}.wv-eng-intro{position:static}.wv-erow{grid-template-columns:1fr}.wv-erow .wv-langs{grid-column:1}}

/* arabic */
.wv-arabic{background:var(--surface);position:relative;overflow:hidden}
.wv-arabic .wv-giant{position:absolute;inset-inline-end:-2vw;top:clamp(20px,4vw,60px);font-family:"Cairo","Noto Sans Arabic",sans-serif;font-weight:700;font-size:clamp(120px,22vw,340px);line-height:1;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--sand) 38%,transparent);pointer-events:none;user-select:none;direction:rtl}
.wv-arabic .wv-shell{position:relative}
.wv-ar-head{max-width:36rem}
.wv-ar-head p{margin-top:18px;color:var(--muted);font-size:18px}
.wv-dtable{width:100%;border-collapse:collapse;margin-top:clamp(40px,6vw,72px)}
.wv-dtable caption{text-align:start;font-size:14px;color:var(--faint);padding-bottom:10px}
.wv-dtable th{text-align:start;font-size:13px;font-weight:500;color:var(--faint);padding:10px 16px 10px 0;border-bottom:1px solid var(--line2)}
html[dir="rtl"] .wv-dtable th{padding:10px 0 10px 16px}
.wv-dtable td{padding:22px 16px 22px 0;border-bottom:1px solid var(--line);vertical-align:top}
html[dir="rtl"] .wv-dtable td{padding:22px 0 22px 16px}
.wv-dtable .wv-dn{font-family:"Cairo","Noto Sans Arabic",sans-serif;font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.2;display:block}
.wv-dtable .wv-ds{font-size:14px;color:var(--faint)}
.wv-dtable td.wv-cov{color:var(--muted);max-width:44ch}
.wv-pill{display:inline-block;font-size:13px;font-weight:500;border-radius:999px;padding:3px 12px;border:1px solid var(--line2);color:var(--muted);white-space:nowrap}
.wv-pill.sup{border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.wv-ar-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);margin-top:clamp(40px,6vw,72px);align-items:start}
.wv-ar-foot h3{font-size:17px;font-weight:500;margin-bottom:14px}
.wv-aw{display:flex;flex-wrap:wrap;gap:10px}
.wv-aw li{border:1px solid var(--line2);border-radius:12px;padding:8px 14px;display:flex;gap:10px;align-items:baseline;background:var(--bg)}
.wv-aw .wv-a{font-family:"Noto Sans Arabic",sans-serif;font-size:20px;font-weight:600;color:var(--sand)}
.wv-aw .wv-l{font-size:14px;color:var(--faint)}
.wv-ent{border-inline-start:2px solid var(--sand);padding-inline-start:24px}
.wv-ent p{color:var(--muted);margin-bottom:20px}
@media (max-width:860px){.wv-ar-foot{grid-template-columns:1fr}
  .wv-dtable thead{display:none}.wv-dtable tr{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid var(--line);padding:16px 0}
  .wv-dtable td{border:0;padding:0!important}.wv-dtable td.wv-cov{grid-column:1/-1;grid-row:2;margin-top:8px}.wv-dtable td.wv-stat{grid-column:2;grid-row:1;align-self:center}}

/* on-device race */
.wv-race-sec .wv-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:end}
.wv-race-sec .wv-top p{color:var(--muted);font-size:18px}
.wv-race{margin-top:clamp(40px,5vw,64px);border:1px solid var(--line);border-radius:20px;padding:clamp(18px,3vw,32px);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 30%,var(--bg)))}
.wv-rrow{display:grid;grid-template-columns:minmax(120px,15rem) minmax(0,1fr);gap:16px;align-items:center;padding:14px 0}
.wv-rrow+.wv-rrow{border-top:1px dashed var(--line)}
.wv-rrow .wv-rl b{display:block;font-weight:500}
.wv-rrow .wv-rl span{font-size:14px;color:var(--faint)}
.wv-track{position:relative;height:34px}
.wv-track::before{content:"";position:absolute;inset-inline:0;top:50%;height:1px;background:var(--line2)}
.wv-mark{position:absolute;top:50%;inset-inline-start:0;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(71,222,213,.6)}
.wv-mark.ping{animation:ping 1.1s var(--ease)}
@keyframes ping{from{box-shadow:0 0 0 0 rgba(71,222,213,.7)}to{box-shadow:0 0 0 22px rgba(71,222,213,0)}}
.wv-band{position:absolute;top:50%;height:14px;margin-top:-7px;inset-inline-start:33.333%;width:50%;border:1px solid color-mix(in srgb,var(--blue) 60%,transparent);border-radius:999px;overflow:hidden}
.wv-band i{position:absolute;inset-block:0;inset-inline-start:0;width:100%;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--blue) 55%,transparent) 0 6px,color-mix(in srgb,var(--blue) 25%,transparent) 6px 12px)}
.wv-axis{display:grid;grid-template-columns:minmax(120px,15rem) minmax(0,1fr);gap:16px;margin-top:8px}
.wv-ticks{position:relative;height:22px;font-size:12px;color:var(--faint);font-family:var(--f-mono)}
.wv-ticks span{position:absolute;top:0;white-space:nowrap;transform:translateX(-50%)}
html[dir="rtl"] .wv-ticks span{transform:translateX(50%)}
.wv-ticks span:first-child{transform:none}
.wv-ticks span:last-child{transform:translateX(-100%)}
html[dir="rtl"] .wv-ticks span:last-child{transform:translateX(100%)}
.wv-head{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--ink);opacity:0;border-radius:2px;inset-inline-start:100%}
.wv-head.run{opacity:.8}
.wv-race-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;font-size:14px;color:var(--faint)}
.wv-race-foot button{background:none;border:1px solid var(--line2);border-radius:999px;min-height:44px;padding:0 18px;cursor:pointer;color:var(--ink)}
.wv-race-foot button:hover{border-color:var(--accent);color:var(--accent)}
.wv-reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);margin-top:clamp(40px,5vw,64px)}
.wv-reasons li{padding-top:18px;border-top:2px solid var(--line2)}
.wv-reasons li:first-child{border-color:var(--accent)}
.wv-reasons h3{font-size:19px;font-weight:500;margin-bottom:8px;line-height:1.35}
.wv-reasons p{color:var(--muted);font-size:16px}
@media (max-width:860px){.wv-race-sec .wv-top{grid-template-columns:1fr}.wv-reasons{grid-template-columns:1fr}.wv-rrow,.wv-axis{grid-template-columns:1fr;gap:6px}.wv-axis>span{display:none}}

/* access */
.wv-access .wv-shell{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:start}
.wv-access .wv-lead p{color:var(--muted);margin-top:20px;font-size:18px}
.wv-routes{position:relative;padding-inline-start:30px}
.wv-routes::before{content:"";position:absolute;inset-inline-start:7px;top:22px;bottom:38px;width:2px;background:linear-gradient(180deg,var(--accent),var(--blue))}
.wv-rootnode{display:flex;align-items:center;gap:14px;margin-inline-start:-30px;margin-bottom:10px;font-weight:600;font-size:18px}
.wv-rootnode i{width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 12%,transparent)}
.wv-routes li{position:relative;padding:22px 0 22px 26px;border-bottom:1px solid var(--line)}
html[dir="rtl"] .wv-routes li{padding:22px 26px 22px 0}
.wv-routes li::before{content:"";position:absolute;inset-inline-start:-23px;top:36px;width:26px;height:2px;background:color-mix(in srgb,var(--blue) 70%,transparent)}
.wv-routes li::after{content:"";position:absolute;inset-inline-start:0;top:32px;width:10px;height:10px;border-radius:50%;background:var(--blue)}
.wv-routes h3{font-size:20px;font-weight:500;line-height:1.35}
.wv-routes p{color:var(--muted);margin-top:4px}
.wv-access .wv-ctas{margin-top:32px}
@media (max-width:860px){.wv-access .wv-shell{grid-template-columns:1fr}}

/* saj link */
.wv-link{position:relative;overflow:hidden;border-top:1px solid var(--line)}
.wv-rings{position:absolute;inset:0;pointer-events:none;background:repeating-radial-gradient(circle at 82% 50%,transparent 0 38px,color-mix(in srgb,var(--accent) 16%,transparent) 38px 39px);-webkit-mask:radial-gradient(circle at 82% 50%,#000 0 30%,transparent 62%);mask:radial-gradient(circle at 82% 50%,#000 0 30%,transparent 62%)}
html[dir="rtl"] .wv-rings{background:repeating-radial-gradient(circle at 18% 50%,transparent 0 38px,color-mix(in srgb,var(--accent) 16%,transparent) 38px 39px);-webkit-mask:radial-gradient(circle at 18% 50%,#000 0 30%,transparent 62%);mask:radial-gradient(circle at 18% 50%,#000 0 30%,transparent 62%)}
.wv-link .wv-shell{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:center}
.wv-link .wv-small{color:var(--sand);font-size:15px;margin-bottom:14px}
.wv-link .wv-lead p{color:var(--muted);margin-top:18px;font-size:18px;max-width:46ch}
.wv-plat{margin-top:14px;font-size:14px;color:var(--faint);display:flex;flex-wrap:wrap;gap:6px 18px}
.wv-feat{margin-top:36px;display:grid;gap:0}
.wv-feat div{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:6px 24px}
.wv-feat dt{font-weight:500}
.wv-feat dd{color:var(--muted);font-size:16px}
.wv-vcard{justify-self:center;width:min(100%,340px);background:var(--bg);border:1px solid var(--line2);border-radius:22px;padding:18px;display:flex;gap:14px;align-items:center;box-shadow:0 40px 120px -40px rgba(71,222,213,.35)}
.wv-vcard .wv-play{flex:none;width:48px;height:48px;border-radius:50%;background:var(--accent);display:grid;place-items:center;border:0;cursor:pointer}
.wv-vcard .wv-play svg{width:20px;height:20px;color:var(--accent-ink)}
html[dir="rtl"] .wv-vcard .wv-play svg{transform:scaleX(-1)}
.wv-vcard .wv-bars{flex:1;display:flex;align-items:center;gap:3px;height:44px}
.wv-vcard .wv-bars i{flex:1;background:color-mix(in srgb,var(--accent) 70%,transparent);border-radius:2px;min-height:3px;transform-origin:center}
.wv-vcard.playing .wv-bars i{animation:bar 1.2s ease-in-out infinite alternate}
@keyframes bar{from{transform:scaleY(.35)}to{transform:scaleY(1)}}
@media (max-width:860px){.wv-link .wv-shell{grid-template-columns:1fr}.wv-feat div{grid-template-columns:1fr}}

/* footer */
.wv-footer{border-top:1px solid var(--line);padding-block:56px 40px;font-size:15px}
.wv-fgrid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px}
.wv-fgrid p{color:var(--muted);max-width:34ch;margin-top:12px}
.wv-fgrid h3{font-size:14px;font-weight:500;color:var(--faint);margin-bottom:12px}
.wv-fgrid li{margin-bottom:8px}
.wv-fgrid a{text-decoration:none;color:var(--muted)}
.wv-fgrid a:hover{color:var(--ink)}
.wv-fbase{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:20px;border-top:1px solid var(--line);color:var(--faint);font-size:13.5px}
@media (max-width:860px){.wv-fgrid{grid-template-columns:1fr 1fr}.wv-fgrid>div:first-child{grid-column:1/-1}}

@media (prefers-reduced-motion:reduce){
  .wv *,.wv *::before,.wv *::after{animation:none!important;transition:none!important}
}

/* Nastaliq needs more vertical room than Naskh. */
html[lang="ur"] .wv-h2{line-height:1.8}
html[lang="ur"] .wv-hero h1{line-height:1.7}
html[lang="ur"] .wv-lede{line-height:2.1}
