/* ---------- Platform page ---------- */
.phero { padding-block:56px 120px; }
.phero h1 { max-width:12ch; font-size:clamp(42px, 4.8vw, 68px); line-height:1; }
.phero .sub { max-width:34ch; }
.pstack-wrap { grid-column:7 / span 6; }
.pstack { position:relative; padding:28px; border-radius:var(--r-lg); background-color:var(--tint-iris); background-image:radial-gradient(circle at 1px 1px, #D3D1FA 1px, transparent 1.5px); background-size:22px 22px; box-shadow:inset 0 0 0 1px #E1DFFD; }
.ptrust { display:flex; flex-direction:column; gap:12px; padding:16px; border:1.5px solid var(--signal); border-radius:22px; background:rgba(255,255,255,.55); }
.ptag { display:flex; justify-content:space-between; gap:16px; padding:2px 6px 6px; font-size:14px; color:var(--ink-muted); text-decoration:none; }
.ptag b { color:var(--signal); font-weight:600; }
.slab { display:flex; flex-direction:column; gap:4px; padding:18px 20px; border-radius:14px; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-card); color:var(--ink); text-decoration:none; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.slab b { font-size:18px; font-weight:600; letter-spacing:-.01em; }
.slab span { font-size:14.5px; line-height:21px; color:var(--ink-muted); }
.slab:hover, .slab:focus-visible { transform:translateX(6px); box-shadow:var(--shadow-float); border-color:var(--signal); outline:none; }
.slab.run { border-color:rgba(61,61,245,.35); }
.psys { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:18px; }
.psys span { padding:6px 12px; border-radius:999px; background:var(--paper); border:1px solid var(--line); font-size:13px; color:var(--ink-muted); }

.psec { padding-block:128px; scroll-margin-top:80px; }
.psec.alt { background:var(--mist); }
.lgrid { display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:24px; row-gap:48px; align-items:center; }
.ltext { grid-column:1 / span 5; display:flex; flex-direction:column; gap:20px; }
.lvis { grid-column:7 / span 6; }
.lgrid.flip .ltext { grid-column:8 / span 5; grid-row:1; }
.lgrid.flip .lvis { grid-column:1 / span 6; grid-row:1; }
.lname { font-size:14px; font-weight:600; color:var(--signal); }
.ltext h2 { margin:0; font-size:clamp(32px, 3.6vw, 48px); line-height:1.06; font-weight:500; letter-spacing:-.03em; text-wrap:balance; }
.ltext p { margin:0; font-size:18px; line-height:28px; color:var(--ink-muted); }
.ticks { list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
.ticks li { position:relative; padding-left:30px; font-size:16px; line-height:24px; }
.ticks li::before { content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%; background:var(--signal-soft); }
.ticks li::after { content:""; position:absolute; left:5px; top:8px; width:7px; height:4px; border-left:1.8px solid var(--signal); border-bottom:1.8px solid var(--signal); transform:rotate(-45deg); }
.more { align-self:flex-start; font-size:15px; font-weight:600; text-decoration:underline; text-decoration-color:var(--line-control); text-underline-offset:5px; }
.more:hover { text-decoration-color:var(--ink); }
.vnote { margin:14px 0 0; font-size:13px; color:var(--ink-subtle); }

.assemble { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:14px 40px; align-items:center; position:relative; }
.src { grid-column:1; display:flex; flex-direction:column; gap:2px; padding:14px 16px; border-radius:12px; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-card); position:relative; }
.src span { font-size:14px; font-weight:600; }
.src em { font-style:normal; font-size:13px; color:var(--ink-subtle); }
.src::after { content:""; position:absolute; right:-40px; top:50%; width:40px; border-top:1.5px dashed var(--line-control); }
.rec { grid-column:2; grid-row:1 / span 3; padding:20px; border-radius:var(--r-md); background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-float); }
.rec-top { display:flex; justify-content:space-between; padding-bottom:12px; border-bottom:1px solid var(--line); font-size:13px; color:var(--ink-subtle); }
.rec dl { margin:0; }
.rec dl div { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); font-size:14.5px; }
.rec dl div:last-child { border-bottom:0; }
.rec dt { color:var(--ink-muted); } .rec dd { margin:0; font-weight:600; text-align:right; } .rec dd.r { color:var(--risk); }

.bpcard { border-radius:var(--r-md); background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-float); overflow:hidden; }
.bp-top { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; padding:18px 20px; border-bottom:1px solid var(--line); font-size:13px; color:var(--ink-subtle); }
.bp-top b { font-size:18px; color:var(--ink); font-weight:600; }
.bp-v { margin-left:auto; padding:3px 10px; border-radius:999px; background:var(--signal-soft); color:var(--signal); font-weight:600; font-size:12px; }
.bpcard table { font-size:14px; }
.bpcard th { background:var(--mist); }
.bpcard td { color:var(--ink); }
.bpcard tr.hl td { background:var(--signal-soft); }
.bp-foot { display:flex; gap:10px; flex-wrap:wrap; padding:14px 20px; border-top:1px solid var(--line); font-size:14px; color:var(--ink-subtle); }
.bp-foot b { color:var(--ink); font-weight:600; }

.action { display:flex; flex-direction:column; gap:14px; padding:24px; border-radius:var(--r-md); background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-float); }
.act-top { display:flex; justify-content:space-between; align-items:center; }
.act-title { font-size:20px; line-height:27px; font-weight:600; letter-spacing:-.01em; }
.act-why { margin:0; font-size:15px; line-height:23px; color:var(--ink-muted); }
.act-meta { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; padding:14px 0; border-block:1px solid var(--line); }
.act-meta span { display:flex; flex-direction:column; gap:2px; font-size:12.5px; color:var(--ink-subtle); }
.act-meta b { font-size:14.5px; font-weight:600; color:var(--ink); }
.act-btns { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.ghost { display:inline-flex; align-items:center; height:38px; padding:0 14px; border:1px solid var(--line-control); border-radius:var(--r-sm); font-size:14px; font-weight:600; }

.evid { border-radius:var(--r-md); background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow-float); overflow:hidden; }
.ev-top { display:flex; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--line); font-size:15px; }
.evid ol { list-style:none; margin:0; padding:6px 20px 10px; }
.evid li { display:grid; grid-template-columns:84px 1fr auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); font-size:14.5px; }
.evid li:last-child { border-bottom:0; }
.evid .t { font-family:var(--mono); font-size:12.5px; color:var(--ink-subtle); }
.evid em { font-style:normal; font-size:12px; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--frost); color:var(--ink-muted); }

.engage { padding-block:128px 120px; }
.phases { list-style:none; margin:64px 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.phases li { display:flex; flex-direction:column; gap:14px; padding:28px; border-radius:var(--r-md); background:var(--mist); }
.ph-n { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:var(--paper); font-size:14px; font-weight:600; }
.phases h3 { margin:6px 0 0; font-size:24px; line-height:30px; font-weight:500; letter-spacing:-.016em; }
.ph-d { margin:0; font-size:16px; line-height:25px; color:var(--ink-muted); }
.ph-split { margin-top:auto; display:grid; gap:14px; padding-top:18px; border-top:1px solid var(--line); }
.ph-split span { font-size:13px; font-weight:600; color:var(--signal); }
.ph-split p { margin:2px 0 0; font-size:14.5px; line-height:22px; color:var(--ink-muted); }

@media (max-width: 1080px) {
  .pstack-wrap { grid-column:1 / -1; max-width:640px; }
  .ltext, .lvis, .lgrid.flip .ltext, .lgrid.flip .lvis { grid-column:1 / -1; grid-row:auto; }
  .phases { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .psec { padding-block:80px; } .engage { padding-block:80px; }
  .pstack { padding:16px; } .ptag { flex-direction:column; gap:2px; }
  .assemble { grid-template-columns:1fr; } .src::after { display:none; } .rec { grid-column:1; grid-row:auto; }
  .act-meta { grid-template-columns:1fr 1fr; }
  .evid li { grid-template-columns:70px 1fr; } .evid em { display:none; }
  .bpcard table { font-size:13px; } .bpcard th, .bpcard td { white-space:normal; padding-inline:10px; } .bpcard td:nth-child(2) { white-space:nowrap; }
}
@media (max-width: 359px) { .bpcard th, .bpcard td { padding-inline:8px; } .bpcard td:nth-child(2) { white-space:normal; } }
@media (prefers-reduced-motion: reduce) { .slab { transition:none; } }
