.uvj-section{padding:88px 0;background:#f8f7f1;overflow:hidden;scroll-margin-top:90px}.uvj-layout{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1.25fr);gap:64px;align-items:start}.uvj-eyebrow{font:600 10px/1.6 'IBM Plex Mono',monospace;letter-spacing:.16em;color:#809074;margin-bottom:18px}.uvj-story h2{font:400 clamp(34px,3.8vw,49px)/1.14 Fraunces,"Microsoft YaHei",Georgia,serif;letter-spacing:-.035em;color:#243f33;margin:0 0 23px;text-wrap:balance}.uvj-story h2 em{font-weight:400;font-style:italic;color:#a36c49}.uvj-intro{font-size:13px;line-height:1.85;color:#7d8975;max-width:350px;margin-bottom:28px}.uvj-tabs{border-top:1px solid #dce3d3}.uvj-tabs>button{display:flex;width:100%;gap:17px;align-items:flex-start;text-align:left;padding:21px 0;color:#86927b;border:0;border-bottom:1px solid #dce3d3;background:transparent;cursor:pointer;transition:color .2s}.uvj-tabs>button:hover{color:#304e3a}.uvj-tabs>button.is-active{color:#254433}.uvj-step-id{font:12px/1.8 'IBM Plex Mono',monospace;flex-shrink:0;margin-top:2px}.is-active>.uvj-step-id{color:#b47b4f}.uvj-tab-copy{flex:1;min-width:0}.uvj-tab-copy strong{font:400 22px/1.4 Fraunces,"Microsoft YaHei",Georgia,serif;letter-spacing:-.02em;display:block}.uvj-tab-copy>span{display:block;font-size:12px;line-height:1.85;color:#7c8971;margin-top:9px;animation:uvj-reveal .25s ease-out}.uvj-tab-arrow{font:20px/1.5 Georgia,serif;color:#8ba17a}.uvj-enquire{display:inline-block;margin-top:25px;color:#a06946;font-size:11px;font-weight:600;text-decoration:none}.uvj-enquire:hover{text-decoration:underline}.uvj-stage-wrap{padding-top:10px;min-width:0}.uvj-stage{position:relative;border:1px solid #2e5142;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 68% 40%,#244e3c,#15392e 48%,#102d25);box-shadow:0 26px 50px #254a311a}.uvj-svg{width:100%;aspect-ratio:8/5;overflow:hidden}.uvj-svg svg{width:100%;height:100%;font-family:Manrope,"Microsoft YaHei",Arial,sans-serif;display:block;animation:uvj-reveal .3s ease-out}.uvj-controls{padding:17px 24px;border-top:1px solid #395645;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b2b226b;min-height:70px;flex-wrap:wrap}.uvj-control-label{font:8px/1.6 'IBM Plex Mono',monospace;letter-spacing:.14em;color:#829c78}.uvj-controls button{border:1px solid #52724f;border-radius:6px;background:#254b38;color:#d7e7c9;padding:8px 12px;font-size:10px;cursor:pointer;min-height:35px;transition:background .2s}.uvj-controls button:hover{background:#3b5f44}.uvj-swatches{display:flex;align-items:center;gap:9px}.uvj-swatches>span{color:#a6bb99;font-size:10px;margin-right:6px}.uvj-swatches button{width:25px;height:25px;min-height:0;border-radius:50%;padding:0;background:var(--swatch);border:3px solid #214630;box-shadow:0 0 0 1px #496640}.uvj-swatches button.selected{box-shadow:0 0 0 2px #e4e9d3}.uvj-qc-options{display:flex;gap:6px}.uvj-qc-options button.selected{background:#d8e4c9;color:#284b35}.uvj-caption{padding:22px 6px 0}.uvj-caption>div{display:flex;gap:16px;align-items:flex-start}.uvj-caption-step{font:12px/1.8 'IBM Plex Mono',monospace;color:#b07d51}.uvj-caption>div>p{margin:0;font-size:12px;line-height:1.9;color:#73846a;max-width:580px}.uvj-disclaimer{font:8px/1.8 'IBM Plex Mono',monospace;letter-spacing:.05em;color:#9aa28e;margin:15px 0 0 32px}.uvj-step-navigation{display:flex;align-items:center;justify-content:space-between;padding:18px 0 0;margin:16px 6px 0;border-top:1px solid #dce4d2}.uvj-step-navigation>span{font:9px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:#829177}.uvj-step-navigation>button{background:none;border:0;color:#5c7650;padding:9px 0;font-size:10px;font-weight:500;cursor:pointer}.uvj-step-navigation>button:disabled{opacity:.3;cursor:default}.uvj-tabs button:focus-visible,.uvj-controls button:focus-visible,.uvj-step-navigation button:focus-visible,.uvj-stage:focus-visible,.uvj-enquire:focus-visible{outline:3px solid #c6976a;outline-offset:4px}.uvj-flow{animation:uvj-flow 2.6s linear infinite}.uvj-art-file{animation:uvj-art-float 5s ease-in-out infinite}.uvj-printhead{animation:uvj-printpass 3.6s ease-in-out infinite}.uvj-cure{animation:uvj-light 3.6s ease-in-out infinite}.uvj-stage.is-paused *{animation-play-state:paused!important}@keyframes uvj-flow{to{stroke-dashoffset:-72}}@keyframes uvj-art-float{0%,100%{opacity:1}50%{opacity:.93}}@keyframes uvj-printpass{0%,100%{transform:translateX(-10px)}50%{transform:translateX(14px)}}@keyframes uvj-light{0%,100%{opacity:.35}50%{opacity:1}}@keyframes uvj-reveal{from{opacity:.4}to{opacity:1}}
@media(min-width:1280px){.uvj-stage-wrap{position:sticky;top:104px}}
@media(max-width:1023px){.uvj-layout{gap:34px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.uvj-story h2{font-size:36px}.uvj-tab-copy strong{font-size:19px}.uvj-tabs>button{gap:12px;padding:18px 0}.uvj-controls{padding:14px 16px}.uvj-control-label{display:none}}
@media(max-width:700px){.uvj-section{padding:45px 0}.uvj-layout{display:flex;flex-direction:column;gap:27px}.uvj-story,.uvj-stage-wrap{width:100%}.uvj-story h2{font-size:36px;margin-bottom:18px}.uvj-intro{max-width:100%;font-size:12px;margin-bottom:24px}.uvj-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:0}.uvj-tabs>button{border:1px solid #dbe3d0;padding:13px 12px;background:#eff2e7;border-radius:9px;gap:9px;min-height:69px}.uvj-tabs>button.is-active{background:#e4ecd8;border-color:#a7bb94}.uvj-tab-copy strong{font-size:15px;line-height:1.5;font-family:Manrope,"Microsoft YaHei",Arial,sans-serif}.uvj-tab-copy>span{display:none}.uvj-step-id{font-size:10px}.uvj-tab-arrow{display:none}.uvj-enquire{margin-top:20px}.uvj-stage-wrap{padding-top:0}.uvj-stage{border-radius:12px}.uvj-controls{min-height:62px;padding:12px 15px;justify-content:center}.uvj-controls button{min-height:40px;font-size:10px}.uvj-swatches button{min-height:0;width:27px;height:27px}.uvj-swatches>span{font-size:10px}.uvj-svg{aspect-ratio:8/5}.uvj-caption{padding-top:17px}.uvj-caption>div{gap:12px}.uvj-caption>div>p{font-size:11px}.uvj-disclaimer{font-size:8px;margin-left:26px}.uvj-step-navigation{margin-top:14px}.uvj-step-navigation button{min-height:44px}.uvj-qc-options{gap:10px}}
@media(prefers-reduced-motion:reduce){.uvj-section *{animation:none!important;transition:none!important}.uvj-cure{opacity:.65}}

@media(min-width:701px){.uvj-controls{justify-content:flex-start;gap:24px}.uvj-control-label{margin-right:12px}}
