/* Cadence landing pages v2 · shared styles for LP-A (Instrument) and LP-B (Proof)
   Brand: Cadence v1 (Lake + Intelligence), Pulse Horizon as the Intelligence mark. */
:root{
  --surface:#F3EFE7; --raised:#FBF9F4; --tint:#EAF1EF; --line:#DCD4C4; --line-strong:#8C8373;
  --text:#14201E; --body:#46524F; --mute:#5E6A67;
  --clay:#A8472A; --clay-hover:#8F3B22; --water:#5D8C87; --water-soft:#A9C7C1;
  --night:#0E1A18; --panel:#15241F; --nline:#2A3D38; --ntext:#EAF1EE; --nmute:#BFD0CB;
  --sun:#E3906C; --nwater:#8FB1AC; --signal:#5FE0B9; --signal-hover:#86EBCC; --signal-ink:#0B6B55;
  --good:#276B4E; --watch:#7A5600;
  --serif:'Instrument Serif',Georgia,serif; --sans:'Inter Tight',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
}
.lp{background:var(--surface);color:var(--text);font-family:var(--sans);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;width:100%;overflow-x:hidden}
.lp *{box-sizing:border-box}
.lp a:not(.btn){color:inherit}
.lp :focus-visible{outline:2px solid var(--signal-ink);outline-offset:2px;border-radius:4px}
.lp .night :focus-visible{outline-color:var(--signal)}
.lp img{max-width:100%;display:block}

/* layout */
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.sec{padding:clamp(72px,8vw,112px) 0}
.sec-tight{padding:clamp(48px,6vw,80px) 0}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:clamp(32px,5vw,72px);align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px}
.grid-6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.stack{display:flex;flex-direction:column;gap:16px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.measure{max-width:640px}

/* grounds */
.night{background:var(--night);color:var(--ntext)}
.dots{background-color:var(--night);background-image:radial-gradient(rgba(191,208,203,.12) 1px,transparent 1px);background-size:18px 18px}
.tint{background:var(--tint)}
.raised{background:var(--raised)}
.rule-top{border-top:1px solid var(--line)}
.night .rule-top{border-color:var(--nline)}

/* type */
.d1{font-family:var(--serif);font-weight:400;font-size:clamp(52px,7.4vw,104px);line-height:.96;letter-spacing:-.01em;margin:0}
.d2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,68px);line-height:1.02;margin:0}
.d3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.2vw,42px);line-height:1.1;margin:0}
.d4{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.15;margin:0}
.lead{font-size:clamp(19px,1.6vw,22px);line-height:1.5;color:var(--body);margin:0}
.night .lead{color:var(--nmute)}
.p{margin:0;color:var(--body)}
.night .p{color:var(--nmute)}
.small{font-size:15px;line-height:1.5;color:var(--body);margin:0}
.night .small{color:var(--nmute)}
.h4{font-size:19px;font-weight:600;line-height:1.3;margin:0;color:var(--text)}
.night .h4{color:var(--ntext)}
.label{font-family:var(--mono);font-size:13px;letter-spacing:.02em;color:var(--clay)}
.night .label{color:var(--signal)}
.readout{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--mute)}
.night .readout{color:var(--nmute)}
.num{font-family:var(--serif);font-weight:400;line-height:.9;margin:0}
.ref{font-family:var(--mono);font-size:.55em;vertical-align:super;color:var(--mute);margin-left:2px;text-decoration:none}
.night .ref{color:var(--nmute)}
.quote{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.18;margin:0}

/* nav */
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;padding-top:20px;padding-bottom:20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.brand span{font-family:var(--serif);font-size:30px;line-height:1}
.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;font-size:15px}
.nav-links a{text-decoration:none;opacity:.86}
.nav-links a:hover{opacity:1}
.switch{display:inline-flex;padding:4px;border-radius:999px;border:1px solid var(--line);font-size:14px;font-weight:500}
.switch a{padding:7px 14px;border-radius:999px;text-decoration:none;opacity:1}
.switch a[aria-current="page"]{background:var(--text);color:var(--surface)}
.night .switch{border-color:var(--nline)}
.night .switch a[aria-current="page"]{background:var(--ntext);color:var(--night)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 26px;border-radius:999px;font:600 16px/1 var(--sans);text-decoration:none;border:0;cursor:pointer;white-space:nowrap}
.btn-ink{background:var(--text);color:var(--surface)}
.btn-clay{background:var(--clay);color:#fff}
.btn-clay:hover{background:var(--clay-hover)}
.btn-signal{background:var(--signal);color:var(--night)}
.btn-signal:hover{background:var(--signal-hover)}
.btn-line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn-sm{min-height:44px;padding:0 18px;font-size:15px}
.link{font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}

/* surfaces */
.card{background:var(--raised);border:1px solid var(--line);border-radius:18px;padding:28px}
.panel{background:var(--panel);border:1px solid var(--nline);border-radius:18px;color:var(--ntext)}
.cell{background:var(--raised);padding:28px;display:flex;flex-direction:column;gap:10px}
.night .grid-6{background:var(--nline);border-color:var(--nline)}
.night .cell{background:var(--panel)}

/* the Intelligence stamp */
.stamp{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 8px;border-radius:999px;background:#1C2F2A;border:1px solid var(--nline);color:var(--ntext);font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.stamp.light{background:var(--tint);border-color:#cfe0db;color:var(--signal-ink)}
.chain{font:400 12px/1.4 var(--mono);color:var(--signal-ink)}
.night .chain{color:var(--signal)}
.private{display:inline-flex;align-items:center;gap:8px;font:400 12px/1.3 var(--mono);color:var(--mute)}
.night .private{color:var(--nmute)}
.private::before{content:"";width:8px;height:8px;border-radius:2px;border:1.5px solid currentColor}

/* pulse mark motion (Pulse Horizon B) */
.pl-base{fill:none;stroke-linecap:round;stroke-linejoin:round}
.pl-blip{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14 86;stroke-dashoffset:100;animation:lp-blip 3.2s cubic-bezier(.45,0,.2,1) infinite}
@keyframes lp-blip{0%{stroke-dashoffset:100;opacity:0}8%{opacity:1}70%{stroke-dashoffset:0;opacity:1}85%,100%{stroke-dashoffset:0;opacity:0}}

/* hero pulse line: draws once, then a slow blip */
.hero-line .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:lp-draw 2.6s cubic-bezier(.6,0,.2,1) .3s forwards}
.hero-line .blip{stroke-dasharray:.04 .96;stroke-dashoffset:1;opacity:0;animation:lp-run 7s cubic-bezier(.45,0,.2,1) 3.2s infinite}
@keyframes lp-draw{to{stroke-dashoffset:0}}
@keyframes lp-run{0%{stroke-dashoffset:1;opacity:0}6%{opacity:1}60%{stroke-dashoffset:0;opacity:1}68%,100%{stroke-dashoffset:0;opacity:0}}
.fade-in{opacity:0;animation:lp-fade .8s ease 1.6s forwards}
@keyframes lp-fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .pl-blip,.hero-line .blip{animation:none;opacity:0}
  .hero-line .draw{animation:none;stroke-dashoffset:0}
  .fade-in{animation:none;opacity:1}
}

/* stats */
.stat{display:flex;flex-direction:column;gap:14px;padding-top:22px;border-top:1px solid var(--line)}
.night .stat{border-color:var(--nline)}
.stat .num{font-size:clamp(64px,7vw,96px)}
.ledger{display:grid;grid-template-columns:minmax(150px,240px) 1fr minmax(160px,260px);gap:12px 40px;align-items:center;padding:28px 0;border-top:1px solid var(--line)}
.ledger:last-child{border-bottom:1px solid var(--line)}
.ledger .num{font-size:clamp(64px,7vw,104px);color:var(--clay)}
@media (max-width:820px){.ledger{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:0;border-top:1.5px solid var(--text)}
.night .steps{border-color:var(--ntext)}
.step{padding:20px 20px 4px 0;display:flex;flex-direction:column;gap:8px;position:relative}
.step::before{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;border-radius:50%;background:var(--clay)}
.night .step::before{background:var(--signal)}
.step .n{font:500 13px/1 var(--mono);color:var(--mute)}
.night .step .n{color:var(--nmute)}

/* rooms */
.rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.room{border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:14px;border:1px solid var(--line);background:var(--raised)}
.room.fund{background:var(--night);color:var(--ntext);border-color:var(--night)}
.room.fund .small{color:var(--nmute)}
.room ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:15px}
.room li{display:flex;gap:10px;align-items:baseline}
.room li::before{content:"";flex:0 0 7px;height:7px;border-radius:50%;background:currentColor;opacity:.6;transform:translateY(-2px)}
.room li.no{opacity:.62}
.room li.no::before{background:transparent;border:1.5px solid currentColor}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:16px}
.tbl th{font:500 13px/1.3 var(--mono);color:var(--mute);text-align:left;padding:0 20px 14px 0;vertical-align:bottom}
.tbl td{padding:20px 20px 20px 0;border-top:1px solid var(--line);vertical-align:top;color:var(--body)}
.tbl td:first-child{color:var(--text);font-weight:500}
.night .tbl th{color:var(--nmute)}
.night .tbl td{border-color:var(--nline);color:var(--nmute)}
.night .tbl td:first-child{color:var(--ntext)}
.tbl-wrap{overflow-x:auto}

/* bars (illustrative product UI) */
.bar{height:8px;border-radius:999px;background:#24362F;overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px;background:var(--signal)}
.bar i.look{background:var(--sun)}
.bar.light{background:#E2DCCF}
.bar.light i{background:var(--signal-ink)}
.bar.light i.look{background:var(--clay)}

/* chips */
.chip{display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--raised);font-size:15px}
.night .chip{background:transparent;border-color:var(--nline);color:var(--ntext)}

/* check rows (signal UI) */
.check{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:15px}
.check .box{flex:0 0 22px;height:22px;border-radius:6px;border:1.5px solid var(--text);display:grid;place-items:center}
.check .box.on{background:var(--text);color:var(--surface)}

/* footer */
.foot{padding:24px 0 28px;font-size:13px;color:var(--mute)}
.foot ol{margin:0;padding-left:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:6px 40px;font-size:13px;line-height:1.5}
.night.foot{color:var(--nmute)}

/* B: sidenotes */
.with-notes{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:clamp(24px,4vw,64px)}
@media (max-width:900px){.with-notes{grid-template-columns:1fr}}
.note{font-size:13px;line-height:1.5;color:var(--mute);border-left:2px solid var(--clay);padding-left:14px}
.photo{border-radius:18px;overflow:hidden;position:relative}
.photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.58) contrast(1.04) sepia(.1)}
.photo figcaption{position:absolute;left:16px;bottom:16px;background:rgba(14,26,24,.82);color:var(--ntext);font:400 12px/1.3 var(--mono);padding:8px 12px;border-radius:8px}

/* hero split */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:clamp(32px,5vw,72px);align-items:center}
@media (max-width:1000px){.hero-grid{grid-template-columns:1fr}}
.grid-6.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.grid-6,.grid-6.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.grid-6,.grid-6.four{grid-template-columns:1fr}}
.sun-rise{animation:lp-rise 2.4s cubic-bezier(.2,.7,.2,1) .2s both}
@keyframes lp-rise{from{transform:translateY(60px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.sun-rise{animation:none}}
.swim{display:grid;grid-template-columns:150px repeat(7,minmax(0,1fr));gap:10px;min-width:1000px}
.swim .lane{font:500 13px/1.3 var(--mono);color:var(--mute);align-self:center}
.swim .box{border-radius:12px;padding:14px;background:var(--raised);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.4}
.swim .box.f{background:var(--night);border-color:var(--night);color:var(--ntext)}
.swim .box.c{background:var(--tint);border-color:#cfe0db}
.swim .box b{font-weight:600}
.swim .box .readout{font-size:11px}
.swim .box.f .readout{color:var(--nmute)}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1.5px solid var(--text);border-bottom:1px solid var(--line)}
.facts>div{padding:22px 20px 22px 0;display:flex;flex-direction:column;gap:6px}
.facts>div+div{padding-left:20px;border-left:1px solid var(--line)}
@media (max-width:820px){.facts{grid-template-columns:1fr 1fr}.facts>div:nth-child(3){padding-left:0;border-left:0}}
.tbl td.nw{white-space:nowrap}
@media (max-width:860px){.nav-links{display:none}}
.gap-b{padding:28px 0 28px 40px;border-left:1px solid var(--line)}
.gap-a{padding:28px 40px 28px 0}
@media (max-width:900px){.gap-a{padding:24px 0}.gap-b{padding:24px 0;border-left:0;border-top:1px solid var(--line)}}

/* v3 additions */
.hz-labels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin-top:4px}
@media (max-width:900px){.hz-labels{grid-template-columns:1fr 1fr}}
.wk{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media (max-width:1100px){.wk{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.wk{grid-template-columns:1fr}}
.wk-day,.wk-edge{border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:10px}
.wk-day{background:var(--raised);border:1px solid var(--line)}
.wk-day:nth-child(4){border-color:var(--clay);box-shadow:inset 0 0 0 1px var(--clay)}
.wk-edge{background:var(--night);color:var(--ntext)}
.wk-why{margin:auto 0 0;padding-top:12px;border-top:1px solid var(--line);font:400 12px/1.45 var(--mono);color:var(--signal-ink)}
.avatar{flex:0 0 64px;height:64px;border-radius:50%;background:var(--tint);border:1px solid var(--line);display:grid;place-items:center;font:400 24px/1 var(--serif);color:var(--text)}
.ph{display:inline-block;vertical-align:middle;margin-left:6px;padding:3px 8px;border-radius:999px;border:1px dashed var(--line-strong);font:400 11px/1.2 var(--mono);color:var(--mute);white-space:nowrap}
.invite{background:var(--raised);border:1px solid var(--line);border-radius:22px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:18px;box-shadow:0 30px 60px -40px rgba(20,32,30,.35)}
.fundmark{width:34px;height:34px;border-radius:50%;background:var(--text);color:var(--surface);display:grid;place-items:center;font:400 20px/1 var(--serif)}
.parts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.parts>div{background:var(--raised);padding:24px;display:flex;flex-direction:column;gap:10px}
.parts>div.hot{background:var(--surface);box-shadow:inset 0 3px 0 var(--clay)}
.parts>div.dark{background:var(--night);color:var(--ntext)}
.parts>div.dark .small{color:var(--nmute)}
.parts>div.dark .readout{color:var(--nmute)}
@media (max-width:1000px){.parts{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.parts{grid-template-columns:1fr}}
.path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.path{grid-template-columns:1fr}}
.path>div{border-radius:18px;padding:26px;border:1px solid var(--line);background:var(--raised);display:flex;flex-direction:column;gap:10px}
.path>div:last-child{background:var(--text);color:var(--surface);border-color:var(--text)}
.path>div:last-child .small,.path>div:last-child .readout{color:#D9D2C4}
/* editions */
.ed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:640px){.ed-grid{grid-template-columns:1fr}}
.ed-card{background:var(--raised);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px}
.ed-illo{border-radius:12px;overflow:hidden}
.ed-row{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.3}

/* horizon process animation */
.hz-st{opacity:0;animation:hz-in .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.3s + var(--i)*.55s)}
.hz-sun{animation:hz-rise 1.6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.2s + var(--i)*.55s)}
@keyframes hz-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes hz-rise{from{transform:translateY(80px)}to{transform:none}}
.hz-labels>div{position:relative;padding-top:16px;opacity:0;animation:hz-in .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.3s + var(--i)*.55s)}
.hz-labels>div::before,.hz-labels>div::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:2px}
.hz-labels>div::before{background:var(--line)}
.hz-labels>div::after{background:var(--clay);transform-origin:left;transform:scaleX(0);animation:hz-on 10s linear infinite;animation-delay:calc(3.4s + var(--i)*2s)}
.hz-labels>div .h4{animation:hz-col 10s step-end infinite;animation-delay:calc(3.4s + var(--i)*2s)}
@keyframes hz-on{0%{transform:scaleX(0);opacity:1}18%{transform:scaleX(1);opacity:1}20%,100%{transform:scaleX(1);opacity:0}}
@keyframes hz-col{0%{color:var(--clay)}20%,100%{color:var(--text)}}
@media (prefers-reduced-motion:reduce){
  .hz-st,.hz-labels>div{animation:none;opacity:1}
  .hz-sun,.hz-labels>div .h4,.hz-labels>div::after{animation:none}
  .hz-dot{display:none}
}

/* weekend photos */
.wk-photos{display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:1fr 1fr;gap:16px;height:clamp(420px,46vw,640px)}
.wkp{position:relative;margin:0;border-radius:18px;overflow:hidden;background:var(--line)}
.wkp.big{grid-row:1 / span 2}
.wkp img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.88) contrast(1.02)}
.wkp figcaption{position:absolute;left:14px;bottom:14px;background:rgba(250,248,243,.92);border-radius:999px;padding:7px 14px}
.wkp figcaption .readout{color:var(--text)}
@media (max-width:820px){.wk-photos{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;height:auto}.wkp.big{grid-column:1 / span 2;grid-row:auto;aspect-ratio:4/3}.wkp{aspect-ratio:1}}

/* horizon v2: each station acts when its step's progress line comes by (10s cycle, 2s per step) */
.hz-spk,.hz-beat,.hz-boat,.hz-oar,.hz-rip,.hz-spin,.hz-link,.hz-pick,.hz-scan{animation-duration:10s;animation-iteration-count:infinite;animation-delay:calc(3.4s + var(--i)*2s + var(--d,0s));transform-box:fill-box}
.hz-spk{stroke-dasharray:1;animation-name:hz-draw;animation-timing-function:ease-out}
@keyframes hz-draw{0%{stroke-dashoffset:1}12%,100%{stroke-dashoffset:0}}
.hz-beat{transform-origin:50% 100%;animation-name:hz-beat}
@keyframes hz-beat{0%,100%{transform:none}5%{transform:scale(1.18)}10%{transform:scale(.96)}15%,95%{transform:none}}
.hz-boat{animation-name:hz-glide;animation-timing-function:ease-in-out}
@keyframes hz-glide{0%{transform:translateX(-14px)}9%{transform:translateX(4px)}18%{transform:translateX(16px)}20%{transform:translateX(16px)}100%{transform:translateX(-14px)}}
.hz-oar{transform-origin:100% 0;animation-name:hz-row;animation-timing-function:ease-in-out}
@keyframes hz-row{0%{transform:none}4.5%{transform:rotate(-22deg)}9%{transform:rotate(8deg)}13.5%{transform:rotate(-22deg)}18%{transform:rotate(8deg)}20%,100%{transform:none}}
.hz-rip{transform-origin:50% 50%;animation-name:hz-rip}
@keyframes hz-rip{0%,100%{transform:none;opacity:1}8%{transform:scaleX(1.14);opacity:.55}16%{transform:none;opacity:1}}
.hz-spin{transform-origin:50% 50%;animation-name:hz-spin;animation-timing-function:cubic-bezier(.45,0,.2,1)}
@keyframes hz-spin{0%{transform:none}18%,100%{transform:rotate(360deg)}}
.hz-scan{transform-origin:50% 50%;animation-name:hz-scan}
@keyframes hz-scan{0%,100%{transform:none}3%{transform:scale(1.45)}7%,99%{transform:none}}
.hz-link{stroke-dasharray:1;animation-name:hz-draw2;animation-timing-function:ease-out}
@keyframes hz-draw2{0%,8%{stroke-dashoffset:1}17%,100%{stroke-dashoffset:0}}
.hz-pick{transform-origin:50% 50%;animation-name:hz-pick}
@keyframes hz-pick{0%,8%,100%{transform:none}12%{transform:scale(1.6)}16%,99%{transform:none}}
@media (prefers-reduced-motion:reduce){.hz-spk,.hz-beat,.hz-boat,.hz-oar,.hz-rip,.hz-spin,.hz-link,.hz-pick,.hz-scan{animation:none}}

/* weekend building blocks (C funds) v2: compact, icon-led */
.wb{display:flex;flex-direction:column;gap:28px;margin-top:16px;padding-top:48px;border-top:1.5px solid var(--text)}
.wb-head{display:flex;flex-direction:column;gap:12px}
.wb-head .d3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,48px);line-height:1;margin:0}
.wb-flow{display:grid;grid-template-columns:1fr auto 1.25fr auto 1fr;gap:18px;align-items:center}
.wb-col{display:flex;flex-direction:column;gap:12px}
.wb-wk{background:var(--raised);border:1px solid var(--line);border-radius:20px;padding:18px}
.wb-card{display:flex;align-items:center;gap:14px;background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.wb-wk .wb-card{background:var(--surface)}
.wb-card .h4{font-size:17px;margin:0}.wb-card .small{margin:0;font-size:14px}
.wb-card.fixed{border:1.5px solid var(--clay)}
.wb-card.pick{border:1.5px solid var(--signal-ink)}
.wb-ico{flex:none;width:44px;height:44px;border-radius:50%;background:var(--tint);display:grid;place-items:center}
.wb-ico.on{background:rgba(95,224,185,.25)}
.wb-arrow{font:400 28px/1 var(--sans);color:var(--line-strong)}
.wb-libwrap{display:flex;flex-direction:column;gap:12px}
.wb-lib{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.wb-chip{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--raised);font:500 14px/1.25 var(--sans)}
.wb-chip.on{border:1.5px solid var(--signal-ink)}
@media (max-width:980px){.wb-flow{grid-template-columns:1fr}.wb-arrow{transform:rotate(90deg);justify-self:center}.wb-lib{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.wb-lib{grid-template-columns:1fr 1fr}}

/* why it pays back (C funds) */
.roi{border-radius:24px;padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:32px}
.roi-head{display:flex;flex-direction:column;gap:12px;max-width:760px}
.roi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--nline)}
.roi-grid>div{padding:24px 24px 0 0;display:flex;flex-direction:column;gap:10px}
.roi-grid>div+div{padding-left:24px;border-left:1px solid var(--nline)}
.roi-grid .small{color:var(--nmute)}
.roi-n{font:500 13px/1 var(--mono);color:var(--signal)}
@media (max-width:820px){.roi-grid{grid-template-columns:1fr}.roi-grid>div+div{padding-left:0;border-left:0;border-top:1px solid var(--nline);padding-bottom:4px}}

/* branded weekend v2 (C funds): perks + invitation card */
.bw-perks{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bw-perks>div{display:flex;align-items:center;gap:14px;font:500 16px/1.3 var(--sans);color:var(--text)}
.bw-invite{border-radius:24px;padding:14px;box-shadow:0 30px 60px -30px rgba(14,26,24,.55)}
.bw-inner{border:1px solid rgba(227,144,108,.45);border-radius:16px;padding:28px 30px 30px;display:flex;flex-direction:column;gap:14px;background:radial-gradient(120% 80% at 50% 0%,rgba(227,144,108,.14),transparent 60%)}
.bw-ex{font:400 11px/1 var(--mono);color:var(--nmute);border:1px dashed var(--nline);border-radius:999px;padding:5px 9px}
.bw-mark{display:flex;justify-content:center;margin-top:8px}
.bw-title{font-family:var(--serif);font-size:clamp(34px,3.4vw,46px);line-height:1;text-align:center;color:var(--ntext);margin:0}
.bw-rule{height:1px;background:linear-gradient(90deg,transparent,rgba(227,144,108,.6),transparent);margin:8px 0}
.bw-meta{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:8px}
.bw-meta>div{display:flex;flex-direction:column;gap:6px}
.bw-meta b{font:500 15px/1.2 var(--sans);color:var(--ntext)}
.roi .wb-ico{background:rgba(95,224,185,.14)}
.roi .wb-ico svg *[stroke="#14201E"]{stroke:#EAF1EE}
.roi-grid>div{gap:12px}
@media (max-width:620px){.bw-perks{grid-template-columns:1fr}}
.bw-inner{position:relative}
.bw-nw{display:block}
.bw-host{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:4px;font:500 13px/1 var(--sans);color:var(--ntext);opacity:.85}
.bw-host .readout{color:var(--nmute)}
.bw-pay{display:flex;flex-direction:column;gap:14px;padding-top:22px;border-top:1px solid var(--line)}
.bw-pay-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bw-pay-row>div{display:flex;flex-direction:column;gap:10px}
.bw-pay-row .wb-ico{width:36px;height:36px}.bw-pay-row .wb-ico svg{width:20px;height:20px}
.bw-pay-row p{margin:0;font:400 13.5px/1.35 var(--sans);color:var(--body)}
.bw-pay-row b{display:block;font:600 15px/1.3 var(--sans);color:var(--text);margin-bottom:2px}
@media (max-width:620px){.bw-pay-row{grid-template-columns:1fr}.bw-pay-row>div{flex-direction:row;align-items:center}}

/* researchers compact (C funds) */
.rs{display:flex;flex-direction:column;gap:32px}
.rs-top{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center}
.rs-top .d2{max-width:820px}
.rs-badge{display:flex;flex-direction:column;align-items:center;gap:10px}
.rs-people{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rs-p{display:flex;gap:16px;align-items:center;background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.rs-p .h4{margin:0 0 4px}
.rs-logos{display:flex;flex-direction:column;gap:12px;padding-top:24px;border-top:1px solid var(--line)}
.rs-logo-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rs-logo{display:flex;align-items:center;justify-content:center;gap:10px;height:64px;border:1px dashed var(--line-strong);border-radius:12px;font:500 13px/1 var(--sans);color:var(--mute)}
@media (max-width:820px){.rs-top,.rs-people{grid-template-columns:1fr}.rs-badge{align-items:flex-start}.rs-logo-row{grid-template-columns:1fr 1fr}}
.rs-logos .ph,.rs-badge .ph{align-self:flex-start}.rs-badge .ph{align-self:center}

/* C2: rising-loop hero */
.hz3 .hz-labels>div::after{animation-duration:12s;animation-delay:calc(3.4s + var(--i)*2.4s)}
.hz3 .hz-labels>div .h4{animation-duration:12s;animation-delay:calc(3.4s + var(--i)*2.4s)}
.hz3 .hz-spk,.hz3 .hz-beat,.hz3 .hz-boat,.hz3 .hz-oar,.hz3 .hz-rip,.hz3 .hz-link,.hz3 .hz-pick,.hz3 .hz-scan,.hz3 .hz-chk,.hz3 .hz-ret,.hz3 .hz-bar{animation-duration:12s;animation-iteration-count:infinite;animation-delay:calc(3.4s + var(--i)*2.4s + var(--d,0s));transform-box:fill-box}
.hz3 .hz-chk{stroke-dasharray:1;animation-name:hz-draw2}
.hz3 .hz-ret{animation-name:hz-ret;animation-timing-function:ease-in-out}
@keyframes hz-ret{0%{stroke-dashoffset:1}14%,100%{stroke-dashoffset:0}}
.hz3 .hz-bar{transform-origin:50% 100%;animation-name:hz-bar;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
@keyframes hz-bar{0%{transform:scaleY(.2)}10%,100%{transform:none}}
.hz-loop{display:flex;align-items:center;gap:10px;margin:22px 0 0;font:500 15px/1.4 var(--sans);color:var(--signal-ink)}
.hz-loop-ico{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(95,224,185,.22);font-size:16px}
@media (prefers-reduced-motion:reduce){.hz3 .hz-chk,.hz3 .hz-ret,.hz3 .hz-bar{animation:none}}

/* C2: founder note */
.fn{display:grid;grid-template-columns:220px 1fr;gap:clamp(28px,4vw,56px);align-items:center;background:var(--raised);border:1px solid var(--line);border-radius:24px;padding:clamp(24px,3.5vw,44px)}
.fn-photo{position:relative;aspect-ratio:4/5;border-radius:18px;background:var(--tint);display:grid;place-items:center;font:400 56px/1 var(--serif);color:var(--water)}
.fn-photo .ph{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap}
.fn-body{display:flex;flex-direction:column;gap:16px}
.fn-quote{font-family:var(--serif);font-size:clamp(32px,3.4vw,48px);line-height:1.05;margin:0}
.fn-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fn-facts>div{padding:14px 14px 14px 0;display:flex;flex-direction:column;gap:2px}
.fn-facts>div+div{padding-left:14px;border-left:1px solid var(--line)}
.fn-facts b{font:600 17px/1.2 var(--sans)}.fn-facts span{font-size:13px;color:var(--mute)}
@media (max-width:820px){.fn{grid-template-columns:1fr}.fn-photo{max-width:200px}.fn-facts{grid-template-columns:1fr 1fr}.fn-facts>div:nth-child(3){padding-left:0;border-left:0}}

/* C2: editions mini */
.edm-wrap{display:flex;flex-direction:column;gap:14px;margin-top:40px}
.edm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.edm{display:flex;flex-direction:column;gap:10px;background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:10px 10px 14px}
.edm svg{border-radius:10px}.edm .h4{margin:0 4px;font-size:16px}.edm .readout{margin:2px 4px 0}
@media (max-width:640px){.edm-grid{grid-template-columns:1fr}}
.wk-line{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.wk-line span{font:500 13px/1 var(--mono);color:var(--text);background:var(--raised);border:1px solid var(--line);border-radius:999px;padding:9px 12px}
.hz-loop{justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:18px;border-top:1px solid var(--line)}
.hz-loop p{display:flex;align-items:center;gap:10px;margin:0}
.yrs{display:flex;align-items:flex-end;gap:16px}
.yb-row{display:flex;align-items:flex-end;gap:8px;height:44px}
.yb{display:flex;flex-direction:column;align-items:center;gap:3px;font:400 11px/1 var(--mono);color:var(--text)}
.yb i{display:block;width:22px;border-radius:4px;order:2}
.yb b{font-weight:500;order:1}.yb em{font-style:normal;color:var(--mute);order:3}
.yb-row{height:auto}
.yrs{align-items:center}

/* C2 v2 */
.fn2{display:flex;align-items:center;gap:20px;max-width:860px;padding:22px 0 0;border-top:1px solid var(--line)}
.fn2 img{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none}
.fn2-q{font-family:var(--serif);font-size:clamp(24px,2.4vw,30px);line-height:1.1;margin:0 0 6px}
.fn2 .small b{color:var(--text);font-weight:600;white-space:nowrap}
.in2{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.in2-feats{display:flex;flex-direction:column;gap:14px}
.in2-feats>div{display:flex;align-items:center;gap:14px}
.in2-feats p{margin:0;font-size:14px;color:var(--nmute);line-height:1.4}
.in2-feats b{display:block;font:600 16px/1.3 var(--sans);color:var(--ntext)}
.in2-feats .wb-ico{background:rgba(95,224,185,.14)}
.in2-feats .wb-ico svg *[stroke="#14201E"]{stroke:#EAF1EE}
.wk2{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:stretch}
.wk2-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.wk2-photos .wkp{aspect-ratio:4/3}
.wk2-photos .wkp.big{grid-column:1 / span 2;grid-row:2;aspect-ratio:2/1}
.wk2-photos .wkp.big img{object-position:50% 60%}
.wk2-flow{display:flex;flex-direction:column;gap:10px;background:var(--raised);border:1px solid var(--line);border-radius:20px;padding:20px}
.wk2-flow .wb-card{background:var(--surface);padding:10px 14px}
.wk2-in,.wk2-two{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}
.wk2-two{grid-template-columns:1fr 1fr}
.wk2-plus{font:400 20px/1 var(--sans);color:var(--line-strong)}
.wk2-down{text-align:center;color:var(--line-strong);font-size:18px;line-height:1}
.wk2-lib{display:flex;flex-direction:column;gap:10px}
.wk2-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.wk2-chip{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:999px;background:var(--raised);font:500 13px/1.2 var(--sans)}
.wk2-chip .wb-ico{width:34px;height:34px}.wk2-chip .wb-ico svg{width:19px;height:19px}
.wk2-chip.on{border:1.5px solid var(--signal-ink)}
.uni{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;padding-top:22px;border-top:1px solid var(--line)}
.uni-row{display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.uni-row img{height:34px;width:auto;filter:grayscale(1) contrast(1.1);opacity:.75;mix-blend-mode:multiply}
.ex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ex{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}
.ex .h4{margin:0;font-size:17px}.ex .small{margin:2px 0 6px}
.ex-ph{width:72px;height:72px;border-radius:50%;object-fit:cover;flex:none}
.bn{border-radius:24px;padding:clamp(24px,3vw,36px);display:grid;grid-template-columns:.9fr 1.4fr;gap:clamp(24px,4vw,48px);align-items:center}
.bn-text{display:flex;flex-direction:column;gap:12px}
.bn .edm-wrap{margin:0}.bn .edm-wrap>.readout{display:none}
.bn .edm{background:rgba(255,255,255,.04);border-color:var(--nline)}
.bn .edm .h4{color:var(--ntext)}.bn .edm .readout{color:var(--nmute)}
.edm-x{list-style:none;margin:10px 4px 0;padding:10px 0 0;border-top:1px solid var(--line);display:grid;gap:6px;font-size:13px;line-height:1.35;color:var(--body)}
.edm-x li{display:flex;gap:8px;align-items:center;white-space:nowrap}
.edm-x li img{flex:none;width:22px;height:22px}
.bn .edm-x{border-top-color:var(--nline);color:var(--ntext)}
@media (max-width:980px){.in2,.wk2,.bn{grid-template-columns:1fr}.wk2-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.ex-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.wk2-chips,.ex-grid{grid-template-columns:1fr}.wk2-photos .wkp.big{aspect-ratio:16/10}.fn2{align-items:flex-start}}
.uni-row img[alt="Esade"]{height:28px}
.in2-feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.in2-feats>div{flex-direction:column;align-items:flex-start;gap:10px}
.in2-feats p{font-size:13.5px}
@media (max-width:560px){.in2-feats{grid-template-columns:1fr}.in2-feats>div{flex-direction:row;align-items:center}}
.ex{align-items:flex-start}
.ex-skill{display:inline-block;font:500 11px/1 var(--mono);color:var(--clay);background:#F7EDE7;border-radius:999px;padding:5px 9px;margin-bottom:8px}
.ex .h4{font-size:16px}.ex .small{font-size:13.5px;margin:3px 0 0}
.in2-badge{display:inline-block;margin-left:6px;font:400 11.5px/1 var(--mono);color:var(--signal);border:1px solid rgba(95,224,185,.35);border-radius:999px;padding:5px 9px;vertical-align:1px}
.app{border-radius:18px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.app-bar{display:flex;align-items:center;gap:7px;background:#1C2D28;border:1px solid var(--nline);border-bottom:0;border-radius:18px 18px 0 0;padding:11px 14px}
.app-bar i{width:9px;height:9px;border-radius:50%;background:#3A4F49}
.app-bar span{margin-left:8px;font:400 11.5px/1 var(--mono);color:var(--nmute)}
.app-alert{display:flex;align-items:flex-start;gap:10px;background:rgba(227,144,108,.12);border:1px solid rgba(227,144,108,.4);border-radius:10px;padding:9px 12px;font-size:13.5px;color:var(--ntext)}
.app-alert b{font-weight:600;color:var(--sun);margin-right:6px}
.app-alert-txt{min-width:0}.app-alert-txt p{margin:0;line-height:1.4}
.app-alert-sub{margin-top:3px!important;font-size:12.5px;color:var(--nmute)}
.app-alert .app-dot{flex:none;margin-top:5.5px}
.app-dot{width:8px;height:8px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 4px rgba(227,144,108,.2);animation:app-p 2s ease-in-out infinite}
@keyframes app-p{50%{box-shadow:0 0 0 7px rgba(227,144,108,.05)}}
@media (prefers-reduced-motion:reduce){.app-dot{animation:none}}
.in2-badge{display:block;width:fit-content;margin:10px 0 0}

/* ── Weekend flow: build-up animation + payback card ─────────────────────
   Add to the end of site/css/lp.css. Uses the existing brand tokens.
   Everything is visible without JavaScript; the animation only runs when
   weekend-flow.js adds [data-anim] and the card scrolls into view. */

/* label pills ("Always", "Picked from your data") */
.wkf-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font:500 12px/1.3 var(--mono);letter-spacing:.04em}
.wkf-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.wkf-pill-clay{background:rgba(168,71,42,.1);color:var(--clay)}
.wkf-pill-mint{background:rgba(11,107,85,.1);color:var(--signal-ink)}

/* connector: a drawn line with an arrowhead, replaces the ↓ character */
.wkf-line{position:relative;display:block;width:2px;height:22px;margin:0 auto 4px;background:var(--line-strong);border-radius:2px}
.wkf-line::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border:5px solid transparent;border-top:6px solid var(--line-strong);border-bottom:0}

/* payback card: one compact dark row, same height as the cards above */
.wkf-roi{display:flex;align-items:center;gap:14px;background:var(--night);color:var(--ntext);border-radius:16px;padding:10px 14px}
.wkf-roi .wb-ico{background:rgba(95,224,185,.14)}
.wkf-roi-main{flex:1;min-width:0}
.wkf-roi-num{margin:0;font-size:17px;font-weight:600;line-height:1.25;color:var(--ntext);font-variant-numeric:tabular-nums}
.wkf-roi-num b{color:var(--signal);font-weight:600}
.wkf-roi .nw{white-space:nowrap}
.wkf-roi-src{margin:2px 0 0;font-size:11.5px;line-height:1.35;color:var(--nmute)}
.wkf-roi-end{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding-left:14px;border-left:1px solid var(--nline)}
.wkf-roi-lbl{font:500 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sun)}
.wkf-roi-logo{display:inline-flex;align-items:center;gap:6px;font-family:var(--serif);font-size:20px;line-height:1;color:var(--ntext)}
@media (max-width:1240px){.wkf-roi{gap:10px}.wkf-roi-num{font-size:15px}.wkf-roi-src{font-size:11px}.wkf-roi-end{padding-left:10px}.wkf-roi-lbl{font-size:8.5px}.wkf-roi-logo{font-size:17px}.wkf-roi-logo svg{width:20px;height:17px}}
@media (max-width:560px){.wkf-roi{gap:10px;padding:10px}.wkf-roi-num{font-size:14px}.wkf-roi-src{font-size:10.5px}.wkf-roi-end{padding-left:10px}.wkf-roi-logo{font-size:16px}.wkf-roi-logo svg{width:20px;height:17px}}

/* ── animation (only with [data-anim]) ── */
.wkf[data-anim] .wkf-step{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * 1ms)}
.wkf[data-anim] .wkf-line{transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.4,0,.2,1);transition-delay:calc(var(--d,0) * 1ms)}
.wkf[data-anim] .wkf-line::after{opacity:0;transition:opacity .2s ease;transition-delay:calc((var(--d,0) + 380) * 1ms)}
.wkf[data-anim] .wkf-check{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .6s ease;transition-delay:1950ms}
.wkf.is-in .wkf-step{opacity:1;transform:none}
.wkf.is-in .wkf-line{transform:scaleY(1)}
.wkf.is-in .wkf-line::after{opacity:1}
.wkf.is-in .wkf-check{stroke-dashoffset:0}

/* picked from your data: the icon pings once as it lands */
.wkf.is-in .wkf-pick .wb-ico{animation:wkf-ping 1.1s ease-out both;animation-delay:calc((var(--d,0) + 250) * 1ms)}
@keyframes wkf-ping{0%{box-shadow:0 0 0 0 rgba(95,224,185,.55)}100%{box-shadow:0 0 0 14px rgba(95,224,185,0)}}

/* the matching chips in the expert library light up at the same moment */
.wk2-chip.on.wkf-lit{animation:wkf-chip 1.4s ease-out both}
@keyframes wkf-chip{0%{box-shadow:0 0 0 0 rgba(95,224,185,.6);background:rgba(95,224,185,.25)}100%{box-shadow:0 0 0 10px rgba(95,224,185,0);background:var(--raised)}}

/* after the build: a small dot keeps flowing down both connectors */
.wkf.is-done .wkf-line::before{content:"";position:absolute;left:50%;top:0;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--signal-ink);animation:wkf-flow 4.8s ease-in-out infinite}
.wkf.is-done .wkf-line + .wkf-pill ~ .wkf-line::before{animation-delay:.6s}
@keyframes wkf-flow{0%{transform:translateY(0);opacity:0}8%{opacity:1}22%{transform:translateY(16px);opacity:1}30%,100%{transform:translateY(16px);opacity:0}}

@media (prefers-reduced-motion:reduce){
  .wkf[data-anim] .wkf-step,.wkf[data-anim] .wkf-line,.wkf[data-anim] .wkf-line::after,.wkf[data-anim] .wkf-check{transition:none;opacity:1;transform:none;stroke-dashoffset:0}
  .wkf .wkf-pick .wb-ico,.wk2-chip.on.wkf-lit,.wkf.is-done .wkf-line::before{animation:none}
}

/* phone: keep the flow card inside the screen (fixes the card touching the right edge) */
.wk2 > *{min-width:0}
.wk2-in{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.wk2-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.wk2-flow .wb-card{min-width:0}
@media (max-width:560px){
  .wk2-flow{padding:14px}
  .wk2-flow .wb-card{padding:10px;gap:10px}
  .wk2-flow .wb-ico{width:34px;height:34px}.wk2-flow .wb-ico svg{width:19px;height:19px}
  .wk2-flow .wb-card .h4{font-size:15px}.wk2-flow .wb-card .small{font-size:13px}
  .wk2-in,.wk2-two{gap:6px}
}

/* ── Scroll reveals: edition cards and Intelligence bars (only with [data-anim], set by weekend-flow.js) ── */
.edm-grid[data-anim] .edm{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.edm-grid[data-anim] .edm:nth-child(2){transition-delay:.12s}
.edm-grid[data-anim] .edm:nth-child(3){transition-delay:.24s}
.edm-grid[data-anim] .edm-x li{opacity:0;transform:translateX(-6px);transition:opacity .4s ease,transform .4s ease}
.edm-grid[data-anim] .edm:nth-child(1) .edm-x li:nth-child(1){transition-delay:.45s}
.edm-grid[data-anim] .edm:nth-child(1) .edm-x li:nth-child(2){transition-delay:.55s}
.edm-grid[data-anim] .edm:nth-child(1) .edm-x li:nth-child(3){transition-delay:.65s}
.edm-grid[data-anim] .edm:nth-child(2) .edm-x li:nth-child(1){transition-delay:.57s}
.edm-grid[data-anim] .edm:nth-child(2) .edm-x li:nth-child(2){transition-delay:.67s}
.edm-grid[data-anim] .edm:nth-child(2) .edm-x li:nth-child(3){transition-delay:.77s}
.edm-grid[data-anim] .edm:nth-child(3) .edm-x li:nth-child(1){transition-delay:.69s}
.edm-grid[data-anim] .edm:nth-child(3) .edm-x li:nth-child(2){transition-delay:.79s}
.edm-grid[data-anim] .edm:nth-child(3) .edm-x li:nth-child(3){transition-delay:.89s}
.edm-grid.is-in .edm,.edm-grid.is-in .edm-x li{opacity:1;transform:none}

.app[data-anim] .bar i{transform:scaleX(0);transform-origin:left center;transition:transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 110ms + 200ms)}
.app.is-in .bar i{transform:none}
.app[data-anim] .app-alert{opacity:0;transform:translateY(6px);transition:opacity .5s ease,transform .5s ease;transition-delay:1.1s}
.app.is-in .app-alert{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .edm-grid[data-anim] .edm,.edm-grid[data-anim] .edm-x li,.app[data-anim] .bar i,.app[data-anim] .app-alert{transition:none;opacity:1;transform:none}
}

/* desktop: the photo column stretches to the height of the weekend flow, so both end on one line */
@media (min-width:981px){
  .wk2-photos{grid-template-rows:auto 1fr;align-content:stretch}
  .wk2-photos .wkp.big{aspect-ratio:auto;min-height:240px}
  .wk2-photos .wkp.big img{position:absolute;inset:0}
}
