/* ==========================================================================
   首页「一滴好油的来处」旅程 + 「选一瓶」产品区（2026-09-30）
   - 区块位于首屏与后台可编辑内容之间，由代码维护（后台编辑模式下折叠显示）。
   - 所有“先隐藏再出现”的状态只在脚本给 <html> 加上 zy-j 之后生效；
     脚本未加载时，这里的内容就是完整的静态图文。
   ========================================================================== */
.zy-journey,.zy-shop{--j-night:#0c1813;--j-deep:#11241b;--j-cream:#f3ecd8;--j-cream-2:#f3ecd8c2;--j-cream-3:#f3ecd88a;--j-gold:#dcc37a;--j-gold-2:#b99a45;--j-oil:#d8c24e;--j-leaf:#9cb65b;--j-paper:#f4f1e7;--j-ink:#18382a;--j-ease:cubic-bezier(.16,1,.3,1);--j-ease-io:cubic-bezier(.65,0,.35,1);--j-serif:'Songti SC','Noto Serif SC','Source Han Serif SC','SimSun',serif;--j-num:Georgia,'Times New Roman','Songti SC',serif;--j-sans:'PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif;position:relative;z-index:2;font-family:var(--j-sans)}
.zy-journey{background:transparent;color:var(--j-cream);isolation:isolate}
.zy-journey *,.zy-shop *{box-sizing:border-box}
/* 基础重置用 :where() 保持最低优先级，下面各组件的间距规则才能生效 */
:where(.zy-journey) a{color:inherit}
:where(.zy-journey,.zy-shop) :is(h2,h3,h4){font-family:var(--j-serif);font-weight:500;margin:0;letter-spacing:.01em}
:where(.zy-journey,.zy-shop) p{margin:0}
:where(.zy-journey) :is(img,video){display:block;max-width:100%}
.zy-kicker,.zy-no{font:500 13px/1.4 var(--j-sans);letter-spacing:.24em;color:var(--j-gold);margin:0 0 18px}
.zy-lede{font-size:clamp(16px,1.35vw,19px);line-height:1.9;color:var(--j-cream-2);max-width:36em}
.zy-btn{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 24px;border-radius:999px;border:1px solid transparent;background:var(--j-gold);color:#1a2a1f!important;font:600 15px/1 var(--j-sans);letter-spacing:.06em;text-decoration:none;cursor:pointer;transition:transform .5s var(--j-ease),box-shadow .5s var(--j-ease),background-color .3s}
.zy-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px -18px #000c;background:#e6cf8a}
.zy-btn:focus-visible,.zy-journey button:focus-visible,.zy-journey a:focus-visible,.zy-shop button:focus-visible,.zy-shop a:focus-visible,.zy-shelf:focus-visible{outline:2px solid var(--j-gold);outline-offset:3px}

/* ---------- 1. 开篇 ---------- */
.zy-j-intro{position:relative;min-height:112vh;min-height:112svh;display:grid;place-items:center;padding:calc(var(--zy-head,80px) + 18vh) 7% 90px;overflow:hidden;background:radial-gradient(110% 70% at 50% 108%,#24422fcc 0%,#0c181300 70%),linear-gradient(180deg,#0c181300 0%,#0c181373 7%,#0c1813e6 17%,var(--j-night) 26%)}
.zy-j-intro::before{content:"";position:absolute;inset:12% -20% -20%;background:url('/assets/journey/intro-tree.webp') center/cover no-repeat;opacity:.16;filter:saturate(.6);mask-image:radial-gradient(60% 60% at 50% 45%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(60% 60% at 50% 45%,#000 20%,transparent 75%)}
.zy-j-intro-in{position:relative;text-align:center;max-width:980px}
.zy-j-intro h2{font-size:clamp(46px,7.4vw,112px);line-height:1.04;margin:0 0 28px}
.zy-j-intro .zy-lede{margin:0 auto 56px;max-width:34em}
.zy-j-map{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(5,1fr);max-width:860px;position:relative}
.zy-j-map::before{content:"";position:absolute;left:10%;right:10%;top:23px;height:1px;background:linear-gradient(90deg,var(--j-leaf),var(--j-gold) 55%,var(--j-oil));transform-origin:0 50%}
.zy-j-map a{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;padding:0 4px}
.zy-j-map b{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--j-night);border:1px solid #f3ecd84d;font:500 14px/1 var(--j-num);color:var(--j-gold);transition:background-color .4s,border-color .4s,transform .5s var(--j-ease)}
.zy-j-map span{font-size:15px;letter-spacing:.08em;color:var(--j-cream-2)}
.zy-j-map a:hover b{background:var(--j-gold);color:#1a2a1f;border-color:var(--j-gold);transform:translateY(-3px)}
.zy-j-skip{margin-top:52px}
.zy-j-skip a{font-size:14px;letter-spacing:.1em;color:var(--j-cream-3);text-decoration:none;border-bottom:1px solid #f3ecd833;padding-bottom:3px;transition:color .3s,border-color .3s}
.zy-j-skip a:hover{color:var(--j-cream);border-color:var(--j-gold)}

/* ---------- 2. 旅程导航（脚本启用后固定在左侧 / 手机顶部） ---------- */
.zy-rail{display:none}
html.zy-j .zy-rail{display:flex;position:fixed;z-index:60;left:22px;top:50%;translate:0 -50%;flex-direction:column;gap:22px;padding:18px 12px;border-radius:999px;background:#0c1813b8;border:1px solid #f3ecd81f;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;transition:opacity .5s,translate .6s var(--j-ease)}
html.zy-j.zy-in-journey .zy-rail{opacity:1;pointer-events:auto}
.zy-rail a{position:relative;display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--j-cream-3);font-size:13px;letter-spacing:.12em;white-space:nowrap}
.zy-rail i{width:9px;height:9px;border-radius:50%;background:#f3ecd84d;box-shadow:0 0 0 0 #dcc37a00;transition:background-color .4s,box-shadow .4s,transform .4s}
.zy-rail span{position:absolute;left:28px;opacity:0;translate:-6px 0;padding:5px 11px;border-radius:999px;background:#0c1813e6;color:var(--j-cream);transition:opacity .3s,translate .4s var(--j-ease);pointer-events:none}
.zy-rail a:hover span,.zy-rail a:focus-visible span,.zy-rail a.is-on span{opacity:1;translate:0 0}
.zy-rail a.is-on i{background:var(--j-gold);transform:scale(1.35);box-shadow:0 0 0 5px #dcc37a2e}
.zy-rail a.is-done i{background:#dcc37a99}
.zy-rail-token{position:absolute;left:50%;top:0;width:24px;height:24px;margin:-12px 0 0 -12px;translate:0 var(--tk,18px);transition:translate .8s var(--j-ease);pointer-events:none;filter:drop-shadow(0 4px 8px #0008)}
.zy-rail-token svg{position:absolute;inset:0;transition:opacity .5s,scale .6s var(--j-ease)}
.zy-tk-olive ellipse{fill:#9cb65b}.zy-tk-olive path{fill:none;stroke:#cfe09a;stroke-width:1.6;stroke-linecap:round}
.zy-tk-drop path{fill:var(--j-oil)}
.zy-rail-token .zy-tk-drop{opacity:0;scale:.4}
.zy-rail.is-oil .zy-tk-olive{opacity:0;scale:.4}.zy-rail.is-oil .zy-tk-drop{opacity:1;scale:1}
.zy-rail-token{display:none}
html.zy-j .zy-rail-token{display:block}
html.zy-j .zy-rail a i{opacity:1}
html.zy-j .zy-rail a.is-on i{opacity:0}

/* ---------- 3. 章节框架：粘性背景 + 滚动的“段落” ---------- */
.zy-ch{position:relative}
.zy-stage{position:sticky;top:0;height:100vh;height:100svh;margin-bottom:-100vh;margin-bottom:-100svh;overflow:hidden;z-index:0;background:var(--j-night)}
.zy-media{position:absolute;inset:0}
.zy-media>img,.zy-media>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s var(--j-ease-io);scale:calc(1.1 - .1*var(--cp,0))}
.zy-media>[data-layer="0"]{opacity:1}
.zy-ch[data-beat] .zy-media>[data-layer="0"]{opacity:0}
.zy-ch[data-layer="0"] .zy-media>[data-layer="0"],.zy-ch[data-layer="1"] .zy-media>[data-layer="1"],.zy-ch[data-layer="2"] .zy-media>[data-layer="2"]{opacity:1}
.zy-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0a1510f2 0%,#0a1510c7 34%,#0a151040 64%,#0a151066 100%),linear-gradient(0deg,#0a1510b3,transparent 30%,transparent 78%,#0a151080)}
.zy-beat{position:relative;z-index:1;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(32px,5vw,96px);padding:calc(var(--zy-head,80px) + 40px) 6% 64px 9.5%}
.zy-copy{max-width:540px}
.zy-copy h3{font-size:clamp(32px,4vw,60px);line-height:1.16;margin:0 0 26px}
.zy-copy>p:not(.zy-no){font-size:clamp(15.5px,1.2vw,18px);line-height:1.95;color:var(--j-cream-2);margin-bottom:14px}
.zy-copy .zy-note{margin-top:22px;padding-left:16px;border-left:2px solid var(--j-gold);font-size:14.5px!important;line-height:1.85!important;color:var(--j-cream-3)!important}
.zy-num-big{display:block;font-family:var(--j-num);font-size:clamp(72px,10.5vw,168px);line-height:.92;letter-spacing:-.01em;margin:0 0 14px;background:linear-gradient(180deg,#f6e7b3 10%,#c9a44f 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.zy-num-big small{display:block;font:500 clamp(24px,2.3vw,34px)/1.2 var(--j-serif);letter-spacing:.32em;color:var(--j-cream);margin:6px 0 8px 4px}
.zy-panel{position:relative;justify-self:end;width:min(100%,560px);padding:clamp(22px,2.4vw,34px);border-radius:24px;background:#0f1f18b3;border:1px solid #f3ecd824;box-shadow:0 40px 80px -40px #000c,inset 0 1px 0 #ffffff14;backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1)}
.zy-panel-t{font-size:14px;letter-spacing:.14em;color:var(--j-gold);margin:0 0 18px!important;display:flex;justify-content:space-between;gap:12px;align-items:baseline}

/* ---------- 4. 01 庄园 ---------- */
.zy-globe{justify-self:end;width:min(100%,540px);margin:0;padding:22px 22px 20px;border-radius:24px;background:#0f1f18a6;border:1px solid #f3ecd824;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.zy-globe-view{display:none}
html.zy-j .zy-globe-view{display:block;position:relative;width:100%;max-width:420px;aspect-ratio:1;margin:-4px auto 4px;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}
html.zy-j .zy-globe-view.is-drag{cursor:grabbing}
.zy-globe-cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.zy-globe-tip{position:absolute;left:50%;bottom:0;translate:-50% 0;margin:0!important;padding:4px 12px;border-radius:999px;background:#0c1813b3;font-size:12px;letter-spacing:.1em;color:var(--j-cream-3);white-space:nowrap;pointer-events:none;transition:opacity .8s}
.zy-globe-view.is-touched .zy-globe-tip{opacity:0}
.zy-globe-list{list-style:none;margin:8px 0 14px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}
.zy-globe-list .is-home{grid-column:1/-1}
.zy-globe-list button{all:unset;box-sizing:border-box;display:flex;align-items:baseline;gap:9px;width:100%;padding:6px 8px;border-radius:10px;cursor:pointer;color:var(--j-cream-2);font-size:13px;line-height:1.4;letter-spacing:.02em;transition:background-color .3s,color .3s}
.zy-globe-list b{flex:none;font:500 13.5px/1.4 var(--j-num);color:var(--j-cream);min-width:46px;letter-spacing:0}
.zy-globe-list button:hover,.zy-globe-list button:focus-visible,.zy-globe-list li.is-on button{background:#f3ecd814;color:var(--j-cream)}
.zy-globe-list .is-home button{color:var(--j-cream);font-size:14px}
.zy-globe-list .is-home b{color:var(--j-gold)}
.zy-globe figcaption{font-size:13.5px;letter-spacing:.1em;color:var(--j-cream-2)}
.zy-globe figcaption small{display:block;margin-top:5px;font-size:12px;letter-spacing:.04em;color:var(--j-cream-3)}
.zy-stats{display:grid;grid-template-columns:1fr 1fr;gap:26px 22px;margin:0 0 26px}
.zy-stats>div{border-top:1px solid #f3ecd82e;padding-top:14px}
.zy-stats dt{font-size:13px;letter-spacing:.14em;color:var(--j-cream-3);margin-bottom:6px}
.zy-stats dd{margin:0;display:flex;align-items:baseline;gap:6px}
.zy-stats dd span{font:400 clamp(40px,4.4vw,64px)/1 var(--j-num);color:var(--j-cream);font-variant-numeric:tabular-nums}
.zy-stats dd small{font-size:14px;color:var(--j-gold)}
.zy-stats-3{grid-template-columns:repeat(3,1fr)}
.zy-climate{list-style:none;margin:0 0 22px;padding:16px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid #f3ecd82e}
.zy-climate li{font-size:12.5px;line-height:1.6;color:var(--j-cream-3);letter-spacing:.04em}
.zy-climate b{display:block;font:500 17px/1.3 var(--j-num);color:var(--j-cream);letter-spacing:0}
.zy-chip-link{display:inline-flex;gap:8px;align-items:center;padding:9px 16px;border-radius:999px;border:1px solid #dcc37a59;color:var(--j-gold)!important;text-decoration:none;font-size:13px;letter-spacing:.04em;transition:background-color .3s,border-color .3s}
.zy-chip-link:hover{background:#dcc37a1f;border-color:var(--j-gold)}

/* ---------- 5. 02 采摘 ---------- */
.zy-photos{display:grid;grid-template-columns:1fr 1.25fr;gap:14px;margin-top:28px}
.zy-photos figure,.zy-photo-inline{margin:0;position:relative;border-radius:16px;overflow:hidden;background:#0006}
.zy-photos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:scale 1.2s var(--j-ease)}
.zy-photos figure:hover img{scale:1.05}
.zy-photos figcaption,.zy-photo-inline figcaption{position:absolute;left:10px;bottom:10px;padding:4px 10px;border-radius:999px;background:#0c1813cc;font-size:12px;letter-spacing:.08em;color:var(--j-cream-2)}
.zy-photo-inline{margin-top:22px}
.zy-photo-inline img{width:100%;aspect-ratio:16/9;object-fit:cover}
.zy-ripe-stage{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;align-items:center;margin-bottom:6px}
.zy-ripe-fig{position:relative;justify-self:center;width:100%;max-width:230px;aspect-ratio:220/270}
.zy-ripe-olive{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 18px 24px #0009)}
.zy-ripe-cv{position:absolute;inset:0;width:100%;height:100%;display:block;transform-origin:64% 10%}
.zy-ripe.has-cv .zy-ripe-olive{visibility:hidden}
.zy-ripe-prods{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.zy-ripe-prods li:empty{display:none}
.zy-ripe-prods a,.zy-ripe-prods li>div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;padding:8px;border-radius:16px;background:#f3ecd80d;border:1px solid #f3ecd81c;text-decoration:none;color:var(--j-cream);transition:background-color .3s,border-color .3s}
.zy-ripe-prods a:hover{background:#f3ecd81a;border-color:#dcc37a66}
.zy-ripe-prods img,.zy-ripe-noimg{display:block;width:56px;height:56px;border-radius:12px;background:#fff;object-fit:contain}
.zy-ripe-noimg{background:radial-gradient(circle at 38% 34%,#e9e0b5 0 5%,#b89b54 32%,#6d4a3c 72%,#3a2230) padding-box,#f3ecd8;border:10px solid #f7f2e2}
.zy-ripe-prods b{display:block;font:500 22px/1.1 var(--j-num);color:var(--j-gold);letter-spacing:.02em}
.zy-ripe-prods em{display:block;font-style:normal;font-size:13.5px;line-height:1.5;color:var(--j-cream);margin-top:3px}
.zy-ripe-prods small{display:block;font-size:12.5px;line-height:1.5;color:var(--j-cream-3)}
.zy-ripe-prods i{display:inline-block;margin-top:6px;font-style:normal;font-size:13px;color:var(--j-gold);border-bottom:1px solid #dcc37a66}
html.zy-j .zy-ripe-prods{display:block}
html.zy-j .zy-ripe-prods li{display:none}
html.zy-j .zy-ripe-prods li.is-on{display:block;animation:zy-j-fade-up .45s var(--j-ease) both}
html.zy-j .zy-ripe-prods a,html.zy-j .zy-ripe-prods li>div{grid-template-columns:1fr;justify-items:start;gap:10px;padding:14px}
html.zy-j .zy-ripe-prods img,html.zy-j .zy-ripe-noimg{width:100%;max-width:132px;height:auto;aspect-ratio:1}
.zy-ripe-track{position:relative}
html.zy-j .zy-ripe-track{padding-top:54px}
.zy-ripe-pins{position:absolute;left:13px;right:13px;top:0;height:54px;margin:0;padding:0;list-style:none;pointer-events:none}
.zy-ripe-pins li{position:absolute;left:calc(var(--at)*1%);bottom:2px;translate:-50% 0;pointer-events:auto}
.zy-ripe-pins li.is-up{bottom:28px}
.zy-ripe-pins button{appearance:none;position:relative;display:block;padding:5px 9px;border-radius:999px;border:1px solid #dcc37a80;background:#0c1813e0;color:var(--j-cream);font:600 12px/1 var(--j-num);letter-spacing:.04em;cursor:pointer;white-space:nowrap;transition:background-color .3s,color .3s,border-color .3s,translate .4s var(--j-ease)}
.zy-ripe-pins button::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:15px;background:#dcc37a66;pointer-events:none}
.zy-ripe-pins li.is-up button::after{height:41px}
.zy-ripe-pins button:hover{border-color:var(--j-gold)}
.zy-ripe-pins li.is-on button{background:var(--j-gold);border-color:var(--j-gold);color:#1a2a1f;translate:0 -2px}
.zy-ripe-pins li.is-on button::after{background:var(--j-gold)}
.zy-ripe-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.zy-ripe-range{-webkit-appearance:none;appearance:none;width:100%;height:30px;margin:6px 0 2px;background:transparent;cursor:pointer}
.zy-ripe-range::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(90deg,#8fb04a,#b3bf45 30%,#9a5a64 58%,#5c2f47 78%,#2a1d26)}
.zy-ripe-range::-moz-range-track{height:8px;border-radius:4px;background:linear-gradient(90deg,#8fb04a,#b3bf45 30%,#9a5a64 58%,#5c2f47 78%,#2a1d26)}
.zy-ripe-range::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-9px;border-radius:50%;background:#f7f1dc;border:3px solid var(--j-gold);box-shadow:0 4px 12px #0009}
.zy-ripe-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#f7f1dc;border:3px solid var(--j-gold);box-shadow:0 4px 12px #0009}
.zy-ripe-scale{list-style:none;margin:0 0 16px;padding:0;display:flex;justify-content:space-between;font-size:12.5px;letter-spacing:.12em;color:var(--j-cream-3)}
.zy-ripe-out p{font-size:14.5px;line-height:1.85;color:var(--j-cream-2);margin:0 0 10px}
.zy-ripe-out b{display:block;font:500 17px/1.5 var(--j-serif);color:var(--j-cream);margin-bottom:4px}
.zy-ripe-out a{display:inline-block;margin-top:8px;color:var(--j-gold);text-decoration:none;border-bottom:1px solid #dcc37a66}
html.zy-j .zy-ripe-out p{display:none}
html.zy-j .zy-ripe-out p.is-on{display:block;animation:zy-j-fade-up .5s var(--j-ease) both}

/* 甄选：绿色果筐 + 可以挑的果 */
.zy-sort-count{font-size:13px;letter-spacing:.06em;color:var(--j-cream-2)}
.zy-sort-count b{font:600 18px/1 var(--j-num);color:var(--j-gold)}
.zy-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px);padding:clamp(16px,2vw,24px);border-radius:14px;background:repeating-linear-gradient(90deg,#0000 0 22px,#0000001f 22px 24px),linear-gradient(#2f8c43,#256f35);border:6px solid #2b7d3c;box-shadow:inset 0 10px 24px #0006,0 20px 40px -24px #000c}
.zy-olive{appearance:none;border:0;padding:0;cursor:pointer;width:100%;aspect-ratio:1.36;border-radius:50%;rotate:var(--r,0deg);background:radial-gradient(circle at 34% 30%,#e2eea4 0 7%,#a5c24d 26%,#6f9230 62%,#46621b 100%);box-shadow:inset -6px -8px 14px #0005,0 7px 10px -6px #000a;transition:transform .7s var(--j-ease),opacity .6s,filter .3s;position:relative}
.zy-olive.is-t{background:radial-gradient(circle at 34% 30%,#e7d7a6 0 7%,#9e8a4a 26%,#7a4a4f 62%,#48283a 100%)}
.zy-olive.is-bad::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse 34% 26% at 62% 58%,#4b3014 0 40%,#6b4a24b3 62%,transparent 80%),radial-gradient(ellipse 12% 9% at 40% 64%,#3a2610 0 60%,transparent 100%)}
.zy-olive.is-split::after{background:linear-gradient(118deg,transparent 46%,#2c1d0e 47% 50%,transparent 52%),radial-gradient(ellipse 30% 22% at 55% 50%,#5a3a1a99 0 50%,transparent 80%)}
.zy-olive:hover{filter:brightness(1.12)}
.zy-olive.is-out{transform:translate(60px,-160px) rotate(80deg) scale(.3);opacity:0;pointer-events:none}
.zy-olive.is-nope{animation:zy-j-shake .5s}
.zy-sort-msg{margin:16px 0 0!important;font-size:14.5px;line-height:1.8;color:var(--j-cream-2);min-height:3.6em}
.zy-sort-next{display:none}
.zy-sort.is-done .zy-sort-next{display:inline-flex;margin-top:4px;gap:8px;color:var(--j-gold);text-decoration:none;font-size:15px;letter-spacing:.08em;border-bottom:1px solid #dcc37a66;padding-bottom:3px}
.zy-sort.is-done .zy-tray{box-shadow:inset 0 10px 24px #0006,0 0 0 3px #dcc37a55,0 20px 40px -24px #000c}

/* 3 小时表盘 */
.zy-clock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;margin:0}
.zy-clock svg{grid-row:1/3;grid-column:1;width:100%;max-width:280px;justify-self:center;overflow:visible}
.zy-clock-face{fill:#0c181399;stroke:#f3ecd833;stroke-width:1.5}
.zy-clock-ticks path{stroke:#f3ecd866;stroke-width:3;stroke-linecap:round}
.zy-clock-arc{fill:none;stroke:var(--j-gold);stroke-width:14;stroke-linecap:round;stroke-dasharray:25 100;stroke-dashoffset:0;transform:rotate(-90deg);transform-origin:160px 160px;filter:drop-shadow(0 0 10px #dcc37a88)}
.zy-clock-hand{transform-origin:160px 160px;rotate:90deg}
.zy-clock-hand path{stroke:var(--j-cream);stroke-width:5;stroke-linecap:round}
.zy-clock-hand circle{fill:var(--j-gold)}
.zy-clock-center{grid-row:1/3;grid-column:1;justify-self:center;align-self:center;text-align:center;translate:0 34px;pointer-events:none}
.zy-clock-center b{display:block;font:400 64px/1 var(--j-num);color:var(--j-cream)}
.zy-clock-center span{font-size:13px;letter-spacing:.2em;color:var(--j-gold)}
.zy-clock-steps{grid-column:2;grid-row:1/3;list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:16px}
.zy-clock-steps li{position:relative;padding-left:40px;font-size:13.5px;line-height:1.6;color:var(--j-cream-3)}
.zy-clock-steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid #dcc37a80;font:13px/1 var(--j-num);color:var(--j-gold);transition:background-color .4s,color .4s}
.zy-clock-steps b{display:block;font:500 16px/1.4 var(--j-serif);color:var(--j-cream)}

/* ---------- 6. 03 冷榨：生产线 ---------- */
.zy-ch-press .zy-stage{background:radial-gradient(90% 80% at 72% 50%,#1b3328 0%,#0e1c16 55%,#0a1410 100%)}
.zy-ch-press .zy-shade{background:linear-gradient(90deg,#0a1510f5 0%,#0a1510cc 36%,#0a151066 70%,#0a1510a6 100%)}
.zy-pline-panel{position:absolute;right:3.5%;top:45%;width:54%;translate:0 -50%;opacity:0;transition:opacity .8s var(--j-ease-io)}
.zy-ch-press:not([data-step]) .zy-pline-panel{opacity:1}
.zy-ch-press:not([data-step]) .zy-media>video{opacity:.3}
.zy-ch-press[data-step]:not([data-step="0"]) .zy-pline-panel{opacity:1}
.zy-ch-press[data-step]:not([data-step="0"]) .zy-media>video{opacity:0}
.zy-pline{width:100%;height:auto;aspect-ratio:2/1;overflow:hidden;display:block;border-radius:22px;background:radial-gradient(70% 70% at 50% 45%,#f3ecd80d,#0000 70%)}
.zy-cam{transition:transform 1.25s var(--j-ease-io)}
.zy-floor{stroke:#f3ecd81f;stroke-width:3}
.zy-pipe{stroke:#f3ecd817;stroke-width:18;stroke-linecap:round;fill:none}
.zy-flow{fill:none;stroke-width:11;stroke-linecap:round;stroke-dasharray:.1 26;opacity:.12;transition:opacity .6s}
.zy-f1,.zy-f2{stroke:#a9c45e}.zy-f3,.zy-f4{stroke:#9d8a45}.zy-f5{stroke:#c9ae45}.zy-f6{stroke:#e6cd5c}
.zy-flow.is-on{opacity:1;animation:zy-j-flow 1.1s linear infinite}
.zy-st{opacity:.3;transition:opacity .7s var(--j-ease-io);cursor:pointer}
.zy-st.is-done{opacity:.62}.zy-st.is-on{opacity:1}
.zy-ch-press:not([data-step]) .zy-st{opacity:1}.zy-ch-press:not([data-step]) .zy-flow{opacity:.7}
.zy-st .zy-body{fill:#f3ecd80d;stroke:#f3ecd8d9;stroke-width:3;stroke-linejoin:round}
.zy-st .zy-ln{fill:none;stroke:#f3ecd8b3;stroke-width:3;stroke-linecap:round}
.zy-st text{fill:var(--j-cream);font:500 34px/1 var(--j-sans);text-anchor:middle;letter-spacing:2px}
.zy-st text.zy-sub{font-size:24px;fill:#f3ecd88f;letter-spacing:1px}
.zy-st text.zy-tiny{font-size:22px;fill:#f3ecd8b3}
.zy-st.is-on text:not(.zy-sub):not(.zy-tiny){fill:var(--j-gold)}
.zy-water{fill:none;stroke:#8fc3d8;stroke-width:3}
.zy-bob ellipse{fill:#9cb65b;stroke:#1a2a1f;stroke-width:2}
.zy-drip{stroke:#8fc3d8;stroke-width:3;stroke-linecap:round;stroke-dasharray:6 12}
.zy-rotor path{stroke:var(--j-gold);stroke-width:5;stroke-linecap:round}
.zy-rotor circle{fill:var(--j-gold)}
.zy-rotor{transform-box:view-box;transform-origin:450px 475px}
.zy-paste{fill:#8d7c3c;opacity:.6}
.zy-paddles ellipse{fill:none;stroke:var(--j-gold);stroke-width:3;transform-box:fill-box;transform-origin:center}
.zy-temp rect{fill:#dcc37a1f;stroke:var(--j-gold);stroke-width:2.5}
.zy-temp text{fill:var(--j-gold)!important;font:600 30px/1 var(--j-num)!important}
.zy-screw{stroke:#dcc37acc;stroke-width:4;stroke-linecap:round}
.zy-oil-dot{fill:var(--j-oil)}.zy-pomace{fill:#7a6533}
.zy-discs path{fill:none;stroke:var(--j-gold);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.zy-stream{stroke:var(--j-oil);stroke-width:9;stroke-linecap:round;stroke-dasharray:16 8}
.zy-oilpool{fill:url(#zy-oil-g);transform-box:fill-box;transform-origin:50% 100%;scale:1 .35}
.zy-drop{fill:url(#zy-oil-g);transform-box:fill-box;transform-origin:50% 100%;scale:0;filter:drop-shadow(0 0 22px #e6cd5caa)}
.zy-st6.is-on .zy-drop{scale:1;transition:scale .9s .5s var(--j-ease)}
.zy-st6.is-on .zy-oilpool{scale:1 1;transition:scale 2.4s .4s var(--j-ease)}
.zy-st.is-on .zy-rotor{animation:zy-j-spin .9s linear infinite}
.zy-st.is-on .zy-paddles ellipse{animation:zy-j-paddle 1.8s ease-in-out infinite}
.zy-st.is-on .zy-paddles ellipse:nth-child(2){animation-delay:-.36s}.zy-st.is-on .zy-paddles ellipse:nth-child(3){animation-delay:-.72s}.zy-st.is-on .zy-paddles ellipse:nth-child(4){animation-delay:-1.08s}.zy-st.is-on .zy-paddles ellipse:nth-child(5){animation-delay:-1.44s}
.zy-st.is-on .zy-screw{animation:zy-j-screw .5s linear infinite}
.zy-st.is-on .zy-discs{animation:zy-j-disc 1.2s ease-in-out infinite alternate}
.zy-st.is-on .zy-drip{animation:zy-j-drip .6s linear infinite}
.zy-st.is-on .zy-bob ellipse{animation:zy-j-bob 1.4s ease-in-out infinite alternate}
.zy-st.is-on .zy-bob ellipse:nth-child(odd){animation-delay:-.7s}
.zy-st.is-on .zy-stream{animation:zy-j-stream .5s linear infinite}
.zy-pline-cap{position:absolute;left:4px;bottom:100%;margin:0 0 10px;display:flex;align-items:baseline;gap:14px;font-size:12.5px;letter-spacing:.1em;color:var(--j-cream-3);pointer-events:none}
.zy-pline-cap b{font:500 15px/1.3 var(--j-serif);color:var(--j-cream);letter-spacing:.06em}
.zy-step-photos{position:absolute;right:calc(3.5% + 112px);bottom:calc(4.5% + 12px);width:min(23vw,360px);aspect-ratio:16/10;pointer-events:none}
.zy-step-photos figure{position:absolute;inset:0;margin:0;border-radius:16px;overflow:hidden;background:#0c1813;border:1px solid #f3ecd833;box-shadow:0 30px 60px -30px #000;opacity:0;translate:0 14px;transition:opacity .7s var(--j-ease-io),translate .9s var(--j-ease)}
.zy-step-photos img,.zy-step-photos video{display:block;width:100%;height:100%;object-fit:cover}
.zy-step-photos figcaption{position:absolute;left:10px;bottom:10px;padding:4px 10px;border-radius:999px;background:#0c1813cc;font-size:12px;letter-spacing:.06em;color:var(--j-cream-2)}
.zy-ch-press[data-step="1"] .zy-step-photos [data-for="1"],.zy-ch-press[data-step="2"] .zy-step-photos [data-for="2"],.zy-ch-press[data-step="3"] .zy-step-photos [data-for="3"],.zy-ch-press[data-step="4"] .zy-step-photos [data-for="4"],.zy-ch-press[data-step="6"] .zy-step-photos [data-for="6"]{opacity:1;translate:0 0}
.zy-press-intro .zy-copy{max-width:600px}
.zy-press-h{font-size:clamp(34px,4vw,58px)!important}
.zy-press-h i{font-style:normal;color:var(--j-gold);font-family:var(--j-num)}
.zy-press-h small{display:block;margin-top:16px;font:500 clamp(16px,1.4vw,20px)/1.5 var(--j-sans);letter-spacing:.14em;color:var(--j-gold)}
.zy-mills{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.zy-mills li{padding:18px 18px 16px;border-radius:18px;background:#0c1813a6;border:1px solid #f3ecd82b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.zy-mills b{display:block;font:600 22px/1.1 var(--j-num);letter-spacing:.12em;color:var(--j-cream)}
.zy-mill-origin{display:block;margin:6px 0 10px;font-size:12.5px;letter-spacing:.16em;color:var(--j-gold)}
.zy-mills p{font-size:13.5px!important;line-height:1.75!important;color:var(--j-cream-3)!important;margin:0 0 10px!important}
.zy-mills a{font-size:13px;color:var(--j-gold);text-decoration:none;border-bottom:1px solid #dcc37a55}
.zy-scroll-cue{margin-top:30px!important;font-size:13px!important;letter-spacing:.18em;color:var(--j-cream-3)!important}
.zy-scroll-cue::after{content:"";display:block;width:1px;height:46px;margin:14px 0 0 6px;background:linear-gradient(var(--j-gold),#dcc37a00)}
.zy-steps{list-style:none;margin:0;padding:0 0 12vh}
.zy-step,.zy-press-intro{pointer-events:none}
.zy-step .zy-copy,.zy-press-intro .zy-copy{pointer-events:auto}
.zy-step{min-height:66vh;min-height:66svh;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);padding-top:10vh;padding-bottom:10vh}
.zy-step .zy-copy{max-width:420px;padding:28px 30px;border-radius:22px;background:#0c1813b3;border:1px solid #f3ecd824;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .5s,background-color .5s}
.zy-step.is-current .zy-copy{border-color:#dcc37a66;background:#0c1813d9}
.zy-step h3{font-size:clamp(26px,2.6vw,38px)!important;margin-bottom:14px!important}
.zy-photo-note{font-size:12.5px!important;color:var(--j-cream-3)!important;margin-top:8px}

/* ---------- 7. 04 锁鲜 · 灌装 · 灯检 ---------- */
.zy-tank-stage{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end}
.zy-tank-stage svg{width:100%;max-width:250px;justify-self:center;overflow:visible}
.zy-tank-body{fill:#f3ecd80a;stroke:#f3ecd8cc;stroke-width:4}
.zy-tank-pipe{fill:none;stroke:#f3ecd8b3;stroke-width:10;stroke-linecap:round}
.zy-tank-lab{fill:var(--j-cream-3);font:500 18px/1 var(--j-sans);text-anchor:middle}
.zy-tank-oil{fill:url(#zy-tank-oil)}
.zy-o2 circle{fill:#e3876b}.zy-n2 circle{fill:#8fb8d6}
.zy-o2,.zy-n2{transform:translate(var(--x),var(--y))}
.zy-n2{opacity:0;transform:translate(96px,-24px)}
.zy-o2{transition:transform 1.5s var(--j-ease-io) var(--d),opacity .5s calc(var(--d) + 1.2s)}
.zy-n2{transition:transform 1.5s var(--j-ease) calc(var(--d) + .2s),opacity .4s calc(var(--d) + .2s)}
.zy-tank.is-charged .zy-o2{transform:translate(224px,-30px);opacity:0}
.zy-tank.is-charged .zy-n2{transform:translate(var(--x),var(--y));opacity:1}
.zy-mols circle{animation:zy-j-float 2.6s ease-in-out infinite alternate}
.zy-mols g:nth-child(odd) circle{animation-duration:3.1s;animation-delay:-1s}
.zy-tank-key{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:13px;color:var(--j-cream-2)}
.zy-tank-key li{display:flex;gap:8px;align-items:center}
.zy-tank-key li::before{content:"";width:18px;height:10px;border-radius:5px}
.zy-tank-key .is-o2::before{background:#e3876b}.zy-tank-key .is-n2::before{background:#8fb8d6}
.zy-tank-btn{margin-top:20px}
.zy-tank-msg{margin-top:14px!important;font-size:14.5px;line-height:1.8;color:var(--j-cream-2);min-height:3.6em}
.zy-spot{margin:0}
.zy-spot-frame{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:#000}
.zy-spot-frame img{width:100%;height:100%;object-fit:cover}
.zy-spot figcaption{margin-top:14px;font-size:13px;letter-spacing:.08em;color:var(--j-cream-3)}

/* ---------- 8. 05 到餐桌（浅色） ---------- */
.zy-ch-table{background:var(--j-paper);color:var(--j-ink);padding:calc(var(--zy-head,80px) + 60px) 0 120px}
.zy-table-in{width:min(88%,1240px);margin:0 auto}
.zy-table-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px 64px;align-items:start}
.zy-table-side{display:grid;gap:28px}
.zy-table-photo{margin:34px 0 0;border-radius:22px;overflow:hidden;box-shadow:0 40px 70px -50px #16362899}
.zy-table-photo img{width:100%;aspect-ratio:3/2;object-fit:cover}
.zy-ch-table .zy-no{color:#9a7b2f}
.zy-ch-table .zy-copy>p:not(.zy-no){color:#3d4a3f}
.zy-table-head{grid-column:1;align-self:start;position:sticky;top:calc(var(--zy-head,80px) + 40px)}
.zy-taste,.zy-acid{background:#fffdf7;border:1px solid #e3dcc6;border-radius:24px;padding:clamp(22px,2.6vw,36px);box-shadow:0 40px 70px -50px #16362866}
.zy-taste-tabs{display:none}
html.zy-j .zy-taste-tabs{display:flex;gap:8px;margin-bottom:26px;flex-wrap:wrap}
.zy-taste-tabs button{appearance:none;border:1px solid #d9d1b8;background:#fff;border-radius:999px;padding:9px 16px 9px 9px;font:500 14.5px/1 var(--j-sans);color:#3d4a3f;display:inline-flex;align-items:center;gap:10px;cursor:pointer;transition:background-color .3s,border-color .3s,color .3s}
.zy-taste-tabs b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f0ead8;font:600 13px/1 var(--j-num)}
.zy-taste-tabs [aria-selected="true"]{background:var(--j-ink);border-color:var(--j-ink);color:#f7f3e6}
.zy-taste-tabs [aria-selected="true"] b{background:var(--j-gold);color:#1a2a1f}
.zy-taste-panel{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;padding:6px 0 18px;border-bottom:1px solid #ebe4cf;margin-bottom:18px}
.zy-taste-panel:last-child{border-bottom:0;margin-bottom:0}
html.zy-j .zy-taste-panel{border:0;margin:0;padding:0}
html.zy-j .zy-taste-panel[hidden]{display:none}
html.zy-j .zy-taste-panel:not([hidden]){animation:zy-j-fade-up .5s var(--j-ease) both}
.zy-taste h4{font:500 26px/1.3 var(--j-serif);margin:0 0 10px;color:var(--j-ink)}
.zy-taste p{font-size:15.5px;line-height:1.9;color:#3d4a3f;margin:0 0 14px}
.zy-taste-panel{grid-template-columns:minmax(0,210px) minmax(0,1fr)}
.zy-taste-fig{position:relative;margin:0;width:100%;max-width:210px;aspect-ratio:240/220;justify-self:center}
.zy-taste-svg{display:block;width:100%;height:100%;overflow:visible}
.zy-t-bg{fill:#f4edda}
.zy-t-glass{fill:#dfeef2;fill-opacity:.35;stroke:#1f3d2e;stroke-width:2.4;stroke-linejoin:round}
.zy-t-rim{fill:#eaf4f6;stroke:#1f3d2e;stroke-width:2}
.zy-t-shine{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;opacity:.8}
.zy-t-skin{fill:#f6e5cf;stroke:#1f3d2e;stroke-width:2.4;stroke-linejoin:round}
.zy-t-line{fill:none;stroke:#1f3d2e;stroke-width:2;stroke-linecap:round}
.zy-t-arrow{fill:none;stroke:#b99a45;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.zy-t-oiltop{fill:#f1e08f}
.zy-t-wisps path{fill:none;stroke:#8fb04a;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:4 6}
.zy-t-leaf{fill:#9cb65b;stroke:#1f3d2e;stroke-width:1.6}
.zy-t-apple path:first-child{fill:#c9d86a;stroke:#1f3d2e;stroke-width:1.6}
.zy-t-air path{fill:none;stroke:#7aa7c2;stroke-width:2.2;stroke-dasharray:5 6;stroke-linecap:round}
.zy-t-sparks path{stroke:#e0902e;stroke-width:2.4;stroke-linecap:round}
.zy-t-swirl{transform-box:view-box;transform-origin:120px 170px}
.zy-t-notes>*{transform-box:fill-box;transform-origin:center}
.zy-timer-track{fill:none;stroke:#ece5cf;stroke-width:5}
.zy-timer-arc{fill:none;stroke:#b99a45;stroke-width:5;stroke-linecap:round;stroke-dasharray:100 100;stroke-dashoffset:0;transform-box:view-box;transform-origin:120px 116px;rotate:-90deg}
.zy-timer-num{position:absolute;right:-4px;top:-2px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;padding-bottom:9px;background:#fffdf7;border:1px solid #e3dcc6;box-shadow:0 10px 20px -14px #16362880;font:400 24px/1 var(--j-num);color:var(--j-ink)}
.zy-timer-unit{position:absolute;right:-4px;top:30px;width:54px;text-align:center;font-size:11px;letter-spacing:.1em;color:#8a8a73}
.zy-timer-msg{min-height:1.6em;color:#8a6a1f!important;font-size:14.5px!important}
.zy-aromas{list-style:none;margin:6px 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.zy-aromas button{appearance:none;border:1px solid #d9d1b8;background:#fff;border-radius:999px;padding:10px 16px;font:500 14.5px/1 var(--j-sans);color:#3d4a3f;cursor:pointer;transition:transform .4s var(--j-ease),background-color .3s,border-color .3s,color .3s}
.zy-aromas button:hover{transform:translateY(-2px);border-color:#b99a45}
.zy-aromas button.is-good{background:#e6efd2;border-color:#8fb04a;color:#2f4a16}
.zy-aromas button.is-good::after{content:" ✓"}
.zy-aromas button.is-bad{background:#f4e1da;border-color:#c98b73;color:#7a3420;text-decoration:line-through}
.zy-aroma-msg{font-size:14.5px!important;color:#5f6a5c!important}
.zy-taste-key{padding:16px 18px;border-radius:14px;background:#f5efdc;color:var(--j-ink)!important}
.zy-taste-key b{color:#8a6a1f}
.zy-panel-t{font-size:14px}
.zy-acid .zy-panel-t{color:#9a7b2f}
.zy-acid-big{font:400 clamp(56px,6vw,84px)/1 var(--j-num);color:var(--j-ink);margin:0 0 26px}
.zy-acid-big b{font-weight:400}
.zy-acid-bar{position:relative;height:12px;border-radius:6px;background:#ebe4cf;margin:46px 0 40px}
.zy-acid-fill{position:absolute;left:0;top:0;bottom:0;width:70%;border-radius:6px;background:linear-gradient(90deg,#d8c46a,#b99a45);transform-origin:0 50%}
.zy-acid-mark{position:absolute;top:0;translate:-50% 0;font-size:12.5px;white-space:nowrap;letter-spacing:.04em}
.zy-acid-mark::before{content:"";position:absolute;left:50%;width:2px;height:22px;translate:-1px 0}
.zy-acid-mark.is-zy{left:70%;bottom:22px;top:auto;color:#8a6a1f;font-weight:600}
.zy-acid-mark.is-zy::before{top:100%;background:#8a6a1f}
.zy-acid-mark.is-gb{left:80%;top:22px;color:#7a7a66}
.zy-acid-mark.is-gb::before{bottom:100%;background:#9a9a86}
.zy-acid-0,.zy-acid-1{position:absolute;top:18px;font:12px/1 var(--j-num);color:#9a9a86}
.zy-acid-0{left:0}.zy-acid-1{right:0}
.zy-acid-note{font-size:13.5px;line-height:1.8;color:#5f6a5c;margin:0}
.zy-trust{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.zy-trust a{display:flex;flex-direction:column;gap:8px;height:100%;padding:20px 20px 18px;border-radius:18px;border:1px solid #e3dcc6;background:#fffdf7;text-decoration:none;color:var(--j-ink);transition:transform .6s var(--j-ease),box-shadow .6s var(--j-ease),border-color .3s}
.zy-trust a:hover{transform:translateY(-4px);border-color:#c9ad6a;box-shadow:0 30px 50px -36px #16362880}
.zy-trust b{font:500 18px/1.35 var(--j-serif)}
.zy-trust span{font-size:13px;line-height:1.6;color:#6a7466}
.zy-j-end{display:flex;flex-wrap:wrap;gap:20px 30px;align-items:center;justify-content:center;margin-top:30px!important}
.zy-j-end a:not(.zy-btn){color:var(--j-ink);text-decoration:none;border-bottom:1px solid #18382a4d;padding-bottom:3px;font-size:15px}
.zy-ch-table .zy-btn{background:var(--j-ink);color:#f7f3e6!important}
.zy-ch-table .zy-btn:hover{background:#24503b}

/* ---------- 9. 选一瓶 ---------- */
.zy-shop{background:linear-gradient(#f4f1e7,#efeadb);color:var(--j-ink);padding:110px 0 120px;border-top:1px solid #e3dcc6}
.zy-shop-in{width:min(90%,1320px);margin:0 auto}
.zy-shop-head{text-align:center;margin-bottom:56px}
.zy-shop .zy-kicker{color:#9a7b2f}
.zy-shop h2{font-size:clamp(38px,5vw,72px);line-height:1.1;margin:0 0 20px;color:var(--j-ink)}
.zy-shop .zy-lede{color:#4a5a4d;margin:0 auto}
.zy-duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:90px}
.zy-duo-switch{display:none}
.zy-duo-card{display:flex;flex-direction:column;border-radius:26px;overflow:hidden;background:#fffdf8;border:1px solid #e3dcc6;box-shadow:0 50px 80px -60px #16362880;transition:transform .7s var(--j-ease),box-shadow .7s var(--j-ease)}
.zy-duo-card:hover{transform:translateY(-6px);box-shadow:0 60px 90px -60px #163628a6}
.zy-duo-img{display:block;aspect-ratio:2/1;overflow:hidden;background:#e9e4d4}
.zy-duo-img img{width:100%;height:100%;object-fit:cover;transition:scale 1.4s var(--j-ease)}
.zy-duo-card:hover .zy-duo-img img{scale:1.05}
.zy-duo-body{padding:clamp(22px,2.6vw,36px);display:flex;flex-direction:column;gap:0;flex:1}
.zy-duo-tag{font-size:12.5px;letter-spacing:.16em;color:#9a7b2f;margin:0 0 10px}
.zy-duo-body h3{font-size:clamp(28px,2.8vw,40px);line-height:1.2;margin:0 0 10px;color:var(--j-ink)}
.zy-duo-lede{font-size:15.5px;line-height:1.85;color:#4a5a4d;margin:0 0 22px}
.zy-duo-facts{margin:0 0 26px;border-top:1px solid #ece5d0}
.zy-duo-facts>div{display:grid;grid-template-columns:5.5em 1fr;gap:12px;padding:12px 8px;border-bottom:1px solid #ece5d0;border-radius:8px;transition:background-color .3s}
.zy-duo-facts dt{font-size:13px;letter-spacing:.1em;color:#8a8a73;padding-top:2px}
.zy-duo-facts dd{margin:0;font-size:15px;line-height:1.6;color:var(--j-ink)}
.zy-duo[data-row="raw"] [data-row="raw"],.zy-duo[data-row="craft"] [data-row="craft"],.zy-duo[data-row="acid"] [data-row="acid"],.zy-duo[data-row="life"] [data-row="life"],.zy-duo[data-row="fresh"] [data-row="fresh"],.zy-duo[data-row="use"] [data-row="use"]{background:#f3ecd4}
.zy-duo-body .zy-btn{align-self:flex-start;margin-top:auto;background:var(--j-ink);color:#f7f3e6!important}
.zy-duo-body .zy-btn:hover{background:#24503b}
.zy-shelf-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:18px}
.zy-shelf-head h3{font-size:clamp(26px,2.6vw,36px);color:var(--j-ink)}
.zy-shelf-count{margin:0;font-size:14px;color:#6a7466}
.zy-shelf-count b{font:500 20px/1 var(--j-num);color:var(--j-ink)}
.zy-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.zy-filters button{appearance:none;border:1px solid #d9d1b8;background:#fffdf8;border-radius:999px;padding:10px 18px;font:500 14.5px/1 var(--j-sans);color:#3d4a3f;cursor:pointer;transition:background-color .3s,border-color .3s,color .3s,transform .4s var(--j-ease)}
.zy-filters button:hover{border-color:#b99a45;transform:translateY(-1px)}
.zy-filters button[aria-pressed="true"]{background:var(--j-ink);border-color:var(--j-ink);color:#f7f3e6}
.zy-filters button[disabled]{opacity:.4;cursor:default;transform:none}
.zy-shelf-frame{position:relative}
.zy-shelf{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(176px,17.5vw,236px);gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:4px;padding:10px 4px 30px;scrollbar-width:thin;scrollbar-color:#c9bf9f transparent}
.zy-shelf.is-drag{scroll-snap-type:none;cursor:grabbing}
.zy-shelf.is-drag .zy-prod{pointer-events:none}
.zy-prod{scroll-snap-align:start;display:flex;flex-direction:column;gap:6px;padding:12px 12px 16px;border-radius:20px;background:#fffdf8;border:1px solid #e6dfca;text-decoration:none!important;color:var(--j-ink)!important;box-shadow:0 26px 40px -34px #16362880;transition:transform .6s var(--j-ease),box-shadow .6s var(--j-ease),border-color .3s,opacity .4s}
.zy-prod:hover{transform:translateY(-6px);border-color:#c9ad6a;box-shadow:0 40px 60px -40px #163628a6}
.zy-prod-img{display:grid;place-items:center;aspect-ratio:1;border-radius:14px;background:#fff;overflow:hidden;margin-bottom:8px}
.zy-prod-img img{width:92%;height:92%;object-fit:contain;transition:scale 1s var(--j-ease)}
.zy-prod:hover .zy-prod-img img{scale:1.06}
.zy-prod-cat{font-size:12px;letter-spacing:.12em;color:#9a7b2f}
.zy-prod-name{font-size:14.5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:3em}
.zy-prod-meta{font-size:12.5px;color:#7a8373}
.zy-prod-go{margin-top:auto;padding-top:8px;font-size:13px;color:#9a7b2f;opacity:.0;translate:-6px 0;transition:opacity .3s,translate .5s var(--j-ease)}
.zy-prod:hover .zy-prod-go,.zy-prod:focus-visible .zy-prod-go{opacity:1;translate:0 0}
.zy-prod[hidden]{display:none}
.zy-shelf-nav{position:absolute;top:38%;z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid #d9d1b8;background:#fffdf8f2;color:var(--j-ink);font-size:18px;display:grid;place-items:center;cursor:pointer;box-shadow:0 18px 30px -18px #16362880;transition:opacity .3s,transform .4s var(--j-ease)}
.zy-shelf-nav.is-prev{left:-18px}.zy-shelf-nav.is-next{right:-18px}
.zy-shelf-nav:hover{transform:scale(1.06)}
.zy-shelf-nav:disabled{opacity:0;pointer-events:none}
.zy-series{margin:18px 0 0;font-size:14px;color:#6a7466;display:flex;flex-wrap:wrap;gap:6px 0;align-items:center}
.zy-series a{color:var(--j-ink);text-decoration:none;padding:0 14px;border-left:1px solid #d9d1b8;line-height:1.2}
.zy-series a:first-child{border-left:0;padding-left:8px}
.zy-series a:hover{color:#9a7b2f}

/* ---------- 10. 入场动效（仅脚本启用后） ---------- */
html.zy-j:not(.zy-j-still) .zy-jr{opacity:0;translate:0 30px;transition:opacity 1s var(--j-ease),translate 1.2s var(--j-ease)}
html.zy-j:not(.zy-j-still) .zy-jr.is-in{opacity:1;translate:0 0}
html.zy-j .zy-jr.is-in:nth-child(2){transition-delay:.08s}html.zy-j .zy-jr.is-in:nth-child(3){transition-delay:.16s}html.zy-j .zy-jr.is-in:nth-child(4){transition-delay:.24s}html.zy-j .zy-jr.is-in:nth-child(5){transition-delay:.32s}html.zy-j .zy-jr.is-in:nth-child(6){transition-delay:.4s}
html.zy-j .zy-beat>.zy-jr.is-in{transition-delay:.18s}
html.zy-j:not(.zy-j-still) .zy-j-map::before{scale:0 1;transition:scale 1.6s .3s var(--j-ease-io)}
html.zy-j .zy-j-map.is-in::before{scale:1 1}
html.zy-j:not(.zy-j-still) .zy-j-map li{opacity:0;translate:0 14px;transition:opacity .8s,translate 1s var(--j-ease)}
html.zy-j .zy-j-map.is-in li{opacity:1;translate:0 0}
html.zy-j .zy-j-map.is-in li:nth-child(2){transition-delay:.3s}html.zy-j .zy-j-map.is-in li:nth-child(3){transition-delay:.6s}html.zy-j .zy-j-map.is-in li:nth-child(4){transition-delay:.9s}html.zy-j .zy-j-map.is-in li:nth-child(5){transition-delay:1.2s}
/* 纬度指针：从 45° 缓缓落到阆中 31.5° */
/* 表盘：3 小时 = 四分之一圈 */
html.zy-j:not(.zy-j-still) .zy-clock-arc{stroke-dashoffset:25;transition:stroke-dashoffset 2.6s .4s var(--j-ease-io)}
html.zy-j:not(.zy-j-still) .zy-clock-hand{rotate:0deg;transition:rotate 2.6s .4s var(--j-ease-io)}
html.zy-j .zy-clock.is-in .zy-clock-arc{stroke-dashoffset:0}
html.zy-j .zy-clock.is-in .zy-clock-hand{rotate:90deg}
html.zy-j:not(.zy-j-still) .zy-clock-steps li{opacity:.35;transition:opacity .5s}
html.zy-j .zy-clock.is-in .zy-clock-steps li{opacity:1}
html.zy-j .zy-clock.is-in .zy-clock-steps li:nth-child(1){transition-delay:.4s}html.zy-j .zy-clock.is-in .zy-clock-steps li:nth-child(2){transition-delay:1.1s}html.zy-j .zy-clock.is-in .zy-clock-steps li:nth-child(3){transition-delay:1.8s}html.zy-j .zy-clock.is-in .zy-clock-steps li:nth-child(4){transition-delay:2.5s}
html.zy-j .zy-clock.is-in .zy-clock-steps li:nth-child(4)::before{background:var(--j-gold);color:#1a2a1f;transition-delay:2.6s}
/* 酸度条 */
html.zy-j:not(.zy-j-still) .zy-acid-fill{scale:0 1;transition:scale 1.8s .3s var(--j-ease-io)}
html.zy-j .zy-acid.is-in .zy-acid-fill{scale:1 1}

@keyframes zy-j-fade-up{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes zy-j-shake{0%,100%{translate:0 0}20%{translate:-5px 0}40%{translate:5px 0}60%{translate:-3px 0}80%{translate:3px 0}}
@keyframes zy-j-flow{to{stroke-dashoffset:-26.1}}
@keyframes zy-j-spin{to{rotate:360deg}}
@keyframes zy-j-paddle{0%,100%{scale:1 1}50%{scale:1 -1}}
@keyframes zy-j-screw{to{translate:-26px 0}}
@keyframes zy-j-disc{from{translate:0 -3px}to{translate:0 3px}}
@keyframes zy-j-drip{to{stroke-dashoffset:-18}}
@keyframes zy-j-bob{from{translate:0 -3px}to{translate:0 4px}}
@keyframes zy-j-stream{to{stroke-dashoffset:-24}}
@keyframes zy-j-float{from{translate:0 -3px}to{translate:0 3px}}
@keyframes zy-j-probe{0%{top:0;opacity:0}8%{opacity:1}100%{top:90%;opacity:1}}
@keyframes zy-j-pulse{0%{box-shadow:0 0 0 0 #dcc37a99,0 0 22px #dcc37acc}70%{box-shadow:0 0 0 16px #dcc37a00,0 0 22px #dcc37acc}100%{box-shadow:0 0 0 0 #dcc37a00,0 0 22px #dcc37acc}}

/* 首屏背景在旅程完全遮住视口时停止绘制，节省手机电量 */
html.zy-cover .camera-backdrop{visibility:hidden}

/* ---------- 10b. 第三轮（2026-09-30）：写实果子、挑果 Great!、两条线实拍、工序实拍、灯检视频 ---------- */
/* 挑果：果子换成写实渲染（脚本生成），挑完出现 Great! */
.zy-tray-wrap{position:relative}
.zy-olive.is-real{background:transparent center/100% 100% no-repeat;border-radius:0;box-shadow:none;aspect-ratio:220/164;filter:drop-shadow(0 5px 4px #0000005c)}
.zy-olive.is-real::after{content:none}
.zy-olive canvas{display:block;width:100%;height:100%;pointer-events:none}
.zy-olive.is-real:hover{filter:drop-shadow(0 7px 6px #00000066) brightness(1.08)}
.zy-great{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;text-align:center;pointer-events:none;opacity:0}
.zy-great b{position:relative;z-index:1;font:italic 600 clamp(52px,6.2vw,80px)/1 var(--j-num);letter-spacing:.01em;color:#fff5cf;text-shadow:0 8px 30px #000a,0 0 44px #dcc37aa6}
.zy-great-sub{position:relative;z-index:1;margin-top:10px;padding:5px 14px;border-radius:999px;background:#0c1813b3;font-size:13.5px;letter-spacing:.1em;color:#fff}
.zy-great-sub:empty{display:none}
.zy-great i{position:absolute;left:50%;top:50%;width:var(--s,10px);height:calc(var(--s,10px)*1.35);border-radius:50%;background:var(--c,#9cb65b);opacity:0;pointer-events:none}
.zy-sort.is-done .zy-great{opacity:1}
.zy-sort.is-done .zy-great b{animation:zy-j-great 1s var(--j-ease) both}
.zy-sort.is-done .zy-great i{animation:zy-j-burst 1.2s var(--j-ease) var(--d,0s) both}
.zy-sort.is-done .zy-tray{filter:brightness(.62) saturate(.85);transition:filter .6s}
.zy-sort-real{position:absolute;inset:0;z-index:4;margin:0;border-radius:14px;overflow:hidden;background:#000;opacity:0;visibility:hidden;transition:opacity .6s,visibility 0s .6s}
.zy-sort-real video{display:block;width:100%;height:100%;object-fit:cover}
.zy-sort-real figcaption{position:absolute;left:10px;bottom:10px;padding:4px 10px;border-radius:999px;background:#0c1813cc;font-size:12px;letter-spacing:.06em;color:var(--j-cream-2)}
.zy-sort.is-real .zy-sort-real{opacity:1;visibility:visible;transition:opacity .6s}
.zy-sort.is-real .zy-great{opacity:0;transition:opacity .4s}
.zy-sort-acts{display:none;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:4px 0 0!important}
html.zy-j .zy-sort.is-done .zy-sort-acts{display:flex}
.zy-sort-acts button{appearance:none;border:1px solid #dcc37a80;background:transparent;color:var(--j-gold);border-radius:999px;padding:9px 15px;font:500 13.5px/1 var(--j-sans);letter-spacing:.04em;cursor:pointer;transition:background-color .3s,color .3s,transform .4s var(--j-ease)}
.zy-sort-acts button:hover{transform:translateY(-1px);background:#dcc37a1f}
.zy-sort-acts .zy-sort-watch{background:var(--j-gold);border-color:var(--j-gold);color:#1a2a1f}
.zy-sort-acts .zy-sort-watch:hover{background:#e6cf8a}
.zy-sort.is-done .zy-sort-acts .zy-sort-next{margin-top:0}
@keyframes zy-j-great{0%{opacity:0;scale:.3;rotate:-8deg}55%{opacity:1;scale:1.14;rotate:2deg}100%{opacity:1;scale:1;rotate:0deg}}
@keyframes zy-j-burst{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a)) translateY(0) scale(.4)}12%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(var(--r,120px)*-1)) scale(1)}}

/* 两条冷榨线：悬停（手机上点一下）播放各自的厂区实拍 */
.zy-mill-tiles{display:none}
html.zy-j .zy-mill-tiles{display:grid;justify-self:end;width:min(100%,560px);grid-template-columns:1fr 1fr;gap:16px 16px;align-self:center;pointer-events:auto}
.zy-mill-tile{position:relative;margin:0;min-width:0}
.zy-mill-hit{all:unset;box-sizing:border-box;position:relative;display:block;width:100%;aspect-ratio:3/4;border-radius:20px;overflow:hidden;cursor:pointer;background:#0c1813;border:1px solid #f3ecd82b;box-shadow:0 40px 70px -44px #000;transition:transform .8s var(--j-ease),border-color .4s,box-shadow .8s var(--j-ease),opacity .5s}
.zy-mill-hit:focus-visible{outline:2px solid var(--j-gold);outline-offset:4px}
.zy-mill-hit img,.zy-mill-hit video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zy-mill-hit img{transition:scale 1.2s var(--j-ease),filter .6s}
.zy-mill-hit video{opacity:0;transition:opacity .5s}
.zy-mill-hit video.is-playing{opacity:1}
.zy-mill-hit::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0c181300 55%,#0c1813b3);pointer-events:none}
.zy-mill-play{position:absolute;left:14px;bottom:14px;z-index:1;width:42px;height:42px;border-radius:50%;background:#0c1813b3;border:1px solid #f3ecd859;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color .3s,border-color .3s}
.zy-mill-play::before,.zy-mill-play::after{content:"";position:absolute;top:50%;left:50%;translate:-35% -50%;border-left:13px solid var(--j-cream);border-top:8px solid transparent;border-bottom:8px solid transparent;transition:opacity .3s}
.zy-mill-play::after{translate:-50% -50%;width:12px;height:14px;border:0;border-left:4px solid var(--j-cream);border-right:4px solid var(--j-cream);opacity:0}
.zy-mill-tile.is-on .zy-mill-play{background:var(--j-gold);border-color:var(--j-gold)}
.zy-mill-tile.is-on .zy-mill-play::before{opacity:0}
.zy-mill-tile.is-on .zy-mill-play::after{opacity:1;border-color:#1a2a1f}
.zy-mill-tile.is-on .zy-mill-hit{transform:translateY(-6px);border-color:#dcc37acc;box-shadow:0 50px 80px -40px #000,0 0 0 1px #dcc37a59}
.zy-mill-tiles.has-on .zy-mill-tile:not(.is-on) .zy-mill-hit{opacity:.5}
.zy-mill-tile figcaption{display:grid;gap:3px;margin-top:12px}
.zy-mill-tile figcaption b{font:600 18px/1.2 var(--j-num);letter-spacing:.12em;color:var(--j-cream)}
.zy-mill-tile figcaption span{font-size:12.5px;letter-spacing:.12em;color:var(--j-gold)}
.zy-mill-tile figcaption small{font-size:12.5px;line-height:1.5;color:var(--j-cream-3)}
.zy-mill-hint{grid-column:1/-1;margin:0!important;font-size:12.5px;letter-spacing:.12em;color:var(--j-cream-3)}
.zy-hint-tap{display:none}
@media (hover:none){.zy-hint-hover{display:none}.zy-hint-tap{display:inline}}
.zy-mills li[data-mill]{transition:border-color .4s,background-color .4s}
.zy-mills li.is-on{border-color:#dcc37a99;background:#0c1813e0}
.zy-mill-amb{position:absolute;left:-8%;top:-8%;width:116%;height:116%;opacity:0;filter:blur(38px) saturate(1.35);transition:opacity 1.2s var(--j-ease-io);pointer-events:none}
.zy-ch-press.is-mill .zy-mill-amb{opacity:.6}
.zy-ch-press.is-mill .zy-media>video{opacity:.08!important}

/* 灯检：成品灯检实拍（光束互动叠在视频上） */
.zy-spot-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}
.zy-spot-vid.is-playing{opacity:1}

/* 品鉴插画动效 */
@media (prefers-reduced-motion:no-preference){
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-wisps path{animation:zy-j-wisp 2.6s linear infinite}
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-air path{animation:zy-j-wisp 1.5s linear infinite}
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-notes>*{animation:zy-j-note 3.4s ease-in-out infinite}
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-notes>:nth-child(2){animation-delay:-1.1s}
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-notes>:nth-child(3){animation-delay:-2.2s}
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-spice{animation:zy-j-glow 2.2s ease-in-out infinite}
 html.zy-j .zy-taste-panel:not([hidden]) .zy-t-sparks{animation:zy-j-glow 1.1s ease-in-out infinite}
 html.zy-j .zy-taste.is-swirling .zy-t-swirl{animation:zy-j-swirl 1.4s ease-in-out infinite}
 html.zy-j .zy-taste.is-swirling .zy-t-glow{animation:zy-j-glow 1.4s ease-in-out infinite}
}
@keyframes zy-j-wisp{to{stroke-dashoffset:-40}}
@keyframes zy-j-note{0%,100%{translate:0 2px;opacity:.8}50%{translate:0 -6px;opacity:1}}
@keyframes zy-j-glow{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes zy-j-swirl{0%,100%{rotate:-6deg}50%{rotate:6deg}}

/* ---------- 11. 平板与手机 ---------- */
@media (max-width:1100px){
 .zy-beat{grid-template-columns:1fr;align-content:center;gap:28px;padding:calc(var(--zy-head,72px) + 34px) 6% 56px}
 .zy-panel,.zy-globe,.zy-mill-tiles{justify-self:start;width:min(100%,560px)}
 .zy-copy{max-width:620px}
 .zy-shade{background:linear-gradient(180deg,#0a1510cc 0%,#0a1510a6 40%,#0a1510cc 100%)}
 html.zy-j .zy-rail{left:auto;top:calc(var(--zy-head,72px) + 8px);right:auto;translate:-50% 0;left:50%;flex-direction:row;gap:6px;padding:6px 8px}
 .zy-rail a{padding:6px 10px;border-radius:999px}
 .zy-rail span{position:static;opacity:1;translate:0 0;background:none;padding:0;font-size:12.5px;letter-spacing:.08em;color:inherit}
 .zy-rail a.is-on{background:var(--j-gold);color:#1a2a1f}
 .zy-rail i,.zy-rail-token{display:none!important}
 .zy-table-main{grid-template-columns:1fr}
 .zy-table-head{position:static}
 .zy-trust{grid-template-columns:1fr 1fr}
 /* 生产线：示意图固定在上方，工序卡片从下方滑过 */
 .zy-pline-panel{left:4%;right:4%;width:auto;top:calc(var(--zy-head,72px) + 58px);translate:none}
 .zy-ch-press .zy-shade{background:linear-gradient(180deg,#0a1510e6 0%,#0a1510b3 50%,#0a1510e6 100%)}
 .zy-step-photos{right:auto;left:4%;top:calc(var(--zy-head,72px) + 58px + 46vw + 12px);bottom:auto;width:44vw}
 .zy-pline-cap{display:none}
 .zy-step{min-height:78vh;min-height:78svh;align-items:end;padding:0 6% 9vh}
 .zy-step .zy-copy{max-width:none;width:100%}
 .zy-steps{padding-top:18vh}
}
@media (max-width:760px){
 .zy-j-intro{padding:calc(var(--zy-head,72px) + 30px) 6% 70px}
 .zy-j-map{grid-template-columns:repeat(5,1fr)}
 .zy-j-map b{width:38px;height:38px;font-size:12px}
 .zy-j-map::before{top:19px}
 .zy-j-map span{font-size:12px;letter-spacing:.02em}
 .zy-beat{padding:calc(var(--zy-head,72px) + 64px) 5.5% 48px;gap:22px}
 .zy-copy h3{margin-bottom:18px}
 .zy-panel{padding:20px 18px;border-radius:20px}
 .zy-globe{padding:18px 14px 16px;border-radius:20px}
 .zy-globe-list{gap:0 6px}
 .zy-globe-list button{font-size:12.5px;padding:6px 6px;gap:7px}
 .zy-globe-list b{min-width:42px;font-size:12.5px}
 .zy-stats{gap:18px 16px}
 .zy-stats-3{grid-template-columns:repeat(3,1fr)}
 .zy-stats dd span{font-size:40px}
 .zy-climate{grid-template-columns:1fr 1fr 1fr;gap:8px}
 .zy-photos{grid-template-columns:1fr 1fr;gap:10px}
 .zy-ripe-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
 .zy-taste-fig{max-width:190px;justify-self:start}
 .zy-clock{grid-template-columns:1fr;gap:18px}
 .zy-clock svg{grid-row:1;max-width:220px}
 .zy-clock-center{grid-row:1;translate:0 26px}
 .zy-clock-center b{font-size:52px}
 .zy-clock-steps{grid-column:1;grid-row:2;grid-template-columns:1fr 1fr;gap:14px 12px}
 .zy-mills{grid-template-columns:1fr}
 .zy-tank-stage svg{max-width:190px}
 .zy-taste-panel{grid-template-columns:1fr;justify-items:start}
 .zy-trust{grid-template-columns:1fr}
 .zy-ch-table{padding:calc(var(--zy-head,72px) + 40px) 0 90px}
 .zy-shop{padding:80px 0 90px}
 .zy-shop-head{margin-bottom:36px}
 .zy-duo{grid-template-columns:1fr;gap:18px;margin-bottom:64px}
 html.zy-j .zy-duo-switch{display:flex;gap:6px;padding:5px;border-radius:999px;background:#e8e2cf;justify-self:center}
 .zy-duo-switch button{appearance:none;border:0;background:transparent;border-radius:999px;padding:11px 16px;font:500 14px/1 var(--j-sans);color:#3d4a3f;cursor:pointer}
 .zy-duo-switch [aria-pressed="true"]{background:#fffdf8;color:var(--j-ink);box-shadow:0 6px 16px -10px #1636288c}
 html.zy-j .zy-duo[data-pick="e5"] [data-card="s5"],html.zy-j .zy-duo[data-pick="s5"] [data-card="e5"]{display:none}
 html.zy-j .zy-duo-card{animation:zy-j-fade-up .5s var(--j-ease) both}
 .zy-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -5% 20px;padding:2px 5% 6px;scrollbar-width:none}
 .zy-filters::-webkit-scrollbar{display:none}
 .zy-filters button{flex:none}
 .zy-shelf{grid-auto-columns:46%;gap:12px;margin:0 -5%;padding:8px 5% 26px;scroll-padding:5%}
 .zy-shelf-nav{display:none}
 .zy-series a{padding:0 10px}
 html.zy-j .zy-mill-tiles{gap:12px}
 .zy-mill-hit{border-radius:16px}
 .zy-mill-play{left:10px;bottom:10px;width:36px;height:36px}
 .zy-mill-tile figcaption b{font-size:15px}
 .zy-mill-tile figcaption small{display:none}
 .zy-ripe-prods b{font-size:20px}
 html.zy-j .zy-ripe-prods a,html.zy-j .zy-ripe-prods li>div{padding:12px}
 html.zy-j .zy-ripe-prods img,html.zy-j .zy-ripe-noimg{max-width:96px}
 .zy-great b{font-size:48px}
}
@media (max-width:760px) and (max-height:700px){
 .zy-globe-view{max-width:300px}
}

/* ---------- 12. 系统“减少动态效果” ---------- */
@media (prefers-reduced-motion:reduce){
 .zy-media>img,.zy-media>video{scale:1!important;transition:opacity .3s!important}
 .zy-journey *,.zy-shop *{animation:none!important}
 .zy-cam,.zy-pline-panel,.zy-step-photos figure,.zy-olive,.zy-o2,.zy-n2{transition-duration:.01s!important}
 .zy-flow.is-on{opacity:1}
}
body.motion-paused .zy-journey *{animation-play-state:paused!important}

/* ---------- 13. 可视化编辑器（2026-10-01）：旅程与选油区可原地修改，编辑器里内容直接显示 ---------- */
html[data-zy-editor] .zy-jr{opacity:1!important;transform:none!important;translate:none!important;filter:none!important}

/* ---------- 14. 交付前修整（2026-10-01 下午） ----------
   · 果实成熟度：商品卡改成小货架卡（整幅方形商品图在上，文字在下），图片 480px 更清晰。
   · 手机/平板：章节导航改成顶栏下方的一整条，内容从它下面滑过，不再从胶囊两侧露出来。
   · 冷榨（≤1100px）：工序示意图 + 实拍图固定在上方一栏，工序卡片停在这一栏下面、依次推上去，互不遮挡；
     开场文字阶段不显示示意图。竖屏：示意图通栏 + 下方实拍；横放平板：两者并排；横屏手机（高度 ≤560px）：左卡片、右示意图。 */
html.zy-j .zy-ripe-prods{justify-self:center;width:100%;max-width:224px}
html.zy-j .zy-ripe-prods a,html.zy-j .zy-ripe-prods li>div{display:flex;flex-direction:column;align-items:stretch;justify-items:normal;gap:0;padding:0;overflow:hidden;border-radius:18px;background:#0c1813b3;border:1px solid #f3ecd82e}
html.zy-j .zy-ripe-prods img,html.zy-j .zy-ripe-noimg{width:100%;max-width:none;height:auto;aspect-ratio:1;border:0;border-radius:0;object-fit:contain;background:#fff}
html.zy-j .zy-ripe-noimg{background:radial-gradient(circle at 38% 34%,#e9e0b5 0 5%,#b89b54 32%,#6d4a3c 72%,#3a2230)}
html.zy-j .zy-ripe-prods li>a>span,html.zy-j .zy-ripe-prods li>div>span:not(.zy-ripe-noimg){display:block;padding:12px 14px 14px}
html.zy-j .zy-ripe-prods em,html.zy-j .zy-ripe-prods small{word-break:keep-all;overflow-wrap:anywhere}
html.zy-j .zy-ripe-prods i{margin-top:8px}
@media (max-width:760px){
 html.zy-j .zy-ripe-prods li>a>span,html.zy-j .zy-ripe-prods li>div>span:not(.zy-ripe-noimg){padding:10px 11px 12px}
 html.zy-j .zy-ripe-prods em{font-size:13px}
 html.zy-j .zy-ripe-prods small{font-size:12px}
}
@media (max-width:1100px){
 html.zy-j .zy-rail{left:0;right:0;top:var(--zy-head,72px);translate:none;justify-content:center;gap:4px;padding:7px 12px 9px;border-radius:0;border:0;border-bottom:1px solid #f3ecd81f;background:linear-gradient(180deg,#0c1813b8,#0c1813cc);box-shadow:0 18px 30px -28px #000}
 html.zy-j:not(.zy-head-dark) .zy-rail{background:linear-gradient(180deg,#f5f2e8c7,#fbfaf5db);border-bottom-color:#18382a14;box-shadow:0 18px 30px -28px #12302266}
 html.zy-j:not(.zy-head-dark) .zy-rail a{color:#4d5c51}
 html.zy-j:not(.zy-head-dark) .zy-rail a.is-on{color:#1a2a1f}
 .zy-ch-press:not([data-step]) .zy-pline-panel{opacity:0}
 .zy-ch-press:not([data-step]) .zy-media>video{opacity:1}
}
@media (max-width:1100px) and (min-height:561px){
 .zy-ch-press{--pl-top:calc(var(--zy-head,72px) + 62px);background:#0a1410}
 .zy-ch-press .zy-stage{transition:clip-path .55s var(--j-ease-io),z-index 0s}
 .zy-ch-press[data-step]:not([data-step="0"]) .zy-stage{z-index:2;clip-path:inset(0 0 calc(100% - var(--band)) 0);pointer-events:none;transition:clip-path .55s var(--j-ease-io),z-index 0s .55s}
 .zy-ch-press[data-step]:not([data-step="0"]) .zy-pline-panel{pointer-events:auto}
 .zy-ch-press .zy-stage::after{content:"";position:absolute;left:0;right:0;top:calc(var(--band) - 1px);height:1px;background:#f3ecd824;opacity:0;transition:opacity .4s}
 .zy-ch-press[data-step]:not([data-step="0"]) .zy-stage::after{opacity:1}
 .zy-pline-panel{top:var(--pl-top);translate:none}
 .zy-step-photos{bottom:auto;aspect-ratio:auto}
 .zy-step-photos figure{border-radius:14px}
 .zy-ch-press[data-step="5"] .zy-step-photos [data-for="2"]{opacity:1;translate:0 0}
 .zy-ch-press .zy-steps{padding:6vh 0 10vh}
 .zy-ch-press .zy-step{display:block;align-content:start;min-height:64vh;min-height:64svh;padding:0 5.5%}
 .zy-ch-press .zy-step .zy-copy{position:sticky;top:calc(var(--band) + 12px)}
 /* 上方这一栏随本章最后一张卡片一起离开：粘性范围只算到“栏”的高度（开场段落相应上移，版面位置不变） */
 .zy-ch-press .zy-stage{margin-bottom:calc(var(--band) - 100vh);margin-bottom:calc(var(--band) - 100svh)}
 .zy-ch-press .zy-press-intro{margin-top:calc(-1 * var(--band))}
}
/* 手机/平板上示意图放大到单台设备，底部的小字说明会被裁掉一半：不显示（工序卡片里有同样的说明） */
@media (max-width:1100px){
 .zy-st text.zy-sub{display:none}
}
@media (max-width:640px){
 .zy-st text.zy-tiny{display:none}
}
/* 竖屏（手机、竖放的平板）：示意图通栏，下面一条实拍 */
@media (max-width:1100px) and (orientation:portrait) and (min-height:561px){
 .zy-ch-press{--pl-h:46vw;--ph-h:min(34vw,22svh);--band:calc(var(--pl-top) + var(--pl-h) + 10px + var(--ph-h) + 14px)}
 .zy-pline-panel{left:4%;right:4%;width:auto}
 .zy-step-photos{left:4%;right:4%;width:auto;top:calc(var(--pl-top) + var(--pl-h) + 10px);height:var(--ph-h)}
}
/* 矮一些的手机：只留示意图，给卡片腾地方 */
@media (max-width:640px) and (orientation:portrait) and (min-height:561px) and (max-height:779px){
 .zy-ch-press{--ph-h:0px;--band:calc(var(--pl-top) + var(--pl-h) + 14px)}
 .zy-step-photos{display:none}
}
/* 横放的平板：示意图与实拍并排 */
@media (max-width:1100px) and (orientation:landscape) and (min-height:561px){
 .zy-ch-press{--pl-w:min(56vw,64svh);--pl-h:calc(var(--pl-w) / 2);--band:calc(var(--pl-top) + var(--pl-h) + 16px)}
 .zy-pline-panel{left:4%;right:auto;width:var(--pl-w)}
 .zy-step-photos{left:calc(4% + var(--pl-w) + 16px);right:4%;width:auto;top:var(--pl-top);height:var(--pl-h)}
}
@media (max-width:1100px) and (max-height:560px){
 .zy-pline-panel{left:auto;right:3%;top:calc(var(--zy-head,72px) + 62px);translate:none;width:min(46vw,calc((100svh - var(--zy-head,72px) - 124px) * 2))}
 .zy-step-photos{display:none}
 .zy-ch-press .zy-step{align-items:center;padding:0 54% 0 4%}
 .zy-ch-press .zy-steps{padding-top:30vh}
}
@media (max-width:760px){
 /* 酸度标尺：手机上“国标上限”标签改为从刻度线向左展开，不再压住右端的“1.0%” */
 .zy-acid-mark.is-gb{translate:-100% 0}
 .zy-acid-mark.is-gb::before{left:auto;right:-1px;translate:none}
}


/* ---------- 15. 整屏停靠、手机内容分屏与跨平台 SVG 箭头 ---------- */
html.zy-j{--zy-view:100vh}
@supports (height:100svh){html.zy-j{--zy-view:100svh}}
html.zy-paging{scroll-snap-type:y mandatory;scroll-padding-top:0}
html.zy-j :is(.camera-hero,.zy-j-intro,.zy-beat:not(.is-paged),.zy-page,#journey-table,#shop){scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:0}
html.zy-j .zy-j-intro{min-height:var(--zy-view);padding-top:calc(var(--zy-head,80px) + 40px);padding-bottom:40px}
html.zy-j .zy-beat{min-height:var(--zy-view)}
.zy-arrow{display:inline-block;width:1em!important;height:1em!important;max-width:none;vertical-align:-.15em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
html.zy-j .camera-hero{height:var(--zy-view);min-height:var(--zy-view);box-sizing:border-box}
@media (max-width:1100px){
 html.zy-mobile-pages{--zy-page-top:calc(var(--zy-head,72px) + 64px)}
 html.zy-mobile-pages .zy-beat.is-paged{display:block;padding:0;min-height:0}
 html.zy-mobile-pages .zy-page{position:relative;box-sizing:border-box;display:grid;align-content:center;justify-items:center;gap:18px;min-height:var(--zy-view);padding:var(--zy-page-top) 5.5% max(24px,env(safe-area-inset-bottom));scroll-snap-align:start;scroll-snap-stop:always}
 html.zy-mobile-pages .zy-page>.zy-copy{width:100%;max-width:640px;position:static;align-self:auto}
 html.zy-mobile-pages .zy-page>:is(.zy-panel,.zy-globe,.zy-mill-tiles){justify-self:center;width:min(100%,560px)}
 html.zy-mobile-pages .zy-copy h3{font-size:clamp(28px,4.5vw,42px);margin-bottom:18px}
 html.zy-mobile-pages .zy-copy>p:not(.zy-no){font-size:15px;line-height:1.75;margin-bottom:12px}
 html.zy-mobile-pages .zy-copy .zy-note{margin-top:16px;font-size:14px!important;line-height:1.7!important}
 html.zy-mobile-pages .zy-num-big{font-size:clamp(60px,10vw,96px)}
 html.zy-mobile-pages .zy-panel,html.zy-mobile-pages .zy-globe{padding:18px}
 html.zy-mobile-pages .zy-panel-t{margin-bottom:12px!important}
 html.zy-mobile-pages .zy-globe-view{max-width:min(250px,26svh)}
 html.zy-mobile-pages .zy-stats{gap:16px;margin-bottom:16px}
 html.zy-mobile-pages .zy-stats dd span{font-size:38px}
 html.zy-mobile-pages .zy-climate{margin-bottom:14px;padding-top:12px}
 html.zy-mobile-pages .zy-photos{margin-top:16px;gap:10px}
 html.zy-mobile-pages .zy-photos img{max-height:18svh}
 html.zy-mobile-pages .zy-photo-inline img{max-height:25svh}
 html.zy-mobile-pages .zy-ripe-prods img,html.zy-mobile-pages .zy-ripe-noimg{max-height:20svh;object-fit:contain}
 html.zy-mobile-pages .zy-ripe-fig{max-width:min(180px,23svh)}
 html.zy-mobile-pages .zy-ripe-scale{margin-bottom:10px}
 html.zy-mobile-pages .zy-ripe-out p{font-size:14px;line-height:1.65;margin-bottom:0}
 html.zy-mobile-pages .zy-sort-msg{font-size:14px;line-height:1.65;margin-top:12px!important}
 html.zy-mobile-pages .zy-tray{max-width:360px;margin:auto;padding:12px;gap:10px}
 html.zy-mobile-pages .zy-mill-hit{height:min(35svh,300px);aspect-ratio:auto}
 html.zy-mobile-pages .zy-clock svg{max-width:min(200px,25svh)}
 html.zy-mobile-pages .zy-clock-center b{font-size:44px}
 html.zy-mobile-pages .zy-clock-steps{gap:12px}
 html.zy-mobile-pages .zy-tank-stage svg{max-width:min(190px,25svh)}
 html.zy-mobile-pages .zy-tank-msg{font-size:14px;line-height:1.65;margin-top:12px!important}
 html.zy-mobile-pages .zy-ch-table{padding:0}
 html.zy-mobile-pages .zy-table-in{width:100%}
 html.zy-mobile-pages .zy-table-main,html.zy-mobile-pages .zy-table-side{display:block}
 html.zy-mobile-pages .zy-page>:is(.zy-taste,.zy-acid,.zy-trust,.zy-j-end){width:min(100%,560px)}
 html.zy-mobile-pages .zy-taste,html.zy-mobile-pages .zy-acid{padding:18px}
 html.zy-mobile-pages .zy-taste-tabs{margin-bottom:14px;gap:6px}
 html.zy-mobile-pages .zy-taste-tabs button{font-size:13px;padding:8px;gap:6px}
 html.zy-mobile-pages .zy-taste-panel{gap:14px}
 html.zy-mobile-pages .zy-taste-fig{max-width:min(160px,21svh);justify-self:center}
 html.zy-mobile-pages .zy-taste p{font-size:14px;line-height:1.7;margin-bottom:10px}
 html.zy-mobile-pages .zy-taste h4{font-size:23px}
 html.zy-mobile-pages .zy-trust{margin:0;gap:10px;grid-template-columns:1fr 1fr}
 html.zy-mobile-pages .zy-trust a{padding:14px}
 html.zy-mobile-pages .zy-j-end{margin:0!important;gap:14px}
 html.zy-mobile-pages .zy-ch-press .zy-steps{padding:0}
 html.zy-mobile-pages .zy-ch-press .zy-step{display:grid;align-content:center;min-height:var(--zy-view);padding:calc(var(--band, var(--zy-page-top)) + 16px) 5.5% max(24px,env(safe-area-inset-bottom))}
 html.zy-mobile-pages .zy-ch-press .zy-step .zy-copy{position:static}
}
@media (max-width:1100px) and (orientation:portrait) and (min-height:561px){
 html.zy-mobile-pages .zy-ch-press{--pl-h:min(46vw,26svh);--ph-h:min(26vw,14svh)}
 html.zy-mobile-pages .zy-pline-panel{height:var(--pl-h)}
 html.zy-mobile-pages .zy-pline{height:100%;aspect-ratio:auto}
}
@media (max-width:640px) and (orientation:portrait) and (min-height:561px) and (max-height:779px){
 html.zy-mobile-pages .zy-ch-press{--ph-h:0px}
}
@media (max-width:1100px) and (max-height:560px){
 html.zy-mobile-pages .zy-ch-press .zy-step{padding:var(--zy-page-top) 54% 24px 4%}
 html.zy-mobile-pages .zy-page{padding-top:calc(var(--zy-head,72px) + 50px);padding-bottom:16px}
 html.zy-mobile-pages .zy-copy h3{font-size:26px;margin-bottom:12px}
 html.zy-mobile-pages .zy-copy>p:not(.zy-no){font-size:14px;line-height:1.55;margin-bottom:8px}
 html.zy-mobile-pages .zy-num-big{font-size:48px}
 html.zy-mobile-pages .zy-taste-panel{grid-template-columns:minmax(80px,22%) 1fr}
 html.zy-mobile-pages .zy-globe{display:grid;grid-template-columns:28% 1fr;gap:8px}
 html.zy-mobile-pages .zy-globe-view{grid-row:1/3;align-self:center;max-width:100%}
 html.zy-mobile-pages .zy-globe figcaption{grid-column:2}
 html.zy-j .camera-hero{padding-top:calc(var(--zy-head,72px) + 12px);padding-bottom:28px}
 html.zy-j .camera-hero h1{font-size:clamp(26px,5vw,44px)}
}
@media (max-width:760px){
 html.zy-j .zy-j-intro h2{font-size:clamp(36px,9vw,54px);margin-bottom:20px}
 html.zy-j .zy-j-intro .zy-lede{font-size:15px;line-height:1.75;margin-bottom:28px}
 html.zy-j .zy-j-skip{margin-top:28px}
 html.zy-j .zy-j-map b{width:38px;height:38px}
 html.zy-j .zy-j-map::before{top:19px}
 html.zy-j .zy-j-map span{font-size:12px;letter-spacing:0}
}

@media (max-width:760px){
 /* 成熟度卡在手机上横排商品图和说明，留足滑块及对应风味文字的空间。 */
 html.zy-mobile-pages .zy-ripe-stage{grid-template-columns:minmax(70px,.65fr) minmax(0,1.6fr);gap:12px}
 html.zy-mobile-pages .zy-ripe-prods a,html.zy-mobile-pages .zy-ripe-prods li>div{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center}
 html.zy-mobile-pages .zy-ripe-prods img,html.zy-mobile-pages .zy-ripe-noimg{width:72px;height:90px;max-height:none;border-radius:0}
 html.zy-mobile-pages .zy-ripe-prods li>a>span,html.zy-mobile-pages .zy-ripe-prods li>div>span:not(.zy-ripe-noimg){padding:8px}
 html.zy-mobile-pages .zy-ripe-prods i{margin-top:4px}
 html.zy-mobile-pages .zy-taste-fig{max-width:min(140px,17svh)}
}
