/* PCFOX V30 — Takt-Szenen (Animation → Text → Animation → Gesamtbild) und Themenseiten. */

/* ═══ Takt-Szenen ═══ */
.scene--beats{--len:340vh}
.beats{position:relative;z-index:2;height:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);grid-template-rows:1fr auto;align-items:end;column-gap:clamp(32px,6vw,120px);padding:118px 0 clamp(48px,9vh,110px)}
.beat--lead{grid-column:1;grid-row:1;align-self:end}
.beat--detail{grid-column:2;grid-row:1/3;align-self:end;justify-self:end;width:min(100%,460px)}
.beat--cta{grid-column:1;grid-row:2;margin-top:clamp(22px,3.5vh,36px);display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
.beats h2{font-size:clamp(44px,5.4vw,104px)}
.beats .lede{max-width:28em}

/* Zustände: nur Opacity/Transform/Blur, Übergang zeitbasiert — Endzustand hängt nur vom Scroll ab */
.js .scene--beats .beat{opacity:0;transform:translate3d(0,28px,0);filter:blur(8px);pointer-events:none;
  transition:opacity var(--d-slow) var(--ease-out),transform var(--d-slow) var(--ease-out),filter var(--d-slow) var(--ease-out)}
.js .scene--beats .beat--detail{transition-delay:.08s}
.js .scene--beats .beat--cta{transform:translate3d(0,16px,0)}
.scene--beats[data-state="1"] .beat--lead,
.scene--beats[data-state="3"] .beat--lead,
.scene--beats[data-state="4"] .beat--lead,
.scene--beats[data-state="3"] .beat--detail,
.scene--beats[data-state="4"] .beat--detail,
.scene--beats[data-state="4"] .beat--cta{opacity:1!important;transform:none!important;filter:none!important;pointer-events:auto!important}
/* Während der Animationen gehört das Bild dem Film: Schleier zurücknehmen */
.scene--beats .veil{transition:opacity var(--d-slow) var(--ease-out)}
.scene--beats[data-state="0"] .veil,.scene--beats[data-state="2"] .veil{opacity:.35}

/* Takt-Anzeige: vier feine Striche unten, zeigen wo man in der Szene steht */
.beat-ticks{position:absolute;z-index:3;left:var(--gutter);bottom:clamp(18px,3vh,30px);display:flex;gap:6px}
.beat-ticks i{width:22px;height:2px;border-radius:2px;background:currentColor;opacity:.18;transition:opacity var(--d-base) ease,width var(--d-base) var(--ease-out)}
.tone-dark .beat-ticks{color:#fff}.tone-light .beat-ticks{color:#0b0b10}
.scene--beats[data-state="1"] .beat-ticks i:nth-child(1),.scene--beats[data-state="2"] .beat-ticks i:nth-child(-n+2),
.scene--beats[data-state="3"] .beat-ticks i:nth-child(-n+3),.scene--beats[data-state="4"] .beat-ticks i{opacity:.75}
.scene--beats[data-state="0"] .beat-ticks i:nth-child(1),.scene--beats[data-state="1"] .beat-ticks i:nth-child(2),
.scene--beats[data-state="2"] .beat-ticks i:nth-child(3),.scene--beats[data-state="3"] .beat-ticks i:nth-child(4){width:40px;opacity:.9}

/* Studio-Szenen: Film in eigener Fläche rechts, Text links */
.scene--beats.tone-light .film--box{--box:9% 0 5% 36%;transform-origin:78% 0;transition:transform var(--d-slow) var(--ease-out)}
/* Gesamtbild: der Film weicht nach oben rechts aus und macht den Details Platz */
.scene--beats.tone-light[data-state="3"] .film--box,
.scene--beats.tone-light[data-state="4"] .film--box{transform:translate3d(0,-7vh,0) scale(.7)}
.scene--beats.tone-light .veil{display:none}
.scene--beats.tone-light .beats{grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr)}
.scene--beats.tone-light .beat--lead{align-self:center}
.scene--beats.tone-light .beat--detail{align-self:end;width:min(100%,560px)}

/* Detail-Bausteine */
.points{display:grid;gap:0}
.points li{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}
.points li:last-child{border-bottom:1px solid var(--line)}
.points img{width:22px;height:22px;object-fit:contain;grid-row:1/3;margin-top:2px}
.points b{font-size:15.5px;font-weight:620;letter-spacing:-.01em;color:var(--fg)}
.points span{grid-column:2;font-size:13.5px;color:var(--fg-3)}
.points .n{grid-row:1/3;font:600 12px/1.6 var(--mono);color:var(--accent)}
.more{display:inline-flex;align-items:center;gap:12px;height:48px;padding:0 22px;border-radius:999px;font-size:15px;font-weight:600;color:var(--fg);
  background:color-mix(in srgb,var(--fg) 6%,transparent);border:1px solid var(--line-2);transition:background var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease)}
.more:hover{background:color-mix(in srgb,var(--fg) 12%,transparent);border-color:color-mix(in srgb,var(--fg) 30%,transparent)}
.more i{font-style:normal;color:var(--accent);transition:transform var(--d-fast) var(--ease)}
.more:hover i{transform:translateX(4px)}
.tone-light .more{background:#fff;box-shadow:0 10px 28px rgba(11,11,16,.06)}

/* ═══ Themenseiten ═══ */
.scene--page{--len:230vh}
.page-hero{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:120px 0 clamp(48px,9vh,100px);
  transform:translate3d(0,calc(var(--hp,0) * -6vh),0);opacity:calc(1 - var(--hp,0) * 1.1)}
.crumbs{display:flex;gap:10px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.crumbs a{color:var(--fg-2)}.crumbs a:hover{color:var(--fg)}
.page-hero h1{margin-top:18px;max-width:7.6em;font-size:clamp(48px,6vw,116px);line-height:.92;font-weight:660;letter-spacing:-.05em;color:var(--fg)}
.page-hero h1 span{color:var(--fg-3)}
.page-hero .lede{max-width:34em}
.page-hero .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

.topic{position:relative;z-index:6;padding:clamp(90px,14vh,160px) 0}
.topic + .topic{padding-top:0}
.topic__head{max-width:980px}
.topic__head h2{font-size:clamp(38px,4.4vw,80px)}
.topic__intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,90px);margin-top:clamp(28px,5vh,48px)}
.topic__intro p{font-size:clamp(17px,1.25vw,20px);line-height:1.6;color:var(--fg-2)}
.topic__intro p strong{color:var(--fg);font-weight:620}

.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.4vw,20px);margin-top:clamp(36px,6vh,64px)}
.card{position:relative;display:flex;flex-direction:column;gap:12px;padding:clamp(22px,2.2vw,32px);border-radius:24px;
  background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.09);
  transition:border-color var(--d-fast) var(--ease),transform var(--d-base) var(--ease-out)}
.card:hover{border-color:rgba(195,178,255,.28);transform:translate3d(0,-4px,0)}
.card__icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.card__icon img{width:24px;height:24px;object-fit:contain}
.card__icon b{font:600 13px/1 var(--mono);color:var(--lavender)}
.card h3{font-size:19px}
.card p{font-size:14.5px;line-height:1.55;color:var(--fg-2)}
.card ul{display:grid;gap:7px;margin-top:4px}
.card li{position:relative;padding-left:18px;font-size:13.5px;color:var(--fg-2)}
.card li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1px;background:var(--lavender)}
.card--wide{grid-column:span 2}

.steps{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(36px,6vh,64px);counter-reset:st}
.step{position:relative;padding-top:26px;border-top:1px solid var(--line-2)}
.step::before{counter-increment:st;content:"0" counter(st);position:absolute;top:-1px;left:0;padding:10px 0 0;font:600 12px/1 var(--mono);color:var(--lavender)}
.step::after{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--lavender);box-shadow:0 0 0 4px rgba(195,178,255,.15)}
.step h3{margin-top:12px;font-size:18px}
.step p{margin-top:8px;font-size:14px;line-height:1.55;color:var(--fg-2)}

.benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:clamp(36px,6vh,64px)}
.benefit strong{display:block;font-size:clamp(22px,1.9vw,30px);font-weight:620;letter-spacing:-.025em;line-height:1.15;color:var(--fg)}
.benefit p{margin-top:12px;font-size:14.5px;line-height:1.6;color:var(--fg-2)}

.principle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}
.principle div{padding:22px;border-radius:20px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.principle b{display:block;font-size:clamp(40px,4vw,64px);font-weight:250;letter-spacing:-.04em;color:var(--lavender);line-height:1}
.principle span{display:block;margin-top:10px;font-size:14px;color:var(--fg-2)}

.faq{margin-top:clamp(30px,5vh,52px);border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;cursor:pointer;list-style:none;font-size:clamp(16px,1.2vw,19px);font-weight:600;color:var(--fg)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-2);font-weight:300;font-size:18px;transition:transform var(--d-fast) var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 24px;max-width:52em;font-size:15px;line-height:1.65;color:var(--fg-2)}

.cta-band{position:relative;z-index:6;padding:clamp(90px,14vh,150px) 0;text-align:left}
.cta-band__box{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,5vw,80px);align-items:end;padding:clamp(28px,4vw,56px);border-radius:32px;
  background:radial-gradient(ellipse 70% 90% at 0% 0%,rgba(138,92,255,.18),transparent 60%),linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.1)}
.cta-band h2{margin-top:14px;font-size:clamp(34px,3.6vw,64px)}
.cta-band__actions{display:grid;gap:10px}
.cta-band__actions a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);font-weight:600;transition:background var(--d-quick) ease,border-color var(--d-quick) ease}
.cta-band__actions a:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.2)}
.cta-band__actions small{display:block;font-size:11px;font-weight:680;letter-spacing:.18em;text-transform:uppercase;color:var(--lavender);margin-bottom:3px}
.cta-band__actions i{font-style:normal;color:var(--lavender)}

.note{margin-top:18px;font-size:12.5px;color:var(--fg-3)}

/* ═══ Tablet ═══ */
@media (max-width:1100px){
  .beats{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr)}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card--wide{grid-column:span 2}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}
  .benefits{grid-template-columns:1fr 1fr}
}

/* ═══ Mobile: kein Pinning, alles sichtbar, Film über dem Text ═══ */
@media (max-width:860px){
  .scene--beats,.scene--page{height:auto}
  .beats{display:flex;flex-direction:column;gap:26px;padding:28px 0 64px;height:auto}
  .beat--detail{width:100%}
  .scene--beats .stage{display:flex;flex-direction:column;min-height:0}
  .scene--beats .film{position:relative;inset:auto;height:auto;aspect-ratio:16/10;margin-top:88px}
  .scene--beats .veil{display:none}
  .scene--beats.tone-dark .film{-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
  .beat-ticks{display:none}
  .scene--beats.tone-light .beats{display:flex}
  .page-hero{padding:22px 0 48px;transform:none;opacity:1}
  .scene--page .stage{display:flex;flex-direction:column;min-height:0}
  .scene--page .film{position:relative;inset:auto;height:auto;aspect-ratio:16/10;margin-top:84px}
  .scene--page .veil{display:none}
  .topic__intro,.benefits,.cta-band__box,.principle{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .card--wide{grid-column:auto}
  .steps{grid-template-columns:1fr}
}

/* ═══ Reduzierte Bewegung: Gesamtbild sofort ═══ */
@media (prefers-reduced-motion:reduce){
  .scene--beats,.scene--page{height:auto}
  .js .scene--beats .beat{opacity:1;transform:none;filter:none;pointer-events:auto;transition:none}
  .scene--beats .veil{opacity:1!important}
  .page-hero{transform:none!important;opacity:1!important}
  .card,.more i{transition:none}
}

/* Kette im Detailbereich (Endpoint-Szene) */
.chain.chain--inline{position:static;margin-top:18px;padding:0}
/* Fusszeile mit Themen-Links */
.footer__links{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px}
.footer__links a{border-bottom:0!important;color:var(--fg-2)}
.footer__links a:hover{color:#fff}
/* Themenseite mit Studio-Film */
.scene--page.tone-light .film--box{--box:12% 0 8% 40%}
.scene--page.tone-light .stage{background:var(--paper)}
a.card{color:inherit}
/* Buttons auf hellen Themenseiten: dunkle Schrift statt weiss auf weiss */
.scene.tone-light .btn{color:#0b0b10;background:rgba(11,11,16,.04);border-color:rgba(11,11,16,.16);box-shadow:none}
.scene.tone-light .btn:hover{background:rgba(11,11,16,.08);border-color:rgba(11,11,16,.28)}
.scene.tone-light .btn--solid{color:#fff;background:#0b0b10;border-color:transparent;box-shadow:0 12px 30px rgba(11,11,16,.18)}
.scene.tone-light .btn--solid:hover{background:#23232b}
a.card .more{margin-top:auto;align-self:flex-start}

/* Download-Karten (zwei Spalten, auf dem Handy eine) */
.cards.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* web.html: Überschrift als h1, gleiche Optik wie auf der Startseite */
.web__head h1{margin-top:20px;font-size:clamp(40px,4.2vw,84px);line-height:.94;font-weight:640;letter-spacing:-.045em;color:var(--fg);text-wrap:balance}
.web__head h1 span{color:var(--fg-3)}
@media (max-width:860px){
  .cards.cards--2{grid-template-columns:1fr}
  .scene--beats.tone-light .film--box{transform:none!important}
}
@media (prefers-reduced-motion:reduce){
  .scene--beats.tone-light .film--box{transform:none!important;transition:none}
}
