/* A restrained, self-contained vector illustration. It runs only while visible. */
.forest-cycle{--fc-line:#3c5343;--fc-ink:#eef1db;--fc-muted:#b5c3ac;--fc-accent:#d4d796;--fc-landscape:url("assets/kamchatka-volcanoes-v1.webp");box-sizing:border-box;overflow:hidden;isolation:isolate;border:1px solid #334b3d;border-radius:22px;background:#142b24;color:var(--fc-ink);font-family:inherit;margin:36px 0;box-shadow:0 20px 50px #10261b0b}
.forest-cycle *{box-sizing:border-box}.forest-cycle .fc-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:29px 32px 16px}.forest-cycle .fc-eyebrow{margin:0 0 11px;color:var(--fc-muted);font-size:9px;font-weight:600;letter-spacing:.19em}.forest-cycle h2{font-size:clamp(24px,3vw,37px);font-weight:550;line-height:1.15;letter-spacing:-.045em;margin:0;color:var(--fc-ink)}.forest-cycle .fc-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;min-height:44px;padding:8px 14px;border:1px solid #506044;border-radius:30px;background:#20352a;color:#e4e8ce;font:inherit;font-size:11px;cursor:pointer}.forest-cycle .fc-toggle:hover{background:#30432e;border-color:#97a67b}.forest-cycle .fc-toggle:disabled{cursor:default;opacity:.65}.forest-cycle .fc-toggle svg{width:16px;height:16px;fill:currentColor}.forest-cycle .fc-pause-icon{display:none}.forest-cycle .fc-toggle[aria-pressed=true] .fc-play-icon{display:none}.forest-cycle .fc-toggle[aria-pressed=true] .fc-pause-icon{display:block}.forest-cycle button:focus-visible{outline:2px solid #dfe5a8;outline-offset:-4px}
.forest-cycle .fc-viewport{overflow:hidden;width:100%;background:#142b24}.forest-cycle .fc-art{width:100%;height:auto;display:block}.forest-cycle .fc-art text{font-family:inherit}.forest-cycle .fc-machine{opacity:.6;transition:opacity .7s ease}.forest-cycle[data-step="0"] [data-fc-scene="0"],.forest-cycle[data-step="1"] [data-fc-scene="1"],.forest-cycle[data-step="2"] [data-fc-scene="2"],.forest-cycle[data-step="3"] [data-fc-scene="3"],.forest-cycle[data-step="4"] [data-fc-scene="4"],.forest-cycle[data-step="5"] [data-fc-scene="5"]{opacity:1}
.forest-cycle .fc-stages{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:0 30px;gap:12px}.forest-cycle .fc-stage{display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:16px 0;min-height:54px;font:inherit;cursor:pointer;color:var(--fc-muted);background:none;border:0;border-top:1px solid var(--fc-line);border-radius:0;text-align:left}.forest-cycle .fc-stage span{font-size:9px;font-weight:450;letter-spacing:.06em;opacity:.7}.forest-cycle .fc-stage strong{font-size:12px;font-weight:500;white-space:nowrap}.forest-cycle .fc-stage[aria-pressed=true]{border-color:var(--fc-accent);color:var(--fc-ink)}.forest-cycle .fc-stage[aria-pressed=true] span{color:var(--fc-accent);opacity:1}.forest-cycle .fc-stage:hover{color:#f0f2dc;border-color:#9da878}.forest-cycle .fc-copy{min-height:56px;padding:3px 32px 12px}.forest-cycle .fc-copy p{font-size:13px;line-height:1.7;margin:0;color:#d0dbc5;max-width:850px}.forest-cycle .fc-copy [hidden]{display:none!important}.forest-cycle .fc-copy .fc-motion-note{margin-top:8px;color:#a7b99f;font-size:10px}.forest-cycle .fc-disclaimer{font-size:10px;line-height:1.65;color:#a5b69e;border-top:1px solid #344a3a;margin:0;padding:15px 32px 20px;max-width:none}
/* Every moving part is paused by default, even before JavaScript has loaded. */
.forest-cycle .fc-harvester-boom{transform-origin:140px 287px;animation:fc-harvest 4.8s ease-in-out infinite}.forest-cycle .fc-head{animation:fc-head 4.8s ease-in-out infinite}.forest-cycle .fc-manual-saw{animation:fc-saw .6s ease-in-out infinite}.forest-cycle .fc-forwarder-body{animation:fc-drive 4.8s ease-in-out infinite}.forest-cycle .fc-forwarder-boom{transform-origin:376px 296px;animation:fc-forward 4.8s ease-in-out infinite}.forest-cycle .fc-skidder-body,.forest-cycle .fc-dragged-logs{animation:fc-drag 4.8s ease-in-out infinite}.forest-cycle .fc-dozer-body{animation:fc-doze 4.8s ease-in-out infinite}.forest-cycle .fc-dozer-blade{transform-origin:994px 315px;animation:fc-blade 4.8s ease-in-out infinite}.forest-cycle .fc-loader-boom{transform-origin:1195px 298px;animation:fc-load 4.8s ease-in-out infinite}.forest-cycle .fc-truck-body{animation:fc-haul 4.8s ease-in-out infinite}.forest-cycle .fc-wheel{transform-box:fill-box;transform-origin:center;animation:fc-wheel 4.8s ease-in-out infinite}.forest-cycle .fc-machine *{animation-play-state:paused!important}.forest-cycle[data-running=true][data-step="0"] [data-fc-scene="0"] *,.forest-cycle[data-running=true][data-step="1"] [data-fc-scene="1"] *,.forest-cycle[data-running=true][data-step="2"] [data-fc-scene="2"] *,.forest-cycle[data-running=true][data-step="3"] [data-fc-scene="3"] *,.forest-cycle[data-running=true][data-step="4"] [data-fc-scene="4"] *,.forest-cycle[data-running=true][data-step="5"] [data-fc-scene="5"] *{animation-play-state:running!important}
@keyframes fc-harvest{0%,100%{transform:rotate(0)}40%,65%{transform:rotate(-4deg)}}@keyframes fc-head{0%,100%{transform:translateY(0)}45%,70%{transform:translateY(10px)}}@keyframes fc-drive{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}@keyframes fc-forward{0%,100%{transform:rotate(0)}50%{transform:rotate(5deg)}}@keyframes fc-drag{0%,100%{transform:translateX(0)}50%{transform:translateX(-9px)}}@keyframes fc-doze{0%,100%{transform:translateX(0)}55%{transform:translateX(8px)}}@keyframes fc-blade{0%,100%{transform:rotate(0)}55%{transform:rotate(-4deg)}}@keyframes fc-load{0%,100%{transform:rotate(0)}50%{transform:rotate(-7deg)}}@keyframes fc-haul{0%,100%{transform:translateX(0)}55%{transform:translateX(10px)}}@keyframes fc-wheel{0%,100%{transform:rotate(0)}50%{transform:rotate(20deg)}}
@media(max-width:900px){.forest-cycle .fc-stages{gap:7px;padding-inline:20px}.forest-cycle .fc-stage{gap:5px}.forest-cycle .fc-stage strong{font-size:10px}.forest-cycle .fc-heading{padding:24px 22px 12px}.forest-cycle .fc-copy{padding-inline:22px}.forest-cycle .fc-disclaimer{padding-inline:22px}}
@media(max-width:640px){.forest-cycle{margin:25px 0;border-radius:16px}.forest-cycle .fc-heading{display:block;padding:23px 20px 0}.forest-cycle h2{font-size:28px}.forest-cycle .fc-toggle{margin-top:16px;min-height:40px;font-size:10px;padding:7px 12px}.forest-cycle .fc-eyebrow{font-size:8px;margin-bottom:9px}.forest-cycle .fc-viewport{height:auto}.forest-cycle .fc-art{height:auto;width:100%}.forest-cycle .fc-stages{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px;row-gap:1px;padding:0 20px}.forest-cycle .fc-stage{min-height:49px;padding-block:11px;gap:8px}.forest-cycle .fc-stage strong{font-size:11px}.forest-cycle .fc-stage span{font-size:9px}.forest-cycle .fc-copy{min-height:82px;padding:13px 20px}.forest-cycle .fc-copy p{font-size:12px}.forest-cycle .fc-disclaimer{font-size:9px;padding:14px 20px 18px}}
@media(prefers-reduced-motion:reduce){.forest-cycle .fc-machine{transition:none}.forest-cycle .fc-machine *{animation:none!important}}

@keyframes fc-saw{0%,100%{transform:translateX(0)}50%{transform:translateX(2px)}}

/* Locally rendered machinery. The landscape remains visible while WebGL loads. */
.forest-cycle .fc-viewport{position:relative;background:#a5b1a7;background-image:var(--fc-landscape,none);background-position:center 45%;background-size:cover}
.forest-cycle[data-render="3d"] .fc-viewport{height:clamp(390px,45vw,610px);min-width:0}
.forest-cycle .fc-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;z-index:2}
.forest-cycle[data-render="3d"] .fc-art{visibility:hidden;position:absolute;inset:0;width:100%;height:100%}
.forest-cycle[data-render="fallback"] .fc-canvas{display:none}
.forest-cycle[data-render="3d"] .fc-machine *{animation:none!important}
.forest-cycle .fc-illustration-label{position:absolute;left:20px;bottom:17px;z-index:3;font-size:10px;font-weight:500;letter-spacing:.02em;background:#162822a8;color:#eef2e7;padding:7px 11px;border-radius:20px;backdrop-filter:blur(7px)}
@media(max-width:640px){.forest-cycle[data-render="3d"] .fc-viewport{height:390px}.forest-cycle .fc-illustration-label{left:12px;bottom:10px;font-size:9px}}
