/* SmartMy 2026-11 redesign: our additions to the mock-ups' stylesheet (sm.css). The page frame (skip link,
   development banner, phone menu, solid header) and the inner pages of a product (features, one feature, who it
   is for, apps, security, plans, contact, about, legal, course store), in the same tokens. */

/* ---- frame ---- */
[hidden]{display:none!important}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--sf);color:var(--ink);padding:8px 14px;border-radius:10px}
.skip:focus{left:12px}
.env-bar{position:fixed;left:12px;bottom:12px;z-index:90;background:#081431;color:#fff;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.08em;padding:6px 10px;border-radius:8px;opacity:.85;pointer-events:none}
:focus-visible{outline:3px solid #00a1ff;outline-offset:2px;border-radius:6px}
.nav.nav-solid{position:sticky;background:linear-gradient(120deg,#1b3aa8,#3778f5);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.more-line{margin:26px 0 0}
.one-eye{color:rgba(255,255,255,.75)}
footer .f-for{color:var(--ink2);max-width:300px}
footer .f-tag{color:var(--mut);margin-top:16px}
footer a[aria-current]{font-weight:700}

/* the phone menu (the links fold behind a button below 980px / 1100px) */
.mn2{display:none;position:relative}
.mn2 summary{list-style:none;cursor:pointer;width:42px;height:42px;border-radius:12px;display:grid;place-content:center;gap:4px;border:1px solid rgba(255,255,255,.3)}
.pnav .mn2 summary{border-color:var(--ln)}
.mn2 summary::-webkit-details-marker{display:none}
.mn2 summary span{display:block;width:18px;height:2px;border-radius:2px;background:currentColor}
.mn2-sheet{position:absolute;right:0;top:52px;min-width:240px;display:flex;flex-direction:column;gap:2px;padding:10px;border-radius:16px;background:var(--sf);color:var(--ink);box-shadow:0 20px 50px rgba(8,20,49,.25);border:1px solid var(--ln);z-index:60}
.mn2-sheet a{padding:10px 12px;border-radius:10px;color:var(--ink);font-weight:500}
.mn2-sheet a:hover{background:var(--sf2)}
.mn2-sheet .btn{margin-top:6px;text-align:center;color:#fff}
@media (max-width:980px){.nav .mn2{display:block}}
@media (max-width:1100px){.pnav .mn2{display:block}}

/* nothing hidden without the script (brief rule 5): the before/after rows wait only when the script runs */
html:not(.js) .bl,html:not(.js) .br,html:not(.js) .ba2 span{opacity:1;transform:none}

/* ---- inner pages: a light header with a line-art picture, then open sections (brief rule 2: no grey bands) ---- */
.ih{position:relative;padding:64px 0 56px;background:radial-gradient(700px 380px at 8% 0,rgba(0,182,235,.12),transparent 70%),radial-gradient(800px 420px at 92% 20%,rgba(130,74,228,.12),transparent 70%),var(--bg);overflow:hidden}
.ih-g{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:center}
.ih .eye{color:var(--act)}
.ih h1{margin:12px 0 16px;font:800 clamp(34px,4.6vw,56px)/1.04 Sora,Inter,sans-serif;letter-spacing:-.045em;color:var(--ink)}
.ih h1 em{font-style:normal;background:linear-gradient(110deg,#00a1ff,#3778f5 45%,#824ae4);-webkit-background-clip:text;background-clip:text;color:transparent}
.ih p.lead2{margin:0;max-width:640px;font-size:18px;color:var(--ink2)}
.ih .ih-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.ih .btn.g{color:var(--ink);border-color:var(--ln);background:var(--sf)}
.ih a:not(.btn){color:var(--act)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--mut);margin-bottom:4px}
.crumbs a{color:var(--ink2)!important}
.crumbs a:hover{color:var(--act)!important}
.sec-in{padding:72px 0}
.sec-in.soft{background:radial-gradient(800px 420px at 12% 40%,rgba(0,182,235,.08),transparent 70%),radial-gradient(800px 420px at 88% 60%,rgba(130,74,228,.08),transparent 70%)}
.h2s{margin:0 0 22px;font:700 clamp(24px,3vw,34px)/1.15 Sora,Inter,sans-serif;letter-spacing:-.03em}
.eye2{font:600 12px "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--act);margin-bottom:10px}
.card{background:var(--sf);border:1px solid var(--ln);border-radius:20px;box-shadow:var(--card)}
.tagx{display:inline-flex;align-items:center;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:7px;background:var(--acs);color:var(--act)}
.tagx.all{background:color-mix(in srgb,#00a78f 14%,transparent);color:#00866f}
.tagx.with{background:color-mix(in srgb,#824ae4 14%,transparent);color:#6a3cc4}
.tagx.soon{background:color-mix(in srgb,#e2731f 14%,transparent);color:#b85a12}
:root[data-theme=dark] .tagx.all{color:#4fe0c4}:root[data-theme=dark] .tagx.with{color:#c4a8ff}:root[data-theme=dark] .tagx.soon{color:#ffb27a}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.ul2{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.ul2 li{position:relative;padding-left:30px;color:var(--ink2)}
.ul2 li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:7px;background:color-mix(in srgb,#3778f5 14%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233778f5' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}
.ul2.no li::before{background:#ffe9f0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2335f' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7 7 17'/%3E%3C/svg%3E") center/11px no-repeat}
:root[data-theme=dark] .ul2.no li::before{background-color:#3a2440}
.end-band{margin:0 auto 90px}
.gi{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c,#3778f5) 60%,#fff),var(--c,#3778f5));box-shadow:0 10px 22px color-mix(in srgb,var(--c,#3778f5) 30%,transparent)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:900px){.ih-g{grid-template-columns:1fr}.ih .illp{max-width:440px}}

/* the line-art pictures (templates/partials/ill.html) */
.illp{position:relative;border-radius:28px;padding:18px;background:radial-gradient(420px 220px at 75% 25%,color-mix(in srgb,var(--c) 14%,transparent),transparent 70%),linear-gradient(150deg,#f3f9ff,#f6f2ff);border:1px solid var(--ln)}
:root[data-theme=dark] .illp{background:radial-gradient(420px 220px at 75% 25%,color-mix(in srgb,var(--c) 22%,transparent),transparent 70%),#0d1a40}
.ills{display:block;width:100%;height:auto;overflow:visible}
.ills .acc{fill:var(--c)}
.ills .accf{fill:color-mix(in srgb,var(--c) 16%,transparent)}
.ills .accf2{fill:color-mix(in srgb,var(--c) 30%,transparent)}
.ills .bubb{fill:var(--sf)}
.ills .ckp2{fill:none;stroke:#00a78f;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ills .flowd{fill:none;stroke:var(--c);stroke-width:2;stroke-dasharray:6 7;animation:road 1.2s linear infinite}
.ills .tile{animation:pop .5s both;animation-delay:var(--d)}
.ills .tile.on .tbox{fill:color-mix(in srgb,var(--c) 14%,transparent);stroke:var(--c)}
.ills .mag{animation:mag 9s ease-in-out infinite}
.ills .magc{fill:color-mix(in srgb,#fff 60%,transparent)}
:root[data-theme=dark] .ills .magc{fill:rgba(8,20,49,.5)}
@keyframes mag{0%,100%{transform:translate(110px,70px)}33%{transform:translate(330px,150px)}66%{transform:translate(220px,230px)}}
.ills .ring{transform-origin:220px 160px;animation:spin 30s linear infinite}
.ills .bub{animation:bob 3.2s ease-in-out infinite}.ills .bub.b2{animation-delay:-1.6s}
.ills .pcard{animation:pop .5s both;animation-delay:var(--d)}
.ills .pbar{stroke:var(--c);stroke-width:4;stroke-dasharray:108;stroke-dashoffset:108;animation:fillb 3s ease-in-out infinite}
@keyframes fillb{to{stroke-dashoffset:0}}
.ills .orbit{transform-origin:220px 150px;animation:spin 40s linear infinite}
.ills .chip{animation:pop .5s both;animation-delay:var(--d)}
.ills .lift{animation:bob 3s ease-in-out infinite}
.ills .win2{stroke:#ffd166;animation:tw 2.4s ease-in-out infinite alternate;animation-delay:var(--d)}
.ills .bus2{animation:bus3 12s linear infinite}@keyframes bus3{from{transform:translateX(-80px)}to{transform:translateX(460px)}}
.ills .pcol{animation:pop .5s both;animation-delay:var(--d)}
.ills .plane{offset-path:path("M40 250C120 200 200 270 300 236");animation:fly3 5s ease-in-out infinite}@keyframes fly3{from{offset-distance:0%}to{offset-distance:100%}}
@media (prefers-reduced-motion:reduce){.ills *{animation:none!important}}

/* features index */
.fx-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--ln)}
.fx-bar2{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 0}
.fx-bar2 .fq2{flex:1 1 300px;position:relative}
.fx-bar2 .fq2 svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--mut)}
.fx-bar2 input[type=search]{width:100%;height:46px;border-radius:14px;border:1px solid var(--ln);background:var(--sf);color:var(--ink);padding:0 14px 0 42px;font:inherit;box-shadow:var(--card)}
.fx-bar2 select{height:46px;border-radius:14px;border:1px solid var(--ln);background:var(--sf);color:var(--ink);padding:0 12px;font:inherit}
.fx-bar2 label.chk{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink2)}
.fx-bar2 label.chk input{width:18px;height:18px;accent-color:#3778f5}
.fx-n{font:600 12px "IBM Plex Mono",monospace;color:var(--mut)}
.bento2{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.bento2 a{grid-column:span 2;display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:22px;color:inherit;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,var(--sf)),var(--sf) 60%);border:1px solid color-mix(in srgb,var(--c) 22%,var(--ln));transition:transform .25s,box-shadow .25s}
.bento2 a:nth-child(1),.bento2 a:nth-child(2){grid-column:span 3}
.bento2 a:hover{transform:translateY(-3px);box-shadow:0 18px 40px color-mix(in srgb,var(--c) 22%,transparent)}
.bento2 h3{margin:0;font:700 18px/1.3 Sora,Inter,sans-serif;letter-spacing:-.02em}
.bento2 p{margin:0;color:var(--ink2);font-size:14.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bento2 .go2{margin-top:auto;font-weight:600;font-size:14px;color:var(--c)}
.area3{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;padding:44px 0;border-top:1px solid var(--ln);scroll-margin-top:90px}
.area3:first-of-type{border-top:0}
.area3 .ah{position:sticky;top:96px;align-self:start}
.area3 .ah small{font:600 12px "IBM Plex Mono",monospace;color:var(--mut);letter-spacing:.1em}
.area3 .ah h2{margin:12px 0 4px;font:700 22px/1.2 Sora,Inter,sans-serif;letter-spacing:-.02em}
.area3 .ah span{color:var(--mut);font-size:14px}
.rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 28px}
.rowf{display:flex;gap:14px;padding:16px 4px;border-bottom:1px solid var(--ln);color:inherit;align-items:flex-start}
a.rowf:hover h3{color:var(--act)}
a.rowf:hover .arr2{transform:translateX(4px);color:var(--act)}
.rowf .ri{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--acs);color:var(--act)}
.rowf h3{margin:2px 0 4px;font:650 15.5px/1.35 Inter,sans-serif;color:var(--ink)}
.rowf p{margin:0;color:var(--ink2);font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rowf .arr2{margin-left:auto;color:var(--mut);transition:transform .2s}
.rowf.draft{opacity:.65}
.rowf.isx .ri{background:linear-gradient(135deg,#00a1ff,#824ae4);color:#fff}
.fx-none{margin:30px 0;color:var(--ink2)}
@media (max-width:1000px){.bento2{grid-template-columns:1fr 1fr}.bento2 a,.bento2 a:nth-child(1),.bento2 a:nth-child(2){grid-column:span 1}.area3{grid-template-columns:1fr;gap:12px}.area3 .ah{position:static}.rows{grid-template-columns:1fr}}
@media (max-width:640px){.bento2{grid-template-columns:1fr}}

/* one feature */
.glance{padding:24px 26px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 24px 50px rgba(15,25,50,.08)}
.glance b{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.14em;color:var(--act)}
.glance dl{margin:14px 0 0;display:grid;gap:0}
.glance dl div{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:14.5px;padding:10px 0;border-top:1px solid var(--ln)}
.glance dt{color:var(--mut)}.glance dd{margin:0;color:var(--ink)}
.fp2-status{margin-top:18px;padding:12px 14px;border-radius:12px;background:#fff8e6;border:1px solid #f3dfa6;color:#7a5a00;font-size:14.5px}
:root[data-theme=dark] .fp2-status{background:#2a2410;border-color:#5a4a1a;color:#f3d67a}
.fp2-toc{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--ln)}
.fp2-toc .w{display:flex;gap:6px;overflow-x:auto;padding-top:10px;padding-bottom:10px}
.fp2-toc a{white-space:nowrap;padding:7px 12px;border-radius:99px;color:var(--ink2);font-size:14px;font-weight:500}
.fp2-toc a:hover{background:var(--sf2);color:var(--ink)}
.fp2-sec{padding:48px 0;scroll-margin-top:60px}
.fp2-sec+.fp2-sec{padding-top:8px}
.why{padding:28px 30px;border-radius:22px;background:linear-gradient(140deg,#1b3aa8,#3778f5 60%,#6a46d8);color:#fff;font-size:17.5px}
.why h2{margin:0 0 8px;font:700 20px Sora,Inter,sans-serif;color:#fff}
.why p{margin:0}
.steps4{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:12px}
.steps4 li{counter-increment:s;position:relative;padding:16px 18px 16px 62px;color:var(--ink2)}
.steps4 li::before{content:counter(s,decimal-leading-zero);position:absolute;left:16px;top:14px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#00a1ff,#3778f5);color:#fff;font:700 12px "IBM Plex Mono",monospace}
.grp2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grp2 details{padding:20px 22px}
.grp2 summary{list-style:none;cursor:pointer}.grp2 summary::-webkit-details-marker{display:none}
.grp2 h3{margin:0 0 12px;font:700 16px Sora,Inter,sans-serif;color:var(--ink)}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.roles>div{padding:18px 20px}
.roles b{display:block;font:700 15.5px Sora,Inter,sans-serif;margin-bottom:4px}
.roles span{color:var(--ink2);font-size:14.5px}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cols3>div{padding:18px 20px}
.cols3 h3,.h3s{margin:0 0 12px;font:700 16px Sora,Inter,sans-serif}
.rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rel a{padding:18px 20px;color:inherit}
.rel small{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.1em;color:var(--mut);text-transform:uppercase}
.rel b{display:block;margin:6px 0 4px;font:700 15.5px/1.3 Sora,Inter,sans-serif;color:var(--ink)}
.rel span{color:var(--ink2);font-size:14px}
.fq.fq-in{max-width:none}
@media (max-width:900px){.grp2,.roles,.cols3,.rel{grid-template-columns:1fr}}

/* who it is for */
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:5px;border-radius:16px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);margin-bottom:26px}
.seg a{padding:9px 16px;border-radius:12px;color:var(--ink2);font-weight:600;font-size:14.5px}
.seg a:hover{color:var(--ink);background:var(--sf2)}
.seg a[aria-current]{background:linear-gradient(135deg,#00a1ff,#3778f5);color:#fff}
.who3{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1.15fr);align-items:stretch}
.who3 .today{padding:30px 32px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.who3 .mid{display:grid;place-items:center}
.who3 .mid span{width:44px;height:44px;border-radius:99px;display:grid;place-items:center;background:var(--sf);color:#3778f5;font-weight:700;box-shadow:0 8px 20px rgba(55,120,245,.25)}
.who3 .with{padding:32px 34px;border-radius:24px;color:#fff;background:linear-gradient(160deg,#1b3aa8,#3778f5 60%,#6a46d8);box-shadow:0 30px 60px rgba(55,120,245,.25)}
.who3 .lbl{display:block;font:600 12px "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.who3 .today .lbl{color:#c2335f}.who3 .with .lbl{color:rgba(255,255,255,.8)}
.who3 .with p{margin:0;font-size:19px;line-height:1.55;font-weight:500}
.mgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mgrid a,.mgrid div{display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:inherit;transition:transform .25s,box-shadow .25s}
.mgrid a:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(55,120,245,.14)}
.mgrid b{font:700 16px/1.3 Sora,Inter,sans-serif}
.mgrid small{margin-top:auto;color:var(--act);font-weight:600}
.others{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.others a{padding:22px 24px;border-radius:20px;border:1px solid var(--ln);background:var(--sf);color:inherit}
.others a:hover{border-color:color-mix(in srgb,var(--ac) 40%,var(--ln))}
.others b{display:block;font:700 18px Sora,Inter,sans-serif;margin-bottom:4px}
.others span{color:var(--ink2);font-size:14.5px}
@media (max-width:900px){.who3{grid-template-columns:1fr;gap:14px}.who3 .mid span{transform:rotate(90deg)}.mgrid{grid-template-columns:1fr 1fr}.others{grid-template-columns:1fr}}

/* apps */
.appgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.appc{position:relative;padding:28px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);overflow:hidden}
.appc::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 18%,transparent),transparent 70%)}
.appc .gi{margin-bottom:18px}
.appc h2{margin:0;font:700 21px Sora,Inter,sans-serif;letter-spacing:-.02em}
.appc small{display:block;margin:4px 0 18px;font:600 12px "IBM Plex Mono",monospace;letter-spacing:.1em;color:var(--mut);text-transform:uppercase}
.note4{display:flex;gap:12px;align-items:flex-start;margin-top:24px;padding:14px 16px;border-radius:14px;background:var(--sf);border:1px solid var(--ln);max-width:640px;color:var(--ink2);font-size:15px}
.note4 svg{flex:none;color:var(--act);margin-top:2px}

/* security */
.secg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.secg .rc{display:flex;gap:18px;align-items:flex-start;box-shadow:var(--card)}
.secg .rc .ic{flex:none;margin:0;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 60%,#fff),var(--c))}
.small-note{display:flex;gap:12px;margin-top:28px;padding:16px 18px;border-radius:16px;border:1px dashed var(--ln);color:var(--ink2)}
@media (max-width:900px){.secg{grid-template-columns:1fr}}

/* plans */
.pl2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.pl2.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pl2>div{padding:22px 22px 24px}
.pl2 .pick2{background:linear-gradient(var(--sf),var(--sf)) padding-box,linear-gradient(135deg,#00b6eb,#3778f5,#824ae4) border-box;border:2px solid transparent;box-shadow:0 20px 44px rgba(55,120,245,.18)}
.pl2 h3{margin:0;display:flex;justify-content:space-between;align-items:center;font:700 20px Sora,Inter,sans-serif}
.pl2 .badge2{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:7px;background:linear-gradient(135deg,#00a1ff,#824ae4);color:#fff}
.pl2 .price{margin:10px 0 2px;font:800 28px Sora,Inter,sans-serif}
.pl2 .psub{color:var(--mut);font-size:13.5px}
.pl2 p{margin:12px 0 0;color:var(--ink2);font-size:14.5px}
.terms{margin:18px 0 26px;color:var(--ink2)}
.tw{overflow-x:auto;border-radius:20px;border:1px solid var(--ln);background:var(--sf)}
.pt{width:100%;border-collapse:collapse;font-size:14.5px;min-width:720px}
.pt th,.pt td{padding:11px 14px;border-bottom:1px solid var(--ln);text-align:center;vertical-align:top}
.pt th.f{text-align:left;font-weight:500;color:var(--ink)}
.pt thead th{position:sticky;top:0;background:var(--sf2);font:700 14px Sora,Inter,sans-serif}
.pt tr.area th{background:color-mix(in srgb,var(--ac) 7%,var(--sf));font:700 14px Sora,Inter,sans-serif;color:var(--act);text-align:left}
.pt a{color:var(--act)}
.pt .y{color:#00a78f;font-weight:700}.pt .n{color:var(--mut)}.pt .v{color:var(--ink2);font-size:13.5px}
.jump{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
@media (max-width:900px){.pl2,.pl2.three{grid-template-columns:1fr}}

/* contact */
.ct{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:start}
.ask2{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.ask2 li{display:flex;gap:12px;align-items:flex-start;color:var(--ink2)}
.ask2 li span{flex:none;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--acs);color:var(--act);font:700 11px "IBM Plex Mono",monospace}
.form2{padding:28px 30px}
.form2 h2{margin:0 0 16px;font:700 22px Sora,Inter,sans-serif}
.topics2{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.topics2 input{position:absolute;opacity:0;pointer-events:none}
.topics2 label{padding:8px 14px;border-radius:99px;border:1px solid var(--ln);cursor:pointer;font-size:14px;font-weight:500;color:var(--ink2)}
.topics2 input:checked+label{background:linear-gradient(135deg,#00a1ff,#3778f5);border-color:transparent;color:#fff}
.topics2 input:focus-visible+label{outline:3px solid #00a1ff;outline-offset:2px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fields label,.msg{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink)}
.in2{height:46px;border-radius:12px;border:1px solid var(--ln);background:var(--bg);color:var(--ink);padding:0 14px;font:inherit;font-weight:400}
textarea.in2{height:120px;padding:12px 14px;resize:vertical}
.msg{margin-top:14px}
.err{color:#c2335f;font-size:13px;font-weight:500}
.form2 button[type=submit]{margin-top:18px;border:0;cursor:pointer}
.fine{margin-top:12px;color:var(--mut);font-size:13.5px}
.hp{position:absolute;left:-9999px}
.form-alert{padding:12px 14px;border-radius:12px;background:#fff5f7;border:1px solid #fbe1e8;color:#8a1f45}
@media (max-width:900px){.ct,.fields{grid-template-columns:1fr}}

/* about */
.about2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:start}
.prose{max-width:760px;font-size:17px;color:var(--ink2)}
.prose p:first-child{font-size:20px;color:var(--ink);line-height:1.55}
.prose h2{margin:36px 0 10px;font:700 22px Sora,Inter,sans-serif;color:var(--ink)}
.prose h3{margin:26px 0 8px;font:700 18px Sora,Inter,sans-serif;color:var(--ink)}
.prose a{color:var(--act);text-decoration:underline;text-underline-offset:3px}
.prose table{border-collapse:collapse;width:100%;font-size:15px}.prose td,.prose th{border:1px solid var(--ln);padding:8px 10px;text-align:left}
.legal .prose p:first-child,.prose.legal p:first-child{font-size:17px;color:var(--ink2)}
.legal-toc{columns:2;gap:30px;padding-left:20px;font-size:15px}
.facts{position:sticky;top:96px;padding:26px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.facts .nums{display:grid;grid-template-columns:1fr 1fr;margin:-6px -6px 14px}
.facts .sb{padding:16px 18px}
.facts .sb:nth-child(3),.facts .sb:nth-child(4){border-top:1px solid var(--ln)}
.facts .sb:nth-child(3){border-left:0}
.facts ul{list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--ln);display:grid;gap:10px;color:var(--ink2);font-size:15px}
.facts li b{color:var(--ink)}
@media (max-width:900px){.about2{grid-template-columns:1fr}.facts{position:static}}

/* course store */
.st2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.st2 a{display:flex;flex-direction:column;color:inherit;overflow:hidden;transition:transform .25s,box-shadow .25s}
.st2 a:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(55,120,245,.14)}
.st2 img{width:100%;aspect-ratio:16/9;object-fit:cover}
.st2 .b{padding:18px 20px 20px}
.st2 h2{margin:6px 0 6px;font:700 17px/1.3 Sora,Inter,sans-serif}
.st2 p{margin:0;color:var(--ink2);font-size:14.5px}
.chips2{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.chips2 a{padding:7px 13px;border-radius:99px;border:1px solid var(--ln);color:var(--ink2);font-size:14px;font-weight:500}
.chips2 a.on{background:linear-gradient(135deg,#00a1ff,#3778f5);border-color:transparent;color:#fff}
.chips2 i{width:1px;background:var(--ln);margin:0 6px}
.empty2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;padding:36px;border-radius:28px;border:1px dashed var(--ln)}
.empty2 h2{margin:0 0 10px;font:700 26px/1.2 Sora,Inter,sans-serif;letter-spacing:-.02em}
.empty2 p{margin:0 0 20px;color:var(--ink2)}
.course2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:start}
.course2>section,.course2>aside{padding:24px 26px}
.course2 h2{margin:0 0 14px;font:700 20px Sora,Inter,sans-serif}
.lessons{margin:0;padding-left:22px;display:grid;gap:8px;color:var(--ink2)}
.lessons small{color:var(--mut);margin-left:6px}
@media (max-width:900px){.course2,.empty2{grid-template-columns:1fr}}

/* ---- product home: what the mock-up's script wrote and the page now carries ---- */
.steps-all{margin:28px 0 0;padding-left:22px;display:grid;gap:8px;color:var(--ink2)}
.js .steps-all{display:none}
.more-w{color:#fff;font-weight:600}
.more-2{display:flex;gap:18px;flex-wrap:wrap}
.f3 h3 a{color:inherit}
.f3b{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px;color:var(--mut)}
.f3b li::before{content:"· ";color:var(--c)}
a.bt,a.hn{color:inherit;text-decoration:none}
a.bt:hover h3,a.hn:hover b{text-decoration:underline;text-underline-offset:3px}
.ph2.solo{position:relative;margin:0 auto}
.hn p{font-size:14.5px}

/* the theme button on a light product header (inner pages) */
.pnav .mode{border-color:var(--ln);background:transparent;color:var(--ink)}
/* the product's logo in its header (brand kit lockup) */
.plogo .lockup{display:block;height:30px;width:auto}
.pnav .plogo{color:var(--ink)}
.pg-learn:not(.scrolled) .pnav .plogo{color:#fff}
/* logos, buttons and cards are not underlined on hover (the mock-ups underline every link) */
.wm:hover,.plogo:hover,.btn:hover,.nav .links a:hover,.links2 a:hover,.mn2-sheet a:hover,.card:hover,.rowf:hover,.bento2 a:hover,.mgrid a:hover,.others a:hover,.seg a:hover,.chips2 a:hover,footer .wm:hover,.g6:hover,.pc2:hover,.crumb a:hover{text-decoration:none}

/* before and after: a clean "without" card with a cross per row, the "with" card with a tick per row */
.pL{background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
:root[data-theme=dark] .pL{background:var(--sf);border-color:var(--ln)}
.pL .bh.l{color:#c2335f}
.pL .bl{opacity:1!important;color:var(--ink2);border-top-color:var(--ln)!important;position:relative;padding-left:62px!important}
.pR .br{position:relative;padding-left:62px!important}
.pL .bl::before,.pR .br::before{content:"";position:absolute;left:26px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:7px}
.pL .bl::before{background:#ffe9f0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2335f' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7 7 17'/%3E%3C/svg%3E") center/11px no-repeat}
:root[data-theme=dark] .pL .bl::before{background-color:#3a2440}
.pR .br::before{background:rgba(255,255,255,.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}
@media (max-width:640px){.pL .bl,.pR .br{padding-left:18px!important}.pL .bl::before,.pR .br::before{display:none}}

/* "at work": a line-art laptop and phone (no screenshots), with the product's own lines as update cards */
.aw2{position:relative}
.aws{display:block;width:100%;height:auto;overflow:visible}
.aws .ln3{fill:none;stroke:#9fbcff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.aws .accb{fill:color-mix(in srgb,var(--c) 22%,transparent);stroke:var(--c)}
.aws .playt{fill:#fff}
.aws .phw{fill:rgba(8,20,49,.4)}
.aws .awbar{fill:none;stroke:var(--c);stroke-width:4;stroke-linecap:round;stroke-dasharray:210;stroke-dashoffset:210;animation:awbar 6s ease-in-out infinite}
@keyframes awbar{0%{stroke-dashoffset:210}80%,100%{stroke-dashoffset:0}}
.aws .ckw{fill:none;stroke:#4fe0c4;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;stroke-dashoffset:14;animation:awck 6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes awck{0%,8%{stroke-dashoffset:14}16%,90%{stroke-dashoffset:0}100%{stroke-dashoffset:14}}
.aws .awpc{animation:bob 3.4s ease-in-out infinite;animation-delay:var(--d)}
.awnotes{position:absolute;inset:0;pointer-events:none}
.awn{left:auto!important;opacity:0;animation:awn 9s ease-in-out infinite;animation-delay:calc(var(--i) * 3s)}
.awn:nth-child(1){left:14%!important;top:86%}
.awn:nth-child(2){left:86%!important;top:4%}
.awn:nth-child(3){left:46%!important;top:-8%}
.awn i{width:10px!important;height:10px!important;border-radius:99px!important;flex:none}
@keyframes awn{0%{opacity:0;transform:translate(-50%,10px)}6%,30%{opacity:1;transform:translate(-50%,0)}36%,100%{opacity:0;transform:translate(-50%,-6px)}}
@media (prefers-reduced-motion:reduce){.aws *,.awn{animation:none!important}.awn{opacity:1}.aws .awbar,.aws .ckw{stroke-dashoffset:0}}
@media (max-width:640px){.awnotes{display:none}}

/* footer: wider and shorter, the products under their six groups */
footer .w.fw{max-width:1440px}
footer .fg.fgx{display:grid;grid-template-columns:1.6fr repeat(6,minmax(0,1fr)) 1.1fr!important;gap:28px}
footer .fpl{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14.5px}
footer .fgx .fgrp h5,footer .fgx h5{white-space:normal;line-height:1.35;min-height:2.7em}
footer .fgx ul{display:grid;gap:8px}
footer .fco>div+div{margin-top:22px}
footer .fco h5{min-height:0}
@media (max-width:1200px){footer .fg.fgx,footer .fg.fgx.fg-p{grid-template-columns:repeat(4,minmax(0,1fr))!important}footer .fg2>div:first-child{grid-column:1/-1}}
@media (max-width:640px){footer .fg.fgx,footer .fg.fgx.fg-p{grid-template-columns:1fr 1fr!important}}
footer .cp2{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--ln)}
footer .cp2 nav{display:flex;gap:20px}footer .cp2 nav a{color:var(--ink2)}

/* ---- round 3 (owner 2026-11-03) ---- */
/* hero: the scene fills the rest of the first screen */
.phero .pscene{flex:1 1 auto;height:auto!important;min-height:300px;margin-top:12px}

/* features page: highlights in one even row */
.hl5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.hl5 a{display:flex;flex-direction:column;gap:14px;padding:22px 20px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:inherit;transition:transform .25s,box-shadow .25s,border-color .25s}
.hl5 a:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 45%,var(--ln));box-shadow:0 18px 40px color-mix(in srgb,var(--c) 18%,transparent)}
.hl5 h3{margin:0;font:700 15.5px/1.35 Sora,Inter,sans-serif;letter-spacing:-.01em;color:var(--ink)}
.hl5 .go2{margin-top:auto;font-weight:600;font-size:13.5px;color:var(--c)}
.hl5 .go2 i{font-style:normal;display:inline-block;transition:transform .2s}.hl5 a:hover .go2 i{transform:translateX(4px)}
@media (max-width:1100px){.hl5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.hl5{grid-template-columns:1fr 1fr}}
/* features page: calmer rows */
.area3 .ah small{color:var(--c)}
.area3 .ah h2::before{content:"";display:block;width:28px;height:3px;border-radius:3px;background:var(--c);margin-bottom:14px}
.rowf{padding:18px 6px;border-radius:0}
.rowf .ri{background:color-mix(in srgb,var(--c) 12%,transparent);color:var(--c)}
.rowf h3{font:600 15.5px/1.4 Inter,sans-serif}
.rowf .meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font:500 12.5px Inter,sans-serif;color:var(--mut)}
.rowf .meta span+span::before{content:"·";margin-right:10px}
.rowf .arr2{opacity:0}
a.rowf:hover{background:color-mix(in srgb,var(--c) 5%,transparent)}
a.rowf:hover .arr2{opacity:1;color:var(--c)}
a.rowf:hover h3{color:var(--ink)}

/* the app page: one panel, a row per audience */
.apppanel{border-radius:28px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);overflow:hidden}
.approw{display:grid;grid-template-columns:320px minmax(0,1fr);gap:32px;padding:32px 36px;border-top:1px solid var(--ln);position:relative}
.approw:first-child{border-top:0}
.approw::before{content:"";position:absolute;left:0;top:28px;bottom:28px;width:3px;border-radius:3px;background:var(--c)}
.approw .ah2{display:flex;gap:16px;align-items:flex-start}
.approw h2{margin:2px 0 4px;font:700 20px Sora,Inter,sans-serif;letter-spacing:-.02em}
.approw small{font:600 12px "IBM Plex Mono",monospace;letter-spacing:.1em;color:var(--mut);text-transform:uppercase}
.ap2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;align-content:start}
.ap2 li::before{background-color:color-mix(in srgb,var(--c) 14%,transparent)}
@media (max-width:900px){.approw{grid-template-columns:1fr;gap:18px;padding:26px 24px}.ap2{grid-template-columns:1fr}}

/* plans: cards with buttons, then one block per area under a sticky header */
.pl3{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:16px}
.plc{display:flex;flex-direction:column;gap:6px;padding:26px 26px 24px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.plc.pick2{background:linear-gradient(var(--sf),var(--sf)) padding-box,linear-gradient(135deg,#00b6eb,#3778f5,#824ae4) border-box;border:2px solid transparent;box-shadow:0 24px 50px rgba(55,120,245,.18)}
.plh{display:flex;justify-content:space-between;align-items:center;gap:10px}
.plh h3{margin:0;font:700 22px Sora,Inter,sans-serif;letter-spacing:-.02em}
.plc .badge2{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:8px;background:linear-gradient(135deg,#00a1ff,#824ae4);color:#fff}
.plc .price{margin-top:8px;font:800 30px Sora,Inter,sans-serif;letter-spacing:-.03em}
.plc .psub{color:var(--mut);font-size:13.5px}
.plc p{margin:10px 0 18px;color:var(--ink2);font-size:14.5px;flex:1}
.plc .btn{align-self:flex-start}
.plc .btn.g{color:var(--ink);border-color:var(--ln);background:var(--sf)}
.cmp{margin-top:8px}
.cmp-head{position:sticky;top:0;z-index:15;display:grid;grid-template-columns:minmax(0,1.6fr) repeat(var(--n),minmax(0,1fr));padding:14px 22px;border-radius:16px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--ln);font:700 14px Sora,Inter,sans-serif;margin-bottom:14px}
.cmp-head span:not(:first-child){text-align:center}
.cmp-head span:first-child{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);align-self:center}
.cmp-blk{margin-bottom:14px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);overflow:hidden}
.cmp-blk>h3,.cmp-blk>summary{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px 22px;font:700 16px Sora,Inter,sans-serif;background:color-mix(in srgb,var(--ac) 5%,var(--sf));cursor:pointer;list-style:none}
.cmp-blk>summary::-webkit-details-marker{display:none}
.cmp-blk>summary h3{margin:0;font:inherit}
.cmp-blk>summary span{font:600 12px "IBM Plex Mono",monospace;color:var(--mut)}
.pt2{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14.5px}
.pt2 col:first-child{width:auto}
.pt2 tr{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(var(--n),minmax(0,1fr));border-top:1px solid var(--ln)}
.pt2 tr:hover{background:color-mix(in srgb,var(--ac) 4%,transparent)}
.pt2 th,.pt2 td{padding:13px 22px;text-align:center;align-self:center}
.pt2 th{text-align:left;font-weight:500;color:var(--ink)}
.pt2 th a{color:var(--ink)}.pt2 th a:hover{color:var(--act)}
.pt2 .v{color:var(--ink2);font-size:13.5px}
.mk{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:99px;vertical-align:middle}
.mk.y{background:color-mix(in srgb,#00a78f 15%,transparent);color:#00866f}
:root[data-theme=dark] .mk.y{color:#4fe0c4}
.mk.n{color:var(--mut);background:none}
.mk.y+.v{display:block;margin-top:4px}
@media (max-width:900px){.pl3{grid-template-columns:1fr}.cmp{overflow-x:auto}.cmp-head,.cmp-blk{min-width:640px}}

/* About: the heading, then the whole town, then numbers and principles */
.ab-hero{position:relative;padding:72px 0 0;text-align:center;background:radial-gradient(800px 400px at 50% 0,rgba(0,182,235,.12),transparent 70%),radial-gradient(700px 400px at 85% 30%,rgba(130,74,228,.1),transparent 70%)}
.ab-hero h1{margin:12px auto 18px;max-width:980px;font:800 clamp(36px,5vw,64px)/1.04 Sora,Inter,sans-serif;letter-spacing:-.045em}
.ab-hero h1 em{font-style:normal;background:linear-gradient(110deg,#00a1ff,#3778f5 45%,#824ae4);-webkit-background-clip:text;background-clip:text;color:transparent}
.ab-hero .eye{color:var(--act)}
.ab-hero .lead2{margin:0 auto;max-width:760px;font-size:19px;color:var(--ink2)}
.ab-town{height:240px;margin-top:40px;--line:rgba(55,120,245,.45);--fill:rgba(55,120,245,.04);border-bottom:1px solid rgba(55,120,245,.3);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
:root[data-theme=dark] .ab-town{--line:rgba(190,210,255,.35)}
.ab-town svg{width:100%;height:100%;display:block}
.ab-town .sign text{fill:rgba(55,120,245,.7)}
.ab-town .win.on{fill:#ffd166;stroke:#ffd166}
.ab-town .fdash{stroke-dasharray:18 14;animation:road 1.4s linear infinite}
.nums4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.nums4 .sb{padding:28px 30px}
.nums4 .sb:nth-child(3){border-left:1px solid var(--ln)}
.nums4 .sb b{font-size:48px}
.prin3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}
.prin3 .rc p{font-size:16px;line-height:1.6}
.maker{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;margin-top:28px;color:var(--ink2)}
.maker a{font-weight:600;color:var(--act)}
@media (max-width:900px){.nums4,.prin3{grid-template-columns:1fr 1fr}.nums4 .sb:nth-child(3){border-left:0}}

/* product home: highlights as a list and one stage */
.hlx{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:28px;margin-top:40px;align-items:stretch}
.hlx-list{display:flex;flex-direction:column;gap:8px}
.hlx-tab{position:relative;display:flex;gap:14px;align-items:center;text-align:left;padding:16px 18px;border-radius:18px;border:1px solid transparent;background:none;font:inherit;color:var(--ink2);cursor:pointer;overflow:hidden;transition:background .25s,border-color .25s,color .25s}
.hlx-tab .gi{width:40px;height:40px;border-radius:12px;box-shadow:none;opacity:.55;transition:opacity .25s}
.hlx-tab .tt{font:600 15.5px/1.35 Sora,Inter,sans-serif}
.hlx-tab:hover{background:var(--sf2);color:var(--ink)}
.hlx-tab.on{background:var(--sf);border-color:var(--ln);box-shadow:var(--card);color:var(--ink)}
.hlx-tab.on .gi{opacity:1}
.hlx-tab .pb{position:absolute;left:18px;right:18px;bottom:0;height:3px;border-radius:3px;background:var(--c);transform:scaleX(0);transform-origin:left}
.hlx.live .hlx-tab.on .pb{animation:hlpb 6s linear forwards}
@keyframes hlpb{to{transform:scaleX(1)}}
.hlx-stage{position:relative;border-radius:28px;background:radial-gradient(500px 300px at 70% 20%,color-mix(in srgb,var(--c,#3778f5) 16%,transparent),transparent 70%),linear-gradient(150deg,#f3f9ff,#f6f2ff);border:1px solid var(--ln);overflow:hidden;min-height:440px}
:root[data-theme=dark] .hlx-stage{background:#0d1a40}
.hlx-pane{display:grid;grid-template-rows:1fr auto;height:100%;padding:34px 36px}
.hlx.live .hlx-pane:not(.on){display:none}
.hlx-pane.on{animation:pop .45s both}
.hlx-demo{display:grid;place-items:center;min-height:240px}
.hlx-txt h3{margin:0 0 8px;font:700 22px/1.25 Sora,Inter,sans-serif;letter-spacing:-.02em}
.hlx-txt p{margin:0 0 14px;color:var(--ink2)}
.hlx-txt a{font-weight:600;color:var(--c)}
@media (max-width:900px){.hlx{grid-template-columns:1fr}.hlx-stage{min-height:0}}
/* the five demos */
.dm{width:100%;max-width:440px;display:flex;flex-direction:column;gap:18px;align-items:center}
.dm .rl{display:flex;gap:10px;align-items:center;font-weight:600}
.dm .rl span{padding:10px 16px;border-radius:12px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.dm .rl b{color:var(--mut);font-weight:500}
.dm .avs{display:flex;align-items:center}
.dm .avs i{width:40px;height:40px;margin-left:-8px;border-radius:99px;display:grid;place-items:center;font:700 11px Inter;font-style:normal;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 60%,#fff),var(--c));border:3px solid var(--sf);animation:pop .4s both;animation-delay:var(--d)}
.dm .avs em{margin-left:10px;font-style:normal;font-weight:700;color:var(--ink2)}
.dm .nt{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink2)}
.dm .nt span{width:24px;height:24px;border-radius:99px;display:grid;place-items:center;background:#081431;color:#ffd166;font-size:12px}
.dm-ver .lane{width:100%;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;padding:16px 18px;border-radius:16px;background:var(--sf);border:1px solid var(--ln)}
.dm-ver .lane b{grid-row:1/3;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--sf2);color:var(--ink2);font:700 15px Sora}
.dm-ver .lane.on b{background:var(--c);color:#fff}
.dm-ver .lane span{font-weight:600}
.dm-ver .dots{display:flex;gap:6px}
.dm-ver .dots u{width:10px;height:10px;border-radius:99px;background:color-mix(in srgb,var(--c) 35%,transparent);animation:dotgo 2.4s ease-in-out infinite;animation-delay:var(--d)}
.dm-ver .lane.on .dots u{background:var(--c)}
@keyframes dotgo{0%,100%{transform:translateX(0);opacity:.4}50%{transform:translateX(8px);opacity:1}}
.dm-ring{flex-direction:row;gap:26px}
.dm-ring svg{width:150px;height:150px;transform:rotate(-90deg)}
.dm-ring .rb{fill:none;stroke:color-mix(in srgb,var(--c) 15%,transparent);stroke-width:12}
.dm-ring .rf{fill:none;stroke:var(--c);stroke-width:12;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:ring94 1.6s ease-out .2s forwards}
@keyframes ring94{to{stroke-dashoffset:6}}
.dm-ring b{display:block;font:800 52px/1 Sora;letter-spacing:-.04em}
.dm-ring span{color:var(--ink2)}
.dm-flow{flex-direction:row;gap:0}
.dm-flow .fcx{padding:18px 22px;border-radius:18px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);text-align:center}
.dm-flow .fcx.on{border-color:var(--c)}
.dm-flow small{display:block;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.dm-flow b{font:800 28px Sora;letter-spacing:-.03em}
.dm-flow .fl{position:relative;width:110px;height:2px;background:repeating-linear-gradient(90deg,var(--c) 0 6px,transparent 6px 12px)}
.dm-flow .fl i{position:absolute;top:-5px;left:0;width:12px;height:12px;border-radius:99px;background:var(--c);animation:flowdot 1.8s ease-in-out infinite}
@keyframes flowdot{from{left:0}to{left:calc(100% - 12px)}}
.dm-steps .bl5{display:flex;gap:10px;width:100%}
.dm-steps .bl5 i{flex:1;height:16px;border-radius:8px;background:color-mix(in srgb,var(--c) 15%,transparent);overflow:hidden}
.dm-steps .bl5 i u{display:block;height:100%;width:0;background:var(--c)}
.dm-steps .bl5 i.d u{animation:fillw .6s ease-out forwards;animation-delay:var(--d)}
@keyframes fillw{to{width:100%}}
.dm-steps span{color:var(--ink2);font-weight:500}
@media (prefers-reduced-motion:reduce){.dm *{animation:none!important}.dm-ring .rf{stroke-dashoffset:6}.dm-steps .bl5 i.d u{width:100%}}

/* ---- round 4: security like About, inner pictures without a box ---- */
.sec-town{height:300px}
.sec-town .dome{fill:none;stroke:#3778f5;stroke-width:3;stroke-dasharray:10 12;opacity:.55;animation:road 1.6s linear infinite}
.sec-town .shg{fill:rgba(55,120,245,.12)}
.sec-town .shd2{fill:#3778f5;stroke:#fff;stroke-width:3}
.secg3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.secg3 .rc{box-shadow:var(--card)}
.secg3 .rc .ic{color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 60%,#fff),var(--c))}
.docs2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.docs2 a{display:flex;gap:16px;align-items:center;padding:22px 24px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:inherit;transition:transform .25s,border-color .25s}
.docs2 a:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c) 45%,var(--ln))}
.docs2 b{display:block;font:700 17px Sora,Inter,sans-serif}
.docs2 small{display:block;margin-top:4px;color:var(--ink2);font-size:14px}
.docs2 i{margin-left:auto;font-style:normal;color:var(--c);font-weight:700}
@media (max-width:900px){.secg3,.docs2{grid-template-columns:1fr}}
/* the inner pages' pictures sit on the page's soft glow, without a frame */
.ih .illp{background:none;border:0;padding:0;border-radius:0}
:root[data-theme=dark] .ih .illp{background:none}
/* joins: the chosen product at the top, lines down to a grid of cards (owner 2026-11-03) */
.jflow{display:flex!important;flex-direction:column;align-items:center;padding:34px 30px 18px!important}
.jgap{display:none}
.jsrc{align-self:center!important}
.srcc{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:18px;align-items:center;padding:18px 22px!important;text-align:left}
.srcc .app.big{grid-row:1/3;width:64px;height:64px;border-radius:18px}
.srcc b{margin-top:0!important;font-size:20px!important}
.srcc span{grid-column:2;margin-top:2px!important}
.srcc .cnt{position:absolute;top:-12px;right:-12px;margin:0!important;padding:4px 10px!important;box-shadow:var(--card)}
.jsrc .srcc{position:relative}
.jlist{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px!important;width:100%;margin-top:84px}
.jr2{flex-direction:column;align-items:flex-start!important;gap:10px!important;padding:18px!important;border-radius:18px!important}
.jr2 .app{width:40px!important;height:40px!important;border-radius:12px!important}
.jr2 b{font-size:15px!important}
.jr2 span{font-size:13.5px!important}
.jnone{justify-content:center}
@media (max-width:980px){.jlist{grid-template-columns:1fr 1fr;margin-top:24px}.jlines{display:none}}
@media (max-width:640px){.jlist{grid-template-columns:1fr}.srcc{grid-template-columns:auto 1fr}}
/* contact: the words and the form side by side at the top */
.ih-ct{padding-bottom:72px}
.ih-ct .ct{align-items:start}
.ct-l{position:sticky;top:96px}
.ask-h{margin:30px 0 4px;font:700 18px Sora,Inter,sans-serif}
.mailto{margin-top:24px;color:var(--ink2)}.mailto a{font-weight:600}
@media (max-width:900px){.ct-l{position:static}}
.ih{padding-bottom:28px}
.ih + .sec-in{padding-top:40px!important}
.secg3 .rc:last-child:nth-child(3n+1){grid-column:1/-1}
.secg3 .rc:last-child:nth-child(3n+2){grid-column:span 2}

/* ---- joins as a network on a dark panel (owner 2026-11-03) ---- */
.net{--sel:#3778f5;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;margin-top:36px;padding:28px;border-radius:32px;color:#fff;background:radial-gradient(700px 500px at 25% 50%,rgba(55,120,245,.28),transparent 70%),radial-gradient(600px 400px at 90% 10%,rgba(130,74,228,.25),transparent 70%),#081431;box-shadow:0 40px 90px rgba(8,20,49,.35);overflow:hidden;position:relative}
.net::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}
.net-map{position:relative}
.net-svg{display:block;width:100%;height:auto;overflow:visible}
.net-orbit{fill:none;stroke:rgba(255,255,255,.08);stroke-width:1.5;stroke-dasharray:3 7}
.ch2{fill:none;stroke:rgba(190,210,255,.10);stroke-width:1.2;transition:stroke .4s,stroke-width .4s,opacity .4s}
.ch2.hot{stroke-width:2.4;stroke-dasharray:6 6;animation:road 1s linear infinite;filter:drop-shadow(0 0 6px var(--sel))}
.nd2{cursor:pointer;outline:none;transition:opacity .35s}
.nd2-dot{fill:var(--c);stroke:rgba(255,255,255,.85);stroke-width:2;transition:transform .35s;transform-box:fill-box;transform-origin:center}
.nd2-halo{fill:var(--c);opacity:0;transition:opacity .35s}
.nd2-ic{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.nd2 text{font:600 13px Inter,sans-serif;fill:rgba(255,255,255,.75);transition:fill .35s}
.nd2.dim{opacity:.32}
.nd2.peer .nd2-halo{opacity:.18}
.nd2.on .nd2-halo{opacity:.35;animation:halo 2s ease-in-out infinite}
.nd2.on .nd2-dot{transform:scale(1.15)}
.nd2.on text{fill:#fff;font-weight:700}
.nd2:hover .nd2-dot,.nd2:focus-visible .nd2-dot{transform:scale(1.12)}
.nd2:focus-visible .nd2-halo{opacity:.4}
@keyframes halo{0%,100%{r:34px}50%{r:40px}}
.net-core .net-n{font:800 64px Sora,Inter,sans-serif;fill:#fff;letter-spacing:-.04em}
.net-core .net-l{font:600 11px "IBM Plex Mono",monospace;fill:rgba(255,255,255,.6);letter-spacing:.16em}
.net-side{position:relative;display:flex;flex-direction:column;padding:12px 8px 12px 0}
.net-head{display:flex;gap:14px;align-items:center;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}
.net-head .app{width:48px;height:48px;border-radius:14px}
.net-head b{display:block;font:700 22px Sora,Inter,sans-serif;letter-spacing:-.02em}
.net-head span{display:block;color:rgba(255,255,255,.7);font-size:14.5px}
.net-list{list-style:none;margin:8px 0 0;padding:0;display:grid}
.net-list li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07);animation:slide .4s both;animation-delay:calc(var(--i)*.05s)}
.net-list li:last-child{border-bottom:0}
.net-list i{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:#fff;background:var(--c);margin-top:1px}
.net-list b{display:block;font-size:14px;color:#fff}
.net-list span{display:block;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.72)}
@media (max-width:980px){.net{grid-template-columns:1fr;padding:18px}.net-side{padding:0 6px}}
@media (prefers-reduced-motion:reduce){.ch2.hot,.nd2.on .nd2-halo,.net-list li{animation:none}}

/* ---- features page after the old School layout the owner liked (2026-11-03) ---- */
.hlpanel{padding:28px;border-radius:28px;background:radial-gradient(600px 300px at 10% 0,rgba(0,182,235,.08),transparent 70%),radial-gradient(600px 300px at 90% 100%,rgba(130,74,228,.08),transparent 70%),var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.hlpanel>h2{margin:0 0 18px;font:700 24px Sora,Inter,sans-serif;letter-spacing:-.02em}
.hlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.hlgrid a{display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:18px;background:var(--bg);border:1px solid var(--ln);color:inherit;transition:transform .25s,border-color .25s,box-shadow .25s}
.hlgrid a:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c) 45%,var(--ln));box-shadow:0 14px 30px color-mix(in srgb,var(--c) 14%,transparent)}
.hlgrid .gi{width:38px;height:38px;border-radius:11px}
.hlgrid h3{margin:0;font:700 16px/1.35 Sora,Inter,sans-serif;color:var(--ink)}
.hlgrid p{margin:0;color:var(--ink2);font-size:14px;line-height:1.55}
.fx3{display:grid;grid-template-columns:250px minmax(0,1fr);gap:36px;align-items:start}
.toc3{position:sticky;top:90px;display:flex;flex-direction:column;border-left:2px solid var(--ln)}
.toc3 b{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--act);padding:0 0 12px 16px}
.toc3 a{display:flex;gap:12px;padding:8px 12px 8px 16px;margin-left:-2px;border-left:2px solid transparent;color:var(--ink2);font-size:14.5px;line-height:1.35}
.toc3 a span{font:600 11.5px "IBM Plex Mono",monospace;color:var(--mut);padding-top:2px}
.toc3 a:hover{color:var(--ink);text-decoration:none}
.toc3 a.on{border-left-color:var(--act);color:var(--ink);font-weight:600}
.areas3{display:grid;gap:22px}
.apanel{padding:28px;border-radius:26px;background:linear-gradient(170deg,color-mix(in srgb,var(--c) 7%,var(--sf)),var(--sf) 40%);border:1px solid var(--ln);box-shadow:var(--card);scroll-margin-top:90px}
.apanel header{display:flex;gap:14px;align-items:center;margin-bottom:20px}
.apanel header .gi{width:42px;height:42px;border-radius:12px}
.apanel h2{margin:0;font:700 24px/1.2 Sora,Inter,sans-serif;letter-spacing:-.02em}
.apanel small{color:var(--mut);font-size:13.5px}
.fcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fcard{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:16px;background:var(--bg);border:1px solid var(--ln);color:inherit;position:relative;transition:border-color .2s,box-shadow .2s,transform .2s}
.fcard.wide{grid-column:1/-1}
a.fcard:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c) 45%,var(--ln));box-shadow:0 12px 26px color-mix(in srgb,var(--c) 12%,transparent)}
.fcard h3{margin:0;font:700 15.5px/1.35 Sora,Inter,sans-serif;color:var(--ink)}
.fcard p{margin:0;color:var(--ink2);font-size:14px;line-height:1.55}
.fcard .meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;font:500 12.5px Inter,sans-serif;color:var(--mut)}
.fcard .meta span+span::before{content:"·";margin-right:10px}
.fcard.isx{border-left:3px solid #e7a93b}
.fcard.isx::after{content:"Highlight";position:absolute;top:14px;right:14px;font:600 10px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:#b8811f}
.fcard.isx h3{padding-right:80px}
.fcard.draft{opacity:.65}
@media (max-width:1000px){.fx3{grid-template-columns:1fr}.toc3{display:none}}
@media (max-width:700px){.fcards{grid-template-columns:1fr}.apanel{padding:20px}}

/* network: the ring centred and larger, shorter rows */
.net{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center}
.net-map{align-self:center}
.net-list span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.net-list li{padding:9px 0}
.hlgrid{grid-template-columns:repeat(6,minmax(0,1fr))}
.hlgrid a{grid-column:span 2}
.hlgrid a:last-child:nth-child(3n+1){grid-column:span 6}
.hlgrid a:last-child:nth-child(3n+2),.hlgrid a:nth-last-child(2):nth-child(3n+1){grid-column:span 3}
@media (max-width:900px){.hlgrid{grid-template-columns:1fr 1fr}.hlgrid a,.hlgrid a:last-child:nth-child(3n+1),.hlgrid a:last-child:nth-child(3n+2),.hlgrid a:nth-last-child(2):nth-child(3n+1){grid-column:span 1}}
@media (max-width:600px){.hlgrid{grid-template-columns:1fr}}

/* ---- joins slideshow on Home (owner 2026-11-03) ---- */
.jss{margin-top:36px;padding:56px 40px 28px;border-radius:32px;background:radial-gradient(600px 300px at 20% 0,color-mix(in srgb,#00b6eb 10%,transparent),transparent 70%),radial-gradient(600px 300px at 80% 100%,color-mix(in srgb,#824ae4 10%,transparent),transparent 70%),var(--sf);border:1px solid var(--ln);box-shadow:var(--card);text-align:center}
.jss-track{position:relative;display:grid}
.jsl{grid-area:1/1;display:flex;flex-direction:column;align-items:center;gap:18px;max-width:820px;margin:0 auto}
.jss.live .jsl{opacity:0;visibility:hidden;transform:translateX(24px);transition:opacity .5s,transform .5s,visibility 0s .5s}
.jss.live .jsl.on{opacity:1;visibility:visible;transform:none;transition:opacity .5s,transform .5s}
.jss:not(.live) .jsl:not(.on){display:none}
.pair{display:flex;align-items:center;gap:0}
.pair .app.big{width:84px;height:84px;border-radius:24px}
.pair .link{position:relative;width:140px;height:4px;display:grid;place-items:center}
.pair .link b{position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--a) 0 8px,transparent 8px 14px);-webkit-mask:linear-gradient(90deg,#000,#000);animation:road 1.2s linear infinite;border-radius:4px;background-size:28px 4px}
.pair .link em{position:relative;width:34px;height:34px;border-radius:99px;display:grid;place-items:center;font-style:normal;font-weight:800;color:var(--ink);background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.jss.live .jsl.on .pair .app{animation:pop .5s both}
.jss.live .jsl.on .pair .app:last-child{animation-delay:.15s}
.who2x{font:700 15px Sora,Inter,sans-serif;letter-spacing:-.01em}
.who2x .amp{color:var(--mut);font-weight:500;margin:0 4px}
.say{margin:0;font:700 clamp(22px,2.6vw,32px)/1.3 Sora,Inter,sans-serif;letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
.say2{margin:0;max-width:640px;color:var(--ink2);font-size:16px}
.jss-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:40px}
.jss-b{width:44px;height:44px;border-radius:99px;border:1px solid var(--ln);background:var(--sf);color:var(--ink);font-size:18px;cursor:pointer;box-shadow:var(--card)}
.jss-b:hover{border-color:var(--act);color:var(--act)}
.jss-dots{display:flex;gap:6px}
.jss-dots button{width:8px;height:8px;padding:0;border:0;border-radius:99px;background:color-mix(in srgb,var(--ink) 18%,transparent);cursor:pointer;transition:width .3s,background .3s}
.jss-dots button[aria-selected=true]{width:26px;background:linear-gradient(90deg,#00a1ff,#824ae4)}
.jss-n{font:600 12px "IBM Plex Mono",monospace;color:var(--mut);min-width:56px}
.jss-n b{color:var(--ink)}
@media (max-width:640px){.jss{padding:36px 18px 20px}.pair .app.big{width:64px;height:64px}.pair .link{width:80px}.jss-dots{display:none}}
@media (prefers-reduced-motion:reduce){.pair .link b{animation:none}.jss.live .jsl{transition:none}}
.pair .link{height:34px}
.pair .link b{inset:auto;left:0;right:0;top:15px;height:4px}

/* ---- round 6 ---- */
/* no underline on links that are cards, buttons or chips; plain text links keep it */
a[class]:hover,a.card:hover,.hlgrid a:hover,.fcard:hover,.bento2 a:hover,.hl5 a:hover,.docs2 a:hover{text-decoration:none}
.hlgrid a:hover h3,a.fcard:hover h3{color:var(--act)}
/* highlights panel: three a row, room to breathe */
.hlpanel{padding:34px}
.hlgrid{gap:18px}
.hlgrid a{padding:26px 26px 24px;gap:12px}
.hlgrid h3{font-size:17px}
.hlgrid p{font-size:14.5px;line-height:1.65}

/* searchable select (long lists): a button, then a box to type in and the list */
.ss{position:relative;display:inline-block}
.ss-btn{height:46px;min-width:200px;max-width:280px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-radius:14px;border:1px solid var(--ln);background:var(--sf);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.ss-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ss-btn::after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:rotate(45deg) translate(-2px,-2px)}
.ss.open .ss-btn{border-color:var(--act);box-shadow:0 0 0 3px color-mix(in srgb,var(--act) 18%,transparent)}
.ss-pop{position:absolute;top:52px;left:0;z-index:50;width:max(100%,300px);padding:8px;border-radius:16px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 24px 60px rgba(8,20,49,.22)}
.ss-pop input{width:100%;height:40px;border-radius:10px;border:1px solid var(--ln);background:var(--bg);color:var(--ink);padding:0 12px;font:inherit;margin-bottom:6px}
.ss-pop ul{list-style:none;margin:0;padding:0;max-height:280px;overflow:auto}
.ss-pop li{padding:9px 12px;border-radius:10px;cursor:pointer;color:var(--ink2);font-size:14.5px}
.ss-pop li.act{background:var(--sf2);color:var(--ink)}
.ss-pop li[aria-selected=true]{color:var(--act);font-weight:600}
.ss-pop li mark{background:none;color:var(--act);font-weight:700}
.ss-pop .none{padding:10px 12px;color:var(--mut);font-size:14px}

/* ---- joins slideshow, take 2: a colour panel and the words beside it ---- */
.jss{padding:0;text-align:left;overflow:hidden;background:var(--sf)}
.jsl{display:grid!important;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:0;align-items:stretch;max-width:none;margin:0;min-height:380px}
.jvis{position:relative;display:flex;align-items:center;justify-content:center;gap:120px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.25),transparent 55%),linear-gradient(120deg,var(--a),var(--b));overflow:hidden}
.jvis::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(circle at 50% 50%,#000,transparent 75%);mask-image:radial-gradient(circle at 50% 50%,#000,transparent 75%)}
.jarc{position:absolute;inset:0;width:100%;height:100%}
.jarc path{fill:none;stroke:rgba(255,255,255,.75);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}
.jarc circle{fill:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.9))}
.gt{position:relative;z-index:1;width:112px;height:112px;border-radius:30px;display:grid;place-items:center;color:#fff;font-style:normal;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 20px 40px rgba(8,20,49,.25),inset 0 1px 0 rgba(255,255,255,.5)}
.jss.live .jsl.on .gt{animation:pop .55s both}.jss.live .jsl.on .gt:nth-of-type(2){animation-delay:.12s}
.jtxt{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:48px 52px}
.pairn{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:600 12px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.pairn span:first-child{color:var(--a)}.pairn span:last-child{color:var(--b)}
.pairn em{font-style:normal;color:var(--mut)}
.jss .say{font-size:clamp(24px,2.5vw,34px);line-height:1.25;text-align:left}
.jss .say2{text-align:left;font-size:16.5px}
.say3{margin-top:6px;font-weight:600;color:var(--act)}
.jss-nav{display:flex;align-items:center;gap:14px;margin:0;padding:18px 24px;border-top:1px solid var(--ln)}
.jss-bars{flex:1;display:flex;gap:6px}
.jss-bars button{flex:1;height:4px;padding:0;border:0;border-radius:4px;background:color-mix(in srgb,var(--ink) 12%,transparent);cursor:pointer;overflow:hidden;position:relative}
.jss-bars button i{position:absolute;inset:0;width:0;background:linear-gradient(90deg,#00a1ff,#824ae4)}
.jss-bars button.done i{width:100%}
.jss.live .jss-bars button[aria-selected=true] i{animation:barfill var(--dur,5s) linear forwards}
.jss-bars button:hover{background:color-mix(in srgb,var(--ink) 22%,transparent)}
@keyframes barfill{from{width:0}to{width:100%}}
.jss-n{min-width:52px;text-align:center}
@media (max-width:900px){.jsl{grid-template-columns:1fr;min-height:0}.jvis{min-height:200px;gap:80px}.gt{width:84px;height:84px;border-radius:24px}.jtxt{padding:28px 24px}}
@media (prefers-reduced-motion:reduce){.jss-bars button[aria-selected=true] i{animation:none;width:100%}.jarc circle{display:none}}

/* ---- joins: a full-width colour band (owner 2026-11-03) ---- */
.jband{position:relative;margin:40px 0;color:#fff;overflow:hidden}
.jss2{position:relative;padding:88px 0 0}
.jbg{position:absolute;inset:0}
.jbg i{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;background:radial-gradient(900px 500px at 15% 20%,rgba(255,255,255,.22),transparent 60%),radial-gradient(800px 500px at 90% 90%,rgba(8,20,49,.35),transparent 60%),linear-gradient(120deg,var(--a),var(--b))}
.jbg i.on{opacity:1}
.jbg::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent)}
.jss2 .w{position:relative}
.jhd{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.jhd .eye{color:rgba(255,255,255,.8)}
.jhd h2{margin:10px 0 10px;font:800 clamp(30px,4vw,48px)/1.08 Sora,Inter,sans-serif;letter-spacing:-.04em;color:#fff}
.jhd p{margin:0;max-width:560px;color:rgba(255,255,255,.85);font-size:17px}
.jhd a{color:#fff;font-weight:600;padding:10px 16px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3)}
.jhd a:hover{background:rgba(255,255,255,.24)}
.jss2 .jss-track{position:relative;display:grid;margin-top:40px}
.jss2 .jsl{grid-area:1/1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center;min-height:300px}
.jss2.live .jsl{opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .55s,transform .55s,visibility 0s .55s}
.jss2.live .jsl.on{opacity:1;visibility:visible;transform:none;transition:opacity .55s .15s,transform .55s .15s}
.jss2:not(.live) .jsl:not(.on){display:none}
.jvis2{position:relative;width:420px;max-width:100%;aspect-ratio:420/220;margin:0 auto}
.jvis2>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.jvis2>svg path{fill:none;stroke:rgba(255,255,255,.8);stroke-width:3;stroke-linecap:round;stroke-dasharray:2 9}
.jvis2>svg circle{fill:#fff;filter:drop-shadow(0 0 8px #fff)}
.jvis2 .gt{position:absolute;top:auto;bottom:0;width:120px;height:120px;border-radius:32px;margin:0}
.jvis2 .gt:nth-of-type(1){left:30px}.jvis2 .gt:nth-of-type(2){right:30px}
.jss2.live .jsl.on .gt{animation:pop .55s .2s both}.jss2.live .jsl.on .gt:nth-of-type(2){animation-delay:.32s}
.pairn2{font:600 12px "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.pairn2 em{font-style:normal;margin:0 6px;opacity:.7}
.jss2 .say{margin:14px 0 0;color:#fff;text-align:left;font:800 clamp(26px,3vw,40px)/1.18 Sora,Inter,sans-serif;letter-spacing:-.03em;text-wrap:balance}
.jss2 .say2{margin:14px 0 0;text-align:left;color:rgba(255,255,255,.85);font-size:17px;max-width:560px}
.jss2 .jss-nav{display:flex;align-items:center;gap:14px;margin-top:56px;padding:22px 0 30px;border-top:1px solid rgba(255,255,255,.2)}
.jss2 .jss-bars button{background:rgba(255,255,255,.25)}
.jss2 .jss-bars button i{background:#fff}
.jss2 .jss-n{color:rgba(255,255,255,.75)}.jss2 .jss-n b{color:#fff}
.jss2 .jss-b{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff;box-shadow:none}
.jss2 .jss-b:hover{background:rgba(255,255,255,.26);color:#fff;border-color:#fff}
.jss2 .jss-bars{flex:1;display:flex;gap:6px}
.jss2 .jss-bars button{flex:1;height:4px;padding:0;border:0;border-radius:4px;cursor:pointer;overflow:hidden;position:relative}
.jss2 .jss-bars button i{position:absolute;inset:0;width:0}
.jss2 .jss-bars button.done i{width:100%}
.jss2.live .jss-bars button[aria-selected=true] i{animation:barfill var(--dur,5s) linear forwards}
@media (max-width:900px){.jss2{padding-top:56px}.jss2 .jsl{grid-template-columns:1fr;gap:20px}.jvis2{width:300px}.jvis2 .gt{width:88px;height:88px;border-radius:24px}}
@media (prefers-reduced-motion:reduce){.jbg i{transition:none}.jvis2>svg circle{display:none}.jss2 .jss-bars button[aria-selected=true] i{animation:none;width:100%}}

/* ---- heroes fill one screen; the sky above them (owner 2026-11-03) ---- */
.pg-home .hero{min-height:0!important;height:100svh;max-height:none}
.phero{height:calc(100svh - 100px)!important;max-height:none!important}
@media (max-width:640px){.pg-home .hero{height:auto;min-height:100svh!important}}
.sky2{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero .scene,.hero .pscene{z-index:1}
.sk-cl{position:absolute;left:0;animation:skc linear infinite;will-change:transform}
@keyframes skc{from{transform:translateX(-25vw)}to{transform:translateX(110vw)}}
.sk-bd{position:absolute;left:0;animation:skb 46s linear infinite}
.sk-bd.b2{animation-duration:62s;animation-delay:-30s}
.sk-bd svg{animation:bob 3s ease-in-out infinite}
.sk-bd .wg{animation:flap .8s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
.sk-bd .w2{animation-delay:-.3s}.sk-bd .w3{animation-delay:-.55s}
@keyframes flap{to{transform:scaleY(.4)}}
@keyframes skb{from{transform:translateX(-10vw)}to{transform:translateX(110vw)}}
.sk-pl{position:absolute;left:0;animation:skp 38s linear infinite;animation-delay:-12s}
@keyframes skp{0%{transform:translateX(-450px)}55%,100%{transform:translateX(110vw)}}
.sk-night{position:absolute;inset:0;display:none}
.sk-night i{position:absolute;width:var(--s);height:var(--s);border-radius:99px;background:#fff;animation:tw 3s ease-in-out infinite alternate}
.sk-shoot{position:absolute;top:12%;left:70%;width:160px;height:2px;border-radius:2px;background:linear-gradient(90deg,#fff,transparent);transform:rotate(-20deg);opacity:0;animation:shoot 9s ease-in infinite 3s}
@keyframes shoot{0%,88%{opacity:0;transform:translate(0,0) rotate(-20deg)}90%{opacity:1}100%{opacity:0;transform:translate(-420px,150px) rotate(-20deg)}}
.hero.night .sk-day{display:none}.hero.night .sk-night{display:block}
:root[data-theme=dark] .hero:not(.day) .sk-day{display:none}
@media (prefers-reduced-motion:reduce){.sky2 *{animation:none!important}.sk-cl:nth-child(odd){transform:translateX(60vw)}.sk-cl:nth-child(even){transform:translateX(15vw)}.sk-pl,.sk-shoot{display:none}}
.sk-cl svg{filter:opacity(.65)}
/* the "Start with one" panel and the questions' left column: plain blocks, never sticky (they went missing in
   full-page views) */
.one,.fql{position:static!important}
.one.rev,.one{opacity:1}
/* a little rhythm between the white sections of Home */
.pg-home #story{background:radial-gradient(900px 420px at 15% 30%,rgba(0,182,235,.07),transparent 70%),radial-gradient(900px 420px at 85% 70%,rgba(130,74,228,.07),transparent 70%)}
/* area and highlight panels: one flat colour, no glow (owner 2026-11-03) */
.apanel,.hlpanel{background:var(--sf)!important}

/* the family header on pages without the blue hero: white glass (owner 2026-11-03) */
.nav.nav-solid{position:sticky;top:0;background:color-mix(in srgb,var(--bg) 78%,transparent)!important;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid var(--ln);box-shadow:0 6px 24px rgba(15,25,50,.05);color:var(--ink)}
.nav.nav-solid .wm{color:var(--ink)}
.nav.nav-solid .links a{color:var(--ink2)}
.nav.nav-solid .links a:hover{background:var(--sf2);color:var(--ink)}
.nav.nav-solid .links a[aria-current]{background:var(--acs);color:var(--act)}
.nav.nav-solid .si{color:var(--ink)}
.nav.nav-solid .mode{border-color:var(--ln);background:transparent;color:var(--ink)}
.nav.nav-solid .mn2 summary{border-color:var(--ln);color:var(--ink)}
/* glass header: nearly opaque, so page text never reads through it (owner 2026-11-03: "overlapping") */
.nav.nav-solid{background:color-mix(in srgb,var(--bg) 94%,transparent)!important;backdrop-filter:saturate(1.8) blur(20px);-webkit-backdrop-filter:saturate(1.8) blur(20px)}
@supports not (backdrop-filter:blur(1px)){.nav.nav-solid{background:var(--bg)!important}}
.pnav{background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(20px)}

/* joins band, light: a pale wash of the two products' colours that fades into the page (owner 2026-11-03) */
.jband{color:var(--ink);margin:0}
.jbg i{background:linear-gradient(180deg,var(--bg),transparent 18%,transparent 82%,var(--bg)),linear-gradient(115deg,color-mix(in srgb,var(--a) 13%,var(--bg)),color-mix(in srgb,var(--b) 13%,var(--bg)))}
.jbg::after{background-image:radial-gradient(color-mix(in srgb,var(--ink) 9%,transparent) 1px,transparent 1px)}
.jhd .eye{color:var(--act)}
.jhd h2{color:var(--ink)}
.jhd p{color:var(--ink2)}
.jhd a{color:var(--act);background:var(--sf);border-color:var(--ln);box-shadow:var(--card)}
.jhd a:hover{background:var(--sf2)}
.jvis2 .gt{color:#fff;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 18px 36px color-mix(in srgb,var(--c) 35%,transparent),inset 0 1px 0 rgba(255,255,255,.35);background:linear-gradient(140deg,color-mix(in srgb,var(--c) 65%,#fff),var(--c) 55%,color-mix(in srgb,var(--c) 80%,#000))}
.jvis2 .ga{--c:var(--a)}.jvis2 .gb{--c:var(--b)}
.jvis2>svg path{stroke:color-mix(in srgb,var(--a) 70%,var(--b));opacity:.7}
.jvis2>svg circle{fill:var(--b);filter:drop-shadow(0 0 6px var(--b))}
.pairn2{color:var(--mut)}
.pairn2 .pa{color:var(--a)}.pairn2 .pb2{color:var(--b)}
.jss2 .say{color:var(--ink)}
.jss2 .say2{color:var(--ink2)}
.jss2 .jss-nav{border-top-color:var(--ln)}
.jss2 .jss-bars button{background:color-mix(in srgb,var(--ink) 12%,transparent)}
.jss2 .jss-bars button i{background:linear-gradient(90deg,#00a1ff,#824ae4)}
.jss2 .jss-n{color:var(--mut)}.jss2 .jss-n b{color:var(--ink)}
.jss2 .jss-b{background:var(--sf);border-color:var(--ln);color:var(--ink);box-shadow:var(--card)}
.jss2 .jss-b:hover{background:var(--sf);color:var(--act);border-color:var(--act)}
:root[data-theme=dark] .jbg i{background:linear-gradient(180deg,var(--bg),transparent 18%,transparent 82%,var(--bg)),linear-gradient(115deg,color-mix(in srgb,var(--a) 22%,var(--bg)),color-mix(in srgb,var(--b) 22%,var(--bg)))}

/* the six group tiles, light (owner 2026-11-03): the mini town in blue line on a pale wash, product chips with
   their icons that open each product */
.g6x{box-shadow:var(--card)}
.g6x:hover{transform:translateY(-4px);box-shadow:0 22px 50px color-mix(in srgb,var(--a) 16%,transparent)}
.g6x .gpic{display:block;height:150px;--line:color-mix(in srgb,var(--a) 75%,#1b3aa8);--fill:color-mix(in srgb,var(--a) 6%,transparent);background:radial-gradient(260px 120px at 80% 0,color-mix(in srgb,var(--b) 16%,transparent),transparent 70%),linear-gradient(160deg,color-mix(in srgb,var(--a) 12%,var(--sf)),color-mix(in srgb,var(--b) 8%,var(--sf)));border-bottom:1px solid var(--ln)}
:root[data-theme=dark] .g6x .gpic{--line:color-mix(in srgb,var(--a) 55%,#cfe0ff);background:linear-gradient(160deg,color-mix(in srgb,var(--a) 22%,var(--sf)),color-mix(in srgb,var(--b) 14%,var(--sf)))}
.g6x .gpic .sign text{fill:var(--line)}
.g6x .gpic .win.on{fill:#ffd166;stroke:#e9b440}
.g6x .gn{color:var(--a)}
.g6x h3 a{color:var(--ink)}
.g6x h3 a:hover{color:var(--a);text-decoration:none}
.pchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.pchips a{display:inline-flex;align-items:center;gap:7px;padding:5px 11px 5px 5px;border-radius:999px;background:var(--sf2);color:var(--ink2);font-size:13px;font-weight:600;transition:background .2s,color .2s}
.pchips a i{width:22px;height:22px;border-radius:99px;display:grid;place-items:center;color:#fff;background:var(--c)}
.pchips a:hover{background:color-mix(in srgb,var(--c) 14%,var(--sf));color:var(--ink);text-decoration:none}

/* "without it" / "today": neutral grey, no red (owner 2026-11-03) */
.pL .bh.l,.who3 .today .lbl,.bh.l{color:var(--mut)!important}
.pL .bl::before,.ul2.no li::before{background:color-mix(in srgb,var(--ink) 7%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238394b8' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M8 8l8 8M16 8l-8 8'/%3E%3C/svg%3E") center/10px no-repeat!important}
:root[data-theme=dark] .pL .bl::before,:root[data-theme=dark] .ul2.no li::before{background-color:rgba(255,255,255,.07)!important}
.pL .bl{color:var(--ink2)!important}

/* inner pages: no line between header and page; the header floats on the page's own background, glass once
   scrolled (owner 2026-11-03) */
.pg-inner .nav.nav-solid,.pg-inner .pnav{position:fixed!important;left:0;right:0;z-index:60;background:transparent!important;border-bottom:1px solid transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:background .25s,border-color .25s,box-shadow .25s,top .2s}
.pg-inner .nav.nav-solid{top:0}
.pg-inner .pnav{top:36px}
.pg-inner .nav.nav-solid.stuck,.pg-inner .pnav.stuck{top:0;background:color-mix(in srgb,var(--bg) 94%,transparent)!important;border-bottom-color:var(--ln)!important;box-shadow:0 6px 24px rgba(15,25,50,.06)!important;backdrop-filter:saturate(1.8) blur(20px)!important;-webkit-backdrop-filter:saturate(1.8) blur(20px)!important}
/* the first block of the page runs up under the header */
.k-brand.pg-inner main>.ih,.k-chooser.pg-inner main>.ih{padding-top:136px}
.k-brand.pg-inner main>.ab-hero{padding-top:144px}
.k-product.pg-inner main>.ih{padding-top:128px}
.k-product.pg-inner main>.ab-hero{padding-top:136px}
.k-product.pg-inner .fp2-toc{top:64px}
.k-product.pg-inner .fx-top{top:64px}
.k-brand.pg-inner .fx-top{top:72px}
/* footer skyline: every building whole, the strip as tall as the drawing needs (owner 2026-11-03: cut off) */
.ftown{height:auto!important;min-height:0}
.ftown svg{height:auto!important;max-height:220px}

/* questions: centred heading, one clean column, a slim ask bar (owner 2026-11-03) */
.faq2 .fq2-h{text-align:center;max-width:720px;margin:0 auto}
.faq2 .fq2-h .l{margin:10px auto 0}
.fq2-list{max-width:820px;margin:36px auto 0;border-top:1px solid var(--ln)}
.fq2-list details{border-bottom:1px solid var(--ln)}
.fq2-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 4px;font:600 17.5px/1.4 Inter,sans-serif;color:var(--ink)}
.fq2-list summary::-webkit-details-marker{display:none}
.fq2-list summary:hover span{color:var(--act)}
.fq2-list summary i{flex:none;position:relative;width:32px;height:32px;border-radius:99px;background:var(--acs);transition:transform .3s,background .3s}
.fq2-list summary i::before,.fq2-list summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;border-radius:2px;background:var(--act)}
.fq2-list summary i::after{transform:rotate(90deg);transition:transform .3s}
.fq2-list details[open] summary i{background:linear-gradient(135deg,#00a1ff,#824ae4)}
.fq2-list details[open] summary i::before,.fq2-list details[open] summary i::after{background:#fff}
.fq2-list details[open] summary i::after{transform:rotate(0)}
.fq2-list p{margin:0;padding:0 56px 24px 4px;color:var(--ink2);font-size:16px;line-height:1.65}
.fq2-ask{max-width:820px;margin:28px auto 0;display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.fq2-ask b{display:block;font:700 16px Sora,Inter,sans-serif}
.fq2-ask div span{display:block;color:var(--ink2);font-size:14px}
.fq2-ask .btn{margin-left:auto;flex:none}
@media (max-width:640px){.fq2-ask{flex-wrap:wrap}.fq2-ask .btn{margin-left:0}.fq2-list p{padding-right:4px}}
.fq2-ask .av3{flex:none;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;color:#fff;font:700 13px Sora,Inter,sans-serif;background:linear-gradient(135deg,#00b6eb,#3778f5 55%,#824ae4);box-shadow:0 8px 20px rgba(55,120,245,.3)}
/* group tiles: the bus, birds and road move while the tile is seen; the arms, cranes, smoke and flags too */
.g6x .gpic .mbus{opacity:1}
.g6x .gpic.live .mbus{animation:mbus 11s linear infinite}
.g6x .gpic .gbird{animation:gbird 18s linear infinite;animation-play-state:paused}
.g6x .gpic.live .gbird{animation-play-state:running}
@keyframes gbird{from{transform:translateX(-80px)}to{transform:translateX(700px)}}
.g6x .gpic .gdash{stroke-dasharray:14 12;animation:road 1.4s linear infinite;animation-play-state:paused}
.g6x .gpic.live .gdash{animation-play-state:running}
.g6x .gpic .flag{transform-box:fill-box;transform-origin:0 50%}
@media (prefers-reduced-motion:reduce){.g6x .gpic .mbus,.g6x .gpic .gbird,.g6x .gpic .gdash{animation:none}}
/* product home: no line between the header and the hero (owner 2026-11-03) */
.pg-learn:not(.scrolled) .pnav{border-bottom-color:transparent!important;box-shadow:none!important}
.crumb{border-bottom:0}
/* questions: the same width and left edge as every other section (owner 2026-11-03) */
.faq2 .fq2-h{text-align:left;max-width:none;margin:0}
.faq2 .fq2-h .l{margin:10px 0 0}
.fq2-list,.fq2-ask{max-width:none;margin-left:0;margin-right:0}
.fq2-list p{max-width:900px}

/* ---- review pass (2026-11-03) ---- */
/* Learn "Joins with": light, like the joins on Home; one card per product with its joins listed */
#joinsL.band-blue{color:var(--ink);background:linear-gradient(180deg,var(--bg),transparent 16%,transparent 84%,var(--bg)),linear-gradient(115deg,color-mix(in srgb,#00a1ff 10%,var(--bg)),color-mix(in srgb,#824ae4 9%,var(--bg)))}
#joinsL .eye{color:var(--act)}#joinsL .t{color:var(--ink)}#joinsL .l{color:var(--ink2)}
#joinsL .hubc b{color:var(--ink)}
#joinsL .hubc .app.big{box-shadow:0 0 0 10px color-mix(in srgb,var(--act) 10%,transparent),0 0 0 22px color-mix(in srgb,var(--act) 5%,transparent),0 20px 40px rgba(55,120,245,.25)}
#joinsL .hp2{stroke:color-mix(in srgb,var(--act) 55%,transparent)}
#joinsL .hubl circle{fill:var(--act)}
#joinsL .hn{background:var(--sf);color:var(--ink);border:1px solid var(--ln);box-shadow:var(--card);text-align:left}
#joinsL .hn .app{box-shadow:0 0 0 5px var(--sf),0 10px 20px rgba(0,0,0,.12)}
#joinsL .more-w{color:var(--act)}
.hnl{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.hnl li{position:relative;padding-left:16px;font-size:14.5px;line-height:1.45}
.hnl li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:99px;background:var(--c)}
.hnl a{color:var(--ink2)}.hnl a:hover{color:var(--c);text-decoration:none}
/* good to know: the tag beside the title, not above it */
.gtk2 li,.gtk li{grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:4px}
.gtk2 li b,.gtk li b{grid-column:1;grid-row:1}
.gtk2 .tg,.gtk .tg{grid-column:2;grid-row:1;order:0!important;align-self:start;white-space:nowrap}
.gtk2 li span,.gtk li span{grid-column:1/-1}
/* a day across the family: cards of one height */
@media (min-width:981px){.tl .st{display:flex;flex-direction:column}.tl .st>div:last-child{flex:1}}
/* footer tag line on one line */
footer .f-tag{white-space:nowrap;letter-spacing:.12em}
/* phones: fewer clouds behind the words; the product header keeps the logo, theme and menu */
@media (max-width:640px){.sk-cl:nth-child(n+3),.sk-bd.b2{display:none}.sk-cl{top:auto!important;bottom:38%}.pnav .sm2{display:none}.hc .eye{font-size:10.5px;letter-spacing:.12em}}
@media (max-width:640px){
 .sk-cl,.sk-bd{display:none!important}
 .phero{height:auto!important;min-height:0!important}
 .phero .pscene{flex:none;height:170px!important;min-height:0;margin-top:24px}
}
/* group tiles: more life (owner 2026-11-03: "only the vehicle is going") */
.g6x .gpic .gbird{animation-duration:9s}
.g6x .gpic .gcloud{animation:gcloud 26s linear infinite;animation-play-state:paused}
.g6x .gpic .gwalk{animation:gwalk 22s linear infinite;animation-play-state:paused}
.g6x .gpic.live .gcloud,.g6x .gpic.live .gwalk{animation-play-state:running}
.g6x .gpic .wleg{animation:step .5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0}
@keyframes gcloud{from{transform:translateX(-140px)}to{transform:translateX(760px)}}
@keyframes gwalk{from{transform:translateX(740px)}to{transform:translateX(-40px)}}
@keyframes step{to{transform:skewX(8deg)}}
.g6x .gpic .smoke circle{fill:color-mix(in srgb,var(--a) 30%,transparent)}
.g6x .gpic .win{transition:fill .35s,stroke .35s}
@media (prefers-reduced-motion:reduce){.g6x .gpic .gcloud,.g6x .gpic .gwalk,.g6x .gpic .wleg{animation:none}}
/* the joins band and the day story: one clean wash, then plain white (owner 2026-11-03: sort the backgrounds) */
.jbg::after{display:none}
.jbg i{background:linear-gradient(180deg,transparent,transparent 75%,var(--bg)),linear-gradient(115deg,color-mix(in srgb,var(--a) 11%,var(--bg)),color-mix(in srgb,var(--b) 11%,var(--bg)))!important}
.jss2 .jss-nav{padding-bottom:56px}
.pg-home #story{background:none}
.jbg i{background:linear-gradient(180deg,var(--bg),transparent 22%,transparent 75%,var(--bg)),linear-gradient(115deg,color-mix(in srgb,var(--a) 11%,var(--bg)),color-mix(in srgb,var(--b) 11%,var(--bg)))!important}
/* Home: plain sections, the joins band the only colour (owner 2026-11-03: fix these colours) */
.pg-home #story,.pg-home #rules,.pg-home #products,.pg-home #faq{background:var(--bg)!important}
/* slides: the old one goes, then the new one comes; never two half-faded */
.jss2.live .jsl{transition:opacity .25s,transform .25s,visibility 0s .25s!important}
.jss2.live .jsl.on{transition:opacity .4s .25s,transform .4s .25s!important}
.jbg i{transition:opacity .6s ease}
html:root body.pg-home #story,html:root body.pg-home #rules,html:root body.pg-home #products,html:root body.pg-home #faq{background:var(--bg)!important}
.pnav .sp{flex:1}
/* inner page headers: the words always start the same distance under the menu */
.ih-g{align-items:start}
.ih-g>.illp{align-self:center}
.ct-l{position:static!important}
.k-product.pg-inner main>.ab-hero{padding-top:128px}
.k-brand.pg-inner main>.ab-hero{padding-top:136px}
/* the drawing no taller than the words beside it: smaller, from the top (owner 2026-11-03) */
.ih-g>.illp{align-self:start;justify-self:end;width:100%;max-width:380px;margin-top:-8px}
.ih-g>.illp .ills{max-height:250px}
/* the drawing takes the height of the words beside it, never more */
.ih-g>.illp{align-self:stretch;height:0;min-height:100%;position:relative;margin-top:0;max-width:420px}
.ih-g>.illp .ills{position:absolute;inset:0;width:100%;height:100%;max-height:none}
@media (max-width:900px){.ih-g>.illp{height:220px;min-height:0;justify-self:center}}

/* the products page pictures: like the Home tiles */
:is(.pgrp,.pr-hero,.ltown) .gpic{display:block;height:150px;--line:color-mix(in srgb,var(--a) 75%,#1b3aa8);--fill:color-mix(in srgb,var(--a) 6%,transparent);background:radial-gradient(260px 120px at 80% 0,color-mix(in srgb,var(--b) 16%,transparent),transparent 70%),linear-gradient(160deg,color-mix(in srgb,var(--a) 12%,var(--sf)),color-mix(in srgb,var(--b) 8%,var(--sf)));border-bottom:1px solid var(--ln)}
[data-theme=dark] :is(.pgrp,.pr-hero,.ltown) .gpic{--line:color-mix(in srgb,var(--a) 55%,#cfe0ff);background:linear-gradient(160deg,color-mix(in srgb,var(--a) 22%,var(--sf)),color-mix(in srgb,var(--b) 14%,var(--sf)))}
:is(.pgrp,.pr-hero,.ltown) .gpic .sign text{fill:var(--line)}
:is(.pgrp,.pr-hero,.ltown) .gpic .win.on{fill:#ffd166;stroke:#e9b440}
:is(.pgrp,.pr-hero,.ltown) .gpic .mbus{opacity:1}
:is(.pgrp,.pr-hero,.ltown) .gpic.live .mbus{animation:mbus 11s linear infinite}
:is(.pgrp,.pr-hero,.ltown) .gpic .gbird{animation:gbird 18s linear infinite;animation-play-state:paused}
:is(.pgrp,.pr-hero,.ltown) .gpic.live .gbird{animation-play-state:running}
:is(.pgrp,.pr-hero,.ltown) .gpic .gdash{stroke-dasharray:14 12;animation:road 1.4s linear infinite;animation-play-state:paused}
:is(.pgrp,.pr-hero,.ltown) .gpic.live .gdash{animation-play-state:running}
:is(.pgrp,.pr-hero,.ltown) .gpic .flag{transform-box:fill-box;transform-origin:0 50%}
@media (prefers-reduced-motion:reduce){:is(.pgrp,.pr-hero,.ltown) .gpic .mbus,:is(.pgrp,.pr-hero,.ltown) .gpic .gbird,:is(.pgrp,.pr-hero,.ltown) .gpic .gdash{animation:none}}
:is(.pgrp,.pr-hero,.ltown) .gpic .gbird{animation-duration:9s}
:is(.pgrp,.pr-hero,.ltown) .gpic .gcloud{animation:gcloud 26s linear infinite;animation-play-state:paused}
:is(.pgrp,.pr-hero,.ltown) .gpic .gwalk{animation:gwalk 22s linear infinite;animation-play-state:paused}
:is(.pgrp,.pr-hero,.ltown) .gpic.live .gcloud,:is(.pgrp,.pr-hero,.ltown) .gpic.live .gwalk{animation-play-state:running}
:is(.pgrp,.pr-hero,.ltown) .gpic .wleg{animation:step .5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0}
:is(.pgrp,.pr-hero,.ltown) .gpic .smoke circle{fill:color-mix(in srgb,var(--a) 30%,transparent)}
:is(.pgrp,.pr-hero,.ltown) .gpic .win{transition:fill .35s,stroke .35s}
@media (prefers-reduced-motion:reduce){:is(.pgrp,.pr-hero,.ltown) .gpic .gcloud,:is(.pgrp,.pr-hero,.ltown) .gpic .gwalk,:is(.pgrp,.pr-hero,.ltown) .gpic .wleg{animation:none}}

/* ---- Products page (2026-11 look) ---- */
.gjump2{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:30px}
.gjump2 a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:99px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:var(--ink);font-weight:600;font-size:14px}
.gjump2 a b{font:600 11px "IBM Plex Mono",monospace;color:var(--c)}
.gjump2 a span{font:600 11px "IBM Plex Mono",monospace;color:var(--mut);padding-left:2px}
.gjump2 a:hover{border-color:color-mix(in srgb,var(--c) 45%,var(--ln))}
.pgrp{padding:56px 0 24px;scroll-margin-top:72px}
.pgrp-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center;margin-bottom:24px}
.pgrp-h .eye2{color:var(--a)}
.pgrp-h h2{margin:6px 0 8px;font:800 clamp(26px,3.2vw,38px)/1.1 Sora,Inter,sans-serif;letter-spacing:-.035em}
.pgrp-h p{margin:0;color:var(--ink2);font-size:17px}
:is(.pgrp,.pr-hero,.ltown) .gpic{height:170px;border-radius:22px;border:1px solid var(--ln);order:2}
.pcards2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pcard2{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:22px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:inherit;scroll-margin-top:90px;transition:transform .25s,box-shadow .25s,border-color .25s}
.pcard2:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 40%,var(--ln));box-shadow:0 18px 40px color-mix(in srgb,var(--c) 16%,transparent);text-decoration:none}
.pc-top{display:flex;align-items:center;gap:12px}
.pc-top .app{width:42px;height:42px;border-radius:12px}
.pc-name{font:500 16px Sora,Inter,sans-serif;color:var(--ink2)}.pc-name b{font-weight:700;color:var(--ink)}
.pc-arr{margin-left:auto;color:var(--mut);transition:transform .2s,color .2s}
.pcard2:hover .pc-arr{transform:translateX(4px);color:var(--c)}
.pcard2 h3{margin:4px 0 0;font:700 18px/1.3 Sora,Inter,sans-serif;letter-spacing:-.015em;color:var(--ink)}
.pcard2>p{margin:0;color:var(--ink2);font-size:14.5px}
.pcard2 .ul2{gap:6px;margin-top:4px}.pcard2 .ul2 li{font-size:14px}
.pcard2 .ul2 li::before{background-color:color-mix(in srgb,var(--c) 14%,transparent)}
.pc-url{margin-top:auto;padding-top:10px;font:600 12px "IBM Plex Mono",monospace;color:var(--c)}
.byp-l{margin:-8px 0 22px;color:var(--ink2)}
.byp{display:grid;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);overflow:hidden}
.byp-r{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:center;padding:20px 26px;border-top:1px solid var(--ln);scroll-margin-top:90px}
.byp-r:first-child{border-top:0}
.byp-t{display:flex;gap:14px;align-items:center}
.byp-t .gi{width:40px;height:40px;border-radius:12px}
.byp-t b{display:block;font:700 16px Sora,Inter,sans-serif}
.byp-t span{display:block;color:var(--ink2);font-size:13.5px}
@media (max-width:980px){.pgrp-h{grid-template-columns:1fr}:is(.pgrp,.pr-hero,.ltown) .gpic{order:0}.pcards2{grid-template-columns:1fr 1fr}.byp-r{grid-template-columns:1fr}}
@media (max-width:640px){.pcards2{grid-template-columns:1fr}}

/* ---- Together page (2026-11 look) ---- */
.tjump{position:sticky;top:72px;z-index:30;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--ln);margin-top:28px}
.tjump .w{display:flex;gap:6px;overflow-x:auto;padding-top:10px;padding-bottom:10px;scrollbar-width:none}
.tjump a{flex:none;display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 6px;border-radius:99px;color:var(--ink2);font-weight:600;font-size:13.5px}
.tjump a:hover{background:var(--sf2);color:var(--ink)}
.tjump i{width:24px;height:24px;border-radius:99px;display:grid;place-items:center;color:#fff;background:var(--c)}
.tjump span{font:600 11px "IBM Plex Mono",monospace;color:var(--mut)}
.tw2{padding-top:20px}
.tsec{padding:48px 0 8px;scroll-margin-top:130px}
.tsec-h{display:flex;align-items:center;gap:18px;margin-bottom:20px;flex-wrap:wrap}
.tsec-h .app.big{width:64px;height:64px;border-radius:18px}
.tsec-h .eye2{color:var(--c);margin-bottom:2px}
.tsec-h h2{margin:0;font:800 clamp(24px,2.8vw,32px)/1.15 Sora,Inter,sans-serif;letter-spacing:-.03em}
.tsec-h p{margin:2px 0 0;color:var(--ink2)}
.tsec-h .btn{margin-left:auto;color:var(--ink);border-color:var(--ln);background:var(--sf);font:600 12.5px "IBM Plex Mono",monospace}
.jcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.jcard{padding:20px 22px;border-radius:20px;background:linear-gradient(160deg,color-mix(in srgb,var(--b) 6%,var(--sf)),var(--sf) 50%);border:1px solid var(--ln);box-shadow:var(--card)}
.jc-h{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.jc-pair{display:flex}
.jc-pair i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;border:2px solid var(--sf)}
.jc-pair i+i{margin-left:-8px}
.jcard h3{margin:0;font:700 16.5px Sora,Inter,sans-serif}
.jcard h3 em{font-style:normal;color:var(--mut);margin:0 4px}
.jcard .ul2 li{font-size:14.5px}
.jcard .ul2 li::before{background-color:color-mix(in srgb,var(--b) 14%,transparent)}
@media (max-width:800px){.jcards{grid-template-columns:1fr}.tsec-h .btn{margin-left:0}}
.tjump .w{flex-wrap:wrap;justify-content:center;overflow:visible}
.st h3.h4{margin:4px 0 6px;font:700 18px/1.25 Sora,Inter,sans-serif;letter-spacing:-.02em}
.rc h3.h4{margin:0 0 6px;font:700 16px Sora,Inter,sans-serif;letter-spacing:-.02em}

/* Products: the group's town fills the whole section, a street along its foot (owner 2026-11-03) */
.pgrp{position:relative;overflow:hidden;padding:72px 0 250px;background:linear-gradient(180deg,color-mix(in srgb,var(--a) 10%,var(--bg)) 0,color-mix(in srgb,var(--b) 7%,var(--bg)) 100%)}
.pgrp+.pgrp{border-top:1px solid color-mix(in srgb,var(--a) 14%,transparent)}
.pgrp>.w{position:static}
:is(.pgrp,.pr-hero,.ltown) .gpic.pgrp-pic{position:absolute;left:0;right:0;bottom:0;width:auto;height:250px;background:none;border:0;border-radius:0;box-shadow:none;pointer-events:none;z-index:0}
:is(.pgrp,.pr-hero,.ltown) .gpic.pgrp-pic svg{width:100%;height:100%;display:block}
:is(.pgrp,.pr-hero,.ltown) .gpic .bfill{opacity:.32}:is(.pgrp,.pr-hero,.ltown) .gpic .bfill .sign{display:none}
.pgrp-h{position:relative;z-index:1;display:block;max-width:640px;margin:0 auto 32px;text-align:center}
.pcards2{position:relative;z-index:1}
[data-theme=dark] .pgrp{background:linear-gradient(180deg,color-mix(in srgb,var(--a) 15%,var(--bg)) 0,color-mix(in srgb,var(--b) 10%,var(--bg)) 100%)}
[data-theme=dark] :is(.pgrp,.pr-hero,.ltown) .gpic.pgrp-pic{background:none}
[data-theme=dark] :is(.pgrp,.pr-hero,.ltown) .gpic .bfill{opacity:.25}
@media (max-width:980px){.pgrp{padding-bottom:200px}:is(.pgrp,.pr-hero,.ltown) .gpic.pgrp-pic{height:190px}}

/* Products hero: group cards + the whole family's street (owner 2026-11-03 "improve the rest of the page") */
.pr-hero{position:relative;overflow:hidden;padding-bottom:250px!important;--a:#3778f5;--b:#7c4dff}
.pr-hero>.w{position:relative;z-index:1}
.pr-hero .gpic.pr-town{position:absolute;left:0;right:0;bottom:0;height:230px}
.gjump3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:36px auto 0;max-width:1080px;text-align:left}
.gjump3 a{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:20px;background:color-mix(in srgb,var(--sf) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--ln);box-shadow:var(--card);color:var(--ink);overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.gjump3 a::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--c),var(--c2))}
.gjump3 a:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 40%,var(--ln));box-shadow:0 16px 36px color-mix(in srgb,var(--c) 16%,transparent);text-decoration:none}
.gj-n{display:flex;justify-content:space-between;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--c)}
.gj-n em{font-style:normal;color:var(--mut)}
.gjump3 b{font:700 17px/1.25 Sora,Inter,sans-serif;letter-spacing:-.015em}
.gj-i{display:flex;gap:5px;margin-top:6px}
.gj-i i{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 65%,#fff),var(--c))}
.gj-a{position:absolute;right:18px;bottom:16px;color:var(--mut);transition:transform .25s,color .25s}
.gjump3 a:hover .gj-a{transform:translateY(3px);color:var(--c)}
.gj-place{display:inline-flex;gap:6px;margin-top:22px;font-weight:600;color:var(--blue,#3778f5)}
.gj-place span{transition:transform .25s}.gj-place:hover span{transform:translateX(4px)}.gj-place:hover{text-decoration:none}
@media (max-width:980px){.gjump3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.gjump3{grid-template-columns:1fr}.pr-hero{padding-bottom:190px!important}.pr-hero .gpic.pr-town{height:170px}}

/* By place: one card per place */
.byp2{padding:88px 0 96px;background:radial-gradient(800px 360px at 15% 0,color-mix(in srgb,#3778f5 7%,transparent),transparent 70%),radial-gradient(700px 360px at 90% 100%,color-mix(in srgb,#7c4dff 7%,transparent),transparent 70%);scroll-margin-top:60px}
.byp2-h{text-align:center;max-width:640px;margin:0 auto 36px}
.byp2-h p{color:var(--ink2);margin:8px 0 0}
.byp3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.byc{display:flex;flex-direction:column;gap:16px;padding:22px 24px;border-radius:22px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);scroll-margin-top:90px;transition:border-color .25s,box-shadow .25s}
.byc:hover{border-color:color-mix(in srgb,var(--c) 35%,var(--ln));box-shadow:0 16px 36px color-mix(in srgb,var(--c) 12%,transparent)}
.byc-t{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start}
.byc-i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 60%,#fff),var(--c));box-shadow:0 10px 22px color-mix(in srgb,var(--c) 26%,transparent)}
.byc-i svg{color:#fff;stroke:#fff}
.byc h3{margin:2px 0 4px;font:700 17px/1.25 Sora,Inter,sans-serif;letter-spacing:-.015em}
.byc-t p{margin:0;color:var(--ink2);font-size:14px}
.byc-n{font:600 11px "IBM Plex Mono",monospace;color:var(--c);background:color-mix(in srgb,var(--c) 10%,transparent);padding:4px 9px;border-radius:99px}
.byc .pchips{margin-top:auto;padding-top:14px;border-top:1px dashed var(--ln)}
@media (max-width:860px){.byp3{grid-template-columns:1fr}}

/* "Good to know" tags: readable in dark mode (owner 2026-11-03) */
:root[data-theme=dark] .tg.ip{background:rgba(96,150,255,.2);color:#a9c8ff;box-shadow:inset 0 0 0 1px rgba(140,180,255,.35)}
:root[data-theme=dark] .tg.rq{background:rgba(160,120,255,.2);color:#cdb6ff;box-shadow:inset 0 0 0 1px rgba(180,150,255,.35)}
:root[data-theme=dark] .tg.io{background:rgba(255,190,80,.16);color:#ffd27a;box-shadow:inset 0 0 0 1px rgba(255,200,110,.32)}
.tg.io{color:#9a6200}

/* ---- product cards: whole card is the link, "Works with" chips go to Together's pair (owner 2026-11-03) ---- */
.pcard2{position:relative}
.pcard2 h3 a.pc-cover{color:inherit}
.pcard2 h3 a.pc-cover::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1}
.pcard2 h3 a.pc-cover:hover{text-decoration:none}
.pcard2 h3 a.pc-cover:focus-visible{outline:none}.pcard2:has(.pc-cover:focus-visible){outline:3px solid color-mix(in srgb,var(--c) 55%,transparent);outline-offset:3px}
.pc-with{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;padding-top:12px;border-top:1px dashed var(--ln)}
.pc-with>span{font:600 10.5px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-right:3px}
.pc-with a{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 3px;border-radius:99px;background:var(--sf2);color:var(--ink2);font-size:12px;font-weight:600}
.pc-with a i{width:18px;height:18px;border-radius:99px;display:grid;place-items:center;color:#fff;background:var(--c)}
.pc-with a:hover{background:color-mix(in srgb,var(--c) 14%,var(--sf));color:var(--ink);text-decoration:none}
.pc-with a.pc-more{padding:3px 9px;color:var(--mut)}
.pc-url{position:relative}

/* light town pictures in boxes (Together's days, Products' places) */
.ltown .gpic{height:170px;border-radius:18px;border:1px solid var(--ln)!important}

/* ---- Products: by place, a picker ---- */
.bpl{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
.bpl-tabs{display:flex;flex-direction:column;gap:6px;position:sticky;top:90px}
.bpl-tabs button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:16px;border:1px solid transparent;background:none;color:var(--ink2);font:600 15px Inter,sans-serif;text-align:left;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.bpl-tabs button .byc-i{width:36px;height:36px;border-radius:11px;box-shadow:none;opacity:.6;transition:opacity .2s}
.bpl-tabs button em{font:600 11px "IBM Plex Mono",monospace;font-style:normal;color:var(--mut)}
.bpl-tabs button:hover{background:var(--sf2);color:var(--ink)}
.bpl-tabs button[aria-selected=true]{background:var(--sf);border-color:color-mix(in srgb,var(--c) 35%,var(--ln));box-shadow:var(--card);color:var(--ink)}
.bpl-tabs button[aria-selected=true] .byc-i{opacity:1}
.bpl-tabs button[aria-selected=true] em{color:var(--c)}
.bpl-pane{padding:18px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);scroll-margin-top:90px}
.bpl-pane+.bpl-pane{margin-top:16px}
.bpl-pane[hidden]{display:none}
.bpl-town .gpic{height:190px}
.bpl-h{padding:18px 6px 4px}
.bpl-h h3{margin:0 0 4px;font:700 22px/1.2 Sora,Inter,sans-serif;letter-spacing:-.02em}
.bpl-h p{margin:0;color:var(--ink2)}
.bpl-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0 0}
.bpl-list a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;border:1px solid var(--ln);color:inherit;transition:border-color .2s,background .2s}
.bpl-list a .app{width:36px;height:36px;border-radius:11px;flex:none}
.bpl-list a span:not(.pc-arr){display:flex;flex-direction:column;min-width:0}
.bpl-list a b{font:700 14.5px Sora,Inter,sans-serif}
.bpl-list a small{color:var(--ink2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bpl-list a:hover{border-color:color-mix(in srgb,var(--c) 40%,var(--ln));background:color-mix(in srgb,var(--c) 5%,var(--sf));text-decoration:none}
.bpl-list a:hover .pc-arr{transform:translateX(4px);color:var(--c)}
@media (max-width:900px){.bpl{grid-template-columns:1fr}.bpl-tabs{position:static;flex-direction:row;overflow-x:auto;padding-bottom:6px}.bpl-tabs button{flex:none}.bpl-list{grid-template-columns:1fr}}

/* ---- Together (2026-11-03): days, pick two, every join ---- */
.tg-jump{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:30px}
.tg-jump a{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:99px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:var(--ink);font-weight:600}
.tg-jump a b{font:600 11px "IBM Plex Mono",monospace;color:var(--blue,#3778f5)}
.tg-jump a:hover{border-color:color-mix(in srgb,#3778f5 40%,var(--ln));text-decoration:none}
.tg-sh{text-align:center;max-width:720px;margin:0 auto 30px}
.tg-days,.tg-pick,.tg-all{padding:80px 0;scroll-margin-top:60px}
.tg-days{background:linear-gradient(180deg,color-mix(in srgb,#3778f5 6%,var(--bg)),var(--bg))}
.tg-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:0 auto 26px;padding:5px;border-radius:99px;background:var(--sf2);width:max-content;max-width:100%}
.tg-tabs button{padding:9px 18px;border-radius:99px;border:0;background:none;color:var(--ink2);font:600 14px Inter,sans-serif;cursor:pointer}
.tg-tabs button[aria-selected=true]{background:var(--sf);color:var(--ink);box-shadow:var(--card)}
.tg-day{padding:22px;border-radius:26px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.tg-day+.tg-day{margin-top:18px}.tg-day[hidden]{display:none}
.tg-dh{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 6px 16px}
.tg-dh h3{margin:0;font:700 clamp(19px,2vw,24px)/1.25 Sora,Inter,sans-serif;letter-spacing:-.02em}
.tg-ps{display:flex;gap:5px}.tg-ps i,.tg-j h3 i,.gj-i i{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 65%,#fff),var(--c))}
.tg-town .gpic{height:200px}
.tg-steps{list-style:none;margin:0;padding:22px 0 0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:12px;position:relative}
.tg-steps::before{content:"";position:absolute;left:6%;right:6%;top:39px;border-top:2px dashed var(--ln)}
.tg-steps li{position:relative;display:flex;flex-direction:column;gap:4px;padding:0 4px}
.tg-dot{width:36px;height:36px;border-radius:99px;display:grid;place-items:center;margin-bottom:8px;background:var(--c);color:#fff;font:700 13px "IBM Plex Mono",monospace;box-shadow:0 0 0 5px var(--sf),0 8px 18px color-mix(in srgb,var(--c) 35%,transparent)}
.tg-steps small{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.06em;color:var(--c)}
.tg-steps b{font:700 15.5px/1.3 Sora,Inter,sans-serif}
.tg-steps p{margin:0;color:var(--ink2);font-size:14px}
@media (max-width:900px){.tg-steps{grid-template-columns:1fr;gap:18px}.tg-steps::before{left:17px;right:auto;top:22px;bottom:10px;border-top:0;border-left:2px dashed var(--ln)}.tg-steps li{padding-left:52px}.tg-dot{position:absolute;left:0;top:0}}
.tg-pk{display:flex;align-items:end;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.tg-sel{display:flex;flex-direction:column;gap:6px;min-width:260px}
.tg-sel label{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.tg-sel select{padding:12px 14px;border-radius:14px;border:1px solid var(--ln);background:var(--sf);color:var(--ink);font:600 15px Inter,sans-serif}
.tg-plus{font:700 26px Sora,sans-serif;color:var(--mut);padding-bottom:8px}
.tg-res{max-width:820px;margin:0 auto;padding:28px 30px;border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--a) 9%,var(--sf)),color-mix(in srgb,var(--b) 9%,var(--sf)));border:1px solid color-mix(in srgb,var(--a) 22%,var(--ln));box-shadow:var(--card)}
.tg-res.flip{animation:tgflip .45s cubic-bezier(.2,.8,.2,1)}
@keyframes tgflip{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tg-res.flip{animation:none}}
.tg-rh{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.tg-rh h3{margin:0;font:800 clamp(22px,2.4vw,28px) Sora,Inter,sans-serif;letter-spacing:-.025em}
.tg-rh h3 em{font-style:normal;color:var(--mut)}
.tg-res .jc-pair i{width:38px;height:38px;border-radius:12px}
.tg-res .ul2 li{font-size:15.5px}
.tg-go{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0 0;font-weight:600}
.tg-all{background:var(--bg)}
.tg-acc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.tg-acc details{border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);scroll-margin-top:90px}
.tg-acc summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.tg-acc summary::-webkit-details-marker{display:none}
.tg-acc summary .app{width:38px;height:38px;border-radius:11px}
.tg-acc summary span{display:flex;flex-direction:column;min-width:0}
.tg-acc summary b{font:700 15px Sora,Inter,sans-serif}
.tg-acc summary small{color:var(--ink2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tg-acc summary em{font:600 11px "IBM Plex Mono",monospace;font-style:normal;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);padding:4px 9px;border-radius:99px}
.tg-acc details[open]{border-color:color-mix(in srgb,var(--c) 35%,var(--ln))}
.tg-jl{display:grid;gap:14px;padding:4px 18px 18px}
.tg-j{padding-top:14px;border-top:1px dashed var(--ln)}
.tg-j h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:700 14.5px Sora,Inter,sans-serif}
.tg-j h3 i{width:22px;height:22px;border-radius:7px;background:var(--c,#3778f5)}
.tg-j .ul2 li{font-size:14px}
@media (max-width:860px){.tg-acc{grid-template-columns:1fr}}

/* owner 2026-11-03: no hard line where By place's tint ended; the place picture fills the top of its card */
.byp2{background:radial-gradient(700px 300px at 15% 30%,color-mix(in srgb,#3778f5 6%,transparent),transparent 70%),radial-gradient(600px 300px at 88% 65%,color-mix(in srgb,#7c4dff 6%,transparent),transparent 70%)}
.bpl-pane{padding:0;overflow:hidden}
.bpl-town .gpic{border:0!important;border-radius:0;border-bottom:1px solid var(--ln)!important}
.bpl-h{padding:20px 22px 4px}
.bpl-list{padding:14px 18px 18px}

/* Together: pick two, as two products and a live link between them (owner 2026-11-03 "nice but improve") */
.tg-pick{background:radial-gradient(700px 320px at 50% 40%,color-mix(in srgb,#7c4dff 5%,transparent),transparent 70%)}
.pk2{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,240px) minmax(0,1fr);align-items:center;gap:0;max-width:1000px;margin:0 auto}
.pk-side{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 22px 22px;border-radius:26px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);text-align:center;transition:border-color .3s}
.pk-a{border-color:color-mix(in srgb,var(--a) 35%,var(--ln))}.pk-b{border-color:color-mix(in srgb,var(--b) 35%,var(--ln))}
.pk-ic{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;color:#fff;margin-bottom:6px;transition:background .3s}
.pk-a .pk-ic{background:linear-gradient(135deg,color-mix(in srgb,var(--a) 60%,#fff),var(--a));box-shadow:0 14px 30px color-mix(in srgb,var(--a) 32%,transparent)}
.pk-b .pk-ic{background:linear-gradient(135deg,color-mix(in srgb,var(--b) 60%,#fff),var(--b));box-shadow:0 14px 30px color-mix(in srgb,var(--b) 32%,transparent)}
.pk-side label{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.pk-side select,.pk-side .ss{width:100%;max-width:260px}
.pk-side select{padding:11px 14px;border-radius:14px;border:1px solid var(--ln);background:var(--sf);color:var(--ink);font:700 16px Sora,Inter,sans-serif;text-align:center}
.pk-side small{color:var(--ink2);font-size:13.5px;min-height:2.6em}
.pk-mid{position:relative;height:40px}
.pk-mid svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pk-ln{stroke:color-mix(in srgb,var(--a) 50%,var(--b));stroke-width:2;stroke-dasharray:6 7;fill:none;vector-effect:non-scaling-stroke}
.pk-dot{fill:var(--a);animation:pkdot 2.4s linear infinite}
.pk-dot.d2{animation-delay:-.8s;fill:color-mix(in srgb,var(--a) 50%,var(--b))}.pk-dot.d3{animation-delay:-1.6s;fill:var(--b)}
@keyframes pkdot{from{cx:0;opacity:0}15%{opacity:1}85%{opacity:1}to{cx:200;opacity:0}}
.pk-n{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:6px 12px;border-radius:99px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);font:600 11.5px "IBM Plex Mono",monospace;white-space:nowrap;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.pk-dot{animation:none;opacity:0}}
.pk-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:900px;margin:18px auto 26px}
.pk-chips button{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 5px;border-radius:99px;border:1px solid transparent;background:var(--sf2);color:var(--ink2);font:600 13px Inter,sans-serif;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.pk-chips button i{width:22px;height:22px;border-radius:99px;display:grid;place-items:center;color:#fff;background:var(--c)}
.pk-chips button:hover{background:color-mix(in srgb,var(--c) 12%,var(--sf));color:var(--ink)}
.pk-chips button[aria-pressed=true]{background:var(--sf);border-color:var(--c);color:var(--ink);box-shadow:0 6px 16px color-mix(in srgb,var(--c) 22%,transparent)}
.tg-res{max-width:1000px;padding:26px 28px}
.pk-title{margin:0 0 16px;font:600 15px Inter,sans-serif;color:var(--ink2)}.pk-title b{color:var(--ink);font-weight:700}
.pk-pts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.pk-pts li{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:18px;background:var(--sf);border:1px solid var(--ln);font-size:15px;line-height:1.5;color:var(--ink)}
.pk-pts li span{font:700 12px "IBM Plex Mono",monospace;color:var(--a);background:color-mix(in srgb,var(--a) 10%,transparent);padding:3px 8px;border-radius:8px;align-self:flex-start}
.pk-pts li:nth-child(even) span{color:var(--b);background:color-mix(in srgb,var(--b) 10%,transparent)}
.pk2.flip .pk-ic{animation:pkpop .45s cubic-bezier(.2,.9,.25,1.3)}
@keyframes pkpop{from{transform:scale(.85)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.pk2.flip .pk-ic{animation:none}}
@media (max-width:760px){.pk2{grid-template-columns:1fr}.pk-mid{height:56px}.pk-mid svg{transform:rotate(90deg);width:56px;left:50%;margin-left:-28px}}

/* Store empty state: no card around it, the picture sits on the page (owner 2026-11-03) */
.empty2{padding:24px 0;border:0;border-radius:0}
.empty2 .illp{background:none!important;border:0!important;box-shadow:none!important}

/* the real product icons (owner 2026-11-03): they carry their own colours, so the badge around them goes */
:has(>img.pi){background:none!important;box-shadow:none!important;border-color:transparent}
:has(>img.pi)>img.pi{width:100%;height:100%;object-fit:contain;display:block}
.pchips a i:has(>img.pi),.pc-with a i:has(>img.pi),.pk-chips button i:has(>img.pi){width:22px;height:22px}

/* Together in the Products look (owner 2026-11-03 "match the other pages") */
.gj-i .gj-plus{align-self:center;font:700 16px Sora,sans-serif;color:var(--mut);padding:0 2px}
.gjump3 .gj-i i:has(>img.pi){width:28px;height:28px}
.tg-days{padding-top:84px}
.tg-days .tg-sh{margin-bottom:22px}
.tg-days .tg-tabs{background:color-mix(in srgb,var(--sf) 70%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--ln)}
.tg-day{padding:0;border:0;background:none;box-shadow:none;border-radius:0}
.tg-day+.tg-day{margin-top:0}
.tg-dh{justify-content:center;text-align:center;padding:0 0 22px}
.tg-steps{padding:0;gap:14px}
.tg-steps::before{display:none}
.tg-steps li{padding:18px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);gap:6px}
.tg-steps li::after{content:"";position:absolute;top:38px;right:-15px;width:16px;border-top:2px dashed color-mix(in srgb,var(--c) 45%,var(--ln))}
.tg-steps li:last-child::after{display:none}
.tg-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.tg-pi{width:40px;height:40px;display:block}
.tg-dot{width:28px;height:28px;margin:0;font-size:11px;box-shadow:none}
@media (max-width:900px){.tg-steps li{padding:18px}.tg-steps li::after{display:none}.tg-dot{position:static}}
.tg-days.pgrp{padding:84px 0 270px}
.tg-days .tg-steps,.tg-days .tg-dh,.tg-days .tg-tabs,.tg-days .tg-sh{position:relative;z-index:1}
.tg-hero .gjump3{margin-bottom:8px}
.tg-hero{padding-bottom:72px!important;overflow:visible}

/* ---- Together: pick two as a sentence on a band in the pair's colours (owner 2026-11-03 "still bad") ---- */
.pk3{position:relative;padding:84px 0 92px;background:linear-gradient(120deg,color-mix(in srgb,var(--a) 12%,var(--bg)),color-mix(in srgb,var(--b) 12%,var(--bg)));transition:background .5s}
[data-theme=dark] .pk3{background:linear-gradient(120deg,color-mix(in srgb,var(--a) 20%,var(--bg)),color-mix(in srgb,var(--b) 20%,var(--bg)))}
.pk-say{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 14px;font:700 clamp(22px,2.6vw,32px)/1.2 Sora,Inter,sans-serif;letter-spacing:-.02em}
.pk-w{color:var(--ink2);font-weight:600}
.pk-pick{display:inline-flex;align-items:center;gap:10px;padding:8px 10px 8px 10px;border-radius:20px;background:var(--sf);border:2px solid color-mix(in srgb,var(--c,var(--a)) 45%,var(--ln));box-shadow:0 12px 30px color-mix(in srgb,var(--c,var(--a)) 18%,transparent)}
.pk-pick.pk-a{--c:var(--a)}.pk-pick.pk-b{--c:var(--b)}
.pk-pick .pk-ic{width:40px;height:40px;margin:0;border-radius:0;box-shadow:none!important;background:none!important}
.pk-pick select,.pk-pick .ss-btn{border:0;background:none;font:inherit;color:var(--ink);padding:4px 30px 4px 2px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2366708a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;min-height:0;box-shadow:none}
.pk-pick .ss{display:inline-block}.pk-pick .ss-btn span{font:inherit}
.pk-pick select:focus-visible,.pk-pick .ss-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--c) 45%,transparent);outline-offset:4px;border-radius:10px}
.pk3 .pk-chips{margin:26px auto 34px}
.pk3 .pk-chips button{background:color-mix(in srgb,var(--sf) 75%,transparent);padding:6px 14px 6px 6px;font-size:14px}
.pk3 .pk-chips button i{width:26px!important;height:26px!important}
.pk-res{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:36px;align-items:start;max-width:1040px;margin:0 auto;padding:34px 36px;border-radius:28px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 30px 60px -20px color-mix(in srgb,var(--a) 25%,transparent)}
.pk-res.flip{animation:tgflip .45s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.pk-res.flip{animation:none}}
.pk-pair{display:flex;margin-bottom:14px}.pk-pair i{width:56px;height:56px;display:block}.pk-pair i+i{margin-left:-10px}
.pk-l h3{margin:0 0 6px;font:800 30px/1.1 Sora,Inter,sans-serif;letter-spacing:-.03em}
.pk-l h3 em{font-style:normal;color:var(--mut);font-weight:600}
.pk-l>p{margin:0;color:var(--ink2)}
.pk-l .tg-go{flex-direction:column;gap:8px;margin-top:22px}
.pk-pts{list-style:none;counter-reset:pk;margin:0;padding:0;display:grid;gap:0}
.pk-pts li{counter-increment:pk;display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start;padding:16px 0;border-top:1px solid var(--ln);font-size:16.5px;line-height:1.55;color:var(--ink)}
.pk-pts li:first-child{border-top:0;padding-top:4px}
.pk-pts li::before{content:counter(pk,decimal-leading-zero);font:700 22px Sora,sans-serif;background:linear-gradient(135deg,var(--a),var(--b));-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:860px){.pk-res{grid-template-columns:1fr;padding:26px}}

/* ---- Together: every join as a grid ---- */
.tg-all{padding:90px 0}
.tg-shp{color:var(--ink2);margin:8px 0 0}
.jm-wrap{overflow-x:auto;border-radius:26px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);padding:18px 18px 12px}
.jm{border-collapse:separate;border-spacing:0;width:100%;min-width:860px}
.jm th,.jm td{padding:0;text-align:center;vertical-align:middle}
.jm thead th{padding:0 0 10px;vertical-align:bottom}
.jm-ch{display:flex;flex-direction:column;align-items:center;gap:6px}
.jm-ch i{width:26px;height:26px;display:block}
.jm-ch span{font:600 10.5px Inter,sans-serif;color:var(--mut);writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.jm tbody th{text-align:left;padding:4px 14px 4px 4px;white-space:nowrap}
.jm-rh{display:inline-flex;align-items:center;gap:10px;font:600 14px Inter,sans-serif;color:var(--ink)}
.jm-rh i{width:26px;height:26px;display:block}
.jm td{height:40px;border-top:1px solid color-mix(in srgb,var(--ln) 60%,transparent)}
.jm tbody tr:first-child td,.jm tbody tr:first-child th{border-top:0}
.jm tbody th{border-top:1px solid color-mix(in srgb,var(--ln) 60%,transparent)}
.jm .hl-r td,.jm .hl-r th,.jm .hl-c{background:color-mix(in srgb,#3778f5 5%,transparent)}
.jm-dot{display:inline-block;width:18px;height:18px;border-radius:99px;background:linear-gradient(135deg,var(--a),var(--b));box-shadow:0 4px 10px color-mix(in srgb,var(--a) 30%,transparent);transition:transform .2s}
.jm-dot:hover,.jm-dot:focus-visible{transform:scale(1.45)}
.jm-self{display:inline-block;width:8px;height:8px;border-radius:99px;background:var(--ln)}
.jm-tot{font:700 12px "IBM Plex Mono",monospace;color:var(--mut);padding-left:10px!important}
.jm-text{margin-top:18px;text-align:center}
.jm-text summary{display:inline-flex;cursor:pointer;font-weight:600;color:var(--blue,#3778f5);list-style:none}
.jm-text summary::-webkit-details-marker{display:none}
.tg-jl2{text-align:left;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
.tg-j2 h3{margin:0 0 8px;font:700 16px Sora,Inter,sans-serif}
.tg-j2>div{padding:8px 0;border-top:1px dashed var(--ln)}.tg-j2 b{font-size:14px}.tg-j2 .ul2 li{font-size:14px}
@media (max-width:860px){.tg-jl2{grid-template-columns:1fr}}
.pk-say{font-size:clamp(20px,2.3vw,30px)}
.pk-pick .ss{width:auto!important;max-width:none!important;position:relative}
.pk-pick .ss-btn{background-image:none;padding-right:6px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.pk-pick .ss-btn span{overflow:visible;text-overflow:clip;max-width:none}
.pk-pick .ss-pop{font:500 15px Inter,sans-serif;letter-spacing:0;min-width:240px}
.pk3 .pk-pts{grid-template-columns:1fr;gap:0}
.pk3 .pk-pts li{display:grid;flex-direction:initial;grid-template-columns:52px 1fr;gap:14px;padding:16px 0;border:0;border-top:1px solid var(--ln);border-radius:0;background:none;box-shadow:none}
.pk3 .pk-pts li:first-child{border-top:0;padding-top:4px}
.pk-pick .ss-pop{top:calc(100% + 12px);left:-58px;text-align:left}.pk-pick .ss-pop li{font-size:15px}

/* closing band, two columns: words left, places (family) or the product and its group (product) right (owner 2026-11-03) */
.cta2.cx{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:44px;align-items:center;text-align:left;padding:56px 56px}
.cta2.cx::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 260px at 85% 20%,rgba(255,255,255,.18),transparent 70%),radial-gradient(400px 220px at 10% 110%,rgba(0,182,235,.25),transparent 70%);pointer-events:none}
.cta2.cx>*{position:relative}
.cta2.cx h2{text-align:left;margin-left:0}
.cta2.cx p{text-align:left;margin-left:0;max-width:520px}
.cta2.cx .cta{justify-content:flex-start}
.cx-places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cx-places a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;font-weight:600;font-size:14.5px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,transform .2s}
.cx-places a span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.95);color:#2a4fd6;flex:none}
.cx-places a:hover{background:rgba(255,255,255,.22);transform:translateY(-2px);text-decoration:none}
.cx-orb{position:relative;height:300px;display:grid;place-items:center}
.cx-ring{position:absolute;left:50%;top:50%;border-radius:50%;border:1.5px dashed rgba(255,255,255,.35);transform:translate(-50%,-50%)}
.cx-ring.r1{width:170px;height:170px}.cx-ring.r2{width:270px;height:270px;animation:cxspin 60s linear infinite}
.cx-me{width:104px;height:104px;border-radius:30px;background:#fff!important;display:grid;place-items:center;box-shadow:0 20px 50px rgba(10,20,80,.35)!important;padding:8px;z-index:1}
.cx-me img.pi{width:88px!important;height:88px!important}
.cx-m{position:absolute;left:50%;top:50%;width:56px;height:56px;border-radius:18px;background:#fff!important;display:grid;place-items:center;padding:8px;box-shadow:0 10px 24px rgba(10,20,80,.25)!important;--ang:calc(360deg / var(--n) * var(--k) - 90deg);transform:translate(-50%,-50%) rotate(var(--ang)) translate(135px) rotate(calc(-1 * var(--ang)))}
@keyframes cxspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cx-ring.r2{animation:none}}
@media (max-width:900px){.cta2.cx{grid-template-columns:1fr;padding:40px 26px}.cx-orb{height:280px}}
@media (max-width:520px){.cx-places{grid-template-columns:1fr}}
.cx-orb .cx-me:has(>img.pi),.cx-orb .cx-m:has(>img.pi){background:#fff!important}
.cx-orb .cx-me:has(>img.pi){box-shadow:0 20px 50px rgba(10,20,80,.35)!important}
.cx-orb .cx-m:has(>img.pi){box-shadow:0 10px 24px rgba(10,20,80,.25)!important}
.cx-places a:last-child:nth-child(odd){grid-column:1/-1}
/* the side buildings: full colour and lit like the group's own (owner 2026-11-03 "dull and static") */
:is(.pgrp,.pr-hero,.ltown) .gpic .bfill{opacity:.9}
[data-theme=dark] :is(.pgrp,.pr-hero,.ltown) .gpic .bfill{opacity:.85}

.cx-places a.cx-all{grid-column:auto!important;background:rgba(255,255,255,.95);color:#2a4fd6;border-color:#fff}
.cx-places a.cx-all span{background:#2a4fd6;color:#fff;font-weight:700}
.cx-places a.cx-all:hover{background:#fff}

/* home: the menu follows the page (owner 2026-11-03) */
.nav.nav-fix{position:fixed;transition:background .25s,box-shadow .25s,backdrop-filter .25s}
.nav.nav-fix.stuck{background:linear-gradient(120deg,rgba(27,58,168,.94),rgba(42,79,214,.94));backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);box-shadow:0 8px 30px rgba(10,20,70,.25)}
:root[data-theme=dark] .nav.nav-fix.stuck{background:rgba(7,17,49,.92)}

/* ---- Home in light mode: the hero is a light sky in the page's own colour, not a blue block (owner 2026-11-03).
   Dark mode keeps its night-blue hero, which already runs into the dark page. ---- */
:root:not([data-theme=dark]) .hero:is(.day,.dusk,.night){--s1:color-mix(in srgb,#3778f5 10%,var(--bg));--s2:color-mix(in srgb,#7c4dff 5%,var(--bg));--s3:var(--bg);--line:rgba(55,120,245,.85);--fill:rgba(55,120,245,.05);color:var(--ink)}
:root:not([data-theme=dark]) .hero .sign text{fill:rgba(40,90,220,.95)}
:root:not([data-theme=dark]) .hc .eye{color:#3778f5}
:root:not([data-theme=dark]) .hc h1{color:var(--ink)}
:root:not([data-theme=dark]) .hc h1 em{background-image:linear-gradient(110deg,#00a6e8,#3778f5 50%,#824ae4)}
:root:not([data-theme=dark]) .hc .lead{color:var(--ink2)}
:root:not([data-theme=dark]) .hc .btn.g{color:var(--ink);border-color:var(--ln);background:var(--sf)}
:root:not([data-theme=dark]) .hc .pick{background:var(--sf);border-color:var(--ln);color:var(--ink);box-shadow:var(--card)}
:root:not([data-theme=dark]) .pick select,:root:not([data-theme=dark]) .pick .pbtn{background-color:var(--sf2)}
:root:not([data-theme=dark]) .sky2 svg path,:root:not([data-theme=dark]) .sky2 svg g{stroke:rgba(55,120,245,.5)!important}
:root:not([data-theme=dark]) .sky2 svg path[fill^="rgba(255"]{fill:rgba(255,255,255,.7)!important}
/* the header over it: dark words in light mode */
:root:not([data-theme=dark]) body.pg-home .nav{color:var(--ink)}
:root:not([data-theme=dark]) body.pg-home .nav .links a{color:var(--ink2)}
:root:not([data-theme=dark]) body.pg-home .nav .links a:hover{background:var(--sf2);color:var(--ink)}
:root:not([data-theme=dark]) body.pg-home .nav .links a[aria-current=page]{background:color-mix(in srgb,#3778f5 12%,transparent);color:#2a5bd7}
:root:not([data-theme=dark]) body.pg-home .nav .si{color:var(--ink)}
:root:not([data-theme=dark]) body.pg-home .nav .wm{color:var(--ink)}
:root:not([data-theme=dark]) body.pg-home .nav .mode,:root:not([data-theme=dark]) body.pg-home .nav .menu-btn{color:var(--ink);border-color:var(--ln);background:var(--sf)}
/* light home: the menu that follows the page is white glass with dark words, like the inner pages */
:root:not([data-theme=dark]) body.pg-home .nav.nav-fix.stuck{background:color-mix(in srgb,var(--bg) 94%,transparent);box-shadow:0 6px 24px rgba(15,25,50,.08);border-bottom:1px solid var(--ln)}
/* the menu turns solid at once when the page moves: no fade (owner 2026-11-03 "the animation makes it awkward") */
.pg-inner .nav.nav-solid,.pg-inner .pnav,.nav.nav-fix{transition:none!important}

/* product home in light mode: the same light sky as the family home, so its header is light too (owner 2026-11-03) */
:root:not([data-theme=dark]) .pg-learn .crumb{background:color-mix(in srgb,#3778f5 8%,var(--bg));color:var(--ink2)}
:root:not([data-theme=dark]) .pg-learn .crumb a{color:var(--ink)}
:root:not([data-theme=dark]) .pg-learn:not(.scrolled) .pnav{background:color-mix(in srgb,#3778f5 10%,var(--bg));color:var(--ink);border-bottom-color:transparent}
:root:not([data-theme=dark]) .pg-learn:not(.scrolled) .pnav .plogo{color:var(--ink)}
:root:not([data-theme=dark]) .pg-learn:not(.scrolled) .pnav .plogo em{background:none;-webkit-background-clip:initial;background-clip:initial}
:root:not([data-theme=dark]) .pg-learn:not(.scrolled) .pnav .links2 a{color:var(--ink2)}
:root:not([data-theme=dark]) .pg-learn:not(.scrolled) .pnav .links2 a[aria-current]{color:var(--act)}
:root:not([data-theme=dark]) .pg-learn:not(.scrolled) .pnav .si{color:var(--ink)}
:root:not([data-theme=dark]) .hero .aud2{color:var(--mut)}

/* product home: no strip above the header any more (owner 2026-11-03) */
.pg-inner .pnav{top:0}
/* features: the topic list stays below the search bar */
.toc3{top:160px;max-height:calc(100vh - 180px);overflow:auto}
.fx3 .apanel,.fx3 [id]{scroll-margin-top:170px}

/* ---- before and after, in the new look: one card per change, today above, with the product below ---- */
.ba3s{background:linear-gradient(180deg,color-mix(in srgb,var(--c) 7%,var(--bg)),var(--bg))}
.ba3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}
.ba3c{display:flex;flex-direction:column;border-radius:22px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.ba3c:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 35%,var(--ln));box-shadow:0 18px 40px color-mix(in srgb,var(--c) 14%,transparent)}
.ba3c small{display:flex;align-items:center;gap:8px;font:600 10.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase}
.ba3-was{padding:20px 22px 18px;flex:1}
.ba3-was small{color:var(--mut)}
.ba3-was p{margin:8px 0 0;color:var(--ink2);font-size:14.5px;line-height:1.5;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--mut) 55%,transparent);text-decoration-thickness:1px}
.ba3-now{position:relative;padding:18px 22px 22px;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 10%,var(--sf)),color-mix(in srgb,var(--c) 4%,var(--sf)));border-top:1px dashed color-mix(in srgb,var(--c) 30%,var(--ln))}
.ba3-now small{color:var(--c)}
.ba3-now small i{width:18px;height:18px;border-radius:99px;display:grid;place-items:center;background:var(--c);color:#fff}
.ba3-now b{display:block;margin-top:8px;font:700 16.5px/1.4 Sora,Inter,sans-serif;letter-spacing:-.01em;color:var(--ink)}
[data-theme=dark] .ba3-now small{color:color-mix(in srgb,var(--c) 55%,#fff)}
@media (max-width:980px){.ba3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.ba3{grid-template-columns:1fr}}

/* ---- dark mode readability (measured, owner 2026-11-03): product-coloured small words get lighter, the main
   button a deeper blue so white words on it read ---- */
.btn.p{background:#2563eb}
.btn.p:hover{background:#1d4fd8}
[data-theme=dark] .pc-url{color:color-mix(in srgb,var(--c) 50%,#fff)!important}
[data-theme=dark] .pgrp-h .eye2{color:color-mix(in srgb,var(--a) 50%,#fff)!important}
[data-theme=dark] .gj-n{color:color-mix(in srgb,var(--c) 50%,#fff)}
[data-theme=dark] .g6x .gn{color:color-mix(in srgb,var(--a) 50%,#fff)!important}
[data-theme=dark] :is(.tg-steps small,.st small,.pairn2 span){filter:brightness(1.6) saturate(.85)}
[data-theme=dark] :is(.one-eye,.gj-place,.jm-text summary,.badge2){color:#c3d4ff!important}
[data-theme=dark] .cta2 p{color:rgba(255,255,255,.94)!important}
[data-theme=dark] :is(.ct-form label,.crumbs a){color:var(--ink2)}
[data-theme=dark] :is(.dot,.tg-dot){font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.35)}
/* before and after, round 2: no strike-through, the two halves line up across a row, a small arrow on the seam */
.ba3{grid-auto-rows:auto auto;row-gap:16px}
.ba3c{display:grid;grid-row:span 2;grid-template-rows:subgrid;gap:0}
.ba3-was p{text-decoration:none;color:var(--ink2)}
.ba3-was small{gap:7px}
.ba3-was small::before{content:"";width:7px;height:7px;border-radius:99px;background:color-mix(in srgb,var(--mut) 60%,transparent)}
.ba3-now{border-top:1px solid color-mix(in srgb,var(--c) 18%,var(--ln))}
.ba3-now::before{content:"";position:absolute;left:22px;top:-12px;width:22px;height:22px;border-radius:99px;background:var(--sf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2366708a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E") center no-repeat;border:1px solid color-mix(in srgb,var(--c) 22%,var(--ln))}
.ba3-now small{margin-left:30px}
.ba3-now small i{display:none}
.ba3-now b{font-size:16px}
.ba3-now::before{left:auto;right:22px}.ba3-now small{margin-left:0}

/* ---- before and after, round 3: one split card, today on the left, the product on the right, rows aligned ---- */
.ba4s{background:var(--bg)}
.ba4{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:34px;border-radius:28px;overflow:hidden;border:1px solid var(--ln);box-shadow:0 30px 70px -30px color-mix(in srgb,var(--c) 35%,transparent);background:var(--sf)}
.ba4-l{background:var(--sf)}
.ba4-r{background:linear-gradient(120deg,color-mix(in srgb,var(--c) 9%,var(--sf)),color-mix(in srgb,var(--c) 15%,var(--sf)));border-left:1px solid color-mix(in srgb,var(--c) 18%,var(--ln))}
.ba4-h{display:flex;align-items:center;gap:10px;padding:22px 30px 14px;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.ba4-h.ba4-r{color:var(--c)}
.ba4-h i{width:22px;height:22px;display:block}
.ba4-dot{width:8px;height:8px;border-radius:99px;background:color-mix(in srgb,var(--mut) 60%,transparent)}
.ba4-c{display:flex;align-items:center;gap:14px;padding:18px 30px;border-top:1px solid var(--ln);min-height:76px}
.ba4-l.ba4-c{color:var(--ink2);font-size:15px;line-height:1.5}
.ba4-r.ba4-c{border-top-color:color-mix(in srgb,var(--c) 14%,var(--ln))}
.ba4-r.ba4-c b{font:700 16px/1.4 Sora,Inter,sans-serif;letter-spacing:-.01em;color:var(--ink)}
.ba4-ck{flex:none;width:24px;height:24px;border-radius:99px;display:grid;place-items:center;background:var(--c);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--c) 35%,transparent)}
[data-theme=dark] .ba4-h.ba4-r{color:color-mix(in srgb,var(--c) 50%,#fff)}
@media (max-width:760px){.ba4{grid-template-columns:1fr}.ba4-h.ba4-r{display:none}.ba4-r{border-left:0}.ba4-l.ba4-c{border-top:1px solid var(--ln);padding-bottom:8px;min-height:0;font-size:14px}.ba4-r.ba4-c{border-top:0;padding-top:4px;min-height:0;background:none}}

/* ---- the product's joins: one card per partner, both icons, the joins as links (no lines drawn) ---- */
.jn3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;margin-top:34px}
.jn3c{display:flex;flex-direction:column;gap:14px;padding:24px 26px;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.jn3h{display:flex;align-items:center;gap:16px}
.jn3p{display:flex;flex:none}.jn3p i{width:44px;height:44px;display:block}.jn3p i+i{margin-left:-8px}
.jn3h small{font:600 10.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.jn3h h3{margin:2px 0 0;font:700 19px/1.25 Sora,Inter,sans-serif;letter-spacing:-.02em;color:var(--ink)}
.jn3l{list-style:none;margin:0;padding:0;border-top:1px solid var(--ln)}
.jn3l a{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--ln);color:var(--ink2);font-size:14.5px}
.jn3l a span{flex:1}.jn3l a em{font-style:normal;color:var(--mut);transition:transform .2s,color .2s}
.jn3l a:hover{color:var(--ink);text-decoration:none}.jn3l a:hover em{transform:translateX(4px);color:var(--b)}
.jn3go{font-weight:600;font-size:14px;margin-top:auto}
.jn3c{text-align:left}.jn3h h3{font-size:20px}

/* ---- before / after slider (owner 2026-11-03) ---- */
.bss{background:var(--bg)}
.bs{position:relative;margin-top:34px;border-radius:28px;overflow:hidden;border:1px solid var(--ln);box-shadow:0 40px 80px -40px color-mix(in srgb,var(--c) 45%,transparent);user-select:none;-webkit-user-select:none;touch-action:pan-y}
.bs-layer{display:grid;grid-template-rows:auto;}
.bs-was{background:repeating-linear-gradient(135deg,transparent 0 14px,color-mix(in srgb,var(--mut) 5%,transparent) 14px 15px),color-mix(in srgb,var(--ink) 3%,var(--sf));color:var(--ink2)}
.bs-now{position:absolute;inset:0;color:#fff;background:radial-gradient(600px 300px at 85% 0,rgba(255,255,255,.18),transparent 70%),linear-gradient(125deg,color-mix(in srgb,var(--c) 85%,#0b1d6b),var(--c) 55%,color-mix(in srgb,var(--c) 70%,#7c4dff));clip-path:inset(0 0 0 var(--x));will-change:clip-path}
.bs-h{display:flex;align-items:center;padding:22px 34px 12px;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase}
.bs-was .bs-h{color:var(--mut)}
.bs-now .bs-h{justify-content:flex-end;color:rgba(255,255,255,.85)}
.bs-h span{display:inline-flex;align-items:center;gap:10px}
.bs-h i{width:22px;height:22px;display:block;background:#fff;border-radius:7px;padding:2px}
.bs-row{display:flex;align-items:center;gap:16px;min-height:74px;padding:14px 34px;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}
.bs-was .bs-row span{font-size:15.5px;line-height:1.5}
.bs-now .bs-row b{font:700 18px/1.35 Sora,Inter,sans-serif;letter-spacing:-.015em}
.bs-ic{flex:none;width:26px;height:26px;border-radius:99px;display:grid;place-items:center}
.bs-was .bs-ic{background:color-mix(in srgb,var(--mut) 18%,transparent);color:var(--mut)}
.bs-now .bs-ic{background:#fff;color:var(--c);box-shadow:0 6px 16px rgba(0,0,0,.18)}
.bs-knob{position:absolute;top:0;bottom:0;left:var(--x);width:0;pointer-events:none;z-index:3}
.bs-knob::before{content:"";position:absolute;top:0;bottom:0;left:-1.5px;width:3px;background:#fff;box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent),0 0 24px rgba(255,255,255,.6)}
.bs-knob span{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:99px;display:grid;place-items:center;background:#fff;color:var(--c);box-shadow:0 10px 30px rgba(10,20,60,.3),0 0 0 6px color-mix(in srgb,#fff 35%,transparent)}
.bs:not(.moved) .bs-knob span{animation:bsping 2.4s ease-in-out 3s infinite}
@keyframes bsping{0%,100%{box-shadow:0 10px 30px rgba(10,20,60,.3),0 0 0 6px rgba(255,255,255,.35)}50%{box-shadow:0 10px 30px rgba(10,20,60,.3),0 0 0 14px rgba(255,255,255,.12)}}
.bs-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:4;-webkit-appearance:none;appearance:none}
.bs-range:focus-visible+*,.bs:has(.bs-range:focus-visible) .bs-knob span{outline:3px solid #fff;outline-offset:3px}
.bs-tip{margin:14px 0 0;text-align:center;color:var(--mut);font-size:13.5px}
[data-theme=dark] .bs-was{background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(255,255,255,.025) 14px 15px),var(--sf)}
@media (max-width:640px){.bs-row{min-height:92px;padding:12px 20px}.bs-h{padding:18px 20px 10px}.bs-now .bs-row b{font-size:15.5px}.bs-was .bs-row span{font-size:14px}}
@media (prefers-reduced-motion:reduce){.bs-knob span{animation:none!important}}
.bs-h{height:58px;padding-top:0;padding-bottom:0}
.bs-was .bs-row span{max-width:44%}
.bs-now .bs-row{justify-content:flex-end;text-align:left}
.bs-now .bs-row b{max-width:44%;order:2}
.bs-now .bs-row .bs-ic{order:1}
.bs-now .bs-row{justify-content:flex-start;padding-left:calc(50% + 34px)}.bs-now .bs-row b{max-width:none;order:0}.bs-now .bs-row .bs-ic{order:0}.bs-now .bs-h{justify-content:flex-start;padding-left:calc(50% + 34px)}@media (max-width:640px){.bs-now .bs-row,.bs-now .bs-h{padding-left:calc(50% + 14px)}}
/* slider colours, round 2 (owner: "colors are bad"): the family's deep blue to violet, today on plain white */
.bs-now{background:radial-gradient(520px 260px at 90% 0,rgba(255,255,255,.14),transparent 70%),linear-gradient(125deg,#1b3aa8,#2f63e6 55%,#6a46d8)}
.bs-now .bs-ic{color:#2f63e6}
.bs-was{background:var(--sf)}
[data-theme=dark] .bs-was{background:var(--sf)}
.bs{box-shadow:0 40px 80px -40px rgba(27,58,168,.45)}
.bs-knob span{color:#2f63e6}

/* ---- "at work" as a three-step story beside one line-drawn phone (owner 2026-11-03) ---- */
.aw3w{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:center}
.aw3s{display:flex;flex-direction:column;gap:10px;margin-top:26px}
.aw3s button{position:relative;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;text-align:left;padding:16px 18px;border-radius:18px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:rgba(255,255,255,.62);font:500 15.5px/1.5 Inter,sans-serif;cursor:pointer;overflow:hidden;transition:background .3s,color .3s,border-color .3s}
.aw3s button .n{font:600 12px "IBM Plex Mono",monospace;color:rgba(255,255,255,.45);padding-top:3px}
.aw3s button:hover{color:#fff;background:rgba(255,255,255,.06)}
.aw3s button[aria-selected=true]{color:#fff;background:rgba(255,255,255,.08);border-color:color-mix(in srgb,var(--c) 55%,transparent)}
.aw3s button[aria-selected=true] .n{color:color-mix(in srgb,var(--c) 60%,#fff)}
.aw3s .bar{position:absolute;left:0;bottom:0;height:2px;width:0;background:linear-gradient(90deg,var(--c),#a78bfa)}
.aw3.run .aw3s button[aria-selected=true] .bar{animation:awbar 5.2s linear forwards}
@keyframes awbar{to{width:100%}}
.aw3more{margin-top:22px}
.aw3p{display:grid;place-items:center}
.aw3ph{position:relative;width:min(320px,100%);aspect-ratio:9/18.5;border-radius:44px;border:2px solid rgba(190,210,255,.55);padding:54px 22px 24px;background:radial-gradient(300px 240px at 50% 0,color-mix(in srgb,var(--c) 22%,transparent),transparent 70%),rgba(255,255,255,.02);box-shadow:0 40px 90px -30px color-mix(in srgb,var(--c) 45%,transparent),inset 0 0 0 8px rgba(255,255,255,.02)}
.aw3notch{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:70px;height:8px;border-radius:99px;background:rgba(190,210,255,.35)}
.aw3sc{display:flex;flex-direction:column;gap:12px;animation:awin .5s cubic-bezier(.2,.8,.2,1)}
.aw3sc[hidden]{display:none}
@keyframes awin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.aw3h{display:flex;justify-content:space-between;align-items:center;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.aw3h i{width:26px;height:26px;border-radius:99px;border:1.5px solid rgba(190,210,255,.5)}
.aw3card{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:16px;border:1.5px solid rgba(190,210,255,.35);color:#fff;animation:awin .5s both;animation-delay:calc(var(--i)*.12s)}
.aw3card b{font:700 14px Sora,Inter,sans-serif}.aw3card span{font-size:12.5px;color:rgba(255,255,255,.65)}
.aw3card.hi{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.aw3prog{display:block;height:5px;border-radius:99px;background:rgba(255,255,255,.12);margin-top:8px;overflow:hidden}.aw3prog em{display:block;height:100%;width:75%;background:var(--c);border-radius:inherit;animation:awfill 1.4s .3s both}
@keyframes awfill{from{width:0}}
.aw3vid{position:relative;aspect-ratio:16/10;border-radius:16px;border:1.5px solid var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);overflow:hidden}
.aw3play{position:absolute;left:50%;top:44%;transform:translate(-40%,-50%);width:0;height:0;border-left:22px solid #fff;border-top:14px solid transparent;border-bottom:14px solid transparent}
.aw3wm{position:absolute;padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.14);color:rgba(255,255,255,.75);font:600 10px "IBM Plex Mono",monospace;letter-spacing:.06em;white-space:nowrap;animation:awwm 7s ease-in-out infinite alternate}
@keyframes awwm{0%{left:6%;top:10%}50%{left:46%;top:62%}100%{left:12%;top:72%}}
.aw3vbar{position:absolute;left:10px;right:10px;bottom:10px;height:4px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}.aw3vbar em{display:block;height:100%;width:62%;background:#fff;border-radius:inherit;animation:awfill 5s linear both}
.aw3lines{display:flex;flex-direction:column;gap:8px;padding:4px 2px}.aw3lines i{height:6px;border-radius:99px;background:rgba(190,210,255,.25)}.aw3lines i:nth-child(1){width:80%}.aw3lines i:nth-child(2){width:62%}.aw3lines i:nth-child(3){width:70%}
.aw3quiz{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:16px;border:1.5px dashed rgba(190,210,255,.45);color:#fff}.aw3quiz b{font:700 14px Sora,Inter,sans-serif}.aw3quiz span{font-size:12px;color:rgba(255,255,255,.62)}
.aw3tm{display:grid;grid-template-columns:30px 1fr 40px;gap:10px;align-items:center;color:rgba(255,255,255,.75);font:600 11px "IBM Plex Mono",monospace;animation:awin .5s both;animation-delay:calc(var(--i)*.1s)}
.aw3tm .av{width:30px;height:30px;border-radius:99px;border:1.5px solid rgba(190,210,255,.5);background:rgba(255,255,255,.04)}
.aw3tm .tb{height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.aw3tm .tb em{display:block;height:100%;width:var(--w);background:linear-gradient(90deg,var(--c),#a78bfa);border-radius:inherit;animation:awfill 1.2s both;animation-delay:calc(.2s + var(--i)*.12s)}
@media (max-width:900px){.aw3w{grid-template-columns:1fr;gap:36px}.aw3ph{width:min(300px,90%)}}
@media (prefers-reduced-motion:reduce){.aw3 *{animation:none!important}}
/* slider header: readable on both halves */
.bs-h{font-size:12px;letter-spacing:.12em}
.bs-was .bs-h{color:var(--ink2)}
.bs-now .bs-h{color:#fff}
.bs .bs-now .bs-h i:has(>img.pi){width:26px;height:26px;background:#fff!important;border-radius:8px;padding:3px}
.aw3ph{aspect-ratio:9/16;padding-bottom:70px}
.aw3tab{position:absolute;left:18px;right:18px;bottom:16px;height:44px;display:flex;justify-content:space-around;align-items:center;border-top:1px solid rgba(190,210,255,.18)}
.aw3tab i{width:20px;height:20px;border-radius:7px;border:1.5px solid rgba(190,210,255,.4)}.aw3tab i.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 30%,transparent)}

/* "at work" in light mode: a light band, a white phone drawn in blue (owner 2026-11-03 "make the colour light") */
:root:not([data-theme=dark]) .aw3{color:var(--ink);background:var(--bg)}
:root:not([data-theme=dark]) .aw3::before{display:none}
:root:not([data-theme=dark]) .aw3 .eye{color:#2563eb}
:root:not([data-theme=dark]) .aw3 .t{color:var(--ink)}
:root:not([data-theme=dark]) .aw3 .more-w{color:#2563eb}
:root:not([data-theme=dark]) .aw3s button{background:var(--sf);border-color:var(--ln);color:var(--ink2);box-shadow:var(--card)}
:root:not([data-theme=dark]) .aw3s button .n{color:var(--mut)}
:root:not([data-theme=dark]) .aw3s button:hover{background:var(--sf);color:var(--ink)}
:root:not([data-theme=dark]) .aw3s button[aria-selected=true]{color:var(--ink);background:var(--sf);border-color:color-mix(in srgb,var(--c) 55%,var(--ln));box-shadow:0 14px 34px color-mix(in srgb,var(--c) 18%,transparent)}
:root:not([data-theme=dark]) .aw3s button[aria-selected=true] .n{color:#2563eb}

/* light mode: white page, the phone itself stays a dark screen (owner 2026-11-03) */
:root:not([data-theme=dark]) .aw3ph{background:radial-gradient(300px 240px at 50% 0,color-mix(in srgb,var(--c) 28%,transparent),transparent 70%),linear-gradient(180deg,#0e1a44,#0a1230);border:10px solid #1a2240;box-shadow:0 50px 90px -35px rgba(15,30,90,.55),0 0 0 1px rgba(15,30,90,.15)}
/* feature icons in the apps' style */
.f3a{display:block;width:52px;height:52px;margin-bottom:12px}
.f3a svg{width:52px;height:52px;display:block;overflow:visible}
.fq2-ask .av3:has(>img.pi){width:46px;height:46px}
/* dark mode: the "at work" glow fades into the page at both edges, no line (owner 2026-11-03) */
[data-theme=dark] .aw3::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,var(--bg),transparent 120px,transparent calc(100% - 160px),var(--bg))}
.aw3>.w{position:relative;z-index:1}

/* closing card on product sites: the family's blue-violet, and what happens next (owner 2026-11-03) */
.k-product .cta2.cx{background:radial-gradient(520px 260px at 90% 0,rgba(255,255,255,.14),transparent 70%),linear-gradient(125deg,#1b3aa8,#2f63e6 55%,#6a46d8)!important}
.cx-next{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:none}
.cx-next li{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:rgba(255,255,255,.82);font-size:14px;line-height:1.45;text-align:left}
.cx-next b{flex:none;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff;color:#2f63e6;font:700 12px "IBM Plex Mono",monospace}
.cx-next strong{display:block;color:#fff;font:700 16px/1.3 Sora,Inter,sans-serif;margin-bottom:2px}

/* who it's for: today and the answer as one joined card */
.who4{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);border-radius:28px;overflow:hidden;border:1px solid var(--ln);box-shadow:0 40px 80px -40px rgba(27,58,168,.4)}
.w4-was{padding:30px 34px;background:var(--sf)}
.w4-now{padding:30px 36px;color:#fff;background:radial-gradient(520px 260px at 90% 0,rgba(255,255,255,.14),transparent 70%),linear-gradient(125deg,#1b3aa8,#2f63e6 55%,#6a46d8)}
.w4-h{display:flex;align-items:center;gap:10px;margin-bottom:18px;font:600 12px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.w4-now .w4-h{color:#fff}
.w4-now .w4-h i{width:28px;height:28px;display:block;background:#fff!important;border-radius:8px;padding:3px}
.w4-was ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.w4-was li{display:flex;gap:12px;align-items:flex-start;color:var(--ink2);font-size:15.5px;line-height:1.5}
.w4-was li i{flex:none;width:24px;height:24px;border-radius:99px;display:grid;place-items:center;background:color-mix(in srgb,var(--mut) 18%,transparent);color:var(--mut);margin-top:1px}
.w4-now p{margin:0;font:600 19px/1.55 Sora,Inter,sans-serif;letter-spacing:-.01em}
@media (max-width:860px){.who4{grid-template-columns:1fr}}
.gi-app{display:block;flex:none;line-height:0}.gi-app svg{overflow:visible}

/* course store: three course covers fanned out in the hero, the empty state as how the store works (owner 2026-11-03) */
.stc{position:relative;height:300px;max-width:420px;justify-self:end;width:100%}
.stc-c{position:absolute;top:30px;width:190px;padding:14px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 24px 50px -20px rgba(15,30,90,.35);display:flex;flex-direction:column;gap:8px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.stc-c .stc-cv{display:grid;place-items:center;height:96px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 14%,var(--sf)),color-mix(in srgb,var(--c) 26%,var(--sf)))}
.stc-c b{font:700 14px Sora,Inter,sans-serif;color:var(--ink)}
.stc-c i{display:block;height:6px;border-radius:99px;background:var(--sf2);width:85%}.stc-c i+i{width:60%}
.stc-b{align-self:flex-start;margin-top:4px;padding:5px 10px;border-radius:99px;background:var(--c);color:#fff;font:600 11px Inter,sans-serif}
.stc-c.c1{left:0;transform:rotate(-8deg) translateY(18px)}.stc-c.c2{left:28%;transform:rotate(2deg);z-index:2}.stc-c.c3{right:0;transform:rotate(9deg) translateY(24px)}
.stc:hover .stc-c.c1{transform:rotate(-12deg) translate(-14px,10px)}.stc:hover .stc-c.c3{transform:rotate(13deg) translate(14px,16px)}.stc:hover .stc-c.c2{transform:translateY(-8px)}
@media (max-width:900px){.stc{justify-self:center;height:280px}}
.st-empty{text-align:center;max-width:960px;margin:0 auto;padding:30px 0 10px}
.st-empty .l{max-width:620px;margin:10px auto 0;color:var(--ink2)}
.st-how{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;text-align:left}
.st-how li{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:22px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card)}
.st-how b{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;margin-bottom:8px;background:linear-gradient(135deg,#2f63e6,#6a46d8);color:#fff;font:700 12px "IBM Plex Mono",monospace}
.st-how strong{font:700 16.5px Sora,Inter,sans-serif;color:var(--ink)}
.st-how span{color:var(--ink2);font-size:14.5px}
.st-cta{justify-content:center;margin-top:28px}
.st-cta .btn.g{color:var(--ink);border-color:var(--ln)}
@media (max-width:760px){.st-how{grid-template-columns:1fr}}
.st-cta{display:flex;gap:12px;flex-wrap:wrap}

/* the header once the page moves: real glass - see-through, blurred, a light edge (owner 2026-11-03) */
.pg-inner .nav.nav-solid.stuck,.pg-inner .pnav.stuck,:root:not([data-theme=dark]) body.pg-home .nav.nav-fix.stuck,.pg-learn.scrolled .pnav{background:color-mix(in srgb,var(--bg) 62%,transparent)!important;backdrop-filter:saturate(1.8) blur(22px)!important;-webkit-backdrop-filter:saturate(1.8) blur(22px)!important;border-bottom:1px solid color-mix(in srgb,var(--ln) 70%,rgba(255,255,255,.5))!important;box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 10px 30px rgba(15,25,50,.06)!important}
[data-theme=dark] :is(.pg-inner .nav.nav-solid.stuck,.pg-inner .pnav.stuck,.nav.nav-fix.stuck,.pg-learn.scrolled .pnav){background:color-mix(in srgb,var(--bg) 60%,transparent)!important;box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 10px 30px rgba(0,0,0,.25)!important}
/* no initials (owner rule): the floating notes carry an app-style icon, the class list shows drawn people */
.note i.ni{background:none!important;width:30px;height:30px;padding:0;box-shadow:none!important}
.note i.ni svg,.note i.ni img{width:30px;height:30px;display:block}
.avs i.avp{display:grid;place-items:center;color:hsl(var(--h) 70% 45%);background:hsl(var(--h) 85% 93%)!important}
[data-theme=dark] .avs i.avp{color:hsl(var(--h) 80% 75%);background:hsl(var(--h) 40% 22%)!important}
.si-app,.ic-app{display:block;flex:none;line-height:0;margin-bottom:6px}.si-app svg,.ic-app svg{overflow:visible}
.si3 .si-app{margin:0}

/* how it runs: six step cards with their own drawings (owner 2026-11-03: the big card was mostly empty) */
.stp3{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:none}
.stp3c{position:relative;display:flex;flex-direction:column;border-radius:24px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);overflow:hidden;cursor:pointer;transition:transform .35s,box-shadow .35s,border-color .35s}
.stp3c.on{transform:translateY(-4px);border-color:color-mix(in srgb,#3778f5 45%,var(--ln));box-shadow:0 24px 50px -18px rgba(27,58,168,.35)}
.stp3c:focus-visible{outline:3px solid color-mix(in srgb,#3778f5 50%,transparent);outline-offset:3px}
.stp3-pic{height:150px;display:grid;place-items:center;background:linear-gradient(160deg,color-mix(in srgb,#3778f5 7%,var(--sf)),color-mix(in srgb,#7c4dff 6%,var(--sf)));border-bottom:1px solid var(--ln);color:#3778f5}
.stp3-pic .scv{width:88%;height:140px}
.stp3-b{padding:18px 22px 24px}
.stp3-n{font:700 12px "IBM Plex Mono",monospace;color:var(--mut)}
.stp3c.on .stp3-n{color:#2563eb}
.stp3-b h3{margin:4px 0 6px;font:700 19px/1.25 Sora,Inter,sans-serif;letter-spacing:-.02em;color:var(--ink)}
.stp3-b p{margin:0;color:var(--ink2);font-size:14.5px;line-height:1.55}
.stp3-bar{position:absolute;left:0;bottom:0;height:3px;width:0;background:linear-gradient(90deg,#2f63e6,#6a46d8)}
.stp3c.on .stp3-bar{animation:awbar 3.8s linear forwards}
[data-theme=dark] .stp3c.on .stp3-n{color:#8fb3ff}
@media (max-width:980px){.stp3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.stp3{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.stp3c.on .stp3-bar{animation:none;width:100%}}
/* highlights: the demo larger, on its own white card; tab icons in the apps' style */
.hlx-tab .gi-app{opacity:.6;transition:opacity .25s}.hlx-tab.on .gi-app{opacity:1}
.hlx-demo{min-height:270px;margin-bottom:24px;border-radius:22px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 20px 44px -22px rgba(27,58,168,.3)}
.hlx-demo>.dm{transform:scale(1.28);transform-origin:center}
.hlx-pane{padding:28px 30px}
.hlx-txt h3{font-size:21px}
:root:not([data-theme=dark]) .phero .pscene svg{filter:saturate(1.25) contrast(1.2)}
/* mobile page: the apps as a story on one dark phone */
.aw3-apps .aw3s button{align-items:center}
.aw3-apps .aw3s .n{padding-top:0}
.aw3-apps .aph{display:block;font:700 16px Sora,Inter,sans-serif;color:inherit}
.aw3-apps .apw{display:block;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-top:3px}
.aw3-apps .aw3card b{font-size:13.5px;line-height:1.4}
.aw3-apps .aw3sc{gap:10px}
/* plans: what each plan does and does not include, on its card */
.plg{display:flex;flex-direction:column;gap:8px;margin:14px 0 16px;padding-top:14px;border-top:1px dashed var(--ln);font-size:13.5px}
.plg i{font-style:normal;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:99px;margin-right:8px;font-size:10px;font-weight:800}
.plg-y{color:var(--ink);font-weight:600}.plg-y i{background:color-mix(in srgb,#10b981 18%,transparent);color:#0b8a68}
.plg-n summary{cursor:pointer;color:var(--ink2);font-weight:600;list-style:none}.plg-n summary::-webkit-details-marker{display:none}
.plg-n summary::after{content:" ▾";color:var(--mut)}.plg-n[open] summary::after{content:" ▴"}
.plg-n i{background:color-mix(in srgb,var(--mut) 18%,transparent);color:var(--mut)}
.plg-n ul{list-style:none;margin:8px 0 0 26px;padding:0;display:flex;flex-direction:column;gap:5px;color:var(--mut);max-height:220px;overflow:auto}
.plg-n li::before{content:"✕ ";font-size:9px;opacity:.7}
.plg-all{color:var(--ink2)}
.mk.n{color:color-mix(in srgb,var(--mut) 80%,transparent)}
/* generic product hero street */
#ps.gscene .bd2{opacity:0;transform:translateY(24px);transform-box:fill-box}
#ps.gscene.live .bd2{opacity:1;transform:none;transition:opacity .6s calc(var(--d)*.06s),transform .7s cubic-bezier(.2,.9,.25,1.2) calc(var(--d)*.06s)}
#ps.gscene.live .bd2.far{opacity:.45}#ps.gscene.live .bd2.mate{opacity:.8}
#ps.gscene .win.on{fill:#ffd166;stroke:#e9b440}
#ps.gscene .mbus{animation:mbus 14s linear infinite}
.stp3-ai svg{overflow:visible}
/* generic phone screen 2: something waiting for you, with the two buttons */
.aw3ask{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:18px;border:1.5px solid var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);color:#fff;animation:awin .5s both}
.aw3ask .aw3me{width:38px;height:38px;display:block;margin-bottom:4px}
.aw3ask b{font:700 15px Sora,Inter,sans-serif}.aw3ask>span{font-size:12.5px;color:rgba(255,255,255,.7)}
.aw3btn{display:flex;gap:8px;margin-top:10px}.aw3btn i{flex:1;text-align:center;font-style:normal;padding:8px;border-radius:10px;border:1px solid rgba(255,255,255,.3);font:600 12px Inter,sans-serif;color:#fff}
.aw3btn i.y{background:var(--c);border-color:var(--c)}
/* generic highlight demo: the feature's icon and its first steps */
.dm-gen{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px 6px;width:min(420px,100%)}
.dm-gen .dg-ic svg{width:76px;height:76px;overflow:visible}
.dm-gen ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;width:100%}
.dm-gen li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--sf2);color:var(--ink2);font-size:13.5px;line-height:1.4;text-align:left;animation:awin .5s both;animation-delay:calc(var(--i)*.15s)}
.dm-gen li b{flex:none;width:20px;height:20px;border-radius:99px;display:grid;place-items:center;background:var(--c,#3778f5);color:#fff;font:700 10.5px "IBM Plex Mono",monospace}
.hlx-demo>.dm.dm-gen{transform:none}
/* campus chooser: school or college */
.ch2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:10px}
.ch2c{display:flex;flex-direction:column;gap:12px;padding:30px;border-radius:28px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--card);color:inherit;transition:transform .3s,box-shadow .3s,border-color .3s}
.ch2c:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,var(--ln));box-shadow:0 26px 60px -24px color-mix(in srgb,var(--c) 40%,transparent);text-decoration:none}
.ch2-top{display:flex;align-items:center;gap:14px}.ch2-ic{width:56px;height:56px;display:block}
.ch2-top small{display:block;font:500 13px Sora,Inter,sans-serif;color:var(--ink2)}.ch2-top b{font:800 26px Sora,Inter,sans-serif;letter-spacing:-.03em;color:var(--ink)}
.ch2-top em{margin-left:auto;font-style:normal;color:var(--mut);font-size:22px;transition:transform .2s,color .2s}.ch2c:hover .ch2-top em{transform:translateX(5px);color:var(--c)}
.ch2c h3{margin:6px 0 0;font:700 20px/1.3 Sora,Inter,sans-serif;color:var(--ink)}.ch2c>p{margin:0;color:var(--ink2)}
@media (max-width:760px){.ch2{grid-template-columns:1fr}}
.sec-town .sig{animation:sigp 2.4s ease-in-out infinite}@keyframes sigp{0%,100%{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.sec-town .sig{animation:none}}
