/* v2: protect CTA text from parent-theme anchor hover/focus colours */

.pws-homepage a.pws-home-btn:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:4px;
}
.pws-homepage .pws-cta a.pws-home-btn:hover,
.pws-homepage .pws-cta a.pws-home-btn:focus-visible{
  background:#fff;
  color:#04110f!important;
  -webkit-text-fill-color:#04110f!important;
}

.pws-homepage a.pws-home-btn{
  color:#04110f!important;
  -webkit-text-fill-color:#04110f;
}
.pws-homepage a.pws-home-btn--ghost{
  color:#fff!important;
  -webkit-text-fill-color:#fff;
}
.pws-homepage a.pws-home-btn:hover,
.pws-homepage a.pws-home-btn:focus-visible,
.pws-homepage a.pws-home-btn:active,
.pws-homepage a.pws-home-btn--ghost:hover,
.pws-homepage a.pws-home-btn--ghost:focus-visible,
.pws-homepage a.pws-home-btn--ghost:active{
  color:#04110f!important;
  -webkit-text-fill-color:#04110f;
}

/* WordPress production homepage integration */
.pws-homepage{isolation:isolate}
.pws-homepage .pws-wrap{max-width:none}
.pws-homepage + *{clear:both}


.pws-homepage{
  --ink:#f7f8ff;
  --muted:#aab4c8;
  --dim:#71809b;
  --bg:#050814;
  --bg2:#090f20;
  --panel:#0c1428;
  --panel2:#101b34;
  --line:rgba(255,255,255,.12);
  --cyan:#5ff5e6;
  --blue:#5c7cff;
  --violet:#a972ff;
  --pink:#ff67c8;
  --lime:#c8ff63;
  --orange:#ff9f5a;
  --max:1280px;
  --radius:26px;
  --ease:cubic-bezier(.2,.75,.2,1);
}
.pws-homepage,.pws-homepage *{box-sizing:border-box}
.pws-homepage{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--ink);
  overflow-x:clip;
  overflow-y:visible;
  line-height:1.55;

  width:100%;max-width:none!important;margin-inline:0;position:relative;
}
.pws-homepage a{color:inherit}
.pws-homepage button,.pws-homepage input{font:inherit}
.pws-homepage img,.pws-homepage video{max-width:100%}
.pws-homepage ::selection{background:var(--cyan);color:#03100f}
.pws-wrap{position:relative;isolation:isolate}
.pws-shell{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
.pws-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.76rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase;color:var(--cyan)
}
.pws-eyebrow::before{content:"";width:26px;height:2px;background:currentColor}
.pws-section{position:relative;padding:120px 0}
.pws-kicker{font-size:clamp(2.4rem,6vw,6.5rem);line-height:.92;letter-spacing:-.065em;margin:0}
.pws-copy{color:var(--muted);font-size:clamp(1rem,1.7vw,1.18rem)}
.pws-link{
  display:inline-flex;align-items:center;gap:12px;text-decoration:none;
  font-weight:800;letter-spacing:-.01em
}
.pws-link span{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;transition:.35s var(--ease)}
.pws-link:hover span{transform:translate(4px,-4px);background:var(--cyan);color:#04110f;border-color:var(--cyan)}
.pws-home-btn{
  --btnbg:var(--cyan);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:0 22px;border:0;border-radius:999px;
  background:var(--btnbg);color:#04110f;text-decoration:none;font-weight:900;
  overflow:hidden;transform:translateZ(0);transition:box-shadow .3s var(--ease)
}
.pws-home-btn::after{
  content:"";position:absolute;inset:-1px;transform:translateY(110%);
  background:#fff;border-radius:inherit;transition:transform .35s var(--ease);z-index:-1
}
.pws-home-btn:hover::after{transform:translateY(0)}
.pws-home-btn:hover{box-shadow:0 18px 45px rgba(95,245,230,.18)}
.pws-home-btn--ghost{--btnbg:rgba(255,255,255,.07);color:#fff;border:1px solid var(--line)}
.pws-home-btn--ghost:hover,
.pws-home-btn--ghost:focus-visible{color:#04110f;border-color:#fff}
.pws-magnetic{will-change:transform}

/* loader */
.pws-loader{
  position:fixed;inset:0;z-index:10000;background:#03050c;
  display:grid;place-items:center;transition:opacity .7s var(--ease);
}
.pws-loader.done{opacity:0;pointer-events:none}
.pws-loader-inner{width:min(560px,calc(100% - 48px))}
.pws-loader-top{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}
.pws-loader-brand{font-size:.8rem;font-weight:900;letter-spacing:.14em}
.pws-loader-num{font-size:clamp(2.5rem,8vw,5.5rem);font-weight:900;line-height:.8;letter-spacing:-.06em}
.pws-loader-track{height:2px;background:rgba(255,255,255,.14);overflow:hidden}
.pws-loader-bar{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet));transition:width .12s linear}

/* Hero */
.pws-hero{
  min-height:100svh;position:relative;display:grid;align-items:end;overflow:hidden;background:#02040a
}
.pws-hero-media{position:absolute;inset:0;overflow:hidden}
.pws-hero-video{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85) contrast(1.05) brightness(.66);transform:scale(1.035)}
.pws-hero::after{content:none}
.pws-hero-grid{
  position:absolute;inset:0;z-index:1;opacity:.22;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:linear-gradient(to bottom,black,transparent 85%)
}
.pws-hero-glow{
  position:absolute;z-index:1;width:520px;height:520px;border-radius:50%;filter:blur(80px);opacity:.22;pointer-events:none;
  background:radial-gradient(circle,var(--violet),transparent 65%);right:-150px;top:16%
}
.pws-hero-content{position:relative;z-index:3;padding:150px 0 72px}
.pws-hero-top{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:56px;align-items:end}
.pws-hero-title{
  margin:18px 0 22px;font-size:clamp(3.7rem,9.2vw,9.2rem);
  line-height:.82;letter-spacing:-.078em;font-weight:900;max-width:1050px
}
.pws-line{display:block;overflow:hidden;padding-bottom:.07em}
.pws-line>span{display:block;transform:translateY(112%);animation:lineIn .9s var(--ease) forwards}
.pws-line:nth-child(2)>span{animation-delay:.12s}
.pws-line:nth-child(3)>span{animation-delay:.24s}
@keyframes lineIn{to{transform:none}}
.pws-hero-title .accent{
  background:linear-gradient(90deg,var(--cyan),#a7c3ff 48%,var(--violet));
  background-clip:text;-webkit-background-clip:text;color:transparent
}
.pws-rotator{
  display:inline-grid;min-width:4.25ch;position:relative;color:var(--cyan)
}
.pws-hero-side{padding-bottom:10px}
.pws-hero-side p{margin:0 0 26px;color:#c6d0e1;font-size:1.02rem}
.pws-hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.pws-scroll-cue{
  margin-top:60px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:#9eabc0
}
.pws-scroll-line{flex:1;max-width:280px;height:1px;background:rgba(255,255,255,.15);position:relative;overflow:hidden}
.pws-scroll-line::after{content:"";position:absolute;inset:0 auto 0 0;width:35%;background:var(--cyan);animation:scrollPulse 2s ease-in-out infinite}
@keyframes scrollPulse{0%{transform:translateX(-120%)}100%{transform:translateX(390%)}}


/* v3 cinematic hero system */
.pws-hero-stage{
  --hero-p:0;
  position:relative;
  height:134svh;
  background:#f4f5f8;
  overflow:clip;
}
.pws-hero-stage .pws-hero{
  position:sticky;
  top:var(--pws-header-offset,0px);
  z-index:5;
  width:100%;
  height:calc(100svh - var(--pws-header-offset,0px));
  min-height:calc(100svh - var(--pws-header-offset,0px));
  transform-origin:50% 48%;
  will-change:transform,border-radius,box-shadow;
  transition:box-shadow .15s linear;
}
.pws-hero-base-shade,
.pws-hero-spot-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}
.pws-hero-base-shade{
  background:
    linear-gradient(90deg,rgba(3,5,12,.82) 0%,rgba(3,5,12,.52) 43%,rgba(3,5,12,.17) 72%,rgba(3,5,12,.34) 100%),
    linear-gradient(180deg,rgba(3,5,12,.08),rgba(3,5,12,.12) 54%,rgba(3,5,12,.74));
}
.pws-hero-spot-shade{
  --spot-x:76%;
  --spot-y:42%;
  background:rgba(2,4,10,.46);
  -webkit-mask-image:radial-gradient(circle 190px at var(--spot-x) var(--spot-y),transparent 0 38%,rgba(0,0,0,.28) 52%,#000 76%);
  mask-image:radial-gradient(circle 190px at var(--spot-x) var(--spot-y),transparent 0 38%,rgba(0,0,0,.28) 52%,#000 76%);
  opacity:.88;
  transition:opacity .25s ease;
}
.pws-hero:hover .pws-hero-spot-shade{opacity:.72}
.pws-hero-ghosts{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.pws-ghost-word{
  position:absolute;
  font-weight:950;
  line-height:.7;
  letter-spacing:-.08em;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.075);
  opacity:.7;
  user-select:none;
  will-change:transform;
}
.pws-ghost-word.g1{font-size:clamp(8rem,22vw,22rem);top:11%;left:-5%}
.pws-ghost-word.g2{font-size:clamp(7rem,17vw,18rem);right:-8%;top:43%}
.pws-ghost-word.g3{font-size:clamp(6rem,14vw,15rem);left:19%;bottom:-4%}
.pws-design-word{
  position:relative;
  display:inline-block;
  min-width:4.7ch;
  color:transparent;
  background:linear-gradient(90deg,var(--cyan),#a7c3ff 48%,var(--violet));
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-stroke:0 transparent;
  transition:letter-spacing .55s var(--ease),filter .55s var(--ease),-webkit-text-stroke .4s ease,color .4s ease;
}
.pws-design-word::after{
  content:"";
  position:absolute;
  left:2%;
  right:2%;
  bottom:-.06em;
  height:.045em;
  min-height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--cyan),var(--violet));
  transform:scaleX(.15);
  transform-origin:left;
  opacity:.65;
  transition:transform .55s var(--ease),opacity .55s;
}
.pws-design-word:hover{
  letter-spacing:.035em;
  filter:drop-shadow(0 0 18px rgba(95,245,230,.18));
}
.pws-design-word:hover::after{transform:scaleX(1);opacity:1}
.pws-hero .pws-line{
  will-change:transform,opacity;
  transition:transform .08s linear,opacity .08s linear;
}
.pws-hero-frame-label{
  position:absolute;
  right:22px;
  bottom:19px;
  z-index:4;
  padding:8px 11px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(4,8,18,.38);
  backdrop-filter:blur(12px);
  color:#dbe5f5;
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .35s,transform .35s;
}
.pws-hero.is-framed .pws-hero-frame-label{opacity:1;transform:none}
.pws-hero-content{
  transition:opacity .08s linear;
}
.pws-transition-mark{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.pws-transition-mark i{
  display:inline-block;
  width:7px;height:7px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 16px var(--cyan);
}
@media(max-width:1000px){
  .pws-ghost-word.g2{right:-16%}
  .pws-hero-spot-shade{display:none}
}
@media(max-width:720px){
  .pws-hero-stage{height:auto;background:#050814;overflow:visible}
  .pws-hero-stage .pws-hero{
    position:relative;
    top:auto;
    height:auto;
    min-height:100svh;
    transform:none!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
    .pws-hero-ghosts{opacity:.55}
  .pws-ghost-word.g1{top:16%;left:-18%}
  .pws-ghost-word.g2{top:53%;right:-28%}
  .pws-ghost-word.g3{display:none}
}
@media(prefers-reduced-motion:reduce){
  .pws-hero-stage{height:auto;background:#050814}
  .pws-hero-stage .pws-hero{position:relative;transform:none!important;border-radius:0!important}
    .pws-hero-spot-shade{display:none!important}
  .pws-ghost-word{transform:none!important}
}

/* marquee */
.pws-marquee{border-block:1px solid var(--line);background:#070b16;overflow:hidden}
.pws-marquee-track{display:flex;width:max-content;animation:marquee 26s linear infinite}
.pws-marquee-item{display:flex;align-items:center;gap:28px;padding:18px 28px;font-weight:850;letter-spacing:.12em;font-size:.74rem;color:#cbd4e4;white-space:nowrap}
.pws-marquee-item i{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 18px var(--cyan)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* intro */
.pws-intro{background:linear-gradient(180deg,#060a14,#090f20)}
.pws-intro-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:start}
.pws-intro-copy{max-width:790px}
.pws-intro-copy .pws-kicker{font-size:clamp(3.1rem,7vw,7.3rem)}
.pws-intro-copy .pws-copy{max-width:680px;margin-top:28px}
.pws-signal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:40px}
.pws-signal{
  position:relative;padding:20px;border-radius:18px;border:1px solid var(--line);
  background:rgba(255,255,255,.035);overflow:hidden
}
.pws-signal b{display:block;font-size:1.1rem}.pws-signal span{display:block;margin-top:4px;font-size:.78rem;color:var(--muted)}
.pws-signal::before{content:"";position:absolute;width:80px;height:80px;border-radius:50%;background:var(--cyan);filter:blur(55px);opacity:.16;right:-20px;bottom:-20px}




/* v2: cinematic hero → work-reel transition.
   One video element only; no duplicate MP4. */
.pws-hero-stage{
  --pws-transition-p:0;
  background:
    radial-gradient(circle at 14% 72%,rgba(95,245,230,.08),transparent 26%),
    radial-gradient(circle at 84% 28%,rgba(169,114,255,.10),transparent 28%),
    #f4f5f8;
}
.pws-transition-canvas{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
  color:#0b1020;
}
.pws-transition-canvas::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:calc(var(--pws-transition-p) * .55);
  background-image:
    linear-gradient(rgba(10,16,32,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,16,32,.055) 1px,transparent 1px);
  background-size:72px 72px;
  transition:opacity .12s linear;
}
.pws-transition-ui{
  position:sticky;
  top:var(--pws-header-offset,0px);
  height:calc(100svh - var(--pws-header-offset,0px));
  width:min(var(--max),calc(100% - 48px));
  margin-inline:auto;
  opacity:var(--pws-transition-p);
  transform:translateY(calc((1 - var(--pws-transition-p)) * 24px));
  transition:opacity .08s linear,transform .08s linear;
}
.pws-transition-top,
.pws-transition-bottom{
  position:absolute;
  left:0;right:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:.65rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:850;
  color:#697487;
}
.pws-transition-top{top:3.2vh}
.pws-transition-bottom{bottom:3.2vh}
.pws-transition-top::after,
.pws-transition-bottom::before{
  content:"";
  height:1px;
  flex:1;
  background:linear-gradient(90deg,#c8ced8,transparent);
  opacity:.8;
}
.pws-transition-bottom::before{
  background:linear-gradient(90deg,transparent,#c8ced8);
}
.pws-transition-side{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  font-size:clamp(4rem,8vw,8rem);
  line-height:.78;
  font-weight:950;
  letter-spacing:-.075em;
  color:#d8dde6;
  opacity:.9;
}
.pws-transition-side.left{left:-.01em}
.pws-transition-side.right{right:0;text-align:right}
.pws-transition-side small{
  display:block;
  margin-bottom:14px;
  font-size:.62rem;
  line-height:1;
  letter-spacing:.15em;
  color:#637087;
  text-transform:uppercase;
}
.pws-transition-chips{
  position:absolute;
  left:50%;
  bottom:7.2vh;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  white-space:nowrap;
}
.pws-transition-chips span{
  padding:7px 10px;
  border:1px solid #d4dae3;
  border-radius:999px;
  background:rgba(255,255,255,.56);
  font-size:.61rem;
  letter-spacing:.1em;
  color:#667186;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.pws-hero.is-reel{
  overflow:hidden;
}
.pws-hero.is-reel .pws-hero-frame-label{
  opacity:1;
  transform:none;
}
@media(max-width:1000px){
  .pws-transition-side{font-size:5rem}
}
@media(max-width:720px){
  .pws-transition-canvas{display:none}
  .pws-hero-stage{height:auto;background:#050814}
}
@media(prefers-reduced-motion:reduce){
  .pws-transition-canvas{display:none}
}


/* v3: hero → manifesto magnetic handoff
   The manifesto rises into the shrinking hero instead of waiting below it. */
.pws-homepage{
  --pws-handoff-p:0;
}
.pws-manifesto{
  margin-top:-21svh;
  border-radius:34px 34px 0 0;
  box-shadow:0 -24px 70px rgba(7,11,22,.16);
  transform:
    translateY(calc((1 - var(--pws-handoff-p)) * 7svh))
    scale(calc(.985 + (var(--pws-handoff-p) * .015)));
  transform-origin:50% 0%;
  will-change:transform;
}
.pws-manifesto::before{
  content:"";
  position:absolute;
  left:50%;
  top:18px;
  width:54px;
  height:3px;
  transform:translateX(-50%) scaleX(calc(.35 + (var(--pws-handoff-p) * .65)));
  transform-origin:center;
  border-radius:999px;
  background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet));
  opacity:calc(.25 + (var(--pws-handoff-p) * .65));
  z-index:3;
}
.pws-manifesto-inner{
  padding-top:72px;
}
@media(max-width:1000px){
  .pws-manifesto{margin-top:-12svh}
}
@media(max-width:720px){
  .pws-manifesto{
    margin-top:0;
    border-radius:0;
    box-shadow:none;
    transform:none!important;
  }
  .pws-manifesto::before{display:none}
}
@media(prefers-reduced-motion:reduce){
  .pws-manifesto{
    margin-top:0;
    transform:none!important;
  }
}


/* v6.1 hero handoff correction
   Hero stays anchored / moves slightly upward.
   The manifesto is the section that rises toward it.
   Keep a small visible separation rather than letting the two surfaces touch. */
.pws-manifesto{
  border-top:6px solid #f4f5f8;
}
.pws-manifesto::after{
  content:"";
  position:absolute;
  left:50%;
  top:-14px;
  width:min(520px,58vw);
  height:18px;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(7,11,22,.20),transparent 70%);
  filter:blur(9px);
  opacity:calc(.12 + (var(--pws-handoff-p) * .22));
  pointer-events:none;
}
@media(max-width:720px){
  .pws-manifesto{
    border-top:0;
  }
  .pws-manifesto::after{display:none}
}

/* v3.3 manifesto section */
.pws-manifesto{
  position:relative;
  z-index:9;
  overflow:hidden;
  background:
    radial-gradient(circle at 86% 18%,rgba(169,114,255,.09),transparent 28%),
    radial-gradient(circle at 12% 78%,rgba(95,245,230,.08),transparent 30%),
    #070b16;
  color:#f7f8ff;
  border-top:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.pws-manifesto-grid{
  position:absolute;inset:0;pointer-events:none;opacity:.22;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:74px 74px;
  mask-image:linear-gradient(to bottom,transparent,black 20%,black 80%,transparent);
}
.pws-manifesto-inner{position:relative;z-index:2;padding:88px 0 0}
.pws-manifesto-top{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.11)
}
.pws-manifesto-index{
  font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#73819a;font-weight:850
}
.pws-manifesto-copy{
  display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end;
  padding:58px 0 48px
}
.pws-manifesto-title{
  margin:0;
  font-size:clamp(3.3rem,7vw,7.5rem);
  line-height:.86;
  letter-spacing:-.07em;
}
.mf-line{
  display:block;
  overflow:hidden;
  padding-bottom:.04em;
}
.mf-line > *,.mf-line > span{
  display:inline;
}
.mf-alive{
  position:relative;
  display:inline-block!important;
  font-style:italic;
  font-weight:850;
  color:transparent;
  background:linear-gradient(100deg,var(--cyan),#b7c7ff 54%,var(--violet));
  -webkit-background-clip:text;background-clip:text;
  transform-origin:left center;
}
.mf-alive::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:.02em;
  height:.055em;
  min-height:3px;
  background:linear-gradient(90deg,var(--cyan),var(--violet));
  transform:scaleX(.1);
  transform-origin:left;
  transition:transform .9s var(--ease);
}
.mf-alive.active::after{transform:scaleX(1)}
.mf-code-wrap{
  display:inline-flex!important;
  align-items:baseline;
  gap:.10em;
  white-space:nowrap;
  vertical-align:baseline;
}
.mf-code{
  display:inline-block!important;
  font-weight:900;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(247,248,255,.9);
  letter-spacing:-.04em;
}
.mf-bracket{
  display:inline-block;
  font-size:.58em;
  line-height:1;
  font-weight:900;
  -webkit-text-stroke:0 transparent;
  transform:translateY(-.08em);
  opacity:.62;
  transition:opacity .55s var(--ease),transform .55s var(--ease);
}
.mf-bracket-left{color:var(--cyan);transform:translate(-.16em,-.08em)}
.mf-bracket-right{color:var(--violet);transform:translate(.16em,-.08em)}
.mf-code-wrap.active .mf-bracket-left{opacity:1;transform:translate(0,-.08em)}
.mf-code-wrap.active .mf-bracket-right{opacity:1;transform:translate(0,-.08em)}
.mf-lean{
  position:relative;
  display:inline-block!important;
  color:#f7f8ff;
  transition:letter-spacing 1s var(--ease),transform 1s var(--ease);
}
.mf-lean.active{letter-spacing:.10em;transform:skewX(-4deg)}
.pws-manifesto-side{
  align-self:end;
  padding-bottom:10px
}
.pws-manifesto-side p{
  margin:0;color:#aab4c8;font-size:1rem;line-height:1.7
}
.pws-manifesto-rule{
  display:flex;align-items:center;gap:10px;margin-top:28px;
  font-size:.61rem;letter-spacing:.12em;color:#6f7e97;font-weight:850
}
.pws-manifesto-rule i{flex:1;height:1px;background:rgba(255,255,255,.12)}
.pws-manifesto-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:13px;padding-bottom:70px
}
.pws-mf-card{
  position:relative;min-height:172px;padding:24px;border:1px solid rgba(255,255,255,.12);
  border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
  overflow:hidden;transition:transform .45s var(--ease),border-color .45s,background .45s
}
.pws-mf-card::before{
  content:"";position:absolute;width:130px;height:130px;border-radius:50%;
  right:-55px;bottom:-55px;background:var(--cyan);filter:blur(70px);opacity:.08;transition:.5s
}
.pws-mf-card:hover{
  transform:translateY(-7px);
  border-color:rgba(95,245,230,.3);
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.03))
}
.pws-mf-card:hover::before{opacity:.18}
.pws-mf-num{display:block;color:#63708a;font-size:.66rem;letter-spacing:.13em}
.pws-mf-card h3{margin:26px 0 7px;font-size:1.1rem}
.pws-mf-card p{margin:0;color:#99a6bb;font-size:.78rem;max-width:320px}
.pws-mf-scan{
  position:absolute;left:0;right:0;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  transform:translateX(-100%);
}
.pws-mf-card:hover .pws-mf-scan{animation:mfScan 1.2s var(--ease)}
@keyframes mfScan{to{transform:translateX(100%)}}
.pws-mf-marquee{
  margin-inline:calc((100vw - min(var(--max),calc(100vw - 48px)))/-2);
  overflow:hidden;border-top:1px solid rgba(255,255,255,.09);
  background:#050914
}
.pws-mf-marquee-track{
  display:flex;align-items:center;gap:24px;width:max-content;
  padding:17px 0;animation:mfMarquee 28s linear infinite;
  color:#c7d0e1;font-size:.67rem;letter-spacing:.13em;font-weight:850
}
.pws-mf-marquee-track span{white-space:nowrap}
.pws-mf-marquee-track i{
  width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 15px var(--cyan)
}
@keyframes mfMarquee{to{transform:translateX(-50%)}}


/* v3.4 lightweight idle-to-alive treatments */

/* Cards: entrance stagger + soft travelling sheen.
   Only transform/opacity/background-position are animated. */
.pws-manifesto-cards .pws-mf-card{
  opacity:0;
  transform:translateY(22px) scale(.985);
}
.pws-manifesto-cards.cards-live .pws-mf-card{
  opacity:1;
  transform:none;
  transition:
    opacity .7s var(--ease),
    transform .7s var(--ease),
    border-color .45s var(--ease),
    background .45s var(--ease);
}
.pws-manifesto-cards.cards-live .pws-mf-card:nth-child(1){transition-delay:.04s}
.pws-manifesto-cards.cards-live .pws-mf-card:nth-child(2){transition-delay:.13s}
.pws-manifesto-cards.cards-live .pws-mf-card:nth-child(3){transition-delay:.22s}

.pws-mf-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      115deg,
      transparent 0%,
      transparent 38%,
      rgba(255,255,255,.035) 47%,
      rgba(95,245,230,.075) 50%,
      rgba(255,255,255,.025) 53%,
      transparent 62%,
      transparent 100%
    );
  background-size:220% 100%;
  background-position:140% 0;
  opacity:.55;
}
.pws-manifesto-cards.cards-live .pws-mf-card::after{
  animation:mfCardSheen 7.2s ease-in-out infinite;
}
.pws-manifesto-cards.cards-live .pws-mf-card:nth-child(2)::after{animation-delay:1.4s}
.pws-manifesto-cards.cards-live .pws-mf-card:nth-child(3)::after{animation-delay:2.8s}
@keyframes mfCardSheen{
  0%,66%,100%{background-position:140% 0}
  78%{background-position:-80% 0}
}

/* Bottom discipline strip: sequential active word + connector pulse. */
.pws-manifesto-rule{
  position:relative;
}
.pws-manifesto-rule span{
  position:relative;
  transition:color .35s ease,opacity .35s ease,text-shadow .35s ease;
  opacity:.55;
}
.pws-manifesto-rule span.rule-active{
  color:#eafcff;
  opacity:1;
  text-shadow:0 0 18px rgba(95,245,230,.22);
}
.pws-manifesto-rule i{
  position:relative;
  overflow:hidden;
}
.pws-manifesto-rule i::after{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:34%;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  transform:translateX(-140%);
  opacity:0;
}
.pws-manifesto-rule.rule-live i::after{
  opacity:.9;
  animation:ruleTravel 4.8s linear infinite;
}
.pws-manifesto-rule.rule-live i:nth-of-type(2)::after{animation-delay:.7s}
.pws-manifesto-rule.rule-live i:nth-of-type(3)::after{animation-delay:1.4s}
@keyframes ruleTravel{
  0%,22%{transform:translateX(-140%)}
  42%{transform:translateX(390%)}
  100%{transform:translateX(390%)}
}

@media(prefers-reduced-motion:reduce){
  .pws-manifesto-cards .pws-mf-card{
    opacity:1!important;
    transform:none!important;
  }
  .pws-mf-card::after,
  .pws-manifesto-rule i::after{
    animation:none!important;
    opacity:0!important;
  }
  .pws-manifesto-rule span{opacity:1!important}
}

/* v3.3 bridge comes immediately after manifesto — no dead zone */
.pws-bridge{
  margin-top:0!important;
  min-height:70svh;
}
.pws-bridge-inner{padding-top:64px!important}
.pws-bridge-top{
  transform:translateY(14px);
  opacity:0;
  transition:transform .8s var(--ease),opacity .8s var(--ease)
}
.pws-bridge.bridge-live .pws-bridge-top{transform:none;opacity:1}
.pws-bridge h2{
  transition:letter-spacing 1s var(--ease),transform 1s var(--ease)
}
.pws-bridge.bridge-live h2{letter-spacing:-.065em}
.pws-bridge h2 span{
  display:inline-block;
  transform:translateX(-18px);
  opacity:.15;
  transition:transform 1.05s var(--ease) .08s,opacity 1.05s var(--ease) .08s
}
.pws-bridge.bridge-live h2 span{transform:none;opacity:1}
.pws-bridge-num{
  transform:scale(.86);
  opacity:.25;
  transition:transform 1.1s var(--ease),opacity 1.1s var(--ease)
}
.pws-bridge.bridge-live .pws-bridge-num{transform:scale(1);opacity:1}
.pws-bridge-bottom span{
  opacity:.45;
  transition:opacity .35s ease,color .35s ease
}
.pws-bridge-bottom span.bridge-active{opacity:1;color:#0b1020}
.pws-bridge-bottom i{
  transform:scaleX(.1);
  transform-origin:left;
  transition:transform .9s var(--ease)
}
.pws-bridge.bridge-live .pws-bridge-bottom i{transform:scaleX(1)}
@media(max-width:1000px){
  .pws-manifesto-copy{grid-template-columns:1fr;gap:30px}
}
@media(max-width:720px){
  .pws-manifesto-inner{padding-top:66px}
  .pws-manifesto-copy{padding:44px 0 38px}
  .pws-manifesto-title{font-size:clamp(3rem,15vw,4.8rem)}
  .pws-manifesto-cards{grid-template-columns:1fr;padding-bottom:52px}
  .pws-manifesto-rule{display:none}
  .pws-mf-marquee{margin-inline:-14px}
  .pws-bridge{min-height:auto}
  .pws-bridge-inner{padding-top:52px!important}
}
@media(prefers-reduced-motion:reduce){
  .pws-mf-marquee-track{animation:none}
  .mf-lean.active{letter-spacing:normal;transform:none}
  .pws-bridge-top,.pws-bridge h2 span,.pws-bridge-num{opacity:1!important;transform:none!important}
}

/* v3.2 standalone bridge section */
.pws-bridge{
  position:relative;
  z-index:8;
  min-height:76svh;
  display:grid;
  align-items:center;
  overflow:hidden;
  color:#0b1020;
  background:
    radial-gradient(circle at 82% 22%,rgba(92,124,255,.10),transparent 26%),
    radial-gradient(circle at 16% 75%,rgba(95,245,230,.10),transparent 28%),
    #f4f5f8;
  border-bottom:1px solid #dfe3ea;
}
.pws-bridge-grid{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.38;
  background-image:
    linear-gradient(rgba(10,16,32,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,16,32,.055) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(to bottom,transparent 0,black 18%,black 82%,transparent 100%);
}
.pws-bridge-inner{
  position:relative;
  z-index:2;
  padding:88px 0 86px;
}
.pws-bridge-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-bottom:20px;
  border-bottom:1px solid #d7dce5;
  color:#6d7688;
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:850;
}
.pws-bridge-main{
  display:grid;
  grid-template-columns:1.18fr .82fr;
  gap:72px;
  align-items:end;
  padding:70px 0 56px;
}
.pws-bridge-eyebrow{color:#237974}
.pws-bridge h2{
  margin:16px 0 0;
  font-size:clamp(3.6rem,8.6vw,9rem);
  line-height:.82;
  letter-spacing:-.075em;
  color:#0b1020;
}
.pws-bridge h2 span{
  color:transparent;
  -webkit-text-stroke:1.4px #0b1020;
}
.pws-bridge-orbitless{
  align-self:end;
  padding-bottom:8px;
}
.pws-bridge-num{
  font-size:clamp(7rem,15vw,15rem);
  line-height:.68;
  font-weight:950;
  letter-spacing:-.08em;
  color:#d8dde6;
}
.pws-bridge-orbitless p{
  max-width:430px;
  margin:28px 0 0;
  color:#5f6878;
  font-size:1rem;
}
.pws-bridge-bottom{
  display:flex;
  align-items:center;
  gap:16px;
  color:#626c7c;
  font-size:.7rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:800;
}
.pws-bridge-bottom i{
  flex:1;
  height:1px;
  min-width:20px;
  background:#cfd5df;
}
@media(max-width:900px){
  .pws-bridge{min-height:auto}
  .pws-bridge-main{grid-template-columns:1fr;gap:28px;padding:54px 0 44px}
  .pws-bridge-num{font-size:7rem}
  .pws-bridge-bottom{flex-wrap:wrap}
  .pws-bridge-bottom i{display:none}
}
@media(max-width:720px){
  .pws-bridge-inner{padding:68px 0}
  .pws-bridge-top{font-size:.62rem}
  .pws-bridge h2{font-size:clamp(3rem,16vw,5rem)}
  .pws-bridge-bottom{gap:10px 18px}
}

/* Portfolio now starts AFTER a full bridge section. */

/* work */
.pws-work{background:#f4f5f8;color:#0b1020;padding-bottom:150px}
.pws-work .pws-eyebrow{color:#1f6f6c}
.pws-work-head{display:grid;grid-template-columns:1fr .62fr;gap:70px;align-items:end;margin-bottom:65px}
.pws-work .pws-copy{color:#5d6676}
.pws-work-list{display:grid;gap:28px}
.pws-project{
  --project:#111827;
  position:sticky;top:92px;min-height:72vh;border-radius:34px;overflow:hidden;
  background:var(--project);color:#fff;box-shadow:0 30px 80px rgba(12,20,35,.18);
  transform-origin:center top
}
.pws-project+.pws-project{margin-top:40px}
.pws-project:nth-child(2){top:110px}
.pws-project:nth-child(3){top:128px}
.pws-project:nth-child(4){top:146px}
.pws-project-inner{display:grid;grid-template-columns:.78fr 1.22fr;min-height:72vh}
.pws-project-meta{padding:44px;display:flex;flex-direction:column;justify-content:space-between}
.pws-project-num{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.pws-project-meta h3{font-size:clamp(2.2rem,4.7vw,5rem);line-height:.94;letter-spacing:-.055em;margin:16px 0}
.pws-project-meta p{max-width:400px;color:rgba(255,255,255,.72)}
.pws-project-tags{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}
.pws-project-tags span{padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);font-size:.7rem;color:rgba(255,255,255,.78)}
.pws-project-visual{position:relative;min-height:520px;overflow:hidden;background:#090e1b}
.pws-project-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease);filter:saturate(.95)}
.pws-project:hover .pws-project-visual img{transform:scale(1.035)}
.pws-project-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.22),transparent 32%);pointer-events:none}
.pws-project--multiaxis{--project:#07172f}
.pws-project--feather{--project:#9d405e}
.pws-project--dental{--project:#143a33}
.pws-project--auto{--project:#141517;--orange:#e67843}
.pws-dental-visual{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:24px;background:radial-gradient(circle at 90% 10%,#17496b,#0a1522 56%)}
.pws-dental-panel{border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.22)}
.pws-dental-panel img{width:100%;height:100%;object-fit:cover}
.pws-auto-ui{
  position:absolute;inset:0;padding:34px;
  background:
  radial-gradient(circle at 80% 20%,rgba(255,159,90,.18),transparent 30%),
  linear-gradient(145deg,#0c0f13,#191d24)
}
.pws-auto-browser{height:100%;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:#0e1116;overflow:hidden}
.pws-auto-top{height:48px;display:flex;align-items:center;gap:7px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.pws-auto-top i{width:8px;height:8px;border-radius:50%;background:#4a5261}.pws-auto-top i:first-child{background:var(--orange)}
.pws-auto-body{height:calc(100% - 48px);display:grid;grid-template-columns:.7fr 1.3fr}
.pws-auto-side{padding:24px;border-right:1px solid rgba(255,255,255,.08)}
.pws-auto-side strong{font-size:1.35rem}.pws-auto-side p{color:#9ca8b8;font-size:.82rem}
.pws-auto-list{display:grid;gap:10px;margin-top:25px}.pws-auto-list div{height:42px;border-radius:10px;background:#171c24;border:1px solid rgba(255,255,255,.05)}
.pws-auto-main{padding:28px;display:flex;flex-direction:column}
.pws-auto-main small{color:#8c98aa;text-transform:uppercase;letter-spacing:.1em}
.pws-auto-main h4{font-size:clamp(2rem,4vw,4.2rem);line-height:.92;margin:12px 0;color:#fff}
.pws-diagnostic{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pws-diagnostic div{padding:16px;border-radius:14px;background:#151b24;border:1px solid rgba(255,255,255,.07)}
.pws-diagnostic b{display:block;color:var(--orange);font-size:1.2rem}.pws-diagnostic span{font-size:.72rem;color:#8996a8}




/* v2: project-specific colour identities */
.pws-project--multiaxis{
  background:
    radial-gradient(circle at 86% 14%,rgba(118,87,232,.24),transparent 28%),
    radial-gradient(circle at 12% 84%,rgba(16,167,160,.22),transparent 30%),
    #07172f;
}
.pws-project--multiaxis .pws-project-tags span{
  border-color:rgba(92,230,217,.24);
}
.pws-project--multiaxis .pws-link span{
  border-color:rgba(92,230,217,.28);
}

.pws-project--dental{
  background:
    radial-gradient(circle at 86% 18%,rgba(139,205,174,.18),transparent 28%),
    linear-gradient(145deg,#173f37,#0f2e29 62%,#0c2521);
}
.pws-project--dental .pws-project-tags span{
  border-color:rgba(160,221,190,.22);
}
.pws-project--dental .pws-dental-visual{
  background:
    radial-gradient(circle at 88% 12%,rgba(139,205,174,.20),transparent 30%),
    linear-gradient(145deg,#173f37,#0b221f 68%);
}

.pws-project--auto{
  background:
    radial-gradient(circle at 88% 16%,rgba(230,120,67,.12),transparent 26%),
    linear-gradient(145deg,#191a1d,#111214 68%);
}





/* v6 critical sticky fix
   Do not put overflow:hidden/auto/scroll on any ancestor of the sticky cards.
   `clip` prevents horizontal painting overflow without creating a scroll container. */
.pws-homepage,
.pws-homepage .pws-wrap,
.pws-homepage .pws-home-main,
.pws-homepage #top{
  overflow-y:visible!important;
}
.pws-homepage{
  overflow-x:clip!important;
}
.pws-homepage .pws-wrap,
.pws-homepage #top{
  overflow-x:visible!important;
}

/* Exact Concept v3 work-section spacing */
.pws-homepage .pws-work{
  padding-top:120px!important;
  padding-bottom:150px!important;
  overflow:visible!important;
}
.pws-homepage .pws-work-list{
  overflow:visible!important;
}
.pws-homepage .pws-work-head{
  margin-bottom:65px!important;
}
@media(max-width:720px){
  .pws-homepage .pws-work{
    padding-top:82px!important;
  }
}

/* v6: literal Homepage Concept v1/v2/v3 portfolio stacking behavior */
.pws-homepage .pws-project{
  opacity:1;
  filter:none;
}
.pws-homepage .pws-project-visual img{
  transform:none;
}
.pws-homepage .pws-project:hover .pws-project-visual img{
  transform:scale(1.035);
}
@media(max-width:720px){
  .pws-homepage .pws-project{
    position:relative!important;
    top:auto!important;
    transform:none!important;
  }
}

/* services */
.pws-services{background:#060a14}
.pws-services-head{display:grid;grid-template-columns:.6fr 1.4fr;gap:70px;margin-bottom:50px}
.pws-service-list{border-top:1px solid var(--line)}
.pws-service{
  position:relative;display:grid;grid-template-columns:90px 1fr 380px 44px;gap:26px;align-items:center;
  min-height:128px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;
  transition:padding .35s var(--ease);overflow:hidden
}
.pws-service::before{
  content:"";position:absolute;inset:0;transform:translateY(102%);
  background:linear-gradient(90deg,rgba(95,245,230,.08),rgba(92,124,255,.08));transition:transform .4s var(--ease)
}
.pws-service:hover::before{transform:none}.pws-service:hover{padding-inline:18px}
.pws-service>*{position:relative;z-index:1}
.pws-service-num{color:var(--dim);font-size:.74rem;letter-spacing:.12em}
.pws-service h3{font-size:clamp(1.65rem,3.4vw,3.4rem);letter-spacing:-.045em;margin:0}
.pws-service p{color:var(--muted);margin:0;font-size:.88rem}
.pws-service-arrow{font-size:1.5rem;transition:transform .35s var(--ease)}.pws-service:hover .pws-service-arrow{transform:rotate(-45deg)}
.pws-service-bgword{
  position:absolute;right:9%;top:50%;transform:translateY(-50%) translateX(40px);opacity:0;
  font-size:clamp(5rem,13vw,13rem);font-weight:950;letter-spacing:-.08em;line-height:.7;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.08);transition:.45s var(--ease);pointer-events:none
}
.pws-service:hover .pws-service-bgword{opacity:1;transform:translateY(-50%) translateX(0)}

/* performance */
.pws-performance{
  background:
  radial-gradient(circle at 12% 14%,rgba(95,245,230,.1),transparent 28%),
  radial-gradient(circle at 85% 80%,rgba(169,114,255,.14),transparent 28%),
  #091020
}
.pws-performance-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:54px;align-items:center}
.pws-performance-console{
  border:1px solid var(--line);border-radius:26px;overflow:hidden;background:#050912;
  box-shadow:0 30px 90px rgba(0,0,0,.28);transform:perspective(1100px) rotateY(-3deg) rotateX(1deg)
}
.pws-console-bar{height:50px;display:flex;align-items:center;gap:7px;padding:0 17px;border-bottom:1px solid var(--line)}
.pws-console-bar i{width:9px;height:9px;border-radius:50%;background:#3d465b}.pws-console-bar i:first-child{background:#ff6b6b}.pws-console-bar i:nth-child(2){background:#ffd166}.pws-console-bar i:nth-child(3){background:#72efdd}
.pws-console-code{padding:26px;font:500 .84rem/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;color:#95a7c5}
.pws-code-line{display:flex;gap:18px}.pws-code-n{width:20px;color:#4a5872;text-align:right}.pws-code-cyan{color:var(--cyan)}.pws-code-violet{color:#c394ff}.pws-code-lime{color:var(--lime)}.pws-code-orange{color:#ffb36f}
.pws-budget{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.pws-budget-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03)}
.pws-budget-card strong{display:block;font-size:1.55rem;letter-spacing:-.04em}.pws-budget-card span{color:var(--muted);font-size:.78rem}
.pws-meter-list{display:grid;gap:14px;margin-top:30px}
.pws-meter{padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.pws-meter-top{display:flex;justify-content:space-between;gap:20px;margin-bottom:10px;font-size:.8rem}.pws-meter-top span:last-child{color:var(--cyan)}
.pws-meter-track{height:6px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden}
.pws-meter-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--blue));transition:width 1.4s var(--ease)}

/* process */
.pws-process{background:#f7f8fa;color:#0a1020}
.pws-process .pws-eyebrow{color:#1f6f6c}.pws-process .pws-copy{color:#616a7a}
.pws-process-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:70px;align-items:start}
.pws-process-sticky{position:sticky;top:120px}
.pws-process-track{position:relative;padding-left:56px}
.pws-process-svg{position:absolute;left:5px;top:4px;width:28px;height:calc(100% - 8px)}
.pws-process-svg path{fill:none;stroke:#dfe3eb;stroke-width:3}.pws-process-svg .progress{stroke:#2b8c88;stroke-dasharray:1;stroke-dashoffset:1}
.pws-step{min-height:220px;padding:10px 0 50px;border-bottom:1px solid #dde1e8}
.pws-step:last-child{border-bottom:0}
.pws-step-num{font-size:.72rem;letter-spacing:.15em;color:#748093}.pws-step h3{font-size:clamp(2rem,4vw,4.5rem);letter-spacing:-.055em;margin:10px 0}.pws-step p{max-width:690px;color:#5f6878}

/* proof / recognition */
.pws-proof{background:#060a14}
.pws-proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.pws-case{
  border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,#0b1527,#0b1020);overflow:hidden
}
.pws-case-head{padding:28px;border-bottom:1px solid var(--line)}
.pws-case-head small{color:var(--cyan);text-transform:uppercase;letter-spacing:.13em}.pws-case-head h3{margin:8px 0 0;font-size:clamp(2rem,4vw,4.4rem);line-height:.95;letter-spacing:-.05em}
.pws-case-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px}
.pws-case-body img{width:100%;height:250px;object-fit:cover;border-radius:18px;background:#fff}
.pws-recognition{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pws-logo-card{height:120px;display:grid;place-items:center;border:1px solid var(--line);border-radius:18px;background:#fff;padding:22px}
.pws-logo-card img{max-width:86%;max-height:70px;object-fit:contain}

/* insights */
.pws-insights{background:#0a1020}
.pws-insights-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:40px}
.pws-insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pws-insight{min-height:330px;position:relative;padding:26px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.025);text-decoration:none;overflow:hidden}
.pws-insight::before{content:"";position:absolute;width:190px;height:190px;border-radius:50%;filter:blur(80px);opacity:.15;background:var(--blue);right:-30px;top:-40px}
.pws-insight small{position:relative;color:var(--cyan);text-transform:uppercase;letter-spacing:.1em}
.pws-insight h3{position:relative;font-size:1.65rem;line-height:1.12;letter-spacing:-.035em;margin:28px 0}
.pws-insight p{position:relative;color:var(--muted);font-size:.88rem}
.pws-insight-arrow{position:absolute;bottom:24px;right:24px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.35s var(--ease)}
.pws-insight:hover .pws-insight-arrow{background:var(--cyan);color:#05120f;transform:rotate(-45deg)}

/* CTA */
.pws-cta{
  position:relative;min-height:75vh;display:grid;place-items:center;text-align:center;
  overflow:hidden;background:#03050c
}
.pws-cta::before{
  content:"";position:absolute;width:900px;height:900px;border-radius:50%;
  border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 100px rgba(255,255,255,.015),0 0 0 220px rgba(255,255,255,.01)
}
.pws-cta-glow{position:absolute;width:430px;height:430px;border-radius:50%;background:var(--violet);filter:blur(130px);opacity:.16}
.pws-cta-inner{position:relative;z-index:2}
.pws-cta h2{font-size:clamp(3.5rem,9vw,9rem);line-height:.84;letter-spacing:-.075em;margin:0 0 30px}
.pws-cta p{max-width:620px;margin:0 auto 30px;color:var(--muted)}




/* reveal motion */
[data-reveal]{opacity:0;transform:translateY(35px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="clip"]{opacity:1;clip-path:inset(100% 0 0);transform:none;transition:clip-path 1s var(--ease)}
[data-reveal="clip"].in{clip-path:inset(0)}
.pws-progress{position:fixed;z-index:500;top:0;left:0;width:100%;height:2px;background:rgba(255,255,255,.05)}
.pws-progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet))}
.pws-pointer-glow{position:fixed;z-index:0;width:380px;height:380px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(95,245,230,.07),transparent 68%);opacity:0;transition:opacity .3s}

/* custom cursor */
.pws-cursor,.pws-cursor-dot{position:fixed;z-index:9999;pointer-events:none;border-radius:50%;display:none}
.pws-cursor{width:46px;height:46px;border:1px solid rgba(255,255,255,.46);transition:width .22s,height .22s,background .22s,border-color .22s}
.pws-cursor-dot{width:5px;height:5px;background:#fff}
.pws-cursor.active{width:70px;height:70px;background:rgba(95,245,230,.1);border-color:var(--cyan)}

@media(pointer:fine) and (min-width:900px){.pws-homepage.pws-motion-ready .pws-cursor,.pws-homepage.pws-motion-ready .pws-cursor-dot{display:block}.pws-homepage.pws-motion-ready .pws-pointer-glow{opacity:1}.pws-homepage.pws-motion-ready{cursor:none}.pws-homepage.pws-motion-ready a,.pws-homepage.pws-motion-ready button{cursor:none}}
@media(max-width:1000px){
  .pws-menu{display:none}.pws-menu-btn{display:block}
  .pws-hero-top,.pws-intro-grid,.pws-work-head,.pws-services-head,.pws-performance-grid,.pws-process-layout,.pws-proof-grid{grid-template-columns:1fr}
  .pws-hero-side{max-width:580px}
  .pws-intro-grid,.pws-services-head{gap:30px}
  .pws-project-inner{grid-template-columns:1fr}.pws-project-meta{min-height:310px}.pws-project-visual{min-height:430px}
  .pws-service{grid-template-columns:60px 1fr 44px}.pws-service p{display:none}
  .pws-process-sticky{position:static}
}
@media(max-width:720px){
  .pws-shell{width:min(100% - 28px,var(--max))}
  .pws-section{padding:82px 0}
  
  .pws-hero-content{padding:120px 0 42px}.pws-hero-title{font-size:clamp(3.3rem,18vw,5.2rem)}
  .pws-hero-actions{display:grid}.pws-home-btn{width:100%}.pws-scroll-cue{margin-top:42px}
  .pws-signal-grid,.pws-budget,.pws-insight-grid,.pws-recognition{grid-template-columns:1fr}
  .pws-project{position:relative!important;top:auto!important;min-height:0}.pws-project+.pws-project{margin-top:22px}
  .pws-project-inner{min-height:0}.pws-project-meta{padding:28px;min-height:280px}.pws-project-visual{min-height:360px}
  .pws-dental-visual{grid-template-columns:1fr}.pws-dental-panel:nth-child(2){display:none}
  .pws-auto-ui{padding:16px}.pws-auto-body{grid-template-columns:1fr}.pws-auto-side{display:none}.pws-diagnostic{grid-template-columns:1fr}
  .pws-service{grid-template-columns:42px 1fr 32px;min-height:105px}.pws-service-num{font-size:.64rem}
  .pws-performance-console{transform:none}.pws-console-code{font-size:.7rem;padding:18px;overflow:auto}
  .pws-process-track{padding-left:44px}.pws-process-svg{left:0}
  .pws-case-body{grid-template-columns:1fr}.pws-case-body img{height:220px}
  .pws-insights-head{align-items:start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .pws-cursor,.pws-cursor-dot,.pws-pointer-glow{display:none!important}
  [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
}

/* =========================================================
   PWS HOMEPAGE QA FIX BATCH v1.1.3
   01 heading colour isolation
   02 seamless desktop manifesto marquee
   03 light-surface cursor contrast
   04 final CTA reveal/colour protection
   05 mobile portfolio stacking
   06 mobile service-layer scroll reveal
   07 scroll-driven code typing reveal
   ========================================================= */

/* 01 + 04: keep Kadence/global heading colours out of this production canvas.
   Each section already establishes the correct inherited foreground colour. */
.pws-homepage h1,
.pws-homepage h2,
.pws-homepage h3,
.pws-homepage h4,
.pws-homepage h5,
.pws-homepage h6{
  color:inherit!important;
}
.pws-homepage .pws-hero-title,
.pws-homepage .pws-hero-title .pws-line,
.pws-homepage .pws-hero-title .pws-line > span{
  color:var(--ink)!important;
  -webkit-text-fill-color:var(--ink)!important;
}
.pws-homepage .pws-design-word{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
}
.pws-homepage .pws-cta h2{
  color:var(--ink)!important;
  -webkit-text-fill-color:var(--ink)!important;
  background:none!important;
  background-image:none!important;
}

/* 02: JS supplies an exact negative pixel shift for one complete cycle.
   This prevents wide desktop viewports from exposing an empty half-track. */
@media(min-width:721px){
  .pws-mf-marquee-track.pws-marquee-ready{
    gap:0;
    animation-name:pwsMfMarqueeExact;
    animation-duration:28s;
    animation-timing-function:linear;
    animation-iteration-count:infinite;
    will-change:transform;
  }
  .pws-mf-marquee-cycle{
    flex:none;
    display:flex;
    align-items:center;
    gap:24px;
    padding-right:24px;
    width:max-content;
  }
  @keyframes pwsMfMarqueeExact{
    to{transform:translate3d(var(--pws-mf-shift,-900px),0,0)}
  }
}

/* 03: cursor remains dynamic, but gets the Start-a-project cyan treatment on
   light surfaces where the white ring/dot can disappear. */
.pws-cursor.on-light{
  border-color:var(--cyan)!important;
  background:rgba(95,245,230,.10)!important;
  box-shadow:0 0 0 1px rgba(5,8,20,.10),0 0 22px rgba(95,245,230,.16);
}
.pws-cursor-dot.on-light{
  background:var(--cyan)!important;
  box-shadow:0 0 10px rgba(95,245,230,.55);
}

/* 05: preserve the approved sticky-stack language on touch/mobile rather than
   collapsing the portfolio into ordinary blocks. */
@media(max-width:720px){
  .pws-homepage .pws-work-list{
    gap:0;
    padding-bottom:36px;
  }
  .pws-homepage .pws-project{
    position:sticky!important;
    top:calc(var(--pws-header-offset,0px) + 12px)!important;
    min-height:0;
    transform:scale(var(--pws-mobile-stack-scale,1))!important;
    transform-origin:center top;
    will-change:transform;
  }
  .pws-homepage .pws-project:nth-child(2){top:calc(var(--pws-header-offset,0px) + 20px)!important}
  .pws-homepage .pws-project:nth-child(3){top:calc(var(--pws-header-offset,0px) + 28px)!important}
  .pws-homepage .pws-project:nth-child(4){top:calc(var(--pws-header-offset,0px) + 36px)!important}
  .pws-homepage .pws-project + .pws-project{margin-top:28px}
  .pws-homepage .pws-project-meta{min-height:240px}
  .pws-homepage .pws-project-visual{min-height:315px}
}

/* 06: mobile/touch scroll position can drive the same inner-layer reveal that
   desktop users normally discover through hover. */
.pws-service.is-scroll-active::before{transform:none}
.pws-service.is-scroll-active{padding-inline:18px}
.pws-service.is-scroll-active .pws-service-bgword{
  opacity:1;
  transform:translateY(-50%) translateX(0)
}
@media(max-width:1000px){
  .pws-service-bgword{
    right:4%;
    font-size:clamp(4rem,20vw,8rem);
  }
}

/* 07: visual-only typing reveal. The full code remains in the DOM for
   accessibility/crawlability; JS changes only clipping/opacity. */
.pws-performance-console.pws-code-scroll-ready .pws-code-line > span:last-child{
  display:inline-block;
  will-change:clip-path,opacity,transform;
}
.pws-performance-console.pws-code-scroll-ready .pws-code-n{
  transition:color .18s linear,opacity .18s linear;
}
.pws-performance-console.pws-code-scroll-ready .pws-code-line.is-current .pws-code-n{
  color:var(--cyan);
  opacity:1;
}
@media(prefers-reduced-motion:reduce){
  .pws-performance-console .pws-code-line > span:last-child{
    clip-path:none!important;
    opacity:1!important;
    transform:none!important;
  }
}

/* =========================================================
   PWS HOMEPAGE FINALIZATION v1.1.4
   09 desktop header overlays the hero from the first frame
   10 responsive optimized hero poster + video fade-in
   ========================================================= */

/* Keep the optimized poster visible until the MP4 has a playable frame. */
.pws-homepage .pws-hero-media{
  background:#02040a url("../../images/pws-hero-poster-desktop.webp") center center/cover no-repeat;
}
.pws-homepage .pws-hero-video{
  opacity:0;
  background:transparent;
  transition:opacity .45s var(--ease);
}
.pws-homepage .pws-hero.is-video-ready .pws-hero-video{opacity:1}

/* On desktop the fixed global header must sit over the hero, not over the
   light hero-stage background. Keep mobile behaviour exactly as approved. */
@media(min-width:721px){
  .pws-homepage .pws-hero-stage .pws-hero{
    top:0!important;
    height:100svh!important;
    min-height:100svh!important;
  }
}

/* Dedicated portrait crop keeps the phone/web-design focal point in frame. */
@media(max-width:720px){
  .pws-homepage .pws-hero-media{
    background-image:url("../../images/pws-hero-poster-mobile.webp");
    background-position:center center;
  }
}



/* =========================================================
   PWS HOMEPAGE PERFORMANCE + A11Y v1.1.5
   No layout, image-quality or approved-motion removal.
   ========================================================= */

/* Same branded loader, only shorter on constrained mobile Lighthouse path. */
@media(max-width:720px){
  .pws-homepage .pws-loader{transition-duration:.32s}
}

/* Lighthouse contrast corrections: visually subtle, scoped only to failing text. */
.pws-homepage .pws-project--feather .pws-project-num,
.pws-homepage .pws-project--feather .pws-project-meta p{
  color:rgba(255,255,255,.82);
}
.pws-homepage .pws-step-num{color:#667184}

/* v1.1.6 — preserve rotating-word hover effect without changing text geometry.
   Longer words no longer expand/reflow when the cursor is over them. */
.pws-homepage .pws-design-word:hover{
  letter-spacing:inherit;
}

