/* Spark Fabrication: site styles (marketing, store and cart pages).
   Spark Fab's own look, not Spark Laser's: dark charcoal from the original sparkfab.ca, spark orange from the
   business cards, condensed industrial type (Barlow Condensed + Barlow + IBM Plex Mono) and drawing-sheet details
   (dimension lines, crop marks, blueprint grid). The insert designer and /admin keep sf.css + designer.css. */
:root{
  --orange:#E85112;        /* Spark Fab orange: the original sparkfab.ca / business-card orange (Wix theme colour 15) */
  --orange-lt:#EE7D4D;     /* lighter step of the same ramp: small orange text on charcoal (AA) */
  --orange-2:#D0470F;      /* pressed */
  --orange-ink:#C2400A;    /* orange text on light backgrounds (AA) */
  --amber:#EE7D4D;         /* hover fills, focus ring */
  --hot:linear-gradient(90deg,#B03737 0%,#E85112 55%,#EE7D4D 100%);
  --ink:#121315;           /* deepest */
  --char:#212121;          /* original sparkfab.ca charcoal (Wix #212121 panels) */
  --char-2:#292A2D;
  --char-3:#313236;
  --line:#383A41;
  --fog:#A3A5AC;           /* secondary text on dark */
  --text:#ECEAE6;          /* main text on dark */
  --paper:#F5F2EA;         /* original sparkfab.ca warm off-white */
  --paper-2:#E9E4D9;
  --paper-line:#D8D1C5;
  --ink-text:#1A1B1E;      /* text on paper */
  --ink-soft:#555860;
  --f-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --f-body:"Barlow","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1280px;
  --gutter:24px;
  --head-h:74px;
  --r:4px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--char)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--char);color:var(--text);font-family:var(--f-body);font-size:17.5px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
p{margin:0}
::selection{background:var(--orange);color:var(--ink)}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:700;line-height:.98;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(2.9rem,7.2vw,6.4rem);text-transform:uppercase;font-weight:800}
h2{font-size:clamp(2.2rem,4.6vw,4rem);text-transform:uppercase;font-weight:800}
h3{font-size:clamp(1.35rem,1.9vw,1.7rem);font-weight:700}
h4{font-size:1rem;font-family:var(--f-mono);font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hot{background:var(--hot);-webkit-background-clip:text;background-clip:text;color:transparent}
.o{color:var(--orange)}
.lead{font-size:clamp(1.1rem,1.4vw,1.32rem);line-height:1.5;color:var(--fog);max-width:56ch}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-lt)}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor}
.small{font-size:.92rem;color:var(--fog)}
.muted{color:var(--fog);font-size:.9rem}
.mono{font-family:var(--f-mono)}

/* buttons + links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border:2px solid var(--line);border-radius:var(--r);background:transparent;color:var(--text);font:600 .95rem/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .18s,border-color .18s,color .18s,transform .18s}
.btn svg{width:16px;height:16px;transition:transform .18s}
.btn:hover{border-color:var(--orange-lt);color:var(--orange-lt)}
.btn:hover svg{transform:translateX(3px)}
.btn-red,.btn-o{background:var(--orange);border-color:var(--orange-lt);color:var(--ink)}
.btn-red:hover,.btn-o:hover{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.btn-ghost{border-color:rgba(255,255,255,.34);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;color:var(--orange-lt);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}
.link svg{width:16px;height:16px;transition:transform .18s}
.link:hover svg{transform:translateX(4px)}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:rgba(18,19,21,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.07);transition:background .25s,border-color .25s}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--head-h)}
.has-hero .site-head{position:fixed;left:0;right:0}
.has-hero .site-head:not(.solid){background:linear-gradient(180deg,rgba(18,19,21,.7),rgba(18,19,21,0));border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;flex-shrink:0}
.logo img{height:40px;width:auto}
.logo span{display:grid;line-height:1}
.logo b{font-family:var(--f-display);font-size:1.5rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.logo small{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--orange-lt);margin-top:3px}
.nav{display:flex;align-items:center;gap:28px}
.nav a{text-decoration:none;font-size:.86rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#D8D6D2;position:relative;padding-block:8px}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--orange);transition:right .22s}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.head-r{display:flex;align-items:center;gap:10px}
.head-cta{min-height:42px;padding:0 18px;font-size:.82rem}
.menu-btn{display:none;background:none;border:0;color:#fff;padding:8px;cursor:pointer}
.menu-btn svg{width:28px;height:28px}
.cart-link{position:relative;display:flex;width:42px;height:42px;align-items:center;justify-content:center;color:#fff;text-decoration:none}
.cart-link svg{width:24px;height:24px;fill:currentColor}
.cart-link b{position:absolute;top:2px;right:0;min-width:18px;height:18px;border-radius:9px;background:var(--orange);color:var(--ink);font-size:.7rem;line-height:18px;text-align:center;padding:0 4px}
@media (max-width:1080px){
  .nav{position:fixed;inset:var(--head-h) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--ink);border-bottom:2px solid var(--orange);padding:8px var(--gutter) 22px;display:none;max-height:calc(100vh - var(--head-h));overflow:auto}
  .nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .nav a::after{display:none}
  .nav.open{display:flex}
  .menu-btn{display:block}
}
@media (max-width:560px){.head-cta{display:none}.logo b{font-size:1.25rem}.logo small{font-size:.52rem}.logo img{height:34px}}
.dev-banner{position:fixed;left:12px;bottom:12px;z-index:90;max-width:calc(100% - 24px);background:#FFF1D6;color:#5B3A00;font-size:.8rem;line-height:1.35;padding:8px 12px;border-radius:3px;box-shadow:0 6px 20px rgba(0,0,0,.3);cursor:pointer}

/* sections */
.sec{position:relative;padding-block:clamp(72px,9vw,132px)}
.sec.tight{padding-block:clamp(48px,6vw,80px)}
.paper{background:var(--paper);color:var(--ink-text)}
.paper .lead,.paper .small,.paper .muted{color:var(--ink-soft)}
.paper .eyebrow,.paper .link{color:var(--orange-ink)}
.paper .btn{color:var(--ink-text);border-color:var(--paper-line)}
.paper .btn:hover{border-color:var(--orange-ink);color:var(--orange-ink)}
.paper .btn-red,.paper .btn-o{color:var(--ink);border-color:var(--orange-lt)}
.paper .btn-red:hover,.paper .btn-o:hover{color:var(--ink);border-color:var(--amber)}
.ink{background:var(--ink)}
.char2{background:var(--char-2)}
.grid-bg{background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px}
.paper.grid-bg{background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px)}
.glow{position:relative;isolation:isolate}
.glow::before{content:"";position:absolute;inset:auto -10% -30% auto;width:60vw;height:60vw;max-width:900px;max-height:900px;background:radial-gradient(circle,rgba(255,107,43,.18),rgba(255,107,43,0) 62%);z-index:-1;pointer-events:none}
.head{display:grid;gap:18px;margin-bottom:clamp(36px,5vw,64px);max-width:900px}
.head.row{max-width:none;grid-template-columns:1fr auto;align-items:end;gap:24px}
@media (max-width:760px){.head.row{grid-template-columns:1fr}}
.big-num{font-family:var(--f-display);font-weight:800;line-height:.9}

/* reveal */
.js .reveal.pre{opacity:0;transform:translateY(26px)}
.reveal{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}

/* crop marks around photos (drawing-sheet detail) */
.crop{position:relative}
.crop::before,.crop::after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--orange);pointer-events:none;z-index:2}
.crop::before{top:-9px;left:-9px;border-right:0;border-bottom:0}
.crop::after{bottom:-9px;right:-9px;border-left:0;border-top:0}
.crop img,.crop video{width:100%;height:100%;object-fit:cover}

/* dimension line: |←—— 840 mm ——→| */
.dim{display:flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;color:var(--orange-lt);text-transform:uppercase}
.dim::before,.dim::after{content:"";flex:1;height:1px;background:currentColor;opacity:.7}
.dim span{white-space:nowrap}

/* ---------- home hero ---------- */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;background:var(--ink);isolation:isolate}
.hero video,.hero .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;opacity:.55}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(18,19,21,.92) 0%,rgba(18,19,21,.55) 55%,rgba(18,19,21,.2) 100%),linear-gradient(0deg,rgba(18,19,21,1) 0%,rgba(18,19,21,0) 45%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent)}
.hero canvas.sparks{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero .wrap{width:100%;padding-top:calc(var(--head-h) + 60px);padding-bottom:clamp(36px,5vw,64px)}
.hero h1{max-width:13ch;margin:20px 0 22px}
.hero h1 .kick{display:block;font-family:var(--f-mono);font-size:clamp(.74rem,1vw,.86rem);font-weight:500;letter-spacing:.16em;color:var(--orange-lt);margin-bottom:18px;text-transform:uppercase;line-height:1.5}
.hero h1 .line{display:block}
.hero .lead{color:#CFCDC8;max-width:52ch}
.hero .btns{margin-top:32px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(48px,7vw,96px);border-top:1px solid rgba(255,255,255,.14)}
.stats div{padding:22px 20px 4px 0;display:grid;gap:4px}
.stats div+div{padding-left:20px;border-left:1px solid rgba(255,255,255,.14)}
.stats b{font-family:var(--f-display);font-size:clamp(2.2rem,4.2vw,3.6rem);font-weight:800;line-height:1;color:#fff}
.stats b em{font-style:normal;color:var(--orange-lt)}
.stats span{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog)}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){padding-left:0;border-left:0}.stats div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}}

/* marquee ticker */
.ticker{overflow:hidden;background:var(--orange);color:var(--ink);border-block:1px solid #000}
.ticker div{display:flex;gap:48px;width:max-content;padding:14px 0;animation:tick 38s linear infinite}
.ticker span{font-family:var(--f-display);font-size:1.35rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;gap:48px}
.ticker span::after{content:"";width:10px;height:10px;background:var(--ink);transform:rotate(45deg)}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- capability explorer ("What do you want to make?") ---------- */
.xp{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start}
.xp-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);counter-reset:xp}
.xp-list li{border-bottom:1px solid var(--line)}
.xp-list a{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:18px 4px;text-decoration:none;color:var(--fog);transition:color .2s,padding .2s,background .2s}
.xp-list a::before{counter-increment:xp;content:counter(xp,decimal-leading-zero);font-family:var(--f-mono);font-size:.78rem;color:var(--orange-lt)}
.xp-list b{font-family:var(--f-display);font-size:clamp(1.4rem,2.3vw,2.05rem);font-weight:700;text-transform:uppercase;line-height:1.05;color:inherit}
.xp-list small{display:block;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog);margin-top:4px;font-weight:400}
.xp-list svg{width:22px;height:22px;opacity:0;transform:translateX(-8px);transition:.2s;color:var(--orange-lt)}
.xp-list a:hover,.xp-list a.on{color:#fff;padding-left:14px;background:linear-gradient(90deg,rgba(255,107,43,.12),transparent)}
.xp-list a.on svg,.xp-list a:hover svg{opacity:1;transform:none}
.xp-stage{position:sticky;top:calc(var(--head-h) + 24px)}
.xp-card{display:none}
.xp-card.on{display:grid;gap:22px;animation:fadein .45s ease}
.no-js .xp-card:first-child{display:grid}
@keyframes fadein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.xp-card .crop{aspect-ratio:4/3;background:var(--ink)}
.xp-card .crop img{position:absolute;inset:0}
.xp-card p{color:#D3D1CC;font-size:1.08rem;max-width:58ch}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips-row li{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--line);border-radius:2px;color:#D8D6D2}
.paper .chips-row li{border-color:var(--paper-line);color:var(--ink-text)}
@media (max-width:900px){
  .xp{grid-template-columns:1fr}
  .xp-stage{display:none}
  .xp-list a{grid-template-columns:auto 1fr auto}
  .xp-list .xp-m{display:block;grid-column:1/-1;margin-top:14px;aspect-ratio:16/9;overflow:hidden;border-radius:2px}
  .xp-list .xp-m img{width:100%;height:100%;object-fit:cover}
}
.xp-m{display:none}

/* ---------- machine showcase ---------- */
.mach{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:center}
.mach-fig{position:relative;aspect-ratio:5/4;background:radial-gradient(circle at 50% 55%,#33353B,#17181B 70%);border:1px solid var(--line);overflow:hidden}
.mach-fig img{position:absolute;inset:6% 10% 4%;width:80%;height:90%;object-fit:contain;filter:drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.mach-fig .tag{position:absolute;display:flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(18,19,21,.85);border:1px solid var(--orange);padding:8px 12px;white-space:nowrap}
.mach-fig .tag i{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,107,43,.25);animation:pulse 2.2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(255,107,43,0)}}
.mach-fig .t1{top:12%;left:4%}.mach-fig .t2{top:40%;right:4%}.mach-fig .t3{bottom:10%;left:8%}
.mach-copy{display:grid;gap:22px}
.mach-copy .spec{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.mach-copy .spec div{padding:16px 0;border-bottom:1px solid var(--line);display:grid;gap:2px}
.mach-copy .spec div:nth-child(odd){padding-right:16px}
.mach-copy .spec dt{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.mach-copy .spec dd{margin:0;font-family:var(--f-display);font-size:1.6rem;font-weight:700;color:#fff}
.fleet{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:16px;margin-top:clamp(40px,5vw,72px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin;scrollbar-color:var(--orange-lt) transparent}
.fleet>a,.fleet>div{scroll-snap-align:start;display:grid;grid-template-rows:180px auto;background:var(--char-2);border:1px solid var(--line);text-decoration:none;transition:border-color .2s,transform .2s}
.fleet a:hover{border-color:var(--orange-lt);transform:translateY(-3px)}
.fleet .ph{background:#fff;display:grid;place-items:center;overflow:hidden}
.fleet .ph.dk{background:var(--ink)}
.fleet .ph img{width:100%;height:100%;object-fit:contain;padding:14px}
.fleet .ph.cover img{object-fit:cover;padding:0}
.fleet .b{padding:16px 18px;display:grid;gap:4px}
.fleet .b b{font-family:var(--f-display);font-size:1.3rem;text-transform:uppercase;line-height:1.05}
.fleet .b span{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fog)}
@media (max-width:900px){.mach{grid-template-columns:1fr}}

/* ---------- work gallery with filters ---------- */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filters button{font:500 .78rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:11px 15px;border:1px solid var(--line);background:transparent;color:var(--fog);border-radius:2px;cursor:pointer}
.filters button:hover{color:#fff;border-color:#fff}
.filters button[aria-pressed="true"]{background:var(--orange);border-color:var(--orange-lt);color:var(--ink)}
.works{columns:4 260px;column-gap:12px}
.works figure{break-inside:avoid;margin:0 0 12px;position:relative;overflow:hidden;background:var(--ink);cursor:zoom-in}
.works figure[hidden]{display:none}
.works img{width:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s;filter:saturate(.92)}
.works figure:hover img{transform:scale(1.045);filter:saturate(1.05)}
.works figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;background:linear-gradient(0deg,rgba(18,19,21,.9),transparent);font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;display:flex;justify-content:space-between;gap:8px;opacity:0;transform:translateY(8px);transition:.25s}
.works figcaption b{color:var(--orange-lt);font-weight:500}
.works figure:hover figcaption,.works figure:focus-visible figcaption{opacity:1;transform:none}
@media (hover:none){.works figcaption{opacity:1;transform:none}}
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,10,12,.94);display:grid;place-items:center;padding:24px}
.lb[hidden]{display:none}
.lb img{max-width:min(1400px,100%);max-height:84vh;width:auto;object-fit:contain;box-shadow:0 20px 80px rgba(0,0,0,.6)}
.lb p{margin-top:14px;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog);text-align:center}
.lb button{position:absolute;top:16px;right:16px;width:48px;height:48px;border:1px solid var(--line);background:var(--char);color:#fff;font-size:1.4rem;cursor:pointer;border-radius:2px}
.lb .nx,.lb .pv{top:50%;transform:translateY(-50%)}
.lb .pv{left:16px;right:auto}
.lb .nx{right:16px}

/* ---------- foam CNC animation ---------- */
.foamcnc{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center}
.foam-stage{position:relative;aspect-ratio:16/11;background:radial-gradient(circle at 50% 40%,#2C2E34,#141518 75%);border:1px solid var(--line);overflow:hidden}
.foam-stage svg{position:absolute;inset:0;width:100%;height:100%}
.foam-stage .readout{position:absolute;left:14px;top:14px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--orange-lt);background:rgba(18,19,21,.8);padding:8px 10px;border:1px solid rgba(255,107,43,.4);line-height:1.6;white-space:pre}
.foam-stage .stage-step{position:absolute;right:14px;bottom:14px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--orange);color:var(--ink);padding:8px 12px}
.foam-steps{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.foam-steps li{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);color:var(--fog);transition:color .3s}
.foam-steps li b{font-family:var(--f-mono);font-size:.78rem;color:var(--orange-lt);font-weight:500}
.foam-steps li.on{color:#fff}
@media (max-width:900px){.foamcnc{grid-template-columns:1fr}}

/* ---------- process as a toolpath ---------- */
.path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;counter-reset:st}
.path::before{content:"";position:absolute;top:27px;left:28px;right:28px;height:2px;background:repeating-linear-gradient(90deg,var(--orange) 0 10px,transparent 10px 18px);opacity:.75}
.path li{position:relative;display:grid;gap:10px;padding-right:18px}
.path li::before{counter-increment:st;content:counter(st,decimal-leading-zero);width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--char);border:2px solid var(--orange);font-family:var(--f-mono);font-size:.85rem;color:var(--orange-lt);position:relative}
.paper .path li::before{background:var(--paper)}
.path b{font-family:var(--f-display);font-size:1.55rem;text-transform:uppercase;line-height:1;margin-top:10px}
.path span{font-size:.95rem;color:var(--fog);max-width:24ch}
.paper .path span{color:var(--ink-soft)}
@media (max-width:860px){.path{grid-template-columns:1fr;gap:22px}.path::before{top:28px;bottom:28px;left:27px;right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--orange) 0 10px,transparent 10px 18px)}.path li{grid-template-columns:56px 1fr;column-gap:18px;align-items:center}.path li::before{grid-row:1/3}.path b{margin:0;align-self:end}.path span{align-self:start}}

/* ---------- legacy band ---------- */
.legacy{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:center}
.legacy .years{display:flex;align-items:baseline;gap:18px;font-family:var(--f-display);font-weight:800;line-height:.85}
.legacy .years b{font-size:clamp(4.5rem,11vw,9rem)}
.legacy .years i{font-style:normal;font-size:clamp(1.4rem,3vw,2.4rem);color:var(--orange-lt)}
.legacy-pics{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}
.legacy-pics img{width:100%;height:100%;object-fit:cover}
.legacy-pics .a{grid-row:span 2}
@media (max-width:900px){.legacy{grid-template-columns:1fr}}

/* ---------- inner page hero ---------- */
.page-hero{position:relative;overflow:hidden;padding:clamp(48px,6vw,88px) 0 clamp(56px,7vw,104px);isolation:isolate}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(180deg,#000,transparent)}
.page-hero .wrap{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center}
.page-hero.solo .wrap{grid-template-columns:1fr;max-width:1000px;margin-inline:auto}
.page-hero .txt{display:grid;gap:20px;justify-items:start}
.page-hero h1{font-size:clamp(2.6rem,5.8vw,5.2rem)}
.page-hero .fig{aspect-ratio:5/4}
.page-hero .fig video{position:absolute;inset:0}
.page-hero .hero-ctas{margin-top:8px}
@media (max-width:900px){.page-hero .wrap{grid-template-columns:1fr}.page-hero .fig{aspect-ratio:16/10}}
.crumbs{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog)}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--orange-lt)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- CTA band ---------- */
.cta{position:relative;overflow:hidden;background:var(--orange);color:var(--ink);isolation:isolate}
.cta .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center;padding-block:clamp(56px,7vw,96px)}
.cta h2{font-size:clamp(2.3rem,5vw,4.4rem)}
.cta .lead{color:#3A2208;margin-top:16px}
.cta .eyebrow{color:var(--ink)}
.cta .btn{border-color:var(--ink);color:var(--ink)}
.cta .btn-red{background:var(--ink);color:#fff;border-color:var(--ink)}
.cta .btn-red:hover{background:#000;color:var(--orange-lt)}
.cta .btn:hover{background:var(--ink);color:var(--orange-lt)}
.cta .contact-lines{display:grid;gap:4px;margin-top:22px;font-family:var(--f-mono);font-size:.85rem}
.cta .contact-lines a{text-decoration:none;font-weight:500}
.cta::before{content:"";position:absolute;right:-6vw;top:50%;width:46vw;max-width:620px;aspect-ratio:1;transform:translateY(-50%);background:url(/media/logo-spark-black.webp) center/contain no-repeat;opacity:.09;z-index:-1}
@media (max-width:860px){.cta .wrap{grid-template-columns:1fr}}

/* ---------- service page ---------- */
.svc-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:start}
.svc-intro .copy{display:grid;gap:18px}
.svc-intro .copy p{font-size:1.12rem;color:var(--ink-soft);max-width:60ch}
.paper .svc-intro .copy p{color:var(--ink-soft)}
.datasheet{border:2px solid var(--ink-text);background:#fff;font-family:var(--f-mono);font-size:.82rem}
.datasheet header{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--ink-text);color:#fff;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}
.datasheet header b{color:var(--orange-lt);font-weight:500}
.datasheet dl{margin:0}
.datasheet dl div{display:grid;grid-template-columns:42% 58%;border-top:1px solid var(--paper-line)}
.datasheet dl div:first-child{border-top:0}
.datasheet dt{padding:12px 16px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;border-right:1px solid var(--paper-line)}
.datasheet dd{margin:0;padding:12px 16px;color:var(--ink-text);font-weight:500}
.datasheet .ds-mat{padding:14px 16px;border-top:2px solid var(--ink-text);display:grid;gap:10px}
.datasheet .ds-mat small{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}
.datasheet .btn{margin:0 16px 16px;width:calc(100% - 32px)}
.makes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.makes div{background:var(--char);padding:22px 20px;display:grid;gap:12px;align-content:start;min-height:120px;transition:background .2s}
.makes div:hover{background:var(--char-2)}
.makes div::before{content:"";width:12px;height:12px;background:var(--orange);clip-path:polygon(0 0,100% 50%,0 100%)}
.makes b{font-family:var(--f-display);font-size:1.3rem;font-weight:700;text-transform:uppercase;line-height:1.05}
.gal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(140px,16vw,230px);gap:10px}
.gal figure{margin:0;position:relative;overflow:hidden;background:var(--ink);cursor:zoom-in}
.gal figure:nth-child(1){grid-column:span 3;grid-row:span 2}
.gal figure:nth-child(2),.gal figure:nth-child(3){grid-column:span 3}
.gal figure:nth-child(n+4){grid-column:span 2}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gal figure:hover img{transform:scale(1.05)}
@media (max-width:700px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gal figure:nth-child(n){grid-column:span 1;grid-row:span 1}.gal figure:nth-child(1){grid-column:span 2;grid-row:span 2}}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.related a{position:relative;display:grid;align-content:end;min-height:220px;padding:20px;text-decoration:none;overflow:hidden;isolation:isolate;background:var(--ink)}
.related a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.55;transition:transform .6s,opacity .3s}
.related a::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(18,19,21,.95),rgba(18,19,21,.1))}
.related a:hover img{transform:scale(1.06);opacity:.75}
.related small{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-lt)}
.related b{font-family:var(--f-display);font-size:1.6rem;text-transform:uppercase;line-height:1;color:#fff;margin-top:6px}
@media (max-width:800px){.related{grid-template-columns:1fr}}

/* services index */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.svc-tile{position:relative;display:grid;align-content:end;gap:8px;min-height:380px;padding:24px;text-decoration:none;overflow:hidden;isolation:isolate;background:var(--ink);border:1px solid var(--line)}
.svc-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s,opacity .3s;opacity:.6}
.svc-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(18,19,21,.97) 15%,rgba(18,19,21,.15) 70%)}
.svc-tile:hover img{transform:scale(1.06);opacity:.8}
.svc-tile:hover{border-color:var(--orange-lt)}
.svc-tile .n{position:absolute;top:18px;left:22px;font-family:var(--f-mono);font-size:.78rem;color:var(--orange-lt)}
.svc-tile b{font-family:var(--f-display);font-size:clamp(1.6rem,2.4vw,2.1rem);text-transform:uppercase;line-height:1;color:#fff}
.svc-tile span{color:#C9C7C2;font-size:.98rem;max-width:36ch}
.svc-tile .go{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-lt)}
@media (max-width:980px){.svc-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.svc-grid{grid-template-columns:1fr}.svc-tile{min-height:300px}}

/* splits */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
.split .copy{display:grid;gap:20px;justify-items:start}
.split .media{position:relative;aspect-ratio:4/3}
.split .media.tall{aspect-ratio:4/5}
.split .media img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:baseline}
.checks li::before{content:"";width:10px;height:10px;background:var(--orange);clip-path:polygon(0 0,100% 50%,0 100%);transform:translateY(-1px)}

/* industries / who we work with */
.inds{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.inds div{background:var(--char);padding:26px 24px;display:grid;gap:8px}
.inds b{font-family:var(--f-display);font-size:1.45rem;text-transform:uppercase;line-height:1.05}
.inds span{color:var(--fog);font-size:.97rem}
@media (max-width:900px){.inds{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.inds{grid-template-columns:1fr}}

/* U-Fab band */
.ufab{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(24px,3vw,36px);border:1px solid var(--line);background:linear-gradient(90deg,rgba(255,107,43,.08),transparent 60%)}
.ufab .mark{font-family:var(--f-display);font-weight:800;font-size:2.6rem;line-height:1;color:var(--orange-lt);letter-spacing:.02em}
.ufab p{color:var(--fog);max-width:64ch;margin-top:6px}
@media (max-width:860px){.ufab{grid-template-columns:1fr}}

/* ---------- about ---------- */
.eras{display:grid;gap:clamp(56px,7vw,110px)}
.era{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:center}
.era:nth-child(even){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.era:nth-child(even) .era-t{order:2}
.era-t{display:grid;gap:16px;justify-items:start}
.era-t .yr{font-family:var(--f-display);font-weight:800;font-size:clamp(4rem,9vw,7.5rem);line-height:.85;color:transparent;-webkit-text-stroke:2px var(--orange)}
.paper .era-t .yr{-webkit-text-stroke-color:var(--orange-ink)}
.era-t p{color:var(--fog);max-width:52ch}
.paper .era-t p{color:var(--ink-soft)}
.era-pics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.era-pics img{width:100%;height:100%;object-fit:cover;background:#fff}
.era-pics .w4{grid-column:span 4}.era-pics .w2{grid-column:span 2}.era-pics .w3{grid-column:span 3}.era-pics .w6{grid-column:span 6}
.era-pics .h{aspect-ratio:4/5}.era-pics .s{aspect-ratio:1}.era-pics .l{aspect-ratio:16/10}
@media (max-width:900px){.era,.era:nth-child(even){grid-template-columns:1fr}.era:nth-child(even) .era-t{order:0}}
.vid{position:relative;aspect-ratio:16/9;background:#000;border:1px solid var(--line)}
.vid video,.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-btn{position:absolute;inset:0;display:grid;place-items:center;background:#000 center/cover no-repeat;border:0;cursor:pointer;color:#fff}
.yt-btn span{width:84px;height:84px;border-radius:50%;background:var(--orange);display:grid;place-items:center;box-shadow:0 0 0 12px rgba(255,107,43,.25);transition:transform .2s}
.yt-btn:hover span{transform:scale(1.08)}
.yt-btn svg{width:30px;height:30px;fill:var(--ink);margin-left:4px}
.vids{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.vids figure{margin:0;display:grid;gap:12px}
.vids figcaption{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog)}
.vids figcaption b{color:#fff;font-family:var(--f-display);font-size:1.3rem;letter-spacing:0;display:block;margin-bottom:2px}
@media (max-width:860px){.vids{grid-template-columns:1fr}}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,32px)}
.person{display:grid;gap:12px;align-content:start}
.person .ph{aspect-ratio:4/5;overflow:hidden;background:var(--paper-2);position:relative}
.person .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.05);transition:filter .4s,transform .6s}
.person:hover .ph img{filter:none;transform:scale(1.03)}
.person .ph::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:5px;background:var(--hot)}
.person h3{font-size:1.9rem;text-transform:uppercase;margin-top:6px}
.person span{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-ink)}
.person p{color:var(--ink-soft);font-size:.98rem}
@media (max-width:860px){.team{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.team{grid-template-columns:1fr}}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.values div{background:var(--char);padding:28px 24px;display:grid;gap:10px;align-content:start}
.values b{font-family:var(--f-display);font-size:1.5rem;text-transform:uppercase;line-height:1.05}
.values span{color:var(--fog);font-size:.97rem}
.values i{font-style:normal;font-family:var(--f-mono);font-size:.75rem;color:var(--orange-lt)}
@media (max-width:900px){.values{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.values{grid-template-columns:1fr}}
.family{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fam{position:relative;display:grid;align-content:end;min-height:340px;padding:28px;text-decoration:none;overflow:hidden;isolation:isolate;background:var(--ink);border:1px solid var(--line)}
.fam img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.5;transition:transform .7s,opacity .3s}
.fam::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(18,19,21,.96) 20%,rgba(18,19,21,.1))}
.fam:hover img{transform:scale(1.05);opacity:.7}
.fam small{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-lt)}
.fam h3{font-size:2rem;text-transform:uppercase;margin:8px 0}
.fam p{color:#C9C7C2;max-width:44ch}
@media (max-width:760px){.family{grid-template-columns:1fr}}

/* equipment list */
.equip{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.equip div{background:var(--char);padding:20px 22px;display:grid;gap:4px}
.equip strong{font-family:var(--f-display);font-size:1.35rem;text-transform:uppercase;line-height:1.05}
.equip span{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fog)}
.equip .soon{color:var(--ink);background:var(--amber);padding:3px 7px;justify-self:start}
@media (max-width:560px){.equip{grid-template-columns:1fr}}

/* ---------- store ---------- */
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.product{display:grid;grid-template-rows:auto 1fr;text-decoration:none;background:#fff;color:var(--ink-text);border:1px solid var(--paper-line);transition:transform .25s,box-shadow .25s}
.product:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(0,0,0,.14)}
.product .media{aspect-ratio:1;overflow:hidden;background:#fff;position:relative}
.product .media img{width:100%;height:100%;object-fit:cover;transition:transform .6s,opacity .4s}
.product .media img+img{position:absolute;inset:0;opacity:0}
.product:hover .media img+img{opacity:1}
.product .body{padding:20px 22px 24px;display:grid;gap:8px;align-content:start;border-top:1px solid var(--paper-line)}
.product h3{font-size:1.65rem;text-transform:uppercase}
.product p{color:var(--ink-soft);font-size:.96rem}
.product .badge{justify-self:start;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;background:var(--ink-text);color:#fff}
.product .price{font-family:var(--f-display);font-size:1.6rem;font-weight:700;color:var(--orange-ink);margin-top:6px}
@media (max-width:900px){.products{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.products{grid-template-columns:1fr}}
.designer-cta{margin-top:24px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:clamp(22px,3vw,36px);background:var(--char);color:var(--text);position:relative;overflow:hidden}
.designer-cta p{color:var(--fog);margin-top:8px}
.designer-cta h2{font-size:clamp(1.7rem,3vw,2.5rem)}
@media (max-width:760px){.designer-cta{grid-template-columns:1fr}}
.product-page{align-items:start}
.pp-media{display:grid;gap:10px}
.pp-media .main{aspect-ratio:1;background:#fff;border:1px solid var(--paper-line);overflow:hidden}
.pp-media .main img{width:100%;height:100%;object-fit:cover}
.pp-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pp-thumbs button{padding:0;border:2px solid transparent;background:#fff;aspect-ratio:1;cursor:pointer;overflow:hidden}
.pp-thumbs button[aria-pressed="true"]{border-color:var(--orange-lt)}
.pp-thumbs img{width:100%;height:100%;object-fit:cover}
.product-page h1{font-size:clamp(2.2rem,4vw,3.4rem)}
form.buy{display:grid;grid-template-columns:1.7fr 1fr .8fr;gap:14px;padding:22px;background:#fff;border:1px solid var(--paper-line);margin-top:6px}
form.buy label{display:grid;gap:6px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);min-width:0}
form.buy select,form.buy input{min-width:0;width:100%}
form.buy .price-row,form.buy .sheet-viz,form.buy button,form.buy .added,form.buy .buy-terms{grid-column:1/-1}
.price-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0}
.price-row p{margin:0}
.price-big{font-family:var(--f-display);font-size:2.6rem;font-weight:800;color:var(--ink-text);line-height:1}
.price-each{font-family:var(--f-mono);font-size:.78rem;color:var(--ink-soft)}
.added{font-size:.92rem}
.buy-terms{margin:0;font-size:.8rem;color:var(--ink-soft)}
.buy-terms a{color:var(--orange-ink)}
.sheet-viz{display:grid;grid-template-columns:1fr 190px;gap:14px;align-items:end;padding:14px;border:1px dashed var(--paper-line);background:var(--paper)}
.sheet-viz .sv{width:100%;height:auto;display:block}
.sheet-viz .sv-side{width:100%;height:auto;display:block}
.sv-cuts line{stroke:var(--orange);stroke-width:5;stroke-dasharray:24 16;opacity:.7}
.sv-max{fill:none;stroke:var(--ink-soft);stroke-width:4;stroke-dasharray:18 14;opacity:.45}
.sv-maxl{font-family:var(--f-mono);font-size:52px;fill:var(--ink-soft)}
.sv-side .sv-maxl{font-size:13px}
.sv-mid{font-family:var(--f-display);font-weight:700;font-size:120px;fill:#fff;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:6}
.sv-dim line{stroke:var(--orange);stroke-width:6}
.sv-dim text{font-family:var(--f-mono);font-size:76px;fill:var(--orange-ink);font-weight:500}
.sv-dimline{stroke:var(--orange);stroke-width:2}
.sv-dimtext{font-family:var(--f-mono);font-size:17px;font-weight:500;fill:var(--orange-ink)}
.sv-cap{grid-column:1/-1;margin:0;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.04em;color:var(--ink-text)}
@media (max-width:560px){form.buy{grid-template-columns:1fr 1fr}form.buy label:first-of-type{grid-column:1/-1}.sheet-viz{grid-template-columns:1fr}.sheet-viz .sv-side{max-width:220px}}
.plist{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--ink-soft)}
.plist a{color:var(--orange-ink)}
table.sizes{width:100%;border-collapse:collapse;font-family:var(--f-mono);font-size:.85rem;background:#fff}
table.sizes th,table.sizes td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--paper-line)}
table.sizes th{background:var(--ink-text);color:#fff;font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}
.swatch{width:100%;height:100%}
.uses{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.uses figure{margin:0;display:grid;gap:10px}
.uses img{aspect-ratio:1;width:100%;object-fit:cover;background:#fff;border:1px solid var(--paper-line)}
.uses figcaption{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
@media (max-width:900px){.uses{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.uses{grid-template-columns:1fr 1fr}}

/* ---------- forms (contact) ---------- */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}
.contact .copy{display:grid;gap:22px;justify-items:start}
.contact h1{font-size:clamp(2.6rem,5.4vw,4.8rem)}
.direct{display:grid;gap:0;width:100%;border-top:1px solid var(--line)}
.direct div{display:grid;gap:2px;padding:14px 0;border-bottom:1px solid var(--line)}
.direct small{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-lt)}
.direct a,.direct strong,.direct .mail-show{font-family:var(--f-display);font-size:1.45rem;font-weight:700;text-decoration:none;line-height:1.15}
.callcard{width:100%;display:grid;gap:10px;padding:20px;border:1px solid var(--orange);background:rgba(255,107,43,.07)}
.callcard p{color:var(--fog)}
form.quote{background:var(--paper);color:var(--ink-text);padding:clamp(22px,3.4vw,40px);display:grid;gap:20px;min-width:0;border-top:5px solid var(--orange)}
form.quote fieldset{border:0;margin:0;padding:0;display:grid;gap:12px;min-width:0}
form.quote fieldset[hidden]{display:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:620px){.row2{grid-template-columns:1fr}}
.field{display:grid;gap:7px;min-width:0}
.field label,fieldset legend{font-family:var(--f-mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink-text);background:#fff;border:1px solid var(--paper-line);border-radius:2px;padding:12px 14px;width:100%;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--orange);outline-offset:0;border-color:var(--orange-lt)}
textarea{min-height:140px;resize:vertical}
.chips{display:flex;flex-wrap:wrap;gap:8px}
label.chip{position:relative;font-size:.92rem;padding:10px 14px;border:1px solid var(--paper-line);border-radius:2px;cursor:pointer;background:#fff;user-select:none;font-weight:500}
label.chip input{position:absolute;opacity:0;width:1px;height:1px}
label.chip:has(input:checked){background:var(--ink-text);border-color:var(--ink-text);color:#fff;box-shadow:inset 4px 0 0 var(--orange)}
label.chip:focus-within{outline:2px solid var(--orange);outline-offset:2px}
.form-foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.form-note{font-size:.9rem;color:var(--ink-soft)}
.form-note.err{color:#B3261E}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
form.quote.sent{display:grid;place-content:center;text-align:center;min-height:320px}
form.quote.sent h2{font-size:2.4rem}
.foam-fields{background:#fff;border:1px dashed var(--paper-line)!important;padding:16px!important}
.fileinput input{padding:10px}

/* ---------- FAQ, articles, prose ---------- */
.faq{max-width:900px;display:grid}
.faq details{border-top:1px solid var(--line);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.paper .faq details{border-color:var(--paper-line)}
.faq summary{cursor:pointer;font-family:var(--f-display);font-weight:700;font-size:1.45rem;text-transform:uppercase;line-height:1.1;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--orange-lt);font-size:1.8rem;line-height:.8;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin-top:12px;color:var(--fog);max-width:70ch}
.paper .faq p{color:var(--ink-soft)}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.post{display:grid;grid-template-rows:auto 1fr;text-decoration:none;background:var(--char-2);border:1px solid var(--line);transition:border-color .2s,transform .2s}
.post:hover{border-color:var(--orange-lt);transform:translateY(-3px)}
.post .ph{aspect-ratio:4/3;overflow:hidden}
.post .ph img{width:100%;height:100%;object-fit:cover}
.post .body{padding:20px;display:grid;gap:10px;align-content:start}
.post .tag{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-lt)}
.post h3{font-size:1.5rem;text-transform:uppercase}
.post p{color:var(--fog);font-size:.95rem}
@media (max-width:900px){.posts{grid-template-columns:1fr}}
.article{max-width:740px;margin-inline:auto;display:grid;gap:20px}
.article h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-top:18px}
.article p,.article li{color:var(--ink-soft);font-size:1.1rem;line-height:1.7}
.article ul{margin:0;padding-left:20px;display:grid;gap:8px}
.article a{color:var(--orange-ink)}
.article figure{margin:8px 0}
.prose{max-width:760px;display:grid;gap:18px}
.prose h1{font-size:clamp(2.4rem,4.4vw,3.6rem)}
.prose h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-top:14px}
.prose p,.prose li{color:var(--ink-soft)}
.prose ul{margin:0;padding-left:20px;display:grid;gap:6px}
.prose a{color:var(--orange-ink)}
.placeholder{font-family:var(--f-mono);font-size:.8rem;background:#FFF1D6;color:#5B3A00;padding:8px 10px}

/* ---------- cart ---------- */
.cart-items{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--paper-line)}
.cart-items li{display:grid;grid-template-columns:88px 1fr auto;gap:6px 16px;padding:18px 0;border-bottom:1px solid var(--paper-line)}
.cart-items .thumb{width:88px;height:88px;border-radius:6px;overflow:hidden;background:var(--paper-line);display:grid;place-items:center}
.cart-items .thumb img{width:100%;height:100%;object-fit:cover}
.cart-items .thumb svg{width:84%;height:84%}
@media (max-width:520px){.cart-items li{grid-template-columns:64px 1fr auto}.cart-items .thumb{width:64px;height:64px}}
.totals .ship{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;margin:6px 0;max-width:520px;margin-left:auto}
.totals .ship label{display:flex;gap:8px;align-items:center;font-weight:600}
.totals .ship input[name=postal]{width:120px;padding:8px 10px;text-transform:uppercase}
.ship-opts{display:grid;gap:6px;width:100%}
.ship-opt{display:grid!important;grid-template-columns:auto 1fr auto;gap:10px!important;align-items:center;padding:10px 12px;border:1px solid var(--paper-line);border-radius:6px;background:#fff;text-align:left;font-weight:500!important;cursor:pointer}
.ship-opt small{display:block;color:var(--ink-soft);font-weight:400}
.ship-opt:has(input:checked){border-color:var(--orange)}
.totals .ship .error,.totals .ship .muted{width:100%;text-align:right;margin:0}
.cart-items .meta{color:var(--ink-soft);font-size:.9rem}
.cart-items .bad{color:#B3261E}
.cart-items .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cart-items label{display:flex;gap:8px;align-items:center;font-size:.9rem;font-weight:600}
.cart-items input{width:80px;padding:8px 10px}
.cart-items .amt{font-weight:700;text-align:right}
.cart-items a{color:var(--orange-ink)}
.totals{display:grid;gap:8px;justify-items:end;margin-top:24px;text-align:right}
.totals .grand{font-family:var(--f-display);font-size:2rem;font-weight:800}
.error{color:#B3261E;margin-top:12px}
.link-btn{background:none;border:0;padding:6px 0;font:inherit;font-size:.9rem;color:var(--ink-soft);text-decoration:underline;cursor:pointer}
.shop-note{margin:0 0 10px}
.notice{background:#fff;border-left:4px solid var(--orange);padding:14px 16px;font-size:.93rem;color:var(--ink-soft);max-width:62ch}

/* ---------- footer: wordmark, one-line brand, link columns (accordions on phones), contact + map ---------- */
.site-foot{background:var(--ink);color:var(--fog);padding-top:clamp(48px,6vw,80px);border-top:4px solid var(--orange);position:relative;overflow:hidden}
.foot-big{font-family:var(--f-display);font-weight:800;font-size:clamp(3.4rem,11vw,10rem);line-height:.82;text-transform:uppercase;color:var(--char-2);letter-spacing:-.01em;margin-bottom:clamp(32px,4vw,56px);white-space:nowrap}
.foot-big span{color:transparent;-webkit-text-stroke:2px var(--char-3)}
.foot-top{display:grid;grid-template-columns:1.2fr 1.1fr .9fr 1.2fr;gap:32px}
.foot-brand{display:grid;gap:16px;align-content:start;justify-items:start}
.foot-brand p{max-width:28ch;font-size:.95rem}
.foot-top h4{color:#fff;margin:0;font-size:.74rem}
.site-foot .fc h4{margin-bottom:14px}
.foot-top ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:.94rem}
.foot-top a{text-decoration:none}
.foot-top a:hover{color:var(--orange-lt)}
.fc summary{list-style:none;cursor:default}
.fc summary::-webkit-details-marker{display:none}
.foot-logo{height:56px;width:auto}
.map{display:grid;gap:8px;margin-top:16px}
.map iframe{display:block;width:100%;border:0;background:var(--char-2);filter:grayscale(1) contrast(1.05)}
.map:hover iframe{filter:none}
.map-sm iframe{aspect-ratio:16/9}
.map a{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-lt)}
.map a svg{width:13px;height:13px;flex:none}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;padding-block:22px;border-top:1px solid var(--line);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.foot-base a{color:var(--orange-lt);text-decoration:none}
@media (max-width:900px){.foot-top{grid-template-columns:1fr 1fr}.foot-contact{grid-column:1/-1}}
@media (max-width:700px){
  .foot-top{grid-template-columns:1fr;gap:0}
  .foot-brand{padding-bottom:20px}
  .fc{border-top:1px solid var(--line);padding:14px 0}
  .fc summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center}
  .fc summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--orange-lt);border-bottom:1.5px solid var(--orange-lt);transform:rotate(45deg);transition:transform .2s}
  .fc[open] summary::after{transform:rotate(-135deg)}
  .site-foot .fc h4{margin-bottom:0}
  .fc[open] ul{margin-top:14px}
  .site-foot .foot-contact h4{margin-bottom:14px}
}
/* contact page map */
.findus{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:center;margin-top:clamp(48px,6vw,80px);padding-top:clamp(40px,5vw,64px);border-top:1px solid var(--line)}
.findus .copy{display:grid;gap:14px;justify-items:start}
.findus .copy .btns{margin-top:6px}
.findus .map{margin:0}
.map-lg iframe{aspect-ratio:4/3;filter:none}
@media (max-width:900px){.findus{grid-template-columns:1fr}}

/* ===== round 3 additions ===== */
.mach-fig.photo img{inset:0;width:100%;height:100%;object-fit:cover;filter:none;opacity:.92}
.mach-fig.photo::before,.mach-fig.photo::after{z-index:3}
.foam-stage.anim .cut .pk{opacity:0;transition:opacity .25s}
.foam-stage.anim .tools .tl{opacity:0}
.foam-stage .readout{z-index:2}
.paper .inds,.paper .makes{background:var(--paper-line);border-color:var(--paper-line)}
.paper .inds div,.paper .makes div{background:#fff}
.paper .inds span{color:var(--ink-soft)}
.paper .equip{background:var(--paper-line);border-color:var(--paper-line)}
.paper .equip div{background:#fff}
.paper .equip span{color:var(--ink-soft)}
.paper .checks li{color:var(--ink-soft)}
.paper .checks li::before{background:var(--orange-ink)}
.paper .dim{color:var(--orange-ink)}
.paper .split .copy p{color:var(--ink-soft)}
.paper .svc-intro h2{color:var(--ink-text)}
.paper .head.row .link{color:var(--orange-ink)}
.paper .uses{margin-top:0}
.paper .faq summary{color:var(--ink-text)}
.sec.tight .head{margin-bottom:28px}
.vid video{background:#000}
.legacy .reveal .link{display:inline-flex}
.era-pics img{border:1px solid var(--line)}
.paper .era-pics img{border-color:var(--paper-line)}
.pp-media .main img{aspect-ratio:1;object-fit:cover}
.product .media img{aspect-ratio:1}
.svc-tile .n{z-index:1}
.page-hero .fig img{aspect-ratio:5/4}
@media (max-width:900px){[data-two-col]{grid-template-columns:1fr!important}}
@media (max-width:600px){.hero h1{font-size:clamp(2.6rem,12vw,4rem)}.ticker span{font-size:1.05rem}.foam-stage{aspect-ratio:4/3}}
html{overflow-x:clip}
.ticker{contain:paint}
@media (max-width:900px){.svc-intro{grid-template-columns:1fr}.contact{grid-template-columns:1fr}}
.fam h3,.fam p{color:#fff}.fam p{color:#D8D6D2}
@media (max-width:900px){.svc-intro,.contact,.mach,.legacy,.foamcnc,.era,.era:nth-child(even),.page-hero .wrap{grid-template-columns:minmax(0,1fr)}}
.datasheet{min-width:0}.datasheet dd,.datasheet dt{overflow-wrap:anywhere}
@media (max-width:400px){.site-head .wrap{gap:8px}.logo small{display:none}.logo b{font-size:1.15rem}.cart-link{width:36px}}
.svc-intro .copy p.dim{font-size:.74rem}.dim span{white-space:normal;text-align:center}
.glow{contain:paint}

/* ---------- round 4 (Joe's notes, 15 Oct) ---------- */
.canada{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog)}
.leaf{width:16px;height:16px;fill:var(--orange);flex:none;vertical-align:-3px}
.leaf.sm{width:13px;height:13px;display:inline-block;margin:0 2px 0 6px}
.era-t .canada{margin-top:4px}
.foot-base .canada{color:var(--fog)}
/* fleet: every machine, wrapping grid */
.fleet{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:0;overflow:visible;scroll-snap-type:none;padding-bottom:0}
.fleet a{grid-template-rows:150px auto}
.fleet .ph{position:relative}
.fleet .ph em{position:absolute;left:10px;top:10px;font:600 .64rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;font-style:normal;background:var(--orange);color:var(--ink);padding:6px 8px}
.fleet .b b{font-size:1.15rem}
/* compact gallery on the home page */
.works.compact{columns:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.works.compact figure{margin:0;aspect-ratio:4/3}
.works.compact img{width:100%;height:100%;object-fit:cover}
.works.compact figcaption{opacity:1;transform:none}
.more-wrap{display:flex;justify-content:center;margin-top:28px}
.more-wrap .btn[hidden]{display:none}
/* pop-in when the gallery filters or first appears */
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
.works figure.pop{animation:pop .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 45ms)}
/* equipment: machine cards */
.mcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.mcard{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);background:#fff;border:1px solid var(--paper-line);min-width:0}
.mcard .ph{position:relative;background:#fff;min-height:240px;border-right:1px solid var(--paper-line)}
.mcard .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mcard:nth-child(1) .ph img,.mcard:nth-child(3) .ph img,.mcard:nth-child(4) .ph img,.mcard:nth-child(5) .ph img{object-fit:contain;padding:14px}
.mcard .ph .n{position:absolute;left:0;top:0;font:600 .7rem/1 var(--f-mono);letter-spacing:.12em;background:var(--orange);color:var(--ink);padding:7px 9px}
.mcard .t{padding:22px 24px;display:grid;gap:10px;align-content:start;min-width:0}
.mcard .t small{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-ink)}
.mcard h3{font-family:var(--f-display);font-size:1.5rem;font-weight:700;text-transform:uppercase;line-height:1.05}
.mcard p{color:var(--ink-soft);font-size:.95rem}
.mcard dl{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--paper-line);margin-top:4px}
.mcard dl div{padding:10px 0;border-bottom:1px solid var(--paper-line);display:grid;gap:1px;min-width:0}
.mcard dl div:nth-child(odd){padding-right:12px;border-right:1px solid var(--paper-line)}
.mcard dl div:nth-child(even){padding-left:12px}
.mcard dt{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.mcard dd{margin:0;font-family:var(--f-display);font-size:1.1rem;font-weight:700;color:var(--ink-text);overflow-wrap:anywhere}
.mcard .link{color:var(--orange-ink)}
/* contact: parts / foam switch */
.mode{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--ink);padding:3px;gap:3px;margin-bottom:18px}
.mode button{font:600 .8rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:12px 18px;border:0;background:transparent;color:var(--fog);cursor:pointer}
.mode button[aria-selected="true"]{background:var(--orange);color:var(--ink)}
.mode-note{margin:-6px 0 18px;padding:14px 16px;border:1px solid var(--orange);background:rgba(232,81,18,.08);font-size:.95rem;color:var(--text)}
.mode-note a{color:var(--orange-lt)}
.mode-note[hidden]{display:none}
.form-foot .btns{margin:0}
.ufab .mark{display:grid;gap:4px}
.ufab .mark small{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fog);font-weight:500}
.head.row .lead{margin:0}
@media (max-width:900px){.mcards{grid-template-columns:1fr}.works.compact{grid-template-columns:repeat(2,1fr)}.head.row .lead{max-width:none}}
@media (max-width:600px){.mcard{grid-template-columns:1fr}.mcard .ph{min-height:200px;border-right:0;border-bottom:1px solid var(--paper-line)}.mode{display:grid;width:100%}.foot-base .canada{width:100%}}
.quote .btn:not(.btn-red){color:var(--ink-text);border-color:var(--ink-text)}.quote .btn:not(.btn-red):hover{color:var(--orange-ink);border-color:var(--orange-ink)}

/* ---------- round 5 (15 Oct): Canadian flag, meet the team, tube laser ---------- */
.flag{width:28px;height:14px;flex:none;vertical-align:-2px;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.leaf{fill:#D52B1E}
.canada{color:#fff;gap:10px}
.canada .flag{width:34px;height:17px}
.paper .canada,.meet .canada{color:var(--ink-text)}
.foot-base .canada{color:#fff;font-weight:600}
.hero .kick .flag{width:24px;height:12px;margin-left:6px;vertical-align:-1px}
.ufab .flag{width:22px;height:11px;margin:0 4px 0 6px;vertical-align:-1px}
.meet-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center}
.meet-vid .vid{position:relative;aspect-ratio:16/9;background:#000;border:1px solid var(--paper-line);box-shadow:0 30px 60px -30px rgba(0,0,0,.45)}
.meet-vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.meet-copy{display:grid;gap:18px;justify-items:start}
.meet-copy .lead{color:var(--ink-soft)}
.meet-faces{display:flex;gap:14px;flex-wrap:wrap}
.meet-faces figure{margin:0;display:grid;grid-template-columns:52px auto;gap:10px;align-items:center}
.meet-faces img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--orange)}
.meet-faces figcaption{display:grid;font:500 .66rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.meet-faces b{font:700 1.05rem/1 var(--f-display);color:var(--ink-text);letter-spacing:0}
@media (max-width:900px){.meet-grid{grid-template-columns:minmax(0,1fr)}}
.stat-link{text-decoration:none;color:inherit;display:contents}.stat-link:hover span{color:var(--orange-lt)}
/* round 5b: tube laser photo strip (equipment) */
.tube-strip{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin-top:clamp(28px,4vw,48px)}
.tube-strip figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:#fff;border-radius:4px}
.tube-strip figure img{width:100%;height:100%;object-fit:cover;display:block}
.tube-strip figure:first-child{aspect-ratio:auto}
.tube-strip figure:first-child img{object-fit:contain}
@media(max-width:720px){.tube-strip{grid-template-columns:1fr 1fr}.tube-strip figure:first-child{grid-column:1/-1;aspect-ratio:3/1}}

/* ===== round 6: tube laser, flagships, machine console, idea/real flip ===== */
/* drawn machines (tube_svg, console) */
.tl,.mca{width:100%;height:auto;display:block;overflow:visible}
.tl .ln,.mca .ln{fill:none;stroke:#CFC8B8;stroke-width:1.6}
.tl .pn,.mca .pn{fill:#2A2B30;stroke:#CFC8B8;stroke-width:1.5}
.tl .acc,.mca .acc{fill:var(--orange)}
.tl .floor{stroke:#4A4C53;stroke-width:1.5}
.tl .glass{fill:rgba(232,81,18,.10);stroke:#CFC8B8;stroke-width:1.2}
.tl .tube,.mc-tube{stroke:#EDE6D6;stroke-width:1}
.tl .tube-end{fill:#8F8A80;stroke:#EDE6D6;stroke-width:1}
.tl .beam,.mca .beam{stroke:#FFB347;stroke-width:3;stroke-linecap:round;opacity:0;filter:drop-shadow(0 0 4px #ff7a2b)}
.tl .dim{stroke:var(--orange-lt);stroke-width:1.2;fill:none}
.tl text,.mca text{font-family:var(--f-mono);fill:#CFC8B8}
.tl .lbl{font-size:13px;letter-spacing:.14em}.tl .lbl.c{text-anchor:middle;font-size:11px}
.tl .dimt{font-size:14px;letter-spacing:.12em;text-anchor:middle;fill:var(--orange-lt)}.tl .dimt.sm{font-size:11px;fill:#8E9097}
.tl .ro,.mca .ro{font-size:14px;fill:var(--orange-lt);letter-spacing:.08em}
.tl .prof{fill:none;stroke:#EDE6D6;stroke-width:5}
.tl-stage{position:relative;margin-top:clamp(28px,4vw,48px);padding:clamp(14px,2.5vw,32px);background:radial-gradient(120% 90% at 70% 40%,#2B2C31,#141517 75%);border:1px solid var(--line)}
.soon-badge{position:absolute;top:14px;right:14px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;background:var(--orange);color:#fff;padding:7px 12px;box-shadow:0 0 0 6px rgba(232,81,18,.18);animation:pulse 2.4s infinite}
@media (max-width:640px){.tl-stage{padding:10px 6px;margin-inline:calc(var(--gutter)*-1);border-inline:0}.soon-badge{top:8px;right:8px;font-size:.62rem}}

/* tube page */
.tl-hero{padding:calc(var(--head-h) + clamp(28px,5vw,60px)) 0 clamp(48px,7vw,90px);background:linear-gradient(180deg,#17181B,var(--char))}
.tl-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(20px,4vw,64px);align-items:end;margin-top:16px}
.tl-top h1{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.8rem,7vw,6.2rem);line-height:.92;margin:14px 0 0}
.tl-top .eyebrow .flag,.mach-copy .eyebrow .flag{width:22px;height:11px;vertical-align:-1px;margin-right:6px}
.tl-top .lead{margin-bottom:22px}
@media (max-width:900px){.tl-top{grid-template-columns:1fr}}
.tl-rare{background:var(--hot);color:#fff;padding:clamp(44px,6vw,80px) 0}
.tl-rare .big{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.2rem,5vw,4.4rem);line-height:.95;max-width:22ch}
.tl-rare .big span{display:block;font-family:var(--f-body);font-weight:500;text-transform:none;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5;margin-top:18px;max-width:58ch;color:rgba(255,255,255,.92)}
.tl-rare .stats{grid-template-columns:repeat(6,1fr);border-color:rgba(255,255,255,.35);margin-top:clamp(28px,4vw,48px)}
.tl-rare .stats div+div{border-color:rgba(255,255,255,.35)}
.tl-rare .stats b em{color:#FFE2CF}.tl-rare .stats span{color:rgba(255,255,255,.85)}
@media (max-width:900px){.tl-rare .stats{grid-template-columns:repeat(3,1fr)}.tl-rare .stats div:nth-child(4){border-left:0;padding-left:0}}
@media (max-width:520px){.tl-rare .stats{grid-template-columns:repeat(2,1fr)}.tl-rare .stats div:nth-child(odd){border-left:0;padding-left:0}.tl-rare .stats div:nth-child(4){border-left:1px solid rgba(255,255,255,.35);padding-left:20px}}
.cap-wrap,.len-wrap{background:#fff;border:1px solid var(--paper-line);padding:clamp(14px,3vw,36px);margin-top:18px}
.cap,.len{width:100%;height:auto;display:block}
.cap .big{fill:rgba(232,81,18,.08);stroke:var(--orange);stroke-width:3}
.cap .small{fill:var(--orange);stroke:none}
.cap .dimp,.len .dimp{stroke:#6B6E76;stroke-width:1.2;fill:none}
.cap text,.len text{font-family:var(--f-mono);text-anchor:middle;fill:var(--ink-text)}
.cap .dt{font-size:15px}.cap .pt{font-size:13px;letter-spacing:.16em;fill:var(--orange-ink)}
.len .dt{font-size:14px}.len .dt.sm{font-size:12px;fill:var(--ink-soft)}.len .dt.big{font-family:var(--f-display);font-size:26px;font-weight:800;fill:var(--orange-ink)}
.len .bar{fill:url(#none);fill:#B9B3A6;stroke:#55534E;stroke-width:1.2}
.len .mark{stroke:var(--orange);stroke-width:2;stroke-dasharray:4 4}
.len .person circle{fill:none;stroke:var(--ink-text);stroke-width:2.4}.len .person path{fill:none;stroke:var(--ink-text);stroke-width:2.4;stroke-linecap:round}
.js .reveal.pre .bar{transform:scaleX(.05)}.len .bar{transform-origin:40px 0;transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .2s}
.cap-mats{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:22px}
.cap-mats small{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
/* self-drawing line art */
.draw{width:100%;height:auto;display:block}
.draw path{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1.6s cubic-bezier(.3,.6,.2,1)}
.js .reveal.pre .draw path{stroke-dashoffset:1}
.reveal .draw path:nth-child(2){transition-delay:.25s}.reveal .draw path:nth-child(3){transition-delay:.5s}.reveal .draw path:nth-child(n+4){transition-delay:.75s}
.tfs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tf{background:var(--char-2);border:1px solid var(--line);padding:22px;display:grid;gap:10px;align-content:start;transition:border-color .2s}
.tf:hover{border-color:var(--orange-lt)}
.tf .draw{color:var(--orange-lt);background:#1A1B1E;border:1px solid var(--line);padding:12px 8px}
.tf h3{font-family:var(--f-display);font-size:1.5rem;text-transform:uppercase;margin:6px 0 0}
.tf p{color:var(--fog)}
@media (max-width:900px){.tfs{grid-template-columns:1fr 1fr}}@media (max-width:560px){.tfs{grid-template-columns:1fr}}
.tl-how{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center}
@media (max-width:900px){.tl-how{grid-template-columns:1fr}}
.reel{position:relative;aspect-ratio:4/5;max-height:640px;overflow:hidden;background:#000;border:1px solid var(--line);cursor:pointer;user-select:none}
.reel figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .6s}
.reel figure.on{opacity:1}
.reel figure img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.reel figure.on img{animation:kb 4.6s linear forwards}
.reel figure video{width:100%;height:100%;object-fit:cover;display:block}
@keyframes kb{to{transform:scale(1.14)}}
.reel figcaption{position:absolute;left:0;right:0;bottom:0;padding:60px 22px 22px;background:linear-gradient(transparent,rgba(0,0,0,.85));display:grid;gap:6px}
.reel figcaption b{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-lt)}
.reel figcaption span{font-family:var(--f-display);font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700;line-height:1.1;color:#fff}
.reel-bars{position:absolute;z-index:2;top:12px;left:12px;right:12px;display:flex;gap:6px}
.reel-bars span{flex:1;height:3px;background:rgba(255,255,255,.3);overflow:hidden}
.reel-bars i{display:block;height:100%;width:0;background:#fff}
.reel-bars i.done{width:100%}.reel-bars i.run{animation:bar 4.2s linear forwards}
@keyframes bar{to{width:100%}}
.reel-hint{position:absolute;z-index:2;top:24px;right:14px;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.tl-steps{list-style:none;padding:0;margin:22px 0;display:grid;gap:10px}
.tl-steps li{display:grid;grid-template-columns:42px 1fr;gap:10px;color:#D3D1CC}
.tl-steps b{font-family:var(--f-mono);color:var(--orange-lt)}
.ideas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.idea{display:grid;gap:10px;padding:16px 16px 18px;background:#fff;border:1px solid var(--paper-line);text-decoration:none;color:var(--ink-text);transition:transform .2s,border-color .2s,box-shadow .2s}
.idea:hover{transform:translateY(-4px);border-color:var(--orange);box-shadow:0 14px 30px rgba(0,0,0,.08)}
.idea .draw{color:var(--orange-ink)}
.idea b{font-family:var(--f-display);font-size:1.15rem;text-transform:uppercase;line-height:1.05}
@media (max-width:1000px){.ideas{grid-template-columns:repeat(3,1fr)}}@media (max-width:560px){.ideas{grid-template-columns:1fr 1fr}}
.est-slot{display:grid;grid-template-columns:minmax(0,7fr) auto;gap:clamp(20px,4vw,56px);align-items:end;border:1px dashed var(--orange-lt);padding:clamp(24px,4vw,48px)}
@media (max-width:800px){.est-slot{grid-template-columns:1fr}}

/* home: two flagships + small machine cards */
.flag2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fl{display:grid;grid-template-rows:auto 1fr;background:var(--char-2);border:1px solid var(--line)}
.fl-fig{position:relative;aspect-ratio:16/10;overflow:hidden;background:#17181B}
.fl-fig>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fl-fig .tag{position:absolute;display:flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(18,19,21,.85);border:1px solid var(--orange);padding:7px 11px}
.fl-fig .tag i{width:8px;height:8px;border-radius:50%;background:var(--orange);animation:pulse 2.2s infinite}
.fl-fig .t1{top:14px;left:14px}.fl-fig .t3{bottom:14px;right:14px}
.tl-mini{display:grid;place-items:center;padding:4% 3%;background:radial-gradient(120% 90% at 70% 40%,#2B2C31,#141517 75%)}
.tl-mini .tl .lbl,.tl-mini .tl .dimt.sm,.tl-mini .tl .ro{display:none}
.fl-b{padding:clamp(20px,3vw,32px);display:grid;gap:12px;align-content:start}
.fl-b small{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-lt)}
.fl-b h3{font-family:var(--f-display);font-size:clamp(1.8rem,3vw,2.6rem);text-transform:uppercase;line-height:1;margin:0}
.fl-b p{color:#D3D1CC}
.fl-b .spec{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin:4px 0 8px}
.fl-b .spec div{padding:12px 0;border-bottom:1px solid var(--line)}
.fl-b dt{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.fl-b dd{margin:0;font-family:var(--f-display);font-size:1.4rem;font-weight:700;color:#fff}
.fl-b .btn{justify-self:start}
@media (max-width:900px){.flag2{grid-template-columns:1fr}}
.fleet.mini{margin-top:0;grid-auto-columns:minmax(200px,1fr)}
.fleet.mini>a{grid-template-rows:130px auto}
.fleet.mini .ph img{transition:transform 4s ease}
.fleet.mini a:hover .ph img{transform:scale(1.12)}
.fleet.mini .b{padding:12px 14px}.fleet.mini .b b{font-size:1.1rem}

/* equipment: machine console */
.mc{display:grid;grid-template-columns:minmax(220px,3fr) minmax(0,9fr);background:var(--char);color:var(--text);border:1px solid var(--line);box-shadow:0 30px 60px rgba(0,0,0,.18)}
.mc-tabs{display:grid;align-content:start;border-right:1px solid var(--line);background:#1A1B1E}
.mc-tabs button{all:unset;cursor:pointer;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line);position:relative;transition:background .2s}
.mc-tabs button:hover{background:#232428}
.mc-tabs button[aria-selected=true]{background:var(--char-2)}
.mc-tabs button[aria-selected=true]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--orange)}
.mc-tabs button:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
.mc-tabs .n{font-family:var(--f-mono);font-size:.75rem;color:var(--orange-lt)}
.mc-tabs b{display:block;font-family:var(--f-display);font-size:1.15rem;text-transform:uppercase;line-height:1.05}
.mc-tabs small{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fog)}
.mc-tabs em{font-style:normal;font-family:var(--f-mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;background:var(--orange);color:#fff;padding:3px 6px}
.mc-pane{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:460px}
.mc-pane[hidden]{display:none}
.mc-stage{display:grid;place-items:center;padding:24px;background:radial-gradient(110% 90% at 50% 40%,#2B2C31,#141517 75%);border-right:1px solid var(--line)}
.mc-info{padding:clamp(22px,3vw,36px);display:grid;gap:14px;align-content:start}
.mc-info>small{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-lt)}
.mc-info h3{font-family:var(--f-display);font-size:clamp(1.9rem,3vw,2.6rem);text-transform:uppercase;line-height:1;margin:0}
.mc-info p{color:#D3D1CC}
.mc-specs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin:0}
.mc-specs div{background:var(--char);padding:12px 14px}
.mc-specs dt{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.mc-specs dd{margin:2px 0 0;font-family:var(--f-mono);font-size:1rem;color:#fff}
.mc-jobs small{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.mc-jobs ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.mc-jobs li{font-size:.92rem;padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:#1A1B1E}
.mc-info .btns{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.run .mc-info>*{animation:fadein .5s ease both}.run .mc-info>*:nth-child(2){animation-delay:.05s}.run .mc-info>*:nth-child(3){animation-delay:.1s}.run .mc-info>*:nth-child(n+4){animation-delay:.15s}
@media (max-width:1000px){.mc{grid-template-columns:1fr}.mc-tabs{grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.mc-tabs button{border-bottom:0;border-right:1px solid var(--line)}.mc-tabs button[aria-selected=true]::before{width:auto;height:4px;right:0;top:auto;bottom:0}}
@media (max-width:700px){.mc-pane{grid-template-columns:1fr;min-height:0}.mc-stage{border-right:0;border-bottom:1px solid var(--line)}.mc-specs{grid-template-columns:1fr 1fr}}
/* console animations */
.mca{max-width:420px}
.mca .acc-o{fill:#C9C2B3;stroke:#EDE6D6}
.mca .hole{fill:#141517}
.mca .tool{stroke:#EDE6D6;stroke-width:3}
.mca .sheet{fill:#3A3B40;stroke:#6B6E76}.mca .sheet.acr{fill:rgba(232,81,18,.25);stroke:var(--orange-lt)}.mca .sheet.steel{fill:#8F8A80;stroke:#CFC8B8}
.mca .honey path{stroke:#3A3B40;stroke-width:1}
.mca .tool-dot{fill:#fff}
.mc-trun{transform-origin:200px 160px;animation:mc-tilt 6s ease-in-out infinite}
.mc-part{transform-origin:200px 112px;animation:mc-turn 6s ease-in-out infinite}
.mc-spindle{animation:mc-plunge 3s ease-in-out infinite}
@keyframes mc-tilt{0%,100%{transform:rotate(0)}30%{transform:rotate(-22deg)}65%{transform:rotate(18deg)}}
@keyframes mc-turn{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.55)}}
@keyframes mc-plunge{0%,100%{transform:translateY(0)}50%{transform:translateY(14px)}}
.mc-holes{animation:mc-slide 5s linear infinite}
@keyframes mc-slide{to{transform:translateX(-360px)}}


.mc-beam{animation:mc-flick .12s steps(2) infinite;opacity:1}
.mc-glow{fill:#FFB347;opacity:.85;filter:blur(4px);animation:mc-flick .18s steps(2) infinite}
@keyframes mc-flick{50%{opacity:.35}}
.mc-path{fill:none;stroke:var(--orange-lt);stroke-width:3;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:mc-draw 8s linear infinite}
.mca .mc-path[d^="M120"]{animation-duration:5s}
@keyframes mc-draw{to{stroke-dashoffset:0}}
.mc-scan{opacity:1;transform-origin:200px 84px;animation:mc-sweep 1.2s ease-in-out infinite alternate}
@keyframes mc-sweep{from{transform:rotate(-12deg)}to{transform:rotate(-46deg)}}
.mc-dm rect{fill:#1A1B1E;opacity:0;animation:mc-dot 4s linear infinite}
@keyframes mc-dot{0%,8%{opacity:0}12%,90%{opacity:1}100%{opacity:0}}
.mc-bead{fill:none;stroke:#E8C9A0;stroke-width:7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:mc-draw 6s linear infinite}
.mc-sp circle{fill:#FFD27A;animation:mc-flick .1s steps(2) infinite}
.tl-eq{grid-template-columns:minmax(0,6fr) minmax(0,5fr);margin-top:clamp(24px,4vw,40px);align-items:start}
.tl-eq>.spec{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin:0}
.tl-eq>.spec div{padding:14px 0;border-bottom:1px solid var(--line)}
.tl-eq>.spec dt{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.tl-eq>.spec dd{margin:0;font-family:var(--f-display);font-size:1.45rem;font-weight:700;color:#fff}
@media (max-width:900px){.tl-eq{grid-template-columns:1fr}}

/* idea / real part flip (replaces the overlay inset) */
.flip{position:relative}
.flip .fv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.flip .fv.on{opacity:1}
.flip-sw{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;background:rgba(18,19,21,.82);border:1px solid var(--line);border-radius:99px;padding:3px;backdrop-filter:blur(6px)}
.flip-sw button{all:unset;cursor:pointer;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);padding:6px 12px;border-radius:99px;transition:background .25s,color .25s}
.flip-sw button[aria-pressed=true]{background:var(--orange);color:#fff}
.flip-sw button:focus-visible{outline:2px solid var(--amber)}
.xp-card .crop.flip{aspect-ratio:4/3;background:var(--ink)}
.len .dt.st{text-anchor:start}.len .dt.big{text-anchor:end}
.tube-strip{grid-template-columns:repeat(4,1fr)}.tube-strip figure:first-child{aspect-ratio:4/3}.tube-strip figure:first-child img{object-fit:cover}
@media(max-width:720px){.tube-strip figure:first-child{grid-column:auto;aspect-ratio:4/3}}
.tl-mini{place-items:end center}
.fl-over{position:absolute;top:18px;left:20px;margin:0;font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.3rem,2.4vw,2rem);line-height:.95;color:#fff}
.fl-over::after{content:"";display:block;width:48px;height:4px;background:var(--orange);margin-top:10px}
@media (max-width:640px){.tl-stage{overflow:hidden}.tl-stage .tl{width:150%;max-width:none;margin-left:-50%}.tl-mini{overflow:hidden}.tl-mini .tl{width:150%;max-width:none;margin-left:-50%}}
/* round 7: 5-axis (X Y Z B C) and the welder */
.mca .table{fill:#3A3B40;stroke:#CFC8B8;stroke-width:1.5}
.mca .slots path{stroke:#1A1B1E;stroke-width:6;fill:none}.mca .slots .cmark{fill:var(--orange)}
.mca .part{fill:#BDB6A8;stroke:#EDE6D6;stroke-width:1.2}.mca .part-top{fill:#E3DDD0;stroke:#EDE6D6}
.mca .axis{fill:none;stroke:var(--orange-lt);stroke-width:2}
.mca .slot5{stroke:#1A1B1E;stroke-width:4;stroke-linecap:round;fill:none}.mca .ln.dash{stroke-dasharray:3 5;opacity:.5}
.mca .ax{font-family:var(--f-display);font-weight:800;font-size:17px;fill:var(--orange-lt)}
.mca .floor{stroke:#4A4C53;stroke-width:1.5}
.mca .plate{fill:#8F8A80;stroke:#CFC8B8;stroke-width:1.2}.mca .seam{stroke:#55534E;stroke-width:2}
.mc-bead2{fill:none;stroke:#E8C9A0;stroke-width:5;stroke-linecap:round;stroke-dasharray:61;stroke-dashoffset:61;animation:mc-bead2 7s linear infinite}
@keyframes mc-bead2{0%{stroke-dashoffset:61}85%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}
.mca .arm,.mca .arm2{fill:none;stroke:#2A2B30;stroke-width:13;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke}
.mca .arm{filter:drop-shadow(0 0 0 #CFC8B8)}
.mca .welder .arm,.mca .welder .arm2{stroke:#3B3D44}
.mca .glove{fill:#8A6A45;stroke:#CFC8B8;stroke-width:1.2}
.mca .torch{fill:none;stroke:#CFC8B8;stroke-width:5;stroke-linecap:round}
.mca .hose{fill:none;stroke:#55534E;stroke-width:3}
.mca .helmet{fill:#2A2B30;stroke:#CFC8B8;stroke-width:1.6}
.mca .visor{fill:#0E0F11;stroke:#CFC8B8;stroke-width:1;animation:visor .14s steps(2) infinite}
@keyframes visor{50%{fill:#3A2414}}
.mca .welder>path.pn{fill:#30323A}
.mc-glow.big{filter:blur(6px)}
.mca .arc{fill:#fff;animation:mc-flick .09s steps(2) infinite}
.mca .sparks circle{fill:#FFD27A;opacity:0;animation:spark .9s linear infinite}
@keyframes spark{0%{transform:translate(0,0);opacity:1}100%{transform:translate(var(--dx),calc(var(--dy) + 30px));opacity:0}}
/* materials + profiles */
.profs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.prof-card{margin:0;background:#fff;border:1px solid var(--paper-line);padding:18px;display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center}
.prof-card .draw{width:96px}
.prof-card .draw path{fill:rgba(232,81,18,.14);stroke:var(--orange);stroke-width:2.6;transition:stroke-dashoffset 1.4s cubic-bezier(.3,.6,.2,1),fill-opacity .6s .9s}
.js .reveal.pre .prof-card .draw path,.js .prof-card.reveal.pre .draw path{fill-opacity:0}
.prof-card b{display:block;font-family:var(--f-display);font-size:1.3rem;text-transform:uppercase;line-height:1.05;color:var(--ink-text)}
.prof-card span{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
@media (max-width:900px){.profs{grid-template-columns:1fr 1fr}}@media (max-width:520px){.profs{grid-template-columns:1fr}}
.metals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.metal{background:#fff;border:1px solid var(--paper-line);padding:0 0 18px;display:grid;gap:6px;overflow:hidden}
.metal .sw{display:block;height:92px;margin-bottom:10px}
.metal b,.metal span{padding:0 18px}
.metal b{font-family:var(--f-display);font-size:1.4rem;text-transform:uppercase;color:var(--ink-text)}
.metal span{color:var(--ink-soft);font-size:.95rem}
.sw.steel{background:linear-gradient(115deg,#3b3e44,#6b6f76 45%,#2c2e33 60%,#575b62)}
.sw.stainless{background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 1px,transparent 1px 3px),linear-gradient(115deg,#aeb3b8,#e9ecee 45%,#9aa0a6 62%,#d2d6d9)}
.sw.alu{background:repeating-linear-gradient(90deg,rgba(255,255,255,.25) 0 1px,transparent 1px 4px),linear-gradient(115deg,#cdd2d7,#f4f6f7 45%,#bfc5cb 62%,#e6e9ec)}
.sw.galv{background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0 8px,transparent 9px),radial-gradient(circle at 70% 60%,rgba(255,255,255,.35) 0 12px,transparent 13px),radial-gradient(circle at 45% 80%,rgba(0,0,0,.08) 0 10px,transparent 11px),linear-gradient(115deg,#a7aca8,#cfd3cf 50%,#9fa49f)}
@media (max-width:900px){.metals{grid-template-columns:1fr 1fr}}
.len .box rect:first-child{fill:#C9573A;stroke:#7A2E1C;stroke-width:2}
.len .corr path{stroke:rgba(0,0,0,.18);stroke-width:2}
.len .bar-l{stroke:#5A2416;stroke-width:3}
.len .cast{fill:#7A2E1C}
.len .ground{stroke:#B9B3A6;stroke-width:1.5}
.len .ct{fill:#fff;font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:.06em}.len .ct2{fill:#fff;font-size:15px;font-weight:600;opacity:.9}
.len .bar{transform-origin:40px 0}
.tl .prof.f{fill:#EDE6D6;stroke:none}

/* round 8: welding close-up */
.weld2 .jacket{fill:#2C2E33;stroke:#55575E;stroke-width:1.2}
.weld2 .shell{stroke:#CFC8B8;stroke-width:1.6}
.weld2 .edge{fill:none;stroke:#FFB347;stroke-width:2;opacity:.55;animation:mc-flick .2s steps(2) infinite}
.weld2 .crease{fill:none;stroke:#6B6E76;stroke-width:1.2}
.weld2 .lens{stroke:#CFC8B8;stroke-width:1}
.weld2 .lens-glow{fill:#FF8A2B;opacity:0;animation:lensflk .16s steps(2) infinite}
@keyframes lensflk{50%{opacity:.35}}
.weld2 .knob{fill:#1C1D21;stroke:#CFC8B8;stroke-width:1.4}.weld2 .knob2{fill:#3A3B40;stroke:#8F8A80}
.weld2 .tick{stroke:#8F8A80;stroke-width:1.4}
.weld2 .gun{stroke:#1E1F23;stroke-width:13;stroke-linecap:round}
.weld2 .gun-neck{fill:none;stroke:#B9B2A4;stroke-width:6;stroke-linecap:round}
.weld2 .nozzle{fill:#D8CBB0;stroke:#EDE6D6;stroke-width:1}
.weld2 .glove{fill:#9A7650;stroke:#CFC8B8;stroke-width:1.2}
.weld2 .hose{stroke:#1E1F23;stroke-width:7;fill:none}
.weld2 .plate{fill:#6F6A62;stroke:#CFC8B8;stroke-width:1.2}.weld2 .plate.up{fill:#57534D}
.weld2 .bead-cold{stroke:#8E8A82;stroke-width:6;stroke-linecap:round}
.weld2 .bead-hot{stroke-width:5;stroke-linecap:round;fill:none}
.weld2 .sparks circle{fill:#FFE29A;filter:drop-shadow(0 0 2px #FF9A3C)}
.weld2 .glowfill{animation:glowflk .25s steps(3) infinite}
@keyframes glowflk{33%{opacity:.8}66%{opacity:1}}
.tl .cab-in{fill:#141517;stroke:none}

/* round 8: home tube laser band + contact ways */
.tlh{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:center}
.tlh-vid{position:relative;aspect-ratio:4/5;max-height:640px;background:#000;border:1px solid var(--line);overflow:hidden}
.tlh-vid video{width:100%;height:100%;object-fit:cover;display:block}
.tlh-vid .soon-badge{position:absolute;top:14px;left:14px;right:auto;width:auto}
.tlh-copy{display:grid;gap:20px;align-content:start}
.tlh-copy h2{font-size:clamp(2.2rem,4.4vw,3.8rem)}
.stats.tlh-stats{margin-top:0}.stats.tlh-stats b{font-size:clamp(1.8rem,3vw,2.6rem)}.stats.tlh-stats div{padding-top:14px}
.tlh-est{display:grid;gap:10px;padding:clamp(20px,3vw,28px);border:1px solid var(--orange);background:linear-gradient(135deg,rgba(232,81,18,.16),rgba(232,81,18,.03));color:inherit;text-decoration:none;transition:transform .25s,background .25s}
.tlh-est:hover{transform:translateY(-3px);background:linear-gradient(135deg,rgba(232,81,18,.26),rgba(232,81,18,.06))}
.tlh-est .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-lt)}
.tlh-est b{font-family:var(--f-display);font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.1;text-transform:uppercase}
.tlh-est ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;counter-reset:s}
.tlh-est li{counter-increment:s;font-size:.92rem;color:#D3D1CC;border-top:2px solid var(--orange);padding-top:8px}
.tlh-est li::before{content:counter(s,decimal-leading-zero) " ";font-family:var(--f-mono);color:var(--orange-lt)}
.tlh-est .btn{justify-self:start}
.ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0 clamp(36px,5vw,64px)}
.way{display:grid;gap:8px;align-content:start;padding:22px;border:1px solid var(--paper-line);background:#fff;color:var(--ink-text);text-decoration:none;transition:transform .2s,border-color .2s}
.way:hover{transform:translateY(-3px);border-color:var(--orange)}
.way.on{border-color:var(--orange);box-shadow:inset 0 4px 0 var(--orange)}
.way .n{font-family:var(--f-mono);font-size:.72rem;color:var(--orange-ink);letter-spacing:.12em}
.way b{font-family:var(--f-display);font-size:1.5rem;text-transform:uppercase;line-height:1.05}
.way small{color:var(--ink-soft);font-size:.95rem}
.way em{font-style:normal;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-ink);display:inline-flex;gap:6px;align-items:center}
.way em svg{width:14px;height:14px}
@media (max-width:900px){.tlh{grid-template-columns:1fr}.tlh-vid{max-height:520px;aspect-ratio:4/5;max-width:440px}.stats.tlh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ways{grid-template-columns:1fr}}
@media (max-width:560px){.tlh-est ol{grid-template-columns:1fr}}
.makes{gap:0;background:none;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.makes div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}

/* round 9: TIG close-up */
.weld3 .amb{opacity:.35;animation:glowflk .3s steps(3) infinite}
.weld3 .pipe-ln{stroke:#CFC8B8;stroke-width:1.2;opacity:.6;fill:none}
.weld3 .seam{stroke:#2A2B30;stroke-width:2}
.weld3 .bead{fill:#A7A39B;stroke:#D8D2C6;stroke-width:1}
.weld3 .ripples path{fill:none;stroke:#E8E2D6;stroke-width:1.3;opacity:.85}
.weld3 .puddle{animation:mc-flick .2s steps(2) infinite}
.weld3 .rod{stroke:#C9C4BA;stroke-width:3.5;stroke-linecap:round}
.weld3 .rod-tip{stroke:#FFB347;stroke-width:3.5;stroke-linecap:round;filter:drop-shadow(0 0 3px #FF7A2B)}
.weld3 .tq{fill:#1E1F23;stroke:#6B6E76;stroke-width:1.2}.weld3 .tq.b{fill:#2A2B30}
.weld3 .hand-l{stroke:#1E1F23;stroke-width:16;stroke-linecap:round}
.weld3 .tung{fill:#B9C2CC}
.weld3 .arc-glow{animation:glowflk .14s steps(3) infinite}
.weld3 .arc-core{fill:#fff;filter:drop-shadow(0 0 6px #9FD8FF);animation:mc-flick .09s steps(2) infinite}
.weld3 .sparks circle{fill:#FFE6A8;opacity:0;animation:spark .8s linear infinite}
/* round 9: U-Fabrication banner in U-Fab's own colours (red #FF1E2A, ink #05080B, white) */
.ufab{--uf-red:#FF1E2A;--uf-ink:#05080B;background:#fff;color:var(--uf-ink);border:0;border-left:8px solid var(--uf-red);box-shadow:0 18px 40px -24px rgba(0,0,0,.6)}
.ufab h3{color:var(--uf-ink)}
.ufab p{color:#3b4046}
.ufab .flag{filter:none}
.uf-logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--uf-ink)}
.uf-mark{width:58px;height:auto;flex:none}
.uf-word{font-family:var(--f-display);font-weight:800;font-size:1.9rem;letter-spacing:.005em;line-height:1;white-space:nowrap}
.uf-word b{color:var(--uf-red);font-weight:800}
.uf-beta{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--uf-red);border:1.5px solid var(--uf-red);border-radius:5px;padding:2px 6px;align-self:center}
.uf-kick{display:block;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--uf-red);margin-bottom:6px}
.ufab .uf-btn{background:var(--uf-red);border-color:var(--uf-red);color:#fff}
.ufab .uf-btn:hover{background:var(--uf-ink);border-color:var(--uf-ink)}
@media (max-width:480px){.uf-word{font-size:1.5rem}.uf-mark{width:46px}}
/* round 10: U-Fab banner blends into the dark site; U-Fab red stays as the accent */
.ufab{background:radial-gradient(70% 160% at 0% 50%,rgba(255,30,42,.16),transparent 60%),linear-gradient(180deg,#1E1F23,#18191C);color:#fff;border:1px solid var(--line);border-left:3px solid var(--uf-red);box-shadow:none}
.ufab h3{color:#fff}.ufab p{color:var(--fog)}
.uf-logo{color:#fff}
.uf-mark{filter:drop-shadow(0 6px 14px rgba(255,30,42,.28))}
/* round 10: DMU 75 page */
.dm-stage{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;margin-top:clamp(28px,4vw,48px)}
.dm-model-box{position:relative;padding:clamp(14px,2.2vw,28px);background:radial-gradient(120% 90% at 60% 40%,#2B2C31,#141517 75%);border:1px solid var(--line);display:grid;gap:12px;align-content:start}
.dm-model-box .mca{max-width:none}
.dm-chips{display:flex;flex-wrap:wrap;gap:6px}
.dm-chips button{font:500 .7rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fog);background:#1A1B1E;border:1px solid var(--line);padding:9px 12px;cursor:pointer;transition:all .2s}
.dm-chips button:hover{color:#fff;border-color:var(--orange-lt)}
.dm-chips button[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:#fff}
.dm-say{color:var(--fog);font-size:.95rem;min-height:3em;margin:0;max-width:60ch}
.dm-video{position:relative;margin:0;border:1px solid var(--line);overflow:hidden;background:#111;min-height:260px}
.dm-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-video figcaption{position:absolute;left:12px;bottom:12px;font:500 .66rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);padding:7px 9px}
@media (max-width:900px){.dm-stage{grid-template-columns:1fr}.dm-video{min-height:0;aspect-ratio:16/9}}
.tl-rare .dm-stats{grid-template-columns:repeat(4,1fr)}
@media (max-width:760px){.tl-rare .dm-stats{grid-template-columns:1fr 1fr}}
.dm-vs{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:16px}
.dm-col{background:#fff;border:1px solid rgba(0,0,0,.1);padding:clamp(18px,2.4vw,28px);display:grid;gap:18px;align-content:start}
.dm-col header small{font:500 .68rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2,#555)}
.dm-col h3{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2rem,3.4vw,3rem);line-height:1;margin:6px 0 0}
.dm-five{background:var(--char);color:#fff;border-color:var(--char)}
.dm-five header small{color:var(--orange-lt)}
.dm-setups{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.dm-setups.one{grid-template-columns:1fr;max-width:220px}
.dm-setups li{display:grid;gap:6px;justify-items:center;text-align:center;padding:10px 6px;border:1px solid rgba(0,0,0,.1);background:#FAF8F3}
.dm-five .dm-setups li{background:#1A1B1E;border-color:var(--line)}
.dm-setups b{font:500 .62rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase}
.dm-setups span{font-size:.8rem;color:#666}.dm-five .dm-setups span{color:var(--fog)}
.dm-setups svg{width:100%;max-width:90px}
.dm-setups .face{fill:#E7E2D6;stroke:#8C877C;stroke-width:1.2}
.dm-five .dm-setups .face{fill:#2A2B30;stroke:#CFC8B8}
.dm-setups .cut{fill:var(--orange);stroke:#9C3409;stroke-width:1.2}
.dm-setups .hid{fill:rgba(232,81,18,.18);stroke:var(--orange);stroke-width:1.4;stroke-dasharray:3 3}
.js .reveal.pre .dm-setups li{opacity:0;transform:translateY(10px)}
.dm-setups li{transition:opacity .5s calc(var(--i,0)*.22s),transform .5s calc(var(--i,0)*.22s)}
.dm-stack{display:grid;gap:6px}
.dm-stack span{font:500 .64rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase}
.dm-stack i{display:block;height:10px;background:linear-gradient(90deg,#F2B48F,var(--orange));width:var(--w);transition:width 1.4s .9s cubic-bezier(.3,.6,.2,1)}
.dm-five .dm-stack i{background:linear-gradient(90deg,#4BC07A,#2E9E5B)}
.js .reveal.pre .dm-stack i{width:0}
.dm-stack em{font-style:normal;font-size:.8rem;color:#666}.dm-five .dm-stack em{color:var(--fog)}
.dm-meta{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.92rem}
.dm-meta b{font-family:var(--f-display);font-size:1.2rem;margin-right:4px;color:var(--orange)}
@media (max-width:900px){.dm-vs{grid-template-columns:1fr}.dm-setups.one{max-width:none;grid-template-columns:1fr 1fr}}
@media (max-width:560px){.dm-setups{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dm-inds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.dm-ind{background:var(--char);padding:22px;display:grid;gap:8px;align-content:start;transition:background .25s}
.dm-ind:hover{background:#26272B}
.dm-ind small{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;color:var(--orange-lt)}
.dm-ind b{font-family:var(--f-display);font-size:1.45rem;text-transform:uppercase;line-height:1.05}
.dm-ind span{color:#fff;font-size:.95rem}
.dm-ind em{font-style:normal;color:var(--fog);font-size:.88rem}
.dm-aero{grid-column:1/-1;background:linear-gradient(110deg,#1B1C20,#26201C);padding:clamp(22px,3vw,40px)}
.dm-aero b{font-size:clamp(1.8rem,3.4vw,2.8rem)}
.dm-aero-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(18px,3vw,48px);align-items:center}
.dm-aero-in p{color:var(--fog);max-width:62ch}
.dm-aero .draw{color:var(--orange-lt);background:#141517;border:1px solid var(--line);padding:16px}
@media (max-width:1000px){.dm-inds{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.dm-aero-in{grid-template-columns:1fr}}
@media (max-width:520px){.dm-inds{grid-template-columns:1fr}}
.dm-mats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dm-mat{background:#fff;border:1px solid rgba(0,0,0,.1);padding:14px;display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center}
.dm-mat i{grid-row:span 2;width:44px;height:44px;border-radius:50%;box-shadow:inset 0 -6px 10px rgba(0,0,0,.25),inset 0 4px 8px rgba(255,255,255,.5)}
.dm-mat b{font-family:var(--f-display);font-size:1.15rem;text-transform:uppercase}
.dm-mat span{font-size:.82rem;color:#666}
.sw-al{background:linear-gradient(135deg,#E9ECEF,#B9C0C7 50%,#DDE1E5)}.sw-ss{background:linear-gradient(135deg,#D4D7DA,#8E949A 50%,#C6CACE)}
.sw-st{background:linear-gradient(135deg,#8A8E92,#4C5156 55%,#7B7F84)}.sw-ts{background:linear-gradient(135deg,#6E7378,#2F3337 55%,#5E6368)}
.sw-ti{background:linear-gradient(135deg,#B9B3C8,#7C7590 50%,#C8B9A6)}.sw-br{background:linear-gradient(135deg,#F2D27A,#B08A2E 55%,#E3C062)}
.sw-cu{background:linear-gradient(135deg,#F3A77B,#B25A2B 55%,#E58E5E)}.sw-pl{background:linear-gradient(135deg,#FFFFFF,#E9E4D6 50%,#2B2B2B 51%,#4A4A4A)}
@media (max-width:900px){.dm-mats{grid-template-columns:1fr 1fr}}@media (max-width:420px){.dm-mats{grid-template-columns:1fr}}
.dm-op img{aspect-ratio:3/4;object-fit:cover}
.dm-steps{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:2px}
.dm-steps li{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.dm-steps b{font-family:var(--f-display);font-size:1.6rem;color:var(--orange-lt);line-height:1}
.dm-steps h3{font-family:var(--f-display);text-transform:uppercase;font-size:1.25rem;margin:0}
.dm-steps p{color:var(--fog);margin:4px 0 0}
.dm-caps{grid-template-columns:repeat(4,minmax(0,1fr))}
.dm-caps .tf h3{font-size:1.3rem}
@media (max-width:1100px){.dm-caps{grid-template-columns:1fr 1fr}}@media (max-width:560px){.dm-caps{grid-template-columns:1fr}}
.dm-op img{aspect-ratio:4/5;max-height:640px;width:100%}
/* round 10: compact service grid on home */
.sgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.sg{position:relative;display:block;color:#fff;text-decoration:none;overflow:hidden;border:1px solid var(--line);background:#141517}
.sg-ph{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.sg-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.3,.6,.2,1),opacity .45s}
.sg-ph .sg-real{opacity:0}
.sg:hover .sg-ph img,.sg:focus-visible .sg-ph img{transform:scale(1.06)}
.sg:hover .sg-real,.sg:focus-visible .sg-real{opacity:1}
.sg-t{position:absolute;inset:auto 0 0 0;padding:28px 12px 11px;background:linear-gradient(180deg,transparent,rgba(10,10,12,.88) 55%);display:grid;gap:3px}
.sg-t small{font:500 .6rem/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--orange-lt)}
.sg-t b{font-family:var(--f-display);font-weight:700;font-size:1.1rem;line-height:1.05;text-transform:uppercase}
.sg::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--orange);transition:width .35s}
.sg:hover::after{width:100%}
.js .reveal.pre.sg{opacity:0;transform:translateY(12px)}
.sg.reveal{transition:opacity .5s calc(var(--i,0)*.05s),transform .5s calc(var(--i,0)*.05s)}
@media (max-width:1000px){.sgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:620px){.sgrid{grid-template-columns:1fr 1fr;gap:8px}.sg-t b{font-size:.98rem}.sg-t{padding:22px 9px 9px}}
/* round 10: full project help band */
.pm-top{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(18px,4vw,64px);align-items:end;margin-bottom:clamp(22px,3vw,36px)}
.pm-top .lead{margin:0}
.pm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pm-c{background:#fff;border:1px solid rgba(0,0,0,.1);padding:18px;display:grid;gap:8px;align-content:start;transition:transform .25s,box-shadow .25s}
.pm-c:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(0,0,0,.35)}
.pm-c .draw{color:var(--orange);background:#FAF8F3;border:1px solid rgba(0,0,0,.07);padding:8px 6px}
.pm-c h3{font-family:var(--f-display);text-transform:uppercase;font-size:1.3rem;margin:4px 0 0;line-height:1.05}
.pm-c p{color:var(--ink-soft);font-size:.93rem;margin:0}
.pm-path{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid rgba(0,0,0,.12);background:#fff;counter-reset:pp}
.pm-path li{padding:12px 14px;display:grid;gap:2px;position:relative}
.pm-path li+li{border-left:1px solid rgba(0,0,0,.1)}
.pm-path li::before{counter-increment:pp;content:counter(pp,decimal-leading-zero);font:500 .62rem/1 var(--f-mono);color:var(--orange);letter-spacing:.1em}
.pm-path b{font-family:var(--f-display);text-transform:uppercase;font-size:1.05rem}
.pm-path span{font-size:.8rem;color:var(--ink-soft)}
@media (max-width:1000px){.pm-grid{grid-template-columns:1fr 1fr}.pm-top{grid-template-columns:1fr}}
@media (max-width:700px){.pm-path{grid-template-columns:1fr 1fr}.pm-path li{border-left:0!important;border-top:1px solid rgba(0,0,0,.1)}.pm-path li:nth-child(even){border-left:1px solid rgba(0,0,0,.1)!important}}
@media (max-width:480px){.pm-grid{grid-template-columns:1fr}}
/* round 10: compact quote form + foam designer card */
form.quote{gap:14px}
form.quote .row2{gap:12px}
form.quote .field{gap:5px}
form.quote input:not([type=checkbox]):not([type=file]),form.quote select{padding-top:10px;padding-bottom:10px}
form.quote textarea{min-height:0}
.mode-note{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:center;padding:16px;margin:0 0 4px;background:var(--char);color:#fff;border:1px solid var(--char);border-left:3px solid var(--orange)}
.mode-note[hidden]{display:none}
.fn-copy small{font:500 .62rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--orange-lt)}
.fn-copy b{display:block;font-family:var(--f-display);text-transform:uppercase;font-size:1.45rem;line-height:1.05;margin:6px 0}
.fn-copy p{color:var(--fog);font-size:.93rem;margin:0 0 12px}
.fn-copy .btns{align-items:center;gap:12px}
.fn-or{font-size:.82rem;color:var(--fog)}
.fa{width:100%;height:auto;display:block}
.fa-sheet{fill:#202124;stroke:#3A3B40}
.fa-cut{fill:none;stroke:var(--orange-lt);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:faCut 9s linear infinite}
.fa-cut.c2{animation-name:faCut2}.fa-cut.c3{animation-name:faCut3}.fa-cut.c4{animation-name:faCut4}
@keyframes faCut{0%{stroke-dashoffset:1;fill:transparent;opacity:1}20%{stroke-dashoffset:0;fill:transparent}24%,94%{stroke-dashoffset:0;fill:rgba(0,0,0,.55);opacity:1}100%{stroke-dashoffset:0;fill:rgba(0,0,0,.55);opacity:0}}
@keyframes faCut2{0%,22%{stroke-dashoffset:1;fill:transparent;opacity:1}42%{stroke-dashoffset:0;fill:transparent}46%,94%{stroke-dashoffset:0;fill:rgba(0,0,0,.55);opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes faCut3{0%,44%{stroke-dashoffset:1;fill:transparent;opacity:1}64%{stroke-dashoffset:0;fill:transparent}68%,94%{stroke-dashoffset:0;fill:rgba(0,0,0,.55);opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes faCut4{0%,66%{stroke-dashoffset:1;fill:transparent;opacity:1}86%{stroke-dashoffset:0;fill:transparent}90%,94%{stroke-dashoffset:0;fill:rgba(0,0,0,.55);opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.fa-bit circle{fill:#fff}.fa-bit .fa-glow{fill:none;stroke:var(--orange);stroke-width:1.5;opacity:.7}
@media (max-width:560px){.mode-note{grid-template-columns:1fr}.fn-art{max-width:220px}}
.ts-slot{margin:4px 0 12px}
.mode-note a.btn-red{color:#fff}.mode-note a.btn-red:hover{color:#fff}
/* 17 Oct: the 5-axis model machines its block (fx.js fiveAxis cycle) */
.mca .cut{fill:#2A2B30;stroke:#8E887C;stroke-width:.6}
.mca .cut.hole{fill:#141517;stroke:#6F6A60}
.mca .cutglow{fill:#FFB347;opacity:.85;filter:drop-shadow(0 0 5px #ff7a2b)}
.mca .chip{fill:#E9E2D2}
.fl-five{background:radial-gradient(110% 90% at 55% 45%,#2B2C31,#141517 75%);display:grid;place-items:center;padding:clamp(10px,2vw,22px)}
.fl-five .fl-model{max-width:520px;width:100%}
.mca .cut.pk{stroke:none}
.mca .pk-edge{fill:none;stroke:#8E887C;stroke-width:.8}
.cmp{position:relative;overflow:hidden;touch-action:pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none}
.cmp-real{position:absolute;inset:0;background:#17181B}
.cmp-real img,.cmp-real video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;-webkit-user-drag:none}
.cmp-shot{background:#fff}.cmp-shot img{inset:8% 6%;width:88%;height:84%;object-fit:contain}
.cmp-anim{position:relative;z-index:1;clip-path:inset(0 calc(100% - var(--x)) 0 0);background:radial-gradient(110% 90% at 50% 45%,#2B2C31,#141517 75%)}
.cmp-fill .cmp-anim{position:absolute;inset:0;padding:40px 12px 46px}
.cmp-fill .cmp-anim>svg{max-width:none;width:100%;height:100%}
.cmp-bar{position:absolute;z-index:2;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 0 18px rgba(232,81,18,.55);pointer-events:none}
.cmp-knob{position:absolute;z-index:3;top:50%;left:clamp(26px,var(--x),calc(100% - 26px));width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--orange);border:2px solid #fff;box-shadow:0 6px 18px rgba(0,0,0,.4);display:grid;place-items:center;cursor:ew-resize}
.cmp-knob i,.cmp-knob i::before{display:block;width:0;height:0;border:6px solid transparent}
.cmp-knob i{position:relative;border-right-color:#fff;margin-left:-14px}
.cmp-knob i::before{content:"";position:absolute;top:-6px;left:10px;border-left-color:#fff}
.cmp-knob:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.cmp:not(.touched) .cmp-knob{animation:cmpPulse 2.4s infinite}
@keyframes cmpPulse{0%,100%{box-shadow:0 6px 18px rgba(0,0,0,.4),0 0 0 0 rgba(232,81,18,.6)}50%{box-shadow:0 6px 18px rgba(0,0,0,.4),0 0 0 12px rgba(232,81,18,0)}}
.cmp-l,.cmp-r{position:absolute;z-index:2;bottom:12px;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(18,19,21,.8);border:1px solid var(--line);padding:6px 10px;border-radius:99px;pointer-events:none}
.cmp-l{left:12px}.cmp-r{right:12px}
.tl-stage.cmp{padding:0}.tl-stage .cmp-anim{padding:clamp(14px,2.5vw,32px)}
.mx-stage{border:1px solid var(--line)}.mx-stage .cmp-anim{display:grid;place-items:center;padding:clamp(28px,4vw,54px) 16px clamp(48px,5vw,64px);min-height:clamp(300px,38vw,520px)}
.mx-stage .mca{max-width:640px;width:100%}
.mx-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(20px,3vw,32px)}
.mx-nav a{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(0,0,0,.15);background:#fff;color:var(--ink-text);font-weight:600;text-decoration:none;transition:border-color .2s,color .2s}
.mx-nav a:hover{border-color:var(--orange);color:var(--orange)}
.mx-nav span{font-family:var(--f-mono);font-size:.7rem;color:var(--orange)}
.mx-nav em{font-style:normal;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;background:var(--orange);color:#fff;padding:2px 6px}
.mx .tl-eq{margin-top:clamp(28px,4vw,44px)}
.mx-jobs{margin-top:18px}.mx-jobs small{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.mx-jobs ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.mx-jobs li{font-size:.85rem;padding:5px 10px;border:1px solid var(--line);color:var(--text)}
.mx-strip figure{background:#17181B}
@media (max-width:700px){.cmp-fill.fl-fig{aspect-ratio:4/3}.cmp-fill .cmp-anim{padding:34px 4px 40px}.cmp-fill .tag{font-size:.6rem;padding:5px 8px;top:8px;left:8px}.cmp-knob{width:40px;height:40px;margin:-20px 0 0 -20px}.cmp-l,.cmp-r{bottom:8px;font-size:.56rem;padding:5px 8px}.cmp-l{left:8px}.cmp-r{right:8px}}
.tl-mini.cmp{padding:0;display:block}
.tl-mini .cmp-anim{position:absolute;inset:0;display:grid;place-items:end center;padding:4% 3%}
.cmp .soon-badge{z-index:4}
.cmp-shot img[src*="tube-laser-machine"]{inset:10% 3%;width:94%;height:80%}
.mx-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mx-duo figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line)}
.mx-anim{display:grid;place-items:center;padding:22px 18px 40px;background:radial-gradient(110% 90% at 50% 45%,#2B2C31,#141517 75%)}
.mx-anim .mca{max-width:none;width:100%;height:100%}
.mx-real img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mx-shot{background:#fff}.mx-shot img{inset:8%;width:84%;height:84%;object-fit:contain}
.mx-duo figcaption,.tube-eq-strip figcaption{position:absolute;left:12px;bottom:12px;z-index:2;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(18,19,21,.82);border:1px solid var(--line);padding:6px 10px;border-radius:99px}
.tube-eq-strip{grid-template-columns:repeat(3,1fr)}
.tm-photo{position:relative;margin:12px 0 0;background:#fff;border:1px solid var(--line)}
.tm-photo img{display:block;width:100%;height:auto;padding:2% 3% 5%}
.mx-duo figcaption,.tm-photo figcaption{position:absolute;left:12px;bottom:12px;z-index:2;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(18,19,21,.82);border:1px solid var(--line);padding:6px 10px;border-radius:99px}
@media (max-width:720px){.mx-duo{grid-template-columns:1fr}.tm-photo figcaption{position:static;display:inline-block;margin:0 0 10px 10px;font-size:.56rem}}
/* Equipment: machine video beside the copy (tube laser, DMU 75) */
.mx-vi{align-items:start}
.mx-vi-tall{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
.mx-vi .mach-copy>.spec{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--line);margin:28px 0 0}
.mx-vi .mach-copy>.spec div,.mx-side .spec div{padding:14px 0;border-bottom:1px solid var(--line)}
.mx-vi .spec dt{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}
.mx-vi .spec dd{margin:0;font-family:var(--f-display);font-size:1.3rem;font-weight:700;color:#fff}
.mx-side .spec{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin:16px 0 0}
.mx-vid{position:relative;margin:0;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);background:#000}
.mx-vid-tall{aspect-ratio:4/5}
.mx-vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mx-vid figcaption{position:absolute;left:12px;bottom:12px;z-index:2;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(18,19,21,.82);border:1px solid var(--line);padding:6px 10px;border-radius:99px}
@media (max-width:900px){.mx-vi-tall{grid-template-columns:1fr}.mx-vid-tall{max-width:420px}.mx-vi .mach-copy>.spec{grid-template-columns:1fr 1fr}}

/* "Show email" button (mail.js) */
.mail-show{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;text-align:left}
.mail-show:hover,.mail-show:focus-visible{color:var(--orange,#E85112)}
