/* ============================================================
   Irshad Ahamed — personal portfolio
   Black editorial · acid-lime #d1fe17 · Apple Liquid Glass
   ============================================================ */
:root{
  --black:#020202;
  --soft-black:#060606;
  --charcoal:#111111;
  --graphite:#181818;
  --white:#F4F1EA;
  --gray:rgba(244,241,234,.55);
  --gray-dim:rgba(244,241,234,.26);
  --line:rgba(244,241,234,.08);
  --lime:#d1fe17;
  --lime-soft:rgba(209,254,23,.16);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.22,1,.36,1);
  --maxw:1480px;
  --gx:clamp(72px,11vw,200px);   /* symmetric horizontal gutter (≈200px on large screens) */
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(1200px 800px at 72% 30%, #0c0c0c 0%, var(--black) 60%),
    var(--black);
  color:var(--white);
  font-family:"Inter",system-ui,sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  cursor:default;
}
a{color:inherit;text-decoration:none}
em{font-style:italic}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:4px}
::selection{background:var(--lime);color:#06140a}

/* ---------- global fx overlays ---------- */
.fx-grain,.fx-grid,.fx-vignette{position:fixed;inset:0;pointer-events:none;z-index:60}
.fx-grain{
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.fx-grid{
  z-index:0;                 /* sit BEHIND section content, not over the cards */
  opacity:.5;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 120% at 60% 25%,#000 25%,transparent 80%);
          mask-image:radial-gradient(120% 120% at 60% 25%,#000 25%,transparent 80%);
}
.fx-vignette{
  z-index:59;
  background:radial-gradient(120% 100% at 50% 40%,transparent 55%,rgba(0,0,0,.65) 100%);
}

.dot{width:6px;height:6px;border-radius:50%;background:var(--lime);
  box-shadow:0 0 10px 1px var(--lime-soft);display:inline-block}

/* ============================================================
   LOADER — the signature draws itself
   ============================================================ */
.loader{
  position:fixed;inset:0;z-index:300;background:var(--black);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;
  transition:clip-path 1s var(--ease),opacity .6s ease .5s;
  clip-path:inset(0 0 0 0);
}
.loader.is-done{clip-path:inset(0 0 100% 0);opacity:0;pointer-events:none}
.loader__stage{position:relative;width:190px;height:190px;display:grid;place-items:center}
.loader__ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.loader__ring circle{
  fill:none;stroke:var(--lime);stroke-width:1.4;stroke-linecap:round;
  stroke-dasharray:358;stroke-dashoffset:358;opacity:.85;
  filter:drop-shadow(0 0 5px var(--lime-soft));
  animation:ringdraw 2.1s var(--ease) forwards;
}
@keyframes ringdraw{to{stroke-dashoffset:0}}
.loader-mark{width:120px;height:120px;display:grid;place-items:center}
.loader-mark svg{width:100%;height:100%;overflow:visible}
.loader-mark path{
  fill:transparent;stroke:var(--white);stroke-width:55;
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:lmdraw 1.5s var(--ease) forwards, lmfill .7s ease forwards;
}
.lm-swash path{animation-delay:0s,1.35s}
.lm-ring path{stroke:var(--lime);stroke-width:70;animation-duration:1.1s,.6s;animation-delay:.45s,1.5s}
@keyframes lmdraw{to{stroke-dashoffset:0}}
@keyframes lmfill{to{fill:var(--white);stroke-width:0}}
.lm-ring path{animation-name:lmdraw,lmfillLime}
@keyframes lmfillLime{to{fill:rgba(244,241,234,.55);stroke-width:0}}
.loader__pct{font-size:12px;letter-spacing:3px;color:var(--gray);font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;gap:1px}
.loader__pct i{font-style:normal;font-size:9px;color:var(--gray-dim)}

/* ============================================================
   TOP CHROME — brand + menu toggle + current section
   ============================================================ */
.brand{position:fixed;left:38px;top:26px;z-index:120;width:74px;height:74px;display:block}
.brand img{width:100%;height:100%;object-fit:contain;
  filter:invert(.92) grayscale(1) contrast(1.05);opacity:.9;
  transition:opacity .4s,transform .7s var(--ease)}
.brand:hover img{opacity:1;transform:rotate(-6deg) scale(1.06)}

.menu-btn{
  position:fixed;right:36px;top:34px;z-index:160;cursor:pointer;
  display:inline-flex;align-items:center;gap:14px;background:none;border:none;font-family:inherit;
  color:var(--white);padding:6px;
}
.menu-btn__label{position:relative;height:15px;overflow:hidden;display:inline-block;
  font-size:13px;letter-spacing:2px;text-transform:uppercase}
.menu-btn__label b{display:block;font-weight:500;transition:transform .45s var(--ease)}
.menu-btn__label b+b{position:absolute;left:0;top:100%}
.menu-btn.is-open .menu-btn__label b{transform:translateY(-100%)}
.menu-btn__ico{position:relative;width:22px;height:22px;display:inline-block}
.menu-btn__ico i{
  position:absolute;width:6px;height:6px;border-radius:50%;background:var(--white);
  transition:transform .45s var(--ease),background .3s,width .35s var(--ease),height .35s var(--ease),border-radius .35s;
}
.menu-btn__ico i:nth-child(1){left:0;top:0}
.menu-btn__ico i:nth-child(2){right:0;top:0}
.menu-btn__ico i:nth-child(3){left:0;bottom:0}
.menu-btn__ico i:nth-child(4){right:0;bottom:0}
.menu-btn:hover .menu-btn__ico i{background:var(--lime)}
.menu-btn:hover .menu-btn__ico i:nth-child(1){transform:translate(2px,2px)}
.menu-btn:hover .menu-btn__ico i:nth-child(2){transform:translate(-2px,2px)}
.menu-btn:hover .menu-btn__ico i:nth-child(3){transform:translate(2px,-2px)}
.menu-btn:hover .menu-btn__ico i:nth-child(4){transform:translate(-2px,-2px)}
.menu-btn.is-open .menu-btn__ico i{width:22px;height:2px;border-radius:2px;background:var(--lime)}
.menu-btn.is-open .menu-btn__ico i:nth-child(1){transform:translateY(10px) rotate(45deg)}
.menu-btn.is-open .menu-btn__ico i:nth-child(2){transform:translateY(10px) rotate(-45deg)}
.menu-btn.is-open .menu-btn__ico i:nth-child(3){transform:translateY(-10px) rotate(-45deg)}
.menu-btn.is-open .menu-btn__ico i:nth-child(4){transform:translateY(-10px) rotate(45deg)}

.menu-now{position:fixed;left:38px;bottom:30px;z-index:120;
  display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
.menu-now b{color:var(--white);font-weight:500}

/* fixed chrome adapts to the lime footer (only while menu is closed) */
body.over-lime:not(.menu-open) .menu-btn{color:#0b1400}
body.over-lime:not(.menu-open) .menu-btn__ico i{background:#0b1400}
body.over-lime:not(.menu-open) .menu-now{color:rgba(11,20,0,.65)}
body.over-lime:not(.menu-open) .menu-now b{color:#0b1400}
body.over-lime:not(.menu-open) .brand img{filter:grayscale(1) contrast(1.1);opacity:.9}
/* hide the current-section label over the footer */
body.over-lime .menu-now{opacity:0;visibility:hidden;transition:opacity .4s var(--ease)}

/* ============================================================
   FULLSCREEN MENU
   ============================================================ */
.menu{
  position:fixed;inset:0;z-index:150;
  background:radial-gradient(120% 100% at 90% 6%,#101210,var(--black) 60%);
  clip-path:circle(0% at calc(100% - 47px) 46px);
  transition:clip-path .8s var(--ease);
  display:flex;flex-direction:column;justify-content:center;
  padding:0 7vw 0 120px;visibility:hidden;
}
.menu.is-open{clip-path:circle(150% at calc(100% - 47px) 46px);visibility:visible}
.menu::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:80px 80px;opacity:.5;
  -webkit-mask-image:radial-gradient(100% 100% at 80% 30%,#000,transparent 75%);mask-image:radial-gradient(100% 100% at 80% 30%,#000,transparent 75%)}
.menu__watermark{position:absolute;right:4vw;bottom:-6vh;width:46vh;height:46vh;opacity:.05;pointer-events:none;
  animation:sealspin 60s linear infinite}
.menu__watermark img{width:100%;height:100%;object-fit:contain;filter:invert(1)}

.menu__list{list-style:none;position:relative;z-index:2;max-width:900px}
.menu__list li{overflow:hidden}
.menu__list li a{
  position:relative;display:flex;align-items:baseline;gap:28px;padding:1.1vh 0;
  text-decoration:none;transform:translateY(110%);opacity:0;
  transition:transform .7s var(--ease),opacity .7s var(--ease);
}
.menu.is-open .menu__list li a{transform:translateY(0);opacity:1}
.menu.is-open .menu__list li:nth-child(1) a{transition-delay:.18s}
.menu.is-open .menu__list li:nth-child(2) a{transition-delay:.25s}
.menu.is-open .menu__list li:nth-child(3) a{transition-delay:.32s}
.menu.is-open .menu__list li:nth-child(4) a{transition-delay:.39s}
.menu.is-open .menu__list li:nth-child(5) a{transition-delay:.46s}
.menu.is-open .menu__list li:nth-child(6) a{transition-delay:.53s}
.menu__list .i{font-size:13px;letter-spacing:2px;color:var(--gray-dim);font-weight:500;width:30px;flex-shrink:0;
  transition:color .4s var(--ease)}
.menu__list .t{
  font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(40px,6.4vw,86px);line-height:1.04;letter-spacing:-1px;
  background-image:linear-gradient(var(--lime),var(--lime)),linear-gradient(var(--white),var(--white));
  background-repeat:no-repeat;background-position:left center,left center;background-size:0% 100%,100% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  transition:background-size .55s var(--ease);
}
.menu__list .m{font-size:13px;letter-spacing:.5px;color:var(--gray-dim);margin-left:6px;
  opacity:0;transform:translateX(-8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.menu__list .ar{margin-left:auto;font-size:26px;color:var(--lime);opacity:0;transform:translateX(-18px);
  transition:opacity .45s var(--ease),transform .45s var(--ease);align-self:center}
.menu__list li a:hover .t,.menu__list li a:focus-visible .t{background-size:100% 100%,100% 100%}
.menu__list li a:hover .i{color:var(--lime)}
.menu__list li a:hover .m{opacity:1;transform:none}
.menu__list li a:hover .ar{opacity:1;transform:none}
/* dim siblings while hovering the list */
.menu__list:hover li a{opacity:.4}
.menu__list:hover li a:hover{opacity:1}
/* current section marker */
.menu__list li a.is-current .i{color:var(--lime)}
.menu__list li a.is-current .i::after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;
  background:var(--lime);margin-left:7px;vertical-align:middle;box-shadow:0 0 8px var(--lime-soft)}

.menu__foot{position:absolute;left:120px;bottom:6vh;z-index:2;display:flex;gap:34px;align-items:center;
  font-size:13px;color:var(--gray)}
.menu__avail{display:inline-flex;align-items:center;gap:9px}
.menu__mail{color:var(--white);border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .3s}
.menu__mail:hover{border-color:var(--lime)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100vh;padding:0 var(--gx);overflow:hidden}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2}

.hero__portrait{
  position:absolute;right:6vw;bottom:0;height:88vh;z-index:1;
  display:flex;align-items:flex-end;will-change:transform;
}
.hero__portrait img{
  height:100%;object-fit:contain;object-position:bottom;
  filter:grayscale(1) contrast(1.08) brightness(.92);
  -webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 99%);
          mask-image:linear-gradient(180deg,#000 78%,transparent 99%);
}
.hero__portrait-glow{
  position:absolute;right:8%;top:18%;width:42%;height:50%;z-index:-1;
  background:radial-gradient(closest-side,var(--lime-soft),transparent 70%);
  filter:blur(30px);opacity:.5;
}

/* hero copy */
.hero__copy{position:relative;z-index:5;max-width:620px;padding-top:24vh}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:12px;letter-spacing:1.5px;color:var(--gray);margin-bottom:30px;
}
.headline{
  font-family:"Schibsted Grotesk","Inter",sans-serif;font-weight:500;
  font-size:clamp(33px,4.4vw,68px);line-height:1.06;letter-spacing:-1.5px;
  color:var(--white);
}
.headline em{
  font-family:"Instrument Serif",serif;font-weight:400;font-style:italic;
  color:var(--lime);position:relative;letter-spacing:0;
}
.hero__rule{width:64px;height:3px;background:var(--lime);margin:30px 0 26px;
  box-shadow:0 0 16px var(--lime-soft)}
.lede{font-size:clamp(15px,1.15vw,18px);line-height:1.65;color:var(--gray);max-width:440px}

.cta-row{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap}

/* ============================================================
   UNIFIED BUTTONS — primary = filled lime pill · outline = secondary
   ============================================================ */
.btn--primary,.glass-btn,.neon-btn,.stack__cta,.wcard__view{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:16px 28px;border-radius:40px;font-size:14px;font-weight:600;font-family:inherit;
  letter-spacing:.2px;color:#06140a;background:var(--lime);border:none;cursor:pointer;
  text-decoration:none;overflow:hidden;
  box-shadow:0 12px 32px -12px rgba(209,254,23,.6),inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),filter .4s;
}
.btn--primary::before,.glass-btn::before,.neon-btn::before,.stack__cta::before,.wcard__view::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.5) 48%,transparent 60%);
  transform:translateX(-130%);transition:transform .9s var(--ease);
}
.btn--primary:hover,.glass-btn:hover,.neon-btn:hover,.stack__cta:hover,.wcard__view:hover{
  transform:translateY(-2px);filter:brightness(1.04);
  box-shadow:0 16px 42px -10px rgba(209,254,23,.75),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn--primary:hover::before,.glass-btn:hover::before,.neon-btn:hover::before,
.stack__cta:hover::before,.wcard__view:hover::before{transform:translateX(130%)}
/* one consistent arrow icon — inherits the button's text colour */
.btn__ar{color:inherit;display:inline-flex;align-items:center;transition:transform .4s var(--ease)}
.btn__ar svg{width:17px;height:17px}
.glass-btn:hover .btn__ar,.neon-btn:hover .btn__ar,.stack__cta:hover .btn__ar,
.wcard__view:hover .btn__ar,.btn--primary:hover .btn__ar,.cform__send:hover .btn__ar{transform:translate(3px,-3px)}

/* outline (secondary) — used by hero's second action */
.glass-btn--ghost{
  background:rgba(209,254,23,.04);color:var(--lime);border:1px solid rgba(209,254,23,.5);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:inset 0 0 20px rgba(209,254,23,.05);
}
.glass-btn--ghost .glass-btn__arrow{color:var(--lime)}
.glass-btn--ghost:hover{background:var(--lime);color:#06140a;
  box-shadow:0 14px 38px -12px rgba(209,254,23,.55)}
.glass-btn--ghost:hover .glass-btn__arrow{color:#06140a}

/* ---------- floating glass chips ---------- */
.chips{position:absolute;inset:0;z-index:4;pointer-events:none}
.chip{
  position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  padding:9px 15px;border-radius:30px;font-size:12px;letter-spacing:.3px;color:var(--white);
  background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 24px rgba(0,0,0,.45);
  will-change:transform;
}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--gray);display:inline-block}
.chip--accent i{background:var(--lime);box-shadow:0 0 10px 1px var(--lime-soft)}

/* ============================================================
   ABOUT
   ============================================================ */
.about{position:relative;padding:13vh var(--gx);overflow:hidden}
/* centered container — matches every other section's content edge */
.about__grid{
  display:grid;grid-template-columns:0.95fr 1.18fr;gap:72px;align-items:start;
  max-width:var(--maxw);margin:0 auto;
}
.about__copy{grid-column:1;grid-row:1}
.about__stage{grid-column:2;grid-row:1}
.about__glow{
  position:absolute;right:14%;top:46%;transform:translateY(-50%);
  width:32%;height:60%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,var(--lime-soft),transparent 72%);
  filter:blur(60px);opacity:.4;
}
.about__copy{position:sticky;top:14vh;align-self:start}

/* ---- design-process flow: evenly-spaced vertical stack, connected ---- */
.about__stage{position:relative;display:flex;flex-direction:column;gap:36px;z-index:1}
.pflow{display:none}              /* connector handled per-card below */

.pcard{
  position:relative;display:flex;gap:28px;align-items:center;width:100%;min-height:170px;padding:30px 32px;
  border-radius:18px;border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(160deg,rgba(18,20,17,.8),rgba(8,9,8,.85));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 30px 70px -40px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .5s var(--ease),border-color .5s,box-shadow .5s;
}
.pcard:hover{transform:translateY(-3px);border-color:rgba(209,254,23,.28);
  box-shadow:0 36px 80px -40px rgba(209,254,23,.16),inset 0 1px 0 rgba(255,255,255,.07)}
/* connector line + node between stacked cards */
.pcard:not(:last-child)::after{content:"";position:absolute;left:50%;bottom:-37px;transform:translateX(-50%);
  width:1.5px;height:37px;background:linear-gradient(180deg,rgba(209,254,23,.7),rgba(209,254,23,.2))}
.pcard:not(:last-child)::before{content:"";position:absolute;left:50%;bottom:-18.5px;transform:translate(-50%,-50%);
  width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px 1px var(--lime-soft);z-index:2}
.pc__body{flex:1;min-width:0}
.pc__num{font-size:13px;letter-spacing:2px;color:var(--lime);font-weight:500}
.pc__title{font-family:"Instrument Serif",serif;font-weight:400;font-size:28px;line-height:1;color:var(--white);margin:8px 0 12px}
.pc__desc{font-size:13.5px;line-height:1.5;color:var(--gray)}
.pc__visual{flex-shrink:0;width:170px;height:118px;border-radius:12px;
  background:rgba(255,255,255,.025);border:1px solid var(--line);padding:14px;position:relative;overflow:hidden}

/* 01 Research visual — moodboard */
.rv{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr auto;gap:6px;width:100%;height:100%}
.rv__big{grid-row:1/3;background:rgba(255,255,255,.06);border-radius:5px}
.rv__sm{background:rgba(255,255,255,.05);border-radius:4px}
.rv__lines{grid-column:1/3;display:flex;flex-direction:column;gap:4px;margin-top:2px}
.rv__lines span{height:3px;border-radius:2px;background:rgba(255,255,255,.09)}
.rv__lines span:last-child{width:60%}

/* 02 Structure visual — Ag + hierarchy bars */
.sv{display:grid;grid-template-columns:auto 1fr;gap:10px;width:100%;height:100%;align-content:center}
.sv__ag{font-family:"Instrument Serif",serif;font-size:40px;line-height:.8;color:var(--white);grid-row:1/3;align-self:center}
.sv__u{display:none}
.sv__bars{display:flex;flex-direction:column;gap:5px;justify-content:center}
.sv__bars span{height:5px;border-radius:3px;background:rgba(255,255,255,.1)}
.sv__bars span:nth-child(1){width:100%}.sv__bars span:nth-child(2){width:80%}
.sv__bars span:nth-child(3){width:90%}.sv__bars span:nth-child(4){width:65%}
.sv__bars span.lime{width:50%;background:var(--lime);box-shadow:0 0 8px var(--lime-soft)}

/* 03 Decision visual — branch to node */
.dv{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0}
.dv__pill{width:46%;height:13px;border-radius:7px;background:rgba(255,255,255,.08)}
.dv__node{position:absolute;right:4px;top:50%;width:11px;height:11px;border-radius:50%;
  transform:translateY(-50%);background:var(--lime);box-shadow:0 0 10px 2px var(--lime-soft);z-index:2}
.dv__lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.dv__lines path{fill:none;stroke:rgba(209,254,23,.5);stroke-width:1.4}

/* 04 Clarity visual — orb + lines */
.cv{display:flex;align-items:center;gap:12px;width:100%;height:100%}
.cv__orb{width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 35% 30%,rgba(209,254,23,.9),rgba(120,150,10,.5) 55%,rgba(40,50,8,.3));
  box-shadow:0 0 22px rgba(209,254,23,.35)}
.cv__lines{flex:1;display:flex;flex-direction:column;gap:7px}
.cv__lines span{height:5px;border-radius:3px;background:rgba(255,255,255,.1)}
.cv__lines span:nth-child(2){width:75%}
.cv__lines span.lime{width:55%;background:var(--lime);box-shadow:0 0 8px var(--lime-soft)}
.about__copy{position:sticky;top:16vh;z-index:5;max-width:480px;align-self:start}

.eyebrow--lime{
  display:block;color:var(--lime);font-size:13px;font-weight:500;
  letter-spacing:4px;margin-bottom:34px;
}
.about__title{
  font-family:"Schibsted Grotesk","Inter",sans-serif;font-weight:500;
  font-size:clamp(34px,4vw,60px);line-height:1.04;letter-spacing:-1px;color:var(--white);
}
.about__title em{font-family:"Instrument Serif",serif;font-weight:400;font-style:italic;color:var(--lime);letter-spacing:0}
.about__sub{
  font-family:"Schibsted Grotesk","Inter",sans-serif;font-weight:400;
  font-size:clamp(20px,2vw,30px);line-height:1.25;letter-spacing:-.5px;
  color:var(--white);margin-top:22px;
}
.about__sub .lime{color:var(--lime)}
.about__rule{width:56px;height:1px;background:var(--gray-dim);margin:34px 0}
.about__p{
  font-size:16px;line-height:1.7;color:var(--gray);max-width:360px;margin-bottom:20px;
}
.about__facts{
  list-style:none;padding-left:20px;border-left:2px solid var(--lime);
  margin:34px 0 42px;display:flex;flex-direction:column;gap:10px;
}
.about__facts li{font-size:16px;color:var(--white);letter-spacing:.2px}

/* .neon-btn (About "Read my story") now inherits the unified primary button */
.neon-btn{gap:18px}
.neon-btn span{font-size:17px;line-height:1}

/* scroll-in reveal */
/* signature "blur-rise" reveal (Axis motion family) — no global will-change */
.reveal{opacity:0;transform:translateY(34px);filter:blur(12px);
  transition:opacity .82s var(--ease),transform .98s var(--ease),filter .76s ease}
.reveal.is-in{opacity:1;transform:none;filter:blur(0)}

/* perf: while the fullscreen menu is open it fully covers the page, so freeze
   everything behind it — drop backdrop-filters and pause loops (fixes menu lag) */
body.menu-open main,body.menu-open footer{pointer-events:none}
body.menu-open main *,body.menu-open main *::before,body.menu-open main *::after,
body.menu-open footer *,body.menu-open footer *::before,body.menu-open footer *::after{
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  animation-play-state:paused!important;
}
.menu,.menu *{will-change:auto}

@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.7}}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hero__portrait{height:70vh;opacity:.5}
  .hero__copy{max-width:92%}
  /* About → single column, copy on top, cards below (reset the desktop grid placement) */
  .about__grid{grid-template-columns:1fr;gap:44px}
  .about__copy{position:relative;top:auto;max-width:640px;grid-column:1;grid-row:1}
  .about__stage{grid-column:1;grid-row:2}
}
@media (max-width:768px){
  /* smaller, non-overlapping top chrome + a scrim so content fades under it */
  .brand{left:20px;top:16px;width:56px;height:56px}
  .menu-btn{right:18px;top:20px}
  .menu-now{display:none}
  body::before{content:"";position:fixed;inset:0 0 auto 0;height:82px;z-index:115;pointer-events:none;
    background:linear-gradient(180deg,rgba(2,2,2,.92),transparent)}
  body.over-lime::before{background:linear-gradient(180deg,rgba(200,243,18,.9),transparent)}
  body.menu-open::before{opacity:0}

  /* consistent tight gutters on phones */
  .hero,.about,.work,.services,.stack,.contact,.ftr{padding-left:22px;padding-right:22px}
  .hero{padding-top:0}
  /* keep the portrait on phones: a faded figure anchored bottom-right, behind the copy */
  .hero__portrait{display:flex;left:auto;right:-8vw;bottom:0;height:52vh;opacity:.6;z-index:3}
  .hero__copy{padding-top:18vh;max-width:100%;position:relative}
  .hero__copy::after{content:"";position:absolute;left:-22px;right:-22px;top:-18vh;bottom:-40px;z-index:-1;
    background:linear-gradient(180deg,rgba(2,2,2,.6) 30%,rgba(2,2,2,.15) 70%,transparent);pointer-events:none}
  .chips{display:none}

  /* about cards — compact, visual + text side by side stays readable */
  .about{padding-top:13vh;padding-bottom:10vh}
  .pcard{min-height:0;padding:20px;gap:16px}
  .pc__visual{width:84px;height:74px;padding:10px}
  .pc__title{font-size:23px}
  .pc__desc{font-size:13px}

  /* services accordion stacks its panel */
  .services__head{flex-direction:column;align-items:flex-start;gap:14px}
  .svc__row{gap:14px;padding:24px 0}
  .svc__title{font-size:clamp(22px,7vw,30px)}
  .svc__inner{flex-direction:column;align-items:flex-start;padding-left:0;gap:24px}
  .svis{width:100%;max-width:340px}

  /* stack + footer grids */
  .stack__grid{grid-template-columns:1fr 1fr;gap:14px}
  .tool{padding:30px 16px}
  .ftr__cols{grid-template-columns:1fr 1fr;gap:34px 26px}
}
@media (max-width:480px){
  .pc__visual{display:none}          /* clean cards on small phones */
  .stack__grid{grid-template-columns:1fr}
  .ftr__cols{grid-template-columns:1fr}
  .wcard__foot{grid-template-columns:1fr;gap:14px}
  .wcard__metas{grid-template-columns:1fr 1fr}
  .cs-meta{grid-template-columns:1fr 1fr}
  .cs-wrap{padding-left:22px;padding-right:22px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1!important;transform:none!important;filter:none!important}
}
