:root{--ink:#111610;--paper:#edf0e8;--acid:#bdf54b;--blue:#81c9ff;--muted:#a6afa0}body{background:var(--paper);color:var(--ink)}.utility{background:var(--ink);color:#c8d0c3}.utility a{color:var(--blue)}header{background:var(--paper);border-color:#d2d8cb;height:100px}nav{font-size:12px;gap:25px}nav .nav-cta{background:var(--ink);border-color:var(--ink);color:var(--paper)}.brand-name{color:#147db6}.brand-name small{color:var(--ink)}h1,h2,h3{font-family:ISSA,Arial,sans-serif}em{font-family:Georgia,serif}.button{background:var(--ink);color:var(--paper);border-radius:4px;padding:17px 24px}.button:hover{background:#28546b;color:#fff}.closing{background:var(--acid);color:var(--ink);border-radius:36px 36px 0 0;padding-top:85px}.closing .button{background:var(--ink);color:var(--paper)}.closing .eyebrow{color:#344323}.closing h2{font-size:clamp(40px,5.5vw,80px);max-width:1000px;letter-spacing:-3px}footer{background:var(--ink);color:var(--paper)}.cream{background:#e0e5d9}.dark{background:var(--ink)}.product-image{border-radius:14px}.page-intro h1{font-weight:700}.page-intro h1 em{color:#29628d}.detail h1{font-weight:700}.detail-image{border-radius:20px;background:#e0e5d9}.add.button{background:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink)}form{border-radius:16px}.toast{background:var(--ink);color:var(--paper)}.xhero{min-height:calc(100svh - 135px);background:var(--ink);color:var(--paper);padding:30px 5% 22px;position:relative;isolation:isolate;overflow:hidden}.xhero:after{content:'';position:absolute;width:60vw;height:60vw;right:-20vw;top:-15vw;background:radial-gradient(ellipse,#80caff17,transparent 65%);z-index:-1}.hero-meta{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px;line-height:1.5}.hero-meta>span:last-child{text-align:right}.xhero h1{font-size:clamp(70px,14vw,220px);line-height:.85;letter-spacing:-.09em;font-weight:900;margin:58px 0 45px;position:relative;z-index:2;max-width:1300px}.xhero h1>span{color:var(--blue);display:block;padding-bottom:.08em}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px}.hero-bottom p{font-size:14px;line-height:1.8;max-width:600px;margin-bottom:0;color:#bfc9b7}.round-link{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--acid);color:var(--ink);font-size:32px;flex-shrink:0;transition:transform .3s}.round-link:hover{transform:rotate(-30deg)}.hero-status{border-top:1px solid #66715c66;display:flex;align-items:center;justify-content:space-between;margin-top:45px;padding-top:18px;font-size:9px;letter-spacing:1px}.hero-status b{display:inline-block;width:7px;height:7px;background:var(--acid);border-radius:50%;margin-right:6px}.hero-status button{background:transparent;color:var(--paper);border:1px solid #697260;border-radius:20px;font-size:10px;padding:7px 12px}.ink-path{position:absolute;right:6%;top:9%;width:50%;height:75%;transform:rotate(-28deg);z-index:-1}.ink-path i{width:80px;height:80px;border:1px solid #80caff55;border-radius:50%;position:absolute;left:50%;top:0;animation:hero-drop 8s linear infinite}.ink-path i:nth-child(2){animation-delay:-1s}.ink-path i:nth-child(3){animation-delay:-2s}.ink-path i:nth-child(4){animation-delay:-3s}.ink-path i:nth-child(5){animation-delay:-4s}.ink-path i:nth-child(6){animation-delay:-5s}.ink-path i:nth-child(7){animation-delay:-6s}.ink-path i:nth-child(8){animation-delay:-7s}.xmarquee{background:var(--blue);overflow:hidden;padding:22px 0;font-size:clamp(20px,3vw,40px);font-weight:700;letter-spacing:-1px}.xmarquee div{width:max-content;animation:xmarquee 50s linear infinite}.xintro{padding:110px 7%;display:grid;grid-template-columns:1.6fr 1fr;gap:50px}.kicker{font-size:10px;letter-spacing:1.5px;font-weight:600;display:block}.xintro>.kicker{grid-column:1/-1}.xintro h2{font-size:clamp(45px,6vw,86px);font-weight:700;line-height:1.02;letter-spacing:-4px}.xintro h2 em{font-weight:400;color:#2b678c}.xintro>p{align-self:end;font-size:18px;line-height:1.8;max-width:430px;margin-bottom:40px}.tech-lab{padding:85px 5%;background:var(--ink);color:var(--paper);border-radius:36px}.lab-heading h2{font-size:clamp(38px,5.8vw,82px);font-weight:700;line-height:1;letter-spacing:-3.5px;margin-top:30px}.lab-heading em{color:var(--acid)}.lab-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:7%;margin-top:55px}.tech-tabs{display:flex;border-bottom:1px solid #5c6652;margin-bottom:30px}.tech-tabs button{flex:1;text-align:left;background:transparent;color:#a3ae96;border:0;border-bottom:3px solid transparent;padding:12px 5px;font-size:clamp(27px,3vw,42px);font-weight:700;position:relative}.tech-tabs button span{font-size:9px;vertical-align:top;padding-left:8px;font-weight:400}.tech-tabs button[aria-selected=true]{color:var(--acid);border-bottom-color:var(--acid)}.tech-tabs button:hover{color:white}#tech-panel h3{font-size:30px;max-width:400px;letter-spacing:-1px}#tech-panel p:not(.tech-label){max-width:470px;font-size:15px;color:#c1cbb9;line-height:1.8;min-height:108px}.tech-label{font-size:9px;letter-spacing:1.5px;color:var(--blue)}#tech-panel .button{background:var(--acid);color:var(--ink)}.lab-note{font-size:10px;line-height:1.8;color:#a5b19c;max-width:440px;margin:25px 0 0}.print-stage{background:var(--blue);color:var(--ink);border-radius:20px;min-height:440px;display:flex;flex-direction:column;overflow:hidden;position:relative;transform:perspective(1000px) rotateY(var(--tilt-x,0deg)) rotateX(var(--tilt-y,0deg));transition:transform .25s}.stage-top,.stage-bottom{display:flex;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:1px;padding:22px}.stage-bottom{margin-top:auto;font-size:11px}.stage-bottom>span:last-child{font-size:25px}.stage-graphic{flex:1;position:relative;min-height:330px;background-image:linear-gradient(#1116100a 1px,transparent 1px),linear-gradient(90deg,#1116100a 1px,transparent 1px);background-size:25px 25px}.sample-pack{position:absolute;left:17%;bottom:45px;background:#eef0e7;width:65%;padding:30px 25px 22px;box-shadow:12px 12px 0 #11161022;transform:rotate(-3deg)}.sample-pack>span{font-size:8px;letter-spacing:2px}.sample-pack strong{font:clamp(14px,1.7vw,24px)/1.5 monospace;display:block;margin:15px 0;white-space:nowrap}.mini-bars{width:80px;height:25px;background:repeating-linear-gradient(90deg,#111610 0 2px,transparent 2px 4px,#111610 4px 5px,transparent 5px 8px)}.conveyor{position:absolute;bottom:15px;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,#11161055 0 20px,transparent 20px 24px);animation:belt 3s linear infinite}.nozzle{position:absolute;top:10px;left:20%;width:80px;height:45px;background:#151a12;clip-path:polygon(0 0,100% 0,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%)}.ink-stream{position:absolute;top:55px;left:calc(20% + 35px);height:95px;z-index:3}.ink-stream i{display:block;position:absolute;width:5px;height:5px;background:#111610;border-radius:50%;animation:drop .9s linear infinite}.ink-stream i:nth-child(2){animation-delay:-.12s}.ink-stream i:nth-child(3){animation-delay:-.24s}.ink-stream i:nth-child(4){animation-delay:-.36s}.ink-stream i:nth-child(5){animation-delay:-.48s}.ink-stream i:nth-child(6){animation-delay:-.6s}.ink-stream i:nth-child(7){animation-delay:-.72s}.thermal-head,.ribbon{display:none}.scan-beam{height:2px;width:65%;left:17%;background:#2789b6;position:absolute;top:35%;box-shadow:0 0 20px #2789b6;animation:scan 4s ease-in-out infinite;opacity:.6}.print-stage[data-mode=tij]{background:#d6edaa}.print-stage[data-mode=tij] .nozzle,.print-stage[data-mode=tij] .ink-stream{display:none}.print-stage[data-mode=tij] .thermal-head{position:absolute;display:flex;top:20px;left:17%;width:65%;height:45px;background:#111610;justify-content:space-around;align-items:end;padding-bottom:8px}.thermal-head i{width:7px;height:7px;background:var(--acid);border-radius:50%;animation:pixel 1.8s steps(2) infinite}.thermal-head i:nth-child(even){animation-delay:-.9s}.print-stage[data-mode=tto]{background:#cfbdea}.print-stage[data-mode=tto] .nozzle,.print-stage[data-mode=tto] .ink-stream{display:none}.print-stage[data-mode=tto] .ribbon{display:block;position:absolute;top:5px;left:15%;width:70%;height:55px;background:linear-gradient(90deg,#111610,#454b3e,#111610);border:8px solid #111610;border-radius:25px}.print-stage[data-mode=tto] .ribbon:after{content:'';position:absolute;width:45%;left:28%;top:100%;height:35px;background:#111610;animation:press 2s ease-in-out infinite}.equipment-section{padding:100px 5%;overflow:hidden}.equipment-heading h2,.beyond h2{font-size:clamp(40px,6.5vw,92px);line-height:1;letter-spacing:-4px;font-weight:700;margin-top:30px}.equipment-heading .text-link{display:inline-block;margin:0 0 50px}.equipment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:0 0 60px}.machine-card{background:#dce2d4;border-radius:20px;padding:22px;transition:transform .4s}.machine-card:nth-child(2){margin-top:65px;margin-bottom:-65px;background:#d2e7f6}.machine-card:nth-child(3){margin-top:130px;margin-bottom:-130px;background:#e0d6ec}.machine-number{font-size:10px;letter-spacing:2px}.machine-photo{background:#fff;border-radius:10px;aspect-ratio:1/1;margin:25px 0;display:flex;align-items:center;justify-content:center;overflow:hidden}.machine-photo img{width:85%;height:85%;object-fit:contain;transition:transform .5s}.smart-photo{background:#307e4e}.smart-photo img{width:100%;height:100%;object-fit:contain}.machine-card:hover .machine-photo img{transform:scale(1.06)}.machine-card>div:not(.machine-photo){display:flex;justify-content:space-between;align-items:end}.machine-card h3{font-size:34px;font-weight:700;letter-spacing:-1.5px;margin-bottom:0}.card-arrow{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:white}.machine-card p{font-size:12px;line-height:1.8;margin:25px 0 0}.service-impact{background:var(--blue);padding:85px 5%;margin-top:110px;border-radius:36px}.service-impact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:8%;margin-top:35px}.service-impact h2{font-size:clamp(40px,6vw,88px);line-height:.98;font-weight:700;letter-spacing:-4px}.service-impact p{font-size:18px;line-height:1.8;max-width:460px}.service-impact ul{list-style:none;padding:20px 0 0}.service-impact li{padding:18px 0;border-bottom:1px solid #11161044;font-size:13px}.service-impact li span{font-size:9px;margin-right:25px}.beyond{padding:110px 7%}.beyond>p{font-size:18px;max-width:590px}.reveal{opacity:1}.effects-ready .reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.effects-ready .reveal.visible{opacity:1;transform:none}.effects-paused *{animation-play-state:paused!important}.effects-paused .print-stage{transform:none}.effects-paused .reveal{opacity:1;transform:none}a:focus-visible,button:focus-visible{outline-color:#1a6faf}.tech-lab a:focus-visible,.tech-lab button:focus-visible,.xhero a:focus-visible,.xhero button:focus-visible{outline-color:var(--acid)}@keyframes hero-drop{0%{transform:translateY(-100px) scale(.2);opacity:0}20%{opacity:1}100%{transform:translateY(650px) scale(2);opacity:0}}@keyframes xmarquee{to{transform:translateX(-50%)}}@keyframes drop{to{transform:translate(35px,100px)}}@keyframes belt{to{background-position:96px}}@keyframes scan{50%{top:78%}}@keyframes pixel{50%{opacity:.2}}@keyframes press{50%{transform:translateY(12px)}}
@media(max-width:900px){nav{top:100px}.lab-layout{gap:4%}.xintro{padding:75px 5%;gap:30px}.equipment-grid{gap:15px}.machine-card{padding:15px}.machine-card h3{font-size:27px}.xhero{min-height:650px}.xhero h1{margin-top:80px}.service-impact-grid{gap:5%}}
@media(max-width:650px){.xhero{min-height:650px;padding:25px 6%}.xhero h1{font-size:clamp(62px,16vw,104px);letter-spacing:-.08em;margin:95px 0 55px;line-height:.95}.hero-bottom{align-items:end}.hero-bottom p{font-size:12px;max-width:230px}.round-link{width:50px;height:50px;font-size:25px}.hero-status{gap:10px;font-size:8px;margin-top:60px}.hero-meta{font-size:8px}.ink-path{width:80%;right:5%;top:5%}.xintro{display:block;padding:65px 6%}.xintro h2{font-size:48px;letter-spacing:-2.5px;margin-top:35px}.xintro>p{font-size:16px;margin-bottom:0}.tech-lab{padding:60px 6%;border-radius:24px}.lab-heading h2{font-size:37px;letter-spacing:-2px}.lab-layout{grid-template-columns:1fr;gap:35px;margin-top:25px}.tech-tabs button{font-size:34px}.print-stage{min-height:410px}.sample-pack strong{font-size:18px}.equipment-section{padding:65px 6%}.equipment-heading h2,.beyond h2{font-size:42px;letter-spacing:-2.5px}.equipment-grid{grid-template-columns:1fr;gap:25px;padding-bottom:0}.machine-card,.machine-card:nth-child(2),.machine-card:nth-child(3){margin:0;padding:22px}.machine-card h3{font-size:36px}.machine-photo{aspect-ratio:1.25/1}.service-impact{margin-top:0;padding:60px 6%;border-radius:24px}.service-impact-grid{grid-template-columns:1fr;gap:20px}.service-impact h2{font-size:52px;letter-spacing:-3px}.service-impact p{font-size:16px}.beyond{padding:65px 6%}.beyond>p{font-size:16px}.closing{border-radius:24px 24px 0 0}.closing h2{font-size:38px;letter-spacing:-2px}.lab-note{font-size:10px}.stage-top{font-size:8px}.xmarquee{padding:18px 0}.ink-path i{width:40px;height:40px}.hero-status button{font-size:9px}.service-impact li{font-size:12px}}
@media(prefers-reduced-motion:reduce){.effects-ready .reveal{opacity:1;transform:none}.print-stage{transform:none!important}*{animation:none!important;transition:none!important}}

/* The reveal edge and print cursor use one timeline and the same local frame. */
.print-output{position:relative;margin:18px 0 2px;width:100%;padding:4px 0;isolation:isolate}
.print-ink{width:100%;animation:code-reveal 5s linear infinite;clip-path:inset(0 100% 0 0)}
.dot-code{display:none;width:100%;height:auto;fill:#111610;overflow:visible}
.print-stage[data-mode=cij] .dot-code{display:block}
.print-stage[data-mode=cij] .solid-code{display:none}
.print-output .solid-code{font-size:clamp(12px,1.55vw,22px);line-height:1.6;margin:0;letter-spacing:0;white-space:nowrap}
.print-cursor{position:absolute;left:0;top:0;bottom:0;width:2px;background:#1577aa;box-shadow:0 0 12px #1577aa88;animation:code-cursor 5s linear infinite;pointer-events:none}
.print-stage[data-mode=tij] .print-cursor{background:#57820b;box-shadow:0 0 12px #57820b66}
.print-stage[data-mode=tto] .print-cursor{background:#6b3690;box-shadow:0 0 12px #6b369066}
@keyframes code-reveal{0%,8%{clip-path:inset(0 100% 0 0)}72%,99.99%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 100% 0 0)}}
@keyframes code-cursor{0%,8%{left:0;opacity:1}72%{left:100%;opacity:1}73%,100%{left:100%;opacity:0}}
.effects-paused .print-ink{animation:none;clip-path:inset(0)}
.effects-paused .print-cursor{display:none}
@media(max-width:650px){.print-output .solid-code{font-size:clamp(12px,3.7vw,19px)}}
@media(prefers-reduced-motion:reduce){.print-ink{animation:none;clip-path:inset(0)}.print-cursor{display:none}}

/* User-supplied CIJ print reference: preserve the exact dot/barcode artwork. */
.print-stage[data-mode=cij]{min-height:490px}
.print-stage[data-mode=cij] .stage-graphic{min-height:380px}
.print-stage[data-mode=cij] .sample-pack{left:14%;width:72%;padding:16px 18px;background:#f0f0f0}
.print-stage[data-mode=cij] .print-output{margin:4px 0 0;padding:0}
.print-stage[data-mode=cij] img.cij-reference{width:100%;height:auto;max-height:245px;object-fit:contain;vertical-align:middle;mix-blend-mode:multiply}
@media(max-width:650px){.print-stage[data-mode=cij]{min-height:450px}.print-stage[data-mode=cij] .stage-graphic{min-height:330px}.print-stage[data-mode=cij] .sample-pack{left:10%;width:80%;padding:12px}.print-stage[data-mode=cij] img.cij-reference{max-height:215px}}

.cij-date-code{display:none;fill:#111610;width:74%;height:auto;margin:12px auto 0;overflow:visible}
.print-stage[data-mode=cij] .cij-date-code{display:block}
.print-stage[data-mode=cij]{min-height:540px}
.print-stage[data-mode=cij] .stage-graphic{min-height:430px}
@media(max-width:650px){.print-stage[data-mode=cij]{min-height:500px}.print-stage[data-mode=cij] .stage-graphic{min-height:380px}.cij-date-code{margin-top:8px}}

/* TTO uses a single synchronized press rather than a scanning reveal. */
.tto-stamp{display:none}
.print-stage[data-mode=tto] .print-cursor,.print-stage[data-mode=tto] .ribbon:after{display:none}
.print-stage[data-mode=tto] .print-ink{clip-path:inset(0);animation:tto-imprint 5s linear infinite;opacity:0}
.print-stage[data-mode=tto] .tto-stamp{display:block;position:absolute;top:-6px;left:-5px;width:calc(100% + 10px);height:calc(100% + 12px);border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#35382f 0%,#151a12 75%,#656758 76%,#25291f 90%);border-bottom:5px solid #111610;box-shadow:0 8px 12px #11161025;z-index:5;transform:translateY(-110px);animation:tto-strike 5s cubic-bezier(.45,0,.3,1) infinite}
.print-stage[data-mode=tto] .tto-stamp:before{content:'';position:absolute;left:40%;width:20%;height:48px;bottom:100%;background:linear-gradient(90deg,#24291d,#7a7d70,#24291d)}
@keyframes tto-strike{0%,18%{transform:translateY(-110px)}38%,46%{transform:translateY(0)}68%,100%{transform:translateY(-110px)}}
@keyframes tto-imprint{0%,37.99%{opacity:0}38%,99.99%{opacity:1}100%{opacity:0}}
.effects-paused .print-stage[data-mode=tto] .print-ink{animation:none;opacity:1;clip-path:inset(0)}
.effects-paused .print-stage[data-mode=tto] .tto-stamp{animation:none;transform:translateY(-110px)}
@media(prefers-reduced-motion:reduce){.print-stage[data-mode=tto] .print-ink{animation:none;opacity:1;clip-path:inset(0)}.print-stage[data-mode=tto] .tto-stamp{animation:none;transform:translateY(-110px)}}
