﻿/* ==========================================================================
   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(3rem, 6vh, 5rem);
  --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{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;overscroll-behavior-x:none}
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;
  max-width:100%;overflow-x:clip;overscroll-behavior-x:none;text-rendering:optimizeLegibility;
}
.shell,.section,.svc,.hscroll,.bfeat,.foot,.grid > *,.foot__top > *{min-width:0;max-width:100%}
.svc__panels,.hscroll__track,.bgrid,.grid.g-12.mt-l,.grid.g-12.mt-l.is-swipe{max-width:100vw;contain:inline-size}
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)}
html[lang="id"] .hero__title{font-size:clamp(2.9rem,11vw,12rem)}
@media(max-width:640px){html[lang="id"] .hero__title{font-size:clamp(2.4rem,10.8vw,8rem)}}
.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:88svh; display:grid; place-items:center;
  padding-block:calc(var(--nav-h) + 4vh) 2.2rem;
  overflow:hidden;
}
@media(max-width:640px){.hero{min-height:78svh;padding-block:calc(var(--nav-h) + 2rem) 1.6rem}}
.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%;display:grid;gap:0}
.hero__title{margin-block:.2em .15em;line-height:.9}
.hero__bottom{margin-top:1.4rem;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase}
.hero__row{display:flex;align-items:baseline;gap:.22em;flex-wrap:wrap}
.hero__meta{
  display:flex; flex-wrap:wrap; gap:1rem 3rem;
  align-items:center; justify-content:space-between;
  padding-top:1.25rem; margin-top:.9rem; border-top:1px solid var(--line);
}
.hero__meta .lede{max-width:44ch;font-size:.92rem;color:var(--ink-mute);line-height:1.55}
.hero__cta{display:flex;gap:.6rem;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 input::placeholder,.field textarea::placeholder{opacity:0;transition:opacity .25s var(--e-out)}
.field:focus-within input::placeholder,.field:focus-within textarea::placeholder,.field.filled input::placeholder,.field.filled textarea::placeholder{opacity:.38}
.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. MOBILE RESPONSIVE — compact, no hero gap, true mobile */
@media(max-width:640px){
  :root{
    --sec: clamp(1.95rem, 5.2vw, 2.6rem);
    --gut: clamp(1rem, 4.2vw, 1.18rem);
    --nav-h: 56px;
    --t-mega: clamp(3rem, 14.2vw, 4.5rem);
    --t-xxl: clamp(1.78rem, 6.4vw, 2.35rem);
    --t-xl: clamp(1.42rem, 5.2vw, 1.9rem);
    --t-lg: clamp(1.15rem, 3.8vw, 1.45rem);
  }
  html[lang="id"] .hero__title{ font-size: clamp(2.7rem, 13vw, 4rem); }
  .brand__mark{ height: 24px; }
  .nav__in{ gap: .6rem; }
  .burger{ width: 40px; height: 40px; }
  .eyebrow{ font-size: 10px; letter-spacing: .16em; gap: .45rem; }
  .eyebrow::before{ width: 18px; }
  .lede{ max-width: 30ch; font-size: .92rem; line-height: 1.56; }
  .section{ padding-block: var(--sec); }
  .shell{ padding-inline: var(--gut); padding-inline: max(var(--gut), env(safe-area-inset-left)); }
  .gap-xl{ gap: 1.05rem; }
  .gap-l{ gap: .8rem; }
  .gap-m{ gap: .7rem; }
  .mt-l{ margin-top: 1.15rem; }
  .mt-m{ margin-top: .75rem; }
  .mt-s{ margin-top: .45rem; }
  .phead{ padding-top: calc(var(--nav-h) + 10px); padding-bottom: 12px; }
  .phead__glow{ display: none; }
  .crumb{ font-size: 9px; gap: 5px; flex-wrap: wrap; }
  /* HERO — meta separated by gap line like desktop, not fused/card */
  .hero{ min-height: auto; padding-top: calc(var(--nav-h) + 8px); padding-bottom: 12px; justify-content: flex-start; }
  .hero__in{ padding-top: 0; }
  .hero__title{ margin-block: .08em .22em; line-height: .84; letter-spacing: -.045em; }
  .hero__glow{ width: 88vw; height: 88vw; right: -24vw; top: -6vw; opacity: .5; }
  .hero__meta{
    margin-top: 16px; padding-top: 14px; padding-bottom: 0; gap: 12px;
    flex-direction: column; align-items: flex-start;
    background: transparent; border: none; border-top: 1px solid var(--line); border-radius: 0;
  }
  .hero__meta .lede{ max-width: none; font-size: .88rem; line-height: 1.55; }
  .hero__cta{ gap: 8px; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
  .hero__cta .btn{ padding: .82rem 1.1rem; font-size: .84rem; width: auto; max-width: none; flex: 0 1 auto; justify-content: center; }
  .hero .row.between.center.mt-m{ margin-top: 10px !important; }
  .scroll-cue{ display: none !important; }
  section[aria-label="Clients"]{ border-block-width: 1px; }
  /* manifesto + stats + steps — loose enough to breathe */
  .manifesto p{ max-width: 22ch; font-size: clamp(1.22rem, 5.2vw, 1.62rem); line-height: 1.2; }
  .manifesto .grid.g-12{ gap: .65rem; }
  .stats{ padding-top: 10px; }
  .stat{ padding: 13px 11px 14px; }
  .stat__n{ font-size: clamp(1.78rem, 7.4vw, 2.35rem); }
  .stat__l{ font-size: .74rem; margin-top: 4px; line-height: 1.38; }
  .grid{ gap: 12px; }
  .steps .step{ padding-block: 14px; gap: 12px; }
  .step__n{ font-size: clamp(1.65rem, 7.8vw, 2.15rem); }
  .step__b h3{ font-size: 1.04rem; margin-bottom: 4px; }
  .step__b p{ font-size: .9rem; line-height: 1.56; }
  .quote{ padding: 16px; gap: 13px; border-radius: 18px; }
  .quote__art{ display: none !important; }
  .quote blockquote{ font-size: clamp(1rem, 4.1vw, 1.32rem); max-width: none; line-height: 1.24; }
  .quote__by{ margin-top: 11px; gap: 10px; font-size: .84rem; }
  .avatar{ width: 38px; height: 38px; }
  .cta{ padding-block: var(--sec); }
  .cta__big{ font-size: clamp(2rem, 10.2vw, 3.6rem); line-height: .92; }
  .cta .row.gap-s{ gap: 8px; justify-content: center; }
  .cta .btn{ padding: .84rem 1.25rem; font-size: .88rem; }
  .foot{ padding-top: 18px; }
  .foot h5{ margin-bottom: 8px; padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.07); font-size: 9px; }
  .foot__top{ gap: 18px 14px; }
  .foot__word{ margin-top: 14px; font-size: clamp(3.1rem, 21vw, 5.6rem); }
  .foot__bot{ padding-block: 13px; gap: 6px; font-size: .75rem; }
  .field{ padding-block: 13px; }
  .field label{ font-size: .92rem; top: 1.55rem; }
  .field input,.field textarea{ min-height: 44px; }
  .chips{ gap: 8px; margin-top: 9px; }
  .chip{ padding: 7px 10px; font-size: .76rem; min-height: 32px; }
  .bcard__meta{ font-size: 9px; gap: 5px; }
  /* inline-style dead-space overrides (keep palette, only spacing) — propagate to all pages */
  section[style*="padding-block:clamp"]{ padding-block: 12px !important; }
  section[style*="padding-top:clamp"]{ padding-top: 14px !important; }
  section[style*="margin-bottom:2.5rem"]{ margin-bottom: 10px !important; }
  div[style*="margin-top:2.5rem"]{ margin-top: 14px !important; }
  /* subtle structure dividers — no extra padding */
  .section + .section{ border-top: 1px solid rgba(255,255,255,.04); }
  section.section[style*="padding-top:0"]{ border-top: none; }
  .hscroll + .section, [aria-label="Clients"] + .section, .section.manifesto{ border-top: none; }
}

/* ---------- 24b. MOBILE SWIPE CARDS — anti-cutoff, smooth scroll, cross-page ---- */
@media(max-width:640px){
  /* capabilities: compact, no longer too high — shadow lift not translate, so no top clip */
  .svc__panels{
    flex-direction: row; overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; gap: 14px; overscroll-behavior-x: contain; touch-action: pan-x;
    padding-top: 3px; padding-bottom: 12px; scroll-padding-inline: var(--gut);
    margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut);
  }
  .svc__panels::-webkit-scrollbar{ display: none; }
  .svc__panels .card{
    flex: 0 0 72vw; max-width: 17.25rem; scroll-snap-align: center; scroll-snap-stop: normal;
    padding: 15px; display: flex; flex-direction: column; height: auto; min-height: auto;
    overflow: hidden; border-radius: 16px;
    transform: none; box-shadow: inset 0 0 0 1px rgba(61,220,151,.22), 0 6px 18px rgba(0,0,0,.18);
    transition: transform .35s var(--e-out), box-shadow .35s var(--e-out), border-color .35s;
  }
  .svc__panels .card:active{ transform: scale(.985); }
  .svc__panels .card.is-active{ box-shadow: inset 0 0 0 1.5px var(--green), 0 8px 20px rgba(0,0,0,.22); transform: scale(.985); }
  .svc__panels .card__art{ height: 124px; margin-bottom: 10px; flex: none; border-radius: 10px; }
  .svc__panels .card h3{ font-size: 1.02rem; margin: 4px 0 5px; line-height: 1.08; }
  .svc__panels .card p{
    font-size: .84rem; line-height: 1.5; min-height: auto;
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
  }
  .svc__panels .card__tags{ margin-top: 8px; padding-top: 0; gap: 6px; }
  .svc__panels .tag{ font-size: 9px; padding: .32rem .55rem; }
  .card{ padding: 15px; border-radius: 16px; overflow: hidden; }
  .card__art{ height: 124px; border-radius: 10px; }
  .card h3{ font-size: 1.02rem; }
  /* selected work: image -17%, card -15% so not mendominasi */
  .hscroll{ height: auto !important; }
  .hscroll__vp{
    position: static !important; height: auto !important; overflow: visible !important;
    display: block !important; padding-block: 4px 10px;
  }
  .hscroll__track{
    display: flex; overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; gap: 10px; overscroll-behavior-x: contain; touch-action: pan-x;
    padding-inline: var(--gut); margin-inline: calc(var(--gut) * -1);
    scroll-padding-inline: var(--gut); transform: none !important;
    padding-bottom: 8px;
  }
  .hscroll__track::-webkit-scrollbar{ display: none; }
  .wcard{ flex: 0 0 70vw; max-width: 17rem; scroll-snap-align: center; scroll-snap-stop: normal; display: flex; flex-direction: column; height: auto; min-height: auto; border-radius: 16px; overflow: hidden; }
  .wcard__art{ height: 138px; flex: none; }
  .wcard__body{ padding: 11px 11px 12px; gap: 4px; flex: 1; display: flex; flex-direction: column; }
  .wcard__meta{ font-size: 8px; gap: 5px; flex-wrap: wrap; }
  .wcard h3{ font-size: .98rem; line-height: 1.1; }
  .wcard p{ font-size: .82rem; line-height: 1.5; min-height: auto; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .wcard .tlink{ margin-top: 8px; font-size: .8rem; min-height: 44px; align-items: center; }
  .bgrid{
    display: flex; overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; gap: 10px; overscroll-behavior-x: contain; touch-action: pan-x;
    padding-bottom: 8px; scroll-padding-inline: var(--gut);
    margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut);
  }
  .bgrid::-webkit-scrollbar{ display: none; }
  .bgrid .bcard{ flex: 0 0 72vw; max-width: 17.25rem; scroll-snap-align: center; scroll-snap-stop: normal; height: auto; min-height: auto; border-radius: 16px; overflow: hidden; }
  .bcard__art{ height: 152px; flex: none; }
  .bcard__body{ padding: 12px 12px 13px; gap: 6px; }
  .bcard h3{ font-size: 1.04rem; line-height: 1.12; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: auto; }
  .bcard__ex{ -webkit-line-clamp: 2; font-size: .86rem; line-height: 1.54; min-height: auto; }
  .bcard__foot{ padding-top: 3px; }
  .bfeat{ gap: 12px; }
  .bfeat__card{ border-radius: 18px; overflow: hidden; }
  .bfeat__art{ height: 182px; }
  .bfeat__body{ padding: 14px; gap: 7px; }
  .bfeat__body h3{ font-size: 1.24rem; line-height: 1.08; }
  .bfeat__ex{ -webkit-line-clamp: 2; font-size: .88rem; line-height: 1.54; min-height: auto; }
  .bfeat__side{ gap: 9px; }
  .bmini{ padding: 10px 11px 10px 9px; gap: 10px; border-radius: 16px; }
  .bmini h4{ font-size: .97rem; line-height: 1.14; }
  .bmini__thumb{ border-radius: 10px; }
  .sectors{ border-radius: 14px; }
  .sector{ aspect-ratio: auto !important; min-height: auto; padding: 12px; }
  .sector h4{ font-size: .94rem; margin-bottom: 8px; line-height: 1.32; }
  .sector li{ font-size: .72rem; padding: 4px 7px; }
  .wrow{ padding: 13px 0; gap: 6px 10px; }
  .wrow__t{ font-size: 1.02rem; }
  .wrow__c{ font-size: .84rem; line-height: 1.45; }
  .wrow__y{ font-size: .72rem; }
  div[style*="display: flex"][style*="border: 1px solid"]{ flex-direction: column !important; border-radius: 14px !important; }
  div[style*="display: flex"][style*="border: 1px solid"] > div[style*="flex: 1"]{
    border-right: none !important; border-bottom: 1px solid rgba(255,255,255,.12);
    padding: 13px 13px !important;
  }
  div[style*="display: flex"][style*="border: 1px solid"] > div[style*="flex: 1"]:last-child{ border-bottom: none !important; }
  div[style*="display: flex"][style*="border: 1px solid"] h4{ font-size: 1rem !important; margin-bottom: 6px !important; }
  div[style*="display: flex"][style*="border: 1px solid"] p{ font-size: .86rem !important; }
  .field[style*="margin-top:2rem"]{ margin-top: 9px !important; }
  div[style*="padding-block:1rem"][style*="border-top"]{ padding-block: 11px !important; }
  div[style*="padding-block:1rem"][style*="border-top"] dt{ font-size: .96rem !important; }
  div[style*="padding-block:1rem"][style*="border-top"] dd{ font-size: .84rem !important; margin-top: 4px !important; }
  div[style*="aspect-ratio:16/8"]{ aspect-ratio: 16/10 !important; border-radius: 14px; }
  .grid.g-12.mt-l:has(> .col-4.card){
    display: flex !important; overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; gap: 12px !important; overscroll-behavior-x: contain; touch-action: pan-x;
    padding-bottom: 14px; scroll-padding-inline: var(--gut);
    margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut);
    grid-template-columns: unset !important;
  }
  .grid.g-12.mt-l:has(> .col-4.card)::-webkit-scrollbar{ display: none; }
  .grid.g-12.mt-l:has(> .col-4.card) > .col-4.card{
    flex: 0 0 76vw; max-width: 18.5rem; scroll-snap-align: center; scroll-snap-stop: normal;
    grid-column: auto !important; height: auto; min-height: auto; display: flex; flex-direction: column; overflow: hidden;
  }
  .grid.g-12.mt-l:has(> .col-4.card) > .col-4.card p{ min-height: auto; }
  /* fallback when :has() unsupported */
  .grid.g-12.mt-l.is-swipe{
    display: flex !important; overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; gap: 12px !important; overscroll-behavior-x: contain; touch-action: pan-x;
    padding-bottom: 14px; scroll-padding-inline: var(--gut);
    margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut);
    grid-template-columns: unset !important;
  }
  .grid.g-12.mt-l.is-swipe::-webkit-scrollbar{ display: none; }
  .grid.g-12.mt-l.is-swipe > .col-4.card{
    flex: 0 0 76vw; max-width: 18.5rem; scroll-snap-align: center; scroll-snap-stop: normal;
    grid-column: auto !important; height: auto; min-height: auto; display: flex; flex-direction: column; overflow: hidden;
  }
}

/* extra-tight phones */
@media(max-width:380px){
  .svc__panels .card, .wcard, .bgrid .bcard{ flex-basis: 82vw; }
  .hero{ min-height: 72svh; }
}

@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}
}


