/* ============================================================
   PISTON — the precision machine builder
   Scoped to body.d-piston. 1rem = 10px.
   ============================================================ */
body.d-piston{
  --ps-bg:#0e1114;--ps-bg2:#13171b;--ps-card:#171c21;--ps-steel:#1d2329;--ps-line:rgba(205,220,235,.09);--ps-line2:rgba(205,220,235,.18);
  --ps-fg:#eef2f5;--ps-soft:#b4bec8;--ps-mute:#7d8894;--ps-a:#38d6f5;--ps-hot:#ff7a3d;
  --ps-r:6px;
  --bg-primary:var(--ps-bg);--bg-secondary:var(--ps-bg2);--bg-card:var(--ps-card);--bg-inset:#1a2026;
  --fg-primary:var(--ps-fg);--fg-soft:var(--ps-soft);--fg-muted:var(--ps-mute);--border-color:var(--ps-line);--border-strong:var(--ps-line2);
  --shadow-md:0 24px 60px rgba(0,0,0,.55);
  background:var(--ps-bg);color:var(--ps-fg);font-family:'Sora',system-ui,sans-serif;color-scheme:dark
}
body.d-piston ::selection{background:rgba(56,214,245,.35);color:#fff}
body.d-piston h1,body.d-piston h2,body.d-piston h3{font-weight:700;letter-spacing:-.03em}
body.d-piston h2 span{color:var(--ps-mute);font-weight:400}
.ps-code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:1.2rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ps-a);display:inline-flex;align-items:center;gap:1rem}
.ps-led{width:8px;height:8px;border-radius:50%;background:#3ef08a;box-shadow:0 0 10px #3ef08a;animation:ps-blink 2.4s infinite}
@keyframes ps-blink{0%,92%,100%{opacity:1}96%{opacity:.25}}
body.d-piston .bx-nav{background:rgba(14,17,20,.78);border-bottom-color:var(--ps-line)}
body.d-piston .bx-brand-mark{border-radius:6px;background:#fff}
body.d-piston .bx-brand-txt small,body.d-piston .bx-nav-links a{color:var(--ps-mute)}
body.d-piston .bx-nav-links a:hover,body.d-piston .bx-nav-links a.active{color:#fff}
body.d-piston .bx-nav-cta{background:var(--ps-a);color:#05232b;border-radius:6px}

/* hero */
.ps-hero{position:relative;overflow:hidden;padding:calc(var(--nav-h) + 7rem) 2.4rem 8rem;background:radial-gradient(900px 500px at 85% 20%,rgba(56,214,245,.10),transparent 60%),linear-gradient(180deg,#0e1114,#11151a)}
.ps-grid{position:absolute;inset:0;background:linear-gradient(var(--ps-line) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(90deg,var(--ps-line) 1px,transparent 1px) 0 0/40px 40px;mask-image:radial-gradient(ellipse at 70% 40%,#000 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 20%,transparent 70%)}
.ps-hero-in{position:relative;max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;gap:6rem;align-items:center}
.ps-copy h1{font-size:clamp(4.4rem,6.4vw,8.2rem);line-height:.98;margin:2rem 0 2.4rem}
.ps-tag{font-size:clamp(1.9rem,2.1vw,2.4rem);color:var(--ps-soft);line-height:1.45;max-width:38ch}
.ps-actions{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:3.6rem}
.ps-btn{display:inline-flex;align-items:center;gap:1rem;padding:1.6rem 2.6rem;border-radius:var(--ps-r);font-weight:600;font-size:1.5rem;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s}
.ps-btn-main{background:var(--ps-a);color:#05232b;box-shadow:0 0 0 1px rgba(56,214,245,.4),0 14px 34px rgba(56,214,245,.25)}
.ps-btn-main:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(56,214,245,.7),0 18px 44px rgba(56,214,245,.38)}
.ps-btn-line{border:1px solid var(--ps-line2);color:var(--ps-fg)}
.ps-btn-line:hover{border-color:var(--ps-a);color:var(--ps-a)}
.ps-rig{position:relative;padding:2.6rem;border-radius:12px;background:linear-gradient(145deg,#1f262d,#141a1f);border:1px solid var(--ps-line2);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 40px 80px rgba(0,0,0,.5);transition:transform .4s var(--ease)}
.ps-rig::before{content:'';position:absolute;inset:10px;border:1px dashed var(--ps-line);border-radius:8px;pointer-events:none}
.ps-rig-top{display:flex;align-items:center;justify-content:space-between}
.ps-rig-mark{width:54px;height:54px;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ps-rig-mark img{width:86%;height:86%;object-fit:contain}
.ps-rig-mark span{font-weight:800;font-size:2.2rem;color:#111}
.ps-rig-art{position:relative;height:220px;margin:1.6rem 0}
.ps-gear{position:absolute;left:0;top:10px;width:190px;height:190px;fill:none;stroke:rgba(205,220,235,.32);stroke-width:2;animation:ps-spin 18s linear infinite}
.ps-gear .ps-gear-hole{stroke:var(--ps-a)}
@keyframes ps-spin{to{transform:rotate(360deg)}}
.ps-gauge{position:absolute;right:0;bottom:6px;width:210px;fill:none;stroke-width:3}
.ps-gauge-arc{stroke:rgba(205,220,235,.25)}
.ps-gauge-hot{stroke:var(--ps-hot)}
.ps-gauge line{stroke:rgba(205,220,235,.45);stroke-width:2}
.ps-needle{transform-origin:100px 110px;transform:rotate(-80deg);animation:ps-sweep 2.4s cubic-bezier(.2,.9,.3,1.2) .4s forwards}
.ps-needle line{stroke:var(--ps-a);stroke-width:3}
.ps-needle circle{fill:var(--ps-a);stroke:none}
@keyframes ps-sweep{to{transform:rotate(48deg)}}
.ps-rig-years{display:flex;align-items:center;gap:1.6rem;padding:1.8rem 0;border-top:1px solid var(--ps-line);border-bottom:1px solid var(--ps-line)}
.ps-rig-years b{font-family:'JetBrains Mono',monospace;font-size:5.6rem;line-height:1;color:var(--ps-a);text-shadow:0 0 24px rgba(56,214,245,.35)}
.ps-rig-years span{font-size:1.35rem;color:var(--ps-soft);line-height:1.4}
.ps-rig-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1.2rem;margin-top:1.8rem}
.ps-rig-facts dt{font-family:'JetBrains Mono',monospace;font-size:1.1rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ps-mute)}
.ps-rig-facts dd{font-weight:600;font-size:1.6rem;margin-top:.4rem}

/* sections */
.ps-sec{padding:9rem 2.4rem 0}
.ps-sec>*{max-width:var(--max-w);margin-left:auto;margin-right:auto}
.ps-head{margin-bottom:4rem}
.ps-head h2{font-size:clamp(3.4rem,4.6vw,5.4rem);line-height:1.05;margin-top:1.2rem}
.ps-filter{display:flex;align-items:center;gap:1.2rem;padding:1.2rem 1.8rem;border:1px solid var(--ps-line2);border-radius:var(--ps-r);background:var(--ps-card);margin-bottom:1.4rem}
.ps-filter i{color:var(--ps-mute)}
.ps-filter input{flex:1;background:none;border:0;color:var(--ps-fg);font:inherit;font-size:1.5rem;outline:none}
.ps-filter span{font-family:'JetBrains Mono',monospace;font-size:1.2rem;color:var(--ps-mute)}
.ps-chips{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:3rem}
.ps-chips button{padding:.8rem 1.6rem;border-radius:999px;border:1px solid var(--ps-line2);color:var(--ps-soft);font-size:1.3rem;transition:border-color .2s,color .2s}
.ps-chips button:hover{border-color:var(--ps-a);color:var(--ps-a)}
.ps-family+.ps-family{margin-top:4rem}
.ps-family-name{font-size:2rem;margin-bottom:1.8rem;display:flex;align-items:center;gap:1rem}
.ps-family-name small{font-family:'JetBrains Mono',monospace;font-size:1.2rem;color:var(--ps-mute);font-weight:500}
.ps-plates{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.6rem}
.ps-plate{border-radius:10px;background:linear-gradient(160deg,var(--ps-steel),var(--ps-card));border:1px solid var(--ps-line2);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s var(--ease),border-color .35s,box-shadow .35s}
.ps-plate:hover{transform:translateY(-6px);border-color:rgba(56,214,245,.5);box-shadow:0 24px 50px rgba(0,0,0,.45),0 0 0 1px rgba(56,214,245,.25)}
.ps-plate-img{position:relative;aspect-ratio:4/3;background:radial-gradient(circle at 50% 60%,#2a323a,#161b20);display:flex;align-items:center;justify-content:center}
.ps-plate-img img{width:100%;height:100%;object-fit:contain;padding:1.6rem;transition:transform .5s var(--ease)}
.ps-plate:hover .ps-plate-img img{transform:scale(1.05)}
.ps-plate-img>i{font-size:5rem;color:rgba(205,220,235,.25)}
.ps-plate-img em{position:absolute;left:1.2rem;top:1.2rem;font-style:normal;font-family:'JetBrains Mono',monospace;font-size:1.1rem;color:var(--ps-mute);padding:.3rem .8rem;border:1px solid var(--ps-line2);border-radius:4px;background:rgba(14,17,20,.6)}
.ps-stock{position:absolute;right:1.2rem;top:1.2rem;font-size:1.1rem;font-weight:600;color:#3ef08a;padding:.3rem .8rem;border-radius:4px;background:rgba(62,240,138,.1);border:1px solid rgba(62,240,138,.3)}
.ps-plate-body{padding:2rem 2.2rem 2.2rem;display:flex;flex-direction:column;gap:.8rem;flex:1}
.ps-plate-body h3{font-size:1.9rem;line-height:1.25}
.ps-plate-body>p:not(.ps-code){font-size:1.4rem;color:var(--ps-soft);line-height:1.55}
.ps-plate-foot{margin-top:auto;padding-top:1.4rem;border-top:1px solid var(--ps-line);display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:1.35rem}
.ps-plate-foot span{color:var(--ps-mute)}
.ps-plate-foot a{color:var(--ps-a);font-weight:600;display:inline-flex;gap:.6rem;align-items:center}
.ps-empty{padding:3rem;text-align:center;color:var(--ps-mute)}
.ps-line{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border:1px solid var(--ps-line2);border-radius:10px;overflow:hidden}
.ps-line li{position:relative;padding:2.6rem;border-right:1px solid var(--ps-line);border-bottom:1px solid var(--ps-line);display:flex;flex-direction:column;gap:1rem;transition:background .3s}
.ps-line li:hover{background:rgba(56,214,245,.05)}
.ps-step{font-family:'JetBrains Mono',monospace;font-size:1.2rem;color:var(--ps-mute)}
.ps-line li>i{font-size:2.2rem;color:var(--ps-a)}
.ps-line b{font-size:1.8rem}
.ps-line small{font-size:1.4rem;color:var(--ps-soft);line-height:1.55}
.ps-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem}
.ps-why>div{padding:2.6rem;border-radius:10px;background:var(--ps-card);border:1px solid var(--ps-line);display:flex;flex-direction:column;gap:.8rem}
.ps-why i{color:var(--ps-a);font-size:2rem}
.ps-why b{font-size:2.2rem}
.ps-why small{color:var(--ps-soft);font-size:1.4rem;line-height:1.5}
.ps-about{display:grid;grid-template-columns:1fr 220px;gap:6rem;align-items:start}
.ps-prose p{font-size:1.65rem;line-height:1.8;color:var(--ps-soft)}
.ps-prose p+p{margin-top:1.8rem}
.ps-prose .ps-lead{font-size:2.1rem;line-height:1.55;color:var(--ps-fg)}
.ps-rail{position:sticky;top:calc(var(--nav-h) + 3rem);display:flex;flex-direction:column;align-items:center;gap:1.4rem;padding:2.6rem;border:1px solid var(--ps-line2);border-radius:10px;text-align:center}
.ps-rail span{display:flex;flex-direction:column;font-size:1.2rem;color:var(--ps-mute);text-transform:uppercase;letter-spacing:.1em}
.ps-rail b{font-family:'JetBrains Mono',monospace;font-size:3.2rem;color:var(--ps-fg);letter-spacing:0}
.ps-rail i{width:2px;height:120px;background:linear-gradient(var(--ps-a),var(--ps-hot))}
.ps-gal{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.ps-gal-item{aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid var(--ps-line)}
.ps-gal-item img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35);transition:filter .4s,transform .5s var(--ease)}
.ps-gal-item:hover img{filter:none;transform:scale(1.05)}
.ps-revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem}
.ps-revs figure{padding:3rem;border-radius:10px;background:var(--ps-card);border-left:3px solid var(--ps-a)}
.ps-revs blockquote{font-size:1.65rem;line-height:1.6}
.ps-revs figcaption{margin-top:1.6rem;font-size:1.3rem;color:var(--ps-mute)}
body.d-piston .hours-row{background:var(--ps-card);border-color:var(--ps-line);border-radius:8px}
body.d-piston .hours-row .ht{font-family:'JetBrains Mono',monospace;color:var(--ps-soft)}
body.d-piston .hours-row.is-today{border-color:rgba(56,214,245,.55);background:rgba(56,214,245,.08)}
.ps-contact{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.ps-contact-card{padding:4rem;border-radius:10px;border:1px solid var(--ps-line2);background:linear-gradient(160deg,var(--ps-steel),var(--ps-card))}
.ps-contact-card>p{font-size:1.6rem;line-height:1.65;color:var(--ps-soft);margin-bottom:2.6rem}
body.d-piston .ci{background:rgba(255,255,255,.02);border-color:var(--ps-line);border-radius:8px}
body.d-piston .ci:hover{border-color:rgba(56,214,245,.45)}
body.d-piston .ci-ico{background:rgba(56,214,245,.12);color:var(--ps-a)}
body.d-piston .contact-form{background:var(--ps-card);border-color:var(--ps-line2);border-radius:10px;padding:4rem}
body.d-piston .cf-field input,body.d-piston .cf-field textarea{background:rgba(0,0,0,.3);border-color:var(--ps-line2);color:#fff;border-radius:6px}
body.d-piston .cf-field input::placeholder,body.d-piston .cf-field textarea::placeholder{color:#5c6670}
body.d-piston .btn-onbiz{background:var(--ps-a);color:#05232b;border-radius:6px;text-transform:none;letter-spacing:0;font-size:1.5rem}
.ps-map{margin-top:1.4rem}
body.d-piston .biz-map{border-color:var(--ps-line2);border-radius:10px;filter:invert(.9) hue-rotate(180deg) saturate(.5)}
.ps-share{max-width:var(--max-w);margin:4rem auto 0;padding:0 2.4rem}
body.d-piston .biz-share{border-top-color:var(--ps-line)}
body.d-piston .biz-share-btn{border-color:var(--ps-line2);color:var(--ps-soft)}
body.d-piston .bx-foot{background:transparent;border-top-color:var(--ps-line);margin-top:8rem}
body.d-piston .bx-foot-col h2{color:#fff}
body.d-piston .bx-foot a:hover{color:var(--ps-a)}
body.d-piston .btn-outline{border-color:var(--ps-line2);color:#fff}
@media (prefers-reduced-motion:reduce){.ps-gear,.ps-led{animation:none}.ps-needle{animation:none;transform:rotate(48deg)}}
@media (max-width:980px){
  .ps-hero-in,.ps-about,.ps-contact{grid-template-columns:1fr}
  .ps-hero-in{gap:4rem}
  .ps-rail{position:static;flex-direction:row;justify-content:center}
  .ps-rail i{width:80px;height:2px}
  .ps-gal{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .ps-hero{padding:calc(var(--nav-h) + 4.4rem) 1.6rem 5rem}
  .ps-sec{padding:6.4rem 1.6rem 0}
  .ps-rig-art{height:170px}
  .ps-gear{width:140px;height:140px}
  .ps-gauge{width:160px}
  .ps-plates{grid-template-columns:1fr}
  .ps-gal{grid-template-columns:1fr 1fr}
  .ps-contact-card,body.d-piston .contact-form{padding:2.4rem}
  .ps-share{padding:0 1.6rem}
}
