/* Manifest spreads (rozdziały 02–05): gęste akapity + wizualizacje sterowane krokami sekwencji.
   Korzysta z istniejącej mechaniki [data-capability-sequence] / data-step z article-v2.js. */

.manifest-spread .spread-inner{display:flex;flex-direction:column;gap:clamp(20px,3vh,36px)}
.manifest-heading{display:flex;flex-direction:column;gap:10px}
.manifest-kicker{font:500 11px/1 var(--font-display);letter-spacing:.06em;color:var(--article-accent);text-transform:uppercase}
.manifest-spread h2{font-size:clamp(28px,2.9vw,44px);line-height:1.12;margin:0;max-width:30ch}
.manifest-seq{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:clamp(28px,4vw,64px);align-items:center}
.manifest-seq .capability-step p{font-size:clamp(15px,1.12vw,17px);line-height:1.6;max-width:52ch}
.manifest-seq .capability-step p+p{margin-top:.9em}
.manifest-seq .capability-number{letter-spacing:.05em}
.manifest-visual{margin:0;min-width:0;width:100%}
.manifest-visual svg{display:block;width:100%;height:auto;max-height:min(58vh,520px);overflow:visible}
.manifest-visual text{fill:currentColor}
.manifest-visual{color:var(--article-ink)}

/* krok 3 (czterokrokowe sekwencje) — istniejący CSS obsługuje 0–2 */
.sequence-ready .capability-sequence[data-step="3"] [data-capability-step="3"]{opacity:1;visibility:visible;pointer-events:auto;transform:none}

/* wspólne przejścia */
.manifest-visual .v-brief *,.manifest-visual .v-bill *,.manifest-visual .v-edge *,.manifest-visual .v-prompt *,.manifest-visual .v-rules *,.manifest-visual .v-grid *,.manifest-visual .v-same *,.manifest-visual .v-collect *,.manifest-visual .v-stages *,.manifest-visual .v-gates *{transition:opacity .45s var(--article-ease),transform .55s var(--article-ease),fill .45s ease,stroke .45s ease}
.manifest-visual .hide{opacity:0}

/* ===== 02.1 Wtorkowy brief ===== */
.v-brief .s-deck,.v-brief .s-ideas,.v-brief .s-reasons,.v-brief .s-sources,.v-brief .s-loop{opacity:0}
.v-brief .deck-card{fill:#fff;stroke:var(--article-line)}
.v-brief .deck-screens rect{fill:#d9d2c7}
.v-brief .deck-trends rect{fill:#eeece6;stroke:var(--article-line)}
.v-brief .deck-stamp rect{fill:none;stroke:var(--article-orange);stroke-width:2}
.v-brief .deck-stamp text{fill:var(--article-orange)}
.v-brief .deck-stamp{opacity:0;transition-delay:.5s}
.v-brief .ideas-grid circle{fill:var(--article-ink);transform-box:fill-box;transform-origin:center}
.v-brief .ideas-grid circle:not(.keep){transition-delay:.5s}
.v-brief .ideas-dead{fill:var(--article-accent)}
.v-brief .reason rect{fill:#eeece6}
.v-brief .src rect{fill:#fff;stroke:var(--article-orange)}
.v-brief .src-links line{stroke-dasharray:80;stroke-dashoffset:80}
.v-brief .loop-node rect{fill:#fff;stroke:var(--article-ink)}
.v-brief .loop-node text{fill:var(--article-ink)}
.v-brief .loop-node.n2 rect{fill:var(--article-orange);stroke:var(--article-orange)}
.v-brief .loop-node.n2 text{fill:#fff}
.v-brief .loop-arrows path{stroke-dasharray:200;stroke-dashoffset:200}
/* krok 0 */
.manifest-seq[data-step="0"] .v-brief .s-deck,.manifest-seq[data-step="0"] .v-brief .deck-stamp{opacity:1}
/* krok 1 */
.manifest-seq[data-step="1"] .v-brief .s-ideas,.manifest-seq[data-step="1"] .v-brief .s-reasons{opacity:1}
.manifest-seq[data-step="1"] .v-brief .ideas-grid circle:not(.keep){fill:#d9d2c7;transform:scale(.55)}
.manifest-seq[data-step="1"] .v-brief .ideas-grid circle.keep{fill:var(--article-orange)}
.manifest-seq[data-step="1"] .v-brief .reason{opacity:0;animation:brief-reason .5s var(--article-ease) forwards}
.manifest-seq[data-step="1"] .v-brief .r1{animation-delay:.9s}.manifest-seq[data-step="1"] .v-brief .r2{animation-delay:1.1s}.manifest-seq[data-step="1"] .v-brief .r3{animation-delay:1.3s}
@keyframes brief-reason{to{opacity:1}}
/* krok 2 */
.manifest-seq[data-step="2"] .v-brief .s-reasons,.manifest-seq[data-step="2"] .v-brief .s-sources{opacity:1}
.manifest-seq[data-step="2"] .v-brief .reason rect{fill:#fff;stroke:var(--article-orange)}
.manifest-seq[data-step="2"] .v-brief .src-links line{stroke-dashoffset:0;transition:stroke-dashoffset .7s var(--article-ease) .4s}
/* krok 3 */
.manifest-seq[data-step="3"] .v-brief .s-loop{opacity:1}
.manifest-seq[data-step="3"] .v-brief .loop-arrows path{stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--article-ease)}
.manifest-seq[data-step="3"] .v-brief .loop-arrows path:nth-child(2){transition-delay:.3s}.manifest-seq[data-step="3"] .v-brief .loop-arrows path:nth-child(3){transition-delay:.6s}.manifest-seq[data-step="3"] .v-brief .loop-arrows path:nth-child(4){transition-delay:.9s}

/* ===== 02.2 Rachunek ===== */
.v-bill .num{font-weight:600;fill:var(--article-ink)}
.v-bill .num.big{fill:var(--article-orange);font-size:18px}
.v-bill .stack rect{fill:#eeece6;stroke:var(--article-line)}
.v-bill .stack text{fill:var(--article-muted)}
.v-bill .stack .lost{fill:var(--article-accent)}
.v-bill .stack.won rect{fill:var(--article-ink);stroke:var(--article-ink)}
.v-bill .stack.won .lost{fill:var(--article-ink);font-weight:600}
.v-bill .bill-bars{opacity:0}
.v-bill .bar{fill:var(--article-ink)}
.v-bill .bar.research{fill:var(--article-orange)}
.v-bill .bar-arrow{stroke-dasharray:600;stroke-dashoffset:600;opacity:.8}
.manifest-seq[data-step="1"] .v-bill .bill-stacks,.manifest-seq[data-step="1"] .v-bill .bill-formula{opacity:0;transform:translateY(-12px)}
.manifest-seq[data-step="1"] .v-bill .bill-bars{opacity:1}
.manifest-seq[data-step="1"] .v-bill .bar-arrow{stroke-dashoffset:0;transition:stroke-dashoffset 1.4s var(--article-ease) .3s}

/* ===== 02.3 Przewaga ===== */
.v-edge .agency rect{fill:#f3f0e8;stroke:var(--article-line)}
.v-edge .cluster circle{fill:#b4aa9c}
.v-edge .gap rect{fill:var(--article-orange)}
.v-edge .gap,.v-edge .five,.v-edge .cap1,.v-edge .cap2{opacity:0}
.v-edge .five circle{fill:var(--article-ink)}
.manifest-seq[data-step="1"] .v-edge .gap,.manifest-seq[data-step="2"] .v-edge .gap{opacity:1}
.manifest-seq[data-step="1"] .v-edge .agency.you rect,.manifest-seq[data-step="2"] .v-edge .agency.you rect{stroke:var(--article-orange);fill:#fff}
.manifest-seq[data-step="1"] .v-edge .cap0,.manifest-seq[data-step="2"] .v-edge .cap0,.manifest-seq[data-step="2"] .v-edge .cap1{opacity:0}
.manifest-seq[data-step="1"] .v-edge .cap1,.manifest-seq[data-step="2"] .v-edge .cap2{opacity:1}
.manifest-seq[data-step="2"] .v-edge .agency.you .cluster{opacity:0}
.manifest-seq[data-step="2"] .v-edge .five{opacity:1}
.manifest-seq[data-step="2"] .v-edge .agency:not(.you) .cluster circle{fill:#d9d2c7}

/* ===== 03.1 Prompt ===== */
.v-prompt .prompt-box rect,.v-prompt .report rect:first-child{fill:#f3f0e8;stroke:var(--article-line)}
.v-prompt .sec rect{fill:#b4aa9c}
.v-prompt .who1,.v-prompt .diffs{opacity:0}
.v-prompt .plink{stroke-dasharray:4 4}
.v-prompt .rb .sec rect{transform-box:fill-box;transform-origin:left center}
.manifest-seq[data-step="1"] .v-prompt .who0,.manifest-seq[data-step="1"] .v-prompt .same{opacity:0}
.manifest-seq[data-step="1"] .v-prompt .who1,.manifest-seq[data-step="1"] .v-prompt .diffs{opacity:1}
.manifest-seq[data-step="1"] .v-prompt .rb .m1{transform:scaleX(1.7);fill:var(--article-orange)}
.manifest-seq[data-step="1"] .v-prompt .rb .m2{transform:scaleX(.45);fill:var(--article-orange)}
.manifest-seq[data-step="1"] .v-prompt .rb .m3{transform:translateY(14px);fill:var(--article-orange)}
.manifest-seq[data-step="1"] .v-prompt .rb .m4{opacity:0}
.manifest-seq[data-step="1"] .v-prompt .rb rect:first-child{stroke:var(--article-orange);fill:#fff}

/* ===== 03.2 Harness ===== */
.v-rules .rule rect{fill:#fff;stroke:var(--article-line)}
.v-rules .rule{opacity:0;transform:translateX(-14px);transition-delay:calc(var(--i) * 70ms)}
.manifest-seq[data-step="0"] .v-rules .rule,.manifest-seq[data-step="1"] .v-rules .rule{opacity:1;transform:none}
.v-rules .harness-frame{opacity:0;transition-delay:.6s}
.manifest-seq[data-step="0"] .v-rules .harness-frame,.manifest-seq[data-step="1"] .v-rules .harness-frame{opacity:1}
.v-rules .builder{opacity:0}
.manifest-seq[data-step="1"] .v-rules .builder{opacity:1}
.manifest-seq[data-step="1"] .v-rules .rule rect{stroke:var(--article-ink)}
.manifest-seq[data-step="1"] .v-rules .harness-frame rect{stroke:var(--article-ink);stroke-dasharray:none}
.manifest-seq[data-step="1"] .v-rules .harness-frame text{fill:var(--article-ink)}

/* ===== 03.3 Kto to zbuduje ===== */
.manifest-visual .v-build *{transition:opacity .45s var(--article-ease),transform .55s var(--article-ease),fill .45s ease,stroke .45s ease}
.v-build .need rect{fill:#fff;stroke:var(--article-line)}
.v-build .need{opacity:0;transform:translateX(-10px)}
.manifest-seq[data-step="0"] .v-build .need,.manifest-seq[data-step="1"] .v-build .need{opacity:1;transform:none}
.v-build .n2{transition-delay:.15s}.v-build .n3{transition-delay:.3s}
.v-build .diy-note{opacity:0;transition-delay:.6s}
.manifest-seq[data-step="0"] .v-build .diy-note{opacity:1}
.v-build .ready{opacity:0}
.v-build .ready-box{fill:#fff;stroke:var(--article-ink)}
.manifest-seq[data-step="1"] .v-build .ready{opacity:1}
.manifest-seq[data-step="1"] .v-build .diy{opacity:.4}

/* ===== 04.1 Siatka źródeł ===== */
.v-grid .c{fill:#eeece6;stroke:var(--article-line);transform-box:fill-box;transform-origin:center}
.v-grid .c.manual{fill:var(--article-ink)}
.manifest-seq[data-step="0"] .v-grid .c:not(.manual){opacity:.35;transform:scale(.7)}
.manifest-seq[data-step="1"] .v-grid .c,.manifest-seq[data-step="2"] .v-grid .c{fill:var(--article-ink);stroke:var(--article-ink);opacity:1;transform:none}
.manifest-seq[data-step="1"] .v-grid .row:not(.hot) .c{fill:#d9d2c7;stroke:#d9d2c7}
.manifest-seq[data-step="1"] .v-grid .row.hot .c{fill:var(--article-orange);stroke:var(--article-orange)}
.v-grid .frame,.v-grid .n1{opacity:0}
.manifest-seq[data-step="1"] .v-grid .n0{opacity:0}
.manifest-seq[data-step="1"] .v-grid .n1{opacity:1}
.manifest-seq[data-step="2"] .v-grid .n0,.manifest-seq[data-step="2"] .v-grid .n1{opacity:0}
.manifest-seq[data-step="2"] .v-grid .frame{opacity:1}
.v-grid .cells .c{transition-delay:calc(var(--d,0) * 1ms)}

/* ===== 04.2 Tak samo ===== */
.v-same .rep rect:first-of-type{fill:#fff;stroke:var(--article-line)}
.v-same .sk rect{fill:#d9d2c7}
.v-same .sk .claim{fill:var(--article-ink)}
.v-same .rep{opacity:0}
.v-same .rep:nth-child(1){transition-delay:0ms}.v-same .rep:nth-child(2){transition-delay:120ms}.v-same .rep:nth-child(3){transition-delay:240ms}
.manifest-seq[data-step="0"] .v-same .rep,.manifest-seq[data-step="1"] .v-same .rep,.manifest-seq[data-step="2"] .v-same .rep{opacity:1}
.v-same .sources,.v-same .flow{opacity:0}
.v-same .src rect{fill:#fff;stroke:var(--article-orange)}
.v-same .src text{fill:var(--article-ink)}
.manifest-seq[data-step="1"] .v-same .sources{opacity:1}
.manifest-seq[data-step="1"] .v-same .rep:nth-child(3) .claim{fill:var(--article-orange)}
.v-same .node rect{fill:#f3f0e8;stroke:var(--article-line)}
.v-same .node text{fill:var(--article-ink)}
.manifest-seq[data-step="2"] .v-same .flow{opacity:1}
.manifest-seq[data-step="2"] .v-same .reports{opacity:.35}
.manifest-seq[data-step="2"] .v-same .node:nth-of-type(4) rect{fill:var(--article-ink);stroke:var(--article-ink)}
.manifest-seq[data-step="2"] .v-same .node:nth-of-type(4) text{fill:#fff}

/* ===== 05.1 Zbieranie ===== */
.v-collect .channels,.v-collect .funnel,.v-collect .freeze{opacity:0;pointer-events:none}
.v-collect .ch-bg{fill:#f3f0e8;opacity:0}
.v-collect .ch-row circle{fill:#b4aa9c}
.v-collect .ch-lab{fill:var(--article-muted)}
.v-collect .ch-det{fill:#8f8373;font-size:10px}
/* krok 0: skan rząd po rzędzie */
.manifest-seq[data-step="0"] .v-collect .channels{opacity:1}
.manifest-seq[data-step="0"] .v-collect .ch-row{animation:ch-scan 5.6s linear infinite;animation-delay:calc(var(--i) * .42s)}
.manifest-seq[data-step="0"] .v-collect .ch-row .ch-bg{animation:ch-bg 5.6s linear infinite;animation-delay:calc(var(--i) * .42s)}
.manifest-seq[data-step="0"] .v-collect .ch-row circle{animation:ch-dot 5.6s linear infinite;animation-delay:calc(var(--i) * .42s)}
@keyframes ch-scan{0%,100%{opacity:.4}3%{opacity:1}12%{opacity:1}18%{opacity:.4}}
@keyframes ch-bg{0%,100%{opacity:0}3%{opacity:1}12%{opacity:1}18%{opacity:0}}
@keyframes ch-dot{0%,100%{fill:#b4aa9c}3%{fill:var(--article-orange)}12%{fill:var(--article-orange)}18%{fill:#b4aa9c}}
/* krok 1: lejek na pełną szerokość, kanały znikają */
.v-collect .fun rect{fill:#f3f0e8;stroke:var(--article-line)}
.v-collect .fun text{fill:var(--article-ink)}
.v-collect .fun .fd{fill:#8f8373;font-size:10px}
.v-collect .fun.llm rect{fill:var(--article-ink);stroke:var(--article-ink)}
.v-collect .fun.llm text,.v-collect .fun.llm .fd{fill:#fff}
.v-collect .fun.llm .fd{opacity:.65}
.v-collect .fun.out rect{fill:#fff;stroke:var(--article-orange);stroke-width:1.5}
.v-collect .fun.out .fd{fill:var(--article-accent)}
.v-collect .fun{opacity:0;transform:translateY(-8px)}
.manifest-seq[data-step="1"] .v-collect .funnel{opacity:1}
.manifest-seq[data-step="1"] .v-collect .fun{opacity:1;transform:none;transition-delay:calc(var(--i) * .13s)}
.v-collect .funnel-note{opacity:0}
.manifest-seq[data-step="1"] .v-collect .funnel-note{opacity:1;transition-delay:.95s}
/* krok 2: zamrożona rewizja na pełną szerokość */
.manifest-seq[data-step="2"] .v-collect .freeze{opacity:1}
.v-collect .freeze-box{fill:#fff;stroke:var(--article-ink)}
.v-collect .hash{fill:var(--article-orange)}
.v-collect .fr-files rect{fill:#eeece6}
.v-collect .freeze-note{opacity:0}
.manifest-seq[data-step="2"] .v-collect .freeze-note{opacity:1;transition-delay:.5s}

/* ===== 05.2 Analiza ===== */
.v-stages .st rect{fill:#d9d2c7;transform-box:fill-box;transform-origin:center}
.v-stages .st rect.light{fill:#b4aa9c}
.v-stages .st rect.heavy{fill:var(--article-ink)}
.v-stages .st rect.video{fill:var(--article-orange)}
.v-stages .st rect.code{fill:#fff;stroke:var(--article-ink)}
.v-stages .st{opacity:0;transform:translateY(8px);transition-delay:calc(var(--i) * 60ms)}
.manifest-seq[data-step="0"] .v-stages .st,.manifest-seq[data-step="1"] .v-stages .st{opacity:1;transform:none}
.v-stages .sn1,.v-stages .sn1b{opacity:0}
.manifest-seq[data-step="1"] .v-stages .sn0{opacity:0}
.manifest-seq[data-step="1"] .v-stages .sn1,.manifest-seq[data-step="1"] .v-stages .sn1b{opacity:1}
.manifest-seq[data-step="1"] .v-stages .st rect:not(.code){opacity:.35}
.manifest-seq[data-step="1"] .v-stages .st rect.code{stroke:var(--article-orange);stroke-width:2;transform:scale(1.25)}
.manifest-seq[data-step="1"] .v-stages .code-lane{fill:var(--article-orange);font-weight:600}
.manifest-seq[data-step="1"] .v-stages .code-line{stroke:var(--article-orange)}

/* ===== 05.3 Weryfikacja ===== */
.v-gates .gate rect{fill:#f3f0e8;stroke:var(--article-line)}
.v-gates .gate text{fill:var(--article-muted)}
.v-gates .gate .mark{opacity:0}
.v-gates .drop text{opacity:0}
.v-gates .ceiling{opacity:0}
.v-gates .tone rect{fill:#fff;stroke:var(--article-line)}
.v-gates .tone text{fill:var(--article-ink)}
.manifest-seq[data-step="0"] .v-gates .g1 rect,.manifest-seq[data-step="1"] .v-gates .g2 rect,.manifest-seq[data-step="2"] .v-gates .g3 rect,.manifest-seq[data-step="2"] .v-gates .g4 rect{fill:var(--article-ink);stroke:var(--article-ink)}
.manifest-seq[data-step="0"] .v-gates .g1 text,.manifest-seq[data-step="1"] .v-gates .g2 text,.manifest-seq[data-step="2"] .v-gates .g3 text,.manifest-seq[data-step="2"] .v-gates .g4 text{fill:#fff}
.manifest-seq[data-step="0"] .v-gates .g1 .mark,.manifest-seq[data-step="1"] .v-gates .g1 .mark,.manifest-seq[data-step="1"] .v-gates .g2 .mark,.manifest-seq[data-step="2"] .v-gates .g1 .mark,.manifest-seq[data-step="2"] .v-gates .g2 .mark,.manifest-seq[data-step="2"] .v-gates .g3 .mark,.manifest-seq[data-step="2"] .v-gates .g4 .mark,.manifest-seq[data-step="3"] .v-gates .gate .mark{opacity:1}
.manifest-seq[data-step="1"] .v-gates .g1 .mark,.manifest-seq[data-step="2"] .v-gates .g1 .mark,.manifest-seq[data-step="2"] .v-gates .g2 .mark,.manifest-seq[data-step="3"] .v-gates .gate .mark{fill:var(--article-orange)}
.manifest-seq[data-step="0"] .v-gates .d1,.manifest-seq[data-step="1"] .v-gates .d2,.manifest-seq[data-step="2"] .v-gates .d3{opacity:1}
.manifest-seq[data-step="3"] .v-gates .ceiling{opacity:1}
.manifest-seq[data-step="3"] .v-gates .gate-line,.manifest-seq[data-step="3"] .v-gates .gate{opacity:.4}
.manifest-seq[data-step="3"] .v-gates .tone.t1 rect{fill:#eeece6;stroke:#eeece6}
.manifest-seq[data-step="3"] .v-gates .tone.t1 text{fill:#b4aa9c;text-decoration:line-through}
.manifest-seq[data-step="3"] .v-gates .tone.t2 rect{fill:var(--article-ink);stroke:var(--article-ink)}
.manifest-seq[data-step="3"] .v-gates .tone.t2 text{fill:#fff}
.v-gates .ceil-line{transform-box:fill-box;transform-origin:right center}
.manifest-seq[data-step="3"] .v-gates .ceil-line{transform:scaleX(.74);transition-delay:.4s}

/* ===== responsywność ===== */
@media(max-width:1100px){.manifest-seq{grid-template-columns:1fr;gap:28px}.manifest-visual svg{max-height:none}}
@media(max-width:700px){.manifest-spread h2{font-size:30px}.manifest-seq .capability-step p{font-size:16px}
 /* Mobile keeps the same selected diagram stage as its copy and legend. */
}
@media(prefers-reduced-motion:reduce){.manifest-visual *{transition:none!important}}

/* ===== czytelność copy: krótkie akapity, listy, boldy ===== */
.manifest-seq .capability-step p{max-width:48ch}
.manifest-seq .capability-step p+p,.manifest-seq .capability-step .m-list+p,.manifest-seq .capability-step p+.m-list{margin-top:.75em}
.m-list{list-style:none;margin:0;padding:0;max-width:48ch}
.m-list li{position:relative;padding-left:20px;font:400 clamp(15px,1.12vw,17px)/1.5 var(--font-reading);color:var(--article-muted)}
.m-list li+li{margin-top:.35em}
.m-list li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--article-orange)}
.capability-step b,.m-list b,.features-sub b,.feature-copy b{font-weight:600;color:var(--article-ink)}
.manifest-heading{gap:0}

/* ===== moduł „Co dziś potrafi Wally?” ===== */
.features-intro .spread-inner{display:flex;flex-direction:column;justify-content:center;gap:28px;min-height:60svh}
.features-intro h2{font-size:clamp(44px,5.4vw,82px);line-height:1.04;max-width:16ch;margin:0}
.features-sub{font:400 clamp(18px,1.55vw,24px)/1.45 var(--font-reading);color:var(--article-muted);max-width:56ch}
.features-index{list-style:none;margin:12px 0 0;padding:20px 0 0;border-top:1px solid var(--article-line);display:flex;gap:clamp(24px,4vw,64px);flex-wrap:wrap}
.features-index li{font:500 13px/1.4 var(--font-display);color:var(--article-ink);display:flex;gap:10px;align-items:baseline}
.features-index li span{color:var(--article-orange);font-variant-numeric:tabular-nums}
.feature-layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(28px,3.4vw,56px);align-items:start}
.feature-number{display:block;font:500 13px/1 var(--font-display);color:var(--article-orange);margin-bottom:18px}
.feature-copy h2{font-size:clamp(30px,2.9vw,44px);line-height:1.08;margin:-.14em 0 20px;max-width:14ch}
.feature-copy p{font-size:clamp(15px,1.08vw,16.5px);line-height:1.58;max-width:38ch}
.feature-copy p+p,.feature-copy p+.m-list,.feature-copy .m-list+p{margin-top:.8em}
.feature-copy .m-list li{font-size:clamp(15px,1.08vw,16.5px);max-width:38ch}
.feature-visual{margin:0;min-width:0}
.feature-placeholder{aspect-ratio:16/10;border:1px dashed #c9bfb0;border-radius:6px;background:repeating-linear-gradient(-45deg,#f3f0e8 0 10px,#faf7ef 10px 20px);display:grid;place-items:center}
.feature-placeholder div{text-align:center;font-family:var(--font-display);color:var(--article-muted)}
.feature-placeholder span{display:block;font:600 12px/1 var(--font-display);letter-spacing:.08em;color:var(--article-orange);margin-bottom:8px}
.feature-placeholder small{font-size:13px}
@media(max-width:1100px){.feature-layout{grid-template-columns:1fr;gap:26px}.feature-copy p,.feature-copy .m-list li{max-width:60ch}.feature-flip .feature-layout .feature-copy{order:1}.feature-flip .feature-layout .feature-visual{order:2}.features-intro h2{font-size:clamp(38px,8vw,60px)}}
.v-bill .won-count{fill:var(--article-orange);font-weight:600}
.v-bill .stack.won .lost{fill:var(--article-orange)}

/* ===== szyna rozdziałów: 3 rozdziały + podrozdziały ===== */
.topic-rail{left:14px;top:50%;transform:translateY(-50%);display:block;width:44px;padding:10px 8px;border-radius:8px;background:transparent;transition:width .22s var(--article-ease),background-color .22s,box-shadow .22s}
.topic-rail:hover,.topic-rail:focus-within{width:236px;background:var(--article-paper);box-shadow:0 10px 34px #2c241a14;border:1px solid var(--article-line)}
.rail-chapters,.rail-sub{list-style:none;margin:0;padding:0}
.rail-chapter+.rail-chapter{margin-top:6px}
.topic-rail a{display:flex;align-items:center;gap:10px;width:auto;height:auto;min-height:32px;padding:4px 6px;text-decoration:none;color:var(--article-muted);outline-offset:2px}
.rail-mark{height:2px;width:24px;flex:0 0 24px;background:#b4aa9c;transform:scaleX(.45);transform-origin:left;transition:transform .18s var(--article-ease),background-color .18s}
.topic-rail a[aria-current] .rail-mark{transform:scaleX(1);background:var(--article-orange)}
.topic-rail a:hover .rail-mark{transform:scaleX(1);background:var(--article-ink)}
.rail-name{display:flex;gap:8px;align-items:baseline;font:500 12px/1.3 var(--font-display);color:var(--article-ink);white-space:nowrap;opacity:0;transition:opacity .18s}
.rail-name i{font-style:normal;color:var(--article-orange);font-variant-numeric:tabular-nums;font-size:10px}
.topic-rail:hover .rail-name,.topic-rail:focus-within .rail-name{opacity:1}
.rail-sub{display:none;margin:2px 0 8px 34px;border-left:1px solid var(--article-line);padding-left:12px}
.rail-chapter[data-current="true"] .rail-sub{display:block}
.topic-rail:not(:hover):not(:focus-within) .rail-sub{display:none}
.rail-sub a{min-height:26px;padding:2px 0;font:400 12px/1.35 var(--font-display);color:#8f8373;white-space:nowrap;opacity:0;transition:opacity .18s,color .18s}
.topic-rail:hover .rail-sub a,.topic-rail:focus-within .rail-sub a{opacity:1}
.rail-sub a:hover{color:var(--article-ink)}
.rail-sub a[aria-current]{color:var(--article-ink);font-weight:600}
.rail-sub a[aria-current]::before{content:"";position:absolute;margin-left:-19px;width:5px;height:5px;border-radius:50%;background:var(--article-orange);align-self:center}
.topic-rail b.rail-name{background:none;padding:0;border-radius:0;visibility:visible;position:static;transform:none;pointer-events:none;color:var(--article-ink);font:500 12px/1.3 var(--font-display);opacity:0;transition:opacity .18s}
.topic-rail:hover b.rail-name,.topic-rail:focus-within b.rail-name{opacity:1}
.topic-rail:not(:hover):not(:focus-within) .rail-chapter:not([data-current="true"]) .rail-mark{opacity:.55}

/* ===== slajd oferty ===== */
.offer-inner{display:flex;flex-direction:column;justify-content:center;gap:26px;min-height:62svh}
.offer-spread h2{font-size:clamp(40px,5vw,74px);line-height:1.05;margin:0;max-width:14ch}
.offer-sub{font:400 clamp(17px,1.5vw,22px)/1.45 var(--font-reading);color:var(--article-muted);max-width:58ch}
.offer-options{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);margin-top:8px}
.offer-card{padding:28px;border:1px solid var(--article-ink);border-radius:6px;display:flex;flex-direction:column;gap:12px}
.offer-card-quiet{border-color:var(--article-line)}
.offer-card h3{font:500 clamp(22px,2vw,28px)/1.15 var(--font-display);margin:0;color:var(--article-ink)}
.offer-card p{font-size:16px;line-height:1.55;margin:0;max-width:40ch}
.offer-cta{margin-top:auto;font:500 13px/1 var(--font-display);color:var(--article-orange);display:flex;gap:8px;align-items:center}
.offer-note{font:400 12px/1.5 var(--font-display);color:#8f8373;margin:0}
@media(max-width:1000px){.offer-options{grid-template-columns:1fr}}

/* ===== wideo w sekcjach feature ===== */
[data-denkraum-carousel]{position:relative}
[data-denkraum-carousel] .screen-zoom{position:absolute;inset:0;opacity:0;transition:opacity .35s ease;pointer-events:none}
[data-denkraum-carousel] .screen-zoom.is-current{opacity:1;pointer-events:auto}
.denkraum-carousel-timer{height:3px;max-width:760px;width:100%;margin:12px auto 16px;background:#dedbd3;overflow:hidden;border-radius:2px}
.denkraum-carousel-timer span{display:block;width:100%;height:100%;background:#e85a1a;transform:scaleX(0);transform-origin:left}
.denkraum-intro .denkraum-carousel-comment{font:400 15px/1.5 var(--font-display);text-align:center;max-width:72ch;min-height:3em;margin:0 auto 12px;color:var(--article-muted)}
.denkraum-carousel-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:0 auto 22px;font:400 12px/1.4 var(--font-display)}
.denkraum-carousel-controls button{background:none;border:0;padding:6px 0;color:var(--article-muted);font:inherit;cursor:pointer}
.denkraum-carousel-controls button[aria-pressed="true"]{color:var(--article-orange)}
#poznaj-denkraum .denkraum-intro-columns p{font-size:15px;line-height:1.55}
@media(prefers-reduced-motion:reduce){[data-denkraum-carousel] .screen-zoom{transition:none}}
.context-demo{margin:0;min-width:0;width:100%;align-self:center;border:0;background:none;box-shadow:none;padding:0;position:relative}
.context-video{clip-path:inset(7% 3.5%);transform:scale(1.075)}
.context-video:fullscreen{clip-path:none;transform:none}
.context-video-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:-12px;position:relative}
.context-video-actions button{border:0;background:none;padding:8px 0;color:var(--article-muted);font:400 12px/1.4 var(--font-display);cursor:pointer}
@media(min-width:1001px){.context-layout{grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr);gap:40px;max-width:1480px}}
.context-methods{margin:0 0 20px;padding-left:1.2em;font:400 17px/1.6 var(--font-reading);color:var(--article-muted);max-width:49ch;list-style:disc}
.context-methods li{padding-left:.2em;margin:0 0 6px}
.context-methods li::marker{color:var(--article-orange)}
.context-video{display:block;width:100%;height:auto;max-height:calc(100svh - 120px);object-fit:contain;border:0;border-radius:0;background:transparent;box-shadow:none}
.feature-video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#efece5;box-shadow:0 18px 48px #2c241a1f}
.feature-visual{aspect-ratio:auto}

/* ===== Dom marki: panoramic gallery → room → context ===== */
.house-portal-spread{--house-card-width:clamp(210px,min(26vw,35svh),360px);--house-hover-lift:42px;padding:clamp(32px,6svh,76px) 0 44px;overflow:hidden;isolation:isolate}
.house-portal-layout{display:flex;flex-direction:column;align-items:center;max-width:none;gap:clamp(24px,4svh,40px)}
.house-portal-heading{padding:0 24px;text-align:center;position:relative;z-index:1}
.house-portal-heading h2{font-size:clamp(38px,5.3vw,76px);line-height:1.04;letter-spacing:-.035em;max-width:20ch;margin:0 auto 22px}
.house-portal-heading p{font-size:clamp(16px,1.5vw,20px);line-height:1.5;max-width:52ch;margin:0 auto}
.house-gallery-window{width:100%;margin-top:-44px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.house-gallery-window::-webkit-scrollbar{display:none}
.house-gallery-track{display:flex;align-items:flex-start;width:max-content;padding:64px max(0px,calc((100vw - var(--house-card-width))/2)) 68px;min-height:calc(var(--house-card-width)*1.25 + 132px)}
.house-gallery-slot{position:relative;z-index:var(--cover-depth,1);flex:0 0 var(--house-card-width);width:var(--house-card-width);scroll-snap-align:center;scroll-snap-stop:normal}
.house-gallery-slot:focus-within{z-index:20}
.house-gallery-slot+.house-gallery-slot{margin-left:calc(var(--house-card-width)*-.24)}
.house-cover{display:block;width:100%;aspect-ratio:4/5;transform:translateY(var(--cover-y,0px)) scale(var(--cover-scale,1));transform-origin:50% 0;text-decoration:none;-webkit-user-drag:none;user-select:none;outline-offset:7px;border-radius:22px}
.house-cover-visual{display:block;position:relative;width:100%;height:100%;border-radius:22px;overflow:hidden;box-shadow:0 8px 18px #211c1818;transform:translateY(0) scale(1);transition:transform 280ms var(--article-ease),box-shadow 280ms var(--article-ease)}
.house-cover-visual::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff24;pointer-events:none}
.house-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#302a23;pointer-events:none;-webkit-user-drag:none}
.house-cover-invitation{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(transparent,#171712c9);color:#fff9ef;font:500 13px/1.2 var(--font-display);opacity:0;transform:translateY(4px);transition:opacity 180ms var(--article-ease),transform 220ms var(--article-ease)}
.house-cover-invitation>span{font-size:20px}
.house-cover:focus-visible .house-cover-invitation{opacity:1;transform:none}
.house-cover:focus-visible{outline:2px solid var(--article-orange)}
.house-gallery-window.is-dragging{scroll-snap-type:none;cursor:grabbing}
.house-gallery-window.is-dragging .house-cover{cursor:grabbing}
.house-gallery-window.is-dragging .house-cover-visual{transform:none;transition:none}
.house-gallery-window.is-dragging .house-cover-invitation{opacity:0}
.house-portal-spread .house-gallery-hint{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:-24px 24px 0;font:400 12px/1.4 var(--font-display);text-align:center;color:var(--article-muted);max-width:none}
.house-gallery-hint>span:last-child>span{display:inline-block;margin-left:5px;color:var(--article-accent)}
.house-transition{position:fixed;inset:0;display:block;width:100%;height:100%;z-index:calc(var(--z-modal) + 1);pointer-events:auto}
.house-transition-active .topic-rail,.house-transition-active .page-controls{visibility:hidden}
.house-transition-active{overscroll-behavior:none}
/* The arrival heading receives focus for reading order, not as a control. */
.context-spread #context-title[tabindex="-1"]:focus{outline:none}
@media(hover:hover) and (pointer:fine){
 .house-gallery-slot:has(.house-cover:hover){z-index:20}
 .house-cover:hover .house-cover-invitation{opacity:1;transform:none}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .house-gallery-window:not(.is-dragging) .house-cover:hover .house-cover-visual{transform:translateY(calc(0px - var(--house-hover-lift))) scale(1.04);box-shadow:0 24px 36px #211c1838}
}
@media(max-width:700px){
 .house-portal-spread{--house-card-width:clamp(190px,min(68vw,35svh),300px);padding:36px 0 72px}
 .house-portal-layout{gap:28px}
 .house-portal-heading h2{font-size:clamp(34px,8.6vw,48px);margin-bottom:18px}
 .house-portal-heading p{font-size:16px;max-width:32ch}
 .house-desktop-break{display:none}
 .house-gallery-track{padding-block:60px 60px;min-height:calc(var(--house-card-width)*1.25 + 120px)}
 .house-portal-spread .house-gallery-hint{display:block;max-width:28ch;font-size:11px;line-height:1.6;margin-top:-20px}
 .house-gallery-hint>span{display:block}.house-gallery-hint>span:nth-child(2){display:none}
 .house-cover.is-centered .house-cover-invitation{opacity:1;transform:none}
}
@media(max-height:620px) and (min-width:701px){
 .house-portal-spread{--house-card-width:min(24vw,34svh);padding:24px 0 50px}
 .house-portal-layout{gap:18px}
 .house-portal-heading h2{font-size:clamp(30px,5svh,44px);margin-bottom:12px}
 .house-portal-heading p{font-size:15px}
 .house-gallery-track{padding-block:58px 48px;min-height:calc(var(--house-card-width)*1.25 + 106px)}
}
@media(max-width:700px) and (max-height:740px){
 .house-portal-spread{--house-card-width:clamp(180px,min(64vw,31svh),240px);--house-hover-lift:24px;padding:24px 0 56px}
 .house-portal-layout{gap:18px}
 .house-portal-heading h2{font-size:32px;margin-bottom:14px}
 .house-portal-heading p{font-size:15px;line-height:1.4}
 .house-gallery-track{padding-block:58px 42px;min-height:calc(var(--house-card-width)*1.25 + 100px)}
}
@media(prefers-reduced-motion:reduce){
 .house-gallery-window{scroll-behavior:auto}
 .house-cover-visual,.house-cover-invitation{transition:none}
 .house-cover:hover .house-cover-visual{transform:none}
}
