/* PDLC guided demo */
.demo-hero{padding:2.5rem 0 1rem}
.demo-hero .eyebrow a{color:inherit;text-decoration:none}
.demo-hero .eyebrow{text-shadow:none}
.demo-wrap{padding:0 0 4rem}
.player{--def:#53823A;--def-dk:#3E6329;--def-lt:#EAF1E3;background:#16251c;border-radius:20px;padding:12px;box-shadow:0 30px 60px -30px rgba(22,37,28,.6)}
.pl-top{display:flex;justify-content:space-between;align-items:center;color:#d6d3cb;font:600 var(--text-xs)/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:.4rem .6rem .7rem}
.stage{position:relative;height:clamp(520px,58vw,640px);border-radius:12px;overflow:hidden;background:#f6f5ef}
.scene{position:absolute;inset:0;padding:clamp(1rem,2.4vw,2rem);opacity:0;visibility:hidden;transform:scale(1.015);transition:opacity .7s ease,transform .9s cubic-bezier(.2,.7,.2,1),visibility 0s .7s;overflow:auto}
.scene.on{opacity:1;visibility:visible;transform:none;transition:opacity .7s ease,transform .9s cubic-bezier(.2,.7,.2,1),visibility 0s}
.scene-in{max-width:1080px;margin:0 auto;height:100%}
.pl-cap{min-height:3.2rem;color:#f2f0ea;font:400 var(--text-base)/1.5 var(--sans);padding:.85rem .8rem .3rem;max-width:80ch}
.pl-ctl{display:flex;align-items:center;gap:.5rem;padding:.4rem .4rem .2rem}
.ic{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none;transition:background .2s}
.ic:hover{background:rgba(255,255,255,.16)}
.ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic.play .i-play{display:none}.ic.play.paused .i-play{display:block;fill:currentColor}.ic.play.paused .i-pause{display:none}
.segs{flex:1;display:flex;gap:4px;margin:0 .4rem}
.segs button{flex:1;height:6px;border:0;padding:0;border-radius:3px;background:rgba(255,255,255,.18);cursor:pointer;position:relative;overflow:hidden}
.segs button i{position:absolute;inset:0;width:0;background:#8fb59a}
.segs button.done i{width:100%}
.btn-sm{padding:.6rem 1rem;font-size:var(--text-sm);background:#fff;color:#16251c;border-radius:999px;border:0;font-weight:600;cursor:pointer;white-space:nowrap}
.btn-sm:hover{background:#ece9e1}

/* spotlight */
.scene .dim{filter:blur(5px) saturate(.6);opacity:.45;pointer-events:none;user-select:none}
.scene .hl{position:relative;box-shadow:0 0 0 2px var(--def),0 18px 40px -18px rgba(49,88,64,.55);background:#fff}
.scene .hl-soft{box-shadow:0 0 0 1px var(--line)}
.rv{opacity:0;transform:translateY(14px)}
.scene.on .rv{animation:rv .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.25s + var(--i,0) * .28s)}
@keyframes rv{to{opacity:1;transform:none}}
.scene.on .pulse{animation:pulse 2.2s ease-in-out 1.2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 2px var(--def),0 0 0 0 rgba(143,181,154,.45)}50%{box-shadow:0 0 0 2px var(--def),0 0 0 10px rgba(143,181,154,0)}}
@media (prefers-reduced-motion:reduce){.scene,.scene.on{transition:opacity .2s}.rv{opacity:1;transform:none}.scene.on .rv,.scene.on .pulse{animation:none}}

/* skeletons */
.sk{display:grid;gap:9px;margin-top:.6rem}.sk i,.sk-t,.skb{display:block;height:10px;border-radius:5px;background:#d2cec4}
.sk-t{height:14px;background:#aeb9ad;margin-bottom:.4rem}.skb{width:80%;height:9px}.skb.s{width:60%;margin:auto}
.sk-bar{height:30px;background:#cfd8cb}

/* shared blocks */
.card{background:#fffefa;border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem}
.card h3{font:600 1.15rem/1.3 var(--sans);margin:.2rem 0 .5rem}
.card h4{font:700 var(--text-xs)/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .5rem}
.card p{font-size:var(--text-sm);color:#3a3834}
.bar{background:var(--def-lt);color:var(--def-dk);font:700 var(--text-xs)/1 var(--sans);letter-spacing:.12em;padding:.6rem .7rem;border-radius:6px;margin-bottom:.8rem;border-left:4px solid var(--def)}
.kick{font:700 var(--text-xs)/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:.5rem}
.ticks{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.45rem;font-size:var(--text-sm)}
.ticks li{padding-left:1.4rem;position:relative}.ticks li::before{content:"";position:absolute;left:0;top:.45em;width:.65rem;height:.35rem;border-left:2px solid var(--def-dk);border-bottom:2px solid var(--def-dk);transform:rotate(-45deg)}
.nums{margin:.3rem 0 0;padding-left:1.2rem;display:grid;gap:.35rem;font-size:var(--text-sm)}.nums.sm{font-size:var(--text-xs)}
.note{text-align:center;color:var(--muted);font-size:var(--text-sm);margin-top:1rem}
.muted{color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.grid-def{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;align-items:start}
.grid-frame{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem}
.stack{display:grid;gap:1rem}

/* intro */
.intro{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:760px;margin:0 auto}
.intro h2{font:400 clamp(1.9rem,1.4rem + 2vw,3rem)/1.1 var(--display);margin-bottom:1rem}
.intro .lede{font-size:var(--text-lg);color:#3a3834;max-width:60ch}
.tour-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.5rem}
.tour-chips span{font:600 var(--text-xs)/1 var(--sans);padding:.5rem .75rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--green)}
.intro.end{align-items:center;text-align:center}.intro.end .btn{margin-top:1.4rem}

/* phases */
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.ph-h{color:#fff;font:700 1.05rem/1 var(--sans);letter-spacing:.06em;padding:.9rem 1rem;border-radius:10px;display:flex;align-items:center;gap:.6rem}
.ph-h span{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;font-size:.85rem}
.ph-steps{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem}
.step{background:#fffefa;border-radius:10px;padding:.8rem;min-height:150px;display:flex;flex-direction:column;gap:.3rem;border:1px solid var(--line)}
.step b{font-size:var(--text-sm);letter-spacing:.06em}.step span{font-size:var(--text-xs);color:var(--muted)}
.step em{font-style:normal;margin-top:auto;font:600 var(--text-xs)/1.3 var(--sans);color:var(--def-dk);background:var(--def-lt);padding:.35rem .5rem;border-radius:6px}
.phase.dim .ph-h{filter:none}

/* gate */
.gate{border-top:6px solid var(--def)}
.gate h3{font:400 1.6rem/1.15 var(--display)}
.gate-out{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}
.gate-out span{font:600 var(--text-xs)/1 var(--sans);padding:.45rem .65rem;border-radius:999px}
.go{background:#dff0d3;color:#315840}.cond{background:#fdf1d2;color:#7a5a08}.stop{background:#f7dcd6;color:#8a2a17}

/* brief */
.brief{display:flex;flex-direction:column;gap:.7rem}
.brief-h{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;font-size:var(--text-sm)}
.pill{background:var(--def);color:#fff;font:700 var(--text-xs)/1 var(--sans);padding:.45rem .7rem;border-radius:999px;letter-spacing:.06em}
.brief-body{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.brief-body .sec:first-child{grid-column:span 2}
.sec{display:flex;gap:.8rem;align-items:flex-start;border-radius:10px;padding:.6rem .8rem;background:#fff;border:1px solid var(--line)}
.sec .code{font:700 var(--text-sm)/1.4 var(--sans);color:var(--def-dk);min-width:2.6rem}
.sec b{font-size:var(--text-sm)}.sec small{display:block;color:var(--muted);font-size:var(--text-xs)}
.sec p{font-size:var(--text-xs);color:#3a3834;margin-top:.25rem}
.sec.hl{box-shadow:0 0 0 1.5px var(--def)}
.brief-more{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}

/* rapid */
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .7rem;font-size:var(--text-xs);color:var(--muted);margin-bottom:.7rem}
.tbl-wrap{overflow:auto;border-radius:10px;border:1px solid var(--line);background:#fff}
.rapid{border-collapse:collapse;width:100%;font-size:.74rem}
.rapid th{background:#16251c;color:#fff;font-weight:600;padding:.55rem .3rem;text-align:center;line-height:1.2}
.rapid th:first-child{text-align:left;padding-left:.7rem;min-width:180px}
.rapid td{padding:.42rem .25rem;text-align:center;border-top:1px solid #edefe7}
.rapid td.it{text-align:left;padding-left:.7rem;white-space:nowrap}
.rapid tr.hl-row td{background:#fcfbf8}
.rapid tr.gate-row td{background:#16251c;color:#fff}
.rapid tr.dim td{filter:blur(4px);opacity:.5}
.rp{display:inline-block;min-width:1.6rem;font-weight:700;border-radius:4px;padding:.15rem .3rem}
td.rp{display:table-cell}
.rp.d{background:#16251c;color:#fff}.rp.r{background:#dff0d3;color:#315840}.rp.p{background:#d8ecf6;color:#1b5878}.rp.i{background:transparent;color:#7b877e}
.rapid tr.hl-row td.rp.d{background:#16251c;color:#fff}.rapid tr.hl-row td.rp.r{background:#dff0d3;color:#315840}.rapid tr.hl-row td.rp.p{background:#d8ecf6;color:#1b5878}
.gate-row td.rp.d{background:#2E7D5B;color:#16251c}
.gate-row td.rp.i{color:#a9b8ad}.gate-row td.rp.r{background:#2f4f3b;color:#dff0d3}

/* tool mocks */
.tool{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff;height:100%;display:flex;flex-direction:column}
.tool-top{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;color:#fff;font-size:var(--text-xs)}
.tool-name{font:700 var(--text-sm)/1 var(--sans);letter-spacing:.02em}
.crumb{opacity:.85}
.ja .tool-top{background:#0b3d91}.ado .tool-top{background:#0b6cbd}.pbi .tool-top{background:#2b2b2b}.pbi .tool-name{color:#f2c811}
.tool-main{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem;padding:1rem;flex:1;background:#f4f6f8}
.tool-card{border-radius:10px;padding:1rem 1.1rem;border:1px solid #dfe3e8}
.tool-card h4{font:700 var(--text-xs)/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#5b6573;margin:1rem 0 .4rem}
.tool-side{background:#fff;border-radius:10px;padding:1rem;border:1px solid #dfe3e8}
.tc-h{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.8rem}
.tc-h b{font-size:var(--text-base)}
.tag{font:700 .7rem/1 var(--sans);padding:.35rem .5rem;border-radius:4px;color:#fff;text-transform:uppercase;letter-spacing:.06em}
.tag.feat{background:#6554c0}.tag.story{background:#009ccc}
.status{margin-left:auto;font:600 .72rem/1 var(--sans);padding:.35rem .6rem;border-radius:999px}
.s-prog{background:#deebff;color:#0747a6}.s-active{background:#e0f2ff;color:#005a9e}
.fields{display:grid;gap:.5rem;margin:0;font-size:var(--text-sm)}
.fields div{display:grid;grid-template-columns:150px 1fr;gap:.6rem}
.fields dt{color:#5b6573;font-size:var(--text-xs);font-weight:600;padding-top:.15rem}.fields dd{margin:0}
.fields a{color:#0b3d91}
.prog{height:8px;background:#e6e9ee;border-radius:4px;margin:1rem 0 .35rem;overflow:hidden}
.prog span{display:block;height:100%;background:#36b37e;border-radius:4px;transform-origin:left;transform:scaleX(0)}
.scene.on .prog span{animation:grow 1.4s cubic-bezier(.2,.7,.2,1) 1s forwards}
@keyframes grow{to{transform:scaleX(1)}}
.story{font-size:var(--text-base);line-height:1.55;color:#1f2a37}
.meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.meta span{font-size:.72rem;background:#eef1f5;color:#3b4654;padding:.35rem .55rem;border-radius:4px}

/* press release */
.pr{display:grid;grid-template-columns:1.7fr 1fr;gap:1rem;align-items:start}
.paper{border-radius:6px;padding:1.6rem 1.8rem;font-size:var(--text-sm);line-height:1.6}
.paper p{margin-bottom:.8rem;color:#2a3530}
.pr-k{font:700 var(--text-xs)/1 var(--sans);letter-spacing:.14em;color:var(--green)}
.paper h3{font:400 clamp(1.3rem,1rem + 1.2vw,1.8rem)/1.2 var(--display);margin:.4rem 0 .5rem}
.pr-sub{font-style:italic;color:var(--muted)!important}
.pr-end{text-align:center;letter-spacing:.3em}
.faq{display:grid;gap:1rem;background:#fff;border-radius:10px;padding:1rem;border:1px solid var(--line)}

/* power bi */
.pbi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto 1fr;gap:.8rem;padding:1rem;background:#f3f2f1;flex:1;min-height:0}
.kpi{background:#fff;border-radius:8px;padding:1rem;border:1px solid #e1dfdd;display:flex;flex-direction:column;gap:.3rem}
.kpi small,.chart small{font-size:var(--text-xs);color:#605e5c;font-weight:600}
.kpi b{font:600 2.6rem/1 var(--sans);color:#252423}
.up{font-size:var(--text-xs);color:#107c10;font-weight:600}
.chart{grid-column:span 2;display:flex;flex-direction:column;background:#fff;border-radius:8px;padding:.9rem 1rem;border:1px solid #e1dfdd}
.chart svg{width:100%;flex:1;min-height:0;max-height:300px;margin-top:.3rem}
.chart .ln{fill:none;stroke:#118dff;stroke-width:3;stroke-linejoin:round;stroke-dasharray:600;stroke-dashoffset:600}
.scene.on .chart .ln{animation:draw 1.8s ease 1.4s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.chart .dot{fill:#118dff}.chart .b{fill:#12239e}.chart .ax{font:500 11px/1 var(--sans);fill:#605e5c;text-anchor:middle}
.pbi-grid .kpi.hl,.pbi-grid .chart.hl{box-shadow:0 0 0 2px #f2c811,0 18px 40px -18px rgba(0,0,0,.35)}

.ja .hl{box-shadow:0 0 0 2px #0b3d91,0 18px 40px -18px rgba(11,61,145,.45)}
.ado .hl{box-shadow:0 0 0 2px #0b6cbd,0 18px 40px -18px rgba(11,108,189,.45)}

/* lead modal */
.lead-modal{position:fixed;inset:0;z-index:200;background:rgba(22,37,28,.62);backdrop-filter:blur(6px);display:grid;place-items:center;padding:1rem;animation:fade .35s ease}
.lead-modal[hidden]{display:none}
@keyframes fade{from{opacity:0}}
.lm-card{position:relative;background:#fffefa;border-radius:18px;max-width:540px;width:100%;padding:2rem 1.8rem 1.6rem;max-height:92vh;overflow:auto;box-shadow:0 30px 70px -20px rgba(0,0,0,.5);animation:pop .45s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{transform:translateY(20px) scale(.97);opacity:0}}
.lm-card h2{font:700 1.15rem/1.35 var(--sans);letter-spacing:.02em;color:#16251c;margin:0 1.6rem 1.1rem 0}
.lm-x{position:absolute;top:.8rem;right:.9rem;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--ink)}
#demo-form{display:grid;gap:.75rem}
#demo-form label{display:grid;gap:.3rem}
#demo-form .lb{font:600 var(--text-xs)/1.2 var(--sans);letter-spacing:.04em;color:#16251C}
#demo-form .opt{font-weight:400;color:var(--muted)}
#demo-form input[type=text],#demo-form input[type=email],#demo-form input[type=tel]{font:400 var(--text-base)/1.2 var(--sans);padding:.75rem .85rem;border:1px solid #d2cec4;border-radius:10px;background:#fff;color:var(--ink)}
#demo-form input:focus{outline:2px solid var(--leaf);outline-offset:1px}
#demo-form .btn{justify-self:start;margin-top:.3rem}
#demo-form .lf-status{color:var(--muted)}#demo-form .lf-status.err{color:#a0341a}#demo-form .lf-status.ok{color:#315840}
.lm-done{text-align:left}.lm-done h3{font:400 1.5rem/1.2 var(--display);margin-bottom:.4rem}.lm-done p{margin-bottom:1rem;color:var(--muted)}

@media (max-width:900px){
  .brief-body{grid-template-columns:1fr}.brief-body .sec:first-child{grid-column:auto}
  .chart svg{max-height:none}
  .stage{height:600px}
  .grid2,.grid-def,.grid-frame,.pr,.tool-main{grid-template-columns:1fr}
  .phases{grid-template-columns:1fr}.ph-steps{grid-template-columns:1fr 1fr}.step{min-height:0}
  .brief-more{grid-template-columns:1fr 1fr}
  .pbi-grid{grid-template-columns:1fr 1fr}.chart{grid-column:span 2}
  .fields div{grid-template-columns:1fr;gap:.1rem}
  .pl-ctl{flex-wrap:wrap}.segs{order:5;flex-basis:100%;margin:.4rem 0 0}
}

/* six-step grid (scene 2) */
.six{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.sx{border:1px solid var(--line);border-radius:12px;background:#fffefa;padding:.6rem;display:flex;flex-direction:column;gap:.55rem;min-height:170px;transition:opacity .4s}
.sx-h{color:#fff;background:var(--sc);font:700 .95rem/1 var(--sans);letter-spacing:.06em;padding:.8rem .9rem;border-radius:9px;display:flex;align-items:center;gap:.6rem}
.sx-h span{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;font-size:.8rem}
.sx-s{font-size:var(--text-sm);color:var(--muted);padding:0 .2rem}
.sx em{font-style:normal;margin-top:auto;font:600 var(--text-xs)/1.3 var(--sans);color:var(--ink);background:var(--sl);padding:.4rem .55rem;border-radius:6px}
.sx.dim{opacity:.38}.sx.hl-soft{opacity:.8}
.sx.hl{box-shadow:0 0 0 3px var(--sc);animation:sxpulse 1.6s ease-in-out infinite}
@keyframes sxpulse{0%,100%{box-shadow:0 0 0 3px var(--sc)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--sc) 35%,transparent)}}
@media (max-width:760px){.six{grid-template-columns:repeat(2,1fr)}}
