/* batterjeeplas.com v4. A dark, scroll-told story: four pinned scenes (powder becomes a tank, a statement that lights up word by word, a sideways production line, a colour dial), then the colour range, product, quality, applications, export and contact, with a guided chat. Every motion is tied to scroll and eased, never to a timer. Built from mockup v3 (2026-10-01). */
:root {
  color-scheme: dark;
  --ink-0: #040B16;
  --ink-1: #07132A;
  --ink-2: #0C1D3A;
  --text: #EAF0F4;
  --mute: #8D9EB0;
  --line: rgba(255, 255, 255, .09);
  --glass: rgba(255, 255, 255, .045);
  --teal: #1FA898;
  --teal-2: #74DCCF;
  --paper: #F4F7F8;
  --paper-ink: #0B1A2F;
  --paper-mute: #5B6B7C;
  --paper-line: #DFE6EB;
  --f-head: "Readex Pro", "IBM Plex Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
  --f-body: "IBM Plex Sans Arabic", "Readex Pro", "Segoe UI", Tahoma, Arial, sans-serif;
  --gutter: clamp(20px, 5vw, 64px);
  --max: 1280px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --svh: 100vh;
}
@supports (height: 100svh) { :root { --svh: 100svh; } }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--ink-0); }
body { margin: 0; background: var(--ink-0); color: var(--text); font-family: var(--f-body); font-size: 16.5px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
img, svg, canvas { max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--teal-2); outline-offset: 3px; }
html[data-lang="en"] .ar, html[data-lang="ar"] .en { display: none !important; }
.ltr { direction: ltr; unicode-bidi: isolate; display: inline-block; }
.shell { max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
h1, h2, h3 { font-family: var(--f-head); margin: 0; font-weight: 300; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 6vw, 5.4rem); line-height: 1.02; letter-spacing: -.035em; }
h2 { font-size: clamp(2rem, 4.6vw, 3.9rem); line-height: 1.08; letter-spacing: -.03em; }
h3 { font-size: 1.2rem; font-weight: 400; line-height: 1.35; letter-spacing: -.01em; }
h1 b, h2 b { font-weight: 500; color: var(--teal-2); }
html[data-lang="ar"] h1, html[data-lang="ar"] h2, html[data-lang="ar"] h3 { letter-spacing: 0; line-height: 1.38; font-weight: 400; }
html[data-lang="ar"] h1 b, html[data-lang="ar"] h2 b { font-weight: 600; }
p { margin: 0; }
.lede { color: var(--mute); font-size: clamp(1rem, 1.3vw, 1.14rem); max-width: 54ch; }
.eye { font-family: var(--f-head); font-size: .74rem; font-weight: 400; letter-spacing: .28em; text-transform: uppercase; color: var(--teal-2); display: inline-flex; align-items: center; gap: 14px; }
.eye::before { content: ""; width: 34px; height: 1px; background: currentColor; }
html[data-lang="ar"] .eye { letter-spacing: 0; font-size: .9rem; }
.grain { position: fixed; inset: 0; pointer-events: none; z-index: 60; opacity: .05; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* buttons */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 52px; padding: 0 28px; border-radius: 99px; font-family: var(--f-head); font-weight: 400; font-size: .95rem; letter-spacing: .01em; border: 1px solid transparent; cursor: pointer; white-space: nowrap; transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); overflow: hidden; }
.btn-teal { background: var(--teal); color: #fff; }
.btn-teal:hover { background: #18998a; }
.btn-line { border-color: rgba(255,255,255,.28); color: var(--text); }
.btn-line:hover { border-color: #fff; }
.btn-white { background: #fff; color: var(--paper-ink); }
.btn .arr { transition: transform .4s var(--ease); display: inline-block; }
.btn:hover .arr { transform: translateX(5px); }
html[dir="rtl"] .btn .arr { transform: scaleX(-1); }
html[dir="rtl"] .btn:hover .arr { transform: scaleX(-1) translateX(5px); }

/* header */
.hdr { position: fixed; inset-inline: 0; top: 0; z-index: 50; padding-top: env(safe-area-inset-top, 0px); transition: background .5s var(--ease), border-color .5s; border-bottom: 1px solid transparent; }
.hdr.solid { background: rgba(4, 11, 22, .72); backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4); border-bottom-color: var(--line); }
.hdr .shell { height: 74px; display: flex; align-items: center; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand img { height: 32px; width: auto; }
.brand b { font-family: var(--f-head); font-weight: 400; letter-spacing: .22em; font-size: .95rem; }
.nav { display: flex; gap: 30px; margin-inline-start: auto; font-size: .9rem; color: var(--mute); }
.nav a { transition: color .3s; }
.nav a:hover { color: #fff; }
.lang { background: transparent; border: 1px solid var(--line); border-radius: 99px; height: 38px; padding: 0 14px; cursor: pointer; font-size: .85rem; color: var(--text); }
.lang:hover { border-color: rgba(255,255,255,.4); }
.hdr .btn { height: 40px; padding: 0 18px; font-size: .86rem; }
.menu { display: none; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: transparent; cursor: pointer; position: relative; }
.menu i { position: absolute; left: 12px; right: 12px; height: 1.5px; background: var(--text); transition: transform .4s var(--ease), top .4s var(--ease); }
.menu i:first-child { top: 16px; } .menu i:last-child { top: 24px; }
.menu[aria-expanded="true"] i:first-child { top: 20px; transform: rotate(45deg); }
.menu[aria-expanded="true"] i:last-child { top: 20px; transform: rotate(-45deg); }
.progress { position: fixed; z-index: 51; top: 0; inset-inline: 0; height: 2px; pointer-events: none; }
.progress i { display: block; height: 100%; background: linear-gradient(90deg, var(--teal), var(--teal-2)); transform-origin: 0 50%; transform: scaleX(0); }
html[dir="rtl"] .progress i { transform-origin: 100% 50%; }
.overlay { position: fixed; inset: 0; z-index: 49; background: rgba(4, 11, 22, .97); display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 100px var(--gutter) 40px; opacity: 0; visibility: hidden; transition: opacity .5s var(--ease), visibility .5s; }
.overlay.open { opacity: 1; visibility: visible; }
.overlay a { font-family: var(--f-head); font-weight: 300; font-size: clamp(1.8rem, 7vw, 2.6rem); line-height: 1.5; opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.overlay.open a { opacity: 1; transform: none; }
.overlay a:nth-child(2) { transition-delay: .05s; } .overlay a:nth-child(3) { transition-delay: .1s; } .overlay a:nth-child(4) { transition-delay: .15s; } .overlay a:nth-child(5) { transition-delay: .2s; } .overlay a:nth-child(6) { transition-delay: .25s; } .overlay a:nth-child(7) { transition-delay: .3s; }
.overlay small { margin-top: 26px; color: var(--mute); font-size: .9rem; }
@media (max-width: 1080px) { .nav { display: none; } .menu { display: block; } .lang { margin-inline-start: auto; } }
@media (max-width: 560px) { .hdr .btn { display: none; } .brand b { display: none; } .hdr .shell { gap: 10px; } }

/* pinned scenes */
.pin { position: relative; }
.sticky { position: relative; }
.js .pin { height: calc(var(--svh) * var(--h, 3)); }
.js .pin > .sticky { position: sticky; top: 0; height: var(--svh); overflow: hidden; }
.still .pin { height: auto !important; }
.still .pin > .sticky { position: relative !important; height: auto !important; min-height: var(--svh); }

/* scene 1: hero */
.hero { background: radial-gradient(120% 80% at 70% 40%, #0E2547 0%, var(--ink-0) 62%); }
html[dir="rtl"] .hero { background: radial-gradient(120% 80% at 30% 40%, #0E2547 0%, var(--ink-0) 62%); }
#gl { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hero .shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(4,11,22,.75) 0%, rgba(4,11,22,0) 55%); }
html[dir="rtl"] .hero .shade { background: linear-gradient(-90deg, rgba(4,11,22,.75) 0%, rgba(4,11,22,0) 55%); }
.blocks { position: relative; display: flex; flex-direction: column; gap: 80px; padding: 120px var(--gutter) 80px; }
.blk { display: flex; flex-direction: column; gap: 22px; max-width: 600px; }
.js .blocks { position: absolute; inset: 0; padding: 0; display: block; pointer-events: none; }
.js .blk { position: absolute; inset-inline-start: var(--gutter); top: 50%; width: min(600px, 46vw); opacity: var(--o, 0); transform: translateY(calc(-50% + var(--y, 0px))); will-change: opacity, transform; }
.js .blk.on { pointer-events: auto; }
.still .blk:not(#b1) { display: none; }
.cta { display: flex; flex-wrap: wrap; gap: 12px; }
.colour-now { align-self: flex-start; display: inline-flex; align-items: center; gap: 12px; padding: 8px 18px 8px 10px; border-radius: 99px; background: var(--glass); border: 1px solid var(--line); font-size: .86rem; color: var(--mute); }
.colour-now i { width: 22px; height: 22px; border-radius: 50%; background: var(--c, #fff); box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); transition: background .6s; }
.colour-now b { font-weight: 500; color: #fff; letter-spacing: .06em; direction: ltr; unicode-bidi: isolate; }
.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); }
.stat { padding: 18px 0 4px; opacity: var(--o, 1); transform: translateY(var(--y, 0px)); }
.stat:nth-child(odd) { padding-inline-end: 20px; }
.stat:nth-child(n+3) { border-top: 1px solid var(--line); }
.stat b { display: block; font-family: var(--f-head); font-weight: 200; font-size: clamp(2.2rem, 4vw, 3.2rem); line-height: 1; color: #fff; direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .stat b { text-align: right; }
.stat b small { font-size: .42em; color: var(--teal-2); font-weight: 400; margin-inline-start: 4px; }
.stat span { font-size: .86rem; color: var(--mute); }
.cue { position: absolute; bottom: calc(26px + env(safe-area-inset-bottom, 0px)); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--mute); opacity: var(--o, 1); pointer-events: none; }
html[data-lang="ar"] .cue { letter-spacing: 0; font-size: .8rem; }
.cue i { width: 1px; height: 46px; background: linear-gradient(var(--teal-2), transparent); transform-origin: top; animation: cue 2.2s var(--ease) infinite; }
@keyframes cue { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }
@media (max-width: 900px) {
  .hero .shade { background: linear-gradient(0deg, rgba(4,11,22,.95) 0%, rgba(4,11,22,.6) 38%, rgba(4,11,22,0) 62%); }
  html[dir="rtl"] .hero .shade { background: linear-gradient(0deg, rgba(4,11,22,.95) 0%, rgba(4,11,22,.6) 38%, rgba(4,11,22,0) 62%); }
  .js .blk { top: auto; bottom: calc(34px + env(safe-area-inset-bottom, 0px)); inset-inline: var(--gutter); width: auto; transform: translateY(var(--y, 0px)); gap: 16px; }
  h1 { font-size: clamp(2.2rem, 9vw, 3.2rem); }
  .js #b1 .lede { display: none; }
  .cue { display: none; }
  .stat b { font-size: 2rem; }
}

/* scene 2: statement */
.statement .sticky { display: grid; place-items: center; }
.statement .shell { display: flex; flex-direction: column; gap: 28px; }
.words { font-family: var(--f-head); font-weight: 300; font-size: clamp(1.6rem, 3.6vw, 3.2rem); line-height: 1.32; letter-spacing: -.02em; max-width: 24ch; }
html[data-lang="ar"] .words { letter-spacing: 0; line-height: 1.6; max-width: 26ch; }
.words .w { opacity: .14; transition: opacity .15s linear; }
.still .words .w { opacity: 1; }
.statement .sticky { padding-block: 100px; }

/* scene 3: process — a vertical production line; scrolling takes the material, and you, down it (owner, 2026-10-13) */
.process .sticky { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; gap: clamp(20px, 4vw, 64px); padding-inline: var(--gutter); max-width: var(--max); margin-inline: auto; }
.pcopy { display: flex; flex-direction: column; gap: 18px; padding-top: 70px; }
.pcopy h2 { font-size: clamp(1.9rem, 3.6vw, 3.1rem); }
.steps { list-style: none; margin: 8px 0 0; padding: 0 0 0 0; position: relative; display: flex; flex-direction: column; gap: 6px; }
.steps::before { content: ""; position: absolute; inset-inline-start: 17px; top: 14px; bottom: 14px; width: 1px; background: var(--line); }
.steps::after { content: ""; position: absolute; inset-inline-start: 17px; top: 14px; bottom: 14px; width: 1px; background: linear-gradient(180deg, rgba(116,220,207,.2), #74DCCF); box-shadow: 0 0 8px rgba(116,220,207,.6); transform-origin: top; transform: scaleY(var(--sp, 0)); }
.steps li { display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: start; opacity: .38; transition: opacity .4s var(--ease); }
.steps li.on, .steps li.done { opacity: 1; }
.steps li.done:not(.on) { opacity: .62; }
.steps .n { position: relative; z-index: 1; width: 35px; height: 35px; border-radius: 50%; display: grid; place-items: center; font-family: var(--f-head); font-size: .74rem; letter-spacing: .04em; color: var(--teal-2); background: #061a2c; border: 1px solid rgba(116,220,207,.35); direction: ltr; transition: background .4s, color .4s, box-shadow .4s; }
.steps li.on .n { background: var(--teal); color: #fff; border-color: var(--teal); box-shadow: 0 0 18px rgba(116,220,207,.55); }
.steps h3 { margin: 4px 0 0; font-size: 1.12rem; font-weight: 500; }
.steps p { margin: 0; color: var(--mute); font-size: .95rem; max-width: 40ch; max-height: 0; overflow: hidden; opacity: 0; transition: max-height .5s var(--ease), opacity .4s, margin .4s; }
.steps li.on p { max-height: 120px; opacity: 1; margin-top: 4px; }
.pstage { position: relative; height: var(--svh); overflow: hidden; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 16%, #000 84%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 16%, #000 84%, transparent 100%); }
#pline { position: absolute; top: 0; left: 0; width: 100%; height: auto; overflow: visible; will-change: transform; }
#pline .pipe { fill: none; stroke: rgba(116,220,207,.16); stroke-width: 12; stroke-linecap: round; stroke-linejoin: round; }
#pline .mline { fill: rgba(116,220,207,.035); stroke: #74DCCF; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
#pline .mhalo { fill: none; stroke: rgba(116,220,207,.16); stroke-width: 9; stroke-linejoin: round; }
#pline .thin { stroke-opacity: .45; fill: none; }
#pline .mv { fill: none; stroke: #74DCCF; stroke-width: 2; stroke-linecap: round; }
#pline .lbl text { fill: var(--mute); font-family: var(--f-head); font-size: 19px; text-anchor: middle; letter-spacing: .04em; }
#pline .lbl text.bagt { fill: #EAF0F4; font-size: 15px; letter-spacing: .14em; direction: ltr; }
#pline .lbl text.grade { fill: #EAF0F4; font-size: 17px; direction: ltr; }
#heaters rect { fill: rgba(255,120,40,var(--heat,0)); stroke: rgba(255,150,80,.75); stroke-width: 1.6; }
#pline .scan { stroke: #b9fff4; stroke-width: 2; opacity: 0; filter: drop-shadow(0 0 6px #74DCCF); }
#pline .check { fill: none; stroke: #6FE0A0; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
#pline .kg { fill: #b9fff4; font-family: var(--f-head); font-size: 22px; text-anchor: middle; direction: ltr; }
#truck, #pallet { fill: rgba(116,220,207,.05); stroke: #74DCCF; stroke-width: 2; stroke-linejoin: round; }
#pallet rect { fill: rgba(143,200,255,.22); }
#pline .road { stroke: rgba(116,220,207,.35); stroke-width: 2; stroke-dasharray: 18 14; }
#flow circle { stroke: none; }
.still .process .sticky { align-items: start; }
.still .pstage { height: auto; -webkit-mask-image: none; mask-image: none; }
.still #pline { position: relative; transform: none !important; }
.still .steps p { max-height: none; opacity: 1; }
.still .steps li { opacity: 1; }
@media (max-width: 900px) {
  .process .sticky { grid-template-columns: 1fr; grid-template-rows: auto 1fr; align-items: stretch; gap: 0; padding-top: 74px; }
  .pcopy { padding-top: 0; gap: 8px; }
  .pcopy h2, .pcopy .lede { display: none; }
  .steps::before, .steps::after { display: none; }
  .steps li { display: none; }
  .steps li.on { display: grid; opacity: 1; }
  .steps li.on p { max-height: 90px; }
  .pstage { height: auto; min-height: 0; }
  .still .steps li { display: grid; }
  .still .pcopy h2 { display: block; }
}

/* scene 4: colour dial */
.dial .sticky { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 20px; padding-inline: var(--gutter); max-width: var(--max); margin-inline: auto; }
.dial-copy { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.dial-copy .note { font-size: .8rem; color: var(--mute); max-width: 42ch; }
.dial-stage { position: relative; width: min(100%, 68vh, 640px); aspect-ratio: 1; justify-self: center; min-width: 0; }
.ring { position: absolute; inset: 0; will-change: transform; }
.ring button { position: absolute; left: 50%; top: 50%; width: 8%; aspect-ratio: 1; margin: -4% 0 0 -4%; border-radius: 50%; border: 0; padding: 0; cursor: pointer; background: radial-gradient(circle at 32% 28%, rgba(255,255,255,.7), rgba(255,255,255,0) 45%), var(--c); box-shadow: inset 0 -4px 8px rgba(0,0,0,.25), 0 0 0 1px rgba(255,255,255,.12); transform: rotate(var(--a)) translateY(calc(var(--r) * -1)) scale(var(--s, 1)); transition: transform .5s var(--ease), box-shadow .5s; }
.ring button.on { --s: 1.45; box-shadow: inset 0 -4px 8px rgba(0,0,0,.25), 0 0 0 3px var(--ink-0), 0 0 0 4px var(--teal-2); }
.marker { position: absolute; left: 50%; top: -2%; width: 1px; height: 6%; background: var(--teal-2); }
.dial-mid { position: absolute; inset: 15% 18% 14%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; }
.dial-mid .tank { position: relative; width: 58%; aspect-ratio: 607 / 752; }
.dial-mid .tank img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 24px 30px rgba(0,0,0,.45)); transition: opacity .35s linear; }
.dial-mid .tank img.out { opacity: 0; }
.dial-mid b { font-family: var(--f-head); font-weight: 400; font-size: clamp(.95rem, 1.8vw, 1.3rem); letter-spacing: .08em; direction: ltr; line-height: 1.2; }
.dial-mid > span { font-size: .8rem; color: var(--mute); direction: ltr; }
.dial-mid button { margin-top: 4px; height: 36px; padding: 0 16px; font-size: .8rem; }
@media (max-width: 900px) {
  .dial .sticky { grid-template-columns: 1fr; grid-template-rows: auto 1fr; align-content: center; gap: 8px; padding-top: 90px; padding-bottom: 24px; }
  .dial-copy { gap: 10px; }
  .dial-copy .lede, .dial-copy .note { display: none; }
  .dial-stage { width: min(100%, 52vh); }
  .dial-mid button { height: 32px; padding: 0 12px; }
}

/* light chapter */
.light { background: var(--paper); color: var(--paper-ink); }
.light .lede { color: var(--paper-mute); }
.light .eye { color: var(--teal); }
.light h1 b, .light h2 b { color: var(--teal); }
.sec { padding-block: clamp(90px, 12vw, 160px); position: relative; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }
.head { display: flex; flex-direction: column; gap: 18px; margin-bottom: clamp(36px, 5vw, 64px); max-width: 760px; }

/* product */
.bag-wrap { display: grid; place-items: center; min-width: 0; }

.specs { border-top: 1px solid var(--paper-line); }
.spec { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--paper-line); font-size: .96rem; opacity: var(--o, 1); transform: translateY(var(--y, 0)); }
.spec span:first-child { color: var(--paper-mute); }
.tbd { display: inline-block; font-size: .76rem; color: var(--teal); border: 1px dashed currentColor; border-radius: 6px; padding: 0 8px; }
.dls { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.dl { height: 48px; padding: 0 18px; border-radius: 12px; border: 1px solid var(--paper-line); background: #fff; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: .9rem; color: var(--paper-ink); transition: border-color .3s; }
.dl:hover { border-color: var(--teal); }
.dl svg { color: var(--teal); }

/* quality */
.quality { background: var(--ink-1); }
.qgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 24px; overflow: hidden; }
.q { background: var(--ink-1); padding: clamp(26px, 3vw, 40px); display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.q p { color: var(--mute); font-size: .95rem; }
.q .vis { height: 200px; display: grid; place-items: center; position: relative; }
.gauge { width: 180px; height: 180px; position: relative; }
.gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.gauge .mid { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.gauge .mid b { font-family: var(--f-head); font-weight: 300; font-size: 2.4rem; line-height: 1; }
.gauge .mid span { font-size: .8rem; color: var(--mute); direction: ltr; font-variant-numeric: tabular-nums; }
.doc { width: 140px; height: 176px; border-radius: 8px; background: #fff; padding: 16px 14px; display: flex; flex-direction: column; gap: 9px; box-shadow: 0 30px 40px -24px rgba(0,0,0,.6); }
.doc .hd { height: 9px; width: 58%; border-radius: 3px; background: var(--ink-2); }
.doc i { display: block; height: 5px; border-radius: 3px; background: #DCE3E8; width: calc(var(--w) * var(--k, 1)); }
.stamp { position: absolute; inset-inline-end: 12%; bottom: 0; width: 92px; height: 92px; opacity: var(--o, 1); transform: rotate(-14deg) scale(calc(1 + (1 - var(--o, 1)) * .8)); filter: drop-shadow(0 8px 12px rgba(0,0,0,.45)); }
.stamp svg, .stamp img { width: 100%; height: 100%; display: block; object-fit: contain; }
.checks { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 12px; }
.checks li { display: flex; align-items: center; gap: 12px; font-size: .95rem; opacity: var(--o, 1); transform: translateX(calc((1 - var(--o, 1)) * -14px)); }
html[dir="rtl"] .checks li { transform: translateX(calc((1 - var(--o, 1)) * 14px)); }
.checks svg { flex: none; width: 24px; height: 24px; padding: 5px; border-radius: 50%; background: var(--teal); color: #fff; }
@media (max-width: 960px) { .qgrid { grid-template-columns: 1fr; } }

/* applications */
.apps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.app { border-radius: 24px; border: 1px solid var(--line); background: linear-gradient(180deg, var(--ink-2), var(--ink-1)); overflow: hidden; transform: translateY(var(--y, 0)); will-change: transform; min-width: 0; }
.app .art { aspect-ratio: 16 / 11; display: grid; place-items: center; color: var(--teal-2); background: radial-gradient(circle at 50% 60%, var(--g, rgba(31,168,152,.25)), transparent 62%); }
.app .art img { width: auto; max-width: 68%; max-height: 84%; height: auto; opacity: calc(1 - var(--draw, 0)); transform: translateY(calc(var(--draw, 0) * 24px)) scale(calc(1 - var(--draw, 0) * .12)); }
.app .txt { padding: 4px 26px 28px; display: flex; flex-direction: column; gap: 10px; }
.app p { color: var(--mute); font-size: .95rem; }
@media (max-width: 900px) { .apps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .app .txt { padding: 2px 18px 22px; } }
@media (max-width: 560px) { .apps { grid-template-columns: 1fr; } }

/* export */
.export { background: var(--ink-0); }
.map { border-radius: 24px; border: 1px solid var(--line); background: radial-gradient(circle at 48% 55%, #10284A, var(--ink-0) 70%); padding: 8px; min-width: 0; }
.map svg { width: 100%; height: auto; max-height: min(82vh, 760px); display: block; margin-inline: auto; }
.map .lane { stroke-dasharray: 1; stroke-dashoffset: var(--draw, 0); }
.map .lit { opacity: var(--o, 1); transition: opacity .3s; }
.terms { display: flex; flex-wrap: wrap; gap: 8px; }
.terms span { padding: 6px 14px; border-radius: 99px; border: 1px solid var(--line); font-size: .85rem; direction: ltr; unicode-bidi: isolate; }
.ex-copy { display: flex; flex-direction: column; gap: 22px; min-width: 0; }

/* cta + contact */
.band-sec { background: var(--ink-0); padding-bottom: 0; }
.band { border-radius: 28px; padding: clamp(36px, 6vw, 72px); background: linear-gradient(115deg, #1FA898 0%, #126F67 35%, #0C1D3A 75%); background-size: 220% 100%; background-position: var(--bp, 0%) 50%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.band h2 { max-width: 18ch; font-size: clamp(1.7rem, 3.4vw, 2.8rem); }
.band p { color: rgba(255,255,255,.8); margin-top: 10px; }
.contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 88px); }
.info { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.info ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; }
.info li { padding: 16px 0; border-top: 1px solid var(--paper-line); display: flex; flex-direction: column; gap: 2px; }
.info li small { color: var(--paper-mute); font-size: .8rem; }
#rfq { background: #fff; border: 1px solid var(--paper-line); border-radius: 24px; padding: clamp(22px, 4vw, 40px); display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; min-width: 0; box-shadow: 0 50px 80px -60px rgba(11,26,47,.45); }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .84rem; color: var(--paper-ink); }
.field input, .field textarea { width: 100%; border: 1px solid var(--paper-line); background: var(--paper); border-radius: 12px; padding: 13px 14px; font-size: 1rem; color: var(--paper-ink); transition: border-color .25s, box-shadow .25s, background .25s; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--teal); background: #fff; box-shadow: 0 0 0 4px rgba(31,168,152,.14); }
.field textarea { min-height: 110px; resize: vertical; }
.foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.sent { color: var(--teal); font-size: .9rem; }
@media (max-width: 900px) { .contact { grid-template-columns: 1fr; } }
@media (max-width: 520px) { #rfq { grid-template-columns: 1fr; } }

/* footer */
footer { background: var(--ink-0); color: var(--mute); font-size: .9rem; border-top: 1px solid var(--line); }
footer .top { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 32px; padding-block: 64px 44px; }
footer .col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
footer .col b { color: #fff; font-family: var(--f-head); font-weight: 400; margin-bottom: 6px; }
footer a:hover { color: #fff; }
footer img { height: 38px; width: auto; align-self: flex-start; }
footer .bot { border-top: 1px solid var(--line); }
footer .bot .shell { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-block: 20px calc(20px + env(safe-area-inset-bottom, 0px)); font-size: .8rem; }
@media (max-width: 860px) { footer .top { grid-template-columns: 1fr 1fr; } footer .top .col:first-child { grid-column: 1 / -1; } }

/* ---------- v4 additions ---------- */

/* statement: membership line and mission */
.member { font-size: .86rem; color: var(--teal-2); }
.mission { color: var(--mute); max-width: 60ch; font-size: clamp(.98rem, 1.2vw, 1.08rem); }
.mission b { color: #fff; font-weight: 500; }
.js .mission, .js .member { opacity: var(--o, 0); transform: translateY(var(--y, 0px)); }
.still .mission, .still .member { opacity: 1; transform: none; }

/* colour range */
.range .head { margin-bottom: 26px; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.chip { height: 40px; padding: 0 16px; border-radius: 99px; border: 1px solid var(--paper-line); background: #fff; cursor: pointer; font-size: .88rem; color: var(--paper-ink); display: inline-flex; align-items: center; gap: 8px; transition: background .3s, color .3s, border-color .3s; }
.chip:hover { border-color: var(--paper-ink); }
.chip[aria-pressed="true"] { background: var(--paper-ink); border-color: var(--paper-ink); color: #fff; }
.chip i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.18); }
.chip i + i { margin-inline-start: -12px; }
.grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1180px) { .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) { .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } }
@media (max-width: 480px) { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sw { position: relative; border-radius: 20px; background: #fff; border: 1px solid var(--paper-line); overflow: hidden; display: flex; flex-direction: column; min-width: 0; opacity: var(--o, 1); transform: translateY(var(--y, 0px)); transition: box-shadow .5s var(--ease), border-color .3s; }
.sw:hover { box-shadow: 0 34px 50px -34px rgba(11,26,47,.45); }
.sw[hidden] { display: none; }
.sw.picked { border-color: var(--teal); box-shadow: 0 0 0 1px var(--teal); }
.pic { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1.08; border: 0; padding: 0; cursor: pointer; background: #fff radial-gradient(circle at 50% 78%, var(--glow, #eef3f5) 0%, #fff 68%); overflow: hidden; }
.pic img { position: absolute; transition: opacity .55s var(--ease), transform .8s var(--ease); }
.pic .tank { inset: 7% 12% 5%; width: 76%; height: 88%; object-fit: contain; filter: drop-shadow(0 14px 14px rgba(11,26,47,.2)); opacity: 0; transform: scale(.9); }
.pic .pow { inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pic .tag { position: absolute; top: 10px; inset-inline-start: 10px; font-size: .7rem; line-height: 1; padding: 6px 10px; border-radius: 99px; background: rgba(255,255,255,.92); color: #0B1A2F; font-weight: 500; opacity: 0; transition: opacity .4s; }
.sw.flip .pow { opacity: 0; transform: scale(1.1); }
.sw.flip .tank { opacity: 1; transform: none; }
.sw.flip .tag { opacity: 1; }
@media (hover: hover) {
  .pic:hover .pow { opacity: 0; transform: scale(1.1); }
  .pic:hover .tank { opacity: 1; transform: none; }
  .pic:hover .tag { opacity: 1; }
}
.meta { display: flex; align-items: center; gap: 8px; padding: 11px 10px 12px 14px; border-top: 1px solid var(--paper-line); min-width: 0; }
html[dir="rtl"] .meta { padding: 11px 14px 12px 10px; }
.meta div { min-width: 0; }
.meta b { display: block; font-family: var(--f-head); font-weight: 500; font-size: .82rem; letter-spacing: .03em; line-height: 1.3; direction: ltr; unicode-bidi: isolate; overflow-wrap: anywhere; }
.meta span { display: block; font-size: .74rem; color: var(--paper-mute); direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .meta b, html[dir="rtl"] .meta span { text-align: right; }
.add { margin-inline-start: auto; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--paper-line); background: #fff; color: var(--paper-ink); cursor: pointer; display: grid; place-items: center; transition: background .3s, border-color .3s, color .3s; }
.add:hover { border-color: var(--teal); }
.add svg { width: 15px; height: 15px; }
.add .ok, .add[aria-pressed="true"] .plus { display: none; }
.add[aria-pressed="true"] .ok { display: block; }
.add[aria-pressed="true"] { background: var(--teal); border-color: var(--teal); color: #fff; }
.range-note { margin-top: 22px; font-size: .82rem; color: var(--paper-mute); }

/* request tray */
.tray { position: fixed; z-index: 45; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); inset-inline-start: 20px; display: flex; align-items: center; gap: 12px; padding: 7px 7px 7px 14px; border-radius: 99px; background: rgba(7,19,42,.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.14); color: var(--text); box-shadow: 0 20px 40px -18px rgba(0,0,0,.7); transform: translateY(160%); opacity: 0; visibility: hidden; transition: transform .6s var(--ease), opacity .4s, visibility .6s; max-width: calc(100vw - 112px); }
html[dir="rtl"] .tray { padding: 7px 14px 7px 7px; }
.tray.show { transform: none; opacity: 1; visibility: visible; }
.tray .dots { display: flex; flex: none; }
.tray .dots i { width: 18px; height: 18px; border-radius: 50%; background: var(--c); border: 2px solid #0B1A33; margin-inline-start: -7px; }
.tray .dots i:first-child { margin-inline-start: 0; }
.tray > span { font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tray .btn { height: 38px; padding: 0 16px; font-size: .84rem; flex: none; }
@media (max-width: 560px) { .tray { inset-inline-start: 12px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); gap: 8px; } .tray > span { display: none; } }

/* product: download */
a.dl { text-decoration: none; }
.spec small { color: var(--paper-mute); font-size: .8rem; }

/* quality: the sun */
.sun { width: 190px; height: 190px; }
.sun svg { width: 100%; height: 100%; overflow: visible; }
.sun .ray { stroke-dasharray: 1; stroke-dashoffset: var(--draw, 0); }
.sun .shield { opacity: var(--o, 1); }

/* export copy */
.ex-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.ex-list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.ex-list li > span:first-child { color: var(--mute); font-size: .86rem; }
@media (max-width: 520px) { .ex-list li { grid-template-columns: 1fr; gap: 2px; } }

/* contact */
.info li a { color: var(--paper-ink); border-bottom: 1px solid var(--paper-line); transition: border-color .3s, color .3s; }
.info li a:hover { color: var(--teal); border-color: var(--teal); }
.info .two { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.social { display: flex; gap: 10px; }
.social a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--paper-line); color: var(--paper-ink); background: #fff; transition: background .3s, color .3s, border-color .3s; }
.social a:hover { background: var(--paper-ink); color: #fff; border-color: var(--paper-ink); }
.info li .social a { border-bottom: 1px solid var(--paper-line); }
.social svg { width: 18px; height: 18px; }
footer .social a { border-color: var(--line); background: transparent; color: var(--text); }
footer .social a:hover { background: var(--teal); border-color: var(--teal); }
.btn-ghost { background: #fff; border-color: var(--paper-line); color: var(--paper-ink); }
.btn-ghost:hover { border-color: var(--paper-ink); }
.btn svg { width: 18px; height: 18px; flex: none; }
.form-note { grid-column: 1 / -1; font-size: .8rem; color: var(--paper-mute); }
.field input.bad { border-color: #D2553F; box-shadow: 0 0 0 4px rgba(210,85,63,.12); }
.foot .sent { flex-basis: 100%; }
footer p.blurb { max-width: 34ch; }

/* ---------- chat ---------- */
.chat-launch { position: fixed; z-index: 70; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); inset-inline-end: 20px; width: 62px; height: 62px; border-radius: 50%; border: 0; cursor: pointer; color: #fff; background: linear-gradient(140deg, #74DCCF 0%, #1FA898 50%, #126F67 100%); box-shadow: 0 18px 40px -12px rgba(31,168,152,.75), inset 0 1px 0 rgba(255,255,255,.4); display: grid; place-items: center; transition: transform .5s var(--ease), opacity .3s; }
.chat-launch:hover { transform: translateY(-3px); }
.chat-launch > svg { width: 28px; height: 28px; }
.chat-launch::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid rgba(116,220,207,.6); animation: ping 3s var(--ease) infinite; pointer-events: none; }
@keyframes ping { 0% { transform: scale(.9); opacity: .9; } 70%, 100% { transform: scale(1.4); opacity: 0; } }
.chat-launch .hint { position: absolute; inset-inline-end: 76px; top: 50%; margin-top: -19px; white-space: nowrap; background: #fff; color: var(--paper-ink); font-size: .86rem; line-height: 20px; padding: 9px 14px; border-radius: 14px; box-shadow: 0 16px 30px -14px rgba(0,0,0,.5); opacity: 0; transform: translateX(10px); transition: opacity .5s var(--ease), transform .5s var(--ease); pointer-events: none; }
html[dir="rtl"] .chat-launch .hint { transform: translateX(-10px); }
.chat-launch.nudge .hint { opacity: 1; transform: none; }
.chat-on .chat-launch { opacity: 0; pointer-events: none; transform: scale(.6); }
.chat { position: fixed; z-index: 71; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); inset-inline-end: 20px; width: min(400px, calc(100vw - 40px)); height: min(640px, calc(var(--svh) - 40px)); display: flex; flex-direction: column; border-radius: 26px; overflow: hidden; background: rgba(7,19,42,.96); -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 40px 90px -30px rgba(0,0,0,.85); color: var(--text); transform-origin: 100% 100%; transform: translateY(18px) scale(.96); opacity: 0; visibility: hidden; transition: transform .45s var(--ease), opacity .35s, visibility .45s; }
html[dir="rtl"] .chat { transform-origin: 0 100%; }
.chat.open { transform: none; opacity: 1; visibility: visible; }
@media (max-width: 560px) { .chat { inset: 0; width: auto; height: auto; border-radius: 0; border: 0; } }
.chat-hd { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, rgba(31,168,152,.18), rgba(31,168,152,0)); }
@media (max-width: 560px) { .chat-hd { padding-top: calc(14px + env(safe-area-inset-top, 0px)); } }
.chat-av { width: 42px; height: 42px; flex: none; border-radius: 50%; background: #0C1D3A; display: grid; place-items: center; box-shadow: inset 0 0 0 1px rgba(116,220,207,.45); overflow: hidden; }
.chat-av img { width: 30px; height: auto; }
.chat-hd div { min-width: 0; }
.chat-hd b { display: block; font-family: var(--f-head); font-weight: 500; font-size: .98rem; line-height: 1.25; }
.chat-hd small { display: flex; align-items: center; gap: 6px; font-size: .76rem; color: var(--mute); }
.chat-hd small i { width: 7px; height: 7px; border-radius: 50%; background: #3BD67F; box-shadow: 0 0 0 3px rgba(59,214,127,.18); flex: none; }
.chat-x { margin-inline-start: auto; flex: none; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: transparent; cursor: pointer; display: grid; place-items: center; }
.chat-x:hover { border-color: rgba(255,255,255,.4); }
.chat-body { flex: 1; overflow-y: auto; padding: 18px 14px 8px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; }
.msg { max-width: 88%; padding: 10px 14px; border-radius: 18px; font-size: .92rem; line-height: 1.62; overflow-wrap: anywhere; animation: msgIn .45s var(--ease) both; }
@keyframes msgIn { from { opacity: 0; transform: translateY(8px); } }
.msg.bot { align-self: flex-start; background: rgba(255,255,255,.06); border: 1px solid var(--line); border-end-start-radius: 6px; }
.msg.me { align-self: flex-end; background: var(--teal); color: #fff; border-end-end-radius: 6px; white-space: pre-wrap; }
.msg a { color: var(--teal-2); text-decoration: underline; text-underline-offset: 3px; }
.msg ul { margin: 6px 0 2px; padding-inline-start: 18px; }
.msg p + p, .msg p + ul, .msg ul + p { margin-top: 6px; }
.acts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.acts a, .acts button { height: 34px; padding: 0 14px; border-radius: 99px; font-size: .82rem; display: inline-flex; align-items: center; gap: 6px; background: var(--teal); color: #fff !important; border: 0; cursor: pointer; text-decoration: none !important; }
.acts .alt { background: transparent; border: 1px solid rgba(255,255,255,.25); }
.acts svg { width: 15px; height: 15px; }
.swatches { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.swatches button { width: 28px; height: 28px; border-radius: 50%; border: 0; padding: 0; cursor: pointer; background: var(--c); box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); transition: transform .3s var(--ease); }
.swatches button[aria-pressed="true"] { box-shadow: 0 0 0 2px #07132A, 0 0 0 4px var(--teal-2); transform: scale(1.08); }
.summary { margin-top: 8px; border-top: 1px solid var(--line); }
.summary div { display: flex; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: .85rem; }
.summary div span:first-child { color: var(--mute); min-width: 74px; flex: none; }
.typing { display: inline-flex; gap: 4px; padding: 4px 0; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--mute); animation: blink 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .15s; } .typing i:nth-child(3) { animation-delay: .3s; }
@keyframes blink { 0%, 80%, 100% { opacity: .25; transform: none; } 40% { opacity: 1; transform: translateY(-3px); } }
.chat-chips { display: flex; gap: 6px; padding: 8px 14px 6px; overflow-x: auto; scrollbar-width: none; }
.chat-chips::-webkit-scrollbar { display: none; }
.chat-chips button { flex: none; height: 34px; padding: 0 14px; border-radius: 99px; border: 1px solid rgba(116,220,207,.35); background: rgba(116,220,207,.06); color: var(--teal-2); font-size: .82rem; cursor: pointer; white-space: nowrap; transition: background .3s; }
.chat-chips button:hover { background: rgba(116,220,207,.16); }
.chat-in { display: flex; align-items: flex-end; gap: 8px; padding: 8px 12px 10px; border-top: 1px solid var(--line); }
.chat-in textarea { flex: 1; min-width: 0; resize: none; height: 46px; max-height: 120px; border-radius: 23px; border: 1px solid var(--line); background: rgba(255,255,255,.05); padding: 12px 16px; font-size: 16px; line-height: 1.35; color: var(--text); outline: none; transition: border-color .3s; }
.chat-in textarea:focus { border-color: rgba(116,220,207,.6); }
.chat-in textarea::placeholder { color: #6F8196; }
.chat-send { width: 46px; height: 46px; flex: none; border-radius: 50%; border: 0; background: var(--teal); color: #fff; cursor: pointer; display: grid; place-items: center; transition: opacity .3s; }
.chat-send:disabled { opacity: .35; cursor: default; }
.chat-send svg { width: 20px; height: 20px; }
html[dir="rtl"] .chat-send svg { transform: scaleX(-1); }
.chat-note { font-size: .7rem; line-height: 1.45; color: #7D8FA3; padding: 0 16px calc(10px + env(safe-area-inset-bottom, 0px)); }
@media (prefers-reduced-motion: reduce) { .chat-launch::after, .msg, .typing i { animation: none; } }
@media (max-width: 560px) { .chat-on body { overflow: hidden; } }

/* v4 check fixes, 2026-10-12 */
footer .col a.ltr { align-self: flex-start; overflow-wrap: anywhere; }
@media (max-width: 860px) { footer .top .col:last-child { grid-column: 1 / -1; } }
@media (max-width: 900px) {
  .dial-mid .tank { width: 44%; }
  .dial-mid { gap: 4px; }
  .js .blk { bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
  .chat-launch { width: 54px; height: 54px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); inset-inline-end: 14px; }
  .chat-launch > svg { width: 24px; height: 24px; }
  .chat-launch .hint { inset-inline-end: 66px; }
}

/* v4b, 2026-10-13: export stat, wider map column */
.export .split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
@media (max-width: 900px) { .export .split { grid-template-columns: 1fr; } }
.ex-stat { display: flex; align-items: baseline; gap: 14px; }
.ex-stat b { font-family: var(--f-head); font-weight: 200; font-size: clamp(3.2rem, 6vw, 4.6rem); line-height: 1; color: var(--teal-2); }
.ex-stat span { color: var(--mute); max-width: 22ch; }
.countries { display: flex; flex-wrap: wrap; gap: 8px; }
.countries > span { padding: 6px 14px; border-radius: 99px; border: 1px solid rgba(116,220,207,.3); background: rgba(116,220,207,.06); color: var(--text); font-size: .88rem; }

/* v4c, 2026-10-13: the bag stands on a floor; the Batterjee seal */
.bag-stage { position: relative; width: min(100%, 270px); padding-bottom: 26px; }
.bag-stage #bag { position: relative; z-index: 1; display: block; width: 100%; height: auto; transform: translateY(var(--drop, 0px)); filter: drop-shadow(0 6px 6px rgba(11,26,47,.25)); }
.bag-floor { position: absolute; left: 6%; right: 6%; bottom: 14px; height: 34px; border-radius: 50%; background: radial-gradient(closest-side, rgba(11,26,47,.55), rgba(11,26,47,0)); transform: scaleX(var(--sh, 1)); opacity: var(--sho, 1); }
.bag-seal { position: absolute; z-index: 2; top: 2%; inset-inline-end: -14%; width: 38%; transform: rotate(-12deg) scale(var(--ss, 1)); opacity: var(--so, 1); filter: drop-shadow(0 10px 14px rgba(11,26,47,.35)); }
.bag-seal svg, .seal { display: block; width: 100%; height: auto; }
.foot-brand { display: flex; align-items: center; gap: 14px; }
.seal-foot { width: 64px !important; height: 64px !important; object-fit: contain; }
@media (max-width: 900px) { .bag-seal { inset-inline-end: -4%; } }
@media (max-width: 900px) { .bag-stage { width: min(52vw, 200px); } .bag-seal { width: 42%; } }
@media (max-width: 600px) { #map .lit text { font-size: 27px; } #map > text.ar { font-size: 20px; } }

/* ---------- the dive (2026-10-13): the page is the sea ---------- */
html { scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { width: 0; height: 0; }
body { background: #04111f; }
.ocean { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg, #12748e, #063452); }
.ocean canvas { position: absolute; inset: 0; }
.rays { position: absolute; inset: -10% -20% 30%; opacity: 1; mix-blend-mode: screen; filter: blur(14px);
  background: repeating-linear-gradient(100deg, rgba(180,240,255,0) 0 60px, rgba(180,240,255,.10) 80px 110px, rgba(180,240,255,0) 140px 220px);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.4) 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.4) 55%, transparent 100%);
  animation: sway 14s ease-in-out infinite alternate; }
@keyframes sway { from { transform: translateX(-3%) skewX(-4deg); } to { transform: translateX(3%) skewX(4deg); } }
main, footer { position: relative; z-index: 1; }
.grain { z-index: 2; }
.progress { display: none; }
/* every chapter shows the sea behind it */
.hero, html[dir="rtl"] .hero, .quality, .export, .band-sec, footer, .light { background: transparent; }
.hero .shade { background: linear-gradient(90deg, rgba(3,20,36,.55) 0%, rgba(3,20,36,0) 55%); }
html[dir="rtl"] .hero .shade { background: linear-gradient(-90deg, rgba(3,20,36,.55) 0%, rgba(3,20,36,0) 55%); }
footer { background: rgba(1,5,12,.55); }
/* the formerly light chapters, now glass in the deep */
.light { color: var(--text); --paper: rgba(255,255,255,.05); --paper-ink: #EAF0F4; --paper-mute: #8D9EB0; --paper-line: rgba(255,255,255,.13); }
.light .lede { color: var(--mute); }
.light .eye { color: var(--teal-2); }
.light h1 b, .light h2 b { color: var(--teal-2); }
.light .chip, .light .add, .light .dl, .light .social a, .light .btn-ghost { background: rgba(255,255,255,.05); }
.light .chip[aria-pressed="true"] { background: var(--teal); border-color: var(--teal); color: #fff; }
.light .sw { background: rgba(7,19,42,.55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.light .sw:hover { box-shadow: 0 30px 60px -30px rgba(0,0,0,.8), 0 0 0 1px rgba(116,220,207,.25); }
.light .pic { background: radial-gradient(circle at 50% 80%, color-mix(in srgb, var(--c) 34%, transparent) 0%, transparent 66%); }
.light .add[aria-pressed="true"] { background: var(--teal); border-color: var(--teal); color: #fff; }
.light .social a:hover { background: var(--teal); border-color: var(--teal); }
.light #rfq { background: rgba(7,19,42,.62); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-color: rgba(255,255,255,.12); box-shadow: 0 60px 90px -60px rgba(0,0,0,.9); }
.light .field input, .light .field textarea { background: rgba(255,255,255,.06); color: var(--text); border-color: rgba(255,255,255,.14); }
.light .field input:focus, .light .field textarea:focus { background: rgba(255,255,255,.1); }
.light .info li a:hover { color: var(--teal-2); border-color: var(--teal-2); }
.bag-floor { background: radial-gradient(closest-side, rgba(116,220,207,.32), rgba(116,220,207,0)); }
.bag-stage #bag { filter: drop-shadow(0 18px 24px rgba(0,0,0,.55)); }
.q, .app, .map { background-color: rgba(7,19,42,.5) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.qgrid { background: rgba(255,255,255,.08); }
.map { background-image: radial-gradient(circle at 50% 50%, rgba(16,40,74,.6), rgba(4,11,22,.2) 70%) !important; }
/* the star scroll bar, where the system one was */
.depth { position: fixed; z-index: 55; top: 96px; bottom: 104px; right: 6px; width: 22px; cursor: grab; touch-action: none; }
.depth.drag { cursor: grabbing; }
.depth-track { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: linear-gradient(180deg, rgba(116,220,207,.05), rgba(116,220,207,.28) 12%, rgba(116,220,207,.28) 88%, rgba(116,220,207,.05)); }
.depth-fill { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; margin-left: -.5px; transform-origin: top; transform: scaleY(0); background: linear-gradient(180deg, rgba(116,220,207,0), #74DCCF); box-shadow: 0 0 8px rgba(116,220,207,.7); }
.depth-star { position: absolute; top: 0; left: 50%; width: 0; height: 14px; will-change: transform; }
.depth-star i { position: absolute; left: -5px; top: 2px; width: 10px; height: 10px; border-radius: 50%; background: radial-gradient(circle, #fff 0 30%, #b9fff4 45%, rgba(116,220,207,0) 72%); box-shadow: 0 0 14px 4px rgba(116,220,207,.75), 0 0 34px 8px rgba(116,220,207,.25); }
.depth-star i::before, .depth-star i::after { content: ""; position: absolute; left: 50%; top: 50%; background: linear-gradient(90deg, transparent, #fff, transparent); }
.depth-star i::before { width: 26px; height: 1px; margin: -.5px 0 0 -13px; animation: twinkle 3s ease-in-out infinite; }
.depth-star i::after { width: 1px; height: 26px; margin: -13px 0 0 -.5px; background: linear-gradient(180deg, transparent, #fff, transparent); animation: twinkle 3s ease-in-out infinite reverse; }
@keyframes twinkle { 0%, 100% { opacity: .5; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } }
.depth-star span { position: absolute; right: 14px; top: 0; white-space: nowrap; font-family: var(--f-head); font-size: .7rem; letter-spacing: .08em; color: #b9fff4; text-shadow: 0 0 8px rgba(116,220,207,.6); opacity: .8; direction: ltr; }
.depth:hover .depth-track { width: 2px; }
@media (hover: none) { .depth { pointer-events: none; right: 3px; top: 84px; bottom: 90px; } .depth-star span { font-size: .62rem; } }
@media (prefers-reduced-motion: reduce) { .rays, .depth-star i::before, .depth-star i::after { animation: none; } }
.qgrid { background: transparent; border: 0; gap: 14px; overflow: visible; border-radius: 0; }
.q { border: 1px solid var(--line); border-radius: 22px; }
.app { background: linear-gradient(180deg, rgba(12,29,58,.55), rgba(7,19,42,.42)) !important; }
@media (max-width: 600px) { .depth-star span { display: none; } }

/* deeper feel (owner, 2026-10-13): darkness closing in, and a sign at each ocean zone */
.abyss { position: absolute; inset: 0; opacity: 0; background: radial-gradient(ellipse 75% 70% at 50% 45%, rgba(0,0,0,0) 30%, rgba(0,2,8,.55) 75%, rgba(0,1,5,.9) 100%); }
.zone { position: fixed; z-index: 56; left: 50%; top: 92px; transform: translate(-50%, -12px); opacity: 0; pointer-events: none; display: flex; align-items: baseline; gap: 12px; padding: 9px 20px; border-radius: 999px; background: rgba(2,14,28,.6); border: 1px solid rgba(116,220,207,.3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #b9fff4; font-family: var(--f-head); white-space: nowrap; transition: opacity .6s var(--ease), transform .6s var(--ease); box-shadow: 0 0 30px rgba(116,220,207,.15); }
.zone.on { opacity: 1; transform: translate(-50%, 0); }
.zone b { font-weight: 500; font-size: 1rem; direction: ltr; unicode-bidi: isolate; }
.zone span { font-size: .85rem; color: var(--mute); letter-spacing: .06em; }
@media (prefers-reduced-motion: reduce) { .zone { display: none; } }
@media (max-width: 900px) { .zone { top: auto; bottom: calc(28px + env(safe-area-inset-bottom, 0px)); left: 16px; transform: translateY(12px); padding: 8px 16px; } .zone.on { transform: none; } .zone span { font-size: .78rem; } }
@media (max-width: 900px) { html[dir="rtl"] .zone { left: auto; right: 16px; } }
/* no hard edges in the water (owner, 2026-10-13): the hero's shade fades out at its foot, the header is lighter glass */
.hero .shade { -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%); }
.hdr.solid { background: linear-gradient(180deg, rgba(3,16,32,.5), rgba(3,16,32,.28)); border-bottom-color: rgba(255,255,255,.06); }
/* Arabic: the depth line sits on the left, so it never runs into the start of a line of text */
html[dir="rtl"] .depth { right: auto; left: 6px; }
html[dir="rtl"] .depth-star span { right: auto; left: 14px; }
@media (hover: none) { html[dir="rtl"] .depth { left: 3px; } }
/* designer credit in the footer (owner, 2026-10-13) */
footer .credit { display: inline-flex; align-items: center; gap: 7px; color: var(--mute); opacity: .8; transition: color .3s, opacity .3s; }
footer .credit svg { width: 14px; height: 14px; fill: currentColor; flex: none; }
footer .credit:hover { color: var(--teal-2); opacity: 1; }
@media (max-width: 900px) { footer .bot .shell { padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); flex-direction: column; align-items: flex-start; gap: 8px; } }
/* keep a grade name on one line (owner, 2026-10-14) */
.steps bdi, .spec bdi { white-space: nowrap; }
/* the page supports dark: Samsung Internet looks for this before forcing its own dark mode (owner's phone, 2026-10-14) */
@media (prefers-color-scheme: dark) { :root { color-scheme: dark; } }
