/*
Theme Name: Inabia
Theme URI: http://localhost/inabia
Author: Inabia
Author URI: https://inabia.com
Description: Custom enterprise theme for Inabia — Enterprise IT Services. Pixel-built from the approved homepage design with a reusable header/footer for future pages.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: inabia
*/

:root{
  --ink:#15110C;
  --ink-2:#1f1810;
  --paper:#F6F1E7;
  --paper-2:#EFE8D9;
  --cream:#FBF8F1;
  --ember:#F78F1B;
  --ember-hi:#FFAE45;
  --ember-deep:#D9650A;
  --rust:#B23A0E;
  --muted:#6B5E4C;
  --muted-d:#A8967C;
  --line:rgba(21,17,12,.12);
  --line-d:rgba(255,255,255,.12);
  --maxw:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Hanken Grotesk',sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  /* `hidden` makes body a scroll container, which silently disables
     position:sticky for every descendant. `clip` still suppresses sideways
     scroll but creates no scroll container, so sticky keeps working. The
     `hidden` line stays first as the fallback for older engines. */
  overflow-x:hidden;
  overflow-x:clip;
}
.display{font-family:'Fraunces',serif;font-optical-sizing:auto;line-height:1.02;letter-spacing:-.02em;font-weight:500;}
.mono{font-family:'JetBrains Mono',monospace;}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ember-deep);font-weight:500;}
.eyebrow.light{color:var(--ember-hi);}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
section{position:relative}

/* grain */
.grain::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}

/* ===== NAV ===== */
#nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:all .4s cubic-bezier(.2,.7,.2,1);}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:22px 32px;max-width:1320px;margin:0 auto;}
.logo{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;letter-spacing:-.01em;color:#fff;display:flex;align-items:center;gap:10px;}
.logo img{height:70px;width:auto;display:block;}
.logo .dot{width:9px;height:9px;border-radius:50%;background:var(--ember);box-shadow:0 0 16px var(--ember);}
#nav.scrolled .logo img{height:56px;transition:height .4s cubic-bezier(.2,.7,.2,1);}
footer .logo img{height:44px;}
#nav.scrolled{background:rgba(21,17,12,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line-d);}
#nav.scrolled .navbar{padding:14px 32px;}
.navlinks{display:flex;gap:34px;align-items:center;}
.navlinks a{color:rgba(255,255,255,.82);font-size:.92rem;font-weight:500;transition:color .2s;position:relative;}
.navlinks a:not(.btn):hover{color:#fff;}
.navlinks a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--ember);transition:width .3s;}
.navlinks a:not(.btn):hover::after{width:100%;}
.btn{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;border-radius:100px;font-weight:600;font-size:.92rem;transition:all .25s cubic-bezier(.2,.7,.2,1);cursor:pointer;border:none;}
.btn-ember{background:var(--ember);color:#fff;}
.btn-ember:hover{background:var(--ember-hi);transform:translateY(-2px);box-shadow:0 10px 30px rgba(247,143,27,.4);}
.btn-ghost{border:1px solid rgba(255,255,255,.3);color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);}
.btn-dark{background:var(--ink);color:var(--cream);}
.btn-dark:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(21,17,12,.25);}
.btn .arr{transition:transform .25s;}
.btn:hover .arr{transform:translateX(4px);}
.menu-toggle{display:none;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer;line-height:1;}

/* ===== MEGA MENU ===== */
.navitem{position:relative;display:flex;align-items:center;}
.navlink{display:inline-flex;align-items:center;gap:6px;}
.nav-caret{font-size:.58rem;opacity:.65;transition:transform .25s;display:inline-block;line-height:1;}
.navitem:hover .nav-caret,.navitem.open .nav-caret{transform:rotate(180deg);opacity:1;}

.mega{
  position:fixed;left:0;right:0;top:0;z-index:95;
  background:var(--cream);
  border-bottom:1px solid var(--line);
  box-shadow:0 34px 64px -34px rgba(21,17,12,.55);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .26s cubic-bezier(.2,.7,.2,1),transform .26s cubic-bezier(.2,.7,.2,1),visibility .26s;
}
.navitem.open .mega{opacity:1;visibility:visible;transform:translateY(0);}
.mega-inner{max-width:var(--maxw);margin:0 auto;padding:40px 32px 44px;display:grid;grid-template-columns:.85fr 2fr;gap:56px;align-items:start;}
.mega-promo .eyebrow{margin-bottom:12px;}
.mega-promo h3{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;line-height:1.14;letter-spacing:-.01em;color:var(--ink);margin-bottom:10px;}
.mega-promo h3 em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.mega-promo p{color:var(--muted);font-size:.92rem;margin-bottom:18px;max-width:290px;}
.mega-cta{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.73rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ember-deep) !important;font-weight:500;}
.mega-cta .arr{transition:transform .25s;}
.mega-cta:hover .arr{transform:translateX(4px);}
/* Two CTAs stacked in the promo column: What we do, then Our team. */
.mega-ctas{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
/* About Us panel links ("What we do" / "Our team") read as buttons, not as the
   small mono text links used elsewhere -- the client found them too easy to
   miss. The first is a filled ember button, the second an outlined one, side
   by side. Scoped to .mega-ctas so single .mega-cta links in other panels keep
   their quieter style. */
.mega-ctas{flex-direction:row;flex-wrap:wrap;gap:12px;margin-top:4px;}
.mega-ctas .mega-cta{gap:10px;padding:12px 22px;border-radius:999px;
  font-family:'Hanken Grotesk',sans-serif;font-size:.95rem;font-weight:600;letter-spacing:0;text-transform:none;line-height:1;
  color:var(--ember-deep) !important;background:#fff;border:1.5px solid var(--ember);
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .25s ease,transform .2s ease;}
.mega-ctas .mega-cta:first-child{color:#fff !important;background:var(--ember);
  box-shadow:0 10px 22px -10px rgba(247,143,27,.65);}
.mega-ctas .mega-cta:hover{background:#FFF3E4;transform:translateY(-1px);}
.mega-ctas .mega-cta:first-child:hover{background:var(--ember-deep);border-color:var(--ember-deep);
  box-shadow:0 14px 26px -10px rgba(217,101,10,.7);}
.mega-ctas .mega-cta:focus-visible{outline:2px solid var(--ember-deep);outline-offset:3px;}
/* Dark mobile drawer: the outlined button switches to light-on-dark. */
@media(max-width:980px){
  .mega-ctas .mega-cta{padding:11px 18px;font-size:.9rem;}
  .mega-ctas .mega-cta:not(:first-child){background:transparent;color:#fff !important;border-color:rgba(255,255,255,.4);}
  .mega-ctas .mega-cta:not(:first-child):hover{background:rgba(255,255,255,.08);}
}

/* ---- About Us mega: the journey ----
   Framed as a panel so it reads as one exhibit rather than four loose facts on
   the menu's ground. The rail is built from a segment per node instead of one
   bar across the track, which is what keeps it ending exactly on the last dot
   -- a single bar overhung the end and was the thing that made it look
   unfinished. Each segment draws in turn, so the line advances milestone by
   milestone. Keyed off .navitem.open, so it replays on every open. */
.mega-journey{padding:24px 26px 26px;border-radius:16px;background:#fff;
  border:1px solid var(--line);box-shadow:0 20px 44px -30px rgba(21,17,12,.5);}
.jr-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  flex-wrap:wrap;padding-bottom:15px;margin-bottom:28px;border-bottom:1px solid var(--line);}
.jr-eyebrow{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ember-deep);}
.jr-more{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;
  color:var(--ember-deep) !important;}
.jr-more .arr{transition:transform .25s;}
.jr-more:hover .arr{transform:translateX(4px);}

.jr-track{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 22px;}
.jr-node{position:relative;padding-top:30px;opacity:0;transform:translateY(10px);}
.navitem.open .jr-node{animation:jrRise .5s cubic-bezier(.2,.7,.2,1) forwards;
  animation-delay:calc(.16s + var(--i) * .12s);}
@keyframes jrRise{to{opacity:1;transform:none;}}

/* One segment per node, reaching into the gutter to meet the next dot. The
   last node has none, so the rail stops where the story does. */
.jr-node::before,.jr-node::after{content:'';position:absolute;left:19px;right:-22px;top:6px;
  height:2px;border-radius:2px;}
.jr-node::before{background:var(--line);}
.jr-node::after{background:linear-gradient(90deg,var(--ember) 0%,var(--ember-deep) 100%);
  transform:scaleX(0);transform-origin:0 50%;}
.navitem.open .jr-node::after{animation:jrDraw .42s cubic-bezier(.4,0,.2,1) forwards;
  animation-delay:calc(.26s + var(--i) * .12s);}
.jr-node:last-child::before,.jr-node:last-child::after{display:none;}
@keyframes jrDraw{to{transform:scaleX(1);}}

/* Hollow rings read as stations on a line; the last one is filled, which marks
   where the company stands now rather than leaving the rail trailing off. */
.jr-dot{position:absolute;top:0;left:0;width:14px;height:14px;border-radius:50%;
  background:#fff;border:2px solid var(--ember);
  box-shadow:0 0 0 3px rgba(247,143,27,.14);
  transition:transform .28s cubic-bezier(.2,.7,.2,1),background .28s ease,
             border-color .28s ease,box-shadow .28s ease;}
.jr-node:last-child .jr-dot{border-color:transparent;
  background:linear-gradient(135deg,var(--ember) 0%,var(--ember-deep) 100%);
  box-shadow:0 0 0 4px rgba(247,143,27,.18);}

/* Hover is a read cue -- these are facts, not controls -- so the station fills
   and its label warms rather than anything behaving like a button. The lift is
   on the dot alone: moving the node would drag the dot off the rail it sits on,
   and would fight the open animation's own transform. */
.jr-node:hover .jr-dot{transform:scale(1.32);border-color:transparent;
  background:linear-gradient(135deg,var(--ember) 0%,var(--ember-deep) 100%);
  box-shadow:0 0 0 5px rgba(247,143,27,.2),0 6px 16px -4px rgba(217,101,10,.55);}
.jr-node:hover .jr-kicker{color:var(--ember-deep);}
.jr-node:hover .jr-num{color:var(--ember-deep);}
.jr-node:hover .jr-text{color:var(--ink);}

.jr-kicker{display:block;font-family:'JetBrains Mono',monospace;font-size:.63rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--muted-d);margin-bottom:7px;
  transition:color .28s ease;}
.jr-num{display:block;font-family:'Fraunces',serif;font-size:1.75rem;font-weight:500;
  line-height:1;letter-spacing:-.02em;color:var(--ink);margin-bottom:9px;
  transition:color .28s ease;}
.jr-num i{font-style:normal;color:var(--ember-deep);}
.jr-text{display:block;font-size:.79rem;line-height:1.55;color:var(--muted);max-width:20ch;
  transition:color .28s ease;}

.mega-grid{display:grid;gap:4px 18px;}
.mega-grid.cols-2{grid-template-columns:repeat(2,1fr);}
.mega-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.mega-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.mega-grid.pills{gap:2px 22px;align-content:start;}
.mega a{color:var(--ink);}
.mega a::after{content:none !important;}
.mega-link{display:block;padding:13px 14px;border-radius:12px;transition:background .25s,transform .25s;}
.mega-link b{display:block;font-size:.98rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;margin-bottom:3px;}
.mega-link span{display:block;font-size:.82rem;color:var(--muted);line-height:1.45;}
.mega-link:hover{background:var(--paper-2);transform:translateX(2px);}
.mega-link.mini{display:flex;align-items:center;gap:11px;font-weight:600;font-size:.92rem;color:var(--ink);padding:11px 14px;}
.mega-link.mini .dot{width:7px;height:7px;border-radius:50%;background:var(--ember);flex:0 0 auto;transition:transform .25s;}
.mega-link.mini:hover .dot{transform:scale(1.4);}
/* people menu (avatar + text) */
.mega-person{display:flex;align-items:center;gap:13px;padding:10px 12px;}
.mega-avatar{flex:0 0 auto;width:46px;height:46px;border-radius:11px;overflow:hidden;background:var(--paper-2);border:1px solid var(--line);}
.mega-avatar img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.mega-person:hover .mega-avatar img{transform:scale(1.08);}
.mega-person-txt{display:flex;flex-direction:column;min-width:0;}
.mega-person-txt b{margin-bottom:1px;}
.mega-person-txt span{font-size:.8rem;}
.mega-link-all{border:1px dashed var(--line);}
.mega-link-all .mega-avatar.all{display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;font-size:1.1rem;}
.mega-link-all .mega-avatar.all .arr{transition:transform .25s;}
.mega-link-all b{color:var(--ember-deep);}
.mega-link-all:hover{background:var(--paper-2);border-color:var(--ember);}
.mega-link-all:hover .mega-avatar.all .arr{transform:translateX(3px);}

/* contact mega — multi-column (talk to us / reach us / locations / follow us) */
.mega-inner.mega-contact{grid-template-columns:1.5fr 1.15fr 1fr 1fr;gap:42px;align-items:stretch;}
.mega-contact .cm-col{padding-left:42px;border-left:1px solid var(--line);}
.cm-promo{padding-right:8px;}
.cm-promo .eyebrow{margin-bottom:13px;}
.cm-promo h3{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;line-height:1.14;letter-spacing:-.01em;color:var(--ink);margin-bottom:11px;}
.cm-promo h3 em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.cm-promo p{color:var(--muted);font-size:.92rem;line-height:1.55;margin-bottom:20px;max-width:300px;}
.cm-cta{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ember-deep) !important;border:1px solid rgba(217,101,10,.35);border-radius:100px;padding:11px 20px;transition:all .25s cubic-bezier(.2,.7,.2,1);}
.cm-cta::after{content:none !important;}
.cm-cta:hover{background:var(--ember);color:var(--ink) !important;border-color:var(--ember);transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(247,143,27,.55);}
.cm-cta .arr{transition:transform .25s;}
.cm-cta:hover .arr{transform:translateX(4px);}
.cm-h{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-d);margin-bottom:18px;}

/* contact rows (label + value) */
.cm-item{display:flex;align-items:center;gap:13px;padding:9px 0;color:var(--ink) !important;transition:padding-left .2s;}
.cm-item::after{content:none !important;}
.cm-item:hover{padding-left:4px;}
.cm-ico{flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:var(--paper-2);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--ember-deep);transition:all .25s cubic-bezier(.2,.7,.2,1);}
.cm-item:hover .cm-ico{background:var(--ember);border-color:var(--ember);color:var(--ink);transform:translateY(-2px);box-shadow:0 8px 18px -8px rgba(247,143,27,.6);}
.cm-ico svg{width:16px;height:16px;}
.cm-meta{display:flex;flex-direction:column;gap:1px;min-width:0;}
.cm-meta small{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-d);}
.cm-meta b{font-size:.95rem;font-weight:600;color:var(--ink);transition:color .2s;}
.cm-item:hover .cm-meta b{color:var(--ember-deep);}
.cm-item.compact{gap:12px;padding:7px 0;}
.cm-item.compact .cm-ico{width:32px;height:32px;}
.cm-item.compact b{font-weight:500;}

/* locations */
.cm-loc{display:flex;align-items:center;gap:13px;padding:8px 0;color:var(--ink) !important;transition:padding-left .2s;}
.cm-loc::after{content:none !important;}
.cm-loc:hover{padding-left:4px;}
.cm-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 4px rgba(247,143,27,.12);transition:transform .25s;}
.cm-loc:hover .cm-dot{transform:scale(1.2);}
.cm-flag{flex:0 0 auto;width:30px;height:30px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;line-height:1;background:var(--paper-2);border:1px solid var(--line);overflow:hidden;transition:transform .25s,box-shadow .25s;}
.cm-loc:hover .cm-flag{transform:translateY(-1px) scale(1.06);box-shadow:0 6px 14px -6px rgba(21,17,12,.3);}
.cm-loc .cm-meta b{font-size:.94rem;}
.cm-loc:hover .cm-meta b{color:var(--ember-deep);}

/* services mega — categories on the left, related services panel on the right */
.mega-inner.mega-services{grid-template-columns:.82fr 2fr;}
.svc-cats{display:flex;flex-direction:column;gap:3px;margin-top:18px;}
.svc-cat-btn{appearance:none;background:none;border:none;cursor:pointer;width:100%;display:flex;align-items:center;gap:12px;text-align:left;font-family:'Hanken Grotesk',sans-serif;font-size:.98rem;font-weight:600;color:var(--ink);padding:10px 12px;border-radius:11px;transition:background .2s,color .2s;}
.svc-cat-ico{flex:0 0 auto;width:32px;height:32px;border-radius:9px;background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.2);display:inline-flex;align-items:center;justify-content:center;color:var(--ember-deep);transition:background .25s,border-color .25s,color .25s;}
.svc-cat-ico svg{width:16px;height:16px;}
.svc-cat-name{flex:1;min-width:0;}
.svc-cat-btn .arr{flex:0 0 auto;opacity:0;transform:translateX(-4px);color:var(--ember-deep);transition:opacity .2s,transform .2s;}
.svc-cat-btn:hover,.svc-cat-btn.active{background:var(--paper-2);color:var(--ember-deep);}
.svc-cat-btn.active .svc-cat-ico{background:var(--ember);border-color:var(--ember);color:#fff;}
.svc-cat-btn:hover .arr,.svc-cat-btn.active .arr{opacity:1;transform:translateX(0);}

.svc-mega-main{min-width:0;}
.svc-panels{position:relative;}
.svc-panel{display:none;}
.svc-panel.active{display:block;}
.svc-panel-h{font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid var(--line);}
.svc-list,.svc-sub{list-style:none;margin:0;padding:0;}
.svc-panel .svc-list{column-count:2;column-gap:38px;column-rule:1px solid var(--line);}
.svc-item{-webkit-column-break-inside:avoid;break-inside:avoid;margin-bottom:2px;}
.svc-link{position:relative;display:flex;align-items:center;gap:12px;padding:10px 30px 10px 13px;border-radius:10px;color:var(--ink) !important;font-size:.95rem;font-weight:600;line-height:1.3;transition:background .2s,color .2s;}
.svc-link::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--ember);opacity:.45;transition:opacity .2s,transform .2s;}
.svc-link::after{content:"\2192" !important;position:absolute;right:13px;top:50%;color:var(--ember-deep);opacity:0;transform:translateY(-50%) translateX(-5px);transition:opacity .2s,transform .2s;}
.svc-link:hover{background:var(--paper-2);color:var(--ember-deep) !important;}
.svc-link:hover::before{opacity:1;transform:scale(1.3);}
.svc-link:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}
/* non-clickable group heading (parent with no landing page) */
.svc-link-label{cursor:default;}
.svc-link-label::after{content:none !important;}
.svc-link-label:hover{background:transparent;color:var(--ink) !important;}
.svc-link-label:hover::before{opacity:.45;transform:none;}
.svc-sub{margin:1px 0 9px 17px;padding-left:14px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:1px;}
.svc-sublink{display:flex;align-items:baseline;gap:8px;padding:6px 11px;border-radius:7px;color:var(--muted) !important;font-size:.87rem;font-weight:500;transition:background .2s,color .2s,padding-left .2s;}
.svc-sublink::after{content:none !important;}
.svc-sublink::before{content:"\2013";color:var(--muted-d);flex:0 0 auto;}
.svc-sublink:hover{background:var(--paper-2);color:var(--ember-deep) !important;padding-left:15px;}
.svc-sublink:hover::before{color:var(--ember-deep);}

/* compact dropdown (e.g. About Us) */
.navitem.has-dropdown{position:relative;}
.dropdown{position:absolute;top:100%;left:-10px;min-width:228px;background:var(--cream);border:1px solid var(--line);border-radius:14px;box-shadow:0 26px 52px -26px rgba(21,17,12,.55);padding:8px;margin-top:10px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .24s cubic-bezier(.2,.7,.2,1),transform .24s cubic-bezier(.2,.7,.2,1),visibility .24s;z-index:95;}
.navitem.has-dropdown:hover .dropdown,.navitem.has-dropdown.open .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px;}
.dropdown a{display:block;padding:11px 15px;border-radius:9px;color:var(--ink) !important;font-size:.92rem;font-weight:500;transition:background .2s,color .2s,padding-left .2s;}
.dropdown a::after{content:none !important;}
.dropdown a:hover{background:var(--paper-2);color:var(--ember-deep) !important;padding-left:19px;}

/* ===== BLOG MEGA (left category list + post carousel) ===== */
.blog-mega-main{min-width:0;}

/* category selector — vertical list in the left promo column */
.blog-cats{display:flex;flex-direction:column;gap:2px;margin:22px 0 22px;}
.blog-cat{appearance:none;background:none;border:none;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font-family:'Hanken Grotesk',sans-serif;font-size:1rem;font-weight:600;color:var(--ink);padding:10px 12px;border-radius:10px;transition:background .22s,color .22s,padding-left .22s;}
.blog-cat .arr{opacity:0;transform:translateX(-4px);color:var(--ember-deep);transition:opacity .22s,transform .22s;}
.blog-cat:hover,.blog-cat.active{background:var(--paper-2);color:var(--ember-deep);}
.blog-cat.active{padding-left:16px;}
.blog-cat:hover .arr,.blog-cat.active .arr{opacity:1;transform:translateX(0);}

.blog-panels{position:relative;}
.blog-panel{display:none;}
.blog-panel.active{display:block;}
.bcar-stage{position:relative;}
.bcar-viewport{overflow:hidden;}
.bcar-track{display:flex;gap:18px;transition:transform .42s cubic-bezier(.2,.7,.2,1);will-change:transform;}
.bcar-card{flex:0 0 calc((100% - 36px) / 3);min-width:0;display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,border-color .25s;}
.bcar-card::after{content:none !important;}
.bcar-card:hover{transform:translateY(-3px);border-color:var(--ember);box-shadow:0 20px 38px -22px rgba(21,17,12,.45);}
.bcar-thumb{display:block;aspect-ratio:16 / 10;background:var(--paper-2);overflow:hidden;position:relative;}
.bcar-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.bcar-card:hover .bcar-thumb img{transform:scale(1.06);}
.bcar-thumb-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:2rem;color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.bcar-body{display:flex;flex-direction:column;padding:13px 14px 15px;}
.bcar-cat{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:7px;}
.bcar-title{font-size:.96rem;font-weight:600;line-height:1.32;color:var(--ink) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.bcar-date{font-size:.76rem;color:var(--muted);margin-top:8px;}

.bcar-nav{position:absolute;top:38%;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--cream);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;cursor:pointer;box-shadow:0 10px 24px -12px rgba(21,17,12,.45);transition:background .2s,color .2s,border-color .2s,opacity .2s;z-index:3;}
.bcar-nav.prev{left:-14px;}
.bcar-nav.next{right:-14px;}
.bcar-nav:hover{background:var(--ember);border-color:var(--ember);color:#fff;}
.bcar-nav.is-disabled{opacity:0;pointer-events:none;}

/* "view all in {category}" link below the carousel */
.blog-panel-foot{display:flex;justify-content:flex-end;margin-top:18px;}
.blog-viewall{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--ember-deep) !important;border:1px solid rgba(217,101,10,.35);border-radius:100px;padding:10px 20px;transition:all .25s cubic-bezier(.2,.7,.2,1);}
.blog-viewall::after{content:none !important;}
.blog-viewall .arr{transition:transform .25s;}
.blog-viewall:hover{background:var(--ember);color:var(--ink) !important;border-color:var(--ember);transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(247,143,27,.55);}
.blog-viewall:hover .arr{transform:translateX(4px);}

/* ===== HERO ===== */
.hero{background:var(--ink);color:var(--cream);min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:160px 0 90px;}
.hero-glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;z-index:0;}
.glow-1{width:620px;height:620px;background:radial-gradient(circle,var(--ember-deep),transparent 70%);top:-160px;right:-120px;animation:float1 14s ease-in-out infinite;}
.glow-2{width:480px;height:480px;background:radial-gradient(circle,var(--rust),transparent 70%);bottom:-160px;left:-100px;animation:float2 17s ease-in-out infinite;}
.glow-3{width:340px;height:340px;background:radial-gradient(circle,var(--ember),transparent 70%);top:40%;left:42%;opacity:.3;animation:float1 20s ease-in-out infinite;}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,40px)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(50px,-30px)}}
.hero .wrap{position:relative;z-index:5;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;}
.hero h1{font-size:clamp(2.6rem,6vw,5rem);margin:24px 0;}
/* Longer, sentence-style headline needs a smaller cap so the hero stays on one screen. */
.hero h1.hero-h1{font-size:clamp(1.95rem,3.5vw,3.15rem);margin:20px 0 22px;}
.hero h1 em{font-style:italic;color:var(--ember-hi);font-weight:400;}
.hero p.lead{font-size:1.18rem;color:rgba(251,248,241,.78);max-width:540px;margin-bottom:36px;}
.hero:has(.hero-h1) p.lead{font-size:1.03rem;line-height:1.6;max-width:610px;margin-bottom:30px;}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
.hero-stats{display:flex;gap:0;margin-top:64px;border-top:1px solid var(--line-d);padding-top:28px;}
.hstat{flex:1;border-right:1px solid var(--line-d);padding-right:20px;}
.hstat:last-child{border-right:none;}
.hstat .num{font-family:'Fraunces',serif;font-size:2.4rem;font-weight:500;color:#fff;line-height:1;}
.hstat .num span{color:var(--ember);}
.hstat .lbl{font-size:.82rem;color:var(--muted-d);margin-top:6px;}
/* Four-up stat row: tighter type so the labels don't shred into three lines. */
.hero-stats-4{margin-top:44px;padding-top:24px;}
.hero-stats-4 .hstat{padding-right:14px;}
.hero-stats-4 .hstat .num{font-size:1.95rem;}
.hero-stats-4 .hstat .lbl{font-size:.76rem;line-height:1.35;}
/* --- Hero: tablet --- */
@media(max-width:980px){
  /* The visual panel is hidden below, so the 100vh floor just adds dead space. */
  .hero{min-height:0;padding:136px 0 78px;}
  .hero:has(.hero-h1) p.lead{max-width:none;}
}

/* --- Hero: mobile ---
   Fixed nav is ~84px tall, so 112px of top padding clears it with room to breathe. */
@media(max-width:620px){
  .hero{min-height:0;padding:112px 0 64px;}
  .hero .eyebrow{font-size:.6rem;letter-spacing:.18em;line-height:1.6;display:block;}
  .hero h1.hero-h1{font-size:clamp(1.8rem,7.2vw,2.35rem);line-height:1.14;margin:14px 0 16px;text-wrap:balance;}
  .hero:has(.hero-h1) p.lead{font-size:.97rem;line-height:1.68;margin-bottom:26px;max-width:none;text-wrap:pretty;}

  /* Ragged auto-width buttons look accidental stacked; full-width reads deliberate.
     14px vertical padding puts both buttons over the 44px minimum tap target. */
  .hero-cta{gap:12px;}
  .hero-cta .btn{width:100%;justify-content:center;padding:14px 22px;font-size:.95rem;}

  /* 2x2 grid instead of flex: 50% basis plus a column gap overflowed and
     collapsed all four stats to one per row, which ate the whole screen. */
  .hero-stats-4{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:34px;padding-top:0;border-top:none;}
  .hero-stats-4 .hstat{flex:none;padding:18px 0 18px 18px;border-right:none;border-top:1px solid var(--line-d);}
  .hero-stats-4 .hstat:nth-child(odd){padding-left:0;padding-right:18px;border-right:1px solid var(--line-d);}
  .hero-stats-4 .hstat .num{font-size:1.8rem;}
  .hero-stats-4 .hstat .lbl{font-size:.74rem;margin-top:5px;}
}

/* --- Hero: small phones --- */
@media(max-width:380px){
  .hero{padding:104px 0 56px;}
  .hero-stats-4 .hstat{padding-left:14px;}
  .hero-stats-4 .hstat:nth-child(odd){padding-right:14px;}
  .hero-stats-4 .hstat .num{font-size:1.62rem;}
  .hero-stats-4 .hstat .lbl{font-size:.71rem;}
}
/* hero visual panel */
.hero-panel{position:relative;}
.orbit{position:relative;aspect-ratio:1;border-radius:24px;border:1px solid var(--line-d);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.01));backdrop-filter:blur(4px);padding:30px;overflow:hidden;}
.orbit::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(247,143,27,.18),transparent 50%);}
.orbit-label{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;color:var(--muted-d);font-size:.74rem;}
.orbit-label .live{display:flex;align-items:center;gap:7px;color:var(--ember-hi);}
.orbit-label .live .pulse{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);animation:pulse 1.6s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,174,69,.6)}70%{box-shadow:0 0 0 10px rgba(255,174,69,0)}100%{box-shadow:0 0 0 0 rgba(255,174,69,0)}}
.stack{position:relative;z-index:2;margin-top:26px;display:flex;flex-direction:column;gap:10px;}
.chip{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--line-d);font-size:.9rem;transition:all .3s;}
.chip:hover{background:rgba(247,143,27,.1);border-color:rgba(247,143,27,.35);transform:translateX(4px);}
.chip .tag{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--ember-hi);}
.chip .bar{height:5px;border-radius:4px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));margin-top:0;}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}

/* ===== TRUST BAR ===== */
.trust{background:var(--ink);padding:54px 0 46px;border-bottom:1px solid var(--line-d);}
.trust-label{text-align:center;font-size:.82rem;color:var(--muted-d);margin-bottom:30px;letter-spacing:.04em;}
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 52px;}
.logos span{font-family:'Fraunces',serif;font-weight:600;font-size:1.45rem;color:var(--ink);opacity:.42;transition:opacity .3s,color .3s;letter-spacing:-.01em;}
.logos span:hover{opacity:1;color:var(--ember-deep);}

/* ===== SECTION SHELL ===== */
.sec{padding:110px 0;}
.sec-head{max-width:720px;margin-bottom:60px;}
.sec-head h2{font-size:clamp(2rem,4vw,3.2rem);margin:18px 0 18px;}
.sec-head h2 em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.sec-head p{font-size:1.1rem;color:var(--muted);}

/* ===== SERVICES ===== */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
/* Column layout so the "Explore" link pins to the bottom and the links stay on
   one baseline even though the card copy differs in length. */
.svc{display:flex;flex-direction:column;position:relative;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:30px;overflow:hidden;transition:all .35s cubic-bezier(.2,.7,.2,1);cursor:pointer;color:var(--ink);}
.svc::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transition:width .4s;}
.svc:hover{transform:translateY(-6px);box-shadow:0 24px 50px -20px rgba(21,17,12,.25);border-color:transparent;}
.svc:hover::after{width:100%;}
.svc .ico{width:50px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin-bottom:20px;transition:all .35s;}
.svc:hover .ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg) scale(1.06);}
.svc .ico svg{width:24px;height:24px;}
.svc h3{font-size:1.28rem;font-weight:600;margin-bottom:9px;letter-spacing:-.01em;}
.svc p{font-size:.95rem;color:var(--muted);margin-bottom:16px;}
.svc .more{margin-top:auto;align-self:flex-start;font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ember-deep);display:inline-flex;align-items:center;gap:7px;font-weight:500;}
.svc .more .arr{transition:transform .25s;}
.svc:hover .more .arr{transform:translateX(5px);}

/* ===== PLATFORMS ===== */
.plat{background:var(--paper-2);}
.plat-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;}
.plat-pill{display:flex;align-items:center;gap:10px;background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:12px 22px;font-weight:600;font-size:.98rem;transition:all .3s;}
.plat-pill:hover{border-color:var(--ember);background:#fff;transform:translateY(-3px);box-shadow:0 12px 24px -14px rgba(21,17,12,.3);}
.plat-pill .d{width:8px;height:8px;border-radius:50%;background:var(--ember);}

/* ===== KYMERA (dark band) ===== */
.kymera{background:var(--ink);color:var(--cream);overflow:hidden;}
.kymera-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
/* Product lockup: the real Kymera wordmark, an ownership badge, then the
   category line. The white logo variant is used because this section is dark. */
.ky-lockup{margin-bottom:22px;}
.ky-lockup-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
/* Negative left margin cancels the transparent padding baked into the logo file,
   so the wordmark optically aligns with the copy below it. */
.ky-logo{width:auto;height:34px;display:block;margin-left:-20px;}
/* Filled rather than outlined — the ownership badge should register at a glance. */
.ky-owner{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-size:.6rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));
  border-radius:100px;padding:8px 15px;
  box-shadow:0 12px 26px -12px rgba(247,143,27,.9);}
.ky-owner-dot{width:6px;height:6px;border-radius:50%;background:#fff;opacity:.9;}
.ky-tagline{margin-top:14px;font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,174,69,.8);}

/* Only the payoff word carries the accent, so the heading reads as one thought. */
.kymera h2{font-size:clamp(1.8rem,3.1vw,2.6rem);line-height:1.14;margin:0 0 20px;text-wrap:balance;}
.kymera h2 em{font-style:italic;color:var(--ember-hi);font-weight:400;}
.kymera .ky-lead{color:rgba(251,248,241,.76);font-size:1rem;line-height:1.75;margin-bottom:32px;max-width:52ch;}
.ky-stats{display:flex;gap:36px;margin-bottom:34px;}
.ky-stat .num{font-family:'Fraunces',serif;font-size:2.8rem;color:var(--ember-hi);line-height:1;}
.ky-stat .lbl{font-size:.85rem;color:var(--muted-d);margin-top:4px;}
.ky-card{background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.015));border:1px solid var(--line-d);border-radius:22px;padding:34px;position:relative;overflow:hidden;}
.ky-card::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.25),transparent 70%);top:-100px;right:-80px;filter:blur(20px);}
.ky-step{position:relative;z-index:2;display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line-d);}
.ky-step:last-child{border-bottom:none;}
.ky-step .n{font-family:'JetBrains Mono',monospace;color:var(--ember-hi);font-size:.85rem;flex-shrink:0;width:34px;}
.ky-step h4{font-size:1.02rem;font-weight:600;margin-bottom:3px;}
.ky-step p{font-size:.88rem;color:rgba(251,248,241,.6);margin:0;}

/* ===== WHY US ===== */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.why{padding:30px 24px;border-radius:16px;border:1px solid var(--line);background:var(--cream);transition:all .35s;}
.why:hover{background:var(--ink);color:var(--cream);transform:translateY(-6px);}
.why .num{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--ember-deep);}
.why:hover .num{color:var(--ember-hi);}
.why h4{font-size:1.18rem;font-weight:600;margin:14px 0 10px;}
.why p{font-size:.92rem;color:var(--muted);}
.why:hover p{color:rgba(251,248,241,.7);}

/* ===== STATS + CERTS ===== */
.proof{background:var(--paper-2);}
.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.bigstats{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.bigstat{background:var(--cream);padding:34px 28px;transition:background .3s;}
.bigstat:hover{background:#fff;}
.bigstat .num{font-family:'Fraunces',serif;font-size:3rem;font-weight:500;line-height:1;}
.bigstat .num span{color:var(--ember-deep);}
.bigstat .lbl{color:var(--muted);margin-top:8px;font-size:.95rem;}
.certs{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.cert{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.05em;background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:9px 14px;color:var(--ink);}
.cert b{color:var(--ember-deep);}

/* ===== TESTIMONIALS ===== */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.quote{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:32px;position:relative;}
.quote .mark{font-family:'Fraunces',serif;font-size:4rem;color:var(--ember);line-height:.6;opacity:.3;}
.quote p{font-size:.98rem;color:var(--ink);margin:10px 0 22px;}
.quote .who{font-size:.88rem;color:var(--muted);}
.quote .who b{color:var(--ink);display:block;font-size:.95rem;}

/* ===== GLOBAL ===== */
.global-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;}
.geo{flex:1;min-width:200px;border:1px solid var(--line);border-radius:16px;padding:26px;background:var(--cream);transition:all .3s;}
.geo:hover{border-color:var(--ember);transform:translateY(-4px);}
.geo .flag{font-size:.78rem;font-family:'JetBrains Mono',monospace;color:var(--ember-deep);letter-spacing:.1em;}
.geo h4{font-size:1.1rem;font-weight:600;margin:8px 0 6px;}
.geo p{font-size:.86rem;color:var(--muted);}
.geo .geo-addr{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:.76rem;line-height:1.55;color:var(--muted-2,var(--muted));}

/* ===== CTA ===== */
.cta{background:var(--ink);color:var(--cream);overflow:hidden;position:relative;text-align:center;}
.cta .glow-1{top:auto;bottom:-200px;right:30%;opacity:.4;}
.cta-inner{position:relative;z-index:2;max-width:760px;margin:0 auto;}
.cta h2{font-size:clamp(2.2rem,5vw,3.6rem);margin:18px 0 22px;}
.cta h2 em{font-style:italic;color:var(--ember-hi);font-weight:400;}
.cta p{color:rgba(251,248,241,.78);font-size:1.12rem;margin-bottom:38px;}
.cta-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Long two-sentence CTA headings, stacked and centred: rule, statement,
   emphasis, supporting copy, button. Each sentence gets its own balanced block
   so the centred rag stays even instead of collapsing into one ragged shape,
   and the paragraph holds a narrower measure than the heading above it. */
.cta-long{text-align:center;}
.cta-long .cta-inner{max-width:880px;margin:0 auto;}
.cta-long .cta-inner h2{font-size:clamp(1.78rem,3.1vw,2.7rem);line-height:1.16;margin:0 0 28px;}
.cta-long .cta-inner h2::before{content:"";display:block;width:54px;height:3px;border-radius:2px;margin:0 auto 26px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));}
.cta-long .cta-inner h2 > span,
.cta-long .cta-inner h2 > em{display:block;text-wrap:balance;}
.cta-long .cta-inner h2 > em{margin-top:.2em;}
/* Single-sentence headings keep the emphasis inline — splitting one sentence
   into two blocks leaves a short first line over a long second one. */
.cta-long.cta-oneline .cta-inner h2{text-wrap:balance;}
.cta-long.cta-oneline .cta-inner h2 > em{display:inline;margin-top:0;}
.cta-long .cta-aside{max-width:720px;margin:0 auto;}
.cta-long .cta-inner p{font-size:1.06rem;line-height:1.8;margin:0 0 34px;text-wrap:pretty;}
.cta-long .cta-cta{justify-content:center;}

@media(max-width:760px){
  .cta-long .cta-inner h2{margin-bottom:22px;}
  .cta-long .cta-inner h2::before{margin-bottom:20px;}
  .cta-long .cta-inner p{margin-bottom:28px;}
}

/* ===== FOOTER ===== */
footer{background:#0F0C08;color:rgba(251,248,241,.7);padding:70px 0 30px;border-top:1px solid var(--line-d);}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:50px;}
footer .logo{margin-bottom:16px;}
.foot-grid p{font-size:.92rem;max-width:300px;}
.foot-col h5{color:#fff;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-family:'JetBrains Mono',monospace;margin-bottom:18px;}
.foot-col a{display:block;font-size:.92rem;margin-bottom:11px;transition:color .2s;}
.foot-col a:hover{color:var(--ember-hi);}
.foot-bottom{border-top:1px solid var(--line-d);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:.84rem;color:var(--muted-d);}
.foot-social{display:flex;gap:14px;}
.foot-social a{color:var(--muted-d);}
.foot-social a:hover{color:var(--ember-hi);}

/* ===== GENERIC PAGE / POST (for future pages) ===== */
.page-hero{background:var(--ink);color:var(--cream);padding:170px 0 90px;position:relative;overflow:hidden;}
.page-hero .wrap{position:relative;z-index:2;}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);margin-top:16px;}
.page-hero h1 em{font-style:italic;color:var(--ember-hi);font-weight:400;}
.page-body{padding:80px 0;}
.page-body .wrap{max-width:820px;}
.page-body h2{font-family:'Fraunces',serif;font-size:1.9rem;margin:32px 0 14px;letter-spacing:-.01em;}
.page-body h3{font-size:1.3rem;margin:26px 0 10px;}
.page-body p{margin-bottom:18px;color:var(--ink);}
.page-body ul,.page-body ol{margin:0 0 18px 22px;}
.page-body li{margin-bottom:8px;}
.page-body a{color:var(--ember-deep);text-decoration:underline;}
.page-body img{max-width:100%;height:auto;border-radius:14px;}
.page-body blockquote{border-left:3px solid var(--ember);padding-left:20px;margin:22px 0;color:var(--muted);font-style:italic;}

/* ===== PDF FLIPBOOK MODAL ===== */
.fb-overlay{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(12,9,6,.88);backdrop-filter:blur(10px);}
.fb-overlay.open{display:flex;}
.fb-modal{display:flex;flex-direction:column;width:100%;max-width:1120px;max-height:94vh;}
.fb-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.fb-title{font-family:'Fraunces',serif;font-size:1.25rem;font-weight:500;color:#fff;}
.fb-tools{display:flex;align-items:center;gap:8px;}
.fb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;min-width:42px;padding:0 14px;border-radius:100px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;font-family:'Hanken Grotesk',sans-serif;font-size:1.05rem;line-height:1;cursor:pointer;text-decoration:none;transition:background .2s,border-color .2s,transform .2s;}
.fb-btn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45);}
.fb-icon{padding:0;}
.fb-download{background:var(--ember);border-color:var(--ember);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;}
.fb-download:hover{background:var(--ember-hi);border-color:var(--ember-hi);color:var(--ink);transform:translateY(-1px);}
.fb-download svg{width:16px;height:16px;}
.fb-zoom{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:rgba(255,255,255,.85);min-width:52px;text-align:center;}
.fb-body{flex:1;min-height:0;position:relative;display:flex;}
.fb-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.78);font-family:'JetBrains Mono',monospace;font-size:.85rem;letter-spacing:.04em;z-index:2;}
.fb-fallback{color:var(--ember-hi);text-decoration:underline;}
.fb-viewer{flex:1;overflow:auto;cursor:grab;border-radius:8px;-webkit-overflow-scrolling:touch;}
.fb-viewer.grabbing{cursor:grabbing;}
.fb-viewer::-webkit-scrollbar{width:10px;height:10px;}
.fb-viewer::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:10px;}
.fb-pages{min-height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:safe center;justify-content:safe center;gap:16px;padding:20px;}
.fb-page-canvas{display:block;background:#fff;box-shadow:0 30px 60px -24px rgba(0,0,0,.6);}
@media(max-width:620px){
  .fb-overlay{padding:12px;}
  .fb-title{display:none;}
  .fb-bar{justify-content:flex-end;}
  .fb-download span{display:none;}
  .fb-download{padding:0;min-width:42px;}
}

/* ===== LEGAL / POLICY PAGES ===== */
.legal{max-width:880px;margin:0 auto;}
.legal-intro{font-size:1.12rem;color:var(--ink);line-height:1.75;margin-bottom:8px;}
.legal h2{font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.6vw,1.95rem);font-weight:600;letter-spacing:-.01em;color:var(--ember-deep);margin:48px 0 16px;}
.legal p{color:var(--muted);line-height:1.8;margin-bottom:18px;font-size:1rem;}
.legal p.em{font-style:italic;color:var(--muted);background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:0 12px 12px 0;padding:20px 24px;}
.legal a{color:var(--ember-deep);text-decoration:underline;text-underline-offset:2px;}
.legal a:hover{color:var(--ember);}

/* ===== SERVICE PAGE (placeholder) ===== */
.service-body{max-width:760px;margin:0 auto;text-align:center;}
.service-badge{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.28);padding:7px 16px;border-radius:100px;}
.service-content{margin-top:22px;font-size:1.12rem;color:var(--muted);line-height:1.75;}
.service-content p{margin-bottom:16px;}
.service-content a{color:var(--ember-deep);text-decoration:underline;}
.service-cta{margin-top:40px;padding-top:34px;border-top:1px solid var(--line);}
.service-cta p{font-size:1.05rem;color:var(--ink);margin-bottom:20px;}
.service-cta strong{color:var(--ember-deep);font-weight:600;}

/* Shared inline text link. Defined here historically; still used by the
   Application Modernization, Cloud Services, Product Management, Project
   Management and Workday pages, so it outlives this page's own sections. */
.ts-textlink{display:inline-flex;align-items:center;gap:9px;margin-top:8px;font-family:'JetBrains Mono',monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ember-deep);font-weight:500;}
.ts-textlink .arr{transition:transform .25s;}
.ts-textlink:hover .arr{transform:translateX(4px);}

/* ===== TALENT SOLUTIONS (recruiting / hiring speed) ===== */
/* hero — copy unchanged; the empty right half now carries the bench, working. */
.ts-hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:56px;align-items:center;}
.ts-hero-txt h1{margin-top:14px;}
.ts-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.ts-net{position:relative;z-index:2;background:linear-gradient(160deg,#1c160f,#100c08);border:1px solid rgba(255,255,255,.09);border-radius:20px;overflow:hidden;box-shadow:0 50px 90px -44px rgba(0,0,0,.78);}
.ts-net-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(255,255,255,.04);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.ts-net-led{width:7px;height:7px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.ts-net-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;color:var(--ember-hi);}
.ts-net-body{padding:20px 20px 16px;display:flex;flex-direction:column;gap:13px;}
/* Candidates surface one at a time, already vetted. */
.ts-cand{display:flex;align-items:center;gap:12px;animation:tsCand 9s ease-in-out infinite;animation-delay:calc(var(--c) * .55s);}
@keyframes tsCand{0%,4%{opacity:0;transform:translateX(-8px);}12%,86%{opacity:1;transform:none;}95%,100%{opacity:0;transform:translateX(-8px);}}
.ts-cand-av{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.13);}
.ts-cand-bar{flex:0 0 auto;width:var(--w);height:8px;border-radius:100px;background:rgba(255,255,255,.16);}
.ts-cand b{margin-left:auto;font-weight:400;font-size:.48rem;letter-spacing:.14em;text-transform:uppercase;color:#4ed492;
  padding:4px 9px;border-radius:5px;background:rgba(78,212,146,.13);border:1px solid rgba(78,212,146,.4);}
.ts-net-foot{display:flex;align-items:center;gap:13px;padding:14px 20px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.24);}
.ts-net-lbl{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;font-size:.5rem;letter-spacing:.15em;color:rgba(251,248,241,.55);}
.ts-net-dot{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 9px rgba(255,174,69,.95);animation:pulse 1.6s infinite;}
.ts-net-rot{position:relative;flex:1;height:18px;overflow:hidden;}
.ts-net-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.76rem;color:#fff;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:tsRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes tsRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

/* ----- TALENT SOLUTIONS sections (.tl- : the cost of time) -----
   Motif set unique to this page: an open-requisition clock, sweeping clock
   faces on each structural problem, engagement-shape timelines for the four
   models, a roster bench, a term/definition trust list and a two-column
   process. */

/* --- S2: the lede beside the clock the page is really about --- */
.tl-lede-top{max-width:1000px;margin-bottom:56px;}
.tl-lede-top .eyebrow{margin-bottom:14px;}
.tl-lede-top h2{font-size:clamp(1.8rem,3.3vw,2.7rem);}
.tl-lede-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;}
.tl-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.tl-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.tl-lede-btn{margin-top:10px;}

.tl-clock{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.tl-clock-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.tl-clock-led{width:7px;height:7px;border-radius:50%;background:var(--rust);box-shadow:0 0 10px rgba(178,58,14,.9);animation:pulse 1.6s infinite;}
.tl-clock-body{padding:30px 24px 26px;display:flex;flex-direction:column;align-items:flex-start;}
.tl-clock-n{font-size:4.4rem;line-height:1;color:#fff;}
.tl-clock-unit{font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rust);margin:8px 0 22px;}
/* Strain climbs the longer the seat stays empty. */
.tl-clock-track{display:block;width:100%;height:8px;border-radius:100px;background:rgba(255,255,255,.09);overflow:hidden;}
.tl-clock-track i{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,var(--ember),var(--rust));
  transform-origin:left;animation:tlStrain 6s cubic-bezier(.4,0,.5,1) infinite;}
@keyframes tlStrain{0%{transform:scaleX(.12);}64%,88%{transform:scaleX(1);}98%,100%{transform:scaleX(.12);}}
.tl-clock-strain{font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-d);margin-top:10px;}
.tl-clock-foot{padding:16px 24px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.18);}
.tl-clock-stat{display:flex;flex-direction:column;gap:3px;}
.tl-clock-stat b{font-size:1.2rem;font-weight:500;letter-spacing:.02em;color:var(--ember-hi);}
.tl-clock-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}

/* --- S3: structural problems, each one measured in time --- */
.tl-hardsec .sec-head{max-width:1000px;}
.tl-hards{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.tl-hard{grid-column:span 2;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 24px 28px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.tl-hard:nth-child(4),.tl-hard:nth-child(5){grid-column:span 3;}
.tl-hard:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
/* A clock face with a hand that keeps going round. */
.tl-clockface{position:relative;display:block;width:30px;height:30px;border-radius:50%;border:2px solid rgba(21,17,12,.2);margin-bottom:16px;}
.tl-clockface .hand{position:absolute;left:50%;top:50%;width:2px;height:10px;margin-left:-1px;transform-origin:50% 100%;
  transform:translateY(-100%);background:var(--rust);border-radius:1px;animation:tlHand 4s linear infinite;animation-delay:calc(var(--i) * -.7s);}
@keyframes tlHand{to{transform:translateY(-100%) rotate(360deg);}}
.tl-clockface .pip{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--rust);}
.tl-hard:hover .tl-clockface{border-color:var(--ember);}
.tl-hard-tag{display:block;font-size:.56rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:11px;}
.tl-hard p{font-size:.96rem;color:var(--muted);line-height:1.68;}
.tl-cfo{display:flex;align-items:flex-start;gap:26px;margin-top:44px;max-width:1000px;padding:28px 30px 30px;
  background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:0 16px 16px 0;}
.tl-cfo-n{flex:0 0 auto;font-size:2.8rem;line-height:1;color:var(--ember-deep);}
.tl-cfo p{font-size:1.02rem;color:var(--muted);line-height:1.76;}

/* --- S4: each model drawn as the shape of its commitment (dark) --- */
.tl-modelsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.tl-modelsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.tl-modelsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.tl-modelsec .wrap{position:relative;z-index:2;}
.tl-modelsec .sec-head{max-width:1000px;}
.tl-modelsec .sec-head h2 em{color:var(--ember-hi);}
.tl-modelsec .sec-head p{color:rgba(251,248,241,.74);}
.tl-models{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.tl-model{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:26px 26px 28px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.tl-model:hover{background:rgba(255,255,255,.075);border-color:rgba(247,143,27,.42);transform:translateY(-5px);}
/* The timeline: defined start and end, a decision point, an open run, or
   parallel tracks — one glyph per engagement model. */
.tl-model-line{position:relative;display:block;height:22px;margin-bottom:20px;}
.tl-model-line .seg{position:absolute;top:9px;height:4px;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));}
.tl-model-line .mark{position:absolute;border-radius:50%;}
.tl-shape-contract .seg.a{left:0;width:52%;}
.tl-shape-contract .seg.b{display:none;}
.tl-shape-contract .mark{left:52%;top:5px;width:12px;height:12px;border:2px solid var(--ember-hi);background:var(--ink);}
.tl-shape-c2h .seg.a{left:0;width:38%;}
.tl-shape-c2h .seg.b{left:44%;width:44%;opacity:.45;}
.tl-shape-c2h .mark{left:38%;top:3px;width:16px;height:16px;border:2px solid #4ed492;background:var(--ink);
  animation:tlDecide 4s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes tlDecide{0%,60%,100%{box-shadow:0 0 0 0 rgba(78,212,146,0);}75%{box-shadow:0 0 0 6px rgba(78,212,146,.16);}}
.tl-shape-direct .seg.a{left:0;right:0;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi) 62%,rgba(255,174,69,.15));}
.tl-shape-direct .seg.b{display:none;}
.tl-shape-direct .mark{display:none;}
.tl-shape-team .seg.a{left:0;width:68%;top:3px;}
.tl-shape-team .seg.b{left:0;width:56%;top:15px;opacity:.6;}
.tl-shape-team .mark{left:0;top:9px;width:0;height:4px;right:auto;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  width:78%;opacity:.8;}
.tl-model h3{font-family:'Fraunces',serif;font-size:1.28rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:10px;}
.tl-model p{font-size:.96rem;color:rgba(251,248,241,.76);line-height:1.7;}

/* --- S5: the bench --- */
.tl-rolesec .sec-head{max-width:1000px;}
.tl-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.tl-role{display:flex;gap:16px;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:18px 22px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
/* Sits in the normal two-column flow beside Business Analysis rather than
   spanning the row, which left an empty cell next to it. */
.tl-role.has-sub{align-items:flex-start;}
.tl-role:hover{transform:translateX(5px);border-color:var(--ember);box-shadow:0 20px 42px -28px rgba(21,17,12,.32);}
.tl-role-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;
  background:var(--paper-2);color:var(--ember-deep);transition:background .3s,color .3s;}
.tl-role:hover .tl-role-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.tl-role-ico svg{width:19px;height:19px;}
.tl-role h3{font-size:1rem;font-weight:600;color:var(--ink);line-height:1.4;}
.tl-role-subs{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;}
.tl-role-subs i{font-style:normal;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:100px;
  background:var(--paper-2);border:1px solid var(--line);color:var(--muted);}
.tl-role-note{margin-top:34px;max-width:940px;font-size:1.04rem;color:var(--muted);line-height:1.76;padding-left:24px;border-left:3px solid var(--ember);}

/* --- S6: term and explanation --- */
.tl-trustsec .sec-head{max-width:1000px;}
.tl-trusts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}
.tl-trust{padding:26px 0;border-bottom:1px solid var(--line);}
.tl-trust:nth-child(-n+2){border-top:1px solid var(--line);}
.tl-trust dt{display:flex;align-items:baseline;gap:14px;font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;}
.tl-trust-n{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.12em;color:var(--ember-deep);}
.tl-trust dd{margin:0 0 0 34px;font-size:.98rem;color:var(--muted);line-height:1.72;}

/* --- S7: the process, headed rather than centred (dark) --- */
/* `clip` rather than `hidden`: hidden would make this section a scroll
   container, which silently stops the sticky heading below from sticking.
   The `hidden` line stays first as the fallback for older engines. */
.tl-worksec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.tl-worksec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.tl-worksec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.tl-worksec .wrap{position:relative;z-index:2;}
.tl-work-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;align-items:start;}
/* Holds while the six steps scroll past. `align-items:start` on the grid is what
   makes this possible, and body uses overflow-x:clip so sticky still works. */
.tl-work-head{position:sticky;top:118px;}
.tl-work-head .eyebrow{margin-bottom:14px;}
.tl-work-head h2{font-size:clamp(1.7rem,2.9vw,2.4rem);margin-bottom:18px;}
.tl-work-head h2 em{color:var(--ember-hi);}
.tl-work-head p{font-size:1rem;color:rgba(251,248,241,.72);line-height:1.76;}
.tl-steps{list-style:none;margin:0;padding:0;}
.tl-step{display:grid;grid-template-columns:70px 1fr;gap:22px;align-items:start;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.08);}
.tl-step:first-child{padding-top:0;}
.tl-step:last-child{border-bottom:none;padding-bottom:0;}
.tl-step-n{font-size:2rem;line-height:1;color:transparent;-webkit-text-stroke:1.4px rgba(255,174,69,.55);
  transition:color .7s,-webkit-text-stroke-color .7s;transition-delay:calc(var(--i) * .11s + .2s);}
.tl-steps.in .tl-step-n{color:var(--ember-hi);-webkit-text-stroke-color:transparent;}
.tl-step-body h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:8px;}
.tl-step-body p{font-size:.95rem;color:rgba(251,248,241,.72);line-height:1.7;}

/* --- S8: who this is for --- */
.tl-whosec .sec-head{max-width:960px;}
.tl-fits{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.tl-fit{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 24px 28px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.tl-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.tl-fit-rule{position:absolute;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--ember),var(--ember-hi));
  transition:transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .12s + .15s);}
.tl-fit.in .tl-fit-rule{transform:scaleX(1);}
.tl-fit-kick{display:block;font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);
  margin-bottom:13px;padding-bottom:13px;border-bottom:1px solid var(--line);}
.tl-fit p{font-size:.98rem;color:var(--ink);line-height:1.68;}
.tl-fit-note{margin-top:38px;max-width:960px;font-size:1.06rem;color:var(--muted);line-height:1.78;padding-left:24px;border-left:3px solid var(--ember);}
.tl-fit-note strong{color:var(--ink);font-weight:600;}

/* --- S9: the bill itself — what gets invoiced beside what never does --- */
.tl-costsec .sec-head{max-width:940px;}
.tl-ledger{background:var(--cream);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 38px 76px -46px rgba(21,17,12,.3);}
.tl-ledger-bar{display:flex;align-items:center;gap:11px;padding:15px 26px;background:var(--paper-2);border-bottom:1px solid var(--line);
  font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);}
.tl-ledger-led{width:7px;height:7px;border-radius:50%;background:var(--rust);animation:pulse 1.8s infinite;}
.tl-ledger-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;color:var(--rust);}
.tl-ledger-cols{display:grid;grid-template-columns:1fr 1fr;}
.tl-col{padding:26px 30px 30px;}
/* A torn perforation between the two halves of the bill. */
.tl-col + .tl-col{border-left:1px dashed rgba(21,17,12,.2);}
.tl-col-h{display:block;font-size:.56rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-deep);
  margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.tl-col.is-hidden .tl-col-h{color:var(--rust);}
.tl-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.tl-col li{display:flex;gap:13px;font-size:1rem;color:var(--ink);line-height:1.6;
  animation:tlLine 8s ease-in-out infinite;animation-delay:calc(var(--l) * .3s);}
@keyframes tlLine{0%,4%{opacity:.35;}12%,88%{opacity:1;}96%,100%{opacity:.35;}}
.tl-col li::before{content:"";flex:0 0 auto;width:9px;height:9px;border-radius:2px;margin-top:7px;background:var(--muted-d);}
/* Unbilled items get a hollow marker — nothing was ever counted against them. */
.tl-col.is-hidden li{color:var(--muted);}
.tl-col.is-hidden li::before{background:transparent;border:1px dashed var(--rust);}
.tl-ledger-note{padding:22px 30px 24px;border-top:1px dashed rgba(21,17,12,.2);background:rgba(255,255,255,.55);
  font-size:1rem;color:var(--muted);line-height:1.76;}
.tl-ledger-total{display:flex;align-items:flex-start;gap:24px;padding:26px 30px 28px;background:linear-gradient(160deg,var(--ink),var(--ink-2));}
.tl-total-lbl{flex:0 0 auto;font-size:.54rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-hi);padding-top:7px;}
.tl-ledger-total p{font-family:'Fraunces',serif;font-size:clamp(1.1rem,1.8vw,1.36rem);font-weight:500;letter-spacing:-.01em;line-height:1.5;color:rgba(251,248,241,.72);}
.tl-ledger-total strong{color:#fff;font-weight:500;}

/* --- S10/S11: CTA + FAQ --- */
.ts-cta canvas.ai-net{opacity:.5;}
.tl-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.tl-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  /* Show the finished state rather than animating into it. */
  .jr-node::after{transform:scaleX(1);animation:none;}
  .jr-node{opacity:1;transform:none;animation:none;}
  /* Colour cue stays; the scale goes. */
  .jr-dot,.jr-kicker,.jr-num,.jr-text{transition:none;}
  .jr-node:hover .jr-dot{transform:none;}
  /* Halo and arrow still mark the button out; only the glint goes. */
  .nav-contact-btn::before{animation:none;opacity:0;}
  .nav-contact-arrow{transition:none;}
  .ts-cand,.ts-net-rot i,.tl-clock-track i,.tl-clockface .hand,.tl-shape-c2h .mark{animation:none;}
  .ts-cand{opacity:1;transform:none;}
  .ts-net-rot i{opacity:0;}
  .ts-net-rot i:first-child{opacity:1;}
  .tl-clock-track i{transform:scaleX(1);}
  .tl-step-n,.tl-fit-rule{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .tl-hards{grid-template-columns:repeat(2,1fr);}
  .tl-hard,.tl-hard:nth-child(4),.tl-hard:nth-child(5){grid-column:span 1;}
  .tl-hard:nth-child(5){grid-column:span 2;}
  .tl-models,.tl-roles{grid-template-columns:1fr;}
  .tl-trusts{grid-template-columns:1fr;gap:0;}
  .tl-trust:nth-child(-n+2){border-top:none;}
  .tl-trust:first-child{border-top:1px solid var(--line);}
  .tl-fits{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:980px){
  .ts-hero-grid{grid-template-columns:1fr;gap:42px;}
  .ts-net{order:-1;max-width:520px;}
  .tl-lede-grid{grid-template-columns:1fr;gap:44px;}
  .tl-work-grid{grid-template-columns:1fr;gap:36px;}
  .tl-work-head{position:static;top:auto;}
}
@media(max-width:760px){
  .tl-hards,.tl-fits{grid-template-columns:1fr;}
  .tl-hard,.tl-hard:nth-child(4),.tl-hard:nth-child(5){grid-column:span 1;}
  .tl-cfo{flex-direction:column;gap:14px;padding:24px 22px 26px;}
  .tl-role-note,.tl-fit-note{padding-left:18px;font-size:1rem;}
  .tl-step{grid-template-columns:54px 1fr;gap:16px;}
  .tl-step-n{font-size:1.6rem;}
  .tl-trust dd{margin-left:0;}
  .tl-ledger-cols{grid-template-columns:1fr;}
  .tl-col + .tl-col{border-left:none;border-top:1px dashed rgba(21,17,12,.2);}
  .tl-ledger-total{flex-direction:column;gap:12px;}
  .tl-total-lbl{padding-top:0;}
}

/* ===== MANAGED SERVICES (always-on operations motif) ===== */
.ms-hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:60px;align-items:center;}
.ms-hero-txt h1{margin-top:14px;}
.ms-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* live operations console */
.ms-console{position:relative;z-index:2;border-radius:18px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(150deg,#221910 0,#15110c 60%,#100c08 100%);box-shadow:0 50px 90px -42px rgba(0,0,0,.7);}
.ms-console-bar{display:flex;align-items:center;gap:7px;padding:13px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.ms-tl{width:11px;height:11px;border-radius:50%;flex:0 0 auto;}
.ms-tl.r{background:#ff5f57;}.ms-tl.y{background:#febc2e;}.ms-tl.g{background:#28c840;}
.ms-console-name{font-size:.66rem;letter-spacing:.04em;color:rgba(251,248,241,.55);margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ms-console-state{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;color:#28c840;white-space:nowrap;}
.ms-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;}
@keyframes msLive{0%{box-shadow:0 0 0 0 rgba(40,200,64,.55);}70%{box-shadow:0 0 0 7px rgba(40,200,64,0);}100%{box-shadow:0 0 0 0 rgba(40,200,64,0);}}
.ms-console-body{padding:18px 18px 20px;}
.ms-console-head{display:flex;justify-content:space-between;align-items:center;font-size:.62rem;letter-spacing:.16em;color:var(--ember-hi);margin-bottom:14px;}
.ms-console-clock{color:rgba(251,248,241,.5);}
.ms-systems{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:2px;}
.ms-systems li{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.05);}
.ms-sysdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.ms-sysdot.ok{background:#28c840;box-shadow:0 0 10px rgba(40,200,64,.7);animation:msBlink 2.4s infinite;animation-delay:calc(var(--d,0)*.4s);}
.ms-sysdot.scan{background:var(--ember-hi);box-shadow:0 0 10px rgba(247,143,27,.8);animation:msBlink 1.3s infinite;}
@keyframes msBlink{0%,100%{opacity:1;}50%{opacity:.35;}}
.ms-sysname{font-size:.9rem;color:rgba(251,248,241,.9);font-weight:500;}
.ms-sysstat{margin-left:auto;font-size:.58rem;letter-spacing:.12em;color:rgba(251,248,241,.5);}
.ms-graph{border-top:1px solid var(--line-d);padding-top:16px;}
.ms-graph-lbl{display:block;font-size:.58rem;letter-spacing:.16em;color:rgba(251,248,241,.42);margin-bottom:12px;}
.ms-bars{display:flex;align-items:flex-end;gap:4px;height:54px;}
.ms-bar{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));opacity:.85;height:30%;animation:msBar 2.6s ease-in-out infinite;animation-delay:calc(var(--i)*-.14s);}
@keyframes msBar{0%,100%{height:24%;}50%{height:92%;}}
@media(prefers-reduced-motion:reduce){.ms-live,.ms-sysdot,.ms-bar{animation:none;}.ms-bar{height:60%;}}

/* Centre every section heading below the hero. */
.ms-costsec .sec-head,.ms-deliversec .sec-head,.ms-svcsec .sec-head,
.ms-whysec .sec-head,.ms-approachsec .sec-head,.ms-whosec .sec-head,
.ms-faqsec .sec-head{max-width:900px;margin-left:auto;margin-right:auto;text-align:center;}

/* ---- S2: alert stream. Console chrome + log rows, unique to this page. ---- */
.ms-alerts{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 34px 70px -46px rgba(21,17,12,.3);}
.ms-alerts-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 24px;background:linear-gradient(150deg,#221910,#15110c);color:rgba(251,248,241,.6);}
.ms-alerts-bar .mono{font-size:.7rem;letter-spacing:.02em;}
.ms-alerts-count{display:inline-flex;align-items:center;gap:8px;font-size:.62rem;letter-spacing:.14em;color:var(--ember-hi);white-space:nowrap;}
.ms-alerts-list{list-style:none;margin:0;padding:0;}
.ms-alert{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:18px;padding:20px 24px;transition:background .3s;}
.ms-alert+.ms-alert{border-top:1px solid var(--line);}
.ms-alert:hover{background:var(--paper-2);}
.ms-alert-sig{flex:0 0 auto;position:relative;width:10px;height:10px;}
.ms-alert-sig i{position:absolute;inset:0;border-radius:50%;background:var(--rust,#b23a0e);animation:msPing 2.4s var(--d,0s) ease-out infinite;}
.ms-alert-id{font-size:.68rem;letter-spacing:.08em;color:var(--muted-d);min-width:3.4ch;}
.ms-alert p{font-size:1rem;line-height:1.68;color:var(--muted);transition:color .3s;}
.ms-alert:hover p{color:var(--ink);}
.ms-alert-state{font-size:.58rem;letter-spacing:.14em;color:rgba(178,58,14,.75);border:1px solid rgba(178,58,14,.28);border-radius:100px;padding:5px 11px;white-space:nowrap;}
@keyframes msPing{0%{box-shadow:0 0 0 0 rgba(178,58,14,.5);}70%{box-shadow:0 0 0 8px rgba(178,58,14,0);}100%{box-shadow:0 0 0 0 rgba(178,58,14,0);}}

/* business-case band: rotating arc + cost glyph beside the statement */
.ms-case{display:flex;align-items:center;gap:30px;margin-top:34px;padding:30px 36px;border-radius:22px;
  background:linear-gradient(140deg,#241a10,#15110c);color:var(--cream);border:1px solid var(--line-d);
  box-shadow:0 30px 64px -44px rgba(0,0,0,.7);}
.ms-case-viz{flex:0 0 auto;width:88px;height:88px;}
.ms-case-viz svg{width:100%;height:100%;}
.ms-case-track{fill:none;stroke:rgba(255,255,255,.1);stroke-width:6;}
.ms-case-arc{fill:none;stroke:var(--ember);stroke-width:6;stroke-linecap:round;stroke-dasharray:120 170;transform-origin:center;animation:msSpin 6s linear infinite;}
.ms-case-glyph{fill:none;stroke:var(--ember-hi);stroke-width:6;stroke-linecap:round;}
.ms-case p{font-size:1.06rem;line-height:1.7;color:rgba(251,248,241,.9);}
@keyframes msSpin{from{transform:rotate(0);}to{transform:rotate(360deg);}}

/* ---- S3: live monitoring tiles, each with its own animated readout ---- */
.ms-dash{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.ms-tile{grid-column:span 2;display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:20px 22px 24px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
/* Five tiles across six columns: last two share the bottom row evenly. */
.ms-tile-4{grid-column:span 3;}
.ms-tile-5{grid-column:span 3;}
.ms-tile:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.ms-tile-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.ms-tile-label{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);}
.ms-tile-dot{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.7);}
.ms-viz{height:64px;margin-bottom:18px;border-radius:10px;background:linear-gradient(160deg,#1d1610,#12100c);overflow:hidden;}
.ms-viz-svg{display:block;width:100%;height:100%;}
.ms-tile p{font-size:.96rem;line-height:1.62;color:var(--muted);}

/* tile 1 — telemetry waveform + read-head */
.ms-viz-grid{stroke:rgba(255,255,255,.06);stroke-width:1;}
.ms-viz-wave{stroke:var(--ember-hi);stroke-width:1.8;stroke-linejoin:round;opacity:.9;}
.ms-viz-head{fill:rgba(255,199,119,.85);animation:msHead 3.4s linear infinite;}
@keyframes msHead{from{transform:translateX(0);}to{transform:translateX(200px);}}
/* tile 2 — trend into threshold band, flag fires early */
.ms-viz-band{fill:rgba(178,58,14,.16);}
.ms-viz-trend{stroke:var(--ember);stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:msDraw 2.6s .2s ease-out infinite;}
.ms-viz-flag{fill:#FFC777;transform-box:fill-box;transform-origin:center;opacity:0;animation:msFlag 2.6s .2s ease-out infinite;}
@keyframes msDraw{0%{stroke-dashoffset:1;}55%,100%{stroke-dashoffset:0;}}
@keyframes msFlag{0%,45%{opacity:0;transform:scaleY(.3);}60%,100%{opacity:1;transform:scaleY(1);}}
/* tile 3 — shield (SVG, undistorted) over CSS backing layers + scan sweep */
.ms-tile-3 .ms-viz{position:relative;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(160deg,#1d1610,#12100c);
  background-size:100% 12px,100% 100%;}
.ms-tile-3 .ms-viz::after{content:"";position:absolute;top:0;bottom:0;left:0;width:36%;
  background:linear-gradient(90deg,transparent,rgba(255,199,119,.16),transparent);animation:msScan 3.2s ease-in-out infinite;}
.ms-viz-shield{fill:rgba(247,143,27,.14);stroke:var(--ember-hi);stroke-width:1.8;}
.ms-viz-check{stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:msDraw 3.2s .6s ease-out infinite;}
@keyframes msScan{0%{transform:translateX(-100%);}100%{transform:translateX(300%);}}
/* tile 4 — erratic spend settling into an even run */
.ms-viz-spiky rect{fill:rgba(178,58,14,.4);animation:msSwapOut 5s ease-in-out infinite;}
.ms-viz-even rect{fill:rgba(247,143,27,.85);animation:msSwapIn 5s ease-in-out infinite;}
@keyframes msSwapOut{0%,34%{opacity:1;}50%,100%{opacity:0;}}
@keyframes msSwapIn{0%,34%{opacity:0;}50%,100%{opacity:1;}}
/* tile 5 — two-way advisory exchange */
.ms-viz-node{fill:rgba(247,143,27,.14);stroke:var(--ember-hi);stroke-width:1.6;}
.ms-viz-link{stroke:rgba(255,255,255,.16);stroke-width:1.4;stroke-dasharray:4 5;}
.ms-viz-pulse-a{fill:#FFC777;animation:msTo 3.6s ease-in-out infinite;}
.ms-viz-pulse-b{fill:var(--ember);animation:msBack 3.6s 1.8s ease-in-out infinite;}
@keyframes msTo{0%{transform:translateX(0);opacity:0;}12%{opacity:1;}45%{transform:translateX(110px);opacity:1;}55%,100%{transform:translateX(110px);opacity:0;}}
@keyframes msBack{0%{transform:translateX(0);opacity:0;}12%{opacity:1;}45%{transform:translateX(-110px);opacity:1;}55%,100%{transform:translateX(-110px);opacity:0;}}

/* ---- S4: service catalog rows ---- */
.ms-catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.ms-cat{position:relative;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 26px 28px;overflow:hidden;transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .32s,box-shadow .32s;}
.ms-cat:last-child:nth-child(odd){grid-column:1/-1;}
.ms-cat:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 26px 50px -32px rgba(21,17,12,.3);}
.ms-cat-plate{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:14px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .32s,color .32s,transform .32s;}
.ms-cat:hover .ms-cat-plate{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.ms-cat-plate svg{width:24px;height:24px;}
.ms-cat-body h3{font-size:1.08rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;padding-right:82px;}
.ms-cat-body p{font-size:.95rem;line-height:1.62;color:var(--muted);}
.ms-cat-chip{position:absolute;top:26px;right:24px;font-size:.55rem;letter-spacing:.14em;color:var(--ember-deep);border:1px solid rgba(217,101,10,.3);border-radius:100px;padding:4px 10px;}
.ms-cat-rail{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--ember),var(--ember-deep));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.ms-cat:hover .ms-cat-rail{transform:scaleX(1);}

/* consulting → managed handoff band */
.ms-handoff{display:flex;align-items:center;gap:28px;margin-top:30px;padding:26px 32px;border-radius:20px;background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--ember);}
.ms-handoff-viz{flex:0 0 auto;width:150px;height:44px;}
.ms-handoff-viz svg{width:100%;height:100%;}
.ms-ho-box{fill:rgba(247,143,27,.08);stroke:rgba(217,101,10,.45);stroke-width:1.4;}
.ms-ho-track{stroke:rgba(217,101,10,.4);stroke-width:1.4;stroke-dasharray:4 5;}
.ms-ho-dot{fill:var(--ember);animation:msHandoff 2.8s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes msHandoff{0%{transform:translateX(0);opacity:0;}12%{opacity:1;}70%{transform:translateX(70px);opacity:1;}85%,100%{transform:translateX(70px);opacity:0;}}
.ms-handoff p{font-size:1rem;line-height:1.7;color:var(--muted);}
.ms-handoff a{color:var(--ember-deep);font-weight:600;border-bottom:1px solid rgba(217,101,10,.35);transition:border-color .25s;}
.ms-handoff a:hover{border-bottom-color:var(--ember);}

/* ---- S5: dark uptime scoreboard ---- */
.ms-whysec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.ms-whysec .glow-1{top:-170px;right:-130px;opacity:.28;}
.ms-whysec .wrap{position:relative;z-index:2;}
.ms-whysec .sec-head h2{color:#fff;}
.ms-whysec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.ms-uptime{height:70px;margin:-14px 0 30px;}
.ms-uptime svg{width:100%;height:100%;}
.ms-uptime-base{stroke:rgba(255,255,255,.08);stroke-width:1;}
.ms-uptime-line{stroke:var(--ember-hi);stroke-width:2;stroke-linejoin:round;stroke-dasharray:2400;stroke-dashoffset:2400;animation:msUptime 4s .3s ease-out both;}
@keyframes msUptime{to{stroke-dashoffset:0;}}
.ms-scoreboard{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-d);}
.ms-score{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:20px;padding:24px 8px 24px 4px;border-bottom:1px solid var(--line-d);transition:padding-left .35s,background .35s;}
.ms-score:hover{padding-left:20px;background:linear-gradient(90deg,rgba(255,174,69,.07),transparent 70%);}
.ms-score-idx{font-size:.72rem;letter-spacing:.1em;color:rgba(255,174,69,.6);}
.ms-score-chev{display:inline-flex;color:rgba(255,174,69,.45);transition:color .35s,transform .35s;}
.ms-score-chev svg{width:16px;height:16px;}
.ms-score:hover .ms-score-chev{color:var(--ember-hi);transform:translateX(3px);}
.ms-score p{font-size:1.04rem;line-height:1.7;color:rgba(251,248,241,.8);transition:color .35s;}
.ms-score:hover p{color:#fff;}

/* ---- S6: flowing delivery pipeline ---- */
.ms-pipeline{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:14px;padding-top:46px;}
.ms-pipe-track{position:absolute;left:0;right:0;top:17px;height:2px;background:var(--line);overflow:hidden;}
.ms-pipe-flow{position:absolute;inset:0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transform:scaleX(0);transform-origin:left;animation:msFlow 2.4s .2s cubic-bezier(.3,.8,.3,1) both;}
@keyframes msFlow{to{transform:scaleX(1);}}
.ms-stage{position:relative;padding-top:4px;}
/* Segment of the track belonging to this stage — wipes in bright on hover.
   Reaches into the grid gap so neighbouring segments join up seamlessly. */
.ms-stage::after{content:"";position:absolute;top:-31px;left:0;right:-14px;height:2px;
  background:linear-gradient(90deg,var(--ember-hi),var(--ember));
  transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.ms-stage:hover::after{transform:scaleX(1);}
/* Drop line tying the node to its copy. */
.ms-stage::before{content:"";position:absolute;top:-22px;left:7px;width:1px;height:17px;
  background:linear-gradient(180deg,var(--ember),transparent);
  transform:scaleY(0);transform-origin:top;transition:transform .38s cubic-bezier(.2,.7,.2,1);}
.ms-stage:hover::before{transform:scaleY(1);}

/* The entry animation runs on the outer span; the ring inside handles hover, so
   the animation's filled transform can't override the hover transform. */
.ms-stage-node{position:absolute;top:-38px;left:0;width:16px;height:16px;display:grid;place-items:center;
  animation:msNodeIn .45s var(--d,0s) cubic-bezier(.2,.9,.3,1.5) both;}
@keyframes msNodeIn{from{opacity:0;transform:scale(.4);}to{opacity:1;transform:scale(1);}}
.ms-stage-node i{position:relative;width:16px;height:16px;border-radius:50%;background:var(--paper);border:2px solid var(--ember);
  transition:transform .35s cubic-bezier(.2,.9,.3,1.5),background .3s,box-shadow .3s;}
.ms-stage-node i::after{content:"";position:absolute;inset:0;margin:auto;width:6px;height:6px;border-radius:50%;background:var(--ember);transition:background .3s;}
/* Expanding halo, only while hovered. */
.ms-stage-node i::before{content:"";position:absolute;inset:-2px;border-radius:50%;border:1px solid var(--ember);opacity:0;}
.ms-stage:hover .ms-stage-node i{transform:scale(1.5);background:var(--ember);box-shadow:0 0 0 7px rgba(247,143,27,.15);}
.ms-stage:hover .ms-stage-node i::after{background:#fff;}
.ms-stage:hover .ms-stage-node i::before{animation:msNodePing 1.5s ease-out infinite;}
@keyframes msNodePing{0%{opacity:.7;transform:scale(1);}70%,100%{opacity:0;transform:scale(2.8);}}

.ms-stage-idx{display:block;font-size:.68rem;letter-spacing:.1em;color:var(--muted-d);transition:color .3s;margin-bottom:9px;}
.ms-stage h3{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.22;margin-bottom:9px;transition:color .3s;}
.ms-stage p{font-size:.9rem;line-height:1.58;color:var(--muted);transition:color .3s;}
.ms-stage:hover .ms-stage-idx{color:var(--ember-deep);}
.ms-stage:hover h3{color:var(--ember-deep);}
.ms-stage:hover p{color:var(--ink);}

/* ---- S7: divided profile strip (no boxes) ---- */
.ms-profiles{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.ms-profile{padding:4px 28px;border-left:1px solid var(--line);}
.ms-profile:first-child{padding-left:0;border-left:none;}
.ms-profile:last-child{padding-right:0;}
.ms-profile-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--cream);border:1px solid var(--line);color:var(--ember-deep);margin-bottom:18px;transition:background .3s,color .3s,border-color .3s;}
.ms-profile:hover .ms-profile-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.ms-profile-ico svg{width:22px;height:22px;}
.ms-profile p{font-size:1rem;line-height:1.68;color:var(--muted);}

/* internal-team note */
.ms-teamnote{display:flex;gap:20px;align-items:flex-start;max-width:1000px;margin:52px auto 0;padding:26px 32px;border-radius:20px;background:var(--paper-2);border:1px solid var(--line);}
.ms-teamnote-mark{flex:0 0 auto;font-size:1.5rem;line-height:1;color:var(--ember);letter-spacing:-.08em;}
.ms-teamnote p{font-size:1rem;line-height:1.7;color:var(--muted);}
.ms-teamnote a{color:var(--ember-deep);font-weight:600;border-bottom:1px solid rgba(217,101,10,.35);transition:border-color .25s;}
.ms-teamnote a:hover{border-bottom-color:var(--ember);}

/* ---- S8: CTA ---- */
.ms-cta canvas.ai-net{opacity:.5;}
.ms-cta .cta-inner{max-width:1040px;}
.ms-cta .cta-inner h2{font-size:clamp(1.7rem,3.1vw,2.6rem);line-height:1.15;margin:0 0 22px;text-wrap:balance;}
.ms-cta .cta-inner>p{max-width:74ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.ms-cta .cta-cta{margin-top:32px;}

/* ---- S9: Q/A console ---- */
.ms-faq{display:flex;flex-direction:column;gap:12px;}
.ms-qa{background:var(--cream);border:1px solid var(--line);border-left:3px solid transparent;border-radius:14px;overflow:hidden;transition:border-color .3s,background .3s,box-shadow .3s;}
.ms-qa[open]{background:#fff;border-color:var(--line);border-left-color:var(--ember);box-shadow:0 20px 44px -30px rgba(21,17,12,.3);}
.ms-qa-q{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:22px 26px;transition:color .2s;}
.ms-qa-q::-webkit-details-marker{display:none;}
.ms-qa-q::marker{content:"";}
.ms-qa-mark{flex:0 0 auto;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--paper-2);border:1px solid var(--line);font-size:.72rem;font-weight:500;color:var(--ember-deep);}
.ms-qa[open] .ms-qa-mark{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.ms-qa-txt{flex:1;font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);}
.ms-qa[open] .ms-qa-txt{color:var(--ember-deep);}
.ms-qa-toggle{flex:0 0 auto;position:relative;width:20px;height:20px;}
.ms-qa-toggle::before,.ms-qa-toggle::after{content:"";position:absolute;background:var(--ember-deep);border-radius:2px;}
.ms-qa-toggle::before{top:9px;left:0;right:0;height:2px;}
.ms-qa-toggle::after{left:9px;top:0;bottom:0;width:2px;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
.ms-qa[open] .ms-qa-toggle::after{transform:scaleY(0);}
/* Left padding = Q marker (30px) + its gap (18px), so the answer aligns under
   the question text now that the answer carries no marker of its own. */
.ms-qa-a{padding:0 26px 26px 74px;}
.ms-qa-body p{font-size:1rem;line-height:1.75;color:var(--muted);}

@media(prefers-reduced-motion:reduce){
  .ms-alert-sig i,.ms-case-arc,.ms-viz-head,.ms-viz-trend,.ms-viz-flag,.ms-viz-check,
  .ms-tile-3 .ms-viz::after,.ms-viz-spiky rect,.ms-viz-even rect,.ms-viz-pulse-a,.ms-viz-pulse-b,
  .ms-ho-dot,.ms-uptime-line,.ms-pipe-flow,.ms-stage-node,.ms-stage-node i{animation:none;}
  .ms-tile-3 .ms-viz::after{opacity:0;}
  .ms-viz-flag{transform:scaleY(1);}
  .ms-stage:hover .ms-stage-node i::before{animation:none;}
  .ms-stage-node{opacity:1;transform:scale(1);}
  .ms-viz-trend,.ms-viz-check{stroke-dashoffset:0;}
  .ms-viz-flag,.ms-viz-even rect,.ms-stage-node i{opacity:1;}
  .ms-viz-spiky rect{opacity:0;}
  .ms-uptime-line{stroke-dashoffset:0;}
  .ms-pipe-flow{transform:scaleX(1);}
  .ms-stage-node{transform:scale(1);border-color:var(--ember);}
}

@media(max-width:1080px){
  .ms-dash{grid-template-columns:repeat(4,1fr);}
  .ms-tile,.ms-tile-4,.ms-tile-5{grid-column:span 2;}
  .ms-pipeline{grid-template-columns:repeat(3,1fr);gap:30px 14px;}
  /* No continuous track once stages wrap, so the segment and drop line go too. */
  .ms-pipe-track,.ms-stage::after,.ms-stage::before{display:none;}
  .ms-stage-node{position:relative;top:auto;margin-bottom:12px;}
  .ms-profiles{grid-template-columns:repeat(2,1fr);gap:34px 0;}
  .ms-profile:nth-child(odd){padding-left:0;border-left:none;}
}
@media(max-width:980px){
  .ms-hero-grid{grid-template-columns:1fr;gap:42px;}
  .ms-catalog{grid-template-columns:1fr;}
  .ms-cat:last-child:nth-child(odd){grid-column:auto;}
}
@media(max-width:680px){
  .ms-dash{grid-template-columns:1fr;}
  .ms-tile,.ms-tile-4,.ms-tile-5{grid-column:auto;}
  .ms-alert{grid-template-columns:auto auto 1fr;gap:12px;padding:18px 18px;}
  .ms-alert-state{display:none;}
  .ms-case,.ms-handoff{flex-direction:column;align-items:flex-start;gap:18px;padding:24px;}
  .ms-pipeline{grid-template-columns:1fr;gap:26px;padding-top:0;}
  .ms-profiles{grid-template-columns:1fr;}
  .ms-profile{padding:0;border-left:none;}
  .ms-cat-body h3{padding-right:0;}
  .ms-cat-chip{position:static;display:inline-block;margin-top:12px;}
  .ms-qa-q{padding:18px 20px;gap:14px;}
  .ms-qa-a{padding:0 20px 22px;}
  .ms-teamnote{padding:22px 20px;}
}

/* ===== STAFF AUGMENTATION (talent bench / matching motif) ===== */
.sa-costsec .sec-head,.sa-solvesec .sec-head,.sa-whysec .sec-head,
.sa-stepsec .sec-head,.sa-signalsec .sec-head,.sa-faqsec .sec-head{max-width:920px;margin-left:auto;margin-right:auto;text-align:center;}

/* ---- hero ---- */
.sa-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:58px;align-items:center;}
.sa-hero-col{min-width:0;}
.sa-hero h1{font-size:clamp(2rem,3.6vw,3.15rem);line-height:1.08;margin:14px 0 0;text-wrap:balance;}
/* Deck sits in plain cream so the single ember phrase in the H1 stays the only
   accent — two ember serif blocks stacked read as competing headlines. */
.sa-promise{margin-top:18px;max-width:40ch;font-size:clamp(1.05rem,1.5vw,1.2rem);font-weight:500;line-height:1.5;color:rgba(251,248,241,.9);}
.sa-hero .crumb{margin-top:24px;}
.sa-hero-body{margin-top:26px;padding-top:24px;border-top:1px solid var(--line-d);display:flex;flex-direction:column;gap:14px;}
.sa-hero-body p{font-size:1rem;line-height:1.72;color:rgba(251,248,241,.74);}
.sa-hero-cta{margin-top:28px;}

/* hero visual: talent pool resolving into a matched bench */
.sa-hero-vis{min-width:0;}
.sa-match{border:1px solid var(--line-d);border-radius:20px;padding:22px 24px 24px;
  background:linear-gradient(158deg,rgba(255,255,255,.055),rgba(255,255,255,.012));
  box-shadow:0 40px 80px -50px rgba(0,0,0,.7);}
.sa-match-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line-d);}
.sa-match-head .mono{font-size:.7rem;color:var(--muted-d);}
.sa-match-live{display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;color:var(--ember-hi);}
.sa-match-live i{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);animation:saLive 1.8s ease-out infinite;}
@keyframes saLive{0%{box-shadow:0 0 0 0 rgba(255,174,69,.55);}70%{box-shadow:0 0 0 8px rgba(255,174,69,0);}100%{box-shadow:0 0 0 0 rgba(255,174,69,0);}}
.sa-pool{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:20px 0 4px;}
.sa-cell{position:relative;aspect-ratio:1;border-radius:7px;display:grid;place-items:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.06);color:rgba(251,248,241,.2);}
/* CSS-drawn person silhouette — every cell is visibly a candidate. */
.sa-person{position:relative;display:block;width:44%;height:44%;min-width:14px;min-height:14px;}
.sa-person::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);
  width:42%;aspect-ratio:1;border-radius:50%;background:currentColor;}
.sa-person::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:88%;height:46%;border-radius:60% 60% 22% 22%;background:currentColor;}
/* Matched candidates light up in sequence, then hold. */
.sa-cell.is-match{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;
  box-shadow:0 0 14px rgba(247,143,27,.5);opacity:0;transform:scale(.6);
  animation:saCell .5s calc(.5s + var(--i) * .22s) cubic-bezier(.2,.9,.3,1.5) both;}
@keyframes saCell{to{opacity:1;transform:scale(1);}}
/* Vetted tick on a matched candidate. */
.sa-cell.is-match::after{content:"\2713";position:absolute;right:-3px;top:-3px;width:15px;height:15px;border-radius:50%;
  background:#15110c;border:1px solid var(--ember-hi);color:var(--ember-hi);
  font-family:'JetBrains Mono',monospace;font-size:.5rem;line-height:13px;text-align:center;
  opacity:0;animation:saTickBadge .4s calc(.95s + var(--i) * .22s) ease-out both;}
@keyframes saTickBadge{to{opacity:1;}}
.sa-feed{height:34px;margin:0 -2px;}
.sa-feed svg{width:100%;height:100%;}
.sa-feed-line{stroke:rgba(255,174,69,.42);stroke-width:1.3;stroke-dasharray:70;stroke-dashoffset:70;animation:saFeed 1.1s 1.7s ease-out both;}
@keyframes saFeed{to{stroke-dashoffset:0;}}
.sa-bench{border:1px dashed rgba(255,174,69,.32);border-radius:14px;padding:14px 16px 16px;background:rgba(247,143,27,.05);}
.sa-bench-lbl{display:block;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-d);margin-bottom:12px;}
.sa-bench-row{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;}
.sa-seat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  min-height:56px;padding:9px 4px;border-radius:11px;background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.14);color:rgba(251,248,241,.22);}
.sa-seat .sa-person{width:17px;height:17px;min-width:0;min-height:0;}
.sa-seat b{font-size:.5rem;letter-spacing:.1em;font-weight:500;}
/* Seats fill after the matched candidates arrive from the pool. */
.sa-seat.is-filled{background:linear-gradient(150deg,rgba(255,174,69,.92),var(--ember-deep));border-style:solid;border-color:transparent;color:#fff;
  opacity:0;animation:saSeat .45s calc(2.5s + var(--i) * .18s) cubic-bezier(.2,.9,.3,1.5) both;}
@keyframes saSeat{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ---- S2: cost of slow hiring — sticky statement + growing cost bars ---- */
.sa-cost-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:58px;align-items:start;}
.sa-cost-aside{position:sticky;top:110px;}
.sa-cost-aside h2{font-size:clamp(1.9rem,3.3vw,2.6rem);margin-bottom:20px;}
.sa-cost-lead{font-size:1.06rem;line-height:1.72;color:var(--muted);}
.sa-cost-kicker{margin-top:24px;padding-top:22px;border-top:1px solid var(--line);font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;line-height:1.44;letter-spacing:-.01em;color:var(--ink);}
.sa-costs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.sa-cost{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;
  padding:26px 8px 26px 4px;border-bottom:1px solid var(--line);transition:padding-left .35s,background .35s;}
.sa-cost::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,rgba(178,58,14,.9),var(--ember));
  transform:scaleY(0);transform-origin:top;transition:transform .38s cubic-bezier(.2,.7,.2,1);}
.sa-cost:hover{padding-left:20px;background:linear-gradient(90deg,rgba(178,58,14,.05),transparent 72%);}
.sa-cost:hover::before{transform:scaleY(1);}
.sa-cost-n{min-width:2.4ch;font-size:1.95rem;line-height:1;font-weight:500;color:transparent;
  -webkit-text-stroke:1.2px rgba(178,58,14,.5);transition:-webkit-text-stroke-color .35s,color .35s;}
.sa-cost:hover .sa-cost-n{-webkit-text-stroke-color:transparent;color:var(--rust,#b23a0e);}
.sa-cost p{font-size:1.02rem;line-height:1.64;color:var(--muted);transition:color .35s;}
.sa-cost:hover p{color:var(--ink);}
.sa-cost-mark{display:inline-flex;color:rgba(178,58,14,.28);transition:color .35s,transform .35s;}
.sa-cost-mark svg{width:18px;height:18px;}
.sa-cost:hover .sa-cost-mark{color:var(--rust,#b23a0e);transform:translateY(-2px);}

/* ---- S3: engagement models — dark cards on light ground ---- */
.sa-models{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.sa-model{position:relative;display:flex;flex-direction:column;padding:34px 30px 32px;border-radius:20px;overflow:hidden;
  background:linear-gradient(158deg,#241a10,#15110c);color:var(--cream);border:1px solid var(--line-d);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.sa-model::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--ember),var(--ember-deep));}
.sa-model:hover{transform:translateY(-6px);border-color:rgba(255,174,69,.5);box-shadow:0 34px 64px -34px rgba(21,17,12,.6);}
.sa-model-ribbon{align-self:flex-start;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-hi);border:1px solid rgba(255,174,69,.34);border-radius:100px;padding:5px 12px;margin-bottom:22px;}
.sa-model-ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:15px;background:rgba(247,143,27,.13);border:1px solid rgba(247,143,27,.3);color:var(--ember-hi);margin-bottom:20px;transition:background .35s,color .35s,transform .35s;}
.sa-model:hover .sa-model-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;transform:rotate(-6deg);}
.sa-model-ico svg{width:25px;height:25px;}
.sa-model h3{font-family:'Fraunces',serif;font-size:1.32rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:11px;}
.sa-model p{font-size:.97rem;line-height:1.68;color:rgba(251,248,241,.76);}

/* ---- S4: why over traditional recruiting — full-width tick rows ---- */
.sa-whysec{position:relative;overflow:hidden;}
.sa-whysec .glow-1{top:auto;bottom:-260px;left:-160px;opacity:.12;}
.sa-whysec .wrap{position:relative;z-index:2;}
.sa-why{list-style:none;margin:0;padding:0;max-width:960px;margin-inline:auto;display:flex;flex-direction:column;gap:12px;}
.sa-whyrow{display:flex;align-items:center;gap:20px;padding:22px 28px;border-radius:100px;background:var(--cream);border:1px solid var(--line);
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s,box-shadow .3s;}
.sa-whyrow:hover{transform:translateX(6px);background:#fff;border-color:var(--ember);box-shadow:0 22px 44px -30px rgba(21,17,12,.28);}
.sa-whytick{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.sa-whytick svg{width:16px;height:16px;}
.sa-tickpath{stroke-dasharray:1;stroke-dashoffset:1;animation:saTick .6s .3s ease-out both;}
@keyframes saTick{to{stroke-dashoffset:0;}}
.sa-whyrow p{font-size:1.04rem;line-height:1.6;color:var(--ink);}

/* ---- S5: how it works — auto-advancing stepper with animated stages ---- */
.sa-flow{display:grid;grid-template-columns:.86fr 1.14fr;gap:26px;align-items:stretch;max-width:1060px;margin-inline:auto;}
.sa-flow-rail{display:flex;flex-direction:column;gap:8px;}
.sa-flow-tab{position:relative;appearance:none;cursor:pointer;text-align:left;display:grid;grid-template-columns:auto 1fr;
  align-items:center;gap:15px;width:100%;padding:18px 20px;border-radius:14px;overflow:hidden;
  border:1px solid var(--line);background:var(--cream);font-family:'Hanken Grotesk',sans-serif;
  transition:background .3s,border-color .3s,transform .3s cubic-bezier(.2,.7,.2,1);}
.sa-flow-tab:hover{background:#fff;border-color:rgba(247,143,27,.55);}
.sa-flow-tab.active{background:linear-gradient(150deg,#241a10,#15110c);border-color:transparent;transform:translateX(4px);}
.sa-flow-num{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--paper-2);
  border:1px solid var(--line);font-size:.7rem;color:var(--muted-d);transition:background .3s,border-color .3s,color .3s;}
.sa-flow-tab.active .sa-flow-num{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.sa-flow-name{font-size:1.01rem;font-weight:600;line-height:1.36;letter-spacing:-.01em;color:var(--ink);transition:color .3s;}
.sa-flow-tab.active .sa-flow-name{color:#fff;}
/* Dwell indicator on the active step; freezes while the visitor is engaged. */
.sa-flow-prog{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.1);opacity:0;transition:opacity .3s;}
.sa-flow-tab.active .sa-flow-prog{opacity:1;}
.sa-flow-prog i{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,var(--ember),var(--ember-hi));}
.sa-flow-tab.active .sa-flow-prog i{animation:saProg 5.2s linear forwards;}
.sa-flow.is-paused .sa-flow-tab.active .sa-flow-prog i{animation-play-state:paused;}
@keyframes saProg{to{transform:scaleX(1);}}

.sa-flow-stage{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;
  box-shadow:0 30px 62px -44px rgba(21,17,12,.3);}
.sa-flow-pane[hidden]{display:none;}
.sa-flow-pane{display:flex;flex-direction:column;gap:24px;height:100%;animation:saPane .4s ease-out both;}
@keyframes saPane{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.sa-flow-viz{flex:1;min-height:190px;display:grid;place-items:center;border-radius:14px;overflow:hidden;
  background:linear-gradient(160deg,#1d1610,#12100c);}
.sa-flow-copy{font-size:1.06rem;line-height:1.7;color:var(--muted);}

/* --- step illustrations. Each animates only while its pane is active. --- */
.sa-vz{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:22px;}
/* 01 — a brief filling itself in */
.sa-vz-brief{grid-template-columns:1fr auto;gap:26px;align-items:center;}
.sa-vz-card{display:flex;flex-direction:column;gap:11px;width:100%;max-width:210px;}
.sa-vz-line{display:block;height:9px;border-radius:5px;background:rgba(255,255,255,.09);overflow:hidden;position:relative;}
.sa-vz-line::after{content:"";position:absolute;inset:0;border-radius:5px;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,var(--ember),var(--ember-hi));}
.sa-vz-line:nth-child(2){width:86%;}
.sa-vz-line:nth-child(3){width:94%;}
.sa-vz-line:nth-child(4){width:64%;}
.active .sa-vz-line::after{animation:saLineFill .7s calc(.25s + var(--i) * .22s) cubic-bezier(.3,.85,.25,1) both;}
@keyframes saLineFill{to{transform:scaleX(1);}}
.sa-vz-target{position:relative;width:62px;height:62px;border-radius:50%;border:2px solid rgba(255,174,69,.35);display:grid;place-items:center;}
.sa-vz-target i{width:22px;height:22px;border-radius:50%;background:transparent;border:2px solid rgba(255,174,69,.5);}
.sa-vz-target::after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--ember-hi);opacity:0;}
.active .sa-vz-target::after{animation:saPop .5s 1.15s cubic-bezier(.2,.9,.3,1.5) both;}
@keyframes saPop{from{opacity:0;transform:scale(.2);}to{opacity:1;transform:scale(1);}}

/* 02 — the pool narrows to the qualified few.
   `place-items:stretch` is required: the inherited `center` from .sa-vz sizes
   these aspect-ratio cells to their (empty) content and collapses them. */
.sa-vz-screen{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;place-items:stretch;align-content:center;
  width:100%;max-width:352px;}
.sa-vz-cand{position:relative;width:100%;aspect-ratio:1;border-radius:8px;display:grid;place-items:center;
  color:rgba(251,248,241,.3);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);}
.sa-vz-cand .sa-person{position:relative;z-index:1;width:52%;height:52%;min-width:0;min-height:0;}
/* The ember fill rides a pseudo-element so it can cross-fade — a gradient in a
   keyframe would snap rather than interpolate. */
.sa-vz-cand.is-keep::after{content:"";position:absolute;inset:0;border-radius:8px;opacity:0;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.active .sa-vz-cand:not(.is-keep){animation:saDim .5s calc(.55s + var(--i) * .05s) ease-out both;}
@keyframes saDim{to{opacity:.28;}}
.active .sa-vz-cand.is-keep::after{animation:saKeepIn .45s calc(.95s + var(--i) * .07s) ease-out both;}
@keyframes saKeepIn{to{opacity:1;}}
.active .sa-vz-cand.is-keep{animation:saKeepPop .45s calc(.95s + var(--i) * .07s) cubic-bezier(.2,.9,.3,1.5) both;}
@keyframes saKeepPop{to{transform:scale(1.09);color:#fff;border-color:transparent;box-shadow:0 0 16px rgba(247,143,27,.5);}}

/* 03 — three finalists, each vetted */
.sa-vz-short{display:flex;gap:14px;align-items:center;justify-content:center;}
.sa-vz-pick{position:relative;width:74px;height:96px;border-radius:13px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(160deg,rgba(255,174,69,.9),var(--ember-deep));opacity:0;}
.sa-vz-pick .sa-person{width:30px;height:30px;min-width:0;min-height:0;}
.sa-vz-pick b{position:absolute;right:-4px;top:-4px;width:19px;height:19px;border-radius:50%;background:#15110c;
  border:1px solid var(--ember-hi);opacity:0;}
.sa-vz-pick b::after{content:"\2713";position:absolute;inset:0;color:var(--ember-hi);font-family:'JetBrains Mono',monospace;
  font-size:.6rem;line-height:17px;text-align:center;}
.active .sa-vz-pick{animation:saRise .5s calc(.3s + var(--i) * .18s) cubic-bezier(.2,.9,.3,1.5) both;}
.active .sa-vz-pick b{animation:saPop .4s calc(.9s + var(--i) * .18s) ease-out both;}
@keyframes saRise{from{opacity:0;transform:translateY(20px) rotate(-4deg);}to{opacity:1;transform:none;}}

/* 04 — the new member drops into the open seat */
.sa-vz-onboard{display:flex;gap:12px;align-items:center;justify-content:center;}
.sa-vz-seat{width:62px;height:74px;border-radius:12px;display:grid;place-items:center;}
.sa-vz-seat .sa-person{width:26px;height:26px;min-width:0;min-height:0;}
.sa-vz-seat.is-set{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);color:rgba(251,248,241,.4);}
.sa-vz-seat.is-new{background:transparent;border:1px dashed rgba(255,174,69,.45);color:rgba(255,174,69,.4);}
.active .sa-vz-seat.is-new{animation:saSlot .75s .6s cubic-bezier(.2,.85,.3,1.3) both;}
@keyframes saSlot{
  0%{transform:translateY(-34px);opacity:0;}
  60%{transform:translateY(0);opacity:1;}
  100%{transform:translateY(0);opacity:1;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-style:solid;border-color:transparent;color:#fff;}
}

/* 05 — recurring check-ins, looping while shown */
.sa-vz-engaged{gap:0;}
.sa-vz-orbit{position:absolute;width:104px;height:104px;border-radius:50%;border:2px dashed rgba(255,174,69,.32);}
.active .sa-vz-orbit{animation:saOrbit 9s linear infinite;}
@keyframes saOrbit{to{transform:rotate(360deg);}}
.sa-vz-ping{position:absolute;width:15px;height:15px;border-radius:50%;background:var(--ember-hi);opacity:0;}
.sa-vz-ping:nth-child(2){transform:translate(0,-52px);}
.sa-vz-ping:nth-child(3){transform:translate(45px,26px);}
.sa-vz-ping:nth-child(4){transform:translate(-45px,26px);}
.active .sa-vz-ping{animation:saCheckIn 3s calc(var(--i) * 1s) ease-out infinite;}
@keyframes saCheckIn{0%{opacity:0;}18%{opacity:1;box-shadow:0 0 0 0 rgba(255,174,69,.6);}60%{opacity:1;box-shadow:0 0 0 13px rgba(255,174,69,0);}100%{opacity:.25;}}

/* ---- S6: signals + closing CTA (dark) ---- */
.sa-signalsec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;text-align:center;}
.sa-signalsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.3;}
.sa-signalsec .glow-1{top:-180px;right:-140px;opacity:.3;}
.sa-signalsec .wrap{position:relative;z-index:2;}
.sa-signalsec .sec-head h2{color:#fff;}
.sa-signalsec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.sa-signalsec .sec-head p{color:rgba(251,248,241,.72);}
.sa-signals{list-style:none;margin:0 auto;padding:0;max-width:980px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;text-align:left;}
.sa-signals li{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:14px;border:1px solid var(--line-d);
  background:linear-gradient(158deg,rgba(255,255,255,.05),rgba(255,255,255,.014));
  font-size:1rem;line-height:1.6;color:rgba(251,248,241,.84);
  transition:background .3s,border-color .3s,transform .3s cubic-bezier(.2,.7,.2,1);}
.sa-signals li:hover{transform:translateY(-4px);border-color:rgba(255,174,69,.45);background:linear-gradient(158deg,rgba(255,174,69,.1),rgba(255,255,255,.02));color:#fff;}
.sa-signals li:last-child:nth-child(odd){grid-column:1/-1;}
.sa-signal-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:rgba(247,143,27,.13);border:1px solid rgba(247,143,27,.3);color:var(--ember-hi);}
.sa-signal-ico svg{width:19px;height:19px;}
.sa-close{margin-top:44px;}
.sa-close-line{font-family:'Fraunces',serif;font-size:clamp(1.35rem,2.6vw,2rem);font-weight:500;line-height:1.28;letter-spacing:-.01em;color:#fff;margin-bottom:26px;}

/* ---- S7: FAQ reuses the shared .ms-qa accordion; only the width differs ---- */
.sa-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  /* Everything resolves to its finished state; the stepper stops auto-advancing
     in JS, so the visitor drives it by clicking. */
  .sa-match-live i,.sa-cell.is-match,.sa-feed-line,.sa-seat.is-filled,.sa-tickpath,
  .sa-flow-pane,.sa-flow-prog i,.sa-vz-line::after,.sa-vz-target::after,.sa-vz-cand,
  .sa-vz-pick,.sa-vz-pick b,.sa-vz-seat.is-new,.sa-vz-orbit,.sa-vz-ping,
  .sa-vz-cand.is-keep::after{animation:none;}
  .sa-vz-cand.is-keep::after{opacity:1;}
  .sa-cell.is-match,.sa-cell.is-match::after,.sa-seat.is-filled{opacity:1;transform:none;}
  .sa-feed-line,.sa-tickpath{stroke-dashoffset:0;}
  .sa-vz-line::after{transform:scaleX(1);}
  .sa-vz-target::after,.sa-vz-pick,.sa-vz-pick b,.sa-vz-ping{opacity:1;}
  .sa-vz-pick{transform:none;}
  .sa-vz-cand.is-keep{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
  .sa-vz-seat.is-new{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-style:solid;border-color:transparent;color:#fff;}
  .sa-flow-prog{opacity:0;}
}

@media(max-width:1080px){
  .sa-models{grid-template-columns:1fr;}
  .sa-flow{grid-template-columns:1fr;}
  .sa-flow-tab.active{transform:none;}
  .sa-flow-rail{flex-direction:row;flex-wrap:wrap;}
  .sa-flow-tab{flex:1 1 170px;}
}
@media(max-width:980px){
  .sa-hero-grid{grid-template-columns:1fr;gap:44px;}
  .sa-cost-grid{grid-template-columns:1fr;gap:34px;}
  .sa-cost-aside{position:relative;top:auto;}
  .sa-signals{grid-template-columns:1fr;}
  .sa-signals li:last-child:nth-child(odd){grid-column:auto;}
}
@media(max-width:680px){
  .sa-whyrow{border-radius:18px;padding:18px 20px;gap:14px;}
  .sa-whyrow:hover{transform:none;}
  .sa-flow-rail{flex-direction:column;}
  .sa-flow-tab{flex:1 1 auto;padding:15px 16px;gap:12px;}
  .sa-flow-name{font-size:.96rem;}
  .sa-flow-stage{padding:20px;}
  .sa-flow-viz{min-height:160px;}
  .sa-vz{padding:14px;}
  .sa-vz-brief{grid-template-columns:1fr;gap:18px;justify-items:center;}
  .sa-cost{grid-template-columns:auto 1fr;gap:16px;}
  .sa-cost-mark{display:none;}
  .sa-pool{gap:6px;}
}

/* ===== PROGRAM MANAGEMENT (North Star alignment / editorial) ===== */
.pm-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center;}
.pm-hero-txt h1{margin-top:14px;}
.pm-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.pm-hero .eyebrow a:hover{color:var(--ember-hi);}

/* North Star emblem */
.pm-star{position:relative;z-index:2;aspect-ratio:1/1.05;display:grid;place-items:center;}
.pm-star-svg{width:100%;height:100%;overflow:visible;}
.pm-lines line{stroke-dasharray:4 5;stroke-dashoffset:100;animation:pmDraw 2.4s cubic-bezier(.4,0,.2,1) forwards;opacity:.85;}
.pm-lines line:nth-child(2){animation-delay:.15s;}
.pm-lines line:nth-child(3){animation-delay:.3s;}
.pm-lines line:nth-child(4){animation-delay:.45s;}
.pm-lines line:nth-child(5){animation-delay:.6s;}
@keyframes pmDraw{to{stroke-dashoffset:0;}}
.pm-field{fill:none;stroke:rgba(255,174,69,.16);}
.pm-field.f1{animation:pmField 4s ease-in-out infinite;}
.pm-field.f2{stroke-dasharray:3 7;animation:pmField 4s ease-in-out infinite .5s;}
@keyframes pmField{0%,100%{opacity:.4;transform:scale(1);}50%{opacity:.9;transform:scale(1.05);}transform-origin:214px 96px;}
.pm-dots circle{fill:#15110c;stroke:var(--ember);stroke-width:1.6;animation:pmDot 5s ease-in-out infinite;}
.pm-dots circle:nth-child(odd){animation-delay:-1.5s;}
@keyframes pmDot{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}
.pm-north{fill:url(#pmLine);fill:var(--ember-hi);filter:drop-shadow(0 0 14px rgba(247,143,27,.85));transform-origin:214px 96px;animation:pmTwinkle 3.4s ease-in-out infinite;}
@keyframes pmTwinkle{0%,100%{transform:scale(1) rotate(0);opacity:1;}50%{transform:scale(1.08) rotate(45deg);opacity:.92;}}
@media(prefers-reduced-motion:reduce){.pm-lines line,.pm-field,.pm-dots circle,.pm-north{animation:none;stroke-dashoffset:0;}}
.pm-star-chip{position:absolute;top:8%;right:0;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.6);border:1px solid var(--line-d);color:#fff;font-size:.6rem;letter-spacing:.14em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(6px);}
.pm-star-pulse{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 0 rgba(247,143,27,.6);animation:msLive 1.9s infinite;}
.pm-star-tags{position:absolute;left:0;bottom:6%;display:flex;gap:8px;}
.pm-star-tags i{font-style:normal;font-size:.56rem;letter-spacing:.1em;color:rgba(251,248,241,.5);border:1px solid var(--line-d);border-radius:100px;padding:5px 11px;background:rgba(255,255,255,.03);}

/* hero emblem — the alignment pass now repeats, and a readout reports what the
   governance layer is actually doing. */
.pm-lines line{animation:pmDraw 6s cubic-bezier(.4,0,.2,1) infinite;}
/* Sits above the project tags at bottom 6%, not on top of them. */
.pm-star-live{position:absolute;left:0;bottom:15%;display:inline-flex;align-items:center;gap:9px;
  background:rgba(21,17,12,.66);border:1px solid var(--line-d);border-radius:100px;padding:8px 15px;backdrop-filter:blur(6px);}
.pm-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.pm-live-rot{position:relative;display:block;width:154px;height:16px;overflow:hidden;}
.pm-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.64rem;letter-spacing:.02em;color:var(--ember-hi);white-space:nowrap;
  opacity:0;transform:translateY(8px);animation:pmRot 10s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes pmRot{0%{opacity:0;transform:translateY(8px);}5%,20%{opacity:1;transform:none;}25%,100%{opacity:0;transform:translateY(-8px);}}

/* ----- PROGRAM MANAGEMENT sections (.pk- : interdependency) -----
   Motif set unique to this page: a status board where every project reads green
   while the program underneath turns red, domino cascades on each failure
   pattern, frame-in-frame service cards, a diamond charter list, a
   gutter-labelled protocol and comparison stat bands. */

/* --- S2: the lede beside the board that hides the problem --- */
.pk-lede-top{max-width:1000px;margin-bottom:56px;}
.pk-lede-top .eyebrow{margin-bottom:14px;}
.pk-lede-top h2{font-size:clamp(1.72rem,3.1vw,2.5rem);}
.pk-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.pk-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.pk-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.pk-lede-btn{margin-top:10px;}

.pk-board{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.pk-board-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.pk-board-led{width:7px;height:7px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.9);animation:pulse 1.8s infinite;}
.pk-board-rows{padding:20px 20px 14px;display:flex;flex-direction:column;gap:12px;}
/* Every workstream reports clean. */
.pk-ws{display:flex;align-items:center;gap:13px;}
.pk-ws-name{flex:0 0 auto;width:88px;font-style:normal;font-size:.6rem;letter-spacing:.04em;color:rgba(251,248,241,.6);}
.pk-ws-track{flex:1;display:block;height:7px;border-radius:100px;background:rgba(255,255,255,.09);overflow:hidden;}
.pk-ws-track b{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,#2f8f63,#4ed492);
  transform-origin:left;animation:pkWs 9s cubic-bezier(.3,.9,.3,1) infinite;animation-delay:calc(var(--w) * .3s);}
@keyframes pkWs{0%{transform:scaleX(0);}22%,88%{transform:scaleX(.86);}97%,100%{transform:scaleX(0);}}
.pk-ws-state{flex:0 0 auto;font-style:normal;font-size:.48rem;letter-spacing:.13em;text-transform:uppercase;color:#4ed492;
  padding:4px 9px;border-radius:5px;background:rgba(78,212,146,.12);border:1px solid rgba(78,212,146,.36);
  opacity:0;animation:pkState 9s ease-in-out infinite;animation-delay:calc(var(--w) * .3s + .5s);}
@keyframes pkState{0%,10%{opacity:0;}20%,88%{opacity:1;}97%,100%{opacity:0;}}
/* The roll-up tells a different story. */
.pk-board-roll{position:relative;padding:20px 20px 22px;border-top:1px dashed rgba(255,255,255,.14);background:rgba(178,58,14,.09);}
.pk-roll-name{display:inline-block;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.72);}
.pk-roll-state{display:inline-block;margin-left:11px;font-size:.48rem;letter-spacing:.13em;text-transform:uppercase;color:#fff;
  padding:4px 10px;border-radius:5px;background:var(--rust);
  animation:pkRisk 9s ease-in-out infinite;animation-delay:2.6s;}
@keyframes pkRisk{0%,26%{opacity:0;transform:scale(.85);}34%,88%{opacity:1;transform:none;}96%,100%{opacity:0;transform:scale(.85);}}
.pk-board-roll p{margin-top:11px;font-size:.88rem;color:rgba(251,248,241,.66);line-height:1.62;}

/* --- S3: the waste figure, then the patterns that produce it --- */
.pk-failsec .sec-head{max-width:900px;}
.pk-waste{display:flex;align-items:flex-start;gap:28px;max-width:1000px;margin-bottom:44px;padding:28px 30px 30px;
  background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--rust);border-radius:0 16px 16px 0;}
.pk-waste-n{flex:0 0 auto;font-size:2.7rem;line-height:1;color:var(--rust);}
.pk-waste p{font-size:1.02rem;color:var(--muted);line-height:1.76;}
.pk-waste strong{color:var(--ink);font-weight:600;}
.pk-fails{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.pk-fail{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:24px 24px 26px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.pk-fail:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
/* A delay in one becomes a delay in three. */
.pk-domino{display:flex;align-items:flex-end;gap:6px;height:26px;margin-bottom:16px;}
.pk-domino i{width:6px;height:22px;border-radius:1px;background:var(--muted-d);transform-origin:bottom left;
  animation:pkFall 4.2s ease-in-out infinite;animation-delay:calc(var(--i) * .22s);}
.pk-domino i:nth-child(2){animation-delay:calc(var(--i) * .22s + .18s);}
.pk-domino i:nth-child(3){animation-delay:calc(var(--i) * .22s + .36s);}
@keyframes pkFall{0%,44%{transform:rotate(0);background:var(--muted-d);}62%,84%{transform:rotate(24deg);background:var(--rust);}96%,100%{transform:rotate(0);background:var(--muted-d);}}
.pk-fail-tag{display:block;font-size:.56rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:11px;}
.pk-fail p{font-size:.96rem;color:var(--muted);line-height:1.68;}
.pk-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.pk-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: frame-in-frame service cards (dark) --- */
.pk-svcsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.pk-svcsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.pk-svcsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.pk-svcsec .wrap{position:relative;z-index:2;}
.pk-svcsec .sec-head{max-width:1000px;}
.pk-svcsec .sec-head h2 em{color:var(--ember-hi);}
.pk-svcsec .sec-head p{color:rgba(251,248,241,.74);}
.pk-svcs{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.pk-svc{position:relative;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:30px 30px 32px;
  transition:background .35s,border-color .35s;}
/* An inset second frame — a documentary device that suits a governance page. */
.pk-svc-frame{position:absolute;inset:9px;border:1px solid rgba(255,255,255,.08);border-radius:2px;pointer-events:none;transition:inset .4s cubic-bezier(.2,.7,.2,1),border-color .4s;}
.pk-svc:hover{background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.4);}
.pk-svc:hover .pk-svc-frame{inset:4px;border-color:rgba(247,143,27,.32);}
.pk-svc-n{position:relative;display:block;font-size:.68rem;letter-spacing:.2em;color:var(--ember-hi);margin-bottom:14px;}
.pk-svc h3{position:relative;font-family:'Fraunces',serif;font-size:1.22rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.32;margin-bottom:11px;}
.pk-svc p{position:relative;font-size:.96rem;color:rgba(251,248,241,.76);line-height:1.72;}

/* --- S5: the charter --- */
.pk-trustsec .sec-head{max-width:900px;}
.pk-trusts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 52px;}
.pk-trust{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line);}
.pk-trust:nth-child(-n+2){border-top:1px solid var(--line);}
.pk-trust-dia{width:11px;height:11px;margin-top:9px;border-radius:2px;background:var(--ember);transform:rotate(45deg);
  animation:pkDia 6s ease-in-out infinite;animation-delay:calc(var(--i) * .32s);}
@keyframes pkDia{0%,12%{transform:rotate(45deg) scale(1);background:rgba(21,17,12,.2);}22%,44%{transform:rotate(225deg) scale(1.15);background:var(--ember);}56%,100%{transform:rotate(45deg) scale(1);background:rgba(21,17,12,.2);}}
.pk-trust p{font-size:1.04rem;color:var(--ink);line-height:1.72;}

/* --- S6: the protocol, phase in the gutter --- */
.pk-worksec .sec-head{max-width:900px;}
.pk-proto{list-style:none;margin:0;padding:0;background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 34px 70px -48px rgba(21,17,12,.28);}
.pk-phase{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line);}
.pk-phase:last-child{border-bottom:none;}
.pk-phase-gutter{display:flex;flex-direction:column;gap:8px;padding:26px 22px;background:var(--paper-2);border-right:1px solid var(--line);}
.pk-phase-gutter b{font-weight:400;font-size:.86rem;letter-spacing:.12em;color:var(--muted-d);}
.pk-phase-gutter i{font-style:normal;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember-deep);}
.pk-phase-body{padding:26px 30px 28px;}
.pk-phase-body h3{font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;}
.pk-phase-body p{font-size:.98rem;color:var(--muted);line-height:1.72;}
.pk-phase:hover .pk-phase-gutter{background:rgba(247,143,27,.1);}
.pk-phase:hover .pk-phase-gutter b{color:var(--ember-deep);}

/* --- S7: who this is for, and the gap between the two numbers --- */
.pk-whosec .sec-head{max-width:1000px;}
.pk-fits{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.pk-fit{background:var(--cream);border:1px solid var(--line);border-top:3px solid rgba(247,143,27,.5);border-radius:0 0 16px 16px;padding:24px 24px 28px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.pk-fit:hover{transform:translateY(-5px);border-color:var(--ember);border-top-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.pk-fit-n{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--muted-d);margin-bottom:14px;}
.pk-fit p{font-size:.98rem;color:var(--ink);line-height:1.68;}
.pk-gap{margin-top:46px;max-width:1000px;padding:30px 32px 32px;background:var(--cream);border:1px solid var(--line);border-radius:18px;}
.pk-gap-lbl{display:block;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:22px;}
.pk-gap-bars{display:flex;flex-direction:column;gap:20px;margin-bottom:22px;}
.pk-gap-bar{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;}
.pk-gap-bar b{font-size:2rem;line-height:1;}
.pk-gap-bar.good b{color:#2f8f63;}
.pk-gap-bar.bad b{color:var(--rust);}
.pk-gap-bar i{display:block;height:12px;border-radius:100px;transform-origin:left;transform:scaleX(0);
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.pk-gap-bar.good i{width:88%;background:linear-gradient(90deg,#2f8f63,#4ed492);transition-delay:.25s;}
.pk-gap-bar.bad i{width:14%;background:linear-gradient(90deg,var(--rust),#d4713f);transition-delay:.6s;}
.pk-gap.in .pk-gap-bar i{transform:scaleX(1);}
.pk-gap-bar u{grid-column:2;text-decoration:none;font-family:'JetBrains Mono',monospace;font-size:.52rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);}
.pk-gap > p{font-size:1.02rem;color:var(--muted);line-height:1.74;padding-top:20px;border-top:1px solid var(--line);}

/* --- S8: what poor program management costs (dark) --- */
.pk-costsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.pk-costsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.pk-costsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.pk-costsec .wrap{position:relative;z-index:2;}
.pk-cost{max-width:940px;}
.pk-cost .eyebrow{margin-bottom:14px;}
.pk-cost h2{font-size:clamp(1.78rem,3.1vw,2.5rem);margin-bottom:24px;}
.pk-cost h2 em{color:var(--ember-hi);}
.pk-cost-lead{font-size:1.14rem;color:#fff;font-weight:500;line-height:1.7;padding-left:22px;border-left:3px solid var(--ember);margin-bottom:22px;}
.pk-cost p{font-size:1.02rem;color:rgba(251,248,241,.74);line-height:1.82;}
.pk-baseline{margin-top:46px;padding:30px 32px 32px;background:rgba(255,255,255,.04);border:1px solid var(--line-d);border-radius:18px;}
.pk-baseline-lbl{display:block;font-size:.56rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(251,248,241,.5);margin-bottom:24px;}
.pk-baseline-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px;}
.pk-stat{display:flex;flex-direction:column;gap:8px;padding-left:20px;border-left:2px solid rgba(178,58,14,.55);
  animation:pkStat 6s ease-in-out infinite;animation-delay:calc(var(--i) * .4s);}
@keyframes pkStat{0%,14%{border-left-color:rgba(178,58,14,.3);}24%,60%{border-left-color:var(--rust);}72%,100%{border-left-color:rgba(178,58,14,.3);}}
.pk-stat b{font-size:2.3rem;line-height:1;color:#fff;}
.pk-stat span{font-family:'JetBrains Mono',monospace;font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-d);line-height:1.7;}
.pk-baseline > p{font-size:1.02rem;color:rgba(251,248,241,.74);line-height:1.74;padding-top:22px;border-top:1px solid var(--line-d);}
.pk-baseline strong{color:var(--ember-hi);font-weight:500;}

/* --- S9/S10: CTA + FAQ --- */
.pm-cta canvas.ai-net{opacity:.5;}
.pk-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.pk-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .pm-lines line,.pm-live-rot i,.pk-ws-track b,.pk-ws-state,.pk-roll-state,
  .pk-domino i,.pk-trust-dia,.pk-stat{animation:none;}
  .pm-live-rot i{opacity:0;}
  .pm-live-rot i:first-child{opacity:1;}
  .pk-ws-track b{transform:scaleX(.86);}
  .pk-ws-state,.pk-roll-state{opacity:1;transform:none;}
  .pk-trust-dia{background:var(--ember);}
  .pk-gap-bar i{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .pk-fails{grid-template-columns:repeat(2,1fr);}
  .pk-svcs,.pk-trusts{grid-template-columns:1fr;}
  .pk-trust:nth-child(-n+2){border-top:none;}
  .pk-trust:first-child{border-top:1px solid var(--line);}
  .pk-fits{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:980px){
  .pm-hero-grid{grid-template-columns:1fr;gap:42px;}
  .pm-star{order:-1;max-width:420px;margin:0 auto;}
  .pk-lede-grid{grid-template-columns:1fr;gap:44px;}
}
@media(max-width:760px){
  .pk-fails,.pk-fits{grid-template-columns:1fr;}
  .pk-waste{flex-direction:column;gap:14px;padding:24px 22px 26px;}
  .pk-verdict{padding-left:18px;font-size:1.02rem;}
  .pk-phase{grid-template-columns:1fr;}
  .pk-phase-gutter{flex-direction:row;align-items:center;gap:12px;border-right:none;border-bottom:1px solid var(--line);padding:16px 22px;}
  .pk-phase-body{padding:22px;}
  .pk-baseline-row{grid-template-columns:1fr;gap:18px;}
  .pk-gap,.pk-baseline{padding:24px 22px 26px;}
  .pk-gap-bar{grid-template-columns:74px 1fr;gap:14px;}
  .pk-gap-bar b{font-size:1.6rem;}
  .pk-ws-name{width:70px;}
  .pm-star-live{left:50%;transform:translateX(-50%);bottom:16%;}
}

/* ===== PROJECT MANAGEMENT (Gantt / delivery schedule) ===== */
.pj-hero-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:54px;align-items:center;}
.pj-hero-txt h1{margin-top:14px;}
.pj-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.pj-hero .eyebrow a:hover{color:var(--ember-hi);}

/* hero Gantt card */
.pj-gantt{position:relative;z-index:2;border-radius:18px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(150deg,#221910 0,#15110c 60%,#100c08 100%);box-shadow:0 50px 90px -42px rgba(0,0,0,.7);}
.pj-gantt-bar{display:flex;align-items:center;gap:7px;padding:13px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.pj-tl{width:11px;height:11px;border-radius:50%;flex:0 0 auto;}
.pj-tl.r{background:#ff5f57;}.pj-tl.y{background:#febc2e;}.pj-tl.g{background:#28c840;}
.pj-gantt-name{font-size:.66rem;letter-spacing:.04em;color:rgba(251,248,241,.55);margin-left:8px;}
.pj-gantt-state{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;color:#28c840;}
.pj-gantt-body{position:relative;padding:18px 20px 24px;}
.pj-axis{display:flex;justify-content:space-between;font-size:.56rem;letter-spacing:.1em;color:rgba(251,248,241,.4);padding:0 2px 12px;border-bottom:1px solid var(--line-d);margin-bottom:14px;}
.pj-grid{position:absolute;left:20px;right:20px;top:46px;bottom:24px;display:flex;justify-content:space-between;pointer-events:none;}
.pj-grid i{width:1px;background:rgba(255,255,255,.05);}
.pj-lanes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;position:relative;z-index:1;}
.pj-lanes li{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:14px;}
.pj-lane-lbl{font-size:.78rem;color:rgba(251,248,241,.82);font-weight:500;white-space:nowrap;}
.pj-lane-track{position:relative;height:16px;}
.pj-lane-bar{position:absolute;top:0;bottom:0;left:var(--s);width:0;border-radius:5px;background:linear-gradient(90deg,var(--ember-hi),var(--ember-deep));box-shadow:0 4px 12px -4px rgba(247,143,27,.7);animation:pjBar 1.5s cubic-bezier(.4,0,.2,1) forwards;animation-delay:calc(.4s + var(--i)*.16s);}
@keyframes pjBar{to{width:var(--w);}}
.pj-lane-ms{position:absolute;top:50%;left:var(--x);width:10px;height:10px;transform:translate(-50%,-50%) rotate(45deg);background:#15110c;border:1.5px solid var(--ember-hi);opacity:0;animation:pjMs .4s ease forwards;animation-delay:calc(1.4s + var(--i)*.16s);}
@keyframes pjMs{to{opacity:1;}}
.pj-playhead{position:absolute;top:46px;bottom:24px;left:62%;width:1.5px;background:linear-gradient(180deg,transparent,var(--ember),transparent);z-index:2;animation:pjPlay 5s ease-in-out infinite alternate;}
.pj-playhead::before{content:"";position:absolute;top:-3px;left:50%;width:7px;height:7px;border-radius:50%;background:var(--ember);transform:translateX(-50%);box-shadow:0 0 10px var(--ember);}
@keyframes pjPlay{0%{left:30%;}100%{left:86%;}}
@media(prefers-reduced-motion:reduce){.pj-lane-bar{animation:none;width:var(--w);}.pj-lane-ms{animation:none;opacity:1;}.pj-playhead{animation:none;}}

/* hero schedule — a live readout of the controls running behind the plan. */
.pj-gantt-foot{display:flex;align-items:center;gap:11px;padding:13px 20px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.24);}
.pj-foot-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.pj-foot-rot{position:relative;flex:1;height:17px;overflow:hidden;}
.pj-foot-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.72rem;letter-spacing:.02em;color:var(--ember-hi);white-space:nowrap;
  opacity:0;transform:translateY(8px);animation:pjFootRot 10s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes pjFootRot{0%{opacity:0;transform:translateY(8px);}5%,20%{opacity:1;transform:none;}25%,100%{opacity:0;transform:translateY(-8px);}}

/* ----- PROJECT MANAGEMENT sections (.pq- : discipline vs drift) -----
   Motif set unique to this page: three schedules raced against one baseline, a
   root-cause register, ruler-edged service cards, slash-marked commitments, a
   work-breakdown outline and invisible-cost cards. */

/* --- S2: the lede beside three schedules and one baseline --- */
.pq-lede-top{max-width:1000px;margin-bottom:56px;}
.pq-lede-top .eyebrow{margin-bottom:14px;}
.pq-lede-top h2{font-size:clamp(1.72rem,3.1vw,2.5rem);}
.pq-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.pq-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.pq-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.pq-lede-btn{margin-top:10px;}

.pq-race{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.pq-race-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.pq-race-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.pq-race-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;color:var(--ember-hi);}
.pq-race-body{padding:14px 20px 22px;display:flex;flex-direction:column;gap:15px;}
/* Label row and data rows share one grid, so the baseline tick lines up with
   the point every bar is measured against. */
.pq-base,.pq-run{display:grid;grid-template-columns:88px 1fr 52px;gap:13px;align-items:center;}
.pq-base{height:14px;}
.pq-base i{position:relative;grid-column:2;justify-self:start;left:62%;transform:translateX(-50%);
  font-style:normal;font-size:.46rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(251,248,241,.5);white-space:nowrap;}
.pq-run-name{font-style:normal;font-size:.6rem;letter-spacing:.04em;color:rgba(251,248,241,.6);}
.pq-run-track{position:relative;display:block;height:9px;border-radius:100px;background:rgba(255,255,255,.08);overflow:hidden;}
/* The approved baseline, drawn on every track at the same point. */
.pq-run-track::after{content:"";position:absolute;left:62%;top:-4px;bottom:-4px;width:1px;z-index:3;
  background-image:linear-gradient(180deg,rgba(251,248,241,.55) 0 4px,transparent 4px 8px);background-size:1px 8px;}
/* Runs once on reveal and holds. Looping it meant a bar could show its overrun
   while the planned portion was still drawing. */
.pq-run-track .plan,.pq-run-track .over{transform:scaleX(0);transform-origin:left;
  transition:transform .8s cubic-bezier(.3,.9,.3,1);}
.pq-run-track .plan{position:absolute;left:0;top:0;bottom:0;width:62%;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  transition-delay:calc(var(--r) * .22s + .2s);}
/* The part that runs past the line — only after the plan has landed. */
.pq-run-track .over{position:absolute;left:62%;top:0;bottom:0;width:var(--o);border-radius:0 100px 100px 0;background:repeating-linear-gradient(135deg,rgba(178,58,14,.95) 0 5px,rgba(178,58,14,.6) 5px 10px);
  transition-delay:calc(var(--r) * .22s + 1.05s);}
.pq-race.in .pq-run-track .plan,.pq-race.in .pq-run-track .over{transform:scaleX(1);}
.pq-run-track{overflow:visible;}
.pq-run-state{text-align:right;font-style:normal;font-size:.47rem;letter-spacing:.11em;text-transform:uppercase;color:#4ed492;}
.pq-run.is-over .pq-run-state{color:var(--rust);}
.pq-race-foot{display:flex;gap:28px;flex-wrap:wrap;padding:16px 20px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.18);}
.pq-race-stat{display:flex;flex-direction:column;gap:3px;}
.pq-race-stat b{font-size:1.18rem;font-weight:500;letter-spacing:.02em;color:#4ed492;}
.pq-race-stat.down b{color:var(--rust);}
.pq-race-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}

/* --- S3: the root-cause register --- */
.pq-causesec .sec-head{max-width:1000px;}
.pq-register{background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 34px 70px -48px rgba(21,17,12,.28);}
.pq-reg-head{display:grid;grid-template-columns:158px 1fr 84px;gap:24px;padding:13px 26px;background:var(--paper-2);border-bottom:1px solid var(--line);
  font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-d);}
.pq-reg-head span:last-child{text-align:right;}
.pq-reg-rows{list-style:none;margin:0;padding:0;}
.pq-cause{display:grid;grid-template-columns:158px 1fr 84px;gap:24px;align-items:start;padding:22px 26px;border-bottom:1px solid var(--line);transition:background .3s;}
.pq-cause:last-child{border-bottom:none;}
.pq-cause:hover{background:#fff;}
.pq-cause-code{display:inline-block;font-size:.54rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ember-deep);
  padding:6px 11px;border:1px solid rgba(247,143,27,.32);border-radius:5px;background:rgba(247,143,27,.08);}
.pq-cause p{font-size:.98rem;color:var(--muted);line-height:1.7;}
.pq-cause-stat{justify-self:end;font-size:1.16rem;letter-spacing:.02em;color:var(--rust);
  animation:pqStat 5s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes pqStat{0%,58%,100%{opacity:.55;}70%,86%{opacity:1;}}
.pq-cause-stat.is-none{color:var(--muted-d);font-size:.9rem;animation:none;opacity:.6;}
.pq-verdict{margin-top:44px;max-width:1000px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.pq-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: ruler-edged service cards (dark) --- */
.pq-svcsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.pq-svcsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.pq-svcsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.pq-svcsec .wrap{position:relative;z-index:2;}
.pq-svcsec .sec-head{max-width:1000px;}
.pq-svcsec .sec-head h2 em{color:var(--ember-hi);}
.pq-svcsec .sec-head p{color:rgba(251,248,241,.74);}
.pq-svcs{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.pq-svc{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:26px 28px 28px 40px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.pq-svc:hover{background:rgba(255,255,255,.07);border-color:rgba(247,143,27,.4);transform:translateY(-4px);}
/* Tick marks down the edge — this is schedule work. */
.pq-ruler{position:absolute;left:14px;top:28px;bottom:28px;display:flex;flex-direction:column;justify-content:space-between;}
.pq-ruler i{display:block;width:8px;height:1px;background:rgba(251,248,241,.22);transition:background .35s,width .35s;}
.pq-ruler i:nth-child(odd){width:13px;}
.pq-svc:hover .pq-ruler i{background:var(--ember-hi);}
.pq-svc-phase{display:inline-block;font-size:.52rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-hi);
  padding:5px 11px;border-radius:100px;background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.3);margin-bottom:13px;}
.pq-svc h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.32;margin-bottom:10px;}
.pq-svc p{font-size:.95rem;color:rgba(251,248,241,.76);line-height:1.72;}

/* --- S5: commitments marked with a slash --- */
.pq-whysec .sec-head{max-width:900px;}
.pq-whys{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 52px;}
.pq-why{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line);}
.pq-why:nth-child(-n+2){border-top:1px solid var(--line);}
.pq-why-slash{font-size:.9rem;letter-spacing:.02em;color:var(--ember-deep);padding-top:5px;
  animation:pqSlash 6s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes pqSlash{0%,10%{opacity:.35;}20%,50%{opacity:1;}62%,100%{opacity:.35;}}
.pq-why p{font-size:1.04rem;color:var(--ink);line-height:1.72;}

/* --- S6: the work breakdown --- */
.pq-worksec .sec-head{max-width:940px;}
.pq-wbs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.pq-task{display:grid;grid-template-columns:78px 1fr 34px;gap:24px;align-items:start;padding:26px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s,background .3s;}
.pq-task:hover{padding-left:16px;background:var(--cream);}
.pq-task-n{font-size:1rem;letter-spacing:.06em;color:var(--ember-deep);padding-top:4px;}
.pq-task-body h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;}
.pq-task-body p{font-size:.98rem;color:var(--muted);line-height:1.74;}
.pq-task-check{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;margin-top:2px;
  background:rgba(78,212,146,.14);border:1px solid rgba(78,212,146,.42);color:#2f8f63;
  opacity:0;transform:scale(.55);transition:opacity .4s,transform .4s cubic-bezier(.34,1.42,.5,1);transition-delay:calc(var(--i) * .13s + .3s);}
.pq-wbs.in .pq-task-check{opacity:1;transform:none;}
.pq-task-check svg{width:12px;height:12px;}

/* --- S7: who this is for (dark) --- */
.pq-whosec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.pq-whosec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.pq-whosec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.pq-whosec .wrap{position:relative;z-index:2;}
.pq-whosec .sec-head{max-width:1000px;}
.pq-whosec .sec-head h2 em{color:var(--ember-hi);}
.pq-whosec .sec-head p{color:rgba(251,248,241,.74);}
.pq-fits{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}
.pq-fit{display:grid;grid-template-columns:46px 1fr;gap:18px;align-items:start;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.08);}
.pq-fit:nth-child(-n+2){border-top:1px solid rgba(255,255,255,.08);}
.pq-fit-n{font-size:.82rem;letter-spacing:.14em;color:var(--ember-hi);padding-top:3px;}
.pq-fit p{font-size:1rem;color:rgba(251,248,241,.82);line-height:1.72;}
.pq-hbr{margin-top:42px;max-width:1000px;font-size:1.08rem;line-height:1.8;color:rgba(251,248,241,.74);padding-left:24px;border-left:3px solid var(--ember);}
.pq-hbr strong{color:#fff;font-weight:600;}

/* --- S8: the invisible costs --- */
.pq-costsec .sec-head{max-width:940px;}
.pq-costs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.pq-cost{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 24px 28px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.pq-cost::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rust);
  animation:pqCost 4.4s ease-in-out infinite;animation-delay:calc(var(--i) * .32s);}
@keyframes pqCost{0%,60%,100%{opacity:.34;}72%,88%{opacity:1;}}
.pq-cost:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.pq-cost-kick{display:block;font-size:.55rem;letter-spacing:.17em;text-transform:uppercase;color:var(--rust);
  margin-bottom:13px;padding-bottom:13px;border-bottom:1px solid var(--line);}
.pq-cost p{font-size:.97rem;color:var(--ink);line-height:1.68;}

/* --- S9/S10: CTA + FAQ --- */
.pj-cta canvas.ai-net{opacity:.5;}
.pq-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.pq-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .pj-foot-rot i,.pq-cause-stat,.pq-why-slash,.pq-cost::before{animation:none;}
  .pj-foot-rot i{opacity:0;}
  .pj-foot-rot i:first-child{opacity:1;}
  .pq-run-track .plan,.pq-run-track .over{transition-duration:.01s;transition-delay:0s;}
  .pq-task-check{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .pq-svcs,.pq-whys,.pq-fits{grid-template-columns:1fr;}
  .pq-why:nth-child(-n+2),.pq-fit:nth-child(-n+2){border-top:none;}
  .pq-why:first-child{border-top:1px solid var(--line);}
  .pq-fit:first-child{border-top:1px solid rgba(255,255,255,.08);}
  .pq-costs{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:980px){
  .pj-hero-grid{grid-template-columns:1fr;gap:42px;}
  .pj-gantt{order:-1;}
  .pq-lede-grid{grid-template-columns:1fr;gap:44px;}
  /* The baseline marker is positioned against the desktop track width. */
}
@media(max-width:760px){
  .pq-costs{grid-template-columns:1fr;}
  .pq-verdict,.pq-hbr{padding-left:18px;font-size:1.02rem;}
  .pq-reg-head{display:none;}
  .pq-cause{grid-template-columns:1fr auto;gap:12px 16px;padding:20px 22px;}
  .pq-cause p{grid-column:1 / -1;}
  .pq-cause-stat{justify-self:end;align-self:start;}
  .pq-task{grid-template-columns:56px 1fr;gap:14px;}
  .pq-task-check{grid-column:2;justify-self:start;margin-top:10px;}
  .pq-svc{padding:24px 22px 26px 34px;}
  .pq-base,.pq-run{grid-template-columns:70px 1fr 44px;gap:10px;}
}

/* ===== PRODUCT MANAGEMENT (lifecycle journey + real photo) ===== */
.pd-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center;}
.pd-hero-txt h1{margin-top:14px;}
.pd-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.pd-hero .eyebrow a:hover{color:var(--ember-hi);}

/* hero real-photo figure */
.pd-hero-fig{position:relative;z-index:2;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 90px -42px rgba(0,0,0,.72);aspect-ratio:3/2;}
.pd-hero-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.pd-hero-fig:hover img{transform:scale(1.04);}
.pd-hero-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg,rgba(21,17,12,0) 45%,rgba(21,17,12,.55));pointer-events:none;}
.pd-fig-chip{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:7px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.6rem;letter-spacing:.12em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);}
.pd-fig-chip.top{top:16px;left:16px;}
.pd-fig-chip.bot{bottom:16px;right:16px;}
.pd-fig-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.pd-fig-tag{position:absolute;z-index:2;top:16px;right:16px;font-size:.56rem;letter-spacing:.18em;color:var(--ember-hi);background:rgba(21,17,12,.52);border:1px solid var(--line-d);border-radius:100px;padding:6px 12px;backdrop-filter:blur(6px);}

/* hero figure — a live outcome readout over the same photograph.
   The figure already clips, so the grid and sweep stay inside the image. */
.pd-fig-grid{position:absolute;inset:0;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);
  background-size:44px 44px;animation:pdDrift 26s linear infinite;}
@keyframes pdDrift{to{background-position:44px 44px;}}
.pd-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:pdScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes pdScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
.pd-fig-live{position:absolute;left:16px;bottom:16px;z-index:3;display:inline-flex;align-items:center;gap:9px;
  background:rgba(21,17,12,.72);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:100px;padding:9px 16px;
  box-shadow:0 18px 36px -22px rgba(0,0,0,.8);}
.pd-live-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.pd-live-rot{position:relative;display:block;width:150px;height:16px;overflow:hidden;}
.pd-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.66rem;letter-spacing:.02em;color:var(--ember-hi);white-space:nowrap;
  opacity:0;transform:translateY(8px);animation:pdRot 10s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes pdRot{0%{opacity:0;transform:translateY(8px);}5%,20%{opacity:1;transform:none;}25%,100%{opacity:0;transform:translateY(-8px);}}

/* ----- PRODUCT MANAGEMENT sections (.pw- : outcomes, not output) -----
   Motif set unique to this page: the four questions answered before the build,
   hanging margin notes on the upstream failures, corner-badged service cards, a
   rule-less typographic list, notched process cards, a fit register and an
   "Every…" anaphora block. */

/* --- S2: the lede beside the questions that should have been answered --- */
.pw-lede-top{max-width:1020px;margin-bottom:56px;}
.pw-lede-top .eyebrow{margin-bottom:14px;}
.pw-lede-top h2{font-size:clamp(1.7rem,3.05vw,2.45rem);}
.pw-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.pw-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.pw-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.pw-lede-btn{margin-top:10px;}

.pw-brief{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.pw-brief-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.pw-brief-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.pw-qs{list-style:none;margin:0;padding:22px 22px 18px;display:flex;flex-direction:column;gap:18px;}
.pw-q{display:flex;flex-direction:column;gap:9px;}
.pw-q-txt{font-size:.94rem;color:rgba(251,248,241,.86);line-height:1.5;}
/* The answer line fills in — these are the questions the copy says went unanswered. */
.pw-q-line{display:block;height:6px;border-radius:100px;background:rgba(255,255,255,.09);overflow:hidden;}
.pw-q-line i{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  transform:scaleX(0);transform-origin:left;transition:transform .85s cubic-bezier(.25,.9,.3,1);transition-delay:calc(var(--q) * .28s + .3s);}
.pw-brief.in .pw-q-line i{transform:scaleX(1);}
.pw-brief-foot{padding:16px 22px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.18);}
.pw-brief-stat{display:flex;flex-direction:column;gap:3px;}
.pw-brief-stat b{font-size:1.2rem;font-weight:500;letter-spacing:.02em;color:var(--rust);}
.pw-brief-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}

/* --- S3: the upstream failures, set as margin notes --- */
.pw-upsec .sec-head{max-width:1000px;}
.pw-ups{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.pw-up{position:relative;display:grid;grid-template-columns:196px 1fr;gap:30px;align-items:start;padding:28px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s;}
.pw-up:hover{padding-left:16px;}
/* The label hangs in the margin rather than sitting on the text. */
.pw-up-note{font-size:.56rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);line-height:1.7;padding-top:5px;
  border-left:2px solid rgba(247,143,27,.35);padding-left:14px;transition:border-color .35s;}
.pw-up:hover .pw-up-note{border-left-color:var(--ember);}
.pw-up p{font-size:1.02rem;color:var(--muted);line-height:1.76;}
.pw-verdict{margin-top:44px;max-width:1000px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.pw-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: services with a badge hung off the corner (dark) --- */
.pw-svcsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.pw-svcsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.pw-svcsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.pw-svcsec .wrap{position:relative;z-index:2;}
.pw-svcsec .sec-head{max-width:1000px;}
.pw-svcsec .sec-head h2 em{color:var(--ember-hi);}
.pw-svcsec .sec-head p{color:rgba(251,248,241,.74);}
.pw-svcs{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 22px;}
.pw-svc{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:32px 28px 30px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.pw-svc:hover{background:rgba(255,255,255,.07);border-color:rgba(247,143,27,.4);transform:translateY(-5px);}
/* The index hangs off the corner rather than sitting inside the card. */
.pw-svc-badge{position:absolute;left:26px;top:-17px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-size:.72rem;letter-spacing:.04em;
  box-shadow:0 12px 26px -12px rgba(247,143,27,.85);transition:transform .35s;}
.pw-svc:hover .pw-svc-badge{transform:scale(1.08);}
.pw-svc h3{font-family:'Fraunces',serif;font-size:1.24rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.3;margin-bottom:11px;}
.pw-svc p{font-size:.96rem;color:rgba(251,248,241,.76);line-height:1.72;}

/* --- S5: typography only, no rules and no boxes --- */
.pw-whysec .sec-head{max-width:960px;}
.pw-whys{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:38px 56px;}
.pw-why{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;}
.pw-why-n{font-size:1.9rem;line-height:1;color:transparent;-webkit-text-stroke:1.3px rgba(21,17,12,.24);
  transition:color .7s,-webkit-text-stroke-color .7s;transition-delay:calc(var(--i) * .1s + .2s);}
.pw-why.in .pw-why-n{color:var(--ember);-webkit-text-stroke-color:transparent;}
.pw-why p{font-size:1.05rem;color:var(--ink);line-height:1.74;padding-top:3px;}

/* --- S6: notched process cards --- */
.pw-worksec .sec-head{max-width:960px;}
.pw-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.pw-step{position:relative;background:var(--cream);border:1px solid var(--line);padding:30px 28px 32px;
  /* A cut corner where the step number sits. */
  clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,box-shadow .35s;}
.pw-step:hover{transform:translateY(-5px);background:#fff;box-shadow:0 30px 58px -34px rgba(21,17,12,.3);}
.pw-step-n{position:absolute;right:16px;top:14px;font-size:.72rem;letter-spacing:.12em;color:var(--muted-d);transition:color .35s;}
.pw-step:hover .pw-step-n{color:var(--ember-deep);}
.pw-step h3{font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.32;margin-bottom:10px;padding-right:38px;}
.pw-step p{font-size:.96rem;color:var(--muted);line-height:1.72;}

/* --- S7: the fit register (dark) --- */
.pw-whosec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.pw-whosec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.pw-whosec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.pw-whosec .wrap{position:relative;z-index:2;}
.pw-whosec .sec-head{max-width:1000px;}
.pw-whosec .sec-head h2 em{color:var(--ember-hi);}
.pw-whosec .sec-head p{color:rgba(251,248,241,.74);}
.pw-fits{border:1px solid var(--line-d);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.03);}
.pw-fit-rows{list-style:none;margin:0;padding:0;}
.pw-fit{display:grid;grid-template-columns:66px 1fr;gap:20px;align-items:center;padding:24px 28px;border-bottom:1px solid rgba(255,255,255,.07);transition:background .3s,padding-left .35s;}
.pw-fit:last-child{border-bottom:none;}
.pw-fit:hover{background:rgba(255,255,255,.05);padding-left:38px;}
.pw-fit-n{font-size:.8rem;letter-spacing:.14em;color:var(--ember-hi);}
.pw-fit p{font-size:1.02rem;color:rgba(251,248,241,.84);line-height:1.7;}
.pw-fit-note{margin-top:38px;max-width:1000px;font-size:1.06rem;line-height:1.78;color:rgba(251,248,241,.72);padding-left:24px;border-left:3px solid var(--ember);}
.pw-fit-note strong{color:#fff;font-weight:600;}

/* --- S8: three sentences that share a construction, set as one --- */
.pw-costsec .sec-head{max-width:960px;}
.pw-every{max-width:1020px;}
.pw-ev{display:block;padding:26px 0;border-bottom:1px solid var(--line);}
.pw-ev:first-child{border-top:1px solid var(--line);}
.pw-ev-lead{display:block;font-family:'Fraunces',serif;font-size:clamp(1.14rem,1.9vw,1.44rem);font-weight:500;letter-spacing:-.01em;line-height:1.4;color:var(--ink);margin-bottom:7px;}
.pw-ev-tail{display:block;font-size:1.02rem;color:var(--muted);line-height:1.7;}
.pw-close{margin-top:44px;max-width:1020px;padding:30px 32px 32px;background:var(--cream);border:1px solid var(--line);border-radius:18px;}
.pw-close p{font-size:1.04rem;color:var(--muted);line-height:1.8;}
.pw-close p + p{margin-top:16px;}
.pw-close strong{color:var(--ink);font-weight:600;}

/* --- S9/S10: CTA + FAQ --- */
.pd-cta canvas.ai-net{opacity:.5;}
.pw-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.pw-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .pd-fig-grid,.pd-live-rot i{animation:none;}
  .pd-fig-scan{display:none;}
  .pd-live-rot i{opacity:0;}
  .pd-live-rot i:first-child{opacity:1;}
  .pw-q-line i,.pw-why-n{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .pw-svcs,.pw-whys{grid-template-columns:1fr;}
  .pw-whys{gap:30px;}
  .pw-steps{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:980px){
  .pd-hero-grid{grid-template-columns:1fr;gap:42px;}
  .pd-hero-fig{order:-1;max-width:560px;}
  .pw-lede-grid{grid-template-columns:1fr;gap:44px;}
}
@media(max-width:760px){
  .pw-steps{grid-template-columns:1fr;}
  .pw-up{grid-template-columns:1fr;gap:12px;padding:24px 4px;}
  .pw-up-note{border-left:none;padding-left:0;border-top:2px solid rgba(247,143,27,.35);padding-top:10px;}
  .pw-verdict,.pw-fit-note{padding-left:18px;font-size:1.02rem;}
  .pw-why{grid-template-columns:auto 1fr;gap:14px;}
  .pw-why-n{font-size:1.5rem;}
  .pw-fit{grid-template-columns:50px 1fr;gap:14px;padding:22px;}
  .pw-fit:hover{padding-left:22px;}
  .pw-close{padding:24px 22px 26px;}
  .pd-fig-live{left:12px;bottom:12px;}
  .pd-live-rot{width:126px;}
}

/* ===== CONSULTING (execution-first, section order mirrors the copy) ===== */
.cs-hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:60px;align-items:center;}
.cs-hero-col{min-width:0;}
.cs-hero-cta{margin-top:28px;}
.cs-hero-body{margin-top:22px;display:flex;flex-direction:column;gap:16px;}
.cs-hero-body p{color:rgba(251,248,241,.74);font-size:1rem;line-height:1.72;}
/* Share one measure with the paragraphs that follow it, and keep lead weight. */
.cs-hero-body .page-hero-lead{margin-bottom:0;max-width:none;font-size:1.16rem;line-height:1.62;color:rgba(251,248,241,.88);}
.cs-hero .cs-hero-col h1{font-size:clamp(1.9rem,3.5vw,3rem);}

/* hero visual — self-drawing delivery-trajectory blueprint (no copy of its own) */
.cs-hero-vis{position:relative;min-width:0;}
.cs-vis-frame{position:relative;border-radius:22px;border:1px solid var(--line-d);background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.012));padding:26px 28px;overflow:hidden;aspect-ratio:5/4;box-shadow:0 40px 80px -50px rgba(0,0,0,.7);}
.cs-vis-frame::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 55% at 78% 18%,rgba(247,143,27,.16),transparent 70%);pointer-events:none;}
.cs-vis-grid{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,174,69,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,174,69,.09) 1px,transparent 1px);
  background-size:38px 38px;
  -webkit-mask-image:radial-gradient(120% 100% at 30% 100%,#000,transparent 78%);
          mask-image:radial-gradient(120% 100% at 30% 100%,#000,transparent 78%);}
.cs-vis-svg{position:relative;z-index:2;display:block;width:100%;height:100%;}
/* ---- live engagement delivery board ---- */
.cs-board{position:relative;z-index:2;display:flex;flex-direction:column;height:100%;}
.cs-board-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line-d);}
.cs-board-top .mono{font-size:.72rem;letter-spacing:.02em;color:var(--muted-d);}
.cs-board-live{display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.12em;color:var(--ember-hi);}
.cs-board-live i{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 0 0 rgba(255,174,69,.6);animation:cs-live 1.9s ease-out infinite;}
.cs-board-legend{display:flex;gap:18px;padding:14px 0 4px;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-d);}
.cs-lg{display:inline-flex;align-items:center;gap:7px;}
.cs-lg::before{content:"";width:16px;height:7px;border-radius:4px;}
.cs-lg-plan::before{border:1px dashed rgba(251,248,241,.4);}
.cs-lg-done::before{background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));}

.cs-board-lanes{list-style:none;margin:0;padding:0;flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;}
.cs-lane{display:grid;grid-template-columns:82px 1fr 54px;align-items:center;gap:14px;padding:9px 0;}
.cs-lane-name{font-size:.82rem;font-weight:600;color:rgba(251,248,241,.82);letter-spacing:-.01em;}
/* Dashed track = planned scope; the fill inside it = delivered. */
.cs-lane-track{position:relative;height:10px;border-radius:6px;border:1px dashed rgba(251,248,241,.26);overflow:hidden;}
.cs-lane-fill{position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);border-radius:6px;
  background:linear-gradient(90deg,var(--ember-deep),var(--ember) 62%,#FFC777);
  transform-origin:left center;transform:scaleX(0);
  animation:cs-grow 1.1s var(--d,0s) cubic-bezier(.3,.85,.25,1) both;}
.cs-lane-pct{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;font-size:.68rem;color:var(--muted-d);}
.cs-lane-pct svg{width:11px;height:11px;color:var(--ember-hi);}
.cs-lane.is-done .cs-lane-name{color:#fff;}
.cs-lane.is-done .cs-lane-pct{color:var(--ember-hi);}
.cs-lane.is-done .cs-lane-track{border-style:solid;border-color:rgba(255,174,69,.35);}

/* The sweep is the one looping element — "real-time visibility", not a redraw. */
.cs-board-sweep{position:absolute;left:96px;right:54px;top:64px;bottom:0;pointer-events:none;overflow:hidden;}
.cs-board-sweep::before{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,199,119,.7),transparent);
  box-shadow:0 0 12px 2px rgba(255,174,69,.28);animation:cs-sweep 5s 1.8s cubic-bezier(.45,0,.55,1) infinite;}
.cs-vis-pulse{position:absolute;z-index:1;top:10%;right:8%;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(255,174,69,.4),transparent 68%);filter:blur(18px);opacity:.2;animation:cs-glow 6s 2s ease-in-out infinite;}
@keyframes cs-grow{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes cs-sweep{0%{left:0;opacity:0;}8%,74%{opacity:1;}100%{left:100%;opacity:0;}}
@keyframes cs-glow{0%,100%{opacity:.22;}50%{opacity:.66;}}
@keyframes cs-live{0%{box-shadow:0 0 0 0 rgba(255,174,69,.55);}70%{box-shadow:0 0 0 9px rgba(255,174,69,0);}100%{box-shadow:0 0 0 0 rgba(255,174,69,0);}}
@media(prefers-reduced-motion:reduce){
  .cs-lane-fill{animation:none;transform:scaleX(1);}
  .cs-board-sweep,.cs-vis-pulse,.cs-board-live i{animation:none;}
  .cs-board-sweep{opacity:0;}
}
/* Hard figures pulled out of the prose without duplicating it. */
.cs-fig{font-family:'Fraunces',serif;font-weight:600;font-size:1.12em;color:var(--ember-hi);letter-spacing:-.01em;}
.cs-rightsec .cs-fig,.cs-wrongsec .cs-fig{color:var(--ember-deep);}

/* Centre every section heading on this page. */
.cs-wrongsec .sec-head,.cs-rightsec .sec-head,.cs-svcsec .sec-head,
.cs-processsec .sec-head,.cs-whosec .sec-head,.cs-faqsec .sec-head{max-width:900px;margin-left:auto;margin-right:auto;text-align:center;}
.cs-why-txt h2{text-align:center;}

/* ---- Section 2: a single light panel of divided rows. The one-container
   layout keeps it distinct from every card grid elsewhere on the page. */
.cs-faultpanel{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 34px 70px -44px rgba(21,17,12,.28);}
.cs-fault{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:22px;padding:28px 34px;transition:background .3s;}
.cs-fault+.cs-fault{border-top:1px solid var(--line);}
/* Accent bar slides down the left edge on hover. */
.cs-fault::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--ember),var(--ember-deep));transform:scaleY(0);transform-origin:top;transition:transform .38s cubic-bezier(.2,.7,.2,1);}
.cs-fault:hover{background:var(--paper-2);}
.cs-fault:hover::before{transform:scaleY(1);}
.cs-fault-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:2px;border-radius:50%;background:rgba(178,58,14,.09);color:var(--rust,#b23a0e);transition:background .3s,color .3s,transform .3s;}
.cs-fault-badge svg{width:12px;height:12px;}
.cs-fault:hover .cs-fault-badge{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(90deg);}
.cs-fault p{font-size:1.02rem;line-height:1.72;color:var(--muted);max-width:96ch;transition:color .3s;}
.cs-fault:hover p{color:var(--ink);}

/* Closing statement as a distinct insight widget rather than plain body copy. */
.cs-insight{display:flex;align-items:center;gap:24px;max-width:960px;margin:38px auto 0;padding:26px 34px;border-radius:26px;border:1px solid rgba(247,143,27,.36);
  background:linear-gradient(120deg,rgba(247,143,27,.12),var(--cream) 55%,rgba(217,101,10,.1));
  box-shadow:0 26px 56px -38px rgba(21,17,12,.3);}
.cs-insight-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;box-shadow:0 0 0 6px rgba(247,143,27,.12);}
.cs-insight-ico svg{width:25px;height:25px;}
.cs-insight p{font-size:1.06rem;line-height:1.7;color:var(--ink);font-weight:500;}

/* marked lists — the "gets wrong" / "should deliver" pairs */
.cs-marklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.cs-marklist li{display:flex;gap:15px;align-items:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:22px 24px;font-size:.98rem;line-height:1.66;color:var(--muted);transition:border-color .3s,transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,background .3s;}
.cs-marklist li:hover{transform:translateY(-4px);background:#fff;box-shadow:0 24px 46px -30px rgba(21,17,12,.3);}
.cs-marklist-x li:hover{border-color:rgba(178,58,14,.55);}
.cs-marklist-check li:hover{border-color:var(--ember);}
.cs-mark{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;margin-top:1px;}
.cs-mark svg{width:13px;height:13px;}
.cs-marklist-x .cs-mark{background:rgba(178,58,14,.12);color:var(--rust,#b23a0e);}
.cs-marklist-check .cs-mark{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
/* Odd count: let the last card span both columns rather than leaving a hole. */
.cs-marklist li:last-child:nth-child(odd){grid-column:1/-1;}
.cs-note{margin-top:28px;max-width:82ch;font-size:1.05rem;line-height:1.75;color:var(--ink);border-left:2px solid var(--ember);padding-left:22px;}

/* service cards across the stack */
.cs-svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.cs-sub{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:24px 22px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s,background .3s;}
.cs-sub:hover{transform:translateY(-5px);border-color:var(--ember);background:#fff;box-shadow:0 22px 42px -28px rgba(21,17,12,.3);}
.cs-sub-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--paper-2);color:var(--ember-deep);margin-bottom:15px;transition:background .3s,color .3s;}
.cs-sub:hover .cs-sub-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.cs-sub-ico svg{width:22px;height:22px;}
.cs-sub h3{font-size:1.04rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:7px;}
.cs-sub p{font-size:.92rem;color:var(--muted);line-height:1.55;}
.cs-svcsec .cs-sub{background:#fff;}

/* cross-service bridge callouts (Managed Services / Staff Augmentation) */
.cs-bridge{display:flex;gap:18px;align-items:flex-start;margin-top:26px;background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:16px;padding:24px 26px;}
.cs-bridge-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);}
.cs-bridge-ico svg{width:21px;height:21px;}
.cs-bridge p{font-size:1rem;line-height:1.7;color:var(--muted);}
.cs-bridge a{color:var(--ember-deep);font-weight:600;border-bottom:1px solid rgba(217,101,10,.35);transition:border-color .25s;}
.cs-bridge a:hover{border-bottom-color:var(--ember);}

/* process steps */
.cs-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:none;}
.cs-step{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:28px 26px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s,background .3s;}
.cs-step:hover{transform:translateY(-5px);border-color:var(--ember);background:#fff;box-shadow:0 24px 48px -30px rgba(21,17,12,.32);}
.cs-step-num{display:block;font-size:2.2rem;font-weight:500;line-height:1;color:transparent;-webkit-text-stroke:1.3px var(--muted-d);margin-bottom:14px;transition:-webkit-text-stroke-color .3s;}
.cs-step:hover .cs-step-num{-webkit-text-stroke-color:var(--ember);}
.cs-step h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;line-height:1.2;}
.cs-step p{font-size:.95rem;color:var(--muted);line-height:1.62;}

/* who this is for — one card per audience */
.cs-who-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.cs-who-card{position:relative;display:flex;flex-direction:column;gap:16px;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:30px 30px 32px;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s,background .3s;}
.cs-who-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--ember),var(--ember-deep));opacity:0;transition:opacity .3s;}
.cs-who-card:hover{transform:translateY(-5px);background:#fff;border-color:var(--ember);box-shadow:0 26px 52px -32px rgba(21,17,12,.32);}
.cs-who-card:hover::before{opacity:1;}
.cs-who-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .3s,transform .3s,color .3s;}
.cs-who-card:hover .cs-who-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.cs-who-ico svg{width:23px;height:23px;}
.cs-who-card p{font-size:1.04rem;line-height:1.68;color:var(--ink);max-width:46ch;}
.cs-who-idx{position:absolute;right:22px;top:20px;font-size:.72rem;letter-spacing:.06em;color:var(--muted-d);transition:color .3s;}
.cs-who-card:hover .cs-who-idx{color:var(--ember-deep);}

/* why choose (sticky image + numbered reasons) */
.cs-why-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:58px;align-items:stretch;}
/* The wrapper stretches to the full row height; without that the sticky figure
   would have no containing block to travel inside and would just scroll away. */
.cs-why-figwrap{min-width:0;}
.cs-why-fig{position:sticky;top:104px;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 44px 86px -44px rgba(21,17,12,.5);aspect-ratio:3/2;}
.cs-why-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.cs-why-fig:hover img{transform:scale(1.04);}
.cs-why-badge{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.78);color:#fff;font-size:.6rem;letter-spacing:.12em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(5px);}
.cs-why-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.cs-why-txt h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:26px;}
.cs-why-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.cs-why-item{display:flex;gap:18px;align-items:flex-start;padding:18px 16px;border-radius:14px;transition:background .3s;}
.cs-why-item:hover{background:var(--cream);}
.cs-why-num{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--ember-deep);width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:var(--cream);}
.cs-why-item:hover .cs-why-num{background:#fff;border-color:var(--ember);}
.cs-why-item h3{font-family:'Fraunces',serif;font-size:1.22rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:6px;}
.cs-why-item p{font-size:.98rem;color:var(--muted);line-height:1.6;}
/* Reason list carries no sub-headings, so give the copy a touch more presence. */
.cs-why-plain .cs-why-item p{font-size:1rem;line-height:1.68;padding-top:8px;}

/* CTA: long heading needs a wider measure, tighter leading and balanced wrapping
   so the italic clause doesn't strand a single word on its own line. */
.cs-cta .cta-inner{max-width:1040px;}
.cs-cta .cta-inner h2{font-size:clamp(1.75rem,3.2vw,2.75rem);line-height:1.14;margin:0 0 22px;text-wrap:balance;}
.cs-cta .cta-inner h2 em{display:inline;}
.cs-cta .cta-inner>p{max-width:74ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.cs-cta .cta-cta{margin-top:32px;}

/* Question boxes run the full content width. */
.cs-faq{max-width:none;}
.cs-faq .faq-q{padding:22px 28px;}
.cs-faq .faq-a{padding:0 28px 26px 78px;}

.cs-cta canvas.ai-net{opacity:.5;}

@media(max-width:1080px){
  .cs-svc-grid{grid-template-columns:repeat(2,1fr);}
  .cs-hero-grid{gap:40px;}
}
@media(max-width:980px){
  /* Single column: the hero visual would only crowd the copy, so retire it. */
  .cs-hero-grid{grid-template-columns:1fr;gap:0;}
  .cs-hero-vis{display:none;}
  .cs-why-grid{grid-template-columns:1fr;gap:34px;}
  .cs-why-figwrap{order:-1;}
  .cs-why-fig{position:relative;top:auto;}
  .cs-steps{grid-template-columns:repeat(2,1fr);}
  .cs-who-grid{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .cs-marklist{grid-template-columns:1fr;}
  .cs-marklist li{padding:20px;}
  .cs-svc-grid,.cs-steps{grid-template-columns:1fr;}
  .cs-bridge{flex-direction:column;gap:14px;padding:22px;}
  .cs-note{padding-left:16px;font-size:1rem;}
  .cs-hero-body p{font-size:.96rem;}
  .cs-who-card{padding:26px 24px 28px;}
  .cs-faq .faq-q{padding:18px 20px;}
  .cs-faq .faq-a{padding:0 20px 22px 20px;}
  .cs-fault{padding:22px 20px;gap:16px;}
  .cs-fault p{font-size:.98rem;}
  .cs-insight{flex-direction:column;align-items:flex-start;gap:16px;padding:24px;border-radius:20px;}
}

/* ===== SERVICENOW (certified partner platform) ===== */
.sn-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:center;}
.sn-hero-txt h1{margin-top:14px;}
.sn-reg{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--ember);color:#fff;font-size:.62rem;margin-right:7px;vertical-align:middle;}
.sn-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* certified partner badge (official image, interactive) */
.sn-seal{position:relative;z-index:2;width:100%;max-width:380px;margin:0 auto;display:grid;place-items:center;aspect-ratio:1;cursor:pointer;outline:none;}
.sn-seal-halo{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.28),transparent 68%);filter:blur(14px);z-index:0;animation:snHalo 5s ease-in-out infinite;transition:opacity .4s,background .4s;}
@keyframes snHalo{0%,100%{transform:scale(1);opacity:.7;}50%{transform:scale(1.08);opacity:1;}}
.sn-seal:hover .sn-seal-halo,.sn-seal:focus-visible .sn-seal-halo{background:radial-gradient(circle,rgba(247,143,27,.42),transparent 70%);}
.sn-badge-float{position:relative;z-index:1;width:78%;margin:0 auto;display:block;animation:snFloat 6s ease-in-out infinite;}
.sn-badge-img{display:block;width:100%;height:auto;border-radius:18px;filter:drop-shadow(0 26px 50px rgba(0,0,0,.55));transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .45s;}
.sn-seal:hover .sn-badge-img,.sn-seal:focus-visible .sn-badge-img{transform:scale(1.05) rotate(-2deg);filter:drop-shadow(0 32px 60px rgba(0,0,0,.6)) drop-shadow(0 0 26px rgba(247,143,27,.5));}
.sn-seal:active .sn-badge-img{transform:scale(.97);}
.sn-badge-shine{position:absolute;inset:0;border-radius:18px;overflow:hidden;pointer-events:none;}
.sn-badge-shine::before{content:"";position:absolute;top:-60%;left:-130%;width:55%;height:220%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:rotate(8deg);transition:left .75s cubic-bezier(.2,.7,.2,1);}
.sn-seal:hover .sn-badge-shine::before,.sn-seal:focus-visible .sn-badge-shine::before{left:150%;}
@keyframes snFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
.sn-badge-float.is-tapped{animation:snPop .55s cubic-bezier(.2,.7,.2,1);}
@keyframes snPop{0%{transform:translateY(0) scale(1) rotate(0);}28%{transform:scale(.93) rotate(-3deg);}55%{transform:scale(1.07) rotate(2deg);}100%{transform:translateY(0) scale(1) rotate(0);}}
@media(prefers-reduced-motion:reduce){.sn-seal-halo,.sn-badge-float{animation:none;}.sn-badge-img,.sn-badge-shine::before{transition:none;}}

/* credentials band */
.sn-creds{position:relative;z-index:2;margin-top:54px;padding-top:30px;border-top:1px solid var(--line-d);display:flex;flex-wrap:wrap;align-items:center;gap:26px 44px;}
.sn-cred-stat{display:flex;flex-direction:column;}
.sn-cred-num{font-size:2.6rem;font-weight:500;color:var(--ember-hi);line-height:1;}
.sn-cred-lbl{font-size:.86rem;color:rgba(251,248,241,.66);margin-top:6px;max-width:190px;}
.sn-cred-feats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px;}
.sn-cred-feats li{display:inline-flex;align-items:center;gap:9px;font-size:.92rem;color:rgba(251,248,241,.82);font-weight:500;}
.sn-feat-dot{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px rgba(247,143,27,.7);}

/* case studies (light, real image, linked) */
.sn-cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.sn-case{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.sn-case:hover{transform:translateY(-6px);border-color:var(--ember);box-shadow:0 30px 56px -32px rgba(21,17,12,.34);}
.sn-case-fig{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ink);}
.sn-case-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.sn-case:hover .sn-case-fig img{transform:scale(1.06);}
.sn-case-tag{position:absolute;left:14px;top:14px;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(21,17,12,.72);border:1px solid var(--line-d);padding:6px 12px;border-radius:100px;backdrop-filter:blur(5px);}
.sn-case-body{display:flex;flex-direction:column;flex:1;padding:26px 26px 28px;}
.sn-case h3{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:10px;}
.sn-case p{font-size:.96rem;color:var(--muted);line-height:1.6;margin-bottom:18px;}
.sn-case-link{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ember-deep);font-weight:500;}
.sn-case-link .arr{transition:transform .25s;}
.sn-case:hover .sn-case-link .arr{transform:translateX(4px);}
.sn-cta canvas.ai-net{opacity:.5;}

/* badge orbit: the credentials the badge itself carries, circling it. The chip
   is rotated into place, the inner <i> cancels that angle and the inner <b>
   cancels the parent's spin, so the labels stay upright the whole way round. */
.sn-orbit{position:absolute;inset:0;z-index:2;pointer-events:none;}
.sn-orbit-ring{position:absolute;left:50%;top:50%;width:96%;height:96%;margin:-48% 0 0 -48%;border-radius:50%;border:1px dashed rgba(247,143,27,.34);animation:snRing 34s linear infinite;}
.sn-orbit-ring.r2{width:78%;height:78%;margin:-39% 0 0 -39%;border-style:solid;border-color:rgba(251,248,241,.1);animation-duration:24s;animation-direction:reverse;}
@keyframes snRing{to{transform:rotate(360deg);}}
.sn-orbit-sweep{position:absolute;left:50%;top:50%;width:96%;height:96%;margin:-48% 0 0 -48%;border-radius:50%;background:conic-gradient(from 0deg,rgba(247,143,27,.32),rgba(247,143,27,0) 26%,rgba(247,143,27,0) 100%);-webkit-mask:radial-gradient(circle,transparent 46%,#000 47%,#000 50%,transparent 51%);mask:radial-gradient(circle,transparent 46%,#000 47%,#000 50%,transparent 51%);animation:snRing 6.5s linear infinite;}
.sn-orbit-spin{position:absolute;inset:0;animation:snRing 26s linear infinite;}
.sn-orbit-chip{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(-1 * var(--orb,186px)));}
.sn-orbit-chip i{display:block;font-style:normal;transform:rotate(calc(-1 * var(--a)));}
.sn-orbit-chip b{display:block;font-weight:400;animation:snRingBack 26s linear infinite;}
@keyframes snRingBack{to{transform:rotate(-360deg);}}
.sn-orbit-chip .mono{display:block;white-space:nowrap;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:rgba(251,248,241,.9);background:rgba(21,17,12,.72);border:1px solid rgba(247,143,27,.4);border-radius:100px;padding:7px 13px;backdrop-filter:blur(6px);box-shadow:0 12px 28px -14px rgba(0,0,0,.8);}
.sn-seal:hover .sn-orbit-chip .mono,.sn-seal:focus-visible .sn-orbit-chip .mono{border-color:rgba(247,143,27,.8);color:#fff;}
@media(prefers-reduced-motion:reduce){
  .sn-orbit-ring,.sn-orbit-sweep,.sn-orbit-spin,.sn-orbit-chip b{animation:none;}
}

/* ---- 2. why servicenow projects stall: read as an incident log ---- */
.nw-stallsec .sec-head{max-width:800px;}
.nw-log{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -44px rgba(21,17,12,.55);}
.nw-log-head{display:grid;grid-template-columns:112px 148px 1fr;gap:22px;padding:14px 26px;background:var(--ink);color:rgba(251,248,241,.6);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;}
.nw-log-rows{list-style:none;margin:0;padding:0;}
.nw-rec{display:grid;grid-template-columns:112px 148px 1fr;gap:22px;align-items:center;padding:20px 26px;border-top:1px solid var(--line);transition:background .3s;}
.nw-rec:first-child{border-top:0;}
.nw-rec:hover{background:var(--paper);}
.nw-rec-id{font-size:.72rem;letter-spacing:.06em;color:var(--muted-d);}
.nw-rec-state{display:inline-flex;align-items:center;gap:8px;justify-self:start;font-size:.6rem;letter-spacing:.14em;color:var(--rust);background:rgba(178,58,14,.08);border:1px solid rgba(178,58,14,.28);border-radius:100px;padding:6px 12px;}
.nw-rec-dot{width:6px;height:6px;border-radius:50%;background:var(--rust);animation:nwPing 2.4s ease-in-out infinite;animation-delay:calc(var(--i) * .28s);}
@keyframes nwPing{0%,100%{opacity:.35;box-shadow:0 0 0 0 rgba(178,58,14,.45);}50%{opacity:1;box-shadow:0 0 0 5px rgba(178,58,14,0);}}
.nw-rec-txt{font-size:.98rem;line-height:1.62;color:var(--muted);}
.nw-log-scan{position:absolute;left:0;right:0;top:0;height:82px;pointer-events:none;background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.1) 60%,rgba(247,143,27,0));animation:nwScan 7s ease-in-out infinite;}
@keyframes nwScan{0%,8%{transform:translateY(46px);opacity:0;}18%{opacity:1;}82%{opacity:1;}92%,100%{transform:translateY(100%);opacity:0;}}
.nw-verdict{margin-top:34px;font-family:'Fraunces',serif;font-size:clamp(1.1rem,1.9vw,1.5rem);line-height:1.6;letter-spacing:-.01em;color:var(--muted);padding-left:26px;border-left:4px solid var(--ember);}
.nw-verdict strong{color:var(--ink);font-weight:500;}

/* ---- 3. what it should deliver: live platform readouts ---- */
.nw-delivsec .sec-head{max-width:860px;}
.nw-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.nw-tile{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:20px 20px 26px;transition-delay:calc(var(--i) * 70ms);transition-property:opacity,transform,border-color,box-shadow;}
.nw-tile:hover{transition-delay:0s;border-color:rgba(247,143,27,.45);box-shadow:0 30px 54px -36px rgba(21,17,12,.42);}
.nw-tile-screen{display:block;height:78px;border-radius:12px;background:linear-gradient(160deg,#1d170f,#100c08);border:1px solid rgba(255,255,255,.09);position:relative;overflow:hidden;}
.nw-tile-label{display:block;margin:18px 0 9px;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);}
.nw-tile p{font-size:.93rem;line-height:1.66;color:var(--muted);}
.nw-w{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ember-hi);}
/* data-quality meter climbing */
.nw-w-quality{flex-direction:column;gap:10px;}
.nw-w-track{width:64%;height:8px;border-radius:100px;background:rgba(251,248,241,.14);overflow:hidden;}
.nw-w-fill{display:block;height:100%;width:100%;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));transform-origin:left;animation:nwFill 4.6s cubic-bezier(.3,.8,.3,1) infinite;}
@keyframes nwFill{0%{transform:scaleX(.12);}55%,88%{transform:scaleX(1);}100%{transform:scaleX(.12);}}
.nw-w-read{font-size:.54rem;letter-spacing:.2em;color:rgba(251,248,241,.5);}
/* four phases landing one after another */
.nw-w-phases{gap:7px;}
.nw-w-phases i{width:15px;height:34px;border-radius:4px;background:rgba(251,248,241,.14);animation:nwPhase 4.4s ease-in-out infinite;}
.nw-w-phases i:nth-child(2){animation-delay:.35s;}
.nw-w-phases i:nth-child(3){animation-delay:.7s;}
.nw-w-phases i:nth-child(4){animation-delay:1.05s;}
@keyframes nwPhase{0%,72%,100%{background:rgba(251,248,241,.14);transform:scaleY(.72);}14%,60%{background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));transform:scaleY(1);}}
/* three swim lanes carrying work across */
.nw-w-lanes{flex-direction:column;gap:9px;}
.nw-w-lane{position:relative;width:66%;height:6px;border-radius:100px;background:rgba(251,248,241,.13);overflow:hidden;}
.nw-w-lane i{position:absolute;top:0;bottom:0;left:0;width:34%;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));animation:nwLane 3.4s ease-in-out infinite;}
.nw-w-lane:nth-child(2) i{animation-delay:.4s;}
.nw-w-lane:nth-child(3) i{animation-delay:.8s;}
@keyframes nwLane{0%{transform:translateX(-110%);}55%,100%{transform:translateX(300%);}}
/* the shield holding as releases tick over */
.nw-w-shield svg{width:46px;height:46px;}
.nw-w-tick{stroke-dasharray:1;stroke-dashoffset:1;animation:nwDraw 4s ease-in-out infinite;}
@keyframes nwDraw{0%,10%{stroke-dashoffset:1;}45%,80%{stroke-dashoffset:0;}95%,100%{stroke-dashoffset:1;}}
/* a KPI trend drawing itself */
.nw-w-kpi svg{width:82%;height:auto;}
.nw-w-line{stroke-dasharray:1;stroke-dashoffset:1;animation:nwDraw 4.6s ease-in-out infinite;}

/* ---- 4. services: dark module panels ---- */
.nw-svcsec{background:var(--ink);color:var(--cream);position:relative;overflow:hidden;}
.nw-svcsec .hero-glow.glow-1{width:560px;height:560px;background:var(--ember-deep);opacity:.16;right:-190px;top:-180px;left:auto;}
.nw-svcsec canvas.ai-net{position:absolute;inset:0;width:100%;height:100%;opacity:.3;}
.nw-svcsec .wrap{position:relative;z-index:2;}
.nw-svcsec .sec-head{max-width:900px;}
.nw-svcsec .sec-head h2{color:#fff;}
.nw-svcsec .sec-head h2 em{color:var(--ember-hi);}
.nw-svcsec .sec-head p{color:rgba(251,248,241,.7);}
.nw-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.nw-module{position:relative;overflow:hidden;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:18px;padding:24px 24px 30px;transition:transform .4s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;}
.nw-module:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.45);}
.nw-mod-ghost{position:absolute;right:-6px;top:-14px;font-size:4.4rem;font-weight:700;letter-spacing:-.04em;color:rgba(251,248,241,.045);pointer-events:none;transition:color .35s;}
.nw-module:hover .nw-mod-ghost{color:rgba(247,143,27,.12);}
.nw-mod-code{position:relative;display:inline-flex;align-items:center;gap:9px;font-size:.6rem;letter-spacing:.16em;color:var(--ember-hi);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);border-radius:100px;padding:6px 13px;}
.nw-mod-live{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);animation:nwLive 2.2s ease-in-out infinite;}
@keyframes nwLive{0%,100%{opacity:.4;box-shadow:0 0 0 0 rgba(255,174,69,.5);}50%{opacity:1;box-shadow:0 0 0 6px rgba(255,174,69,0);}}
.nw-module h3{position:relative;font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin:18px 0 10px;}
.nw-module p{position:relative;font-size:.94rem;line-height:1.68;color:rgba(251,248,241,.7);}
.nw-mod-rail{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(251,248,241,.08);overflow:hidden;}
.nw-mod-rail::after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;background:linear-gradient(90deg,transparent,var(--ember),transparent);transform:translateX(-110%);transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.nw-module:hover .nw-mod-rail::after{transform:translateX(320%);}

/* ---- 5. why businesses choose inabia: a filling scorecard ---- */
.nw-whysec .sec-head{max-width:820px;}
.nw-score{list-style:none;border-top:1px solid var(--line);}
.nw-score-row{display:grid;grid-template-columns:56px 1fr 190px;align-items:center;gap:28px;padding:24px 4px;border-bottom:1px solid var(--line);transition-delay:calc(var(--i) * 70ms);transition-property:opacity,transform;}
.nw-score-n{font-size:.74rem;letter-spacing:.1em;color:var(--muted-d);}
.nw-score-row p{font-size:1.04rem;line-height:1.6;color:var(--ink);}
.nw-score-meter{display:flex;align-items:center;gap:14px;}
.nw-score-track{flex:1;height:6px;border-radius:100px;background:var(--paper-2);overflow:hidden;}
.nw-score-fill{display:block;height:100%;width:100%;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember));transform-origin:left;animation:nwScore 5.2s cubic-bezier(.3,.8,.3,1) infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes nwScore{0%{transform:scaleX(0);}42%,86%{transform:scaleX(1);}100%{transform:scaleX(0);}}
.nw-score-seal{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ember);color:var(--ember-deep);}
.nw-score-seal svg{width:15px;height:15px;stroke-dasharray:1;stroke-dashoffset:1;animation:nwDraw 5.2s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
.nw-score-row:hover .nw-score-seal{background:var(--ember);color:#fff;border-color:var(--ember);}

/* ---- 6. our implementation process: a phased roadmap ---- */
.nw-procsec{background:var(--ink-2);color:var(--cream);position:relative;overflow:hidden;}
.nw-procsec .hero-glow.glow-1{width:520px;height:520px;background:var(--ember-deep);opacity:.14;left:-170px;bottom:-190px;top:auto;}
.nw-procsec canvas.ai-net{position:absolute;inset:0;width:100%;height:100%;opacity:.26;}
.nw-procsec .wrap{position:relative;z-index:2;}
.nw-procsec .sec-head h2{color:#fff;}
.nw-procsec .sec-head h2 em{color:var(--ember-hi);}
.nw-phases{--nw-turn:46px;--nw-rowgap:44px;list-style:none;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--nw-rowgap) 22px;padding-right:var(--nw-turn);}
/* Row two runs back the other way, so 04 sits under 03 and the line ends at 06. */
.nw-phase:nth-child(4){order:6;}
.nw-phase:nth-child(5){order:5;}
.nw-phase:nth-child(6){order:4;}
.nw-phase{position:relative;padding-top:34px;}
.nw-phase-rail{position:absolute;left:0;right:-22px;top:7px;height:2px;background:rgba(251,248,241,.12);overflow:hidden;}
.nw-phase:nth-child(3) .nw-phase-rail,.nw-phase:nth-child(4) .nw-phase-rail{right:0;}
.nw-phase-pulse{position:absolute;top:0;bottom:0;left:0;width:42%;background:linear-gradient(90deg,transparent,var(--ember),transparent);animation:nwPulse 5.4s linear infinite;animation-delay:calc(var(--i) * .55s);}
.nw-phase:nth-child(n+4) .nw-phase-pulse{animation-direction:reverse;}
@keyframes nwPulse{0%{transform:translateX(-110%);}60%,100%{transform:translateX(300%);}}
/* the bend: hooks the end of row one round to the start of row two */
.nw-turn{position:absolute;right:calc(-1 * var(--nw-turn));top:7px;width:var(--nw-turn);height:calc(100% + var(--nw-rowgap));border:2px solid rgba(251,248,241,.12);border-left:0;border-radius:0 999px 999px 0;}
.nw-turn-glow{position:absolute;inset:-2px;border:2px solid var(--ember);border-left:0;border-radius:0 999px 999px 0;opacity:0;animation:nwTurn 5.4s ease-in-out 1.5s infinite;}
@keyframes nwTurn{0%,12%{opacity:0;}22%{opacity:.9;}40%,100%{opacity:0;}}
.nw-phase-node{position:absolute;left:0;top:2px;width:12px;height:12px;border-radius:50%;background:var(--ink-2);border:2px solid var(--ember);animation:nwNode 5.4s ease-in-out infinite;animation-delay:calc(var(--i) * .55s);}
@keyframes nwNode{0%,100%{background:var(--ink-2);box-shadow:0 0 0 0 rgba(247,143,27,.5);}22%{background:var(--ember);box-shadow:0 0 0 7px rgba(247,143,27,0);}}
.nw-phase-n{display:block;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember);margin-bottom:12px;}
.nw-phase h3{font-family:'Fraunces',serif;font-size:1.22rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:10px;}
.nw-phase p{font-size:.95rem;line-height:1.68;color:rgba(251,248,241,.66);}

/* ---- 7. who this is for: a scope check ---- */
.nw-whosec .sec-head{max-width:820px;}
.nw-scope{max-width:900px;background:var(--cream);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 32px 62px -46px rgba(21,17,12,.5);}
.nw-scope-head{display:flex;align-items:center;gap:10px;padding:15px 30px;background:var(--paper-2);border-bottom:1px solid var(--line);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.nw-scope-dot{width:7px;height:7px;border-radius:50%;background:var(--ember);animation:nwLive 2.2s ease-in-out infinite;}
.nw-scope-list{list-style:none;margin:0;padding:12px 30px 6px;}
.nw-scope-list li{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px dashed var(--line);font-size:1.02rem;line-height:1.62;color:var(--ink);}
.nw-scope-list li:last-child{border-bottom:0;}
.nw-scope-box{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;margin-top:2px;border-radius:7px;border:1.5px solid var(--ember);color:var(--ember-deep);}
.nw-scope-box svg{width:15px;height:15px;stroke-dasharray:1;stroke-dashoffset:1;animation:nwDraw 6s ease-in-out infinite;animation-delay:calc(var(--i) * .45s);}
.nw-scope-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:22px 30px 24px;background:var(--paper-2);border-top:1px solid var(--line);}
.nw-sectors{display:flex;flex-wrap:wrap;gap:9px;}
.nw-sector{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);background:var(--cream);border:1px solid rgba(247,143,27,.35);border-radius:100px;padding:7px 14px;font-weight:500;}
.nw-scope-foot p{font-size:.96rem;color:var(--muted);line-height:1.6;}

/* ---- 9. faq ---- */
.nw-faqsec .sec-head{max-width:960px;margin-left:auto;margin-right:auto;text-align:center;}
.nw-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .nw-rec-dot,.nw-log-scan,.nw-w-fill,.nw-w-phases i,.nw-w-lane i,.nw-w-tick,.nw-w-line,
  .nw-mod-live,.nw-score-fill,.nw-score-seal svg,.nw-phase-pulse,.nw-phase-node,
  .nw-scope-dot,.nw-scope-box svg{animation:none;}
  .nw-w-fill,.nw-score-fill{transform:scaleX(1);}
  .nw-w-tick,.nw-w-line,.nw-score-seal svg,.nw-scope-box svg{stroke-dashoffset:0;}
  .nw-log-scan{display:none;}
}

@media(max-width:1180px){
  .nw-tiles{grid-template-columns:repeat(3,1fr);}
  .nw-modules{grid-template-columns:repeat(2,1fr);}
  .nw-phases{grid-template-columns:repeat(2,1fr);padding-right:0;}
  .nw-phase{order:0!important;}
  .nw-turn{display:none;}
  .nw-phase:nth-child(3) .nw-phase-rail{right:-22px;}
  .nw-phase:nth-child(2n) .nw-phase-rail{right:0;}
  .nw-phase:nth-child(n+4) .nw-phase-pulse{animation-direction:normal;}
}
@media(max-width:980px){
  .sn-hero-grid{grid-template-columns:1fr;gap:40px;}
  .sn-seal{order:-1;max-width:300px;}
  .sn-seal .sn-badge-float{width:70%;}
  .sn-orbit-chip{--orb:158px;}
  .sn-orbit-chip .mono{font-size:.54rem;padding:6px 10px;}
  .sn-cases-grid{grid-template-columns:repeat(2,1fr);}
  .nw-score-row{grid-template-columns:44px 1fr;gap:8px 18px;}
  .nw-score-meter{grid-column:2;max-width:230px;}
}
@media(max-width:760px){
  .nw-log-head{display:none;}
  .nw-rec{grid-template-columns:1fr;gap:10px;padding:20px 22px;}
  .nw-rec-state{justify-self:start;}
  .nw-tiles{grid-template-columns:repeat(2,1fr);}
  .nw-modules,.nw-phases{grid-template-columns:1fr;}
  .nw-phase:nth-child(4) .nw-phase-rail{right:0;}
  .nw-phase-rail{right:0!important;}
  .nw-scope-foot{padding:20px 22px 22px;}
  .nw-scope-list{padding:10px 22px 6px;}
  .nw-scope-head{padding:14px 22px;}
}
@media(max-width:640px){
  .sn-creds{gap:22px;}
  /* Too narrow for the chips to clear the badge — the rings carry the motion. */
  .sn-orbit-spin{display:none;}
  .sn-seal .sn-badge-float{width:80%;}
  .sn-cases-grid{grid-template-columns:1fr;}
  .nw-tiles{grid-template-columns:1fr;}
  .nw-verdict{padding-left:18px;}
}

/* ===== WORKDAY (people / workforce) ===== */
.wd-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center;}
.wd-hero-txt h1{margin-top:14px;}
.wd-hero-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.wd-pill{display:inline-flex;align-items:center;font-size:.84rem;font-weight:600;color:rgba(251,248,241,.9);background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:100px;padding:8px 18px;}
.wd-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:24px;}

/* hero figure + overlapping self-service card */
.wd-hero-fig{position:relative;z-index:2;border-radius:22px;overflow:visible;aspect-ratio:3/2;}
.wd-hero-fig img{width:100%;height:100%;object-fit:cover;display:block;border-radius:22px;border:1px solid var(--line-d);box-shadow:0 50px 90px -42px rgba(0,0,0,.72);}
.wd-fig-chip{position:absolute;z-index:3;top:16px;right:16px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.14em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);}
.wd-fig-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.wd-hero-card{position:absolute;z-index:4;right:-22px;bottom:-26px;width:266px;max-width:72%;background:rgba(24,18,12,.72);border:1px solid var(--line-d);border-radius:16px;padding:15px 16px;backdrop-filter:blur(12px);box-shadow:0 30px 60px -30px rgba(0,0,0,.8);animation:wdCardFloat 6s ease-in-out infinite;}
@keyframes wdCardFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@media(prefers-reduced-motion:reduce){.wd-hero-card{animation:none;}}
.wd-card-top{display:flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(251,248,241,.7);margin-bottom:12px;}
.wd-card-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;}
.wd-card-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(255,255,255,.07);}
.wd-card-ava{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.wd-card-ava.alt{background:linear-gradient(150deg,#4f7cff,#2a4bd0);}
.wd-card-txt{font-size:.84rem;color:#fff;font-weight:500;}
.wd-card-ok{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;color:#28c840;background:rgba(40,200,64,.12);border:1px solid rgba(40,200,64,.3);border-radius:100px;padding:4px 9px;white-space:nowrap;}

/* --- hero figure animation (photo unchanged; effects layered on top) --- */
.wk-grid{position:absolute;inset:0;z-index:2;border-radius:22px;pointer-events:none;background-image:linear-gradient(rgba(247,143,27,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(247,143,27,.16) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(120% 90% at 70% 30%,#000 10%,transparent 76%);-webkit-mask-image:radial-gradient(120% 90% at 70% 30%,#000 10%,transparent 76%);opacity:.75;animation:wkGrid 9s ease-in-out infinite;}
@keyframes wkGrid{0%,100%{opacity:.5;}50%{opacity:.9;}}
.wk-scan{position:absolute;inset:0;z-index:3;border-radius:22px;overflow:hidden;pointer-events:none;}
.wk-scan::after{content:"";position:absolute;left:-30%;right:-30%;height:42%;top:-42%;background:linear-gradient(180deg,transparent,rgba(255,174,69,.22) 45%,rgba(255,214,158,.42) 60%,transparent);filter:blur(1px);animation:wkScan 5.4s cubic-bezier(.45,0,.2,1) infinite;}
@keyframes wkScan{0%{top:-45%;opacity:0;}12%{opacity:1;}82%{opacity:1;}100%{top:105%;opacity:0;}}
.wk-readout{position:absolute;z-index:4;left:16px;top:16px;display:flex;align-items:center;gap:10px;background:rgba(21,17,12,.68);border:1px solid var(--line-d);border-radius:100px;padding:7px 15px 7px 13px;backdrop-filter:blur(8px);}
.wk-readout-lbl{font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(251,248,241,.55);}
.wk-readout-rot{position:relative;display:block;width:112px;height:15px;overflow:hidden;}
.wk-readout-rot b{position:absolute;left:0;top:0;width:100%;font-size:.66rem;font-weight:600;letter-spacing:.03em;color:var(--ember-hi);white-space:nowrap;opacity:0;transform:translateY(100%);animation:wkRot 13.2s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--i)*2.2s);}
@keyframes wkRot{0%{opacity:0;transform:translateY(100%);}3%{opacity:1;transform:translateY(0);}13.6%{opacity:1;transform:translateY(0);}17%{opacity:0;transform:translateY(-100%);}100%{opacity:0;transform:translateY(-100%);}}
.wk-row{opacity:0;transform:translateY(6px);animation:wkRowIn .7s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:.7s;}
.wk-row-2{animation-delay:1.15s;}
@keyframes wkRowIn{to{opacity:1;transform:none;}}
.wd-hero-fig .wd-card-ok{animation:wkOkPop 6s ease-in-out infinite;}
@keyframes wkOkPop{0%,86%,100%{box-shadow:0 0 0 0 rgba(40,200,64,0);}90%{box-shadow:0 0 0 4px rgba(40,200,64,.18);}}
@media(prefers-reduced-motion:reduce){
  .wk-grid,.wk-scan::after,.wk-readout-rot b,.wk-row,.wd-hero-fig .wd-card-ok{animation:none;}
  .wk-row{opacity:1;transform:none;}
  .wk-readout-rot b{opacity:0;}
  .wk-readout-rot b:first-child{opacity:1;transform:none;}
}

/* --- shared section head --- */
.wk-head{max-width:70ch;margin-bottom:52px;}
.wk-head .eyebrow{margin-bottom:14px;}
.wk-head h2{font-size:clamp(1.95rem,3.5vw,2.75rem);margin-bottom:16px;text-wrap:balance;}
.wk-head p{color:var(--muted);font-size:1.06rem;line-height:1.85;}
.wk-head-light h2 em{color:var(--ember-hi);}
.wk-head-light p{color:rgba(251,248,241,.74);}

/* --- LEDE: install vs implement + decision-lag timeline --- */
.wk-lede-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:60px;align-items:start;}
.wk-lede-txt .eyebrow{margin-bottom:14px;}
.wk-lede-txt h2{font-size:clamp(1.95rem,3.5vw,2.7rem);margin-bottom:14px;text-wrap:balance;}
.wk-lede-kick{font-family:'Fraunces',serif;font-size:1.24rem;font-style:italic;color:var(--ember-deep);line-height:1.5;margin-bottom:22px;padding-left:16px;border-left:2px solid var(--ember);}
.wk-lede-txt p{color:var(--muted);font-size:1.04rem;line-height:1.85;margin-bottom:16px;}
.wk-lede-btn{margin-top:12px;}
.wk-lag{position:sticky;top:112px;background:linear-gradient(165deg,#241a10,#15110c);border:1px solid var(--line-d);border-radius:22px;padding:22px 24px 24px;box-shadow:0 46px 90px -48px rgba(0,0,0,.72);}
.wk-lag-head{display:flex;align-items:center;justify-content:space-between;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(251,248,241,.5);padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.09);}
.wk-lag-live{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 10px var(--ember);animation:msLive 1.9s infinite;}
.wk-lag-track{position:relative;height:74px;margin:20px 0 4px;}
.wk-lag-rule{position:absolute;left:0;right:0;top:11px;height:1px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.22) 0 7px,transparent 7px 14px);}
.wk-lag-win{position:absolute;top:0;height:23px;border-radius:6px;display:block;}
.wk-lag-win i{position:absolute;inset:0;border-radius:6px;display:block;}
.wk-lag-a{left:6%;width:15%;background:rgba(247,143,27,.16);border:1px solid rgba(247,143,27,.55);}
.wk-lag-a i{background:var(--ember);opacity:.35;transform-origin:left;transform:scaleX(0);animation:wkFill 1s cubic-bezier(.2,.7,.2,1) forwards;}
.wk-lag-b{right:6%;width:22%;background:rgba(178,58,14,.18);border:1px solid rgba(178,58,14,.6);}
.wk-lag-b i{background:var(--rust);opacity:.45;transform-origin:left;transform:scaleX(0);animation:wkFill 1s cubic-bezier(.2,.7,.2,1) 1.7s forwards;}
@keyframes wkFill{to{transform:scaleX(1);}}
.wk-lag-arc{position:absolute;left:0;right:0;top:14px;width:100%;height:60px;overflow:visible;}
.wk-lag-path{stroke-dashoffset:0;animation:wkArc 2.6s linear infinite;}
@keyframes wkArc{to{stroke-dashoffset:-40;}}
.wk-lag-legend{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-top:12px;}
.wk-lag-leg span{display:block;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:6px;}
.wk-lag-leg-b span{color:#ff8f6b;}
.wk-lag-leg b{display:block;font-family:'Fraunces',serif;font-size:1.02rem;font-weight:500;color:#fff;margin-bottom:5px;}
.wk-lag-leg p{font-size:.83rem;line-height:1.55;color:rgba(251,248,241,.6);}
.wk-lag-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.09);}
.wk-stat b{display:block;font-family:'Fraunces',serif;font-size:2.3rem;font-weight:500;line-height:1;color:var(--ember-hi);letter-spacing:-.02em;}
.wk-stat b i{font-style:normal;font-size:1.1rem;margin-left:2px;}
.wk-stat span{display:block;margin-top:8px;font-size:.8rem;line-height:1.5;color:rgba(251,248,241,.6);}

/* --- WHERE IT GOES WRONG: rotated spine cards --- */
.wk-wrongs{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.wk-wrong{display:grid;grid-template-columns:40px 1fr;background:var(--cream);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:border-color .35s,box-shadow .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.wk-wrong:first-child{grid-column:1/-1;}
.wk-wrong:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 30px 56px -34px rgba(21,17,12,.34);}
.wk-wrong-spine{display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);background:var(--ink);color:var(--ember-hi);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;padding:16px 0;transition:background .35s,color .35s;}
.wk-wrong:hover .wk-wrong-spine{background:linear-gradient(180deg,var(--ember-deep),var(--rust));color:#fff;}
.wk-wrong-body{position:relative;padding:26px 28px 26px 26px;}
.wk-wrong-n{position:absolute;top:20px;right:22px;font-size:.68rem;letter-spacing:.1em;color:rgba(21,17,12,.2);}
.wk-wrong-body h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;line-height:1.35;color:var(--ink);margin:0 46px 10px 0;letter-spacing:-.01em;}
.wk-wrong-body p{font-size:.95rem;line-height:1.7;color:var(--muted);}
.wk-wrong-foot{max-width:78ch;margin:36px auto 0;text-align:center;font-family:'Fraunces',serif;font-size:1.14rem;line-height:1.65;color:var(--ink);}
.wk-wrong-foot em{color:var(--ember-deep);font-style:italic;}

/* --- SERVICES: 3x3 board, asymmetric corners --- */
.wk-svcsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.wk-svcsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.24;}
.wk-svcsec .glow-1{top:-180px;right:-120px;opacity:.3;}
.wk-svcsec .wrap{position:relative;z-index:2;}
.wk-svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.wk-svc{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:22px 4px 22px 4px;padding:28px 26px 30px;transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1),border-radius .4s;}
.wk-svc:hover{background:rgba(255,255,255,.07);border-color:rgba(247,143,27,.55);transform:translateY(-5px);border-radius:4px 22px 4px 22px;}
.wk-svc-code{display:inline-flex;align-items:center;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-hi);background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.34);border-radius:100px;padding:5px 12px;margin-bottom:16px;}
.wk-svc h3{font-family:'Fraunces',serif;font-size:1.22rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.28;margin-bottom:10px;}
.wk-svc p{font-size:.93rem;line-height:1.72;color:rgba(251,248,241,.68);}

/* --- WHY: zebra ledger --- */
.wk-why{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--cream);}
.wk-why-row{display:grid;grid-template-columns:46px 1fr;align-items:start;gap:14px;padding:22px 28px;border-bottom:1px solid var(--line);transition:background .3s;}
.wk-why-row:last-child{border-bottom:0;}
.wk-why-row:nth-child(odd){background:rgba(21,17,12,.035);}
.wk-why-row:hover{background:rgba(247,143,27,.09);}
.wk-why-n{font-size:.72rem;letter-spacing:.1em;color:var(--ember-deep);padding-top:5px;}
.wk-why-row p{font-size:1.02rem;line-height:1.75;color:var(--ink);}

/* --- HOW WE WORK: steps split by a configuration rule --- */
.wk-steps{list-style:none;margin:0;padding:0;max-width:920px;}
.wk-step{display:grid;grid-template-columns:64px 1fr;gap:22px;align-items:start;padding:24px 0;border-top:1px solid var(--line);}
.wk-step:first-child{border-top:0;padding-top:0;}
.wk-step-n{font-size:1.5rem;font-weight:500;color:rgba(21,17,12,.16);letter-spacing:-.02em;line-height:1;padding-top:4px;transition:color .3s;}
.wk-step:hover .wk-step-n{color:var(--ember-deep);}
.wk-step-body h3{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;}
.wk-step-body p{font-size:1rem;line-height:1.8;color:var(--muted);}
.wk-gate{display:flex;align-items:center;gap:16px;margin:14px 0 6px;}
.wk-gate::before,.wk-gate::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--ember),transparent);}
.wk-gate span{flex:0 0 auto;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-radius:100px;padding:7px 18px;box-shadow:0 14px 26px -14px rgba(247,143,27,.8);}

/* --- WHO THIS IS FOR --- */
.wk-fitsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.wk-fitsec .glow-3{bottom:-180px;left:-140px;opacity:.28;}
.wk-fit-grid{position:relative;z-index:2;display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:start;}
.wk-fit-txt{position:sticky;top:112px;}
.wk-fit-txt .eyebrow{margin-bottom:14px;}
.wk-fit-txt h2{font-size:clamp(1.95rem,3.5vw,2.7rem);margin-bottom:16px;}
.wk-fit-txt h2 em{color:var(--ember-hi);}
.wk-fit-txt p{color:rgba(251,248,241,.74);font-size:1.05rem;line-height:1.85;}
.wk-fit-scale{margin-top:28px;padding:22px 24px;background:rgba(255,255,255,.04);border:1px solid var(--line-d);border-radius:18px;}
.wk-fit-scale b{display:block;font-family:'Fraunces',serif;font-size:3rem;font-weight:500;line-height:1;color:var(--ember-hi);letter-spacing:-.03em;}
.wk-fit-scale b i{font-style:normal;font-size:1.4rem;}
.wk-fit-scale span{display:block;margin-top:10px;font-size:.9rem;line-height:1.6;color:rgba(251,248,241,.62);}
.wk-fits{display:grid;gap:14px;}
.wk-fit{display:grid;grid-template-columns:128px 1fr;gap:22px;align-items:start;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:22px 24px;transition:background .35s,border-color .35s;}
.wk-fit:hover{background:rgba(255,255,255,.07);border-color:rgba(247,143,27,.5);}
.wk-fit-lbl{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ember-hi);padding-top:4px;line-height:1.5;}
.wk-fit p{font-size:.97rem;line-height:1.72;color:rgba(251,248,241,.75);}
.wk-fit-note{margin-top:8px;padding:20px 24px;border:1px dashed rgba(247,143,27,.42);border-radius:16px;font-size:.98rem;line-height:1.75;color:rgba(251,248,241,.8);}
.wk-fit-note em{color:var(--ember-hi);font-style:normal;font-weight:600;}

/* --- COST: role-tagged entries --- */
.wk-costs{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.wk-cost{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 28px;padding-left:30px;transition:border-color .35s,box-shadow .35s;}
.wk-cost::before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--ember),var(--rust));}
.wk-cost:hover{border-color:var(--ember);box-shadow:0 28px 52px -34px rgba(21,17,12,.32);}
.wk-cost-tag{display:inline-flex;align-items:center;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:100px;padding:4px 11px;margin-bottom:14px;}
.wk-cost h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;line-height:1.3;}
.wk-cost p{font-size:.95rem;line-height:1.7;color:var(--muted);}
.wk-cost-close{max-width:80ch;margin:36px auto 0;text-align:center;font-size:1.06rem;line-height:1.8;color:var(--muted);}
.wk-cost-close em{color:var(--ink);font-style:italic;font-weight:500;}

.wk-cta canvas.ai-net{opacity:.5;}
.wk-faqsec .wk-head{margin-bottom:38px;}

@media(max-width:1080px){
  .wk-lede-grid{grid-template-columns:1fr;gap:44px;}
  .wk-lag{position:relative;top:auto;}
  .wk-svcs{grid-template-columns:repeat(2,1fr);}
  .wk-fit-grid{grid-template-columns:1fr;gap:40px;}
  .wk-fit-txt{position:relative;top:auto;}
}
@media(max-width:980px){
  .wd-hero-grid{grid-template-columns:1fr;gap:40px;}
  .wd-hero-card{right:16px;bottom:-22px;}
  .wk-wrongs{grid-template-columns:1fr;}
  .wk-costs{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .wk-readout{left:12px;top:12px;padding:6px 12px;}
  .wk-readout-rot{width:96px;}
  .wk-svcs{grid-template-columns:1fr;}
  .wk-lag-legend,.wk-lag-stats{grid-template-columns:1fr;gap:14px;}
  .wk-lag-track{height:64px;}
  .wk-why-row{grid-template-columns:1fr;gap:6px;padding:20px 20px;}
  .wk-why-n{padding-top:0;}
  .wk-step{grid-template-columns:1fr;gap:8px;}
  .wk-step-n{font-size:1.1rem;}
  .wk-fit-txt{position:relative;top:auto;}
  .wk-fit{grid-template-columns:1fr;gap:10px;}
  .wk-fit-lbl{padding-top:0;}
  .wk-wrong{grid-template-columns:32px 1fr;}
  .wk-wrong-body{padding:22px 20px;}
  .wk-wrong-body h3{margin-right:36px;}
}
/* ===== SALESFORCE (Customer 360 / CRM) ===== */
.sf-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center;}
.sf-hero-txt h1{margin-top:14px;}
.sf-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* Customer 360 orbit */
.sf-360{position:relative;z-index:2;width:100%;max-width:430px;margin:0 auto;aspect-ratio:1;}
.sf-360-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,174,69,.22);}
.sf-360-ring.r1{inset:6%;border-style:dashed;border-color:rgba(255,174,69,.3);animation:sfSpin 30s linear infinite;}
.sf-360-ring.r2{inset:22%;border-color:rgba(255,255,255,.1);}
@keyframes sfSpin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.sf-360-ring.r1{animation:none;}}
.sf-360-core{position:absolute;left:50%;top:50%;width:38%;height:38%;transform:translate(-50%,-50%);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;background:radial-gradient(circle at 50% 35%,#241a10,#15110c);border:1px solid rgba(255,174,69,.4);box-shadow:0 0 0 8px rgba(247,143,27,.06),0 26px 50px -20px rgba(0,0,0,.7);color:#fff;}
.sf-360-core svg{width:30px;height:30px;color:var(--ember-hi);}
.sf-360-core b{font-size:.62rem;letter-spacing:.1em;color:rgba(251,248,241,.8);font-weight:500;}
.sf-360-node{position:absolute;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(21,17,12,.66);border:1px solid var(--line-d);border-radius:100px;padding:7px 13px;backdrop-filter:blur(6px);white-space:nowrap;box-shadow:0 12px 26px -16px rgba(0,0,0,.8);}
.sf-360-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px rgba(247,143,27,.8);}
.sf-360-node.n1{top:-2%;left:50%;transform:translateX(-50%);}
.sf-360-node.n2{top:22%;right:-6%;}
.sf-360-node.n3{bottom:22%;right:-6%;}
.sf-360-node.n4{bottom:-2%;left:50%;transform:translateX(-50%);}
.sf-360-node.n5{bottom:22%;left:-6%;}
.sf-360-node.n6{top:22%;left:-6%;}


/* --- hero orbit animation: radar sweep + clouds lighting in turn --- */
.sl-sweep{position:absolute;inset:6%;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,rgba(247,143,27,.32),rgba(247,143,27,.05) 22%,transparent 42%,transparent 100%);mask-image:radial-gradient(circle,transparent 40%,#000 42%,#000 100%);-webkit-mask-image:radial-gradient(circle,transparent 40%,#000 42%,#000 100%);animation:slSweep 13.2s linear infinite;}
@keyframes slSweep{to{transform:rotate(360deg);}}
.sl-node{transition:border-color .5s,background .5s,box-shadow .5s;}
.sl-node::after{content:"";position:absolute;inset:-1px;border-radius:100px;border:1px solid var(--ember);opacity:0;animation:slPing 13.2s ease-out infinite;animation-delay:calc(var(--i)*2.2s);}
@keyframes slPing{0%{opacity:.9;transform:scale(1);}9%{opacity:0;transform:scale(1.28);}100%{opacity:0;transform:scale(1.28);}}
.sl-node .sf-360-dot{animation:slDot 13.2s ease-in-out infinite;animation-delay:calc(var(--i)*2.2s);}
@keyframes slDot{0%,14%{background:var(--ember-hi);box-shadow:0 0 14px 2px rgba(255,174,69,.95);}20%,100%{background:var(--ember);box-shadow:0 0 8px rgba(247,143,27,.8);}}
.sl-core-now{position:relative;display:block;width:100%;height:14px;overflow:hidden;margin-top:2px;}
.sl-core-now i{position:absolute;left:0;right:0;top:0;font-style:normal;font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember-hi);white-space:nowrap;opacity:0;transform:translateY(100%);animation:slNow 13.2s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--i)*2.2s);}
@keyframes slNow{0%{opacity:0;transform:translateY(100%);}3%{opacity:1;transform:translateY(0);}14%{opacity:1;transform:translateY(0);}17%{opacity:0;transform:translateY(-100%);}100%{opacity:0;transform:translateY(-100%);}}
@media(prefers-reduced-motion:reduce){
  .sl-sweep,.sl-node::after,.sl-node .sf-360-dot,.sl-core-now i{animation:none;}
  .sl-core-now i{opacity:0;}
  .sl-core-now i:first-child{opacity:1;transform:none;}
}

/* --- shared section head --- */
.sl-head{max-width:72ch;margin-bottom:52px;}
.sl-head .eyebrow{margin-bottom:14px;}
.sl-head h2{font-size:clamp(1.95rem,3.5vw,2.75rem);margin-bottom:16px;text-wrap:balance;}
.sl-head p{color:var(--muted);font-size:1.06rem;line-height:1.85;}
.sl-head-light h2 em{color:var(--ember-hi);}
.sl-head-light p{color:rgba(251,248,241,.74);}

/* --- LEDE: pipeline data reverting to a spreadsheet --- */
.sl-lede-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:60px;align-items:start;}
.sl-lede-txt .eyebrow{margin-bottom:14px;}
.sl-lede-txt h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:18px;text-wrap:balance;}
.sl-lede-kick{font-family:'Fraunces',serif;font-size:1.14rem;line-height:1.6;color:var(--ink);margin-bottom:22px;padding:16px 20px;background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:0 14px 14px 0;}
.sl-lede-txt p{color:var(--muted);font-size:1.04rem;line-height:1.85;margin-bottom:16px;}
.sl-lede-btn{margin-top:12px;}
.sl-revert{position:sticky;top:112px;background:linear-gradient(165deg,#241a10,#15110c);border:1px solid var(--line-d);border-radius:22px;padding:20px 22px 22px;box-shadow:0 46px 90px -48px rgba(0,0,0,.72);}
.sl-revert-head{display:flex;align-items:center;justify-content:space-between;font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,248,241,.5);padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:18px;}
.sl-live{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 10px var(--ember);animation:msLive 1.9s infinite;}
.sl-app{border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.03);}
.sl-app-bar{display:flex;align-items:center;gap:10px;font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(251,248,241,.55);padding:9px 12px;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);}
.sl-dots{display:inline-flex;gap:4px;}
.sl-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.22);}
.sl-app-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);animation:slFade 9s ease-in-out infinite;animation-delay:calc(var(--i)*.5s);}
.sl-app-row:last-child{border-bottom:0;}
@keyframes slFade{0%,18%{opacity:1;filter:none;}44%,72%{opacity:.22;filter:grayscale(1);}100%{opacity:1;filter:none;}}
.sl-av{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.sl-app-name{font-size:.82rem;color:#fff;font-weight:500;}
.sl-app-amt{margin-left:auto;font-size:.66rem;color:rgba(251,248,241,.6);}
.sl-drop{display:flex;align-items:center;gap:12px;margin:14px 0;}
.sl-drop-line{flex:1;height:1px;background:repeating-linear-gradient(90deg,rgba(247,143,27,.5) 0 6px,transparent 6px 12px);}
.sl-drop-tag{flex:0 0 auto;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-radius:100px;padding:5px 13px;box-shadow:0 12px 22px -12px rgba(247,143,27,.9);}
.sl-sheet{border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.045);}
.sl-sheet-bar{font-size:.58rem;letter-spacing:.06em;color:rgba(251,248,241,.7);padding:9px 12px;background:rgba(40,200,64,.09);border-bottom:1px solid rgba(255,255,255,.08);}
.sl-cells{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:rgba(255,255,255,.08);padding:1px;}
.sl-cell{position:relative;height:19px;background:#191309;}
.sl-cell::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:3px;border-radius:2px;background:rgba(251,248,241,.4);transform:translateY(-50%) scaleX(0);transform-origin:left;animation:slCell 9s ease-in-out infinite;animation-delay:calc(1.2s + var(--i)*.09s);}
@keyframes slCell{0%,12%{transform:translateY(-50%) scaleX(0);}34%,84%{transform:translateY(-50%) scaleX(1);}100%{transform:translateY(-50%) scaleX(0);}}
.sl-revert-foot{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.09);}
.sl-stat b{display:block;font-family:'Fraunces',serif;font-size:2.1rem;font-weight:500;line-height:1;color:var(--ember-hi);letter-spacing:-.02em;}
.sl-stat b i{font-style:normal;font-size:1rem;margin-left:2px;}
.sl-stat span{display:block;margin-top:8px;font-size:.79rem;line-height:1.5;color:rgba(251,248,241,.6);}
@media(prefers-reduced-motion:reduce){.sl-app-row,.sl-cell::after{animation:none;}.sl-cell::after{transform:translateY(-50%) scaleX(1);}}

/* --- FAILURE MODES: unfinished pre-configuration checklist --- */
.sl-checksec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.sl-checksec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.sl-checksec .glow-1{top:-180px;left:-120px;opacity:.3;}
.sl-checksec .wrap{position:relative;z-index:2;}
.sl-list{border:1px solid var(--line-d);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.03);}
.sl-list-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.55);padding:15px 26px;background:rgba(255,255,255,.045);border-bottom:1px solid var(--line-d);}
.sl-list-state{color:var(--rust);background:rgba(178,58,14,.16);border:1px solid rgba(178,58,14,.5);border-radius:100px;padding:4px 12px;letter-spacing:.1em;}
.sl-item{position:relative;display:grid;grid-template-columns:26px 1fr;gap:18px;align-items:start;padding:22px 26px;border-bottom:1px solid rgba(255,255,255,.07);transition:background .3s;}
.sl-item:last-of-type{border-bottom:0;}
.sl-item:hover{background:rgba(255,255,255,.035);}
.sl-box{width:22px;height:22px;margin-top:2px;border-radius:6px;border:1.5px solid rgba(247,143,27,.55);background:rgba(247,143,27,.06);position:relative;}
.sl-box::after,.sl-box::before{content:"";position:absolute;left:5px;right:5px;top:50%;height:1.5px;border-radius:2px;background:rgba(247,143,27,.55);}
.sl-box::after{transform:translateY(-50%) rotate(45deg);}
.sl-box::before{transform:translateY(-50%) rotate(-45deg);}
.sl-item-body h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:8px;line-height:1.3;padding-right:44px;}
.sl-item-body p{font-size:.95rem;line-height:1.72;color:rgba(251,248,241,.66);}
.sl-item-n{position:absolute;top:22px;right:26px;font-size:.68rem;letter-spacing:.1em;color:rgba(251,248,241,.22);}
.sl-list-foot{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;padding:22px 26px;background:rgba(178,58,14,.1);border-top:1px solid rgba(178,58,14,.32);}
.sl-list-rate{flex:0 0 auto;font-size:.86rem;color:rgba(251,248,241,.72);white-space:nowrap;}
.sl-list-rate b{font-family:'Fraunces',serif;font-size:1.9rem;font-weight:500;color:#ff8f6b;margin-right:8px;letter-spacing:-.02em;}
.sl-list-foot p{font-size:.98rem;line-height:1.7;color:rgba(251,248,241,.8);}

/* --- SERVICES: chamfered cards --- */
.sl-svcs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.sl-svc{position:relative;background:var(--cream);padding:30px 26px 28px;clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%);filter:drop-shadow(0 18px 30px rgba(21,17,12,.1));transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s,background .35s;}
.sl-svc:hover{transform:translateY(-6px);background:#fff;filter:drop-shadow(0 30px 46px rgba(21,17,12,.2));}
.sl-svc-cut{position:absolute;top:0;right:0;width:24px;height:24px;background:linear-gradient(135deg,var(--ember),var(--ember-deep));clip-path:polygon(0 0,100% 100%,0 100%);transition:filter .35s;}
.sl-svc:hover .sl-svc-cut{filter:brightness(1.15);}
.sl-svc h3{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.3;margin:0 30px 12px 0;}
.sl-svc p{font-size:.92rem;line-height:1.7;color:var(--muted);}

/* --- WHY: legend-chip boxes --- */
.sl-whys{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 22px;}
.sl-why{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:30px 26px 26px;transition:border-color .35s,box-shadow .35s;}
.sl-why:hover{border-color:var(--ember);box-shadow:0 26px 48px -32px rgba(21,17,12,.3);}
.sl-why-legend{position:absolute;top:-10px;left:22px;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);background:var(--paper-2);padding:0 12px;line-height:20px;}
.sl-why p{font-size:.99rem;line-height:1.75;color:var(--muted);}

/* --- HOW WE WORK: chevron path --- */
.sl-howsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.sl-howsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.sl-howsec .glow-3{bottom:-200px;right:-140px;opacity:.28;}
.sl-howsec .wrap{position:relative;z-index:2;}
.sl-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.sl-stage{position:relative;background:rgba(255,255,255,.045);padding:28px 34px 28px 46px;clip-path:polygon(0 0,calc(100% - 24px) 0,100% 50%,calc(100% - 24px) 100%,0 100%,24px 50%);transition:background .35s;}
.sl-stage:hover{background:rgba(247,143,27,.12);}
.sl-stage-n{display:inline-block;font-size:.68rem;letter-spacing:.14em;color:var(--ember-hi);margin-bottom:12px;}
.sl-stage h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.3;margin-bottom:10px;}
.sl-stage p{font-size:.92rem;line-height:1.7;color:rgba(251,248,241,.68);}

/* --- WHO THIS IS FOR: journey stages on a rail --- */
.sl-fits{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-top:34px;}
.sl-fit-rail{position:absolute;left:8%;right:8%;top:7px;height:1px;background:repeating-linear-gradient(90deg,var(--muted-d) 0 7px,transparent 7px 14px);}
.sl-fit{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 26px 28px;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.sl-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 52px -34px rgba(21,17,12,.32);}
.sl-fit-pin{position:absolute;left:50%;top:-34px;transform:translateX(-50%);width:15px;height:15px;border-radius:50%;background:var(--ember);border:3px solid var(--paper-2);box-shadow:0 0 0 3px rgba(247,143,27,.24);}
.sl-fit-stage{display:block;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:12px;}
.sl-fit h3{font-family:'Fraunces',serif;font-size:1.24rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:10px;}
.sl-fit p{font-size:.96rem;line-height:1.72;color:var(--muted);}
.sl-fit-note{max-width:80ch;margin:38px auto 0;text-align:center;font-size:1.06rem;line-height:1.8;color:var(--muted);}
.sl-fit-note em{color:var(--ink);font-style:italic;font-weight:500;}

/* --- COST: documented failure-rate range --- */
.sl-cost-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start;}
.sl-cost-txt .eyebrow{margin-bottom:14px;}
.sl-cost-txt h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:16px;text-wrap:balance;}
.sl-cost-txt p{color:var(--muted);font-size:1.04rem;line-height:1.85;}
.sl-costs{list-style:none;margin:26px 0 0;padding:0;}
.sl-costs li{position:relative;padding:14px 0 14px 32px;border-top:1px solid var(--line);font-size:1.01rem;line-height:1.7;color:var(--ink);}
.sl-costs li:last-child{border-bottom:1px solid var(--line);}
.sl-costs li::before{content:"";position:absolute;left:4px;top:22px;width:11px;height:11px;border-radius:3px;border:1.5px solid var(--rust);transform:rotate(45deg);}
.sl-range{position:sticky;top:112px;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:26px 28px 28px;box-shadow:0 34px 64px -42px rgba(21,17,12,.34);}
.sl-range-head{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding-bottom:18px;border-bottom:1px solid var(--line);}
.sl-range-track{position:relative;height:14px;margin:52px 0 0;border-radius:100px;background:rgba(21,17,12,.07);}
.sl-range-span{position:absolute;left:18%;width:51%;top:0;bottom:0;border-radius:100px;background:linear-gradient(90deg,rgba(247,143,27,.85),var(--rust));transform-origin:left;transform:scaleX(0);animation:slSpan 1.2s cubic-bezier(.2,.7,.2,1) .3s forwards;}
@keyframes slSpan{to{transform:scaleX(1);}}
.sl-range-pin{position:absolute;top:-40px;bottom:-10px;width:2px;background:var(--ink);}
.sl-range-pin b{position:absolute;top:-4px;left:50%;transform:translateX(-50%);font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;color:var(--ink);letter-spacing:-.02em;}
.sl-range-lo{left:18%;}
.sl-range-lo b{color:var(--ember-deep);}
.sl-range-hi{left:69%;}
.sl-range-hi b{color:var(--rust);}
.sl-range-keys{display:flex;justify-content:space-between;gap:20px;margin-top:22px;}
.sl-key{max-width:26ch;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.7;}
.sl-key-lo{color:var(--ember-deep);}
.sl-key-hi{color:var(--rust);text-align:right;}
.sl-range-note{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:.95rem;line-height:1.75;color:var(--muted);}
@media(prefers-reduced-motion:reduce){.sl-range-span{animation:none;transform:scaleX(1);}}

.sl-cta canvas.ai-net{opacity:.5;}
.sl-faqsec .sl-head{margin-bottom:38px;}

@media(max-width:1080px){
  .sl-lede-grid{grid-template-columns:1fr;gap:44px;}
  .sl-revert{position:relative;top:auto;}
  .sl-svcs{grid-template-columns:repeat(2,1fr);}
  .sl-whys{grid-template-columns:repeat(2,1fr);}
  .sl-path{grid-template-columns:repeat(2,1fr);}
  .sl-cost-grid{grid-template-columns:1fr;gap:40px;}
  .sl-range{position:relative;top:auto;}
}
@media(max-width:980px){
  .sf-hero-grid{grid-template-columns:1fr;gap:44px;}
  .sf-360{max-width:380px;}
  .sl-fits{grid-template-columns:1fr;gap:18px;padding-top:0;}
  .sl-fit-rail,.sl-fit-pin{display:none;}
  .sl-list-foot{grid-template-columns:1fr;gap:12px;}
}
@media(max-width:640px){
  .sl-svcs{grid-template-columns:1fr;}
  .sl-whys{grid-template-columns:1fr;}
  .sl-path{grid-template-columns:1fr;}
  .sl-stage{padding:26px 30px 26px 40px;}
  .sl-revert-foot{grid-template-columns:1fr;gap:14px;}
  .sl-item{grid-template-columns:22px 1fr;gap:14px;padding:20px;}
  .sl-item-body h3{padding-right:36px;}
  .sl-item-n{right:20px;top:20px;}
  .sl-range-keys{flex-direction:column;gap:8px;}
  .sl-key,.sl-key-hi{max-width:none;text-align:left;}
}
/* ===== ORACLE (implementation risk & governance) ===== */
.or-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center;}
.or-hero-txt h1{margin-top:14px;}
.or-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* animated database stack + orbiting credential ring */
.or-db{position:relative;z-index:2;width:100%;max-width:380px;margin:0 auto;aspect-ratio:1;}
.or-db-svg{width:100%;height:100%;overflow:visible;}
.or-db-body path,.or-db-div,.or-db-top{fill:none;stroke:var(--ember);stroke-width:2;}
.or-db-body path{fill:rgba(247,143,27,.05);}
.or-db-div{stroke:rgba(255,174,69,.34);}
.or-db-top{fill:rgba(247,143,27,.12);filter:drop-shadow(0 0 8px rgba(247,143,27,.5));}
.or-db-scan{fill:none;stroke:var(--ember-hi);stroke-width:2.4;filter:drop-shadow(0 0 7px rgba(247,143,27,.9));animation:orScan 3.6s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes orScan{0%{transform:translateY(0);opacity:0;}12%{opacity:1;}88%{opacity:1;}100%{transform:translateY(190px);opacity:0;}}
.or-db-badge{position:absolute;top:6%;right:0;z-index:3;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.6rem;letter-spacing:.14em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);}
.or-db-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;}
.or-db-halo{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.32),transparent 68%);filter:blur(6px);animation:orHalo 4.4s ease-in-out infinite;}
@keyframes orHalo{0%,100%{opacity:.5;transform:scale(.94);}50%{opacity:.95;transform:scale(1.04);}}
.or-orbit{position:absolute;inset:0;pointer-events:none;}
.or-orbit-ring{position:absolute;left:50%;top:50%;width:104%;height:104%;margin:-52% 0 0 -52%;border-radius:50%;border:1px dashed rgba(247,143,27,.34);}
.or-orbit-spin{position:absolute;inset:0;animation:orSpin 26s linear infinite;}
@keyframes orSpin{to{transform:rotate(360deg);}}
/* Chip anchored on the ring: rotate(--a) sets its angle, translateY walks it
   out to the ring radius along that rotated axis. Keeping the text upright
   needs two separate counter-rotations on two nested elements: `i` cancels
   the fixed anchor angle once (static), and `b` continuously counter-spins
   against .or-orbit-spin so the label stays flat as the ring turns. Doing
   both on one node fights the animation and reads as a frozen -a tilt. */
.or-orbit-chip{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(-1 * var(--orb, 168px)));}
.or-orbit-chip i{display:block;font-style:normal;transform:rotate(calc(-1 * var(--a)));}
.or-orbit-chip b{display:block;font-weight:400;animation:orRingBack 26s linear infinite;}
@keyframes orRingBack{to{transform:rotate(-360deg);}}
.or-orbit-chip .mono{display:block;white-space:nowrap;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:rgba(251,248,241,.92);background:rgba(21,17,12,.72);border:1px solid rgba(247,143,27,.4);border-radius:100px;padding:7px 13px;backdrop-filter:blur(6px);box-shadow:0 12px 26px -14px rgba(0,0,0,.75);}
@media(prefers-reduced-motion:reduce){.or-db-scan,.or-db-halo,.or-orbit-spin,.or-orbit-chip b{animation:none;}.or-db-scan{opacity:0;}}
@media(max-width:980px){.or-orbit-chip{--orb:142px;}.or-orbit-chip .mono{font-size:.54rem;padding:6px 10px;}}

/* hero responsive (kept from the original layout) */
@media(max-width:980px){
  .or-hero-grid{grid-template-columns:1fr;gap:44px;}
  .or-db{max-width:320px;}
}

/* ===== ORACLE below-hero sections — "Enterprise Blueprint Dossier" (.od-) =====
   Corner-bracketed technical frames, a fault register, a blueprint tile grid,
   a bracket-check assurance list, a measured step rail and a profile+figure
   fit-check. Tones alternate D/L from the dark hero and land light before the
   dark CTA. Distinct from every other service page and from the prior Oracle
   look (which used fault cards / a numbered ledger / a switchback path). */

.od-sec{position:relative;overflow:hidden;}
.od-sec .wrap{position:relative;z-index:2;}
.od-dark{background:var(--ink);color:var(--cream);}
.od-dark.od-how{background:var(--ink-2);}
.od-dark canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.od-dark .glow-1{top:-160px;right:-120px;opacity:.3;}
.od-dark .glow-3{top:-150px;left:-130px;opacity:.26;}
.od-light{background:var(--paper-2);}
/* faint blueprint grid, fading out toward the section's lower half */
.od-light::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(21,17,12,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(21,17,12,.04) 1px,transparent 1px);background-size:46px 46px;-webkit-mask:radial-gradient(130% 92% at 50% 0,#000,transparent 76%);mask:radial-gradient(130% 92% at 50% 0,#000,transparent 76%);}

/* dossier heading + mono section index */
.od-head{max-width:840px;margin-bottom:52px;}
.od-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.od-index{display:inline-block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:16px;}
.od-dark .od-index,.od-index.light{color:var(--ember-hi);}
.od-head h2,.od-open-txt h2{margin-bottom:16px;}
.od-dark h2 em{color:var(--ember-hi);}
.od-light h2 em{color:var(--ember-deep);}
.od-head p{color:var(--muted);font-size:1.05rem;line-height:1.7;}
.od-dark .od-head p{color:rgba(251,248,241,.72);}

/* reusable corner brackets */
.od-brk{position:absolute;inset:0;pointer-events:none;}
.od-brk i{position:absolute;width:15px;height:15px;border:2px solid var(--ember);}
.od-brk i:nth-child(1){top:12px;left:12px;border-right:0;border-bottom:0;}
.od-brk i:nth-child(2){top:12px;right:12px;border-left:0;border-bottom:0;}
.od-brk i:nth-child(3){bottom:12px;left:12px;border-right:0;border-top:0;}
.od-brk i:nth-child(4){bottom:12px;right:12px;border-left:0;border-top:0;}
.od-brk.sm i{width:7px;height:7px;}
.od-brk.sm i:nth-child(1){top:3px;left:3px;}
.od-brk.sm i:nth-child(2){top:3px;right:3px;}
.od-brk.sm i:nth-child(3){bottom:3px;left:3px;}
.od-brk.sm i:nth-child(4){bottom:3px;right:3px;}

/* §01 opening statement (dark, text left + sticky animated schematic right) */
.od-open{overflow:visible;}/* keep visible so the right column can stick */
.od-open-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:58px;align-items:start;}
.od-open-txt h2{font-size:clamp(1.95rem,3.6vw,2.7rem);line-height:1.14;}
.od-open-txt p{color:rgba(251,248,241,.76);font-size:1.02rem;line-height:1.8;margin-bottom:15px;}
.od-open-txt .btn{margin-top:12px;}
.od-live{width:6px;height:6px;border-radius:50%;background:#28c840;box-shadow:0 0 8px #28c840;animation:msLive 1.9s infinite;}

/* precision-alignment schematic — a data block snapping into tolerance,
   image-free, standing in for Oracle's unforgiving, exacting data model. */
.od-sig{position:sticky;top:110px;align-self:start;aspect-ratio:1/1;padding:20px;border:1px solid var(--line-d);border-radius:8px;overflow:hidden;background:radial-gradient(120% 120% at 50% 4%,rgba(247,143,27,.07),transparent 58%),rgba(255,255,255,.015);}
.od-sig::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(251,248,241,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(251,248,241,.05) 1px,transparent 1px);background-size:34px 34px;-webkit-mask:radial-gradient(circle at 50% 46%,#000,transparent 70%);mask:radial-gradient(circle at 50% 46%,#000,transparent 70%);}
.od-sig .od-brk i{border-color:var(--ember-hi);transform:scale(0);transform-origin:center;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.od-sig.in .od-brk i{transform:scale(1);}
.od-sig.in .od-brk i:nth-child(2){transition-delay:.08s;}
.od-sig.in .od-brk i:nth-child(3){transition-delay:.16s;}
.od-sig.in .od-brk i:nth-child(4){transition-delay:.24s;}
.od-sig-tag{position:absolute;top:18px;right:18px;z-index:3;font-size:.55rem;letter-spacing:.16em;color:var(--ember-hi);background:rgba(21,17,12,.6);border:1px solid rgba(247,143,27,.32);border-radius:4px;padding:5px 9px;}
.od-sig-stage{position:absolute;inset:0;}
.od-sig-ring{position:absolute;top:50%;left:50%;border-radius:50%;}
.od-sig-ring.r1{width:66%;height:66%;margin:-33% 0 0 -33%;border:1px dashed rgba(247,143,27,.4);animation:orSpin 18s linear infinite;}
.od-sig-ring.r2{width:45%;height:45%;margin:-22.5% 0 0 -22.5%;border:1px solid rgba(251,248,241,.12);animation:orSpin 12s linear infinite reverse;}
.od-sig-cross{position:absolute;top:50%;left:50%;background:rgba(247,143,27,.22);}
.od-sig-cross.h{width:72%;height:1px;transform:translate(-50%,-50%);}
.od-sig-cross.v{height:72%;width:1px;transform:translate(-50%,-50%);}
.od-sig-slot{position:absolute;top:50%;left:50%;width:76px;height:76px;transform:translate(-50%,-50%);}
.od-sig-slot i{position:absolute;width:13px;height:13px;border:2px solid var(--ember-hi);}
.od-sig-slot i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;}
.od-sig-slot i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;}
.od-sig-slot i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;}
.od-sig-slot i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;}
.od-sig-core{position:absolute;top:50%;left:50%;width:30px;height:30px;border-radius:3px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));box-shadow:0 0 18px rgba(247,143,27,.7);animation:odLock 4.6s cubic-bezier(.62,0,.2,1) infinite;}
@keyframes odLock{0%{transform:translate(-50%,-50%) translate(40px,-28px) rotate(12deg);opacity:.2;}20%{transform:translate(-50%,-50%) translate(40px,-28px) rotate(12deg);opacity:.55;}46%{transform:translate(-50%,-50%) translate(0,0) rotate(0);opacity:1;}78%{transform:translate(-50%,-50%) translate(0,0) rotate(0);opacity:1;}100%{transform:translate(-50%,-50%) translate(40px,-28px) rotate(12deg);opacity:.2;}}
.od-sig-scan{position:absolute;left:8%;right:8%;top:6%;height:2px;background:linear-gradient(90deg,transparent,var(--ember-hi),transparent);box-shadow:0 0 10px rgba(247,143,27,.6);animation:odSweep 4.6s ease-in-out infinite;}
@keyframes odSweep{0%{top:6%;opacity:0;}12%{opacity:1;}88%{opacity:1;}100%{top:94%;opacity:0;}}
.od-sig-readout{position:absolute;left:18px;right:18px;bottom:18px;z-index:3;display:flex;justify-content:space-between;gap:10px;}
.od-sig-readout span{display:inline-flex;align-items:center;gap:7px;font-size:.55rem;letter-spacing:.12em;color:rgba(251,248,241,.85);background:rgba(21,17,12,.66);border:1px solid var(--line-d);border-radius:100px;padding:6px 11px;backdrop-filter:blur(5px);}
.od-sig-stat{color:#fff;}
@media(prefers-reduced-motion:reduce){.od-sig-ring,.od-sig-core,.od-sig-scan{animation:none;}.od-sig-core{transform:translate(-50%,-50%);}.od-sig-scan{opacity:0;}.od-sig.in .od-brk i{transition:none;transform:scale(1);}}

/* §02 fault register (light) */
.od-register{position:relative;list-style:none;margin:0 0 42px;padding:0;border-top:1px dashed var(--line);}
.od-reg-row{position:relative;display:grid;grid-template-columns:92px 1fr;gap:26px;align-items:start;padding:26px 8px;border-bottom:1px dashed var(--line);transition:background .3s;}
.od-reg-row:hover{background:rgba(247,143,27,.035);}
.od-reg-n{font-family:'JetBrains Mono',monospace;font-size:2.4rem;line-height:1;font-weight:600;color:transparent;-webkit-text-stroke:1.2px rgba(207,74,18,.5);transition:-webkit-text-stroke-color .3s,color .3s;}
.od-reg-row:hover .od-reg-n{-webkit-text-stroke-color:var(--ember);color:rgba(247,143,27,.08);}
.od-reg-top{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:8px;}
.od-reg-top h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);}
.od-reg-code{font-size:.57rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);border-radius:100px;padding:4px 10px;}
.od-reg-body p{font-size:.97rem;color:var(--muted);line-height:1.62;max-width:760px;}
.od-reg-scan{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--ember),transparent);opacity:0;pointer-events:none;z-index:3;box-shadow:0 0 10px rgba(247,143,27,.6);}
.od-register.in .od-reg-scan{animation:odScan 2.4s cubic-bezier(.4,0,.3,1) .35s both;}
@keyframes odScan{0%{opacity:0;top:0;}8%{opacity:1;}92%{opacity:1;}100%{opacity:0;top:100%;}}
/* data-quality callout — a prominent dark card, the section's key takeaway */
.od-quote{position:relative;margin:10px 0 0;overflow:hidden;background:var(--ink);color:var(--cream);border-radius:14px;padding:44px 54px;box-shadow:0 42px 84px -52px rgba(21,17,12,.65);}
.od-quote::after{content:"\201D";position:absolute;top:24px;right:42px;font-family:'Fraunces',serif;font-size:7rem;line-height:1;color:rgba(247,143,27,.16);pointer-events:none;}
.od-quote .od-brk i{border-color:var(--ember-hi);}
.od-quote-kicker{position:relative;z-index:1;display:inline-block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:18px;}
.od-quote p{position:relative;z-index:1;max-width:920px;font-family:'Fraunces',serif;font-weight:500;font-style:italic;font-size:clamp(1.3rem,2.1vw,1.66rem);line-height:1.44;color:#fff;}

/* §03 platform lifecycle — blueprint tiles (dark) */
.od-life-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.od-tile{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:8px;padding:26px 24px 24px;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;}
.od-tile:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.4);}
.od-tile .od-brk i{border-color:var(--ember-hi);opacity:0;transition:opacity .35s;}
.od-tile:hover .od-brk i{opacity:1;}
.od-tile-code{display:inline-block;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-hi);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.26);border-radius:4px;padding:5px 10px;margin-bottom:14px;}
.od-tile h3{font-family:'Fraunces',serif;font-size:1.06rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;line-height:1.28;}
.od-tile p{font-size:.86rem;color:rgba(251,248,241,.7);line-height:1.58;}

/* §04 why choose Inabia — bracket-check list (light) */
/* overflow must stay visible here or the sticky heading below won't stick
   (a non-visible overflow on any ancestor disables position:sticky). */
.od-why{overflow:visible;}
.od-why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:58px;align-items:start;}
.od-why-head{position:sticky;top:110px;align-self:start;}
.od-why-head h2{font-size:clamp(1.8rem,3vw,2.4rem);}
.od-why-head p{color:var(--muted);font-size:1rem;line-height:1.7;margin-top:14px;}
.od-why-list{list-style:none;margin:0;padding:0;}
.od-why-item{position:relative;display:grid;grid-template-columns:44px 1fr;gap:20px;align-items:start;padding:20px 18px;border-top:1px dashed var(--line);border-radius:12px;transition:background .3s,box-shadow .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.od-why-item:last-child{border-bottom:1px dashed var(--line);}
/* left accent bar that grows in on hover */
.od-why-item::after{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--ember),var(--ember-deep));opacity:0;transform:scaleY(.25);transform-origin:top;transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1);}
.od-why-item:hover{background:rgba(247,143,27,.06);transform:translateX(8px);box-shadow:0 22px 44px -32px rgba(21,17,12,.45);}
.od-why-item:hover::after{opacity:1;transform:scaleY(1);}
.od-why-check{position:relative;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--ember-deep);transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.od-why-check .od-brk.sm i{border-color:rgba(247,143,27,.55);transition:border-color .3s;}
.od-why-check svg{width:20px;height:20px;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .7s ease .1s,color .3s;}
.od-why-item.in .od-why-check svg{stroke-dashoffset:0;}
.od-why-item:hover .od-why-check{transform:scale(1.14) rotate(-3deg);}
.od-why-item:hover .od-why-check .od-brk.sm i{border-color:var(--ember);}
.od-why-item:hover .od-why-check svg{color:var(--ember);}
.od-why-item p{font-size:1rem;color:var(--ink);line-height:1.6;padding-top:9px;transition:color .3s;}

/* §05 how we work — measured step rail, two columns (dark) */
/* column-major: steps 01-03 fill the left rail, 04-06 the right, so the
   sequence still reads top-to-bottom down each column while filling the width. */
.od-rail{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);grid-template-columns:1fr 1fr;column-gap:64px;row-gap:0;}
.od-rail-step{position:relative;display:grid;grid-template-columns:56px 1fr;gap:32px;padding:24px 0;}
.od-rail-step::before{content:"";position:absolute;left:76px;top:0;bottom:0;width:1px;background:var(--line-d);}
.od-rail-step:nth-child(1)::before,.od-rail-step:nth-child(4)::before{top:38px;}
.od-rail-step:nth-child(3)::before,.od-rail-step:nth-child(6)::before{bottom:auto;height:38px;}
.od-rail-n{grid-column:1;justify-self:end;text-align:right;font-family:'JetBrains Mono',monospace;font-size:2rem;font-weight:600;line-height:1;color:transparent;-webkit-text-stroke:1.1px rgba(247,143,27,.5);padding-top:14px;transition:-webkit-text-stroke-color .3s,color .3s;}
.od-rail-tick{position:absolute;left:76px;top:38px;width:11px;height:11px;background:var(--ember);border:2px solid var(--ink-2);border-radius:2px;transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 0 4px rgba(247,143,27,.12);transition:box-shadow .35s;z-index:1;}
.od-rail-body{grid-column:2;padding-top:8px;}
.od-rail-body h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;transition:color .3s;}
.od-rail-body p{font-size:.95rem;color:rgba(251,248,241,.74);line-height:1.62;}
.od-rail-step:hover .od-rail-n{-webkit-text-stroke-color:var(--ember);color:rgba(247,143,27,.12);}
.od-rail-step:hover .od-rail-tick{box-shadow:0 0 0 5px rgba(247,143,27,.2),0 0 14px rgba(247,143,27,.7);}
.od-rail-step:hover .od-rail-body h3{color:var(--ember-hi);}

/* §06 who this is for — profiles + figure (light, before CTA) */
.od-who-lede{max-width:840px;color:var(--muted);font-size:1.05rem;line-height:1.75;}
.od-who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:22px;}
.od-who-col{position:relative;overflow:hidden;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:26px 24px;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s;}
.od-who-col::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--ember),var(--ember-deep));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.od-who-col:hover{transform:translateY(-8px);box-shadow:0 36px 64px -42px rgba(21,17,12,.45);border-color:rgba(247,143,27,.45);}
.od-who-col:hover::before{transform:scaleX(1);}
.od-who-col-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px dashed var(--line);}
.od-who-code{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);}
.od-who-idx{font-family:'JetBrains Mono',monospace;font-size:1.6rem;font-weight:600;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(247,143,27,.45);transition:-webkit-text-stroke-color .35s,color .35s;}
.od-who-col:hover .od-who-idx{-webkit-text-stroke-color:var(--ember);color:rgba(247,143,27,.1);}
.od-who-col p{font-size:.96rem;color:var(--ink);line-height:1.6;}
.od-figure{position:relative;display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;background:var(--ink);color:var(--cream);border-radius:10px;padding:34px 40px;}
.od-figure .od-brk i{border-color:var(--ember-hi);transform:scale(0);transform-origin:center;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.od-figure.in .od-brk i{transform:scale(1);}
.od-figure.in .od-brk i:nth-child(2){transition-delay:.08s;}
.od-figure.in .od-brk i:nth-child(3){transition-delay:.16s;}
.od-figure.in .od-brk i:nth-child(4){transition-delay:.24s;}
.od-figure-num{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(2.6rem,5vw,3.6rem);line-height:1;color:#fff;white-space:nowrap;}
.od-figure-cur{color:var(--ember-hi);font-size:.5em;vertical-align:super;}
.od-figure-unit{color:var(--ember-hi);}
.od-figure-lbl{display:block;margin-top:8px;font-size:.84rem;color:rgba(251,248,241,.6);letter-spacing:.04em;}
.od-figure-sub{display:flex;flex-direction:column;gap:12px;border-left:1px solid var(--line-d);padding-left:40px;}
.od-figure-growth{display:inline-flex;align-items:center;align-self:flex-start;font-size:.8rem;letter-spacing:.06em;color:var(--ember-hi);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);border-radius:100px;padding:7px 14px;}
.od-figure-note{font-family:'Fraunces',serif;font-style:italic;font-size:.98rem;color:rgba(251,248,241,.8);line-height:1.55;}

/* CTA */
.od-cta canvas.ai-net{opacity:.5;}
.od-cta .od-index{margin-bottom:14px;}

@media(prefers-reduced-motion:reduce){
  .od-reg-scan{animation:none;opacity:0;}
  .od-figure.in .od-brk i{transition:none;transform:scale(1);}
  .od-why-item .od-why-check svg{transition:none;stroke-dashoffset:0;}
  .od-why-item:hover,.od-why-item:hover .od-why-check,.od-who-col:hover{transform:none;}
  .od-live{animation:none;}
}

@media(max-width:980px){
  .od-open-grid{grid-template-columns:1fr;gap:40px;}
  .od-sig{position:static;order:-1;width:100%;max-width:440px;margin:0 auto;}
  .od-life-grid{grid-template-columns:1fr 1fr;}
  .od-why-grid{grid-template-columns:1fr;gap:34px;}
  .od-why-head{position:static;}
  .od-who-grid{grid-template-columns:1fr;}
  .od-figure{grid-template-columns:1fr;gap:22px;}
  .od-figure-sub{border-left:0;padding-left:0;border-top:1px solid var(--line-d);padding-top:22px;}
  /* collapse the two-column rail to one column and re-cap the line ends */
  .od-rail{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;}
  .od-rail-step:nth-child(3)::before,.od-rail-step:nth-child(4)::before{top:0;bottom:0;height:auto;}
  .od-rail-step:nth-child(1)::before{top:38px;bottom:0;height:auto;}
  .od-rail-step:nth-child(6)::before{top:0;bottom:auto;height:38px;}
}
@media(max-width:640px){
  .od-life-grid{grid-template-columns:1fr;}
  .od-reg-row{grid-template-columns:52px 1fr;gap:16px;}
  .od-reg-n{font-size:1.7rem;}
  .od-quote{padding:32px 26px;}
  .od-rail-step{grid-template-columns:46px 1fr;gap:22px;}
  .od-rail-step::before{left:64px;}
  .od-rail-tick{left:64px;}
  .od-rail-n{font-size:1.5rem;}
}

/* ===== CLOUD SERVICES (cloud platform / stack) ===== */
.cl-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center;}
.cl-hero-txt h1{margin-top:14px;}
.cl-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* glowing cloud */
.cl-cloud{position:relative;z-index:2;width:100%;max-width:420px;margin:0 auto;aspect-ratio:4/3;display:grid;place-items:center;}
.cl-cloud-glow{position:absolute;inset:14% 10% 22%;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.3),transparent 66%);filter:blur(20px);animation:clGlow 5s ease-in-out infinite;}
@keyframes clGlow{0%,100%{opacity:.6;transform:scale(1);}50%{opacity:1;transform:scale(1.07);}}
.cl-cloud-svg{position:relative;width:100%;height:100%;overflow:visible;}
.cl-cloud-path{fill:rgba(247,143,27,.07);}
.cl-cloud-line{fill:none;stroke:var(--ember);stroke-width:2.5;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 8px rgba(247,143,27,.6));animation:clDraw 2.6s cubic-bezier(.4,0,.2,1) forwards;}
@keyframes clDraw{to{stroke-dashoffset:0;}}
.cl-particle{fill:var(--ember-hi);opacity:0;animation:clRise 3s ease-in infinite;animation-delay:calc(var(--d)*.4s);}
@keyframes clRise{0%{opacity:0;transform:translateY(0);}20%{opacity:1;}100%{opacity:0;transform:translateY(-86px);}}
@media(prefers-reduced-motion:reduce){.cl-cloud-glow,.cl-particle{animation:none;}.cl-cloud-line{animation:none;stroke-dashoffset:0;}.cl-particle{opacity:.5;}}
.cl-chip{position:absolute;display:inline-flex;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.1em;color:#fff;background:rgba(21,17,12,.66);border:1px solid var(--line-d);border-radius:100px;padding:6px 13px;backdrop-filter:blur(6px);box-shadow:0 12px 26px -16px rgba(0,0,0,.8);}
.cl-chip.c1{left:-2%;top:60%;}
.cl-chip.c2{left:14%;top:18%;}
.cl-chip.c3{right:2%;top:40%;}
.cl-cloud-badge{position:absolute;bottom:8%;right:8%;display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;color:#fff;background:rgba(21,17,12,.6);border:1px solid var(--line-d);border-radius:100px;padding:7px 13px;backdrop-filter:blur(6px);}
.cl-badge-dot{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;}

/* feature (light, real image) */
.cl-feature-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;}
.cl-feature-fig{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 44px 86px -44px rgba(21,17,12,.5);aspect-ratio:3/2;}
.cl-feature-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.cl-feature-fig:hover img{transform:scale(1.04);}
.cl-feature-badge{position:absolute;left:16px;top:16px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.72);color:#fff;font-size:.58rem;letter-spacing:.12em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(5px);}
.cl-fdot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.cl-feature-txt .eyebrow{margin-bottom:14px;}
.cl-feature-txt h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:18px;}
.cl-feature-txt p{color:var(--muted);font-size:1.04rem;line-height:1.8;}
.cl-outcomes{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.cl-outcome{display:inline-flex;align-items:center;gap:10px;background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:9px 18px 9px 10px;font-size:.9rem;font-weight:600;color:var(--ink);}
.cl-outcome-tick{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;flex:0 0 auto;}
.cl-outcome-tick svg{width:13px;height:13px;}

/* pillars (dark) */
.cl-pillars-sec{background:var(--ink);color:var(--cream);overflow:hidden;}
.cl-pillars-sec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.26;}
.cl-pillars-sec .glow-1{top:-160px;right:-120px;opacity:.3;}
.cl-pillars-sec .wrap{position:relative;z-index:2;}
.cl-pillars-sec .sec-head h2 em{color:var(--ember-hi);}
.cl-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.cl-pillar{background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:20px;padding:34px 30px;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;}
.cl-pillar:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.5);}
.cl-pillar-ico{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:15px;background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.28);color:var(--ember-hi);margin-bottom:20px;transition:background .35s,transform .35s,color .35s;}
.cl-pillar:hover .cl-pillar-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;transform:rotate(-6deg);}
.cl-pillar-ico svg{width:27px;height:27px;}
.cl-pillar h3{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:11px;}
.cl-pillar p{font-size:.97rem;color:rgba(251,248,241,.74);line-height:1.65;}

/* capabilities — cloud stack tiers (light) */
.cl-stack-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:54px;align-items:start;}
.cl-stack-head{position:sticky;top:104px;}
.cl-stack-head .eyebrow{margin-bottom:14px;}
.cl-stack-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:12px;}
.cl-stack-sub{color:var(--muted);font-size:1.08rem;margin-bottom:20px;}
.cl-stack{display:flex;flex-direction:column;gap:12px;}
.cl-tier{display:flex;align-items:center;gap:20px;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:22px 26px;position:relative;overflow:hidden;width:calc(72% + var(--lvl) * 5.6%);max-width:100%;margin:0 auto 0 0;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.cl-tier::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--ember),var(--ember-deep));opacity:.5;transition:opacity .35s;}
.cl-tier:hover{transform:translateX(6px);border-color:var(--ember);box-shadow:0 24px 46px -30px rgba(21,17,12,.32);}
.cl-tier:hover::before{opacity:1;}
.cl-tier-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:13px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .35s,transform .35s,color .35s;}
.cl-tier:hover .cl-tier-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.cl-tier-ico svg{width:24px;height:24px;}
.cl-tier-body{min-width:0;}
.cl-tier-top{display:flex;align-items:center;gap:12px;margin-bottom:5px;}
.cl-tier-top h3{font-family:'Fraunces',serif;font-size:1.22rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.15;}
.cl-tier-tag{font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);background:var(--paper-2);border:1px solid var(--line);border-radius:100px;padding:4px 10px;}
.cl-tier-body p{font-size:.95rem;color:var(--muted);line-height:1.55;}
.cl-cta canvas.ai-net{opacity:.5;}

@media(max-width:980px){
  .cl-hero-grid{grid-template-columns:1fr;gap:44px;}
  .cl-cloud{max-width:360px;}
  .cl-feature-grid{grid-template-columns:1fr;gap:34px;}
  .cl-feature-fig{order:-1;}
  .cl-pillars{grid-template-columns:1fr;}
  .cl-stack-grid{grid-template-columns:1fr;gap:30px;}
  .cl-stack-head{position:relative;top:auto;}
  .cl-tier{width:100%;}
}
@media(max-width:560px){
  .cl-tier{flex-direction:row;align-items:flex-start;}
  .cl-tier-top{flex-wrap:wrap;}
}

/* ===== SOFTWARE DEVELOPMENT (engineering / code) ===== */
.sd-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center;}
.sd-hero-txt h1{margin-top:14px;}
.sd-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* code editor mockup */
.sd-editor{position:relative;z-index:2;border-radius:16px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(160deg,#1c160f,#100c08);box-shadow:0 50px 90px -42px rgba(0,0,0,.75);}
.sd-editor-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.sd-tl{width:11px;height:11px;border-radius:50%;flex:0 0 auto;}
.sd-tl.r{background:#ff5f57;}.sd-tl.y{background:#febc2e;}.sd-tl.g{background:#28c840;}
.sd-tab{margin-left:10px;font-size:.66rem;color:rgba(251,248,241,.7);background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:7px 7px 0 0;padding:6px 14px;}
.sd-editor-stat{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-size:.6rem;letter-spacing:.1em;color:#28c840;}
.sd-build-dot{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.8);animation:msLive 2s infinite;}
.sd-code{margin:0;padding:20px 22px 24px;font-size:.86rem;line-height:1.9;color:rgba(251,248,241,.92);counter-reset:ln;overflow-x:auto;white-space:pre;}
.sd-code .ln{display:inline-block;width:22px;margin-right:14px;text-align:right;color:rgba(251,248,241,.28);user-select:none;}
.sd-code .ln::before{counter-increment:ln;content:counter(ln);}
.sd-code .tok-kw{color:#ff9d4d;}
.sd-code .tok-fn{color:#ffd9a3;}
.sd-code .tok-str{color:#8fdca8;}
.sd-code .tok-num{color:#ff8a6b;}
.sd-code .tok-com{color:rgba(251,248,241,.4);font-style:italic;}
.sd-caret{display:inline-block;width:8px;height:1.1em;vertical-align:-2px;margin-left:2px;background:var(--ember);animation:sdCaret 1.1s steps(1) infinite;}
@keyframes sdCaret{50%{opacity:0;}}

/* hero editor — a live readout of which lifecycle phase is running. */
.sd-editor-foot{display:flex;align-items:center;gap:11px;padding:13px 20px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.26);}
.sd-foot-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.sd-foot-rot{position:relative;flex:1;height:17px;overflow:hidden;}
.sd-foot-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.72rem;letter-spacing:.02em;color:var(--ember-hi);white-space:nowrap;
  opacity:0;transform:translateY(8px);animation:sdFootRot 15s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes sdFootRot{0%{opacity:0;transform:translateY(8px);}3%,13%{opacity:1;transform:none;}17%,100%{opacity:0;transform:translateY(-8px);}}

/* ----- SOFTWARE DEVELOPMENT sections (.sv- : the partner decision) -----
   Motif set unique to this page: the 48-hour quote raced against
   discovery-first, warning signs tagged with the stage they surface at, a
   seamless service grid with no gaps between disciplines, a commit graph for
   the process, code-comment audience cards and a deferred-cost ledger. */

/* --- S2: the lede beside two routes to an estimate --- */
.sv-lede-top{max-width:1020px;margin-bottom:56px;}
.sv-lede-top .eyebrow{margin-bottom:14px;}
.sv-lede-top h2{font-size:clamp(1.68rem,3vw,2.4rem);}
.sv-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.sv-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.sv-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.sv-lede-btn{margin-top:10px;}

.sv-quote{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.sv-quote-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.sv-quote-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.sv-quote-cols{display:grid;grid-template-columns:1fr 1fr;}
.sv-col{padding:22px 22px 24px;}
.sv-col + .sv-col{border-left:1px solid rgba(255,255,255,.1);}
.sv-col-h{display:block;font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.1);}
.sv-col.is-fast .sv-col-h{color:var(--rust);}
.sv-col.is-slow .sv-col-h{color:#4ed492;}
.sv-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.sv-col li{display:flex;align-items:center;gap:11px;font-size:.86rem;line-height:1.4;}
.sv-col li::before{content:"";flex:0 0 auto;width:13px;height:13px;border-radius:4px;}
/* Left column: the questions never got asked. Right column: they did. */
.sv-col.is-fast li{color:rgba(251,248,241,.4);}
.sv-col.is-fast li::before{border:1px dashed rgba(178,58,14,.75);}
.sv-col.is-slow li{color:rgba(251,248,241,.88);}
.sv-col.is-slow li::before{background:rgba(78,212,146,.16);border:1px solid rgba(78,212,146,.5);
  transition:background .45s,border-color .45s;transition-delay:calc(var(--q) * .18s + .3s);}
.sv-quote.in .sv-col.is-slow li::before{background:#4ed492;border-color:#4ed492;}
.sv-col-out{display:block;margin-top:18px;padding-top:15px;border-top:1px solid rgba(255,255,255,.1);
  font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;}
.sv-col.is-fast .sv-col-out{color:var(--rust);}
.sv-col.is-slow .sv-col-out{color:#4ed492;}

/* --- S3: warning signs, tagged with when they surface --- */
.sv-signsec .sec-head{max-width:1000px;}
.sv-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.sv-sign{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:24px 24px 26px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.sv-sign:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
.sv-sign-flag{display:block;width:22px;height:22px;color:var(--rust);margin-bottom:14px;
  animation:svFlag 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * .26s);}
.sv-sign-flag svg{width:100%;height:100%;display:block;}
@keyframes svFlag{0%,66%,100%{opacity:.45;}78%,90%{opacity:1;}}
.sv-sign-when{display:inline-block;font-size:.52rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ember-deep);
  padding:5px 11px;border-radius:100px;background:rgba(247,143,27,.09);border:1px solid rgba(247,143,27,.3);margin-bottom:13px;}
.sv-sign p{font-size:.96rem;color:var(--muted);line-height:1.68;}
.sv-verdict{margin-top:44px;max-width:1000px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.sv-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: one team, so the cells share their edges (dark) --- */
.sv-svcsec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.sv-svcsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.sv-svcsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.sv-svcsec .wrap{position:relative;z-index:2;}
.sv-svcsec .sec-head{max-width:1020px;}
.sv-svcsec .sec-head h2 em{color:var(--ember-hi);}
.sv-svcsec .sec-head p{color:rgba(251,248,241,.74);}
/* No gutters — the argument of this section is that there are no gaps between
   the disciplines, so the cells share borders instead of floating apart. */
.sv-svcs{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid rgba(255,255,255,.11);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.03);}
.sv-svc{position:relative;padding:28px 30px 30px;border-right:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(255,255,255,.09);transition:background .32s;}
.sv-svc:nth-child(2n){border-right:none;}
.sv-svc:nth-last-child(-n+2){border-bottom:none;}
.sv-svc:hover{background:rgba(255,255,255,.06);}
.sv-svc-n{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--ember-hi);margin-bottom:12px;}
.sv-svc h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.32;margin-bottom:10px;}
.sv-svc p{font-size:.95rem;color:rgba(251,248,241,.76);line-height:1.72;}

/* --- S5: commitments, each opened by a rule that draws --- */
.sv-whysec .sec-head{max-width:960px;}
.sv-whys{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 52px;}
.sv-why{position:relative;display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:start;padding:26px 0 28px;}
.sv-why-rule{position:absolute;left:0;top:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--ember),rgba(247,143,27,.12));
  transition:transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .1s + .15s);}
.sv-why.in .sv-why-rule{transform:scaleX(1);}
.sv-why-n{font-size:.82rem;letter-spacing:.14em;color:var(--muted-d);padding-top:3px;}
.sv-why p{font-size:1.03rem;color:var(--ink);line-height:1.74;}

/* --- S6: the process, read as commits on a branch --- */
.sv-worksec .sec-head{max-width:1000px;}
.sv-graph{list-style:none;margin:0;padding:0;}
.sv-commit{display:grid;grid-template-columns:56px 1fr;gap:24px;align-items:start;}
.sv-commit-rail{position:relative;justify-self:center;width:2px;align-self:stretch;background:rgba(21,17,12,.16);}
.sv-commit:first-child .sv-commit-rail{margin-top:16px;}
.sv-commit:last-child .sv-commit-rail{height:34px;align-self:start;}
.sv-commit-rail .node{position:absolute;left:50%;top:22px;width:14px;height:14px;margin-left:-7px;border-radius:50%;
  background:var(--paper-2);border:2px solid rgba(21,17,12,.2);
  transition:background .45s,border-color .45s,box-shadow .45s;transition-delay:calc(var(--i) * .16s + .25s);}
.sv-graph.in .sv-commit-rail .node{background:var(--ember);border-color:var(--ember);box-shadow:0 0 0 5px rgba(247,143,27,.13);}
/* Test runs alongside the build rather than after it, so its node sits off the
   trunk on a short branch. */
.sv-commit.is-branch .sv-commit-rail::after{content:"";position:absolute;left:1px;top:6px;width:20px;height:22px;
  border-left:2px solid rgba(247,143,27,.4);border-bottom:2px solid rgba(247,143,27,.4);border-bottom-left-radius:12px;transform:scaleX(-1);}
.sv-commit-body{padding:14px 0 30px;}
.sv-commit-meta{display:inline-flex;align-items:center;gap:12px;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d);margin-bottom:9px;}
.sv-commit-meta b{font-weight:400;color:var(--ember-deep);letter-spacing:.06em;text-transform:none;
  padding:4px 9px;border-radius:5px;background:rgba(247,143,27,.09);border:1px solid rgba(247,143,27,.28);}
.sv-commit-body h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;}
.sv-commit-body p{font-size:.98rem;color:var(--muted);line-height:1.74;}

/* --- S7: audience read as code comments (dark) --- */
.sv-whosec{background:var(--ink);color:var(--cream);overflow:hidden;overflow:clip;}
.sv-whosec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.sv-whosec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.sv-whosec .wrap{position:relative;z-index:2;}
.sv-whosec .sec-head{max-width:1020px;}
.sv-whosec .sec-head h2 em{color:var(--ember-hi);}
.sv-whosec .sec-head p{color:rgba(251,248,241,.74);}
.sv-fits{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.sv-fit{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:24px 26px 26px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.sv-fit:hover{background:rgba(255,255,255,.07);border-color:rgba(247,143,27,.4);transform:translateY(-4px);}
.sv-fit-cmt{display:block;font-size:.68rem;letter-spacing:.02em;color:rgba(251,248,241,.42);font-style:italic;margin-bottom:12px;}
.sv-fit:hover .sv-fit-cmt{color:var(--ember-hi);}
.sv-fit p{font-size:1rem;color:rgba(251,248,241,.84);line-height:1.72;}
.sv-fit-note{margin-top:40px;max-width:1020px;font-size:1.06rem;line-height:1.8;color:rgba(251,248,241,.72);padding-left:24px;border-left:3px solid var(--ember);}
.sv-fit-note strong{color:#fff;font-weight:600;}

/* --- S8: the deferred bill --- */
.sv-costsec .sec-head{max-width:1000px;}
.sv-deferred{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.sv-defer{display:grid;grid-template-columns:1fr 160px;gap:26px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s,background .3s;}
.sv-defer:hover{padding-left:16px;background:var(--cream);}
.sv-defer p{font-size:1.05rem;color:var(--ink);line-height:1.72;}
.sv-defer-when{justify-self:end;text-align:right;font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);
  padding:6px 12px;border-radius:100px;background:rgba(178,58,14,.08);border:1px solid rgba(178,58,14,.3);
  animation:svDefer 4.6s ease-in-out infinite;animation-delay:calc(var(--i) * .32s);}
@keyframes svDefer{0%,62%,100%{opacity:.6;}74%,88%{opacity:1;}}

/* --- S10/S11: CTA + FAQ --- */
.sd-cta canvas.ai-net{opacity:.5;}
.sv-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.sv-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .sd-foot-rot i,.sv-sign-flag,.sv-defer-when{animation:none;}
  .sd-foot-rot i{opacity:0;}
  .sd-foot-rot i:first-child{opacity:1;}
  .sv-col.is-slow li::before,.sv-why-rule,.sv-commit-rail .node{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .sv-signs{grid-template-columns:repeat(2,1fr);}
  .sv-svcs,.sv-whys,.sv-fits{grid-template-columns:1fr;}
  .sv-svc{border-right:none;}
  .sv-svc:last-child{border-bottom:none;}
  .sv-svc:nth-last-child(2){border-bottom:1px solid rgba(255,255,255,.09);}
}
@media(max-width:980px){
  .sd-hero-grid{grid-template-columns:1fr;gap:42px;}
  .sd-editor{order:-1;}
  .sv-lede-grid{grid-template-columns:1fr;gap:44px;}
}
@media(max-width:760px){
  .sv-signs{grid-template-columns:1fr;}
  .sv-verdict,.sv-fit-note{padding-left:18px;font-size:1.02rem;}
  .sv-quote-cols{grid-template-columns:1fr;}
  .sv-col + .sv-col{border-left:none;border-top:1px solid rgba(255,255,255,.1);}
  .sv-commit{grid-template-columns:40px 1fr;gap:16px;}
  .sv-defer{grid-template-columns:1fr;gap:12px;padding:22px 4px;}
  .sv-defer-when{justify-self:start;text-align:left;}
  .sv-why{grid-template-columns:38px 1fr;gap:14px;}
}

/* ===== WEB DEVELOPMENT SOLUTIONS (build the web) ===== */

.wb-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center;}

.wb-hero-txt h1{margin-top:14px;}

.wb-hero .eyebrow a:hover{color:var(--ember-hi);}

.wb-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}



/* browser window mockup */

.wb-browser{position:relative;z-index:2;border-radius:14px;overflow:hidden;border:1px solid var(--line-d);background:#0f0b07;box-shadow:0 50px 90px -42px rgba(0,0,0,.75);}

.wb-browser-bar{position:relative;display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(255,255,255,.05);border-bottom:1px solid var(--line-d);}

.wb-tl{width:11px;height:11px;border-radius:50%;flex:0 0 auto;}

.wb-tl.r{background:#ff5f57;}.wb-tl.y{background:#febc2e;}.wb-tl.g{background:#28c840;}

.wb-url{flex:1;margin:0 12px;display:inline-flex;align-items:center;gap:8px;font-size:.66rem;color:rgba(251,248,241,.62);background:rgba(0,0,0,.3);border:1px solid var(--line-d);border-radius:100px;padding:6px 14px;}

.wb-url svg{width:12px;height:12px;color:#28c840;}

.wb-dev{display:inline-flex;align-items:flex-end;gap:4px;}

.wb-dev i{display:block;background:rgba(251,248,241,.4);border-radius:1px;}

.wb-dev i:nth-child(1){width:12px;height:9px;}

.wb-dev i:nth-child(2){width:8px;height:11px;}

.wb-dev i:nth-child(3){width:5px;height:8px;}

.wb-load{position:absolute;left:0;bottom:-1px;height:2px;width:30%;background:linear-gradient(90deg,var(--ember),var(--ember-hi));animation:wbLoad 3s ease-in-out infinite;}

@keyframes wbLoad{0%{width:8%;}60%{width:96%;}100%{width:8%;}}

.wb-browser-body{padding:18px;background:linear-gradient(160deg,#1a140e,#100c08);}

.wb-site-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}

.wb-logo{width:46px;height:12px;border-radius:4px;background:linear-gradient(90deg,var(--ember),var(--ember-deep));}

.wb-navlinks{display:flex;gap:10px;}

.wb-navlinks i{width:26px;height:7px;border-radius:3px;background:rgba(255,255,255,.16);}

.wb-site-hero{display:flex;flex-direction:column;align-items:center;gap:11px;text-align:center;padding:26px 10px 30px;border-radius:10px;background:radial-gradient(120% 90% at 50% 0,rgba(247,143,27,.14),transparent 70%);border:1px solid var(--line-d);margin-bottom:16px;}

.wb-h{height:11px;border-radius:4px;background:rgba(255,255,255,.78);}

.wb-h.l1{width:62%;}.wb-h.l2{width:44%;background:rgba(255,255,255,.4);}

.wb-btn{margin-top:6px;width:96px;height:24px;border-radius:100px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));box-shadow:0 10px 22px -8px rgba(247,143,27,.7);}

.wb-site-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}

.wb-site-cards span{height:54px;border-radius:9px;background:rgba(255,255,255,.05);border:1px solid var(--line-d);animation:wbCard 3s ease-in-out infinite;}

.wb-site-cards span:nth-child(2){animation-delay:.3s;}

.wb-site-cards span:nth-child(3){animation-delay:.6s;}

@keyframes wbCard{0%,100%{transform:translateY(0);border-color:var(--line-d);}50%{transform:translateY(-4px);border-color:rgba(247,143,27,.4);}}

@media(prefers-reduced-motion:reduce){.wb-load,.wb-site-cards span{animation:none;}}

@media(max-width:980px){
  .wb-hero-grid{grid-template-columns:1fr;gap:40px;}
}

/* ----- CUSTOM WEB DEVELOPMENT (.cw- : source & build motif) ----- */
.cw-costsec .sec-head,.cw-delivsec .sec-head,.cw-svcsec .sec-head,
.cw-whysec .sec-head,.cw-procsec .sec-head,.cw-indsec .sec-head,
.cw-faqsec .sec-head{max-width:920px;margin-left:auto;margin-right:auto;text-align:center;}

/* Window traffic-lights, shared by the fault cards and the code panel. */
.cw-fdots{display:inline-flex;gap:6px;flex:0 0 auto;}
.cw-fdots i{width:9px;height:9px;border-radius:50%;background:rgba(178,58,14,.55);}
.cw-fdots i:nth-child(2){background:rgba(178,58,14,.35);}
.cw-fdots i:nth-child(3){background:rgba(178,58,14,.22);}
.cw-fdots.is-ok i{background:#ff5f57;}
.cw-fdots.is-ok i:nth-child(2){background:#febc2e;}
.cw-fdots.is-ok i:nth-child(3){background:#28c840;}

/* --- S2: each problem as a failing window --- */
.cw-faults{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;}
.cw-fault{position:relative;grid-column:span 2;display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--line);border-radius:14px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
/* Five into six columns: the last two share the bottom row. */
.cw-fault:nth-child(4),.cw-fault:nth-child(5){grid-column:span 3;}
.cw-fault:hover{transform:translateY(-5px);border-color:rgba(178,58,14,.5);box-shadow:0 26px 50px -32px rgba(21,17,12,.3);}
.cw-fault-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;
  background:var(--paper-2);border-bottom:1px solid var(--line);}
.cw-fault-id{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(178,58,14,.75);}
.cw-fault p{padding:22px 20px 24px;font-size:1rem;line-height:1.66;color:var(--muted);transition:color .35s;}
.cw-fault:hover p{color:var(--ink);}
/* A glitch sweep passes across the window on hover. */
.cw-fault-scan{position:absolute;left:0;top:0;bottom:0;width:40%;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(178,58,14,.09),transparent);}
.cw-fault:hover .cw-fault-scan{opacity:1;animation:cwGlitch 1.1s ease-in-out;}
@keyframes cwGlitch{from{transform:translateX(-100%);}to{transform:translateX(300%);}}

/* Wide closing statement, shared by S2 and S7. */
.cw-statement{max-width:78ch;margin:38px auto 0;padding-top:26px;border-top:1px solid var(--line);
  text-align:center;font-family:'Fraunces',serif;font-size:clamp(1.1rem,1.9vw,1.4rem);font-weight:500;
  line-height:1.5;letter-spacing:-.01em;color:var(--ink);}

/* --- S3: deliverables as a code-editor panel --- */
.cw-delivsec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.cw-delivsec .glow-1{top:-170px;left:-140px;opacity:.22;}
.cw-delivsec .wrap{position:relative;z-index:2;}
.cw-delivsec .sec-head h2{color:#fff;}
.cw-delivsec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.cw-code{max-width:960px;margin-inline:auto;border-radius:16px;overflow:hidden;border:1px solid var(--line-d);
  background:linear-gradient(160deg,#1c150f,#100c08);box-shadow:0 46px 88px -50px rgba(0,0,0,.8);}
.cw-code-bar{display:flex;align-items:center;gap:14px;padding:13px 18px;background:rgba(255,255,255,.045);
  border-bottom:1px solid var(--line-d);}
.cw-code-file{font-size:.68rem;color:rgba(251,248,241,.55);}
.cw-code-lines{list-style:none;margin:0;padding:14px 0 18px;}
.cw-code-lines li{display:grid;grid-template-columns:52px 26px 1fr;align-items:start;gap:6px;
  padding:11px 22px 11px 0;transition:background .25s;}
.cw-code-lines li:hover{background:rgba(255,174,69,.05);}
.cw-ln{text-align:right;padding-right:16px;font-size:.72rem;line-height:1.7;color:rgba(251,248,241,.26);
  border-right:1px solid var(--line-d);user-select:none;}
.cw-code-ok{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:3px;
  border-radius:50%;background:rgba(40,200,64,.14);color:#4ade68;}
.cw-code-ok svg{width:10px;height:10px;}
.cw-code-txt{font-size:1.01rem;line-height:1.7;color:rgba(251,248,241,.85);}
/* Lines land one after another, as if being written. */
.cw-code-lines li:not(.cw-code-caret){animation:cwLine .5s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;}
@keyframes cwLine{from{opacity:0;transform:translateX(-14px);}to{opacity:1;transform:none;}}
.cw-code-caret{padding-top:4px !important;}
.cw-caret{display:block;width:9px;height:19px;margin-top:2px;background:var(--ember-hi);animation:cwBlink 1.1s step-end infinite;}
@keyframes cwBlink{0%,100%{opacity:1;}50%{opacity:0;}}

/* --- S4: modules wrapped in their own tags --- */
.cw-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.cw-module{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:22px 26px 20px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.cw-module:hover{transform:translateY(-6px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.cw-module-tag,.cw-module-close{font-size:.66rem;letter-spacing:.02em;color:rgba(217,101,10,.55);transition:color .3s;}
.cw-module:hover .cw-module-tag,.cw-module:hover .cw-module-close{color:var(--ember-deep);}
.cw-module-close{margin-top:auto;padding-top:16px;}
.cw-module-ico{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:14px;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin:16px 0 16px;
  transition:background .35s,color .35s,transform .35s;}
.cw-module:hover .cw-module-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.cw-module-ico svg{width:24px;height:24px;}
.cw-module h3{font-size:1.08rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;}
.cw-module p{font-size:.95rem;line-height:1.62;color:var(--muted);}

/* --- S5: portrait pillars (dark) --- */
.cw-whysec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.cw-whysec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.28;}
.cw-whysec .glow-1{top:auto;bottom:-220px;right:-140px;opacity:.26;}
.cw-whysec .wrap{position:relative;z-index:2;}
.cw-whysec .sec-head h2{color:#fff;}
.cw-whysec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.cw-pillars{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.cw-pillar{display:flex;flex-direction:column;gap:16px;padding:26px 22px 30px;border-radius:16px;
  border:1px solid var(--line-d);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.012));
  animation:cwPillar .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,background .35s;}
@keyframes cwPillar{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
.cw-pillar:hover{transform:translateY(-6px);border-color:rgba(255,174,69,.5);background:linear-gradient(180deg,rgba(255,174,69,.11),rgba(255,255,255,.02));}
.cw-pillar-n{font-size:.7rem;letter-spacing:.12em;color:rgba(255,174,69,.6);}
.cw-pillar-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:rgba(247,143,27,.13);border:1px solid rgba(247,143,27,.3);color:var(--ember-hi);
  transition:background .35s,color .35s,border-color .35s;}
.cw-pillar:hover .cw-pillar-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.cw-pillar-ico svg{width:22px;height:22px;}
.cw-pillar p{font-size:.96rem;line-height:1.62;color:rgba(251,248,241,.8);transition:color .35s;}
.cw-pillar:hover p{color:#fff;}

/* --- S6: chevron build pipeline --- */
.cw-pipe{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 0;}
.cw-stage{position:relative;background:var(--cream);border:1px solid var(--line);border-right:none;
  padding:24px 30px 26px 48px;margin-right:-14px;
  clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%,22px 50%);
  animation:cwStage .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:background .3s,color .3s;}
@keyframes cwStage{from{opacity:0;transform:translateX(-18px);}to{opacity:1;transform:none;}}
/* First chevron of each row squares off its left edge. */
.cw-stage:nth-child(3n+1){clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%);padding-left:30px;border-radius:14px 0 0 14px;}
.cw-stage:hover{background:#fff;}
.cw-stage-n{display:block;font-size:.68rem;letter-spacing:.1em;color:var(--muted-d);margin-bottom:9px;transition:color .3s;}
.cw-stage:hover .cw-stage-n{color:var(--ember-deep);}
.cw-stage h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.24;margin-bottom:8px;}
.cw-stage p{font-size:.92rem;line-height:1.58;color:var(--muted);}

/* --- S7: industry tiles --- */
.cw-inds{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.cw-ind{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;
  padding:26px 16px;border-radius:15px;background:var(--cream);border:1px solid var(--line);
  animation:cwInd .5s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s,box-shadow .3s;}
@keyframes cwInd{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:none;}}
.cw-ind:hover{transform:translateY(-5px);background:#fff;border-color:var(--ember);box-shadow:0 22px 44px -30px rgba(21,17,12,.28);}
.cw-ind-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;
  background:var(--paper-2);border:1px solid var(--line);color:var(--ember-deep);
  transition:background .3s,color .3s,border-color .3s;}
.cw-ind:hover .cw-ind-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.cw-ind-ico svg{width:22px;height:22px;}
.cw-ind b{font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);}

/* --- S8: CTA --- */
.cw-cta canvas.ai-net{opacity:.5;}
.cw-cta .cta-inner{max-width:1040px;}
.cw-cta .cta-inner h2{font-size:clamp(1.7rem,3.1vw,2.6rem);line-height:1.15;margin:0 0 22px;text-wrap:balance;}
.cw-cta .cta-inner>p{max-width:74ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.cw-cta .cta-cta{margin-top:32px;}
.cw-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .cw-fault:hover .cw-fault-scan{animation:none;opacity:0;}
  .cw-code-lines li:not(.cw-code-caret),.cw-pillar,.cw-stage,.cw-ind{animation:none;opacity:1;transform:none;}
  .cw-caret{animation:none;}
}

@media(max-width:1080px){
  .cw-modules{grid-template-columns:repeat(2,1fr);}
  .cw-pillars{grid-template-columns:repeat(2,1fr);}
  .cw-inds{grid-template-columns:repeat(3,1fr);}
  /* Two per row: square off every odd chevron instead of every third. */
  .cw-pipe{grid-template-columns:repeat(2,1fr);}
  .cw-stage:nth-child(3n+1){clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%,22px 50%);padding-left:48px;border-radius:0;}
  .cw-stage:nth-child(odd){clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%);padding-left:30px;border-radius:14px 0 0 14px;}
}
@media(max-width:820px){
  .cw-faults{grid-template-columns:1fr;}
  .cw-fault,.cw-fault:nth-child(4),.cw-fault:nth-child(5){grid-column:auto;}
}
@media(max-width:680px){
  .cw-modules,.cw-pillars{grid-template-columns:1fr;}
  .cw-inds{grid-template-columns:repeat(2,1fr);}
  /* Chevrons stop reading as a flow once stacked, so square them all off. */
  .cw-pipe{grid-template-columns:1fr;gap:12px;}
  .cw-stage,.cw-stage:nth-child(3n+1),.cw-stage:nth-child(odd){clip-path:none;margin-right:0;padding:22px 22px 24px;
    border-right:1px solid var(--line);border-radius:14px;}
  .cw-code-lines li{grid-template-columns:40px 22px 1fr;padding-right:16px;}
  .cw-ln{padding-right:11px;}
  .cw-statement{font-size:1.05rem;}
}

/* ===== MOBILE APP SOLUTIONS (app / device) ===== */

.mb-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}

.mb-hero-txt h1{margin-top:14px;}

.mb-hero .eyebrow a:hover{color:var(--ember-hi);}

.mb-hero-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}

.mb-pill{display:inline-flex;align-items:center;font-size:.84rem;font-weight:600;color:rgba(251,248,241,.9);background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:100px;padding:8px 18px;}

.mb-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:24px;}



/* hero phone image + push toast */

.mb-hero-fig{position:relative;z-index:2;display:grid;place-items:center;}

.mb-hero-fig img{width:100%;max-width:480px;height:auto;display:block;filter:drop-shadow(0 50px 80px rgba(0,0,0,.6));animation:mbFloat 6s ease-in-out infinite;}

@keyframes mbFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

.mb-toast{position:absolute;left:2%;top:14%;display:flex;align-items:center;gap:11px;background:rgba(24,18,12,.78);border:1px solid var(--line-d);border-radius:14px;padding:12px 15px;backdrop-filter:blur(10px);box-shadow:0 24px 48px -22px rgba(0,0,0,.85);animation:mbToast 5s ease-in-out infinite;}

@keyframes mbToast{0%,100%{transform:translateY(0);opacity:.92;}50%{transform:translateY(-7px);opacity:1;}}

@media(prefers-reduced-motion:reduce){.mb-hero-fig img,.mb-toast{animation:none;}}

.mb-toast-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;flex:0 0 auto;}

.mb-toast-ico svg{width:18px;height:18px;}

.mb-toast-txt{display:flex;flex-direction:column;line-height:1.25;}

.mb-toast-txt b{font-size:.84rem;color:#fff;font-weight:600;}

.mb-toast-txt i{font-style:normal;font-size:.66rem;color:rgba(251,248,241,.62);}

@media(max-width:980px){
  .mb-hero-grid{grid-template-columns:1fr;gap:36px;}
  .mb-hero-fig{order:-1;}
}

/* ----- MOBILE APP (.ma- : app lifecycle motif) ----- */
.ma-faultsec .sec-head,.ma-delivsec .sec-head,.ma-svcsec .sec-head,
.ma-whysec .sec-head,.ma-procsec .sec-head,.ma-indsec .sec-head,
.ma-faqsec .sec-head{max-width:920px;margin-left:auto;margin-right:auto;text-align:center;}
.ma-statement{max-width:80ch;margin:40px auto 0;padding-top:26px;border-top:1px solid var(--line);
  text-align:center;font-family:'Fraunces',serif;font-size:clamp(1.08rem,1.8vw,1.34rem);font-weight:500;
  line-height:1.52;letter-spacing:-.01em;color:var(--ink);}

/* --- S2: failure modes as phones in a bad state, on a zigzag baseline --- */
.ma-faults{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;align-items:start;}
.ma-fault{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;
  animation:maRise .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;}
/* Alternate offset so the row reads as a shelf rather than a flat grid. */
.ma-fault:nth-child(even){margin-top:34px;}
@keyframes maRise{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
.ma-screen{position:relative;width:100%;max-width:118px;aspect-ratio:9/16;border-radius:18px;
  background:linear-gradient(165deg,#241a12,#14100b);border:2px solid rgba(178,58,14,.4);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;overflow:hidden;
  box-shadow:0 26px 46px -28px rgba(21,17,12,.6);transition:border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.ma-fault:hover .ma-screen{transform:translateY(-6px);border-color:rgba(178,58,14,.85);}
.ma-screen-bar{position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--rust,#b23a0e),rgba(178,58,14,.2));}
.ma-screen-glyph{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:12px;background:rgba(178,58,14,.2);color:#ff8a5c;
  transition:background .35s,color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.ma-screen-glyph svg{width:19px;height:19px;}
.ma-fault:hover .ma-screen-glyph{background:rgba(178,58,14,.34);color:#ffb08c;transform:scale(1.08);}
.ma-screen-lines{display:flex;flex-direction:column;gap:6px;align-items:center;width:56%;}
.ma-screen-lines i{display:block;height:5px;width:100%;border-radius:3px;background:rgba(255,255,255,.12);}
.ma-screen-lines i:last-child{width:64%;}
/* A stalled progress shimmer — the app that never quite gets there. */
.ma-screen::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,transparent,rgba(178,58,14,.9),transparent);
  animation:maStall 2.6s ease-in-out infinite;}
@keyframes maStall{0%{transform:translateX(-100%);}55%,100%{transform:translateX(100%);}}
.ma-fault p{font-size:.96rem;line-height:1.6;color:var(--muted);transition:color .35s;}
.ma-fault:hover p{color:var(--ink);}

/* --- S3: the five non-negotiables arranged around the device --- */
/* Clipped: the decorative rings are wider than the viewport on small screens and
   would otherwise push the whole document sideways. */
.ma-delivsec{overflow:hidden;}
.ma-orbit{display:grid;grid-template-columns:1fr auto 1fr;gap:34px;align-items:center;}
.ma-orbit-col{display:flex;flex-direction:column;gap:14px;}
.ma-req{display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:16px;background:#fff;
  border:1px solid var(--line);animation:maFade .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
@keyframes maFade{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.ma-req:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 22px 42px -28px rgba(21,17,12,.28);}
.ma-req-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:13px;background:var(--paper-2);border:1px solid var(--line);color:var(--ember-deep);
  transition:background .3s,color .3s,border-color .3s;}
.ma-req:hover .ma-req-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.ma-req-ico svg{width:21px;height:21px;}
.ma-req p{font-size:.98rem;line-height:1.58;color:var(--muted);}

/* the device everything is built around */
.ma-orbit-mid{position:relative;display:grid;place-items:center;padding:26px;}
.ma-device{position:relative;z-index:2;width:186px;aspect-ratio:1/2;border-radius:30px;padding:12px 10px;
  background:linear-gradient(165deg,#2a1f15,#12100b);border:2px solid rgba(255,174,69,.35);
  box-shadow:0 44px 80px -40px rgba(21,17,12,.7);display:flex;flex-direction:column;gap:10px;}
.ma-device-notch{width:46px;height:5px;border-radius:4px;background:rgba(255,255,255,.18);margin:0 auto;}
.ma-device-screen{position:relative;flex:1;border-radius:20px;overflow:hidden;padding:16px 12px;
  background:radial-gradient(120% 80% at 50% 0,rgba(247,143,27,.16),transparent 70%),#171208;
  display:flex;flex-direction:column;justify-content:center;gap:12px;}
.ma-app-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.ma-app{display:block;aspect-ratio:1;border-radius:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.07);}
/* nth-of-type, not :last-child — .ma-device-sweep is the screen's last child. */
.ma-app-row:nth-of-type(1) .ma-app:nth-child(2),
.ma-app-row:nth-of-type(2) .ma-app:nth-child(1){background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;}
/* Scan sweep — the app being exercised, not just displayed. */
.ma-device-sweep{position:absolute;left:0;right:0;top:0;height:22%;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(255,199,119,.14),transparent);animation:maSweep 4.2s ease-in-out infinite;}
@keyframes maSweep{0%{transform:translateY(-120%);}65%,100%{transform:translateY(480%);}}
.ma-device-home{width:56px;height:4px;border-radius:3px;background:rgba(255,255,255,.22);margin:0 auto;}
.ma-ring{position:absolute;border-radius:50%;border:1px dashed rgba(247,143,27,.3);pointer-events:none;}
.ma-ring-1{width:300px;height:300px;animation:maSpin 26s linear infinite;}
.ma-ring-2{width:390px;height:390px;border-color:rgba(247,143,27,.16);animation:maSpin 38s linear reverse infinite;}
@keyframes maSpin{to{transform:rotate(360deg);}}

/* --- S4: services as an app list with squircle icons --- */
.ma-apps{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.ma-app-row-item{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;padding:24px 26px;
  border-radius:18px;background:var(--cream);border:1px solid var(--line);
  transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .32s,background .32s,box-shadow .32s;}
.ma-app-row-item:hover{transform:translateY(-4px);background:#fff;border-color:var(--ember);box-shadow:0 24px 46px -30px rgba(21,17,12,.28);}
/* iOS-style squircle: a superellipse, not a plain rounded rect. */
.ma-squircle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;
  background:linear-gradient(155deg,var(--ink),var(--ink-2));color:var(--ember-hi);
  border-radius:30% / 30%;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 24px -14px rgba(21,17,12,.6);
  transition:background .32s,color .32s,transform .32s;}
.ma-app-row-item:hover .ma-squircle{background:linear-gradient(155deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-5deg) scale(1.04);}
.ma-squircle svg{width:27px;height:27px;}
.ma-app-body h3{font-size:1.08rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;}
.ma-app-body p{font-size:.95rem;line-height:1.62;color:var(--muted);}

/* --- S5: reasons arriving like notifications (dark) --- */
.ma-whysec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.ma-whysec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.28;}
.ma-whysec .glow-1{top:-170px;right:-140px;opacity:.28;}
.ma-whysec .wrap{position:relative;z-index:2;}
.ma-whysec .sec-head h2{color:#fff;}
.ma-whysec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.ma-notes{list-style:none;margin:0 auto;padding:0;max-width:760px;display:flex;flex-direction:column;gap:12px;}
.ma-note{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
  padding:20px 24px;border-radius:20px;border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.03));
  backdrop-filter:blur(8px);box-shadow:0 20px 40px -26px rgba(0,0,0,.7);
  animation:maDrop .6s var(--d,0s) cubic-bezier(.2,.85,.3,1.1) both;
  transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .32s,background .32s;}
@keyframes maDrop{from{opacity:0;transform:translateY(-18px) scale(.97);}to{opacity:1;transform:none;}}
.ma-note:hover{transform:translateX(6px);border-color:rgba(255,174,69,.5);background:linear-gradient(150deg,rgba(255,174,69,.14),rgba(255,255,255,.04));}
.ma-note-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:11px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.ma-note-ico svg{width:16px;height:16px;}
.ma-note p{font-size:1rem;line-height:1.6;color:rgba(251,248,241,.88);}
.ma-note-idx{font-size:.66rem;letter-spacing:.1em;color:rgba(255,174,69,.55);}

/* --- S6: zigzag sprint spine --- */
.ma-sprints{position:relative;list-style:none;margin:0 auto;padding:0;max-width:940px;}
.ma-sprints::before{content:"";position:absolute;left:50%;top:8px;bottom:8px;width:2px;margin-left:-1px;
  background:linear-gradient(180deg,var(--ember),rgba(247,143,27,.18));
  transform:scaleY(0);transform-origin:top;animation:maSpine 1.4s .2s cubic-bezier(.3,.8,.3,1) both;}
@keyframes maSpine{to{transform:scaleY(1);}}
.ma-sprint{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0;
  animation:maFade .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;}
.ma-sprint + .ma-sprint{margin-top:16px;}
.ma-sprint-node{grid-column:2;z-index:2;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--paper);border:2px solid var(--ember);transition:background .3s,box-shadow .3s;}
.ma-sprint-node b{font-size:.74rem;font-weight:500;color:var(--ember-deep);transition:color .3s;}
.ma-sprint:hover .ma-sprint-node{background:linear-gradient(150deg,var(--ember),var(--ember-deep));box-shadow:0 0 0 6px rgba(247,143,27,.14);}
.ma-sprint:hover .ma-sprint-node b{color:#fff;}
.ma-sprint-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 24px 22px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
.ma-sprint:hover .ma-sprint-card{border-color:var(--ember);box-shadow:0 22px 44px -30px rgba(21,17,12,.28);}
/* Odd steps sit left of the spine, even steps right. */
.ma-sprint:nth-child(odd) .ma-sprint-card{grid-column:1;margin-right:26px;text-align:right;}
.ma-sprint:nth-child(even) .ma-sprint-card{grid-column:3;margin-left:26px;}
.ma-sprint:nth-child(odd):hover .ma-sprint-card{transform:translateX(-5px);}
.ma-sprint:nth-child(even):hover .ma-sprint-card{transform:translateX(5px);}
.ma-sprint-card h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:7px;}
.ma-sprint-card p{font-size:.94rem;line-height:1.6;color:var(--muted);}

/* --- S7: industry marquee --- */
.ma-marquee{margin-top:8px;display:flex;flex-direction:column;gap:12px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.ma-mq-row{overflow:hidden;}
.ma-mq-track{display:inline-flex;gap:12px;white-space:nowrap;animation:maMarquee 32s linear infinite;will-change:transform;}
.ma-mq-row.is-rev .ma-mq-track{animation-direction:reverse;animation-duration:38s;}
@keyframes maMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ma-chip{flex:0 0 auto;font-size:1.02rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);
  background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:13px 26px;}
.ma-mq-row.is-rev .ma-chip{background:var(--paper-2);color:var(--muted);}
/* The marquee is decorative; this list carries the same names for assistive tech. */
.ma-ind-list{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* --- S8: CTA --- */
.ma-cta canvas.ai-net{opacity:.5;}
.ma-cta .cta-inner{max-width:1000px;}
.ma-cta .cta-inner h2{font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.14;margin:0 0 22px;text-wrap:balance;}
.ma-cta .cta-inner>p{max-width:72ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.ma-cta .cta-cta{margin-top:32px;}
.ma-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .ma-fault,.ma-screen::after,.ma-req,.ma-device-sweep,.ma-ring,.ma-note,.ma-sprints::before,
  .ma-sprint,.ma-mq-track{animation:none;}
  .ma-fault,.ma-req,.ma-note,.ma-sprint{opacity:1;transform:none;}
  .ma-sprints::before{transform:scaleY(1);}
  .ma-screen::after,.ma-device-sweep{opacity:0;}
}

@media(max-width:1080px){
  .ma-faults{grid-template-columns:repeat(3,1fr);gap:22px;}
  .ma-fault:nth-child(even){margin-top:0;}
  .ma-orbit{grid-template-columns:1fr 1fr;}
  .ma-orbit-mid{grid-column:1/-1;grid-row:1;}
  .ma-apps{grid-template-columns:1fr;}
}
@media(max-width:780px){
  .ma-faults{grid-template-columns:repeat(2,1fr);}
  .ma-orbit{grid-template-columns:1fr;gap:26px;}
  /* Spine to the left once the cards can no longer sit either side of it. */
  .ma-sprints::before{left:23px;margin-left:0;}
  .ma-sprint{grid-template-columns:46px 1fr;gap:20px;}
  .ma-sprint-node{grid-column:1;}
  .ma-sprint:nth-child(odd) .ma-sprint-card,
  .ma-sprint:nth-child(even) .ma-sprint-card{grid-column:2;margin:0;text-align:left;}
  .ma-sprint:nth-child(odd):hover .ma-sprint-card,
  .ma-sprint:nth-child(even):hover .ma-sprint-card{transform:translateX(5px);}
}
@media(max-width:520px){
  .ma-faults{grid-template-columns:1fr;gap:26px;}
  .ma-screen{max-width:104px;}
  .ma-ring-1{width:230px;height:230px;}
  .ma-ring-2{width:290px;height:290px;}
  .ma-device{width:158px;}
  .ma-note{grid-template-columns:auto 1fr;gap:14px;padding:18px 20px;}
  .ma-note-idx{display:none;}
  .ma-app-row-item{padding:20px;gap:16px;}
  .ma-chip{font-size:.94rem;padding:11px 20px;}
  .ma-statement{font-size:1.04rem;}
}

/* ===== APPLICATION MODERNIZATION (legacy -> modern) ===== */

.am-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}

.am-hero-txt h1{margin-top:14px;}

.am-hero .eyebrow a:hover{color:var(--ember-hi);}

.am-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}



/* before / after transform */

.am-transform{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:18px;}

.am-card{flex:1;max-width:230px;border-radius:18px;padding:24px 22px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--line-d);min-height:200px;}

.am-legacy{background:linear-gradient(160deg,#21201d,#16151200);background-color:#1a1916;}

.am-modern{background:linear-gradient(160deg,#241a10,#15110c);border-color:rgba(247,143,27,.4);box-shadow:0 30px 60px -34px rgba(247,143,27,.4);}

.am-card-tag{display:inline-flex;align-items:center;gap:8px;font-size:.62rem;letter-spacing:.16em;color:rgba(251,248,241,.7);}

.am-dot{width:8px;height:8px;border-radius:50%;}

.am-dot.warn{background:#8a857c;}

.am-dot.ok{background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.8);}

.am-legacy-stack{display:flex;flex-direction:column;gap:7px;flex:1;justify-content:center;}

.am-legacy-stack i{height:14px;border-radius:4px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 8px,transparent 8px 12px);}

.am-legacy-stack i:nth-child(2){width:88%;}.am-legacy-stack i:nth-child(3){width:72%;}.am-legacy-stack i:nth-child(4){width:80%;opacity:.6;}

.am-modern-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1;align-content:center;}

.am-modern-grid i{height:30px;border-radius:8px;background:linear-gradient(150deg,rgba(247,143,27,.85),rgba(217,101,10,.7));box-shadow:0 8px 18px -8px rgba(247,143,27,.6);animation:amBlock 3s ease-in-out infinite;}

.am-modern-grid i:nth-child(2){animation-delay:.2s;}.am-modern-grid i:nth-child(3){animation-delay:.4s;}

.am-modern-grid i:nth-child(4){animation-delay:.6s;}.am-modern-grid i:nth-child(5){animation-delay:.8s;}.am-modern-grid i:nth-child(6){animation-delay:1s;}

@keyframes amBlock{0%,100%{opacity:.7;transform:translateY(0);}50%{opacity:1;transform:translateY(-3px);}}

.am-card-cap{font-size:.58rem;letter-spacing:.1em;color:rgba(251,248,241,.5);}

.am-transform-arr{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;box-shadow:0 14px 28px -12px rgba(247,143,27,.7);animation:amArr 2.4s ease-in-out infinite;}

.am-transform-arr svg{width:22px;height:22px;}

@keyframes amArr{0%,100%{transform:translateX(0);}50%{transform:translateX(5px);}}

@media(prefers-reduced-motion:reduce){.am-modern-grid i,.am-transform-arr{animation:none;}}

/* kymera showcase (light, real screenshot) */

.am-kymera-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center;}

.am-kymera-fig{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 44px 86px -44px rgba(21,17,12,.5);padding-top:34px;background:#f4eee2;}

.am-kymera-window{position:absolute;left:0;right:0;top:0;height:34px;display:flex;align-items:center;padding:0 14px;background:#e7ded0;border-bottom:1px solid var(--line);}

.am-kw-bar{display:flex;gap:7px;}

.am-kw-bar i{width:11px;height:11px;border-radius:50%;}

.am-kw-bar i.r{background:#ff5f57;}.am-kw-bar i.y{background:#febc2e;}.am-kw-bar i.g{background:#28c840;}

.am-kymera-fig img{width:100%;height:auto;display:block;}

.am-kymera-badge{display:inline-flex;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.08em;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);border-radius:100px;padding:7px 14px;margin-bottom:16px;}

.am-kymera-txt h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:16px;}

.am-kymera-txt > p{color:var(--muted);font-size:1.04rem;line-height:1.8;margin-bottom:20px;}

.am-kymera-feats{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:13px;}

.am-kymera-feats li{display:flex;gap:13px;align-items:flex-start;font-size:.98rem;color:var(--ink);line-height:1.5;}

.am-kymera-feats b{font-weight:600;}

.am-kf-tick{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;margin-top:1px;}

.am-kf-tick svg{width:13px;height:13px;}

.am-cta canvas.ai-net{opacity:.5;}

@media(max-width:980px){
  .am-hero-grid{grid-template-columns:1fr;gap:40px;}
  .am-kymera-grid{grid-template-columns:1fr;gap:34px;}
  .am-kymera-fig{order:-1;}
}
@media(max-width:600px){
  .am-card{max-width:none;}
}

/* ----- APPLICATION MODERNIZATION sections (.lg- : strata & migration) ----- */
.lg-costsec .sec-head,.lg-delivsec .sec-head,.lg-svcsec .sec-head,
.lg-whysec .sec-head,.lg-procsec .sec-head,.lg-whosec .sec-head,
.lg-faqsec .sec-head{max-width:940px;margin-left:auto;margin-right:auto;text-align:center;}

/* --- S2: technical debt as sediment, each layer settling on the last --- */
.lg-strata{position:relative;max-width:1000px;margin-inline:auto;border-radius:18px;overflow:hidden;
  border:1px solid var(--line);box-shadow:0 34px 70px -46px rgba(21,17,12,.3);}
.lg-layer{position:relative;display:grid;grid-template-columns:190px 1fr auto;align-items:center;gap:24px;
  padding:24px 28px;
  /* Each layer sits a shade deeper than the one above it. */
  background:hsl(28 30% calc(97% - var(--i) * 3.2%));
  animation:lgSettle .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:background .3s,padding-left .35s;}
@keyframes lgSettle{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:none;}}
.lg-layer + .lg-layer{border-top:1px solid rgba(21,17,12,.07);}
.lg-layer:hover{padding-left:40px;background:hsl(24 45% calc(94% - var(--i) * 3.2%));}
.lg-layer-label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);}
.lg-layer p{font-size:1rem;line-height:1.64;color:var(--muted);transition:color .3s;}
.lg-layer:hover p{color:var(--ink);}
.lg-layer-depth{font-size:.64rem;letter-spacing:.1em;color:rgba(21,17,12,.28);}
/* A fault line running down through the accumulated layers. */
.lg-fault{position:absolute;left:190px;top:0;bottom:0;width:2px;pointer-events:none;
  background:linear-gradient(180deg,rgba(178,58,14,0),rgba(178,58,14,.65),rgba(178,58,14,0));
  animation:lgFault 4.5s ease-in-out infinite;}
@keyframes lgFault{0%,100%{opacity:.3;}50%{opacity:.9;}}

/* the dependency most businesses miss */
.lg-depend{display:flex;align-items:center;gap:30px;max-width:1000px;margin:34px auto 0;padding:28px 34px;
  border-radius:20px;background:linear-gradient(140deg,#241a10,#15110c);color:var(--cream);
  border:1px solid var(--line-d);box-shadow:0 30px 64px -44px rgba(0,0,0,.7);}
.lg-depend-viz{flex:0 0 auto;display:flex;align-items:center;gap:10px;}
.lg-node{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;
  font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.06em;}
.lg-node-ai{background:rgba(255,255,255,.06);border:1px dashed rgba(255,174,69,.45);color:rgba(255,174,69,.7);}
.lg-node-mod{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
/* The arrow points from AI back to modernization: the dependency direction. */
.lg-depend-link{position:relative;width:44px;height:2px;background:rgba(255,174,69,.25);overflow:hidden;}
.lg-depend-link i{position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,var(--ember-hi));
  animation:lgFlow 2.4s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes lgFlow{0%{transform:translateX(150%);}100%{transform:translateX(-100%);}}
.lg-depend p{font-size:1.04rem;line-height:1.7;color:rgba(251,248,241,.9);}

/* --- S3: legacy state swapped for modern state --- */
.lg-swaps{list-style:none;margin:0 auto;padding:0;max-width:1040px;display:flex;flex-direction:column;gap:12px;}
.lg-swap{display:grid;grid-template-columns:minmax(0,360px) 1fr;align-items:center;gap:28px;
  padding:22px 26px;border-radius:16px;background:#fff;border:1px solid var(--line);
  animation:lgFade .5s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
@keyframes lgFade{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.lg-swap:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 24px 46px -30px rgba(21,17,12,.28);}
.lg-swap-states{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;}
.lg-state{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.04em;text-align:center;
  border-radius:9px;padding:10px 8px;line-height:1.3;}
.lg-state-old{background:var(--paper-2);border:1px dashed var(--line);color:var(--muted-d);text-decoration:line-through;
  text-decoration-color:rgba(178,58,14,.5);}
.lg-state-new{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-weight:500;}
.lg-swap-arr{display:inline-flex;color:rgba(217,101,10,.55);transition:color .3s,transform .3s;}
.lg-swap-arr svg{width:16px;height:16px;}
.lg-swap:hover .lg-swap-arr{color:var(--ember-deep);transform:translateX(3px);}
.lg-swap p{font-size:1rem;line-height:1.64;color:var(--muted);transition:color .3s;}
.lg-swap:hover p{color:var(--ink);}

/* --- S4: capability modules on a blueprint, corner cut off --- */
.lg-mods{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.lg-mod{position:relative;display:flex;flex-direction:column;padding:26px 28px 28px;overflow:hidden;
  background:var(--cream);border:1px solid var(--line);
  /* Cut corner marks these as engineering plates rather than plain cards. */
  clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,background .35s;}
.lg-mod:hover{transform:translateY(-6px);border-color:var(--ember);background:#fff;}
.lg-mod-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(21,17,12,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(21,17,12,.045) 1px,transparent 1px);
  background-size:22px 22px;
  -webkit-mask-image:radial-gradient(120% 90% at 100% 0,#000,transparent 72%);
          mask-image:radial-gradient(120% 90% at 100% 0,#000,transparent 72%);}
.lg-mod > *{position:relative;z-index:1;}
.lg-mod-idx{font-size:.66rem;letter-spacing:.14em;color:var(--muted-d);}
.lg-mod-ico{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:13px;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin:14px 0 16px;
  transition:background .35s,color .35s,transform .35s;}
.lg-mod:hover .lg-mod-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.lg-mod-ico svg{width:24px;height:24px;}
.lg-mod h3{font-size:1.06rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;}
.lg-mod p{font-size:.94rem;line-height:1.62;color:var(--muted);}

/* --- S5: a deliberate cascade (dark) --- */
.lg-whysec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.lg-whysec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.28;}
.lg-whysec .glow-1{top:-170px;left:-140px;opacity:.24;}
.lg-whysec .wrap{position:relative;z-index:2;}
.lg-whysec .sec-head h2{color:#fff;}
.lg-whysec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.lg-cascade{list-style:none;margin:0 auto;padding:0;max-width:900px;}
.lg-step{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:20px;
  /* Each reason steps further in — the phased approach, drawn. */
  margin-left:calc(var(--i) * 42px);padding:20px 26px;border-radius:16px;
  border:1px solid var(--line-d);background:linear-gradient(150deg,rgba(255,255,255,.06),rgba(255,255,255,.015));
  animation:lgCascade .55s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .32s,background .32s;}
@keyframes lgCascade{from{opacity:0;transform:translateX(-22px);}to{opacity:1;transform:none;}}
.lg-step + .lg-step{margin-top:12px;}
.lg-step:hover{transform:translateX(6px);border-color:rgba(255,174,69,.5);background:linear-gradient(150deg,rgba(255,174,69,.11),rgba(255,255,255,.02));}
/* Connector from each step down to the next, following the indent. */
.lg-step:not(:last-child)::after{content:"";position:absolute;left:-22px;top:50%;width:22px;height:calc(100% + 12px);
  border-left:1px dashed rgba(255,174,69,.3);border-bottom:1px dashed rgba(255,174,69,.3);
  border-bottom-left-radius:10px;pointer-events:none;}
.lg-step:first-child::after{display:none;}
.lg-step-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,174,69,.4);font-size:.72rem;color:var(--ember-hi);transition:background .32s,color .32s;}
.lg-step:hover .lg-step-n{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.lg-step p{font-size:1rem;line-height:1.64;color:rgba(251,248,241,.82);transition:color .32s;}
.lg-step:hover p{color:#fff;}

/* --- S6: phases alternating above and below one axis --- */
.lg-axis{position:relative;list-style:none;margin:0;padding:96px 0;display:grid;grid-template-columns:repeat(6,1fr);gap:0 12px;}
.lg-axis-line{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;
  background:linear-gradient(90deg,rgba(247,143,27,.25),var(--ember),rgba(247,143,27,.25));
  transform:scaleX(0);transform-origin:left;animation:lgAxis 1.5s .2s cubic-bezier(.3,.8,.3,1) both;}
@keyframes lgAxis{to{transform:scaleX(1);}}
.lg-phase{position:relative;display:flex;flex-direction:column;align-items:center;
  animation:lgFade .5s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;}
.lg-phase-dot{position:absolute;top:50%;left:50%;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;border-radius:50%;
  background:var(--paper);border:2px solid var(--ember);z-index:2;transition:background .3s,box-shadow .3s;}
.lg-phase:hover .lg-phase-dot{background:var(--ember);box-shadow:0 0 0 5px rgba(247,143,27,.16);}
.lg-phase-card{position:absolute;width:100%;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:16px 18px 18px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
.lg-phase:hover .lg-phase-card{border-color:var(--ember);box-shadow:0 22px 42px -28px rgba(21,17,12,.28);}
/* Odd phases sit above the axis, even phases below, with a stem to the dot. */
.lg-phase:nth-child(odd) .lg-phase-card{bottom:calc(50% + 26px);}
.lg-phase:nth-child(even) .lg-phase-card{top:calc(50% + 26px);}
.lg-phase:nth-child(odd):hover .lg-phase-card{transform:translateY(-4px);}
.lg-phase:nth-child(even):hover .lg-phase-card{transform:translateY(4px);}
.lg-phase::before{content:"";position:absolute;left:50%;width:1px;height:22px;background:rgba(247,143,27,.4);}
.lg-phase:nth-child(odd)::before{bottom:calc(50% + 5px);}
.lg-phase:nth-child(even)::before{top:calc(50% + 5px);}
.lg-phase-n{display:block;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:7px;}
.lg-phase-card h3{font-family:'Fraunces',serif;font-size:1.02rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.24;margin-bottom:6px;}
.lg-phase-card p{font-size:.84rem;line-height:1.5;color:var(--muted);}

/* --- S7: audience folders beside the existing photograph --- */
.lg-who-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:44px;align-items:center;}
.lg-who-fig{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 40px 80px -44px rgba(21,17,12,.45);aspect-ratio:3/2;}
.lg-who-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.lg-who-fig:hover img{transform:scale(1.04);}
.lg-who-badge{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;
  background:rgba(21,17,12,.8);color:#fff;font-size:.58rem;letter-spacing:.12em;padding:8px 14px;border-radius:100px;
  backdrop-filter:blur(5px);}
.lg-who-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.lg-folders{display:flex;flex-direction:column;gap:14px;}
/* Folder tab sits proud of the card, like a labelled file in an archive. */
.lg-folder{position:relative;margin-top:14px;padding:26px 26px 24px;background:var(--cream);
  border:1px solid var(--line);border-radius:0 14px 14px 14px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s,box-shadow .3s;}
.lg-folder:hover{transform:translateX(6px);background:#fff;border-color:var(--ember);box-shadow:0 22px 44px -30px rgba(21,17,12,.28);}
.lg-folder-tab{position:absolute;left:-1px;top:-15px;display:inline-flex;align-items:center;height:26px;padding:0 16px;
  font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-radius:8px 8px 0 0;}
.lg-folder p{font-size:1rem;line-height:1.64;color:var(--muted);transition:color .3s;}
.lg-folder:hover p{color:var(--ink);}
.lg-note{max-width:80ch;margin:40px auto 0;padding-top:26px;border-top:1px solid var(--line);text-align:center;
  font-family:'Fraunces',serif;font-size:clamp(1.06rem,1.7vw,1.28rem);font-weight:500;line-height:1.55;
  letter-spacing:-.01em;color:var(--ink);}

/* --- S8: CTA --- */
.lg-cta canvas.ai-net{opacity:.5;}
.lg-cta .cta-inner{max-width:1040px;}
.lg-cta .cta-inner h2{font-size:clamp(1.7rem,3.1vw,2.6rem);line-height:1.15;margin:0 0 22px;text-wrap:balance;}
.lg-cta .cta-inner>p{max-width:76ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.lg-cta .cta-cta{margin-top:32px;}
.lg-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .lg-layer,.lg-fault,.lg-depend-link i,.lg-swap,.lg-step,.lg-axis-line,.lg-phase{animation:none;}
  .lg-layer,.lg-swap,.lg-step,.lg-phase{opacity:1;transform:none;}
  .lg-axis-line{transform:scaleX(1);}
  .lg-fault,.lg-depend-link i{opacity:0;}
}

@media(max-width:1080px){
  .lg-mods{grid-template-columns:repeat(2,1fr);}
  /* Six phases on one axis get too tight; stack them into a left-hand spine. */
  .lg-axis{grid-template-columns:1fr;padding:0;gap:14px;}
  .lg-axis-line{left:23px;right:auto;top:8px;bottom:8px;width:2px;height:auto;margin:0;
    background:linear-gradient(180deg,var(--ember),rgba(247,143,27,.2));transform:scaleY(0);transform-origin:top;
    animation-name:lgAxisV;}
  @keyframes lgAxisV{to{transform:scaleY(1);}}
  .lg-phase{display:grid;grid-template-columns:46px 1fr;align-items:start;gap:18px;}
  .lg-phase::before{display:none;}
  .lg-phase-dot{position:relative;top:auto;left:auto;margin:14px 0 0 16px;}
  .lg-phase-card,
  .lg-phase:nth-child(odd) .lg-phase-card,
  .lg-phase:nth-child(even) .lg-phase-card{position:relative;bottom:auto;top:auto;width:auto;}
  .lg-phase:nth-child(odd):hover .lg-phase-card,
  .lg-phase:nth-child(even):hover .lg-phase-card{transform:translateX(5px);}
  .lg-who-grid{grid-template-columns:1fr;gap:32px;}
  .lg-who-fig{order:-1;}
}
@media(max-width:820px){
  .lg-layer{grid-template-columns:1fr;gap:8px;padding:20px 22px;}
  .lg-layer-depth{display:none;}
  .lg-fault{display:none;}
  .lg-depend{flex-direction:column;align-items:flex-start;gap:18px;padding:24px;}
  .lg-swap{grid-template-columns:1fr;gap:16px;}
  /* Cascade indent would run off-screen once the viewport narrows. */
  .lg-step{margin-left:0;}
  .lg-step:not(:last-child)::after{display:none;}
}
@media(max-width:680px){
  .lg-mods{grid-template-columns:1fr;}
  .lg-note{font-size:1.02rem;}
}

/* ===== QUALITY ASSURANCE (testing / continuous delivery) ===== */
.qa-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center;}
.qa-hero-txt h1{margin-top:14px;}
.qa-hero .eyebrow a:hover{color:var(--ember-hi);}
.qa-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.qa-hero-fig{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 90px -42px rgba(0,0,0,.72);aspect-ratio:3/2;z-index:2;}
.qa-hero-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.qa-hero-fig:hover img{transform:scale(1.04);}
.qa-fig-chip{position:absolute;left:16px;top:16px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.12em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);}
.qa-fig-dot{width:6px;height:6px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.8);animation:msLive 1.9s infinite;}

@media(max-width:980px){
  .qa-hero-grid{grid-template-columns:1fr;gap:40px;}
  .qa-hero-fig{order:-1;}
}

/* ----- QUALITY ASSURANCE sections (.sq- : test-run motif) ----- */
.sq-risksec .sec-head,.sq-delivsec .sec-head,.sq-svcsec .sec-head,
.sq-whysec .sec-head,.sq-procsec .sec-head,.sq-whosec .sec-head,
.sq-faqsec .sec-head{max-width:940px;margin-left:auto;margin-right:auto;text-align:center;}
.sq-statement{max-width:80ch;margin:38px auto 0;padding-top:26px;border-top:1px solid var(--line);
  text-align:center;font-family:'Fraunces',serif;font-size:clamp(1.08rem,1.8vw,1.34rem);font-weight:500;
  line-height:1.52;letter-spacing:-.01em;color:var(--ink);}

/* --- S2: open-risk matrix. A real header row, so it reads as a register. --- */
.sq-matrix{max-width:1020px;margin-inline:auto;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:#fff;box-shadow:0 32px 66px -46px rgba(21,17,12,.3);}
.sq-matrix-head{display:grid;grid-template-columns:104px 1fr auto;gap:20px;align-items:center;
  padding:13px 22px;background:linear-gradient(160deg,#241a10,#15110c);}
.sq-matrix-head span{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.5);}
.sq-matrix-count{color:rgba(255,138,92,.9) !important;}
.sq-matrix-rows{list-style:none;margin:0;padding:0;}
.sq-row{display:grid;grid-template-columns:104px 1fr auto;gap:20px;align-items:center;padding:20px 22px;
  animation:sqRow .5s var(--d,0s) cubic-bezier(.2,.8,.3,1) both;transition:background .3s;}
@keyframes sqRow{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:none;}}
.sq-row + .sq-row{border-top:1px solid var(--line);}
.sq-row:hover{background:rgba(178,58,14,.045);}
.sq-row-flag{display:inline-flex;align-items:center;gap:8px;justify-self:start;
  font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rust,#b23a0e);
  background:rgba(178,58,14,.09);border:1px solid rgba(178,58,14,.28);border-radius:100px;padding:6px 12px;}
.sq-row-flag i{width:7px;height:7px;border-radius:50%;background:var(--rust,#b23a0e);
  animation:sqFail 2.4s ease-out infinite;}
@keyframes sqFail{
  0%{box-shadow:0 0 0 0 rgba(178,58,14,.5);}
  70%{box-shadow:0 0 0 8px rgba(178,58,14,0);}
  100%{box-shadow:0 0 0 0 rgba(178,58,14,0);}
}
.sq-row p{font-size:1rem;line-height:1.64;color:var(--muted);transition:color .3s;}
.sq-row:hover p{color:var(--ink);}
.sq-row-id{font-size:.62rem;letter-spacing:.1em;color:var(--muted-d);}

/* --- S3: runner readout. Rows resolve to PASS one after another. --- */
.sq-delivsec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.sq-delivsec .glow-1{top:-170px;right:-140px;opacity:.2;}
.sq-delivsec .wrap{position:relative;z-index:2;}
.sq-delivsec .sec-head h2{color:#fff;}
.sq-delivsec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.sq-runner{max-width:1000px;margin-inline:auto;border:1px solid var(--line-d);border-radius:16px;overflow:hidden;
  background:linear-gradient(162deg,#1b150f,#100c08);box-shadow:0 46px 90px -50px rgba(0,0,0,.8);}
.sq-runner-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 20px;
  border-bottom:1px solid var(--line-d);background:rgba(255,255,255,.04);}
.sq-runner-bar .mono{font-size:.66rem;color:rgba(251,248,241,.5);}
.sq-runner-state{display:inline-flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:#4ade68;}
.sq-runner-state i{width:7px;height:7px;border-radius:50%;background:#4ade68;animation:sqRun 1.8s ease-out infinite;}
@keyframes sqRun{
  0%{box-shadow:0 0 0 0 rgba(74,222,104,.55);}
  70%{box-shadow:0 0 0 9px rgba(74,222,104,0);}
  100%{box-shadow:0 0 0 0 rgba(74,222,104,0);}
}
.sq-runner-rows{list-style:none;margin:0;padding:8px 0;}
.sq-assert{display:grid;grid-template-columns:64px 168px 1fr;gap:16px;align-items:baseline;padding:14px 22px;
  /* Each row lands in turn, as a suite would stream its results. */
  animation:sqAssert .45s calc(.3s + var(--i) * .38s) cubic-bezier(.2,.8,.3,1) both;
  transition:background .25s;}
@keyframes sqAssert{from{opacity:0;transform:translateX(-12px);}to{opacity:1;transform:none;}}
.sq-assert:hover{background:rgba(74,222,104,.05);}
.sq-assert-flag{justify-self:start;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  color:#4ade68;background:rgba(74,222,104,.12);border:1px solid rgba(74,222,104,.3);
  border-radius:6px;padding:5px 9px;}
.sq-assert-spec{font-size:.72rem;letter-spacing:.02em;color:rgba(255,174,69,.82);}
.sq-assert p{font-size:.98rem;line-height:1.62;color:rgba(251,248,241,.78);}
.sq-runner-foot{display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--line-d);
  background:rgba(0,0,0,.24);}
.sq-runner-sum{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#4ade68;}
.sq-caret{width:8px;height:15px;background:var(--ember-hi);animation:sqCaret 1.1s step-end infinite;}
@keyframes sqCaret{0%,100%{opacity:1;}50%{opacity:0;}}

/* --- S4: spec cards, dashed top edge and a run line on hover --- */
.sq-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.sq-spec{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-top:2px dashed rgba(21,17,12,.18);border-radius:4px 4px 16px 16px;padding:22px 26px 26px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.sq-spec:hover{transform:translateY(-6px);border-color:var(--ember);border-top-color:var(--ember);
  box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.sq-spec-suite{font-size:.64rem;letter-spacing:.04em;color:var(--muted-d);transition:color .3s;}
.sq-spec:hover .sq-spec-suite{color:var(--ember-deep);}
.sq-spec-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin:16px 0 15px;
  transition:background .35s,color .35s,transform .35s;}
.sq-spec:hover .sq-spec-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.sq-spec-ico svg{width:23px;height:23px;}
.sq-spec h3{font-size:1.04rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;}
.sq-spec p{font-size:.93rem;line-height:1.6;color:var(--muted);}
/* Suite "runs" along the bottom edge on hover. */
.sq-spec-run{position:absolute;left:0;right:0;bottom:0;height:2px;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--ember),var(--ember-hi));
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.sq-spec:hover .sq-spec-run{transform:scaleX(1);}

/* --- S5: hexagon badges, linked by animated connectors --- */
.sq-hexes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.sq-hex-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;
  animation:sqPop .5s var(--d,0s) cubic-bezier(.2,.9,.3,1.4) both;}
/* Connector geometry: hexes are 74px wide and centred in their column, so the
   line runs from one hex's right edge (50% + 37px) to the next hex's left edge,
   which lands at 100% - 56px of the item's own width. Vertical centre is 41px,
   half the 82px hex height. */
.sq-hex-item:not(:last-child)::after,
.sq-hex-item:not(:last-child)::before{
  content:"";position:absolute;top:40px;left:calc(50% + 37px);width:calc(100% - 56px);height:2px;
  pointer-events:none;
}
/* Dashed base rail. */
.sq-hex-item:not(:last-child)::after{
  background:repeating-linear-gradient(90deg,rgba(217,101,10,.3) 0 5px,transparent 5px 11px);
}
/* Bright segment travelling along the chain, one hop after the next. */
.sq-hex-item:not(:last-child)::before{
  z-index:1;
  background:linear-gradient(90deg,transparent,var(--ember-hi),transparent);
  background-size:55% 100%;background-repeat:no-repeat;background-position:-70% 0;
  animation:sqLink 4.8s linear infinite;
  animation-delay:calc(var(--i,0) * .6s);
}
@keyframes sqLink{
  0%{background-position:-70% 0;}
  38%{background-position:170% 0;}
  38.01%,100%{background-position:170% 0;}
}
@keyframes sqPop{from{opacity:0;transform:translateY(16px) scale(.94);}to{opacity:1;transform:none;}}
.sq-hex{display:grid;place-items:center;width:74px;height:82px;
  /* Hexagon: a shape language not used elsewhere on the site. */
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  background:linear-gradient(155deg,var(--ink),var(--ink-2));
  transition:background .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.sq-hex b{font-size:.8rem;font-weight:500;color:var(--ember-hi);transition:color .35s;}
.sq-hex-item:hover .sq-hex{background:linear-gradient(155deg,var(--ember),var(--ember-deep));transform:translateY(-5px) scale(1.04);}
.sq-hex-item:hover .sq-hex b{color:#fff;}
.sq-hex-item p{font-size:.96rem;line-height:1.6;color:var(--muted);transition:color .35s;}
.sq-hex-item:hover p{color:var(--ink);}

/* --- S6: quality gates the release passes through.
   Three across rather than six: at six the copy was breaking to three or four
   words a line, which is what made the strip read as a cramped table. --- */
.sq-gates{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.sq-gate{position:relative;display:flex;flex-direction:column;gap:10px;
  padding:24px 26px 28px;border-radius:16px;overflow:hidden;
  background:#fff;border:1px solid var(--line);
  animation:sqGate .55s calc(.35s + var(--i) * .5s) ease-out both;
  transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .32s,box-shadow .32s;}
/* Each gate settles from plain to cleared, in order. */
@keyframes sqGate{
  from{opacity:0;transform:translateY(14px);border-color:var(--line);}
  to{opacity:1;transform:none;border-color:rgba(247,143,27,.34);}
}
.sq-gate:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 24px 48px -30px rgba(21,17,12,.28);}
.sq-gate-top{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-bottom:12px;border-bottom:1px solid var(--line);}
.sq-gate-n{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ember-deep);}
/* Tick sits with its gate label instead of floating in the card's dead space. */
.sq-gate-tick{flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;
  animation:sqTick .4s calc(.6s + var(--i) * .5s) cubic-bezier(.2,.9,.3,1.5) both;}
@keyframes sqTick{from{opacity:0;transform:scale(.4);}to{opacity:1;transform:none;}}
.sq-gate-tick svg{width:11px;height:11px;}
.sq-gate-tickpath{stroke-dasharray:1;stroke-dashoffset:1;
  animation:sqDraw .4s calc(.78s + var(--i) * .5s) ease-out both;}
.sq-gate h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;
  color:var(--ink);line-height:1.24;margin-top:2px;}
.sq-gate p{font-size:.92rem;line-height:1.6;color:var(--muted);}
/* Rail fills as the gate clears, so progress reads across the set. */
.sq-gate-rail{position:absolute;left:0;right:0;bottom:0;height:3px;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  animation:sqRail .6s calc(.45s + var(--i) * .5s) cubic-bezier(.3,.8,.3,1) both;}
@keyframes sqRail{to{transform:scaleX(1);}}

/* --- S7: eligibility checkboxes that tick in --- */
.sq-checks{list-style:none;margin:0 auto;padding:0;max-width:900px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.sq-check{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;padding:22px 24px;
  border-radius:14px;background:var(--cream);border:1px solid var(--line);
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s,box-shadow .3s;}
.sq-check:hover{transform:translateY(-4px);background:#fff;border-color:var(--ember);
  box-shadow:0 22px 44px -30px rgba(21,17,12,.28);}
.sq-check-box{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;
  border:2px solid rgba(217,101,10,.4);color:var(--ember-deep);
  animation:sqBoxFill .4s var(--d,0s) ease-out both;}
@keyframes sqBoxFill{
  from{background:transparent;border-color:rgba(217,101,10,.4);}
  to{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;}
}
.sq-check-box svg{width:15px;height:15px;color:#fff;}
.sq-check-path{stroke-dasharray:1;stroke-dashoffset:1;animation:sqDraw .45s calc(var(--d,0s) + .2s) ease-out both;}
@keyframes sqDraw{to{stroke-dashoffset:0;}}
.sq-check p{font-size:1rem;line-height:1.62;color:var(--muted);transition:color .3s;}
.sq-check:hover p{color:var(--ink);}

/* --- S8: CTA --- */
.sq-cta canvas.ai-net{opacity:.5;}
.sq-cta .cta-inner{max-width:1040px;}
.sq-cta .cta-inner h2{font-size:clamp(1.75rem,3.2vw,2.7rem);line-height:1.15;margin:0 0 22px;text-wrap:balance;}
.sq-cta .cta-inner>p{max-width:76ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.sq-cta .cta-cta{margin-top:32px;}
.sq-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .sq-row,.sq-row-flag i,.sq-runner-state i,.sq-assert,.sq-caret,.sq-hex-item,
  .sq-hex-item::before,.sq-gate,.sq-gate-tick,.sq-gate-tickpath,.sq-gate-rail,
  .sq-check-box,.sq-check-path{animation:none;}
  .sq-row,.sq-assert,.sq-hex-item,.sq-gate,.sq-gate-tick{opacity:1;transform:none;}
  .sq-gate{border-color:rgba(247,143,27,.34);}
  .sq-gate-rail{transform:scaleX(1);}
  .sq-gate-tickpath{stroke-dashoffset:0;}
  /* Travelling link segment has no useful resting state; the dashed rail remains. */
  .sq-hex-item::before{display:none;}
  .sq-check-path{stroke-dashoffset:0;}
  .sq-check-box{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;}
}

@media(max-width:1080px){
  .sq-specs{grid-template-columns:repeat(2,1fr);}
  .sq-gates{grid-template-columns:repeat(2,1fr);}
  .sq-hexes{grid-template-columns:repeat(3,1fr);gap:30px 18px;}
  /* Connectors would point at wrapped rows once the chain breaks. */
  .sq-hex-item::before,.sq-hex-item::after{display:none;}
}
@media(max-width:820px){
  .sq-assert{grid-template-columns:56px 1fr;gap:12px;}
  .sq-assert-spec{display:none;}
  .sq-row{grid-template-columns:88px 1fr;gap:14px;}
  .sq-row-id{display:none;}
  .sq-matrix-head{grid-template-columns:88px 1fr;}
  .sq-matrix-count{display:none;}
}
@media(max-width:680px){
  .sq-specs{grid-template-columns:1fr;}
  .sq-gates{grid-template-columns:1fr;}
  .sq-gate{padding:22px 22px 26px;}
  .sq-hexes{grid-template-columns:repeat(2,1fr);}
  .sq-checks{grid-template-columns:1fr;}
  .sq-statement{font-size:1.04rem;}
}

/* ===== GRAPHIC DESIGNING (creative studio / brand kit) ===== */
.gd-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}
.gd-hero-txt h1{margin-top:14px;}
.gd-hero .eyebrow a:hover{color:var(--ember-hi);}
.gd-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* brand-kit moodboard */
.gd-board{position:relative;z-index:2;max-width:430px;margin:0 auto;border-radius:16px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(160deg,#1c160f,#100c08);box-shadow:0 50px 90px -42px rgba(0,0,0,.75);}
.gd-board-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.gd-tl{width:11px;height:11px;border-radius:50%;}
.gd-tl.r{background:#ff5f57;}.gd-tl.y{background:#febc2e;}.gd-tl.g{background:#28c840;}
.gd-board-name{margin-left:10px;font-size:.66rem;color:rgba(251,248,241,.6);}
.gd-board-body{padding:22px;display:flex;flex-direction:column;gap:18px;}
.gd-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.gd-swatches span{height:46px;border-radius:10px;background:var(--c);border:1px solid rgba(255,255,255,.1);transform-origin:bottom;animation:gdSwatch .5s cubic-bezier(.2,.7,.2,1) backwards;}
.gd-swatches span:nth-child(1){animation-delay:.1s;}.gd-swatches span:nth-child(2){animation-delay:.18s;}.gd-swatches span:nth-child(3){animation-delay:.26s;}.gd-swatches span:nth-child(4){animation-delay:.34s;}.gd-swatches span:nth-child(5){animation-delay:.42s;}
@keyframes gdSwatch{from{transform:scaleY(0);opacity:0;}to{transform:scaleY(1);opacity:1;}}
@media(prefers-reduced-motion:reduce){.gd-swatches span{animation:none;}}
.gd-board-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.gd-type,.gd-mark{background:rgba(255,255,255,.04);border:1px solid var(--line-d);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;}
.gd-type b{font-family:'Fraunces',serif;font-size:2.4rem;font-weight:500;color:#fff;line-height:.9;}
.gd-type .mono{font-size:.58rem;letter-spacing:.06em;color:rgba(251,248,241,.5);}
.gd-mark{align-items:flex-start;justify-content:space-between;}
.gd-mark-dots{position:relative;width:42px;height:30px;}
.gd-mark-dots i{position:absolute;border-radius:50%;background:var(--ember);}
.gd-mark-dots i:nth-child(1){width:7px;height:7px;left:0;top:14px;}
.gd-mark-dots i:nth-child(2){width:9px;height:9px;left:12px;top:4px;background:var(--ember-hi);}
.gd-mark-dots i:nth-child(3){width:6px;height:6px;left:24px;top:0;}
.gd-mark-dots i:nth-child(4){width:13px;height:13px;left:24px;top:14px;background:var(--ember-deep);}
.gd-mark .mono{font-size:.58rem;letter-spacing:.06em;color:rgba(251,248,241,.5);}
.gd-shapes{display:flex;align-items:center;gap:12px;}
.gd-shapes span{flex:0 0 auto;}
.gd-shapes .sq{width:26px;height:26px;border-radius:6px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.gd-shapes .ci{width:26px;height:26px;border-radius:50%;border:2px solid var(--ember-hi);}
.gd-shapes .tr{width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:24px solid rgba(255,174,69,.55);}
.gd-shapes .bar{flex:1;height:8px;border-radius:100px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 10px,transparent 10px 16px);}

/* board motion: the kit stays live — a pick travels the palette, the mark keeps
   re-assembling, the shapes drift and a sheen crosses the board every few
   seconds. Entry animations run first; every loop is delayed past them. */
.gd-board{animation:gdFloat 9s ease-in-out infinite;}
@keyframes gdFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
.gd-board::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(102deg,transparent 40%,rgba(255,255,255,.14) 50%,transparent 60%);transform:translateX(-125%);animation:gdSheen 7.5s ease-in-out 1.6s infinite;}
@keyframes gdSheen{0%,70%{transform:translateX(-125%);}100%{transform:translateX(125%);}}
.gd-tl{animation:gdTl 4.5s ease-in-out infinite;}
.gd-tl.y{animation-delay:.35s;}.gd-tl.g{animation-delay:.7s;}
@keyframes gdTl{0%,100%{opacity:.55;}50%{opacity:1;}}
.gd-swatches span{animation:gdSwatch .5s cubic-bezier(.2,.7,.2,1) backwards,gdPick 6s ease-in-out infinite;}
.gd-swatches span:nth-child(1){animation-delay:.1s,1.2s;}
.gd-swatches span:nth-child(2){animation-delay:.18s,2.4s;}
.gd-swatches span:nth-child(3){animation-delay:.26s,3.6s;}
.gd-swatches span:nth-child(4){animation-delay:.34s,4.8s;}
.gd-swatches span:nth-child(5){animation-delay:.42s,6s;}
@keyframes gdPick{0%,82%,100%{transform:translateY(0);box-shadow:none;}88%,95%{transform:translateY(-7px);box-shadow:0 0 0 2px rgba(251,248,241,.9),0 14px 22px -10px rgba(0,0,0,.7);}}
.gd-type b{position:relative;display:inline-block;animation:gdTrack 6.5s ease-in-out infinite;}
@keyframes gdTrack{0%,100%{letter-spacing:0;}50%{letter-spacing:.05em;}}
.gd-type b::after{content:"";position:absolute;right:-7px;top:12%;width:2px;height:76%;background:var(--ember);animation:gdCaret 1.1s steps(1) infinite;}
@keyframes gdCaret{0%,49%{opacity:1;}50%,100%{opacity:0;}}
.gd-mark-dots i{animation:gdDot 5.2s ease-in-out infinite;}
.gd-mark-dots i:nth-child(2){animation-delay:.5s;}
.gd-mark-dots i:nth-child(3){animation-delay:1s;}
.gd-mark-dots i:nth-child(4){animation-delay:1.5s;}
@keyframes gdDot{0%,100%{transform:translate(0,0) scale(1);}34%{transform:translate(4px,-5px) scale(1.2);}67%{transform:translate(-3px,3px) scale(.86);}}
.gd-shapes .sq{animation:gdSpin 9s linear infinite;}
@keyframes gdSpin{to{transform:rotate(360deg);}}
.gd-shapes .ci{animation:gdRing 3.4s ease-in-out infinite;}
@keyframes gdRing{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.16);opacity:.62;}}
.gd-shapes .tr{animation:gdBob 4.4s ease-in-out .4s infinite;}
@keyframes gdBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.gd-shapes .bar{animation:gdBar 1.6s linear infinite;}
@keyframes gdBar{to{background-position:16px 0;}}
@media(prefers-reduced-motion:reduce){
  .gd-board,.gd-board::after,.gd-tl,.gd-swatches span,.gd-type b,.gd-type b::after,.gd-mark-dots i,.gd-shapes .sq,.gd-shapes .ci,.gd-shapes .tr,.gd-shapes .bar{animation:none;}
}

/* ---- 2. why most design falls flat: rejected artboards off the pile ---- */
.st-flatsec .sec-head{max-width:820px;}
.st-boards{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;align-items:stretch;}
.st-board{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:3px;padding:26px 20px 30px;box-shadow:0 22px 44px -34px rgba(21,17,12,.6);transition-delay:calc(var(--i)*80ms);transition-property:opacity,transform,box-shadow,border-color;}
.st-board::before{content:"";position:absolute;left:20px;right:20px;top:0;height:3px;background:linear-gradient(90deg,var(--rust),rgba(178,58,14,0));}
.st-board p{font-size:.95rem;line-height:1.65;color:var(--muted);}
.st-board-stamp{display:inline-block;margin-bottom:14px;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rust);border:1px solid rgba(178,58,14,.34);border-radius:3px;padding:5px 9px;transform:rotate(-2deg);}
.st-board-fold{position:absolute;right:0;bottom:0;width:34px;height:34px;background:linear-gradient(315deg,var(--paper-2) 50%,transparent 50.5%);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:width .35s cubic-bezier(.2,.7,.2,1),height .35s cubic-bezier(.2,.7,.2,1);}
.st-board:hover{transition-delay:0s;transform:translateY(-8px);border-color:rgba(178,58,14,.36);box-shadow:0 34px 60px -34px rgba(21,17,12,.5);}
.st-board:hover .st-board-fold{width:52px;height:52px;}
.st-statement{position:relative;margin-top:46px;background:var(--ink);color:rgba(251,248,241,.82);border-radius:20px;padding:46px 54px;font-family:'Fraunces',serif;font-size:clamp(1.02rem,1.5vw,1.28rem);line-height:1.72;letter-spacing:-.01em;overflow:hidden;}
.st-statement::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));}
.st-statement::after{content:"";position:absolute;right:-70px;top:-70px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.22),transparent 68%);}

/* ---- 3. what strong design should deliver: a brand-system spec sheet ---- */
.st-delivsec .sec-head{max-width:820px;}
.st-tokens{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);border-top:2px solid var(--ink);}
.st-token{position:relative;padding:30px 22px 34px;border-right:1px solid var(--line);transition-delay:calc(var(--i)*70ms);transition-property:opacity,transform,background;}
.st-token:last-child{border-right:0;}
.st-token::before{content:"";position:absolute;left:0;right:0;top:-2px;height:2px;background:var(--ember);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.st-token:hover{transition-delay:0s;background:var(--cream);}
.st-token:hover::before{transform:scaleX(1);}
.st-token-label{display:block;margin:20px 0 10px;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);}
.st-token p{font-size:.93rem;line-height:1.68;color:var(--muted);}
.st-token-art{display:flex;align-items:flex-end;height:56px;}
.st-tok-palette{display:grid;grid-template-columns:repeat(2,20px);gap:5px;align-content:end;}
.st-tok-palette i{width:20px;height:20px;border-radius:5px;animation:stTok 4.4s ease-in-out infinite;}
.st-tok-palette i:nth-child(1){background:var(--ink);}
.st-tok-palette i:nth-child(2){background:var(--ember);animation-delay:.3s;}
.st-tok-palette i:nth-child(3){background:var(--ember-hi);animation-delay:.6s;}
.st-tok-palette i:nth-child(4){background:var(--rust);animation-delay:.9s;}
@keyframes stTok{0%,100%{transform:scale(1);}50%{transform:scale(.78);}}
.st-tok-type b{font-family:'Fraunces',serif;font-size:2.5rem;font-weight:500;line-height:.86;color:var(--ink);}
.st-tok-grid{display:grid;grid-template-columns:repeat(3,14px);gap:6px;align-content:end;}
.st-tok-grid i{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--ink);animation:stFill 5s ease-in-out infinite;}
.st-tok-grid i:nth-child(2){animation-delay:.25s;}.st-tok-grid i:nth-child(3){animation-delay:.5s;}
.st-tok-grid i:nth-child(4){animation-delay:.75s;}.st-tok-grid i:nth-child(5){animation-delay:1s;}
.st-tok-grid i:nth-child(6){animation-delay:1.25s;}
@keyframes stFill{0%,100%{background:transparent;}50%{background:var(--ember);border-color:var(--ember);}}
.st-tok-scale{display:flex;align-items:flex-end;gap:7px;}
.st-tok-scale i{width:13px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));transform-origin:bottom;animation:stGrow 3.6s ease-in-out infinite;}
.st-tok-scale i:nth-child(1){height:20px;}
.st-tok-scale i:nth-child(2){height:34px;animation-delay:.25s;}
.st-tok-scale i:nth-child(3){height:50px;animation-delay:.5s;}
@keyframes stGrow{0%,100%{transform:scaleY(.55);}50%{transform:scaleY(1);}}
.st-tok-hand i{display:block;width:44px;height:44px;border-radius:50%;border:2px solid var(--ink);position:relative;}
.st-tok-hand i::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--ember);animation:stBeat 2.6s ease-in-out infinite;}
@keyframes stBeat{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(247,143,27,.5);}50%{transform:scale(.74);box-shadow:0 0 0 9px rgba(247,143,27,0);}}

/* ---- 4. design services: each card carries a live mini artboard ---- */
.st-services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.st-service{background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:20px 20px 26px;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s,border-color .3s;}
.st-service:hover{transform:translateY(-8px);border-color:rgba(247,143,27,.4);box-shadow:0 40px 68px -40px rgba(21,17,12,.5);}
.st-service h3{font-family:'Fraunces',serif;font-size:1.24rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:20px 0 10px;}
.st-service p{font-size:.94rem;line-height:1.68;color:var(--muted);}
.st-canvas{display:block;position:relative;height:140px;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#1c160f,#100c08);border:1px solid rgba(255,255,255,.09);}
.st-canvas::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(251,248,241,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(251,248,241,.05) 1px,transparent 1px);background-size:22px 22px;}
.st-art{position:absolute;inset:0;}
.st-art i{position:absolute;display:block;}
/* mark: four parts converging into a logo */
.st-art-mark i{border-radius:50%;background:var(--ember);animation:stMark 4.6s ease-in-out infinite;}
.st-art-mark .d1{width:16px;height:16px;left:calc(50% - 26px);top:calc(50% - 4px);}
.st-art-mark .d2{width:22px;height:22px;left:calc(50% - 8px);top:calc(50% - 26px);background:var(--ember-hi);animation-delay:.2s;}
.st-art-mark .d3{width:13px;height:13px;left:calc(50% + 18px);top:calc(50% - 22px);animation-delay:.4s;}
.st-art-mark .d4{width:30px;height:30px;left:calc(50% + 2px);top:calc(50% - 2px);background:var(--ember-deep);animation-delay:.6s;}
@keyframes stMark{0%,100%{transform:translate(0,0) scale(1);opacity:1;}45%{transform:translate(calc(var(--x,0) * 1px),0) scale(.6);opacity:.45;}}
.st-art-mark .d1{--x:22;}.st-art-mark .d2{--x:8;}.st-art-mark .d3{--x:-16;}.st-art-mark .d4{--x:-10;}
/* social: a feed running past */
.st-art-social i{width:calc(50% - 32px);height:26px;border-radius:6px;background:rgba(251,248,241,.14);border:1px solid rgba(251,248,241,.1);animation:stFeed 5.4s linear infinite;}
.st-art-social i:nth-child(odd){left:26px;}
.st-art-social i:nth-child(even){right:26px;background:rgba(247,143,27,.34);border-color:rgba(247,143,27,.4);}
.st-art-social i:nth-child(1),.st-art-social i:nth-child(2){top:118px;}
.st-art-social i:nth-child(3),.st-art-social i:nth-child(4){top:118px;animation-delay:1.8s;}
.st-art-social i:nth-child(5),.st-art-social i:nth-child(6){top:118px;animation-delay:3.6s;}
@keyframes stFeed{0%{transform:translateY(0);opacity:0;}12%{opacity:1;}82%{opacity:1;}100%{transform:translateY(-124px);opacity:0;}}
/* print: a package folding shut */
.st-art-print{perspective:460px;}
.st-art-print .box{left:calc(50% - 38px);top:54px;width:76px;height:50px;border-radius:0 0 5px 5px;background:linear-gradient(160deg,rgba(251,248,241,.26),rgba(251,248,241,.1));border:1px solid rgba(251,248,241,.3);border-top:0;}
.st-art-print .lid{left:calc(50% - 38px);top:36px;width:76px;height:18px;border-radius:5px 5px 0 0;background:linear-gradient(180deg,rgba(251,248,241,.44),rgba(251,248,241,.22));border:1px solid rgba(251,248,241,.34);transform-origin:bottom;animation:stLid 4.2s ease-in-out infinite;}
.st-art-print .band{left:calc(50% - 9px);top:36px;width:18px;height:68px;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));opacity:.9;transform-origin:top;animation:stBand 4.2s ease-in-out infinite;}
@keyframes stLid{0%,16%{transform:rotateX(-108deg);}44%,100%{transform:rotateX(0deg);}}
@keyframes stBand{0%,42%{transform:scaleY(0);}64%,100%{transform:scaleY(1);}}
/* ui: a wireframe finding its hierarchy */
.st-art-ui .bar{left:24px;top:24px;right:24px;height:12px;border-radius:4px;background:rgba(251,248,241,.24);}
.st-art-ui .col{top:48px;width:calc(33.33% - 22px);border-radius:5px;background:rgba(251,248,241,.13);transform-origin:top;animation:stCol 4s ease-in-out infinite;}
.st-art-ui .col.a{left:24px;height:44px;}
.st-art-ui .col.b{left:calc(33.33% + 8px);height:44px;background:rgba(247,143,27,.42);animation-delay:.25s;}
.st-art-ui .col.c{left:calc(66.66% - 8px);height:44px;animation-delay:.5s;}
@keyframes stCol{0%,100%{transform:scaleY(.5);}50%{transform:scaleY(1);}}
.st-art-ui .wide{left:24px;right:24px;bottom:22px;height:8px;border-radius:4px;background:rgba(251,248,241,.16);}
/* motion: arcs sweeping through */
.st-art-motion i{left:50%;top:50%;border-radius:50%;border:2px solid transparent;animation:stSpin 4.5s linear infinite;}
.st-art-motion .a{width:96px;height:96px;border-top-color:var(--ember);}
.st-art-motion .b{width:68px;height:68px;border-right-color:var(--ember-hi);animation-duration:3.2s;animation-direction:reverse;}
.st-art-motion .c{width:40px;height:40px;border-bottom-color:rgba(251,248,241,.42);animation-duration:2.4s;}
@keyframes stSpin{from{transform:translate(-50%,-50%) rotate(0);}to{transform:translate(-50%,-50%) rotate(360deg);}}
/* ai: machine output, then a human pass over it */
.st-art-ai .grid{left:calc(50% - 52px);top:32px;width:78px;height:78px;border-radius:6px;background-image:radial-gradient(rgba(251,248,241,.46) 1.6px,transparent 1.7px);background-size:13px 13px;animation:stAi 3.8s ease-in-out infinite;}
.st-art-ai .spark{left:calc(50% + 36px);top:36px;width:14px;height:14px;background:var(--ember-hi);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:stSpark 2.6s ease-in-out infinite;}
.st-art-ai .pen{left:calc(50% - 58px);top:78px;width:112px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));box-shadow:0 0 14px -2px rgba(247,143,27,.75);transform-origin:left;animation:stPen 3.8s ease-in-out infinite;}
@keyframes stAi{0%,100%{opacity:.45;}50%{opacity:1;}}
@keyframes stSpark{0%,100%{transform:scale(.6) rotate(0);opacity:.5;}50%{transform:scale(1.15) rotate(90deg);opacity:1;}}
@keyframes stPen{0%,18%{transform:rotate(-11deg) scaleX(0);}60%,100%{transform:rotate(-11deg) scaleX(1);}}

/* ---- 5. why businesses choose inabia: the palette, read as reasons ---- */
.st-whysec{background:var(--ink);color:var(--cream);position:relative;overflow:hidden;}
.st-whysec .hero-glow.glow-1{width:520px;height:520px;background:var(--ember-deep);opacity:.16;left:-160px;top:-140px;}
.st-whysec canvas.ai-net{position:absolute;inset:0;width:100%;height:100%;opacity:.42;}
.st-whysec .wrap{position:relative;z-index:2;}
.st-whysec .sec-head h2{color:#fff;}
.st-whysec .sec-head h2 em{color:var(--ember-hi);}
.st-swatches{list-style:none;border-top:1px solid var(--line-d);}
.st-swatch{position:relative;display:grid;grid-template-columns:96px 92px 1fr;align-items:center;gap:26px;padding:20px 4px;border-bottom:1px solid var(--line-d);transition-delay:calc(var(--i)*70ms);transition-property:opacity,transform;}
.st-swatch-chip{height:46px;border-radius:9px;background:var(--c);color:var(--c);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s;}
.st-swatch-hex{font-size:.66rem;letter-spacing:.08em;color:rgba(251,248,241,.5);transition:color .3s;}
.st-swatch p{font-size:1.02rem;line-height:1.6;color:rgba(251,248,241,.84);}
.st-swatch::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.st-swatch:hover{transition-delay:0s;}
.st-swatch:hover .st-swatch-chip{transform:scaleX(1.14);box-shadow:0 0 26px -4px currentColor;}
.st-swatch:hover .st-swatch-hex{color:rgba(251,248,241,.9);}
.st-swatch:hover::after{transform:scaleX(1);}

/* ---- 6. our design process: a storyboard strip ---- */
.st-strip{position:relative;background:var(--ink);border-radius:20px;padding:34px 0;overflow:hidden;}
.st-sprockets{position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,rgba(251,248,241,.2) 0 12px,transparent 12px 34px);animation:stFilm 3.4s linear infinite;}
.st-sprockets.top{top:11px;}
.st-sprockets.bottom{bottom:11px;}
@keyframes stFilm{to{background-position:34px 0;}}
.st-frames{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);padding:0 26px;}
.st-frame{position:relative;padding:26px 24px 28px;border-right:1px dashed rgba(251,248,241,.16);border-bottom:1px dashed rgba(251,248,241,.16);transition:background .35s;}
.st-frame:nth-child(3n){border-right:0;}
.st-frame:nth-last-child(-n+3){border-bottom:0;}
.st-frame:hover{background:rgba(251,248,241,.05);}
.st-frame-n{display:inline-block;font-size:.72rem;letter-spacing:.1em;color:var(--ember);margin-bottom:12px;position:relative;padding-left:22px;}
.st-frame-n::before{content:"";position:absolute;left:0;top:50%;width:14px;height:2px;margin-top:-1px;background:var(--ember);transform-origin:left;transition:transform .35s;}
.st-frame:hover .st-frame-n::before{transform:scaleX(1.6);}
.st-frame h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;}
.st-frame p{font-size:.93rem;line-height:1.65;color:rgba(251,248,241,.62);}

/* ---- 7. who this is for: notes taped to the board ---- */
.st-notes{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding-top:8px;}
.st-note{position:relative;background:var(--cream);border:1px solid var(--line);padding:38px 24px 30px;box-shadow:0 24px 46px -32px rgba(21,17,12,.55);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s;}
.st-note:nth-child(1){transform:rotate(-1.6deg);}
.st-note:nth-child(2){transform:rotate(1.1deg);}
.st-note:nth-child(3){transform:rotate(-.7deg);}
.st-note:nth-child(4){transform:rotate(1.7deg);}
.st-note:hover{transform:rotate(0deg) translateY(-8px);box-shadow:0 40px 66px -34px rgba(21,17,12,.5);}
.st-note p{font-size:1rem;line-height:1.68;color:var(--ink);}
.st-tape{position:absolute;left:50%;top:-13px;width:92px;height:26px;margin-left:-46px;background:rgba(247,143,27,.3);border-left:1px dashed rgba(21,17,12,.16);border-right:1px dashed rgba(21,17,12,.16);transform:rotate(-2.5deg);}

/* ---- 8/9. cta + faq ---- */
.st-cta canvas.ai-net{opacity:.5;}
.st-faqsec .sec-head{max-width:960px;margin-left:auto;margin-right:auto;text-align:center;}
.st-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .st-tok-palette i,.st-tok-grid i,.st-tok-scale i,.st-tok-hand i::after,.st-art i,.st-sprockets{animation:none;}
  .st-art-print .lid,.st-art-print .band,.st-art-ui .col,.st-art-ai .pen{transform:none;}
}

@media(max-width:1180px){
  .st-boards{grid-template-columns:repeat(3,1fr);}
  .st-tokens{grid-template-columns:repeat(3,1fr);}
  .st-token:nth-child(3n){border-right:0;}
  .st-token:nth-child(-n+3){border-bottom:1px solid var(--line);}
}
@media(max-width:980px){
  .gd-hero-grid{grid-template-columns:1fr;gap:40px;}
  .st-statement{padding:36px 30px 36px 34px;}
  .st-services{grid-template-columns:repeat(2,1fr);}
  .st-swatch{grid-template-columns:72px 84px 1fr;gap:18px;}
  .st-frames{grid-template-columns:repeat(2,1fr);}
  .st-frame:nth-child(3n){border-right:1px dashed rgba(251,248,241,.16);}
  .st-frame:nth-child(2n){border-right:0;}
  .st-frame:nth-last-child(-n+3){border-bottom:1px dashed rgba(251,248,241,.16);}
  .st-frame:nth-last-child(-n+2){border-bottom:0;}
  .st-notes{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:680px){
  .st-boards{grid-template-columns:1fr;}
  .st-tokens{grid-template-columns:1fr;}
  .st-token{border-right:0;border-bottom:1px solid var(--line);}
  .st-token:last-child{border-bottom:0;}
  .st-services{grid-template-columns:1fr;}
  .st-swatch{grid-template-columns:56px 1fr;gap:16px;padding:18px 4px;}
  .st-swatch-hex{display:none;}
  .st-frames{grid-template-columns:1fr;padding:0 18px;}
  .st-frame,.st-frame:nth-child(3n),.st-frame:nth-child(2n){border-right:0;}
  .st-frame:nth-last-child(-n+3),.st-frame:nth-last-child(-n+2){border-bottom:1px dashed rgba(251,248,241,.16);}
  .st-frame:last-child{border-bottom:0;}
  .st-notes{grid-template-columns:1fr;}
}

/* ===== INTERNET OF THINGS (smart home / connected) ===== */
.iot-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}
.iot-hero-txt h1{margin-top:14px;}
.iot-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* smart thermostat */
.iot-thermo{position:relative;z-index:2;max-width:360px;margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(160deg,#1c160f,#100c08);box-shadow:0 50px 90px -42px rgba(0,0,0,.75);}
.iot-thermo-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.iot-tl{width:11px;height:11px;border-radius:50%;}
.iot-tl.r{background:#ff5f57;}.iot-tl.y{background:#febc2e;}.iot-tl.g{background:#28c840;}
.iot-thermo-name{margin-left:8px;font-size:.66rem;color:rgba(251,248,241,.6);}
.iot-wifi{margin-left:auto;color:var(--ember-hi);}
.iot-wifi svg{width:18px;height:18px;}
.iot-thermo-body{padding:30px 26px 26px;display:flex;flex-direction:column;align-items:center;gap:22px;}
.iot-dial{position:relative;width:200px;height:200px;display:grid;place-items:center;}
.iot-dial-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 220deg,var(--ember) 0deg,var(--ember-hi) 150deg,rgba(255,255,255,.08) 150deg 280deg,var(--ember) 280deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 16px),#000 calc(100% - 16px));mask:radial-gradient(farthest-side,transparent calc(100% - 16px),#000 calc(100% - 16px));animation:iotDial 1.4s cubic-bezier(.4,0,.2,1) both;}
@keyframes iotDial{from{transform:rotate(-40deg);opacity:.4;}to{transform:rotate(0);opacity:1;}}
.iot-dial-center{position:relative;display:flex;flex-direction:column;align-items:center;}
.iot-dial-center b{font-size:3rem;font-weight:500;color:#fff;line-height:1;}
.iot-dial-center i{font-style:normal;font-size:.62rem;letter-spacing:.2em;color:var(--ember-hi);margin-top:4px;}
.iot-modes{display:flex;gap:8px;}
.iot-mode{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(251,248,241,.6);background:rgba(255,255,255,.04);border:1px solid var(--line-d);border-radius:100px;padding:7px 14px;}
.iot-mode.active{color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;}
.iot-thermo-status{display:inline-flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.1em;color:rgba(251,248,241,.6);}

/* hero control card — the sense/decide/act loop running on the device itself. */
.iot-dial-sweep{position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:conic-gradient(from 0deg,rgba(255,174,69,.55),rgba(255,174,69,0) 24%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 16px),#000 calc(100% - 16px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 16px),#000 calc(100% - 16px));
  animation:iotSweep 4.5s linear infinite;}
@keyframes iotSweep{to{transform:rotate(360deg);}}
.iot-wifi{animation:iotWifi 2.6s ease-in-out infinite;}
@keyframes iotWifi{0%,100%{opacity:.5;}50%{opacity:1;}}
.iot-edge{display:flex;align-items:center;gap:12px;padding:13px 20px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.24);}
.iot-edge-top{display:inline-flex;align-items:center;gap:8px;font-size:.5rem;letter-spacing:.16em;color:rgba(251,248,241,.55);}
.iot-edge-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.iot-edge-rot{position:relative;flex:1;height:17px;overflow:hidden;}
.iot-edge-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.76rem;color:var(--ember-hi);letter-spacing:.02em;white-space:nowrap;
  opacity:0;transform:translateY(8px);animation:iotEdgeRot 6s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2s);}
@keyframes iotEdgeRot{0%{opacity:0;transform:translateY(8px);}6%,28%{opacity:1;transform:none;}34%,100%{opacity:0;transform:translateY(-8px);}}

/* ----- IoT sections (.ie- : device, edge, cloud) -----
   Motif set unique to this page: a round trip raced against an on-device
   decision, layer-fault indicators, microchip-silhouette cards, layer-tagged
   services, a PCB trace spine and cumulative LED progress strips. */

/* --- S2: the lede beside the two decision paths --- */
.ie-lede-top{max-width:1020px;margin-bottom:56px;}
.ie-lede-top .eyebrow{margin-bottom:14px;}
.ie-lede-top h2{font-size:clamp(1.68rem,3vw,2.4rem);}
.ie-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.ie-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.ie-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.ie-lede-btn{margin-top:10px;}

.ie-race{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.ie-race-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.ie-race-led{width:7px;height:7px;border-radius:50%;background:var(--rust);box-shadow:0 0 10px rgba(178,58,14,.9);animation:pulse 1.8s infinite;}
.ie-race-body{padding:24px 22px 20px;display:flex;flex-direction:column;gap:22px;}
.ie-lane{display:flex;flex-direction:column;gap:9px;}
.ie-lane-lbl{font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.5);}
.ie-lane-track{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 14px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);overflow:hidden;}
.ie-lane-node{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.08em;color:rgba(251,248,241,.62);
  padding:5px 10px;border-radius:6px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);white-space:nowrap;}
.ie-lane-node.mid{color:var(--rust);border-color:rgba(178,58,14,.42);background:rgba(178,58,14,.1);}
/* The cloud lane's pulse crawls; the on-device lane's is over almost at once. */
.ie-lane-pulse{position:absolute;top:0;bottom:0;width:34%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,174,69,.16),transparent);}
.ie-lane.cloud .ie-lane-pulse{left:-34%;background:linear-gradient(90deg,transparent,rgba(178,58,14,.24),transparent);animation:ieCrawl 5.2s cubic-bezier(.5,0,.5,1) infinite;}
.ie-lane.edge .ie-lane-pulse{left:-34%;animation:ieSnap 5.2s cubic-bezier(.2,.9,.3,1) infinite;}
@keyframes ieCrawl{0%{left:-34%;}72%,100%{left:100%;}}
@keyframes ieSnap{0%{left:-34%;}10%,100%{left:100%;}}
.ie-lane-read{font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;}
.ie-lane.cloud .ie-lane-read{color:var(--rust);}
.ie-lane.edge .ie-lane-read{color:#4ed492;}
.ie-lane.edge .ie-lane-track{border-color:rgba(78,212,146,.32);}
.ie-race-foot{display:flex;gap:30px;flex-wrap:wrap;padding:16px 22px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.18);}
.ie-race-stat{display:flex;flex-direction:column;gap:3px;}
.ie-race-stat b{font-size:1.15rem;font-weight:500;letter-spacing:.02em;color:var(--ember-hi);}
.ie-race-stat.down b{color:rgba(251,248,241,.45);}
.ie-race-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}

/* --- S3: faults, tagged to the layer they actually sit in --- */
.ie-faultsec .sec-head{max-width:900px;}
.ie-faults{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ie-fault{display:flex;flex-direction:column;overflow:hidden;background:var(--cream);border:1px solid var(--line);border-radius:16px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.ie-fault:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
.ie-fault-head{display:flex;align-items:center;gap:12px;padding:14px 20px;background:rgba(178,58,14,.07);border-bottom:1px solid rgba(178,58,14,.14);}
/* Three bands, cloud on top; only the failing layer carries colour. */
.ie-layers{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;}
.ie-layers i{display:block;width:20px;height:4px;border-radius:1px;background:rgba(21,17,12,.14);}
.ie-layers-cloud .l-cloud,.ie-layers-edge .l-edge,.ie-layers-device .l-device{background:var(--rust);
  animation:ieFault 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .28s);}
@keyframes ieFault{0%,62%,100%{opacity:.45;}74%,88%{opacity:1;}}
.ie-fault-tag{font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);}
.ie-fault-layer{margin-left:auto;font-size:.48rem;letter-spacing:.15em;text-transform:uppercase;color:var(--rust);}
.ie-fault p{padding:22px 22px 26px;font-size:.96rem;color:var(--muted);line-height:1.68;}
.ie-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.ie-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: requirements set on the chip they run on (dark) --- */
.ie-delivsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.ie-delivsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.ie-delivsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.ie-delivsec .wrap{position:relative;z-index:2;}
.ie-delivsec .sec-head{max-width:900px;}
.ie-delivsec .sec-head h2 em{color:var(--ember-hi);}
.ie-chips{display:grid;grid-template-columns:repeat(6,1fr);gap:24px 30px;}
.ie-chip{position:relative;grid-column:span 2;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;
  padding:26px 24px 26px;transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.ie-chip:nth-child(4),.ie-chip:nth-child(5){grid-column:span 3;}
.ie-chip:hover{background:rgba(255,255,255,.075);border-color:rgba(247,143,27,.42);transform:translateY(-5px);}
/* Pins down both edges and a notch at the top — an IC silhouette. */
.ie-chip-pins{position:absolute;top:26%;bottom:26%;display:flex;flex-direction:column;justify-content:space-between;}
.ie-chip-pins.left{left:-9px;}
.ie-chip-pins.right{right:-9px;}
.ie-chip-pins i{display:block;width:9px;height:3px;border-radius:1px;background:rgba(251,248,241,.22);transition:background .35s;}
.ie-chip:hover .ie-chip-pins i{background:var(--ember-hi);}
.ie-chip-notch{position:absolute;left:22px;top:-1px;width:22px;height:11px;border-radius:0 0 11px 11px;
  background:var(--ink);border:1px solid rgba(255,255,255,.1);border-top:none;}
.ie-chip-key{display:block;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-hi);margin:6px 0 13px;}
.ie-chip p{font-size:.97rem;color:rgba(251,248,241,.8);line-height:1.7;}

/* --- S5: services tagged to their layer of the stack --- */
.ie-svcsec .sec-head{max-width:940px;}
.ie-svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ie-svc{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:26px 26px 28px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
/* Architecture comes before the rest of the stack, so it leads the board. */
.ie-svc.is-lead{grid-column:span 3;display:grid;grid-template-columns:auto 1fr;gap:0 24px;align-items:start;
  background:linear-gradient(140deg,rgba(247,143,27,.08),var(--cream) 46%);border-color:rgba(247,143,27,.35);}
.ie-svc:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -32px rgba(21,17,12,.32);}
.ie-svc-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin-bottom:16px;transition:background .35s,color .35s,transform .35s;}
.ie-svc.is-lead .ie-svc-ico{grid-row:span 3;margin-bottom:0;}
.ie-svc:hover .ie-svc-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.ie-svc-ico svg{width:22px;height:22px;}
.ie-svc-layer{display:inline-block;font-size:.5rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);
  padding:5px 11px;border-radius:100px;background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.28);margin-bottom:12px;}
.ie-svc h3{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.32;margin-bottom:9px;}
.ie-svc p{font-size:.94rem;color:var(--muted);line-height:1.66;}
.ie-svc.is-lead h3{font-size:1.3rem;}
.ie-svc.is-lead p{max-width:820px;}

/* --- S6: a board trace running down the reasons --- */
.ie-whysec .sec-head{max-width:880px;}
.ie-reasons{list-style:none;margin:0;padding:0;}
.ie-reason{position:relative;display:grid;grid-template-columns:44px 46px 1fr;gap:24px;align-items:center;padding:26px 6px;transition:padding-left .35s;}
.ie-reason:hover{padding-left:16px;}
/* Vertical trace with a via at each reason; the run stops at the last one. */
.ie-trace{position:relative;justify-self:center;width:3px;border-radius:2px;align-self:stretch;background:rgba(21,17,12,.2);}
.ie-reason:first-child .ie-trace{margin-top:26px;}
.ie-reason:last-child .ie-trace{margin-bottom:26px;}
.ie-trace .via{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:4px;
  background:var(--paper-2);border:2px solid rgba(21,17,12,.18);
  transition:background .45s,border-color .45s,box-shadow .45s;transition-delay:calc(var(--i) * .22s + .3s);}
.ie-reasons.in .via{background:var(--ember);border-color:var(--ember);box-shadow:0 0 0 5px rgba(247,143,27,.14);}
.ie-reason-n{font-size:.86rem;letter-spacing:.14em;color:var(--muted-d);transition:color .35s;}
.ie-reason:hover .ie-reason-n{color:var(--ember-deep);}
.ie-reason p{font-size:1.06rem;color:var(--ink);line-height:1.7;}

/* --- S7: phases with a cumulative LED strip (dark) --- */
.ie-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.ie-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.ie-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.ie-procsec .wrap{position:relative;z-index:2;}
.ie-procsec .sec-head{max-width:900px;}
.ie-procsec .sec-head h2 em{color:var(--ember-hi);}
.ie-procsec .sec-head p{color:rgba(251,248,241,.74);}
.ie-phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.ie-phase{display:flex;flex-direction:column;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:24px 26px 22px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.ie-phase:hover{background:rgba(255,255,255,.065);border-color:rgba(247,143,27,.45);transform:translateY(-5px);}
.ie-phase-n{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--ember-hi);margin-bottom:10px;}
.ie-phase h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:8px;}
.ie-phase p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.64;}
.ie-leds{display:flex;gap:5px;margin-top:auto;padding-top:20px;}
.ie-leds i{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.09);transition:background .5s,box-shadow .5s;}
.ie-phases.in .ie-leds i.on{background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));box-shadow:0 0 8px rgba(247,143,27,.5);
  transition-delay:calc(var(--i) * .12s + var(--l) * .07s + .2s);}

/* --- S8: five sectors read as nodes on one network --- */
.ie-nodes{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.ie-nodes-link{position:absolute;left:8%;right:8%;top:56px;height:1px;
  background-image:linear-gradient(90deg,rgba(21,17,12,.22) 0 6px,transparent 6px 12px);background-size:12px 1px;background-repeat:repeat-x;}
.ie-node{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:24px 22px 26px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.ie-node:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.ie-node-ico{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  background:var(--paper-2);border:1px solid var(--line);color:var(--ember-deep);margin-bottom:16px;transition:background .35s,color .35s,border-color .35s;}
.ie-node:hover .ie-node-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.ie-node-ico svg{width:21px;height:21px;}
.ie-node-kick{font-size:.58rem;font-weight:400;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);line-height:1.5;
  margin-bottom:11px;padding-bottom:11px;border-bottom:1px solid var(--line);}
.ie-node p{font-size:.93rem;color:var(--muted);line-height:1.66;}

/* --- S9/S10: CTA + FAQ --- */
.iot-cta canvas.ai-net{opacity:.5;}
.ie-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.ie-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .iot-dial-sweep,.iot-wifi,.iot-edge-rot i,.ie-lane-pulse,.ie-layers i{animation:none;}
  .iot-dial-sweep{display:none;}
  .iot-edge-rot i{opacity:0;}
  .iot-edge-rot i:first-child{opacity:1;}
  .ie-lane-pulse{display:none;}
  .ie-trace .via,.ie-leds i{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .ie-faults,.ie-svcs,.ie-phases{grid-template-columns:repeat(2,1fr);}
  .ie-svc.is-lead{grid-column:span 2;}
  .ie-chips{grid-template-columns:repeat(2,1fr);}
  .ie-chip,.ie-chip:nth-child(4),.ie-chip:nth-child(5){grid-column:span 1;}
  .ie-chip:nth-child(5){grid-column:span 2;}
  .ie-nodes{grid-template-columns:repeat(3,1fr);}
  .ie-nodes-link{display:none;}
}
@media(max-width:980px){
  .iot-hero-grid{grid-template-columns:1fr;gap:42px;}
  .iot-thermo{order:-1;}
  .ie-lede-grid{grid-template-columns:1fr;gap:44px;}
}
@media(max-width:760px){
  .ie-faults,.ie-svcs,.ie-phases,.ie-chips,.ie-nodes{grid-template-columns:1fr;}
  .ie-svc.is-lead,.ie-chip,.ie-chip:nth-child(4),.ie-chip:nth-child(5){grid-column:span 1;}
  .ie-svc.is-lead{grid-template-columns:1fr;gap:0;}
  .ie-svc.is-lead .ie-svc-ico{grid-row:auto;margin-bottom:16px;}
  .ie-verdict{padding-left:18px;font-size:1.02rem;}
  .ie-reason{grid-template-columns:30px 40px 1fr;gap:14px;}
  .ie-lane-track{flex-wrap:wrap;gap:8px;}
  .ie-race-foot{gap:20px;}
}

/* ===== AI/ML EXPERTISE (data science / neural) ===== */
.ai-hero{position:relative;}
.ai-hero canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.4;}
.ai-hero .wrap{position:relative;z-index:2;}
.ai-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}
.ai-hero-txt h1{margin-top:14px;}
.ai-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* tokens / embedding visual */
.ai-tokens{position:relative;z-index:2;border-radius:16px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(160deg,#1c160f,#100c08);box-shadow:0 50px 90px -42px rgba(0,0,0,.75);max-width:420px;margin:0 auto;}
.ai-tokens-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.ai-tl{width:11px;height:11px;border-radius:50%;}
.ai-tl.r{background:#ff5f57;}.ai-tl.y{background:#febc2e;}.ai-tl.g{background:#28c840;}
.ai-tokens-name{margin-left:8px;font-size:.66rem;color:rgba(251,248,241,.6);}
.ai-tokens-body{padding:22px;}
.ai-tok-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.ai-tok{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:rgba(251,248,241,.82);background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:7px;padding:6px 11px;}
.ai-tok.hot{color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;}
.ai-embed{display:grid;grid-template-columns:repeat(14,1fr);gap:5px;margin-bottom:18px;}
.ai-embed i{height:14px;border-radius:3px;background:rgba(247,143,27,.14);animation:aiEmbed 2.6s ease-in-out infinite;animation-delay:calc(var(--i)*.06s);}
@keyframes aiEmbed{0%,100%{background:rgba(247,143,27,.12);}50%{background:rgba(247,143,27,.6);}}
@media(prefers-reduced-motion:reduce){.ai-embed i{animation:none;}}
.ai-tok-out{display:inline-flex;align-items:center;gap:9px;font-size:.7rem;color:rgba(251,248,241,.7);}
.ai-tok-out b{color:#28c840;}
.ai-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;}

/* hero panel — the inference run made live: tokens light in turn, the task
   cycles, and a sweep passes over the panel. */
.ai-task-rot{position:relative;margin-left:auto;display:block;width:104px;height:15px;overflow:hidden;}
.ai-task-rot i{position:absolute;right:0;top:0;font-style:normal;font-size:.62rem;letter-spacing:.06em;color:var(--ember-hi);white-space:nowrap;
  opacity:0;transform:translateY(7px);animation:aiTask 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes aiTask{0%{opacity:0;transform:translateY(7px);}5%,16%{opacity:1;transform:none;}21%,100%{opacity:0;transform:translateY(-7px);}}
/* The static `.hot` token is the no-animation fallback; the run overrides it. */
.ai-tok{animation:aiTok 6s ease-in-out infinite;animation-delay:calc(var(--k) * .34s);}
@keyframes aiTok{0%,6%{background:rgba(255,255,255,.05);border-color:var(--line-d);color:rgba(251,248,241,.82);}
  12%,24%{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
  32%,100%{background:rgba(255,255,255,.05);border-color:var(--line-d);color:rgba(251,248,241,.82);}}
.ai-tokens-scan{position:absolute;left:0;right:0;top:0;height:44px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(247,143,27,.1),rgba(255,174,69,.26),transparent);
  animation:aiPanelScan 6.5s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes aiPanelScan{0%{transform:translateY(-110%);opacity:0;}12%{opacity:1;}84%{opacity:1;}100%{transform:translateY(640%);opacity:0;}}
@media(prefers-reduced-motion:reduce){
  .ai-task-rot i,.ai-tok{animation:none;}
  .ai-tokens-scan{display:none;}
  .ai-task-rot i{opacity:0;}
  .ai-task-rot i:first-child{opacity:1;}
}

/* ----- AI/ML sections (.mx- : pilots into production) -----
   Motif set unique to this page: a cohort of a hundred pilots where five reach
   production, runs that halt at the point they stall, ghost-keyword plates,
   oversized clipped index numerals, dashed processing rings and a lifecycle
   that loops back into retraining. */

/* --- S2: the lede beside the cohort that never scaled --- */
.mx-lede-top{max-width:1020px;margin-bottom:56px;}
.mx-lede-top .eyebrow{margin-bottom:14px;}
.mx-lede-top h2{font-size:clamp(1.7rem,3.1vw,2.5rem);}
.mx-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.mx-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.mx-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.mx-lede-btn{margin-top:10px;}

.mx-cohort{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.mx-co-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.mx-co-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.mx-co-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;color:var(--ember-hi);}
/* The production lane fills only as the cohort below it thins out. */
.mx-co-lane{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px dashed rgba(255,255,255,.12);background:rgba(247,143,27,.05);}
.mx-co-lane-lbl{font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.5);}
.mx-co-lane-dots{margin-left:auto;display:inline-flex;gap:7px;}
.mx-co-lane-dots i{width:11px;height:11px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.8);
  opacity:0;transform:scale(.4);animation:mxArrive 9s ease-in-out infinite;animation-delay:calc(var(--p) * .16s + 2.4s);}
@keyframes mxArrive{0%,22%{opacity:0;transform:scale(.4);}32%,84%{opacity:1;transform:scale(1);}94%,100%{opacity:0;transform:scale(.4);}}
.mx-co-field{display:grid;grid-template-columns:repeat(20,1fr);gap:6px;padding:22px 20px;}
.mx-co-field i{aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.4);
  animation:mxCull 9s ease-in-out infinite;animation-delay:calc(var(--c) * 12ms);}
@keyframes mxCull{0%,14%{opacity:.72;transform:scale(1);}30%,84%{opacity:.09;transform:scale(.72);}96%,100%{opacity:.72;transform:scale(1);}}
.mx-co-field i.keep{background:var(--ember-hi);animation-name:mxKeep;}
@keyframes mxKeep{0%,14%{opacity:.72;transform:scale(1);box-shadow:none;}
  30%,84%{opacity:1;transform:scale(1.35);box-shadow:0 0 0 3px rgba(247,143,27,.16);}
  96%,100%{opacity:.72;transform:scale(1);box-shadow:none;}}
.mx-co-foot{display:flex;gap:30px;flex-wrap:wrap;padding:16px 20px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.16);}
.mx-co-stat{display:flex;flex-direction:column;gap:3px;}
.mx-co-stat b{font-size:1.2rem;font-weight:500;letter-spacing:.02em;color:rgba(251,248,241,.42);}
.mx-co-stat.up b{color:var(--ember-hi);}
.mx-co-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}

/* --- S3: runs that halt where the initiative actually broke --- */
.mx-stallsec .sec-head{max-width:900px;}
.mx-runs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.mx-run{display:grid;grid-template-columns:150px 1fr 232px;gap:26px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:background .3s;}
.mx-run:hover{background:rgba(255,255,255,.55);}
.mx-run-tag{font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);}
.mx-run p{font-size:.99rem;color:var(--muted);line-height:1.66;}
.mx-run-track{position:relative;display:block;height:8px;border-radius:100px;background:rgba(21,17,12,.1);}
.mx-run-fill{position:absolute;left:0;top:0;bottom:0;width:var(--stop);border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  transform:scaleX(0);transform-origin:left;animation:mxRun 5.6s cubic-bezier(.25,.9,.3,1) infinite;animation-delay:calc(var(--i) * .34s);}
@keyframes mxRun{0%{transform:scaleX(0);}30%,88%{transform:scaleX(1);}97%,100%{transform:scaleX(0);}}
/* The hard stop where the run gave out. */
.mx-run-stop{position:absolute;top:-6px;bottom:-6px;left:var(--stop);width:3px;border-radius:2px;background:var(--rust);
  box-shadow:0 0 0 3px rgba(178,58,14,.14);
  opacity:0;animation:mxStop 5.6s ease-in-out infinite;animation-delay:calc(var(--i) * .34s);}
@keyframes mxStop{0%,26%{opacity:0;}34%,88%{opacity:1;}96%,100%{opacity:0;}}
/* Sits above the track, clear of the bar, so it never lands on the fill. */
.mx-run-track b{position:absolute;right:0;top:-20px;font-size:.5rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--rust);
  opacity:0;animation:mxStop 5.6s ease-in-out infinite;animation-delay:calc(var(--i) * .34s + .12s);}
.mx-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.mx-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: ghost-keyword plates (dark) --- */
.mx-delivsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.mx-delivsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.mx-delivsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.mx-delivsec .wrap{position:relative;z-index:2;}
.mx-delivsec .sec-head{max-width:920px;}
.mx-delivsec .sec-head h2 em{color:var(--ember-hi);}
.mx-plates{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.mx-plate{position:relative;grid-column:span 2;display:flex;flex-direction:column;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;
  padding:26px 26px 24px;transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.mx-plate:nth-child(4),.mx-plate:nth-child(5){grid-column:span 3;}
.mx-plate::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transition:width .55s cubic-bezier(.2,.7,.2,1);}
.mx-plate:hover::before{width:100%;}
.mx-plate:hover{background:rgba(255,255,255,.075);border-color:rgba(247,143,27,.4);transform:translateY(-5px);}
/* The keyword labels the statement instead of hiding behind it. */
.mx-plate-label{display:inline-flex;align-items:center;gap:11px;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:15px;}
.mx-plate-label i{flex:0 0 auto;width:16px;height:2px;border-radius:2px;background:var(--ember);}
.mx-plate p{font-size:1rem;color:rgba(251,248,241,.82);line-height:1.72;}
/* The completed counterpart to the stalled runs in the section above. */
.mx-plate-track{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:24px;}
.mx-plate-line{position:relative;flex:1;height:3px;border-radius:100px;background:rgba(255,255,255,.1);overflow:hidden;}
.mx-plate-line i{position:absolute;inset:0;border-radius:100px;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .12s + .2s);}
.mx-plates.in .mx-plate-line i{transform:scaleX(1);}
.mx-plate-seal{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:rgba(78,212,146,.14);border:1px solid rgba(78,212,146,.45);color:#4ed492;
  opacity:0;transform:scale(.6);transition:opacity .4s,transform .4s cubic-bezier(.34,1.42,.5,1);transition-delay:calc(var(--i) * .12s + 1.05s);}
.mx-plates.in .mx-plate-seal{opacity:1;transform:none;}
.mx-plate-seal svg{width:11px;height:11px;}
/* --- S5: services carrying a clearly legible index --- */
.mx-svcsec .sec-head{max-width:920px;}
.mx-svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.mx-svc{position:relative;overflow:hidden;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:28px 28px 30px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.mx-svc:last-child{grid-column:span 3;}
.mx-svc:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -32px rgba(21,17,12,.32);}
/* Sits fully inside the card and reads at a glance — the previous treatment
   bled off the corner at 5% opacity, so the numbers were effectively invisible. */
.mx-svc-n{position:absolute;right:26px;top:22px;font-size:2.5rem;line-height:1;letter-spacing:-.02em;
  color:rgba(217,101,10,.3);pointer-events:none;transition:color .4s;}
.mx-svc:hover .mx-svc-n{color:rgba(217,101,10,.68);}
.mx-svc-ico{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin-bottom:18px;transition:background .35s,color .35s,transform .35s;}
.mx-svc:hover .mx-svc-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.mx-svc-ico svg{width:23px;height:23px;}
.mx-svc h3{position:relative;z-index:2;font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.32;margin-bottom:9px;}
.mx-svc p{position:relative;z-index:2;font-size:.95rem;color:var(--muted);line-height:1.66;}
.mx-svc:last-child p{max-width:760px;}

/* --- S6: reasons numbered inside a dashed processing ring --- */
.mx-whysec .sec-head{max-width:880px;}
.mx-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.mx-reason{display:grid;grid-template-columns:66px 1fr;gap:26px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s;}
.mx-reason:hover{padding-left:16px;}
.mx-reason-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;}
.mx-reason-ring::before{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px dashed rgba(21,17,12,.24);
  animation:mxRing 14s linear infinite;animation-delay:calc(var(--i) * -1.6s);}
@keyframes mxRing{to{transform:rotate(360deg);}}
.mx-reason:hover .mx-reason-ring::before{border-color:rgba(247,143,27,.65);}
.mx-reason-ring b{font-weight:400;font-size:.82rem;letter-spacing:.1em;color:var(--muted-d);transition:color .35s;}
.mx-reason:hover .mx-reason-ring b{color:var(--ember-deep);}
.mx-reason p{font-size:1.05rem;color:var(--ink);line-height:1.7;}

/* --- S7: the lifecycle loop (dark) --- */
.mx-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.mx-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.mx-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.mx-procsec .wrap{position:relative;z-index:2;}
.mx-procsec .sec-head{max-width:900px;}
.mx-procsec .sec-head h2 em{color:var(--ember-hi);}
.mx-procsec .sec-head p{color:rgba(251,248,241,.74);}
.mx-cycle{position:relative;padding-bottom:78px;}
.mx-phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.mx-phase{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:24px 26px 26px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.mx-phase:hover{background:rgba(255,255,255,.065);border-color:rgba(247,143,27,.45);transform:translateY(-5px);}
.mx-phase-n{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--ember-hi);margin-bottom:10px;}
.mx-phase h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:8px;}
.mx-phase p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.64;}
/* Phase six turns back on the whole run rather than ending it. */
.mx-cycle-loop{position:absolute;left:0;right:0;bottom:0;height:74px;width:100%;overflow:visible;}
.mx-loop-line{stroke:rgba(255,255,255,.14);stroke-width:1.5;stroke-dasharray:5 6;}
.mx-loop-dash{stroke:var(--ember-hi);stroke-width:2;stroke-linecap:round;stroke-dasharray:9 100;stroke-dashoffset:109;
  filter:drop-shadow(0 0 4px rgba(255,174,69,.8));animation:mxLoop 5s cubic-bezier(.45,0,.55,1) infinite;}
@keyframes mxLoop{0%{stroke-dashoffset:109;}70%,100%{stroke-dashoffset:0;}}
.mx-cycle-tag{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);background:var(--ink);padding:5px 16px;
  font-size:.55rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-hi);}

/* --- S8: who this is for, as divided rows --- */
.mx-fits{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.mx-fit{display:grid;grid-template-columns:14px 54px 1fr auto;gap:22px;align-items:center;padding:28px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s,background .3s;}
.mx-fit:hover{padding-left:16px;background:var(--cream);}
.mx-fit-dot{width:9px;height:9px;border-radius:50%;background:rgba(21,17,12,.18);transition:background .35s,box-shadow .35s;
  animation:mxFitDot 6s ease-in-out infinite;animation-delay:calc(var(--i) * .6s);}
@keyframes mxFitDot{0%,10%{background:rgba(21,17,12,.18);box-shadow:none;}18%,32%{background:var(--ember);box-shadow:0 0 0 4px rgba(247,143,27,.15);}42%,100%{background:rgba(21,17,12,.18);box-shadow:none;}}
.mx-fit-n{font-size:.82rem;letter-spacing:.12em;color:var(--muted-d);}
.mx-fit p{font-size:1.05rem;color:var(--ink);line-height:1.7;}
.mx-fit-arr{font-size:1.1rem;color:var(--muted-d);opacity:0;transform:translateX(-8px);transition:opacity .35s,transform .35s,color .35s;}
.mx-fit:hover .mx-fit-arr{opacity:1;transform:none;color:var(--ember-deep);}

/* --- S9/S10: CTA + FAQ --- */
.ai-cta canvas.ai-net{opacity:.5;}
.mx-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.mx-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .mx-co-lane-dots i,.mx-co-field i,.mx-run-fill,.mx-run-stop,.mx-run-track b,
  .mx-reason-ring::before,.mx-loop-dash,.mx-fit-dot{animation:none;}
  .mx-co-lane-dots i{opacity:1;transform:none;}
  .mx-co-field i{opacity:.12;}
  .mx-co-field i.keep{opacity:1;background:var(--ember-hi);}
  .mx-run-fill{transform:scaleX(1);}
  .mx-run-stop,.mx-run-track b{opacity:1;}
  .mx-loop-dash{stroke-dashoffset:0;stroke-dasharray:9 14;opacity:.6;}
}

@media(max-width:1180px){
  .mx-run{grid-template-columns:132px 1fr 200px;gap:20px;}
}
@media(max-width:1080px){
  .mx-plates{grid-template-columns:repeat(2,1fr);}
  .mx-plate,.mx-plate:nth-child(4),.mx-plate:nth-child(5){grid-column:span 1;}
  .mx-plate:nth-child(5){grid-column:span 2;}
  .mx-svcs{grid-template-columns:repeat(2,1fr);}
  .mx-svc:last-child{grid-column:span 2;}
  .mx-phases{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:980px){
  .ai-hero-grid{grid-template-columns:1fr;gap:42px;}
  .ai-tokens{order:-1;}
  .mx-lede-grid{grid-template-columns:1fr;gap:44px;}
  .mx-run{grid-template-columns:132px 1fr;gap:12px 22px;}
  .mx-run-track{grid-column:2;max-width:260px;}
}
@media(max-width:760px){
  .mx-plates,.mx-svcs,.mx-phases{grid-template-columns:1fr;}
  .mx-plate,.mx-plate:nth-child(4),.mx-plate:nth-child(5),
  .mx-svc:last-child{grid-column:span 1;}
  .mx-svc-n{font-size:2.1rem;right:20px;top:18px;}
  .mx-run{grid-template-columns:1fr;padding:22px 4px;}
  .mx-run-track{grid-column:1;max-width:none;}
  .mx-co-field{grid-template-columns:repeat(10,1fr);gap:7px;}
  .mx-reason{grid-template-columns:54px 1fr;gap:18px;}
  .mx-reason-ring{width:44px;height:44px;}
  .mx-fit{grid-template-columns:12px 44px 1fr;gap:16px;}
  .mx-fit-arr{display:none;}
  .mx-verdict{padding-left:18px;font-size:1.02rem;}
  /* The loop has no room to arc under a single column of phases. */
  .mx-cycle{padding-bottom:0;}
  .mx-cycle-loop,.mx-cycle-tag{display:none;}
}

/* ===== ANNOTATION (data labeling) ===== */
.an-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center;}
.an-hero-txt h1{margin-top:14px;}
.an-hero .eyebrow a:hover{color:var(--ember-hi);}
.an-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.an-hero-fig{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 90px -42px rgba(0,0,0,.72);aspect-ratio:3/2;z-index:2;}
.an-hero-fig img{width:100%;height:100%;object-fit:cover;display:block;}
.an-tag{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:7px;font-size:.58rem;letter-spacing:.12em;color:#fff;background:rgba(21,17,12,.72);border:1px solid rgba(247,143,27,.5);border-radius:7px;padding:6px 11px;backdrop-filter:blur(5px);}
.an-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.an-tag.t1{top:12%;left:8%;}
.an-tag.t2{top:30%;right:8%;}
.an-tag.t3{bottom:14%;left:12%;}

/* hero figure — the labeling pass running over the same photograph.
   The figure already clips, so the grid, sweep and box stay inside the image. */
.an-fig-grid{position:absolute;inset:0;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);
  background-size:44px 44px;animation:anDrift 26s linear infinite;}
@keyframes anDrift{to{background-position:44px 44px;}}
.an-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;z-index:2;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:anScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes anScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
/* A box settling onto the subject: corners close in, then the label lands. */
.an-fbox{position:absolute;left:31%;top:20%;width:38%;height:48%;z-index:3;pointer-events:none;
  animation:anBox 7s cubic-bezier(.3,.8,.3,1) infinite;}
@keyframes anBox{0%,4%{opacity:0;transform:scale(1.12);}14%,86%{opacity:1;transform:scale(1);}96%,100%{opacity:0;transform:scale(1.12);}}
.an-fbox .c{position:absolute;width:17px;height:17px;border:2px solid var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.6);}
.an-fbox .c.tl{left:-1px;top:-1px;border-right:0;border-bottom:0;}
.an-fbox .c.tr{right:-1px;top:-1px;border-left:0;border-bottom:0;}
.an-fbox .c.bl{left:-1px;bottom:-1px;border-right:0;border-top:0;}
.an-fbox .c.br{right:-1px;bottom:-1px;border-left:0;border-top:0;}
/* Below the box: the photograph already carries printed HUD text above it. */
.an-fbox b{position:absolute;left:-1px;bottom:-25px;font-weight:400;font-size:.55rem;letter-spacing:.1em;color:#fff;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-radius:5px;padding:4px 9px;white-space:nowrap;}
/* The three standing tags now light in turn as the pass reaches them. */
.an-tag{animation:anTag 7s ease-in-out infinite;}
.an-tag.t2{animation-delay:.5s;}
.an-tag.t3{animation-delay:1s;}
@keyframes anTag{0%,8%{opacity:.35;border-color:var(--line-d);}18%,84%{opacity:1;border-color:rgba(247,143,27,.5);}94%,100%{opacity:.35;border-color:var(--line-d);}}
.an-fig-live{position:absolute;left:18px;bottom:18px;z-index:4;display:flex;flex-direction:column;gap:7px;align-items:flex-start;
  background:rgba(21,17,12,.72);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:12px;padding:11px 15px 12px;min-width:172px;
  box-shadow:0 20px 40px -24px rgba(0,0,0,.8);}
.an-live-top{display:inline-flex;align-items:center;gap:8px;font-size:.5rem;letter-spacing:.15em;color:rgba(251,248,241,.6);}
.an-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.an-live-rot{position:relative;display:block;width:100%;height:19px;overflow:hidden;}
.an-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.78rem;color:#fff;letter-spacing:.01em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:anRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes anRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

/* ----- DATA ANNOTATION sections (.dz- : labels & quality) -----
   Motif set unique to this page: the inversion between where performance comes
   from and where budget goes, viewports whose boxes drift off the subject,
   punched label cards, per-modality sample previews, a label matrix that fills
   a block per phase, and audience chips. */

/* --- S2: the lede beside the performance / budget inversion --- */
.dz-lede-top{max-width:1020px;margin-bottom:56px;}
.dz-lede-top .eyebrow{margin-bottom:14px;}
.dz-lede-top h2{font-size:clamp(1.7rem,3.1vw,2.5rem);margin-bottom:20px;}
.dz-lede-sub{font-size:1.12rem;color:var(--muted);line-height:1.74;}
.dz-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.dz-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.dz-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.dz-lede-btn{margin-top:10px;}

.dz-split{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.dz-sp-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.dz-sp-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.dz-sp-block{padding:20px 20px 6px;}
.dz-sp-block + .dz-sp-block{border-top:1px dashed rgba(255,255,255,.12);}
.dz-sp-h{display:block;font-size:.51rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted-d);margin-bottom:15px;}
.dz-sp-row{display:grid;grid-template-columns:96px 1fr 74px;gap:13px;align-items:center;margin-bottom:13px;}
.dz-sp-row b{font-weight:400;font-size:.62rem;letter-spacing:.05em;color:rgba(251,248,241,.72);}
.dz-sp-track{display:block;height:9px;border-radius:100px;background:rgba(255,255,255,.08);overflow:hidden;}
.dz-sp-track em{display:block;height:100%;width:var(--v);border-radius:100px;font-style:normal;
  background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  transform:scaleX(0);transform-origin:left;animation:dzBar 7s cubic-bezier(.25,.9,.3,1) infinite;animation-delay:calc(var(--d) * .22s);}
@keyframes dzBar{0%{transform:scaleX(0);}22%,86%{transform:scaleX(1);}96%,100%{transform:scaleX(0);}}
.dz-sp-track em.big{box-shadow:0 0 14px rgba(255,174,69,.45);}
/* The budget pair reads as spend, not gain — kept deliberately colourless. */
.dz-sp-track em.mute{background:linear-gradient(90deg,rgba(251,248,241,.22),rgba(251,248,241,.38));box-shadow:none;}
.dz-sp-row u{font-family:'JetBrains Mono',monospace;font-size:.55rem;letter-spacing:.08em;text-decoration:none;text-align:right;color:var(--ember-hi);}
.dz-sp-block:last-of-type .dz-sp-row u{color:rgba(251,248,241,.4);}
.dz-sp-foot{padding:13px 20px 15px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.16);font-size:.53rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.46);}

/* --- S3: viewports where the box never settles on the subject --- */
.dz-risksec .sec-head{max-width:900px;}
.dz-risks{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.dz-risk{grid-column:span 2;display:flex;flex-direction:column;gap:18px;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:22px 22px 24px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.dz-risk:nth-child(4),.dz-risk:nth-child(5){grid-column:span 3;}
.dz-risk:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
.dz-risk-view{position:relative;display:block;height:84px;border-radius:12px;overflow:hidden;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));border:1px solid rgba(21,17,12,.14);}
.dz-risk-subject{position:absolute;left:38%;top:22%;width:24%;height:56%;border-radius:6px;background:rgba(255,255,255,.16);}
/* The box drifts and never lands square on the subject. */
.dz-risk-box{position:absolute;left:30%;top:16%;width:26%;height:56%;border:1.5px dashed var(--rust);border-radius:4px;
  animation:dzDrift 5s ease-in-out infinite;animation-delay:calc(var(--i) * -.7s);}
@keyframes dzDrift{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(14px,6px) scale(1.08);}66%{transform:translate(-6px,-5px) scale(.94);}}
.dz-risk-view b{position:absolute;right:9px;top:8px;display:inline-flex;align-items:center;justify-content:center;
  width:17px;height:17px;border-radius:50%;font-weight:400;font-size:.6rem;color:#fff;background:var(--rust);
  animation:dzQ 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes dzQ{0%,64%,100%{opacity:.85;}76%,88%{opacity:.25;}}
.dz-risk-tag{display:block;font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--rust);margin-bottom:11px;}
.dz-risk p{font-size:.96rem;color:var(--muted);line-height:1.66;}
.dz-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.dz-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: commitments carried on the shape they describe (dark) --- */
.dz-delivsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.dz-delivsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.dz-delivsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.dz-delivsec .wrap{position:relative;z-index:2;}
.dz-delivsec .sec-head{max-width:920px;}
.dz-delivsec .sec-head h2 em{color:var(--ember-hi);}
.dz-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
/* A luggage-tag silhouette: pointed left edge with a punched hole. */
.dz-label{position:relative;grid-column:span 2;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
  border-radius:6px 16px 16px 6px;padding:24px 24px 26px 46px;
  clip-path:polygon(18px 0, 100% 0, 100% 100%, 18px 100%, 0 50%);
  transition:background .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.dz-label:nth-child(4),.dz-label:nth-child(5){grid-column:span 3;}
.dz-label:hover{background:rgba(255,255,255,.075);transform:translateX(5px);}
.dz-label-punch{position:absolute;left:23px;top:50%;width:11px;height:11px;margin-top:-5.5px;border-radius:50%;
  background:var(--ink);border:1px solid rgba(247,143,27,.55);
  animation:dzPunch 6s ease-in-out infinite;animation-delay:calc(var(--i) * .34s);}
@keyframes dzPunch{0%,10%{border-color:rgba(255,255,255,.2);box-shadow:none;}18%,60%{border-color:var(--ember-hi);box-shadow:0 0 0 4px rgba(247,143,27,.13);}70%,100%{border-color:rgba(255,255,255,.2);box-shadow:none;}}
.dz-label-key{display:block;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:12px;}
.dz-label p{font-size:.98rem;color:rgba(251,248,241,.8);line-height:1.7;}

/* --- S5: services beside the sample a labeler would actually see --- */
.dz-svcsec .sec-head{max-width:940px;}
.dz-svcs{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.dz-svc{display:flex;gap:20px;align-items:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:24px 26px 26px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.dz-svc:last-child{grid-column:span 2;}
.dz-svc:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -32px rgba(21,17,12,.32);}
.dz-svc h3{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.32;margin-bottom:9px;transition:color .3s;}
.dz-svc:hover h3{color:var(--ember-deep);}
.dz-svc p{font-size:.95rem;color:var(--muted);line-height:1.66;}
.dz-svc:last-child p{max-width:820px;}

/* the sample previews */
.dz-sample{position:relative;flex:0 0 auto;width:96px;height:62px;border-radius:11px;overflow:hidden;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));border:1px solid rgba(21,17,12,.14);color:var(--ember-hi);}
/* boxes: two detections locking on */
.dz-s-boxes .b{position:absolute;border:1.5px solid var(--ember-hi);border-radius:3px;animation:dzLock 4.4s ease-in-out infinite;}
.dz-s-boxes .b1{left:12%;top:20%;width:34%;height:46%;}
.dz-s-boxes .b2{right:14%;bottom:16%;width:30%;height:40%;animation-delay:.7s;}
@keyframes dzLock{0%,6%{opacity:0;transform:scale(1.25);}18%,80%{opacity:1;transform:scale(1);}92%,100%{opacity:0;transform:scale(1.25);}}
/* spans: entity highlights sweeping across lines of text */
.dz-s-spans .l{position:absolute;left:12%;height:4px;border-radius:2px;background:rgba(255,255,255,.24);}
.dz-s-spans .l1{top:24%;width:70%;}
.dz-s-spans .l2{top:47%;width:52%;}
.dz-s-spans .l3{top:70%;width:64%;}
.dz-s-spans .hl{position:absolute;height:9px;border-radius:3px;background:rgba(247,143,27,.55);animation:dzSpan 4.4s ease-in-out infinite;}
.dz-s-spans .h1{left:12%;top:21%;width:24%;}
.dz-s-spans .h2{left:44%;top:67%;width:20%;animation-delay:.6s;}
@keyframes dzSpan{0%,8%{transform:scaleX(0);opacity:0;}20%,80%{transform:scaleX(1);opacity:1;}92%,100%{transform:scaleX(0);opacity:0;}}
.dz-s-spans .hl{transform-origin:left;}
/* wave: a waveform with one segment selected */
.dz-s-wave{display:flex;align-items:center;justify-content:center;gap:3px;padding:0 10px;}
.dz-s-wave .w{width:3px;border-radius:2px;background:rgba(255,255,255,.3);height:26%;animation:dzWave 1.9s ease-in-out infinite;animation-delay:calc(var(--w) * 70ms);}
@keyframes dzWave{0%,100%{height:22%;}50%{height:76%;}}
.dz-s-wave .seg{position:absolute;left:34%;top:14%;bottom:14%;width:26%;border:1.5px solid var(--ember-hi);border-radius:4px;background:rgba(247,143,27,.14);
  animation:dzLock 4.4s ease-in-out infinite;}
/* rank: model outputs ordered best-first */
.dz-s-rank{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 14px;}
.dz-s-rank .r{height:8px;border-radius:100px;background:rgba(255,255,255,.22);transform-origin:left;animation:dzRank 4.6s cubic-bezier(.25,.9,.3,1) infinite;}
.dz-s-rank .r1{width:82%;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));}
.dz-s-rank .r2{width:56%;animation-delay:.18s;}
.dz-s-rank .r3{width:36%;animation-delay:.36s;}
@keyframes dzRank{0%{transform:scaleX(0);}24%,84%{transform:scaleX(1);}96%,100%{transform:scaleX(0);}}
/* expert: a credentialed reviewer mark */
.dz-s-expert{display:grid;place-items:center;}
.dz-s-expert svg{width:34px;height:34px;}
.dz-s-expert .tick{stroke-dasharray:1;stroke-dashoffset:1;animation:dzTick 4.6s ease-in-out infinite;}
@keyframes dzTick{0%,14%{stroke-dashoffset:1;}30%,82%{stroke-dashoffset:0;}94%,100%{stroke-dashoffset:1;}}
/* agree: three annotators converging on one call */
.dz-s-agree{display:grid;place-items:center;}
.dz-s-agree .a{position:absolute;width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.3);animation:dzAgree 4.6s cubic-bezier(.3,.8,.3,1) infinite;}
.dz-s-agree .a1{left:20%;top:24%;}
.dz-s-agree .a2{right:20%;top:24%;animation-delay:.12s;}
.dz-s-agree .a3{left:calc(50% - 5.5px);top:24%;animation-delay:.24s;}
@keyframes dzAgree{0%,14%{transform:translateY(0);background:rgba(255,255,255,.3);}34%,82%{transform:translateY(17px);background:var(--ember-hi);}94%,100%{transform:translateY(0);background:rgba(255,255,255,.3);}}
.dz-s-agree .bar{position:absolute;left:18%;right:18%;bottom:22%;height:2px;border-radius:2px;background:rgba(247,143,27,.4);}
/* flow: work moving through the pipeline */
.dz-s-flow{display:grid;place-items:center;}
.dz-s-flow .track{position:absolute;left:16%;right:16%;top:calc(50% - 1px);height:2px;background:rgba(255,255,255,.18);}
.dz-s-flow .n{position:absolute;top:calc(50% - 5px);width:10px;height:10px;border-radius:3px;background:rgba(255,255,255,.3);border:1px solid rgba(255,255,255,.2);}
.dz-s-flow .n1{left:14%;}
.dz-s-flow .n2{left:calc(50% - 5px);}
.dz-s-flow .n3{right:14%;}
.dz-s-flow .pip{position:absolute;top:calc(50% - 3px);left:16%;width:6px;height:6px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 8px rgba(255,174,69,.9);
  animation:dzPip 3.4s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes dzPip{0%{left:16%;opacity:0;}10%{opacity:1;}88%{opacity:1;}100%{left:82%;opacity:0;}}

/* --- S6: reasons flagged with a small tag --- */
.dz-whysec .sec-head{max-width:880px;}
.dz-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.dz-reason{display:grid;grid-template-columns:26px 52px 1fr;gap:20px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s;}
.dz-reason:hover{padding-left:16px;}
.dz-reason-tag{position:relative;width:26px;height:18px;border-radius:3px 5px 5px 3px;background:rgba(21,17,12,.1);
  clip-path:polygon(6px 0, 100% 0, 100% 100%, 6px 100%, 0 50%);transition:background .35s;
  animation:dzTag 7s ease-in-out infinite;animation-delay:calc(var(--i) * .5s);}
@keyframes dzTag{0%,8%{background:rgba(21,17,12,.1);}18%,32%{background:var(--ember);}44%,100%{background:rgba(21,17,12,.1);}}
.dz-reason-tag i{position:absolute;left:9px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--cream);}
.dz-reason:hover .dz-reason-tag{background:var(--ember);}
.dz-reason-n{font-size:.84rem;letter-spacing:.12em;color:var(--muted-d);}
.dz-reason p{font-size:1.05rem;color:var(--ink);line-height:1.7;}

/* --- S7: the label matrix gains a block per phase (dark) --- */
.dz-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.dz-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.dz-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.dz-procsec .wrap{position:relative;z-index:2;}
.dz-procsec .sec-head{max-width:900px;}
.dz-procsec .sec-head h2 em{color:var(--ember-hi);}
.dz-procsec .sec-head p{color:rgba(251,248,241,.74);}
.dz-phases{list-style:none;margin:0;padding:0;}
.dz-phase{display:grid;grid-template-columns:74px 52px 1fr;gap:26px;align-items:start;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.07);}
.dz-phase:last-child{border-bottom:none;}
.dz-phase-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;width:74px;margin-top:3px;}
.dz-phase-matrix i{aspect-ratio:1;border-radius:3px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.08);
  transition:background .5s,border-color .5s,box-shadow .5s;transition-delay:calc(var(--i) * .1s + var(--c) * .05s + .2s);}
.dz-phases.in .dz-phase-matrix i.on{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;box-shadow:0 4px 12px -4px rgba(247,143,27,.8);}
.dz-phase-n{font-size:.84rem;letter-spacing:.12em;color:var(--ember-hi);padding-top:5px;}
.dz-phase-body h3{font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.dz-phase-body p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.64;}

/* --- S8: audience chips --- */
.dz-fits{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.dz-fit{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 28px 28px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.dz-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -34px rgba(21,17,12,.32);}
.dz-fit-corner{position:absolute;left:0;top:0;width:0;height:0;border-top:26px solid var(--paper-2);border-right:26px solid transparent;transition:border-top-color .4s;}
.dz-fit:hover .dz-fit-corner{border-top-color:var(--ember);}
.dz-fit-n{display:block;font-size:.55rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:12px;}
.dz-fit p{font-size:1.02rem;color:var(--ink);line-height:1.68;}

/* --- S9/S10: CTA + FAQ --- */
.an-cta canvas.ai-net{opacity:.5;}
.dz-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.dz-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .an-fig-grid,.an-fbox,.an-tag,.an-live-rot i,.dz-sp-track em,.dz-risk-box,.dz-risk-view b,
  .dz-label-punch,.dz-sample i,.dz-sample .tick,.dz-reason-tag{animation:none;}
  .an-fig-scan{display:none;}
  .an-live-rot i{opacity:0;}
  .an-live-rot i:first-child{opacity:1;}
  .dz-sp-track em{transform:scaleX(1);}
  .dz-sample .tick{stroke-dashoffset:0;}
  .dz-phase-matrix i{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .dz-risks,.dz-labels{grid-template-columns:repeat(2,1fr);}
  .dz-risk,.dz-risk:nth-child(4),.dz-risk:nth-child(5),
  .dz-label,.dz-label:nth-child(4),.dz-label:nth-child(5){grid-column:span 1;}
  .dz-risk:nth-child(5),.dz-label:nth-child(5){grid-column:span 2;}
  .dz-svcs{grid-template-columns:1fr;}
  .dz-svc:last-child{grid-column:span 1;}
}
@media(max-width:980px){
  .an-hero-grid{grid-template-columns:1fr;gap:42px;}
  .an-hero-fig{order:-1;max-width:560px;}
  .dz-lede-grid{grid-template-columns:1fr;gap:44px;}
}
@media(max-width:760px){
  .dz-risks,.dz-labels,.dz-fits{grid-template-columns:1fr;}
  .dz-risk,.dz-risk:nth-child(4),.dz-risk:nth-child(5),
  .dz-label,.dz-label:nth-child(4),.dz-label:nth-child(5){grid-column:span 1;}
  .dz-sp-row{grid-template-columns:82px 1fr 62px;gap:10px;}
  .dz-verdict{padding-left:18px;font-size:1.02rem;}
  .dz-svc{flex-direction:column;gap:16px;}
  .dz-sample{width:100%;height:70px;}
  .dz-reason{grid-template-columns:26px 40px 1fr;gap:14px;}
  /* The matrix moves above the copy once the row has no room for three columns. */
  .dz-phase{grid-template-columns:52px 1fr;gap:10px 16px;padding:24px 0;}
  .dz-phase-matrix{grid-column:1 / -1;margin-bottom:6px;}
  .an-fig-live{left:12px;bottom:12px;min-width:0;}
}

/* ===== AI USE CASES (results-driven showcase) ===== */
.uc-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center;}
.uc-hero-txt h1{margin-top:14px;}
.uc-hero .eyebrow a:hover{color:var(--ember-hi);}
.uc-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.uc-hero-fig{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 90px -42px rgba(0,0,0,.72);aspect-ratio:3/2;z-index:2;}
.uc-hero-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.uc-hero-fig:hover img{transform:scale(1.04);}
.uc-fig-chip{position:absolute;left:16px;top:16px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.12em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);}
.uc-fig-dot{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}

/* hero figure — the running use case reported over the same photograph.
   The figure already clips, so the grid and sweep stay inside the image. */
.uc-fig-grid{position:absolute;inset:0;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);
  background-size:44px 44px;animation:ucDrift 26s linear infinite;}
@keyframes ucDrift{to{background-position:44px 44px;}}
.uc-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:ucScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes ucScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
.uc-fig-chip{animation:ucChip 6s ease-in-out infinite;}
@keyframes ucChip{0%,100%{transform:translateY(-3px);}50%{transform:translateY(3px);}}
.uc-fig-live{position:absolute;right:16px;bottom:16px;z-index:3;display:flex;flex-direction:column;gap:7px;align-items:flex-start;
  background:rgba(21,17,12,.72);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:12px;padding:11px 15px 12px;min-width:178px;
  box-shadow:0 20px 40px -24px rgba(0,0,0,.8);}
.uc-live-top{display:inline-flex;align-items:center;gap:8px;font-size:.5rem;letter-spacing:.15em;color:rgba(251,248,241,.6);}
.uc-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.uc-live-rot{position:relative;display:block;width:100%;height:19px;overflow:hidden;}
.uc-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.76rem;color:#fff;letter-spacing:.01em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:ucRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes ucRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

/* ----- AI USE CASES sections (.uz- : prioritisation & ROI) -----
   Motif set unique to this page: the 80/20 split of pattern-following work,
   ruled-out candidate cards, function-kicker use case cards, a four-condition
   readiness lock, flipping diamond indices and a process band that narrows to
   one prioritised use case before widening again. */

/* --- S2: the lede beside the 80/20 split --- */
.uz-lede-top{max-width:1020px;margin-bottom:56px;}
.uz-lede-top .eyebrow{margin-bottom:14px;}
.uz-lede-top h2{font-size:clamp(1.7rem,3.1vw,2.45rem);margin-bottom:20px;}
.uz-lede-sub{font-size:1.1rem;color:var(--muted);line-height:1.74;}
.uz-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.uz-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.uz-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.uz-lede-btn{margin-top:10px;}

.uz-split{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.uz-sp-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.uz-sp-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.uz-sp-body{padding:26px 22px 22px;}
/* One band of work, divided where the pattern stops and judgment starts. */
.uz-sp-band{position:relative;display:flex;height:44px;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.06);}
/* Fills once on reveal and holds. Looping it back to zero left the two halves
   visibly out of step for part of every cycle. */
.uz-sp-band .ai,.uz-sp-band .hu{transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.25,.9,.3,1);}
.uz-sp-band .ai{width:80%;background:linear-gradient(90deg,var(--ember-deep),var(--ember));transition-delay:.25s;}
.uz-sp-band .hu{width:20%;background:repeating-linear-gradient(135deg,rgba(251,248,241,.2) 0 5px,rgba(251,248,241,.07) 5px 10px);transition-delay:.85s;}
.uz-split.in .uz-sp-band .ai,.uz-split.in .uz-sp-band .hu{transform:scaleX(1);}
.uz-sp-band .divider{position:absolute;left:80%;top:0;bottom:0;width:2px;background:var(--ink);}
.uz-sp-keys{display:flex;gap:22px;flex-wrap:wrap;margin-top:16px;}
.uz-sp-key{display:flex;flex-direction:column;gap:3px;max-width:190px;}
.uz-sp-key b{font-size:1.1rem;font-weight:500;letter-spacing:.02em;color:var(--ember-hi);}
.uz-sp-key u{font-size:.78rem;text-decoration:none;color:rgba(251,248,241,.66);line-height:1.45;}
.uz-sp-key.hu b{color:rgba(251,248,241,.55);}
.uz-sp-wall{display:flex;align-items:center;gap:16px;padding:16px 22px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.2);}
.uz-sp-wall-n{flex:0 0 auto;font-size:2rem;line-height:1;color:var(--rust);}
.uz-sp-wall-t{font-size:.82rem;color:rgba(251,248,241,.6);line-height:1.5;}

/* --- S3: candidates struck from the list --- */
.uz-failsec .sec-head{max-width:900px;}
.uz-fails{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.uz-fail{position:relative;grid-column:span 2;overflow:hidden;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 26px 28px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.uz-fail:nth-child(4),.uz-fail:nth-child(5){grid-column:span 3;}
.uz-fail:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
/* A corner ribbon: the candidate was considered and rejected. */
.uz-fail-ribbon{position:absolute;right:-42px;top:16px;width:150px;text-align:center;transform:rotate(45deg);
  background:var(--rust);color:#fff;font-size:.48rem;letter-spacing:.18em;text-transform:uppercase;padding:5px 0;
  box-shadow:0 6px 16px -8px rgba(178,58,14,.9);
  animation:uzRibbon 6s ease-in-out infinite;animation-delay:calc(var(--i) * .4s);}
@keyframes uzRibbon{0%,10%{opacity:.55;}20%,70%{opacity:1;}82%,100%{opacity:.55;}}
.uz-fail-tag{display:block;font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:12px;padding-right:52px;}
.uz-fail p{font-size:.97rem;color:var(--muted);line-height:1.66;}
.uz-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.uz-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: use cases filed by business function (dark) --- */
.uz-casesec{background:var(--ink);color:var(--cream);overflow:hidden;}
.uz-casesec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.uz-casesec .glow-1{top:-170px;right:-140px;opacity:.3;}
.uz-casesec .wrap{position:relative;z-index:2;}
.uz-casesec .sec-head{max-width:900px;}
.uz-casesec .sec-head h2 em{color:var(--ember-hi);}
.uz-casesec .sec-head p{color:rgba(251,248,241,.74);}
.uz-cases{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.uz-case{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:24px 26px 28px;overflow:hidden;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.uz-case:hover{background:rgba(255,255,255,.075);border-color:rgba(247,143,27,.4);transform:translateY(-5px);}
.uz-case-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;}
.uz-case-fn{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-hi);
  padding:5px 11px;border-radius:100px;background:rgba(247,143,27,.13);border:1px solid rgba(247,143,27,.3);}
.uz-case-ico{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;
  border:1px dashed rgba(255,255,255,.2);color:rgba(251,248,241,.6);transition:color .35s,border-color .35s;}
.uz-case-ico::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(247,143,27,.35);opacity:0;transition:opacity .35s;}
.uz-case:hover .uz-case-ico{color:var(--ember-hi);border-color:rgba(247,143,27,.55);}
.uz-case:hover .uz-case-ico::before{opacity:1;}
.uz-case-ico svg{width:20px;height:20px;}
.uz-case h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.3;margin-bottom:10px;}
.uz-case p{font-size:.95rem;color:rgba(251,248,241,.76);line-height:1.68;}
.uz-case-rule{position:absolute;left:0;bottom:0;height:2px;width:0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transition:width .55s cubic-bezier(.2,.7,.2,1);}
.uz-case:hover .uz-case-rule{width:100%;}

/* --- S5: four tumblers that have to fall into place --- */
.uz-locksec .sec-head{max-width:940px;}
.uz-lock{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 44px 84px -48px rgba(21,17,12,.6);}
.uz-lock-bar{display:flex;align-items:center;gap:10px;padding:15px 24px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.22);font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.uz-lock-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.uz-lock-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;color:var(--ember-hi);}
.uz-lock-rows{list-style:none;margin:0;padding:0;}
.uz-tumbler{display:grid;grid-template-columns:1fr 148px 30px;gap:24px;align-items:center;padding:22px 24px;border-bottom:1px solid rgba(255,255,255,.07);}
.uz-tumbler h3{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:6px;}
.uz-tumbler p{font-size:.93rem;color:rgba(251,248,241,.72);line-height:1.64;}
/* The pin slides along the track and drops into its notch. */
.uz-tumbler-track{position:relative;display:block;height:6px;border-radius:100px;background:rgba(255,255,255,.09);}
.uz-tumbler-track .notch{position:absolute;right:8px;top:-4px;width:14px;height:14px;border-radius:4px;border:1px dashed rgba(255,255,255,.22);}
.uz-tumbler-track .pin{position:absolute;top:-5px;left:0;width:16px;height:16px;border-radius:5px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));
  box-shadow:0 6px 16px -6px rgba(247,143,27,.9);
  transition:left 1s cubic-bezier(.3,.9,.3,1);transition-delay:calc(var(--i) * .22s + .25s);}
.uz-lock.in .uz-tumbler-track .pin{left:calc(100% - 23px);}
.uz-tumbler-seal{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:rgba(78,212,146,.14);border:1px solid rgba(78,212,146,.45);color:#4ed492;
  opacity:0;transform:scale(.55);transition:opacity .4s,transform .4s cubic-bezier(.34,1.42,.5,1);transition-delay:calc(var(--i) * .22s + 1.1s);}
.uz-lock.in .uz-tumbler-seal{opacity:1;transform:none;}
.uz-tumbler-seal svg{width:12px;height:12px;}
.uz-lock-foot{display:flex;align-items:center;gap:11px;padding:16px 24px;background:rgba(0,0,0,.22);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.5);transition:color .5s;transition-delay:2s;}
.uz-lock.in .uz-lock-foot{color:#4ed492;}
.uz-lock-latch{width:11px;height:11px;border-radius:3px;background:rgba(255,255,255,.16);transition:background .5s,box-shadow .5s;transition-delay:2s;}
.uz-lock.in .uz-lock-latch{background:#4ed492;box-shadow:0 0 0 4px rgba(78,212,146,.14);}

/* --- S6: reasons indexed on a diamond that flips in --- */
.uz-whysec .sec-head{max-width:900px;}
.uz-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.uz-reason{display:grid;grid-template-columns:58px 1fr;gap:26px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s;}
.uz-reason:hover{padding-left:16px;}
.uz-reason-dia{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:7px;
  background:var(--paper-2);border:1px solid var(--line);transform:rotate(45deg);transition:background .4s,border-color .4s;
  animation:uzFlip 8s ease-in-out infinite;animation-delay:calc(var(--i) * .5s);}
@keyframes uzFlip{0%,8%{transform:rotate(45deg);background:var(--paper-2);}
  16%,30%{transform:rotate(225deg);background:var(--ember);border-color:transparent;}
  40%,100%{transform:rotate(45deg);background:var(--paper-2);}}
.uz-reason-dia b{font-weight:400;font-size:.72rem;letter-spacing:.08em;color:var(--muted);transform:rotate(-45deg);}
.uz-reason:hover .uz-reason-dia{background:var(--ember);border-color:transparent;}
.uz-reason p{font-size:1.05rem;color:var(--ink);line-height:1.7;}

/* --- S7: the band narrows to the prioritised use case, then widens (dark) --- */
.uz-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.uz-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.uz-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.uz-procsec .wrap{position:relative;z-index:2;}
.uz-procsec .sec-head{max-width:900px;margin-inline:auto;}
.uz-procsec .sec-head h2 em{color:var(--ember-hi);}
.uz-procsec .sec-head p{color:rgba(251,248,241,.74);}
.uz-phases{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:14px;}
/* 03 is the pinch point — the one prioritised use case everything narrows to. */
.uz-phase{width:100%;max-width:1000px;display:grid;grid-template-columns:56px 1fr;gap:22px;align-items:start;
  background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:22px 28px 24px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1),max-width .4s;}
.uz-phase:nth-child(1){max-width:1000px;}
.uz-phase:nth-child(2){max-width:860px;}
.uz-phase:nth-child(3){max-width:720px;border-color:rgba(247,143,27,.45);background:rgba(247,143,27,.07);}
.uz-phase:nth-child(4){max-width:800px;}
.uz-phase:nth-child(5){max-width:900px;}
.uz-phase:nth-child(6){max-width:1000px;}
.uz-phase:hover{background:rgba(255,255,255,.07);border-color:rgba(247,143,27,.5);transform:translateY(-4px);}
.uz-phase-n{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;
  background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.32);color:var(--ember-hi);font-size:.76rem;letter-spacing:.06em;}
.uz-phase:nth-child(3) .uz-phase-n{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.uz-phase-body h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.uz-phase-body p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.64;}

/* --- S8: who this is for, four profiles across one row --- */
.uz-fits{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.uz-fit{position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:26px 24px 28px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.uz-fit:hover{transform:translateY(-6px);border-color:var(--ember);box-shadow:0 30px 58px -32px rgba(21,17,12,.32);}
/* The rule draws across as each profile lands, left to right along the row. */
.uz-fit-rule{position:absolute;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--ember),var(--ember-hi));
  transition:transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .12s + .15s);}
.uz-fit.in .uz-fit-rule{transform:scaleX(1);}
.uz-fit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;}
.uz-fit-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);
  transition:background .35s,color .35s,transform .35s;}
.uz-fit:hover .uz-fit-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.uz-fit-ico svg{width:22px;height:22px;}
.uz-fit-n{font-size:.86rem;letter-spacing:.14em;color:var(--muted-d);transition:color .35s;}
.uz-fit:hover .uz-fit-n{color:var(--ember-deep);}
.uz-fit-kick{font-size:.62rem;font-weight:400;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);line-height:1.5;
  margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.uz-fit p{font-size:.95rem;color:var(--muted);line-height:1.7;}

/* --- S9/S10: CTA + FAQ --- */
.uc-cta canvas.ai-net{opacity:.5;}
.uz-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.uz-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .uc-fig-grid,.uc-fig-chip,.uc-live-rot i,.uz-fail-ribbon,.uz-reason-dia{animation:none;}
  .uc-fig-scan{display:none;}
  .uc-fig-chip{transform:none;}
  .uc-live-rot i{opacity:0;}
  .uc-live-rot i:first-child{opacity:1;}
  .uz-sp-band .ai,.uz-sp-band .hu{transition-duration:.01s;transition-delay:0s;}
  .uz-tumbler-track .pin,.uz-tumbler-seal,.uz-lock-foot,.uz-lock-latch{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .uz-fails{grid-template-columns:repeat(2,1fr);}
  .uz-fail,.uz-fail:nth-child(4),.uz-fail:nth-child(5){grid-column:span 1;}
  .uz-fail:nth-child(5){grid-column:span 2;}
  .uz-cases{grid-template-columns:1fr;}
  .uz-fits{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:980px){
  .uc-hero-grid{grid-template-columns:1fr;gap:42px;}
  .uc-hero-fig{order:-1;max-width:560px;}
  .uz-lede-grid{grid-template-columns:1fr;gap:44px;}
  .uz-tumbler{grid-template-columns:1fr 118px 26px;gap:18px;}
  /* The pinch reads only when the rows can actually differ in width. */
  .uz-phase,.uz-phase:nth-child(1),.uz-phase:nth-child(2),.uz-phase:nth-child(3),
  .uz-phase:nth-child(4),.uz-phase:nth-child(5),.uz-phase:nth-child(6){max-width:none;}
}
@media(max-width:760px){
  .uz-fails,.uz-fits{grid-template-columns:1fr;}
  .uz-fail,.uz-fail:nth-child(4),.uz-fail:nth-child(5){grid-column:span 1;}
  .uz-tumbler{grid-template-columns:1fr 26px;gap:12px 16px;padding:20px 22px;}
  .uz-tumbler-track{grid-column:1;max-width:200px;}
  .uz-tumbler-seal{grid-row:1;grid-column:2;align-self:start;}
  .uz-verdict{padding-left:18px;font-size:1.02rem;}
  .uz-sp-keys{gap:16px;}
  .uz-reason{grid-template-columns:46px 1fr;gap:16px;}
  .uz-reason-dia{width:32px;height:32px;}
  .uz-phase{grid-template-columns:1fr;gap:14px;padding:22px;}
  .uc-fig-live{right:12px;bottom:12px;min-width:0;}
}

/* ===== AI CASE STUDY (problem -> Kymera -> solution) ===== */
.cst-hero{position:relative;}
.cst-hero canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.4;}
/* hero restructured: text left + animated compliance-scan visual right */
.cst-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;text-align:left;}
.cst-hero-txt{max-width:640px;}
.cst-hero-inner h1{margin-top:16px;}
.cst-hero-inner .crumb{margin-top:20px;}
.cst-ribbon{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.cst-rib{display:inline-flex;align-items:center;gap:9px;font-size:.86rem;color:rgba(251,248,241,.82);background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:100px;padding:9px 18px;}
.cst-rib b{color:var(--ember-hi);font-size:.82rem;}
.cst-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:26px;}

/* animated compliance-scan visual (hero right) */
.km-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;flex:0 0 auto;}
.km-scan{position:relative;z-index:2;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--line-d);border-radius:16px;padding:20px 22px 18px;box-shadow:0 44px 90px -46px rgba(0,0,0,.75);}
.km-scan-head{display:flex;align-items:center;gap:9px;font-size:.6rem;letter-spacing:.08em;color:rgba(251,248,241,.85);padding-bottom:16px;border-bottom:1px solid var(--line-d);margin-bottom:18px;}
.km-scan-badge{margin-left:auto;font-size:.54rem;letter-spacing:.14em;color:var(--ember-hi);background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.4);border-radius:4px;padding:3px 9px;}
.km-scan-doc{position:relative;display:flex;flex-direction:column;gap:14px;padding:4px 2px 8px;overflow:hidden;}
.km-scan-beam{position:absolute;left:-4px;right:-4px;top:0;height:26px;background:linear-gradient(180deg,rgba(247,143,27,.16),transparent);border-top:2px solid var(--ember-hi);box-shadow:0 0 16px rgba(247,143,27,.5);pointer-events:none;animation:kmBeam 4.6s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes kmBeam{0%{top:-8px;opacity:0;}6%{opacity:1;}90%{opacity:1;}100%{top:100%;opacity:0;}}
.km-claim{display:flex;align-items:center;gap:12px;}
.km-claim-mark{flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:var(--line-d);animation:kmMark 4.6s ease-in-out infinite;animation-delay:calc(var(--i) * .5s);}
@keyframes kmMark{0%,7%{background:var(--line-d);box-shadow:none;}11%{background:#d98a3d;box-shadow:0 0 9px rgba(217,138,61,.75);}18%,92%{background:#2fae62;box-shadow:0 0 9px rgba(47,174,98,.6);}100%{background:var(--line-d);box-shadow:none;}}
.km-claim-bar{height:9px;border-radius:5px;background:rgba(251,248,241,.14);}
.km-scan-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-d);font-size:.62rem;letter-spacing:.04em;color:rgba(251,248,241,.7);}
.km-scan-foot b{color:var(--ember-hi);font-size:.9rem;}
.km-scan-ok{display:inline-flex;align-items:center;gap:7px;color:#2fae62;}
.km-ok-dot{width:6px;height:6px;border-radius:50%;background:#2fae62;box-shadow:0 0 6px #2fae62;}
@media(prefers-reduced-motion:reduce){.km-scan-beam,.km-claim-mark{animation:none;}.km-claim-mark{background:#2fae62;}}

/* transformation flow */
.cst-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:stretch;margin-bottom:30px;}
.cst-card{border-radius:22px;padding:34px 32px;border:1px solid var(--line);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s;}
.cst-problem{background:var(--cream);}
.cst-problem:hover{transform:translateY(-8px);border-color:rgba(247,143,27,.4);box-shadow:0 34px 62px -36px rgba(21,17,12,.35);}
.cst-solution{background:linear-gradient(160deg,var(--ember),var(--ember-deep));border-color:transparent;box-shadow:0 34px 64px -34px rgba(247,143,27,.6);}
.cst-solution:hover{transform:translateY(-8px);box-shadow:0 42px 78px -34px rgba(247,143,27,.75);}
.cst-problem .cst-li-ico.cst-q,.cst-problem:hover .cst-li-ico.cst-q{transition:transform .35s,background .35s;}
.cst-problem:hover .cst-li-ico.cst-q{transform:scale(1.12);background:rgba(178,58,14,.2);}
.cst-solution:hover .cst-li-ico.cst-check{transform:scale(1.12);background:rgba(255,255,255,.32);transition:transform .35s,background .35s;}
.cst-card-tag{display:inline-flex;align-items:center;gap:8px;font-size:.62rem;letter-spacing:.16em;margin-bottom:14px;}
.cst-problem .cst-card-tag{color:var(--muted);}
.cst-solution .cst-card-tag{color:rgba(255,255,255,.85);}
.cst-tag-dot{width:8px;height:8px;border-radius:50%;}
.cst-tag-dot.warn{background:var(--rust);}
.cst-tag-dot.ok{background:#fff;}
.cst-card h3{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;letter-spacing:-.01em;margin-bottom:18px;}
.cst-problem h3{color:var(--ink);}
.cst-solution h3{color:#fff;}
.cst-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.cst-list li{display:flex;gap:13px;align-items:flex-start;font-size:1rem;line-height:1.55;}
.cst-problem .cst-list li{color:var(--ink);}
.cst-solution .cst-list li{color:#fff;}
.cst-li-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;margin-top:1px;}
.cst-li-ico.cst-q{background:rgba(178,58,14,.14);border:1px solid rgba(178,58,14,.34);color:var(--rust);font-family:'JetBrains Mono',monospace;font-weight:600;font-size:.8rem;}
.cst-li-ico.cst-check{background:rgba(255,255,255,.2);color:#fff;}
.cst-li-ico.cst-check svg{width:13px;height:13px;}

.cst-bridge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-width:180px;}
.cst-kymera{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#241a10,#15110c);border:1px solid var(--line-d);border-radius:14px;padding:18px 22px;}
.cst-kymera img{width:130px;height:auto;display:block;}
.cst-arrow{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;box-shadow:0 14px 28px -12px rgba(247,143,27,.7);animation:cstArr 2.4s ease-in-out infinite;}
.cst-arrow svg{width:24px;height:24px;}
@keyframes cstArr{0%,100%{transform:translateX(0);}50%{transform:translateX(5px);}}
@media(prefers-reduced-motion:reduce){.cst-arrow{animation:none;}}
.cst-bridge-lbl{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);}

/* before / after metrics */
.cst-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.cst-metric{text-align:center;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:30px 24px;transition:transform .35s,border-color .35s,box-shadow .35s;}
.cst-metric:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 26px 50px -32px rgba(21,17,12,.3);}
.cst-metric-ba{display:flex;align-items:baseline;justify-content:center;gap:12px;}
.cst-metric-ba s{font-family:'JetBrains Mono',monospace;font-size:1.5rem;color:var(--muted-d);}
.cst-metric-arr{color:var(--ember-deep);font-weight:700;font-size:1.3rem;}
.cst-metric-ba b{font-size:clamp(2.4rem,4.5vw,3.2rem);font-weight:500;color:var(--ember-deep);line-height:1;}
.cst-metric-lbl{display:block;margin-top:12px;font-size:.92rem;color:var(--muted);line-height:1.5;}
.cst-cta canvas.ai-net{opacity:.5;}

@media(max-width:880px){
  .cst-flow{grid-template-columns:1fr;gap:18px;}
  .cst-bridge{flex-direction:row;gap:20px;padding:6px 0;}
  .cst-arrow{transform:rotate(90deg);}
  @keyframes cstArr{0%,100%{transform:rotate(90deg) translateX(0);}50%{transform:rotate(90deg) translateX(5px);}}
  .cst-metrics{grid-template-columns:1fr;}
}

/* ===== AI CASE STUDY below-case — "Compliance Review" motif (.km-) =====
   Status stamps (FLAGGED/RESOLVED), an MLR problem register, a solution
   examines/does split, an outcome scoreboard, a 5-step review flow and a
   McKinsey stat. Distinct from every other page. */
.km-sec{position:relative;overflow:hidden;}
.km-sec .wrap{position:relative;z-index:2;}
.km-dark{background:var(--ink);color:var(--cream);}
.km-dark.km-res{background:var(--ink-2);}
.km-dark canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.km-dark .glow-1{top:-160px;right:-120px;opacity:.3;}
.km-dark .glow-3{top:-150px;left:-130px;opacity:.26;}
.km-light{background:var(--paper-2);}
.km-eyebrow{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:16px;display:inline-block;}
.km-dark .km-eyebrow,.km-eyebrow.light{color:var(--ember-hi);}
.km-head{max-width:880px;margin-bottom:52px;}
.km-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.km-head h2{margin-bottom:16px;}
.km-dark h2 em{color:var(--ember-hi);}
.km-light h2 em{color:var(--ember-deep);}
.km-head p{color:var(--muted);font-size:1.05rem;line-height:1.75;}
.km-dark .km-head p{color:rgba(251,248,241,.72);}
.km-head strong{color:var(--ink);}
.km-dark .km-head strong{color:#fff;}

/* §3 MLR problem (dark) */
.km-prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px;}
.km-prob-card{background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-left:3px solid #d98a3d;border-radius:12px;padding:22px 22px 24px;transition:transform .35s,background .35s;}
.km-prob-card:hover{transform:translateY(-5px);background:rgba(255,255,255,.06);}
.km-prob-tag{display:inline-flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.1em;color:#e0a45a;background:rgba(217,138,61,.12);border:1px solid rgba(217,138,61,.3);border-radius:5px;padding:4px 10px;margin-bottom:12px;}
.km-prob-warn{font-size:.8rem;line-height:1;}
.km-prob-card p{font-size:.9rem;color:rgba(251,248,241,.72);line-height:1.58;}
.km-fda{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;background:rgba(255,255,255,.03);border:1px solid var(--line-d);border-radius:16px;padding:30px 40px;}
.km-fda-fig{text-align:center;padding-right:36px;border-right:1px solid var(--line-d);}
.km-fda-num{font-size:clamp(3rem,6vw,4.4rem);color:#e0a45a;line-height:1;}
.km-fda-lbl{display:block;margin-top:8px;font-size:.56rem;letter-spacing:.1em;color:rgba(251,248,241,.6);}
.km-fda p{font-size:.98rem;color:rgba(251,248,241,.8);line-height:1.65;}

/* §4 Kymera solution (light) */
.km-sol-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;}
.km-sol-panel{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:28px 30px;}
.km-sol-panel-hi{background:linear-gradient(165deg,rgba(247,143,27,.08),var(--cream));border-color:rgba(247,143,27,.35);}
.km-sol-panel-head{display:flex;align-items:center;gap:10px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed var(--line);}
.km-sol-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.km-sol-ico svg{width:16px;height:16px;}
.km-sol-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.km-sol-list li{display:flex;flex-direction:column;gap:3px;}
.km-sol-list b{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;color:var(--ink);}
.km-sol-list span{font-size:.9rem;color:var(--muted);line-height:1.55;}
.km-sol-strip{background:var(--ink);color:rgba(251,248,241,.9);border-radius:14px;padding:20px 28px;font-size:1rem;line-height:1.6;}
.km-sol-strip .mono{display:inline-block;font-size:.6rem;letter-spacing:.14em;color:var(--ember-hi);background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.4);border-radius:4px;padding:3px 9px;margin-right:10px;}

/* §5 results — animated before/after comparison (dark) */
.km-compare{background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:18px;padding:26px 34px 30px;margin-bottom:18px;box-shadow:0 40px 80px -52px rgba(0,0,0,.6);}
.km-compare-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.62rem;letter-spacing:.1em;color:rgba(251,248,241,.75);margin-bottom:26px;}
.km-compare-head > span:first-child{display:inline-flex;align-items:center;gap:8px;}
.km-compare-delta{color:var(--ember-hi);background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.4);border-radius:100px;padding:5px 13px;}
.km-compare-row{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:center;margin-bottom:16px;}
.km-compare-row:last-child{margin-bottom:0;}
.km-compare-tag{font-size:.6rem;letter-spacing:.08em;color:rgba(251,248,241,.6);}
.km-compare-track{position:relative;height:40px;border-radius:10px;background:rgba(255,255,255,.05);}
.km-compare-bar{position:absolute;left:0;top:0;height:100%;width:0;border-radius:10px;transition:width 1.4s cubic-bezier(.3,.85,.3,1);}
.km-compare.in .km-bar-before{width:var(--w);}
.km-compare.in .km-bar-after{width:var(--w);transition-delay:.4s;}
.km-bar-before{background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.08));}
.km-bar-after{background:linear-gradient(90deg,var(--ember),var(--ember-hi));box-shadow:0 0 26px rgba(247,143,27,.55);}
.km-compare-inval{position:absolute;top:50%;transform:translateY(-50%);font-size:.82rem;letter-spacing:.02em;font-style:normal;white-space:nowrap;}
.km-bar-before .km-compare-inval{right:14px;color:#fff;}
.km-bar-after .km-compare-inval{left:100%;margin-left:12px;color:var(--ember-hi);opacity:0;}
.km-compare.in .km-bar-after .km-compare-inval{opacity:1;transition:opacity .4s ease 1.5s;}

/* downstream outcomes, each animating its own difference */
.km-out-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.km-out{background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:28px 28px 30px;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,background .35s;}
.km-out:hover{transform:translateY(-6px);border-color:rgba(247,143,27,.4);background:rgba(255,255,255,.055);}
.km-out-viz{display:flex;align-items:flex-end;min-height:52px;margin-bottom:18px;}
.km-out h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;}
.km-out p{font-size:.9rem;color:rgba(251,248,241,.74);line-height:1.6;}
.km-viz-cost{position:relative;width:100%;height:34px;align-items:center;}
.km-viz-ghost{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:12px;border-radius:6px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:flex-end;}
.km-viz-ghost i{font-style:normal;font-size:.52rem;color:rgba(251,248,241,.4);margin-right:9px;}
.km-viz-fill{position:absolute;left:0;top:50%;transform:translateY(-50%);height:12px;width:0;border-radius:6px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));display:flex;align-items:center;justify-content:flex-end;overflow:hidden;}
.km-viz-fill i{font-style:normal;font-size:.52rem;color:#fff;margin-right:9px;white-space:nowrap;}
.km-out.in .km-viz-fill{width:47%;transition:width 1.2s cubic-bezier(.3,.85,.3,1) .3s;}
.km-viz-rev{flex-direction:column;gap:9px;align-items:flex-start!important;}
.km-rev-row{display:flex;align-items:center;gap:6px;}
.km-rev-row em{font-style:normal;font-size:.5rem;letter-spacing:.1em;color:rgba(251,248,241,.45);width:40px;}
.km-rev-row i{width:13px;height:13px;border-radius:50%;}
.km-rev-before i{background:rgba(255,255,255,.16);}
.km-rev-after i{background:var(--ember-hi);box-shadow:0 0 8px rgba(247,143,27,.6);transform:scale(0);}
.km-out.in .km-rev-after i{transform:scale(1);transition:transform .45s cubic-bezier(.2,.7,.2,1) .4s;}
.km-out.in .km-rev-after i:nth-of-type(2){transition-delay:.6s;}
.km-viz-cons{gap:6px;height:46px;width:100%;}
.km-viz-cons i{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));transition:height .9s cubic-bezier(.3,.85,.3,1);}
.km-viz-cons i:nth-child(1){height:45%;}
.km-viz-cons i:nth-child(2){height:78%;}
.km-viz-cons i:nth-child(3){height:32%;}
.km-viz-cons i:nth-child(4){height:88%;}
.km-viz-cons i:nth-child(5){height:40%;}
.km-viz-cons i:nth-child(6){height:66%;}
.km-viz-cons i:nth-child(7){height:52%;}
.km-out.in .km-viz-cons i{height:84%;}
.km-out.in .km-viz-cons i:nth-child(2){transition-delay:.06s;}
.km-out.in .km-viz-cons i:nth-child(3){transition-delay:.12s;}
.km-out.in .km-viz-cons i:nth-child(4){transition-delay:.18s;}
.km-out.in .km-viz-cons i:nth-child(5){transition-delay:.24s;}
.km-out.in .km-viz-cons i:nth-child(6){transition-delay:.3s;}
.km-out.in .km-viz-cons i:nth-child(7){transition-delay:.36s;}
@media(prefers-reduced-motion:reduce){
  .km-compare.in .km-bar-before,.km-compare.in .km-bar-after,.km-out.in .km-viz-fill,.km-out.in .km-rev-after i,.km-viz-cons i{transition:none;}
  .km-bar-after .km-compare-inval{opacity:1;}
}

/* §6 how it works — 5-step flow with linking connectors + animation (light) */
.km-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:22px;}
.km-flow-step{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:24px 20px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.km-flow-step:hover{transform:translateY(-8px);box-shadow:0 30px 54px -30px rgba(21,17,12,.36);border-color:rgba(247,143,27,.45);}
/* top accent bar draws on hover */
.km-flow-step::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:14px 14px 0 0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.km-flow-step:hover::before{transform:scaleX(1);}
/* linking chevron flowing between steps */
.km-flow-step:not(:last-child)::after{content:"\203A";position:absolute;top:32px;right:-16px;font-size:1.6rem;line-height:1;color:rgba(247,143,27,.5);z-index:3;animation:kmChev 1.9s ease-in-out infinite;}
@keyframes kmChev{0%,100%{opacity:.3;transform:translateX(0);}50%{opacity:.9;transform:translateX(4px);}}
.km-flow-step:nth-child(2)::after{animation-delay:.24s;}
.km-flow-step:nth-child(3)::after{animation-delay:.48s;}
.km-flow-step:nth-child(4)::after{animation-delay:.72s;}
.km-flow-step:hover::after{color:var(--ember);}
.km-flow-num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-family:'JetBrains Mono',monospace;font-size:.84rem;font-weight:600;margin-bottom:16px;box-shadow:0 12px 24px -12px rgba(247,143,27,.7);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;}
.km-flow-step:hover .km-flow-num{transform:scale(1.1) rotate(-4deg);box-shadow:0 16px 30px -10px rgba(247,143,27,.95);}
.km-flow-step h3{font-family:'Fraunces',serif;font-size:1.02rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;line-height:1.25;transition:color .3s;}
.km-flow-step:hover h3{color:var(--ember-deep);}
.km-flow-step p{font-size:.82rem;color:var(--muted);line-height:1.55;}
@media(prefers-reduced-motion:reduce){.km-flow-step::after{animation:none;}}

/* §7 who this is for (dark) */
.km-who-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start;}
.km-who-list{display:flex;flex-direction:column;gap:14px;}
.km-who-item{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:12px;padding:20px 22px;transition:transform .3s,border-color .3s;}
.km-who-item:hover{transform:translateX(6px);border-color:rgba(247,143,27,.4);}
.km-who-no{font-family:'JetBrains Mono',monospace;font-size:.9rem;color:var(--ember-hi);}
.km-who-item p{font-size:.97rem;color:rgba(251,248,241,.82);line-height:1.55;}
.km-stat{background:linear-gradient(180deg,rgba(247,143,27,.1),rgba(255,255,255,.02));border:1px solid rgba(247,143,27,.3);border-radius:16px;padding:28px 30px;}
.km-stat-head{display:flex;align-items:center;gap:8px;font-size:.62rem;letter-spacing:.12em;color:rgba(251,248,241,.75);margin-bottom:16px;}
.km-stat-num{display:block;font-size:clamp(2.6rem,5vw,3.6rem);color:#fff;line-height:1;margin-bottom:14px;}
.km-stat-num .count{color:var(--ember-hi);}
.km-stat-lbl{display:block;font-size:.92rem;color:rgba(251,248,241,.8);line-height:1.6;margin-bottom:16px;}
.km-stat-note{font-family:'Fraunces',serif;font-style:italic;font-size:.9rem;color:var(--ember-hi);line-height:1.55;}

/* §8 cost (light) */
.km-cost-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.km-cost-card{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:24px 22px;transition:transform .35s,border-color .35s,box-shadow .35s;}
.km-cost-card:hover{transform:translateY(-5px);border-color:rgba(247,143,27,.4);box-shadow:0 26px 48px -34px rgba(21,17,12,.3);}
.km-cost-tag{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.06em;color:var(--muted);margin-bottom:12px;}
.km-cost-card h3{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;color:var(--ink);margin-bottom:8px;transition:color .3s;}
.km-cost-card:hover h3{color:var(--ember-deep);}
.km-cost-card p{font-size:.86rem;color:var(--muted);line-height:1.55;}
.km-cost-foot{max-width:900px;margin:34px auto 0;text-align:center;font-size:1.05rem;color:var(--muted);line-height:1.7;}
.km-cost-foot strong{color:var(--ink);}

/* §9 CTA (dark) */
.km-cta canvas.ai-net{opacity:.5;}
.km-cta .cta-cta{justify-content:center;flex-wrap:wrap;}

/* §10 FAQ */
.km-faqsec .km-head{max-width:900px;}

@media(prefers-reduced-motion:reduce){
  .km-res-card,.km-who-item{transition:none;}
}
@media(max-width:980px){
  .cst-hero-inner{grid-template-columns:1fr;gap:40px;}
  .cst-hero-txt{max-width:none;}
  .km-scan{max-width:500px;width:100%;margin:0 auto;}
  .km-prob-grid{grid-template-columns:1fr 1fr;}
  .km-sol-grid{grid-template-columns:1fr;}
  .km-out-grid{grid-template-columns:1fr;}
  .km-compare-row{grid-template-columns:96px 1fr;gap:14px;}
  .km-flow{grid-template-columns:repeat(2,1fr);}
  .km-flow-step::after{display:none;}
  .km-who-grid{grid-template-columns:1fr;gap:32px;}
  .km-cost-grid{grid-template-columns:1fr 1fr;}
  .km-fda{grid-template-columns:1fr;gap:20px;text-align:center;}
  .km-fda-fig{border-right:0;border-bottom:1px solid var(--line-d);padding:0 0 18px;}
}
@media(max-width:640px){
  .km-prob-grid{grid-template-columns:1fr;}
  .km-flow{grid-template-columns:1fr;}
  .km-cost-grid{grid-template-columns:1fr;}
}

/* ===== CYBERSECURITY (SOC / threat defense) ===== */
.cy-hero-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:54px;align-items:center;}
.cy-hero-txt h1{margin-top:14px;}
.cy-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.cy-hero-fig{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 90px -42px rgba(0,0,0,.72);aspect-ratio:3/2;z-index:2;}
.cy-hero-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.cy-hero-fig:hover img{transform:scale(1.04);}
.cy-fig-chip{position:absolute;left:16px;top:16px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.12em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);}
.cy-fig-dot{width:6px;height:6px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.8);animation:msLive 1.9s infinite;}

/* hero figure — a live readout of what the SOC is turning away.
   The figure already clips, so the grid and sweep stay inside the image. */
.cy-fig-grid{position:absolute;inset:0;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);
  background-size:44px 44px;animation:cyDrift 26s linear infinite;}
@keyframes cyDrift{to{background-position:44px 44px;}}
.cy-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:cyScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes cyScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
.cy-fig-live{position:absolute;right:16px;bottom:16px;z-index:3;display:flex;flex-direction:column;gap:7px;align-items:flex-start;
  background:rgba(21,17,12,.74);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:12px;padding:11px 15px 12px;min-width:176px;
  box-shadow:0 20px 40px -24px rgba(0,0,0,.8);}
.cy-live-top{display:inline-flex;align-items:center;gap:8px;font-size:.5rem;letter-spacing:.15em;color:rgba(251,248,241,.6);}
.cy-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.cy-live-rot{position:relative;display:block;width:100%;height:19px;overflow:hidden;}
.cy-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.76rem;color:#fff;letter-spacing:.01em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:cyRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes cyRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

/* ----- CYBERSECURITY sections (.cb- : perimeter & exposure) -----
   Motif set unique to this page: an incident clock at 16:55 Friday, perimeter
   cards with a breach in the outline, coverage cards whose outline seals shut,
   shield-clipped index badges, exposure meters that fall step by step, and a
   boxless cost band. */

/* --- S2: the lede beside one click and its cascade --- */
.cb-lede-top{max-width:1020px;margin-bottom:56px;}
.cb-lede-top .eyebrow{margin-bottom:14px;}
.cb-lede-top h2{font-size:clamp(1.7rem,3vw,2.45rem);}
.cb-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.cb-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.cb-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.cb-lede-btn{margin-top:10px;}

.cb-incident{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.cb-in-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.cb-in-led{width:7px;height:7px;border-radius:50%;background:var(--rust);box-shadow:0 0 10px rgba(178,58,14,.9);animation:pulse 1.6s infinite;}
.cb-in-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;color:var(--rust);}
.cb-in-body{padding:22px 22px 20px;}
.cb-in-lbl{display:block;font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(251,248,241,.42);margin-bottom:10px;}
.cb-vectors{display:flex;flex-wrap:wrap;gap:8px;}
.cb-vector{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.04em;padding:7px 12px;border-radius:7px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:rgba(251,248,241,.55);}
/* Two vectors sit quiet; the third is the one that gets clicked. */
.cb-vector.hit{animation:cbHit 7s ease-in-out infinite;}
@keyframes cbHit{0%,10%{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:rgba(251,248,241,.55);box-shadow:none;}
  18%,82%{background:rgba(178,58,14,.2);border-color:var(--rust);color:#fff;box-shadow:0 0 0 4px rgba(178,58,14,.12);}
  92%,100%{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:rgba(251,248,241,.55);box-shadow:none;}}
.cb-in-arrow{display:block;width:2px;height:26px;margin:14px 0 14px 18px;background:linear-gradient(180deg,rgba(178,58,14,.7),rgba(178,58,14,0));}
.cb-cascade{display:flex;flex-direction:column;gap:9px;}
.cb-casc{display:flex;align-items:center;gap:11px;font-size:.86rem;color:rgba(251,248,241,.5);
  animation:cbCasc 7s ease-in-out infinite;animation-delay:calc(var(--c) * .45s + 1.4s);}
.cb-casc i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto;}
@keyframes cbCasc{0%,6%{opacity:.28;color:rgba(251,248,241,.5);transform:translateX(-4px);}
  16%,78%{opacity:1;color:var(--rust);transform:none;}
  90%,100%{opacity:.28;color:rgba(251,248,241,.5);transform:translateX(-4px);}}
.cb-in-foot{padding:14px 22px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.56rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,248,241,.45);}

/* --- S3: a perimeter with one segment missing --- */
.cb-risksec .sec-head{max-width:960px;}
.cb-risks{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.cb-risk{position:relative;background:var(--cream);border:1.5px solid rgba(21,17,12,.2);border-radius:16px;padding:26px 24px 28px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.cb-risk:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
/* The break in the outline — the section background showing through, lit red. */
.cb-risk-gap{position:absolute;top:-2px;left:34%;width:62px;height:5px;background:var(--paper-2);}
.cb-risk-gap::after{content:"";position:absolute;inset:1px 0;background:var(--rust);border-radius:2px;
  animation:cbGap 3s ease-in-out infinite;animation-delay:calc(var(--i) * .26s);}
@keyframes cbGap{0%,58%,100%{opacity:.3;}70%,86%{opacity:1;}}
.cb-risk:hover .cb-risk-gap{background:var(--ember);}
.cb-risk:hover .cb-risk-gap::after{opacity:0;}
.cb-risk-tag{display:block;font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--rust);margin-bottom:12px;}
.cb-risk p{font-size:.97rem;color:var(--muted);line-height:1.68;}
.cb-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.cb-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: here the outline closes (dark) --- */
.cb-covsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.cb-covsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.cb-covsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.cb-covsec .wrap{position:relative;z-index:2;}
.cb-covsec .sec-head{max-width:900px;}
.cb-covsec .sec-head h2 em{color:var(--ember-hi);}
.cb-covsec .sec-head p{color:rgba(251,248,241,.74);}
.cb-covers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
/* Dashed until the section lands, then sealed — the inverse of the gaps above. */
.cb-cover{background:rgba(255,255,255,.04);border:1.5px dashed rgba(255,255,255,.2);border-radius:16px;padding:24px 24px 26px;
  transition:border-color .6s,border-style .6s,background .35s,transform .35s cubic-bezier(.2,.7,.2,1);
  transition-delay:calc(var(--i) * .1s + .2s),calc(var(--i) * .1s + .2s),0s,0s;}
.cb-covers.in .cb-cover{border-style:solid;border-color:rgba(78,212,146,.42);}
.cb-cover:hover{background:rgba(255,255,255,.075);border-color:rgba(247,143,27,.5);transform:translateY(-5px);}
.cb-cover-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;}
.cb-cover-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:rgba(247,143,27,.13);border:1px solid rgba(247,143,27,.3);color:var(--ember-hi);transition:background .35s,color .35s,transform .35s;}
.cb-cover:hover .cb-cover-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;transform:rotate(-6deg);}
.cb-cover-ico svg{width:21px;height:21px;}
.cb-cover-state{display:inline-flex;align-items:center;gap:7px;font-size:.48rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(251,248,241,.35);transition:color .5s;transition-delay:calc(var(--i) * .1s + .5s);}
.cb-cover-state i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2);transition:background .5s,box-shadow .5s;transition-delay:calc(var(--i) * .1s + .5s);}
.cb-covers.in .cb-cover-state{color:#4ed492;}
.cb-covers.in .cb-cover-state i{background:#4ed492;box-shadow:0 0 0 3px rgba(78,212,146,.16);}
.cb-cover h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.32;margin-bottom:9px;}
.cb-cover p{font-size:.95rem;color:rgba(251,248,241,.76);line-height:1.68;}

/* --- S5: trust, indexed on a shield --- */
.cb-trustsec .sec-head{max-width:900px;}
.cb-trusts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.cb-trust{display:flex;gap:18px;align-items:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:26px 26px 28px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.cb-trust:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
/* A shield silhouette rather than a circle or a square. */
.cb-trust-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:46px;
  clip-path:polygon(50% 0,100% 18%,100% 62%,50% 100%,0 62%,0 18%);
  background:var(--paper-2);color:var(--muted);font-size:.72rem;letter-spacing:.06em;padding-bottom:4px;
  transition:background .35s,color .35s;}
.cb-trust:hover .cb-trust-badge{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.cb-trust p{font-size:1rem;color:var(--ink);line-height:1.68;}

/* --- S6: exposure falling at every step --- */
.cb-worksec .sec-head{max-width:900px;}
.cb-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.cb-step{display:grid;grid-template-columns:52px 1fr 210px;gap:26px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:background .3s;}
.cb-step:hover{background:var(--cream);}
.cb-step-n{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;
  background:var(--paper-2);border:1px solid var(--line);color:var(--muted);font-size:.74rem;transition:background .35s,color .35s,border-color .35s;}
.cb-step:hover .cb-step-n{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.cb-step-body h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:6px;}
.cb-step-body p{font-size:.96rem;color:var(--muted);line-height:1.66;}
/* The bar shortens and cools from step one to step five. */
.cb-risk-meter{position:relative;display:block;height:8px;border-radius:100px;background:rgba(21,17,12,.09);}
.cb-risk-meter i{position:absolute;left:0;top:0;bottom:0;border-radius:100px;
  width:calc(100% - var(--i) * 19%);
  background:linear-gradient(90deg,var(--rust),var(--ember));
  transform:scaleX(0);transform-origin:left;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .13s + .2s);}
.cb-steps.in .cb-risk-meter i{transform:scaleX(1);}
.cb-step:last-child .cb-risk-meter i{background:linear-gradient(90deg,#2f8f63,#4ed492);}
.cb-risk-meter b{position:absolute;right:0;top:-19px;font-size:.48rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d);white-space:nowrap;}

/* --- S7: who needs this (dark) --- */
.cb-whosec{background:var(--ink);color:var(--cream);overflow:hidden;}
.cb-whosec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.cb-whosec .glow-1{top:auto;bottom:-200px;right:-140px;opacity:.3;}
.cb-whosec .wrap{position:relative;z-index:2;}
.cb-who{max-width:960px;}
.cb-who .eyebrow{margin-bottom:14px;}
.cb-who h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:20px;}
.cb-who h2 em{color:var(--ember-hi);}
.cb-who > p{font-size:1.02rem;color:rgba(251,248,241,.72);margin-bottom:22px;}
.cb-sectors{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:26px;}
.cb-sector{font-size:.94rem;padding:11px 22px;border-radius:100px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:rgba(251,248,241,.88);
  animation:cbSector 8s ease-in-out infinite;animation-delay:calc(var(--i) * .35s);transition:transform .3s;}
@keyframes cbSector{0%,6%{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05);}
  13%,26%{border-color:rgba(247,143,27,.55);background:rgba(247,143,27,.12);}
  34%,100%{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05);}}
.cb-sector:hover{transform:translateY(-3px);}
.cb-who-note{font-size:.98rem;color:rgba(251,248,241,.6);line-height:1.72;max-width:760px;}

/* --- S8: what weak security costs --- */
.cb-costsec .sec-head{max-width:900px;}
.cb-costs{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line);}
.cb-cost{position:relative;padding:30px 24px 34px;border-right:1px solid var(--line);transition:background .35s;}
.cb-cost:last-child{border-right:none;}
.cb-cost:hover{background:var(--cream);}
/* A short downward stroke — every one of these moves the wrong way. */
.cb-cost-arrow{display:block;width:2px;height:22px;margin-bottom:16px;background:linear-gradient(180deg,rgba(178,58,14,.15),var(--rust));
  animation:cbDrop 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes cbDrop{0%,62%,100%{opacity:.4;transform:translateY(-2px);}74%,88%{opacity:1;transform:translateY(2px);}}
.cb-cost-kick{display:block;font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--rust);margin-bottom:12px;}
.cb-cost p{font-size:.98rem;color:var(--ink);line-height:1.66;}

/* --- S9/S10: CTA + FAQ --- */
.cy-cta canvas.ai-net{opacity:.5;}
.cb-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.cb-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .cy-fig-grid,.cy-live-rot i,.cb-vector.hit,.cb-casc,.cb-risk-gap::after,.cb-sector,.cb-cost-arrow{animation:none;}
  .cy-fig-scan{display:none;}
  .cy-live-rot i{opacity:0;}
  .cy-live-rot i:first-child{opacity:1;}
  .cb-vector.hit{background:rgba(178,58,14,.2);border-color:var(--rust);color:#fff;}
  .cb-casc{opacity:1;color:var(--rust);transform:none;}
  .cb-cover,.cb-cover-state,.cb-cover-state i,.cb-risk-meter i{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .cb-risks,.cb-covers,.cb-trusts{grid-template-columns:repeat(2,1fr);}
  .cb-costs{grid-template-columns:repeat(3,1fr);}
  .cb-cost:nth-child(3n){border-right:none;}
  .cb-cost:nth-child(-n+3){border-bottom:1px solid var(--line);}
}
@media(max-width:980px){
  .cy-hero-grid{grid-template-columns:1fr;gap:42px;}
  .cy-hero-fig{order:-1;max-width:560px;}
  .cb-lede-grid{grid-template-columns:1fr;gap:44px;}
  .cb-step{grid-template-columns:52px 1fr;gap:12px 20px;}
  .cb-risk-meter{grid-column:2;max-width:260px;margin-top:6px;}
  .cb-risk-meter b{top:-17px;}
}
@media(max-width:760px){
  .cb-risks,.cb-covers,.cb-trusts,.cb-costs{grid-template-columns:1fr;}
  .cb-cost{border-right:none;border-bottom:1px solid var(--line);}
  .cb-cost:last-child{border-bottom:none;}
  .cb-verdict{padding-left:18px;font-size:1.02rem;}
  .cb-step{grid-template-columns:44px 1fr;gap:10px 16px;padding:24px 4px;}
  .cb-risk-meter{max-width:none;}
  .cy-fig-live{right:12px;bottom:12px;min-width:0;}
}

/* ===== SEO (search rankings / organic growth) ===== */
.seo-hero-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:54px;align-items:center;}
.seo-hero-txt h1{margin-top:14px;}
.seo-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* SERP mockup — a desktop browser window, not a phone. The narrow cap made it
   read as a mobile viewport; it now fills the hero column in landscape. */
/* `width:100%` is required — a margin of `auto` on a grid item turns off the
   default stretch, leaving the panel to shrink to its content. */
.seo-serp{position:relative;z-index:2;width:100%;max-width:600px;margin:0 0 0 auto;border-radius:16px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(160deg,#1c160f,#100c08);box-shadow:0 50px 90px -42px rgba(0,0,0,.75);}
.seo-serp-bar{display:flex;align-items:center;gap:7px;padding:13px 18px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.seo-tl{width:11px;height:11px;border-radius:50%;}
.seo-tl.r{background:#ff5f57;}.seo-tl.y{background:#febc2e;}.seo-tl.g{background:#28c840;}
/* The address bar reads as a real chrome element at desktop width. */
.seo-serp-url{margin-left:12px;flex:1;font-size:.64rem;color:rgba(251,248,241,.5);background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.07);border-radius:100px;padding:5px 14px;}
.seo-serp-body{padding:22px 24px 18px;}
.seo-search{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:100px;padding:12px 20px;margin-bottom:18px;color:rgba(251,248,241,.85);font-size:.9rem;}
.seo-search svg{width:16px;height:16px;color:var(--ember-hi);}
.seo-result{position:relative;display:flex;gap:15px;align-items:flex-start;padding:14px 16px;border-radius:11px;margin-bottom:9px;}
.seo-result.top{background:linear-gradient(150deg,rgba(247,143,27,.16),rgba(247,143,27,.04));border:1px solid rgba(247,143,27,.4);animation:seoTop 3s ease-in-out infinite;}
@keyframes seoTop{0%,100%{box-shadow:0 0 0 0 rgba(247,143,27,0);}50%{box-shadow:0 12px 30px -12px rgba(247,143,27,.5);}}
@media(prefers-reduced-motion:reduce){.seo-result.top{animation:none;}}
.seo-rank{flex:0 0 auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:.8rem;font-weight:600;color:rgba(251,248,241,.6);background:rgba(255,255,255,.06);}
.seo-result.top .seo-rank{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.seo-result-body{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0;}
.seo-r-title{height:12px;width:58%;border-radius:4px;background:var(--ember-hi);}
.seo-r-title.dim{background:rgba(255,255,255,.28);width:44%;}
.seo-r-url{font-size:.62rem;color:#8fdca8;}
.seo-r-line{height:7px;width:100%;border-radius:3px;background:rgba(255,255,255,.16);}
.seo-r-line.short{width:74%;}
.seo-r-line.dim{background:rgba(255,255,255,.1);width:88%;}
.seo-rise{position:absolute;top:12px;right:12px;font-size:.66rem;color:#28c840;}

/* hero SERP — the query types itself and the citation chip reports where the
   brand is being surfaced outside the results page. */
.seo-search{position:relative;}
.seo-caret{width:2px;height:15px;background:var(--ember-hi);margin-left:-4px;animation:seoCaret 1.15s steps(1) infinite;}
@keyframes seoCaret{0%,50%{opacity:1;}51%,100%{opacity:0;}}
.seo-rise{animation:seoRise 3s ease-in-out infinite;}
@keyframes seoRise{0%,100%{transform:translateY(2px);opacity:.6;}50%{transform:translateY(-2px);opacity:1;}}
/* A footer bar rather than a floating chip — anchored to a corner it covered
   the third result. */
.seo-cite{display:flex;align-items:center;gap:12px;padding:13px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.24);}
.seo-cite-top{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;font-size:.48rem;letter-spacing:.16em;color:rgba(251,248,241,.55);}
.seo-cite-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.seo-cite-rot{position:relative;display:block;flex:1;height:17px;overflow:hidden;}
.seo-cite-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.74rem;color:#fff;white-space:nowrap;
  opacity:0;transform:translateY(8px);animation:seoCiteRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes seoCiteRot{0%{opacity:0;transform:translateY(8px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-8px);}}

/* ----- SEO sections (.se- : ranked and cited) -----
   Motif set unique to this page: an AI answer whose citations never convert to
   visits, empty citation brackets for what's missing, dual SEO/AI status pips,
   the services laid out as a results page, rank badges and a position trace
   that climbs at every phase. */

/* --- S2: the lede beside an answer that cites but never sends --- */
.se-lede-top{max-width:1020px;margin-bottom:56px;}
.se-lede-top .eyebrow{margin-bottom:14px;}
.se-lede-top h2{font-size:clamp(1.68rem,3vw,2.4rem);margin-bottom:20px;}
.se-lede-sub{font-size:1.1rem;color:var(--muted);line-height:1.74;}
.se-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.se-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.se-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.se-lede-btn{margin-top:10px;}

.se-answer{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.se-ans-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.se-ans-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.se-ans-body{padding:24px 22px 20px;}
/* The answer writes itself, one line at a time. */
.se-ans-line{position:relative;display:block;height:9px;border-radius:4px;background:rgba(255,255,255,.16);margin-bottom:13px;
  transform-origin:left;animation:seLine 9s ease-in-out infinite;animation-delay:calc(var(--l) * .5s);}
.se-ans-line.short{width:64%;}
/* Leaves room for the citation marker so it doesn't run past the panel edge. */
.se-ans-line.cited{width:calc(100% - 26px);}
@keyframes seLine{0%,4%{transform:scaleX(0);opacity:0;}12%,84%{transform:scaleX(1);opacity:1;}94%,100%{transform:scaleX(0);opacity:0;}}
.se-ans-cite{position:absolute;right:-24px;top:-4px;display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:5px;font-style:normal;font-family:'JetBrains Mono',monospace;font-size:.55rem;
  background:rgba(247,143,27,.18);border:1px solid rgba(247,143,27,.55);color:var(--ember-hi);
  animation:seCite 9s ease-in-out infinite;animation-delay:calc(var(--l) * .5s + .5s);}
@keyframes seCite{0%,10%{opacity:0;transform:scale(.5);}18%,84%{opacity:1;transform:none;}94%,100%{opacity:0;transform:scale(.5);}}
.se-ans-srcs{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);}
.se-ans-src{font-size:.56rem;letter-spacing:.05em;padding:5px 11px;border-radius:100px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);color:rgba(251,248,241,.66);
  animation:seSrc 9s ease-in-out infinite;animation-delay:calc(var(--s) * .3s + 2.4s);}
@keyframes seSrc{0%,14%{opacity:0;transform:translateY(5px);}24%,84%{opacity:1;transform:none;}94%,100%{opacity:0;transform:translateY(5px);}}
.se-ans-foot{display:flex;align-items:center;gap:16px;padding:16px 22px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.18);}
.se-ans-stat{display:flex;flex-direction:column;gap:3px;}
.se-ans-stat b{font-size:1rem;font-weight:500;letter-spacing:.02em;color:var(--ember-hi);}
.se-ans-stat.down b{color:var(--rust);}
.se-ans-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}
.se-ans-arrow{color:rgba(251,248,241,.3);font-size:1.05rem;}

/* --- S3: the citation bracket that stays empty --- */
.se-behindsec .sec-head{max-width:920px;}
.se-gaps{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
/* Each finding filed like an issue: a tinted header strip carrying the index,
   the failing area and its state, over the statement itself. */
.se-gap{position:relative;grid-column:span 2;display:flex;flex-direction:column;overflow:hidden;
  background:var(--cream);border:1px solid var(--line);border-radius:16px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.se-gap:nth-child(4),.se-gap:nth-child(5){grid-column:span 3;}
.se-gap:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
.se-gap::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;z-index:2;background:var(--rust);transition:background .35s;}
.se-gap:hover::before{background:var(--ember);}
/* A faint rust wash rather than --paper-2, which is the section background and
   made the strip read as a cut-out instead of part of the card. */
.se-gap-head{display:flex;align-items:center;gap:12px;padding:13px 20px 13px 22px;background:rgba(178,58,14,.07);border-bottom:1px solid rgba(178,58,14,.14);}
.se-gap-n{font-size:.7rem;letter-spacing:.1em;color:var(--muted-d);}
.se-gap-tag{font-size:.55rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ink);}
.se-gap-state{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.48rem;letter-spacing:.15em;text-transform:uppercase;color:var(--rust);}
.se-gap-state i{width:6px;height:6px;border-radius:50%;background:var(--rust);animation:seBehind 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes seBehind{0%,62%,100%{opacity:.4;}74%,88%{opacity:1;}}
.se-gap p{padding:22px 22px 26px;font-size:.97rem;color:var(--muted);line-height:1.68;}
.se-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.se-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: each commitment has to hold on both surfaces (dark) --- */
.se-delivsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.se-delivsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.se-delivsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.se-delivsec .wrap{position:relative;z-index:2;}
.se-delivsec .sec-head{max-width:900px;}
.se-delivsec .sec-head h2 em{color:var(--ember-hi);}
.se-delivsec .sec-head p{color:rgba(251,248,241,.74);}
.se-dual{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.se-du{grid-column:span 2;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:24px 24px 26px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.se-du:nth-child(4),.se-du:nth-child(5){grid-column:span 3;}
.se-du:hover{background:rgba(255,255,255,.075);border-color:rgba(247,143,27,.4);transform:translateY(-5px);}
.se-du-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;}
.se-du-key{font-size:.6rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-hi);}
/* Both pips light: the work has to land on the results page and in the answer. */
.se-du-pips{display:inline-flex;gap:6px;}
.se-du-pips i{font-style:normal;font-size:.47rem;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;border-radius:5px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);color:rgba(251,248,241,.45);
  animation:sePip 6s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
.se-du-pips i:last-child{animation-delay:calc(var(--i) * .3s + .28s);}
@keyframes sePip{0%,8%{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.13);color:rgba(251,248,241,.45);}
  18%,62%{background:rgba(78,212,146,.14);border-color:rgba(78,212,146,.5);color:#4ed492;}
  74%,100%{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.13);color:rgba(251,248,241,.45);}}
.se-du p{font-size:.97rem;color:rgba(251,248,241,.78);line-height:1.7;}

/* --- S5: the services read as a results page --- */
.se-svcsec .sec-head{max-width:940px;}
.se-results{background:var(--cream);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 40px 80px -48px rgba(21,17,12,.32);}
.se-results-bar{display:flex;align-items:center;gap:11px;padding:15px 24px;background:var(--paper-2);border-bottom:1px solid var(--line);
  font-size:.62rem;letter-spacing:.1em;color:var(--muted);}
.se-results-bar svg{width:14px;height:14px;color:var(--ember-deep);}
.se-results-bar b{margin-left:auto;font-weight:400;letter-spacing:.14em;text-transform:uppercase;font-size:.55rem;color:var(--muted-d);}
.se-results-list{list-style:none;margin:0;padding:0;}
.se-result{display:grid;grid-template-columns:52px 1fr 150px;gap:22px;align-items:start;padding:24px;border-bottom:1px solid var(--line);transition:background .3s;}
.se-result:last-child{border-bottom:none;}
.se-result:hover{background:#fff;}
.se-result-rank{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;
  background:var(--paper-2);border:1px solid var(--line);font-size:.72rem;color:var(--muted);transition:background .35s,color .35s,border-color .35s;}
.se-result:hover .se-result-rank{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.se-result-path{display:block;font-size:.6rem;letter-spacing:.04em;color:var(--muted-d);margin-bottom:7px;}
.se-result h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ember-deep);line-height:1.3;margin-bottom:9px;transition:color .3s;}
.se-result:hover h3{color:var(--rust);}
.se-result p{font-size:.95rem;color:var(--muted);line-height:1.68;}
.se-result-surface{justify-self:end;font-size:.53rem;letter-spacing:.15em;text-transform:uppercase;text-align:right;
  padding:6px 12px;border-radius:100px;background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);color:var(--ember-deep);}

/* --- S6: the reasons read as trust signals, boxless against the boxed
   sections either side of it --- */
.se-whysec .sec-head{max-width:880px;}
.se-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.se-reason{display:grid;grid-template-columns:44px 46px 1fr;gap:26px;align-items:center;padding:30px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s,background .3s;}
.se-reason:hover{padding-left:18px;background:var(--cream);}
/* Four bars, full strength, climbing in one after another down the list. */
.se-signal{display:flex;align-items:flex-end;gap:4px;height:28px;}
.se-signal i{width:7px;border-radius:2px;background:rgba(21,17,12,.12);
  transition:background .55s cubic-bezier(.2,.7,.2,1);}
.se-signal i:nth-child(1){height:32%;transition-delay:calc(var(--i) * .14s + .15s);}
.se-signal i:nth-child(2){height:55%;transition-delay:calc(var(--i) * .14s + .27s);}
.se-signal i:nth-child(3){height:78%;transition-delay:calc(var(--i) * .14s + .39s);}
.se-signal i:nth-child(4){height:100%;transition-delay:calc(var(--i) * .14s + .51s);}
.se-reasons.in .se-signal i{background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));}
.se-reason-n{font-size:.86rem;letter-spacing:.14em;color:var(--muted-d);transition:color .35s;}
.se-reason:hover .se-reason-n{color:var(--ember-deep);}
.se-reason p{font-size:1.1rem;color:var(--ink);line-height:1.68;}

/* --- S7: each phase ends the position curve higher than the last (dark) --- */
.se-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.se-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.se-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.se-procsec .wrap{position:relative;z-index:2;}
.se-procsec .sec-head{max-width:880px;}
.se-procsec .sec-head h2 em{color:var(--ember-hi);}
.se-procsec .sec-head p{color:rgba(251,248,241,.74);}
.se-phases{list-style:none;margin:0;padding:0;}
.se-phase{display:grid;grid-template-columns:52px 1fr 132px;gap:26px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.07);}
.se-phase:last-child{border-bottom:none;}
.se-phase-n{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;
  background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.32);color:var(--ember-hi);font-size:.76rem;letter-spacing:.06em;}
.se-phase-body h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.se-phase-body p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.64;}
.se-phase-trace{display:block;height:52px;border-radius:9px;overflow:hidden;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);}
.se-phase-trace svg{width:100%;height:100%;display:block;}
.se-trace-base{stroke:rgba(255,255,255,.14);stroke-width:1;stroke-dasharray:3 4;}
.se-trace-line{stroke:var(--ember-hi);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 3px rgba(255,174,69,.5));
  transition:stroke-dashoffset 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .16s + .2s);}
.se-phases.in .se-trace-line{stroke-dashoffset:0;}
.se-trace-dot{fill:var(--ember-hi);opacity:0;transform-box:fill-box;transform-origin:center;
  transition:opacity .4s;transition-delay:calc(var(--i) * .16s + 1.2s);}
.se-phases.in .se-trace-dot{opacity:1;}

/* --- S8: each audience read as the query that brought them here --- */
.se-queries{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.se-query{display:flex;gap:16px;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:20px 28px 20px 22px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.se-query:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 26px 50px -30px rgba(21,17,12,.32);}
.se-query-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;
  background:var(--paper-2);color:var(--muted);transition:background .35s,color .35s;}
.se-query:hover .se-query-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.se-query-ico svg{width:18px;height:18px;}
.se-query p{font-size:1rem;color:var(--ink);line-height:1.6;}

/* --- S9/S10: CTA + FAQ --- */
.seo-cta canvas.ai-net{opacity:.5;}
.se-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.se-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .seo-caret,.seo-rise,.seo-cite-rot i,.se-ans-line,.se-ans-cite,.se-ans-src,
  .se-gap-state i,.se-du-pips i{animation:none;}
  .se-signal i{transition-duration:.01s;transition-delay:0s;}
  .seo-cite-rot i{opacity:0;}
  .seo-cite-rot i:first-child{opacity:1;}
  .se-ans-line{transform:scaleX(1);opacity:1;}
  .se-ans-cite,.se-ans-src{opacity:1;transform:none;}
  .se-du-pips i{background:rgba(78,212,146,.14);border-color:rgba(78,212,146,.5);color:#4ed492;}
  .se-trace-line{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1080px){
  .se-gaps,.se-dual{grid-template-columns:repeat(2,1fr);}
  .se-gap,.se-gap:nth-child(4),.se-gap:nth-child(5),
  .se-du,.se-du:nth-child(4),.se-du:nth-child(5){grid-column:span 1;}
  .se-gap:nth-child(5),.se-du:nth-child(5){grid-column:span 2;}
  .se-queries{grid-template-columns:1fr;}
}
@media(max-width:980px){
  .seo-hero-grid{grid-template-columns:1fr;gap:42px;}
  .seo-serp{order:-1;max-width:600px;margin:0 auto;}
  .se-lede-grid{grid-template-columns:1fr;gap:44px;}
  .se-result{grid-template-columns:52px 1fr;gap:8px 20px;}
  .se-result-surface{grid-column:2;justify-self:start;}
}
@media(max-width:760px){
  .se-gaps,.se-dual{grid-template-columns:1fr;}
  .se-gap,.se-gap:nth-child(4),.se-gap:nth-child(5),
  .se-du,.se-du:nth-child(4),.se-du:nth-child(5){grid-column:span 1;}
  .se-verdict{padding-left:18px;font-size:1.02rem;}
  .se-result{grid-template-columns:1fr;padding:22px;}
  .se-result-rank{margin-bottom:4px;}
  .se-reason{grid-template-columns:40px 38px 1fr;gap:16px;}
  /* The trace drops under the copy once the row runs out of width. */
  .se-phase{grid-template-columns:52px 1fr;gap:12px 18px;padding:24px 0;}
  .se-phase-trace{grid-column:2;max-width:160px;}
  .se-query{border-radius:20px;padding:20px 22px;align-items:flex-start;}
  .se-ans-foot{flex-wrap:wrap;gap:10px;}
  .seo-cite{padding:11px 14px;}
}

/* ===== SUPPORT & MAINTENANCE (system health / uptime) ===== */
.sm-hero-grid{display:grid;grid-template-columns:1fr .95fr;gap:54px;align-items:center;}
.sm-hero-txt h1{margin-top:14px;}
.sm-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}

/* system health monitor */
.sm-health{position:relative;z-index:2;max-width:400px;margin:0 auto;border-radius:16px;overflow:hidden;border:1px solid var(--line-d);background:linear-gradient(160deg,#1c160f,#100c08);box-shadow:0 50px 90px -42px rgba(0,0,0,.75);}
.sm-health-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.sm-tl{width:11px;height:11px;border-radius:50%;}
.sm-tl.r{background:#ff5f57;}.sm-tl.y{background:#febc2e;}.sm-tl.g{background:#28c840;}
.sm-health-name{margin-left:8px;font-size:.66rem;color:rgba(251,248,241,.55);}
.sm-health-state{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.14em;color:#28c840;}
.sm-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;}
.sm-health-body{padding:20px;}
.sm-ecg{position:relative;height:80px;margin-bottom:18px;border-radius:10px;background:rgba(40,200,64,.04);border:1px solid rgba(40,200,64,.14);overflow:hidden;}
.sm-ecg svg{width:100%;height:100%;display:block;}
.sm-ecg-base{fill:none;stroke:rgba(40,200,64,.16);stroke-width:2;}
.sm-ecg-line{fill:none;stroke:#28c840;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(40,200,64,.7));stroke-dasharray:22 78;stroke-dashoffset:100;animation:smEcg 2.4s linear infinite;}
@keyframes smEcg{to{stroke-dashoffset:0;}}
.sm-ecg-sweep{position:absolute;top:0;bottom:0;width:60px;background:linear-gradient(90deg,transparent,rgba(40,200,64,.18),transparent);animation:smSweep 2.6s linear infinite;}
@keyframes smSweep{0%{left:-60px;}100%{left:100%;}}
@media(prefers-reduced-motion:reduce){.sm-ecg-line{animation:none;stroke-dasharray:none;stroke-dashoffset:0;}.sm-ecg-sweep{animation:none;display:none;}}
.sm-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.sm-status li{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.05);}
.sm-status-dot{width:9px;height:9px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.7);animation:msBlink 2.4s infinite;animation-delay:calc(var(--d,0)*.4s);}
.sm-status-lbl{font-size:.9rem;color:rgba(251,248,241,.9);font-weight:500;}
.sm-status-val{margin-left:auto;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#28c840;}

@media(max-width:980px){
  .sm-hero-grid{grid-template-columns:1fr;gap:40px;}
}

/* ----- SUPPORT & MAINTENANCE sections (.up- : telemetry motif) ----- */
.up-costsec .sec-head,.up-delivsec .sec-head,.up-svcsec .sec-head,
.up-whysec .sec-head,.up-procsec .sec-head,.up-whosec .sec-head,
.up-faqsec .sec-head{max-width:960px;margin-left:auto;margin-right:auto;text-align:center;}
.up-statement{max-width:82ch;margin:38px auto 0;padding-top:26px;border-top:1px solid var(--line);
  text-align:center;font-family:'Fraunces',serif;font-size:clamp(1.08rem,1.8vw,1.34rem);font-weight:500;
  line-height:1.52;letter-spacing:-.01em;color:var(--ink);}

/* --- S2: missed-signal log. Light, so it breaks from the dark hero above it
   rather than running straight on from it. --- */
.up-signals{max-width:1020px;margin-inline:auto;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:#fff;box-shadow:0 34px 68px -46px rgba(21,17,12,.3);}
.up-signals-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 22px;
  border-bottom:1px solid var(--line);background:var(--paper-2);}
.up-signals-bar .mono{font-size:.66rem;color:var(--muted-d);}
.up-signals-tag{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rust,#b23a0e) !important;}
.up-signal-rows{list-style:none;margin:0;padding:0;}
.up-signal{display:grid;grid-template-columns:1fr 160px auto;gap:22px;align-items:center;padding:18px 22px;
  transition:background .3s;}
.up-signal + .up-signal{border-top:1px solid var(--line);}
.up-signal:hover{background:rgba(178,58,14,.045);}
.up-signal p{font-size:.98rem;line-height:1.62;color:var(--muted);transition:color .3s;}
.up-signal:hover p{color:var(--ink);}
/* Trace: flat, then a spike that arrives far too late to help. */
.up-trace{display:block;height:40px;}
.up-trace svg{width:100%;height:100%;}
.up-trace-flat{stroke:rgba(21,17,12,.2);stroke-width:1.8;}
/* Spike holds drawn for most of the loop — at a shorter hold it was absent
   about half the time and the row just read as a stray dash. */
.up-trace-spike{stroke:var(--rust,#b23a0e);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:upSpike 4s calc(var(--i) * .22s) ease-out infinite;}
@keyframes upSpike{
  0%,14%{stroke-dashoffset:1;}
  34%,100%{stroke-dashoffset:0;}
}
.up-signal-tag{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rust,#b23a0e);
  border:1px solid rgba(178,58,14,.35);border-radius:100px;padding:5px 11px;white-space:nowrap;}

/* --- S3: completing status rings --- */
.up-rings{list-style:none;margin:0 auto;padding:0;max-width:1000px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.up-ring-item{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;padding:22px 26px;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
.up-ring-item:last-child:nth-child(odd){grid-column:1/-1;}
.up-ring-item:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 24px 46px -30px rgba(21,17,12,.28);}
.up-ring{position:relative;flex:0 0 auto;width:52px;height:52px;display:grid;place-items:center;}
.up-ring-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);}
.up-ring-track{fill:none;stroke:var(--paper-2);stroke-width:3.5;}
.up-ring-fill{fill:none;stroke:var(--ember);stroke-width:3.5;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:upRing 1s calc(.25s + var(--i) * .16s) cubic-bezier(.3,.8,.3,1) both;}
@keyframes upRing{to{stroke-dashoffset:0;}}
/* Subject icon sits inside the ring, so the ring reads as progress around it. */
.up-ring-ico{display:grid;place-items:center;color:var(--ember-deep);
  animation:upRingIco .4s calc(1.05s + var(--i) * .16s) ease-out both;}
.up-ring-ico svg{width:20px;height:20px;display:block;}
@keyframes upRingIco{from{opacity:0;transform:scale(.55);}to{opacity:1;transform:none;}}
.up-ring-item:hover .up-ring-ico{color:var(--ember);}
.up-ring-label{display:block;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ember-deep);margin-bottom:7px;}
.up-ring-body p{font-size:.98rem;line-height:1.62;color:var(--muted);transition:color .3s;}
.up-ring-item:hover p{color:var(--ink);}

/* --- S4: service cards topped with an uptime strip --- */
.up-services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.up-service{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);
  border-radius:16px;padding:20px 24px 26px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,background .35s,box-shadow .35s;}
.up-service:hover{transform:translateY(-6px);background:#fff;border-color:var(--ember);
  box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.up-service-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:13px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);
  margin-bottom:15px;transition:background .35s,color .35s,transform .35s;}
.up-service:hover .up-service-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.up-service-ico svg{width:23px;height:23px;}
.up-service h3{font-size:1.04rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;}
.up-service p{font-size:.93rem;line-height:1.6;color:var(--muted);}

/* --- S5: shingled reason cards (dark) --- */
.up-whysec{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.up-whysec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.28;}
.up-whysec .glow-1{top:auto;bottom:-220px;right:-140px;opacity:.26;}
.up-whysec .wrap{position:relative;z-index:2;}
.up-whysec .sec-head h2{color:#fff;}
.up-whysec .sec-head h2 em{color:var(--ember-hi);font-style:italic;font-weight:400;}
.up-shingles{list-style:none;margin:0 auto;padding:0;max-width:880px;}
.up-shingle{position:relative;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;
  padding:24px 30px;border-radius:16px;border:1px solid var(--line-d);
  background:linear-gradient(150deg,rgba(38,28,19,.96),rgba(20,15,10,.96));
  /* Each card laps over the one above it, like layered cover. */
  margin-top:-14px;z-index:calc(var(--i) + 1);
  box-shadow:0 -12px 30px -18px rgba(0,0,0,.8);
  animation:upShingle .55s calc(.15s + var(--i) * .12s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .32s,background .32s;}
.up-shingle:first-child{margin-top:0;}
@keyframes upShingle{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
.up-shingle:hover{transform:translateY(-6px);border-color:rgba(255,174,69,.5);
  background:linear-gradient(150deg,rgba(58,38,18,.97),rgba(24,17,11,.97));}
.up-shingle-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,174,69,.4);font-size:.72rem;color:var(--ember-hi);
  transition:background .32s,color .32s;}
.up-shingle:hover .up-shingle-n{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.up-shingle p{font-size:1rem;line-height:1.64;color:rgba(251,248,241,.82);transition:color .32s;}
.up-shingle:hover p{color:#fff;}

/* --- S6: continuous cycle dial + steps --- */
.up-cycle-grid{display:grid;grid-template-columns:300px 1fr;gap:52px;align-items:center;}
.up-dial{position:relative;width:260px;height:260px;justify-self:center;display:grid;place-items:center;}
.up-dial-ring{position:absolute;inset:0;border-radius:50%;border:2px dashed rgba(217,101,10,.32);}
/* Sweep hand, going round the way a monitoring loop does. */
.up-dial-sweep{position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg,rgba(247,143,27,.32),transparent 26%);
  animation:upSweep 7s linear infinite;
  -webkit-mask:radial-gradient(circle,transparent 56%,#000 57%);
          mask:radial-gradient(circle,transparent 56%,#000 57%);}
@keyframes upSweep{to{transform:rotate(360deg);}}
.up-dial-wrap{display:flex;flex-direction:column;align-items:center;gap:20px;justify-self:center;}
/* Six nodes evenly spaced on the ring. Two animations: one entry, one that lights
   the node while the sweep is over it. The lit state must not touch `transform` —
   that's carrying the node's position on the ring. */
.up-dial-node{position:absolute;top:50%;left:50%;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;
  border-radius:50%;background:var(--paper);border:2px solid var(--ember);
  transform:rotate(calc(var(--n) * 60deg)) translateY(-130px);
  animation:upNode .45s cubic-bezier(.2,.9,.3,1.5) both,
            upNodeLit 7s linear infinite;
  animation-delay:calc(.3s + var(--n) * .12s), calc(var(--n) * 1.1667s);}
@keyframes upNode{from{opacity:0;}to{opacity:1;}}
@keyframes upNodeLit{
  0%{background:var(--paper);box-shadow:0 0 0 0 rgba(247,143,27,0);}
  2%,14.5%{background:var(--ember);box-shadow:0 0 0 5px rgba(247,143,27,.2);}
  17%,100%{background:var(--paper);box-shadow:0 0 0 0 rgba(247,143,27,0);}
}
/* Caption cross-fades through the stages in step with the sweep. */
.up-dial-cap{position:relative;width:260px;height:46px;}
.up-dial-cap span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;
  text-align:center;opacity:0;
  font-family:'Fraunces',serif;font-size:1.04rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);
  animation:upCap 7s linear infinite;animation-delay:calc(var(--n) * 1.1667s);}
.up-dial-cap b{flex:0 0 auto;font-size:.66rem;font-weight:500;color:var(--ember-deep);}
@keyframes upCap{
  0%{opacity:0;}
  2%,14.5%{opacity:1;}
  16.6%,100%{opacity:0;}
}
.up-dial-core{display:grid;place-items:center;width:118px;height:118px;border-radius:50%;
  background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);
  font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;
  box-shadow:0 20px 44px -22px rgba(21,17,12,.6);}
.up-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.up-step{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;padding:16px 20px;
  border-radius:13px;background:#fff;border:1px solid var(--line);
  animation:upStep .5s calc(.2s + var(--i) * .1s) cubic-bezier(.2,.8,.3,1) both;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s;}
@keyframes upStep{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:none;}}
.up-step:hover{transform:translateX(5px);border-color:var(--ember);}
.up-step-n{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;
  background:var(--paper-2);border:1px solid var(--line);font-size:.66rem;color:var(--ember-deep);
  transition:background .3s,color .3s,border-color .3s;}
.up-step:hover .up-step-n{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.up-step h3{font-family:'Fraunces',serif;font-size:1.06rem;font-weight:500;letter-spacing:-.01em;
  color:var(--ink);margin-bottom:5px;}
.up-step p{font-size:.9rem;line-height:1.56;color:var(--muted);}

/* --- S7: intake cards with an attention LED --- */
.up-intake{list-style:none;margin:0 auto;padding:0;max-width:940px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.up-intake-item{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;padding:24px 26px;
  border-radius:15px;background:var(--cream);border:1px dashed rgba(217,101,10,.4);
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s,box-shadow .3s;}
.up-intake-item:hover{transform:translateY(-4px);background:#fff;border-style:solid;border-color:var(--ember);
  box-shadow:0 22px 44px -30px rgba(21,17,12,.28);}
.up-intake-led{flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:var(--ember);
  animation:upLed 2.2s calc(var(--i) * .35s) ease-out infinite;}
@keyframes upLed{
  0%{box-shadow:0 0 0 0 rgba(247,143,27,.55);}
  70%{box-shadow:0 0 0 10px rgba(247,143,27,0);}
  100%{box-shadow:0 0 0 0 rgba(247,143,27,0);}
}
.up-intake-item p{font-size:1rem;line-height:1.62;color:var(--muted);transition:color .3s;}
.up-intake-item:hover p{color:var(--ink);}

/* --- S8: CTA --- */
.up-cta canvas.ai-net{opacity:.5;}
.up-cta .cta-inner{max-width:1040px;}
.up-cta .cta-inner h2{font-size:clamp(1.75rem,3.2vw,2.7rem);line-height:1.15;margin:0 0 22px;text-wrap:balance;}
.up-cta .cta-inner>p{max-width:76ch;margin:0 auto;font-size:1.04rem;line-height:1.75;}
.up-cta .cta-cta{margin-top:32px;}
.up-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .up-trace-spike,.up-ring-fill,.up-ring-ico,.up-shingle,
  .up-dial-sweep,.up-dial-node,.up-step,.up-intake-led,.up-dial-cap span{animation:none;}
  /* First stage stays captioned rather than the set cycling. */
  .up-dial-cap span{opacity:0;}
  .up-dial-cap span:first-child{opacity:1;}
  .up-trace-spike,.up-ring-fill{stroke-dashoffset:0;}
  .up-ring-ico,.up-shingle,.up-step,.up-dial-node{opacity:1;transform:none;}
  /* Nodes still need their placement transform, which the reset above clears. */
  .up-dial-node{transform:rotate(calc(var(--n) * 60deg)) translateY(-130px);}
  .up-dial-sweep{opacity:.4;}
}

@media(max-width:1080px){
  .up-services{grid-template-columns:repeat(2,1fr);}
  .up-cycle-grid{grid-template-columns:1fr;gap:38px;}
  .up-dial{width:220px;height:220px;}
  .up-dial-cap{width:min(100%,300px);}
  .up-dial-node{transform:rotate(calc(var(--n) * 60deg)) translateY(-110px);}
}
@media(max-width:820px){
  .up-rings{grid-template-columns:1fr;}
  .up-ring-item:last-child:nth-child(odd){grid-column:auto;}
  /* Trace column costs more than it gives once the row narrows. */
  .up-signal{grid-template-columns:1fr auto;gap:14px;padding:16px 18px;}
  .up-trace{display:none;}
  .up-intake{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .up-services{grid-template-columns:1fr;}
  .up-shingle{padding:20px 22px;gap:14px;margin-top:-10px;}
  .up-statement{font-size:1.04rem;}
  .up-signal-tag{display:none;}
}

/* ===== DYNAMICS 365 (Microsoft Business Applications / app launcher) ===== */
/* hero */
.dyn-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.dyn-hero-txt h1{margin-top:14px;}
.dyn-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.dyn-hero-fig{position:relative;z-index:2;padding:30px 30px 0;}
.dyn-waffle{position:absolute;top:-2px;right:-2px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:11px;border-radius:14px;background:rgba(21,17,12,.55);border:1px solid var(--line-d);backdrop-filter:blur(6px);z-index:3;}
.dyn-waffle i{width:8px;height:8px;border-radius:2.5px;background:var(--ember-hi);opacity:.85;animation:dynWaffle 3.2s ease-in-out infinite;}
.dyn-waffle i:nth-child(2){animation-delay:.15s;}.dyn-waffle i:nth-child(3){animation-delay:.3s;}
.dyn-waffle i:nth-child(4){animation-delay:.45s;}.dyn-waffle i:nth-child(5){animation-delay:.6s;}.dyn-waffle i:nth-child(6){animation-delay:.75s;}
.dyn-waffle i:nth-child(7){animation-delay:.9s;}.dyn-waffle i:nth-child(8){animation-delay:1.05s;}.dyn-waffle i:nth-child(9){animation-delay:1.2s;}
@keyframes dynWaffle{0%,100%{opacity:.3;transform:scale(.82);}45%{opacity:1;transform:scale(1);}}
@media(prefers-reduced-motion:reduce){.dyn-waffle i{animation:none;opacity:.7;}}
/* 4:3 gives the constellation the vertical room the 3:2 photo crop didn't need. */
.dyn-fig-frame{display:block;position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:4/3;}
.dyn-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(21,17,12,.45));pointer-events:none;}
.dyn-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.dyn-hero-fig:hover .dyn-fig-frame img{transform:scale(1.04);}
.dyn-fig-chip{position:absolute;left:46px;top:46px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.12em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;}
.dyn-fig-dot{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 8px rgba(255,174,69,.9);animation:pulse 1.8s infinite;}
/* Straddles the frame's bottom-right corner so it clears the console readout. */
.dyn-fig-stat{position:absolute;right:-4px;bottom:-20px;display:flex;align-items:center;gap:12px;background:var(--cream);color:var(--ink);border-radius:14px;padding:14px 18px;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);z-index:4;}
.dyn-fig-stat strong{font-family:'Fraunces',serif;font-size:2.2rem;font-weight:500;line-height:1;color:var(--ember-deep);}
.dyn-fig-stat span{font-size:.78rem;color:var(--muted);line-height:1.25;}

/* ---- hero console: a built Dynamics 365 visual in place of a photograph.
   Six business applications orbit the Dataverse + Copilot core, with signal
   running down each connector. `.dyn-fig-frame` already clips and carries the
   3:2 ratio, so the scene coordinates below stay stable at any width. ---- */
.dyn-hero-fig .dyn-fig-frame{background:linear-gradient(158deg,#1b130b,#241a10 48%,#14100b);}
.dyn-hero-fig .dyn-fig-frame::after{background:radial-gradient(115% 88% at 50% 42%,transparent 42%,rgba(0,0,0,.5));}
.dyn-console{position:absolute;inset:0;display:block;overflow:hidden;}
.dyn-con-grid{position:absolute;inset:0;opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.42) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.42) 1px,transparent 1px);
  background-size:42px 42px;animation:dynDrift 24s linear infinite;}
@keyframes dynDrift{to{background-position:42px 42px;}}
.dyn-con-scan{position:absolute;left:0;right:0;top:0;height:32%;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,174,69,0),rgba(255,174,69,.1) 60%,rgba(255,174,69,.26) 84%,rgba(255,255,255,.34) 93%,rgba(255,174,69,0));
  mix-blend-mode:screen;animation:dynScan 8s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes dynScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(320%);opacity:0;}}

.dyn-con-top{position:absolute;left:0;right:0;top:0;z-index:4;display:flex;align-items:center;gap:9px;
  padding:14px 68px 14px 20px;border-bottom:1px solid rgba(255,255,255,.09);background:rgba(0,0,0,.26);
  font-size:.54rem;letter-spacing:.16em;color:rgba(251,248,241,.66);}
.dyn-con-top b{margin-left:auto;font-weight:400;color:var(--ember-hi);letter-spacing:.14em;text-transform:uppercase;}

/* the constellation sits between the header and footer bars */
.dyn-scene{position:absolute;left:0;right:0;top:44px;bottom:50px;}
.dyn-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
/* Dashes march around the orbit rather than the ellipse rotating — the scene is
   scaled non-uniformly, so a rotating ellipse would visibly wobble. */
.dyn-orbit{stroke:rgba(255,255,255,.16);stroke-width:1;stroke-dasharray:3 7;animation:dynOrbit 2.6s linear infinite;}
@keyframes dynOrbit{to{stroke-dashoffset:-10;}}
.dyn-wire{stroke:rgba(255,255,255,.13);stroke-width:1;}
.dyn-flow{stroke:var(--ember-hi);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:7 100;stroke-dashoffset:107;
  filter:drop-shadow(0 0 3px rgba(255,174,69,.85));animation:dynFlow 3.4s cubic-bezier(.5,0,.5,1) infinite;animation-delay:calc(var(--f) * .45s);}
@keyframes dynFlow{0%{stroke-dashoffset:107;}62%,100%{stroke-dashoffset:0;}}

.dyn-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:98px;padding:10px 6px 9px;
  border-radius:13px;background:rgba(24,18,12,.82);border:1px solid rgba(255,255,255,.12);color:rgba(251,248,241,.62);
  backdrop-filter:blur(5px);animation:dynNode 6.8s ease-in-out infinite;animation-delay:calc(var(--d) * .62s);}
.dyn-node svg{width:19px;height:19px;display:block;}
.dyn-node b{font-weight:400;font-size:.47rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.25;text-align:center;}
@keyframes dynNode{0%,6%{border-color:rgba(255,255,255,.12);color:rgba(251,248,241,.62);box-shadow:none;transform:translate(-50%,-50%);}
  14%,26%{border-color:rgba(247,143,27,.65);color:var(--ember-hi);box-shadow:0 0 0 4px rgba(247,143,27,.09),0 16px 30px -16px rgba(247,143,27,.6);transform:translate(-50%,-50%) scale(1.06);}
  38%,100%{border-color:rgba(255,255,255,.12);color:rgba(251,248,241,.62);box-shadow:none;transform:translate(-50%,-50%);}}

.dyn-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:96px;height:96px;}
.dyn-core-ring{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:26px;
  border:1px solid rgba(247,143,27,.4);animation:dynCore 3.6s ease-out infinite;}
.dyn-core-ring.r2{animation-delay:1.8s;}
@keyframes dynCore{0%{transform:scale(1);opacity:.75;}100%{transform:scale(1.5);opacity:0;}}
.dyn-core-box{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  border-radius:26px;background:linear-gradient(152deg,rgba(247,143,27,.22),rgba(21,17,12,.94) 62%);
  border:1px solid rgba(247,143,27,.5);color:var(--ember-hi);box-shadow:0 22px 46px -20px rgba(247,143,27,.5);}
.dyn-core-box svg{width:26px;height:26px;display:block;}
.dyn-core-box b{font-weight:400;font-size:.46rem;letter-spacing:.17em;color:rgba(251,248,241,.72);}

.dyn-con-foot{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;align-items:center;gap:14px;
  padding:13px 20px;border-top:1px solid rgba(255,255,255,.09);background:rgba(0,0,0,.3);}
.dyn-fig-live-top{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;font-size:.52rem;letter-spacing:.14em;color:rgba(251,248,241,.58);}
.dyn-fig-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.dyn-fig-live-rot{position:relative;flex:1;height:17px;overflow:hidden;}
.dyn-fig-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.72rem;color:#fff;letter-spacing:.02em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:dynRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes dynRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

@media(prefers-reduced-motion:reduce){
  .dyn-con-grid,.dyn-orbit,.dyn-flow,.dyn-node,.dyn-core-ring{animation:none;}
  .dyn-con-scan,.dyn-core-ring{display:none;}
  .dyn-flow{stroke-dashoffset:0;stroke-dasharray:7 14;opacity:.6;}
  .dyn-fig-live-rot i{animation:none;opacity:0;transform:none;}
  .dyn-fig-live-rot i:first-child{opacity:1;}
}

/* ----- DYNAMICS 365 sections (.d3- : the agentic layer) -----
   Motif set unique to this page: an agent-run console, capability gap meters,
   a configuration switchboard, a radial module hub, a spec sheet and a
   descending staircase roadmap. */

/* --- S2: editorial lede beside a looping agent run --- */
.d3-lede{display:grid;grid-template-columns:1.06fr .94fr;gap:60px;align-items:center;}
.d3-lede-txt .eyebrow{margin-bottom:14px;}
.d3-lede-txt h2{font-size:clamp(1.8rem,3.4vw,2.7rem);margin-bottom:24px;}
.d3-lede-txt p{font-size:1.02rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.d3-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.d3-lede-btn{margin-top:10px;}

.d3-agent{position:relative;background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;padding-bottom:26px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.d3-agent-bar{display:flex;align-items:center;gap:10px;padding:15px 22px;border-bottom:1px solid var(--line-d);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.58);background:rgba(0,0,0,.2);}
.d3-agent-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.d3-agent-ver{margin-left:auto;color:var(--ember-hi);letter-spacing:.14em;}
.d3-agent-steps{list-style:none;margin:0;padding:22px 22px 4px;display:flex;flex-direction:column;gap:11px;}
.d3-agent-steps li{display:flex;align-items:center;gap:15px;padding:14px 16px;border-radius:13px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);animation:d3Step 6.6s ease-in-out infinite;animation-delay:calc(var(--s) * 1.1s);}
@keyframes d3Step{0%,5%{opacity:.34;border-color:rgba(255,255,255,.07);transform:none;}12%,32%{opacity:1;border-color:rgba(247,143,27,.5);transform:translateX(6px);}44%,100%{opacity:.4;border-color:rgba(255,255,255,.07);transform:none;}}
.d3-agent-key{flex:0 0 auto;min-width:70px;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-hi);}
.d3-agent-val{font-size:.92rem;color:rgba(251,248,241,.88);}
.d3-agent-mods{display:flex;flex-wrap:wrap;gap:7px;padding:18px 22px 0;}
.d3-agent-mod{font-size:.58rem;letter-spacing:.09em;padding:6px 12px;border-radius:100px;border:1px solid rgba(255,255,255,.13);color:rgba(251,248,241,.58);animation:d3Mod 11s ease-in-out infinite;animation-delay:calc(var(--m) * 2.2s);}
@keyframes d3Mod{0%,4%{background:transparent;color:rgba(251,248,241,.58);border-color:rgba(255,255,255,.13);}9%,17%{background:rgba(247,143,27,.18);color:#fff;border-color:rgba(247,143,27,.62);}24%,100%{background:transparent;color:rgba(251,248,241,.58);border-color:rgba(255,255,255,.13);}}
.d3-agent-wire{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.08);overflow:hidden;}
.d3-agent-pulse{position:absolute;top:0;left:-32%;width:32%;height:100%;background:linear-gradient(90deg,transparent,var(--ember-hi),transparent);animation:d3Wire 3.2s linear infinite;}
@keyframes d3Wire{to{left:100%;}}

/* the three documented compressions, before and after the agentic layer */
.d3-recl{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:66px;}
.d3-recl-card{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:24px 24px 26px;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.d3-recl-card:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.d3-recl-tag{display:block;font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:18px;}
.d3-recl-bars{display:flex;flex-direction:column;gap:11px;margin-bottom:18px;}
.d3-recl-bar{display:flex;align-items:center;gap:13px;}
.d3-recl-bar i{flex:0 0 auto;display:block;width:132px;height:8px;border-radius:100px;transform-origin:left;}
.d3-recl-bar.was i{background:rgba(21,17,12,.15);}
.d3-recl-bar.now i{background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));animation:d3Now 5.4s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes d3Now{0%{transform:scaleX(0);}16%,74%{transform:scaleX(.3);}92%,100%{transform:scaleX(0);}}
.d3-recl-bar b{font-size:.64rem;font-weight:400;letter-spacing:.05em;white-space:nowrap;}
.d3-recl-bar.was b{color:var(--muted-d);text-decoration:line-through;text-decoration-color:rgba(107,94,76,.4);}
.d3-recl-bar.now b{color:var(--ember-deep);}
.d3-recl-card p{font-size:.92rem;color:var(--muted);line-height:1.62;}

/* --- S3: the distance between configured and capable --- */
.d3-gapsec .sec-head{max-width:860px;}
.d3-gaps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.d3-gap{display:grid;grid-template-columns:184px 1fr 214px;gap:28px;align-items:center;padding:26px 6px;border-bottom:1px solid var(--line);transition:background .3s;}
.d3-gap:hover{background:rgba(255,255,255,.55);}
.d3-gap-tag{font-size:.61rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);line-height:1.6;}
.d3-gap p{font-size:1rem;color:var(--muted);line-height:1.68;}
.d3-gap-meter{display:flex;align-items:flex-start;gap:9px;}
.d3-gap-end{display:flex;flex-direction:column;align-items:center;gap:7px;flex:0 0 auto;}
.d3-gap-end i{width:11px;height:11px;border-radius:50%;background:var(--muted-d);}
.d3-gap-end.cap i{background:linear-gradient(150deg,var(--ember),var(--ember-deep));animation:d3Cap 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .22s);}
@keyframes d3Cap{0%,100%{box-shadow:0 0 0 3px rgba(247,143,27,.16);}50%{box-shadow:0 0 0 9px rgba(247,143,27,.04);}}
.d3-gap-end b{font-size:.54rem;font-weight:400;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);}
.d3-gap-span{flex:1;height:2px;margin-top:5px;background-image:linear-gradient(90deg,var(--muted-d) 46%,transparent 46%);background-size:9px 2px;background-repeat:repeat-x;opacity:.7;animation:d3Dash 1.5s linear infinite;}
@keyframes d3Dash{to{background-position-x:9px;}}

.d3-honest{position:relative;margin-top:44px;max-width:940px;background:linear-gradient(160deg,var(--ink),var(--ink-2));color:rgba(251,248,241,.84);border-radius:20px;padding:34px 38px 36px;overflow:hidden;box-shadow:0 40px 78px -44px rgba(21,17,12,.55);}
.d3-honest::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--ember-hi),var(--rust));}
.d3-honest-tag{display:inline-block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:14px;}
.d3-honest p{font-size:1.02rem;line-height:1.82;}
.d3-honest strong{color:#fff;font-weight:600;}

/* --- S4: configuration switchboard (dark) --- */
.d3-boardsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.d3-boardsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.d3-boardsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.d3-boardsec .wrap{position:relative;z-index:2;}
.d3-boardsec .sec-head{max-width:900px;}
.d3-boardsec .sec-head h2 em{color:var(--ember-hi);}
.d3-board{border:1px solid var(--line-d);border-radius:22px;background:rgba(255,255,255,.03);overflow:hidden;}
.d3-board-head{display:flex;align-items:center;gap:10px;padding:15px 26px;border-bottom:1px solid var(--line-d);font-size:.61rem;letter-spacing:.19em;text-transform:uppercase;color:rgba(251,248,241,.55);background:rgba(0,0,0,.2);}
.d3-board-dot{width:7px;height:7px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.9);animation:pulse 1.8s infinite;}
.d3-board-count{margin-left:auto;color:var(--ember-hi);}
.d3-switches{list-style:none;margin:0;padding:0;}
.d3-sw{display:grid;grid-template-columns:60px 1fr 40px;gap:24px;align-items:center;padding:23px 26px;border-bottom:1px solid rgba(255,255,255,.07);transition:background .3s;}
.d3-sw:last-child{border-bottom:none;}
.d3-sw:hover{background:rgba(255,255,255,.04);}
.d3-sw-toggle{position:relative;width:58px;height:30px;border-radius:100px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.15);}
.d3-sw-toggle i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:rgba(251,248,241,.45);}
.d3-board.in .d3-sw-toggle{animation:d3Track .55s ease forwards;animation-delay:calc(var(--i) * .16s + .25s);}
.d3-board.in .d3-sw-toggle i{animation:d3Knob .55s cubic-bezier(.34,1.42,.5,1) forwards;animation-delay:calc(var(--i) * .16s + .25s);}
@keyframes d3Track{to{background:linear-gradient(90deg,var(--ember-deep),var(--ember));border-color:transparent;}}
@keyframes d3Knob{to{left:31px;background:#fff;}}
.d3-sw-label{display:block;font-size:.61rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:8px;}
.d3-sw p{font-size:.98rem;color:rgba(251,248,241,.76);line-height:1.66;}
.d3-sw-state{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,248,241,.28);text-align:right;}
.d3-board.in .d3-sw-state{animation:d3On .4s ease forwards;animation-delay:calc(var(--i) * .16s + .55s);}
@keyframes d3On{to{color:var(--ember-hi);}}

/* --- S5: radial module hub --- */
.d3-hubsec .sec-head{max-width:920px;margin-inline:auto;}
.d3-hub{position:relative;width:100%;max-width:760px;margin:12px auto 0;aspect-ratio:1;--r:298px;--ns:100px;}
.d3-hub-stage{position:absolute;inset:0;pointer-events:none;}
.d3-hub-ring{position:absolute;left:50%;top:50%;width:596px;height:596px;border-radius:50%;border:1px solid var(--line);transform:translate(-50%,-50%);}
.d3-hub-ring.r2{width:432px;height:432px;border-style:dashed;border-color:rgba(21,17,12,.13);animation:d3Spin 48s linear infinite;}
.d3-hub-ring.r3{width:356px;height:356px;border-color:rgba(247,143,27,.26);}
@keyframes d3Spin{to{transform:translate(-50%,-50%) rotate(360deg);}}
.d3-hub-sweep{position:absolute;left:50%;top:50%;width:596px;height:596px;border-radius:50%;transform:translate(-50%,-50%);
  background:conic-gradient(from 0deg,rgba(247,143,27,.5),rgba(247,143,27,0) 26%);
  -webkit-mask:radial-gradient(circle,transparent 88%,#000 89%);mask:radial-gradient(circle,transparent 88%,#000 89%);
  animation:d3Sweep 9s linear infinite;}
@keyframes d3Sweep{to{transform:translate(-50%,-50%) rotate(360deg);}}
.d3-hub-core{position:absolute;left:50%;top:calc(50% + 178px);transform:translate(-50%,-50%);display:inline-block;white-space:nowrap;
  padding:8px 17px;border-radius:100px;background:var(--paper);border:1px solid rgba(247,143,27,.3);
  font-size:.53rem;letter-spacing:.19em;color:var(--muted);}
.d3-hub-core b{color:var(--ember-deep);font-weight:500;}

/* `.d3-svc` stays unpositioned so the node and panel resolve against `.d3-hub`. */
.d3-svc{position:static;}
.d3-node{position:absolute;left:50%;top:50%;width:var(--ns);height:var(--ns);margin:calc(var(--ns) / -2) 0 0 calc(var(--ns) / -2);
  transform:rotate(var(--a)) translateY(calc(var(--r) * -1)) rotate(calc(var(--a) * -1));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:8px;text-align:center;
  border-radius:50%;background:var(--cream);border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;z-index:3;
  transition:background .4s,border-color .4s,color .4s,box-shadow .4s;}
.d3-node-ico{display:inline-flex;align-items:center;justify-content:center;}
.d3-node-ico svg{width:23px;height:23px;display:block;}
.d3-node-lbl{font-size:.49rem;letter-spacing:.09em;text-transform:uppercase;line-height:1.28;}
.d3-node:hover{border-color:var(--ember);color:var(--ember-deep);box-shadow:0 18px 34px -20px rgba(21,17,12,.4);}
.d3-node:focus-visible{outline:2px solid var(--ember);outline-offset:3px;}
.d3-svc.is-on .d3-node{background:linear-gradient(150deg,var(--ink),var(--ink-2));border-color:transparent;color:var(--ember-hi);box-shadow:0 24px 46px -20px rgba(21,17,12,.58);}
.d3-svc.is-on .d3-node::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(247,143,27,.5);animation:d3Ping 2.4s ease-out infinite;}
@keyframes d3Ping{0%{transform:scale(.94);opacity:.85;}100%{transform:scale(1.16);opacity:0;}}
.d3-pane{position:absolute;left:50%;top:50%;width:346px;transform:translate(-50%,-50%) scale(.94);
  background:var(--cream);border:1px solid var(--line);border-radius:26px;padding:28px 28px 30px;text-align:center;
  opacity:0;visibility:hidden;pointer-events:none;z-index:2;box-shadow:0 42px 84px -48px rgba(21,17,12,.42);
  transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1);}
.d3-svc.is-on .d3-pane{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);pointer-events:auto;}
.d3-pane-n{display:block;font-size:.6rem;letter-spacing:.2em;color:var(--ember-deep);margin-bottom:13px;}
.d3-pane-n span{color:var(--muted-d);}
.d3-pane h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.3;margin-bottom:11px;}
.d3-pane p{font-size:.87rem;color:var(--muted);line-height:1.64;}

/* --- S6: reasons as a spec sheet, each with its own assembling quadrant --- */
.d3-whysec .sec-head{max-width:860px;}
.d3-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.d3-reason{position:relative;display:grid;grid-template-columns:auto 44px 1fr;gap:22px;align-items:center;padding:27px 6px;border-bottom:1px solid var(--line);transition:padding-left .35s;}
.d3-reason:hover{padding-left:18px;}
.d3-reason-n{font-size:.86rem;letter-spacing:.12em;color:var(--muted-d);transition:color .35s;}
.d3-reason:hover .d3-reason-n{color:var(--ember-deep);}
.d3-reason p{font-size:1.05rem;color:var(--ink);line-height:1.66;}
.d3-quad{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:26px;height:26px;flex:0 0 auto;}
.d3-quad i{border-radius:3px;background:rgba(21,17,12,.14);animation:d3Quad 3.6s ease-in-out infinite;}
.d3-quad i:nth-child(1){animation-delay:calc(var(--i) * .2s);}
.d3-quad i:nth-child(2){animation-delay:calc(var(--i) * .2s + .18s);}
.d3-quad i:nth-child(3){animation-delay:calc(var(--i) * .2s + .54s);}
.d3-quad i:nth-child(4){animation-delay:calc(var(--i) * .2s + .36s);}
@keyframes d3Quad{0%,100%{background:rgba(21,17,12,.14);}38%,54%{background:var(--ember);}}
.d3-reason-rule{position:absolute;left:0;bottom:-1px;height:1px;width:0;background:linear-gradient(90deg,var(--ember),transparent);transition:width .55s cubic-bezier(.2,.7,.2,1);}
.d3-reason:hover .d3-reason-rule{width:100%;}

/* --- S7: descending staircase roadmap (dark) --- */
.d3-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.d3-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.d3-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.d3-procsec .wrap{position:relative;z-index:2;}
.d3-procsec .sec-head{max-width:840px;}
.d3-procsec .sec-head h2 em{color:var(--ember-hi);}
.d3-procsec .sec-head p{color:rgba(251,248,241,.74);}
.d3-stairs{list-style:none;margin:0;padding:0;}
.d3-stair{position:relative;margin-left:calc(var(--i) * 58px);width:min(760px,calc(100% - var(--i) * 58px));margin-bottom:30px;
  display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;
  background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:23px 26px 25px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.d3-stair:hover{background:rgba(255,255,255,.065);border-color:rgba(247,143,27,.45);transform:translateX(7px);}
.d3-stair:last-child{margin-bottom:0;}
.d3-stair-n{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:32px;border-radius:9px;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-size:.74rem;font-weight:600;letter-spacing:.04em;
  box-shadow:0 12px 24px -12px rgba(247,143,27,.75);}
.d3-stair h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.d3-stair p{font-size:.95rem;color:rgba(251,248,241,.74);line-height:1.64;}
.d3-stair-riser{position:absolute;left:0;top:100%;width:58px;height:30px;border-left:2px solid rgba(247,143,27,.34);border-bottom:2px solid rgba(247,143,27,.34);border-bottom-left-radius:12px;}
.d3-stair-drop{position:absolute;left:-4px;top:-1px;width:6px;height:6px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:d3Drop 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * .45s);}
@keyframes d3Drop{0%{transform:translateY(0);opacity:0;}12%{opacity:1;}50%{transform:translateY(23px);opacity:1;}68%,100%{transform:translateY(23px);opacity:0;}}

/* --- S8: who this is for --- */
.d3-who{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.d3-fit{position:relative;overflow:hidden;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:30px 30px 32px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.d3-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -34px rgba(21,17,12,.32);}
.d3-fit .d3-quad.lg{width:34px;height:34px;gap:4px;margin-bottom:20px;}
.d3-fit p{position:relative;z-index:2;font-size:1.02rem;color:var(--ink);line-height:1.68;}
.d3-fit-sweep{position:absolute;right:-70px;top:-70px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.2),transparent 70%);opacity:0;transition:opacity .45s;}
.d3-fit:hover .d3-fit-sweep{opacity:1;}

/* --- S9/S10: CTA + FAQ --- */
.d3-cta canvas.ai-net{opacity:.5;}
.d3-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.d3-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .d3-agent-steps li,.d3-agent-mod,.d3-agent-pulse,.d3-recl-bar.now i,.d3-gap-end.cap i,.d3-gap-span,
  .d3-hub-ring.r2,.d3-hub-sweep,.d3-svc.is-on .d3-node::after,.d3-quad i,.d3-stair-drop{animation:none;}
  .d3-agent-steps li{opacity:1;}
  .d3-recl-bar.now i{transform:scaleX(.3);}
  .d3-hub-sweep,.d3-stair-drop{display:none;}
  .d3-quad i:nth-child(1),.d3-quad i:nth-child(4){background:var(--ember);}
  .d3-board.in .d3-sw-toggle,.d3-board.in .d3-sw-toggle i,.d3-board.in .d3-sw-state{animation-duration:.01s;}
}

@media(max-width:1180px){
  .d3-hub{max-width:660px;--r:258px;--ns:92px;}
  .d3-hub-ring{width:516px;height:516px;}
  .d3-hub-ring.r2{width:392px;height:392px;}
  .d3-hub-ring.r3{width:326px;height:326px;}
  .d3-hub-sweep{width:516px;height:516px;}
  .d3-hub-core{top:calc(50% + 163px);}
  .d3-pane{width:314px;padding:24px 24px 26px;}
  .d3-pane p{font-size:.84rem;}
}
@media(max-width:980px){
  .dyn-hero-grid{grid-template-columns:1fr;gap:40px;}
  .dyn-hero-fig{order:-1;max-width:560px;}
  .d3-lede{grid-template-columns:1fr;gap:42px;}
  .d3-gap{grid-template-columns:170px 1fr;gap:10px 24px;}
  .d3-gap-meter{grid-column:2;max-width:214px;}
  /* Stacked: every panel is laid out in full and the rotation switches off. */
  .d3-hub{aspect-ratio:auto;max-width:none;margin-top:0;display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .d3-hub-stage{display:none;}
  .d3-svc{position:relative;display:block;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:24px;}
  .d3-node{position:static;transform:none;margin:0 0 15px;width:auto;height:auto;flex-direction:row;justify-content:flex-start;gap:12px;
    padding:0;border:none;background:none;border-radius:0;box-shadow:none;cursor:default;color:var(--ember-deep);}
  .d3-svc.is-on .d3-node{background:none;color:var(--ember-deep);box-shadow:none;}
  .d3-svc.is-on .d3-node::after{display:none;}
  .d3-node-ico{width:42px;height:42px;border-radius:12px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);}
  .d3-node-lbl{font-size:.6rem;letter-spacing:.14em;}
  .d3-pane{position:static;width:auto;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    background:none;border:none;border-radius:0;box-shadow:none;padding:0;text-align:left;}
  /* Beats `.d3-svc.is-on .d3-pane`, which otherwise keeps centring the panel. */
  .d3-svc.is-on .d3-pane{transform:none;}
  .d3-pane p{font-size:.92rem;}
  .d3-stair{margin-left:calc(var(--i) * 30px);width:calc(100% - var(--i) * 30px);}
  .d3-stair-riser{width:30px;}
}
@media(max-width:760px){
  .d3-recl{grid-template-columns:1fr;}
  .d3-gap{grid-template-columns:1fr;padding:22px 4px;}
  .d3-gap-meter{grid-column:1;}
  .d3-honest{padding:28px 24px 30px;}
  .d3-sw{grid-template-columns:60px 1fr;gap:8px 18px;padding:20px 22px;}
  .d3-sw-state{grid-column:2;text-align:left;}
  .d3-hub{grid-template-columns:1fr;}
  .d3-who{grid-template-columns:1fr;}
  .d3-stair{margin-left:0;width:100%;grid-template-columns:1fr;gap:14px;}
  .d3-stair-riser{left:24px;width:2px;border-bottom:none;border-bottom-left-radius:0;}
  .d3-reason{grid-template-columns:auto 40px 1fr;gap:16px;}
  /* The console tightens rather than reflows — the scene stays proportional. */
  .dyn-node{width:82px;padding:8px 5px 7px;gap:4px;}
  .dyn-node svg{width:16px;height:16px;}
  .dyn-node b{font-size:.42rem;letter-spacing:.07em;}
  .dyn-core,.dyn-core-ring{width:78px;height:78px;}
  .dyn-core-ring{margin:-39px 0 0 -39px;border-radius:22px;}
  .dyn-core-box{border-radius:22px;}
  .dyn-core-box svg{width:22px;height:22px;}
}
@media(max-width:600px){
  .dyn-fig-stat{right:0;bottom:8px;}
  .dyn-hero-fig{padding:26px 16px 0;}
  .dyn-node{width:70px;}
  .dyn-node b{font-size:.38rem;}
  .dyn-con-top b{display:none;}
  .dyn-con-foot{padding:11px 14px;gap:10px;}
}

/* ===== POWER PLATFORM (low-code / no-code builder) ===== */
/* hero */
.pp-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.pp-hero-txt h1{margin-top:14px;}
.pp-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.pp-hero-fig{position:relative;z-index:2;}
.pp-fig-frame{display:block;position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:3/2;transform:perspective(1200px) rotateY(-5deg);transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.pp-hero-fig:hover .pp-fig-frame{transform:perspective(1200px) rotateY(0deg);}
.pp-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(247,143,27,.08),transparent 55%);pointer-events:none;}
.pp-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.pp-fig-badge{position:absolute;left:-14px;top:24px;display:inline-flex;align-items:center;gap:9px;background:var(--cream);color:var(--ink);border-radius:100px;padding:9px 16px;font-size:.82rem;box-shadow:0 22px 44px -22px rgba(0,0,0,.6);z-index:3;}
.pp-fig-badge strong{color:var(--ember-deep);}
.pp-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 4px rgba(247,143,27,.18);animation:pulse 1.8s infinite;}
.pp-fig-bars{position:absolute;right:-12px;bottom:26px;display:flex;align-items:flex-end;gap:7px;height:62px;padding:12px;border-radius:14px;background:rgba(21,17,12,.62);border:1px solid var(--line-d);backdrop-filter:blur(6px);z-index:3;}
.pp-fig-bars i{width:11px;border-radius:4px 4px 2px 2px;animation:ppBar 2.6s ease-in-out infinite;}
.pp-fig-bars .b-apps{height:60%;background:#b14fb1;}
.pp-fig-bars .b-auto{height:90%;background:#3a7bff;animation-delay:.3s;}
.pp-fig-bars .b-bi{height:44%;background:#f2b705;animation-delay:.6s;}
@keyframes ppBar{0%,100%{transform:scaleY(.7);opacity:.7;}50%{transform:scaleY(1);opacity:1;}}
.pp-fig-bars i{transform-origin:bottom;}

/* hero figure — a live maker session running over the same photograph.
   The frame already clips, so the sweep and grid stay inside the image. */
.pp-fig-grid{position:absolute;inset:0;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);
  background-size:44px 44px;animation:ppDrift 26s linear infinite;}
@keyframes ppDrift{to{background-position:44px 44px;}}
.pp-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:ppScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes ppScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
.pp-fig-live{position:absolute;left:20px;bottom:20px;z-index:3;display:flex;flex-direction:column;gap:7px;align-items:flex-start;
  background:rgba(21,17,12,.7);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:12px;padding:11px 15px 12px;min-width:184px;
  box-shadow:0 20px 40px -24px rgba(0,0,0,.75);}
.pp-live-top{display:inline-flex;align-items:center;gap:8px;font-size:.51rem;letter-spacing:.15em;color:rgba(251,248,241,.6);}
.pp-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.pp-live-rot{position:relative;display:block;width:100%;height:19px;overflow:hidden;}
.pp-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.8rem;color:#fff;letter-spacing:.01em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:ppRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes ppRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}
.pp-fig-badge{animation:ppFloat 6s ease-in-out infinite;}
@keyframes ppFloat{0%,100%{transform:translateY(-4px);}50%{transform:translateY(4px);}}

@media(prefers-reduced-motion:reduce){
  .pp-fig-bars i,.pp-fig-grid,.pp-fig-badge{animation:none;}
  .pp-fig-scan{display:none;}
  .pp-fig-badge{transform:none;}
  .pp-live-rot i{animation:none;opacity:0;transform:none;}
  .pp-live-rot i:first-child{opacity:1;}
}

/* ----- POWER PLATFORM sections (.px- : tenant & governance) -----
   Motif set unique to this page: a tenant inventory filling with environments,
   unowned resources drifting out of alignment, governance brackets closing
   around each commitment, a service-inventory console, a filling spine and a
   gated delivery pipeline. */

/* --- S2: the lede beside a tenant filling up with environments --- */
.px-lede-top{max-width:980px;margin-bottom:58px;}
.px-lede-top .eyebrow{margin-bottom:14px;}
.px-lede-top h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin-bottom:20px;}
.px-lede-sub{font-size:1.15rem;color:var(--muted);line-height:1.72;}
.px-lede-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center;}
.px-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.px-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.px-lede-btn{margin-top:10px;}

.px-sprawl{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.px-sp-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.px-sp-led{width:7px;height:7px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.9);animation:pulse 1.8s infinite;}
.px-sp-bar b{margin-left:auto;font-weight:400;letter-spacing:.15em;color:var(--ember-hi);}
/* 96 cells arriving in a wave — the sprawl the copy opens on. */
.px-sp-grid{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:6px;padding:22px 20px;overflow:hidden;}
.px-sp-grid i{aspect-ratio:1;border-radius:3px;background:rgba(255,255,255,.5);opacity:.06;animation:pxCell 9s ease-in-out infinite;animation-delay:calc(var(--c) * 42ms);}
@keyframes pxCell{0%{opacity:.05;transform:scale(.45);}6%{opacity:1;transform:scale(1);}18%,86%{opacity:.3;transform:scale(1);}100%{opacity:.05;transform:scale(.45);}}
.px-sp-grid i.g{background:var(--ember-hi);}
.px-sp-grid i.o{background:transparent;border:1px dashed rgba(255,122,80,.85);}
.px-sp-scan{position:absolute;left:0;right:0;top:0;height:34px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(247,143,27,.14),rgba(255,174,69,.42),transparent);
  animation:pxSweep 6s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes pxSweep{0%{transform:translateY(-120%);opacity:0;}12%{opacity:1;}86%{opacity:1;}100%{transform:translateY(820%);opacity:0;}}
.px-sp-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.16);}
.px-sp-stat{display:flex;flex-direction:column;gap:3px;}
.px-sp-stat b{font-size:.84rem;font-weight:400;letter-spacing:.03em;color:rgba(251,248,241,.5);}
.px-sp-stat span{font-family:'JetBrains Mono',monospace;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d);}
.px-sp-stat.now b{color:var(--ember-hi);}
.px-sp-arr{color:var(--ember);font-size:1.05rem;}
.px-sp-key{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(251,248,241,.42);}
.px-sp-key i{width:9px;height:9px;border-radius:2px;display:inline-block;}
.px-sp-key i.k-g{background:var(--ember-hi);}
.px-sp-key i.k-o{background:transparent;border:1px dashed rgba(255,122,80,.85);margin-left:6px;}

/* --- S3: resources drifting out of alignment until something owns them --- */
.px-wrongsec .sec-head{max-width:920px;}
.px-drifts{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.px-drift{grid-column:span 2;position:relative;background:var(--cream);border:1.5px dashed rgba(21,17,12,.22);border-radius:18px;padding:24px 24px 22px;
  animation:pxDrift 9s ease-in-out infinite;animation-delay:calc(var(--i) * -1.4s);
  transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .4s,background .4s,box-shadow .4s;}
.px-drift:nth-child(4),.px-drift:nth-child(5){grid-column:span 3;}
.px-drift:nth-child(1){--r1:-1.2deg;--r2:.6deg;}
.px-drift:nth-child(2){--r1:.9deg;--r2:-.8deg;}
.px-drift:nth-child(3){--r1:-.7deg;--r2:1.1deg;}
.px-drift:nth-child(4){--r1:.6deg;--r2:-1deg;}
.px-drift:nth-child(5){--r1:-1deg;--r2:.7deg;}
@keyframes pxDrift{0%,100%{transform:rotate(var(--r1)) translateY(-3px);}50%{transform:rotate(var(--r2)) translateY(3px);}}
/* Dropping the animation lets the declared transform take over, so the card
   snaps square — the visual equivalent of somebody taking ownership. */
.px-drift:hover{animation:none;transform:rotate(0) translateY(-5px);border-style:solid;border-color:var(--ember);background:#fff;box-shadow:0 30px 56px -30px rgba(21,17,12,.32);}
.px-drift-tag{display:inline-flex;align-items:center;gap:8px;font-size:.57rem;letter-spacing:.18em;color:var(--rust);margin-bottom:14px;transition:color .35s;}
.px-drift:hover .px-drift-tag{color:var(--ember-deep);}
.px-drift-dot{width:7px;height:7px;border-radius:50%;background:var(--rust);animation:pulse 2.2s infinite;transition:background .35s;}
.px-drift:hover .px-drift-dot{background:#4ed492;}
.px-drift p{font-size:.99rem;color:var(--muted);line-height:1.66;}
.px-drift-owner{display:block;margin-top:16px;padding-top:14px;border-top:1px dashed rgba(21,17,12,.16);font-size:.53rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted-d);}
.px-verdict{margin-top:46px;max-width:960px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.px-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: brackets closing around each commitment (dark) --- */
.px-govsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.px-govsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.px-govsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.px-govsec .wrap{position:relative;z-index:2;}
.px-govsec .sec-head{max-width:920px;}
.px-govsec .sec-head h2 em{color:var(--ember-hi);}
.px-brs{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.px-br{position:relative;grid-column:span 2;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:28px 26px 26px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.px-br:nth-child(1),.px-br:nth-child(2){grid-column:span 3;}
.px-br:hover{background:rgba(255,255,255,.065);border-color:rgba(247,143,27,.38);transform:translateY(-5px);}
.px-br-c{position:absolute;width:26px;height:26px;border-color:var(--ember-hi);border-style:solid;border-width:0;opacity:0;}
.px-br-c.tl{left:-1px;top:-1px;border-top-width:2px;border-left-width:2px;border-top-left-radius:16px;}
.px-br-c.br{right:-1px;bottom:-1px;border-bottom-width:2px;border-right-width:2px;border-bottom-right-radius:16px;}
.px-brs.in .px-br-c.tl{animation:pxBrA .6s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * .14s + .2s);}
.px-brs.in .px-br-c.br{animation:pxBrB .6s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * .14s + .34s);}
@keyframes pxBrA{from{opacity:0;transform:translate(-10px,-10px);}to{opacity:1;transform:none;}}
@keyframes pxBrB{from{opacity:0;transform:translate(10px,10px);}to{opacity:1;transform:none;}}
.px-br-label{display:block;font-size:.6rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:12px;}
.px-br p{font-size:.98rem;color:rgba(251,248,241,.76);line-height:1.68;}

/* --- S5: the services read as one governed service inventory --- */
.px-svcsec .sec-head{max-width:940px;}
.px-console{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 42px 82px -48px rgba(21,17,12,.34);}
.px-con-top{display:flex;align-items:center;gap:12px;padding:14px 22px;background:var(--paper-2);border-bottom:1px solid var(--line);}
.px-con-dots{display:inline-flex;gap:6px;}
.px-con-dots i{width:10px;height:10px;border-radius:50%;background:rgba(21,17,12,.15);}
.px-con-dots i:first-child{background:var(--ember);}
.px-con-title{font-size:.59rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.px-con-count{margin-left:auto;font-size:.59rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);}
.px-con-head{display:grid;grid-template-columns:126px 262px 1fr;gap:24px;padding:12px 24px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.55);font-size:.53rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-d);}
.px-rows{list-style:none;margin:0;padding:0;}
.px-row{position:relative;display:grid;grid-template-columns:126px 262px 1fr;gap:24px;align-items:start;padding:24px;border-bottom:1px solid var(--line);transition:background .32s;}
.px-row:last-child{border-bottom:none;}
.px-row:hover{background:#fff;}
.px-row-type{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.px-row-ico{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .35s,color .35s,transform .35s;}
.px-row-ico::after{content:"";position:absolute;inset:0;border-radius:12px;box-shadow:0 0 0 0 rgba(247,143,27,.45);animation:pxIco 8s ease-in-out infinite;animation-delay:calc(var(--i) * 1s);}
@keyframes pxIco{0%,4%{box-shadow:0 0 0 0 rgba(247,143,27,.45);}12%{box-shadow:0 0 0 9px rgba(247,143,27,0);}100%{box-shadow:0 0 0 0 rgba(247,143,27,0);}}
.px-row:hover .px-row-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.px-row-ico svg{width:21px;height:21px;}
.px-row-type b{font-weight:400;font-size:.55rem;letter-spacing:.17em;color:var(--muted);}
.px-row h3{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.34;transition:color .3s;}
.px-row:hover h3{color:var(--ember-deep);}
.px-row-body p{font-size:.96rem;color:var(--muted);line-height:1.68;}
.px-row-note{margin-top:13px;padding:12px 15px;border-radius:10px;background:var(--paper-2);border-left:2px solid var(--ember);font-size:.9rem;}
.px-row-note .mono{display:block;font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:5px;}
.px-row-led{position:absolute;left:0;top:24px;width:3px;height:0;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--ember),var(--ember-hi));transition:height .45s cubic-bezier(.2,.7,.2,1);}
.px-row:hover .px-row-led{height:calc(100% - 48px);}
.px-con-scan{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(21,17,12,.07);overflow:hidden;}
.px-con-scan::after{content:"";position:absolute;top:0;left:-30%;width:30%;height:100%;background:linear-gradient(90deg,transparent,var(--ember),transparent);animation:pxWire 3.4s linear infinite;}
@keyframes pxWire{to{left:100%;}}

/* --- S6: reasons on a spine that fills as the section lands --- */
.px-whysec .sec-head{max-width:880px;}
.px-why{position:relative;padding-left:46px;}
.px-why-spine{position:absolute;left:13px;top:18px;bottom:18px;width:2px;border-radius:2px;background:rgba(21,17,12,.12);overflow:hidden;}
.px-why-spine i{position:absolute;left:0;top:0;width:100%;height:0;background:linear-gradient(180deg,var(--ember),var(--ember-hi));transition:height 1.8s cubic-bezier(.3,.8,.3,1) .25s;}
.px-why.in .px-why-spine i{height:100%;}
.px-why-list{list-style:none;margin:0;padding:0;}
.px-why-row{position:relative;display:grid;grid-template-columns:52px 1fr;gap:20px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);}
.px-why-row:last-child{border-bottom:none;}
.px-why-node{position:absolute;left:-38px;top:31px;width:12px;height:12px;border-radius:50%;background:var(--paper-2);border:2px solid rgba(21,17,12,.18);
  transition:background .45s,border-color .45s,box-shadow .45s;transition-delay:calc(var(--i) * .3s + .35s);}
.px-why.in .px-why-node{background:var(--ember);border-color:var(--ember);box-shadow:0 0 0 5px rgba(247,143,27,.14);}
.px-why-n{font-size:.85rem;letter-spacing:.12em;color:var(--muted-d);}
.px-why-row p{font-size:1.05rem;color:var(--ink);line-height:1.7;}

/* --- S7: a gated delivery pipeline (dark) --- */
.px-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.px-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.px-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.px-procsec .wrap{position:relative;z-index:2;}
.px-procsec .sec-head{max-width:860px;}
.px-procsec .sec-head h2 em{color:var(--ember-hi);}
.px-procsec .sec-head p{color:rgba(251,248,241,.74);}
.px-pipe-wrap{position:relative;}
.px-pipe-rail{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;overflow:hidden;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.32) 7%,rgba(247,143,27,.32) 93%,rgba(247,143,27,0));}
.px-pipe-token{position:absolute;left:-3px;top:0;width:8px;height:8px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 12px rgba(255,174,69,.95);animation:pxToken 7s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes pxToken{0%{top:-12px;opacity:0;}6%{opacity:1;}94%{opacity:1;}100%{top:100%;opacity:0;}}
.px-pipe{list-style:none;margin:0;padding:0;}
.px-stage{position:relative;display:grid;grid-template-columns:1fr 92px 1fr;align-items:center;margin-bottom:26px;}
.px-stage:last-child{margin-bottom:0;}
.px-stage-gate{grid-column:2;grid-row:1;justify-self:center;width:20px;height:20px;border-radius:6px;background:var(--ink);border:2px solid rgba(247,143,27,.5);
  transform:rotate(45deg);z-index:2;animation:pxGate 7s ease-in-out infinite;animation-delay:calc(var(--i) * 1.16s);}
@keyframes pxGate{0%,5%{background:var(--ink);border-color:rgba(247,143,27,.5);box-shadow:none;}
  9%,15%{background:var(--ember);border-color:var(--ember-hi);box-shadow:0 0 0 6px rgba(247,143,27,.13);}
  24%,100%{background:var(--ink);border-color:rgba(247,143,27,.5);box-shadow:none;}}
.px-stage-card{grid-column:1;grid-row:1;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:16px;padding:22px 26px 24px;
  transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.px-stage:nth-child(odd) .px-stage-card{text-align:right;}
.px-stage:nth-child(even) .px-stage-card{grid-column:3;text-align:left;}
.px-stage:hover .px-stage-card{background:rgba(255,255,255,.065);border-color:rgba(247,143,27,.45);transform:translateY(-4px);}
.px-stage-n{display:block;font-size:.59rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:8px;}
.px-stage h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.px-stage p{font-size:.94rem;color:rgba(251,248,241,.74);line-height:1.64;}

/* --- S8: who this is for, each card topped with its own tenant strip --- */
.px-fits{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.px-fit{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:26px 28px 30px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.px-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -34px rgba(21,17,12,.32);}
.px-fit-strip{display:flex;gap:5px;margin-bottom:20px;}
.px-fit-strip i{flex:1;height:8px;border-radius:2px;background:rgba(21,17,12,.1);animation:pxFitTile 5.5s ease-in-out infinite;animation-delay:calc(var(--i) * .5s + var(--t) * .11s);}
@keyframes pxFitTile{0%,6%{background:rgba(21,17,12,.1);}16%,52%{background:var(--ember);}66%,100%{background:rgba(21,17,12,.1);}}
.px-fit p{font-size:1.02rem;color:var(--ink);line-height:1.68;}

/* --- S9/S10: CTA + FAQ --- */
.px-cta canvas.ai-net{opacity:.5;}
.px-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.px-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .px-sp-grid i,.px-sp-scan,.px-drift,.px-drift-dot,.px-row-ico::after,.px-con-scan::after,
  .px-pipe-token,.px-stage-gate,.px-fit-strip i{animation:none;}
  .px-sp-grid i{opacity:.3;transform:none;}
  .px-sp-scan,.px-pipe-token{display:none;}
  .px-drift{transform:none;}
  .px-fit-strip i{background:var(--ember);}
  .px-brs.in .px-br-c.tl,.px-brs.in .px-br-c.br{animation-duration:.01s;}
  .px-why-spine i,.px-why-node{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1180px){
  .px-con-head,.px-row{grid-template-columns:112px 224px 1fr;gap:20px;}
}
@media(max-width:1080px){
  .px-drifts{grid-template-columns:repeat(2,1fr);}
  .px-drift,.px-drift:nth-child(4),.px-drift:nth-child(5){grid-column:span 1;}
  .px-drift:nth-child(5){grid-column:span 2;}
  .px-brs{grid-template-columns:repeat(2,1fr);}
  .px-br,.px-br:nth-child(1),.px-br:nth-child(2){grid-column:span 1;}
  .px-br:nth-child(5){grid-column:span 2;}
}
@media(max-width:980px){
  .pp-hero-grid{grid-template-columns:1fr;gap:40px;}
  .pp-hero-fig{order:-1;max-width:560px;}
  .pp-fig-frame{transform:none;}
  .px-lede-grid{grid-template-columns:1fr;gap:44px;}
  /* Rail moves to the left edge and every card lines up beside it. */
  .px-pipe-rail{left:9px;margin-left:0;}
  .px-stage{grid-template-columns:38px 1fr;gap:0;}
  .px-stage-gate{grid-column:1;justify-self:start;}
  .px-stage-card,.px-stage:nth-child(odd) .px-stage-card,.px-stage:nth-child(even) .px-stage-card{grid-column:2;text-align:left;}
}
@media(max-width:900px){
  .px-con-head{display:none;}
  .px-row{grid-template-columns:96px 1fr;gap:8px 18px;padding:22px;}
  .px-row h3{grid-column:2;}
  .px-row-body{grid-column:2;}
  .px-row-type{grid-row:span 2;align-self:start;}
}
@media(max-width:680px){
  .px-drifts,.px-brs,.px-fits{grid-template-columns:1fr;}
  .px-drift,.px-drift:nth-child(4),.px-drift:nth-child(5),
  .px-br,.px-br:nth-child(1),.px-br:nth-child(2),.px-br:nth-child(5){grid-column:span 1;}
  .px-verdict{padding-left:18px;font-size:1.02rem;}
  .px-sp-grid{gap:4px;padding:16px 14px;}
  .px-sp-key{margin-left:0;}
  .px-why{padding-left:34px;}
  .px-why-node{left:-30px;}
  .px-why-row{grid-template-columns:40px 1fr;gap:14px;}
  .px-row{grid-template-columns:1fr;}
  .px-row h3,.px-row-body{grid-column:1;}
  .px-fig-live,.pp-fig-live{left:14px;bottom:14px;min-width:0;}
}

/* ===== COPILOT STUDIO (conversational AI / agents + bento) ===== */
/* hero */
.cps-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.cps-hero-txt h1{margin-top:14px;}
.cps-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.cps-hero-fig{position:relative;z-index:2;}
.cps-fig-frame{display:block;position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:3/2;}
.cps-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(21,17,12,.4));pointer-events:none;}
.cps-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.cps-hero-fig:hover .cps-fig-frame img{transform:scale(1.04);}
.cps-fig-agent{position:absolute;left:-16px;bottom:24px;display:flex;align-items:center;gap:12px;background:var(--cream);color:var(--ink);border-radius:16px;padding:12px 18px 12px 13px;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);z-index:3;}
.cps-agent-av{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.cps-agent-av svg{width:22px;height:22px;}
.cps-agent-meta{display:flex;flex-direction:column;line-height:1.2;}
.cps-agent-meta strong{font-size:.92rem;}
.cps-agent-status{display:flex;align-items:center;gap:7px;font-size:.76rem;color:var(--muted);}
.cps-agent-typing{display:inline-flex;align-items:center;gap:3px;}
.cps-agent-typing i{width:5px;height:5px;border-radius:50%;background:var(--ember);animation:cpsType 1.4s infinite;}
.cps-agent-typing i:nth-child(2){animation-delay:.2s;}
.cps-agent-typing i:nth-child(3){animation-delay:.4s;}
@keyframes cpsType{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}

/* hero figure — a live agent roster running over the same photograph.
   The frame already clips, so the mesh and sweep stay inside the image. */
.cps-fig-mesh{position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:overlay;
  background-image:radial-gradient(rgba(255,255,255,.7) 1.2px,transparent 1.2px);background-size:26px 26px;
  animation:cpsDrift 24s linear infinite;}
@keyframes cpsDrift{to{background-position:26px 26px;}}
.cps-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:cpsScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes cpsScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
.cps-fig-live{position:absolute;right:18px;top:18px;z-index:3;display:flex;flex-direction:column;gap:7px;align-items:flex-start;
  background:rgba(21,17,12,.7);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:12px;padding:11px 15px 12px;min-width:176px;
  box-shadow:0 20px 40px -24px rgba(0,0,0,.75);}
.cps-live-top{display:inline-flex;align-items:center;gap:8px;font-size:.5rem;letter-spacing:.15em;color:rgba(251,248,241,.6);}
.cps-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.cps-live-rot{position:relative;display:block;width:100%;height:19px;overflow:hidden;}
.cps-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.78rem;color:#fff;letter-spacing:.01em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:cpsRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes cpsRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

@media(prefers-reduced-motion:reduce){
  .cps-agent-typing i,.cps-fig-mesh{animation:none;}
  .cps-fig-scan{display:none;}
  .cps-live-rot i{animation:none;opacity:0;transform:none;}
  .cps-live-rot i:first-child{opacity:1;}
}

/* ----- COPILOT STUDIO sections (.cx- : pilot to production) -----
   Motif set unique to this page: an orchestration graph of delegating agents,
   demo/production status pairs, the requirements read as an agent manifest,
   perforated deployment tickets, filling outline numerals and a boxless
   phase band. */

/* --- S2: the lede beside an agent orchestration graph --- */
.cx-lede-top{max-width:1000px;margin-bottom:58px;}
.cx-lede-top .eyebrow{margin-bottom:14px;}
.cx-lede-top h2{font-size:clamp(1.72rem,3.2vw,2.6rem);margin-bottom:20px;}
.cx-lede-sub{font-size:1.12rem;color:var(--muted);line-height:1.74;}
.cx-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.cx-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.cx-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.cx-lede-btn{margin-top:10px;}

.cx-mesh{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.cx-mesh-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.cx-mesh-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
.cx-mesh-bar b{margin-left:auto;font-weight:400;letter-spacing:.15em;color:var(--ember-hi);}
/* An orchestrator delegating to three specialists, plus the lateral A2A link. */
.cx-mesh-stage{position:relative;aspect-ratio:300/190;}
.cx-mesh-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.cx-wire{stroke:rgba(255,255,255,.14);stroke-width:1;}
.cx-flow{stroke:var(--ember-hi);stroke-width:1.7;stroke-linecap:round;stroke-dasharray:8 100;stroke-dashoffset:108;
  filter:drop-shadow(0 0 3px rgba(255,174,69,.85));animation:cxFlow 3.6s cubic-bezier(.5,0,.5,1) infinite;animation-delay:calc(var(--f) * .5s);}
@keyframes cxFlow{0%{stroke-dashoffset:108;}60%,100%{stroke-dashoffset:0;}}
.cx-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:74px;height:74px;border-radius:20px;background:rgba(24,18,12,.88);border:1px solid rgba(255,255,255,.13);
  color:rgba(251,248,241,.66);backdrop-filter:blur(5px);
  animation:cxNode 7.2s ease-in-out infinite;animation-delay:calc(var(--d) * .8s + .4s);}
.cx-node b{font-weight:400;font-size:.5rem;letter-spacing:.11em;text-transform:uppercase;}
.cx-node svg{width:20px;height:20px;display:block;}
.cx-node.orch{width:92px;height:92px;border-radius:24px;border-color:rgba(247,143,27,.5);color:var(--ember-hi);
  background:linear-gradient(152deg,rgba(247,143,27,.2),rgba(21,17,12,.94) 64%);box-shadow:0 20px 42px -18px rgba(247,143,27,.5);animation:none;}
.cx-node.orch b{font-size:.46rem;letter-spacing:.14em;color:rgba(251,248,241,.7);}
@keyframes cxNode{0%,4%{border-color:rgba(255,255,255,.13);color:rgba(251,248,241,.66);box-shadow:none;transform:translate(-50%,-50%);}
  11%,22%{border-color:rgba(247,143,27,.65);color:var(--ember-hi);box-shadow:0 0 0 4px rgba(247,143,27,.09),0 16px 30px -16px rgba(247,143,27,.6);transform:translate(-50%,-50%) scale(1.07);}
  32%,100%{border-color:rgba(255,255,255,.13);color:rgba(251,248,241,.66);box-shadow:none;transform:translate(-50%,-50%);}}
.cx-mesh-foot{display:flex;gap:26px;flex-wrap:wrap;padding:16px 20px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.16);}
.cx-mesh-stat{display:flex;flex-direction:column;gap:3px;}
.cx-mesh-stat b{font-size:1.05rem;font-weight:500;letter-spacing:.02em;color:#4ed492;}
.cx-mesh-stat.down b{color:var(--ember-hi);}
.cx-mesh-stat span{font-family:'JetBrains Mono',monospace;font-size:.51rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-d);}

/* --- S3: holds in the demo, gives way in production --- */
.cx-stallsec .sec-head{max-width:920px;}
.cx-stalls{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.cx-stall{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:26px 24px 24px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.cx-stall:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 28px 54px -30px rgba(21,17,12,.3);}
/* Solid for the first half, then it breaks into a dashed run. */
.cx-stall-rule{position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--ember) 0 46%,transparent 46%),repeating-linear-gradient(90deg,rgba(178,58,14,.75) 0 6px,transparent 6px 12px);}
.cx-stall-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.cx-stall-tag{font-size:.57rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ember-deep);}
.cx-stall-states{margin-left:auto;display:inline-flex;gap:5px;}
.cx-stall-states i{font-style:normal;font-size:.5rem;letter-spacing:.11em;text-transform:uppercase;padding:4px 8px;border-radius:5px;}
.cx-stall-states i.ok{background:rgba(78,212,146,.14);color:#2f8f63;border:1px solid rgba(78,212,146,.4);}
.cx-stall-states i.bad{background:rgba(178,58,14,.1);color:var(--rust);border:1px solid rgba(178,58,14,.35);animation:cxBad 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * .3s);}
@keyframes cxBad{0%,60%,100%{opacity:1;}72%,84%{opacity:.3;}}
.cx-stall p{font-size:.97rem;color:var(--muted);line-height:1.66;}
.cx-verdict{margin-top:46px;max-width:960px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.cx-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: the requirements read as the agent's manifest (dark) --- */
.cx-mansec{background:var(--ink);color:var(--cream);overflow:hidden;}
.cx-mansec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.cx-mansec .glow-1{top:-170px;right:-140px;opacity:.3;}
.cx-mansec .wrap{position:relative;z-index:2;}
.cx-mansec .sec-head{max-width:940px;}
.cx-mansec .sec-head h2 em{color:var(--ember-hi);}
.cx-manifest{border:1px solid var(--line-d);border-radius:20px;background:rgba(255,255,255,.03);overflow:hidden;}
.cx-man-bar{display:flex;align-items:center;gap:12px;padding:14px 22px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.22);font-size:.58rem;letter-spacing:.16em;color:rgba(251,248,241,.6);}
.cx-man-dots{display:inline-flex;gap:6px;}
.cx-man-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.16);}
.cx-man-dots i:first-child{background:var(--ember);}
.cx-man-bar b{margin-left:auto;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:#4ed492;}
.cx-man-lines{list-style:none;margin:0;padding:0;}
.cx-man-line{display:grid;grid-template-columns:52px 232px 1fr;gap:20px;align-items:start;padding:19px 24px;border-bottom:1px solid rgba(255,255,255,.06);transition:background .3s;}
.cx-man-line:hover{background:rgba(255,255,255,.045);}
.cx-man-no{font-size:.62rem;letter-spacing:.08em;color:rgba(251,248,241,.24);text-align:right;padding-top:2px;}
.cx-man-key{font-size:.76rem;letter-spacing:.02em;color:var(--ember-hi);padding-top:1px;word-break:break-word;}
.cx-man-key span{color:rgba(251,248,241,.3);}
.cx-man-line p{font-size:.97rem;color:rgba(251,248,241,.78);line-height:1.68;}
.cx-man-foot{display:flex;align-items:center;gap:10px;padding:15px 24px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.22);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,248,241,.5);}
.cx-man-caret{width:8px;height:15px;background:var(--ember-hi);animation:cxCaret 1.15s steps(1) infinite;}
@keyframes cxCaret{0%,50%{opacity:1;}51%,100%{opacity:0;}}

/* --- S5: services issued as perforated deployment tickets --- */
.cx-svcsec .sec-head{max-width:940px;}
.cx-tickets{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.cx-ticket{position:relative;display:grid;grid-template-columns:92px 1fr;background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.cx-ticket:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -32px rgba(21,17,12,.32);}
.cx-tk-stub{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:26px 8px;background:var(--paper-2);}
.cx-tk-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .35s,color .35s,transform .35s;}
.cx-ticket:hover .cx-tk-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.cx-tk-ico svg{width:21px;height:21px;}
.cx-tk-stub b{font-weight:400;font-size:.55rem;letter-spacing:.17em;color:var(--muted);}
/* The perforation: a dashed tear line with a punched notch at each end. */
.cx-tk-perf{position:absolute;left:92px;top:0;bottom:0;width:1px;background-image:linear-gradient(180deg,rgba(21,17,12,.28) 0 5px,transparent 5px 11px);background-size:1px 11px;}
.cx-tk-perf::before,.cx-tk-perf::after{content:"";position:absolute;left:-8px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1px solid var(--line);}
.cx-tk-perf::before{top:-9px;}
.cx-tk-perf::after{bottom:-9px;}
.cx-tk-body{padding:26px 26px 28px;}
.cx-tk-no{display:block;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-d);margin-bottom:10px;}
.cx-ticket h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.32;margin-bottom:10px;transition:color .3s;}
.cx-ticket:hover h3{color:var(--ember-deep);}
.cx-ticket p{font-size:.95rem;color:var(--muted);line-height:1.66;}

/* --- S6: outline numerals that fill as each reason lands --- */
.cx-whysec .sec-head{max-width:880px;}
.cx-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.cx-reason{display:grid;grid-template-columns:126px 1fr;gap:30px;align-items:center;padding:30px 4px;border-bottom:1px solid var(--line);transition:padding-left .35s;}
.cx-reason:hover{padding-left:16px;}
.cx-reason-n{font-size:3.1rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(21,17,12,.22);
  transition:color .8s cubic-bezier(.2,.7,.2,1),-webkit-text-stroke-color .8s;transition-delay:calc(var(--i) * .12s + .15s);}
.cx-reason.in .cx-reason-n{color:var(--ember);-webkit-text-stroke-color:transparent;}
.cx-reason p{font-size:1.06rem;color:var(--ink);line-height:1.7;}

/* --- S7: a boxless phase band, one rail per row (dark) --- */
.cx-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.cx-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.cx-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.cx-procsec .wrap{position:relative;z-index:2;}
.cx-procsec .sec-head{max-width:880px;}
.cx-procsec .sec-head h2 em{color:var(--ember-hi);}
.cx-procsec .sec-head p{color:rgba(251,248,241,.74);}
.cx-phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:56px 34px;}
.cx-phase{position:relative;padding-top:34px;}
.cx-phase::before{content:"";position:absolute;left:-17px;top:44px;bottom:-24px;width:1px;background:rgba(255,255,255,.09);}
.cx-phase:nth-child(3n+1)::before{display:none;}
.cx-phase-rail{position:absolute;left:0;right:-34px;top:5px;height:1px;background:rgba(255,255,255,.12);}
.cx-phase:nth-child(3n)  .cx-phase-rail{right:0;}
.cx-phase-node{position:absolute;left:0;top:0;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid rgba(247,143,27,.45);
  animation:cxNodePulse 7.2s ease-in-out infinite;animation-delay:calc(var(--i) * 1.1s);}
@keyframes cxNodePulse{0%,6%{background:var(--ink);border-color:rgba(247,143,27,.45);box-shadow:none;}
  11%,19%{background:var(--ember);border-color:var(--ember-hi);box-shadow:0 0 0 5px rgba(247,143,27,.13);}
  28%,100%{background:var(--ink);border-color:rgba(247,143,27,.45);box-shadow:none;}}
.cx-phase-n{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--ember-hi);margin-bottom:10px;}
.cx-phase h3{font-family:'Fraunces',serif;font-size:1.24rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;}
.cx-phase p{font-size:.95rem;color:rgba(251,248,241,.72);line-height:1.66;}

/* --- S8: who this is for --- */
.cx-fits{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.cx-fit{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:28px 30px 30px 34px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.cx-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -34px rgba(21,17,12,.32);}
.cx-fit-rail{position:absolute;left:0;top:0;width:4px;height:0;background:linear-gradient(180deg,var(--ember),var(--ember-hi));
  transition:height .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .13s + .2s);}
.cx-fit.in .cx-fit-rail{height:100%;}
.cx-fit-n{display:block;font-size:.57rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:12px;}
.cx-fit p{font-size:1.02rem;color:var(--ink);line-height:1.68;}

/* --- S9/S10: CTA + FAQ --- */
.cps-cta canvas.ai-net{opacity:.5;}
.cx-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.cx-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .cx-flow,.cx-node,.cx-stall-states i.bad,.cx-man-caret,.cx-phase-node{animation:none;}
  .cx-flow{stroke-dashoffset:0;stroke-dasharray:8 16;opacity:.6;}
  .cx-reason-n,.cx-fit-rail{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1180px){
  .cx-man-line{grid-template-columns:44px 200px 1fr;gap:16px;}
  .cx-phases{gap:48px 28px;}
  .cx-phase-rail{right:-28px;}
}
@media(max-width:1080px){
  .cx-stalls{grid-template-columns:repeat(2,1fr);}
  .cx-tickets{grid-template-columns:1fr;}
}
@media(max-width:980px){
  .cps-hero-grid{grid-template-columns:1fr;gap:40px;}
  .cps-hero-fig{order:-1;max-width:560px;}
  .cx-lede-grid{grid-template-columns:1fr;gap:44px;}
  .cx-phases{grid-template-columns:repeat(2,1fr);}
  .cx-phase:nth-child(3n+1)::before{display:block;}
  .cx-phase:nth-child(2n+1)::before{display:none;}
  .cx-phase-rail{right:-28px;}
  .cx-phase:nth-child(2n) .cx-phase-rail{right:0;}
  .cx-phase:nth-child(3n) .cx-phase-rail{right:-28px;}
  .cx-reason{grid-template-columns:92px 1fr;gap:22px;}
  .cx-reason-n{font-size:2.5rem;}
}
@media(max-width:760px){
  .cx-stalls,.cx-fits{grid-template-columns:1fr;}
  .cx-man-line{grid-template-columns:1fr;gap:8px;padding:20px 22px;}
  .cx-man-no{display:none;}
  .cx-phases{grid-template-columns:1fr;gap:38px;}
  .cx-phase::before{display:none!important;}
  .cx-phase-rail{right:0!important;}
  .cx-verdict{padding-left:18px;font-size:1.02rem;}
  .cx-ticket{grid-template-columns:74px 1fr;}
  .cx-tk-perf{left:74px;}
  .cx-tk-body{padding:22px;}
  .cps-fig-live{right:12px;top:12px;min-width:0;}
}
@media(max-width:560px){
  .cx-reason{grid-template-columns:1fr;gap:10px;}
  .cx-reason-n{font-size:2.2rem;}
}

/* ===== SHAREPOINT & EPM (collaboration + project delivery) ===== */
/* hero */
.spe-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.spe-hero-txt h1{margin-top:14px;}
.spe-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.spe-hero-fig{position:relative;z-index:2;}
.spe-fig-frame{display:block;position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:3/2;}
.spe-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(21,17,12,.42));pointer-events:none;}
.spe-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.spe-hero-fig:hover .spe-fig-frame img{transform:scale(1.04);}
.spe-fig-collab{position:absolute;left:-16px;bottom:26px;display:flex;align-items:center;gap:12px;background:var(--cream);color:var(--ink);border-radius:14px;padding:11px 16px 11px 14px;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);z-index:3;}
.spe-collab-avs{display:inline-flex;}
.spe-collab-avs i{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:.74rem;font-weight:700;color:#fff;border:2px solid var(--cream);margin-left:-9px;}
.spe-collab-avs i:first-child{margin-left:0;}
.spe-collab-avs i:nth-child(1){background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.spe-collab-avs i:nth-child(2){background:linear-gradient(150deg,#2f86c5,#1f5f93);}
.spe-collab-avs i:nth-child(3){background:linear-gradient(150deg,#3a9d6a,#237046);}
.spe-collab-avs i.more{background:var(--ink);color:var(--ember-hi);font-size:.66rem;}
.spe-collab-txt{display:flex;flex-direction:column;line-height:1.2;}
.spe-collab-txt strong{font-size:.9rem;}
.spe-collab-txt span{font-size:.74rem;color:var(--muted);}
.spe-fig-chip{position:absolute;right:-10px;top:24px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.64rem;letter-spacing:.06em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;}
.spe-chip-dot{width:7px;height:7px;border-radius:50%;}
.spe-chip-dot.a{background:#2f86c5;}
.spe-chip-dot.b{background:#3a9d6a;}
.spe-chip-sep{opacity:.5;margin:0 1px;}

/* hero figure — a live grounding readout over the same photograph.
   The frame already clips, so the grid and sweep stay inside the image. */
.spe-fig-grid{position:absolute;inset:0;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);
  background-size:44px 44px;animation:speDrift 26s linear infinite;}
@keyframes speDrift{to{background-position:44px 44px;}}
.spe-fig-scan{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,143,27,0),rgba(247,143,27,.12) 58%,rgba(255,174,69,.3) 84%,rgba(255,255,255,.4) 93%,rgba(247,143,27,0));
  mix-blend-mode:screen;animation:speScan 7.5s cubic-bezier(.55,0,.45,1) infinite;}
@keyframes speScan{0%{transform:translateY(-105%);opacity:0;}14%{opacity:.6;}80%{opacity:.6;}100%{transform:translateY(330%);opacity:0;}}
.spe-fig-live{position:absolute;left:18px;top:18px;z-index:3;display:flex;flex-direction:column;gap:7px;align-items:flex-start;
  background:rgba(21,17,12,.7);border:1px solid var(--line-d);backdrop-filter:blur(7px);border-radius:12px;padding:11px 15px 12px;min-width:180px;
  box-shadow:0 20px 40px -24px rgba(0,0,0,.75);}
.spe-live-top{display:inline-flex;align-items:center;gap:8px;font-size:.5rem;letter-spacing:.15em;color:rgba(251,248,241,.6);}
.spe-live-dot{width:6px;height:6px;border-radius:50%;background:#4ed492;box-shadow:0 0 9px rgba(78,212,146,.95);animation:pulse 1.8s infinite;}
.spe-live-rot{position:relative;display:block;width:100%;height:19px;overflow:hidden;}
.spe-live-rot i{position:absolute;left:0;top:0;font-style:normal;font-size:.78rem;color:#fff;letter-spacing:.01em;white-space:nowrap;
  opacity:0;transform:translateY(9px);animation:speRot 12.5s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:calc(var(--n) * 2.5s);}
@keyframes speRot{0%{opacity:0;transform:translateY(9px);}4%,16%{opacity:1;transform:none;}20%,100%{opacity:0;transform:translateY(-9px);}}

/* ----- SHAREPOINT & EPM sections (.sx- : information architecture) -----
   Motif set unique to this page: a library gaining its metadata while Copilot
   accuracy climbs, a tenant audit read as a site tree, tabbed folder cards,
   two parallel service tracks over one foundation, a governance maturity
   ladder and folded-corner audience cards. */

/* --- S2: the lede beside a library being governed --- */
.sx-lede-top{max-width:1000px;margin-bottom:58px;}
.sx-lede-top .eyebrow{margin-bottom:14px;}
.sx-lede-top h2{font-size:clamp(1.74rem,3.2vw,2.6rem);margin-bottom:20px;}
.sx-lede-sub{font-size:1.12rem;color:var(--muted);line-height:1.74;}
.sx-lede-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;}
.sx-lede-txt p{font-size:1.01rem;color:var(--muted);line-height:1.82;margin-bottom:18px;}
.sx-lede-close{color:var(--ink);font-weight:500;border-left:3px solid var(--ember);padding-left:20px;}
.sx-lede-btn{margin-top:10px;}

.sx-ground{background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.sx-gr-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-d);background:rgba(0,0,0,.2);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,248,241,.56);}
.sx-gr-led{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px rgba(255,174,69,.95);animation:pulse 1.8s infinite;}
/* The state label crossfades with the pass that causes it. */
.sx-gr-bar b{position:relative;margin-left:auto;font-weight:400;letter-spacing:.15em;min-width:100px;height:1em;}
.sx-gr-bar b span{position:absolute;right:0;top:0;white-space:nowrap;animation:sxState 10s ease-in-out infinite;}
.sx-gr-bar b .s1{color:var(--rust);}
.sx-gr-bar b .s2{color:#4ed492;animation-delay:5s;}
@keyframes sxState{0%,3%{opacity:0;}8%,45%{opacity:1;}50%,100%{opacity:0;}}
.sx-gr-rows{position:relative;display:flex;flex-direction:column;gap:11px;padding:22px 20px;overflow:hidden;}
.sx-gr-row{display:flex;align-items:center;gap:11px;}
.sx-gr-doc{flex:0 0 auto;width:13px;height:16px;border-radius:2px 4px 2px 2px;background:rgba(255,255,255,.22);}
.sx-gr-name{flex:0 0 auto;width:var(--w);height:7px;border-radius:100px;background:rgba(255,255,255,.14);}
.sx-gr-tags{margin-left:auto;display:inline-flex;gap:5px;}
/* Empty and dashed until the governance pass reaches this row, then filled. */
.sx-gr-tags i{width:22px;height:9px;border-radius:3px;background:transparent;border:1px dashed rgba(255,122,80,.7);
  animation:sxTag 10s ease-in-out infinite;animation-delay:calc(var(--r) * .28s + var(--t) * .09s);}
@keyframes sxTag{0%,46%{background:transparent;border-color:rgba(255,122,80,.7);border-style:dashed;}
  53%,92%{background:var(--ember-hi);border-color:transparent;border-style:solid;}
  99%,100%{background:transparent;border-color:rgba(255,122,80,.7);border-style:dashed;}}
.sx-gr-pass{position:absolute;left:0;right:0;top:0;height:38px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(247,143,27,.16),rgba(255,174,69,.5),transparent);
  animation:sxPass 10s cubic-bezier(.45,0,.55,1) infinite;}
@keyframes sxPass{0%,42%{transform:translateY(-120%);opacity:0;}46%{opacity:1;}62%{opacity:1;}70%,100%{transform:translateY(520%);opacity:0;}}
.sx-gr-foot{display:flex;align-items:center;gap:14px;padding:16px 20px 18px;border-top:1px solid var(--line-d);background:rgba(0,0,0,.16);}
.sx-gr-label{flex:0 0 auto;font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-d);}
.sx-gr-meter{flex:1;height:7px;border-radius:100px;background:rgba(255,255,255,.09);overflow:hidden;}
.sx-gr-meter i{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,var(--rust),var(--ember),#4ed492);
  transform-origin:left;animation:sxMeter 10s cubic-bezier(.45,0,.55,1) infinite;}
@keyframes sxMeter{0%,44%{transform:scaleX(.18);}70%,94%{transform:scaleX(1);}100%{transform:scaleX(.18);}}

/* --- S3: the audit, read as a site tree --- */
.sx-auditsec .sec-head{max-width:900px;}
.sx-tree{background:var(--cream);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 34px 70px -46px rgba(21,17,12,.3);}
.sx-tree-head{display:flex;align-items:center;gap:10px;padding:15px 26px;border-bottom:1px solid var(--line);background:var(--paper-2);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.sx-tree-dot{width:7px;height:7px;border-radius:50%;background:var(--rust);animation:pulse 2.2s infinite;}
.sx-tree-list{list-style:none;margin:0;padding:6px 0 14px;}
.sx-branch{position:relative;display:grid;grid-template-columns:22px 152px 1fr;gap:18px;align-items:start;padding:16px 26px 16px 40px;transition:background .3s;}
.sx-branch:hover{background:#fff;}
/* Elbow guide: the trunk runs down the left, the arm reaches each branch. */
.sx-branch-guide{position:absolute;left:26px;top:0;bottom:0;width:14px;border-left:1px solid rgba(21,17,12,.2);}
.sx-branch-guide::after{content:"";position:absolute;left:0;top:26px;width:13px;height:1px;background:rgba(21,17,12,.2);}
.sx-branch:last-child .sx-branch-guide{bottom:auto;height:27px;}
.sx-branch-flag{grid-column:1;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--rust);margin-top:3px;
  animation:sxFlag 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * .28s);}
.sx-branch-flag svg{width:17px;height:17px;}
@keyframes sxFlag{0%,72%,100%{opacity:.55;}80%,88%{opacity:1;}}
.sx-branch-path{font-size:.72rem;letter-spacing:.02em;color:var(--ember-deep);padding-top:5px;word-break:break-word;}
.sx-branch p{font-size:.97rem;color:var(--muted);line-height:1.66;}
.sx-verdict{margin-top:46px;max-width:980px;font-size:1.1rem;line-height:1.8;color:var(--muted);padding-left:24px;border-left:3px solid var(--ember);}
.sx-verdict strong{color:var(--ink);font-weight:600;}

/* --- S4: each commitment filed in its own tabbed folder (dark) --- */
.sx-delivsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.sx-delivsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.sx-delivsec .glow-1{top:-170px;right:-140px;opacity:.3;}
.sx-delivsec .wrap{position:relative;z-index:2;}
.sx-delivsec .sec-head{max-width:940px;}
.sx-delivsec .sec-head h2 em{color:var(--ember-hi);}
.sx-folders{display:grid;grid-template-columns:repeat(6,1fr);gap:34px 20px;}
.sx-folder{position:relative;grid-column:span 2;}
.sx-folder:nth-child(4),.sx-folder:nth-child(5){grid-column:span 3;}
.sx-folder-tab{position:absolute;left:20px;top:-15px;z-index:2;display:inline-block;padding:7px 18px 8px;
  border-radius:9px 9px 0 0;background:linear-gradient(180deg,rgba(247,143,27,.9),rgba(217,101,10,.9));color:#fff;
  font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;box-shadow:0 -6px 18px -10px rgba(247,143,27,.9);}
.sx-folder-body{position:relative;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:4px 16px 16px 16px;
  padding:26px 24px 22px;height:100%;transition:background .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.sx-folder:hover .sx-folder-body{background:rgba(255,255,255,.065);border-color:rgba(247,143,27,.38);transform:translateY(-5px);}
.sx-folder-body p{font-size:.97rem;color:rgba(251,248,241,.78);line-height:1.68;}
.sx-folder-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);}
.sx-folder-meta i{font-style:normal;font-size:.53rem;letter-spacing:.08em;padding:5px 10px;border-radius:5px;
  background:rgba(247,143,27,.13);border:1px solid rgba(247,143,27,.3);color:var(--ember-hi);
  animation:sxMeta 6.4s ease-in-out infinite;animation-delay:calc(var(--i) * .3s + var(--m) * .18s);}
@keyframes sxMeta{0%,6%{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:rgba(251,248,241,.5);}
  14%,50%{background:rgba(247,143,27,.16);border-color:rgba(247,143,27,.45);color:var(--ember-hi);}
  62%,100%{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:rgba(251,248,241,.5);}}

/* --- S5: two service tracks standing on one tenant --- */
.sx-svcsec .sec-head{max-width:960px;}
.sx-tracks{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.sx-track-head{display:flex;flex-direction:column;gap:5px;padding:0 4px 16px;margin-bottom:18px;border-bottom:2px solid var(--line);}
.sx-track-label{display:inline-flex;align-items:center;gap:9px;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;}
.sx-track-dot{width:9px;height:9px;border-radius:3px;}
.sx-track-note{font-size:.9rem;color:var(--muted);}
.sx-track-list{display:flex;flex-direction:column;gap:16px;}
.sx-svc{display:flex;gap:16px;align-items:flex-start;border-radius:16px;padding:22px 24px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.sx-svc-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;transition:transform .35s,background .35s,color .35s;}
.sx-svc:hover .sx-svc-ico{transform:rotate(-6deg);}
.sx-svc-ico svg{width:21px;height:21px;}
.sx-svc h3{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;letter-spacing:-.01em;line-height:1.32;margin-bottom:8px;}
.sx-svc p{font-size:.93rem;line-height:1.64;}
/* Track one reads on paper, track two on ink — the two layers stay legible as
   separate systems without introducing a second brand hue. */
.sx-track-1 .sx-track-label{color:var(--ember-deep);}
.sx-track-1 .sx-track-dot{background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.sx-track-1 .sx-svc{background:var(--cream);border:1px solid var(--line);border-left:3px solid rgba(247,143,27,.5);}
.sx-track-1 .sx-svc:hover{transform:translateY(-4px);border-color:var(--ember);border-left-color:var(--ember);box-shadow:0 28px 54px -32px rgba(21,17,12,.3);}
.sx-track-1 .sx-svc-ico{background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);}
.sx-track-1 .sx-svc:hover .sx-svc-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.sx-track-1 .sx-svc h3{color:var(--ink);}
.sx-track-1 .sx-svc p{color:var(--muted);}
.sx-track-2 .sx-track-label{color:var(--ink);}
.sx-track-2 .sx-track-dot{background:var(--ink);}
.sx-track-2 .sx-svc{background:linear-gradient(158deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.08);border-left:3px solid rgba(255,174,69,.55);}
.sx-track-2 .sx-svc:hover{transform:translateY(-4px);border-color:rgba(247,143,27,.5);border-left-color:var(--ember-hi);box-shadow:0 30px 58px -30px rgba(21,17,12,.55);}
.sx-track-2 .sx-svc-ico{background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.32);color:var(--ember-hi);}
.sx-track-2 .sx-svc:hover .sx-svc-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;color:#fff;}
.sx-track-2 .sx-svc h3{color:#fff;}
.sx-track-2 .sx-svc p{color:rgba(251,248,241,.74);}
.sx-base{position:relative;margin-top:30px;display:flex;justify-content:center;}
.sx-base-line{position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,var(--line),var(--line),transparent);}
.sx-base-tag{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:9px 20px;font-size:.56rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted);}

/* --- S6: reasons with a sweep that runs through them in turn --- */
.sx-whysec .sec-head{max-width:880px;}
.sx-reasons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.sx-reason{position:relative;display:grid;grid-template-columns:56px 1fr;gap:24px;align-items:baseline;padding:28px 6px;border-bottom:1px solid var(--line);overflow:hidden;transition:padding-left .35s;}
.sx-reason:nth-child(even){padding-left:34px;}
.sx-reason:hover{padding-left:18px;}
.sx-reason:nth-child(even):hover{padding-left:48px;}
.sx-reason-n{font-size:.86rem;letter-spacing:.12em;color:var(--muted-d);}
.sx-reason p{font-size:1.05rem;color:var(--ink);line-height:1.7;}
.sx-reason-sweep{position:absolute;left:0;bottom:-1px;height:1px;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--ember),rgba(247,143,27,0));animation:sxSweep 7s ease-in-out infinite;animation-delay:calc(var(--i) * .5s);}
@keyframes sxSweep{0%,4%{transform:scaleX(0);}12%,26%{transform:scaleX(1);}38%,100%{transform:scaleX(0);}}

/* --- S7: a governance maturity ladder (dark) --- */
.sx-procsec{background:var(--ink);color:var(--cream);overflow:hidden;}
.sx-procsec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.sx-procsec .glow-1{top:auto;bottom:-200px;left:-140px;opacity:.3;}
.sx-procsec .wrap{position:relative;z-index:2;}
.sx-procsec .sec-head{max-width:880px;}
.sx-procsec .sec-head h2 em{color:var(--ember-hi);}
.sx-procsec .sec-head p{color:rgba(251,248,241,.74);}
.sx-ladder{list-style:none;margin:0;padding:0;}
.sx-rung{display:grid;grid-template-columns:320px 52px 1fr;gap:28px;align-items:start;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.07);}
.sx-rung:last-child{border-bottom:none;}
/* Each phase stands on a wider base than the one before it — 01 barely covers
   a quarter of the track, 06 spans the whole of it. */
.sx-rung-bar{height:16px;border-radius:0 100px 100px 0;background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  width:calc(24% + var(--i) * 15.2%);margin-top:6px;transform:scaleX(0);transform-origin:left;
  transition:transform .95s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .13s + .15s);
  box-shadow:0 10px 24px -12px rgba(247,143,27,.8);}
.sx-ladder.in .sx-rung-bar{transform:scaleX(1);}
.sx-rung-n{font-size:.86rem;letter-spacing:.12em;color:var(--ember-hi);align-self:start;padding-top:3px;}
.sx-rung-body h3{font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.sx-rung-body p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.64;}

/* --- S8: who this is for, on folded-corner cards --- */
.sx-fits{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.sx-fit{position:relative;grid-column:span 2;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 28px 28px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.sx-fit:nth-child(4),.sx-fit:nth-child(5){grid-column:span 3;}
.sx-fit:hover{transform:translateY(-5px);border-color:var(--ember);box-shadow:0 30px 58px -34px rgba(21,17,12,.32);}
/* The folded corner: a paper triangle lifting off the top-right. */
.sx-fit-fold{position:absolute;right:0;top:0;width:38px;height:38px;
  background:linear-gradient(225deg,var(--paper-2) 0 50%,transparent 50%);
  border-left:1px solid var(--line);border-bottom:1px solid var(--line);
  transform-origin:top right;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.sx-fit:hover .sx-fit-fold{transform:scale(1.25);}
.sx-fit-n{display:block;font-size:.57rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:12px;}
.sx-fit p{font-size:1.01rem;color:var(--ink);line-height:1.68;}

/* --- S9/S10: CTA + FAQ --- */
.spe-cta canvas.ai-net{opacity:.5;}
.sx-faqsec .sec-head{max-width:960px;margin-inline:auto;text-align:center;}
.sx-faq{max-width:960px;margin-inline:auto;}

@media(prefers-reduced-motion:reduce){
  .spe-fig-grid,.spe-live-rot i,.sx-gr-bar b span,.sx-gr-tags i,.sx-gr-pass,.sx-gr-meter i,
  .sx-branch-flag,.sx-folder-meta i,.sx-reason-sweep{animation:none;}
  .spe-fig-scan,.sx-gr-pass{display:none;}
  .spe-live-rot i{opacity:0;}
  .spe-live-rot i:first-child{opacity:1;}
  .sx-gr-bar b .s1{opacity:0;}
  .sx-gr-bar b .s2{opacity:1;}
  .sx-gr-tags i{background:var(--ember-hi);border-color:transparent;}
  .sx-gr-meter i{transform:scaleX(1);}
  .sx-reason-sweep{transform:scaleX(0);}
  .sx-rung-bar{transition-duration:.01s;transition-delay:0s;}
}

@media(max-width:1180px){
  .sx-branch{grid-template-columns:22px 132px 1fr;gap:14px;}
  .sx-rung{grid-template-columns:150px 48px 1fr;gap:20px;}
}
@media(max-width:980px){
  .spe-hero-grid{grid-template-columns:1fr;gap:40px;}
  .spe-hero-fig{order:-1;max-width:560px;}
  .sx-lede-grid{grid-template-columns:1fr;gap:44px;}
  .sx-tracks{grid-template-columns:1fr;gap:34px;}
  .sx-folders{grid-template-columns:repeat(2,1fr);}
  .sx-folder,.sx-folder:nth-child(4),.sx-folder:nth-child(5){grid-column:span 1;}
  .sx-folder:nth-child(5){grid-column:span 2;}
  .sx-fits{grid-template-columns:repeat(2,1fr);}
  .sx-fit,.sx-fit:nth-child(4),.sx-fit:nth-child(5){grid-column:span 1;}
  .sx-fit:nth-child(5){grid-column:span 2;}
}
@media(max-width:760px){
  .sx-branch{grid-template-columns:22px 1fr;gap:8px 14px;padding:16px 20px 16px 34px;}
  .sx-branch-guide{left:20px;}
  .sx-branch-path{grid-column:2;padding-top:2px;}
  .sx-branch p{grid-column:2;}
  .sx-folders,.sx-fits{grid-template-columns:1fr;}
  .sx-folder,.sx-folder:nth-child(4),.sx-folder:nth-child(5),
  .sx-fit,.sx-fit:nth-child(4),.sx-fit:nth-child(5){grid-column:span 1;}
  /* The ladder reads top-down once the bars have no room to widen. */
  .sx-rung{grid-template-columns:44px 1fr;gap:8px 16px;padding:22px 0;}
  .sx-rung-bar{grid-column:1 / -1;width:calc(30% + var(--i) * 14%);margin-bottom:10px;}
  .sx-verdict{padding-left:18px;font-size:1.02rem;}
  .sx-reason{grid-template-columns:44px 1fr;gap:16px;}
  .sx-reason:nth-child(even){padding-left:6px;}
  .sx-reason:nth-child(even):hover{padding-left:18px;}
  .spe-fig-live{left:12px;top:12px;min-width:0;}
}

/* ===== M365 & AZURE (cloud console) ===== */
/* hero */
.maz-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.maz-hero-txt h1{margin-top:14px;}
.maz-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.maz-hero-fig{position:relative;z-index:2;}
.maz-fig-frame{display:block;position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:3/2;}
.maz-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(21,17,12,.42));pointer-events:none;}
.maz-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.maz-hero-fig:hover .maz-fig-frame img{transform:scale(1.04);}
.maz-fig-status{position:absolute;left:-16px;bottom:26px;display:flex;align-items:center;gap:12px;background:var(--cream);color:var(--ink);border-radius:14px;padding:12px 18px 12px 15px;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);z-index:3;}
.maz-status-dot{flex:0 0 auto;width:11px;height:11px;border-radius:50%;background:#28c840;box-shadow:0 0 0 5px rgba(40,200,64,.16);animation:pulse 1.9s infinite;}
.maz-status-txt{display:flex;flex-direction:column;line-height:1.25;}
.maz-status-txt strong{font-size:.9rem;}
.maz-status-txt span{font-size:.74rem;color:var(--muted);}
.maz-fig-chip{position:absolute;right:-10px;top:24px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.64rem;letter-spacing:.06em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;}
.maz-chip-dot{width:7px;height:7px;border-radius:50%;}
.maz-chip-dot.m{background:var(--ember-hi);}
.maz-chip-dot.a{background:#2f9bea;}
.maz-chip-sep{opacity:.5;margin:0 1px;}

/* intro (light) */
.maz-intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:54px;align-items:center;}
.maz-intro-txt .eyebrow{margin-bottom:14px;}
.maz-intro-txt h2{font-size:clamp(1.9rem,3.6vw,2.8rem);margin-bottom:22px;}
.maz-intro-txt p{font-size:1.06rem;color:var(--muted);line-height:1.85;}
.maz-outcomes{background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:26px 26px 12px;box-shadow:0 30px 60px -40px rgba(21,17,12,.34);}
.maz-outcomes-h{display:block;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:16px;}
.maz-outcome{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);}
.maz-outcome:last-child{border-bottom:none;}
.maz-outcome-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .3s,transform .3s;}
.maz-outcome:hover .maz-outcome-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.maz-outcome-ico svg{width:21px;height:21px;}
.maz-outcome h3{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:2px;}
.maz-outcome p{font-size:.9rem;color:var(--muted);line-height:1.5;}

/* capabilities — quadrant (dark) */
.maz-cap-sec{background:var(--ink);color:var(--cream);overflow:hidden;}
.maz-cap-sec canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.24;}
.maz-cap-sec .glow-1{top:-160px;right:-120px;opacity:.32;}
.maz-cap-sec .wrap{position:relative;z-index:2;}
.maz-cap-sec .sec-head h2 em{color:var(--ember-hi);}
.maz-cap-sec .sec-head p{color:rgba(251,248,241,.76);}
.maz-caps{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.maz-cap{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:20px;padding:34px 32px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;}
.maz-cap:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.5);}
.maz-cap-no{position:absolute;right:18px;top:6px;font-family:'Fraunces',serif;font-size:5.5rem;font-weight:500;line-height:1;color:rgba(255,255,255,.05);pointer-events:none;}
.maz-cap-ico{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.28);color:var(--ember-hi);margin-bottom:20px;transition:background .35s,color .35s,transform .35s;}
.maz-cap:hover .maz-cap-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.maz-cap-ico svg{width:27px;height:27px;}
.maz-cap h3{font-family:'Fraunces',serif;font-size:1.42rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:10px;line-height:1.18;position:relative;}
.maz-cap p{font-size:.98rem;color:rgba(251,248,241,.74);line-height:1.6;max-width:90%;}

/* dashboard showcase (light, before CTA) */
.maz-dash-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.maz-dash{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 44px 86px -42px rgba(21,17,12,.42);}
.maz-dash-bar{display:flex;align-items:center;gap:10px;padding:15px 18px;background:var(--paper-2);border-bottom:1px solid var(--line);}
.maz-dash-name{display:inline-flex;align-items:center;gap:9px;font-size:.74rem;color:var(--ink);font-weight:600;}
.maz-dash-dot{width:8px;height:8px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.7);}
.maz-dash-region{margin-left:auto;display:inline-flex;align-items:center;font-size:.66rem;font-weight:600;color:var(--ember-deep);background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.28);border-radius:100px;padding:5px 12px;}
.maz-dash-body{padding:18px;background:linear-gradient(180deg,#fbf8f1,#f1ebdd);display:flex;flex-direction:column;gap:14px;}
.maz-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.maz-tile{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
.maz-tile-k{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-d);}
.maz-tile strong{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;color:var(--ink);line-height:1;}
.maz-tile strong.ok{color:#2c9a55;}
.maz-chart{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px 6px;}
.maz-chart-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.maz-chart-h .mono{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-d);}
.maz-chart-tag{font-size:.7rem;font-weight:600;color:#2c9a55;}
.maz-chart svg{display:block;width:100%;height:84px;}
.maz-svcs{display:flex;flex-direction:column;gap:10px;}
.maz-svc{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;}
.maz-svc-l{display:inline-flex;align-items:center;gap:10px;font-size:.86rem;font-weight:500;color:var(--ink);}
.maz-svc-i{width:18px;height:18px;border-radius:5px;flex:0 0 auto;}
.maz-svc-i.m{background:linear-gradient(150deg,var(--ember),var(--ember-deep));}
.maz-svc-i.a{background:linear-gradient(150deg,#2f9bea,#1f6fb0);}
.maz-svc-pill{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:600;color:#2c9a55;background:rgba(40,200,64,.12);border-radius:100px;padding:4px 11px;}
.maz-svc-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:#28c840;}
.maz-dash-txt .sec-head{margin-bottom:24px;}
.maz-dash-txt .sec-head h2{font-size:clamp(1.9rem,3.6vw,2.7rem);}
.maz-bens{display:flex;flex-direction:column;gap:13px;}
.maz-ben{display:flex;gap:16px;align-items:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:18px 20px;transition:transform .3s,border-color .3s,box-shadow .3s;}
.maz-ben:hover{transform:translateX(5px);border-color:var(--ember);box-shadow:0 22px 44px -28px rgba(21,17,12,.3);}
.maz-ben-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:background .3s,transform .3s;}
.maz-ben:hover .maz-ben-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg);}
.maz-ben-ico svg{width:23px;height:23px;}
.maz-ben h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:3px;}
.maz-ben p{font-size:.94rem;color:var(--muted);line-height:1.55;}
.maz-cta canvas.ai-net{opacity:.5;}

@media(max-width:980px){
  .maz-hero-grid{grid-template-columns:1fr;gap:40px;}
  .maz-hero-fig{order:-1;max-width:560px;}
  .maz-intro-grid{grid-template-columns:1fr;gap:36px;}
  .maz-caps{grid-template-columns:1fr;}
  .maz-dash-grid{grid-template-columns:1fr;gap:40px;}
  .maz-dash{order:-1;}
}
@media(max-width:600px){
  .maz-tiles{grid-template-columns:1fr 1fr;}
}

/* ===== BACK-OFFICE OPERATIONS (offshoring / operations) ===== */
/* hero */
.bo-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.bo-hero-txt h1{margin-top:14px;font-size:clamp(2.3rem,4.3vw,3.15rem);text-wrap:balance;}
.bo-hero-txt h1 em{white-space:nowrap;}
.bo-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.bo-hero-fig{position:relative;z-index:2;}
.bo-fig-frame{display:block;position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:3/2;}
.bo-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(21,17,12,.42));pointer-events:none;}
.bo-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.bo-hero-fig:hover .bo-fig-frame img{transform:scale(1.04);}
.bo-fig-chip{position:absolute;right:-10px;top:24px;display:inline-flex;align-items:center;gap:9px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.64rem;letter-spacing:.06em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;}
.bo-chip-dots{display:inline-flex;gap:4px;}
.bo-chip-dots i{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);animation:dynWaffle 2.4s ease-in-out infinite;}
.bo-chip-dots i:nth-child(2){animation-delay:.3s;}
.bo-chip-dots i:nth-child(3){animation-delay:.6s;}
.bo-fig-stat{position:absolute;left:-16px;bottom:26px;display:flex;align-items:center;gap:13px;background:var(--cream);color:var(--ink);border-radius:14px;padding:12px 18px 12px 14px;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);z-index:3;}
.bo-stat-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.bo-stat-ico svg{width:21px;height:21px;}
.bo-stat-txt{display:flex;flex-direction:column;line-height:1.2;}
.bo-stat-txt strong{font-size:.92rem;}
.bo-stat-txt span{font-size:.76rem;color:var(--muted);}

/* hero image — refined, professional animated effects
   (soft breathing ember glow, a slow restrained sheen, gentle float, a live
   SLA ticker with a small equalizer). Deliberately understated, not bouncy. */
.bo-hero-fig::before{content:"";position:absolute;inset:-6% -6% -6% -2%;z-index:0;pointer-events:none;background:radial-gradient(58% 58% at 62% 42%,rgba(247,143,27,.22),transparent 70%);filter:blur(22px);animation:boBreathe 7.5s ease-in-out infinite;}
@keyframes boBreathe{0%,100%{opacity:.45;transform:scale(.98);}50%{opacity:.85;transform:scale(1.02);}}
.bo-fig-shine{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:inherit;}
.bo-fig-shine::before{content:"";position:absolute;top:-30%;left:-140%;width:46%;height:160%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent);transform:rotate(8deg);animation:boShine 9s ease-in-out infinite;}
@keyframes boShine{0%,82%{left:-140%;}93%,100%{left:150%;}}
.bo-fig-chip{animation:boFloat 7.5s ease-in-out infinite;}
.bo-fig-stat{animation:boFloat 8.5s ease-in-out infinite .6s;}
@keyframes boFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-4px);}}
.bo-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;flex:0 0 auto;}
.bo-fig-ticker{position:absolute;right:-10px;bottom:22px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.76);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.1em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;white-space:nowrap;animation:boFloat 8s ease-in-out infinite 1s;}
/* rotating overlay labels — cross-fade as JS swaps their text */
.bo-rot{transition:opacity .34s ease;}
.bo-stat-txt{overflow:hidden;}
.bo-fig-eq{display:inline-flex;align-items:flex-end;gap:2px;height:10px;margin-left:1px;}
.bo-fig-eq i{width:2px;height:4px;border-radius:1px;background:var(--ember-hi);animation:boEq 1.1s ease-in-out infinite;}
.bo-fig-eq i:nth-child(2){animation-delay:.22s;}
.bo-fig-eq i:nth-child(3){animation-delay:.44s;}
@keyframes boEq{0%,100%{height:3px;opacity:.6;}50%{height:9px;opacity:1;}}
@media(prefers-reduced-motion:reduce){.bo-hero-fig::before,.bo-fig-shine::before,.bo-fig-chip,.bo-fig-stat,.bo-fig-ticker,.bo-fig-eq i,.bo-live{animation:none;}}

/* ===== BACK-OFFICE below-hero — "Operations Control" motif (.bx-) =====
   Status pills, solid number badges, an animated process-pipeline monitor,
   SLA meters and a market-growth chart. Distinct from every other page. */
.bx-sec{position:relative;overflow:hidden;}
.bx-sec .wrap{position:relative;z-index:2;}
.bx-dark{background:var(--ink);color:var(--cream);}
.bx-dark.bx-how{background:var(--ink-2);}
.bx-dark canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.bx-dark .glow-1{top:-160px;right:-120px;opacity:.3;}
.bx-dark .glow-3{top:-150px;left:-130px;opacity:.26;}
.bx-light{background:var(--paper-2);}

.bx-eyebrow{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:16px;display:inline-block;}
.bx-dark .bx-eyebrow,.bx-eyebrow.light{color:var(--ember-hi);}
.bx-head{max-width:860px;margin-bottom:52px;}
.bx-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.bx-head h2{margin-bottom:16px;}
.bx-dark h2 em{color:var(--ember-hi);}
.bx-light h2 em{color:var(--ember-deep);}
.bx-head p{color:var(--muted);font-size:1.05rem;line-height:1.75;}
.bx-dark .bx-head p{color:rgba(251,248,241,.72);}

.bx-pill{display:inline-flex;align-items:center;gap:7px;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:100px;}
.bx-pill-dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;}
.bx-pill-ok{color:var(--ember-hi);background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.3);}
.bx-pill-ok .bx-pill-dot{background:var(--ember-hi);box-shadow:0 0 6px var(--ember-hi);}

/* §1 opening statement (dark) + pipeline monitor */
.bx-open-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;}
.bx-open-txt h2{font-size:clamp(1.9rem,3.5vw,2.6rem);line-height:1.14;margin-bottom:20px;}
.bx-open-txt p{color:rgba(251,248,241,.8);font-size:1.02rem;line-height:1.78;margin-bottom:14px;}
.bx-open-muted{color:rgba(251,248,241,.6)!important;font-size:.98rem!important;}
.bx-open-txt .btn{margin-top:14px;}
.bx-monitor{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));border:1px solid var(--line-d);border-radius:16px;padding:22px 24px 24px;box-shadow:0 44px 84px -50px rgba(0,0,0,.72);}
.bx-monitor-head{display:flex;align-items:center;gap:9px;font-size:.6rem;letter-spacing:.14em;color:rgba(251,248,241,.85);padding-bottom:16px;border-bottom:1px solid var(--line-d);margin-bottom:22px;}
.bx-monitor-state{margin-left:auto;display:inline-grid;}
.bx-monitor-state span{grid-area:1/1;display:inline-flex;align-items:center;padding:4px 10px;border-radius:100px;font-size:.54rem;letter-spacing:.12em;white-space:nowrap;}
.bx-state-bad{color:rgba(251,248,241,.62);background:rgba(255,255,255,.06);border:1px solid var(--line-d);animation:bxStateBad 6s ease-in-out infinite;}
.bx-state-ok{color:var(--ember-hi);background:rgba(247,143,27,.14);border:1px solid rgba(247,143,27,.4);opacity:0;animation:bxStateOk 6s ease-in-out infinite;}
@keyframes bxStateBad{0%,38%{opacity:1;}50%,94%{opacity:0;}100%{opacity:1;}}
@keyframes bxStateOk{0%,38%{opacity:0;}50%,94%{opacity:1;}100%{opacity:0;}}
.bx-pipe{position:relative;height:76px;margin-bottom:24px;}
.bx-pipe-track,.bx-pipe-flow{position:absolute;left:6%;right:6%;top:22px;height:2px;}
.bx-pipe-track{background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(247,143,27,.5));border-radius:2px;}
.bx-pipe-flow i{position:absolute;top:50%;left:0;width:8px;height:8px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px var(--ember-hi);transform:translate(-50%,-50%);opacity:0;animation:bxFlow 3.4s linear infinite;}
.bx-pipe-flow i:nth-child(2){animation-delay:.68s;}
.bx-pipe-flow i:nth-child(3){animation-delay:1.36s;}
.bx-pipe-flow i:nth-child(4){animation-delay:2.04s;}
.bx-pipe-flow i:nth-child(5){animation-delay:2.72s;}
@keyframes bxFlow{0%{left:0;opacity:0;}8%{opacity:1;}92%{opacity:1;}100%{left:100%;opacity:0;}}
.bx-gate{position:absolute;top:22px;left:calc(6% + (88% * var(--g) / 3));transform:translateX(-50%);}
.bx-gate b{position:absolute;top:0;left:0;width:14px;height:14px;border-radius:50%;background:var(--ink);border:2px solid rgba(247,143,27,.45);transform:translate(-50%,-50%);animation:bxGate 3.4s ease-in-out infinite;animation-delay:calc(var(--g) * .34s);}
@keyframes bxGate{0%,100%{border-color:rgba(247,143,27,.4);box-shadow:none;}12%{border-color:var(--ember-hi);box-shadow:0 0 12px rgba(247,143,27,.85);}}
.bx-gate em{position:absolute;top:20px;left:0;transform:translateX(-50%);font-style:normal;font-size:.5rem;letter-spacing:.08em;color:rgba(251,248,241,.6);white-space:nowrap;}
.bx-monitor-meters{display:flex;flex-direction:column;gap:12px;}
.bx-meter{display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:12px;}
.bx-meter-lbl{font-size:.54rem;letter-spacing:.1em;color:rgba(251,248,241,.6);}
.bx-meter-track{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;}
.bx-meter-fill{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));}
.bx-monitor.in .bx-meter-fill{width:var(--f);transition:width 1.3s cubic-bezier(.2,.7,.2,1) .3s;}
.bx-meter-val{font-size:.56rem;letter-spacing:.05em;color:var(--ember-hi);min-width:52px;text-align:right;}

/* §2 signs (light) */
.bx-signs-grid{list-style:none;margin:0 0 34px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.bx-sign{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:20px 22px;transition:transform .3s,box-shadow .3s,border-color .3s;}
.bx-sign:last-child{grid-column:1 / -1;}
.bx-sign:hover{transform:translateY(-4px);box-shadow:0 24px 44px -34px rgba(21,17,12,.35);border-color:rgba(247,143,27,.35);}
.bx-sign-ind{position:relative;width:22px;height:22px;margin-top:2px;flex:0 0 auto;}
.bx-sign-ind i{position:absolute;top:50%;left:50%;width:9px;height:9px;border-radius:50%;background:#c98a35;transform:translate(-50%,-50%);}
.bx-sign-ind::before{content:"";position:absolute;top:50%;left:50%;width:9px;height:9px;border-radius:50%;border:1px solid rgba(201,138,53,.55);transform:translate(-50%,-50%);animation:bxPing 2.6s ease-out infinite;}
.bx-sign:nth-child(even) .bx-sign-ind::before{animation-delay:1.3s;}
@keyframes bxPing{0%{width:9px;height:9px;opacity:.85;}100%{width:26px;height:26px;opacity:0;}}
.bx-sign p{font-size:.95rem;color:var(--ink);line-height:1.55;}
.bx-statband{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;background:var(--ink);color:var(--cream);border-radius:16px;padding:32px 40px;box-shadow:0 44px 84px -54px rgba(21,17,12,.6);}
.bx-statband-fig{text-align:center;padding-right:36px;border-right:1px solid var(--line-d);}
.bx-statband-num{font-size:clamp(2.6rem,5vw,3.6rem);color:#fff;line-height:1;}
.bx-statband-lbl{display:block;margin-top:8px;font-size:.6rem;letter-spacing:.14em;color:var(--ember-hi);}
.bx-statband p{font-size:1rem;color:rgba(251,248,241,.82);line-height:1.7;}
.bx-statband strong{color:#fff;}

/* §3 services (dark) */
.bx-svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.bx-svc{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:12px;padding:22px 22px 24px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;}
.bx-svc::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.bx-svc:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.4);}
.bx-svc:hover::before{transform:scaleX(1);}
.bx-svc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;}
.bx-svc-code{font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.08em;color:var(--ember-hi);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.26);border-radius:6px;padding:4px 9px;font-weight:600;}
.bx-svc h3{font-family:'Fraunces',serif;font-size:1.04rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;line-height:1.28;}
.bx-svc p{font-size:.85rem;color:rgba(251,248,241,.7);line-height:1.56;}

/* §4 why (light) */
.bx-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.bx-why-card{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:28px 26px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.bx-why-card:hover{transform:translateY(-6px);box-shadow:0 30px 54px -34px rgba(21,17,12,.35);border-color:rgba(247,143,27,.4);}
.bx-why-ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin-bottom:18px;transition:transform .35s;}
.bx-why-card:hover .bx-why-ico{transform:rotate(-6deg) scale(1.05);}
.bx-why-ico svg{width:26px;height:26px;}
.bx-why-tick{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .7s ease .1s;}
.bx-why-card.in .bx-why-tick{stroke-dashoffset:0;}
.bx-why-card h3{font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;}
.bx-why-card p{font-size:.93rem;color:var(--muted);line-height:1.6;}

/* §5 how we work (dark) */
.bx-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.bx-flow-step{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:14px;padding:26px 24px 24px;transition:transform .35s,background .35s,border-color .35s;}
.bx-flow-step:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.4);}
.bx-flow-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-family:'JetBrains Mono',monospace;font-size:.94rem;font-weight:600;margin-bottom:16px;box-shadow:0 12px 26px -12px rgba(247,143,27,.7);}
.bx-flow-step h3{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:8px;}
.bx-flow-step p{font-size:.9rem;color:rgba(251,248,241,.72);line-height:1.6;}

/* §6 who + market (light) */
.bx-who-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.bx-who-txt h2{margin:8px 0 16px;}
.bx-who-lede{font-size:1.05rem;color:var(--muted);line-height:1.75;margin-bottom:26px;}
.bx-who-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.bx-who-list li{display:flex;align-items:flex-start;gap:14px;font-size:1rem;color:var(--ink);line-height:1.55;}
.bx-who-mark{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-top:2px;border-radius:8px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.bx-who-mark svg{width:13px;height:13px;}
.bx-market{position:relative;background:var(--ink);color:var(--cream);border-radius:16px;padding:26px 30px 28px;box-shadow:0 44px 84px -52px rgba(21,17,12,.6);}
.bx-market-head{display:flex;align-items:center;gap:9px;font-size:.6rem;letter-spacing:.14em;color:rgba(251,248,241,.8);margin-bottom:24px;}
.bx-market-chart{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:end;height:170px;margin-bottom:38px;}
.bx-bar{position:relative;display:flex;height:100%;align-items:flex-end;}
.bx-bar-fill{display:block;width:100%;height:0;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));}
.bx-bar-a .bx-bar-fill{opacity:.62;}
.bx-market.in .bx-bar-a .bx-bar-fill{height:47%;transition:height 1.3s cubic-bezier(.2,.7,.2,1) .3s;}
.bx-market.in .bx-bar-b .bx-bar-fill{height:100%;transition:height 1.5s cubic-bezier(.2,.7,.2,1) .5s;}
.bx-bar-cap{position:absolute;left:0;right:0;bottom:-24px;text-align:center;font-size:.56rem;letter-spacing:.1em;color:rgba(251,248,241,.55);}
.bx-market-arrow{align-self:center;color:var(--ember-hi);}
.bx-market-arrow svg{width:34px;height:34px;}
.bx-market-figs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.bx-market-fig{background:rgba(255,255,255,.04);border:1px solid var(--line-d);border-radius:10px;padding:14px 16px;}
.bx-market-fig-hi{border-color:rgba(247,143,27,.4);background:rgba(247,143,27,.08);}
.bx-market-num{font-family:'Fraunces',serif;font-weight:500;font-size:1.7rem;color:#fff;line-height:1;}
.bx-market-cur{color:var(--ember-hi);font-size:.6em;vertical-align:super;}
.bx-market-yr{display:block;margin-top:6px;font-size:.54rem;letter-spacing:.1em;color:rgba(251,248,241,.55);}
.bx-market-note{font-size:.86rem;color:rgba(251,248,241,.66);line-height:1.6;}

/* §7 cost + CTA (dark) */
.bx-cta{text-align:left;}
.bx-cta canvas.ai-net{opacity:.5;}
.bx-cta-head{max-width:820px;margin:0 auto 40px;text-align:center;}
.bx-cta-head h2{margin-bottom:16px;}
.bx-cta-head h2 em{color:var(--ember-hi);}
.bx-cta-head p{color:rgba(251,248,241,.78);font-size:1.05rem;line-height:1.7;}
.bx-cost-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:40px;}
.bx-cost{background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:12px;padding:22px 18px;transition:transform .35s,border-color .35s,background .35s;}
.bx-cost:hover{transform:translateY(-5px);border-color:rgba(247,143,27,.4);background:rgba(255,255,255,.05);}
.bx-cost-hi{border-color:rgba(247,143,27,.45);background:rgba(247,143,27,.08);}
.bx-cost-ico{display:inline-flex;color:var(--ember-hi);margin-bottom:14px;}
.bx-cost-ico svg{width:24px;height:24px;}
.bx-cost h3{font-family:'Fraunces',serif;font-size:1rem;font-weight:500;color:#fff;margin-bottom:8px;line-height:1.25;}
.bx-cost p{font-size:.82rem;color:rgba(251,248,241,.68);line-height:1.5;}
.bx-cta-foot{max-width:820px;margin:0 auto;text-align:center;}
.bx-cta-foot p{color:rgba(251,248,241,.82);font-size:1.05rem;line-height:1.7;margin-bottom:24px;}
.bx-cta-foot strong{color:#fff;}
.bx-cta .cta-cta{justify-content:center;}

/* §8 FAQ (light) — shared .ms-faq */
.bx-faqsec .bx-head{max-width:900px;}

@media(prefers-reduced-motion:reduce){
  .bx-state-bad,.bx-state-ok,.bx-pipe-flow i,.bx-gate b,.bx-sign-ind::before{animation:none;}
  .bx-state-bad{opacity:0;}.bx-state-ok{opacity:1;}
  .bx-monitor.in .bx-meter-fill,.bx-market.in .bx-bar-a .bx-bar-fill,.bx-market.in .bx-bar-b .bx-bar-fill{transition:none;}
  .bx-why-card.in .bx-why-tick{transition:none;stroke-dashoffset:0;}
}

@media(max-width:980px){
  .bo-hero-grid{grid-template-columns:1fr;gap:40px;}
  .bo-hero-fig{order:-1;max-width:560px;}
  .bx-open-grid{grid-template-columns:1fr;gap:40px;}
  .bx-svc-grid{grid-template-columns:1fr 1fr;}
  .bx-why-grid{grid-template-columns:1fr 1fr;}
  .bx-flow{grid-template-columns:1fr 1fr;}
  .bx-who-grid{grid-template-columns:1fr;gap:38px;}
  .bx-cost-grid{grid-template-columns:repeat(3,1fr);}
  .bx-statband{grid-template-columns:1fr;gap:20px;text-align:center;}
  .bx-statband-fig{border-right:0;border-bottom:1px solid var(--line-d);padding:0 0 18px;}
}
@media(max-width:680px){
  .bx-signs-grid{grid-template-columns:1fr;}
  .bx-sign:last-child{grid-column:auto;}
  .bx-svc-grid{grid-template-columns:1fr;}
  .bx-why-grid{grid-template-columns:1fr;}
  .bx-flow{grid-template-columns:1fr;}
  .bx-cost-grid{grid-template-columns:1fr 1fr;}
}

/* ===== ADVANCED SOFTWARE DEVELOPMENT (engineering excellence) ===== */
/* hero */
.asd-hero-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;}
.asd-hero-txt h1{margin-top:14px;}
.asd-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.asd-hero-fig{position:relative;z-index:2;}
.asd-fig-frame{display:block;position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-d);box-shadow:0 50px 92px -42px rgba(0,0,0,.74);aspect-ratio:3/2;}
.asd-fig-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(21,17,12,.42));pointer-events:none;}
.asd-fig-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.asd-hero-fig:hover .asd-fig-frame img{transform:scale(1.04);}
.asd-fig-chip{position:absolute;right:-10px;top:24px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.66);border:1px solid var(--line-d);color:#fff;font-size:.64rem;letter-spacing:.06em;padding:8px 14px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;}
.asd-chip-br{color:var(--ember-hi);font-weight:600;}
.asd-fig-badge{position:absolute;left:-16px;bottom:26px;display:flex;align-items:center;gap:13px;background:var(--cream);color:var(--ink);border-radius:14px;padding:12px 18px 12px 14px;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);z-index:3;}
.asd-badge-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.asd-badge-ico svg{width:21px;height:21px;}
.asd-badge-txt{display:flex;flex-direction:column;line-height:1.2;}
.asd-badge-txt strong{font-size:.92rem;}
.asd-badge-txt span{font-size:.76rem;color:var(--muted);}

/* hero image — animated effects + rotating overlay labels (reuses global bo* keyframes) */
.asd-hero-fig::before{content:"";position:absolute;inset:-6% -6% -6% -2%;z-index:0;pointer-events:none;background:radial-gradient(58% 58% at 60% 42%,rgba(247,143,27,.2),transparent 70%);filter:blur(22px);animation:boBreathe 7.5s ease-in-out infinite;}
.asd-fig-shine{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:inherit;}
.asd-fig-shine::before{content:"";position:absolute;top:-30%;left:-140%;width:46%;height:160%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent);transform:rotate(8deg);animation:boShine 9s ease-in-out infinite;}
.asd-fig-chip{white-space:nowrap;animation:boFloat 7.5s ease-in-out infinite;}
.asd-fig-badge{animation:boFloat 8.5s ease-in-out infinite .6s;}
.asd-badge-txt{overflow:hidden;}
.asd-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;flex:0 0 auto;}
.asd-fig-ticker{position:absolute;right:-10px;bottom:26px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,17,12,.78);border:1px solid var(--line-d);color:#fff;font-size:.58rem;letter-spacing:.08em;padding:7px 13px;border-radius:100px;backdrop-filter:blur(6px);z-index:3;white-space:nowrap;animation:boFloat 8s ease-in-out infinite 1s;}
.asd-fig-eq{display:inline-flex;align-items:flex-end;gap:2px;height:10px;margin-left:1px;}
.asd-fig-eq i{width:2px;height:4px;border-radius:1px;background:var(--ember-hi);animation:boEq 1.1s ease-in-out infinite;}
.asd-fig-eq i:nth-child(2){animation-delay:.22s;}
.asd-fig-eq i:nth-child(3){animation-delay:.44s;}
.asd-rot{transition:opacity .34s ease;}
@media(prefers-reduced-motion:reduce){.asd-hero-fig::before,.asd-fig-shine::before,.asd-fig-chip,.asd-fig-badge,.asd-fig-ticker,.asd-fig-eq i,.asd-live{animation:none;}}

/* ===== ADVANCED SOFTWARE DEV below-hero — "Architecture Console" motif (.ad-) =====
   Code-comment eyebrows, an animated distributed-systems node graph, failure-
   pattern cards, architecture-module service cards, a build pipeline and a
   talent-gap stat. Distinct from every other page. */
.ad-sec{position:relative;overflow:hidden;}
.ad-sec .wrap{position:relative;z-index:2;}
.ad-dark{background:var(--ink);color:var(--cream);}
.ad-dark.ad-how{background:var(--ink-2);}
.ad-dark canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.2;}
.ad-dark .glow-1{top:-160px;left:-120px;opacity:.3;}
.ad-dark .glow-3{top:-150px;right:-130px;opacity:.26;}
/* subtle architecture dot-grid on dark sections */
.ad-dark::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px;-webkit-mask:radial-gradient(120% 92% at 50% 0,#000,transparent 78%);mask:radial-gradient(120% 92% at 50% 0,#000,transparent 78%);}
.ad-light{background:var(--paper-2);}

.ad-eyebrow{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.12em;color:var(--ember-deep);margin-bottom:16px;display:inline-block;}
.ad-eyebrow::before{content:"// ";opacity:.7;}
.ad-dark .ad-eyebrow,.ad-eyebrow.light{color:var(--ember-hi);}
.ad-head{max-width:880px;margin-bottom:52px;}
.ad-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.ad-head h2{margin-bottom:16px;}
.ad-dark h2 em{color:var(--ember-hi);}
.ad-light h2 em{color:var(--ember-deep);}
.ad-head p{color:var(--muted);font-size:1.05rem;line-height:1.75;}
.ad-dark .ad-head p{color:rgba(251,248,241,.72);}
.ad-head strong{color:var(--ink);}
.ad-dark .ad-head strong{color:#fff;}

/* §1 opener + distributed-systems node graph */
.ad-open{overflow:visible;}/* keep visible so the graph can stick */
.ad-open-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:56px;align-items:start;}
.ad-open-txt h2{font-size:clamp(1.9rem,3.5vw,2.55rem);line-height:1.14;margin-bottom:20px;}
.ad-open-txt p{color:var(--muted);font-size:1.02rem;line-height:1.78;margin-bottom:14px;}
.ad-open-muted{color:var(--muted)!important;font-size:.98rem!important;opacity:.82;}
.ad-open-txt .btn{margin-top:14px;}
/* solid dark panel so the graph reads on the light section; sticky on scroll */
.ad-graph{position:sticky;top:110px;align-self:start;background:linear-gradient(180deg,var(--ink-2),var(--ink));border:1px solid var(--line-d);border-radius:16px;padding:20px 22px 16px;box-shadow:0 40px 82px -46px rgba(21,17,12,.5);}
.ad-graph-head{display:flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.06em;color:rgba(251,248,241,.85);margin-bottom:4px;}
.ad-graph-tag{margin-left:auto;font-size:.54rem;letter-spacing:.12em;color:var(--ember-hi);background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.35);border-radius:4px;padding:3px 8px;}
.ad-graph-svg{width:100%;height:auto;display:block;overflow:visible;}
.ad-edge{stroke:rgba(247,143,27,.4);stroke-width:1.5;stroke-dasharray:4 8;animation:adFlow 1.5s linear infinite;}
.ad-edge-ring{stroke:rgba(251,248,241,.14);}
@keyframes adFlow{to{stroke-dashoffset:-24;}}
.ad-node-dot{fill:var(--ink-2);stroke:rgba(247,143,27,.55);stroke-width:1.5;}
.ad-node-ring{fill:none;stroke:rgba(247,143,27,.4);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:adNodePulse 2.6s ease-out infinite;animation-delay:var(--d,0s);}
@keyframes adNodePulse{0%{opacity:.7;transform:scale(1);}70%,100%{opacity:0;transform:scale(1.7);}}
.ad-node text{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:.04em;fill:rgba(251,248,241,.88);}
.ad-core .ad-node-dot{fill:rgba(247,143,27,.16);stroke:var(--ember-hi);stroke-width:2;}
.ad-core text{fill:#fff;font-size:9px;font-weight:600;}
.ad-core-halo{fill:none;stroke:var(--ember-hi);stroke-width:1.5;opacity:.5;transform-box:fill-box;transform-origin:center;animation:adCoreHalo 2.8s ease-in-out infinite;}
@keyframes adCoreHalo{0%,100%{opacity:.3;transform:scale(.9);}50%{opacity:.7;transform:scale(1.06);}}
.ad-graph-foot{display:flex;justify-content:space-between;font-size:.56rem;letter-spacing:.08em;color:rgba(251,248,241,.55);margin-top:4px;}
.ad-graph-ok{color:#28c840;}

/* §2 failure patterns (light) */
.ad-fail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px;}
.ad-fail-card{position:relative;background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:12px;padding:22px 22px 24px;transition:transform .35s,box-shadow .35s;}
.ad-fail-card:hover{transform:translateY(-5px);box-shadow:0 26px 48px -34px rgba(21,17,12,.35);}
.ad-fail-top{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.ad-fail-glyph{color:var(--ember);font-size:.9rem;font-weight:700;}
.ad-fail-tag{font-size:.62rem;letter-spacing:.1em;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);border-radius:5px;padding:4px 9px;}
.ad-fail-card p{font-size:.9rem;color:var(--muted);line-height:1.58;}
.ad-metric{display:grid;grid-template-columns:auto auto 1fr;gap:36px;align-items:center;background:var(--ink);color:var(--cream);border-radius:16px;padding:30px 40px;box-shadow:0 44px 84px -54px rgba(21,17,12,.6);}
.ad-metric-item{text-align:center;}
.ad-metric-num{display:block;font-size:clamp(2.2rem,4vw,3rem);color:#fff;line-height:1;}
.ad-metric-num .ad-count{color:var(--ember-hi);}
.ad-metric-lbl{display:block;margin-top:8px;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(251,248,241,.6);}
.ad-metric-note{font-size:.96rem;color:rgba(251,248,241,.82);line-height:1.65;border-left:1px solid var(--line-d);padding-left:36px;}
.ad-metric-note strong{color:var(--ember-hi);}

/* §3 services (dark, architecture modules) */
.ad-svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.ad-svc{position:relative;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:12px;padding:24px 22px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;}
.ad-svc:hover{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(247,143,27,.4);}
.ad-svc-node{position:absolute;top:16px;right:16px;width:10px;height:10px;border-radius:50%;background:transparent;border:1.5px solid rgba(247,143,27,.4);transition:background .35s,box-shadow .35s;}
.ad-svc:hover .ad-svc-node{background:var(--ember-hi);box-shadow:0 0 10px var(--ember-hi);}
.ad-svc-code{display:inline-block;font-size:.62rem;letter-spacing:.1em;color:var(--ember-hi);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.26);border-radius:5px;padding:4px 9px;margin-bottom:14px;}
.ad-svc h3{font-family:'Fraunces',serif;font-size:1.04rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;line-height:1.28;}
.ad-svc p{font-size:.84rem;color:rgba(251,248,241,.7);line-height:1.55;}

/* §4 why (light) */
.ad-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.ad-why-card{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:26px 24px;transition:transform .35s,box-shadow .35s,border-color .35s;}
.ad-why-card:hover{transform:translateY(-6px);box-shadow:0 30px 54px -34px rgba(21,17,12,.32);border-color:rgba(247,143,27,.4);}
.ad-why-check{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.05em;color:var(--muted);margin-bottom:14px;}
.ad-why-ok{color:#2fae62;font-weight:600;}
.ad-why-card h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin-bottom:9px;}
.ad-why-card p{font-size:.92rem;color:var(--muted);line-height:1.6;}

/* §5 how we work — build pipeline (dark) */
.ad-pipe{position:relative;list-style:none;margin:0;padding:0;}
.ad-pipe-rail{position:absolute;left:21px;top:14px;bottom:24px;width:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;}
.ad-pipe-pulse{position:absolute;left:0;top:-70px;width:100%;height:70px;background:linear-gradient(180deg,transparent,var(--ember-hi),transparent);animation:adBuild 3.4s ease-in-out infinite;}
@keyframes adBuild{0%{top:-70px;}100%{top:100%;}}
.ad-pipe-step{position:relative;display:grid;grid-template-columns:44px 1fr;gap:26px;padding:14px 0 26px;}
.ad-pipe-marker{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--ink-2);border:1px solid rgba(247,143,27,.4);color:var(--ember-hi);font-size:.9rem;font-weight:600;}
.ad-pipe-body{padding-top:9px;}
.ad-pipe-body h3{font-family:'Fraunces',serif;font-size:1.14rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:7px;}
.ad-pipe-body p{font-size:.94rem;color:rgba(251,248,241,.72);line-height:1.6;}
/* two-column: scrolling pipeline (left) + sticky animated build console (right) */
.ad-how{overflow:visible;}/* keep visible so the console can stick */
.ad-how-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;}
.ad-console{position:sticky;top:110px;align-self:start;background:var(--ink-2);border:1px solid var(--line-d);border-radius:14px;overflow:hidden;box-shadow:0 44px 84px -50px rgba(0,0,0,.75);}
.ad-console-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line-d);background:rgba(255,255,255,.02);font-size:.6rem;letter-spacing:.04em;}
.ad-console-dots{display:inline-flex;gap:5px;}
.ad-console-dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.18);}
.ad-console-dots i:nth-child(1){background:rgba(247,143,27,.7);}
.ad-console-title{color:rgba(251,248,241,.6);}
.ad-console-head .asd-live{margin-left:auto;}
.ad-console-body{position:relative;padding:18px 18px 14px;display:flex;flex-direction:column;gap:9px;font-size:.72rem;line-height:1.5;}
.ad-console-line{position:relative;z-index:1;color:rgba(251,248,241,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ad-console-prompt{color:var(--ember-hi);margin-right:2px;}
.ad-console-line b{color:#2fae62;font-weight:600;}
.ad-console-active{color:#fff;}
.ad-caret{display:inline-block;width:7px;height:13px;background:var(--ember-hi);vertical-align:-2px;margin-left:4px;animation:adCaret 1s steps(1) infinite;}
@keyframes adCaret{0%,50%{opacity:1;}51%,100%{opacity:0;}}
.ad-console-sweep{position:absolute;left:0;right:0;top:8px;height:25px;background:linear-gradient(90deg,rgba(247,143,27,.16),rgba(247,143,27,.02));border-left:2px solid var(--ember-hi);pointer-events:none;z-index:0;animation:adSweep 5.4s ease-in-out infinite;}
@keyframes adSweep{0%{top:8px;opacity:0;}7%{opacity:1;}86%{opacity:1;}100%{top:calc(100% - 34px);opacity:0;}}
.ad-console-foot{display:flex;align-items:center;gap:14px;padding:12px 18px 16px;border-top:1px solid var(--line-d);}
.ad-console-bar{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;}
.ad-console-bar-fill{display:block;height:100%;width:8%;border-radius:3px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));animation:adBar 5.4s ease-in-out infinite;}
@keyframes adBar{0%{width:6%;}86%{width:100%;}100%{width:100%;}}
.ad-console-status{display:inline-flex;align-items:center;gap:6px;font-size:.56rem;letter-spacing:.1em;color:#2fae62;}
.ad-console-ok-dot{width:6px;height:6px;border-radius:50%;background:#2fae62;box-shadow:0 0 6px #2fae62;animation:msLive 1.9s infinite;}
@media(prefers-reduced-motion:reduce){.ad-console-sweep,.ad-caret,.ad-console-bar-fill,.ad-console-ok-dot{animation:none;}.ad-console-sweep{opacity:0;}.ad-console-bar-fill{width:100%;}}

/* §6 who + talent gap (light) */
.ad-who-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.ad-who-txt h2{margin:8px 0 16px;}
.ad-who-lede{font-size:1.05rem;color:var(--muted);line-height:1.75;margin-bottom:26px;}
.ad-who-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.ad-who-list li{display:flex;align-items:flex-start;gap:14px;font-size:1rem;color:var(--ink);line-height:1.55;}
.ad-who-mark{flex:0 0 auto;color:var(--ember-deep);font-weight:700;font-size:1.15rem;line-height:1.35;}
.ad-gap{position:relative;background:var(--ink);color:var(--cream);border-radius:16px;padding:26px 30px 28px;box-shadow:0 44px 84px -52px rgba(21,17,12,.6);}
.ad-gap-head{display:flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.06em;color:rgba(251,248,241,.8);margin-bottom:20px;}
.ad-gap-fig{margin-bottom:22px;}
.ad-gap-num{font-size:clamp(3rem,6vw,4.2rem);color:#fff;line-height:1;}
.ad-gap-num .ad-count{color:var(--ember-hi);}
.ad-gap-lbl{display:block;margin-top:8px;font-size:.82rem;color:rgba(251,248,241,.62);letter-spacing:.02em;}
.ad-gap-bars{display:flex;flex-direction:column;gap:14px;margin-bottom:20px;}
.ad-gap-bar-fill{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--ember),var(--ember-hi));width:0;}
.ad-gap.in .ad-gap-bar-fill{width:var(--f);transition:width 1.3s cubic-bezier(.2,.7,.2,1) .3s;}
.ad-gap-bar-lo .ad-gap-bar-fill{background:rgba(255,255,255,.18);}
.ad-gap-bar-lbl{display:block;margin-top:6px;font-size:.54rem;letter-spacing:.1em;color:rgba(251,248,241,.6);}
.ad-gap-note{font-size:.9rem;color:rgba(251,248,241,.68);line-height:1.6;}

/* §7 portfolio (dark, selected work) */
.ad-pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:38px;}
.ad-pf-card{display:block;background:rgba(255,255,255,.035);border:1px solid var(--line-d);border-radius:14px;overflow:hidden;text-decoration:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;}
.ad-pf-card:hover{transform:translateY(-6px);border-color:rgba(247,143,27,.45);box-shadow:0 34px 60px -40px rgba(0,0,0,.7);}
.ad-pf-shot{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--ink-2);}
.ad-pf-shot img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.ad-pf-card:hover .ad-pf-shot img{transform:scale(1.05);}
.ad-pf-plat{position:absolute;left:12px;top:12px;font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(21,17,12,.72);border:1px solid var(--line-d);border-radius:100px;padding:5px 11px;backdrop-filter:blur(5px);}
.ad-pf-body{display:flex;flex-direction:column;gap:5px;padding:16px 18px 18px;}
.ad-pf-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:#fff;}
.ad-pf-tech{font-size:.62rem;letter-spacing:.03em;color:rgba(251,248,241,.55);}
.ad-pf-cta{text-align:center;}

/* §8 cost (light) */
.ad-cost-sec .ad-head{max-width:920px;}
.ad-cost-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.ad-cost{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:24px 22px;transition:transform .35s,border-color .35s,box-shadow .35s;}
.ad-cost:hover{transform:translateY(-5px);border-color:rgba(247,143,27,.4);box-shadow:0 26px 48px -34px rgba(21,17,12,.32);}
.ad-cost-tag{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.06em;color:var(--muted);margin-bottom:12px;}
.ad-cost h3{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;color:var(--ink);margin-bottom:8px;transition:color .3s;}
.ad-cost:hover h3{color:var(--ember-deep);}
.ad-cost p{font-size:.86rem;color:var(--muted);line-height:1.55;}
.ad-cost-foot{max-width:920px;margin:36px auto 0;text-align:center;font-size:1rem;color:var(--muted);line-height:1.7;}
.ad-cost-foot strong{color:var(--ink);}

/* §9 CTA (dark) */
.ad-cta canvas.ai-net{opacity:.5;}
.ad-cta .cta-cta{justify-content:center;flex-wrap:wrap;}

/* §8 FAQ */
.ad-faqsec .ad-head{max-width:900px;}

@media(prefers-reduced-motion:reduce){
  .ad-edge,.ad-node-ring,.ad-core-halo,.ad-pipe-pulse{animation:none;}
  .ad-node-ring{opacity:0;}.ad-pipe-pulse{opacity:0;}
  .ad-gap.in .ad-gap-bar-fill{transition:none;}
}

@media(max-width:980px){
  .asd-hero-grid{grid-template-columns:1fr;gap:40px;}
  .asd-hero-fig{order:-1;max-width:560px;}
  .ad-open-grid{grid-template-columns:1fr;gap:40px;}
  .ad-graph{position:static;}
  .ad-fail-grid{grid-template-columns:1fr 1fr;}
  .ad-svc-grid{grid-template-columns:1fr 1fr;}
  .ad-why-grid{grid-template-columns:1fr 1fr;}
  .ad-how-grid{grid-template-columns:1fr;gap:36px;}
  .ad-console{position:static;max-width:520px;}
  .ad-who-grid{grid-template-columns:1fr;gap:38px;}
  .ad-pf-grid{grid-template-columns:1fr 1fr;}
  .ad-cost-grid{grid-template-columns:1fr 1fr;}
  .ad-metric{grid-template-columns:1fr 1fr;gap:20px 24px;}
  .ad-metric-note{grid-column:1 / -1;border-left:0;border-top:1px solid var(--line-d);padding:20px 0 0;}
}
@media(max-width:640px){
  .ad-fail-grid{grid-template-columns:1fr;}
  .ad-svc-grid{grid-template-columns:1fr;}
  .ad-why-grid{grid-template-columns:1fr;}
  .ad-pf-grid{grid-template-columns:1fr;}
  .ad-cost-grid{grid-template-columns:1fr;}
  .ad-metric{grid-template-columns:1fr;}
}

/* ===== PORTFOLIO (project gallery + modal) ===== */
/* hero */
.pf-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;}
.pf-hero-inner h1{margin-top:14px;}
.pf-proof{display:flex;flex-wrap:wrap;gap:0;margin-top:54px;border-top:1px solid var(--line-d);padding-top:30px;}
.pf-proof-item{flex:1 1 180px;display:flex;flex-direction:column;gap:6px;padding-right:24px;border-right:1px solid var(--line-d);}
.pf-proof-item:last-child{border-right:none;}
.pf-proof-item strong{font-family:'Fraunces',serif;font-size:2.1rem;font-weight:500;color:#fff;line-height:1;letter-spacing:-.01em;}
.pf-proof-item strong .count{font:inherit;color:inherit;letter-spacing:inherit;}
.pf-proof-item span{font-size:.9rem;color:var(--muted-d);}

/* hero "what we build" animated image showcase */
.pf-build{position:relative;}
.pf-build-label{position:relative;display:inline-flex;align-items:center;gap:9px;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:18px;}
.pf-build-spark{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 0 0 rgba(255,174,69,.6);animation:pulse 1.8s infinite;}
.pf-build-frame{position:relative;border:1px solid var(--line-d);border-radius:18px;overflow:hidden;background:#0c0907;box-shadow:0 50px 92px -42px rgba(0,0,0,.7);}
.pf-build-frame::after{content:"";position:absolute;inset:0;border-radius:18px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);pointer-events:none;}
.pf-build-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-d);}
.pf-build-bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.22);}
.pf-build-bar i:first-child{background:#ff5f57;}.pf-build-bar i:nth-child(2){background:#febc2e;}.pf-build-bar i:nth-child(3){background:#28c840;}
.pf-build-rot{position:relative;aspect-ratio:16/11;overflow:hidden;}
.pf-build-item{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;pointer-events:none;}
.pf-build-item.is-active{opacity:1;}
.pf-build-rot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(8,6,4,.8));pointer-events:none;z-index:4;}
.pf-build-cap{position:absolute;left:16px;bottom:16px;z-index:5;display:inline-flex;align-items:center;gap:11px;font-family:'Fraunces',serif;font-weight:500;font-size:1.4rem;letter-spacing:-.01em;color:#fff;}
.pf-build-cico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;box-shadow:0 12px 26px -10px rgba(247,143,27,.8);}
.pf-build-cico svg{width:21px;height:21px;}
.pf-build-dots{display:flex;gap:8px;margin-top:18px;justify-content:center;}
.pf-build-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);transition:width .3s,background .3s;}
.pf-build-dot.is-active{width:22px;border-radius:5px;background:var(--ember-hi);}
.pf-empty{text-align:center;color:var(--muted);font-size:1rem;margin-top:30px;}

/* --- animated build scenes (illustrations) --- */
.pf-scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 24px 56px;background:radial-gradient(120% 90% at 50% 0,rgba(247,143,27,.12),transparent 60%);}
.pf-build-item:not(.is-active) .pf-scene *{animation-play-state:paused !important;}
@media(prefers-reduced-motion:reduce){.pf-scene *{animation:none !important;}}
/* Websites */
.sc-win{width:82%;border:1px solid rgba(255,255,255,.18);border-radius:10px;overflow:hidden;background:rgba(255,255,255,.07);box-shadow:0 24px 46px -22px rgba(0,0,0,.75);}
.sc-win-bar{display:flex;gap:5px;padding:8px 10px;background:rgba(255,255,255,.08);}
.sc-win-bar i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);}
.sc-win-body{padding:14px;display:flex;flex-direction:column;gap:10px;}
.sc-hero{height:34px;border-radius:6px;background:linear-gradient(90deg,var(--ember),rgba(247,143,27,.25));animation:scWide 3s ease-in-out infinite;}
.sc-ln{height:8px;border-radius:4px;background:rgba(255,255,255,.32);animation:scWide 3s ease-in-out infinite;}
.sc-ln.a{width:90%;animation-delay:.2s;}
.sc-ln.b{width:64%;animation-delay:.4s;}
.sc-cards{display:flex;gap:9px;margin-top:2px;align-items:center;}
.sc-cards i{flex:1;height:34px;border-radius:6px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.12);animation:scPop 3s ease-in-out infinite;}
.sc-cards i:first-child{background:rgba(247,143,27,.35);border-color:rgba(247,143,27,.5);}
.sc-cards i:nth-child(2){animation-delay:.25s;}.sc-cards i:nth-child(3){animation-delay:.5s;}
@keyframes scWide{0%,100%{transform:scaleX(.7);opacity:.55;transform-origin:left;}50%{transform:scaleX(1);opacity:1;transform-origin:left;}}
@keyframes scPop{0%,100%{transform:translateY(6px);opacity:.5;}50%{transform:translateY(0);opacity:1;}}
/* Mobile */
.sc-phone{position:relative;width:118px;height:84%;max-height:230px;border:2px solid var(--line-d);border-radius:20px;background:rgba(255,255,255,.04);padding:16px 12px 12px;display:flex;flex-direction:column;gap:9px;box-shadow:0 22px 44px -22px rgba(0,0,0,.7);overflow:hidden;}
.sc-notch{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:34px;height:5px;border-radius:5px;background:rgba(255,255,255,.25);}
.sc-ph-top{height:26px;border-radius:6px;background:linear-gradient(90deg,rgba(247,143,27,.5),rgba(247,143,27,.15));animation:scWide 3s ease-in-out infinite;}
.sc-ph-card{height:40px;border-radius:8px;background:rgba(255,255,255,.09);border:1px solid var(--line-d);animation:scPop 3s ease-in-out infinite;}
.sc-ph-row{display:flex;align-items:center;gap:8px;animation:scPop 3s ease-in-out infinite;}
.sc-ph-row:nth-child(4){animation-delay:.2s;}.sc-ph-row:nth-child(5){animation-delay:.4s;}
.sc-ph-row i{width:20px;height:20px;border-radius:6px;background:rgba(247,143,27,.4);flex:0 0 auto;}
.sc-ph-row b{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.16);}
.sc-ph-nav{margin-top:auto;display:flex;justify-content:space-between;padding-top:9px;border-top:1px solid var(--line-d);}
.sc-ph-nav u{width:16px;height:5px;border-radius:3px;background:rgba(255,255,255,.2);}
.sc-ph-nav u:first-child{background:var(--ember);animation:scBlink 2.4s ease-in-out infinite;}
@keyframes scBlink{0%,100%{opacity:1;}50%{opacity:.4;}}
/* Chatbot */
.sc-chat{width:82%;display:flex;flex-direction:column;gap:10px;}
.sc-msg{height:26px;border-radius:13px;opacity:0;animation:scMsg 4s ease-in-out infinite;}
.sc-msg.user{align-self:flex-end;width:62%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-bottom-right-radius:4px;}
.sc-msg.user.s{width:48%;animation-delay:1.4s;}
.sc-msg.bot{align-self:flex-start;width:72%;background:rgba(255,255,255,.1);border:1px solid var(--line-d);border-bottom-left-radius:4px;animation-delay:.7s;}
.sc-msg.bot.typing{width:62px;display:flex;align-items:center;justify-content:center;gap:5px;animation-delay:2.1s;}
.sc-msg.typing em{width:6px;height:6px;border-radius:50%;background:var(--ember-hi);animation:scDot 1.2s infinite;}
.sc-msg.typing em:nth-child(2){animation-delay:.2s;}.sc-msg.typing em:nth-child(3){animation-delay:.4s;}
@keyframes scMsg{0%{opacity:0;transform:translateY(8px);}12%,90%{opacity:1;transform:none;}100%{opacity:0;}}
@keyframes scDot{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}
/* SEO */
.sc-seo{position:relative;width:80%;display:flex;flex-direction:column;align-items:center;gap:16px;}
.sc-seo-search{width:100%;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:100px;padding:9px 16px;color:var(--ember-hi);}
.sc-seo-search svg{width:16px;height:16px;flex:0 0 auto;}
.sc-seo-search i{height:8px;width:55%;border-radius:4px;background:rgba(255,255,255,.2);animation:scWide 3s ease-in-out infinite;}
.sc-seo-bars{display:flex;align-items:flex-end;gap:9px;height:74px;}
.sc-seo-bars i{width:16px;height:var(--h);border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--ember-hi),var(--ember-deep));transform-origin:bottom;animation:scRise 2.6s ease-in-out infinite;}
.sc-seo-bars i:nth-child(2){animation-delay:.15s;}.sc-seo-bars i:nth-child(3){animation-delay:.3s;}.sc-seo-bars i:nth-child(4){animation-delay:.45s;}.sc-seo-bars i:nth-child(5){animation-delay:.6s;}
.sc-seo-rise{position:absolute;right:-4px;top:24px;color:#28c840;}
.sc-seo-rise svg{width:30px;height:30px;animation:scFloat 2.4s ease-in-out infinite;}
@keyframes scRise{0%,100%{transform:scaleY(.55);opacity:.6;}50%{transform:scaleY(1);opacity:1;}}
@keyframes scFloat{0%,100%{transform:translateY(3px);}50%{transform:translateY(-3px);}}
/* AI */
.sc-ai{position:relative;width:170px;height:170px;display:flex;align-items:center;justify-content:center;}
.sc-ai-core{position:relative;z-index:2;width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#241a10,#15110c);border:1px solid rgba(255,174,69,.45);color:var(--ember-hi);box-shadow:0 0 0 6px rgba(247,143,27,.07);}
.sc-ai-core svg{width:30px;height:30px;}
.sc-ai-ring{position:absolute;border:1px solid rgba(247,143,27,.25);border-radius:50%;}
.sc-ai-ring.r1{width:110px;height:110px;animation:scSpin 8s linear infinite;}
.sc-ai-ring.r2{width:168px;height:168px;border-style:dashed;animation:scSpin 14s linear infinite reverse;}
.sc-ai-node{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--ember-hi);box-shadow:0 0 10px 2px rgba(247,143,27,.7);animation:scNode 2.4s ease-in-out infinite;}
.sc-ai-node.n1{top:6px;left:50%;}.sc-ai-node.n2{bottom:6px;left:50%;animation-delay:.6s;}
.sc-ai-node.n3{top:50%;left:4px;animation-delay:1.2s;}.sc-ai-node.n4{top:50%;right:4px;animation-delay:1.8s;}
@keyframes scSpin{to{transform:rotate(360deg);}}
@keyframes scNode{0%,100%{opacity:.3;transform:scale(.7);}50%{opacity:1;transform:scale(1);}}

/* gallery (light) */
.pf-gal-sec .sec-head{margin-bottom:34px;}
.pf-toggle{display:flex;flex-wrap:wrap;justify-content:center;width:max-content;max-width:100%;margin:0 auto 44px;background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:5px;gap:4px;}
.pf-tab{display:inline-flex;align-items:center;gap:9px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:.96rem;font-weight:600;color:var(--muted);padding:11px 26px;border-radius:100px;transition:color .25s,background .25s;}
.pf-tab:hover{color:var(--ink);}
.pf-tab.is-active{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;box-shadow:0 12px 24px -12px rgba(247,143,27,.6);}
.pf-tab-n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:100px;background:rgba(21,17,12,.1);font-size:.72rem;font-weight:700;}
.pf-tab.is-active .pf-tab-n{background:rgba(255,255,255,.25);color:#fff;}
.pf-panel{display:none;}
.pf-panel.is-active{display:block;}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pf-card{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;cursor:pointer;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.pf-card.is-hidden{display:none;}
.pf-card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:0 30px 56px -30px rgba(21,17,12,.36);}
.pf-card:focus-visible{outline:2px solid var(--ember);outline-offset:3px;}
.pf-card-shot{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2);}
.pf-card-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.pf-card:hover .pf-card-shot img{transform:scale(1.06);}
.pf-card-badge{position:absolute;left:14px;top:14px;z-index:2;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(21,17,12,.6);border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:6px 12px;backdrop-filter:blur(6px);}
.pf-card-hover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(21,17,12,.1),rgba(21,17,12,.55));opacity:0;transition:opacity .35s;}
.pf-card:hover .pf-card-hover,.pf-card:focus-visible .pf-card-hover{opacity:1;}
.pf-card-hicon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.5);color:#fff;backdrop-filter:blur(4px);transform:scale(.85);transition:transform .35s;}
.pf-card:hover .pf-card-hicon{transform:scale(1);}
.pf-card-hicon svg{width:24px;height:24px;}
.pf-card-body{display:flex;flex-direction:column;flex:1;padding:22px 24px 24px;}
.pf-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px;}
.pf-card-head h3{font-family:'Fraunces',serif;font-size:1.28rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.2;}
.pf-card-arrow{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--paper-2);color:var(--ember-deep);transition:background .3s,color .3s,transform .3s;margin-top:2px;}
.pf-card:hover .pf-card-arrow{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(0) translate(2px,-2px);}
.pf-card-arrow svg{width:17px;height:17px;}
.pf-card-body p{font-size:.93rem;color:var(--muted);line-height:1.55;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pf-card-tags{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-wrap:wrap;gap:7px;}
.pf-card-tags li{font-size:.73rem;font-weight:600;color:var(--muted);background:var(--paper-2);border:1px solid var(--line);border-radius:100px;padding:5px 11px;transition:color .25s,border-color .25s;}
.pf-card:hover .pf-card-tags li{border-color:rgba(247,143,27,.3);}
.pf-card-tags .pf-tag-more{color:var(--ember-deep);background:rgba(247,143,27,.1);border-color:rgba(247,143,27,.24);}
.pf-more-wrap{text-align:center;margin-top:44px;}
.pf-more .arr{transition:transform .25s;}
.pf-more:hover .arr{transform:translateY(3px);}

/* modal */
.pf-modal{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:24px;}
.pf-modal.is-open{display:flex;}
.pf-modal-bg{position:absolute;inset:0;background:rgba(8,6,4,.86);backdrop-filter:blur(8px);}
.pf-modal-box{position:relative;z-index:2;width:100%;max-width:980px;max-height:92vh;overflow-y:auto;background:var(--ink);border:1px solid var(--line-d);border-radius:20px;box-shadow:0 60px 120px -40px rgba(0,0,0,.8);scrollbar-width:thin;}
.pf-modal-stage{position:relative;background:#0c0907;border-bottom:1px solid var(--line-d);}
.pf-stage-scrim{position:absolute;left:0;right:0;top:0;height:90px;z-index:4;pointer-events:none;background:linear-gradient(180deg,rgba(8,6,4,.6),transparent);}
.pf-zoom-badge{position:absolute;left:64px;top:16px;z-index:7;font-size:.66rem;color:#fff;background:rgba(21,17,12,.7);border:1px solid var(--line-d);border-radius:100px;padding:6px 11px;backdrop-filter:blur(6px);}
.pf-counter{position:absolute;right:16px;bottom:16px;z-index:6;font-size:.68rem;color:#fff;background:rgba(21,17,12,.7);border:1px solid var(--line-d);border-radius:100px;padding:6px 12px;backdrop-filter:blur(6px);}
.pf-viewport{position:relative;height:clamp(300px,62vh,560px);overflow:auto;background:#0c0907;cursor:grab;-webkit-overflow-scrolling:touch;}
.pf-viewport.is-grabbing{cursor:grabbing;}
.pf-viewport::-webkit-scrollbar{width:10px;height:10px;}
.pf-viewport::-webkit-scrollbar-track{background:rgba(255,255,255,.04);}
.pf-viewport::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:10px;}
.pf-viewport::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.34);}
.pf-stage-img{display:block;width:100%;height:auto;transform-origin:top left;user-select:none;-webkit-user-select:none;transition:width .15s ease-out;}
.pf-zoomctl{position:absolute;top:14px;left:14px;z-index:6;display:flex;flex-direction:column;gap:8px;}
.pf-zbtn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line-d);background:rgba(21,17,12,.7);color:#fff;border-radius:11px;cursor:pointer;font-size:1.4rem;line-height:1;backdrop-filter:blur(6px);transition:background .2s,border-color .2s;}
.pf-zbtn:hover{background:rgba(247,143,27,.85);border-color:transparent;}
.pf-zbtn svg{width:18px;height:18px;}
.pf-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line-d);background:rgba(21,17,12,.7);color:#fff;border-radius:50%;cursor:pointer;backdrop-filter:blur(6px);transition:background .2s;}
.pf-nav:hover{background:rgba(247,143,27,.85);border-color:transparent;}
.pf-nav svg{width:22px;height:22px;}
.pf-prev{left:14px;}.pf-next{right:14px;}
.pf-nav[hidden],.pf-live[hidden],.pf-zreset[hidden],.pf-counter[hidden],.pf-modal-meta[hidden]{display:none !important;}
.pf-dots{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:8px;}
.pf-dot{width:9px;height:9px;border-radius:50%;border:none;padding:0;cursor:pointer;background:rgba(255,255,255,.45);transition:width .3s,background .3s;}
.pf-dot.is-active{width:24px;border-radius:5px;background:var(--ember-hi);}
.pf-close{position:absolute;top:14px;right:14px;z-index:6;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line-d);background:rgba(21,17,12,.7);color:#fff;border-radius:50%;cursor:pointer;backdrop-filter:blur(6px);transition:background .2s,transform .3s;}
.pf-close:hover{background:rgba(247,143,27,.85);border-color:transparent;transform:rotate(90deg);}
.pf-close svg{width:20px;height:20px;}
.pf-modal-body{padding:30px 34px 36px;background:var(--cream);}
.pf-modal-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px;}
.pf-modal-top h2{font-size:clamp(1.6rem,3vw,2.2rem);color:var(--ink);}
.pf-modal-top h2 em{color:var(--ember-deep);font-style:italic;font-weight:400;}
.pf-live{white-space:nowrap;}
.pf-live svg{width:17px;height:17px;}
.pf-modal-desc{font-size:1.02rem;color:var(--muted);line-height:1.7;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line);}
.pf-modal-meta{margin-bottom:20px;}
.pf-modal-meta:last-child{margin-bottom:0;}
.pf-modal-meta h3{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:10px;}
.pf-plat{display:inline-flex;align-items:center;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-weight:600;font-size:.92rem;border-radius:10px;padding:9px 16px;}
.pf-modal-tags{display:flex;flex-wrap:wrap;gap:9px;}
.pf-modal-tags span{font-size:.84rem;font-weight:500;color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:100px;padding:7px 14px;}
.pf-cta canvas.ai-net{opacity:.5;}
body.pf-modal-open{overflow:hidden;}

/* ===== PORTFOLIO GLIMPSE (on service pages) ===== */
.pg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:36px;}
.pg-head-txt .eyebrow{margin-bottom:14px;}
.pg-head-txt h2{font-size:clamp(1.9rem,3.6vw,2.7rem);}
.pg-head-txt p{font-size:1.04rem;color:var(--muted);margin-top:12px;max-width:520px;}
.pg-all{flex:0 0 auto;display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:.96rem;color:var(--ember-deep);padding-bottom:6px;border-bottom:2px solid transparent;transition:border-color .25s;}
.pg-all:hover{border-color:var(--ember);}
.pg-all .arr{transition:transform .25s;}
.pg-all:hover .arr{transform:translateX(4px);}
.pg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.pg-card{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;color:var(--ink);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.pg-card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:0 30px 56px -30px rgba(21,17,12,.34);}
.pg-shot{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2);}
.pg-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.pg-card:hover .pg-shot img{transform:scale(1.06);}
.pg-view{position:absolute;right:14px;top:14px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(21,17,12,.5);border:1px solid rgba(255,255,255,.4);color:#fff;backdrop-filter:blur(4px);opacity:0;transform:scale(.85);transition:opacity .3s,transform .3s;}
.pg-card:hover .pg-view{opacity:1;transform:scale(1);}
.pg-view svg{width:18px;height:18px;}
.pg-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;}
.pg-meta strong{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);}
.pg-plat{flex:0 0 auto;font-size:.72rem;font-weight:600;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.24);border-radius:100px;padding:5px 11px;}
@media(max-width:860px){
  .pg-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .pg-grid{grid-template-columns:1fr;}
}

@media(max-width:980px){
  .pf-grid{grid-template-columns:1fr 1fr;}
  .pf-hero-grid{grid-template-columns:1fr;gap:36px;}
  .pf-build{max-width:520px;}
}
@media(max-width:600px){
  .pf-grid{grid-template-columns:1fr;}
  .pf-build{padding:26px 24px;}
  .pf-proof-item{flex-basis:100%;border-right:none;border-bottom:1px solid var(--line-d);padding:14px 0;}
  .pf-proof-item:last-child{border-bottom:none;}
  .pf-modal-body{padding:24px 20px 28px;}
  .pf-tab{padding:10px 18px;font-size:.9rem;}
}

/* ===== HEADER SEARCH + SITE SEARCH OVERLAY ===== */
.nav-right{display:flex;align-items:center;gap:22px;}
/* Header CTA on inner pages. Mirrors the home template's button -- gradient
   pill, halo ring, one slow sheen pass and a nudging arrow -- but built from
   the main stylesheet's tokens, since home3.css only loads on that template. */
.nav-contact-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;
  color:#fff;text-decoration:none;
  background:linear-gradient(270deg,var(--ember) 0%,var(--ember-deep) 100%);
  font-size:12.5px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;
  padding:11px 21px;border-radius:9px;white-space:nowrap;
  border:1px solid rgba(255,255,255,.24);
  box-shadow:0 8px 22px -6px rgba(217,101,10,.8),0 0 0 3px rgba(247,143,27,.13);
  transition:background .25s,box-shadow .25s,transform .2s;flex:0 0 auto;}
.nav-contact-btn>span,.nav-contact-btn>svg{position:relative;z-index:1;}
/* Transform-only, and idle for most of the cycle: one pass reads as a cue, a
   repeating glint reads as noise. */
.nav-contact-btn::before{content:'';position:absolute;top:0;bottom:0;left:0;width:42%;z-index:0;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.40) 50%,rgba(255,255,255,0) 100%);
  transform:translateX(-240%) skewX(-18deg);
  animation:navCtaSheen 5.5s ease-in-out infinite;}
@keyframes navCtaSheen{
  0%,68%{transform:translateX(-240%) skewX(-18deg);}
  100%{transform:translateX(330%) skewX(-18deg);}
}
.nav-contact-arrow{width:14px;height:14px;flex:0 0 14px;
  transition:transform .25s cubic-bezier(.4,0,.2,1);}
.nav-contact-btn:hover{background:linear-gradient(270deg,var(--ember-deep) 0%,var(--ember-deep) 100%);
  box-shadow:0 13px 30px -6px rgba(217,101,10,1),0 0 0 4px rgba(247,143,27,.22);
  transform:translateY(-2px);color:#fff;}
.nav-contact-btn:hover .nav-contact-arrow{transform:translateX(4px);}
.nav-contact-btn:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.nav-contact-btn:active{transform:translateY(0);
  box-shadow:0 5px 14px -6px rgba(217,101,10,.75),0 0 0 3px rgba(247,143,27,.13);}
.nav-search-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid var(--line-d);color:#fff;cursor:pointer;transition:background .25s,border-color .25s,transform .25s,color .25s;flex:0 0 auto;}
.nav-search-toggle svg{width:18px;height:18px;}
.nav-search-toggle:hover{background:rgba(247,143,27,.16);border-color:rgba(247,143,27,.5);color:var(--ember-hi);transform:translateY(-1px);}

.search-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;}
.search-overlay.open{opacity:1;visibility:visible;}
.search-overlay-bg{position:absolute;inset:0;background:rgba(13,10,7,.86);backdrop-filter:blur(10px);}
.search-overlay-inner{position:relative;z-index:1;width:100%;max-width:760px;margin:0 auto;padding:140px 32px 40px;transform:translateY(-16px);transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.search-overlay.open .search-overlay-inner{transform:none;}
.search-close{position:absolute;top:36px;right:32px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid var(--line-d);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;transition:background .25s,border-color .25s,transform .3s;}
.search-close:hover{background:rgba(247,143,27,.16);border-color:rgba(247,143,27,.5);transform:rotate(90deg);}
.search-overlay-eyebrow{color:var(--ember-hi);margin-bottom:14px;}
.search-overlay-h{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin-bottom:28px;}
.search-overlay-h em{font-style:italic;color:var(--ember-hi);font-weight:400;}
.search-big{position:relative;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:16px;padding:8px 8px 8px 20px;transition:border-color .25s,box-shadow .25s;}
.search-big:focus-within{border-color:var(--ember);box-shadow:0 0 0 4px rgba(247,143,27,.16);}
.search-big-ico{flex:0 0 auto;color:var(--ember-hi);display:inline-flex;}
.search-big-ico svg{width:22px;height:22px;}
.search-big-field{flex:1;min-width:0;background:none;border:none;outline:none;color:#fff;font-family:'Hanken Grotesk',sans-serif;font-size:1.15rem;padding:14px 0;}
.search-big-field::placeholder{color:rgba(251,248,241,.5);}
.search-big-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;background:var(--ember);color:#fff;border:none;border-radius:11px;padding:14px 24px;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .25s,transform .25s;}
.search-big-btn:hover{background:var(--ember-hi);transform:translateY(-1px);}
.search-big-btn .arr{transition:transform .25s;}
.search-big-btn:hover .arr{transform:translateX(4px);}
.search-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;}
.search-suggest-lbl{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(251,248,241,.5);}
.search-suggest a{font-size:.9rem;font-weight:500;color:rgba(251,248,241,.82);background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:100px;padding:7px 16px;transition:background .25s,border-color .25s,color .25s;}
.search-suggest a:hover{background:rgba(247,143,27,.14);border-color:rgba(247,143,27,.5);color:#fff;}
body.search-open{overflow:hidden;}

/* ===== SEARCH RESULTS PAGE ===== */
.sr-refine{display:flex;align-items:center;gap:10px;max-width:560px;margin:26px auto 0;background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:100px;padding:7px 7px 7px 18px;}
.sr-refine-ico{flex:0 0 auto;color:var(--ember-hi);display:inline-flex;}
.sr-refine-ico svg{width:18px;height:18px;}
.sr-refine-field{flex:1;min-width:0;background:none;border:none;outline:none;color:#fff;font-family:'Hanken Grotesk',sans-serif;font-size:1rem;padding:10px 0;}
.sr-refine-field::placeholder{color:rgba(251,248,241,.5);}
.sr-refine .btn{flex:0 0 auto;}
.sr-list{list-style:none;margin:0;padding:0;max-width:880px;display:flex;flex-direction:column;gap:14px;}
.sr-item{}
.sr-link{display:flex;align-items:center;gap:20px;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:24px 26px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;}
.sr-link:hover{transform:translateX(6px);border-color:var(--ember);box-shadow:0 24px 46px -30px rgba(21,17,12,.32);}
.sr-item-main{flex:1;min-width:0;}
.sr-item-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.sr-badge{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.3);border-radius:100px;padding:4px 11px;}
.sr-item-url{font-size:.72rem;color:var(--muted-d);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
.sr-item-title{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.2;margin-bottom:6px;}
.sr-link:hover .sr-item-title{color:var(--ember-deep);}
.sr-item-excerpt{font-size:.98rem;color:var(--muted);line-height:1.6;}
.sr-item-go{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--paper-2);color:var(--ember-deep);transition:background .3s,color .3s,transform .3s;}
.sr-item-go svg{width:20px;height:20px;}
.sr-link:hover .sr-item-go{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:translateX(3px);}
.sr-empty{max-width:620px;margin:0 auto;text-align:center;}
.sr-empty-ico{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--paper-2);color:var(--ember-deep);margin-bottom:22px;}
.sr-empty-ico svg{width:34px;height:34px;}
.sr-empty h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:14px;}
.sr-empty p{color:var(--muted);font-size:1.05rem;line-height:1.7;margin-bottom:26px;}
.sr-empty-links{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

@media(max-width:980px){
  .nav-right{gap:10px;}
  .nav-contact-btn{padding:10px 16px;font-size:12px;letter-spacing:.9px;gap:7px;}
  .search-overlay-inner{padding:104px 22px 40px;}
  .search-close{top:22px;right:22px;}
  .search-big{flex-wrap:wrap;border-radius:16px;}
  .search-big-btn{width:100%;justify-content:center;}
}
@media(max-width:620px){
  /* Arrow goes before the label does: the word is what carries the action. */
  .nav-contact-btn{padding:9px 13px;font-size:11px;letter-spacing:.6px;
    box-shadow:0 6px 16px -6px rgba(217,101,10,.8),0 0 0 2px rgba(247,143,27,.13);}
  .nav-contact-arrow{display:none;}
  .sr-link{flex-direction:column;align-items:flex-start;gap:12px;}
  .sr-item-go{align-self:flex-end;}
  .sr-refine{flex-wrap:wrap;border-radius:16px;}
  .sr-refine .btn{width:100%;justify-content:center;}
}

/* ===== FAQ ACCORDION ===== */
.faq-layout{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:54px;align-items:start;}
.faq-side{position:sticky;top:100px;}
.faq-side-h{font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:500;line-height:1.16;letter-spacing:-.01em;color:var(--ink);margin:12px 0 14px;}
.faq-side-h em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.faq-side-p{color:var(--muted);line-height:1.7;font-size:.98rem;}

.faq-cta{margin-top:26px;background:linear-gradient(155deg,var(--ink),var(--ink-2));border-radius:18px;padding:28px 26px;color:var(--cream);position:relative;overflow:hidden;}
.faq-cta-eyebrow{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember-hi);margin-bottom:10px;}
.faq-cta h3{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:500;letter-spacing:-.01em;color:#fff;margin-bottom:9px;}
.faq-cta p{font-size:.9rem;color:rgba(251,248,241,.72);line-height:1.55;margin-bottom:20px;}
.faq-cta .btn{width:100%;justify-content:center;}
.faq-cta-mail{display:inline-flex;align-items:center;gap:9px;margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--ember-hi) !important;transition:color .2s;}
.faq-cta-mail svg{width:16px;height:16px;}
.faq-cta-mail:hover{color:#fff !important;}

.faq-main{min-width:0;}
.faq-accordion{display:flex;flex-direction:column;gap:14px;}
.faq-item{background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .25s,box-shadow .25s;}
.faq-item[open]{border-color:var(--ember);box-shadow:0 18px 42px -28px rgba(21,17,12,.35);}
.faq-q{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:20px 24px;font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;color:var(--ink);transition:color .2s;}
.faq-q::-webkit-details-marker{display:none;}
.faq-q::marker{content:"";}
.faq-q:hover{color:var(--ember-deep);}
.faq-item[open] .faq-q{color:var(--ember-deep);}
.faq-q-num{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:.78rem;font-weight:500;color:var(--ember-deep);background:var(--paper-2);border:1px solid var(--line);border-radius:8px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;transition:background .25s,color .25s,border-color .25s;}
.faq-item[open] .faq-q-num{background:var(--ember);border-color:var(--ember);color:#fff;}
.faq-q-txt{flex:1;}
.faq-ico{flex:0 0 auto;width:22px;height:22px;position:relative;}
.faq-ico::before,.faq-ico::after{content:"";position:absolute;background:var(--ember-deep);border-radius:2px;}
.faq-ico::before{top:10px;left:2px;right:2px;height:2px;}
.faq-ico::after{left:10px;top:2px;bottom:2px;width:2px;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
.faq-item[open] .faq-ico::after{transform:scaleY(0);}
.faq-a{padding:0 24px 24px 74px;color:var(--muted);line-height:1.75;font-size:1rem;}
.faq-a p{margin:0 0 12px;}
.faq-a p:last-child{margin-bottom:0;}
.faq-a ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.faq-a li{position:relative;padding-left:22px;}
.faq-a li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--ember);}
.faq-a li b{color:var(--ink);}

@media(max-width:920px){
  .faq-layout{grid-template-columns:1fr;gap:36px;}
  .faq-side{position:static;}
  .faq-a{padding-left:24px;}
}

/* ===== HERO ANIMATED AI BACKGROUND ===== */
/* Background video (slide 1) — sits behind the aurora/grid/overlay tint layers
   so the existing brand treatment still carries the legibility + ember color. */
/* `contain` (not `cover`) so the video's full frame always stays visible —
   the video is 16:9 while the hero section runs wider/taller depending on
   viewport, and `cover` was cropping a large chunk of the shot away. Any
   letterbox bars fall back to the hero's own dark ink background, so they
   read as intentional rather than empty space. */
.hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:contain;background:var(--ink);}
@media(prefers-reduced-motion:reduce){
  .hero-video{display:none;}
}
/* Living "aurora" gradient mesh — drifting blurred blobs in brand tones */
.hero-aurora{position:absolute;inset:-15%;z-index:0;filter:blur(28px) saturate(1.15);opacity:.9;
  background:
    radial-gradient(38% 46% at 22% 32%,rgba(217,101,10,.55),transparent 62%),
    radial-gradient(34% 42% at 80% 22%,rgba(247,143,27,.42),transparent 62%),
    radial-gradient(44% 52% at 68% 78%,rgba(178,58,14,.48),transparent 62%),
    radial-gradient(30% 40% at 38% 80%,rgba(255,174,69,.30),transparent 62%);
  background-repeat:no-repeat;background-size:160% 160%;
  animation:hero-aurora 28s ease-in-out infinite;will-change:background-position;}
@keyframes hero-aurora{
  0%{background-position:0% 50%,100% 0%,60% 100%,30% 80%;}
  50%{background-position:30% 20%,70% 40%,40% 70%,60% 40%;}
  100%{background-position:0% 50%,100% 0%,60% 100%,30% 80%;}
}
/* Faint perspective tech grid */
.hero-gridfx{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(255,174,69,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,174,69,.10) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(120% 80% at 50% 30%,#000,transparent 75%);
          mask-image:radial-gradient(120% 80% at 50% 30%,#000,transparent 75%);}
.hero-particles{position:absolute;inset:0;z-index:4;width:100%;height:100%;pointer-events:none;}
.hero-overlay{position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(105deg,rgba(21,17,12,.92) 0%,rgba(21,17,12,.66) 46%,rgba(21,17,12,.34) 100%),
    linear-gradient(180deg,transparent 58%,rgba(21,17,12,.9));}
.hero .hero-glow{z-index:1;}

/* Digital iris — AI / NLP / data-annotation animation (js/hero-iris.js).
   Sits above the legibility overlay; the canvas paints its own left-side scrim. */
.hero-iris{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;
  opacity:0;transition:opacity 1.6s cubic-bezier(.2,.7,.2,1);}
.hero-iris.is-live{opacity:1;}
/* Scrim over the whole animation. The iris canvas sits at z-3 and the particles
   at z-4, both above .hero-overlay, so neither is dimmed by it — this pseudo
   element is the last child at z-4, which puts it above both while staying below
   the content at z-5. Weighted to the right, where the pipeline panel sits over
   the brightest part of the iris. */
.hero-slide-anim::after{
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  background:
    linear-gradient(105deg,rgba(21,17,12,.32) 0%,rgba(21,17,12,.28) 42%,rgba(21,17,12,.46) 100%),
    /* Light touch behind the panel — the panel is translucent so the iris needs
       to stay visible through it; the chips carry their own contrast. */
    radial-gradient(58% 48% at 74% 47%,rgba(21,17,12,.16),transparent 72%);
}
/* The hero video supplies the light on the front page now, so the blob/grid
   tint layers step back to a light ember wash rather than dominating it. */
.hero-slide-anim .hero-aurora{opacity:.3;}
.hero-slide-anim .hero-gridfx{opacity:.22;}
/* Frosted glass, not a solid console: the panel stays translucent so the iris
   reads through it, and a heavier blur keeps whatever shows through soft rather
   than competing with the text. Contrast is carried by the chips, not the panel. */
.hero-slide-anim .orbit{
  background:linear-gradient(160deg,rgba(26,19,13,.34),rgba(16,12,8,.22));
  border-color:rgba(255,255,255,.15);
  /* Light blur only: a heavy one smeared the iris into a flat glow and lost the
     filament detail the panel is meant to sit over. */
  backdrop-filter:blur(4px) saturate(1.15);
  box-shadow:0 40px 90px -50px rgba(0,0,0,.8);
}
.hero-slide-anim .orbit::before{background:radial-gradient(circle at 70% 18%,rgba(247,143,27,.14),transparent 55%);}
.hero-slide-anim .chip{
  background:rgba(9,7,4,.52);
  border-color:rgba(255,255,255,.12);
  backdrop-filter:blur(3px);
}
.hero-slide-anim .chip:hover{
  background:rgba(247,143,27,.16);
  border-color:rgba(247,143,27,.45);
}
/* Muted-dark was the weakest text in the hero at ~6:1; lifted clear of AAA. */
.hero-slide-anim .orbit-label{color:rgba(251,248,241,.72);}
.hero-slide-anim .glow-1{opacity:.28;}
.hero-slide-anim .glow-3{opacity:.1;}
@media (max-width:980px){
  .hero-iris{opacity:0;}
  .hero-iris.is-live{opacity:.72;}
}
@media (prefers-reduced-motion:reduce){
  .hero-iris{transition:none;}
}

/* ===== CLIENT LOGO CAROUSEL ===== */
.client-carousel{position:relative;overflow:hidden;margin-top:6px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.client-track{display:flex;width:max-content;align-items:center;animation:client-scroll 34s linear infinite;will-change:transform;}
.client-carousel:hover .client-track{animation-play-state:paused;}
.client-item{flex:0 0 auto;width:220px;display:flex;align-items:center;justify-content:center;padding:18px 34px;box-sizing:border-box;}
.client-item img{max-width:100%;max-height:48px;width:auto;height:auto;object-fit:contain;opacity:.9;transition:opacity .35s,transform .35s;}
.client-item img:hover{opacity:1;transform:scale(1.07);}
@keyframes client-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ===== KYMERA AI BACKGROUND ===== */
.kymera{position:relative;}
.kymera .wrap{position:relative;z-index:3;}
.kymera-bg{position:absolute;inset:0;z-index:0;background-image:var(--ky-bg);background-size:cover;background-position:center right;opacity:.16;mix-blend-mode:luminosity;}
.kymera::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,var(--ink) 28%,rgba(21,17,12,.72) 60%,rgba(21,17,12,.55));}
.kymera-mesh{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.8;
  background:
    radial-gradient(420px circle at 78% 28%,rgba(247,143,27,.28),transparent 60%),
    radial-gradient(360px circle at 92% 70%,rgba(178,58,14,.26),transparent 60%),
    radial-gradient(300px circle at 64% 88%,rgba(255,174,69,.18),transparent 60%);
  background-size:200% 200%;animation:ky-mesh 18s ease-in-out infinite;}
@keyframes ky-mesh{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}}

/* ===== PROOF — STAT CARDS + COUNTERS ===== */
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.statcard{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:28px 24px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.statcard::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transition:width .4s;}
.statcard:hover{transform:translateY(-5px);box-shadow:0 22px 44px -22px rgba(21,17,12,.3);border-color:transparent;}
.statcard:hover::after{width:100%;}
.stat-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);margin-bottom:16px;transition:all .35s;}
.statcard:hover .stat-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg) scale(1.06);}
.stat-ico svg{width:22px;height:22px;}
.statcard .num{font-family:'Fraunces',serif;font-size:2.7rem;font-weight:500;line-height:1;letter-spacing:-.01em;}
.statcard .num .suffix,.statcard .num .ratio{color:var(--ember-deep);}
.statcard .lbl{color:var(--muted);margin-top:8px;font-size:.95rem;}

/* ===== TESTIMONIALS CAROUSEL ===== */
.tcarousel{position:relative;}
.tviewport{overflow:hidden;}
.ttrack{display:flex;gap:18px;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.tcarousel .quote{flex:0 0 calc(50% - 9px);box-sizing:border-box;}
.tnav{position:absolute;top:38%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-size:1.7rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:all .25s;box-shadow:0 8px 22px -12px rgba(21,17,12,.4);}
.tnav:hover{background:var(--ink);color:var(--ember-hi);border-color:var(--ink);}
.tnav.prev{left:-16px;}
.tnav.next{right:-16px;}
.tdots{display:flex;gap:8px;justify-content:center;margin-top:30px;}
.tdot{width:8px;height:8px;border-radius:50%;background:var(--line);border:none;padding:0;cursor:pointer;transition:all .3s;}
.tdot.active{background:var(--ember);width:24px;border-radius:5px;}

/* ===== FOOTER SOCIAL ICONS ===== */
.social-icons{display:flex;gap:12px;margin-top:22px;}
.social-icons a{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border:1px solid var(--line-d);color:rgba(251,248,241,.72);transition:all .25s cubic-bezier(.2,.7,.2,1);}
.social-icons a:hover{background:var(--ember);color:var(--ink);border-color:var(--ember);transform:translateY(-3px);box-shadow:0 10px 24px -10px rgba(247,143,27,.6);}
.social-icons svg{width:17px;height:17px;}

/* ===== CONTACT PAGE ===== */
.page-hero-lead{font-size:1.15rem;color:rgba(251,248,241,.78);max-width:560px;margin-top:18px;}
.contact-sec{padding:96px 0 110px;}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;}

/* left column — details */
.contact-info-h{font-size:clamp(1.8rem,3.2vw,2.5rem);margin:16px 0 16px;}
.contact-info-h em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.contact-info-sub{color:var(--muted);font-size:1.05rem;margin-bottom:36px;max-width:440px;}
.info-list{list-style:none;display:flex;flex-direction:column;gap:18px;}
.info-item{display:flex;gap:16px;align-items:flex-start;}
.info-ico{flex:0 0 auto;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:all .35s;}
.info-item:hover .info-ico{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg) scale(1.06);}
.info-ico svg{width:21px;height:21px;}
.info-body{display:flex;flex-direction:column;gap:2px;padding-top:2px;}
.info-label{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);}
.info-body a,.info-text{font-size:1.05rem;color:var(--ink);font-weight:500;line-height:1.5;}
.info-body a{transition:color .2s;}
.info-body a:hover{color:var(--ember-deep);}
.contact-socials{display:flex;gap:12px;margin-top:34px;}
.contact-socials a{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--cream);border:1px solid var(--line);color:var(--muted);transition:all .25s cubic-bezier(.2,.7,.2,1);}
.contact-socials a:hover{background:var(--ember);color:var(--ink);border-color:var(--ember);transform:translateY(-3px);box-shadow:0 10px 24px -10px rgba(247,143,27,.6);}
.contact-socials svg{width:17px;height:17px;}

/* right column — form card */
.contact-form-card{background:var(--cream);border:1px solid var(--line);border-radius:22px;padding:38px;box-shadow:0 30px 60px -40px rgba(21,17,12,.4);}
.form-title{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;letter-spacing:-.01em;margin-bottom:24px;}
.contact-form{display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;gap:18px;}
.form-row.two{grid-template-columns:1fr 1fr;}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:.82rem;font-weight:600;color:var(--ink);letter-spacing:.01em;}
.field .req{color:var(--rust);}
.field input,.field textarea{font-family:'Hanken Grotesk',sans-serif;font-size:.98rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 15px;transition:border-color .2s,box-shadow .2s,background .2s;width:100%;resize:vertical;}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-d);}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(247,143,27,.16);background:#fff;}
.form-submit{align-self:flex-start;margin-top:4px;}
.form-fineprint{font-size:.8rem;color:var(--muted);margin-top:14px;}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* Contact Form 7 inside the contact card — reuses the global .form-row/.field/label styling */
.contact-form-card .wpcf7{margin:0;}
.contact-form-card .wpcf7-form{display:flex;flex-direction:column;gap:13px;}
.contact-form-card .form-row{gap:14px;}
/* keep CF7's non-visual elements out of the flex flow so they don't add phantom gaps */
.contact-form-card .wpcf7-form br{display:none;}
.contact-form-card .wpcf7-form input[type=hidden]{display:none;}
.contact-form-card .hidden-fields-container{display:none!important;}
.contact-form-card .wpcf7-form-control-wrap{display:block;width:100%;}
.contact-form-card .field input,.contact-form-card .field textarea{width:100%;}
.contact-form-card .contact-cf7-actions{margin-top:4px;text-align:center;}
.contact-form-card .contact-cf7-actions p{margin:0;text-align:center;}
.contact-form-card .form-fineprint{text-align:center;margin-top:10px;}
.contact-form-card .wpcf7-submit{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:'Hanken Grotesk',sans-serif;font-size:1rem;font-weight:600;letter-spacing:.01em;
  color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));
  border:none;border-radius:100px;padding:14px 30px;cursor:pointer;width:auto!important;height:auto;
  box-shadow:0 14px 28px -12px rgba(247,143,27,.7);transition:filter .15s ease,transform .2s ease;
}
.contact-form-card .wpcf7-submit:hover{filter:brightness(.97);transform:translateY(-1px);}

/* kc_captcha ("select the …") — themed to sit inside the card */
.contact-form-card .kc_captcha{display:block;}
.contact-form-card .field textarea{min-height:104px;}
.contact-form-card .captcha-image{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;}
.contact-form-card .cf7ic_instructions{flex:1 1 100%;text-align:center;font-size:.9rem;color:var(--muted);line-height:1.5;margin-bottom:4px;}
.contact-form-card .captcha-image label{display:inline-flex;margin:0;cursor:pointer;}
.contact-form-card .captcha-image input[type=radio]{position:absolute;opacity:0;width:0;height:0;}
.contact-form-card .captcha-image svg{width:24px;height:24px;color:var(--muted-d);padding:9px;border:1px solid var(--line);border-radius:10px;box-sizing:content-box;transition:color .2s,border-color .2s,background .2s;}
.contact-form-card .captcha-image label:hover svg{color:var(--ember-deep);border-color:var(--ember);background:rgba(247,143,27,.06);}
.contact-form-card .captcha-image label:has(input:checked) svg{color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));border-color:transparent;}
.contact-form-card .wpcf7-spinner{margin:14px auto 0;display:block;}
.contact-form-card .wpcf7-not-valid-tip{font-size:.8rem;color:var(--rust);margin-top:5px;}
.contact-form-card .field input.wpcf7-not-valid,.contact-form-card .field textarea.wpcf7-not-valid{border-color:var(--rust);box-shadow:0 0 0 3px rgba(178,58,14,.14);}
.contact-form-card .wpcf7-response-output{display:none;margin:4px 0 0!important;padding:13px 16px!important;border:1px solid transparent!important;border-radius:12px!important;font-size:.95rem!important;line-height:1.5!important;}
.contact-form-card form.sent .wpcf7-response-output,.contact-form-card form.invalid .wpcf7-response-output,.contact-form-card form.unaccepted .wpcf7-response-output,.contact-form-card form.failed .wpcf7-response-output,.contact-form-card form.aborted .wpcf7-response-output,.contact-form-card form.spam .wpcf7-response-output{display:block;}
.contact-form-card form.sent .wpcf7-response-output{background:rgba(247,143,27,.1)!important;border-color:rgba(247,143,27,.4)!important;color:var(--ink)!important;}
.contact-form-card form.invalid .wpcf7-response-output,.contact-form-card form.unaccepted .wpcf7-response-output{background:rgba(178,58,14,.06)!important;border-color:rgba(178,58,14,.3)!important;color:var(--rust)!important;}
.contact-form-card form.failed .wpcf7-response-output,.contact-form-card form.aborted .wpcf7-response-output,.contact-form-card form.spam .wpcf7-response-output{background:rgba(178,58,14,.08)!important;border-color:rgba(178,58,14,.35)!important;color:var(--rust)!important;}

/* inline status messages */
.form-note{border-radius:12px;padding:14px 16px;font-size:.95rem;margin-bottom:22px;border:1px solid transparent;}
.form-note.ok{background:rgba(247,143,27,.1);border-color:rgba(247,143,27,.4);color:var(--ink);}
.form-note.err{background:rgba(178,58,14,.08);border-color:rgba(178,58,14,.35);color:var(--rust);}
.form-note a{color:var(--ember-deep);text-decoration:underline;}

/* office locations — selectable list + live map */
.loc-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:24px;margin-top:10px;align-items:stretch;}
.loc-list{display:flex;flex-direction:column;gap:13px;}
.loc-item{position:relative;display:flex;gap:16px;text-align:left;width:100%;font-family:inherit;cursor:pointer;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:18px 20px;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s,background .3s;}
.loc-item::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(var(--ember),var(--ember-deep));transform:scaleY(0);transform-origin:top;transition:transform .3s;}
.loc-item:hover{border-color:rgba(247,143,27,.5);}
.loc-item.active{border-color:var(--ember);background:#fff;box-shadow:0 18px 40px -22px rgba(21,17,12,.3);}
.loc-item.active::before{transform:scaleY(1);}
.loc-pin{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:all .3s;}
.loc-item.active .loc-pin{background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg) scale(1.05);}
.loc-pin svg{width:20px;height:20px;}
.loc-info{display:flex;flex-direction:column;min-width:0;flex:1;}
.loc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.loc-head b{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);}
.loc-badge{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:100px;padding:4px 10px;}
.loc-badge.hq{color:var(--ember-deep);border-color:rgba(217,101,10,.4);background:rgba(247,143,27,.08);}
.loc-city{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ember-deep);margin:3px 0 8px;}
.loc-addr{font-size:.88rem;line-height:1.5;color:var(--muted);}
.loc-map{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);min-height:440px;box-shadow:0 26px 52px -30px rgba(21,17,12,.35);background:var(--paper-2);}
.loc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}

@media(max-width:980px){
  .contact-grid{grid-template-columns:1fr;gap:40px;}
  .loc-layout{grid-template-columns:1fr;gap:18px;}
  .loc-map{min-height:360px;}
}
@media(max-width:620px){
  .form-row.two{grid-template-columns:1fr;}
  .contact-form-card{padding:26px 22px;}
}

/* ===== ABOUT — OUR STORY ===== */
.story-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center;}
.story-h{font-size:clamp(1.9rem,3.6vw,2.8rem);margin:16px 0 20px;}
.story-h em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.story-grid > div > p{color:var(--muted);font-size:1.05rem;margin-bottom:16px;}
.story-rail{position:relative;padding:6px 0;}
.rail{list-style:none;position:relative;margin-left:3px;}
.rail::before{content:"";position:absolute;left:7px;top:10px;bottom:16px;width:2px;background:linear-gradient(180deg,var(--ember) 0%,var(--ember-deep) 55%,rgba(217,101,10,.12) 100%);}
.rail-item{position:relative;padding:0 0 32px 42px;}
.rail-item:last-child{padding-bottom:0;}
.rail-dot{position:absolute;left:0;top:6px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:3px solid var(--ember);box-shadow:0 0 0 5px rgba(247,143,27,.12);transition:transform .3s,box-shadow .3s,background .3s;}
.rail-item:hover .rail-dot{background:var(--ember);transform:scale(1.16);box-shadow:0 0 0 7px rgba(247,143,27,.18);}
.rail-kicker{display:block;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:5px;}
.rail-num{display:block;font-family:'Fraunces',serif;font-size:2.3rem;font-weight:500;line-height:1;letter-spacing:-.01em;color:var(--ink);}
.rail-num i{font-style:normal;color:var(--ember-deep);}
.rail-text{display:block;color:var(--muted);font-size:.92rem;margin-top:6px;}

/* ===== ABOUT — FAMILY VALUES ===== */
.family-sec{background:var(--paper-2);position:relative;overflow:hidden;}
.family-sec .wrap{position:relative;z-index:2;}
.ai-net{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;}
.family-aurora{position:absolute;inset:-12%;z-index:0;pointer-events:none;opacity:.7;filter:blur(46px) saturate(1.1);
  background:
    radial-gradient(30% 42% at 16% 28%,rgba(247,143,27,.20),transparent 60%),
    radial-gradient(26% 38% at 84% 72%,rgba(217,101,10,.18),transparent 60%),
    radial-gradient(24% 34% at 60% 12%,rgba(255,174,69,.14),transparent 60%);
  background-repeat:no-repeat;background-size:170% 170%;animation:family-aurora 26s ease-in-out infinite;will-change:background-position;}
@keyframes family-aurora{0%,100%{background-position:0% 50%,100% 50%,50% 0%}50%{background-position:40% 20%,60% 80%,30% 60%}}
.family-badge{animation:fam-pulse 3.2s ease-in-out infinite;}
.family-bubble:nth-child(2) .family-badge{animation-delay:.4s}
.family-bubble:nth-child(3) .family-badge{animation-delay:.8s}
.family-bubble:nth-child(4) .family-badge{animation-delay:1.2s}
.family-bubble:nth-child(5) .family-badge{animation-delay:1.6s}
.family-bubble:nth-child(6) .family-badge{animation-delay:2s}
@keyframes fam-pulse{0%,100%{box-shadow:0 10px 22px -10px rgba(247,143,27,.7),0 0 0 0 rgba(247,143,27,.45)}55%{box-shadow:0 10px 22px -10px rgba(247,143,27,.7),0 0 0 10px rgba(247,143,27,0)}}
.family-callout{display:flex;align-items:center;gap:26px;background:var(--cream);border:1px solid var(--line);border-left:4px solid var(--ember);border-radius:18px;padding:30px 34px;box-shadow:0 24px 50px -34px rgba(21,17,12,.35);}
.family-callout-ico{flex:0 0 auto;width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;}
.family-callout-ico svg{width:28px;height:28px;}
.family-callout p{font-family:'Fraunces',serif;font-size:1.16rem;line-height:1.5;color:var(--ink);font-weight:400;margin:0;flex:1;}
.family-callout p strong{color:var(--ember-deep);font-weight:500;}
.family-callout .btn{flex:0 0 auto;}
.family-list{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:24px;}
.family-bubble{display:inline-flex;align-items:center;gap:22px;background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:13px 36px 13px 13px;max-width:620px;box-shadow:0 22px 46px -24px rgba(21,17,12,.32);transition:box-shadow .3s,border-color .3s;animation:bubble-float 6.5s ease-in-out infinite;will-change:transform;}
.family-bubble:nth-child(even){align-self:flex-end;}
.family-bubble:hover{border-color:var(--ember);box-shadow:0 28px 56px -22px rgba(247,143,27,.42);}
/* organic float — varied duration & delay per bubble */
.family-bubble:nth-child(1){animation-duration:6.5s;animation-delay:0s;}
.family-bubble:nth-child(2){animation-duration:7.6s;animation-delay:.5s;}
.family-bubble:nth-child(3){animation-duration:6.9s;animation-delay:1s;}
.family-bubble:nth-child(4){animation-duration:8.1s;animation-delay:.3s;}
.family-bubble:nth-child(5){animation-duration:7.1s;animation-delay:1.3s;}
.family-bubble:nth-child(6){animation-duration:6.2s;animation-delay:.8s;}
@keyframes bubble-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.family-badge{flex:0 0 auto;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:1.7rem;font-weight:600;color:#fff;background:linear-gradient(150deg,var(--ember),var(--ember-deep));box-shadow:0 10px 22px -10px rgba(247,143,27,.7);}
.family-text{font-size:1.12rem;font-weight:500;color:var(--ink);}

/* ===== ABOUT — WHY INABIA ===== */
.why-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:stretch;}
.why-values{display:flex;flex-direction:column;gap:16px;}
.wv{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:24px 26px;border-left:3px solid var(--ember);transition:transform .3s,box-shadow .3s;}
.wv:hover{transform:translateY(-4px);box-shadow:0 20px 40px -26px rgba(21,17,12,.3);}
.wv h4{font-size:1.16rem;font-weight:600;margin-bottom:6px;letter-spacing:-.01em;}
.wv p{font-size:.95rem;color:var(--muted);}
.proof-card{background:linear-gradient(rgba(10,8,5,.82),rgba(10,8,5,.86)),var(--ink) url('assets/img/inabia-office.png') center/cover no-repeat;color:var(--cream);border-radius:20px;padding:40px 36px;position:relative;overflow:hidden;}
.proof-card::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.3),transparent 70%);top:-110px;right:-90px;filter:blur(20px);z-index:1;}
.proof-card .eyebrow{margin-bottom:14px;position:relative;z-index:2;}
.proof-card h3{font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;letter-spacing:-.01em;margin-bottom:22px;position:relative;z-index:2;}
.proof-list{list-style:none;display:flex;flex-direction:column;gap:16px;position:relative;z-index:2;}
.proof-list li{display:flex;align-items:flex-start;gap:14px;font-size:1rem;color:rgba(251,248,241,.86);line-height:1.5;}
.proof-list .tick{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));position:relative;margin-top:2px;}
.proof-list .tick::after{content:"";position:absolute;left:8px;top:4px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);}

/* ===== MEET OUR TEAM — HERO CLUSTER ===== */
.tm-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.tm-hero-txt h1{margin-top:14px;}
.tm-hero-txt .page-hero-lead{margin-top:18px;}

/* The roster drifting around a count medallion — each face takes the spotlight
   in turn, and the name under the medallion changes with it. */
.tm-cluster{position:relative;width:100%;max-width:460px;aspect-ratio:1;margin-left:auto;--cyc:9.6s;}
.tm-cl-ring{position:absolute;left:50%;top:50%;width:300px;height:300px;margin:-150px 0 0 -150px;border-radius:50%;
  border:1px dashed rgba(255,255,255,.13);animation:tmRing 52s linear infinite;}
.tm-cl-ring.r2{width:406px;height:406px;margin:-203px 0 0 -203px;border-color:rgba(247,143,27,.16);animation-duration:76s;animation-direction:reverse;}
@keyframes tmRing{to{transform:rotate(360deg);}}
.tm-cl-core{position:absolute;left:50%;top:50%;width:132px;height:132px;margin:-66px 0 0 -66px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:radial-gradient(circle at 50% 34%,rgba(247,143,27,.22),rgba(21,17,12,.9) 68%);
  border:1px solid rgba(247,143,27,.42);box-shadow:0 24px 52px -22px rgba(247,143,27,.5);}
.tm-cl-core b{font-size:2.5rem;line-height:1;color:#fff;font-weight:500;}
.tm-cl-core span{font-size:.54rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ember-hi);}

.tm-av{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  animation:tmFloat 7s ease-in-out infinite;animation-delay:calc(var(--d) * -1.15s);}
@keyframes tmFloat{0%,100%{transform:translateY(-7px);}50%{transform:translateY(7px);}}
.tm-av-in{position:absolute;inset:0;border-radius:50%;overflow:hidden;background:var(--paper-2);
  border:2px solid rgba(255,255,255,.16);box-shadow:0 18px 34px -18px rgba(0,0,0,.75);
  animation:tmSpot var(--cyc) ease-in-out infinite;animation-delay:calc(var(--d) * (var(--cyc) / 6));}
.tm-av-in img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.55) contrast(.95);transition:filter .4s;
  animation:tmSpotImg var(--cyc) ease-in-out infinite;animation-delay:calc(var(--d) * (var(--cyc) / 6));}
@keyframes tmSpot{0%,3%{transform:scale(1);border-color:rgba(255,255,255,.16);box-shadow:0 18px 34px -18px rgba(0,0,0,.75);}
  7%,14%{transform:scale(1.14);border-color:var(--ember-hi);box-shadow:0 0 0 5px rgba(247,143,27,.14),0 22px 40px -16px rgba(247,143,27,.55);}
  20%,100%{transform:scale(1);border-color:rgba(255,255,255,.16);box-shadow:0 18px 34px -18px rgba(0,0,0,.75);}}
@keyframes tmSpotImg{0%,3%{filter:grayscale(.55) contrast(.95);}7%,14%{filter:none;}20%,100%{filter:grayscale(.55) contrast(.95);}}

/* Sits above the avatars — a drifting face would otherwise cover the name. */
.tm-cl-now{position:absolute;left:50%;top:calc(50% + 86px);transform:translateX(-50%);z-index:5;height:28px;width:280px;}
.tm-cl-now i{position:absolute;left:50%;top:0;font-style:normal;white-space:nowrap;
  padding:6px 14px;border-radius:100px;background:rgba(21,17,12,.72);border:1px solid rgba(247,143,27,.32);backdrop-filter:blur(6px);
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(251,248,241,.9);
  opacity:0;animation:tmName var(--cyc) ease-in-out infinite;animation-delay:calc(var(--d) * (var(--cyc) / 6));}
@keyframes tmName{0%,3%{opacity:0;transform:translate(-50%,6px);}8%,14%{opacity:1;transform:translate(-50%,0);}20%,100%{opacity:0;transform:translate(-50%,-6px);}}

/* ===== MEET OUR TEAM — GRID ===== */
.tm-gridsec{background:var(--paper);}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
/* One card at a time rather than three repeating delays. */
.team-card.reveal{transition-delay:calc(var(--i) * 65ms);}
.team-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--cream);
  border:1px solid var(--line);border-radius:22px;
  transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s;}
.team-card:hover{transform:translateY(-7px);box-shadow:0 34px 62px -30px rgba(21,17,12,.42);border-color:rgba(247,143,27,.4);}
.team-photo{position:relative;display:block;overflow:hidden;aspect-ratio:1;background:var(--paper-2);}
.team-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.team-card:hover .team-photo img{transform:scale(1.045);}
/* Warms the studio-white backdrops so ten headshots read as one set. */
.team-tint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;
  background:linear-gradient(178deg,rgba(239,232,217,.5),rgba(214,199,175,.34));transition:opacity .45s;}
.team-card:hover .team-tint{opacity:.35;}
.team-idx{position:absolute;left:14px;top:14px;z-index:2;display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;height:24px;padding:0 8px;border-radius:7px;background:rgba(21,17,12,.6);backdrop-filter:blur(5px);
  color:rgba(251,248,241,.82);font-size:.6rem;letter-spacing:.08em;
  opacity:0;transform:translateY(-5px);transition:opacity .35s,transform .35s;}
.team-card:hover .team-idx{opacity:1;transform:none;}
.team-view{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:34px 18px 15px;
  background:linear-gradient(180deg,transparent,rgba(21,17,12,.86));color:#fff;
  font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:9px;
  opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s;}
.team-card:hover .team-view{opacity:1;transform:none;}
.team-view .arr{transition:transform .3s;}
.team-card:hover .team-view .arr{transform:translateX(5px);}
.team-meta{position:relative;padding:22px 24px 26px;text-align:left;}
.team-rule{position:absolute;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,var(--ember),var(--ember-hi));transition:width .55s cubic-bezier(.2,.7,.2,1);}
.team-card:hover .team-rule{width:100%;}
.team-name{display:block;font-family:'Fraunces',serif;font-size:1.24rem;font-weight:500;color:var(--ink);letter-spacing:-.01em;line-height:1.25;transition:color .35s;}
.team-card:hover .team-name{color:var(--ember-deep);}
.team-role{display:block;margin-top:7px;font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);line-height:1.6;}

@media(prefers-reduced-motion:reduce){
  .tm-cl-ring,.tm-av,.tm-av-in,.tm-av-in img,.tm-cl-now i{animation:none;}
  .tm-av-in img{filter:none;}
  .tm-cl-now i{opacity:0;}
  .tm-cl-now i:first-child{opacity:1;}
  .team-card.reveal{transition-delay:0s;}
}
@media(max-width:1080px){
  .team-grid{grid-template-columns:repeat(3,1fr);gap:18px;}
  .team-meta{padding:20px 18px 22px;}
}
@media(max-width:980px){
  .tm-hero-grid{grid-template-columns:1fr;gap:44px;}
  .tm-cluster{margin:0 auto;max-width:400px;}
  .tm-cl-ring{width:262px;height:262px;margin:-131px 0 0 -131px;}
  .tm-cl-ring.r2{width:354px;height:354px;margin:-177px 0 0 -177px;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .team-grid{grid-template-columns:1fr;gap:20px;}
  .tm-cluster{max-width:320px;}
  .tm-cl-ring{width:210px;height:210px;margin:-105px 0 0 -105px;}
  .tm-cl-ring.r2{width:284px;height:284px;margin:-142px 0 0 -142px;}
  .tm-cl-core{width:104px;height:104px;margin:-52px 0 0 -52px;}
  .tm-cl-core b{font-size:2rem;}
  .tm-cl-now{top:calc(50% + 72px);width:240px;}
  .tm-cl-now i{font-size:.55rem;padding:5px 11px;letter-spacing:.1em;}
  /* Faces shrink with the box so they stop crowding the medallion. */
  .tm-av{width:calc(var(--s) * .76);height:calc(var(--s) * .76);margin:calc(var(--s) * -.38) 0 0 calc(var(--s) * -.38);}
}

/* ===== TEAM MEMBER — PROFILE ===== */
.member-hero h1{margin-bottom:14px;}
.crumb{display:inline-flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted-d);background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:100px;padding:8px 16px;}
.crumb a{color:var(--muted-d);transition:color .2s;}
.crumb a:hover{color:var(--ember-hi);}
.crumb .sep{opacity:.6;}
.crumb .here{color:var(--ember-hi);font-weight:500;}
.member-sec{padding-top:70px;}
.member-grid{display:grid;grid-template-columns:300px 1fr;gap:50px;align-items:start;}
.member-card{position:sticky;top:110px;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:24px;text-align:center;}
.member-photo{border-radius:16px;overflow:hidden;aspect-ratio:1;background:var(--paper-2);margin-bottom:18px;}
.member-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.member-name{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:500;color:var(--ember-deep);letter-spacing:-.01em;}
.member-role{font-size:.95rem;color:var(--muted);font-weight:500;margin-top:4px;}
.member-linkedin{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:10px 18px;border-radius:100px;background:#0A66C2;color:#fff !important;font-size:.85rem;font-weight:600;transition:all .25s cubic-bezier(.2,.7,.2,1);}
.member-linkedin:hover{background:#004182;color:#fff !important;transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(10,102,194,.6);}
.member-linkedin svg{width:16px;height:16px;}
.member-body > p{font-size:1.06rem;color:var(--ink);margin-bottom:18px;line-height:1.7;}
.member-cols{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:34px;padding-top:30px;border-top:1px solid var(--line);}
.member-block h3{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:16px;}
.member-tags{list-style:none;display:flex;flex-wrap:wrap;gap:9px;}
.member-tags li{background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:8px 15px;font-size:.88rem;font-weight:500;color:var(--ink);transition:border-color .25s,background .25s;}
.member-tags li:hover{border-color:var(--ember);background:#fff;}
.member-edu{list-style:none;display:flex;flex-direction:column;gap:16px;}
.member-edu li{padding-left:16px;border-left:2px solid var(--ember);}
.member-edu b{display:block;font-size:.98rem;color:var(--ink);font-weight:600;}
.member-edu span{display:block;font-size:.88rem;color:var(--muted);margin-top:2px;}
.member-quote{max-width:760px;margin:60px auto 0;text-align:center;}
.member-quote .stars{color:var(--ember);font-size:1.1rem;letter-spacing:3px;margin-bottom:18px;}
.member-quote blockquote{position:relative;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;border-radius:18px;padding:30px 40px;font-family:'Fraunces',serif;font-size:1.3rem;font-style:italic;line-height:1.45;box-shadow:0 26px 52px -26px rgba(247,143,27,.6);}
.member-quote blockquote::before{content:"";position:absolute;top:-12px;left:50%;transform:translateX(-50%);border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:14px solid var(--ember);}
.member-back{margin-top:48px;}

@media(max-width:980px){
  .story-grid,.why-split{grid-template-columns:1fr;gap:36px;}
  .family-callout{flex-direction:column;text-align:center;gap:18px;}
  .team-grid{grid-template-columns:1fr 1fr;}
  .member-grid{grid-template-columns:1fr;gap:30px;}
  .member-card{position:static;max-width:340px;margin:0 auto;}
}
@media(max-width:620px){
  .rail-num{font-size:2rem;}
  .team-grid{grid-template-columns:1fr;}
  .member-cols{grid-template-columns:1fr;gap:28px;}
  .family-bubble{gap:16px;padding:11px 22px 11px 11px;max-width:100%;}
  .family-bubble:nth-child(even){align-self:flex-start;}
  .family-badge{width:46px;height:46px;font-size:1.4rem;}
  .family-text{font-size:1rem;}
  .member-quote blockquote{font-size:1.12rem;padding:26px 26px;}
}

/* ===== COOKIE CONSENT ===== */
.cookie-consent{position:fixed;left:0;right:0;bottom:0;z-index:1200;background:#0F0C08;border-top:1px solid var(--line-d);color:rgba(251,248,241,.82);box-shadow:0 -20px 50px -30px rgba(0,0,0,.8);transform:translateY(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.cookie-consent.in{transform:translateY(0);}
.cc-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;gap:36px;padding:22px 32px;flex-wrap:wrap;}
.cc-text{flex:1;min-width:280px;}
.cc-text h4{color:#fff;font-size:1.06rem;font-weight:600;margin-bottom:6px;letter-spacing:-.01em;}
.cc-text p{font-size:.9rem;line-height:1.55;color:rgba(251,248,241,.6);max-width:920px;}
.cc-actions{display:flex;gap:12px;flex-wrap:wrap;}
.cc-btn{cursor:pointer;border-radius:8px;padding:12px 26px;font-size:.92rem;font-weight:600;font-family:inherit;line-height:1;transition:all .25s cubic-bezier(.2,.7,.2,1);border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;}
.cc-ghost:hover{border-color:#fff;background:rgba(255,255,255,.07);}
.cc-accept{background:var(--ember);border-color:var(--ember);color:var(--ink);}
.cc-accept:hover{background:var(--ember-hi);border-color:var(--ember-hi);transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(247,143,27,.6);}
.cc-customize{max-width:1320px;margin:0 auto;border-top:1px solid var(--line-d);padding:14px 32px 24px;}
.cc-cat{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 0;border-bottom:1px solid var(--line-d);}
.cc-cat:last-of-type{border-bottom:none;}
.cc-cat b{display:block;color:#fff;font-size:.95rem;font-weight:600;}
.cc-cat span{display:block;font-size:.82rem;color:rgba(251,248,241,.55);margin-top:3px;}
.cc-customize-actions{margin-top:14px;}
.cc-switch{position:relative;flex:0 0 auto;width:46px;height:26px;display:inline-block;}
.cc-switch input{opacity:0;width:0;height:0;position:absolute;margin:0;}
.cc-switch span{position:absolute;inset:0;background:rgba(255,255,255,.18);border-radius:100px;transition:background .25s;cursor:pointer;}
.cc-switch span::before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .25s;}
.cc-switch input:checked + span{background:var(--ember);}
.cc-switch input:checked + span::before{transform:translateX(20px);}
.cc-switch input:disabled + span{opacity:.55;cursor:not-allowed;}
@media(max-width:768px){
  .cc-inner{gap:16px;padding:18px 20px;}
  .cc-text p{font-size:.86rem;}
  .cc-actions{width:100%;}
  .cc-actions .cc-btn{flex:1 1 auto;text-align:center;padding:12px 14px;}
  .cc-customize{padding:12px 20px 20px;}
  /* The Tawk.to bubble is fixed to the bottom-right corner and sits above this
     banner, covering Accept All. Tawk writes its position inline with
     !important, so it cannot be moved from here -- the reliable fix is to keep
     our own controls out of the corner it occupies (roughly 60px of bubble
     plus a 20px offset). Applied to the button row and the customize panel's
     row, since both end up under it. */
  .cc-actions,.cc-customize-actions{padding-right:84px;}
}
@media(max-width:560px){
  /* Three buttons minus the reserved corner leaves each too narrow to read, so
     they stack full width instead of squeezing onto one line. */
  .cc-actions{flex-direction:column;align-items:stretch;}
  .cc-actions .cc-btn{width:100%;}
}

/* ===== PRODUCTS MEGA CARD ===== */
.ky-mega-card{display:block;background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid var(--line-d);border-radius:16px;padding:24px 26px;color:var(--cream) !important;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s;}
.ky-mega-card::before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.25),transparent 70%);top:-90px;right:-70px;filter:blur(18px);pointer-events:none;}
.ky-mega-card:hover{transform:translateY(-3px);border-color:rgba(247,143,27,.4);box-shadow:0 24px 48px -26px rgba(0,0,0,.6);}
.ky-mega-card::after{content:none !important;}
.ky-mega-top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;}
.ky-mega-logo{display:inline-flex;align-items:center;gap:9px;font-family:'Fraunces',serif;font-size:1.24rem;font-weight:600;color:#fff;}
.ky-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(150deg,var(--ember),var(--ember-deep));color:#fff;font-size:.92rem;font-weight:700;font-family:'Fraunces',serif;}
.ky-mega-tag{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember-hi);border:1px solid rgba(255,174,69,.35);border-radius:100px;padding:5px 11px;}
.ky-mega-card > p{position:relative;z-index:2;font-size:.92rem;color:rgba(251,248,241,.72);margin-bottom:16px;}
.ky-mega-stats{position:relative;z-index:2;display:flex;gap:24px;margin-bottom:16px;}
.ky-mega-stats span{font-size:.78rem;color:var(--muted-d);}
.ky-mega-stats b{display:block;font-family:'Fraunces',serif;font-size:1.42rem;color:var(--ember-hi);font-weight:500;line-height:1;margin-bottom:3px;}
.ky-mega-go{position:relative;z-index:2;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ember-hi);}
.ky-mega-go .arr{transition:transform .25s;}
.ky-mega-card:hover .ky-mega-go .arr{transform:translateX(4px);}

/* Products panel: Kymera and Kubentic as two equal cards. Each card is a flex
   column with its link pushed to the foot, so the two footers line up however
   long either description runs. */
.prod-mega-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;}
.prod-mega-cards .ky-mega-card{display:flex;flex-direction:column;}
.prod-mega-cards .ky-mega-card > p{font-size:.88rem;line-height:1.55;}
/* One row of figures in both cards, so neither card grows a second stats row
   and stretches its neighbour into empty space. Labels stay on one line. */
.prod-mega-cards .ky-mega-stats{flex-wrap:nowrap;gap:22px;}
.prod-mega-cards .ky-mega-stats span{white-space:nowrap;}
.prod-mega-cards .ky-mega-go{margin-top:auto;}
/* Kubentic takes a cool blue accent from its own logo, so the two products
   read as distinct at a glance while sharing one card system. */
.kb-mega-card::before{background:radial-gradient(circle,rgba(64,150,255,.28),transparent 70%);}
.kb-mega-card:hover{border-color:rgba(96,165,250,.45);}
.kb-mark{background:rgba(255,255,255,.08);border:1px solid rgba(147,197,253,.28);}
.kb-mark img{display:block;width:19px;height:auto;}
.kb-mega-card .ky-mega-tag{color:#93C5FD;border-color:rgba(147,197,253,.35);}
.kb-mega-card .ky-mega-stats b,
.kb-mega-card .ky-mega-go{color:#93C5FD;}
@media(max-width:1100px){
  .prod-mega-cards{grid-template-columns:1fr;}
}

/* ===== KYMERA SOLUTIONS PAGE (light theme) ===== */
.ksol{background:var(--paper);color:var(--ink);overflow-x:hidden;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* product hero */
.ky-hero{padding-top:84px;}
.ky-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.ky-hero-grid > div{min-width:0;}
.ky-brandline{display:flex;align-items:center;gap:14px;margin-bottom:24px;flex-wrap:wrap;}
.ky-brandline img{height:30px;width:auto;filter:brightness(.6) saturate(1.5);}
.ky-brandline .div{width:1px;height:20px;background:var(--line);}
.ky-brandline .by{font-size:.82rem;color:var(--muted);font-weight:500;}
.ky-eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ember-deep);background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.28);padding:7px 15px;border-radius:100px;margin-bottom:20px;}
.ky-eyebrow .pulse{width:7px;height:7px;border-radius:50%;background:var(--ember);animation:kpulse 2.2s infinite;}
@keyframes kpulse{0%{box-shadow:0 0 0 0 rgba(247,143,27,.5)}70%{box-shadow:0 0 0 9px rgba(247,143,27,0)}100%{box-shadow:0 0 0 0 rgba(247,143,27,0)}}
.ky-h2{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3rem);font-weight:500;letter-spacing:-.02em;line-height:1.04;margin-bottom:18px;color:var(--ink);}
.ky-h2 em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.ky-lead{font-size:1.12rem;color:var(--muted);max-width:540px;margin-bottom:30px;line-height:1.65;}
.ky-lead b{color:var(--ink);font-weight:600;}
.ky-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
.ky-hero .ky-stats{display:flex;gap:38px;flex-wrap:wrap;}
.ky-hero .ky-stat .num{font-family:'Fraunces',serif;font-weight:500;font-size:2.1rem;color:var(--ink);line-height:1;}
.ky-hero .ky-stat .num span{color:var(--ember-deep);}
.ky-hero .ky-stat .lbl{font-size:.82rem;color:var(--muted);margin-top:4px;}

/* product window mockup (light) */
.ky-hero-panel{position:relative;}
.ky-window{position:relative;z-index:2;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 40px 80px -36px rgba(21,17,12,.4);}
.ky-winbar{display:flex;align-items:center;gap:7px;margin-bottom:16px;}
.ky-winbar i{width:11px;height:11px;border-radius:50%;background:#d9cfbf;display:block;}
.ky-winbar i:first-child{background:var(--ember);}
.ky-winbar .url{margin-left:10px;font-size:.72rem;color:var(--muted);background:#fff;border:1px solid var(--line);padding:5px 12px;border-radius:7px;flex:1;}
.ky-row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:11px;background:#fff;border:1px solid var(--line);margin-bottom:9px;}
.ky-row .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none;background:rgba(247,143,27,.12);color:var(--ember-deep);}
.ky-row .ic.violet{background:rgba(124,92,255,.14);color:#6a4ff0;}
.ky-row .ic svg{width:18px;height:18px;}
.ky-row .meta{flex:1;min-width:0;}
.ky-row .meta .t{font-size:.86rem;font-weight:600;color:var(--ink);}
.ky-row .meta .d{font-size:.74rem;color:var(--muted);}
.ky-tag{font-family:'JetBrains Mono',monospace;font-size:.66rem;font-weight:600;padding:4px 10px;border-radius:100px;white-space:nowrap;}
.ky-tag.ok{background:rgba(34,160,90,.13);color:#1f9d57;}
.ky-tag.flag{background:rgba(247,143,27,.15);color:var(--ember-deep);}
.ky-tag.rev{background:rgba(124,92,255,.14);color:#6a4ff0;}
.ky-bar{margin-top:14px;height:8px;border-radius:6px;background:var(--paper-2);overflow:hidden;border:1px solid var(--line);}
.ky-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--ember),var(--ember-hi));}
.ky-barmeta{display:flex;justify-content:space-between;margin-top:8px;font-size:.72rem;color:var(--muted);}
.ky-barmeta b{color:var(--ember-deep);font-weight:600;}
.ky-chip{position:absolute;z-index:4;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 15px;display:flex;align-items:center;gap:11px;box-shadow:0 18px 40px -16px rgba(21,17,12,.35);}
.ky-chip .big{font-family:'Fraunces',serif;font-weight:600;font-size:1.4rem;color:var(--ember-deep);}
.ky-chip .lbl{font-size:.7rem;color:var(--muted);line-height:1.2;}
.ky-chip .lbl b{color:var(--ink);}
.ky-chip-a{top:-22px;right:-16px;animation:kfloat 5s ease-in-out infinite;}
.ky-chip-b{bottom:-22px;left:-20px;animation:kfloat 6s ease-in-out infinite .8s;}
@keyframes kfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* problem cards */
.ky-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ky-card{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:30px;transition:transform .35s,border-color .35s,box-shadow .35s;}
.ky-card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:0 24px 50px -22px rgba(21,17,12,.22);}
.ky-card-ico{width:52px;height:52px;border-radius:13px;display:grid;place-items:center;margin-bottom:20px;background:rgba(247,143,27,.1);border:1px solid rgba(247,143,27,.25);color:var(--ember-deep);}
.ky-card-ico svg{width:25px;height:25px;}
.ky-card h3{font-size:1.2rem;font-weight:600;color:var(--ink);margin-bottom:10px;letter-spacing:-.01em;}
.ky-card p{color:var(--muted);font-size:.95rem;}

/* how it works — image carries its own backdrop, so no frame */
.ky-flow{margin:0 auto 48px;max-width:1040px;}
.ky-flow img{display:block;width:100%;height:auto;}
.ky-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.ky-step{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 22px;display:grid;grid-template-columns:auto 1fr;gap:12px 14px;align-items:start;min-width:0;transition:transform .35s,border-color .35s,box-shadow .35s;}
.ky-step:hover{transform:translateY(-6px);border-color:transparent;box-shadow:0 22px 44px -22px rgba(21,17,12,.22);}
.ky-step-n{grid-column:1 / -1;font-family:'JetBrains Mono',monospace;font-weight:500;font-size:.7rem;letter-spacing:.14em;color:var(--ember-deep);text-transform:uppercase;}
.ky-step-ico{grid-column:1;grid-row:2;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,var(--ink),var(--ink-2));color:var(--ember-hi);transition:all .35s;}
.ky-step:hover .ky-step-ico{background:linear-gradient(145deg,var(--ember),var(--ember-deep));color:#fff;transform:rotate(-6deg) scale(1.06);}
.ky-step-ico svg{width:23px;height:23px;}
.ky-step-text{grid-column:2;grid-row:2;min-width:0;}
.ky-step h4{font-size:1.02rem;font-weight:600;color:var(--ink);margin-bottom:6px;letter-spacing:-.01em;}
.ky-step p{font-size:.88rem;color:var(--muted);line-height:1.5;}
.ky-step .arrow{position:absolute;right:-13px;top:50%;transform:translateY(-50%);color:rgba(217,101,10,.45);z-index:2;}
.ky-step:last-child .arrow{display:none;}

/* solutions */
.ky-rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.ky-rev{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--cream);transition:transform .35s,border-color .35s,box-shadow .35s;display:flex;flex-direction:column;}
.ky-rev:hover{transform:translateY(-6px);box-shadow:0 26px 52px -24px rgba(21,17,12,.25);}
.ky-rev .media{height:160px;position:relative;display:grid;place-items:center;background:linear-gradient(150deg,var(--ink),var(--ink-2));overflow:hidden;}
.ky-rev .media::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 22%,rgba(247,143,27,.32),transparent 55%),radial-gradient(circle at 82% 82%,rgba(178,58,14,.26),transparent 55%);}
.ky-rev .media .badge{position:relative;z-index:2;width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.08);backdrop-filter:blur(6px);border:1px solid var(--line-d);display:grid;place-items:center;color:var(--ember-hi);}
.ky-rev .media .badge svg{width:30px;height:30px;}
.ky-rev .body{padding:26px 28px 30px;}
.ky-rev .kicker{font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:10px;}
.ky-rev h3{font-size:1.35rem;font-weight:600;color:var(--ink);margin-bottom:11px;letter-spacing:-.01em;}
.ky-rev p{color:var(--muted);font-size:.95rem;margin-bottom:16px;}
.ky-rev .more{font-family:'JetBrains Mono',monospace;font-weight:500;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ember-deep);display:inline-flex;align-items:center;gap:7px;}
.ky-rev .more svg{width:14px;height:14px;transition:transform .25s;}
.ky-rev:hover .more svg{transform:translateX(4px);}

/* benefits */
.ky-accel{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center;}
.ky-accel-h{font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:500;letter-spacing:-.02em;line-height:1.06;margin:14px 0 16px;color:var(--ink);}
.ky-accel-h em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.ky-accel .ky-lead{margin-bottom:26px;}
.ky-bullets{display:flex;flex-direction:column;gap:14px;}
.ky-bullet{display:flex;gap:16px;padding:20px 22px;background:var(--cream);border:1px solid var(--line);border-radius:14px;transition:transform .25s,border-color .25s;}
.ky-bullet:hover{border-color:var(--ember);transform:translateX(6px);}
.ky-tick{width:30px;height:30px;border-radius:9px;flex:none;background:linear-gradient(150deg,var(--ember),var(--ember-deep));position:relative;}
.ky-tick::after{content:"";position:absolute;left:11px;top:6px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);}
.ky-bullet b{display:block;color:var(--ink);font-size:1.02rem;font-weight:600;margin-bottom:3px;}
.ky-bullet span{display:block;color:var(--muted);font-size:.9rem;}

/* pilot */
#kym-pilot{background:var(--paper-2);}
.ky-pilot{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:26px;padding:50px;overflow:hidden;box-shadow:0 30px 60px -34px rgba(21,17,12,.35);}
.ky-pilot::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.14),transparent 65%);top:-180px;right:-120px;}
.ky-pilot-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center;position:relative;z-index:2;}
.ky-pilot-visual{position:relative;text-align:center;}
.ky-pilot-visual::before{content:"";position:absolute;inset:8% 16%;background:radial-gradient(circle,rgba(247,143,27,.22),transparent 66%);filter:blur(36px);}
.ky-pilot-visual img{position:relative;z-index:1;max-width:300px;width:100%;height:auto;filter:drop-shadow(0 30px 50px rgba(21,17,12,.3));}
.ky-pilot h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:500;letter-spacing:-.02em;margin:6px 0 14px;color:var(--ink);}
.ky-pilot h2 em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.ky-pilot .ky-lead{margin-bottom:24px;}
.ky-pilot-steps{display:flex;flex-direction:column;gap:16px;margin-bottom:28px;}
.ky-pstep{display:flex;gap:16px;align-items:flex-start;}
.ky-pstep .pn{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:600;font-size:.95rem;color:var(--ember-deep);background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.3);}
.ky-pstep b{display:block;font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:2px;}
.ky-pstep span{display:block;font-size:.9rem;color:var(--muted);}

/* testimonials */
.ky-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ky-quote{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:30px;transition:transform .35s,border-color .35s,box-shadow .35s;}
.ky-quote:hover{transform:translateY(-6px);box-shadow:0 24px 48px -24px rgba(21,17,12,.22);}
.ky-quote .mark{font-family:'Fraunces',serif;font-size:3.4rem;line-height:.5;color:var(--ember);opacity:.4;height:26px;}
.ky-quote blockquote{font-size:.98rem;color:var(--ink);margin:12px 0 22px;line-height:1.6;font-style:normal;}
.ky-quote .who{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:18px;}
.ky-quote .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(150deg,var(--ember),var(--ember-deep));display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:600;color:#fff;flex:none;font-size:.9rem;}
.ky-quote .nm{font-size:.92rem;font-weight:600;color:var(--ink);}
.ky-quote .rl{font-size:.8rem;color:var(--muted);}

.ky-cta-band{background:var(--ink);}

@media(max-width:980px){
  .ky-hero-grid,.ky-accel,.ky-pilot-grid{grid-template-columns:1fr;gap:40px;}
  .ky-cards,.ky-steps,.ky-quotes{grid-template-columns:1fr 1fr;}
  .ky-rev-grid{grid-template-columns:1fr;}
  .ky-step .arrow{display:none;}
}
@media(max-width:620px){
  .ky-cards,.ky-steps,.ky-quotes{grid-template-columns:1fr;}
  .ky-chip{display:none;}
  .ky-stats{gap:22px;}
  .ky-pilot{padding:34px 24px;}
}

/* ===== BLOG LISTING ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.post-card{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.post-card:hover{transform:translateY(-6px);box-shadow:0 28px 54px -26px rgba(21,17,12,.3);border-color:transparent;}
.post-thumb{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(150deg,var(--ink),var(--ink-2));}
.post-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.post-card:hover .post-thumb img{transform:scale(1.05);}
.post-thumb-ph{position:absolute;inset:0;display:grid;place-items:center;font-family:'Fraunces',serif;font-size:2.2rem;font-weight:600;color:var(--ember-hi);opacity:.55;}
.post-thumb-cat{position:absolute;left:14px;top:14px;background:rgba(21,17,12,.8);color:#fff;font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:100px;backdrop-filter:blur(4px);}
.post-card-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1;}
.post-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin-bottom:11px;}
.post-meta .dot{opacity:.5;}
.post-meta-by{color:var(--ember-deep);font-weight:600;}
.post-card-title{font-family:'Fraunces',serif;font-size:1.24rem;font-weight:500;line-height:1.24;letter-spacing:-.01em;margin-bottom:11px;}
.post-card-title a{color:var(--ink);transition:color .2s;}
.post-card:hover .post-card-title a{color:var(--ember-deep);}
.post-card-ex{font-size:.92rem;color:var(--muted);line-height:1.6;margin-bottom:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.post-more{font-family:'JetBrains Mono',monospace;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ember-deep);font-weight:500;display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:auto;}
.post-more .arr{transition:transform .25s;}
.post-card:hover .post-more .arr{transform:translateX(4px);}

.blog-pagination{margin-top:54px;}
.blog-pagination .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;}
.blog-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 13px;border-radius:10px;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-weight:600;font-size:.92rem;transition:all .25s;}
.blog-pagination a.page-numbers:hover{border-color:var(--ember);color:var(--ember-deep);}
.blog-pagination .page-numbers.current{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.blog-pagination .page-numbers.dots{border-color:transparent;background:transparent;}

/* archive / search hero extras */
.page-hero-count{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember-hi);margin-top:16px;}
.crumb.light{display:inline-flex;align-items:center;gap:9px;font-size:.82rem;color:rgba(251,248,241,.6);margin-top:20px;max-width:100%;flex-wrap:wrap;}
.crumb.light a{color:rgba(251,248,241,.78);transition:color .2s;}
.crumb.light a:hover{color:var(--ember-hi);}
.crumb.light .sep{opacity:.4;}
.crumb.light .here{color:var(--ember-hi);}
.crumb-divider{width:1px;height:14px;background:var(--line-d);margin:0 4px;}
.crumb-count{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember-hi);}

/* ===== BLOG LAYOUT + SIDEBAR ===== */
.blog-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:50px;align-items:start;}
.blog-main{min-width:0;}

/* listing toolbar + view toggle */
.blog-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:11px;margin-bottom:24px;}
.blog-toolbar-label{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-d);}
.view-toggle{display:inline-flex;gap:2px;padding:4px;background:var(--cream);border:1px solid var(--line);border-radius:100px;}
.view-btn{width:40px;height:34px;border:none;background:none;border-radius:100px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;transition:background .2s,color .2s;}
.view-btn svg{width:18px;height:18px;}
.view-btn:hover{color:var(--ink);}
.view-btn.active{background:var(--ink);color:var(--cream);}

/* default grid (related posts) stays 3-up; listing uses is-list / is-grid */
.blog-grid.is-list{grid-template-columns:1fr;gap:22px;}
.blog-grid.is-grid{grid-template-columns:repeat(2,1fr);gap:26px;}

/* single-row (list) card: image left, text right, no excerpt */
.blog-grid.is-list .post-card{flex-direction:row;align-items:stretch;min-height:188px;}
.blog-grid.is-list .post-thumb{flex:0 0 36%;max-width:320px;aspect-ratio:auto;}
.blog-grid.is-list .post-card-body{justify-content:center;padding:26px 32px;}
.blog-grid.is-list .post-card-title{font-size:1.45rem;}
.blog-grid.is-list .post-more{margin-top:0;}

/* grid card: vertical, no excerpt */
.blog-grid.is-grid .post-card{flex-direction:column;}
.blog-grid.is-grid .post-thumb{aspect-ratio:16/10;}

.blog-empty{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:54px 40px;text-align:center;}
.blog-empty h2{font-size:1.8rem;margin-bottom:10px;}
.blog-empty p{color:var(--muted);max-width:440px;margin:0 auto 22px;}
.blog-empty .search-form{max-width:360px;margin:0 auto;}

.blog-sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:26px;}
.widget{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:24px 24px 26px;}
.widget-title{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-d);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line);}

/* search widget */
.search-form{position:relative;display:flex;}
.search-field{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:100px;padding:13px 52px 13px 18px;font-family:'Hanken Grotesk',sans-serif;font-size:.92rem;color:var(--ink);transition:border-color .2s,box-shadow .2s;}
.search-field::placeholder{color:var(--muted-d);}
.search-field:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(247,143,27,.16);}
.search-submit{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:none;border-radius:50%;background:var(--ember);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s;}
.search-submit:hover{background:var(--ember-deep);transform:translateY(-50%) scale(1.05);}
.search-submit svg{width:17px;height:17px;}

/* recent posts widget */
.recent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.recent-link{display:flex;gap:13px;align-items:flex-start;}
.recent-link::after{content:none !important;}
.recent-thumb{flex:0 0 auto;width:62px;height:62px;border-radius:12px;overflow:hidden;background:linear-gradient(150deg,var(--ink),var(--ink-2));position:relative;}
.recent-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.recent-link:hover .recent-thumb img{transform:scale(1.08);}
.recent-thumb-ph{position:absolute;inset:0;display:grid;place-items:center;font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;color:var(--ember-hi);opacity:.6;}
.recent-meta{display:flex;flex-direction:column;min-width:0;}
.recent-title{font-family:'Fraunces',serif;font-size:.98rem;font-weight:500;line-height:1.3;letter-spacing:-.01em;color:var(--ink);transition:color .2s;}
.recent-link:hover .recent-title{color:var(--ember-deep);}
.recent-date{font-size:.76rem;color:var(--muted);margin-top:5px;}

/* categories widget */
.cat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.cat-item a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink);font-weight:500;font-size:.95rem;transition:background .2s,color .2s,padding-left .2s;}
.cat-item a::after{content:none !important;}
.cat-item a:hover{background:var(--paper-2);color:var(--ember-deep);padding-left:16px;}
.cat-item.current a{background:var(--paper-2);color:var(--ember-deep);}
.cat-count{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--muted-d);background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:2px 9px;min-width:28px;text-align:center;transition:border-color .2s,color .2s;}
.cat-item a:hover .cat-count,.cat-item.current a .cat-count{border-color:var(--ember);color:var(--ember-deep);}

/* contact CTA widget */
.widget-cta{background:linear-gradient(155deg,var(--ink),var(--ink-2));border-color:transparent;}
.widget-cta h4{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;letter-spacing:-.01em;margin-bottom:9px;color:#fff;}
.widget-cta p{font-size:.9rem;color:rgba(251,248,241,.72);margin-bottom:20px;line-height:1.55;}
.widget-cta .btn{width:100%;justify-content:center;}

@media(max-width:1040px){
  .blog-layout{grid-template-columns:minmax(0,1fr) 290px;gap:36px;}
}
@media(max-width:900px){
  .blog-layout{grid-template-columns:1fr;gap:42px;}
  .blog-sidebar{position:static;}
}
@media(max-width:620px){
  .blog-grid.is-grid{grid-template-columns:1fr;}
  /* horizontal list cards stack on small screens */
  .blog-grid.is-list .post-card{flex-direction:column;min-height:0;}
  .blog-grid.is-list .post-thumb{flex:auto;max-width:none;aspect-ratio:16/10;}
  .blog-grid.is-list .post-card-body{padding:22px 24px 26px;justify-content:flex-start;}
  .blog-grid.is-list .post-card-title{font-size:1.24rem;}
  .blog-empty{padding:40px 24px;}
}

/* ===== BLOG POST ===== */
.post-hero-inner{max-width:100%;}
.post-meta-hero{display:flex;align-items:center;gap:12px;font-size:.86rem;color:var(--muted-d);margin-bottom:18px;flex-wrap:wrap;}
.post-meta-hero.below{margin-bottom:0;margin-top:2px;}
.post-meta-hero .post-cat{color:var(--ember-hi) !important;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;}
.post-meta-hero .dot{opacity:.5;}
.post-hero h1{font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.4;margin-bottom:20px;}
.post-sec{padding-top:64px;}
.post-cover{max-width:1000px;margin:0 auto 52px;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -34px rgba(21,17,12,.35);}
.post-cover img{width:100%;height:auto;display:block;}
.post-layout{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:34px;max-width:840px;margin:0 auto;align-items:start;}
.post-aside{position:relative;}
.post-share{position:sticky;top:112px;display:flex;flex-direction:column;align-items:center;gap:12px;}
.post-share-l{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-d);writing-mode:vertical-rl;margin-bottom:2px;}
.post-share a{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--cream);border:1px solid var(--line);color:var(--muted);transition:all .25s cubic-bezier(.2,.7,.2,1);}
.post-share a:hover{background:var(--ember);color:var(--ink);border-color:var(--ember);transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(247,143,27,.6);}
.post-share svg{width:16px;height:16px;}

/* long-form typography */
.post-body{font-size:1.08rem;line-height:1.8;color:var(--ink);}
.post-body > *:first-child{margin-top:0;}
.post-body p{margin-bottom:22px;}
.post-body h2{font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:500;letter-spacing:-.01em;line-height:1.2;margin:44px 0 16px;}
.post-body h3{font-family:'Fraunces',serif;font-size:1.32rem;font-weight:500;letter-spacing:-.01em;margin:32px 0 12px;}
.post-body h4{font-size:1.1rem;font-weight:700;margin:24px 0 10px;}
.post-body ul,.post-body ol{margin:0 0 24px 4px;padding-left:24px;}
.post-body li{margin-bottom:10px;padding-left:4px;}
.post-body ul li::marker{color:var(--ember-deep);}
.post-body strong{color:var(--ink);font-weight:700;}
.post-body a{color:var(--ember-deep);text-decoration:underline;text-underline-offset:2px;}
.post-body a:hover{color:var(--rust);}
.post-body img{max-width:100%;height:auto;border-radius:14px;margin:26px 0;border:1px solid var(--line);}
.post-body blockquote{border-left:3px solid var(--ember);padding:4px 0 4px 24px;margin:28px 0;font-style:italic;color:var(--muted);font-size:1.15rem;}
.post-body figure{margin:26px 0;}

.post-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;max-width:840px;margin:54px auto 0;padding-top:32px;border-top:1px solid var(--line);}

/* previous / next article navigation */
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:840px;margin:54px auto 0;padding-top:34px;border-top:1px solid var(--line);}
.post-nav-link{display:flex;flex-direction:column;gap:8px;padding:20px 24px;border:1px solid var(--line);border-radius:16px;background:var(--cream);transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .25s;}
.post-nav-link.next{text-align:right;align-items:flex-end;}
.post-nav-link:hover{transform:translateY(-3px);border-color:var(--ember);box-shadow:0 22px 44px -26px rgba(21,17,12,.3);}
.post-nav-dir{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.67rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember-deep);font-weight:500;}
.post-nav-dir .arr{transition:transform .25s;}
.post-nav-link.prev:hover .arr{transform:translateX(-4px);}
.post-nav-link.next:hover .arr{transform:translateX(4px);}
.post-nav-title{font-family:'Fraunces',serif;font-size:1.06rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.32;transition:color .2s;}
.post-nav-link:hover .post-nav-title{color:var(--ember-deep);}
.post-nav-link.is-empty{border:none;background:none;box-shadow:none;pointer-events:none;}
@media(max-width:620px){.post-nav{grid-template-columns:1fr;}.post-nav-link.next{text-align:left;align-items:flex-start;}.post-nav-link.is-empty{display:none;}}
.post-related .blog-grid{margin-top:8px;}

@media(max-width:980px){
  .blog-grid{grid-template-columns:1fr 1fr;}
  .post-layout{grid-template-columns:1fr;gap:24px;}
  .post-aside{order:-1;}
  .post-share{position:static;flex-direction:row;justify-content:flex-start;gap:10px;}
  .post-share-l{writing-mode:horizontal-tb;margin:0 4px 0 0;}
}
@media(max-width:620px){
  .blog-grid{grid-template-columns:1fr;}
}

/* ===== CAREERS — LISTING ===== */
.careers-head{max-width:720px;margin-bottom:34px;}
.careers-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:18px;}
.careers-search{position:relative;flex:1;max-width:420px;}
.careers-search svg{position:absolute;left:17px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);}
.careers-search input{width:100%;font-family:inherit;font-size:.95rem;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:13px 18px 13px 46px;transition:border-color .2s,box-shadow .2s;}
.careers-search input:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(247,143,27,.16);}
.careers-count{font-size:.88rem;color:var(--muted);font-weight:500;}
.careers-table-wrap{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--cream);}
@media(max-width:760px){.careers-table-wrap{overflow-x:auto;}}
.careers-table{width:100%;border-collapse:collapse;min-width:760px;}
.careers-table thead th{text-align:left;font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:17px 20px;background:var(--paper-2);border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .2s;}
.careers-table thead th:hover,.careers-table thead th[data-active]{color:var(--ember-deep);}
.careers-table thead th[data-active]::after{content:"\2191";margin-left:6px;}
.careers-table thead th[data-active][data-dir="desc"]::after{content:"\2193";}
.careers-table tbody td{padding:17px 20px;border-bottom:1px solid var(--line);font-size:.93rem;color:var(--muted);vertical-align:middle;}
.careers-table tbody tr:last-child td{border-bottom:none;}
.job-row{cursor:pointer;transition:background .2s;}
.job-row:hover{background:#fff;}
.job-title-cell{font-weight:600;color:var(--ink) !important;font-size:.98rem;white-space:normal;}
.job-row:hover .job-title-cell{color:var(--ember-deep) !important;}
.job-go{margin-left:8px;opacity:0;color:var(--ember-deep);transition:opacity .2s,transform .2s;display:inline-block;}
.job-row:hover .job-go{opacity:1;transform:translateX(3px);}
.job-type{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.7rem;padding:4px 11px;border-radius:100px;background:rgba(247,143,27,.1);color:var(--ember-deep);text-transform:capitalize;white-space:nowrap;}
.job-src{font-size:.85rem;color:var(--muted-d);}
.careers-pagination{display:flex;justify-content:center;gap:8px;margin-top:30px;flex-wrap:wrap;}
.page-btn{min-width:40px;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-weight:600;font-size:.92rem;cursor:pointer;transition:all .2s;}
.page-btn:hover{border-color:var(--ember);color:var(--ember-deep);}
.page-btn.current{background:var(--ember);border-color:var(--ember);color:var(--ink);}
.careers-empty{color:var(--muted);font-size:1.05rem;padding:24px 0;}
.careers-legal{max-width:920px;}
.careers-legal-item{margin-bottom:32px;}
.careers-legal-item:last-child{margin-bottom:0;}
.careers-legal-item h3{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;color:var(--ember-deep);margin-bottom:10px;letter-spacing:-.01em;}
.careers-legal-item p{color:var(--muted);font-size:.95rem;line-height:1.7;}
.careers-legal-item a{color:var(--ember-deep);text-decoration:underline;}

/* ===== CAREERS — JOB DETAIL ===== */
/* compact, content-rich hero */
.job-hero{padding:122px 0 56px;}
.job-hero .crumb{margin-bottom:22px;}
.job-hero h1{font-size:clamp(1.85rem,3.4vw,2.75rem);line-height:1.08;margin-bottom:22px;max-width:780px;}
.job-hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
.job-chip{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:500;color:rgba(251,248,241,.86);background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:100px;padding:8px 15px;}
.job-chip svg{width:15px;height:15px;color:var(--ember-hi);flex:0 0 auto;}
.job-hero-cta{display:flex;gap:12px;flex-wrap:wrap;}

.job-sec{padding-top:70px;}
.job-layout{display:grid;grid-template-columns:minmax(0,1fr) 436px;gap:48px;align-items:start;}
.job-sec .post-foot{max-width:100%;}
.job-body > h2:first-child{margin-top:0;}
.job-body h2{position:relative;font-size:clamp(1.3rem,2.2vw,1.6rem);margin:40px 0 16px;padding-left:18px;}
.job-body h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:3px;background:linear-gradient(var(--ember),var(--ember-deep));}
.job-body p{margin-bottom:18px;}
.job-body ol,.job-body ul{margin:0 0 22px 4px;padding-left:22px;}
.job-contact{list-style:none;padding:18px 22px;margin:6px 0 0;background:var(--cream);border:1px solid var(--line);border-radius:14px;}
.job-contact li{padding:5px 0;border:none;margin:0;color:var(--ink);font-size:.96rem;}
.job-contact li b{color:var(--muted);font-weight:600;}
.job-contact a{color:var(--ember-deep);}

/* apply card with dark header */
.job-apply{position:sticky;top:104px;}
.job-apply-card{background:var(--cream);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -38px rgba(21,17,12,.4);}
.job-apply-head{position:relative;background:linear-gradient(150deg,var(--ink),var(--ink-2));color:var(--cream);padding:24px 26px;overflow:hidden;}
.job-apply-head::before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(247,143,27,.3),transparent 70%);top:-80px;right:-50px;}
.job-apply-head h3{position:relative;font-family:'Fraunces',serif;font-size:1.32rem;font-weight:500;color:#fff;margin-bottom:6px;letter-spacing:-.01em;}
.job-apply-head p{position:relative;font-size:.88rem;color:rgba(251,248,241,.72);margin:0;line-height:1.5;}
.job-apply-body{padding:26px;}

/* Contact Form 7 — themed */
.wpcf7-form .cf-grid{display:block;}
.wpcf7-form p{margin:0 0 14px;}
.wpcf7-form label{display:block;font-size:.8rem;font-weight:600;color:var(--ink);margin-bottom:14px;}
.wpcf7-form .req{color:var(--rust);}
.wpcf7-form .wpcf7-form-control-wrap{display:block;width:100%;}
.wpcf7-form input[type=text],.wpcf7-form input[type=email],.wpcf7-form input[type=tel],.wpcf7-form input[type=url],.wpcf7-form input[type=number],.wpcf7-form textarea,.wpcf7-form select{display:block;width:100%;margin-top:6px;font-family:inherit;font-size:.93rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 14px;transition:border-color .2s,box-shadow .2s;}
.wpcf7-form input:focus,.wpcf7-form textarea:focus,.wpcf7-form select:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(247,143,27,.16);}
.wpcf7-form textarea{min-height:78px;resize:vertical;}
.wpcf7-form input[readonly]{background:var(--paper-2);color:var(--muted);font-weight:600;}
/* remove CF7 auto-inserted <br> so field spacing is controlled by margins */
.wpcf7-form br{display:none;}
/* drag & drop upload — compact text */
.wpcf7-form .codedropz-upload-handler{border-radius:11px;padding:6px;}
.wpcf7-form .codedropz-upload-inner h3{font-size:.95rem;font-weight:600;margin:0 0 2px;}
.wpcf7-form .codedropz-upload-inner span{font-size:.78rem;}
.wpcf7-form .codedropz-btn-wrap a,.wpcf7-form .cd-upload-btn{font-size:.82rem;}
.wpcf7-form .dnd-upload-counter,.wpcf7-form .dnd-upload-counter span,.wpcf7-form .dnd-upload-details{font-size:.72rem;}
.wpcf7-form input[type=file]{width:100%;font-size:.84rem;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:11px;padding:11px 13px;}
.cf-actions{margin-top:6px !important;}
.wpcf7-form .wpcf7-submit{width:100%;justify-content:center;cursor:pointer;border:none;}
.wpcf7-spinner{margin:8px auto 0;display:block;}
.wpcf7-response-output{margin:14px 0 0 !important;padding:12px 16px !important;border-radius:10px !important;font-size:.9rem;line-height:1.5;border:1px solid var(--line) !important;color:var(--ink);}
.wpcf7-form.sent .wpcf7-response-output{background:rgba(34,160,90,.1);border-color:rgba(34,160,90,.4) !important;color:#1f7d48;}
.wpcf7-form.invalid .wpcf7-response-output,.wpcf7-form.unaccepted .wpcf7-response-output,.wpcf7-form.failed .wpcf7-response-output{background:rgba(178,58,14,.08);border-color:rgba(178,58,14,.35) !important;color:var(--rust);}
.wpcf7-not-valid-tip{color:var(--rust);font-size:.78rem;margin-top:4px;}

@media(max-width:980px){
  .job-layout{grid-template-columns:1fr;gap:32px;}
  .job-apply{position:static;}
  .job-factbar{grid-template-columns:1fr 1fr;}
}
@media(max-width:620px){
  .job-factbar{grid-template-columns:1fr;}
  .wpcf7-form .cf-grid{grid-template-columns:1fr;}
  .careers-toolbar{flex-direction:column;align-items:stretch;}
  .careers-search{max-width:none;}
}

/* ===== ANIMATION REFINEMENTS ===== */
.reveal.zoom{transform:translateY(28px) scale(.97);}
.reveal.zoom.in{transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important;transform:none !important;}
  .client-track,.kymera-mesh,.hero-aurora,.family-aurora{animation:none !important;}
  .family-badge,.family-bubble{animation:none !important;}
  .hero-particles,.ai-net{display:none;}
}

@media(max-width:980px){
  .hero-grid,.kymera-grid,.proof-grid{grid-template-columns:1fr;}
  .hero-panel{display:none;}
  .statgrid{grid-template-columns:1fr 1fr;}
  .tcarousel .quote{flex:0 0 100%;}
  .tnav.prev{left:-6px;}.tnav.next{right:-6px;}
  .client-item{width:180px;padding:16px 26px;}
  .svc-grid,.quotes{grid-template-columns:1fr 1fr;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .navlinks{display:none;}
  .navlinks.open{display:flex;flex-direction:column;position:absolute;top:100%;right:0;left:0;background:rgba(21,17,12,.96);backdrop-filter:blur(18px);padding:18px 32px 24px;gap:6px;align-items:flex-start;border-bottom:1px solid var(--line-d);max-height:calc(100vh - 70px);overflow-y:auto;}
  .menu-toggle{display:block;}

  /* mega menu → accordion inside the mobile drawer */
  .navitem{display:block;width:100%;}
  .navlink{width:100%;justify-content:space-between;padding:10px 0;}
  .navlink.solo{padding:10px 0;display:block;}
  .navlinks.open > .btn{margin-top:10px;}
  .mega{position:static !important;top:auto !important;left:auto;right:auto;background:transparent;border:none;box-shadow:none;opacity:1;visibility:visible;transform:none;max-height:0;overflow:hidden;transition:max-height .32s ease;}
  .navitem.open .mega{max-height:1400px;}
  .mega-inner{grid-template-columns:1fr;gap:14px;padding:4px 0 14px;}
  .mega-inner.mega-contact{grid-template-columns:1fr;gap:14px;}
  .mega-contact .cm-col{padding-left:0;border-left:none;border-top:1px solid var(--line-d);padding-top:14px;}
  .mega-grid.cols-2,.mega-grid.cols-3,.mega-grid.cols-4{grid-template-columns:1fr;}
  /* Journey goes vertical: four columns cannot hold their labels here. */
  .mega-journey{padding:20px 18px 22px;}
  .jr-head{margin-bottom:20px;}
  .jr-track{grid-template-columns:1fr;gap:20px;}
  .jr-node{padding-top:0;padding-left:30px;}
  /* Segments run down the gutter to the next dot. */
  .jr-node::before,.jr-node::after{left:6px;right:auto;top:20px;bottom:-20px;
    width:2px;height:auto;}
  .jr-node::after{transform:scaleY(0);transform-origin:50% 0;
    animation-name:jrDrawV;}
  .navitem.open .jr-node::after{animation-name:jrDrawV;}
  @keyframes jrDrawV{to{transform:scaleY(1);}}
  .jr-dot{top:1px;left:0;}
  .jr-num{font-size:1.45rem;margin-bottom:6px;}
  .jr-text{max-width:none;}
  .svc-cats{margin-top:10px;gap:0;}
  .svc-cat-btn{color:#fff;}
  .svc-cat-btn:hover,.svc-cat-btn.active{background:rgba(255,255,255,.06);color:var(--ember-hi);}
  .svc-cat-ico{background:rgba(255,255,255,.06);border-color:var(--line-d);color:var(--ember-hi);}
  .svc-cat-btn .arr{color:var(--ember-hi);}
  .svc-mega-main{margin-top:10px;}
  .svc-panel-h{color:#fff;border-bottom-color:var(--line-d);}
  .svc-panel .svc-list{column-count:1;column-rule:none;}
  .svc-link{color:#fff !important;}
  .svc-link:hover{background:rgba(255,255,255,.06);color:var(--ember-hi) !important;}
  .svc-link-label:hover{background:transparent;color:#fff !important;}
  .svc-sub{border-left-color:var(--line-d);}
  .svc-sublink{color:rgba(251,248,241,.7) !important;}
  .svc-sublink:hover{background:rgba(255,255,255,.06);color:var(--ember-hi) !important;}
  .cm-item,.cm-loc{color:#fff !important;}
  .cm-meta b{color:#fff;}
  .cm-ico{background:rgba(255,255,255,.08);border-color:var(--line-d);color:var(--ember-hi);}
  .cm-h{color:var(--ember-hi);}
  .cm-promo h3{color:#fff;}
  .cm-promo p{color:rgba(251,248,241,.6);}
  .mega-promo h3{font-size:1.15rem;color:#fff;}
  .mega-promo p{color:rgba(251,248,241,.6);}
  .mega-promo .eyebrow{color:var(--ember-hi);}
  .mega a,.mega-link b,.mega-link.mini{color:#fff;}
  .mega-link{padding:9px 12px;}
  .mega-link span{color:rgba(251,248,241,.6);}
  .mega-link:hover{background:rgba(255,255,255,.06);transform:none;}

  /* compact dropdown → accordion on mobile */
  .dropdown{position:static !important;min-width:0;background:transparent;border:none;box-shadow:none;padding:0;margin-top:0;opacity:1;visibility:visible;transform:none;max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .navitem.has-dropdown.open .dropdown{max-height:300px;padding:4px 0 8px;}
  .dropdown a{color:#fff !important;padding:9px 12px;}
  .dropdown a:hover{background:rgba(255,255,255,.06);color:var(--ember-hi) !important;padding-left:12px;}

  /* blog mega → stacked on mobile */
  .blog-cats{gap:0;margin:14px 0;}
  .blog-cat{color:#fff;padding:11px 12px;border-radius:8px;}
  .blog-cat:hover,.blog-cat.active{background:rgba(255,255,255,.06);color:var(--ember-hi);}
  .blog-cat .arr{color:var(--ember-hi);}
  .bcar-card{flex-basis:78%;background:rgba(255,255,255,.04);border-color:var(--line-d);}
  .bcar-title{color:#fff !important;}
  .bcar-date{color:rgba(251,248,241,.55);}
  .bcar-nav{display:none;}
  .bcar-viewport{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .bcar-viewport::-webkit-scrollbar{display:none;}
  .blog-panel-foot{justify-content:flex-start;}
  .blog-viewall{color:var(--ember-hi) !important;border-color:var(--line-d);}
}
@media(max-width:620px){
  .wrap{padding:0 20px;}
  .svc-grid,.quotes,.why-grid,.foot-grid{grid-template-columns:1fr;}
  /* Hero stat layout lives in the HERO section so the 2x2 grid isn't overridden here. */
  .ky-stats{flex-wrap:wrap;gap:24px;}
  .bigstats,.statgrid{grid-template-columns:1fr;}
  .sec{padding:72px 0;}
}

/* ===== NEWSLETTER POPUP (Noptin form 9240) =====
   Noptin renders a fixed single-column DOM, so the split layout is built with
   grid plus pseudo-elements: an art panel on the left, copy and form on the
   right. Scoped to .noptin-popup-main-wrapper so inline forms are untouched. */
.noptin-popup__overlay{backdrop-filter:blur(4px);}

.noptin-popup-main-wrapper .noptin-optin-form-wrapper{
  position:relative;
  display:grid;
  grid-template-columns:196px 1fr;
  padding:0 !important;
  border:0 !important;
  border-radius:22px !important;
  overflow:hidden;
  font-family:'Hanken Grotesk',sans-serif;
  box-shadow:0 60px 120px -45px rgba(21,17,12,.8);
}

/* Left art panel: a stack of "recent post" cards (inline SVG, so it stays crisp
   at any DPI) over an ember bloom and a drifting dot field. The newest card is
   ember-accented with a "new" dot. */
.noptin-popup-main-wrapper .noptin-optin-form-wrapper::before{
  content:"";
  grid-column:1;grid-row:1;
  background-image:
    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 200'>\
<rect x='8' y='8' width='124' height='56' rx='11' fill='%23ffffff' fill-opacity='.05' stroke='%23ffffff' stroke-opacity='.12'/>\
<rect x='22' y='26' width='78' height='6' rx='3' fill='%23ffffff' fill-opacity='.34'/>\
<rect x='22' y='40' width='50' height='5' rx='2.5' fill='%23ffffff' fill-opacity='.17'/>\
<rect x='8' y='76' width='124' height='56' rx='11' fill='%23ffffff' fill-opacity='.05' stroke='%23ffffff' stroke-opacity='.12'/>\
<rect x='22' y='94' width='84' height='6' rx='3' fill='%23ffffff' fill-opacity='.34'/>\
<rect x='22' y='108' width='44' height='5' rx='2.5' fill='%23ffffff' fill-opacity='.17'/>\
<rect x='8' y='144' width='124' height='56' rx='11' fill='%23ffffff' fill-opacity='.05' stroke='%23ffffff' stroke-opacity='.12'/>\
<rect x='22' y='162' width='68' height='6' rx='3' fill='%23ffffff' fill-opacity='.34'/>\
<rect x='22' y='176' width='52' height='5' rx='2.5' fill='%23ffffff' fill-opacity='.17'/>\
</svg>"),
    radial-gradient(rgba(255,255,255,.11) 1px,transparent 1px),
    radial-gradient(115% 80% at 15% 0,rgba(247,143,27,.5),transparent 62%),
    radial-gradient(100% 75% at 90% 105%,rgba(178,58,14,.45),transparent 68%),
    linear-gradient(165deg,#241a10,#15110C 70%);
  background-repeat:no-repeat,repeat,no-repeat,no-repeat,no-repeat;
  /* Fixed offset, not a percentage: the pulsing dot below is positioned against
     the same coordinates, so the stack must not shift with the panel's height. */
  background-position:32px 54px,0 0,0 0,0 0,0 0;
  background-size:132px auto,15px 15px,auto,auto,auto;
  animation:noptinDrift 26s linear infinite;
}
/* Only the dot layer drifts; the card stack and blooms stay put. */
@keyframes noptinDrift{to{background-position:32px 54px,15px 15px,0 0,0 0,0 0;}}

/* The cards themselves are drawn neutral; this travelling highlight is what
   marks the active one, dwelling on each in turn. Both it and the dot below
   live here rather than inside the SVG because an SVG used as a background
   image can't run its own animation.
   Geometry follows the stack: 132px wide at 32px/54px, so cards sit at x 39.5,
   are 117x53, and repeat every 64px. */
.noptin-popup-main-wrapper .noptin-form-header::before,
.noptin-popup-main-wrapper .noptin-form-header::after{
  content:"";position:absolute;pointer-events:none;z-index:1;
  animation:noptinFocus 10.5s cubic-bezier(.5,0,.35,1) infinite;
}
.noptin-popup-main-wrapper .noptin-form-header::before{
  left:39px;top:61px;width:117px;height:53px;border-radius:11px;
  border:1px solid rgba(255,174,69,.62);
  background:rgba(247,143,27,.15);
  box-shadow:0 0 24px -6px rgba(247,143,27,.45);
}
/* Dot rides the same keyframes so it stays on the highlighted card, and pulses
   on its own timeline — the two animations touch different properties. */
.noptin-popup-main-wrapper .noptin-form-header::after{
  left:137px;top:83px;width:9px;height:9px;border-radius:50%;background:var(--ember-hi);
  animation:noptinFocus 10.5s cubic-bezier(.5,0,.35,1) infinite,
            noptinPing 2.6s ease-out infinite;
}
@keyframes noptinFocus{
  0%,  27% {transform:translateY(0);}
  35%, 62% {transform:translateY(64px);}
  70%, 96% {transform:translateY(128px);}
  100%     {transform:translateY(0);}
}
@keyframes noptinPing{
  0%{box-shadow:0 0 0 0 rgba(255,174,69,.6);}
  70%{box-shadow:0 0 0 11px rgba(255,174,69,0);}
  100%{box-shadow:0 0 0 0 rgba(255,174,69,0);}
}

/* Light sweep passing down the stack, as though the feed were refreshing. */
.noptin-popup-main-wrapper .noptin-optin-form::after{
  content:"";position:absolute;left:0;top:0;width:196px;height:34%;
  pointer-events:none;
  /* Kept subtle so the travelling highlight stays the lead motion. */
  background:linear-gradient(180deg,transparent,rgba(255,216,166,.07),transparent);
  animation:noptinSweep 9s cubic-bezier(.4,0,.5,1) infinite;
}
@keyframes noptinSweep{
  0%{transform:translateY(-110%);opacity:0;}
  10%{opacity:1;}
  50%{transform:translateY(310%);opacity:1;}
  58%,100%{transform:translateY(310%);opacity:0;}
}

/* Vertical edge label. The form is left static so this positions against the
   wrapper (the art panel's containing block) rather than the copy column. */
.noptin-popup-main-wrapper .noptin-optin-form::before{
  content:"Latest insights";
  position:absolute;left:0;bottom:20px;width:196px;
  text-align:center;
  font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(255,174,69,.62);
  pointer-events:none;
}

/* Hairline seam between the panel and the copy. */
.noptin-popup-main-wrapper .noptin-optin-form-wrapper::after{
  content:"";position:absolute;top:0;bottom:0;left:196px;width:1px;
  background:linear-gradient(180deg,transparent,rgba(21,17,12,.14),transparent);
}

.noptin-popup-main-wrapper .noptin-optin-form{
  /* Deliberately static: lets the ::before edge label above resolve against the
     wrapper so it can sit on the art panel. */
  position:static;grid-column:2;grid-row:1;
  padding:40px 42px 38px !important;
  /* Left-aligned reads far better than centred in a split layout. */
  text-align:left !important;
}
/* The plugin pads header and footer by 20px each, which stacked with the
   description margin left ~63px of dead space; spacing is set here instead. */
.noptin-popup-main-wrapper .noptin-form-header,
.noptin-popup-main-wrapper .noptin-form-footer{padding:0 !important;}
.noptin-popup-main-wrapper .noptin-form-header-text{text-align:left !important;}
.noptin-popup-main-wrapper .noptin-form-prefix{margin:0 0 12px !important;}
.noptin-popup-main-wrapper .noptin-form-heading{margin:0 0 12px !important;padding:0 !important;}
.noptin-popup-main-wrapper .noptin-form-description{margin:0 0 26px !important;max-width:42ch;}
.noptin-popup-main-wrapper .noptin-form-note{margin:14px 0 0 !important;text-align:left !important;}

/* Field + button as one control row. */
.noptin-popup-main-wrapper input[type=email],
.noptin-popup-main-wrapper input[type=text]{
  font-family:'Hanken Grotesk',sans-serif !important;
  font-size:.98rem !important;
  padding:15px 18px !important;
  border:1px solid rgba(21,17,12,.16) !important;
  background:#fff !important;color:var(--ink) !important;
  transition:border-color .25s,box-shadow .25s;
}
.noptin-popup-main-wrapper input[type=email]:focus,
.noptin-popup-main-wrapper input[type=text]:focus{
  outline:none !important;border-color:var(--ember) !important;
  box-shadow:0 0 0 3px rgba(247,143,27,.18) !important;
}
.noptin-popup-main-wrapper input[type=email]::placeholder{color:var(--muted-d);}
.noptin-popup-main-wrapper .noptin-form-submit{
  font-family:'Hanken Grotesk',sans-serif !important;
  font-weight:600 !important;padding:15px 28px !important;
  box-shadow:0 14px 28px -12px rgba(247,143,27,.75);
  transition:background .25s,transform .25s,box-shadow .25s;
}
.noptin-popup-main-wrapper .noptin-form-submit:hover{
  background:var(--ember-deep) !important;transform:translateY(-1px);
}

/* Close control sits on the art panel, so it needs light-on-dark treatment. */
.noptin-popup-main-wrapper .noptin-popup__close{
  position:absolute !important;top:14px !important;right:14px !important;
  width:32px !important;height:32px !important;
  display:grid !important;place-items:center !important;
  border-radius:50% !important;border:0 !important;
  background:rgba(21,17,12,.08) !important;color:var(--muted) !important;
  opacity:1 !important;z-index:3;
  transition:background .22s,color .22s;
}
.noptin-popup-main-wrapper .noptin-popup__close:hover{
  background:var(--ink) !important;color:#fff !important;
}

@media(prefers-reduced-motion:no-preference){
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper{animation:noptinRise .45s cubic-bezier(.2,.8,.3,1) both;}
  @keyframes noptinRise{from{opacity:0;transform:translateY(18px) scale(.985);}to{opacity:1;transform:none;}}
}
@media(prefers-reduced-motion:reduce){
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper,
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper::before,
  /* Highlight parks on the newest card instead of touring them. */
  .noptin-popup-main-wrapper .noptin-form-header::before,
  .noptin-popup-main-wrapper .noptin-form-header::after{animation:none;}
  /* The sweep has no useful resting state, so it's removed rather than frozen. */
  .noptin-popup-main-wrapper .noptin-optin-form::after{display:none;}
}

/* --- Real-article preview (js/main.js adds .nl-feed and .has-feed) ---
   The placeholder bars gave no idea what the newsletter carries, so the stack
   now shows the three latest posts: category, date and title. The panel is
   widened for readable titles, and every coordinate coupled to the cards
   (highlight, dot, sweep, label, seam) is re-set to the new geometry: cards
   196x60 at 18px/40px, repeating every 68px. The active card's title
   brightens in step with the travelling highlight (same 10.5s timeline).
   Without JS the original SVG stack above stays as it was. */
.noptin-popup-main-wrapper .noptin-optin-form-wrapper.has-feed{
  grid-template-columns:232px 1fr;max-width:720px !important;min-height:320px;}
/* Same ground as before minus the SVG card layer, which the real cards replace. */
.noptin-popup-main-wrapper .noptin-optin-form-wrapper.has-feed::before{
  background-image:
    radial-gradient(rgba(255,255,255,.11) 1px,transparent 1px),
    radial-gradient(115% 80% at 15% 0,rgba(247,143,27,.5),transparent 62%),
    radial-gradient(100% 75% at 90% 105%,rgba(178,58,14,.45),transparent 68%),
    linear-gradient(165deg,#241a10,#15110C 70%);
  background-repeat:repeat,no-repeat,no-repeat,no-repeat;
  background-position:0 0,0 0,0 0,0 0;
  background-size:15px 15px,auto,auto,auto;
  animation-name:noptinDriftFeed;}
@keyframes noptinDriftFeed{to{background-position:15px 15px,0 0,0 0,0 0;}}
.noptin-popup-main-wrapper .has-feed .noptin-form-header::before{
  left:18px;top:40px;width:196px;height:60px;z-index:2;animation-name:noptinFocusFeed;}
.noptin-popup-main-wrapper .has-feed .noptin-form-header::after{
  left:198px;top:50px;z-index:3;animation-name:noptinFocusFeed,noptinPing;}
@keyframes noptinFocusFeed{
  0%,  27% {transform:translateY(0);}
  35%, 62% {transform:translateY(68px);}
  70%, 96% {transform:translateY(136px);}
  100%     {transform:translateY(0);}
}
.noptin-popup-main-wrapper .has-feed .noptin-optin-form::after{width:232px;}
.noptin-popup-main-wrapper .has-feed .noptin-optin-form::before{width:232px;bottom:18px;}
.noptin-popup-main-wrapper .noptin-optin-form-wrapper.has-feed::after{left:232px;}

.nl-feed{position:absolute;left:0;top:0;bottom:0;width:232px;z-index:1;pointer-events:none;}
.nl-feed-card{position:absolute;left:18px;width:196px;height:60px;box-sizing:border-box;
  display:flex;flex-direction:column;gap:4px;padding:9px 26px 0 12px;text-align:left;
  border-radius:11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);}
.nl-feed-card:nth-child(1){top:40px;}
.nl-feed-card:nth-child(2){top:108px;}
.nl-feed-card:nth-child(3){top:176px;}
.nl-feed-meta{font-family:'JetBrains Mono',monospace;font-size:8.5px;line-height:1.2;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,174,69,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nl-feed-title{font-family:'Hanken Grotesk',sans-serif;font-size:11px;font-weight:600;line-height:1.3;
  color:rgba(255,255,255,.55);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  animation:10.5s linear infinite;}
.nl-feed-card:nth-child(1) .nl-feed-title{animation-name:nlOn1;}
.nl-feed-card:nth-child(2) .nl-feed-title{animation-name:nlOn2;}
.nl-feed-card:nth-child(3) .nl-feed-title{animation-name:nlOn3;}
@keyframes nlOn1{0%,27%{color:#fff;}35%,96%{color:rgba(255,255,255,.55);}100%{color:#fff;}}
@keyframes nlOn2{0%,27%{color:rgba(255,255,255,.55);}35%,62%{color:#fff;}70%,100%{color:rgba(255,255,255,.55);}}
@keyframes nlOn3{0%,62%{color:rgba(255,255,255,.55);}70%,96%{color:#fff;}100%{color:rgba(255,255,255,.55);}}
@media(prefers-reduced-motion:reduce){
  /* The animation-name overrides above out-rank the earlier animation:none, so restate it. */
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper.has-feed::before,
  .noptin-popup-main-wrapper .has-feed .noptin-form-header::before,
  .noptin-popup-main-wrapper .has-feed .noptin-form-header::after,
  .nl-feed-title{animation:none;}
  .nl-feed-card:nth-child(1) .nl-feed-title{color:#fff;}
}
@media(max-width:620px){
  /* Phones keep the 74px glow band only (see below), so the preview is dropped. */
  .nl-feed{display:none;}
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper.has-feed{grid-template-columns:minmax(0,1fr);min-height:0;}
}

/* Art panel becomes a top band once there's no room beside the copy. */
@media(max-width:620px){
  /* The plugin reserves 40px of margin per side and caps the card at
     calc(100% - 80px); on a 390px screen that spends a fifth of the width on
     gutters. Grid children also default to min-width:auto, which lets the form
     contents push the card wider than the viewport. */
  .noptin-popup__container{margin:16px;max-width:calc(100% - 32px);max-height:calc(100vh - 32px);}
  .noptin-popup__container .noptin-optin-form-wrapper{max-width:100%;}
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper{grid-template-columns:minmax(0,1fr);grid-template-rows:74px 1fr;}
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper > *{min-width:0;}
  /* Card stack and edge label don't fit a 74px band — band keeps the glow only. */
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper::before{
    grid-column:1;grid-row:1;
    background-image:
      radial-gradient(rgba(255,255,255,.11) 1px,transparent 1px),
      radial-gradient(115% 140% at 15% 0,rgba(247,143,27,.5),transparent 62%),
      radial-gradient(100% 140% at 90% 105%,rgba(178,58,14,.45),transparent 68%),
      linear-gradient(165deg,#241a10,#15110C 70%);
    background-repeat:repeat,no-repeat,no-repeat,no-repeat;
    background-size:15px 15px,auto,auto,auto;
  }
  .noptin-popup-main-wrapper .noptin-optin-form::before,
  .noptin-popup-main-wrapper .noptin-optin-form::after,
  .noptin-popup-main-wrapper .noptin-form-header::before,
  .noptin-popup-main-wrapper .noptin-form-header::after,
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper::after{display:none;}
  .noptin-popup-main-wrapper .noptin-optin-form{grid-column:1;grid-row:2;padding:28px 24px 26px !important;}
  .noptin-popup-main-wrapper .noptin-form-description{max-width:none;}
  /* The close control now sits on the dark band, so invert it to stay visible. */
  .noptin-popup-main-wrapper .noptin-popup__close{
    background:rgba(255,255,255,.16) !important;color:#fff !important;
  }
  .noptin-popup-main-wrapper .noptin-popup__close:hover{
    background:#fff !important;color:var(--ink) !important;
  }
}

/* --- Newsletter popup: phones ---
   Type on this form comes from inline styles written by the form settings, so
   anything responsive has to out-rank them with !important. */
@media(max-width:620px){
  /* 15.68px trips iOS Safari's auto-zoom-on-focus, which leaves the page
     scrolled sideways afterwards. 16px is the threshold that suppresses it. */
  .noptin-popup-main-wrapper input[type=email],
  .noptin-popup-main-wrapper input[type=text]{font-size:16px !important;}
}

/* The plugin only makes the field row single-line at >=520px. Below that the
   fields stack, but the submit keeps display:inline-block — so it shrink-wraps
   to its label and reads as a stray chip under a full-width input. */
@media(max-width:519px){
  .noptin-popup-main-wrapper .noptin-form-fields .noptin-form-field-submit{width:100%;}
  .noptin-popup-main-wrapper .noptin-form-submit{
    display:block !important;width:100% !important;padding:15px 22px !important;
  }
}

@media(max-width:420px){
  .noptin-popup__container{margin:12px;max-width:calc(100% - 24px);}
  /* The art band is pure decoration here; it only needs to host the close control. */
  .noptin-popup-main-wrapper .noptin-optin-form-wrapper{grid-template-rows:60px 1fr;}
  .noptin-popup-main-wrapper .noptin-optin-form{padding:24px 20px 22px !important;}
  .noptin-popup-main-wrapper .noptin-form-heading{font-size:25px !important;}
  .noptin-popup-main-wrapper .noptin-form-description{font-size:14px !important;margin-bottom:20px !important;}
  .noptin-popup-main-wrapper input[type=email],
  .noptin-popup-main-wrapper input[type=text]{padding:13px 15px !important;}
  .noptin-popup-main-wrapper .noptin-form-submit{padding:14px 20px !important;}
  .noptin-popup-main-wrapper .noptin-form-note{font-size:11px !important;}
}

/* ===== KYMERA REVIEW CONSOLE (homepage right panel, .ky-flow) =====
   Distinct class names on purpose: .ky-card / .ky-step are re-declared later for
   the Kymera page's light section and were overriding this dark panel. */
.ky-flow{position:relative;border-radius:22px;overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  background:linear-gradient(158deg,rgba(255,255,255,.07),rgba(255,255,255,.015));
  box-shadow:0 50px 100px -50px rgba(0,0,0,.85);}
/* Ember bloom + fine engineering grid behind the steps. */
.ky-flow::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    radial-gradient(90% 60% at 88% -6%,rgba(247,143,27,.34),transparent 62%),
    radial-gradient(80% 55% at 6% 104%,rgba(178,58,14,.26),transparent 66%);
  background-size:34px 34px,34px 34px,auto,auto;
  animation:kyGrid 30s linear infinite;}
@keyframes kyGrid{to{background-position:34px 34px,34px 34px,0 0,0 0;}}

/* Console header. */
.ky-flow-bar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;
  gap:14px;padding:15px 22px;border-bottom:1px solid rgba(255,255,255,.09);
  background:rgba(0,0,0,.22);}
.ky-flow-name{font-size:.68rem;color:rgba(251,248,241,.55);}
.ky-flow-live{display:inline-flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ember-hi);}
.ky-flow-live i{width:7px;height:7px;border-radius:50%;background:var(--ember-hi);
  animation:kyLive 1.8s ease-out infinite;}
@keyframes kyLive{
  0%{box-shadow:0 0 0 0 rgba(255,174,69,.65);}
  70%{box-shadow:0 0 0 9px rgba(255,174,69,0);}
  100%{box-shadow:0 0 0 0 rgba(255,174,69,0);}
}

.ky-flow-list{position:relative;z-index:2;list-style:none;margin:0;padding:16px;
  display:flex;flex-direction:column;gap:10px;}

/* Steps. Each one lights up for its quarter of a shared 11.2s timeline, driven
   by animation-delay off --i, so the sequence needs no JS. */
/* Steps are darker than the panel behind them, not lighter: a translucent white
   fill sat too close to the panel's own gradient and washed the body text out. */
.ky-fstep{position:relative;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;
  padding:18px 20px;border-radius:14px;overflow:hidden;
  border:1px solid rgba(255,255,255,.09);background:rgba(9,7,4,.55);
  animation:kyStep 11.2s linear infinite;
  animation-delay:calc(var(--i) * 2.8s);}
@keyframes kyStep{
  0%,   23%{background:rgba(74,38,6,.62);border-color:rgba(255,174,69,.5);}
  25%,100%{background:rgba(9,7,4,.55);border-color:rgba(255,255,255,.09);}
}
.ky-fstep-n{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  font-size:.68rem;font-weight:500;
  animation:kyStepN 11.2s linear infinite;animation-delay:calc(var(--i) * 2.8s);}
@keyframes kyStepN{
  0%,   23%{background:var(--ember);color:#fff;box-shadow:0 8px 18px -8px rgba(247,143,27,.9);}
  25%,100%{background:rgba(255,255,255,.06);color:var(--ember-hi);box-shadow:none;}
}
.ky-fstep-body h4{font-size:1.02rem;font-weight:600;letter-spacing:-.01em;color:#fff;margin-bottom:6px;}
.ky-fstep-body p{font-size:.9rem;line-height:1.6;color:rgba(251,248,241,.76);
  animation:kyStepP 11.2s linear infinite;animation-delay:calc(var(--i) * 2.8s);}
@keyframes kyStepP{
  0%,   23%{color:rgba(251,248,241,.94);}
  25%,100%{color:rgba(251,248,241,.76);}
}
/* Progress fills across the step while it holds focus. */
.ky-fstep-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;transform-origin:left;
  background:linear-gradient(90deg,var(--ember-deep),var(--ember-hi));
  animation:kyStepBar 11.2s linear infinite;animation-delay:calc(var(--i) * 2.8s);}
@keyframes kyStepBar{
  0%{transform:scaleX(0);opacity:1;}
  23%{transform:scaleX(1);opacity:1;}
  25%,100%{transform:scaleX(1);opacity:0;}
}

/* Slow analysis pass over the whole console. */
.ky-flow-scan{position:absolute;left:0;right:0;top:0;height:30%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(255,214,160,.07),transparent);
  animation:kyScan 11.2s ease-in-out infinite;}
@keyframes kyScan{
  0%{transform:translateY(-100%);}
  100%{transform:translateY(360%);}
}

@media(prefers-reduced-motion:reduce){
  .ky-flow::before,.ky-flow-live i,.ky-fstep,.ky-fstep-n,.ky-fstep-body p,.ky-fstep-bar{animation:none;}
  /* First step holds focus rather than the sequence cycling. */
  .ky-fstep:first-child{background:rgba(74,38,6,.62);border-color:rgba(255,174,69,.5);}
  .ky-fstep-n{background:rgba(255,255,255,.06);color:var(--ember-hi);}
  .ky-fstep:first-child .ky-fstep-n{background:var(--ember);color:#fff;}
  .ky-fstep-bar{display:none;}
  .ky-flow-scan{display:none;}
}
@media(max-width:620px){
  .ky-flow-list{padding:12px;gap:8px;}
  .ky-fstep{padding:16px;gap:13px;}
  .ky-logo{height:28px;}
}

/* ===== HOMEPAGE MOBILE REFINEMENTS =====
   Front-page layout and type tuning below 980px / 620px.

   Placed last on purpose: several targets here (.ky-fstep, .ky-flow-list) are
   declared near the end of this file, and media queries add no specificity, so
   an earlier block would lose the cascade to them.

   Rules for classes the inner pages also use (.sec-head, .cta-cta, .svc-grid,
   .why-grid, .quote, .geo, .ky-stats, .why, .svc) are scoped to .home so the
   other templates sharing the section shell are untouched. Homepage-only
   classes (.statgrid, .tcarousel, .plat-row, .certs, .global-row, .trust,
   .client-item) are left unscoped. */

@media(max-width:980px){
  /* Both collapse to a single column here, so the desktop column gap turns
     into a dead band between the stacked halves. */
  .kymera-grid{gap:42px;}
  .proof-grid{gap:42px;}
  .home .sec-head{margin-bottom:44px;}
}

@media(max-width:620px){
  /* --- section shell --- */
  .home .sec-head{margin-bottom:32px;}
  .home .sec-head h2{font-size:clamp(1.6rem,6.4vw,2.1rem);line-height:1.18;margin:12px 0 14px;text-wrap:balance;}
  .home .sec-head p{font-size:1rem;line-height:1.7;text-wrap:pretty;}
  .home .sec-head .eyebrow{font-size:.62rem;letter-spacing:.18em;}

  /* --- trust / client marquee --- */
  .trust{padding:38px 0 32px;}
  .trust-label{font-size:.76rem;margin-bottom:20px;}
  .client-item{width:142px;padding:12px 18px;}
  .client-item img{max-height:34px;}

  /* --- services --- */
  .home .svc-grid{gap:14px;}
  .home .svc{padding:24px 22px;}
  .home .svc .ico{width:44px;height:44px;border-radius:11px;margin-bottom:16px;}
  .home .svc .ico svg{width:21px;height:21px;}
  .home .svc h3{font-size:1.14rem;}
  .home .svc p{font-size:.92rem;margin-bottom:14px;}

  /* --- platforms --- */
  .plat-row{gap:9px;}
  .plat-pill{padding:10px 16px;font-size:.86rem;gap:8px;}
  .plat-pill .d{width:6px;height:6px;}

  /* --- kymera --- */
  .kymera-grid{gap:34px;}
  .kymera h2{font-size:clamp(1.55rem,6.2vw,2rem);}
  .kymera .ky-lead{font-size:.95rem;line-height:1.7;margin-bottom:26px;}
  /* Base pulls the wordmark left by 20px to cancel padding baked into the PNG;
     at this width that overhangs the 20px page gutter. */
  .ky-logo{height:26px;margin-left:-13px;}
  .ky-lockup{margin-bottom:18px;}
  .ky-lockup-row{gap:12px;}
  .ky-owner{font-size:.54rem;padding:7px 12px;}
  /* Three-up grid holds one tidy row instead of a lopsided 2+1 flex wrap. */
  .home .ky-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;}
  .home .ky-stat .num{font-size:1.72rem;}
  .home .ky-stat .lbl{font-size:.71rem;line-height:1.35;}
  .ky-fstep-n{width:28px;height:28px;border-radius:8px;}
  .ky-fstep-body h4{font-size:.95rem;}
  .ky-fstep-body p{font-size:.85rem;}

  /* --- why --- */
  .home .why{padding:24px 20px;}
  .home .why h4{font-size:1.1rem;margin:12px 0 8px;}

  /* --- proof + certs --- */
  .proof-grid{gap:34px;}
  .certs{gap:8px;margin-top:20px;}
  .cert{font-size:.71rem;padding:8px 11px;}
  /* 2x2 beats one column here: four full-width cards was a long scroll to
     deliver four short numbers. */
  .statgrid{grid-template-columns:1fr 1fr;gap:10px;}
  .statcard{padding:20px 16px;border-radius:14px;}
  .statcard .num{font-size:1.85rem;}
  .statcard .lbl{font-size:.8rem;line-height:1.4;margin-top:6px;}

  /* --- testimonials ---
     The arrows sat at left/right:-6px, overlapping the card. Grid lifts them
     out into a control bar beneath the viewport, sharing a row with the dots. */
  .home .quote{padding:24px 22px;}
  .home .quote .mark{font-size:3rem;}
  .home .quote p{font-size:.95rem;margin:8px 0 18px;}
  .tcarousel{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"vp vp vp" "prev dots next";align-items:center;column-gap:10px;}
  .tviewport{grid-area:vp;}
  .tnav{grid-area:prev;position:static;transform:none;width:42px;height:42px;font-size:1.5rem;margin-top:22px;}
  .tnav.next{grid-area:next;}
  .tdots{grid-area:dots;margin-top:22px;}
  /* 8px dots are well under the 24px minimum touch target; this widens the hit
     area to 30px without changing how they look. */
  .tdot{position:relative;}
  .tdot::after{content:"";position:absolute;inset:-11px;}

  /* --- global hubs --- */
  .global-row{gap:12px;}
  .home .geo{padding:22px 20px;}

  /* --- closing CTA --- */
  .home .cta h2{font-size:clamp(1.65rem,6.6vw,2.15rem);margin:12px 0 16px;}
  .home .cta p{font-size:1rem;line-height:1.7;margin-bottom:28px;}
  .home .cta-inner .eyebrow{font-size:.62rem;letter-spacing:.18em;}
  .home .cta-cta{gap:12px;}
  .home .cta-cta .btn{width:100%;justify-content:center;padding:14px 22px;font-size:.95rem;}
}

@media(max-width:380px){
  .home .ky-stats{gap:10px;}
  .home .ky-stat .num{font-size:1.5rem;}
  .home .ky-stat .lbl{font-size:.67rem;}
  .statcard{padding:16px 13px;}
  .statcard .num{font-size:1.6rem;}
  .statcard .lbl{font-size:.75rem;}
  .plat-pill{padding:9px 14px;font-size:.82rem;}
}

/* ===== SERVICE CARD HEADER: SMALL DEVICES =====
   Icon and title share one line, so the card opens with a single compact header
   row instead of two stacked blocks. .svc is flex-column by default; this swaps
   it to a two-track grid and spans the body copy and link across both tracks.
   The ::after accent bar is absolutely positioned, so it is not a grid item. */
@media(max-width:520px){
  .home .svc{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;}
  .home .svc .ico{grid-column:1;grid-row:1;margin-bottom:0;}
  .home .svc h3{grid-column:2;grid-row:1;margin-bottom:0;}
  .home .svc p{grid-column:1/-1;margin:14px 0;}
  .home .svc .more{grid-column:1/-1;}
}

/* ===== FOOTER: SMALL DEVICES =====
   Copyright and the FAQ/Privacy/Contact row centre as a stacked pair rather
   than sitting left-aligned with the space-between gap collapsed. */
@media(max-width:620px){
  .foot-bottom{flex-direction:column;align-items:center;text-align:center;gap:16px;}
  .foot-social{justify-content:center;flex-wrap:wrap;gap:18px;}
}

/* ==========================================================================
   HERO SLIDER
   Slide one is the animated brand slide; the rest are photographic service
   slides. Slides stack in a single CSS grid cell, so the container sizes to
   the tallest slide and no JS height measurement is needed.
   ========================================================================== */
.hero-slider{display:block;padding:0;}
.hero-slider .hero-slides{display:grid;width:100%;min-height:100vh;}
.hero-slider .hero-slide{
  grid-area:1/1;position:relative;display:flex;align-items:center;overflow:hidden;
  padding:160px 0 118px;
  opacity:0;visibility:hidden;
  transition:opacity .85s cubic-bezier(.2,.7,.2,1),visibility .85s;
}
.hero-slider .hero-slide.is-active{opacity:1;visibility:visible;}
/* Inactive slides keep their layout box (that is what sizes the grid cell) but
   must never take focus or clicks. */
.hero-slider .hero-slide:not(.is-active){pointer-events:none;}
.hero-slider .hero-slide .wrap{position:relative;z-index:5;width:100%;}

/* --- service slides --------------------------------------------------- */
/* Previous background: a glowing conic-gradient "tunnel" swirl. Replaced by
   the calmer .hs-flow light-stream canvas below (js/hero-flow.js) — kept
   here, commented, in case the client wants it back.
.hs-tunnel{position:absolute;inset:-18%;z-index:0;background:var(--ink);
  transform:scale(1.06) rotate(0deg);transition:transform 9s linear;
  animation:hs-tunnel-drift 46s linear infinite;will-change:transform;}
.hero-slide-svc.is-active .hs-tunnel{transform:scale(1.14) rotate(0deg);}
.hs-tunnel-a{
  background:
    repeating-conic-gradient(from 205deg at 78% 42%,
      rgba(217,101,10,.55) 0deg 7deg, rgba(178,58,14,.30) 7deg 14deg,
      rgba(247,143,27,.45) 14deg 21deg, rgba(154,124,255,.22) 21deg 28deg),
    radial-gradient(60% 60% at 78% 42%,rgba(255,214,158,.35),transparent 70%),
    var(--ink);
  filter:blur(20px) saturate(1.3);}
.hs-tunnel-b{
  background:
    repeating-conic-gradient(from 30deg at 24% 58%,
      rgba(154,124,255,.5) 0deg 7deg, rgba(84,228,238,.26) 7deg 14deg,
      rgba(217,101,10,.4) 14deg 21deg, rgba(247,143,27,.24) 21deg 28deg),
    radial-gradient(60% 60% at 24% 58%,rgba(210,225,255,.30),transparent 70%),
    var(--ink);
  filter:blur(20px) saturate(1.3);}
@keyframes hs-tunnel-drift{
  0%{filter:blur(20px) saturate(1.3) hue-rotate(0deg);}
  50%{filter:blur(25px) saturate(1.4) hue-rotate(6deg);}
  100%{filter:blur(20px) saturate(1.3) hue-rotate(0deg);}
}
*/
/* Light-stream background (js/hero-flow.js) — a slow fan of soft glowing
   beams on a plain ink base, quieter and more corporate than the old swirl.
   data-tone="a"/"b" (set in front-page.php) pick the ember vs violet/cyan
   palette so the two service slides stay visually distinct. */
.hs-flow{position:absolute;inset:0;z-index:0;width:100%;height:100%;background:var(--ink);}
.hs-scrim{position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(96deg,rgba(12,9,6,.94) 0%,rgba(14,10,7,.86) 34%,rgba(16,12,8,.58) 62%,rgba(18,13,9,.34) 100%),
    linear-gradient(180deg,rgba(21,17,12,.55) 0%,transparent 38%,rgba(21,17,12,.78) 100%);}
/* A single ember wash keeps the two service slides in the same colour family
   as the animated one instead of reading as three unrelated backgrounds. */
.hero-slide-svc::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(70% 60% at 88% 22%,rgba(217,101,10,.20),transparent 68%);}

/* Text + a live "service dashboard" panel on the right, mirroring slide one's
   delivery_pipeline.run panel so all three slides share one visual language. */
.hs-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;}
.hs-panel{position:relative;}
/* .orbit/.orbit-label/.stack/.chip are the same components slide one's panel
   uses, but the backdrop behind them is deliberately different — slide one
   keeps its neural-net canvas; slides 2/3 get their own animated dashboard
   visuals (js/hero-flow.js) so the two service slides don't look like a
   reskin of slide one. */
.hs-panel-fx{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.55;}

.hs-copy{max-width:660px;}
.hs-title{font-size:clamp(2rem,4vw,3.35rem);line-height:1.06;margin:20px 0 22px;color:var(--cream);}
.hs-title em{font-style:italic;color:var(--ember-hi);font-weight:400;}
/* Matches the specificity of `.hero:has(.hero-h1) p.lead`, which slide one's
   headline keeps switched on for the whole hero — without the extra class the
   animated slide's lead sizing leaks onto the service slides. */
.hero-slider .hero-slide-svc p.lead{font-size:1.04rem;line-height:1.62;color:rgba(251,248,241,.80);max-width:620px;margin-bottom:26px;}
.hs-points{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 32px;}
.hs-points li{
  display:inline-flex;align-items:center;gap:9px;
  font-family:'JetBrains Mono',monospace;font-size:.73rem;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(251,248,241,.86);
  border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:9px 16px 9px 13px;
  background:rgba(9,7,4,.34);backdrop-filter:blur(3px);
}
.hs-points li::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--ember-hi);}

/* Entrance: driven by .is-active rather than the scroll reveal, so the copy
   re-animates every time the slide comes back round. */
.hs-anim{opacity:0;transform:translateY(24px);}
.hero-slide-svc.is-active .hs-anim{
  opacity:1;transform:none;
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
}
.hero-slide-svc.is-active .hs-anim:nth-child(1){transition-delay:.14s}
.hero-slide-svc.is-active .hs-anim:nth-child(2){transition-delay:.22s}
.hero-slide-svc.is-active .hs-anim:nth-child(3){transition-delay:.30s}
.hero-slide-svc.is-active .hs-anim:nth-child(4){transition-delay:.38s}
.hero-slide-svc.is-active .hs-anim:nth-child(5){transition-delay:.46s}

/* --- arrows ------------------------------------------------------------ */
.hero-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:20;
  width:56px;height:56px;display:flex;align-items:center;justify-content:center;
  border:0;border-radius:50%;background:transparent;color:rgba(251,248,241,.72);
  cursor:pointer;transition:color .25s,background .25s,transform .25s;
}
.hero-arrow svg{width:30px;height:30px;}
.hero-arrow:hover{color:#fff;background:rgba(255,255,255,.10);}
.hero-arrow:focus-visible{outline:2px solid var(--ember-hi);outline-offset:3px;}
.hero-prev{left:14px;}
.hero-next{right:14px;}
.hero-prev:hover{transform:translateY(-50%) translateX(-3px);}
.hero-next:hover{transform:translateY(-50%) translateX(3px);}

/* --- dots -------------------------------------------------------------- */
.hero-dots{position:absolute;left:0;right:0;bottom:34px;z-index:20;display:flex;justify-content:center;gap:10px;}
.hero-dot{border:0;background:none;padding:8px 4px;cursor:pointer;line-height:0;}
.hero-dot span{display:block;width:30px;height:3px;border-radius:3px;background:rgba(255,255,255,.28);transition:background .3s,width .3s;}
.hero-dot:hover span{background:rgba(255,255,255,.55);}
.hero-dot.is-active span{width:52px;background:var(--ember);}
.hero-dot:focus-visible{outline:2px solid var(--ember-hi);outline-offset:2px;border-radius:4px;}

/* --- hero slider: tablet ---------------------------------------------- */
@media(max-width:980px){
  .hero-slider .hero-slides{min-height:0;}
  .hero-slider .hero-slide{padding:136px 0 108px;}
  .hs-copy{max-width:none;}
  /* Same breakpoint slide one drops its panel at — the dashboard doesn't have
     room next to the copy once it's a single column. */
  .hs-grid{grid-template-columns:1fr;}
  .hs-panel{display:none;}
  /* Below this width the copy runs the full column, so the arrows can only sit
     on top of it — navigation drops to the dots and swipe. */
  .hero-arrow{display:none;}
}

/* --- hero slider: mobile ----------------------------------------------- */
@media(max-width:620px){
  .hero-slider .hero-slide{padding:112px 0 96px;}
  .hero-dots{bottom:26px;gap:8px;}
  .hero-dot span{width:22px;}
  .hero-dot.is-active span{width:38px;}
  .hs-title{font-size:clamp(1.8rem,7.2vw,2.35rem);line-height:1.14;margin:14px 0 16px;text-wrap:balance;}
  .hero-slider .hero-slide-svc p.lead{font-size:.97rem;line-height:1.68;margin-bottom:22px;max-width:none;text-wrap:pretty;}
  .hs-points{gap:8px;margin-bottom:26px;}
  .hs-points li{font-size:.66rem;padding:7px 13px 7px 11px;}
  .hero-slide-svc .hero-cta .btn{width:100%;justify-content:center;}
}

@media(max-width:380px){
  .hero-slider .hero-slide{padding:104px 0 90px;}
}

@media (prefers-reduced-motion:reduce){
  .hero-slider .hero-slide{transition:none;}
  .hs-tunnel{transition:none;transform:none;animation:none;}
  .hero-slide-svc.is-active .hs-tunnel{transform:none;}
  .hs-anim,.hero-slide-svc.is-active .hs-anim{opacity:1;transform:none;transition:none;}
}

/* ==========================================================================
   COOKIE SETTINGS LAUNCHER
   Persistent re-entry point once a choice has been stored — the consent banner
   itself only appears on a first visit.
   ========================================================================== */
.cookie-fab{
  position:fixed;left:22px;bottom:22px;z-index:1190;
  width:50px;height:50px;border-radius:50%;border:0;padding:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,var(--ember),var(--ember-deep));
  color:#fff;
  box-shadow:0 12px 30px -10px rgba(217,101,10,.65),0 0 0 1px rgba(255,255,255,.12) inset;
  transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,opacity .3s;
}
.cookie-fab svg{width:26px;height:26px;}
.cookie-fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 18px 38px -12px rgba(217,101,10,.75),0 0 0 1px rgba(255,255,255,.2) inset;}
.cookie-fab:focus-visible{outline:2px solid var(--ember-hi);outline-offset:3px;}
.cookie-fab[hidden]{display:none;}
@media(max-width:620px){
  .cookie-fab{left:16px;bottom:16px;width:44px;height:44px;}
  .cookie-fab svg{width:23px;height:23px;}
}
@media (prefers-reduced-motion:reduce){
  .cookie-fab{transition:none;}
  .cookie-fab:hover{transform:none;}
}

/* ==========================================================================
   FORWARD DEPLOYED ENGINEERING PAGE — "Engagement Bridge" motif (.fd-)
   Hero reuses the ServiceNow .sn-seal/.sn-orbit badge technique with a CSS/SVG
   emblem in place of a photo. Below-hero sections are new: a suspension-bridge
   pilot->production diagram, stage-gate engagement steps, delivery cards, a
   right-fit checklist, a delivery-model ledger and a measures grid.
   ========================================================================== */

/* --- Hero --- */
.fd-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center;}
.fd-hero-sub{margin-top:16px;max-width:560px;color:var(--muted-d);font-size:.98rem;line-height:1.78;}
.fd-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px;}
.fd-hero-status{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-d);}
.fd-live{width:7px;height:7px;border-radius:50%;background:#28c840;box-shadow:0 0 0 0 rgba(40,200,64,.6);animation:msLive 1.9s infinite;flex:0 0 auto;}

.fd-seal{max-width:400px;}
.fd-emblem-float{width:76%;}
.fd-emblem{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;}
.fd-emblem svg{width:100%;height:100%;filter:drop-shadow(0 22px 44px rgba(0,0,0,.5));}
.fd-em-ring-o{fill:none;stroke:rgba(251,248,241,.14);stroke-width:1.4;stroke-dasharray:2 7;}
.fd-em-ring-i{fill:none;stroke:rgba(247,143,27,.55);stroke-width:1.6;stroke-dasharray:6 10;transform-origin:100px 100px;animation:snRing 22s linear infinite;}
.fd-em-core{fill:#241708;stroke:rgba(247,143,27,.5);stroke-width:1.2;}
.fd-em-check{fill:none;stroke:var(--ember-hi);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 10px rgba(255,174,69,.6));transition:stroke-dashoffset 1.1s cubic-bezier(.2,.7,.2,1) .3s;}
.fd-seal.in .fd-em-check{stroke-dashoffset:0;}
.fd-em-mark{font-family:'Fraunces',serif;font-size:34px;letter-spacing:.04em;fill:#FBF8F1;}
.fd-em-tag{position:absolute;bottom:6%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.56rem;letter-spacing:.14em;color:#fff;background:rgba(21,17,12,.78);border:1px solid rgba(247,143,27,.45);border-radius:100px;padding:6px 12px;backdrop-filter:blur(6px);}

/* --- 2. What is FDE / bridge diagram --- */
.fd-what-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center;}
.fd-what-txt p{color:var(--muted);font-size:1.01rem;line-height:1.8;margin-bottom:16px;max-width:560px;}
.fd-what-lede{font-weight:600;color:var(--ink);margin-bottom:12px !important;}
.fd-support-chips{display:flex;flex-wrap:wrap;gap:9px;list-style:none;}
.fd-support-chips li{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ember-deep);background:rgba(217,101,10,.08);border:1px solid rgba(217,101,10,.28);border-radius:100px;padding:8px 14px;}

.fd-bridge{position:relative;background:linear-gradient(160deg,var(--ink),var(--ink-2));border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:34px 26px 26px;box-shadow:0 46px 88px -48px rgba(21,17,12,.62);}
.fd-bridge-svg{width:100%;height:auto;display:block;}
.fd-bridge-deck,.fd-bridge-pier,.fd-bridge-tower{stroke:rgba(251,248,241,.32);stroke-width:2;stroke-linecap:round;}
.fd-bridge-cable{stroke:rgba(247,143,27,.4);stroke-width:1.1;}
.fd-bridge-cap{fill:var(--ember-hi);}
.fd-bridge-dot{fill:var(--ember);filter:drop-shadow(0 0 8px rgba(247,143,27,.85));}
.fd-bridge-tag{position:absolute;bottom:8px;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;color:var(--muted-d);}
.fd-bridge-tag-a{left:30px;}
.fd-bridge-tag-b{right:26px;}

/* --- 3. Why enterprises use FDE --- */
.fd-why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.fd-why-card{background:rgba(251,248,241,.03);border:1px solid var(--line-d);border-radius:18px;padding:30px 28px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s;}
.fd-why-card:hover{transform:translateY(-4px);border-color:rgba(247,143,27,.4);background:rgba(251,248,241,.05);}
.fd-why-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.32);color:var(--ember-hi);margin-bottom:16px;}
.fd-why-ico svg{width:22px;height:22px;}
.fd-why-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.14rem;color:#FBF8F1;margin-bottom:10px;}
.fd-why-card p{color:var(--muted-d);font-size:.94rem;line-height:1.7;}
.fd-why-qs{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:7px;}
.fd-why-qs li{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:rgba(251,248,241,.62);padding-left:16px;position:relative;}
.fd-why-qs li::before{content:'\203A';position:absolute;left:0;color:var(--ember-hi);}

/* --- 4. Engagement stage gates --- */
.fd-stage-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.fd-stage{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:24px 22px;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s;}
.fd-stage:hover{transform:translateY(-4px);border-color:rgba(217,101,10,.35);box-shadow:0 24px 48px -30px rgba(21,17,12,.28);}
.fd-stage-n{display:block;font-size:.72rem;letter-spacing:.1em;color:var(--ember-deep);margin-bottom:10px;}
.fd-stage h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.02rem;margin-bottom:8px;}
.fd-stage p{color:var(--muted);font-size:.86rem;line-height:1.65;}

/* --- 5. What our FDE team can deliver --- */
.fd-deliver-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;}
.fd-deliver-card{background:rgba(251,248,241,.03);border:1px solid var(--line-d);border-radius:16px;padding:26px 24px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s;}
.fd-deliver-card:hover{transform:translateY(-4px);border-color:rgba(247,143,27,.4);}
.fd-deliver-ico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:rgba(247,143,27,.12);border:1px solid rgba(247,143,27,.3);color:var(--ember-hi);margin-bottom:14px;}
.fd-deliver-ico svg{width:20px;height:20px;}
.fd-deliver-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.02rem;color:#FBF8F1;margin-bottom:8px;}
.fd-deliver-card p{color:var(--muted-d);font-size:.88rem;line-height:1.62;}

/* --- 6. Right fit / not necessary --- */
.fd-fit-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:start;}
.fd-fit-lede{margin-top:16px;font-weight:600;color:var(--ink);}
.fd-fit-list{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:14px;}
.fd-fit-list li{display:flex;align-items:flex-start;gap:12px;color:var(--muted);font-size:.98rem;line-height:1.6;}
.fd-fit-list svg{width:20px;height:20px;flex:0 0 auto;color:var(--ember-deep);margin-top:2px;}
.fd-fit-not{background:var(--cream);border:1px dashed rgba(217,101,10,.4);border-radius:18px;padding:30px 28px;margin-top:8px;}
.fd-fit-not-tag{display:inline-block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember-deep);margin-bottom:12px;}
.fd-fit-not p{color:var(--muted);font-size:.94rem;line-height:1.72;}

/* --- 7. FDE vs other delivery models --- */
.fd-vs-list{display:flex;flex-direction:column;gap:14px;}
.fd-vs-row{display:grid;grid-template-columns:.32fr .68fr;gap:24px;align-items:center;background:rgba(251,248,241,.03);border:1px solid var(--line-d);border-left:3px solid transparent;border-radius:14px;padding:22px 26px;transition:border-color .3s,background .3s;}
.fd-vs-row.is-fde{border-left-color:var(--ember);background:rgba(247,143,27,.08);}
.fd-vs-name{font-family:'Fraunces',serif;font-weight:500;font-size:1.04rem;color:#FBF8F1;display:flex;align-items:center;flex-wrap:wrap;gap:10px;}
.fd-vs-pill{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--ember-deep);border-radius:100px;padding:4px 10px;}
.fd-vs-text{color:var(--muted-d);font-size:.92rem;line-height:1.6;}

/* --- 8. Security & governance / cost --- */
.fd-sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
.fd-sc-col p{color:var(--muted);font-size:.98rem;line-height:1.8;margin-top:14px;}
.fd-cost-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.fd-cost-chips li{font-size:.76rem;color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:100px;padding:7px 13px;}
.fd-sc-close{font-style:italic;color:var(--ink) !important;border-left:3px solid var(--ember);padding-left:16px;}

/* --- 9. Measures --- */
.fd-measure-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;}
.fd-measure-grid li{display:flex;align-items:center;gap:14px;background:rgba(251,248,241,.03);border:1px solid var(--line-d);border-radius:14px;padding:18px 20px;color:rgba(251,248,241,.86);font-size:.92rem;}
.fd-measure-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(247,143,27,.14);color:var(--ember-hi);flex:0 0 auto;}
.fd-measure-ico svg{width:15px;height:15px;}

/* --- 10. Why choose Inabia --- */
.fd-choose-list{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:26px;}
.fd-choose-list p{font-size:1.08rem;line-height:1.75;color:var(--ink);border-left:3px solid var(--ember);padding-left:22px;}
/* --------------------------------------------------------------------------
   PROFESSIONAL PASS
   The four sections the template marks "(dark)" — .fd-why, .fd-deliver,
   .fd-vs, .fd-measure — were authored with dark-mode colours (cream
   headings, --line-d borders, translucent-white card fills) but never got
   the ink section shell every other dark section in this theme uses, so they
   rendered near-invisible on the cream page background. This block adds those
   shells, wires up the --i stagger the markup already sets, and lifts the
   flatter sections to the level of the hero.
   -------------------------------------------------------------------------- */

/* Dark section shells */
.fd-why,.fd-deliver,.fd-vs,.fd-measure{background:var(--ink);color:var(--cream);position:relative;overflow:hidden;overflow:clip;}
.fd-why canvas.ai-net,.fd-measure canvas.ai-net{position:absolute;inset:0;z-index:0;opacity:.22;}
.fd-why .hero-glow,.fd-measure .hero-glow{top:-170px;right:-140px;opacity:.3;}
.fd-deliver::before,.fd-vs::before{content:'';position:absolute;inset:0;background:radial-gradient(80% 60% at 85% -10%,rgba(247,143,27,.14),transparent 62%);pointer-events:none;z-index:0;}
.fd-why>.wrap,.fd-deliver>.wrap,.fd-vs>.wrap,.fd-measure>.wrap{position:relative;z-index:2;}
.fd-why .sec-head h2 em,.fd-deliver .sec-head h2 em,.fd-vs .sec-head h2 em,.fd-measure .sec-head h2 em{color:var(--ember-hi);}
.fd-why .sec-head p,.fd-deliver .sec-head p,.fd-vs .sec-head p,.fd-measure .sec-head p{color:rgba(251,248,241,.74);}

/* Stagger — the markup sets --i on every card but no rule consumed it. */
.fd-why-card,.fd-stage,.fd-deliver-card,.fd-fit-list li,.fd-vs-row,.fd-measure-grid li,.fd-choose-list p{transition-delay:calc(var(--i,0) * .07s);}
.fd-why-card:hover,.fd-stage:hover,.fd-deliver-card:hover,.fd-vs-row:hover,.fd-choose-list p:hover{transition-delay:0s;}
.fd-what-txt .fd-support-chips li,.fd-sc-col .fd-cost-chips li{opacity:0;transform:translateY(10px);
  transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1),background .3s,border-color .3s,color .3s;
  transition-delay:calc(var(--i,0) * .045s + .22s);}
.fd-what-txt.in .fd-support-chips li,.fd-sc-col.in .fd-cost-chips li{opacity:1;transform:none;}

/* S2 — capability chips + bridge */
.fd-support-chips li:hover{background:var(--ember-deep);border-color:var(--ember-deep);color:#fff;transition-delay:0s;}
.fd-bridge{overflow:hidden;}
.fd-bridge::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 118%,rgba(247,143,27,.16),transparent 62%);pointer-events:none;}
.fd-bridge-svg{position:relative;z-index:1;}
.fd-bridge-tag{z-index:2;}

/* S3 — why cards */
.fd-why-card{position:relative;overflow:hidden;padding:34px 30px 32px;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015));}
.fd-why-card::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(90% 70% at 0% 0%,rgba(247,143,27,.16),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none;}
.fd-why-card:hover::before{opacity:1;}
.fd-why-card>*{position:relative;z-index:1;}

/* S4 — engagement becomes a sticky-head stage rail */
.fd-engage-grid{display:grid;grid-template-columns:.38fr .62fr;gap:64px;align-items:start;}
.fd-engage-head{position:sticky;top:118px;}
.fd-engage-head h2{font-size:clamp(1.9rem,3.2vw,2.7rem);margin:18px 0 20px;}
.fd-engage-head h2 em{font-style:italic;color:var(--ember-deep);font-weight:400;}
.fd-engage-count{display:inline-block;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);background:var(--cream);border:1px solid var(--line);border-radius:100px;padding:8px 15px;}
.fd-stage-grid{display:block;position:relative;grid-template-columns:none;}
.fd-stage-grid::before{content:'';position:absolute;left:27px;top:28px;bottom:28px;width:2px;
  background:linear-gradient(180deg,var(--ember) 0%,rgba(217,101,10,.5) 55%,rgba(217,101,10,.1) 100%);}
.fd-stage{display:grid;grid-template-columns:56px 1fr;gap:24px;align-items:start;background:none;border:none;
  border-bottom:1px solid var(--line);border-radius:0;padding:20px 0;box-shadow:none;}
.fd-stage:last-child{border-bottom:none;}
.fd-stage:hover{transform:none;box-shadow:none;border-color:var(--line);}
.fd-stage-n{position:relative;z-index:2;display:grid;place-items:center;width:56px;height:56px;margin:0;border-radius:50%;
  background:var(--cream);border:1px solid rgba(217,101,10,.3);color:var(--ember-deep);font-size:.8rem;letter-spacing:.04em;
  box-shadow:0 10px 24px -16px rgba(21,17,12,.55);
  transition:background .35s,color .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.fd-stage:hover .fd-stage-n{background:var(--ember-deep);border-color:var(--ember-deep);color:#fff;transform:scale(1.07);}
.fd-stage h3,.fd-stage p{grid-column:2;}
.fd-stage-n{grid-row:1/span 2;align-self:start;}
.fd-stage h3{font-size:1.1rem;margin:14px 0 8px;transition:color .3s;}
.fd-stage:hover h3{color:var(--ember-deep);}
.fd-stage p{font-size:.93rem;line-height:1.72;}

/* S5 — delivery grid, first item featured */
.fd-deliver-grid{grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:fdd;}
.fd-deliver-card{position:relative;overflow:hidden;counter-increment:fdd;padding:28px 26px 30px;
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015));}
.fd-deliver-card::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--ember),var(--ember-deep));transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.fd-deliver-card:hover::before{transform:scaleX(1);}
.fd-deliver-card::after{content:counter(fdd,decimal-leading-zero);position:absolute;top:22px;right:24px;
  font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.12em;color:rgba(251,248,241,.26);}
.fd-deliver-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:2px 26px;align-items:start;
  padding:34px 32px 36px;border-color:rgba(247,143,27,.3);
  background:linear-gradient(120deg,rgba(247,143,27,.14),rgba(255,255,255,.02) 58%);}
.fd-deliver-card:first-child .fd-deliver-ico{grid-row:1/span 2;width:56px;height:56px;border-radius:16px;margin:0;}
.fd-deliver-card:first-child .fd-deliver-ico svg{width:26px;height:26px;}
.fd-deliver-card:first-child h3{font-size:1.32rem;margin-bottom:6px;}
.fd-deliver-card:first-child p{font-size:.97rem;max-width:74ch;}

/* S6 — fit checklist as hairline rows */
.fd-fit-list{gap:0;margin-top:22px;border-top:1px solid var(--line);}
.fd-fit-list li{padding:17px 6px;border-bottom:1px solid var(--line);align-items:center;
  transition:padding-left .35s cubic-bezier(.2,.7,.2,1),color .3s;}
.fd-fit-list li:hover{padding-left:14px;color:var(--ink);}
.fd-fit-list svg{width:26px;height:26px;padding:4px;margin-top:0;border-radius:50%;background:rgba(217,101,10,.1);
  transition:background .3s,color .3s;}
.fd-fit-list li:hover svg{background:var(--ember-deep);color:#fff;}
.fd-fit-not{position:sticky;top:118px;}

/* S7 — delivery-model ledger */
.fd-vs-head{display:grid;grid-template-columns:.32fr .68fr;gap:24px;padding:0 26px 14px;
  font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(251,248,241,.42);}
.fd-vs-row{padding:24px 26px;transition:border-color .35s,background .35s,transform .35s cubic-bezier(.2,.7,.2,1);}
.fd-vs-row:not(.is-fde):hover{border-color:rgba(247,143,27,.32);background:rgba(251,248,241,.05);transform:translateX(4px);}
.fd-vs-row.is-fde{padding:30px 26px;border-color:rgba(247,143,27,.42);border-left-width:4px;
  background:linear-gradient(100deg,rgba(247,143,27,.16),rgba(247,143,27,.03) 62%);
  box-shadow:0 34px 70px -46px rgba(247,143,27,.65);}
.fd-vs-row.is-fde .fd-vs-name{font-size:1.18rem;}
.fd-vs-row.is-fde .fd-vs-text{color:rgba(251,248,241,.9);}

/* S9 — success measures as an editorial board */
.fd-measure-grid{grid-template-columns:repeat(2,1fr);gap:0 56px;}
.fd-measure-grid li{background:none;border:none;border-radius:0;border-bottom:1px solid var(--line-d);padding:20px 4px;gap:16px;
  font-family:'Fraunces',serif;font-weight:500;font-size:1.06rem;color:#FBF8F1;
  transition:padding-left .35s cubic-bezier(.2,.7,.2,1);}
.fd-measure-grid li:nth-last-child(-n+2){border-bottom:none;}
.fd-measure-grid li:hover{padding-left:12px;}
.fd-measure-ico{border:1px solid rgba(247,143,27,.34);transition:background .3s,color .3s;}
.fd-measure-grid li:hover .fd-measure-ico{background:var(--ember);color:#15110C;}

/* S10 — why Inabia as numbered principle cards */
.fd-choose-list{max-width:none;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:fdc;}
.fd-choose-list p{counter-increment:fdc;position:relative;border-left:none;padding:32px 30px 34px;
  background:var(--cream);border:1px solid var(--line);border-radius:20px;
  font-size:.99rem;line-height:1.78;color:var(--muted);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.fd-choose-list p::before{content:counter(fdc,decimal-leading-zero);display:block;font-family:'Fraunces',serif;
  font-size:2.1rem;line-height:1;margin-bottom:16px;color:transparent;-webkit-text-stroke:1.3px rgba(217,101,10,.6);
  transition:color .45s,-webkit-text-stroke-color .45s;}
.fd-choose-list p:hover{transform:translateY(-5px);border-color:rgba(217,101,10,.35);box-shadow:0 30px 60px -40px rgba(21,17,12,.4);}
.fd-choose-list p:hover::before{color:var(--ember-deep);-webkit-text-stroke-color:transparent;}


@media(max-width:980px){
  .fd-hero-grid,.fd-what-grid,.fd-fit-grid,.fd-sc-grid{grid-template-columns:1fr;gap:40px;}
  .fd-seal{order:-1;max-width:300px;margin:0 auto;}
  .fd-why-grid{grid-template-columns:1fr;}
  .fd-stage-grid{grid-template-columns:repeat(2,1fr);}
  .fd-vs-row{grid-template-columns:1fr;gap:8px;}
}
@media(max-width:620px){
  .fd-stage-grid{grid-template-columns:1fr;}
  .fd-deliver-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  .fd-live,.fd-em-ring-i{animation:none;}
  .fd-bridge-dot{display:none;}
  .fd-why-card:hover,.fd-stage:hover,.fd-deliver-card:hover{transform:none;}
}


/* Responsive for the professional pass (must follow the rules above). */
@media(max-width:1100px){
  .fd-deliver-grid{grid-template-columns:repeat(2,1fr);}
  .fd-engage-grid{grid-template-columns:.42fr .58fr;gap:44px;}
}
@media(max-width:980px){
  .fd-engage-grid{grid-template-columns:1fr;gap:38px;}
  .fd-engage-head{position:static;}
  .fd-fit-not{position:static;}
  .fd-choose-list{grid-template-columns:1fr;}
  .fd-measure-grid{grid-template-columns:1fr;gap:0;}
  .fd-measure-grid li:nth-last-child(-n+2){border-bottom:1px solid var(--line-d);}
  .fd-measure-grid li:last-child{border-bottom:none;}
  .fd-vs-head{display:none;}
}
@media(max-width:620px){
  .fd-deliver-grid{grid-template-columns:1fr;}
  .fd-deliver-card:first-child{grid-template-columns:1fr;padding:28px 26px 30px;}
  .fd-deliver-card:first-child .fd-deliver-ico{grid-row:auto;margin-bottom:14px;}
  .fd-deliver-card:first-child h3{font-size:1.14rem;}
  .fd-stage{grid-template-columns:44px 1fr;gap:16px;}
  .fd-stage-n{width:44px;height:44px;font-size:.72rem;}
  .fd-stage-grid::before{left:21px;}
  .fd-choose-list p{padding:28px 24px 30px;}
}
@media(prefers-reduced-motion:reduce){
  .fd-choose-list p:hover,.fd-vs-row:not(.is-fde):hover{transform:none;}
  .fd-stage:hover .fd-stage-n{transform:none;}
  .fd-why-card,.fd-stage,.fd-deliver-card,.fd-fit-list li,.fd-vs-row,.fd-measure-grid li,.fd-choose-list p,
  .fd-what-txt .fd-support-chips li,.fd-sc-col .fd-cost-chips li{transition-delay:0s;}
}



/* ==========================================================================
   MOBILE MEGA MENU — SIMPLIFIED
   The drawer already turned the megas into accordions, but
   `.mega-inner.mega-services` (0,2,0) outranked the mobile
   `.mega-inner{grid-template-columns:1fr}` (0,1,0), so the services menu kept
   its desktop two-column tab layout on phones: a marketing blurb and a narrow
   category rail squeezed beside the link panel. This block stacks every mega,
   drops the desktop-only marketing copy, and turns the category rail into
   full-width tap targets with the chosen panel nested directly beneath.
   ========================================================================== */
@media(max-width:980px){
  /* Every mega stacks — list the multi-class variants explicitly so none of
     them out-specify this rule the way .mega-services used to. */
  .mega-inner,
  .mega-inner.mega-services,
  .mega-inner.mega-contact,
  .mega-inner.mega-blog{grid-template-columns:1fr;gap:10px;padding:18px 0 16px;}

  /* Top-level rows: bigger tap targets, hairline separators for scanning. */
  .navlinks.open{padding:8px 22px 22px;gap:0;}
  .navlinks.open>.navitem{border-bottom:1px solid rgba(255,255,255,.08);}
  .navlinks.open>.navitem:last-of-type{border-bottom:none;}
  .navlink{padding:15px 0;font-size:1.04rem;}
  .nav-caret{opacity:.55;}

  /* The services blurb is desktop instruction copy ("Pick a category…") that
     only pushes real links below the fold on a phone. */
  .mega-services .mega-promo>.eyebrow,
  .mega-services .mega-promo>h3,
  .mega-services .mega-promo>p{display:none;}

  /* Category rail → full-width rows, chevron shows which one is open. */
  .svc-cats{margin-top:2px;gap:2px;}
  .svc-cat-btn{padding:13px 12px;border-radius:10px;font-size:1rem;gap:12px;}
  .svc-cat-name{flex:1 1 auto;}
  .svc-cat-btn .arr{opacity:.45;transform:none;transition:transform .25s,opacity .25s;}
  .svc-cat-btn.active .arr{opacity:1;transform:rotate(90deg);}
  .svc-cat-btn.active{background:rgba(247,143,27,.14);}

  /* Chosen panel nests under the rail so the parent/child link is obvious. */
  .svc-mega-main{margin-top:8px;margin-left:12px;padding-left:14px;border-left:2px solid rgba(247,143,27,.35);}
  .svc-panel-h{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;padding-bottom:8px;margin-bottom:2px;}
  .svc-link{padding:11px 10px;font-size:.97rem;}
  .svc-sub{margin:0 0 6px 8px;padding-left:12px;}
  .svc-sublink{padding:9px 10px;font-size:.89rem;}

  /* Blog mega gets the same nesting treatment. */
  .blog-mega-main{margin-top:8px;margin-left:12px;padding-left:14px;border-left:2px solid rgba(247,143,27,.35);}
  .blog-cat{padding:13px 12px;font-size:1rem;}

  /* Contact mega: stack the columns instead of cramming four across. */
  .mega-contact .cm-col{padding-top:12px;}
  .cm-item,.cm-loc{padding:11px 10px;}
}

/* ==========================================================================
   HORIZONTAL OVERFLOW GUARD
   The decorative .hero-glow / .hero-aurora blurs are deliberately positioned
   past their section's edges (e.g. .glow-1 is 620px wide at right:-120px), so
   the section MUST clip them. Sections that forgot to do that push the
   document wider than the viewport, which on a phone shifts the whole page
   sideways and pulls the fixed nav's search/menu buttons off-screen.
   .home-fde was the one section on the homepage missing it: it made the
   document 605px wide inside a 485px viewport.
   `clip` is used rather than `hidden` because it suppresses the sideways
   overflow without creating a scroll container, so position:sticky keeps
   working inside these sections (same reasoning as the body rule up top).
   ========================================================================== */
html{overflow-x:clip;}
.home-fde{overflow-x:clip;}
.sec:has(> .hero-glow),.sec:has(> .hero-aurora),.sec:has(> canvas.ai-net){overflow-x:clip;}

/* ==========================================================================
   HOMEPAGE — FORWARD DEPLOYED ENGINEERING PROMO (.home-fde)
   Reuses the FDE page's badge emblem at a smaller scale.
   ========================================================================== */
.home-fde-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
.home-fde-txt p{color:var(--muted-d);font-size:1.02rem;line-height:1.8;margin:18px 0 22px;max-width:560px;}
.home-fde-link{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:.76rem;letter-spacing:.05em;color:var(--ember-hi);font-weight:500;transition:gap .25s;}
.home-fde-link:hover{gap:12px;}
.home-fde-cta{margin-top:26px;}
.home-fde-badge{display:flex;justify-content:center;}
.home-fde-badge .sn-seal{max-width:280px;}
@media(max-width:980px){
  .home-fde-grid{grid-template-columns:1fr;gap:40px;}
  .home-fde-badge{order:-1;}
}

/* ============================================================================
   SERVICES MEGA — SIMPLIFIED
   Flat directory of headed link groups (inabia_services_mega()): every
   service one click away, no tabs, no promo row. Styled after the client's
   reference: a dark full-width panel, four plain columns, an accent-coloured
   group heading over a list of white links — no cards, icons, bullets or
   closing line. Only this panel goes dark; the other megas keep the cream
   ground. The previous tabbed menu's .svc-* rules above are untouched so
   INABIA_SERVICES_MENU can flip back.
   ========================================================================== */
.has-mega-services .mega{background:#141414;border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 34px 64px -30px rgba(0,0,0,.7);}
.mega-inner.mega-services-flat{grid-template-columns:1fr;gap:0;padding:34px 32px 38px;}

/* directory — groups tile four across, so the eight groups form two rows */
.svcflat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 48px;}
.svcflat-col{min-width:0;}
.svcflat-h{display:block;margin-bottom:8px;font-size:15px;font-weight:500;line-height:1.35;color:var(--ember-hi,#FFAE45) !important;}
a.svcflat-h{transition:color .18s;}
a.svcflat-h:hover{color:#fff !important;}
.svcflat-list{list-style:none;margin:0;padding:0;}
.svcflat-link{display:block;padding:5px 0;font-size:15px;font-weight:400;line-height:1.35;color:#fff !important;transition:color .18s;}
.svcflat-link:hover,.svcflat-link:focus-visible{color:var(--ember-hi,#FFAE45) !important;}

@media(max-width:1200px){
  .svcflat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 36px;}
}

/* Compact variant (menus with fewer than four groups): a content-sized box
   dropped under its own nav item instead of a mostly empty full-width row.
   main.js sets its left edge from the item's position. */
@media(min-width:981px){
  .mega-compact .mega{right:auto;width:max-content;max-width:calc(100vw - 32px);
    border:1px solid rgba(255,255,255,.08);border-top:none;border-radius:0 0 14px 14px;}
  .mega-compact .mega-inner.mega-services-flat{max-width:none;margin:0;padding:26px 32px 30px;}
  .mega-compact .svcflat-grid{grid-template-columns:repeat(var(--cols,2),minmax(190px,auto));gap:24px 48px;}
}

/* Inside the dark mobile drawer the mega is an accordion: drop the panel
   ground so it sits on the drawer, and stack the groups. */
@media(max-width:980px){
  .has-mega-services .mega{background:transparent;border:none;box-shadow:none;}
  .mega-inner.mega-services-flat{padding:4px 0 14px;}
  .svcflat-grid{grid-template-columns:1fr;gap:18px;}
  .svcflat-h{margin-bottom:4px;font-size:14px;}
  .svcflat-link{font-size:14px;color:rgba(255,255,255,.8) !important;}
}


/* ==========================================================================
   SITE FOOTER
   Moved here from home3.css so inner pages get the same footer: that
   stylesheet is only enqueued on the home3 template, and the markup is now
   shared via template-parts/site-footer.php.

   The rules below were written against the --h3-* palette, which is declared
   on .page-home3 and therefore does not exist on any other page. Rather than
   rewrite every value, the tokens are re-declared on the footer itself, with
   the same values home3.css uses. On the home page these simply shadow the
   page-level ones with identical values, so nothing changes there.
   ========================================================================== */
/* Declared on :root, not on .h3-ft: the footer's descendants all inherit from
   here regardless of markup, and there is no selector for a stray parse error
   to take out. The --h3- prefix is private to this theme, so a global
   declaration cannot collide with anything. .page-home3 still redeclares the
   same values, which simply shadow these inside the home template. */
:root{
  --h3-brand:#F78F1B;
  --h3-brand-dark:#D9650A;
  --h3-brand-subtle:#FFE2BF;
  --h3-brand-surface:#FFF6EC;
  --h3-peri:#FFE2BF;
  --h3-hover:#FFAE45;
  --h3-ink:#0A0A0A;
  --h3-body:#666666;
  --h3-paper:#FFFFFF;
  --h3-line:#E6E6E6;
  --h3-line-d:rgba(255,255,255,.16);
  --h3-black:#010101;
  --h3-void:#171616;
}

/* LEGACY FOOTER -- styles for the previous footer, which is commented out in
   footer-home3.php. Retained so that markup can be restored as a pair. The
   live footer is .h3-ft, further down. */
.h3-foot{background-color:#202022;color:#fff;padding-top:89px;}
.h3-foot-in{max-width:1280px;width:100%;margin:0 auto;padding:0 60px;}
/* The links column carries "Artificial Intelligence", which wrapped to two
   lines at 25%; the locations column shows country names only (addresses ride
   in a hover card), so it can give the width up. */
.h3-foot-row{display:grid;grid-template-columns:41.67% 32% 26.33%;}
.h3-foot-box{border-right:1px solid #fff;}
.h3-foot-box:last-child{border-right:none;}

.h3-foot-brand{padding-right:16px;}
.h3-foot-brand img{max-width:150px;width:auto;height:auto;display:block;}
.h3-foot-brand p{color:#fff;padding-top:32px;font-size:16px;line-height:27px;max-width:40ch;}

.h3-foot-links,.h3-foot-locs{font-weight:bold;}
.h3-foot-links ul,.h3-foot-locs ul{display:grid;list-style:none;margin:0;}
.h3-foot-links ul{grid-template-columns:1fr 1fr;}
/* Single column: one country name per row. */
.h3-foot-locs ul{grid-template-columns:1fr;gap:2px;}
.h3-foot-links ul{padding:5% 4% 5% 7%;}
.h3-foot-locs{padding:5% 0 5% 8%;}
.h3-foot-locs ul{padding:0 5% 0 0;}
.h3-foot-links li{font-size:16px;line-height:2.5;font-weight:700;}
.h3-foot-links li a{color:#fff;text-decoration:none;font-weight:600;transition:color .2s;}
.h3-foot-links li a:hover{color:var(--h3-peri);}

.h3-foot-locs-h{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--h3-brand);margin:0 0 10px;}
.h3-foot-locs-h+ul{margin-bottom:24px;}
.h3-foot-locs li{font-size:16px;font-weight:700;line-height:2.2;}

/* Country name is the resting state; the address card appears on hover/focus. */
.h3-loc{position:relative;}
.h3-loc-name{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;
  transition:color .2s;}
.h3-loc:hover .h3-loc-name,.h3-loc:focus-within .h3-loc-name{color:var(--h3-brand);}
.h3-flag{width:24px;height:18px;flex:0 0 24px;border-radius:3px;
  box-shadow:0 0 0 1px rgba(255,255,255,.18);object-fit:cover;}

.h3-loc-pop{position:absolute;left:0;top:100%;z-index:6;width:272px;
  background:#2b2b2e;border:1px solid rgba(247,143,27,.35);border-radius:10px;
  box-shadow:0 18px 40px rgba(0,0,0,.5);padding:14px 16px;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;}
.h3-loc:hover .h3-loc-pop,.h3-loc:focus-within .h3-loc-pop{opacity:1;visibility:visible;transform:translateY(0);}
.h3-loc-addr{margin:0 0 12px;font-size:14px;font-weight:400;line-height:1.6;color:rgba(255,255,255,.78);}
.h3-loc-dir{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;
  color:#fff;text-decoration:none;border-radius:999px;padding:9px 16px;line-height:1;
  background:linear-gradient(270deg,var(--h3-brand) 0%,var(--h3-brand-dark) 100%);
  box-shadow:0 6px 16px rgba(247,143,27,.28);transition:filter .2s,box-shadow .2s;}
.h3-loc-dir:hover,.h3-loc-dir:focus-visible{color:#fff;filter:brightness(1.1);
  box-shadow:0 8px 20px rgba(247,143,27,.42);}
.h3-loc-dir svg{width:15px;height:15px;flex:0 0 15px;color:#fff;}

.h3-foot-lower{display:flex;align-items:center;gap:32px;border-top:1px solid #fff;padding:20px 0;margin-top:3rem;}
.h3-foot-lower ul{list-style:none;margin:0;padding:0;}
.h3-foot-contact{display:flex;align-items:center;}
.h3-foot-contact li{font-size:18px;font-weight:bold;margin-right:32px;}
.h3-foot-contact li a{color:#fff;text-decoration:none;font-weight:normal;transition:color .2s;}
.h3-foot-contact li a:hover{color:var(--h3-peri);}
.h3-social{display:flex;flex-direction:row;align-items:center;}
.h3-social li{margin:0 16px;}
.h3-social .round{width:45px;height:45px;border-radius:100px;border:solid 1px #c2c2c2;display:grid;
  place-items:center;color:#c2c2c2;transition:border-color .2s,color .2s;}
.h3-social a:hover .round{border-color:#fff;color:#fff;}
.h3-social svg{width:15px;height:15px;}
/* Needs the .h3-foot-lower prefix: the generic `.h3-foot-lower ul{margin:0}`
   above is 0,2,0 and would otherwise out-specify a bare .h3-foot-policy. */
.h3-foot-lower .h3-foot-policy{margin-left:auto;}
.h3-foot-policy li a{color:#fff;text-decoration:none;font-size:18px;transition:color .2s;}
.h3-foot-policy li a:hover{color:var(--h3-peri);}

/* ==========================================================================
   FOOTER — four columns: brand blurb and social, Company, Contact, Offices;
   then the copyright bar. Offices reuse the legacy .h3-loc hover card, whose
   rules are in the LEGACY FOOTER block above.
   ========================================================================== */
.h3-ft{position:relative;background:#131314;color:#fff;}
/* Ember hairline across the top edge, so the footer starts on a deliberate
   line instead of butting straight into the dark band above it. */
.h3-ft::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(247,143,27,.55) 50%,transparent 100%);}
.h3-ft::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(680px 300px at 12% 0%,rgba(247,143,27,.07) 0%,rgba(247,143,27,0) 70%);}
.h3-ft-in{position:relative;z-index:1;max-width:1280px;width:100%;margin:0 auto;padding:0 60px;}

/* Offices takes the wider of the two right-hand columns -- it carries the
   country rows and their hover cards. Contact is now two links, so it needs
   less room than it did while the subscribe field sat under it. */
.h3-ft-top{display:grid;grid-template-columns:1.6fr .8fr 1.15fr .95fr;gap:52px;
  padding:46px 0 48px;}
.h3-ft-colh{margin:0 0 20px;font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--h3-brand);}

/* --- column 1: brand --- */
.h3-ft-logo{max-width:150px;width:auto;height:auto;display:block;}
.h3-ft-blurb{margin:26px 0 0;max-width:40ch;font-size:15px;line-height:27px;
  color:rgba(255,255,255,.62);}
/* Social closes the Contact column, under the direct lines. The rule lives in
   the shared block rather than the column's, so moving it again is a markup
   change only.
   The hairline matters here: the social chips repeat the rounded-square shape
   the email and phone icons use, so without a divider all six read as one set
   rather than as contact details and then profiles. */
.h3-ft-social{list-style:none;display:flex;align-items:center;gap:10px;margin:0;padding:0;}
.h3-ft-contact .h3-ft-social{margin-top:22px;padding-top:20px;
  border-top:1px solid rgba(255,255,255,.10);}
.h3-ft-social a{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;
  border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.70);
  transition:color .2s ease,border-color .2s ease,background-color .2s ease;}
.h3-ft-social a:hover{color:var(--h3-brand);border-color:rgba(247,143,27,.55);background:rgba(247,143,27,.10);}
.h3-ft-social svg{width:16px;height:16px;}

/* --- column 2: Company --- */
.h3-ft-nav ul{list-style:none;margin:0;padding:0;}
.h3-ft-nav li{margin-bottom:11px;}
.h3-ft-nav li a{font-size:15px;line-height:1.45;color:rgba(255,255,255,.70);
  text-decoration:none;transition:color .2s ease;}
.h3-ft-nav li a:hover{color:var(--h3-brand);}

/* --- column 3: Contact --- */
.h3-ft-direct{display:grid;gap:2px;justify-items:start;}
.h3-ft-direct-l{display:inline-flex;align-items:center;gap:12px;padding:6px 0;
  font-size:15px;font-weight:600;color:#fff;text-decoration:none;transition:color .2s ease;}
.h3-ft-direct-l:hover{color:var(--h3-brand);}
.h3-ft-direct-ico{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;
  border-radius:9px;border:1px solid rgba(255,255,255,.16);color:var(--h3-brand);
  transition:border-color .2s ease,background-color .2s ease;}
.h3-ft-direct-l:hover .h3-ft-direct-ico{border-color:rgba(247,143,27,.55);
  background:rgba(247,143,27,.10);}
.h3-ft-direct-ico svg{width:16px;height:16px;}

.h3-ft-sub{margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.10);}
.h3-ft-subh{margin:0 0 6px;font-size:15px;font-weight:700;color:#fff;}
.h3-ft-subp{margin:0 0 14px;font-size:13.5px;line-height:21px;color:rgba(255,255,255,.55);}
/* Noptin renders with styles="inherit", so its field and button take these
   rules rather than the plugin's own. Selectors stay loose (input[type=email],
   button) so a plugin markup change does not silently unstyle the form. */
.h3-ft-subform form{margin:0;padding:0;background:none;border:0;text-align:left;}
/* The rendered form is form > .noptin-form-fields > wrapper per field, with the
   submit as the last wrapper. .noptin-form-fields already supplies gap:10px, so
   the field carries no bottom margin of its own. */
.h3-ft-subform .noptin-form-fields{gap:10px;}
.h3-ft-subform .noptin-form-header{display:none;}
.h3-ft-subform input[type="email"],
.h3-ft-subform input[type="text"]{width:100%;box-sizing:border-box;margin:0;
  padding:12px 14px;border-radius:11px;font:inherit;font-size:14.5px;color:#fff;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);
  transition:border-color .2s ease,background-color .2s ease;}
.h3-ft-subform input::placeholder{color:rgba(255,255,255,.42);}
.h3-ft-subform input[type="email"]:focus,
.h3-ft-subform input[type="text"]:focus{outline:none;border-color:rgba(247,143,27,.6);
  background:rgba(255,255,255,.08);}
.h3-ft-subform button,
.h3-ft-subform input[type="submit"]{width:100%;cursor:pointer;padding:12px 18px;border:0;
  border-radius:11px;font:inherit;font-size:14px;font-weight:700;letter-spacing:.02em;color:#fff;
  background:linear-gradient(270deg,var(--h3-brand) 0%,var(--h3-brand-dark) 100%);
  box-shadow:0 8px 20px -8px rgba(247,143,27,.55);
  transition:filter .2s ease,box-shadow .2s ease;}
.h3-ft-subform button:hover,
.h3-ft-subform input[type="submit"]:hover{filter:brightness(1.08);
  box-shadow:0 10px 26px -8px rgba(247,143,27,.7);}
/* Plugin response text, success or error. */
.h3-ft-subform .noptin-response,
.h3-ft-subform .noptin-form-notice{margin-top:10px;font-size:13px;line-height:1.5;
  color:rgba(255,255,255,.75);}
.h3-ft-subform .noptin-form-notice:empty{margin:0;}

/* --- column 4: Offices --- */
.h3-ft-locs ul{list-style:none;margin:0;padding:0;}
.h3-ft-locs li{font-size:15px;font-weight:700;line-height:2.1;}
/* Second heading needs air above it; the first sits directly under the column
   label. Overrides the legacy margin, which assumed a wider column. */
.h3-ft-locs .h3-foot-locs-h{margin:0 0 4px;font-size:11px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.45);}
.h3-ft-locs ul+.h3-foot-locs-h{margin-top:20px;}
/* Cards open upward, not down. Opening down put the address over the offices
   below it, so the country you were about to click was the one covered. Rising
   clears the rows still to be read and keeps the last one off the footer edge.
   Scoped to .h3-ft-locs so the legacy footer keeps its original direction. */
.h3-ft-locs .h3-loc-pop{top:auto;bottom:100%;margin-bottom:8px;transform:translateY(6px);}
.h3-ft-locs .h3-loc:hover .h3-loc-pop,
.h3-ft-locs .h3-loc:focus-within .h3-loc-pop{transform:translateY(0);}

/* --- copyright bar --- */
.h3-ft-legal{display:flex;align-items:center;flex-wrap:wrap;gap:14px 28px;
  padding:22px 0 32px;border-top:1px solid rgba(255,255,255,.10);}
.h3-ft-legal ul{list-style:none;margin:0;padding:0;}
.h3-ft-copy{margin:0;font-size:14px;color:rgba(255,255,255,.45);}
/* Policy sits hard right, and drops back into the flow when the bar wraps.
   Needs the .h3-ft-legal prefix: the generic `.h3-ft-legal ul{margin:0}` above
   is 0,2,0 and would otherwise out-specify a bare .h3-ft-policy. */
.h3-ft-legal .h3-ft-policy{margin-left:auto;}
.h3-ft-policy li a{font-size:14px;color:rgba(255,255,255,.62);text-decoration:none;
  transition:color .2s ease;}
.h3-ft-policy li a:hover{color:var(--h3-brand);}

@media(max-width:1100px){
  /* Brand takes a full row; the three remaining columns share the next one. */
  .h3-ft-top{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;padding:38px 0 38px;}
  .h3-ft-brand{grid-column:1/-1;}
  .h3-ft-blurb{max-width:60ch;}
}
@media(max-width:768px){
  .h3-ft-in{padding:0 24px;}
  .h3-ft-top{grid-template-columns:1fr;gap:34px;padding:32px 0 30px;}
  /* There is no hover on a phone, so the card becomes a disclosure: the
     country name toggles it (JS intercepts the tap and the panel's own Get
     Directions link carries the map). Laid out in the flow rather than
     floating, so an open office pushes the next one down instead of covering
     it, and animated on max-height since the content height is unknown. */
  .h3-ft-locs .h3-loc-pop{position:static;width:auto;transform:none;box-shadow:none;
    opacity:0;visibility:hidden;max-height:0;overflow:hidden;
    margin:0;padding:0 16px;border-width:0;
    transition:max-height .32s ease,opacity .22s ease,margin .32s ease,
               padding .32s ease,visibility .32s;}
  .h3-ft-locs .h3-loc.is-open .h3-loc-pop{opacity:1;visibility:visible;max-height:320px;
    margin:8px 0 14px;padding:14px 16px;border-width:1px;}
  .h3-ft-locs .h3-loc:hover .h3-loc-pop{transform:none;}
  .h3-ft-locs li{line-height:1.7;}

  .h3-ft-legal{flex-direction:column;text-align:center;gap:14px;padding:24px 0 34px;}
  .h3-ft-legal .h3-ft-policy{margin-left:0;}
}
