/* plus v1: site-wide fixes + Apple-style additions */
html,body{overflow-x:clip}
:focus-visible{outline:2px solid #0071e3;outline-offset:3px}

/* reveals: light, no blur */
.js .rv:not(.in){opacity:0;transform:translateY(28px)}
.js .rv{transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}

/* mobile menu: opaque sheet, big type, dimmed page */
@media(max-width:900px){
.nav .links{background:#fff;border:0;padding:12px 10px;box-shadow:0 30px 70px -20px rgba(0,0,0,.35)}
.nav.open .links{box-shadow:0 30px 70px -20px rgba(0,0,0,.35),0 0 0 100vmax rgba(10,10,12,.28)}
.nav .links a{font-size:24px;font-weight:600;letter-spacing:-.02em;color:#1d1d1f;padding:14px 18px;opacity:0;transform:translateY(-6px);transition:opacity .4s,transform .5s var(--ease),background .2s}
.nav.open .links a{opacity:1;transform:none}
.nav.open .links a:nth-of-type(2){transition-delay:.04s}.nav.open .links a:nth-of-type(3){transition-delay:.08s}.nav.open .links a:nth-of-type(4){transition-delay:.12s}.nav.open .links a:nth-of-type(5){transition-delay:.16s}
.nav .links a.act{color:#86868b}
.nav .links a:active{background:#f2f2f4}
.hero.sm{min-height:64svh;padding-bottom:4vh}
.hwf-col li{padding:5px 0}
.hwf-col a{display:inline-block;padding:4px 0}
}

/* ===== Highlights carousel (Apple "Get the highlights") ===== */
.hl-sec{padding-bottom:10vh}
.hl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.hl-head h2{margin:0}
.hl{position:relative;margin-top:34px}
.hl-track{list-style:none;display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:0 max(24px,calc((100vw - 1180px)/2));scroll-padding:0 max(24px,calc((100vw - 1180px)/2))}
.hl-track::-webkit-scrollbar{display:none}
.hl-card{position:relative;flex:none;width:min(860px,82vw);aspect-ratio:16/10;border-radius:30px;overflow:hidden;scroll-snap-align:start;background:#0b0b0d;color:#f5f5f7;isolation:isolate}
.hl-card a{position:absolute;inset:0;z-index:3}
.hl-tx{position:absolute;left:clamp(22px,4vw,48px);top:clamp(22px,4vw,44px);right:22px;z-index:2;max-width:22ch}
.hl-tx span{display:block;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#a1a1a6;margin-bottom:12px}
.hl-tx h3{font-size:clamp(24px,3.4vw,44px);font-weight:700;letter-spacing:-.035em;line-height:1.06}
.hl-tx em{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-style:normal;font-size:15px;font-weight:600;color:#2997ff}
.hl-art{position:absolute;inset:0;z-index:1;overflow:hidden}
.hl-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.85) 0%,rgba(11,11,13,0) 45%)}
.hl-card:not(.cur) .hl-art *{animation-play-state:paused!important}
.hl-ctrl{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:28px}
.hl-dots{display:flex;gap:10px;align-items:center;padding:14px 20px;border-radius:999px;background:rgba(232,232,237,.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.hl-dots button{position:relative;width:8px;height:8px;border-radius:999px;border:0;padding:0;background:#86868b;cursor:pointer;overflow:hidden;transition:width .5s var(--ease),background .3s}
.hl-dots button.on{width:48px;background:rgba(0,0,0,.18)}
.hl-dots button.on i{position:absolute;inset:0;background:#1d1d1f;transform-origin:left;transform:scaleX(var(--k,0))}
.hl-play{width:52px;height:52px;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(232,232,237,.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);cursor:pointer;color:#1d1d1f}
.hl-play svg{width:18px;height:18px;fill:currentColor}
.hl-play .pl{display:none}.hl-play.paused .pl{display:block}.hl-play.paused .pa{display:none}
@media(max-width:700px){.hl-card{width:86vw;aspect-ratio:4/5;border-radius:24px}.hl-track{gap:12px}}

/* card art 1: neural field */
.a-ai{background:radial-gradient(60% 60% at 70% 70%,#1b3a8a 0%,transparent 60%),radial-gradient(50% 50% at 30% 80%,#5b2a86 0%,transparent 60%),#07070a}
.a-ai i{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 18px 4px rgba(120,160,255,.8);animation:hl-pulse 3s ease-in-out infinite}
.a-ai svg{position:absolute;inset:0;width:100%;height:100%}
.a-ai line{stroke:rgba(150,180,255,.35);stroke-width:1.2;stroke-dasharray:6 8;animation:hl-dash 3s linear infinite}
@keyframes hl-pulse{50%{transform:scale(1.6);opacity:.55}}
@keyframes hl-dash{to{stroke-dashoffset:-56}}
/* card art 2: brand ring */
.a-ag{background:#0b0b0d}
.a-ag b{position:absolute;right:-8%;bottom:-30%;width:min(560px,90%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 0deg,#ff4fa3,#ff9f0a,#ffd60a,#30d158,#0a84ff,#bf5af2,#ff4fa3);animation:hl-spin 14s linear infinite;-webkit-mask:radial-gradient(closest-side,transparent 62%,#000 63%);mask:radial-gradient(closest-side,transparent 62%,#000 63%);filter:saturate(1.2)}
.a-ag b+b{width:min(380px,62%);right:6%;bottom:-12%;animation-duration:9s;animation-direction:reverse;opacity:.7;filter:blur(1px)}
@keyframes hl-spin{to{transform:rotate(360deg)}}
/* card art 3: code */
.a-sw{background:linear-gradient(160deg,#0d1117,#05070a)}
.a-sw div{position:absolute;left:clamp(22px,4vw,48px);right:12%;bottom:12%;display:grid;gap:16px;padding:28px;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.a-sw s{display:block;height:16px;border-radius:8px;text-decoration:none;background:linear-gradient(90deg,#30d158,#0a84ff);box-shadow:0 0 24px rgba(10,132,255,.45);transform-origin:left;animation:hl-type 5s var(--ease) infinite}
.a-sw s:nth-child(2){width:62%;margin-left:8%;background:linear-gradient(90deg,#bf5af2,#ff4fa3);animation-delay:.3s}
.a-sw s:nth-child(3){width:78%;margin-left:8%;background:linear-gradient(90deg,#64d2ff,#0a84ff);animation-delay:.6s}
.a-sw s:nth-child(4){width:40%;margin-left:16%;background:linear-gradient(90deg,#ff9f0a,#ffd60a);animation-delay:.9s}
.a-sw s:nth-child(5){width:70%;background:linear-gradient(90deg,#8e8e93,#636366);animation-delay:1.2s}
@keyframes hl-type{0%{transform:scaleX(0)}30%,90%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:.2}}
/* card art 4: globe */
.a-gl{background:radial-gradient(70% 70% at 70% 90%,#0a2a4a,#07070a 70%)}
.a-gl .g{position:absolute;right:-6%;bottom:-24%;width:min(560px,92%);aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(100,210,255,.55);box-shadow:0 0 80px rgba(10,132,255,.35),inset 0 0 80px rgba(10,132,255,.25)}
.a-gl .g i{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(100,210,255,.4);animation:hl-merid 6s linear infinite}
.a-gl .g i:nth-child(2){animation-delay:-1.5s}.a-gl .g i:nth-child(3){animation-delay:-3s}.a-gl .g i:nth-child(4){animation-delay:-4.5s}
.a-gl .g u{position:absolute;left:0;right:0;top:50%;height:1.5px;background:rgba(100,210,255,.4)}
.a-gl .g u:nth-of-type(2){top:25%;left:7%;right:7%}.a-gl .g u:nth-of-type(3){top:75%;left:7%;right:7%}
@keyframes hl-merid{0%{transform:scaleX(1)}50%{transform:scaleX(0)}100%{transform:scaleX(-1)}}
/* card art 5: swirl canvas */
.a-at{background:#0a0d1f}
.a-at b{position:absolute;right:-20%;bottom:-40%;width:min(720px,120%);aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 0deg,#1d3b8f 0 8deg,#f2c14e 8deg 11deg,#2a5cbf 11deg 20deg,#e9e3c9 20deg 22deg);-webkit-mask:radial-gradient(closest-side,#000 70%,transparent);mask:radial-gradient(closest-side,#000 70%,transparent);animation:hl-spin 40s linear infinite;filter:blur(.6px) saturate(1.1)}
.a-at b+b{width:min(260px,40%);right:20%;bottom:16%;background:radial-gradient(circle,#fff6c8,#f2c14e 45%,transparent 70%);animation:hl-pulse 4s ease-in-out infinite;-webkit-mask:none;mask:none}

/* ===== Zoom type (pinned, scroll-scrubbed) ===== */
.zt{position:relative;height:240vh}
.zt-pin{position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden;text-align:center}
.zt-h{margin:0;font-size:clamp(44px,9vw,140px);font-weight:700;letter-spacing:-.05em;line-height:.98;transform:scale(calc(3.2 - 2.2 * var(--p,0)));opacity:calc(.15 + var(--p,0) * 1.4);will-change:transform}
.zt-h span{display:block;font-size:.42em;font-weight:600;letter-spacing:-.03em;margin-top:.5em;color:#86868b;opacity:calc((var(--p,0) - .55) * 3);transform:translateY(calc((1 - var(--p,0)) * 40px))}
@media(prefers-reduced-motion:reduce){.zt{height:auto}.zt-pin{position:relative;height:auto;padding:16vh 0}.zt-h,.zt-h span{transform:none;opacity:1}.hl-art *{animation:none!important}}
