/* مغاسل الجيد المتقدمة. Site styles. Plain CSS, RTL first. */

/* ---------- Fonts (self-hosted, trimmed to weights in use) ---------- */
@font-face{font-family:"Alexandria";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/alexandria-arabic-300-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Alexandria";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/alexandria-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Alexandria";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/alexandria-arabic-500-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Alexandria";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/alexandria-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Alexandria";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/alexandria-arabic-700-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Alexandria";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/alexandria-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plex Arabic";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Plex Arabic";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plex Arabic";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Plex Arabic";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

/* ---------- Tokens ---------- */
:root{
  --ink:#0F1110;
  --ink-2:#161918;
  --ink-3:#1E2221;
  --film:#0B0D0E;          /* the film's own black: only where the film sits */
  --night:#2A3144;         /* dark sections: deep indigo slate drawn from the periwinkle */
  --night-2:#222838;
  --night-3:#343C55;
  --cloud:#F7F8FC;
  --paper:#FFFFFF;
  --accent:#A3B4F3;
  --accent-hover:#BED2FF;
  --accent-muted:#8C9BD1;
  --accent-deep:#4E5677;
  --text-on-ink:#EEF0F6;
  --text-on-ink-2:#A9AEBB;
  --text-on-cloud:#0F1110;
  --text-on-cloud-2:#4A4F5C;
  --line-on-ink:rgba(238,240,246,.16);
  --line-on-cloud:rgba(15,17,16,.14);
  --border-on-cloud:#7D8291;   /* interactive borders: 3.6:1 on cloud */
  --border-on-ink:#858BA0;     /* interactive borders: 3.8:1 on night, 5.7:1 on the film */

  --f-display:"Alexandria","Plex Arabic",system-ui,sans-serif;
  --f-body:"Plex Arabic","Alexandria",system-ui,sans-serif;
  --f-mono:"Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);

  --gutter:clamp(16px,4vw,56px);
  --lane:clamp(22px,6vw,96px);       /* ribbon lane on the visual left (inline end) */
  --nav-h:84px;
  --hero-h:230vh;    /* the film in about two scrolls */

  --tshadow:0 1px 2px rgba(5,6,6,.95),0 3px 12px rgba(5,6,6,.78),0 10px 44px rgba(5,6,6,.8);
  --noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1.2 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;background:var(--night-2);-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 12px)}
body{margin:0;isolation:isolate;overflow-x:hidden;overflow-x:clip;background:var(--night-2);color:var(--text-on-ink);font-family:var(--f-body);font-size:17px;line-height:1.85;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;opacity:0;animation:page-in .5s var(--ease-out) .02s forwards}
@keyframes page-in{to{opacity:1}}
img,svg,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
.mono{font-family:var(--f-mono);font-feature-settings:"zero" 0;letter-spacing:.02em;direction:ltr;unicode-bidi:isolate}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
::selection{background:var(--accent);color:var(--ink)}

.skip{position:fixed;top:12px;right:12px;z-index:100;background:var(--accent);color:var(--ink);padding:10px 18px;border-radius:999px;font-family:var(--f-display);font-weight:500;transform:translateY(-160%);transition:transform .35s var(--ease-out)}
.skip:focus-visible{transform:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.on-cloud :focus-visible{outline-color:var(--accent-deep)}

/* ---------- The opening: the mark draws, a slit of light, the frame opens ---------- */
.intro{display:none}
html.js .intro{display:block;position:fixed;inset:0;z-index:90;pointer-events:none;animation:intro-gone 0s linear 1.95s forwards}
@keyframes intro-gone{to{visibility:hidden}}
.intro .lb{position:absolute;left:0;right:0;height:50.5%;background:var(--film);will-change:transform}
.intro .lb-t{top:0;animation:lb-t .8s var(--ease-io) 1.12s forwards}
.intro .lb-b{bottom:0;animation:lb-b .8s var(--ease-io) 1.12s forwards}
@keyframes lb-t{to{transform:translateY(-101%)}}
@keyframes lb-b{to{transform:translateY(101%)}}
.intro::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:linear-gradient(90deg,transparent,var(--accent) 30%,var(--accent-hover) 50%,var(--accent) 70%,transparent);transform:scaleX(0);opacity:0;animation:slit .55s var(--ease-out) .82s forwards,slit-out .45s var(--ease-out) 1.25s forwards}
@keyframes slit{to{transform:scaleX(1);opacity:1}}
@keyframes slit-out{to{opacity:0}}
.intro-mark{position:absolute;left:50%;top:50%;height:clamp(76px,12vh,116px);width:auto;transform:translate(-50%,-50%);overflow:visible;animation:im-out .5s var(--ease-io) 1.02s forwards}
@keyframes im-out{to{opacity:0;transform:translate(-50%,-62%) scale(.92)}}
.im{fill-opacity:0;stroke-width:16;stroke-dasharray:1;stroke-dashoffset:1;stroke-linejoin:round;animation:im-draw .9s var(--ease-io) .08s forwards,im-fill .42s var(--ease-out) .66s forwards}
.im-a{fill:#FFFFFF;stroke:#EEF0F6}
.im-b{fill:#8C9BD1;stroke:#8C9BD1}
.im-c{fill:#BED2FF;stroke:#BED2FF}
@keyframes im-draw{to{stroke-dashoffset:0}}
@keyframes im-fill{to{fill-opacity:1;stroke-opacity:0}}
.intro.out{opacity:0;transition:opacity .35s var(--ease-out)}

/* ---------- Environment: one fixed layer, the page is one place ---------- */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--night)}
.env-cloud{position:absolute;inset:0;background:var(--cloud);opacity:var(--cloud-mix,0)}
.env-glow{position:absolute;inset:-20%;opacity:calc(.12 - .1*var(--cloud-mix,0));background:
  radial-gradient(40% 32% at 22% 30%,rgba(163,180,243,.55),transparent 70%),
  radial-gradient(36% 30% at 78% 72%,rgba(190,210,255,.45),transparent 70%);
  animation:glow-drift 72s var(--ease-io) -18s infinite alternate}
@keyframes glow-drift{0%{transform:translate3d(-3%,-2%,0) scale(1)}50%{transform:translate3d(2%,3%,0) scale(1.06)}100%{transform:translate3d(4%,-1%,0) scale(1.02)}}
.env-grain{position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;background-image:var(--noise)}

/* ---------- Navigation ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--nav-h);display:flex;align-items:center;gap:clamp(20px,3vw,52px);padding-inline:var(--gutter);color:var(--text-on-ink);transition:background-color .5s var(--ease-out),box-shadow .5s var(--ease-out),color .5s var(--ease-out),height .5s var(--ease-out)}
.nav::before{content:"";position:absolute;inset:0 0 -40px 0;z-index:-1;background:linear-gradient(to bottom,rgba(10,12,12,.78),rgba(10,12,12,.38) 55%,rgba(10,12,12,0));opacity:1;transition:opacity .5s var(--ease-out);pointer-events:none}
.nav.solid{height:calc(var(--nav-h) - 14px);background:rgba(42,49,68,.8);-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 1px 0 var(--line-on-ink)}
.nav.solid::before{opacity:0}
body[data-theme="cloud"] .nav.solid{background:rgba(247,248,252,.78);box-shadow:0 1px 0 var(--line-on-cloud);color:var(--text-on-cloud)}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:56px;width:auto;transition:height .5s var(--ease-out);filter:drop-shadow(0 2px 10px rgba(5,6,6,.35))}
.nav.solid .brand img{height:46px;filter:none}
.brand .logo-cloud{display:none}
body[data-theme="cloud"] .nav.solid .logo-ink{display:none}
body[data-theme="cloud"] .nav.solid .logo-cloud{display:block}
.nav-links{display:flex;align-items:center;gap:clamp(12px,1.5vw,26px);font-family:var(--f-display);font-weight:500;font-size:14px}
.nav-links a{position:relative;display:inline-flex;align-items:baseline;gap:6px;padding:8px 0;opacity:.86;text-shadow:0 1px 10px rgba(5,6,6,.55);transition:opacity .3s var(--ease-out)}
.nav.solid .nav-links a{text-shadow:none}
.nav-links .mono{font-size:10.5px;color:var(--accent);transition:color .3s var(--ease-out)}
body[data-theme="cloud"] .nav.solid .nav-links .mono{color:var(--accent-deep)}
.nav-links a::after{content:"";position:absolute;right:0;left:0;bottom:2px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
.nav-links a:hover,.nav-links a[aria-current="true"]{opacity:1}
.nav-links a:hover::after,.nav-links a[aria-current="true"]::after{transform:scaleX(1)}
.nav-end{display:flex;align-items:center;gap:12px;margin-inline-start:auto}
.nav-progress{position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(238,240,246,.08);pointer-events:none}
body[data-theme="cloud"] .nav.solid .nav-progress{background:rgba(15,17,16,.06)}
.nav-progress i{position:absolute;inset:0;background:linear-gradient(to left,var(--accent-hover),var(--accent));transform-origin:right;transform:scaleX(var(--sp,0))}
body[data-theme="cloud"] .nav.solid .nav-progress i{background:var(--accent-deep)}
.menu-btn{display:none;width:44px;height:44px;border-radius:999px;align-items:center;justify-content:center;border:1px solid var(--border-on-ink);background:rgba(15,17,16,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body[data-theme="cloud"] .nav.solid .menu-btn{border-color:var(--border-on-cloud);background:transparent}
.menu-btn span{display:block;width:18px;height:1.5px;background:currentColor;position:relative;transition:transform .4s var(--ease-out)}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;inset-inline:0;height:1.5px;background:currentColor;transition:transform .4s var(--ease-out)}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.menu-open .menu-btn span{background:transparent}
.menu-open .menu-btn span::before{transform:translateY(6px) rotate(45deg)}
.menu-open .menu-btn span::after{transform:translateY(-6px) rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:45;background:linear-gradient(165deg,var(--night-3),var(--night) 45%,var(--night-2));color:var(--text-on-ink);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:calc(var(--nav-h) + 24px) var(--gutter) 40px;opacity:0;visibility:hidden;transition:opacity .45s var(--ease-out),visibility 0s linear .45s}
.sheet a{display:flex;align-items:baseline;gap:14px;font-family:var(--f-display);font-weight:500;font-size:clamp(26px,7.4vw,42px);line-height:1.5;opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease-out),transform .6s var(--ease-out)}
.sheet a .mono{font-size:13px;color:var(--accent)}
.menu-open .sheet{opacity:1;visibility:visible;transition:opacity .45s var(--ease-out)}
.menu-open .sheet a{opacity:1;transform:none}
.menu-open .sheet a:nth-child(2){transition-delay:.04s}.menu-open .sheet a:nth-child(3){transition-delay:.08s}.menu-open .sheet a:nth-child(4){transition-delay:.12s}.menu-open .sheet a:nth-child(5){transition-delay:.16s}.menu-open .sheet a:nth-child(6){transition-delay:.2s}.menu-open .sheet a:nth-child(7){transition-delay:.24s}
.sheet .sheet-cta{display:inline-flex;align-self:flex-start;margin-top:22px;font-size:17px;line-height:1;min-height:52px;padding:0 28px}
.menu-open .nav{background:transparent;box-shadow:none;color:var(--text-on-ink)}
.menu-open .nav .logo-ink{display:block!important}.menu-open .nav .logo-cloud{display:none!important}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:999px;font-family:var(--f-display);font-weight:500;font-size:16px;line-height:1;white-space:nowrap;transition:background-color .35s var(--ease-out),color .35s var(--ease-out),border-color .35s var(--ease-out),transform .35s var(--ease-out)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--accent);color:var(--ink)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-ghost{border:1px solid var(--border-on-ink);color:var(--text-on-ink)}
.btn .ic{width:17px;height:17px;flex:none}
.btn-ghost:hover{border-color:var(--text-on-ink)}
.on-cloud .btn-ghost{border-color:var(--border-on-cloud);color:var(--text-on-cloud)}
.on-cloud .btn-ghost:hover{border-color:var(--text-on-cloud)}
.btn-sm{min-height:40px;padding:0 18px;font-size:14px}
.btn .arrow{width:16px;height:16px;flex:none;transition:transform .45s var(--ease-out)}
.btn:hover .arrow{transform:translateX(-4px)}
@media (pointer:coarse){.btn,.btn-sm{min-height:44px}}

/* ---------- Hero: the scroll film ---------- */
.hero{position:relative;height:var(--hero-h)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--film);--px:0;--py:0;--pb:0}
.media{position:absolute;inset:0;transform:translate3d(calc(var(--px)*-14px),calc(var(--py)*-10px),0) scale(1.05);will-change:transform}
.media .poster,.media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:50% 50%}
.media video{opacity:0;transition:opacity .9s var(--ease-out)}
.stage.video-ready .media video{opacity:1}
.stage.video-failed .media video{display:none}
.poster{background-color:var(--film);background-image:radial-gradient(60% 70% at 50% 40%,rgba(163,180,243,.10),transparent 70%)}
.steam{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.glow{position:absolute;left:0;top:0;width:64vmax;height:64vmax;margin:-32vmax 0 0 -32vmax;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(190,210,255,.15),rgba(163,180,243,.06) 48%,rgba(163,180,243,0) 74%);mix-blend-mode:screen;opacity:0;transition:opacity .9s var(--ease-out);will-change:transform}
.stage.lit .glow{opacity:1}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(10,12,12,0) 35%,rgba(10,12,12,.62) 100%)}
.scrim-top{position:absolute;inset:0 0 auto 0;height:28vh;pointer-events:none;background:linear-gradient(to bottom,rgba(10,12,12,.55),rgba(10,12,12,0))}
.grain{position:absolute;inset:-60%;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:var(--noise);animation:grain .9s steps(6) infinite}
@keyframes grain{0%{transform:translate3d(0,0,0)}17%{transform:translate3d(-4%,2%,0)}34%{transform:translate3d(3%,-3%,0)}51%{transform:translate3d(-2%,-1%,0)}68%{transform:translate3d(4%,3%,0)}85%{transform:translate3d(-3%,4%,0)}100%{transform:translate3d(0,0,0)}}
.frame-marks i{position:absolute;width:18px;height:18px;border:0 solid rgba(238,240,246,.38);pointer-events:none}
.frame-marks i:nth-child(1){top:calc(var(--nav-h) + 10px);right:var(--gutter);border-top-width:1px;border-right-width:1px}
.frame-marks i:nth-child(2){top:calc(var(--nav-h) + 10px);left:var(--gutter);border-top-width:1px;border-left-width:1px}
.frame-marks i:nth-child(3){bottom:20px;right:var(--gutter);border-bottom-width:1px;border-right-width:1px}
.frame-marks i:nth-child(4){bottom:20px;left:var(--gutter);border-bottom-width:1px;border-left-width:1px;display:none}

.band{position:absolute;top:50%;transform:translate3d(calc(var(--px)*7px),calc(-50% + var(--py)*5px),0);width:min(470px,28vw,var(--bw,9999px));opacity:0;text-shadow:var(--tshadow);pointer-events:none;color:var(--text-on-ink)}
.band.live{pointer-events:auto}
.band.side-r{right:var(--gutter)}
.band.side-l{left:var(--gutter);width:min(400px,24vw,var(--bw,9999px))}
.band.band-high{top:30%;width:min(400px,24vw,var(--bw,9999px))}
.band::before{content:"";position:absolute;inset:-34% -22%;z-index:-1;pointer-events:none;opacity:calc(.25 + .75*var(--k,1));background:radial-gradient(ellipse 62% 58% at 50% 50%,rgba(6,8,8,var(--scrim,.66)) 0%,rgba(6,8,8,calc(var(--scrim,.66)*.66)) 46%,rgba(6,8,8,0) 76%)}
.band .kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--accent-hover);margin-bottom:18px}
.band .kicker::before{content:"";width:28px;height:1.5px;background:currentColor;opacity:.8}
.band .head{font-family:var(--f-display);font-weight:700;font-size:clamp(21px,min(3.3vw,calc(var(--bw,9999px)*.12)),56px);line-height:1.4;color:#fff}
.band .sub{margin-top:18px;font-size:clamp(14px,min(1.25vw,calc(var(--bw,9999px)*.05)),20px);line-height:1.8;color:var(--text-on-ink);max-width:34ch}
.band .btn{text-shadow:none}
.band .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.settle-side .mark{width:58px;height:auto;margin:0 0 20px;filter:drop-shadow(0 6px 24px rgba(5,6,6,.6))}
.settle-side .row{justify-content:flex-start}
.settle-side .sub{max-width:30ch}

/* word spans: Arabic is never split below the word, so letters keep their joins */
.w{display:inline-block;white-space:nowrap;padding-block:.08em;margin-block:-.08em}
.band .head .w{will-change:transform}
/* (a) drift-down: words fall into place */
.e-drift .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.8,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-26px))}
/* (b) snap: words slide in reading order, from the right */
.e-snap .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3.2,1);opacity:var(--kc);transform:translateX(calc((1 - var(--kc))*var(--jx,40px)))}
/* (c) blur-to-sharp: two stacked copies crossfade, filter is static */
.e-blur .head{position:relative}
.e-blur .soft{position:absolute;inset:0;filter:blur(10px);opacity:calc(1 - var(--k,0));pointer-events:none}
.e-blur .sharp{opacity:var(--k,0);transform:scale(calc(1.035 - .035*var(--k,0)))}
/* (d) weave: words alternate from above and below, like threads crossing */
.e-weave .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*var(--jy,18px)))}
/* rise: words lift like the steam */
.e-rise .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.8,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*30px))}
/* (e) settle: the mark first, then the words, then the line, then the buttons */
.e-settle .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*22px))}
.e-settle .sub,.e-drift .sub,.e-snap .sub,.e-weave .sub,.e-blur .sub,.e-rise .sub{--ks:clamp(0,(var(--k,0) - .55)*3.4,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*10px))}
.e-drift .kicker{opacity:clamp(0,var(--k,0)*3,1)}
.e-settle .row{--kb:clamp(0,(var(--k,0) - .78)*5,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*12px))}
.e-settle .mark{--km:clamp(0,var(--k,0)*2.4,1);opacity:var(--km);transform-origin:50% 100%;transform:translateY(calc((1 - var(--km))*14px)) scale(calc(.78 + .22*var(--km)))}

.hud{position:absolute;left:var(--gutter);bottom:28px;display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:12px;background:rgba(10,12,12,.55);border:1px solid rgba(110,115,128,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-shadow:0 1px 3px rgba(5,6,6,.85);font-size:13px;color:var(--text-on-ink)}
.hud .mono{font-size:12px;color:var(--accent-hover)}
.hud .tc{color:var(--text-on-ink);font-variant-numeric:tabular-nums;min-width:10.5ch}
.hud .tc::before{content:"";display:inline-block;width:6px;height:6px;margin:0 8px 1px 0;border-radius:50%;background:#E4655A;box-shadow:0 0 8px rgba(228,101,90,.8);animation:rec 1.6s steps(2) infinite}
@keyframes rec{50%{opacity:.25}}
.hud .sep{width:1px;height:14px;background:rgba(238,240,246,.22)}
.hud .bar{width:72px;height:2px;background:rgba(238,240,246,.18);position:relative;overflow:hidden;border-radius:2px}
.hud .bar i{position:absolute;inset:0;background:var(--accent);transform-origin:right;transform:scaleX(var(--hp,0))}
.ring{width:22px;height:22px;color:var(--accent);transform:rotate(-90deg)}
.ring circle{transition:stroke-dashoffset .2s linear}
.ring.done{opacity:0;width:0;margin-inline-end:-12px;transition:opacity .6s var(--ease-out) .3s,width .5s var(--ease-out) .9s,margin .5s var(--ease-out) .9s}
.cue{position:absolute;left:50%;bottom:30px;margin-left:-11px;width:22px;height:34px;border:1.5px solid rgba(238,240,246,.6);border-radius:12px;opacity:var(--cue,1)}
.cue::after{content:"";position:absolute;left:50%;top:7px;width:2px;height:7px;margin-left:-1px;border-radius:2px;background:var(--text-on-ink);animation:cue 2.2s var(--ease-io) -.4s infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(10px);opacity:0}100%{transform:translateY(0);opacity:0}}

/* narrow landscape windows: the bands get room to breathe */
@media (orientation: landscape) and (max-width: 980px){
  .band,.band.side-l,.band.band-high{width:min(380px,var(--bw,9999px))}
}
/* phones held sideways: short screens, compact bands, no HUD */
@media (orientation: landscape) and (max-height: 560px){
  :root{--nav-h:58px}
  .brand img{height:38px}.nav.solid .brand img{height:34px}
  .nav.solid{height:var(--nav-h)}
  .band,.band.side-l,.band.band-high{width:min(360px,var(--bw,9999px));top:54%}
  .band .head{font-size:clamp(20px,min(3.4vw,calc(var(--bw,9999px)*.11)),30px)}
  .band .sub{font-size:14px;margin-top:8px;line-height:1.65}
  .band .kicker{margin-bottom:8px;font-size:13px}
  .settle-side .mark{width:34px;margin-bottom:10px}
  .band .row{margin-top:14px}
  .band .btn{min-height:40px;padding:0 16px;font-size:14px}
  .hud,.cue,.frame-marks{display:none}
}
/* portrait screens (phones, tablets, narrow windows): the portrait cut of the film, words beneath it */
@media (orientation: portrait){
  .media{inset:auto 0 auto 0;top:calc(var(--nav-h) - 6px);margin-inline:auto;width:min(100%,(100svh - var(--nav-h) - 214px)*.8);height:auto;aspect-ratio:4/5;transform-origin:50% 0;transform:translate3d(0,calc(var(--pb)*-12px),0) scale(calc(1 - var(--pb)*.22))}
  .stage{background:linear-gradient(to bottom,var(--film) 0%,var(--film) 46%,#151a26 70%,var(--night-2) 100%)}
  .media{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 58%,transparent 98%),linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 58%,transparent 98%),linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%);mask-composite:intersect}
  .scrim{background:linear-gradient(to bottom,rgba(10,12,12,0) 45%,rgba(10,12,12,.5) 100%)}
  .glow{display:none}
  .band,.band.side-r,.band.side-l,.band.band-high{left:var(--gutter);right:var(--gutter);width:auto;top:auto;bottom:calc(26px + env(safe-area-inset-bottom));transform:none}
  .band::before{inset:-34% -14% -24%;background:radial-gradient(ellipse 70% 64% at 50% 58%,rgba(6,8,8,var(--scrim,.66)) 0%,rgba(6,8,8,calc(var(--scrim,.66)*.6)) 52%,rgba(6,8,8,0) 80%)}
  .band .head{font-size:clamp(28px,7.4vw,46px);line-height:1.4}
  .band .sub{font-size:15px;line-height:1.75;margin-top:10px;max-width:40ch}
  .band .kicker{margin-bottom:10px;font-size:14px}
  .settle-side .mark{width:40px;margin-bottom:12px}
  .settle-side .sub{max-width:40ch}
  .band .row{margin-top:18px}
  .hud{top:calc(var(--nav-h) + 4px);bottom:auto;left:var(--gutter);padding:6px 10px;gap:9px;font-size:12px;border-radius:10px}
  .hud #hud-t,.hud .sep{display:none}
  .hud .bar{width:44px}
  .cue,.frame-marks{display:none}
}

/* ---------- The static hero: reduced motion, and pages without JavaScript ---------- */
.hero-static{display:none;flex-direction:column;justify-content:flex-end;align-items:flex-start;min-height:100svh;position:relative;isolation:isolate;width:100%;padding:calc(var(--nav-h) + 30vh) var(--gutter) 56px;text-shadow:var(--tshadow)}
.hero-static::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--film) url(../media/hero-static.jpg) 50% 0/100% auto no-repeat}
.hero-static::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(10,12,12,.5) 0%,rgba(10,12,12,0) 22%,rgba(10,12,12,.2) 48%,rgba(17,20,29,.9) 68%,var(--night-2) 100%)}
.hero-static .kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--accent-hover);margin-bottom:14px}
.hero-static .kicker::before{content:"";width:24px;height:1.5px;background:currentColor}
.hero-static h1{font-family:var(--f-display);font-weight:700;font-size:clamp(40px,11vw,72px);line-height:1.36;color:#fff}
.hero-static p{margin-top:16px;font-size:17px;line-height:1.85;max-width:34ch}
.hero-static .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.hero-static .btn{text-shadow:none}
.hero-static .mark{width:54px;margin-bottom:22px}
@media (max-width: 720px){
  .hero-static .mark{display:none}
  .hero-static::before{background-size:94% auto}
}
@media (min-aspect-ratio: 5/4){
  .hero-static{justify-content:center;padding:calc(var(--nav-h) + 22vh) var(--gutter) 64px}
  .hero-static > *{width:min(440px,30vw);margin-right:0}
  .hero-static::before{background:var(--film) url(../media/hero-ending.jpg) 50% 50%/cover no-repeat}
  .hero-static::after{background:radial-gradient(ellipse 40% 60% at 85% 55%,rgba(6,8,8,.6),rgba(6,8,8,0) 80%)}
  .hero-static h1{font-size:clamp(38px,3.6vw,60px)}
}
/* the one static gate (must match GATE in hero.js exactly) */
@media (prefers-reduced-motion: reduce){
  .hero{height:auto}
  .stage{position:relative;height:auto;min-height:100svh}
  .stage > :not(.hero-static){display:none}
  .hero-static{display:flex}
}
html:not(.js) .hero{height:auto}
html:not(.js) .stage{position:relative;height:auto;min-height:100svh}
html:not(.js) .stage > :not(.hero-static){display:none}
html:not(.js) .hero-static{display:flex}

/* ---------- Scenes ---------- */
.scene{position:relative;padding-block:clamp(120px,18vh,220px)}
.scene.shift{padding-top:clamp(180px,30vh,340px)}
html:not(.js) .on-cloud{background:var(--cloud)}
.wrap{width:min(1240px,100% - 2*var(--gutter));margin-inline:auto;padding-left:var(--lane)}
.on-cloud{color:var(--text-on-cloud)}
.on-ink{color:var(--text-on-ink)}
.label{display:flex;align-items:baseline;gap:12px;font-family:var(--f-display);font-weight:500;font-size:15px;margin-bottom:28px}
.label .mono{font-size:13px}
.on-ink .label{color:var(--accent-hover)}
.on-cloud .label{color:var(--accent-deep)}
.h2{font-family:var(--f-display);font-weight:700;font-size:clamp(34px,4.6vw,70px);line-height:1.42}   /* Alexandria's tall marks need the room: lines never touch */
.h2,.panel h3,.station h3,.clean-copy .h3,.band .head,.hero-static h1{text-wrap:balance}
.lit .ln{text-wrap:nowrap}
.lede{font-size:clamp(17px,1.3vw,20px);line-height:1.9;max-width:52ch}
.on-cloud .lede,.on-cloud .muted{color:var(--text-on-cloud-2)}
.on-ink .lede,.on-ink .muted{color:var(--text-on-ink-2)}

/* reveal choreography: container class prefixes win the cascade */
.rv .rv-i,.rv-self{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out)}
.rv.in .rv-i,.rv-self.in{opacity:1;transform:none}
.rv.in .rv-i:nth-child(2){transition-delay:.08s}
.rv.in .rv-i:nth-child(3){transition-delay:.16s}
.rv.in .rv-i:nth-child(4){transition-delay:.24s}
.rv.in .rv-i:nth-child(5){transition-delay:.32s}
.rv.in .rv-i:nth-child(6){transition-delay:.4s}
.rv.settled .rv-i,.rv.settled .rv-i:nth-child(n){transition-delay:0s!important}
html:not(.js) .rv .rv-i,html:not(.js) .rv-self{opacity:1;transform:none}
/* masked line reveal for headlines, with descender room for Arabic */
.mask{display:block;overflow:hidden;padding-block:.14em .26em;margin-block:-.14em -.26em}
.mask > span{display:block;transform:translateY(105%);transition:transform 1.2s var(--ease-out)}
.rv.in .mask > span{transform:none}
.rv.in .mask:nth-child(2) > span{transition-delay:.09s}
.rv.in .mask:nth-child(3) > span{transition-delay:.18s}
html:not(.js) .mask > span{transform:none}

/* 01 About: the headline lights word by word with the scroll */
.about-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:clamp(32px,5vw,90px);align-items:end}
.about .h2{max-width:none;font-size:clamp(34px,4.2vw,64px)}
.about .lede{max-width:40ch}
.lit .ln{display:block;white-space:nowrap}
html.js .lit .lw{opacity:.13}
.lit .lw.on{color:var(--text-on-cloud)}
/* before and after: the same thobe at the first and the last frame of the film */
.compare{position:relative;z-index:3;width:min(1400px,100% - 2*var(--gutter));margin:clamp(72px,11vh,130px) auto 0}
.cmp-stage{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:24px;background:var(--film);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:ew-resize;box-shadow:0 44px 110px rgba(15,17,16,.2);isolation:isolate;--p:.5}
.cmp-img,.cmp-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.cmp-after{clip-path:inset(0 calc(100% - var(--p)*100%) 0 0)}
.cmp-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 80% 90% at 50% 45%,rgba(11,13,14,0) 55%,rgba(11,13,14,.55) 100%)}
.cmp-handle{position:absolute;top:0;bottom:0;left:calc(var(--p)*100%);width:56px;margin-left:-28px;z-index:5;display:flex;align-items:center;justify-content:center;cursor:ew-resize;outline:none}
.cmp-handle::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:linear-gradient(to bottom,rgba(238,240,246,0),rgba(238,240,246,.95) 14%,rgba(238,240,246,.95) 86%,rgba(238,240,246,0));box-shadow:0 0 22px rgba(190,210,255,.75)}
.knob{position:relative;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(42,49,68,.62);border:1px solid rgba(238,240,246,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(5,6,6,.5);transition:transform .35s var(--ease-out),background-color .35s var(--ease-out)}
.knob svg{width:20px;height:20px}
.knob::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(190,210,255,.7);animation:ping 2.6s var(--ease-out) infinite}
.cmp-stage.touched .knob::after{animation:none;opacity:0}
.cmp-stage.dragging .knob,.cmp-handle:focus-visible .knob{transform:scale(1.1);background:rgba(78,86,119,.8)}
.cmp-handle:focus-visible .knob{outline:2px solid var(--accent);outline-offset:3px}
.cmp-tag{position:absolute;top:18px;z-index:4;display:flex;align-items:baseline;gap:9px;padding:7px 13px;border-radius:999px;background:rgba(15,17,16,.5);border:1px solid rgba(238,240,246,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-on-ink);font-family:var(--f-display);font-weight:500;font-size:14px;line-height:1.2}
.cmp-tag .mono{font-size:11px;color:var(--accent-hover);font-variant-numeric:tabular-nums}
.cmp-tag-b{right:18px}
.cmp-tag-a{left:18px}
.cmp-notes{position:absolute;inset:0;z-index:3;pointer-events:none;--len:clamp(56px,8vw,150px)}
.co{position:absolute;left:calc(var(--x)*100%);top:calc(var(--y)*100%);width:0;height:0;opacity:var(--v,0);transition:opacity .45s var(--ease-out)}
.co i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;border:1.5px solid #fff;background:rgba(163,180,243,.55);box-shadow:0 0 0 5px rgba(163,180,243,.2),0 2px 10px rgba(5,6,6,.5)}
.co em{position:absolute;top:-.5px;height:1px;width:var(--len);background:rgba(238,240,246,.8);transform:scaleX(var(--v,0));transition:transform .55s var(--ease-out)}
.co[data-side="a"] em{right:7px;transform-origin:right}
.co[data-side="b"] em{left:7px;transform-origin:left}
.co b{position:absolute;top:0;transform:translateY(-50%);white-space:nowrap;display:flex;align-items:baseline;gap:8px;padding:6px 11px;border-radius:10px;background:rgba(15,17,16,.62);border:1px solid rgba(238,240,246,.16);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:var(--f-display);font-weight:500;font-size:13.5px;line-height:1.3}
.co b .mono{font-size:10.5px;color:var(--accent-hover)}
.co .st{display:none}
.co[data-side="a"] b{right:calc(var(--len) + 8px)}
.co[data-side="b"] b{left:calc(var(--len) + 8px)}
.cmp-cap{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:18px;color:var(--text-on-cloud-2);font-size:15px;line-height:1.7}
.cmp-cap .mono{font-size:12px;color:var(--accent-deep)}
@media (orientation: portrait){
  .cmp-stage{aspect-ratio:4/5;border-radius:20px}
  .co{left:calc((var(--x)*2.2222 - .6111)*100%)}
  .co em{left:-.5px!important;right:auto!important;top:7px;width:1px;height:16px;transform:scaleY(var(--v,0));transform-origin:top}
  .co b{top:24px;transform:none;font-size:12.5px;padding:5px 9px}
  .co[data-side="a"] b{right:-12px;left:auto}
  .co[data-side="b"] b{left:-12px;right:auto}
  .co .lt{display:none}.co .st{display:inline}
  .cmp-tag{top:12px;font-size:13px;padding:6px 11px}
  .cmp-tag-b{right:12px}.cmp-tag-a{left:12px}
}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:clamp(64px,10vh,120px);padding-top:28px;border-top:1px solid var(--line-on-cloud)}
.fact{display:flex;flex-direction:column;gap:6px}
.fact b{align-self:flex-start;font-family:var(--f-display);font-weight:300;font-size:clamp(40px,4.4vw,68px);line-height:1.1;color:var(--text-on-cloud)}
.fact span{font-size:15px;color:var(--text-on-cloud-2)}

/* 02 Services: an index; the photograph follows the cursor */
.svc-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:clamp(40px,7vh,80px)}
.svc-count{display:flex;align-items:center;gap:14px}
.svc-count b{font-family:var(--f-display);font-weight:300;font-size:clamp(52px,5.4vw,92px);line-height:1;color:var(--accent-deep)}
.svc-count span{max-width:15ch;color:var(--text-on-cloud-2);font-size:15px;line-height:1.6}
.svc-list{border-top:1px solid var(--line-on-cloud)}
.svc{position:relative;display:grid;grid-template-columns:64px 1fr 1.1fr 40px;align-items:baseline;gap:24px;padding:26px 0;border-bottom:1px solid var(--line-on-cloud);cursor:default;transition:opacity .5s var(--ease-out)}
.svc::before{content:"";position:absolute;inset:0 -18px;border-radius:14px;background:var(--paper);opacity:0;transform:scaleY(.92);transition:opacity .45s var(--ease-out),transform .55s var(--ease-out);z-index:-1;box-shadow:0 12px 40px rgba(15,17,16,.06)}
.svc.on::before,.svc:focus-within::before,html:not(.js) .svc:hover::before{opacity:1;transform:none}
.svc .mono{font-size:13px;color:var(--accent-deep);transition:transform .6s var(--ease-out)}
.svc h3{font-family:var(--f-display);font-weight:500;font-size:clamp(22px,2.3vw,34px);line-height:1.45;transition:transform .7s var(--ease-out)}
.svc p{color:var(--text-on-cloud-2);font-size:16px;line-height:1.8}
.svc .thumb{display:none}
.svc .twist{width:28px;height:28px;align-self:center;color:var(--accent-deep);transition:transform .8s var(--ease-out)}
.svc.on .twist{transform:rotate(180deg)}
.svc.on h3{transform:translateX(-12px)}
.svc-list.hovering .svc:not(.on){opacity:.4}
.svc-float{position:fixed;left:0;top:0;z-index:30;width:clamp(220px,19vw,300px);aspect-ratio:4/5;pointer-events:none;border-radius:16px;overflow:hidden;opacity:0;background:var(--ink);box-shadow:0 34px 80px rgba(15,17,16,.3);transition:opacity .4s var(--ease-out);will-change:transform;visibility:hidden}
.svc-float.show{opacity:1;visibility:visible}
.sf-in{position:absolute;inset:0}
.sf-in img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0);transform:scale(1.18);transition:clip-path .75s var(--ease-out),transform 1.1s var(--ease-out)}
.sf-in img.on{clip-path:inset(0 0 0 0);transform:none;z-index:2}
.sf-in img.was{clip-path:inset(0 0 0 0);transform:none;z-index:1}
.sf-n{position:absolute;z-index:3;left:14px;bottom:12px;font-size:12px;color:rgba(238,240,246,.86);text-shadow:0 1px 6px rgba(5,6,6,.7)}

/* 03 What we receive: five panels; pinned and sliding on desktop, swiped on touch */
.fabrics-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,100px);align-items:end}
.hscroll{position:relative;margin-top:clamp(40px,7vh,72px)}
.hs-sticky{position:relative}
.hs-view{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
.hs-view::-webkit-scrollbar{display:none}
.hs-track{display:flex;gap:16px;width:max-content;padding-inline:var(--gutter) calc(var(--gutter) + var(--lane))}
.panel{flex:none;width:min(84vw,520px);scroll-snap-align:center;display:flex;flex-direction:column;background:var(--paper);border-radius:22px;overflow:hidden;box-shadow:0 18px 50px rgba(15,17,16,.08)}
.panel-img{position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--ink)}
.panel-img img{width:100%;height:100%;object-fit:cover;transform:translate3d(calc(var(--pp,0)*-5%),0,0) scale(1.12);will-change:transform}
.pi-code{position:absolute;top:14px;right:16px;font-size:12px;color:rgba(238,240,246,.82);padding:4px 9px;border:1px solid rgba(238,240,246,.3);border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.panel-body{padding:24px 22px 26px;display:flex;flex-direction:column}
.panel-n{align-self:flex-start;font-size:12px;color:var(--accent-deep);margin-bottom:8px}
.panel h3{font-family:var(--f-display);font-weight:700;font-size:clamp(28px,3vw,46px);line-height:1.42}
.panel-lede{margin-top:10px;color:var(--text-on-cloud-2);font-size:16px;line-height:1.8;max-width:44ch}
.tags{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.tag{position:relative;padding:12px 14px 10px;border-radius:6px;background:
  repeating-linear-gradient(90deg,rgba(15,17,16,.028) 0 1px,transparent 1px 3px),
  repeating-linear-gradient(0deg,rgba(15,17,16,.022) 0 1px,transparent 1px 3px),var(--cloud);
  box-shadow:0 1px 0 rgba(15,17,16,.06),0 8px 20px rgba(15,17,16,.045);transform-origin:50% 0;transform:rotate(var(--sway,0deg));transition:transform 1.2s var(--ease-out)}
.tag::before{content:"";position:absolute;inset:4px;border:1px dashed rgba(78,86,119,.32);border-radius:3px;pointer-events:none}
.tag b{display:block;font-family:var(--f-display);font-weight:500;font-size:16px;line-height:1.5;padding-left:26px}
.tag .care{display:flex;gap:4px;margin-top:6px;margin-inline-start:-4px;color:var(--text-on-cloud-2)}
.tag .code{position:absolute;left:11px;top:9px;font-size:10px;color:var(--accent-deep);opacity:.75}
.cs{position:relative;display:inline-flex;padding:3px;border-radius:6px;cursor:help;transition:background-color .25s var(--ease-out),color .25s var(--ease-out)}
.cs svg{width:22px;height:22px}
.cs::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);white-space:nowrap;padding:7px 11px;border-radius:9px;background:var(--ink);color:var(--text-on-ink);font-family:var(--f-display);font-weight:500;font-size:12.5px;line-height:1.3;opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out),transform .3s var(--ease-out);z-index:6;box-shadow:0 10px 24px rgba(15,17,16,.2)}
.cs:hover,.cs:focus{background:rgba(163,180,243,.28);color:var(--accent-deep);outline:none}
.cs:hover::after,.cs:focus::after{opacity:1;transform:translate(-50%,0)}
.hs-hud{display:flex;align-items:center;gap:16px;width:min(1240px,100% - 2*var(--gutter));margin:20px auto 0;padding-left:var(--lane);font-size:14px;color:var(--text-on-cloud-2)}
.hs-hud .mono{font-size:12px;color:var(--accent-deep);font-variant-numeric:tabular-nums}
.hs-bar{position:relative;width:120px;height:2px;background:var(--line-on-cloud);border-radius:2px;overflow:hidden}
.hs-bar i{position:absolute;inset:0;background:var(--accent-deep);transform-origin:right;transform:scaleX(var(--hp,.2))}
.hs-hint{font-family:var(--f-display);font-weight:500;font-size:13px}
/* pinned mode (must match PIN_MQ in site.js exactly) */
@media (min-width: 901px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference){
  .hscroll{height:calc(100vh + var(--hs-dist,0px));margin-top:clamp(10px,2vh,24px)}
  .hs-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
  .hs-view{overflow:hidden;margin-left:var(--hs-left,0px);scroll-snap-type:none;padding-top:calc(var(--nav-h) - 20px)}
  .hs-track{gap:clamp(48px,6vw,110px);padding-inline:var(--hs-right,56px) 0;transform:translate3d(var(--hs-x,0px),0,0);will-change:transform}
  .panel{width:min(1100px,calc(100vw - var(--hs-left,0px) - var(--hs-right,56px) - 24px));height:min(72vh,700px);display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(28px,3.6vw,64px);background:transparent;box-shadow:none;border-radius:0;overflow:visible}
  .panel-img{aspect-ratio:auto;height:100%;border-radius:20px;box-shadow:0 30px 70px rgba(15,17,16,.16)}
  .panel-body{padding:0;justify-content:center;opacity:calc(.3 + .7*var(--pa,1));transform:translate3d(calc(var(--pp,0)*-40px),0,0)}
  .panel h3{font-size:clamp(36px,4vw,64px)}
  .tags{gap:12px;margin-top:28px}
  .hs-hud{position:absolute;bottom:clamp(22px,5vh,46px);left:var(--hs-left,0px);right:var(--hs-right,56px);width:auto;margin:0;padding:0}
}

/* 04 Journey: a dial that fills with the scroll, icons that draw themselves */
.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,110px);align-items:start}
.journey-sticky{position:sticky;top:calc(var(--nav-h) + 6vh);height:min(72vh,660px);display:flex;flex-direction:column;justify-content:center;gap:26px}
.dial{position:relative;width:clamp(240px,27vw,380px);aspect-ratio:1}
.dial-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.dr-track{fill:none;stroke:var(--line-on-cloud);stroke-width:1.2}
.dr-fill{fill:none;stroke:var(--accent-deep);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:var(--L,578);stroke-dashoffset:calc(var(--L,578)*(1 - var(--jp,0)))}
.dr-ticks line{stroke:var(--border-on-cloud);stroke-width:1.4;transition:stroke .4s var(--ease-out)}
.dr-ticks line.on{stroke:var(--accent-deep)}
.counter{position:absolute;inset:0;font-family:var(--f-display);font-weight:300;font-size:clamp(84px,9.6vw,150px);line-height:1;color:var(--text-on-cloud);direction:ltr;overflow:hidden;border-radius:50%}
.counter span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-bottom:.06em;transition:transform .9s var(--ease-out),opacity .9s var(--ease-out)}
.counter span.out-up{transform:translateY(-60%);opacity:0}
.counter span.out-down{transform:translateY(60%);opacity:0}
.dial-meta{display:flex;flex-direction:column;gap:4px}
.counter-total{font-size:14px;color:var(--text-on-cloud-2)}
.counter-name{font-family:var(--f-display);font-weight:500;font-size:20px;line-height:1.4}
.stations{display:flex;flex-direction:column}
.station{min-height:38vh;display:flex;flex-direction:column;justify-content:center;padding-block:4vh;opacity:.32;transition:opacity .7s var(--ease-out)}
.station.on{opacity:1}
.st-ic{width:46px;height:46px;margin-bottom:16px;fill:none;stroke:var(--accent-deep);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
html.js .st-ic *{stroke-dasharray:var(--L,100);stroke-dashoffset:calc(var(--L,100)*(1 - var(--sd,0)))}
.station .mono{font-size:13px;color:var(--accent-deep);margin-bottom:12px;align-self:flex-start}
.station h3{font-family:var(--f-display);font-weight:700;font-size:clamp(28px,3vw,46px);line-height:1.42}
.station p{margin-top:12px;color:var(--text-on-cloud-2);max-width:36ch}

/* The one interactive moment: hold to lift a stain, down to the thread */
.clean{margin-top:clamp(90px,13vh,150px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(28px,4.5vw,80px);align-items:center}
.clean-stage{position:relative;width:min(100%,76vh);aspect-ratio:1;border-radius:26px;overflow:hidden;background:var(--ink);box-shadow:0 44px 100px rgba(15,17,16,.24);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;isolation:isolate}
.clean-stage canvas{position:absolute;inset:0;width:100%;height:100%}
.clean-fallback{position:absolute;inset:0;transition:opacity .8s var(--ease-out)}
.clean-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:52.5% 54.5%;transform:scale(calc(1 + var(--cz,0)*.8))}
.clean-fallback .cf-c{opacity:var(--cf,0)}
.clean.gl .clean-fallback{opacity:0}
.reticle{position:absolute;left:50%;top:50%;width:26%;aspect-ratio:1;margin:-13% 0 0 -13%;border-radius:50%;border:1px solid rgba(190,210,255,.7);pointer-events:none;opacity:calc(1 - var(--cp,0)*8);box-shadow:0 0 0 1px rgba(15,17,16,.25),inset 0 0 30px rgba(163,180,243,.18)}
.reticle::before,.reticle::after{content:"";position:absolute;background:rgba(190,210,255,.75)}
.reticle::before{left:50%;top:-14px;width:1px;height:10px}
.reticle::after{top:50%;right:-14px;width:10px;height:1px}
.reticle i{position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(190,210,255,.6);animation:ping 2.4s var(--ease-out) infinite}
@keyframes ping{0%{transform:scale(1);opacity:.8}80%,100%{transform:scale(1.5);opacity:0}}
.clean-hud{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:999px;background:rgba(15,17,16,.58);border:1px solid rgba(238,240,246,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-on-ink);font-family:var(--f-display);font-weight:500;font-size:13px}
.clean-hud .mono{color:var(--accent-hover);font-size:12px;min-width:4ch;text-align:center;font-variant-numeric:tabular-nums}
.clean-ui{position:absolute;inset:auto 0 0 0;display:flex;align-items:center;justify-content:center;padding:18px 22px 20px;background:linear-gradient(to top,rgba(15,17,16,.6),rgba(15,17,16,0));color:#fff}
.hold-btn{display:inline-flex;align-items:center;gap:12px;min-height:50px;padding:0 22px 0 14px;border-radius:999px;background:rgba(15,17,16,.66);border:1px solid rgba(238,240,246,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--f-display);font-weight:500;font-size:15px;transition:background-color .4s var(--ease-out),transform .4s var(--ease-out)}
.clean.holding .hold-btn{background:rgba(78,86,119,.78);transform:scale(.97)}
.hold-btn svg{width:30px;height:30px;transform:rotate(-90deg)}
.hold-btn .track{stroke:rgba(238,240,246,.25)}
.hold-btn .fill{stroke:var(--accent);stroke-dasharray:88;stroke-dashoffset:calc(88 - 88*var(--cp,0))}
.clean-copy .label{margin-bottom:14px}
.clean-copy .h3{font-family:var(--f-display);font-weight:700;font-size:clamp(28px,3vw,46px);line-height:1.42}
.clean-hint{margin-top:12px;font-size:16px;max-width:40ch}
.clean-steps{margin-top:26px;display:flex;flex-direction:column;border-top:1px solid var(--line-on-cloud)}
.clean-steps li{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-on-cloud);font-family:var(--f-display);font-weight:500;font-size:16px;color:var(--text-on-cloud-2);opacity:.5;transition:opacity .5s var(--ease-out),color .5s var(--ease-out)}
.clean-steps .mono{font-size:12px;color:var(--accent-deep)}
.clean-steps li.on{opacity:1;color:var(--text-on-cloud)}
.checks{margin-top:24px;display:flex;flex-direction:column;gap:12px}
.check{display:flex;align-items:center;gap:14px;font-family:var(--f-display);font-weight:500;font-size:17px;color:var(--text-on-cloud-2);opacity:.45;transition:opacity .6s var(--ease-out),color .6s var(--ease-out)}
.check svg{width:26px;height:26px;flex:none}
.check svg circle{stroke:var(--border-on-cloud);transition:stroke .6s var(--ease-out),fill .6s var(--ease-out)}
.check svg path{stroke:var(--ink);stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .6s var(--ease-out) .15s}
.clean.done .check{opacity:1;color:var(--text-on-cloud)}
.clean.done .check svg circle{stroke:var(--accent-deep);fill:var(--accent)}
.clean.done .check svg path{stroke-dashoffset:0}
.clean.done .check:nth-child(2){transition-delay:.3s}.clean.done .check:nth-child(2) svg path{transition-delay:.45s}.clean.done .check:nth-child(2) svg circle{transition-delay:.3s}
.clean.done .check:nth-child(3){transition-delay:.6s}.clean.done .check:nth-child(3) svg path{transition-delay:.75s}.clean.done .check:nth-child(3) svg circle{transition-delay:.6s}
.earned{display:flex;align-items:center;gap:16px;margin-top:28px;opacity:0;transform:translateY(12px);transition:opacity .8s var(--ease-out) .95s,transform .9s var(--ease-out) .95s}
.earned img{width:46px}
.earned b{font-family:var(--f-display);font-weight:700;font-size:22px}
.clean.done .earned{opacity:1;transform:none}
.replay{margin-inline-start:auto;font-family:var(--f-display);font-weight:500;font-size:14px;color:var(--accent-deep);border-bottom:1px solid currentColor;padding:6px 0 2px;visibility:hidden}
.clean.done .replay{visibility:visible}

/* Dark scenes sit on night; each gets its own light so the tone never repeats flatly */
.on-ink.scene{isolation:isolate}
.on-ink.scene::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.biz::before{background:
  radial-gradient(48% 38% at 14% 16%,rgba(163,180,243,.16),rgba(163,180,243,0) 72%),
  radial-gradient(42% 36% at 92% 88%,rgba(190,210,255,.09),rgba(190,210,255,0) 72%),
  linear-gradient(180deg,rgba(52,60,85,.0) 0%,rgba(52,60,85,.55) 55%,rgba(52,60,85,0) 100%)}
.contact::before{background:
  radial-gradient(46% 40% at 22% 36%,rgba(163,180,243,.14),rgba(163,180,243,0) 72%),
  radial-gradient(52% 44% at 86% 78%,rgba(78,86,119,.45),rgba(78,86,119,0) 75%)}

/* 05 Business */
.biz-top{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,6vw,110px);align-items:end}
.biz .h2{max-width:none}
.sectors{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(56px,9vh,110px);border-top:1px solid var(--line-on-ink)}
.sector{display:flex;align-items:baseline;gap:14px;padding:28px 0 28px 20px;border-bottom:1px solid var(--line-on-ink);font-family:var(--f-display);font-weight:500;font-size:clamp(19px,1.7vw,25px);line-height:1.4}
.sector .mono{font-size:12px;color:var(--accent-muted)}
.biz-offer{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,110px);margin-top:clamp(56px,9vh,110px);align-items:start}
.offer{display:flex;flex-direction:column;gap:16px}
.offer li{display:flex;align-items:baseline;gap:14px;font-size:18px}
.offer svg{width:18px;height:18px;flex:none;color:var(--accent);transform:translateY(3px)}
.offer svg path{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .8s var(--ease-out)}
.rv.in .offer svg path{stroke-dashoffset:0}
.rv.in .offer li:nth-child(2) svg path{transition-delay:.12s}.rv.in .offer li:nth-child(3) svg path{transition-delay:.24s}.rv.in .offer li:nth-child(4) svg path{transition-delay:.36s}.rv.in .offer li:nth-child(5) svg path{transition-delay:.48s}

/* 06 Credentials: official seals */
.cred-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:clamp(48px,8vh,90px)}
.seals{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,48px);max-width:1040px;margin-inline:auto}
.seal{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}
.seal-ring{position:relative;width:min(190px,100%);aspect-ratio:1}
.seal-ring svg{position:absolute;inset:0;width:100%;height:100%}
.seal-ring .spin{animation:spin 90s linear infinite}
.seal:nth-child(2) .spin{animation-delay:-30s}.seal:nth-child(3) .spin{animation-delay:-60s}
@keyframes spin{to{transform:rotate(360deg)}}
.seal-ring .core{position:absolute;inset:26%;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper);box-shadow:inset 0 0 0 1px rgba(78,86,119,.25),0 10px 30px rgba(15,17,16,.08)}
.seal-ring .core img{width:44%}
.seal h3{font-family:var(--f-display);font-weight:500;font-size:19px;line-height:1.4}
.seal-txt{display:flex;flex-direction:column;align-items:center;gap:4px}
.seal-sub{font-size:14px;color:var(--text-on-cloud-2)}
.seal .num{position:relative;margin-top:10px;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line-on-cloud);background:rgba(255,255,255,.55);color:var(--text-on-cloud);font-size:15px;letter-spacing:.04em;cursor:copy;transition:border-color .3s var(--ease-out),background-color .3s var(--ease-out)}
.seal .num svg{width:16px;height:16px;color:var(--accent-deep);transition:opacity .25s var(--ease-out)}
.seal .num:hover{border-color:var(--accent-deep);background:#fff}
.seal .num .copied{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:inherit;background:var(--accent-deep);color:#fff;font-style:normal;font-family:var(--f-display);font-weight:500;font-size:14px;letter-spacing:0;opacity:0;transform:scale(.92);transition:opacity .25s var(--ease-out),transform .35s var(--ease-out);pointer-events:none}
.seal .num.is-copied .copied{opacity:1;transform:none}
.entity{margin-top:clamp(40px,7vh,72px);text-align:center;color:var(--text-on-cloud-2);font-size:15px}
.entity b{font-family:var(--f-display);font-weight:500;color:var(--text-on-cloud)}

/* 07 Contact: the mark forms as the ribbon reaches it, exactly with the scroll */
.contact-grid{display:grid;grid-template-columns:1fr .9fr;gap:clamp(32px,6vw,110px);align-items:center}
.contact .h2{max-width:none}
.cta-col{display:flex;flex-direction:column;gap:14px;margin-top:36px;align-items:flex-start}
.cta-col .btn-primary{min-height:58px;padding:0 32px;font-size:18px}
.alt-links{display:flex;gap:22px;flex-wrap:wrap;margin-top:8px;font-family:var(--f-display);font-weight:500}
.alt-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--border-on-ink);transition:border-color .3s var(--ease-out)}
.alt-links svg{width:17px;height:17px;flex:none;color:var(--accent)}
.alt-links .mono{font-size:14px;color:var(--text-on-ink-2)}
.alt-links a:hover{border-color:var(--accent)}
.note{font-size:14px;color:var(--text-on-ink-2)}
.mark-big{position:relative;width:min(420px,80%);margin-inline:auto;aspect-ratio:1207.5/1785.5}
.mark-big img{width:100%;height:100%;-webkit-mask-image:linear-gradient(to top,#000 calc(var(--mq,0)*118% - 18%),transparent calc(var(--mq,0)*118%));mask-image:linear-gradient(to top,#000 calc(var(--mq,0)*118% - 18%),transparent calc(var(--mq,0)*118%))}
.mark-big::after{content:"";position:absolute;inset:10% 0;border-radius:50%;background:radial-gradient(closest-side,rgba(163,180,243,.22),transparent);z-index:-1;opacity:var(--mq,0)}
.mark-big.tied::after{animation:breathe 6s var(--ease-io) -2s infinite}
@keyframes breathe{50%{transform:scale(1.08)}}
html:not(.js) .mark-big img{opacity:1;transform:none;-webkit-mask-image:none;mask-image:none}
.br-head{margin-top:clamp(64px,10vh,120px);display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid rgba(238,240,246,.14)}
.br-head .label{margin:0}
.br-sum{font-family:var(--f-display);font-weight:500;color:var(--text-on-ink-2)}
.br-sum b{font-weight:300;font-size:28px;color:#fff;margin-left:6px}
.branches{margin-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.branch{position:relative;overflow:hidden;padding:24px 26px 22px;border-radius:20px;background:rgba(238,240,246,.045);border:1px solid rgba(238,240,246,.14);display:flex;flex-direction:column;gap:2px;transition:border-color .4s var(--ease-out),background-color .4s var(--ease-out),transform .5s var(--ease-out)}
.branch::before{content:"";position:absolute;inset:auto -30% -60% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,rgba(163,180,243,.22),transparent);opacity:.5;transition:opacity .5s var(--ease-out),transform .8s var(--ease-out);pointer-events:none}
.branch:hover{border-color:rgba(163,180,243,.45);background:rgba(238,240,246,.07);transform:translateY(-3px)}
.branch:hover::before{opacity:1;transform:scale(1.2)}
.b-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.b-no{font-size:13px;color:var(--text-on-ink-2)}
.b-pin{width:26px;height:26px;color:var(--accent)}
.branch:hover .b-pin{animation:pin-bob 1.1s var(--ease-io) infinite}
@keyframes pin-bob{50%{transform:translateY(-4px)}}
.branch h3{font-family:var(--f-display);font-weight:700;font-size:clamp(28px,2.6vw,38px);line-height:1.3;color:#fff}
.branch .meta{color:var(--text-on-ink-2);font-size:15px}
.branch .links{display:flex;gap:10px;margin-top:20px;font-family:var(--f-display);font-weight:500;font-size:15px}
.branch .links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(238,240,246,.22);color:#fff;transition:background-color .3s var(--ease-out),border-color .3s var(--ease-out),color .3s var(--ease-out)}
.branch .links a:first-child{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.branch .links a:first-child:hover{background:#fff;border-color:#fff}
.branch .links a:last-child:hover{border-color:#fff}
.branch .links .arrow{width:14px;height:14px}
.biz-call{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:36px}
.biz-num{font-size:17px;letter-spacing:.04em;color:var(--text-on-ink-2);border-bottom:1px solid var(--border-on-ink);transition:color .3s var(--ease-out),border-color .3s var(--ease-out)}
.biz-num:hover{color:#fff;border-color:var(--accent)}
.fact b.counting{color:var(--accent-deep)}

/* Footer, with the parent wordmark rising as a watermark */
.foot{position:relative;padding:56px 0 0;border-top:1px solid var(--line-on-ink);overflow:hidden;background:linear-gradient(to bottom,rgba(22,26,38,.35),rgba(22,26,38,.75))}
.foot-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.foot-grid img{height:58px;width:auto}
.foot nav{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--text-on-ink-2)}
.foot nav a:hover{color:var(--text-on-ink)}
.legal{margin-top:40px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--text-on-ink-2)}
.legal .ids{display:flex;gap:22px;flex-wrap:wrap}
.foot-mark{width:min(1100px,90%);margin:clamp(48px,9vh,110px) auto clamp(28px,5vh,56px);pointer-events:none;opacity:calc(.025 + .035*var(--fm,1));transform:translate3d(0,calc((1 - var(--fm,1))*24%),0)}
.foot-mark img{width:100%;height:auto}

/* ---------- Order or subscribe: one sheet, opened from every pickup button ----------
   A small studio: the package stands on a dark light-box you can swipe, three tiles keep
   every package in view, the price rolls to the new figure and the perks deal in. */
html.o-open{overflow:hidden}
.order{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:rgba(14,16,24,0);color:var(--text-on-ink);overflow:hidden;transition:background-color .45s var(--ease-out)}
.order:not([open]){display:none}
.order::backdrop{background:transparent}
.order.show{background:rgba(10,12,18,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.o-sheet{position:absolute;left:50%;top:50%;width:min(1080px,calc(100vw - 48px));height:min(740px,calc(100vh - 40px));display:flex;flex-direction:column;border-radius:30px;overflow:hidden;opacity:0;transform:translate(-50%,-46%) scale(.97);transition:transform .7s var(--ease-out),opacity .35s var(--ease-out);
  background:radial-gradient(60% 40% at 85% 0%,rgba(163,180,243,.16),rgba(163,180,243,0) 70%),radial-gradient(50% 40% at 0% 100%,rgba(78,86,119,.45),rgba(78,86,119,0) 75%),linear-gradient(165deg,var(--night-3),var(--night) 42%,var(--night-2));
  border:1px solid rgba(190,210,255,.16);box-shadow:0 60px 140px rgba(5,6,10,.55)}
.o-sheet::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:var(--noise)}
.order.show .o-sheet{opacity:1;transform:translate(-50%,-50%)}
.o-grab{display:none}
.o-head{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:18px 22px 14px}
.o-kick{display:flex;align-items:center;gap:9px;font-family:var(--f-display);font-weight:500;font-size:14px;color:var(--text-on-ink-2)}
.o-kick img{width:15px;height:auto}
.o-close{justify-self:end;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(238,240,246,.06);border:1px solid rgba(238,240,246,.14);color:#fff;transition:background-color .3s var(--ease-out),transform .45s var(--ease-out)}
.o-close:hover{background:rgba(238,240,246,.12);transform:rotate(90deg)}
.o-close svg{width:16px;height:16px}
.o-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:rgba(8,10,16,.45);border:1px solid rgba(238,240,246,.1);min-width:300px}
.o-tabs button{position:relative;z-index:1;min-height:42px;padding:0 18px;border-radius:999px;font-family:var(--f-display);font-weight:500;font-size:14.5px;color:var(--text-on-ink-2);transition:color .35s var(--ease-out)}
.o-tabs button[aria-selected="true"]{color:var(--ink)}
.o-ind{position:absolute;top:4px;bottom:4px;right:4px;width:calc(50% - 4px);border-radius:999px;background:linear-gradient(180deg,#C2CDF8,var(--accent));box-shadow:0 6px 18px rgba(163,180,243,.35);transition:transform .55s var(--ease-out)}
.o-tabs.second .o-ind{transform:translateX(-100%)}
.o-body{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(238,240,246,.2) transparent}
.o-panel[hidden]{display:none}

/* the studio: stage beside the details */
.cfg{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);min-height:100%;padding:2px 22px 18px}
.cfg-stage{--tx:0;--ty:0;--drag:0px;position:relative;align-self:stretch;min-height:420px;border-radius:24px;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;
  background:radial-gradient(70% 60% at 50% 60%,#1A1F31 0%,#0D1018 60%,#090B11 100%);box-shadow:inset 0 0 0 1px rgba(190,210,255,.1)}
.cfg-stage.dragging{cursor:grabbing}
.cfg-shots{position:absolute;inset:0}
.cfg-glow{--glow:163,180,243;position:absolute;left:12%;right:12%;top:18%;height:64%;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--glow),.34),rgba(var(--glow),0));filter:blur(14px);transition:background .8s var(--ease-out);animation:glow-breathe 6s var(--ease-io) infinite}
@keyframes glow-breathe{50%{transform:scale(1.08);opacity:.85}}
.cfg-shot{position:absolute;inset:0;margin:0;opacity:0;transform:translate3d(calc(var(--dir,1) * -9%),0,0) scale(.94);filter:blur(6px);transition:opacity .5s var(--ease-out),transform .9s var(--ease-out),filter .6s var(--ease-out);pointer-events:none}
.cfg-shot.is-on{opacity:1;transform:none;filter:none}
.cfg-shot.is-out{opacity:0;transform:translate3d(calc(var(--dir,1) * 11%),0,0) scale(.95);filter:blur(4px)}
.cfg-shot img{width:100%;height:100%;object-fit:cover;transform:translate3d(calc(var(--tx) * -12px + var(--drag)),calc(var(--ty) * -8px),0) scale(1.04);transition:transform .5s var(--ease-out)}
.cfg-stage.dragging .cfg-shot img{transition:none}
.cfg-orb{position:absolute;top:18px;right:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;text-align:center;background:rgba(238,240,246,.08);border:1px solid rgba(238,240,246,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translate3d(calc(var(--tx) * 10px),calc(var(--ty) * 8px),0);transition:transform .5s var(--ease-out);animation:orb-float 5s var(--ease-io) infinite}
.cfg-orb b{font-family:var(--f-display);font-weight:300;font-size:40px;line-height:1;color:#fff}
.cfg-orb span{margin-top:2px;font-size:11.5px;line-height:1.35;color:var(--text-on-ink)}
.cfg-orb.pop b{animation:orb-pop .6s var(--ease-out)}
@keyframes orb-float{50%{translate:0 -5px}}
@keyframes orb-pop{0%{transform:translateY(40%);opacity:0}100%{transform:none;opacity:1}}
.cfg-flag{position:absolute;bottom:52px;left:18px;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:var(--accent);color:var(--ink);font-family:var(--f-display);font-weight:500;font-size:13.5px;box-shadow:0 10px 26px rgba(10,12,18,.4);transition:transform .5s var(--ease-out),opacity .3s var(--ease-out)}
.cfg-flag.swap{transform:translateY(8px) scale(.94);opacity:0}
.cfg-nav{position:absolute;top:50%;z-index:2;width:44px;height:44px;margin-top:-22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(10,12,18,.45);border:1px solid rgba(238,240,246,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.75;transition:opacity .3s var(--ease-out),background-color .3s var(--ease-out),transform .3s var(--ease-out)}
.cfg-nav:hover{opacity:1;background:rgba(163,180,243,.3)}
.cfg-nav:active{transform:scale(.92)}
.cfg-nav svg{width:16px;height:16px}
.cfg-prev{right:12px}.cfg-prev svg{transform:scaleX(-1)}
.cfg-next{left:12px}
.cfg-dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:7px}
.cfg-dots i{width:7px;height:7px;border-radius:999px;background:rgba(238,240,246,.3);transition:width .4s var(--ease-out),background-color .4s var(--ease-out)}
.cfg-dots i.on{width:24px;background:var(--accent)}
.cfg-stage.peek .cfg-shot.is-on img{animation:peek 1.1s var(--ease-io) .5s}
@keyframes peek{40%{translate:-28px 0}}

.cfg-info{display:flex;flex-direction:column;min-width:0;padding-top:2px}
.cfg-tiles{--k:0;position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:6px;border-radius:20px;background:rgba(8,10,16,.4);border:1px solid rgba(238,240,246,.1)}
.cfg-ind{position:absolute;top:6px;bottom:6px;right:6px;width:calc((100% - 24px) / 3);border-radius:15px;background:linear-gradient(180deg,#C4CEF8,var(--accent));box-shadow:0 8px 22px rgba(163,180,243,.3);transform:translateX(calc(var(--k) * (-100% - 6px)));transition:transform .6s cubic-bezier(.3,1.35,.5,1)}
.cfg-tile{position:relative;z-index:1;display:flex;align-items:center;gap:9px;min-height:62px;padding:6px 7px;border-radius:15px;text-align:start;color:var(--text-on-ink);transition:color .35s var(--ease-out)}
.cfg-tile img{width:48px;height:48px;flex:none;border-radius:11px;object-fit:cover;box-shadow:0 4px 12px rgba(5,6,10,.35);transition:transform .5s var(--ease-out)}
.cfg-tile:hover img{transform:scale(1.06) rotate(-2deg)}
.ct-t{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.ct-t b{font-family:var(--f-display);font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-t em{font-style:normal;font-size:12px;opacity:.75}
.cfg-tile[aria-checked="true"]{color:var(--ink)}
.cfg-detail{margin-top:20px}
.cfg-tag{font-size:14px;color:var(--accent-hover)}
.cfg-name{margin-top:2px;font-family:var(--f-display);font-weight:700;font-size:clamp(25px,2.5vw,34px);line-height:1.4;color:#fff}
.cfg-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 9px;margin-top:8px}
.roll{display:inline-flex;font-family:var(--f-display);font-weight:500;font-size:clamp(46px,4.6vw,62px);line-height:1;color:#fff;letter-spacing:-.01em}
.roll .dg{display:inline-block;height:1em;overflow:hidden}
.roll .dg i{display:flex;flex-direction:column;font-style:normal;transform:translateY(calc(var(--d,0) * -1em));transition:transform .95s cubic-bezier(.2,.9,.2,1);transition-delay:calc(var(--n,0) * 45ms)}
.roll .dg i span{height:1em;line-height:1}
.cfg-price .cur{font-family:var(--f-display);font-weight:500;font-size:16px;color:var(--text-on-ink)}
.cfg-price .cur small{margin-inline-start:4px;font-size:13px;color:var(--text-on-ink-2)}
.cfg-price s{font-size:16px;color:var(--text-on-ink-2);text-decoration-color:rgba(228,101,90,.85);text-decoration-thickness:1.5px}
.cfg-save{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid rgba(163,180,243,.5);color:var(--accent-hover);font-family:var(--f-display);font-weight:500;font-size:12.5px}
.cfg-vat{margin-top:8px;font-size:13px;color:var(--text-on-ink-2)}
.cfg-perks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.cfg-perks li{display:flex;align-items:center;gap:10px;min-height:52px;padding:9px 12px;border-radius:15px;background:rgba(238,240,246,.05);border:1px solid rgba(238,240,246,.09);font-size:13.5px;line-height:1.5;color:var(--text-on-ink);animation:perk-in .6s var(--ease-out) both;animation-delay:calc(var(--n) * 55ms)}
.cfg-perks li svg{width:20px;height:20px;flex:none;color:var(--accent)}
.cfg-perks li:first-child{grid-column:1 / -1;background:rgba(163,180,243,.12);border-color:rgba(163,180,243,.3)}
@keyframes perk-in{from{opacity:0;transform:translateY(10px) scale(.97)}}
.o-note{margin-top:auto;padding-top:14px;font-size:12.5px;color:var(--text-on-ink-2)}

/* one-time pickup */
.pick{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,3vw,40px);padding:2px 22px 18px}
.pick-stage{position:relative;margin:0;border-radius:24px;overflow:hidden;background:#090B11;min-height:360px}
.pick-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:pick-in 1.2s var(--ease-out) both}
@keyframes pick-in{from{transform:scale(1.08);opacity:0}}
.pick-cap{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;padding:46px 20px 18px;background:linear-gradient(180deg,rgba(9,11,17,0),rgba(9,11,17,.88))}
.pick-cap b{font-family:var(--f-display);font-weight:700;font-size:20px;line-height:1.45;color:#fff}
.pick-cap span{font-size:13px;color:var(--text-on-ink-2)}
.pick-form{display:flex;flex-direction:column;gap:20px;min-width:0}
.pick-l{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:11px;font-family:var(--f-display);font-weight:500;font-size:16px;color:#fff}
.pick-l .mono{font-size:12px;color:var(--accent)}
.pick-l em{font-style:normal;font-family:var(--f-body);font-weight:400;font-size:13px;color:var(--text-on-ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(238,240,246,.22);background:rgba(238,240,246,.04);font-family:var(--f-display);font-weight:500;font-size:14.5px;color:var(--text-on-ink);transition:background-color .3s var(--ease-out),color .3s var(--ease-out),border-color .3s var(--ease-out),transform .3s var(--ease-out)}
.chip:hover{border-color:rgba(163,180,243,.7)}
.chip[aria-pressed="true"],.chip[aria-checked="true"]{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.chip[aria-pressed="true"]::before,.chip[aria-checked="true"]::before{content:"";width:12px;height:7px;margin-top:-3px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}
.chip.pop{animation:chip-pop .35s var(--ease-out)}
@keyframes chip-pop{40%{transform:scale(1.07)}}
#pick-note{display:block;width:100%;min-height:72px;padding:12px 15px;border-radius:16px;resize:vertical;border:1px solid rgba(238,240,246,.2);background:rgba(10,12,18,.3);color:#fff;font:inherit;font-size:15.5px;line-height:1.7}
#pick-note::placeholder{color:rgba(169,174,187,.8)}
#pick-note:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(163,180,243,.2)}

/* the one button: WhatsApp with the message written; a call beside it */
.o-foot{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 10px;padding:14px 22px 16px;border-top:1px solid rgba(238,240,246,.1);background:linear-gradient(180deg,rgba(26,30,44,.4),rgba(26,30,44,.9))}
.o-go{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;min-height:58px;padding:0 22px;border-radius:999px;background:linear-gradient(180deg,#C4CEF8,var(--accent));color:var(--ink);font-family:var(--f-display);font-weight:500;font-size:16.5px;box-shadow:0 12px 30px rgba(163,180,243,.28);transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.o-go:hover{box-shadow:0 16px 36px rgba(163,180,243,.4)}
.o-go:active{transform:scale(.98)}
.o-go::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-50%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);opacity:0}
.o-go.shine::after{animation:o-shine .9s var(--ease-out)}
@keyframes o-shine{0%{left:110%;opacity:1}100%{left:-50%;opacity:1}}
.o-go-wa{width:22px;height:22px;flex:none}
.o-go-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.o-go-ar{width:16px;height:16px;flex:none;transition:transform .35s var(--ease-out)}
.o-go:hover .o-go-ar{transform:translateX(-4px)}
.o-call{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(238,240,246,.24);color:#fff;transition:background-color .3s var(--ease-out),border-color .3s var(--ease-out)}
.o-call:hover{background:rgba(238,240,246,.1);border-color:#fff}
.o-call svg{width:21px;height:21px}
.o-sub{grid-column:1 / -1;display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;font-size:12.5px;color:var(--text-on-ink-2)}
.o-sub a{font-family:var(--f-display);font-weight:500;color:var(--accent-hover);border-bottom:1px solid currentColor}

/* opening: the sheet rises, the stage settles, the tiles deal in */
.order.show .cfg-stage{animation:stage-in .9s var(--ease-out) both}
@keyframes stage-in{from{opacity:0;transform:scale(.96)}}
.order.show .cfg-tile{animation:tile-in .6s var(--ease-out) both;animation-delay:calc(.15s + var(--i,0) * 70ms)}
@keyframes tile-in{from{opacity:0;transform:translateY(12px)}}

@media (max-width: 900px){
  .o-sheet{width:calc(100vw - 32px)}
  .cfg,.pick{grid-template-columns:1fr}
  .cfg-stage{min-height:0;height:clamp(250px,42vh,420px)}
  .pick-stage{min-height:0;height:190px}
  .pick-stage img{object-position:50% 62%}
}
@media (max-width: 720px){
  .o-sheet{left:0;right:0;top:auto;bottom:0;width:100%;height:calc(100svh - 8px);max-height:none;border-radius:26px 26px 0 0;border-bottom:0;opacity:1;transform:translate3d(0,100%,0);transition:transform .6s cubic-bezier(.2,.85,.25,1)}
  .order.show .o-sheet{transform:translate3d(0,var(--drag,0px),0)}
  .o-sheet.dragging{transition:none}
  .o-grab{display:flex;justify-content:center;padding:8px 0 0;touch-action:none;cursor:grab}
  .o-grab i{width:40px;height:5px;border-radius:999px;background:rgba(238,240,246,.3)}
  .o-head{grid-template-columns:1fr auto;padding:6px 12px 10px 14px;touch-action:none}
  .o-kick{display:none}
  .o-tabs{min-width:0}
  .o-tabs button{min-height:40px;padding:0 10px;font-size:14px}
  .o-close{width:42px;height:42px}
  .cfg{padding:0 12px 12px;gap:14px}
  .cfg-stage{height:clamp(220px,34svh,340px);border-radius:22px}
  .cfg-orb{top:12px;right:12px;width:78px;height:78px}
  .cfg-orb b{font-size:32px}
  .cfg-orb span{font-size:10.5px}
  .cfg-flag{bottom:40px;left:12px;font-size:12.5px;padding:6px 12px}
  .cfg-nav{width:38px;height:38px;margin-top:-19px;opacity:.6}
  .cfg-dots{bottom:14px}
  .cfg-tile{flex-direction:column;gap:5px;min-height:0;padding:7px 4px 6px;text-align:center}
  .cfg-tile img{width:40px;height:40px;border-radius:10px}
  .ct-t{align-items:center}
  .ct-t b{font-size:13.5px}
  .cfg-detail{margin-top:14px;padding-inline:4px}
  .cfg-name{font-size:24px}
  .roll{font-size:46px}
  .cfg-perks{gap:7px;margin-top:14px}
  .cfg-perks li{min-height:48px;padding:8px 10px;font-size:13px;gap:8px}
  .cfg-perks li svg{width:18px;height:18px}
  .o-note{padding-inline:4px}
  .pick{padding:0 12px 12px;gap:16px}
  .pick-stage{height:150px;border-radius:20px}
  .pick-cap{padding:30px 16px 12px}
  .pick-cap b{font-size:17px}
  .o-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:8px}
  .o-go{min-height:56px;padding:0 18px;font-size:15.5px}
  .o-call{width:56px;height:56px}
  .o-sub{justify-content:center;text-align:center;font-size:12px}
}
@media (prefers-reduced-motion: reduce){
  .cfg-glow,.cfg-orb{animation:none}
  .cfg-shot,.cfg-shot img,.roll .dg i,.cfg-ind,.o-ind,.cfg-flag{transition:none}
  .cfg-perks li,.order.show .cfg-stage,.order.show .cfg-tile,.pick-stage img,.cfg-orb.pop b,.cfg-stage.peek .cfg-shot.is-on img,.o-go.shine::after{animation:none}
}

/* Ribbon overlay: the thread that stitches the scenes */
.ribbon{position:absolute;top:0;left:0;width:100%;pointer-events:none;z-index:2;overflow:visible}
.ribbon .front{fill:url(#rb-front)}
.ribbon .back{fill:url(#rb-back)}
.ribbon .rf-a{stop-color:#8C9BD1}.ribbon .rf-b{stop-color:#C9D7FF}.ribbon .rf-c{stop-color:#A3B4F3}
.ribbon .rk-a{stop-color:var(--rk-a,#D6DBE8)}.ribbon .rk-b{stop-color:var(--rk-b,#FFFFFF)}.ribbon .rk-c{stop-color:var(--rk-a,#D6DBE8)}
.ribbon .tip{fill:var(--accent);transition:opacity .4s var(--ease-out)}

/* Pause everything off-screen and on hidden tabs */
.idle *,.idle *::before,.idle *::after{animation-play-state:paused!important}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .nav-links{display:none}
  .menu-btn{display:inline-flex}
}
@media (max-width:1100px){
  .branches{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .nav .btn-cta{min-height:40px;padding:0 15px;font-size:13.5px}
  .about-grid,.fabrics-intro,.journey-grid,.clean,.biz-top,.biz-offer,.contact-grid{grid-template-columns:1fr}
  .facts{grid-template-columns:repeat(2,1fr);row-gap:32px}
  .svc-head,.cred-head{flex-direction:column;align-items:flex-start}
  /* phones: the dial becomes a compact bar that stays under the navigation while the
     stations pass beneath it, so the count and the station name are always in view */
  .journey-grid{gap:0}
  .journey-sticky{position:sticky;top:calc(var(--nav-h) + 10px);z-index:5;height:auto;flex-direction:row;align-items:center;gap:14px;margin:0 -10px 6px;padding:9px 16px 9px 10px;border-radius:22px;background:rgba(246,247,251,.84);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 12px 32px rgba(15,17,16,.08),inset 0 0 0 1px rgba(78,86,119,.14)}
  .dial{width:62px;flex:none}
  .dr-track{stroke-width:5}
  .dr-fill{stroke-width:9}
  .dr-ticks{display:none}
  .counter{font-size:25px;font-weight:500}
  .dial-meta{gap:0;min-width:0}
  .counter-total{font-size:12.5px}
  .counter-name{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .station{min-height:auto;padding-block:26px;border-top:1px solid var(--line-on-cloud);opacity:.4}
  .station.on{opacity:1}
  .st-ic{width:40px;height:40px;margin-bottom:12px}
  .clean-stage{width:100%}
  .sectors{grid-template-columns:1fr 1fr}
  .mark-big{width:min(240px,60%);order:-1;margin-bottom:44px}   /* room for the ribbon's dip below the foot, clear of the heading */
}
/* services on touch screens and narrow windows: the photograph sits in the row */
@media (hover: none), (pointer: coarse), (max-width: 900px){
  .svc{grid-template-columns:40px minmax(0,1fr) 78px;row-gap:4px;column-gap:16px;padding:22px 0;align-items:start}
  .svc h3{grid-column:2;grid-row:1}
  .svc p{grid-column:2;grid-row:2}
  .svc .mono{grid-row:1;padding-top:.5em}
  .svc .thumb{display:block;grid-column:3;grid-row:1 / span 2;align-self:center;width:78px;aspect-ratio:4/5;border-radius:12px;overflow:hidden;background:var(--ink);box-shadow:0 10px 24px rgba(15,17,16,.14)}
  .svc .thumb img{width:100%;height:100%;object-fit:cover;transform:scale(1.16);transition:transform 1.2s var(--ease-out)}
  .svc.on .thumb img{transform:none}
  .svc.on h3{transform:none}
  .svc .twist{display:none}
  .svc-float{display:none}
  .svc::before{inset:0 -12px}
}
@media (max-width:640px){
  :root{--nav-h:64px}
  body{font-size:16px}
  .brand img{height:44px}.nav.solid .brand img{height:38px}
  .nav.solid{height:var(--nav-h)}
  .sectors{grid-template-columns:1fr}
  .branches{grid-template-columns:1fr;gap:12px}
  .branch{padding:20px 20px 18px}
  .b-top{margin-bottom:8px}
  .branch .links{margin-top:14px}
  .branch .links a{flex:1;justify-content:center}
  /* the official numbers become compact rows: seal, name, number */
  .seals{grid-template-columns:1fr;gap:0}
  .seal{flex-direction:row;align-items:center;text-align:start;gap:16px;padding:16px 0;border-top:1px solid var(--line-on-cloud)}
  .seal:last-child{border-bottom:1px solid var(--line-on-cloud)}
  .seal-ring{width:76px;flex:none}
  .seal-ring text{display:none}
  .seal-txt{align-items:flex-start;gap:0}
  .seal h3{font-size:17px}
  .seal-sub{font-size:13px}
  .seal .num{margin-top:8px;min-height:40px;padding:0 13px;font-size:14px}
  .facts b{font-size:42px}
  .about .h2{font-size:clamp(25px,7.6vw,40px)}
  .tags{grid-template-columns:1fr 1fr;gap:8px}
  .tag{padding:10px 10px 8px}
  .tag b{font-size:15px;padding-left:22px}
  .cs svg{width:20px;height:20px}
  .panel-body{padding:20px 16px 22px}
  .clean-hud{top:12px;right:12px}
  .hold-btn{font-size:14px;min-height:46px}
}

/* ---------- Reduced motion: final states, nothing moves ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  body{opacity:1}
  html.js .intro{display:none}
  .rv .rv-i,.rv-self,.mask > span{opacity:1;transform:none}
  .counter span.out-up,.counter span.out-down{opacity:0}
  html.js .lit .lw{opacity:1}
  .co{opacity:1}
  .co em{transform:none}
  html.js .st-ic *{stroke-dashoffset:0}
  .mark-big img{opacity:1;transform:none;-webkit-mask-image:none;mask-image:none}
  .mark-big::after{opacity:1}
  .foot-mark{opacity:.08;transform:none}
  .tag{transform:none}
  .station{opacity:1}
  .svc-float{display:none}
  .panel-img img{transform:scale(1.04)}
}
