.hero-fig{margin:0;text-align:center}.hero-fig svg{width:100%;max-width:360px;height:auto}.hero-fig figcaption{font-size:13px;color:var(--muted)}
.signal path{animation:flow 2.4s linear infinite}@keyframes flow{to{stroke-dashoffset:-22}}
@media (prefers-reduced-motion:reduce){.signal path{animation:none}}
.v2-sec .lead{font-size:1.1rem;max-width:62ch}.v2-sec.white{background:#fff}
.info-fig{margin:24px 0 8px}.info-fig svg{width:100%;height:auto}
.src{font-size:14px;color:var(--muted)}
.icard svg{width:56px;height:56px;margin-bottom:6px}.icard{border-top:4px solid var(--sky)}
.map-wrap{display:grid;gap:28px;align-items:center}@media(min-width:760px){.map-wrap{grid-template-columns:240px 1fr}}
.bodymap{width:100%;max-width:240px;margin:auto;display:block}.bodymap .hot{fill:#6cc5dd;fill-opacity:.75;stroke:#1d3557;stroke-width:2;cursor:pointer}.bodymap a:hover .hot,.bodymap a:focus .hot{fill:#f2c94c}
.map-list{display:grid;gap:12px;padding-left:1.2em}.map-list a{display:block;background:#fff;border:1px solid #e3eaf1;border-radius:12px;padding:14px 18px;text-decoration:none}
.src-list{columns:2 300px;font-size:15px}
.info-mobile{display:none;list-style:none;padding:0;margin:20px 0;gap:14px}
.info-mobile li{background:#fff;border:3px solid var(--sky);border-radius:16px;padding:16px 18px;font-size:17px;line-height:1.45;position:relative}
.info-mobile li strong{display:block;font-size:20px;color:var(--navy);margin-bottom:4px}
.info-mobile li span{color:var(--muted);font-size:15px}
.info-mobile li.dark{background:var(--navy);border-color:var(--navy);color:#fff}.info-mobile li.dark strong{color:#fff}
.info-mobile li:not(.end):not(:nth-last-child(2))::after{content:"↓";position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);color:var(--navy);font-weight:800;font-size:18px}
.info-mobile li.end{border:0;background:none;font-weight:700;color:var(--navy);text-align:center;padding-top:6px}
@media(max-width:700px){.info-desktop{display:none}.info-mobile{display:grid}}
/* v3 viz */
.hero-logo{width:240px;max-width:70vw}
.split-edu{display:grid;gap:24px;align-items:center}@media(min-width:800px){.split-edu{grid-template-columns:1.1fr 1fr}}
.edu-fig{margin:0;text-align:center}.edu-fig svg{width:100%;max-width:360px;height:auto}.edu-fig figcaption{font-size:13px;color:var(--muted)}
.viz{margin:28px 0;background:#fff;border:1px solid #e3eaf1;border-radius:18px;padding:22px}
.viz-t{font-weight:800;color:var(--navy);font-size:1.15rem;margin-bottom:14px}
.viz h3{margin:0 0 8px;color:var(--navy);font-size:1.05rem}
.viz-src{font-size:14px;color:var(--muted);margin:12px 0 0}
.viz ol,.viz ul{margin:0;padding:0;list-style:none}
.viz strong{color:var(--navy)}.viz span{display:block;font-size:15px;color:var(--muted)}
.viz-steps ol{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));counter-reset:s}
.viz-steps li{border-left:4px solid var(--sky);padding:8px 14px;background:var(--sky-light);border-radius:0 12px 12px 0}
.vf-n{display:inline-grid!important;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff!important;font-weight:800;margin-bottom:6px}
.viz-path ol:not(.ex-notes):not(.ex-sr){display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));position:relative}
.viz-path ol:not(.ex-notes):not(.ex-sr)>li{position:relative;padding:44px 14px 6px;text-align:center}
.viz-path ol:not(.ex-notes):not(.ex-sr)>li::before{content:"";position:absolute;top:14px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--sky);border:4px solid var(--navy)}
.viz-path ol:not(.ex-notes):not(.ex-sr)>li::after{content:"";position:absolute;top:24px;left:calc(50% + 15px);right:calc(-50% + 15px);height:4px;background:var(--sky)}
.viz-path ol:not(.ex-notes):not(.ex-sr)>li:last-child::after{display:none}
@media(max-width:719px){.viz-path ol:not(.ex-notes):not(.ex-sr)>li::after{display:none}}
.viz-compare{display:grid;gap:16px}@media(min-width:720px){.viz-compare{grid-template-columns:1fr 1fr}.viz-compare .viz-t{grid-column:1/-1}}
.vc-col{border-radius:14px;padding:16px}.vc-col svg{width:100%;height:auto;max-height:80px}
.vc-col.old{background:#f3f5f7}.vc-col.old h3{color:#5b6b7b}.vc-col.new{background:var(--sky-light)}
.viz-cycle2{display:grid;gap:16px}@media(min-width:720px){.viz-cycle2{grid-template-columns:1fr 1fr}.viz-cycle2 .viz-t{grid-column:1/-1}}
.cyc{border-radius:14px;padding:16px}.cyc ol{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cyc li{padding:8px 14px;border-radius:999px;font-weight:700}.cyc li:not(:last-child)::after{content:" →";font-weight:800}
.cyc.bad{background:#f3f5f7}.cyc.bad li{background:#fff;color:#5b6b7b;border:2px solid #cfd8e1}
.cyc.good{background:var(--sky-light)}.cyc.good li{background:var(--navy);color:#fff}
.cyc p{margin:10px 0 0;font-size:15px;color:var(--muted)}
.viz-myth dl{display:grid;gap:10px;margin:0}.viz-myth dl>div{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:var(--sky-light)}
@media(min-width:720px){.viz-myth dl>div{grid-template-columns:1fr 1.3fr;align-items:center}}
.viz-myth dt{font-weight:700;color:#5b6b7b;text-decoration:line-through;text-decoration-color:var(--sky);text-decoration-thickness:3px}
.viz-myth dd{margin:0;color:var(--navy);font-weight:600}
.viz-loop ol{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.viz-loop li{border:3px solid var(--sky);border-radius:50px;padding:12px 16px;text-align:center}
.viz-loop li:last-child{border-style:dashed}
.viz-trust{display:grid;gap:16px}@media(min-width:720px){.viz-trust{grid-template-columns:1fr 1fr}.viz-trust .viz-t{grid-column:1/-1}}
.tr{border-radius:14px;padding:16px}.tr.ok{background:var(--sky-light)}.tr.no{background:#f3f5f7}.tr li{padding:6px 0;border-bottom:1px solid #e3eaf1}
.viz-channels{display:grid;gap:14px;align-items:center}@media(min-width:720px){.viz-channels{grid-template-columns:110px 1fr}.viz-channels .viz-t,.viz-channels .viz-src{grid-column:1/-1}}
.ch-you{width:96px;height:96px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;margin:auto}
.ch-lines{display:grid;gap:12px}.ch{display:block;padding:14px 18px;border-radius:14px;background:var(--sky-light);text-decoration:none;border-left:5px solid var(--sky)}
.df{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.df.ext{margin-top:12px}
.df-box{flex:1 1 200px;padding:14px;border-radius:14px;background:var(--sky-light)}.df-box.main{background:var(--navy)}.df-box.main strong,.df-box.main span{color:#fff}
.df-arrow{font-size:28px;color:var(--navy);font-weight:800}
.rf{display:grid;gap:10px;align-items:center}@media(min-width:720px){.rf{grid-template-columns:1fr 1.3fr 1fr}}
.rf-node,.rf-mid{padding:14px;border-radius:14px;text-align:center}.rf-node{background:var(--sky-light)}.rf-mid{background:var(--navy)}.rf-mid strong,.rf-mid span{color:#fff}
.rf-node.b{border:3px dashed var(--sky);background:#fff}
.ly{display:grid;gap:8px}.ly-row{padding:14px 18px;border-radius:12px}.ly-row.l1{background:var(--navy)}.ly-row.l1 strong,.ly-row.l1 span{color:#fff}.ly-row.l2{background:var(--sky);}.ly-row.l3{background:var(--sky-light)}
.dr{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.door{padding:22px 16px 16px;border-radius:60px 60px 12px 12px;background:var(--sky-light);border:3px solid var(--navy);text-align:center}
.bio-grid{display:grid;gap:24px;align-items:center}@media(min-width:760px){.bio-grid{grid-template-columns:260px 1fr}}
.photo-ph{margin:0;aspect-ratio:4/5;border:3px dashed var(--navy);border-radius:20px;background:repeating-linear-gradient(45deg,#fff 0 14px,var(--sky-light) 14px 28px);display:grid;place-items:center;text-align:center;padding:16px}
.photo-ph strong{display:block;color:var(--navy);letter-spacing:.08em}.photo-ph span{font-size:14px;color:var(--muted)}
.bio-list{padding-left:1.2em}.bio-list li{margin:8px 0}
.viz-radial .rd{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:center}
.rd-c{width:140px;height:140px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;text-align:center;font-weight:800;margin:auto;letter-spacing:.06em}
.rd-i{padding:14px;border-radius:14px;background:var(--sky-light);border-top:4px solid var(--sky);text-align:center}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* explainers (auto) */
.ex-notes{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.ex-notes li{background:var(--sky-light);border-left:4px solid var(--navy);padding:10px 14px;border-radius:0 10px 10px 0;font-size:16px;line-height:1.45}
.ex-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}
.ex-js .ex-notes{gap:0}.ex-js .ex-notes li{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .5s}
.ex-js .ex-notes li.ex-cur{visibility:visible;opacity:1}
.ex-js .ex-notes li.ex-cur{border-left-color:var(--sun);background:#fff8dc}
.ex-js:not([data-cur="0"]) [data-step]{opacity:.55;transition:opacity .4s,transform .4s,box-shadow .4s}
.ex-js:not([data-cur="0"]) [data-step].ex-on{opacity:1;box-shadow:0 0 0 4px var(--sun);transform:scale(1.02)}
.ex-js:not([data-cur="0"]) svg [data-step].ex-on{box-shadow:none;transform:none;stroke:#f2c94c;stroke-width:6}
.ex-js:not([data-cur="0"]) svg text[data-step].ex-on{stroke:none;fill:#1d3557}
.rf{position:relative}.rf-dot{display:none}
.ex-js .rf-dot{display:block;position:absolute;width:14px;height:14px;border-radius:50%;background:var(--sun);top:-10px;left:12%;transition:left 1.2s ease;opacity:0}
.ex-js[data-cur="1"] .rf-dot{left:12%;opacity:1}.ex-js[data-cur="2"] .rf-dot{left:48%;opacity:1}.ex-js[data-cur="3"] .rf-dot{left:84%;opacity:1}
@media(max-width:719px){.ex-js .rf-dot{display:none}}
@media(prefers-reduced-motion:reduce){.ex-js .rf-dot{display:none}.ex-js [data-step]{transition:none!important;transform:none!important}}
.bio-photo{margin:0}.bio-photo img{display:block;width:100%;max-width:300px;aspect-ratio:3/4;height:auto;object-fit:cover;object-position:50% 25%;border-radius:20px;border:4px solid #fff;box-shadow:0 6px 24px rgba(29,53,87,.15);margin:auto}
.explainer .ex-notes,.explainer .viz-src,.explainer .viz-t{grid-column:1/-1}
