/* vin-presentatie.css , het filmdoek van de vinificatiepresentaties (zie vin-presentatie.js).
   Alles onder .vp; kleuren per ras: rood (sap) of wit (goudgroen). Mobiel: staand doek (4:5). */
.vp{
  --ink:#171423; --must:#2d2140; --berry:#c9476a; --leaf:#a9c58f; --chalk:#efe8dc; --dim:#b3a7b9; --line:rgba(239,232,220,.18);
  --f-display:"Gloock",Georgia,"Times New Roman",serif; --f-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif; --f-data:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  background:var(--ink);color:var(--chalk);font-family:var(--f-body);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:12px;outline:none;max-width:100%;box-sizing:border-box;color-scheme:dark;
}
.vp.vp-wit{--ink:#1a1a14;--must:#2d2b1c;--berry:#c9a84c;--leaf:#b9cf98}
.vp:focus-visible{box-shadow:0 0 0 3px var(--leaf)}
.vp:fullscreen{border-radius:0;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));justify-content:center}
.vp *{box-sizing:border-box}
.vp-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.vp-top h2{font-family:var(--f-display);font-weight:400;font-size:1.2rem;margin:0;letter-spacing:.01em;color:var(--chalk)}
.vp-top span{font-family:var(--f-data);font-size:.72rem;color:var(--dim);letter-spacing:.06em;text-transform:uppercase}

.vp-stage{position:relative;width:100%;aspect-ratio:16/9;max-width:100%;overflow:hidden;border-radius:6px;background:var(--must);--u:6px}
.vp-stage.vp-portrait{aspect-ratio:3/4}
.vp:fullscreen .vp-stage{max-height:calc(100vh - 150px);margin:0 auto;aspect-ratio:16/9}
.vp-scene{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility 0s linear .7s;overflow:hidden}
.vp-scene.vp-on{opacity:1;visibility:visible;transition:opacity .7s ease,visibility 0s}
.vp-pad{position:absolute;inset:0;padding:calc(var(--u)*7) calc(var(--u)*8);display:flex;flex-direction:column;justify-content:center;gap:calc(var(--u)*3)}
.vp-portrait .vp-pad{padding:calc(var(--u)*5) calc(var(--u)*5);justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.vp-portrait .vp-pad::-webkit-scrollbar{display:none}
.vp-portrait .vp-pad.vp-eind{justify-content:flex-end}
.vp-portrait .vp-h{font-size:calc(var(--u)*6.4)}
.vp-portrait .vp-h.vp-xl{font-size:calc(var(--u)*10)}
.vp-portrait .vp-num{font-size:calc(var(--u)*12)}
.vp-portrait .vp-frame{aspect-ratio:16/9}
.vp-portrait .vp-split{height:auto}
.vp-eyebrow{font-family:var(--f-data);font-size:calc(var(--u)*2.6);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf)}
.vp-h{font-family:var(--f-display);font-weight:400;font-size:calc(var(--u)*7.4);line-height:1.04;margin:0;text-wrap:balance;color:var(--chalk)}
.vp-h.vp-xl{font-size:calc(var(--u)*11)}
.vp-p{font-size:calc(var(--u)*3.4);line-height:1.45;color:var(--chalk);max-width:34em;margin:0}
.vp-num{font-family:var(--f-display);font-size:calc(var(--u)*15);line-height:.9;color:var(--chalk);font-variant-numeric:tabular-nums}
.vp-num small{font-family:var(--f-data);font-size:calc(var(--u)*3.4);color:var(--dim);margin-left:.3em;letter-spacing:.04em}
.vp-num.vp-leaf{color:var(--leaf)}
.vp-split{display:grid;grid-template-columns:1.05fr 1fr;gap:calc(var(--u)*6);align-items:center;height:100%}
.vp-portrait .vp-split{grid-template-columns:1fr;gap:calc(var(--u)*4);align-content:center}
.vp-split>*{min-width:0}
.vp-col{display:flex;flex-direction:column;gap:calc(var(--u)*2.6);min-width:0}

.vp-in{opacity:0;transform:translateY(calc(var(--u)*2.4));transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0)*1s)}
.vp-scene.vp-on .vp-in{opacity:1;transform:none}

.vp-photo{position:absolute;inset:0;background-size:cover;background-position:center}
.vp-scene.vp-on .vp-photo.vp-kb{animation:vp-kb 11s ease-out forwards}
@keyframes vp-kb{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.vp-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.vp-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,20,35,.92) 0%,rgba(23,20,35,.62) 45%,rgba(23,20,35,.08) 100%)}
.vp-portrait .vp-shade{background:linear-gradient(0deg,rgba(23,20,35,.95) 0%,rgba(23,20,35,.6) 55%,rgba(23,20,35,.12) 100%)}
.vp-s-video .vp-shade{background:linear-gradient(0deg,rgba(23,20,35,.85) 0%,rgba(23,20,35,.25) 45%,rgba(23,20,35,0) 100%)}
.vp-s-video .vp-pad{justify-content:flex-end}
.vp-frame{position:relative;width:100%;aspect-ratio:4/3;max-width:100%;overflow:hidden;border-radius:4px;background:var(--ink)}
.vp-frame .vp-photo{position:absolute;inset:0}
.vp-cap{font-family:var(--f-data);font-size:calc(var(--u)*2.3);color:var(--dim);margin-top:calc(var(--u)*1.2);letter-spacing:.03em}
.vp-duo{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--u)*2)}
.vp-portrait .vp-duo .vp-frame{aspect-ratio:1/1}

.vp-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--u)*2.2)}
.vp-steps li{display:grid;grid-template-columns:calc(var(--u)*22) 1fr;gap:calc(var(--u)*3);align-items:baseline;border-top:1px solid var(--line);padding-top:calc(var(--u)*1.8)}
.vp-portrait .vp-steps li{grid-template-columns:1fr;gap:calc(var(--u)*.6)}
.vp-steps b{font-family:var(--f-data);font-weight:500;font-size:calc(var(--u)*2.9);color:var(--berry);font-variant-numeric:tabular-nums}
.vp-steps span{font-size:calc(var(--u)*3.2);line-height:1.4}
.vp-steps em{font-style:normal;color:var(--dim)}

.vp-chart{width:100%;height:auto;overflow:visible;display:block}
.vp-chart text{font-family:var(--f-data);fill:var(--dim)}
.vp-chart .vp-ax{stroke:var(--line);stroke-width:1}
.vp-chart .vp-oe{fill:none;stroke:var(--berry);stroke-width:3;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900}
.vp-scene.vp-on .vp-chart .vp-oe{transition:stroke-dashoffset 2.6s ease .6s;stroke-dashoffset:0}
.vp-chart .vp-oe.vp-gap{stroke-dasharray:8 8;stroke-dashoffset:0;opacity:0;stroke-width:2.5}
.vp-scene.vp-on .vp-chart .vp-oe.vp-gap{transition:opacity 1.2s ease 1.2s;opacity:1}
.vp-chart .vp-dot{fill:var(--berry);opacity:0;transition:opacity .4s ease}
.vp-scene.vp-on .vp-chart .vp-dot{opacity:1}
.vp-chart .vp-lbl{fill:var(--chalk);font-size:13px}
.vp-chart .vp-ph{fill:var(--leaf);font-size:11px}

.vp-vats{display:flex;gap:calc(var(--u)*5);justify-content:center;align-items:flex-end}
.vp-vat{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*1.5)}
.vp-tank{position:relative;width:calc(var(--u)*17);height:calc(var(--u)*25);border:2px solid var(--chalk);border-radius:calc(var(--u)*1.2) calc(var(--u)*1.2) calc(var(--u)*3) calc(var(--u)*3);overflow:hidden;background:rgba(239,232,220,.04)}
.vp-fill{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(180deg,var(--berry),var(--must));transition:height 2.2s cubic-bezier(.3,.6,.2,1) .6s}
.vp-scene.vp-on .vp-fill{height:var(--h,80%)}
.vp-tank .vp-t{position:absolute;top:calc(var(--u)*1.5);left:0;right:0;text-align:center;font-family:var(--f-data);font-size:calc(var(--u)*3.2);color:var(--chalk);z-index:2;font-variant-numeric:tabular-nums}
.vp-tank .vp-lees{position:absolute;left:0;right:0;bottom:0;height:9%;background:rgba(23,20,35,.55);z-index:1}
.vp-vat .vp-name{font-family:var(--f-data);font-size:calc(var(--u)*2.6);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);text-align:center}
.vp-bub{position:absolute;bottom:-10%;width:calc(var(--u)*1.1);height:calc(var(--u)*1.1);border-radius:50%;border:1px solid rgba(239,232,220,.7);opacity:0}
.vp-scene.vp-on .vp-bub{animation:vp-rise 3.4s ease-in infinite}
@keyframes vp-rise{0%{transform:translateY(0);opacity:0}15%{opacity:.9}100%{transform:translateY(calc(var(--u)*-24));opacity:0}}

.vp-cmp{display:flex;align-items:center;gap:calc(var(--u)*3);flex-wrap:wrap}
.vp-arrow{font-family:var(--f-data);font-size:calc(var(--u)*5);color:var(--leaf)}
.vp-note{border-left:3px solid var(--berry);padding:calc(var(--u)*1.4) 0 calc(var(--u)*1.4) calc(var(--u)*2.4);font-size:calc(var(--u)*3);line-height:1.45;max-width:30em}

.vp-thermos{display:flex;gap:calc(var(--u)*4);align-items:flex-end;justify-content:center}
.vp-th{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*1.2)}
.vp-th .vp-kol{position:relative;width:calc(var(--u)*5);height:calc(var(--u)*30);border:2px solid var(--chalk);border-radius:calc(var(--u)*2.5);overflow:hidden}
.vp-th .vp-lvl{position:absolute;left:0;right:0;bottom:0;height:var(--from,30%);background:var(--berry);transition:height 2.4s ease .8s}
.vp-scene.vp-on .vp-th .vp-lvl{height:var(--to,60%)}
.vp-th .vp-v{font-family:var(--f-data);font-size:calc(var(--u)*3);font-variant-numeric:tabular-nums}
.vp-th .vp-k{font-family:var(--f-data);font-size:calc(var(--u)*2.2);color:var(--dim);text-align:center;letter-spacing:.06em;text-transform:uppercase}
.vp-goal{position:absolute;left:-30%;right:-30%;height:0;border-top:1px dashed var(--leaf)}

.vp-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vp-btn{appearance:none;border:1px solid var(--line);background:transparent;color:var(--chalk);font-family:var(--f-data);font-size:.78rem;padding:8px 12px;border-radius:4px;cursor:pointer;min-height:38px}
.vp-btn:hover{border-color:var(--chalk)}
.vp-btn:focus-visible,.vp-chap:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}
.vp-btn.vp-play{background:var(--chalk);color:var(--ink);border-color:var(--chalk);min-width:96px}
.vp-time{font-family:var(--f-data);font-size:.78rem;color:var(--dim);margin-left:auto;font-variant-numeric:tabular-nums}
.vp-chapters{display:grid;grid-template-columns:repeat(var(--n,10),minmax(0,1fr));gap:6px}
.vp-chap{appearance:none;background:transparent;border:0;padding:6px 0 0;cursor:pointer;text-align:left;color:var(--dim);font-family:var(--f-body);font-size:.7rem;line-height:1.25;min-width:0}
.vp-chap .vp-track{display:block;height:3px;background:var(--line);border-radius:2px;overflow:hidden;margin-bottom:6px}
.vp-chap .vp-prog{display:block;height:100%;width:0;background:var(--berry)}
.vp-chap.vp-done .vp-prog{width:100%}
.vp-chap.vp-cur{color:var(--chalk)}
.vp-chap .vp-lab{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:700px){.vp-chap .vp-lab{display:none}.vp-chapters{gap:4px}.vp{padding:10px}}
.vp-foot{font-size:.78rem;color:var(--dim);line-height:1.5;margin:0}
.vp-foot a{color:var(--chalk)}

@media (prefers-reduced-motion:reduce){
  .vp-in,.vp-scene,.vp-fill,.vp-th .vp-lvl,.vp-chart .vp-oe,.vp-chart .vp-oe.vp-gap{transition:none!important}
  .vp-scene.vp-on .vp-photo.vp-kb,.vp-scene.vp-on .vp-bub{animation:none!important}
}
