/* Florentra's signature. Tune these tokens without changing the SVG or JS. */
.landing .journey{
 --journey-leaf-time:750ms;--journey-stem-time:900ms;--journey-stage-time:650ms;--journey-care-time:2400ms;
 --journey-ease:cubic-bezier(.22,1,.36,1);
 --journey-plant-size:420px;--journey-mobile-plant-size:128px;
 --journey-step-space:clamp(280px,56svh,540px);--journey-mobile-step-space:clamp(240px,48svh,420px);
 --journey-sticky-top:124px;
 --journey-forest:#365840;--journey-leaf:#b8cba3;--journey-leaf-edge:#6e885c;
 --journey-sage:#edf1e4;--journey-cream:#f7f5ed;--journey-earth:#a58a65;
 --journey-line:#d8e1cd;--journey-ground:#e3e8d8;--journey-muted:#627456;
 padding:64px 0 80px;border-top:1px solid var(--journey-line);position:relative;
}
.landing .journey-intro{max-width:650px;margin-bottom:40px}
.landing .journey-intro h2{font-size:clamp(2.65rem,4.4vw,4rem);line-height:1.12;margin:20px 0}
.landing .journey-intro>p{font-size:1.02rem;line-height:1.8;max-width:48ch}
.landing .journey-intro .journey-disclaimer{font-size:.78rem;line-height:1.7;max-width:56ch;margin:16px 0 0}
.landing .journey-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start}
.landing .journey-visual{position:sticky;top:var(--journey-sticky-top);align-self:start;min-width:0;margin:0;text-align:center}
.landing .journey-art{width:min(100%,var(--journey-plant-size));margin:0 auto}
.landing .journey-plant{display:block;width:100%;height:auto;max-height:calc(100svh - 210px);overflow:visible}
.landing .journey-caption{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font-size:.72rem;line-height:1.6;color:var(--journey-muted);margin-top:8px}
.landing .journey-current{display:none;font-variant-numeric:tabular-nums;letter-spacing:.045em;color:var(--journey-forest)}
.landing .journey.is-enhanced .journey-current{display:inline}
.landing .journey-steps{margin:0;padding:0;list-style:none;min-width:0;border-left:1px solid var(--journey-line)}
.landing .journey-step{position:relative;display:flex;align-items:center;min-height:var(--journey-step-space);padding:32px 0 32px 36px}
.landing .journey-step-body{max-width:32ch;opacity:1}
.landing .journey-step-index{font-size:.72rem;font-weight:600;letter-spacing:.14em;color:var(--journey-forest)}
.landing .journey-step h3{font:400 clamp(1.85rem,3vw,2.55rem)/1.2 var(--serif);letter-spacing:-.035em;color:var(--journey-forest);margin:12px 0 14px}
.landing .journey-step p{font-size:1.02rem;line-height:1.8;color:var(--journey-forest);margin:0}
.landing .journey-step:before{content:"";position:absolute;left:-5px;top:50%;width:9px;height:15px;background:var(--journey-line);border:1px solid var(--journey-leaf-edge);border-radius:100% 0 100% 0;transform:translateY(-50%) rotate(22deg)}
.landing .journey.is-enhanced .journey-step-body{opacity:.88;transform:translateY(4px);transition:opacity var(--journey-stage-time) var(--journey-ease),transform var(--journey-stage-time) var(--journey-ease)}
.landing .journey.is-enhanced .journey-step.is-active .journey-step-body{opacity:1;transform:none}
.landing .journey.is-enhanced .journey-step.is-active:before{background:var(--journey-leaf-edge);border-color:var(--journey-forest)}
/* The mature plant is the baseline. JavaScript only changes its growth state. */
.landing .journey-backdrop{fill:var(--journey-sage)}
.landing .journey-contour{fill:none;stroke:var(--journey-line);stroke-width:1}
.landing .journey-ground{fill:var(--journey-ground)}
.landing .journey-soil{fill:none;stroke:var(--journey-line);stroke-width:1.2}
.landing .journey-seed{fill:var(--journey-earth)}
.landing .journey-stem{fill:none;stroke:var(--journey-forest);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.landing .journey-branch{stroke-width:1.2}
.landing .journey-leaf{transform-box:fill-box;transform-origin:100% 100%}
.landing .journey-leaf-surface{fill:var(--journey-leaf);stroke:var(--journey-leaf-edge);stroke-width:.8;vector-effect:non-scaling-stroke}
.landing .journey-vein{fill:none;stroke:var(--journey-leaf-edge);stroke-width:.65;stroke-linecap:round;opacity:.75;vector-effect:non-scaling-stroke}
.landing .journey-companion{transform-box:fill-box;transform-origin:50% 50%}
.landing .journey-companion circle{fill:var(--journey-cream);stroke:var(--journey-line);stroke-width:1}
.landing .journey-neighbor-stem{fill:none;stroke:var(--journey-leaf-edge);stroke-width:1.1}
.landing .journey-neighbor-leaf{fill:var(--journey-leaf);stroke:var(--journey-leaf-edge);stroke-width:.7}
.landing .journey-care-hint{opacity:0;pointer-events:none;fill:none;stroke:var(--journey-leaf-edge);stroke-width:1.2}
.landing .journey-care-hint circle{fill:var(--journey-cream);stroke:var(--journey-line)}
.landing .journey.is-enhanced .journey-part{opacity:0;transition:opacity var(--journey-leaf-time) var(--journey-ease)}
.landing .journey.is-enhanced .journey-stem{stroke-dashoffset:1;transition:stroke-dashoffset var(--journey-stem-time) var(--journey-ease),opacity var(--journey-stage-time) var(--journey-ease)}
.landing .journey.is-enhanced .journey-leaf{transform:scale(.16) rotate(-7deg);transition:transform var(--journey-leaf-time) var(--journey-ease),opacity var(--journey-leaf-time) var(--journey-ease)}
.landing .journey.is-enhanced .journey-companion{transform:scale(.94);transition:opacity var(--journey-stage-time) var(--journey-ease),transform var(--journey-stage-time) var(--journey-ease)}
.landing .journey.is-enhanced .journey-part.is-grown{opacity:1}
.landing .journey.is-enhanced .journey-stem.is-grown{stroke-dashoffset:0}
.landing .journey.is-enhanced .journey-leaf.is-grown{transform:scale(1) rotate(0deg);transition-delay:100ms}
.landing .journey.is-enhanced .journey-companion.is-grown{transform:scale(1);transition-delay:120ms}
.landing .journey.is-enhanced:is([data-journey-stage="3"],[data-journey-stage="4"],[data-journey-stage="5"]) .journey-young-leaf.is-grown{transform:scale(1.06) rotate(0deg)}
@keyframes journey-care-note{0%,100%{opacity:0}25%,65%{opacity:.85}}
.landing .journey.is-enhanced[data-journey-stage="3"] .journey-care-hint{animation:journey-care-note var(--journey-care-time) var(--journey-ease) both}
.landing .journey.is-setting .journey-part{transition:none!important}
@media(max-width:767px){
 .landing .journey{padding:44px 0 56px;--journey-sticky-top:88px}
 .landing .journey-intro{margin-bottom:28px}
 .landing .journey-intro h2{font-size:clamp(2.4rem,9vw,3.1rem)}
 .landing .journey-intro>p{font-size:1rem}
 .landing .journey-layout{display:block}
 .landing .journey-visual{z-index:3;background:var(--journey-cream);border-bottom:1px solid var(--journey-line);padding:8px 0 12px}
 .landing .journey-art{width:min(100%,var(--journey-mobile-plant-size))}
 .landing .journey-plant{max-height:none;overflow:hidden}
 .landing .journey-caption{margin-top:0;font-size:.67rem;gap:12px}
 .landing .journey-steps{margin:0 8px}
 .landing .journey-step{min-height:var(--journey-mobile-step-space);padding:28px 0 28px 25px}
 .landing .journey-step h3{font-size:2rem}
 .landing .journey-step p{font-size:.98rem}
 .landing .journey.is-enhanced .journey-step-body{transform:translateY(2px)}
 .landing .journey.is-enhanced .journey-step.is-active .journey-step-body{transform:none}
 .landing .journey-stem{stroke-width:1.2}.landing .journey-branch{stroke-width:.8}
 .landing .journey-leaf-surface{stroke-width:.65}.landing .journey-vein{stroke-width:.45}
 .landing .journey.is-enhanced .journey-leaf{transform:scale(.65)}
 .landing .journey.is-enhanced .journey-leaf.is-grown{transform:scale(1)}
 .landing .journey-care-hint{display:none}
}
/* Short mobile screens use a static illustration instead of a cramped pin. */
@media(max-width:767px) and (max-height:620px){.landing .journey-visual{position:static}}
/* No-JS, reduced motion, pause and API fallbacks all expose the mature artwork. */
.landing .journey:not(.is-enhanced) .journey-part{opacity:1;transform:none;stroke-dashoffset:0}
.landing.motion-paused .journey-visual{position:static}
.landing.motion-paused .journey .journey-part{opacity:1;transform:none;stroke-dashoffset:0}
.landing.motion-paused .journey .journey-step-body{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 .landing .journey-visual{position:static}
 .landing .journey .journey-part{opacity:1!important;transform:none!important;stroke-dashoffset:0!important;transition:none!important}
 .landing .journey .journey-step-body{opacity:1!important;transform:none!important;transition:none!important}
 .landing .journey .journey-care-hint{animation:none!important;opacity:0}
}
