/* ============================================================
   Slide layouts — DAS PLOP
   ============================================================ */

/* ---------- generic heading block ---------- */
.slide-head{position:absolute;top:var(--pad);left:var(--pad);right:var(--pad);}
.slide-head .head-tight{font-size:76px;margin-top:18px;max-width:18em;}
.head-tight{line-height:.98;}

/* ---------- split layout (50/50) ---------- */
.split{position:absolute;inset:0;display:grid;grid-template-columns:1.05fr .95fr;}
.split-l{padding:var(--pad);display:flex;flex-direction:column;justify-content:center;gap:26px;}
.split-r{padding:var(--pad) var(--pad) var(--pad) 0;display:flex;flex-direction:column;justify-content:center;gap:22px;}
.big-accent{font-family:var(--ff-disp);font-weight:800;font-size:64px;line-height:.98;color:var(--gold);}

/* ============== HERO ============== */
.hero{--pad:120px;}
.hero-grid{position:absolute;inset:0;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;}
.hero-text{padding-left:var(--pad);padding-right:40px;display:flex;flex-direction:column;gap:24px;}
.plop-word{font-size:240px;letter-spacing:-.03em;line-height:.8;}
.plop-word .dot{color:var(--gold);}
.hero-sub{font-weight:700;font-size:88px;color:var(--cream);line-height:.95;}
.hero-foot{display:flex;align-items:center;gap:16px;margin-top:14px;}
.dotsep,.dot-sep{color:var(--gold);}
.hero-bignav{position:absolute;left:var(--pad);bottom:54px;color:var(--muted);}
.hero .lede{max-width:20em;}

.hero-cap-zone{position:relative;display:grid;place-items:center;height:100%;}
.cap{appearance:none;border:0;background:transparent;cursor:pointer;position:relative;width:420px;height:420px;display:grid;place-items:center;}
.cap-disc{position:relative;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(120% 120% at 38% 30%,#ffffff 0%,#f3ecdb 46%,#cbbfa3 100%);
  box-shadow:0 40px 80px -24px rgba(0,0,0,.6),inset 0 -18px 36px rgba(120,100,60,.35),inset 0 14px 26px rgba(255,255,255,.7);
  display:grid;place-items:center;transition:transform .5s var(--ease);z-index:3;}
.cap-mark{width:118px;height:118px;border-radius:50%;background:var(--navy-900);position:relative;}
.cap-mark::before{content:'';position:absolute;left:50%;top:14%;transform:translateX(-50%);width:34px;height:74px;border-radius:16px 16px 10px 10px;background:var(--cream);}
.cap-mark::after{content:'';position:absolute;left:50%;top:8%;transform:translateX(-50%);width:18px;height:18px;border-radius:50%;background:var(--cream);}
.cap-gasket{position:absolute;width:312px;height:312px;border-radius:50%;border:14px solid var(--cap-red);opacity:.9;z-index:2;transition:transform .5s var(--ease);}
.cap-bail{position:absolute;width:360px;height:360px;border-radius:50%;border:7px solid var(--gold);border-top-color:transparent;border-bottom-color:transparent;transform:rotate(20deg);z-index:1;opacity:.85;}
.cap-ring{position:absolute;width:300px;height:300px;border-radius:50%;border:2px solid var(--gold);opacity:0;z-index:0;}

.cap-hint{position:absolute;bottom:40px;color:var(--muted);transition:opacity .4s;}
.plop-burst{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%) scale(.4);font-size:120px;font-weight:900;color:var(--gold);opacity:0;pointer-events:none;letter-spacing:-.02em;}

/* idle pulse on cap */
@media (prefers-reduced-motion:no-preference){
  [data-deck-active] .cap-disc{animation:cap-breathe 3.4s ease-in-out infinite;}
}
@keyframes cap-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* popped state */
.cap.popped .cap-disc{animation:cap-pop .7s var(--ease) forwards;}
.cap.popped .cap-gasket{transform:translateY(10px) scale(1.04);}
@keyframes cap-pop{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-120px) rotate(-12deg)}100%{transform:translateY(-46px) rotate(-8deg)}}
.cap.popped .cap-ring{animation:ring-out .9s ease-out forwards;}
@keyframes ring-out{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(2.1)}}
.cap.popped .cap-hint{opacity:0;}
.cap.popped ~ .plop-burst,.popped-burst{animation:burst .8s var(--ease) forwards;}
@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-6deg)}40%{opacity:1;transform:translate(-50%,-60%) scale(1.15) rotate(-3deg)}100%{opacity:0;transform:translate(-50%,-110%) scale(1) rotate(0)}}

/* droplets */
.cap-droplets{position:absolute;inset:0;pointer-events:none;}
.drop{position:absolute;left:50%;top:42%;width:16px;height:16px;border-radius:50%;background:var(--gold-bright);opacity:0;}

/* ---------- pillars ---------- */
.pillars{gap:0;}
.pillar{padding:26px 0;border-top:1px solid var(--hair);display:grid;grid-template-columns:78px 1fr;align-items:start;gap:18px;}
.pillar:last-child{border-bottom:1px solid var(--hair);}
.pillar .p-num{font-family:var(--ff-mono);font-size:18px;color:var(--gold);padding-top:6px;grid-column:1;}
.pillar h4{grid-column:2;font-family:var(--ff-disp);font-weight:700;font-size:30px;margin:0 0 6px;color:var(--cream);}
.pillar p{grid-column:2;margin:0;font-size:21px;line-height:1.4;color:var(--muted);}

/* ---------- stats row ---------- */
.stat-row{position:absolute;left:var(--pad);right:var(--pad);top:372px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.stat{padding:0 40px;border-left:1px solid var(--hair);}
.stat:first-child{padding-left:0;border-left:0;}
.stat-big{font-family:var(--ff-disp);font-weight:900;font-size:74px;line-height:1;color:var(--gold);margin-bottom:22px;letter-spacing:-.01em;}
.stat-big .gt{color:var(--cream);}
.stat h4{font-family:var(--ff-disp);font-weight:700;font-size:25px;margin:0 0 12px;color:var(--cream);line-height:1.1;}
.stat p{margin:0;font-size:19px;line-height:1.5;color:var(--muted);}
.kern{position:absolute;left:var(--pad);right:var(--pad);bottom:90px;background:var(--navy-800);border-left:4px solid var(--gold);
  padding:34px 44px;display:flex;align-items:center;gap:38px;}
.kern .label{flex:0 0 auto;}
.kern p{margin:0;font-size:30px;font-weight:600;color:var(--cream);line-height:1.3;}

/* ---------- divider ---------- */
.divider{display:grid;place-items:center;}
.divider-main{text-align:left;max-width:1400px;padding:0 var(--pad);}
.divider .stack{display:flex;flex-direction:column;font-size:128px;line-height:.96;margin:22px 0 30px;}
.divider .stack .outline{color:transparent;-webkit-text-stroke:2px var(--gold);}
.divider-index{position:absolute;top:var(--pad);left:var(--pad);}
.cat-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px;}
.pos-divider{background:var(--navy-950);}
.social-divider{background:var(--navy-950);}
.social-divider .stack .outline{-webkit-text-stroke-color:var(--strand);}

/* ============== MEASURE template ============== */
.measure{position:absolute;inset:0;display:grid;grid-template-columns:46% 54%;}
.measure.flip{grid-template-columns:54% 46%;}
.measure .m-shot{position:relative;overflow:hidden;background:var(--navy-800);order:0;}
.measure.flip .m-shot{order:1;}
.measure .m-shot img{width:100%;height:100%;object-fit:cover;display:block;}
.measure .m-shot::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(60,180,75,.4);
  background:linear-gradient(90deg,transparent 60%,rgba(6,8,7,.4));pointer-events:none;}
.measure .m-shot .pin{position:absolute;left:36px;top:36px;background:var(--gold);color:var(--navy-900);
  font-family:var(--ff-disp);font-weight:900;font-size:34px;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;
  box-shadow:0 14px 30px -8px rgba(0,0,0,.5);}
.m-shot .shotcap{position:absolute;left:0;bottom:0;z-index:3;font-family:var(--ff-mono);font-size:16px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cream);background:rgba(8,10,12,.82);padding:10px 18px;backdrop-filter:blur(3px);}
.measure .m-body{padding:96px 110px;display:flex;flex-direction:column;justify-content:center;gap:0;}
.m-cat{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.m-cat .dotline{flex:1;height:1px;background:var(--hair);}
.m-title{font-family:var(--ff-disp);font-weight:800;font-size:52px;line-height:1.02;margin:0 0 8px;color:var(--fg);letter-spacing:-.01em;}
.m-claim{font-size:24px;color:var(--muted);margin:0 0 30px;line-height:1.4;}
.imech{display:flex;flex-direction:column;gap:20px;}
.imech .row{display:grid;grid-template-columns:140px 1fr;gap:22px;align-items:start;
  padding-top:18px;border-top:1px solid var(--hair);}
.imech .row .label{padding-top:3px;}
.imech .row p{margin:0;font-size:20px;line-height:1.46;color:var(--fg);}
.imech .row.effekt p{color:var(--gold-bright);font-weight:600;}
.imech .row .ico{display:inline-block;}

/* graphic (no-photo) measure side */
.m-graphic{position:relative;display:grid;place-items:center;overflow:hidden;background:
  repeating-linear-gradient(135deg,rgba(60,180,75,.07) 0 22px,transparent 22px 44px),var(--navy-800);}
.m-graphic .giant{font-family:var(--ff-disp);font-weight:900;font-size:128px;color:transparent;-webkit-text-stroke:2px var(--gold);
  line-height:.86;text-align:center;letter-spacing:-.01em;opacity:.92;padding:0 30px;}
.m-graphic .gsub{position:absolute;bottom:70px;left:0;right:0;text-align:center;}

/* ============== STAMP CARD ============== */
.stampcard{margin-top:26px;background:var(--navy-700);border:1px solid var(--hair);border-radius:16px;padding:26px 28px;
  position:relative;box-shadow:0 24px 50px -20px rgba(0,0,0,.5);max-width:560px;}
.stampcard .sc-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.stampcard .sc-head .label{color:var(--gold-bright);}
.stamp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed rgba(243,236,219,.35);display:grid;place-items:center;cursor:pointer;
  font-family:var(--ff-mono);font-size:15px;color:var(--muted);transition:transform .15s var(--ease),border-color .2s,background .2s;position:relative;}
.stamp:hover{border-color:var(--gold);transform:translateY(-2px);}
.stamp.on{background:var(--gold);border-style:solid;border-color:var(--gold);color:var(--navy-900);}
.stamp.on .num{display:none;}
.stamp.on::after{content:'';width:54%;height:54%;border-radius:50%;background:var(--navy-900);
  -webkit-mask:radial-gradient(circle at 50% 30%,transparent 0,transparent 0);}
.stamp .ploplogo{width:56%;height:56%;display:none;}
.stamp.on .ploplogo{display:block;}
.stamp.pop{animation:stamp-pop .35s var(--ease);}
@keyframes stamp-pop{0%{transform:scale(.5)}60%{transform:scale(1.18)}100%{transform:scale(1)}}
.sc-foot{margin-top:18px;font-size:21px;color:var(--cream);}
.sc-foot b{color:var(--gold-bright);}
.stampcard.complete{border-color:var(--gold-bright);box-shadow:0 0 0 2px var(--gold),0 24px 50px -16px rgba(60,180,75,.45);}

/* mini plop mark used in stamps */
.plopmark{background:var(--navy-900);border-radius:50%;position:relative;}
.plopmark i{position:absolute;left:50%;top:16%;transform:translateX(-50%);width:26%;height:58%;border-radius:40% 40% 30% 30%;background:var(--cream);}
.plopmark i::after{content:'';position:absolute;left:50%;top:-30%;transform:translateX(-50%);width:60%;height:38%;border-radius:50%;background:var(--cream);}

/* ============== SOCIAL STORY phone ============== */
.story-zone{position:relative;display:grid;place-items:center;overflow:hidden;background:
  radial-gradient(120% 90% at 70% 20%,rgba(60,180,75,.18),transparent 60%),var(--navy-800);}
.phone{width:360px;height:740px;border-radius:46px;background:#000;border:10px solid #050605;
  box-shadow:0 40px 80px -24px rgba(0,0,0,.7),inset 0 0 0 1px rgba(60,180,75,.3);position:relative;overflow:hidden;}
.phone .notch{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:118px;height:26px;border-radius:14px;background:#050605;z-index:4;}
.phone .scr{position:absolute;inset:0;padding:54px 22px 22px;display:flex;flex-direction:column;color:var(--cream);}
.story-top{display:flex;align-items:center;gap:10px;font-family:var(--ff-mono);font-size:13px;letter-spacing:.1em;}
.story-top .av{width:34px;height:34px;border-radius:50%;background:var(--gold);flex:0 0 auto;}
.story-bar{height:3px;background:rgba(243,236,219,.3);border-radius:2px;margin:14px 0 0;overflow:hidden;}
.story-bar i{display:block;height:100%;width:62%;background:var(--cream);border-radius:2px;}
.story-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;text-align:center;}
.story-big{font-family:var(--ff-disp);font-weight:900;font-size:40px;line-height:.98;}
.story-pill{align-self:center;background:var(--cream);color:var(--navy-900);font-family:var(--ff-mono);font-weight:700;
  font-size:14px;letter-spacing:.06em;padding:12px 20px;border-radius:999px;text-transform:uppercase;}
.story-tag{font-family:var(--ff-mono);font-size:13px;color:var(--strand);letter-spacing:.1em;}
.social .imech .row.pos p{color:var(--strand);}
.social .imech .row.pos .label{color:var(--strand);}
.social .m-shot .pin{background:var(--strand);}
.social .m-graphic .giant{-webkit-text-stroke-color:var(--strand);}

/* ============== ECOSYSTEM ============== */
.eco{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:56px;}
.eco-head{position:absolute;top:var(--pad);left:var(--pad);right:var(--pad);}
.eco-head .head-tight{font-size:60px;max-width:none;}
.eco-stage{position:relative;width:980px;height:760px;}
.eco-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:220px;height:220px;border-radius:50%;
  background:radial-gradient(120% 120% at 38% 30%,var(--gold-bright),var(--gold) 60%,#1f5c2a);display:grid;place-items:center;z-index:5;
  box-shadow:0 0 0 14px rgba(60,180,75,.14),0 0 90px rgba(60,180,75,.4);}
.eco-center b{font-family:var(--ff-disp);font-weight:900;font-size:46px;color:var(--navy-900);}
.eco-center span{font-family:var(--ff-mono);font-size:12px;letter-spacing:.2em;color:var(--navy-900);text-transform:uppercase;}
.eco-node{position:absolute;width:192px;transform:translate(-50%,-50%);text-align:center;}
.eco-node .dot{width:84px;height:84px;border-radius:50%;background:var(--navy-700);border:1px solid var(--hair);margin:0 auto 12px;
  display:grid;place-items:center;font-family:var(--ff-disp);font-weight:800;font-size:20px;color:var(--gold-bright);
  box-shadow:0 16px 30px -14px rgba(0,0,0,.5);}
.eco-node h5{font-family:var(--ff-disp);font-weight:700;font-size:24px;margin:0 0 4px;color:var(--cream);}
.eco-node p{margin:0;font-size:16px;color:var(--muted);line-height:1.3;}
.eco-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;}
.eco-svg line{stroke:var(--hair);stroke-width:2;}
@media (prefers-reduced-motion:no-preference){
  [data-deck-active] .eco-svg line{stroke-dasharray:6 8;animation:dash 18s linear infinite;}
  [data-deck-active] .eco-center{animation:eco-pulse 3.6s ease-in-out infinite;}
}
@keyframes dash{to{stroke-dashoffset:-200}}
@keyframes eco-pulse{0%,100%{box-shadow:0 0 0 14px rgba(60,180,75,.14),0 0 80px rgba(60,180,75,.35)}50%{box-shadow:0 0 0 22px rgba(60,180,75,.06),0 0 120px rgba(60,180,75,.55)}}

/* ============== JAHRESPLAN ============== */
.plan{position:absolute;inset:0;padding:var(--pad);display:flex;flex-direction:column;}
.plan .slide-head{position:static;}
.q-row{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px;}
.q-col{background:var(--navy-800);border:1px solid var(--hair);border-top:4px solid var(--gold);border-radius:14px;
  padding:30px 28px;cursor:pointer;transition:transform .3s var(--ease),background .3s,box-shadow .3s;display:flex;flex-direction:column;}
.q-col:hover{transform:translateY(-6px);background:var(--navy-700);}
.q-col.active{background:var(--navy-700);box-shadow:0 30px 60px -24px rgba(0,0,0,.6),inset 0 0 0 1px var(--gold);}
.q-col .q-id{font-family:var(--ff-disp);font-weight:900;font-size:30px;color:var(--gold-bright);margin-bottom:4px;}
.q-col .q-months{font-family:var(--ff-mono);font-size:14px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-bottom:22px;}
.q-block{margin-bottom:18px;}
.q-block .qb-label{font-family:var(--ff-mono);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;}
.q-block p{margin:0;font-size:18px;line-height:1.42;color:var(--cream);}
.q-block.q-social p{color:var(--strand);}

/* ============== FINALE ============== */
.finale{display:grid;place-items:center;background:var(--navy-950);text-align:center;}
.finale-wrap{max-width:1500px;padding:0 var(--pad);position:relative;z-index:2;}
.finale .line1{font-family:var(--ff-disp);font-weight:700;font-size:58px;line-height:1.12;color:var(--cream);margin:0;}
.finale .line2{font-family:var(--ff-disp);font-weight:700;font-size:58px;line-height:1.12;color:var(--muted);margin:0 0 36px;}
.finale .das-plop{font-family:var(--ff-disp);font-weight:900;font-size:160px;line-height:.9;letter-spacing:-.02em;color:var(--gold);margin:0;}
.finale .fin-foot{margin-top:54px;display:flex;gap:18px;align-items:center;justify-content:center;}
.finale-cap-zone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;}
.finale .plop-burst{color:var(--gold-bright);}
