
/* PadelCue Academy, world 2026 front door, v3.
   One dark world: a lit court at night. Navy ladder from the brand tokens,
   the ball yellow green as the only accent, Outfit for every word, tracked
   uppercase labels, big photo windows that show the whole picture, generous
   dark space. The hero film fills the first screen, dimmed a little and fading
   into the navy at the bottom, the words low and left off its own titles. Phone first. */
body.academy-world {color-scheme: dark;;--lime-tint: rgba(205,230,54,.10);;--sans: "Outfit", "Avenir Next", "Helvetica Neue", Arial, sans-serif;;--gut-l: max(16px, env(safe-area-inset-left, 0px));;--gut-r: max(16px, env(safe-area-inset-right, 0px));;--hdr: 64px;;--shadow: 0 24px 60px -28px rgba(0,0,0,.75), 0 2px 10px rgba(0,0,0,.3);}
body.academy-world main *, body.academy-world main *::before, body.academy-world main *::after { box-sizing: border-box; }

body.academy-world { margin: 0; background: var(--navy-0); color: var(--text); font: 400 17px/1.55 var(--sans); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
body.academy-world main img, body.academy-world main video { display: block; max-width: 100%; }
body.academy-world main a { color: inherit; text-decoration: none; }
body.academy-world main p { margin: 0; }
body.academy-world main ul, body.academy-world main ol { margin: 0; padding: 0; list-style: none; }
body.academy-world main h1, body.academy-world main h2, body.academy-world main h3 { margin: 0; }
body.academy-world main :focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; border-radius: 4px; }

body.academy-world main .wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding-left: var(--gut-l); padding-right: var(--gut-r); }
body.academy-world main .band { padding: 88px 0; }
body.academy-world main .band-tight { padding: 56px 0; }
body.academy-world main .eyebrow { font: 500 11px/1.2 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--lime); margin-bottom: 18px; }
body.academy-world main .eyebrow.muted { color: var(--text-3); }
body.academy-world main .display { font-family: var(--sans); font-weight: 700; line-height: 1.02; letter-spacing: -.03em; text-wrap: balance; }
body.academy-world main h1.display { font-size: clamp(40px, 10.5vw, 84px); }
body.academy-world main h2.display { font-size: clamp(32px, 8vw, 60px); }
body.academy-world main .display em { font-style: normal; color: var(--lime); }
body.academy-world main .deck { color: var(--text-2); font-size: 18px; max-width: 34em; margin-top: 18px; }
body.academy-world main .fine { color: var(--text-3); font-size: 13.5px; line-height: 1.5; }
body.academy-world main .head { margin-bottom: 36px; }

body.academy-world main .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; font: 600 16px/1 var(--sans); border: 1px solid transparent; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease; white-space: nowrap; }
body.academy-world main .btn:hover { transform: translateY(-1px); }
body.academy-world main .btn-lime { background: var(--lime); color: var(--ink); }
body.academy-world main .btn-lime:hover { background: var(--lime-hi); }
body.academy-world main .btn-ghost { background: var(--glass-2); color: var(--text); border-color: var(--line-2); backdrop-filter: blur(10px); }
body.academy-world main .btn-ghost:hover { background: var(--glass-3); }
body.academy-world main .btn-sm { min-height: 44px; padding: 0 18px; font-size: 15px; }
body.academy-world main .link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 500 12px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--text); transition: color .18s; }
body.academy-world main .link:hover { color: var(--lime-hi); }
body.academy-world main .link .ar { font-size: 14px; letter-spacing: 0; }
body.academy-world main .cta-note { margin-top: 12px; }
body.academy-world main .dashes { display: flex; gap: 8px; margin-top: 22px; }
body.academy-world main .dashes i { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--line-2); transition: width .3s, background .3s; }
body.academy-world main .dashes i.on { width: 36px; background: var(--lime); }
body.academy-world main .chev { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--glass-2); color: var(--text); flex: 0 0 auto; }

/* Header, kept in the site's shape: wordmark, links, Members login, burger. */
body.academy-world main .hdr { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--glass); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); border-bottom: 1px solid var(--line); }
body.academy-world main .hdr-in { height: var(--hdr); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
body.academy-world main .brand img { width: 128px; height: auto; }
body.academy-world main .nav { display: none; gap: 28px; }
body.academy-world main .nav a { font: 500 15px/1 var(--sans); color: var(--text-2); padding: 10px 0; }
body.academy-world main .nav a:hover, body.academy-world main .nav a[aria-current="page"] { color: var(--text); }
body.academy-world main .nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--lime); }
body.academy-world main .hdr-actions { display: flex; align-items: center; gap: 8px; }
body.academy-world main .burger { width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--glass-2); display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; cursor: pointer; }
body.academy-world main .burger span { width: 18px; height: 2px; background: var(--text); border-radius: 2px; transition: transform .2s, opacity .2s; }
body.academy-world main .burger[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
body.academy-world main .burger[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
body.academy-world main .menu { position: fixed; left: 0; right: 0; top: calc(var(--hdr) + env(safe-area-inset-top, 0px)); bottom: 0; background: var(--navy-0); padding: 28px var(--gut-r) 40px var(--gut-l); overflow: auto; z-index: 49; }
body.academy-world main .menu[hidden] { display: none; }
body.academy-world main .menu a.item { display: flex; justify-content: space-between; align-items: center; font: 600 clamp(26px, 7vw, 34px)/1.15 var(--sans); letter-spacing: -.02em; padding: 14px 0; border-bottom: 1px solid var(--line); }
body.academy-world main .menu a.item[aria-current="page"] { color: var(--lime); }
body.academy-world main .menu a.item::after { content: "›"; font-weight: 400; color: var(--text-3); }
body.academy-world main .menu .menu-cta { margin-top: 28px; display: grid; gap: 12px; }

/* Hero: the whole Academy film above the text on phones, beside it on desktop.
   The film keeps its own titles and arrows readable: nothing sits on top of it. */
/* Hero: the film fills the first screen under the header (cover, centred, no zoom),
   dimmed a little and fading into the navy at the bottom. The words sit low and left
   over the fade so the film's own titles at the top and centre stay clear. */
body.academy-world main .hero { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: max(640px, calc(100svh - var(--hdr))); padding: 0; background: var(--navy-0); overflow: hidden; }
body.academy-world main .hero-film { position: absolute; inset: 0; z-index: -1; background: var(--navy-0); }
body.academy-world main .hero-film video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; filter: none; }
body.academy-world main .hero-film::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,13,26,.2) 0%, rgba(9,13,26,0) 12%, rgba(9,13,26,0) 40%, rgba(9,13,26,.55) 58%, rgba(9,13,26,.9) 74%, var(--navy-0) 88%); }
body.academy-world main .hero-in { position: relative; max-width: 640px; padding-top: 96px; }
body.academy-world main .hero h1.display { font-size: clamp(34px, 9.2vw, 44px); }
body.academy-world main .hero-lead { color: var(--text-2); font-size: 17px; max-width: 30em; margin-top: 16px; }
body.academy-world main .hero-lead strong { color: var(--text); font-weight: 500; }
body.academy-world main .hero-cta { margin-top: 26px; display: grid; gap: 12px; justify-items: start; }
body.academy-world main .hero-links { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px 28px; }
body.academy-world main .hero-cam { padding-top: 20px; padding-bottom: 88px; }

@media (width < 900px) {
  /* Nov 6, 2026: show the whole desktop film in a full width phone frame. */
  html body.academy-world main section.hero.hero:not(.hero-cinematic) { min-height: 0; padding: 0 0 20px; }
  body.academy-world main .hero-film { position: relative; inset: auto; z-index: auto; flex: none; width: 100%; aspect-ratio: 16 / 9; }
  body.academy-world main .hero-film video { position: absolute; inset: 0; object-fit: contain; }
  body.academy-world main .hero-film::after { display: none; }
  body.academy-world main .hero-in { padding-top: 24px; }
}

/* Tracked strip under the hero. */
body.academy-world main .strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 16px 0; overflow: hidden; }
body.academy-world main .strip ul { display: flex; gap: 32px; white-space: nowrap; width: max-content; animation: slide 110s linear infinite; }
body.academy-world main .strip li { font: 500 11px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--text-3); display: inline-flex; align-items: center; gap: 32px; }
body.academy-world main .strip li::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); }
@keyframes slide { to { transform: translateX(calc(-50% - 16px)); } }

/* Manifesto. */
body.academy-world main .manifesto .display { max-width: 13em; }
body.academy-world main .manifesto .deck { font-size: 19px; }

/* Windows: 4:5, the shape of the photos, so the whole picture shows. Used for the four areas and the four steps. */
body.academy-world main .windows { display: grid; gap: 14px; }
body.academy-world main #areas .win { aspect-ratio: 3 / 2; } /* the four original live photos are 3:2, shown whole */
body.academy-world main .win { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 22px; overflow: hidden; background: var(--navy-2); box-shadow: var(--shadow); isolation: isolate; }
body.academy-world main .win img, body.academy-world main .win video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transition: transform .7s ease; }
body.academy-world main .win video { display: block; background: var(--navy-2); } /* the poster shows until the loop plays, and stays if a loop is not there yet */
body.academy-world main .win::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,13,26,.22) 0%, rgba(9,13,26,0) 22%, rgba(9,13,26,0) 56%, rgba(9,13,26,.88) 100%); }
body.academy-world main .win .num { position: absolute; top: 18px; left: 20px; z-index: 1; font: 500 11px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: #fff; padding: 8px 12px; border-radius: 999px; right: auto; width: max-content; background: rgba(9, 13, 26, .82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); } /* a solid chip keeps the step number clear of any writing inside the picture */ body.academy-world main .win:has([poster*="loop-analyse"]) .num { left: auto; right: 20px; } /* the analysis frame carries its own panel title at the top left */
body.academy-world main .win .foot { position: absolute; left: 20px; right: 20px; bottom: 20px; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
body.academy-world main .win h3 { font: 700 clamp(32px, 8.5vw, 40px)/1 var(--sans); letter-spacing: -.03em; }
body.academy-world main .win p { color: var(--text-2); font-size: 14.5px; margin-top: 8px; max-width: 26em; }
body.academy-world main .win .chev { margin-bottom: 4px; }

/* Shots: still portraits that play on hover or hold. */
body.academy-world main .marq { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%); }
body.academy-world main .track { display: flex; gap: 12px; width: max-content; padding: 6px 0 14px; animation: marquee 120s linear infinite; will-change: transform; }
body.academy-world main .track.held, body.academy-world main .marq:hover .track, body.academy-world main .marq:focus-within .track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(calc(-50% - 6px)); } }
body.academy-world main .shot { position: relative; flex: 0 0 auto; width: 200px; aspect-ratio: 2 / 3; border-radius: 16px; overflow: hidden; background: var(--navy-2); isolation: isolate; }
body.academy-world main .shot img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.academy-world main .shot::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(9,13,26,0) 50%, rgba(9,13,26,.85) 100%); pointer-events: none; }
body.academy-world main .shot .tag { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 2; font: 600 14px/1.2 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--text); }
body.academy-world main .marq.rm { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-mask-image: none; mask-image: none; scrollbar-width: none; padding: 0 var(--gut-r) 0 var(--gut-l); scroll-padding-left: var(--gut-l); }
body.academy-world main .marq.rm::-webkit-scrollbar { display: none; }
body.academy-world main .marq.rm .track { animation: none; width: auto; }
body.academy-world main .marq.rm .shot { scroll-snap-align: start; }
body.academy-world main .shot-controls { margin-top: 10px; }

/* Levels: an editorial ledger. */
body.academy-world main .levels li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 24px 0; border-top: 1px solid var(--line); align-items: center; }
body.academy-world main .levels li:last-child { border-bottom: 1px solid var(--line); }
body.academy-world main .levels .thumb { width: 100%; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; background: var(--navy-2); }
body.academy-world main .levels .thumb img { width: 100%; height: 100%; object-fit: cover; }
body.academy-world main .levels .n { font: 500 11px/1 var(--sans); letter-spacing: .24em; color: var(--lime); }
body.academy-world main .levels h3 { font: 700 30px/1 var(--sans); letter-spacing: -.03em; margin: 8px 0 8px; }
body.academy-world main .levels p { color: var(--text-2); font-size: 15.5px; }

/* Lesson frames: a quiet swipe rail. */
body.academy-world main .rail-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
body.academy-world main .rail-nav { display: none; gap: 8px; }
body.academy-world main .rail-nav button { width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--glass-2); color: var(--text); font: 500 18px/1 var(--sans); cursor: pointer; }
body.academy-world main .rail-nav button:hover { background: var(--glass-3); }
body.academy-world main .rail { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px var(--gut-r) 12px var(--gut-l); scroll-padding-left: var(--gut-l); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
body.academy-world main .rail::-webkit-scrollbar { display: none; }
body.academy-world main .rail > li { flex: 0 0 min(78vw, 360px); scroll-snap-align: start; }
body.academy-world main .card { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r); overflow: hidden; background: var(--navy-2); box-shadow: var(--shadow); isolation: isolate; }
body.academy-world main .card img { width: 100%; height: 100%; object-fit: cover; }
body.academy-world main .card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,13,26,0) 60%, rgba(9,13,26,.6) 100%); }
body.academy-world main .card .tag { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 1; font: 600 13px/1.2 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--text); }

/* Member area: real app screens in phone frames. */
body.academy-world main .anywhere-grid { display: grid; gap: 36px; }
body.academy-world main .phones { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 12px var(--gut-r) 12px var(--gut-l); margin: 0 calc(-1 * var(--gut-r)) 0 calc(-1 * var(--gut-l)); scrollbar-width: none; }
body.academy-world main .phones::-webkit-scrollbar { display: none; }
body.academy-world main .phones li { flex: 0 0 auto; scroll-snap-align: start; text-align: center; }
body.academy-world main .phone { width: 216px; aspect-ratio: 390 / 844; border-radius: 34px; border: 6px solid #1B2342; background: #000; overflow: hidden; box-shadow: var(--shadow), 0 0 0 1px rgba(187,206,245,.18); margin: 0 auto; }
body.academy-world main .phone img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
body.academy-world main .phones .cap { display: block; margin-top: 12px; font: 500 11px/1.2 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--text-3); }
body.academy-world main .anywhere-fine { margin-top: 22px; max-width: 36em; }

/* Hubs in production, a tracked list. */
body.academy-world main .hubs { display: grid; margin-top: 10px; }
body.academy-world main .hubs li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 0; border-top: 1px solid var(--line); font: 500 13px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--text-2); }
body.academy-world main .hubs li:last-child { border-bottom: 1px solid var(--line); }
body.academy-world main .hubs li::before { content: "+"; color: var(--lime); margin-right: 14px; font-weight: 400; }
body.academy-world main .hubs li span.name { flex: 1; }
body.academy-world main .chip { display: inline-flex; align-items: center; gap: 8px; font: 500 10px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--text-3); border: 1px solid var(--line-2); border-radius: 999px; padding: 7px 11px; white-space: nowrap; }
body.academy-world main .chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--lime); }

/* Plans. */
body.academy-world main .plans { background: linear-gradient(180deg, var(--navy-0), var(--navy-1) 40%, var(--navy-0)); }
body.academy-world main .plan-grid { width: min(100%, 440px); margin: 36px auto 0; }
body.academy-world main .plan { position: relative; background: var(--navy-2); border: 1px solid var(--line); border-radius: var(--r-l); padding: 26px 22px 24px; box-shadow: var(--shadow); }
body.academy-world main .plan.best { border-color: var(--lime-line); background: linear-gradient(160deg, #141D3E, var(--navy-2) 60%); }
body.academy-world main .plan-toggle { display: flex; padding: 4px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--navy-0); }
body.academy-world main .plan-toggle label { position: relative; flex: 1; text-align: center; cursor: pointer; }
body.academy-world main .plan-toggle input { position: absolute; opacity: 0; }
body.academy-world main .plan-toggle span { display: block; padding: 15px 12px; border-radius: 999px; color: var(--text-2); font: 500 14px/1 var(--sans); }
body.academy-world main .plan-toggle input:checked + span { color: var(--ink); background: var(--lime); }
body.academy-world main .plan-toggle input:focus-visible + span { outline: 2px solid var(--text); outline-offset: 3px; }
body.academy-world main .plan-prices, body.academy-world main .plan-notes { display: grid; }
body.academy-world main .plan-option { grid-area: 1 / 1; visibility: hidden; }
body.academy-world main .plan-option.active { visibility: visible; }
body.academy-world main .plan-top { display: flex; align-items: center; min-height: 28px; margin-top: 18px; }
body.academy-world main .plan-top .placeholder { visibility: hidden; }
body.academy-world main .plan .save { background: var(--lime); color: var(--ink); border: 0; font-size: 11px; }
body.academy-world main .plan .save::before { display: none; }
body.academy-world main .price { margin-top: 18px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
body.academy-world main .price strong { font: 700 50px/1 var(--sans); letter-spacing: -.04em; }
body.academy-world main .price span { color: var(--text-2); font-size: 15px; }
body.academy-world main .plan .bill { color: var(--text-3); font-size: 14px; margin-top: 6px; }
body.academy-world main .plan .bill b { color: var(--text); font-weight: 500; }
body.academy-world main .inc { margin: 22px 0 24px; display: grid; border-top: 1px solid var(--line); }
body.academy-world main .inc li { display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); font: 500 12px/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); }
body.academy-world main .inc li::before { content: "+"; color: var(--lime); font-weight: 400; }
body.academy-world main .plan .btn { width: 100%; }
body.academy-world main .plan .cta-note { margin-top: 10px; }
body.academy-world main .plan-foot { margin: 24px auto 0; display: grid; gap: 8px; max-width: 440px; }
body.academy-world main .plan-foot .fine a { color: var(--text-2); border-bottom: 1px solid var(--line-2); }

/* Final call over a shot. */
body.academy-world main .close { position: relative; background: var(--navy-1); border-top: 1px solid rgba(255,255,255,.06); padding: 128px 0 120px; }
body.academy-world main .close .wrap { position: relative; z-index: 1; }
body.academy-world main .close .display { font-size: clamp(38px, 9.5vw, 80px); max-width: 10em; }
body.academy-world main .close .hero-cta { margin-top: 28px; }

/* FAQ. */
body.academy-world main .faq details { border-top: 1px solid var(--line); }
body.academy-world main .faq details:last-of-type { border-bottom: 1px solid var(--line); }
body.academy-world main .faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font: 500 17px/1.35 var(--sans); min-height: 44px; }
body.academy-world main .faq summary::-webkit-details-marker { display: none; }
body.academy-world main .faq summary::after { content: "+"; font: 300 26px/1 var(--sans); color: var(--lime); flex: 0 0 auto; transition: transform .2s; }
body.academy-world main .faq details[open] summary::after { transform: rotate(45deg); }
body.academy-world main .faq .a { color: var(--text-2); font-size: 15.5px; padding: 0 0 20px; max-width: 42em; }
body.academy-world main .faq .more { margin-top: 22px; }

/* Footer, in the site's shape. */
body.academy-world main .ftr { border-top: 1px solid var(--line); padding: 56px 0 calc(32px + env(safe-area-inset-bottom, 0px)); background: var(--navy-0); }
body.academy-world main .ftr-top { display: grid; gap: 36px; }
body.academy-world main .ftr .tag { color: var(--text-2); margin-top: 16px; }
body.academy-world main .ftr .tag.muted { color: var(--text-3); margin-top: 4px; font-size: 15px; }
body.academy-world main .ftr-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 16px; }
body.academy-world main .ftr-cols strong { display: block; font: 500 11px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--text-3); margin-bottom: 12px; }
body.academy-world main .ftr-cols a { display: block; padding: 7px 0; color: var(--text-2); font-size: 15px; }
body.academy-world main .ftr-cols a:hover { color: var(--text); }
body.academy-world main .ftr-bottom { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); display: grid; gap: 14px; }
body.academy-world main .ftr-legal { display: flex; flex-wrap: wrap; gap: 6px 18px; }
body.academy-world main .ftr-legal a { color: var(--text-3); font-size: 13.5px; padding: 6px 0; }
body.academy-world main .ftr-legal a:hover { color: var(--text); }

/* Reveal. */
body.academy-world main [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
body.academy-world main [data-reveal].in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  
  body.academy-world main [data-reveal] { opacity: 1; transform: none; transition: none; }
  body.academy-world main .strip ul, body.academy-world main .track { animation: none; }
  body.academy-world main .shot-copy, body.academy-world main .shot-controls { display: none; }
  body.academy-world main .marq { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-mask-image: none; mask-image: none; }
  body.academy-world main .shot { scroll-snap-align: start; }
  body.academy-world main .btn, body.academy-world main .win img, body.academy-world main .win video, body.academy-world main .shot { transition: none; }
}

/* Desktop. */
@media (min-width: 900px) {
  body.academy-world {--gut-l: max(40px, env(safe-area-inset-left, 0px));;--gut-r: max(40px, env(safe-area-inset-right, 0px));;--hdr: 72px;}
  body.academy-world main .band { padding: 128px 0; }
  body.academy-world main .band-tight { padding: 80px 0; }
  body.academy-world main .nav { display: flex; }
  body.academy-world main .burger, body.academy-world main .menu { display: none !important; }
  body.academy-world main .brand img { width: 148px; }
  body.academy-world main .hero-cam { padding-bottom: 128px; }
  /* The film runs wider than the screen and is anchored right, so the action (mid frame) lands in the right part of the screen. The left of the frame falls into navy behind the title. */
  body.academy-world main .hero-film video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; filter: none; } /* full screen, never shifted, the left fade carries the title */
  body.academy-world main .hero-film::after { background: linear-gradient(90deg, var(--navy-0) 0%, rgba(9,13,26,.92) 18%, rgba(9,13,26,.78) 32%, rgba(9,13,26,.42) 44%, rgba(9,13,26,.1) 54%, rgba(9,13,26,0) 62%), linear-gradient(180deg, rgba(9,13,26,.18) 0%, rgba(9,13,26,0) 12%, rgba(9,13,26,0) 80%, var(--navy-0) 100%); } /* left side dark for the title, the right side of the film stays clear */
  body.academy-world main .hero-in { max-width: 620px; }
  body.academy-world main h1.display { font-size: clamp(44px, 4.6vw, 66px); }
  body.academy-world main .hero h1.display { font-size: clamp(42px, 4vw, 58px); }
  body.academy-world main .hero-lead { font-size: 18px; }
  body.academy-world main .manifesto .wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: end; }
  body.academy-world main .manifesto .deck { margin-top: 0; }
  body.academy-world main .windows { grid-template-columns: 1fr 1fr; gap: 18px; }
  body.academy-world main .win { border-radius: 26px; }
  body.academy-world main .win h3 { font-size: 44px; }
  body.academy-world main .win p { font-size: 15px; }
  body.academy-world main .win .num, body.academy-world main .win .foot { left: 28px; right: 28px; }
  body.academy-world main .win .num { top: 24px; }
  body.academy-world main .win .foot { bottom: 26px; }
  body.academy-world main .shot { width: 260px; }
  body.academy-world main .rail-nav { display: flex; }
  body.academy-world main .rail > li { flex-basis: 420px; }
  body.academy-world main .levels li { grid-template-columns: 160px 1fr 1.2fr; gap: 32px; padding: 32px 0; }
  body.academy-world main .levels .thumb { width: 160px; aspect-ratio: 3 / 4; }
  body.academy-world main .levels h3 { font-size: 40px; margin: 0; }
  body.academy-world main .levels .n { display: block; margin-bottom: 10px; }
  body.academy-world main .anywhere-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); align-items: center; gap: 56px; }
  body.academy-world main .phones { overflow: visible; margin: 0; padding: 12px 0; justify-content: flex-end; }
  body.academy-world main .phone { width: 200px; }
  body.academy-world main .hubs { grid-template-columns: 1fr 1fr; column-gap: 48px; }
  body.academy-world main .hubs li:nth-last-child(2) { border-bottom: 1px solid var(--line); }
  body.academy-world main .plan { padding: 32px 30px 30px; }
  body.academy-world main .close { padding: 184px 0 176px; }
  body.academy-world main .faq .wrap { display: grid; grid-template-columns: 1fr 1.4fr; gap: 64px; }
  body.academy-world main .faq .head { margin: 0; }
  body.academy-world main .ftr-top { grid-template-columns: 1.1fr 2fr; gap: 64px; }
  body.academy-world main .ftr-cols { grid-template-columns: repeat(3, 1fr); }
  body.academy-world main .ftr-bottom { grid-template-columns: 1fr auto; align-items: center; }
}
@media (hover: hover) { body.academy-world main .win:hover img, body.academy-world main .win:hover video { transform: scale(1.03); } }

/* Academy membership and future camera offerings. */
body.academy-world main .plan-grid { width: 100%; display: grid; gap: 16px; align-items: stretch; }
body.academy-world main .plan-title { font-size: 24px; line-height: 1.2; margin-bottom: 20px; }
body.academy-world main .price strong span { color: inherit; font: inherit; }
body.academy-world main .currency-estimate { margin-top: 12px; }
body.academy-world main .plan-coming { min-height: 360px; display: flex; flex-direction: column; align-items: flex-start; background: #1b1b1b; border-color: #555; color: #fff; }
body.academy-world main .coming-badge { display: inline-block; padding: 10px 16px; border: 1px solid #fff; border-radius: 999px; background: #fff; color: #171717; font-size: 18px; font-weight: 700; line-height: 1.2; }
body.academy-world main .plan-coming h3 { margin-top: 30px; color: #fff; font-size: 24px; line-height: 1.2; }
body.academy-world main .plan-coming .coming-description { margin-top: 12px; color: #d1d1d1; line-height: 1.5; }
body.academy-world main .coming-features { width: 100%; display: grid; margin: 24px 0 0; border-top: 1px solid #454545; }
body.academy-world main .coming-features li { display: flex; gap: 12px; padding: 11px 0; border-bottom: 1px solid #454545; color: #d1d1d1; font-size: 15px; line-height: 1.45; }
body.academy-world main .coming-features li::before { content: "✓"; flex: 0 0 auto; color: #f2f2f2; }
body.academy-world main .coming-qualifier { margin-top: 16px; color: #aaa; font-size: 12px; line-height: 1.5; }
body.academy-world main .plan-coming .coming-price { display: grid; gap: 8px; margin-top: auto; padding-top: 30px; color: #b3b3b3; }
body.academy-world main .coming-price strong { color: inherit; font-size: clamp(32px, 3.2vw, 44px); line-height: 1; letter-spacing: -.04em; }
body.academy-world main .coming-price span { font-size: 15px; }
@media (min-width: 900px) {
  body.academy-world main .plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.academy-world main .plan-coming { min-height: 100%; }
}
body.academy-world main .inc li { font-size: 15px; letter-spacing: 0; text-transform: none; }

/* Nov 5, 2026: the Academy tokens make --ink dark, so the shared header and footer pieces that use it get light colours on every Academy world page. */
body.academy-world .site-header .nav-toggle span { background: #f4f6fb; }
body.academy-world .footer-tagline { color: #c9d2e5; }
body.academy-world .footer-links a:hover { color: #ffffff; }

/* Nov 6, 2026, Mo: the hero note belongs with the trial action and the three plan prices share a row. */
body.academy-world main .hero-in { padding-bottom: 28px; }
body.academy-world main .hero-cam { padding: 0; }
body.academy-world main .plan-title,
body.academy-world main .plan-coming h3 { margin: 18px 0 0; }
body.academy-world main .coming-badge { display: inline-flex; align-items: center; min-height: 54px; }
body.academy-world main .plan .price { display: grid; gap: 8px; margin-top: 18px; }
body.academy-world main .price strong,
body.academy-world main .coming-price strong { font-size: clamp(30px, 3vw, 44px); white-space: nowrap; }
body.academy-world main .plan-top { margin-top: 12px; }
body.academy-world main .plan-coming .coming-price { margin-top: 18px; padding-top: 0; }
body.academy-world main .plan-coming .coming-description { margin-top: 18px; }
@media (min-width: 900px) {
  body.academy-world main .plan-grid { grid-template-rows: auto auto auto 1fr; row-gap: 0; }
  body.academy-world main .plan { display: grid; grid-template-rows: subgrid; grid-row: span 4; align-content: start; align-items: start; }
  body.academy-world main .plan-toggle,
  body.academy-world main .coming-badge { grid-row: 1; }
  body.academy-world main .plan-title,
  body.academy-world main .plan-coming h3 { grid-row: 2; }
  body.academy-world main .plan-prices,
  body.academy-world main .plan-coming .coming-price { grid-row: 3; }
  body.academy-world main .plan-details { grid-row: 4; }
  body.academy-world main .coming-badge { justify-self: start; }
}

/* Nov 6, 2026 (Mo): tighter phone spacing. The shot ribbon sits right under the hero links. */
@media (max-width: 600px) {
  /* Beats the shared body[class] .hero:not(.hero-cinematic) phone rule. */
  html body.academy-world main section.hero.hero:not(.hero-cinematic) { padding-bottom: 20px; }
  html body.academy-world main section.hero .hero-in { padding-bottom: 4px; }
  html body.academy-world main section.manifesto { padding-top: 32px; }
}
