/* Shared flat-lay workshop routes. Only ink and the material trail draw on scroll. */
.has-lab-journey,.has-lab-journey main { overflow-x:clip; }
.lab-page.has-lab-journey .lb-hero { margin-bottom:0; }
.lab-journey {
  --journey-ink:#4c2a48;
  --journey-paper:#f7f1eb;
  position:relative; isolation:isolate; overflow:clip; color:var(--journey-ink);
  background-color:var(--journey-paper);
  background-image:repeating-linear-gradient(0deg,transparent 0 63px,#b48b7911 63px 64px),
    repeating-linear-gradient(90deg,transparent 0 63px,#b48b7911 63px 64px),
    repeating-linear-gradient(7deg,#8b796908 0 1px,transparent 1px 4px),
    repeating-linear-gradient(97deg,#ffffff55 0 1px,transparent 1px 5px);
}
.lab-journey--pour { --journey-paper:#f3edf5; --journey-ink:#563467; }
.lab-journey--vine { --journey-paper:#eef2e6; --journey-ink:#2c5945; }
.lab-journey--field { --journey-paper:#185951; --journey-ink:#fff6de;
  background-image:repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 4px),
    repeating-linear-gradient(90deg,#072d3014 0 80px,transparent 80px 160px); }
.lab-journey__intro { position:relative; z-index:3; max-width:820px; padding-top:clamp(165px,16vw,225px); padding-bottom:42px; text-align:center; }
.lab-journey__intro .eyebrow { color:var(--journey-ink); opacity:.78; }
.lab-journey__intro h2 { color:var(--journey-ink); font-size:clamp(40px,5.8vw,74px); text-wrap:balance; }
.lab-journey__intro p { max-width:540px; margin:20px auto 0; font-size:clamp(16px,1.4vw,19px); line-height:1.6; color:var(--journey-ink); opacity:.78; text-wrap:balance; }
.lab-journey__hint { display:block; margin-top:19px; font-size:12px; opacity:.8; }
.lab-journey__route { position:relative; max-width:1240px; height:3400px; margin:0 auto; }
.lab-journey__path { position:absolute; inset:0; z-index:1; width:100%; height:100%; overflow:visible; pointer-events:none; }
.lab-journey__path--mobile { display:none; }
.lab-journey__leg { fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:0; }
.lab-journey__leg use { vector-effect:non-scaling-stroke; }
.lab-journey__rim { stroke:var(--journey-edge); stroke-width:30; }
.lab-journey__paint { stroke-width:26; }
.lab-journey__grain { stroke:#d8ebff; stroke-width:9; opacity:.23; }
.lab-journey__shine { stroke:#fffaf0; stroke-width:2; opacity:.5; transform:translate(-3px,-3px); }
.lab-journey--paint .lab-journey__grain { stroke-width:16; opacity:.15; }
.lab-journey--pour .lab-journey__rim { stroke-width:36; }
.lab-journey--pour .lab-journey__paint { stroke-width:32; }
.lab-journey--pour .lab-journey__grain { stroke-width:15; stroke:#ffc7ee; opacity:.42; }
.lab-journey--vine .lab-journey__rim { stroke-width:12; }
.lab-journey--vine .lab-journey__paint { stroke-width:9; }
.lab-journey--vine .lab-journey__grain { stroke-width:3; stroke:#c8e192; }
.lab-journey--vine .lab-journey__shine { stroke-width:1; transform:translate(-1px,-1px); }
.lab-journey__leaf { stroke:var(--journey-edge); stroke-width:3; }
.lab-journey--field .lab-journey__rim { stroke-width:14; opacity:.35; }
.lab-journey--field .lab-journey__paint { stroke:#fff8dd; stroke-width:8; }
.lab-journey--field .lab-journey__grain { stroke:#ecce59; stroke-width:2; opacity:.65; }
.lab-journey--field .lab-journey__shine { display:none; }
.lab-journey__stations { position:relative; z-index:2; margin:0; padding:0; list-style:none; }
.lab-journey__stations:has(details[open]) { z-index:4; }
.lab-journey__station { position:relative; height:680px; margin:0; }
.lab-journey__station:has(details[open]) { z-index:6; }
.lab-journey__title { position:absolute; top:163px; left:55%; width:28%; margin:0; transform:rotate(7deg); }
.lab-journey__station:nth-child(even) .lab-journey__title { top:176px; left:15%; transform:rotate(-7deg); }
.lab-journey__ink { display:block; width:100%; height:auto; overflow:visible; }
.lab-journey__ink path { fill:none; stroke:currentColor; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:0; }
.lab-journey__ink .lab-journey__doodle { stroke-width:2.3; opacity:.65; }
.lab-journey__sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.lab-journey__object { position:absolute; top:135px; left:4%; width:43%; margin:0; }
.lab-journey__station:nth-child(even) .lab-journey__object { left:61%; top:70px; width:36%; }
.lab-journey__station:last-child .lab-journey__object { width:46%; top:110px; }
.lab-journey__object summary { position:relative; display:block; list-style:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.lab-journey__object summary::-webkit-details-marker { display:none; }
.lab-journey__object picture { display:block; transform:rotate(-5deg); }
.lab-journey__station:nth-child(even) .lab-journey__object picture { transform:rotate(7deg); }
.lab-journey__object img,.lab-journey__prop img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain;
  filter:drop-shadow(4px 10px 6px #211d2459) drop-shadow(10px 25px 20px #211d2473); }
.lab-journey__more { position:absolute; z-index:9; right:7%; bottom:8%; display:grid; place-items:center; width:44px; height:44px; border:1px solid #55304440; border-radius:50%; background:#fff9f0; color:#643354; box-shadow:0 4px 12px #52224e1a; font:400 28px/1 Inter,sans-serif; }
.lab-journey__object[open] .lab-journey__more { display:none; }
.lab-journey__object summary:focus-visible,.lab-journey__prop:focus-visible { outline:3px solid var(--journey-ink); outline-offset:8px; border-radius:18px; }
.lab-journey__detail { position:absolute; z-index:8; left:6%; right:3%; bottom:4%; padding:29px 26px 25px; color:#382238; background:#fffaf5; border:1px solid #dfced6; border-radius:5px 22px 7px 19px; box-shadow:8px 18px 48px #52224e30; transform:rotate(2deg); }
.lab-journey__detail h4 { margin:0 36px 10px 0; font-size:clamp(20px,2vw,28px); letter-spacing:-.025em; line-height:1.15; }
.lab-journey__detail p { margin:0; color:#72616c; font-size:16px; line-height:1.6; }
.lab-journey__popover { position:fixed; inset:auto; width:340px; max-width:calc(100vw - 24px); margin:0; transform:none; box-sizing:border-box; }
.lab-journey__close { display:none; position:absolute; right:8px; top:8px; width:44px; height:44px; border:0; border-radius:50%; background:transparent; color:#52224e; font-size:25px; cursor:pointer; }
.lab-journey.is-journey-ready .lab-journey__close { display:block; }
.lab-journey__close:focus-visible { outline:2px solid #ae367f; }
.lab-journey__prop { position:absolute; z-index:3; left:var(--x); top:var(--y); width:var(--w); display:block; transform:translate(-50%,-50%) rotate(var(--r,0deg)); -webkit-tap-highlight-color:transparent; }
@media(prefers-reduced-motion:no-preference) {
  .lab-journey__object summary picture,.lab-journey__prop picture { transition:transform 160ms cubic-bezier(.23,1,.32,1); }
  .lab-journey__object summary:hover picture { transform:translateY(-5px) rotate(-3deg); }
  .lab-journey__station:nth-child(even) .lab-journey__object summary:hover picture { transform:translateY(-5px) rotate(3deg); }
  .lab-journey__prop picture { display:block; }
  .lab-journey__prop:hover picture { transform:translateY(-4px) rotate(3deg); }
}
@media(max-width:820px) {
  .lab-journey__intro { max-width:640px; padding-top:clamp(165px,25vw,210px); padding-bottom:35px; }
  .lab-journey__intro h2 { font-size:clamp(36px,7.5vw,62px); }
  .lab-journey__intro p { max-width:430px; font-size:16px; }
  .lab-journey__route { max-width:600px; }
  .lab-journey__path--desktop { display:none; }
  .lab-journey__path--mobile { display:block; }
  .lab-journey__rim { stroke-width:23; }
  .lab-journey__paint { stroke-width:20; }
  .lab-journey--pour .lab-journey__rim { stroke-width:25; }
  .lab-journey--pour .lab-journey__paint { stroke-width:22; }
  .lab-journey__grain { stroke-width:10; }
  .lab-journey__shine { stroke-width:1.5; transform:translate(-2px,-2px); }
  .lab-journey__leaf { stroke-width:2.5; }
  .lab-journey__title { top:97px; left:71%; width:46%; max-width:180px; transform:translateX(-50%) rotate(7deg); }
  .lab-journey__station:nth-child(even) .lab-journey__title { top:100px; left:29%; width:48%; transform:translateX(-50%) rotate(-7deg); }
  .lab-journey__object,.lab-journey__station:last-child .lab-journey__object { top:245px; left:2%; width:74%; }
  .lab-journey__station:nth-child(even) .lab-journey__object { left:29%; top:255px; width:67%; }
  .lab-journey__prop { left:var(--mx); top:var(--my); width:var(--mw); }
  .lab-journey__detail { left:2%; right:0; padding:25px 20px 20px; transform:none; }
  .lab-journey__station:nth-child(even) .lab-journey__detail { left:-27%; }
  .lab-journey__detail p { font-size:15px; }
}
@media(prefers-reduced-motion:reduce) {
  .lab-journey__leg,.lab-journey__ink path { stroke-dashoffset:0!important; visibility:visible!important; }
}

/* Garden Lab: sizes requested in the six illustration comments. */
[data-lab-journey="garden"] .lab-journey__prop:is(:nth-of-type(1),:nth-of-type(2),:nth-of-type(3),:nth-of-type(5)) img { scale:1.2; }
[data-lab-journey="garden"] .lab-journey__prop:nth-of-type(8) { left:78%; }
[data-lab-journey="garden"] .lab-journey__prop:nth-of-type(8) img { scale:2.8; }
#garden-step-4 summary img { scale:1.1; }
@media(max-width:820px) {
  [data-lab-journey="garden"] .lab-journey__title { top:87px; left:68%; width:56%; max-width:230px; }
  [data-lab-journey="garden"] .lab-journey__station:nth-child(even) .lab-journey__title { top:90px; left:32%; width:58%; }
  [data-lab-journey="garden"] .lab-journey__prop:nth-of-type(3) { left:17%; }
  [data-lab-journey="garden"] .lab-journey__prop:nth-of-type(4) { top:1405px; }
  [data-lab-journey="garden"] .lab-journey__prop:nth-of-type(8) { left:68%; }
  #garden-step-5 .lab-journey__more { left:0; right:auto; bottom:6%; }
}
@media(min-width:821px) {
  [data-lab-journey="garden"] .lab-journey__station:nth-child(2) .lab-journey__title { left:35%; top:45px; }
}
