:root{--bg:#f4f7fb;--ink:#14243b;--mut:#5d6b80;--pri:#5a2ca0;--acc:#0a7fd1;--card:#fff;--line:#dfe6ef;--r:14px}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:linear-gradient(90deg,#3b1a78,#0a5fb0);color:#fff}
.brand{font-weight:700;font-size:1.15rem}.brand small{font-weight:400;opacity:.8;margin-left:6px;font-size:.8rem}.logo{font-size:1.3rem}
.sample{background:#ffcc33;color:#3b2a00;font-weight:700;font-size:.7rem;padding:4px 8px;border-radius:6px;letter-spacing:.05em}
.steps{display:flex;gap:6px;padding:10px 16px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--line)}
.steps button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-size:.85rem;white-space:nowrap;cursor:pointer;color:var(--mut)}
.steps button.on{background:var(--pri);color:#fff;border-color:var(--pri)}.steps button:disabled{opacity:.45}
main{max-width:1150px;margin:0 auto;padding:18px 16px 40px}
h2{margin:6px 0 4px;font-size:1.35rem}.sub{color:var(--mut);margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:.15s;min-height:96px}
.tile:hover,.tile:focus{border-color:var(--acc);box-shadow:0 6px 18px rgba(10,95,176,.12);transform:translateY(-2px)}
.tile .ic{font-size:1.7rem}.tile b{display:block;margin:6px 0 3px}.tile span{color:var(--mut);font-size:.83rem}
.tile.journey{background:linear-gradient(135deg,#efe7fb,#e3f1fc);grid-column:1/-1}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:10px}
.chip{background:#ece4f8;color:var(--pri);border-radius:999px;padding:5px 11px;font-size:.8rem;font-weight:600}
.btn{background:var(--pri);color:#fff;border:0;border-radius:10px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;min-height:42px}
.btn.ghost{background:transparent;color:inherit;border:1px solid currentColor;opacity:.85}
.scene{position:relative;background:#fff;border-radius:var(--r);border:1px solid var(--line);overflow:hidden}
.scene svg{display:block;width:100%;height:auto}
.hot{position:absolute;transform:translate(-50%,-50%);border:0;border-radius:999px;color:#fff;padding:8px 12px 8px 8px;font:600 .8rem system-ui;display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2);white-space:nowrap}
.hot i{font-style:normal;background:#fff;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:.9rem}
.hot::before{content:"";position:absolute;inset:-5px;border-radius:999px;border:2px solid currentColor;opacity:.0;animation:pulse 2s infinite;color:inherit}
.hot{animation:none}@keyframes pulse{0%{opacity:.6;transform:scale(.95)}100%{opacity:0;transform:scale(1.25)}}
.legend{margin-top:10px;color:var(--mut);font-size:.85rem}
.modal{position:fixed;inset:0;background:rgba(10,20,40,.5);display:flex;align-items:flex-end;justify-content:center;z-index:20}
.modal .card{background:#fff;width:100%;max-width:640px;max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:20px}
@media(min-width:700px){.modal{align-items:center}.modal .card{border-radius:18px}}
.card h3{margin:0 0 2px}.card .ctx{color:var(--mut);font-size:.85rem;margin-bottom:12px}
.card section{border-left:4px solid var(--acc);background:#f6f9fd;padding:10px 14px;border-radius:8px;margin:10px 0}
.card section h4{margin:0 0 6px;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.card ul{margin:0;padding-left:18px}.card li{margin:4px 0}.card .tag{float:right;font-size:.65rem;background:#ffcc33;padding:2px 6px;border-radius:4px}
.hidden{display:none!important}
.journey-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media(max-width:760px){.journey-row{grid-template-columns:1fr}}
.stage{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px;position:relative}
.stage h4{margin:0 0 8px}.stage .num{background:var(--pri);color:#fff;border-radius:50%;width:24px;height:24px;display:inline-grid;place-items:center;font-size:.75rem;margin-right:6px}
.pill{display:flex;align-items:center;gap:6px;width:100%;margin:5px 0;border:0;border-radius:8px;padding:8px;color:#fff;font:600 .8rem system-ui;cursor:pointer;text-align:left}
.stage .go{margin-top:6px;font-size:.78rem;color:var(--acc);background:none;border:0;cursor:pointer;padding:4px 0}
.foot{text-align:center;color:var(--mut);font-size:.75rem;padding:16px}
@media(max-width:600px){.brand small{display:none}}

.tag.src{background:#d8f0e4;color:#145c36}.models{font-size:.85rem;color:var(--ink);margin:0 0 6px}.models b{color:var(--mut);font-weight:600}
.srcline{font-size:.72rem;color:var(--mut);margin:8px 0}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;margin-top:10px}
@media(max-width:600px){.hot{padding:4px}.hot .lbl{display:none}.hot i{width:30px;height:30px}}
.scene img{display:block;width:100%;height:auto}
.illus{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:.68rem;padding:3px 7px;border-radius:5px}
.hot{border:2px solid #fff}
@media(max-width:600px){.illus{font-size:.55rem;max-width:70%;bottom:4px;left:4px;padding:2px 5px}}
.pimg{margin:-6px 0 10px;background:#f4f6f9;border-radius:12px;text-align:center;padding:8px}
.pimg img{max-width:100%;max-height:200px;object-fit:contain}
.pimg figcaption{font-size:.62rem;color:#98a3b3;margin-top:4px}
.hot i.th{background:#fff;overflow:hidden;width:30px;height:30px}.hot i.th img{width:100%;height:100%;object-fit:contain}
details.rep{margin:10px 0;border:1px dashed #c9d3df;border-radius:8px;padding:8px 12px;font-size:.88rem}
details.rep summary{cursor:pointer;color:var(--mut);font-weight:600}details.rep h4{font-size:.75rem;text-transform:uppercase;color:var(--mut);margin:10px 0 4px}
#gate{position:fixed;inset:0;z-index:99;background:linear-gradient(135deg,#3b1a78,#0a5fb0);display:grid;place-items:center}
#gate form{background:#fff;border-radius:16px;padding:24px;width:min(90vw,320px);display:grid;gap:10px;text-align:center}
#gate input{font-size:1.1rem;padding:10px;border:1px solid #ccd;border-radius:10px;text-align:center}.glogo{font-weight:700;font-size:1.2rem;color:#3b1a78}#gate small{color:#c33}

.hot.up{transform:translate(-50%,calc(-100% - 10px))}.hot.up::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:12px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.4)}
@media(max-width:600px){.hot.up{transform:translate(-50%,-50%)}.hot.up::after{display:none}}

/* ---------- animated story player ---------- */
.story{position:fixed;inset:0;background:#0b0f1e;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px;color:#fff}
.story.hidden{display:none}
.shead{width:min(96vw,1280px);display:flex;justify-content:space-between;align-items:center;font-weight:700}
.shead .btn.ghost,.snav .btn.ghost{background:transparent;color:#fff;border:1px solid #ffffff55}
.stg{position:relative;width:min(96vw,calc((100vh - 130px)*16/9),1280px);aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#000;container-type:inline-size;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.lay{position:absolute;inset:0;overflow:hidden;opacity:0}
.kb{position:absolute;will-change:transform}.kb img{width:100%;height:100%;display:block}
.kb .dim{position:absolute;inset:0}
.ring{position:absolute;width:9cqw;height:9cqw;margin:-4.5cqw 0 0 -4.5cqw;border-radius:50%;border:.35cqw solid #fff;box-shadow:0 0 0 .35cqw #7b3fe4,0 0 2.4cqw #8f5cff}
.ring.p{border-color:#b892ff;box-shadow:none}
.prog{position:absolute;left:3cqw;right:3cqw;top:2.2cqw;height:3.4cqw}
.prog .trk{position:absolute;left:0;right:0;top:1cqw;height:.4cqw;background:#ffffff40;border-radius:1cqw}
.prog .fil{position:absolute;left:0;top:1cqw;height:.4cqw;background:linear-gradient(90deg,#7b3fe4,#1f8fff);border-radius:1cqw}
.prog .nd{position:absolute;top:.55cqw;width:1.3cqw;height:1.3cqw;margin-left:-.65cqw;border-radius:50%;background:#2a3150;border:.2cqw solid #ffffffaa}
.prog .nd.on{background:#7b3fe4;border-color:#fff}.prog .nd.cur{background:#1f8fff;box-shadow:0 0 1cqw #1f8fff}
.prog .nl{position:absolute;top:2.1cqw;transform:translateX(-50%);font-size:1.15cqw;font-weight:600;white-space:nowrap;text-shadow:0 1px 4px #000c;opacity:.75}.prog .nl.cur{opacity:1}
.lt{position:absolute;left:3cqw;bottom:3cqw;width:62cqw;padding:1.6cqw 2cqw 1.8cqw 2.4cqw;background:linear-gradient(100deg,#2b1466f2,#14306ef0);border-left:.6cqw solid #1f8fff;border-radius:.8cqw;box-shadow:0 1cqw 3cqw #0008}
.ltk{font-size:1.2cqw;letter-spacing:.15em;text-transform:uppercase;color:#a9c8ff;font-weight:700}
.ltt{font-size:2.3cqw;font-weight:800;margin:.3cqw 0 .5cqw}
.ltc{font-size:1.75cqw;line-height:1.35;color:#eef2ff}
.thumb{position:absolute;right:3cqw;bottom:3cqw;width:20cqw;background:#fff;border-radius:.8cqw;padding:.8cqw;box-shadow:0 1cqw 3cqw #0009;color:#556}
.thumb img{width:100%;height:12cqw;object-fit:contain;display:block}.thumb span{display:block;font-size:.85cqw;margin-top:.4cqw;line-height:1.2}
.end{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#2b1466,#0d3a8a);opacity:0;font-size:3.4cqw;font-weight:800}
.end small{display:block;font-size:1.5cqw;font-weight:500;margin-top:1.2cqw;opacity:.85;max-width:70cqw}
.wm{position:absolute;right:3cqw;top:6.4cqw;font-size:1cqw;opacity:.6}
.snav{display:flex;gap:10px}
.story.present{padding:0;gap:0}.story.present .shead,.story.present .snav{position:absolute;opacity:0;transition:opacity .3s;z-index:2}.story.present .shead{top:8px;width:96vw}.story.present .snav{bottom:8px}
.story.present:hover .shead,.story.present:hover .snav{opacity:1}.story.present .stg{width:min(100vw,100vh*16/9);border-radius:0}
.story.export{padding:0}.story.export .shead,.story.export .snav{display:none}.story.export .stg{width:100vw;border-radius:0}
@media(max-width:600px){.lt{width:auto;right:3cqw;bottom:2cqw;padding:1.6cqw 2.4cqw}.ltt{font-size:3.4cqw}.ltc{font-size:2.8cqw}.ltk{font-size:2cqw}.thumb{top:9cqw;bottom:auto;width:22cqw}.thumb img{height:11cqw}.thumb span{display:none}.prog .nl{font-size:1.9cqw}.prog .nl:not(.cur){display:none}.wm{display:none}}
.prog,.lt,.thumb,.wm{z-index:3}.end{z-index:4}
@media(max-width:600px){.shead{font-size:.85rem}.shead .btn{padding:6px 10px;font-size:.8rem}.story{justify-content:flex-start;padding-top:20px}}
/* ---------- training ---------- */
.train{margin-top:28px;padding-top:18px;border-top:2px dashed var(--line)}
.train h2 .tag{vertical-align:middle;font-size:.7rem}
.tgrid .tprod img{width:100%;height:84px;object-fit:contain;background:#fff;border-radius:8px;margin-bottom:6px}
.back{margin-bottom:10px}
.learn .lhead{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.learn .lhead img{width:180px;max-width:40vw;background:#fff;border-radius:10px;border:1px solid var(--line);padding:6px}
.learn .lhead>div{flex:1;min-width:220px}.vp li{margin:8px 0;line-height:1.45}
.caveat{background:#fff6e6;border:1px solid #f0c47a;border-radius:10px;padding:10px 14px;margin:14px 0}.caveat h4{margin:0 0 4px}
.tact{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.tact .btn{min-height:44px}
.cprog{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.95rem;margin:6px 0 14px}.cprog .pb{flex-basis:100%;height:8px;background:#e6e9f2;border-radius:6px;overflow:hidden}.cprog .pb i{display:block;height:100%;background:linear-gradient(90deg,#5a2ca0,#1f6fd1)}
.flip{perspective:1200px;cursor:pointer;max-width:640px;margin:0 auto;outline:none;touch-action:pan-y}
.fin{position:relative;min-height:260px;transition:transform .5s;transform-style:preserve-3d}.flip.on .fin{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;padding:22px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 8px 24px #1b1f3a22}
.face small{opacity:.7;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}.face p{font-size:1.15rem;line-height:1.45;margin:.6em 0 0}
.face.fr{background:linear-gradient(135deg,#2b1466,#14306e);color:#fff}.face.fr p{font-size:1.35rem;font-weight:700}
.face.bk{background:#fff;border:2px solid #5a2ca0;transform:rotateY(180deg);overflow:auto}
.hint{text-align:center;color:#667;font-size:.85rem}.flip+.hint+.tact{justify-content:center}
.cdone{text-align:center;padding:30px 10px}.cdone .tact{justify-content:center}
.quiz blockquote{margin:10px 0 16px;padding:14px 16px;background:#f3f0fb;border-left:5px solid #5a2ca0;border-radius:8px;line-height:1.45}
.qo{display:block;width:100%;text-align:left;padding:14px;margin:8px 0;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:1rem;min-height:48px;cursor:pointer}
.qo.ok{background:#e3f6ea;border-color:#2e9d5b}.qo.bad{background:#fde8e8;border-color:#d13b4f}
/* ---------- proof-point stat tiles ---------- */
.pp{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0 4px}
.ppt{position:relative;background:color-mix(in srgb,var(--c) 10%,#fff);border:1px solid color-mix(in srgb,var(--c) 35%,#fff);border-top:4px solid var(--c);border-radius:10px;padding:10px 12px 12px}
.ppt b{display:block;font-size:1.7rem;line-height:1.1;font-weight:800;color:var(--c)}.ppt span{display:block;font-size:.82rem;line-height:1.3;margin-top:4px;color:#223}
.ppt .fn{position:absolute;top:6px;right:6px;border:0;background:transparent;color:#667;font-size:.85rem;cursor:pointer;padding:2px 4px}
.ppt .psrc{display:none;font-size:.7rem;color:#556;margin-top:6px;line-height:1.3}.ppt.open .psrc{display:block}
.ppt em{position:absolute;bottom:6px;right:8px;font-size:.6rem;font-style:normal;text-transform:uppercase;letter-spacing:.06em;color:var(--c);opacity:.8}
.ltp{margin-top:1cqw;padding-top:.8cqw;border-top:1px solid #ffffff33;font-size:1.45cqw;color:#dfe7ff}.ltp b{font-size:2.6cqw;color:#7fd3ff;margin-right:.6cqw}.ltp small{display:block;font-size:.85cqw;opacity:.7;margin-top:.3cqw}
@media(max-width:600px){.ltp{font-size:2.4cqw}.ltp b{font-size:3.6cqw}.ltp small{display:none}}
@media(max-width:600px){.lt{left:2cqw;right:2cqw;bottom:2cqw;padding:1.2cqw 2cqw;cursor:pointer;border-left-width:.8cqw}.ltk{font-size:1.9cqw}.ltt{font-size:3cqw;margin:.2cqw 0}
.ltc{font-size:2.6cqw;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.ltp{display:none!important}
.lt::after{content:"▾ more";position:absolute;right:2cqw;top:1.2cqw;font-size:1.9cqw;color:#a9c8ff}
.lt.full .ltc{-webkit-line-clamp:unset;display:block}.lt.full .ltp:not(:empty){display:block!important}.lt.full::after{content:"▴ less"}.thumb{display:none}}
