/* Mother Moulds and Dies - shared styles */
:root{
  --navy:#0b2350; --navy-2:#143a7a; --ink:#06122b;
  --steel:#c9d3e3; --steel-2:#8fa0bb; --paper:#f2f5f9; --white:#fff;
  --signal:#ffc61a; --signal-2:#ffdf7a;
  --ease:cubic-bezier(.2,.7,.2,1);
  --hf:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;
  --bf:'Figtree','Segoe UI',system-ui,-apple-system,sans-serif;
  --pad:clamp(20px,5vw,80px);
  --cut:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--bf);color:var(--ink);background:var(--paper);line-height:1.65;font-size:17px;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
h1,h2,h3{font-family:var(--hf);font-weight:800;line-height:1.02;letter-spacing:.005em}
h1{font-size:clamp(3rem,8vw,6.6rem)}
h2{font-size:clamp(2.2rem,5vw,3.9rem)}
h3{font-size:1.7rem;font-weight:700}
p{max-width:62ch}
.wrap{padding-inline:var(--pad);max-width:1400px;margin-inline:auto}
.chamfer{clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}

/* ---------- page shutter (mould closing between pages) ---------- */
.shutter{position:fixed;inset:0;z-index:200;pointer-events:none}
.shutter>i{position:absolute;left:0;right:0;height:50.5%;background:var(--navy);transition:transform .6s var(--ease),border-color .3s .6s}
.shutter>i:nth-child(1){top:0;border-bottom:4px solid transparent}
.shutter>i:nth-child(2){bottom:0;border-top:4px solid transparent}
.shutter b.loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;transition:opacity .35s}

body.ready .shutter>i:nth-child(1){transform:translateY(-102%);border-bottom-color:var(--signal);transition:transform .6s var(--ease),border-color 0s}
body.ready .shutter>i:nth-child(2){transform:translateY(102%);border-top-color:var(--signal);transition:transform .6s var(--ease),border-color 0s}
body.ready .shutter b{opacity:0}
body.leaving .shutter{pointer-events:all}

/* ---------- header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;color:#fff;transition:background .35s,box-shadow .35s,padding .35s;padding:18px 0}
.site-header.solid{background:rgba(7,22,52,.97);box-shadow:0 8px 30px rgba(0,0,0,.25);padding:10px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand svg{width:46px;height:46px;flex:none}
.brand strong{display:block;font-family:var(--hf);font-size:1.45rem;line-height:1;font-weight:800}
.brand small{display:block;font-size:.78rem;color:var(--signal);letter-spacing:.06em}
.menu{display:flex;gap:30px;list-style:none;align-items:center}
.menu a{font-weight:600;padding:6px 0;position:relative}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.menu a:hover::after,.menu a[aria-current="page"]::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;padding:14px 26px;background:var(--signal);color:var(--ink);border:0;cursor:pointer;font-family:var(--bf);font-size:1rem;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));transition:transform .25s var(--ease),background .25s}
.btn:hover{transform:translateY(-3px);background:var(--signal-2)}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.btn.ghost:hover{background:rgba(255,255,255,.12)}
.btn.dark{background:var(--navy);color:#fff}
.btn.dark:hover{background:var(--navy-2)}
.menu .btn{padding:10px 20px}
.burger{display:none;background:none;border:0;color:#fff;width:44px;height:44px;cursor:pointer}
.burger span{display:block;height:3px;background:currentColor;margin:7px 8px;transition:.3s}

/* ---------- hero with 3D mould ---------- */
.hero{position:relative;height:300vh;background:radial-gradient(1200px 700px at 75% 40%,#1b4a97 0%,var(--navy) 55%,var(--ink) 100%);color:#fff}
.hero-stage{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:20px;padding:90px var(--pad) 40px;overflow:hidden}
.hero-stage::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 90px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 90px);pointer-events:none}
.hero-copy{position:relative;z-index:2}
.hero-copy h1{margin-bottom:22px}
.hero-copy h1 em{font-style:normal;color:var(--signal)}
.hero-copy p{font-size:1.2rem;color:#d6e0f2;margin-bottom:32px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.scene{position:relative;perspective:1600px;height:min(72vh,600px);display:grid;place-items:center}
.rig{position:relative;width:320px;height:320px;transform-style:preserve-3d;
  transform:rotateX(-34deg) rotateY(calc(-34deg + var(--p,0)*80deg + var(--mx,0)*10deg)) scale(var(--sc,.8))}
.half{position:absolute;left:0;top:0;width:320px;height:320px;transform-style:preserve-3d}
.half.top{transform:translateY(calc(-48px - var(--gap,0px)))}
.half.bot{transform:translateY(calc(48px + var(--gap,0px)))}
.f{position:absolute;backface-visibility:hidden;overflow:hidden}
.f.fr,.f.bk,.f.lf,.f.rt{width:320px;height:96px;left:0;top:112px}
.f.fr{transform:translateZ(160px)}
.f.bk{transform:rotateY(180deg) translateZ(160px)}
.f.rt{transform:rotateY(90deg) translateZ(160px)}
.f.lf{transform:rotateY(-90deg) translateZ(160px)}
.f.tp,.f.bt{width:320px;height:320px;left:0;top:0}
.f.tp{transform:rotateX(90deg) translateZ(48px)}
.f.bt{transform:rotateX(-90deg) translateZ(48px)}
.f{background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 5px),
  linear-gradient(135deg,#7f93b2,#516a92)}
.f.tp{background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 5px),linear-gradient(135deg,#e3e9f3,#a6b6cf)}
.f.rt,.f.lf{background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 5px),linear-gradient(135deg,#5a7099,#3c5483)}
.f.bk{background:#3c5483}
.f.bt{background:#2d4270}
.f svg{width:100%;height:100%}
.f.fr .plate{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--hf);font-weight:800;font-size:1.5rem;color:#0b2350;background:var(--signal);padding:2px 18px;letter-spacing:.06em}
.part{position:absolute;left:75px;top:75px;width:170px;height:170px;transform-style:preserve-3d;
  transform:translateY(var(--py,0px)) rotateX(90deg) rotateZ(var(--spin,0deg))}
.part .ly{position:absolute;inset:0;transform:translateZ(calc(var(--i)*3px))}
.part .ly svg{width:100%;height:100%}
.floor{position:absolute;left:50%;bottom:6%;width:440px;height:80px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent);filter:blur(6px)}
.caption{position:absolute;right:0;bottom:-3%;left:0;text-align:center;font-weight:600;color:var(--signal);min-height:1.6em;transition:opacity .3s}
.scrollhint{position:absolute;left:var(--pad);bottom:34px;display:flex;align-items:center;gap:12px;color:#b9c8e4;font-size:.95rem;transition:opacity .4s;z-index:2}
.scrollhint span{width:2px;height:38px;background:linear-gradient(var(--signal),transparent);animation:drip 1.6s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- inner page hero ---------- */
.page-hero{position:relative;background:radial-gradient(900px 500px at 85% 30%,#1b4a97,var(--navy) 60%,var(--ink));color:#fff;padding:190px 0 110px;overflow:hidden}
.page-hero h1{font-size:clamp(3rem,7vw,5.6rem);max-width:14ch;margin-bottom:18px}
.page-hero p{font-size:1.2rem;color:#d6e0f2}
.page-hero .gear-bg{position:absolute;right:-120px;top:50%;width:620px;height:620px;margin-top:-310px;opacity:.22;transform:rotate(var(--rot,0deg))}
.page-hero .gear-bg.sm{right:240px;top:auto;bottom:-120px;width:260px;height:260px;margin:0;opacity:.14;transform:rotate(calc(var(--rot,0deg)*-1.6))}

/* ---------- sections ---------- */
section{position:relative}
.sec{padding:clamp(70px,10vw,130px) 0}
.sec.dark{background:var(--navy);color:#fff}
.sec.dark p{color:#d0dcf0}
.sec.white{background:#fff}
.lead{font-size:1.2rem;margin-top:18px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.sec-head{margin-bottom:clamp(36px,5vw,64px)}
.sec-head p{margin-top:14px}

/* marquee */
.marquee{background:var(--signal);color:var(--ink);overflow:hidden;white-space:nowrap;padding:16px 0;transform:skewY(-1.2deg);margin:-14px 0;position:relative;z-index:3}
.marquee div{display:inline-flex;gap:46px;animation:slide 32s linear infinite;font-family:var(--hf);font-weight:800;font-size:1.7rem;padding-left:46px}
.marquee span::after{content:"";display:inline-block;width:14px;height:14px;background:var(--navy);margin-left:46px;transform:rotate(45deg)}
@keyframes slide{to{transform:translateX(-50%)}}

/* blueprint card */
.blueprint{background:var(--navy);color:var(--signal-2);padding:30px;position:relative;box-shadow:0 30px 60px rgba(7,22,52,.35)}
.blueprint svg{width:100%;height:auto;stroke:currentColor;fill:none;stroke-width:1.4}
.blueprint .note{position:absolute;left:30px;bottom:18px;font-size:.85rem;color:#b9c8e4}
.tilt{transform-style:preserve-3d;transition:transform .25s var(--ease);will-change:transform}
.spot{position:relative}
.spot::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--sx,50%) var(--sy,50%),rgba(255,198,26,.22),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.spot:hover::before{opacity:1}
.facts{list-style:none;margin-top:28px;display:grid;gap:16px}
.facts li{display:flex;gap:14px;align-items:flex-start;font-weight:500}
.facts li::before{content:"";flex:none;width:14px;height:14px;margin-top:8px;background:var(--signal);clip-path:polygon(0 0,70% 0,100% 30%,100% 100%,30% 100%,0 70%)}

/* service cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;perspective:1200px}
.card{background:#fff;padding:34px 30px 36px;position:relative;box-shadow:0 18px 40px rgba(11,35,80,.12)}
.card::after{content:"";position:absolute;top:0;right:0;width:var(--cut);height:var(--cut);background:var(--signal);clip-path:polygon(0 0,100% 100%,0 100%);transform:translate(0,0);display:none}
.card .ico{width:130px;height:96px;margin-bottom:22px;color:var(--navy);transform:translateZ(40px)}
.card .ico svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.card .ico .hi{stroke:var(--signal);stroke-width:4}
.card h3{margin-bottom:10px;transform:translateZ(30px)}
.card p{font-size:1rem;color:#33415f}
.card ul{margin-top:14px;list-style:none;display:grid;gap:6px;font-size:.98rem}
.card ul li{padding-left:18px;position:relative}
.card ul li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:var(--signal);transform:rotate(45deg)}
.card.big{padding-bottom:40px}
.more{margin-top:44px}
.cards.two{grid-template-columns:repeat(2,1fr)}

/* process */
.steps{display:grid;gap:26px;max-width:900px;perspective:1200px}
.step{display:grid;grid-template-columns:96px 1fr;gap:26px;align-items:center;padding:30px 34px;background:linear-gradient(135deg,#143a7a,#0f2c63);box-shadow:0 20px 40px rgba(0,0,0,.3)}
.step .n{font-family:var(--hf);font-weight:800;font-size:4.6rem;line-height:1;color:var(--signal)}
.step h3{margin-bottom:6px}
.step p{margin:0;font-size:1.02rem}
.proc-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}
.proc-wrap .sticky{position:sticky;top:120px}

/* values */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:3px solid var(--navy)}
.val{padding:34px 30px 10px 0}
.val + .val{padding-left:30px;border-left:1px solid #c5cfe0}
.val h3{margin-bottom:10px}

/* tags */
.tagrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.tag{padding:10px 20px;background:#fff;font-weight:600;box-shadow:inset 0 0 0 2px var(--navy)}
.sec.dark .tag{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.4)}

/* cta */
.cta{background:var(--signal);color:var(--ink);padding:clamp(60px,8vw,100px) 0;position:relative;overflow:hidden}
.cta h2{max-width:16ch}
.cta .phones{display:flex;flex-wrap:wrap;gap:18px 40px;margin:26px 0 30px}
.cta .phones a{font-family:var(--hf);font-weight:800;font-size:clamp(2.4rem,6vw,4.2rem);line-height:1}
.cta .gear-bg{position:absolute;right:-90px;top:-90px;width:420px;height:420px;opacity:.18;animation:rot 60s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:start}
.info{display:grid;gap:18px}
.info .row{background:#fff;padding:22px 26px;box-shadow:0 14px 30px rgba(11,35,80,.1);display:grid;gap:4px}
.info .row b{font-family:var(--hf);font-size:1.4rem;font-weight:700;color:var(--navy)}
.info .row a:hover{color:var(--navy-2);text-decoration:underline}
form{background:var(--navy);color:#fff;padding:clamp(26px,4vw,44px);display:grid;gap:18px}
label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
input,select,textarea{font:inherit;padding:13px 14px;border:2px solid transparent;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--signal)}
textarea{min-height:130px;resize:vertical}
.form-actions{display:flex;flex-wrap:wrap;gap:12px}
.map{margin-top:clamp(40px,6vw,70px);height:420px;box-shadow:0 20px 50px rgba(11,35,80,.2)}
.map iframe{width:100%;height:100%;border:0;filter:saturate(.85) contrast(1.05)}

/* footer */
footer{background:var(--ink);color:#b9c8e4;padding:64px 0 28px;font-size:.98rem}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
footer h4{font-family:var(--hf);color:#fff;font-size:1.4rem;margin-bottom:12px}
footer a:hover{color:var(--signal)}
footer ul{list-style:none;display:grid;gap:8px}
.legal{margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.88rem}
.wa{position:fixed;right:22px;bottom:22px;z-index:90;display:flex;align-items:center;gap:12px}
.wa-btn{position:relative;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#3ff08a,#14a04f);box-shadow:0 12px 28px rgba(7,22,52,.45),inset 0 2px 0 rgba(255,255,255,.35),inset 0 -3px 6px rgba(0,0,0,.18);transition:transform .3s var(--ease)}
.wa-btn::before,.wa-btn::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:waring 2.4s ease-out infinite}
.wa-btn::after{animation-delay:1.2s}
@keyframes waring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
.wa-btn svg{width:34px;height:34px;fill:#fff;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.wa-label{background:#fff;color:var(--ink);font-weight:700;font-size:.95rem;padding:10px 16px;border-radius:999px;box-shadow:0 10px 24px rgba(7,22,52,.3);opacity:0;transform:translateX(14px);pointer-events:none;transition:opacity .3s,transform .3s var(--ease);white-space:nowrap}
.wa:hover .wa-label,.wa:focus-visible .wa-label{opacity:1;transform:none}
.wa:hover .wa-btn{transform:scale(1.1) rotate(-8deg)}
@media (hover:none){.wa-label{display:none}}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .cards,.cards.two{grid-template-columns:1fr 1fr}
  .split,.contact-grid,.proc-wrap{grid-template-columns:1fr}
  .proc-wrap .sticky{position:static}
  .vals{grid-template-columns:1fr}
  .val + .val{padding-left:0;border-left:0;border-top:1px solid #c5cfe0}
  .foot{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .burger{display:block}
  .menu{position:fixed;inset:0 0 0 30%;background:var(--ink);flex-direction:column;justify-content:center;gap:26px;font-size:1.3rem;transform:translateX(100%);visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s}
  .menu.open{transform:none;visibility:visible;transition:transform .45s var(--ease),visibility 0s;box-shadow:-20px 0 60px rgba(0,0,0,.5)}
  .burger{position:relative;z-index:5}
  .hero{height:280vh}
  .hero-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding-top:96px;gap:0}
  .hero-copy p{font-size:1.05rem;margin-bottom:20px}
  .scene{height:100%;min-height:0}
  .rig{--sc:.55}
  .scrollhint{display:none}
}
@media (max-width:620px){
  .cards,.cards.two{grid-template-columns:1fr}
  .step{grid-template-columns:1fr;gap:6px}
  .foot{grid-template-columns:1fr}
  .page-hero{padding:150px 0 80px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
}
.cards>.depth{display:flex}
.cards>.depth>.card{width:100%}

/* ---------- gear train in page heroes ---------- */
.gears{overflow:visible;position:absolute;right:1.5%;top:50%;width:min(46vw,660px);height:auto;transform:translateY(-48%);pointer-events:none}
.gears .g-spark{animation:gspark 2.2s ease-in-out infinite}
@keyframes gspark{0%,100%{transform:scale(.2) rotate(0);opacity:0}45%{transform:scale(1) rotate(45deg);opacity:1}70%{opacity:.9}}
.gears .g-float{animation:gfloat 5s ease-in-out infinite}
@keyframes gfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media (max-width:820px){.gears{right:-22%;width:92vw}}

/* ---------- generic 3D cuboid ---------- */
.cb,.grp{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d}
.cb>i{position:absolute;background-color:var(--c,#7f93b2);backface-visibility:hidden}
.cb>.fr,.cb>.bk{width:var(--w);height:var(--h);left:calc(var(--w)/-2);top:calc(var(--h)/-2)}
.cb>.fr{transform:translateZ(calc(var(--d)/2))}
.cb>.bk{transform:rotateY(180deg) translateZ(calc(var(--d)/2));background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5))}
.cb>.rt,.cb>.lf{width:var(--d);height:var(--h);left:calc(var(--d)/-2);top:calc(var(--h)/-2);background-image:linear-gradient(rgba(0,0,0,.26),rgba(0,0,0,.26))}
.cb>.rt{transform:rotateY(90deg) translateZ(calc(var(--w)/2))}
.cb>.lf{transform:rotateY(-90deg) translateZ(calc(var(--w)/2))}
.cb>.tp,.cb>.bt{width:var(--w);height:var(--d);left:calc(var(--w)/-2);top:calc(var(--d)/-2)}
.cb>.tp{transform:rotateX(90deg) translateZ(calc(var(--h)/2));background-image:linear-gradient(rgba(255,255,255,.3),rgba(255,255,255,.3))}
.cb>.bt{transform:rotateX(-90deg) translateZ(calc(var(--h)/2));background-image:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45))}
.cb.steel{--c:#8aa0c2}.cb.dark{--c:#3a5282}.cb.gold{--c:#ffc61a}.cb.sheet{--c:#cfd8e6}.cb.noz{--c:#26396b}

/* ---------- pressing and moulding section ---------- */
.pressx{height:440vh;background:linear-gradient(180deg,var(--ink),var(--navy) 60%,var(--ink));color:#fff}
.pressx-stage{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:30px;padding:90px var(--pad) 40px;overflow:hidden}
.pressx h2{margin-bottom:22px}
.ptxtbox{position:relative;min-height:8.5em}
.ptxt{position:absolute;left:0;top:0;transition:opacity .45s;font-size:1.15rem;color:#d0dcf0}
.ptxt b{display:block;font-family:var(--hf);font-size:1.9rem;color:var(--signal);margin-bottom:6px;font-weight:700}
.pressx[data-ph="0"] .ptxt.b,.pressx[data-ph="1"] .ptxt.a{opacity:0}
.pdots{display:flex;gap:10px;margin-top:20px}
.pdots span{width:44px;height:6px;background:rgba(255,255,255,.2);transition:background .4s}
.pressx[data-ph="0"] .pdots span:nth-child(1),.pressx[data-ph="1"] .pdots span:nth-child(2){background:var(--signal)}
.pscene{position:relative;height:min(76vh,640px);perspective:1500px}
.prig{position:absolute;left:50%;top:48%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.pfloor{position:absolute;left:50%;bottom:6%;width:520px;height:90px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent)}
.seam{position:absolute;left:-3px;top:-80px;width:6px;height:160px;background:var(--signal);box-shadow:0 0 22px 6px rgba(255,198,26,.8);transform-origin:50% 100%}
@media (max-width:820px){
  .pressx-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding-top:90px;gap:0}
  .pressx h2{font-size:2.4rem;margin-bottom:10px}
  .ptxt{font-size:1rem}.ptxt b{font-size:1.5rem}
  .ptxtbox{min-height:7.2em}
  .pdots{margin-top:8px}
}

/* ---------- fixes: visibility + mobile layout ---------- */
/* dark sections: cards stay white, so their text must stay dark */
.sec.dark .card{color:var(--ink)}
.sec.dark .card h3{color:var(--navy)}
.sec.dark .card p,.sec.dark .card li{color:#33415f}
/* gear on the yellow call-to-action band */
.cta .gear-bg{opacity:.5}
.cta .gear-bg path{stroke:var(--navy);stroke-width:3.5}
@media (max-width:820px){
  .page-hero{display:flex;flex-direction:column;padding:130px 0 56px}
  .page-hero .wrap{width:100%;order:1}
  .page-hero .gears{order:2;position:relative;right:auto;top:auto;transform:none;width:min(86vw,400px);margin:34px auto 0;opacity:1}
  .cta .gear-bg{width:300px;height:300px;right:-80px;top:-60px}
}

/* ---------- labelled diagram cards ---------- */
.blueprint .t{fill:currentColor;stroke:none;font:600 15px Figtree,sans-serif}
.blueprint .t.soft{opacity:.75;font-weight:500}
.blueprint .mpart{fill:#ffc61a;stroke:none}
.blueprint .plate{fill:#12336f;stroke-width:2}
.blueprint .dot{fill:currentColor;stroke:none}
.blueprint .ln{stroke-opacity:.6;stroke-width:1.2}
.bp-title{font-size:1.9rem;color:#fff;margin-bottom:10px}
.bp-cap{margin-top:14px;color:#b9c8e4;font-size:.98rem;max-width:none}
.bp-top{animation:bpopen 6s ease-in-out infinite}
@keyframes bpopen{0%,28%{transform:translateY(0)}48%,78%{transform:translateY(-46px)}98%,100%{transform:translateY(0)}}
.bp-arrow{animation:bparrow 1.4s ease-in-out infinite}
@keyframes bparrow{50%{transform:translateY(6px)}}
@media (max-width:620px){.blueprint{padding:20px}.blueprint .t{font-size:17px}}

/* ---------- loader: logo badge draws itself ---------- */
.loader .lg{width:min(30vw,118px);height:auto;overflow:visible;margin-bottom:18px}
.loader .bd-line{stroke-dasharray:100;stroke-dashoffset:100}
.loader .lb{font-family:var(--hf);font-weight:800;font-size:clamp(2rem,6vw,3.2rem);line-height:1;letter-spacing:.01em;opacity:0}
.loader .lt{margin-top:8px;color:var(--signal);font-weight:600;letter-spacing:.18em;font-size:.85rem;opacity:0}
.loader .big{position:absolute;right:var(--pad);bottom:34px;font-family:var(--hf);font-weight:800;font-size:clamp(4.5rem,15vw,10rem);line-height:.8;color:rgba(255,255,255,.14);font-variant-numeric:tabular-nums}
.loader .big b{font-weight:800}
.loader .line{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(255,255,255,.1)}
.loader .line i{display:block;height:100%;background:var(--signal);transform-origin:left;transform:scaleX(0)}

/* ---------- 3D MD badge in inner page heroes ---------- */
.badge3d{position:absolute;right:5%;top:50%;width:480px;height:480px;transform:translateY(-50%);perspective:1500px;pointer-events:none}
.b-tilt{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(calc(var(--my,0)*-9deg)) rotateY(calc(var(--mx,0)*12deg));transition:transform .25s ease-out}
.b-rig{position:absolute;inset:0;transform-style:preserve-3d;animation:bsway 8s ease-in-out infinite alternate}
@keyframes bsway{from{transform:translateY(-8px) rotateX(-13deg) rotateY(-34deg)}to{transform:translateY(10px) rotateX(-7deg) rotateY(30deg)}}
.b-slab{position:absolute;left:90px;top:90px;width:300px;height:300px;transform-style:preserve-3d}
.bl{position:absolute;inset:0;clip-path:polygon(0 0,77% 0,100% 23%,100% 100%,23% 100%,0 77%)}
.bf{background:linear-gradient(135deg,#ffe066,#ffc61a 55%,#f0b000);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.bf .md{font-family:var(--hf);font-weight:800;font-size:170px;line-height:.85;color:#0b2350}
.bf .tg{font-weight:700;color:#0b2350;font-size:15px;letter-spacing:.12em;margin-top:8px}
.shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.7) 50%,transparent 62%);background-size:300% 100%;animation:shine 5s ease-in-out infinite}
@keyframes shine{0%,55%{background-position:140% 0}100%{background-position:-60% 0}}
.b-ring{position:absolute;left:50%;top:50%;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;border:3px dashed rgba(255,255,255,.32);transform:rotateX(74deg);animation:ring1 18s linear infinite}
.b-ring::after{content:"";position:absolute;left:50%;top:-9px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--signal);box-shadow:0 0 18px 4px rgba(255,198,26,.7)}
@keyframes ring1{to{transform:rotateX(74deg) rotateZ(360deg)}}
.b-ring.r2{width:660px;height:660px;margin:-330px 0 0 -330px;border:2px solid rgba(255,255,255,.14);transform:rotateX(74deg) rotateY(20deg);animation:ring2 30s linear infinite reverse}
.b-ring.r2::after{width:10px;height:10px;margin-left:-5px;top:-6px;background:#fff;box-shadow:0 0 14px 3px rgba(255,255,255,.5)}
@keyframes ring2{to{transform:rotateX(74deg) rotateY(20deg) rotateZ(360deg)}}
.mini{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;translate:var(--x) var(--y) var(--z);animation:mini 8s linear infinite}
@keyframes mini{to{transform:rotate3d(1,1,0,360deg)}}
.b-floor{position:absolute;left:50%;bottom:-3%;width:380px;height:64px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent)}
@media (max-width:820px){
  .page-hero .badge3d{position:relative;right:auto;top:auto;order:2;transform:scale(.66);transform-origin:50% 0;margin:6px auto -170px}
}
