﻿/* ==========================================================================
   FUGO CREATIVE — Direction A "SIGNAL"
   Kinetic editorial / dark canvas / motion-forward
   Author: redesign concept 2026
   ========================================================================== */

/* ---------- 1. TOKENS ---------------------------------------------------- */
:root{
  /* canvas */
  --bg:            #07080a;
  --bg-raise:      #0d0f13;
  --bg-raise-2:    #14171d;
  --line:          #23272f;
  --line-soft:     rgba(255,255,255,.08);

  /* ink */
  --ink:           #f4f5f2;
  --ink-mute:      #9ba1ab;
  --ink-faint:     #5d646f;

  /* brand */
  --green:         #3ddc97;   /* evolved from the existing #44B486 */
  --green-deep:    #0f5f45;
  --lime:          #c8f24e;
  --ultra:         #4b5cff;
  --warn:          #ff6b4a;

  /* gradients */
  --grad-signal:   linear-gradient(115deg,var(--green) 0%,var(--lime) 100%);
  --grad-fade:     linear-gradient(180deg,transparent 0%,var(--bg) 100%);

  /* type */
  --f-display: "Bricolage Grotesque","Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-body:    "Inter Tight","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --f-mono:    "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* fluid scale — clamp(min, preferred, max) */
  --t-mega:  clamp(3.4rem, 13.2vw, 15rem);
  --t-xxl:   clamp(2.6rem, 7.4vw, 7rem);
  --t-xl:    clamp(2rem, 4.6vw, 4rem);
  --t-lg:    clamp(1.5rem, 2.6vw, 2.25rem);
  --t-md:    clamp(1.05rem, 1.35vw, 1.3rem);
  --t-body:  clamp(1rem, 1.05vw, 1.075rem);
  --t-sm:    .8125rem;
  --t-xs:    .6875rem;

  /* space */
  --gut:  clamp(1.25rem, 4vw, 4.5rem);
  --sec:  clamp(5.5rem, 12vh, 11rem);
  --r:    14px;
  --r-lg: 26px;

  /* motion */
  --e-out:  cubic-bezier(.16,1,.3,1);
  --e-io:   cubic-bezier(.76,0,.24,1);
  --e-soft: cubic-bezier(.33,1,.68,1);
  --d:      .68s;

  --nav-h: 78px;
  --max:   1560px;
}

/* ---------- 2. RESET ----------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--f-body); font-size:var(--t-body);
  line-height:1.55; letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden; text-rendering:optimizeLegibility;
}
img,svg,video,canvas{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit;background:none;border:none}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
::selection{background:var(--green);color:#04150f}
:focus-visible{outline:2px solid var(--lime);outline-offset:4px;border-radius:4px}

/* film-grain + vignette on the whole canvas */
body::after{
  content:""; position:fixed; inset:-50%; z-index:9998; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 7s steps(8) infinite;
}
@keyframes grain{
  0%,100%{transform:translate(0,0)}
  10%{transform:translate(-3%,-4%)} 20%{transform:translate(-8%,2%)}
  30%{transform:translate(4%,-6%)}  40%{transform:translate(-2%,7%)}
  50%{transform:translate(-6%,3%)}  60%{transform:translate(7%,0)}
  70%{transform:translate(0,6%)}    80%{transform:translate(3%,-3%)}
  90%{transform:translate(-4%,4%)}
}

/* ---------- 3. LAYOUT ---------------------------------------------------- */
.shell{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:var(--sec);position:relative}
.grid{display:grid;gap:clamp(1.25rem,2.4vw,2.25rem)}
.g-12{grid-template-columns:repeat(12,1fr)}
@media(max-width:860px){.g-12{grid-template-columns:repeat(6,1fr)}}

.rule{height:1px;background:var(--line);border:0}

/* section eyebrow */
.eyebrow{
  font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-mute);
  display:flex; align-items:center; gap:.7rem; white-space:nowrap;
}
.eyebrow::before{
  content:""; width:26px; height:1px; background:var(--green); flex:none;
}
.eyebrow.is-plain::before{display:none}

/* ---------- 4. TYPE ------------------------------------------------------ */
.display{
  font-family:var(--f-display); font-weight:800;
  line-height:.86; letter-spacing:-.045em; text-transform:uppercase;
  font-variation-settings:"wdth" 100,"opsz" 48;
}
.h-mega{font-size:var(--t-mega)}
.h-xxl {font-size:var(--t-xxl)}
.h-xl  {font-size:var(--t-xl)}
.h-lg{
  font-family:var(--f-display); font-size:var(--t-lg);
  font-weight:700; line-height:1.06; letter-spacing:-.03em;
}
.lede{font-size:var(--t-md);color:var(--ink);line-height:1.62;max-width:62ch}
.mono{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase}
.tint{background:var(--grad-signal);-webkit-background-clip:text;background-clip:text;color:transparent}
.outline-txt{
  color:transparent; -webkit-text-stroke:1.4px var(--ink-faint);
  transition:color .5s var(--e-out),-webkit-text-stroke-color .5s var(--e-out);
}
.outline-txt:hover{color:var(--ink);-webkit-text-stroke-color:transparent}

/* ---------- 5. BUTTONS --------------------------------------------------- */
.btn{
  --btn-bg:var(--ink); --btn-fg:#07080a;
  position:relative; display:inline-flex; align-items:center; gap:.65rem;
  padding:1.02rem 1.9rem; border-radius:100px; overflow:hidden; isolation:isolate;
  font-size:.925rem; font-weight:600; letter-spacing:-.01em; white-space:nowrap;
  background:var(--btn-bg); color:var(--btn-fg);
  transition:transform .45s var(--e-out),color .38s var(--e-out);
  will-change:transform;
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:var(--grad-signal);
  transform:translateY(101%); transition:transform .55s var(--e-out);
}
.btn:hover::before{transform:translateY(0)}
.btn:hover{color:#04150f}
.btn .ico{transition:transform .45s var(--e-out)}
.btn:hover .ico{transform:translate(4px,-4px)}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn--ghost:hover{color:#04150f}
.btn--green{--btn-bg:var(--green);--btn-fg:#04150f}
.btn--green::before{background:var(--ink)}
.btn--green:hover{color:#07080a}
.btn--sm{padding:.72rem 1.3rem;font-size:.85rem}

/* text link with sliding underline */
.tlink{
  position:relative; display:inline-flex; align-items:center; gap:.5rem;
  padding-bottom:3px; font-weight:500;
}
.tlink::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .5s var(--e-out);
}
.tlink:hover::after{transform:scaleX(1);transform-origin:left}

/* ---------- 6. CUSTOM CURSOR -------------------------------------------- */
.cursor,.cursor-dot{
  position:fixed; top:0; left:0; z-index:9999; pointer-events:none;
  border-radius:50%; mix-blend-mode:difference;
}
.cursor{
  width:38px; height:38px; margin:-19px 0 0 -19px;
  border:1px solid var(--ink);
  transition:width .4s var(--e-out),height .4s var(--e-out),
             margin .4s var(--e-out),background .4s var(--e-out),opacity .3s;
}
.cursor-dot{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:var(--ink)}
.cursor,.cursor-dot{opacity:0}
body.cur-live .cursor,body.cur-live .cursor-dot{opacity:1}
body.cur-hover .cursor{width:74px;height:74px;margin:-37px 0 0 -37px;background:rgba(255,255,255,.9)}
body.cur-hover .cursor-dot{opacity:0}
.cursor-label{
  position:fixed; z-index:9999; pointer-events:none; transform:translate(-50%,-50%) scale(.6);
  font-family:var(--f-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:#07080a; opacity:0; transition:opacity .3s,transform .4s var(--e-out);
}
body.cur-label .cursor-label{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media(hover:none),(pointer:coarse){.cursor,.cursor-dot,.cursor-label{display:none}}

/* ---------- 7. NAV ------------------------------------------------------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:900; height:var(--nav-h);
  display:flex; align-items:center;
  transition:transform .55s var(--e-out),background .4s,backdrop-filter .4s;
}
.nav.is-solid{
  background:rgba(7,8,10,.72); backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--line-soft);
}
.nav.is-up{transform:translateY(-102%)}
.nav__in{
  width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gut);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.brand{display:flex;align-items:center;flex:none}
.brand__mark{height:32px;width:auto;display:block;flex:none}
.brand__txt{
  font-family:var(--f-display); font-weight:800; font-size:.82rem;
  line-height:.96; letter-spacing:.02em; text-transform:uppercase;
}
.brand__txt span{display:block;color:var(--green)}

.nav__links{display:flex;align-items:center;gap:clamp(.4rem,1.5vw,1.5rem)}
.nav__link{
  position:relative; padding:.55rem .2rem; font-size:.92rem; font-weight:450;
  color:var(--ink-mute); transition:color .3s;
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:.28rem; width:100%; height:1px;
  background:var(--green); transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--e-out);
}
.nav__link:hover{color:var(--ink)}
.nav__link:hover::after{transform:scaleX(1);transform-origin:left}
.nav__link.is-active{color:var(--ink)}
.nav__link.is-active::after{transform:scaleX(1)}

.nav__side{display:flex;align-items:center;gap:.85rem;flex:none}

/* language pill */
.lang{
  display:flex; align-items:center; padding:3px; border-radius:100px;
  box-shadow:inset 0 0 0 1px var(--line); position:relative;
}
.lang__btn{
  position:relative; z-index:1; padding:.36rem .68rem; border-radius:100px;
  font-family:var(--f-mono); font-size:10px; letter-spacing:.1em;
  color:var(--ink-faint); transition:color .35s;
}
.lang__btn.is-on{color:#04150f}
.lang__pill{
  position:absolute; z-index:0; top:3px; bottom:3px; left:3px; width:42px;
  border-radius:100px; background:var(--green);
  transition:transform .48s var(--e-out);
}
.lang[data-lang="id"] .lang__pill{transform:translateX(42px)}

/* burger */
.burger{display:none;width:44px;height:44px;position:relative;flex:none}
.burger i{
  position:absolute; left:11px; width:22px; height:1.5px; background:var(--ink);
  transition:transform .5s var(--e-io),opacity .3s;
}
.burger i:nth-child(1){top:18px}
.burger i:nth-child(2){top:25px}
body.menu-open .burger i:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
body.menu-open .burger i:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

/* overlay menu */
.menu{
  position:fixed; inset:0; z-index:880; display:flex; flex-direction:column;
  justify-content:center; padding:var(--nav-h) var(--gut) 3rem;
  background:var(--bg-raise); visibility:hidden;
  clip-path:inset(0 0 100% 0); transition:clip-path .8s var(--e-io),visibility .8s;
}
body.menu-open .menu{visibility:visible;clip-path:inset(0 0 0 0)}
.menu__list{display:flex;flex-direction:column;gap:.15rem}
.menu__item{overflow:hidden}
.menu__item a{
  display:block; font-family:var(--f-display); font-weight:800;
  font-size:clamp(2.2rem,10vw,4.4rem); line-height:1.06; letter-spacing:-.04em;
  text-transform:uppercase; transform:translateY(110%);
  transition:transform .7s var(--e-out),color .3s;
}
body.menu-open .menu__item a{transform:translateY(0)}
.menu__item:nth-child(1) a{transition-delay:.10s}
.menu__item:nth-child(2) a{transition-delay:.16s}
.menu__item:nth-child(3) a{transition-delay:.22s}
.menu__item:nth-child(4) a{transition-delay:.28s}
.menu__item:nth-child(5) a{transition-delay:.34s}
.menu__item a:hover{color:var(--green)}
.menu__foot{margin-top:auto;padding-top:2.5rem;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:space-between;color:var(--ink-mute);font-size:.9rem}

@media(max-width:1000px){
  .nav__links{display:none}
  .burger{display:block}
  .nav__side .btn{display:none}
}

/* ---------- 8. PRELOADER ------------------------------------------------- */
.loader{
  position:fixed; inset:0; z-index:9990; background:var(--bg);
  display:flex; align-items:flex-end; justify-content:space-between;
  padding:var(--gut); transition:clip-path 1s var(--e-io) .15s,visibility 1.2s;
}
.loader.is-done{clip-path:inset(0 0 100% 0);visibility:hidden}
.loader__word{
  font-family:var(--f-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(2rem,9vw,7rem); line-height:.85; letter-spacing:-.045em;
}
.loader__num{font-family:var(--f-mono);font-size:clamp(2rem,9vw,7rem);line-height:.85;color:var(--green)}
.loader__bar{position:absolute;left:0;bottom:0;height:2px;width:0%;background:var(--grad-signal)}

/* ---------- 9. HERO ------------------------------------------------------ */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column;
  justify-content:flex-end; padding-block:calc(var(--nav-h) + 2rem) 2rem;
  overflow:hidden;
}
.hero__canvas{position:absolute;inset:0;z-index:0;opacity:.85}
.hero__glow{
  position:absolute; z-index:0; width:75vw; height:75vw; max-width:1100px; max-height:1100px;
  right:-16vw; top:-22vw; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(61,220,151,.20) 0%,rgba(61,220,151,.05) 42%,transparent 68%);
  filter:blur(24px); animation:breathe 11s ease-in-out infinite;
}
@keyframes breathe{0%,100%{transform:scale(1) translate(0,0)}50%{transform:scale(1.12) translate(-3%,3%)}}
.hero__in{position:relative;z-index:2;width:100%}
.hero__title{margin-block:.28em .5em}
.hero__row{display:flex;align-items:baseline;gap:.22em;flex-wrap:wrap}
.hero__meta{
  display:flex; flex-wrap:wrap; gap:clamp(1.5rem,5vw,5rem);
  align-items:flex-end; justify-content:space-between;
  padding-top:2rem; border-top:1px solid var(--line);
}
.hero__cta{display:flex;gap:.75rem;flex-wrap:wrap}
.scroll-cue{
  display:flex; align-items:center; gap:.6rem; color:var(--ink-faint);
}
.scroll-cue__line{
  width:1px;height:42px;background:linear-gradient(var(--green),transparent);
  animation:cue 2.2s var(--e-io) infinite;transform-origin:top;
}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}

/* word / char reveal */
.reveal-line{overflow:hidden;display:block}
.reveal-line>span{display:block;transform:translateY(105%);transition:transform 1s var(--e-out)}
.is-in .reveal-line>span{transform:translateY(0)}
.reveal-line:nth-child(2)>span{transition-delay:.08s}
.reveal-line:nth-child(3)>span{transition-delay:.16s}

.hero__title>[data-split]{display:block}
.hero__title .reveal-line>span{display:block;transition-delay:.46s}
.word{display:inline-block;white-space:nowrap}
.char{display:inline-block;transform:translateY(102%);opacity:0}
.is-in .char{animation:charIn .9s var(--e-out) forwards}
@keyframes charIn{to{transform:translateY(0);opacity:1}}

/* generic scroll-in */
.fade-up{opacity:0;transform:translateY(34px);transition:opacity .9s var(--e-out),transform .9s var(--e-out)}
.fade-up.is-in{opacity:1;transform:none}
.fade-in{opacity:0;transition:opacity 1s var(--e-out)}
.fade-in.is-in{opacity:1}
[data-delay="1"]{transition-delay:.09s}
[data-delay="2"]{transition-delay:.18s}
[data-delay="3"]{transition-delay:.27s}
[data-delay="4"]{transition-delay:.36s}
[data-delay="5"]{transition-delay:.45s}

/* ---------- 10. MARQUEE -------------------------------------------------- */
.marquee{
  --spd:34s;
  display:flex; overflow:hidden; user-select:none; gap:0;
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{display:flex;flex:none;gap:2.5rem;padding-right:2.5rem;animation:slide var(--spd) linear infinite}
.marquee--rev .marquee__track{animation-direction:reverse}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-100%)}}
.marquee__item{
  display:flex; align-items:center; gap:2.5rem; flex:none;
  font-family:var(--f-display); font-weight:700; text-transform:uppercase;
  font-size:clamp(1.5rem,3.4vw,3.1rem); letter-spacing:-.03em; color:var(--ink-faint);
  white-space:nowrap;
}
.marquee__item::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}
.marquee--slim .marquee__item{font-size:.82rem;font-family:var(--f-mono);letter-spacing:.16em;color:var(--ink-mute)}
.marquee--slim .marquee__item::after{width:4px;height:4px}

/* ---------- 11. MANIFESTO (word-by-word dim reveal) ---------------------- */
.manifesto p{
  font-family:var(--f-display); font-weight:600; text-transform:none;
  font-size:clamp(1.55rem,4.1vw,3.2rem); line-height:1.16; letter-spacing:-.035em;
  max-width:20ch;
}
.manifesto .w{color:var(--ink-faint);transition:color .35s linear}
.manifesto .w.on{color:var(--ink)}
.manifesto .w.hl.on{color:var(--green)}

/* ---------- 12. STATS ---------------------------------------------------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);padding-top:2rem}
.stat{padding:2.2rem 1.4rem;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat__n{
  font-family:var(--f-display); font-weight:800; letter-spacing:-.045em;
  font-size:clamp(2.4rem,6vw,4.6rem); line-height:.9;
}
.stat__n sup{font-size:.36em;vertical-align:super;color:var(--green);margin-left:.06em}
.stat__l{margin-top:.6rem;color:var(--ink-faint);font-size:.86rem}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}
  .stat{border-bottom:1px solid var(--line);padding-left:0}
  .stat:nth-child(2n){border-right:0;padding-left:1.2rem}
  .stat:nth-child(2n+1){padding-right:1.2rem}}

/* ---------- 13. SERVICES (sticky index + panels) ------------------------- */
.svc{position:relative}
.svc__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(2rem,5vw,5rem)}
.svc__sticky{position:sticky;top:calc(var(--nav-h) + 4vh);align-self:start;height:fit-content}
.svc__index{margin-top:2.4rem;display:flex;flex-direction:column;gap:.15rem}
.svc__idx{
  display:flex; align-items:baseline; gap:1rem; padding:.72rem 0;
  border-bottom:1px solid var(--line); color:var(--ink-faint);
  transition:color .4s var(--e-out),padding-left .4s var(--e-out);
}
.svc__idx .n{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em}
.svc__idx .t{font-family:var(--f-display);font-weight:700;font-size:clamp(1.1rem,2vw,1.6rem);letter-spacing:-.03em}
.svc__idx.on{color:var(--ink);padding-left:.9rem}
.svc__idx.on .n{color:var(--green)}

.svc__panels{display:flex;flex-direction:column;gap:clamp(1rem,2vw,1.5rem)}
.card{
  position:relative; overflow:hidden; border-radius:var(--r-lg);
  background:var(--bg-raise); box-shadow:inset 0 0 0 1px var(--line);
  padding:clamp(1.6rem,3vw,2.6rem); isolation:isolate;
  transition:transform .6s var(--e-out),box-shadow .6s var(--e-out);
}
.card::before{
  content:""; position:absolute; inset:0; z-index:-1; opacity:0;
  background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(61,220,151,.14),transparent 42%);
  transition:opacity .5s;
}
.card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.42)}
.card:hover::before{opacity:1}
.card__art{
  height:clamp(150px,20vw,230px); border-radius:var(--r); margin-bottom:1.6rem;
  position:relative; overflow:hidden; background:var(--bg-raise-2);
}
.card__num{
  font-family:var(--f-mono); font-size:.7rem; letter-spacing:.14em; color:var(--green);
}
.card h3{
  font-family:var(--f-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(1.35rem,2.6vw,2rem); letter-spacing:-.035em; line-height:1;
  margin:.5rem 0 .8rem;
}
.card p{color:var(--ink-mute);font-size:.965rem;max-width:46ch}
.card__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.3rem}
.tag{
  font-family:var(--f-mono); font-size:10px; letter-spacing:.11em; text-transform:uppercase;
  padding:.42rem .7rem; border-radius:100px; color:var(--ink-mute);
  box-shadow:inset 0 0 0 1px var(--line);
}
@media(max-width:940px){
  .svc__grid{grid-template-columns:1fr}
  .svc__sticky{position:static}
  .svc__index{display:none}
}

/* ---------- 14. WORK ----------------------------------------------------- */
.hscroll{position:relative;height:320vh}
.hscroll__vp{position:sticky;top:0;height:100svh;display:flex;align-items:center;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none;}
.hscroll__vp::-webkit-scrollbar{display:none;}
.hscroll__track{display:flex;gap:clamp(1rem,2vw,2rem);padding-inline:var(--gut);will-change:transform}
.wcard{
  flex:none; width:clamp(280px,42vw,620px); border-radius:var(--r-lg); overflow:hidden;
  position:relative; background:var(--bg-raise); box-shadow:inset 0 0 0 1px var(--line);
}
.wcard__art{height:clamp(220px,42vh,440px);position:relative;overflow:hidden}
.wcard__art>*{transition:transform 1.1s var(--e-out)}
.wcard:hover .wcard__art>*{transform:scale(1.06)}
.wcard__body{padding:1.4rem clamp(1.2rem,2vw,1.8rem) 1.7rem;display:flex;flex-direction:column;gap:.5rem}
.wcard__meta{display:flex;gap:.8rem;align-items:center;color:var(--ink-faint);font-family:var(--f-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.wcard h3{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.15rem,2vw,1.7rem);letter-spacing:-.035em;line-height:1}
.wcard p{color:var(--ink-mute);font-size:.92rem}

/* work list (alt presentation, used on /work) */
.wlist{border-top:1px solid var(--line)}
.wrow{
  display:grid; grid-template-columns:60px 1fr 1fr auto; gap:1.5rem; align-items:center;
  padding:clamp(1.2rem,2.4vw,2rem) 0; border-bottom:1px solid var(--line);
  position:relative; transition:padding-left .55s var(--e-out);
}
.wrow::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:var(--r);
  background:var(--bg-raise); opacity:0; transition:opacity .45s;
}
.wrow:hover{padding-left:1.4rem}
.wrow:hover::before{opacity:1}
.wrow__n{font-family:var(--f-mono);font-size:.7rem;color:var(--ink-faint);letter-spacing:.1em}
.wrow__t{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.2rem,3vw,2.3rem);letter-spacing:-.04em;line-height:1}
.wrow__c{color:var(--ink-mute);font-size:.95rem}
.wrow__y{font-family:var(--f-mono);font-size:.75rem;color:var(--ink-faint)}
@media(max-width:820px){
  .wrow{grid-template-columns:1fr auto;gap:.5rem 1rem}
  .wrow__n{display:none}
}
/* hover image preview follows cursor */
.peek{
  position:fixed; z-index:800; width:300px; height:210px; border-radius:var(--r);
  overflow:hidden; pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.86);
  transition:opacity .35s var(--e-out),transform .5s var(--e-out);
  box-shadow:0 30px 70px rgba(0,0,0,.6);
}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media(max-width:820px){.peek{display:none}}

/* ---------- 15. CLIENT SECTORS ---------- */

.sectors {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;

    width: 100%;

    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 24px;
    overflow: hidden;
}

.sector {
    background: var(--bg);
    padding: 1.5rem;
    box-sizing: border-box;
    min-width: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
}
   .sector {
    aspect-ratio: 1 / 1;

    background: var(--bg);
    padding: 1.5rem;
    box-sizing: border-box;
    min-width: 0;

    border-right: 1px solid rgba(255, 255, 255, 0.14);

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    transition: background 0.3s ease;
}


.sector:last-child {
    border-right: none;
}

.sector:hover {
    background: var(--bg-raise);
}

.sector h4 {
    margin: 0 0 1.2rem;

    font-family: var(--ff-display);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.35;
}

.sector ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;

    margin: 0;
    padding: 0;

    list-style: none;
}

.sector li {
    display: inline-flex;
    align-items: center;

    padding: 0.4rem 0.7rem;

    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;

    font-size: 0.78rem;
    line-height: 1.2;

    color: var(--ink-faint);
    white-space: nowrap;
}

.sector:hover li {
    color: var(--ink-mute);
}

/* Mobile */
@media (max-width: 700px) {
    .sectors {
        grid-template-columns: 1fr;
    }

    .sector {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .sector:last-child {
        border-bottom: none;
    }
}

/* ---------- 16. PROCESS -------------------------------------------------- */
.steps{display:grid;gap:0}
.step{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(1.2rem,4vw,4rem);
  padding-block:clamp(1.8rem,3.6vw,3rem); border-top:1px solid var(--line);
  align-items:start;
}
.step__n{
  font-family:var(--f-display); font-weight:800; font-size:clamp(2.2rem,6vw,4.6rem);
  line-height:.85; letter-spacing:-.05em; color:transparent; -webkit-text-stroke:1.2px var(--line);
  transition:-webkit-text-stroke-color .6s,color .6s;
}
.step:hover .step__n{color:var(--green);-webkit-text-stroke-color:transparent}
.step__b h3{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.15rem,2.2vw,1.7rem);letter-spacing:-.035em;margin-bottom:.6rem}
.step__b p{color:var(--ink-mute);max-width:56ch}

/* ---------- 17. QUOTE ---------------------------------------------------- */
.quote{
  border-radius:var(--r-lg); padding:clamp(2rem,5vw,4.5rem);
  background:
    radial-gradient(120% 100% at 100% 0%,rgba(61,220,151,.12),transparent 55%),
    var(--bg-raise);
  box-shadow:inset 0 0 0 1px var(--line);
  display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(1.5rem,4vw,3rem); align-items:center;
}
.quote__art{position:relative;aspect-ratio:1;max-width:340px;margin-inline:auto;width:100%}
.quote__ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--line)}
.quote__ring:nth-child(2){inset:14%;border-color:rgba(61,220,151,.28)}
.quote__ring:nth-child(3){inset:28%;border-color:rgba(200,242,78,.22)}
.quote__ring:nth-child(1){animation:spin 26s linear infinite;border-style:dashed}
@keyframes spin{to{transform:rotate(360deg)}}
.quote__mark{position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--f-display);font-weight:800;font-size:clamp(4rem,9vw,8rem);
  background:var(--grad-signal);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
@media(max-width:860px){.quote{grid-template-columns:1fr}.quote__art{display:none}}
.quote blockquote{
  font-family:var(--f-display); font-weight:600; font-size:clamp(1.35rem,3.2vw,2.5rem);
  line-height:1.2; letter-spacing:-.035em; max-width:26ch;
}
.quote__by{margin-top:2rem;display:flex;align-items:center;gap:1rem;color:var(--ink-mute);font-size:.92rem}
.avatar{width:46px;height:46px;border-radius:50%;background:var(--grad-signal);flex:none;
  display:grid;place-items:center;color:#04150f;font-weight:800;font-family:var(--f-display)}

/* ---------- 18. CTA ------------------------------------------------------ */
.cta{position:relative;text-align:center;overflow:hidden}
.cta__big{font-size:clamp(3rem,12vw,11rem)}
.cta__glow{
  position:absolute; left:50%; top:50%; translate:-50% -50%;
  width:120vw; height:60vh; pointer-events:none;
  background:radial-gradient(ellipse,rgba(61,220,151,.16),transparent 62%); filter:blur(30px);
}

/* ---------- 19. FOOTER --------------------------------------------------- */
.foot{border-top:1px solid var(--line);padding-top:clamp(3rem,6vw,5rem);position:relative}
.foot__top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:2.5rem}
.foot h5{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.1rem}
.foot li+li{margin-top:.55rem}
.foot a{color:var(--ink-mute);transition:color .3s}
.foot a:hover{color:var(--green)}
.foot address{font-style:normal;color:var(--ink-mute);font-size:.9rem;line-height:1.65}
.foot address+address{margin-top:1rem}
.foot__word{
  margin-top:clamp(2.5rem,6vw,4rem); line-height:.78; letter-spacing:-.05em;
  font-size:clamp(3.4rem,15.5vw,16rem); color:transparent; -webkit-text-stroke:1px var(--line);
  overflow:hidden; text-align:center;
}
.foot__bot{
  margin-top:1.5rem; padding-block:1.6rem; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between;
  color:var(--ink-faint); font-size:.8rem;
}
@media(max-width:900px){.foot__top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot__top{grid-template-columns:1fr}}

/* ---------- 20. FORM ----------------------------------------------------- */
.field{position:relative;padding-block:1.5rem;border-bottom:1px solid var(--line)}
.field label{
  position:absolute; left:0; top:1.85rem; color:var(--ink-faint); font-size:1rem;
  pointer-events:none; transition:transform .45s var(--e-out),color .35s,font-size .45s var(--e-out);
  transform-origin:left top;
}
.field input,.field textarea{width:100%;font-size:1.05rem;padding-top:.65rem;resize:vertical}
.field input:focus,.field textarea:focus{outline:none}
.field:focus-within label,.field.filled label{transform:translateY(-1.5rem) scale(.72);color:var(--green)}
.field::after{
  content:""; position:absolute; left:0; bottom:-1px; height:1px; width:100%;
  background:var(--green); transform:scaleX(0); transform-origin:left;
  transition:transform .55s var(--e-out);
}
.field:focus-within::after{transform:scaleX(1)}
.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.chip{
  padding:.62rem 1.05rem;border-radius:100px;font-size:.88rem;color:var(--ink-mute);
  box-shadow:inset 0 0 0 1px var(--line); transition:all .35s var(--e-out);
}
.chip:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink-faint)}
.chip.on{background:var(--green);color:#04150f;box-shadow:none;font-weight:600}

/* ---------- 21. PAGE HEADER (inner pages) ------------------------------- */
.phead{padding-top:calc(var(--nav-h) + clamp(3.5rem,9vw,7rem));padding-bottom:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}
.phead__glow{position:absolute;right:-10vw;top:-20vh;width:60vw;height:60vw;max-width:800px;
  background:radial-gradient(circle,rgba(61,220,151,.14),transparent 65%);filter:blur(20px);pointer-events:none}
.crumb{display:flex;gap:.55rem;align-items:center;color:var(--ink-faint);font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}

/* ---------- 22. UTILITIES ----------------------------------------------- */
.stack{display:flex;flex-direction:column}
.gap-s{gap:.75rem}.gap-m{gap:1.5rem}.gap-l{gap:2.5rem}.gap-xl{gap:clamp(2.5rem,5vw,4.5rem)}
.row{display:flex;flex-wrap:wrap}
.between{justify-content:space-between}.center{align-items:center}.end{align-items:flex-end}
.mt-s{margin-top:.9rem}.mt-m{margin-top:1.8rem}.mt-l{margin-top:3rem}
.tc{text-align:center}
.muted{color:var(--ink-mute)}.faint{color:var(--ink-faint)}
.green{color:var(--green)}
.max-50{max-width:50ch}.max-60{max-width:60ch}
.col-6{grid-column:span 6}.col-5{grid-column:span 5}.col-7{grid-column:span 7}
.col-4{grid-column:span 4}.col-8{grid-column:span 8}.col-12{grid-column:span 12}
@media(max-width:860px){
  .col-6,.col-5,.col-7,.col-4,.col-8{grid-column:span 6}
}

/* progress bar */
.prog{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:left;transform:scaleX(0);
  background:var(--grad-signal);z-index:950}

/* ---------- 23. JOURNAL / BLOG ------------------------------------------ */
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,2.4vw,2.25rem)}
@media(max-width:940px){.bgrid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.bgrid{grid-template-columns:1fr}}
.bcard{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:var(--bg-raise);box-shadow:inset 0 0 0 1px var(--line);
  display:flex;flex-direction:column;isolation:isolate;
  transition:transform .6s var(--e-out),box-shadow .6s var(--e-out);
}
.bcard::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:radial-gradient(600px circle at var(--mx,50%) var(--my,20%),rgba(61,220,151,.14),transparent 42%);
  transition:opacity .5s;
}
.bcard:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.42)}
.bcard:hover::before{opacity:1}
.bcard__art{height:clamp(180px,22vw,260px);position:relative;overflow:hidden;background:var(--bg-raise-2)}
.bcard__art img,.bcard__art svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--e-out)}
.bcard:hover .bcard__art img,.bcard:hover .bcard__art svg{transform:scale(1.06)}
.bcard__art .tag{position:absolute;left:1.1rem;bottom:1.1rem;background:rgba(7,8,10,.72);backdrop-filter:blur(8px);color:var(--ink)}
.bcard__body{padding:1.5rem clamp(1.25rem,2vw,1.8rem) 1.7rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.bcard__meta{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;color:var(--ink-faint);font-family:var(--f-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.bcard__meta .dot{opacity:.5}
.bcard h3{font-family:var(--f-display);font-weight:800;font-size:clamp(1.2rem,2vw,1.6rem);letter-spacing:-.03em;line-height:1.08}
.bcard h3 a{color:var(--ink);text-decoration:none}
.bcard__ex{color:var(--ink-mute);font-size:.94rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bcard__foot{margin-top:auto;padding-top:.6rem}

/* journal pagination */
.jpager{display:flex;justify-content:center;margin-top:3rem}
.jpager nav{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
.jpager a,.jpager span{
  min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 1rem;border-radius:100px;font-size:.88rem;color:var(--ink-mute);
  box-shadow:inset 0 0 0 1px var(--line);transition:all .35s var(--e-out);
}
.jpager a:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink-faint)}
.jpager span[aria-current="page"]{background:var(--green);color:#04150f;font-weight:600;box-shadow:none}
.jpager span[aria-disabled="true"]{opacity:.35}

/* journal: whole-card click affordance */
.bcard h3 a::after,.bfeat__body h3 a::after,.bmini h4 a::after{
  content:"";position:absolute;inset:0;
}
.bcard h3 a,.bfeat__body h3 a,.bmini h4 a{position:static}
.bcard,.bfeat__card,.bmini{position:relative}

/* journal: featured + side minis (homepage) */
.bfeat{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(1.25rem,2.4vw,2.25rem);align-items:stretch}
@media(max-width:940px){.bfeat{grid-template-columns:1fr}}
.bfeat__card{
  overflow:hidden;border-radius:var(--r-lg);background:var(--bg-raise);
  box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;isolation:isolate;
  transition:transform .6s var(--e-out),box-shadow .6s var(--e-out);
}
.bfeat__card:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.42)}
.bfeat__art{display:block;position:relative;overflow:hidden;background:var(--bg-raise-2);height:clamp(240px,30vw,380px)}
.bfeat__art img,.bfeat__art svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--e-out)}
.bfeat__card:hover .bfeat__art img,.bfeat__card:hover .bfeat__art svg{transform:scale(1.05)}
.bfeat__art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,8,10,.55));pointer-events:none}
.bfeat__art .tag{position:absolute;left:1.4rem;bottom:1.4rem;z-index:1;background:rgba(7,8,10,.72);backdrop-filter:blur(8px);color:var(--ink)}
.bfeat__body{padding:clamp(1.6rem,3vw,2.6rem);display:flex;flex-direction:column;gap:1rem;flex:1}
.bfeat__body h3{font-family:var(--f-display);font-weight:800;font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.035em;line-height:1.02}
.bfeat__body h3 a{color:var(--ink);text-decoration:none}
.bfeat__ex{color:var(--ink-mute);font-size:1rem;line-height:1.65;max-width:56ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bfeat__by{display:flex;align-items:center;gap:.9rem;color:var(--ink);font-size:.92rem;font-weight:500}
.bfeat__avatar{
  width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:var(--f-display);font-weight:800;font-size:1.05rem;color:#04150f;
  background:var(--grad-signal);
}
.bfeat__side{display:flex;flex-direction:column;gap:clamp(1rem,1.8vw,1.5rem)}
.bmini{
  display:grid;grid-template-columns:132px 1fr;gap:1.25rem;align-items:center;
  padding:1.1rem 1.35rem 1.1rem 1.1rem;border-radius:var(--r-lg);
  background:var(--bg-raise);box-shadow:inset 0 0 0 1px var(--line);
  transition:transform .55s var(--e-out),box-shadow .55s var(--e-out);flex:1;
}
.bmini:hover{transform:translateX(6px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.42)}
.bmini__thumb{display:block;width:132px;height:112px;border-radius:10px;overflow:hidden;background:var(--bg-raise-2);flex:none}
.bmini__thumb img,.bmini__thumb svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--e-out)}
.bmini:hover .bmini__thumb img,.bmini:hover .bmini__thumb svg{transform:scale(1.08)}
.bmini__txt{min-width:0;display:flex;flex-direction:column;gap:.55rem;align-items:flex-start}
.bmini h4{font-family:var(--f-display);font-weight:800;font-size:clamp(1.05rem,1.8vw,1.35rem);letter-spacing:-.025em;line-height:1.12}
.bmini h4 a{color:var(--ink);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bmini .tlink{font-size:.88rem}
.bmini--more{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;color:var(--ink)}
.bmini--more:hover{transform:translateX(6px)}
.bmini__more-t{font-family:var(--f-display);font-weight:800;font-size:clamp(1.1rem,2vw,1.5rem);letter-spacing:-.03em}
.bmini__arrow{
  width:52px;height:52px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;
  color:#04150f;background:var(--grad-signal);transition:transform .45s var(--e-out);
}
.bmini--more:hover .bmini__arrow{transform:translate(4px,-4px)}
@media(max-width:560px){
  .bmini{grid-template-columns:96px 1fr;padding:.9rem}
  .bmini__thumb{width:96px;height:88px}
}

/* article detail */
.article{max-width:880px;margin-inline:auto}
.article__body::first-letter{
  font-family:var(--f-display);font-weight:800;float:left;
  font-size:3.6em;line-height:.86;padding:.06em .12em 0 0;color:var(--green);
}
.abyline{
  display:flex;align-items:center;gap:1rem;margin-top:2.6rem;
  padding:1.3rem 1.5rem;border-radius:var(--r-lg);
  background:var(--bg-raise);box-shadow:inset 0 0 0 1px var(--line);
}
.abyline .bfeat__avatar{width:52px;height:52px;font-size:1.2rem}
.abyline strong{display:block;color:var(--ink);font-size:.95rem}
.abyline span span{color:var(--ink-faint);font-size:.85rem}
.abyline--bare{background:transparent;box-shadow:none;padding:1.1rem 0 0;border-top:1px solid var(--line);border-radius:0;margin-top:2rem}
.abyline--bare .bfeat__avatar{width:46px;height:46px;font-size:1.05rem}
/* article share */
.ashare{margin-left:auto;display:flex;gap:.5rem}
.ashare__btn{
  position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  color:var(--ink-mute);box-shadow:inset 0 0 0 1px var(--line);background:transparent;cursor:pointer;
  transition:all .35s var(--e-out);
}
.ashare__btn:hover{color:#04150f;background:var(--green);box-shadow:none;transform:translateY(-2px)}
.ashare__tip{
  position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
  white-space:nowrap;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  background:var(--ink);color:#07080a;padding:.4rem .7rem;border-radius:8px;opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s var(--e-out);
}
.ashare__btn:hover .ashare__tip,.ashare__btn.is-copied .ashare__tip{opacity:1;transform:translateX(-50%) translateY(0)}
.ashare__btn.is-copied{color:#04150f;background:var(--green);box-shadow:none}
/* article hero caption */
.article__cap{
  margin-top:.9rem;color:var(--ink-faint);font-family:var(--f-mono);
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
}
/* article prev / next */
.aprevnext{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.5rem);margin-top:2.6rem}
@media(max-width:640px){.aprevnext{grid-template-columns:1fr}}
.aprevnext__link{
  display:flex;flex-direction:column;gap:.7rem;padding:1.4rem 1.5rem;border-radius:var(--r-lg);
  background:var(--bg-raise);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;
  transition:transform .5s var(--e-out),box-shadow .5s var(--e-out);
}
.aprevnext__link:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(61,220,151,.42)}
.aprevnext__link--next{text-align:right;align-items:flex-end}
.aprevnext__t{font-family:var(--f-display);font-weight:800;color:var(--ink);font-size:clamp(1.05rem,1.8vw,1.35rem);letter-spacing:-.025em;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.article__hero{border-radius:var(--r-lg);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line);margin-block:2.2rem}
.article__hero img{width:100%;max-height:480px;object-fit:cover;display:block}
.article__body{color:var(--ink);font-size:1.06rem;line-height:1.8}
.article__body p+p{margin-top:1.3rem}

/* ---------- 24. REDUCED MOTION ------------------------------------------ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  .marquee__track, .marquee__row {
    animation-duration: var(--spd, 34s) !important;
    animation-iteration-count: infinite !important;
  }
  .fade-up,.fade-in{opacity:1!important;transform:none!important}
  .reveal-line>span,.char{transform:none!important;opacity:1!important}
  .hscroll{height:auto}
  .hscroll__vp{position:static;height:auto;overflow-x:auto;padding-block:2rem;scrollbar-width:none;-ms-overflow-style:none;}
  .hscroll__vp::-webkit-scrollbar{display:none;}
  .hscroll__track{transform:none!important}
  body::after{display:none}
}


