/* Seven Worlds: 3D phone carousel. Transform and opacity only on the scroll path. */
.sw{--pw:min(54vw,262px);--ph:calc(var(--pw) * 2.099);--sw-bg:#10131a;--sw-accent:#9db0ff;position:relative;background:var(--sw-bg);color:#f3f0e9;overflow:hidden;transition:background-color .7s cubic-bezier(.2,.7,.2,1);scroll-margin-top:0}
.sw:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 42% at 50% 58%,color-mix(in srgb,var(--sw-accent) 26%,transparent),transparent 70%);opacity:.55;pointer-events:none;transition:background .7s}
.sw-head{position:relative;padding-bottom:0}@media(max-width:799px){.sw-head{padding-top:92px}.sw-head h2{font-size:clamp(40px,11vw,60px)}.sw-head .eyebrow{margin-bottom:14px}.sw-lede{margin-top:14px;font-size:13px}.sw-stage{margin-top:6px}.sw-track{padding-top:20px;padding-bottom:28px}.sw-meta{padding-bottom:56px}.sw-actions{margin-top:14px}}
.sw-head .eyebrow{color:var(--sw-accent);margin-bottom:22px;transition:color .7s}
.sw-head h2{font-size:clamp(47px,8vw,86px)}
.sw-lede{margin-top:20px;font-size:14px;line-height:1.65;max-width:330px;color:#e4e1d9}
.sw-stage{position:relative;margin-top:26px}
.sw-ghost{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font-family:var(--serif);font-size:clamp(80px,26vw,240px);line-height:.85;letter-spacing:-.04em;color:var(--sw-accent);opacity:.12;white-space:nowrap;pointer-events:none;transition:color .7s}
.sw-track{position:relative;list-style:none;margin:0;display:flex;gap:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:28px calc(50% - var(--pw) / 2) 40px;outline:none;overscroll-behavior-x:contain}
.sw-track::-webkit-scrollbar{display:none}
.sw-track:focus-visible{box-shadow:inset 0 0 0 2px var(--sw-accent)}
.sw-slide{flex:0 0 var(--pw);scroll-snap-align:center;perspective:900px}
.sw-phone{display:block;width:var(--pw);height:var(--ph);border-radius:calc(var(--pw) * .15);padding:calc(var(--pw) * .028);background:linear-gradient(145deg,#3a3a3e,#0c0c0e 40%,#26262a);box-shadow:0 30px 60px -18px #000c,0 0 0 1px #ffffff1f inset;transform-origin:50% 50%;will-change:transform;transform:translate3d(0,0,0);transition:box-shadow .5s}
.sw-slide.is-front .sw-phone{box-shadow:0 40px 80px -20px #000e,0 0 0 1px #ffffff2e inset,0 0 70px -10px color-mix(in srgb,var(--sw-accent) 45%,transparent)}
.sw-screen{position:relative;display:block;width:100%;height:100%;overflow:hidden;border-radius:calc(var(--pw) * .125);background:#111;isolation:isolate}
.sw-screen img,.sw-screen video{position:absolute;max-width:none}
.sw-poster,.sw-ui{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0}
.sw-screen video,.sw-ui{opacity:0;transition:opacity .45s}
.sw-screen video{object-fit:cover}
.sw-slide.is-live video,.sw-slide.is-live .sw-ui{opacity:1}
.sw-meta{position:relative;padding:0 6vw 64px;display:flex;flex-direction:column;align-items:center;text-align:center}
.sw-count{font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:8px;min-height:20px}
.sw-num{color:var(--sw-accent);transition:color .7s}
.sw-dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.sw-name{font-weight:600}
.sw-trade{color:#c9c6bd}
.sw-actions{display:flex;align-items:center;gap:14px;margin-top:18px}
.sw-nav{width:48px;height:48px;border-radius:50%;border:1px solid #f3f0e94d;background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center}
.sw-nav:hover{border-color:#f3f0e9}
.sw-book{display:inline-flex;align-items:center;justify-content:center;min-height:56px;min-width:196px;padding:0 26px;border-radius:999px;background:var(--sw-accent);color:#0b0b0c;font-size:15px;font-weight:600;letter-spacing:-.01em;box-shadow:0 14px 30px -12px #000a;transition:background-color .7s}
.sw-label{margin-top:22px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#b9b6ad}

/* Share-bar fix (M-20261103-005): on short phones (browser bars showing) the phone is sized from the visible
   height, so the whole stage (phone, count, Book pill, label) fits between the header and the Share bar. */
@media(max-width:799px){.sw{--pw:clamp(136px,min(54vw,calc((100svh - var(--dock-h,0px) - 268px) / 2.099)),262px)}.sw-stage{scroll-margin-top:64px}}
@media(max-width:799px) and (max-height:760px){.sw-track{padding-top:14px;padding-bottom:20px}.sw-actions{margin-top:10px}.sw-label{margin-top:14px}}
/* Tap-to-zoom: the phone becomes the full website. */
.sw-zoom{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden;color:#f3f0e9}
.sw-zoom::backdrop{background:#0b0b0cd9;opacity:var(--zb,1);transition:opacity .4s}
.sw-zoom-bar{position:absolute;left:0;right:0;top:0;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 6px;background:#0b0b0c;z-index:2;opacity:0;transition:opacity .25s}
.sw-zoom.is-open .sw-zoom-bar{opacity:1}
.sw-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:0;background:transparent;color:inherit;font-size:13px;font-weight:600}
.sw-zoom-name{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#c9c6bd;padding-right:8px}
.sw-zoom-frame{position:absolute;left:0;right:0;top:52px;bottom:0;overflow:hidden;background:#111;transform-origin:0 0}
.sw-zoom-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0;max-width:none}
.sw-zoom-site{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .3s;background:transparent}
.sw-zoom-site.is-ready{opacity:1}
@media(min-width:800px){.sw{--pw:250px}.sw-head{display:flex;justify-content:space-between;align-items:end;gap:40px}.sw-lede{margin:0;padding-bottom:6px}.sw-zoom-frame{left:50%;right:auto;width:430px;margin-left:-215px;top:64px;bottom:12px;border-radius:28px}.sw-zoom-bar{background:transparent}}
html.sw-rm .sw,html.sw-rm .sw:before,html.sw-rm .sw-ghost,html.sw-rm .sw-book{transition:none}
html.sw-rm .sw-phone{transform:none!important;opacity:1!important}
html.sw-rm .sw-track{scroll-behavior:auto}
@media(prefers-reduced-motion:reduce){.sw,.sw:before,.sw-ghost,.sw-book,.sw-screen video,.sw-ui,.sw-zoom-site{transition:none}.sw-phone{transform:none!important}}
