.scene-mute{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);cursor:pointer;display:grid;place-items:center}.scene-mute svg{width:20px;height:20px}.scene-mute[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.process-gallery{margin:16px 0 52px}.process-track{display:flex;overflow-x:auto;gap:28px;padding:42px 28px 20px;scroll-snap-type:x mandatory;scrollbar-width:thin}.process-card{flex:0 0 290px;scroll-snap-align:center;border:0;background:none;color:var(--ink);font:inherit;cursor:pointer;text-align:center;padding:0 8px 20px;transition:transform .35s}.process-card:hover{transform:translateY(-9px)}.process-card img{display:block;width:100%;height:auto;aspect-ratio:720/560;object-fit:contain;margin:18px 0 24px;transition:transform .4s}.process-card:hover img{transform:rotate(-2deg) scale(1.035)}.process-card b{display:block;font-size:16px;font-weight:500}.process-card span:not(.process-kind){display:block;font-size:13px;color:var(--mute);margin:5px 0}.process-card small{display:block;font-size:11px;color:var(--mute);margin-top:12px}.process-kind{font-size:11px;color:var(--mute)}.process-hint{font-size:12px;color:var(--mute);text-align:center;margin:24px 0}.process-card:focus-visible,.process-dialog button:focus-visible,.scene-mute:focus-visible{outline:2px solid #328b81;outline-offset:6px}
.process-dialog{--process-bg:#fff;--process-ink:#161b20;--process-muted:#777e83;--process-line:#e9ecea;box-sizing:border-box;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;margin:0;background:var(--process-bg);color:var(--process-ink);font:14px/1.5 Arial,sans-serif;z-index:200;overflow-y:auto}.process-dialog::backdrop{background:#fff}.process-dialog:not([open]){display:none}.process-dialog.process-dark{--process-bg:#181d20;--process-ink:#f1f3f2;--process-muted:#a5adaf;--process-line:#343b3e}.process-dialog *{box-sizing:border-box}.process-toolbar{position:sticky;top:0;z-index:4;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--process-bg)}.process-toolbar span{font-size:12px;color:var(--process-muted)}.process-dialog button{font:inherit;color:inherit;cursor:pointer}.process-toolbar button,.process-controls button{border:0;border-radius:24px;background:var(--process-line);padding:9px 15px;font-size:12px}.process-content{max-width:1360px;margin:auto}.process-stage{position:relative;width:min(840px,100%);height:clamp(310px,47vh,490px);margin:auto;touch-action:pan-y}.process-stage canvas{width:100%;height:100%;display:block;touch-action:none}.process-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.process-poster[hidden]{display:none}.process-labels{position:absolute;inset:0;pointer-events:none}.process-labels button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid #d5dcda;background:#fff;color:#40514b;width:28px;height:28px;border-radius:50%;font-size:12px;box-shadow:0 3px 8px #17251b18}.process-labels button.active{background:var(--process-accent);color:#fff;border-color:var(--process-accent)}.process-loading{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:12px;color:var(--process-muted)}.process-copy{text-align:center;padding:0 24px 20px;max-width:850px;margin:auto}.process-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--process-muted);margin:4px 0 10px}.process-copy h2{font-size:clamp(24px,3vw,36px);font-weight:500;letter-spacing:-.035em;margin:0}.process-sub{margin:5px 0 20px;color:var(--process-muted);font-size:14px}.process-controls{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.process-steps{display:flex;justify-content:center;gap:12px;margin:26px 0 16px;overflow:auto}.process-step{flex:1;max-width:160px;border:0;border-bottom:2px solid var(--process-line);background:none;padding:6px 6px 12px;font-size:12px!important;white-space:nowrap}.process-step small{display:block;color:var(--process-muted);font-size:10px;letter-spacing:.08em;margin-bottom:5px}.process-step[aria-pressed=true]{border-color:var(--process-accent);color:var(--process-accent)}.process-explanation{min-height:84px;max-width:660px;margin:auto}.process-explanation b{font-size:15px;font-weight:500}.process-explanation p{font-size:13px;color:var(--process-muted);margin:7px 0 20px}.process-outcome{display:flex;justify-content:center;gap:40px;margin:20px auto;max-width:660px}.process-outcome span{flex:1;font-size:11px;color:var(--process-muted);max-width:280px}.process-outcome b{display:block;font-size:22px;color:var(--process-ink);font-weight:500;margin-bottom:5px}.process-study{display:inline-block;font-size:13px;color:var(--process-accent);text-underline-offset:4px}.process-study[hidden]{display:none}.process-foot{font-size:10px;color:var(--process-muted);margin-top:24px}.process-projects{display:flex;overflow:auto;gap:12px;padding:24px;border-top:1px solid var(--process-line);scrollbar-width:thin}.process-projects button{flex-shrink:0;border:0;background:none;font-size:12px;padding:8px;color:var(--process-muted)}.process-projects button[aria-current=true]{color:var(--process-accent);border-bottom:1px solid currentColor}
@media(max-width:600px){.process-track{gap:4px;padding:28px 8px 10px}.process-card{flex-basis:78vw}.process-toolbar{padding:12px;gap:6px}.process-toolbar span{display:none}.process-stage{height:290px}.process-copy{padding:0 16px 12px}.process-steps{gap:6px;justify-content:flex-start}.process-step{flex:0 0 100px}.process-outcome{gap:20px}.process-dialog .process-copy h2{font-size:25px}.process-projects{padding:16px}.process-labels button{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.process-card,.process-card img{transition:none}.process-card:hover,.process-card:hover img{transform:none}}

.process-study{max-width:660px;margin:auto;text-decoration:none}.process-study summary{cursor:pointer;text-decoration:underline}.process-study div{text-align:left;color:var(--process-muted);font-size:13px;padding:12px 0;}

.process-card-gains{display:flex!important;justify-content:center;gap:14px;margin-top:16px!important}.process-card-gains span{padding:8px 10px;border-top:1px solid var(--line)}.process-card-gains strong{font-size:17px;font-weight:600;color:var(--ink)}
.process-tool{display:block;width:28px;height:28px;margin:0 auto 8px;color:var(--process-accent)}.process-tool svg{width:100%;height:100%}.process-steps{justify-content:flex-start;gap:8px}.process-step{min-width:96px;white-space:normal;flex:1;font-size:11px!important}.process-step[aria-pressed=true]{background:color-mix(in srgb,var(--process-accent) 8%,transparent);border-radius:8px 8px 0 0}
.process-labels button{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;transition:opacity .2s,box-shadow .2s;opacity:.55}.process-labels button svg{width:24px;height:24px}.process-labels button span{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:var(--process-bg);color:var(--process-ink);border:1px solid var(--process-line);border-radius:8px;padding:5px 9px;white-space:nowrap;font-size:11px}.process-labels button.active{opacity:1;background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--process-accent) 23%,transparent)}.process-labels button.active span,.process-labels button:hover span,.process-labels button:focus-visible span{display:block}.process-labels button.done{opacity:.85}
.process-outcome{max-width:800px;gap:16px;margin:25px auto 18px}.process-outcome span{max-width:none;border:1px solid var(--process-line);border-radius:16px;padding:20px;text-align:left;font-size:12px;background:color-mix(in srgb,var(--process-accent) 5%,var(--process-bg))}.process-outcome small{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:10px;margin-bottom:10px;color:var(--process-accent)}.process-outcome b{font-size:clamp(26px,3.1vw,42px);letter-spacing:-.035em;line-height:1.1;margin-bottom:12px;font-weight:600}
@media(max-width:600px){.process-labels button{width:24px;height:28px;border-radius:7px}.process-labels button svg{width:19px;height:19px}.process-outcome{flex-direction:column;gap:10px}.process-outcome span{padding:17px}.process-outcome b{font-size:32px}.process-step{flex:0 0 98px}.process-labels button.active{z-index:2}}

.process-track{overflow:visible;padding:42px 28px 20px;width:max-content;scroll-snap-type:none}.process-card{flex:none;width:290px;cursor:inherit}.process-card img{pointer-events:none}.process-gallery.is-drag .process-card{transform:none}.process-card{transition:transform .4s var(--spring)}@media(max-width:600px){.process-card{width:78vw}.process-track{padding:28px 8px 10px}}

.process-labels button.active{color:var(--process-accent)}.process-stage{height:clamp(280px,39vh,370px)}.process-outcome{margin:16px auto 20px}.process-outcome span{padding:15px 18px}.process-outcome b{font-size:clamp(27px,3vw,39px);margin-bottom:8px}.process-outcome small{margin-bottom:7px}@media(max-width:600px){.process-stage{height:240px}.process-outcome span{padding:14px 16px}.process-outcome b{font-size:30px}}

.process-labels button.active svg,.process-step[aria-pressed="true"] .process-tool svg{animation:tool-transformation 2.3s ease-in-out infinite;transform-origin:50% 70%}
.process-dialog[data-playing="false"] .process-labels svg,.process-dialog[data-playing="false"] .process-tool svg{animation-play-state:paused}
@keyframes tool-transformation{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(-3px) scale(1.08)}50%{transform:translateY(2px) scale(.92,1.02)}72%{transform:translateY(-1px) scale(1.05)}}
@media(prefers-reduced-motion:reduce){.process-labels button.active svg,.process-step[aria-pressed="true"] .process-tool svg{animation:none}}

.process-labels button[hidden]{display:none}

.process-operation{color:var(--process-accent);font-size:13px;margin:2px 0 16px}.process-operation:empty{display:none}

.process-gallery{position:relative}.workshop-previews{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.process-card[data-live=true] img{transition:none}.process-card[data-live=true]:hover{transform:translateY(-9px)}
.pc-img{position:relative;overflow:hidden}

/* Process tools occupy a separate band, never the 3D scene. */
.process-transform{display:grid;grid-template-columns:50px 44px 50px minmax(0,1fr);gap:18px;align-items:center;max-width:760px;padding:14px 24px;margin:0 auto 20px;border-block:1px solid var(--process-line);color:var(--process-accent);text-align:left}.process-transform span{display:grid;place-items:center;height:42px}.process-transform svg{width:32px;height:32px}.process-transform b{font-size:13px;font-weight:500;color:var(--process-ink)}.transform-input{animation:material-in 4.6s infinite}.transform-machine svg{animation:tool-transformation 1.15s infinite}.transform-output{animation:material-out 4.6s infinite}.process-dialog[data-playing=false] .process-transform *{animation-play-state:paused}.process-stage{width:min(1020px,100%);height:clamp(350px,49vh,490px)}.process-stage canvas{contain:strict}.process-gallery{contain:layout paint}.process-dialog .process-loading{position:absolute;inset:auto 0 12px;text-align:center}
@keyframes material-in{0%,100%{transform:translateX(-10px);opacity:.3}35%{transform:translateX(15px) scale(.85);opacity:1}60%,85%{transform:translateX(24px) scale(.3);opacity:0}}
@keyframes material-out{0%,35%{transform:translateX(-24px) scale(.3);opacity:0}65%,90%{transform:none;opacity:1}100%{opacity:.4}}
@media(max-width:600px){.process-stage{height:300px}.process-transform{padding:12px 16px;gap:8px;grid-template-columns:38px 32px 38px minmax(0,1fr)}.process-transform svg{width:26px;height:26px}.process-transform b{font-size:12px}}
@media(prefers-reduced-motion:reduce){.process-transform *{animation:none!important}}

/* Larger workshops and contextual gains, with the active action outside the scene. */
.process-card{width:clamp(360px,32vw,460px)}
.process-content{max-width:1500px}.process-stage{width:min(1280px,100%);height:clamp(460px,68vh,720px)}
.process-card-gains{align-items:stretch;gap:10px}.process-card-gains>span{flex:1;min-width:0;text-align:left;background:color-mix(in srgb,var(--ink) 3%,transparent);border-radius:10px;padding:12px}
.process-card-gains em{display:block;font:normal 10px/1.4 Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}.process-card-gains strong{display:block;line-height:1.25;font-size:19px}.process-card-gains i{display:block;font:normal 11px/1.5 Arial,sans-serif;margin-top:7px}
.process-card-action{font-size:12px!important;color:var(--ink)!important;padding:9px 12px;border-radius:20px;background:color-mix(in srgb,var(--ink) 5%,transparent);width:fit-content;margin:12px auto!important;position:relative;z-index:2}
.process-card-action:empty{display:none}.process-outcome{flex-wrap:wrap}.process-gain-basis{flex:0 0 100%;text-align:left;font-size:11px;color:var(--process-muted);line-height:1.6;margin:0}
@media(max-width:600px){.process-card{width:min(88vw,420px)}.process-stage{height:clamp(330px,55vh,520px)}.process-card-gains strong{font-size:17px}.process-gain-basis{flex:auto}.process-toolbar{position:sticky}}

.room-camera{position:absolute;top:76px;left:16px;z-index:5;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:12px Arial,sans-serif;border-radius:24px;padding:9px 13px;cursor:pointer}.room-camera:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.room-navigation{position:absolute;top:120px;left:16px;z-index:5;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:24px;background:var(--bg);color:var(--ink)}
.room-navigation button{display:flex;align-items:center;gap:6px;min-height:36px;padding:8px 12px;border:0;border-radius:20px;background:transparent;color:inherit;font:12px Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.room-navigation svg{width:18px;height:18px}.room-navigation button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}.room-navigation :focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:600px){.room-navigation{left:8px}.room-navigation button{min-height:40px;padding:8px}}

.room-zoom{position:absolute;right:16px;top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;border:1px solid var(--line);border-radius:24px;background:var(--bg);color:var(--ink);font:11px Arial,sans-serif;box-shadow:0 4px 16px #0002;pointer-events:auto}
.room-zoom button{width:36px;min-height:36px;display:grid;place-items:center;background:transparent;border:0;border-radius:50%;color:inherit;cursor:pointer;font:22px Arial,sans-serif;touch-action:manipulation}
.room-zoom button:hover{background:var(--line)}.room-zoom .room-zoom-reset{font-size:11px}.room-zoom input{writing-mode:vertical-lr;direction:rtl;width:36px;height:150px;accent-color:var(--ink);cursor:ns-resize;touch-action:none}.room-zoom output{min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.room-zoom-label{font-size:10px}.room-zoom :focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:600px){.room-zoom{right:8px;padding:4px;gap:0}.room-zoom input{height:120px}.room-zoom button{width:32px;min-height:32px}.room-camera{left:8px}}

.process-consultation-gain{display:block;font-size:12px;line-height:1.5;margin-top:10px;color:var(--ink);}.process-outcome>span{min-width:0;overflow-wrap:anywhere;}

.process-outcome>span{flex:0 0 calc(50% - 8px);box-sizing:border-box;}@media(max-width:600px){.process-outcome>span{flex-basis:auto;width:100%;}}

/* Les ateliers restent fixes ; seules les machines et les véhicules bougent. */
.process-gallery .process-card,.process-gallery .process-card:hover,.process-gallery .process-card[data-live=true]:hover,.process-gallery .process-card img,.process-gallery .process-card:hover img{transform:none;transition:none}
.process-card-action{height:35px;min-height:35px;line-height:17px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.process-card-action:empty{display:block;visibility:hidden}
.workshop-previews{image-rendering:auto}

/* La tirelire reste dans le flux de la page, indépendante du carrousel. */
.pro-gains-heading{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,620px);gap:8px 32px;align-items:center}.pro-gains-heading>h2{grid-column:1;grid-row:1}.pro-gains-heading>p{grid-column:1;grid-row:2;align-self:start}.annual-gains{--pig-fill:#e1eae1;grid-column:2;grid-row:1/3;display:grid;grid-template-columns:90px 1fr;gap:8px 20px;text-align:left;color:var(--ink);padding:20px 24px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.annual-pig{width:90px;height:80px;align-self:center;color:#408c76}.annual-values{display:grid;gap:5px;min-width:0}.annual-kicker{font-size:11px;color:var(--mute)}.annual-values strong{font-size:clamp(23px,2.5vw,33px);font-weight:600;letter-spacing:-.035em;line-height:1.15}.annual-values b{font-size:19px;font-weight:500}.annual-values small{font-size:11px;color:var(--mute)}.annual-breakdown{grid-column:1/-1;font-size:12px}.annual-breakdown summary{cursor:pointer;padding:9px 0;color:var(--ink);text-underline-offset:3px}.annual-breakdown summary:focus-visible{outline:2px solid #408c76;outline-offset:4px}.annual-breakdown p{font-size:12px;line-height:1.55;color:var(--mute);margin:10px 0}.annual-table-wrap{overflow-x:auto}.annual-breakdown table{width:100%;border-collapse:collapse;font-size:11px}.annual-breakdown caption{text-align:left;padding:10px 0;font-weight:600}.annual-breakdown th,.annual-breakdown td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.annual-breakdown tbody th{font-weight:500}.annual-breakdown th small{display:block;font-size:10px;font-weight:400;color:var(--mute);line-height:1.5;margin-top:4px}.annual-breakdown td{white-space:nowrap;font-variant-numeric:tabular-nums}body.dark .annual-gains{--pig-fill:#233d34}@media(max-width:800px){.pro-gains-heading{display:block}.annual-gains{margin-top:20px;max-width:620px}}@media(max-width:440px){.annual-gains{padding:16px;grid-template-columns:62px 1fr;gap:8px 12px}.annual-pig{width:62px;height:62px}.annual-values strong{font-size:24px}.annual-values b{font-size:17px}}

.annual-pig-wrap{position:relative;width:90px;height:96px;align-self:center}.annual-pig-wrap .annual-pig{position:absolute;bottom:0;left:0}.annual-coins{position:absolute;inset:0;width:90px;height:80px;overflow:visible}.pig-coin{opacity:0;animation:coin-into-pig 3s linear infinite;animation-play-state:paused;transform-origin:53px 8px}.pig-visible .pig-coin{animation-play-state:running}.pig-coin circle{fill:#e6b95a;stroke:#9a711f;stroke-width:1.5}.pig-coin path{fill:none;stroke:#9a711f;stroke-width:1.2}.coin-two{animation-delay:1s}.coin-three{animation-delay:2s}@keyframes coin-into-pig{0%{opacity:0;transform:translateY(-16px) scaleX(1)}8%{opacity:1}25%{opacity:1;transform:translateY(19px) scaleX(.3)}33%,100%{opacity:0;transform:translateY(29px) scaleX(1)}}.annual-calendar{grid-column:1/-1;display:grid;gap:5px;padding:14px 0;border-top:1px solid var(--line)}.annual-calendar>span{font-size:11px;color:var(--mute)}.annual-calendar>strong{font-size:24px;font-weight:600;letter-spacing:-.025em}.annual-calendar>b{font-size:13px;font-weight:500}.annual-calendar>small,.annual-memory>small{font-size:10px;color:var(--mute);line-height:1.5}.annual-memory{grid-column:1/-1;font-size:12px}.annual-memory summary{cursor:pointer;padding:6px 0}.annual-memory p{font-size:12px;color:var(--mute)}@media(max-width:440px){.annual-pig-wrap{width:62px;height:78px}.annual-coins{width:62px;height:62px}}@media(prefers-reduced-motion:reduce){.pig-coin{animation:none;opacity:0}}

.pro-gains-title{grid-column:1;grid-row:1/3;align-self:center}.pro-gains-title h2{margin:0 0 12px}.pro-gains-title p{margin:0;font-size:12px;color:var(--mute)}

.annual-gains{grid-template-columns:150px 1fr;--pig-fill:#f3afc6}.annual-pig-wrap{width:150px;height:175px}.piggy-3d{position:absolute;top:0;left:0;width:150px;height:156px;cursor:grab;touch-action:none;outline-offset:3px}.piggy-3d:active{cursor:grabbing}.piggy-rotate-hint{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:10px;color:var(--mute)}.annual-pig-wrap svg[hidden]{display:none}.annual-gains .annual-pig{color:#a94d74}.piggy-work-basis{display:flex;flex-wrap:wrap;gap:10px;padding:10px 0}.piggy-work-basis label{font-size:11px;color:var(--mute);display:flex;align-items:center;gap:7px}.piggy-work-basis input{width:62px;padding:6px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--card);font:inherit}.piggy-work-basis small{flex-basis:100%;font-size:11px;color:var(--mute);line-height:1.5}@media(max-width:440px){.annual-gains{grid-template-columns:90px 1fr}.annual-pig-wrap{width:90px;height:124px}.piggy-3d{width:90px;height:100px}.annual-values strong{font-size:21px}}

.piggy-work-basis>b{flex-basis:100%;font-size:12px;font-weight:500}

.annual-values{align-content:center}

.automation-cascade{margin:26px 28px 12px;padding:26px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1.15fr;gap:20px 36px;align-items:center}.cascade-kicker{font-size:11px;color:#408c76}.cascade-copy h3{font-size:23px;font-weight:500;line-height:1.25;letter-spacing:-.03em;margin:8px 0 14px}.cascade-copy p{font-size:13px;color:var(--mute);line-height:1.65;margin:0}.cascade-branch{display:grid;grid-template-columns:minmax(110px,1fr) 1.7fr;gap:24px;align-items:center}.cascade-source{font-size:11px;text-align:center;position:relative}.cascade-source svg{width:32px;height:32px;display:block;margin:0 auto 10px;color:#408c76}.cascade-source b,.cascade-source span{display:block;margin:6px 0}.cascade-source span{font-size:10px;line-height:1.5;color:var(--mute)}.cascade-results{border-left:2px solid #90b9a9;display:grid;gap:14px;padding-left:18px}.cascade-results>div{position:relative;font-size:12px}.cascade-results>div:before{content:"";position:absolute;left:-20px;top:8px;width:14px;height:2px;background:#90b9a9}.cascade-results b{display:block;color:var(--ink);font-weight:500;margin-bottom:4px}.cascade-results span{display:block;color:var(--mute);font-size:11px;line-height:1.5}.cascade-note{grid-column:1/-1;margin:0;font-size:11px;line-height:1.6;color:var(--mute)}@media(max-width:800px){.automation-cascade{grid-template-columns:1fr;margin:20px 28px;padding:22px 0}.cascade-copy h3{font-size:21px}}

/* Original textured model, with independent coins and retained attribution. */
.pro-gains-heading{grid-template-columns:minmax(180px,1fr) minmax(560px,760px)}
.annual-gains{grid-template-columns:300px minmax(0,1fr);gap:12px 24px}
.annual-pig-wrap{width:300px;height:320px;position:relative}
.piggy-reference{position:absolute;inset:0 auto auto 0;width:300px;height:300px;border:0;border-radius:12px;background:#f5f7fa}
.piggy-coins-3d{width:300px;height:300px}

.annual-values{align-self:center}
@media(max-width:1100px){.pro-gains-heading{display:block}.annual-gains{margin-top:20px;max-width:760px}}
@media(max-width:640px){.annual-gains{grid-template-columns:minmax(0,1fr);padding:16px}.annual-pig-wrap{width:min(300px,100%);height:320px;margin:auto}.piggy-reference,.piggy-coins-3d{width:100%;height:300px}.annual-values strong{font-size:28px}}

.piggy-coins-3d{clip-path:inset(0 0 36px 0)}

.piggy-coins-3d{pointer-events:none;clip-path:none}



/* Native scene: the coin and the hollow pig rotate together. */
.annual-pig-wrap .piggy-3d{width:100%;height:300px;background:transparent}

.annual-pig-wrap .piggy-3d{outline:none}.annual-pig-wrap:focus-within .piggy-rotate-hint{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}

/* Gains first, then the project heading: one clear reading order. */
.pro-gains-heading{display:flex;flex-direction:column;align-items:stretch;gap:32px}.pro-gains-heading .annual-gains{width:100%;max-width:960px;margin:0 auto;box-sizing:border-box}.pro-gains-title{text-align:center}.pro-gains-title h2{margin:0 0 12px}.automation-cascade{max-width:960px;margin:0 auto 32px;padding:24px 0;grid-template-columns:1fr;gap:20px;border-top:0}.cascade-copy h3{font-size:23px;margin:6px 0 10px}.cascade-copy p{max-width:760px;font-size:14px}.cascade-kicker{color:var(--mute);text-transform:uppercase;letter-spacing:.06em}.cascade-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:0;border-top:1px solid var(--line);padding:20px 0 0;gap:24px}.cascade-results>div:before{content:none}.cascade-results b{font-size:14px;font-weight:600}.cascade-results span{font-size:13px}.cascade-note{max-width:850px;font-size:12px}@media(max-width:800px){.automation-cascade{margin:0 28px 28px;padding:20px 0}}@media(max-width:560px){.cascade-results{grid-template-columns:1fr;gap:16px}.pro-gains-heading{gap:24px}}

.piggy-status{position:absolute;inset:0;display:grid;place-items:center;color:var(--mute);font-size:12px}.annual-pig-wrap:not([data-piggy="ready"]) .piggy-rotate-hint{visibility:hidden}

.mq-scroll{display:contents}
@media(max-width:809px){.mq-scroll{display:block;width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom}.mq-scroll::-webkit-scrollbar{display:none}.mq-scroll .mq-track{transform:none!important;will-change:auto}.marquee{touch-action:pan-x pan-y pinch-zoom}.workshop-previews{will-change:transform}.process-track{padding-top:28px}.process-card{width:min(88vw,420px)}}

.finance-emails{margin:28px 0;text-align:left;border-top:1px solid #ddd;padding-top:20px}.finance-emails summary{cursor:pointer;font-weight:600}.finance-emails p{font-size:13px;line-height:1.65}.finance-mail-select{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}.finance-mail-select label{display:grid;gap:6px;font-size:13px}.finance-mail-select select{font:inherit;padding:10px;border:1px solid #b9c2c9;border-radius:8px;background:#fff;color:#21374a}.finance-emails iframe{width:100%;height:690px;border:0;background:#f5f6f8;border-radius:12px;margin:12px 0}.finance-emails pre{max-width:100%;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#19232c;color:#e4edf4;padding:16px;border-radius:8px;font-size:12px}.finance-example-note{color:#687784}

/* Machinery stays anchored while the carousel scrolls. */
.process-card,.process-card:hover,.process-card img,.process-card:hover img{transform:none;transition:background-color .2s,border-color .2s;}
.process-card-action{display:block;min-height:2.8em;line-height:1.4;}
/* Studio backdrop inspired by the Sketchfab references: soft grey vignette behind the models. */
.process-stage{background:radial-gradient(120% 95% at 50% 36%,#f8f9f9 0%,#eceeef 46%,#d5dadc 100%);border-radius:14px}
.process-dialog.process-dark .process-stage{background:radial-gradient(120% 95% at 50% 36%,#3b4144 0%,#272c2f 48%,#14181a 100%)}
.process-poster{mix-blend-mode:multiply}
.marquee,.pc,.pc-img{scrollbar-width:none}.marquee::-webkit-scrollbar,.pc::-webkit-scrollbar,.pc-img::-webkit-scrollbar{display:none}
