#flywheel { background:#fff; border-top:1px solid #E5DFD5; }
.fw { --ink:#2D2A26; --sec:#5C5764; --ter:#6F6962; --greenT:#3AB648; --hair:#E5DFD5;
  max-width:1240px; margin-inline:auto; padding-inline:clamp(1.5rem,4vw,2.5rem); padding-block:clamp(3.5rem,8vw,6.5rem); color:var(--ink); }
.fw-eyebrow { margin:0 0 clamp(1.25rem,2.2vw,1.75rem); font-size:.75rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--greenT); }
.fw-head { margin:0; max-width:20ch; font-size:clamp(2rem,4.4vw,3.6rem); font-weight:600; letter-spacing:-.035em; line-height:1.04; text-wrap:balance; }
.fw-lede { margin:1.25rem 0 0; max-width:62ch; font-size:clamp(1.02rem,1.3vw,1.16rem); line-height:1.55; }
.fw-loop { list-style:none; margin:clamp(2rem,4vw,3rem) 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(.75rem,1.5vw,1.25rem); position:relative; }
.fw-loop li { position:relative; background:#F7F5F3; border-radius:14px; padding:clamp(1.1rem,2vw,1.5rem) clamp(1.1rem,2vw,1.5rem) clamp(1.1rem,2vw,1.5rem); min-width:0;
  opacity:0; transform:translateY(12px); transition:opacity .6s ease var(--d,.2s),transform .6s cubic-bezier(.2,.7,.2,1) var(--d,.2s); }
.fw.in .fw-loop li { opacity:1; transform:none; }
.fw-loop li b { display:block; font-size:1rem; font-weight:600; letter-spacing:-.01em; line-height:1.3; margin:.6rem 0 .4rem; }
.fw-loop li > span:last-child { display:block; font-size:.88rem; line-height:1.5; color:var(--sec); }
.fw-i { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--greenT); color:#fff; font-size:.78rem; font-weight:700; }
.fw-loop li:not(:last-child)::after { content:"\2192"; position:absolute; right:-1rem; top:1.35rem; width:1.25rem; text-align:center; color:var(--greenT); font-size:1.1rem; }
.fw-loop li:last-child::after { content:"\21BA"; position:absolute; right:1rem; top:1.1rem; color:var(--greenT); font-size:1.2rem; }
.fw-prog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); margin-top:clamp(2rem,4vw,3rem); }
.fw-card { background:#F7F5F3; border-radius:14px; padding:clamp(1.25rem,2.2vw,1.75rem); min-width:0;
  opacity:0; transform:translateY(12px); transition:opacity .6s ease var(--d,.2s),transform .6s cubic-bezier(.2,.7,.2,1) var(--d,.2s); }
.fw.in .fw-card { opacity:1; transform:none; }
.fw-card h3 { margin:0 0 .75rem; font-size:clamp(1.1rem,1.4vw,1.25rem); font-weight:600; letter-spacing:-.02em; line-height:1.25; }
.fw-card p { margin:0; font-size:.92rem; line-height:1.55; color:var(--ink); }
.fw-card .fw-status { margin-top:.9rem; padding-top:.9rem; border-top:1px solid var(--hair); font-size:.82rem; color:var(--ter); }
.fw-note { margin:clamp(1.5rem,3vw,2rem) 0 0; max-width:74ch; font-size:.92rem; line-height:1.55; color:var(--sec); }
.fw-note b { color:var(--ink); font-weight:600; }
@media (max-width:1000px) { .fw-loop { grid-template-columns:repeat(2,minmax(0,1fr)); } .fw-loop li::after { display:none; } }
@media (max-width:900px) { .fw-prog { grid-template-columns:1fr; } }
@media (max-width:600px) { .fw-loop { grid-template-columns:1fr; } }
