/* Site styles. Animation and responsive rules are kept here. */

:root { --ink:#111111; --paper:#f6f3f1; --magenta:#d31361; --orange:#f16022; --red:#e6302e; --violet:#7b2b91; --muted:#696565; --header-h:86px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:var(--header-h); padding:0 4.5vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #c9c7bf; position:fixed; top:0; left:0; z-index:10; width:100%; background:var(--paper); }
.brand { display:flex; align-items:center; }
.brand-logo { display:block; width:auto; height:46px; }
.site-nav { display:flex; gap:32px; font-size:13px; font-weight:700; }
.site-nav a:hover { opacity:.55; }
.header-cta { font-weight:700; font-size:13px; display:flex; gap:18px; align-items:center; border-bottom:1px solid var(--ink); padding-bottom:5px; }
.hero { min-height:760px; padding:150px 4.5vw 38px; display:grid; grid-template-columns:57% 43%; position:relative; overflow:hidden; }
.hero-copy { z-index:2; align-self:center; }
.eyebrow { font-size:11px; text-transform:uppercase; letter-spacing:.22em; font-weight:800; margin:0 0 28px; }
.hero h1 { font-size:clamp(58px,7.7vw,118px); line-height:.85; letter-spacing:-.065em; margin:0; font-weight:800; }
h1 em, .contact h2 em { font-family:Georgia, serif; font-weight:400; }
.lead { max-width:510px; font-size:18px; line-height:1.6; color:#555a54; margin:40px 0 0; }
.hero-actions { display:flex; gap:12px; margin-top:32px; }
.button { min-height:54px; display:inline-flex; align-items:center; justify-content:space-between; gap:38px; padding:0 22px; font-size:13px; font-weight:800; }
.primary { background:var(--ink); color:white; }
.ghost { border:1px solid #aaa99f; }
.hero-visual { position:relative; min-height:500px; align-self:center; }
.die-shape { position:absolute; border:3px solid var(--ink); border-radius:28% 72% 49% 51% / 57% 34% 66% 43%; }
.shape-one { width:430px; height:430px; right:-10px; top:25px; transform:rotate(22deg); box-shadow:10px 10px 0 var(--orange), 19px 19px 0 var(--magenta), 28px 28px 0 var(--violet); }
.shape-two { width:210px; height:210px; right:105px; top:135px; border-color:var(--red); transform:rotate(-18deg); }
.hero-label { position:absolute; right:82px; top:195px; z-index:3; display:flex; flex-direction:column; transform:rotate(-8deg); }
.hero-label span { font-family:Georgia,serif; font-style:italic; font-size:28px; }
.hero-label strong { font-size:38px; text-transform:uppercase; }
.hero-meta { position:absolute; left:4.5vw; right:4.5vw; bottom:28px; border-top:1px solid #c9c7bf; padding-top:18px; display:flex; justify-content:space-between; color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:10px; }
.section { padding:120px 4.5vw; display:grid; grid-template-columns:34% 66%; gap:7vw; }
.section-heading h2, .technology h2, .contact h2 { font-size:clamp(42px,5vw,76px); line-height:.98; letter-spacing:-.045em; margin:0; }
.section-heading > p:last-of-type { max-width:370px; color:var(--muted); line-height:1.65; margin-top:30px; }
.service-list { border-top:1px solid #aaa99f; }
.service-row { display:grid; grid-template-columns:50px 1fr 1.25fr 38px; gap:20px; align-items:center; min-height:142px; border-bottom:1px solid #aaa99f; }
.service-no { font-size:11px; color:var(--muted); }
.service-row h3 { font-size:24px; letter-spacing:-.03em; }
.service-row p { color:var(--muted); line-height:1.55; font-size:14px; }
.round-arrow { width:36px; height:36px; border:1px solid #aaa99f; border-radius:50%; display:grid; place-items:center; }
.technology { background:var(--ink); color:white; padding:120px 4.5vw 90px; }
.light { color:#ff8252; }
.tech-intro { display:grid; grid-template-columns:1fr 2fr 1fr; gap:5vw; align-items:start; }
.tech-intro > p:last-child { color:#aeb2aa; line-height:1.7; margin:4px 0; }
.tech-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#3a3e38; margin-top:80px; }
.tech-grid article { background:var(--ink); min-height:290px; padding:34px; }
.tech-grid article > span { color:#ff8252; font-size:56px; font-weight:800; letter-spacing:-.05em; }
.tech-grid h3 { font-size:22px; margin-top:70px; }
.tech-grid p { color:#aeb2aa; line-height:1.6; font-size:14px; }
.products { align-items:start; }
.sticky-heading { position:sticky; top:calc(var(--header-h) + 40px); }
.text-link { display:inline-flex; gap:20px; margin-top:38px; border-bottom:1px solid; padding-bottom:5px; font-weight:800; font-size:13px; }
.product-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.product-card { min-height:245px; padding:25px; position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; background:#dfddd5; }
.product-card:before { content:""; position:absolute; width:170px; height:170px; border:22px solid rgba(21,25,21,.1); border-radius:36% 64% 57% 43%; right:-30px; bottom:-35px; transform:rotate(23deg); }
.product-card span { font-size:10px; }
.product-card h3 { max-width:240px; font-size:25px; line-height:1.05; letter-spacing:-.035em; margin:0; z-index:1; }
.product-card > :last-child { align-self:flex-end; }
.card-1,.card-6 { background:#f36a2f; }.card-2 { background:#e7dfe6; }.card-3,.card-8 { background:#df315d; color:white; }.card-4 { background:#8b4099; color:white; }.card-5 { background:#f4ad31; }.card-7 { background:#ef4a36; color:white; }.card-9 { background:#eedfd8; }
.contact { padding:100px 4.5vw; background:linear-gradient(125deg,#7b2b91 0%,#d31361 56%,#f16022 100%); color:white; display:grid; grid-template-columns:1.35fr 1fr; gap:10vw; }
.contact h2 { font-size:clamp(55px,7vw,104px); }
.contact-panel { border-top:1px solid rgba(255,255,255,.5); padding-top:25px; display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
.contact-panel p { color:#c9ccf5; line-height:1.65; max-width:480px; }
.contact-mail { font-size:clamp(20px,2.4vw,34px); font-weight:700; letter-spacing:-.03em; border-bottom:1px solid; padding-bottom:5px; }
.lime { background:white; color:var(--ink); margin-top:12px; }
footer { padding:34px 4.5vw; background:var(--ink); color:#aeb2aa; display:flex; align-items:center; justify-content:space-between; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
footer .brand-logo { height:40px; }
@media (max-width:900px) {
  .header-cta { gap:8px; }.hero { grid-template-columns:1fr; padding-top:140px; }.hero-visual { min-height:390px; }.shape-one { width:330px; height:330px; right:7vw; }.shape-two { right:25vw; }.hero-label { right:21vw; top:165px; }
  .section { grid-template-columns:1fr; }.tech-intro { grid-template-columns:1fr; }.service-row { grid-template-columns:40px minmax(0,1fr) 38px; grid-template-areas:"no title arrow" ". text text"; gap:10px 16px; min-height:0; padding:26px 0; }.service-no { grid-area:no; }.service-row h3 { grid-area:title; margin:0; }.service-row p { grid-area:text; margin:0; }.service-row .round-arrow { grid-area:arrow; }
  .contact { grid-template-columns:1fr; }.sticky-heading { position:static; }
}
@media (max-width:600px) {
  .site-header { padding:0 20px; }.brand-logo { height:36px; }.header-cta { font-size:11px; }.hero { padding:130px 20px 30px; min-height:790px; }.hero h1 { font-size:56px; }.lead { font-size:16px; }.hero-actions { flex-direction:column; align-items:stretch; }.button { width:100%; }.hero-visual { min-height:300px; }.shape-one { width:250px; height:250px; right:12px; }.shape-two { width:130px; height:130px; right:75px; top:90px; }.hero-label { right:55px; top:115px; }.hero-label span { font-size:20px; }.hero-label strong { font-size:27px; }.hero-meta { left:20px; right:20px; }
  .section,.technology,.contact { padding:80px 20px; }.service-row { padding:22px 0; }.service-row h3 { font-size:clamp(18px,5.6vw,22px); }.tech-grid { grid-template-columns:1fr; }.tech-grid article { min-height:230px; }.tech-grid h3 { margin-top:38px; }.product-grid { grid-template-columns:1fr; }.product-card { min-height:200px; }.contact-mail { overflow-wrap:anywhere; } footer { padding:32px 20px; flex-direction:column; gap:24px; align-items:flex-start; }
}

.support-banner { background:#fff; padding:16px 0; }
.support-banner img { display:block; width:100%; height:auto; max-width:1366px; margin:0 auto; }

.die-animation { width:100%; max-width:620px; position:relative; margin:auto; }
.die-animation svg { display:block; width:100%; height:auto; overflow:visible; }
.die-slots path { stroke-dasharray:1; stroke-dashoffset:1; animation:die-cut 10s linear infinite; }
.die-blades { animation:die-insert 10s cubic-bezier(.35,0,.2,1) infinite; }
.die-laser { animation:die-laser 10s linear infinite; }
.die-stages { position:absolute; bottom:0; width:100%; height:20px; text-align:center; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#696565; }
.die-stage { position:absolute; inset:0; opacity:0; }
.laser-stage { animation:stage-cut 10s linear infinite; }
.insert-stage { animation:stage-insert 10s linear infinite; }
.ready-stage { animation:stage-ready 10s linear infinite; }
@keyframes die-cut {
  0%,8% { stroke-dashoffset:1; opacity:1; }
  42%,92% { stroke-dashoffset:0; opacity:1; }
  100% { stroke-dashoffset:0; opacity:0; }
}
@keyframes die-insert {
  0%,42% { transform:translateY(-150px); opacity:0; }
  46% { transform:translateY(-150px); opacity:1; }
  66%,92% { transform:translateY(0); opacity:1; }
  100% { transform:translateY(0); opacity:0; }
}
@keyframes die-laser {
  0%,8% { transform:translate(0,0); opacity:0; }
  9% { transform:translate(0,0); opacity:1; }
  24% { transform:translate(345px,0); opacity:1; }
  25% { transform:translate(345px,0); opacity:0; }
  26% { transform:translate(0,104px); opacity:0; }
  27% { transform:translate(0,104px); opacity:1; }
  41% { transform:translate(345px,104px); opacity:1; }
  42%,100% { transform:translate(345px,104px); opacity:0; }
}
@keyframes stage-cut { 0%,41% { opacity:1; } 42%,100% { opacity:0; } }
@keyframes stage-insert { 0%,42% { opacity:0; } 43%,65% { opacity:1; } 66%,100% { opacity:0; } }
@keyframes stage-ready { 0%,65% { opacity:0; } 66%,92% { opacity:1; } 100% { opacity:0; } }
@media (max-width:900px) { .die-animation { max-width:520px; } }
@media (max-width:600px) { .die-animation { max-width:380px; } .die-stages { font-size:8px; } }
@media (prefers-reduced-motion:reduce) {
  .die-slots path { animation:none; stroke-dashoffset:0; }
  .die-blades { animation:none; transform:none; opacity:1; }
  .die-laser,.laser-stage,.insert-stage { animation:none; opacity:0; }
  .ready-stage { animation:none; opacity:1; }
}

.products { grid-template-columns:minmax(0, .34fr) minmax(0, .66fr); }
.product-grid { min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.flip-product { --card-bg:#ed6a2d; --card-ink:#171717; display:block; position:relative; width:100%; height:410px; color:var(--card-ink); perspective:1200px; }
.flip-toggle { position:absolute; inset:0; z-index:2; width:100%; height:100%; margin:0; padding:0; border:0; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.flip-toggle:focus-visible { outline:3px solid var(--ink); outline-offset:5px; }
.flip-product-inner { display:block; width:100%; height:100%; position:relative; transform-style:preserve-3d; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.flip-product.is-flipped .flip-product-inner { transform:rotateY(180deg); }
.product-face { display:flex; position:absolute; inset:0; flex-direction:column; padding:24px; background:var(--card-bg); backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:hidden; }
.product-front { transform:rotateY(0deg); }
.product-back { transform:rotateY(180deg); }
.product-topline { display:flex; align-items:center; justify-content:space-between; font-size:11px; letter-spacing:.07em; font-weight:700; }
.flip-hint { font-size:9px; text-transform:uppercase; letter-spacing:.1em; opacity:.65; }
.product-art { display:flex; align-items:center; justify-content:center; flex:1; min-height:0; margin:10px -12px 14px; }
.product-art svg { display:block; width:100%; max-height:245px; }
.product-title { display:block; font-size:clamp(21px,2.15vw,30px); font-weight:700; line-height:1.08; letter-spacing:-.035em; }
.product-back .product-title { margin:27px 0 20px; font-size:25px; }
.product-details { display:flex; flex-direction:column; gap:11px; font-size:15px; line-height:1.4; }
.product-details { margin:0; padding:0; list-style:none; }
.product-details > li { display:block; padding-left:15px; position:relative; }
.product-details > li:before { content:'–'; position:absolute; left:0; }
.product-description { display:block; font-size:19px; line-height:1.55; }
.product-back-note { margin-top:auto; padding-top:20px; text-transform:uppercase; font-size:9px; letter-spacing:.13em; opacity:.6; }
.product-box { --card-bg:#e1e0dc; }
.product-laser { --card-bg:#d95671; }
.product-plan { --card-bg:#a99ac7; }
.product-gift { --card-bg:#ecd0b9; }
.product-tray { --card-bg:#edb94e; }
.gift-product-photo { display:block; width:100%; height:100%; object-fit:contain; }
.product-laser-head { animation:product-laser-scan 3.5s ease-in-out infinite alternate; }
.laser-spark { animation:product-laser-spark .25s ease-in-out infinite alternate; }
@keyframes product-laser-scan { from { transform:translateX(-27px); } to { transform:translateX(20px); } }
@keyframes product-laser-spark { from { opacity:.45; } to { opacity:1; } }
@media (max-width:1100px) { .product-face { padding:19px; } .product-back .product-title { font-size:23px; } .product-details { font-size:14px; gap:10px; } }
@media (max-width:900px) { .products { grid-template-columns:1fr; } .product-title { font-size:28px; } }
@media (max-width:600px) { .product-grid { grid-template-columns:1fr; } .flip-product { height:410px; } .product-face { padding:25px; } .product-back .product-title { font-size:27px; } .product-details { font-size:16px; } }
@media (prefers-reduced-motion:reduce) { .flip-product-inner { transition:none; } .product-laser-head,.laser-spark { animation:none; } }

.hero h1 .hero-h1-kicker { display:block; font-family:Arial,Helvetica,sans-serif; font-size:11px; line-height:1.5; letter-spacing:.22em; font-weight:800; margin:0 0 28px; }
.services,.detail-intro,.detail-faq { grid-template-columns:minmax(0,.34fr) minmax(0,.66fr); }
.service-row h3 a:hover,.detail-copy a:hover { text-decoration:underline; }
.site-nav { gap:22px; }
.detail-hero h1 { font-size:clamp(45px,5.8vw,88px); }
.detail-copy { color:var(--muted); font-size:17px; line-height:1.75; min-width:0; }
.detail-copy p { margin:0 0 24px; }
.detail-copy a { color:var(--ink); border-bottom:1px solid; }
.manufacturing-steps { list-style:none; padding:0; margin:65px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 32px; }
.manufacturing-steps li { border-top:1px solid #555; padding-top:24px; }
.step-number { color:#ff8252; font-size:12px; font-weight:700; }
.manufacturing-steps h3 { font-size:25px; margin:25px 0 16px; }
.manufacturing-steps p { color:#bfc0bd; font-size:15px; line-height:1.7; }
.faq-list details { border-top:1px solid #aaa99f; padding:24px 0; }
.faq-list details:last-child { border-bottom:1px solid #aaa99f; }
.faq-list summary { font-size:19px; font-weight:700; cursor:pointer; line-height:1.4; }
.faq-list p { color:var(--muted); font-size:16px; line-height:1.7; margin-bottom:0; }
footer a:hover { color:white; }
@media (max-width:1100px) { .site-nav { gap:13px; font-size:12px; } }
@media (max-width:900px) { .services,.detail-intro,.detail-faq { grid-template-columns:1fr; } .manufacturing-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } .detail-hero h1 { font-size:clamp(45px,8.5vw,75px); } }
@media (max-width:600px) { .manufacturing-steps { grid-template-columns:1fr; gap:25px; } .detail-hero h1 { font-size:clamp(35px,9.5vw,56px); } .hero h1 .hero-h1-kicker { font-size:9px; max-width:270px; } }
.gift-product-photo { width:100%; height:auto; max-height:245px; object-fit:contain; }

/* Mobile navigation: hamburger toggle and left-side drawer. */
.nav-toggle,.nav-contact { display:none; }
.site-nav a[aria-current="page"] { color:var(--magenta); }
@media (max-width:900px) {
  .nav-toggle { display:inline-flex; position:relative; z-index:3; width:44px; height:44px; margin:0 8px 0 -10px; align-items:center; justify-content:center; background:none; color:var(--ink); cursor:pointer; }
  .nav-toggle:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
  .nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after { display:block; width:22px; height:2px; background:currentColor; transition:transform .3s ease, background-color .3s ease; }
  .nav-toggle-bars { position:relative; }
  .nav-toggle-bars:before,.nav-toggle-bars:after { content:""; position:absolute; left:0; }
  .nav-toggle-bars:before { top:-7px; }
  .nav-toggle-bars:after { top:7px; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars { background-color:transparent; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars:before { transform:translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars:after { transform:translateY(-7px) rotate(-45deg); }
  .brand { margin-right:auto; }
  .site-nav { position:fixed; top:0; bottom:0; left:0; z-index:2; width:min(84vw,340px); display:flex; flex-direction:column; gap:0; padding:96px 28px 32px; overflow-y:auto; background:var(--paper); font-size:24px; font-weight:800; letter-spacing:-.03em; transform:translateX(-100%); visibility:hidden; transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, visibility 0s linear .35s; }
  .site-nav > a { padding:16px 0; border-bottom:1px solid #c9c7bf; }
  .site-nav > a:first-child { border-top:1px solid #c9c7bf; }
  .nav-contact { display:flex; flex-direction:column; gap:12px; margin-top:auto; padding-top:36px; font-size:14px; font-weight:700; letter-spacing:0; color:var(--muted); }
  .nav-backdrop { position:fixed; inset:0; z-index:1; background:rgba(17,17,17,.45); opacity:0; visibility:hidden; transition:opacity .35s ease, visibility 0s linear .35s; }
  .nav-open, .nav-open body { overflow:hidden; }
  .nav-open .site-nav { transform:none; visibility:visible; box-shadow:6px 0 0 var(--orange), 12px 0 0 var(--magenta), 18px 0 0 var(--violet); transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, visibility 0s; }
  .nav-open .nav-backdrop { opacity:1; visibility:visible; transition:opacity .35s ease, visibility 0s; }
}
@media (max-width:380px) { .header-cta { display:none; } }
@media (prefers-reduced-motion:reduce) { .site-nav,.nav-backdrop,.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after { transition:none !important; } }

/* Small-phone fixes: let grid tracks shrink and scale long headline words with the viewport. */
@media (max-width:900px) { .hero,.contact,.section,.services,.detail-intro,.detail-faq,.products { grid-template-columns:minmax(0,1fr); } }
@media (max-width:600px) { .section-heading h2,.technology h2 { font-size:clamp(34px,11vw,42px); } .hero h1 { font-size:clamp(36px,13.5vw,56px); } .detail-hero h1 { font-size:clamp(30px,9.5vw,56px); } .contact h2 { font-size:clamp(38px,12.5vw,55px); } }

/* Location: address, copy-to-clipboard, and a click-to-load Google map (no third-party request until asked). */
.location { padding:110px 4.5vw; display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,.66fr); gap:7vw; align-items:center; }
.location h2 { font-size:clamp(42px,5vw,76px); line-height:.98; letter-spacing:-.045em; margin:0; }
.location-address { margin:34px 0 26px; font-style:normal; font-size:clamp(20px,2vw,28px); font-weight:700; line-height:1.35; letter-spacing:-.025em; }
.location-actions { display:flex; flex-wrap:wrap; gap:12px; }
.copy-button { gap:12px; justify-content:flex-start; cursor:pointer; }
.copy-button:hover { border-color:currentColor; }
.copy-button:focus-visible,.map-load:focus-visible { outline:3px solid currentColor; outline-offset:3px; }
.copy-button svg { width:17px; height:17px; flex:none; }
.copy-button .icon-check,.copy-button.is-copied .icon-copy { display:none; }
.copy-button.is-copied .icon-check { display:block; }
.contact-address { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
.contact-address address { font-style:normal; }
.contact .copy-button { min-height:44px; padding:0 16px; border-color:rgba(255,255,255,.55); font-size:12px; }
.map-embed { position:relative; min-height:440px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; padding:32px; overflow:hidden; text-align:center; color:white; background-color:var(--ink); background-image:linear-gradient(#262626 1px,transparent 1px),linear-gradient(90deg,#262626 1px,transparent 1px); background-size:36px 36px; }
.map-embed.is-loaded { padding:0; background:#e5e3df; }
.map-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.map-pin { width:54px; height:54px; color:var(--orange); }
.map-load { cursor:pointer; }
.map-note { max-width:340px; margin:0; color:#aeb2aa; font-size:12px; line-height:1.6; }
@media (max-width:900px) { .location { grid-template-columns:minmax(0,1fr); gap:44px; } }
@media (max-width:600px) { .location { padding:80px 20px; } .location h2 { font-size:clamp(34px,11vw,42px); } .map-embed { min-height:360px; margin:0 -20px; } .location-actions > * { width:100%; } }

/* Production steps: a timeline joined by a dashed "die-cut" line; horizontal on desktop, vertical below 900px. */
.process-steps { list-style:none; margin:88px 0 0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0 22px; }
.process-steps li { position:relative; display:flex; flex-direction:column; }
.process-steps li:before { content:""; position:absolute; top:22px; left:56px; right:-10px; height:1px; background:repeating-linear-gradient(90deg,#6b6f68 0 6px,transparent 6px 12px); }
.process-steps li:last-child:before { display:none; }
.process-no { width:44px; height:44px; flex:none; display:grid; place-items:center; border:1px solid #555a52; border-radius:50%; color:#ff8252; font-size:12px; font-weight:800; letter-spacing:.04em; transition:border-color .25s ease, background-color .25s ease, color .25s ease; }
.process-steps li:hover .process-no { border-color:#ff8252; }
.process-steps li:last-child .process-no { background:#ff8252; border-color:#ff8252; color:var(--ink); }
.process-name { margin-top:24px; font-size:17px; font-weight:700; line-height:1.25; letter-spacing:-.02em; }
.process-desc { margin-top:10px; color:#aeb2aa; font-size:13px; line-height:1.6; }
.technology > .text-link { margin-top:64px; }
@media (max-width:1100px) { .process-steps { gap:0 16px; } .process-name { font-size:15px; } .process-desc { font-size:12px; } }
@media (max-width:900px) {
  .process-steps { grid-template-columns:minmax(0,1fr); max-width:560px; margin-top:64px; }
  .process-steps li { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:20px; padding-bottom:30px; }
  .process-steps li:last-child { padding-bottom:0; }
  .process-steps li:before { top:54px; bottom:10px; left:22px; right:auto; width:1px; height:auto; background:repeating-linear-gradient(180deg,#6b6f68 0 6px,transparent 6px 12px); }
  .process-no { grid-row:1 / span 2; }
  .process-name { margin-top:11px; font-size:18px; }
  .process-desc { margin-top:6px; font-size:14px; }
  .technology > .text-link { margin-top:48px; }
}
@media (prefers-reduced-motion:reduce) { .process-no { transition:none; } }

/* Single-column hero: keep the meta line in flow so it sits below the die animation instead of overlapping it. */
@media (max-width:900px) { .hero { min-height:0; } .hero-meta { position:static; margin-top:36px; flex-wrap:wrap; gap:6px 16px; } }
