*,*::before,*::after{box-sizing:border-box}
.tvx-eye{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#8A6A00;margin:0}
.tvx-eye::before{content:"";width:18px;height:2px;border-radius:2px;background:#E0B400}
.tvx-h2{font-size:clamp(32px,4vw,50px);font-weight:700;line-height:1.04;letter-spacing:-.03em;margin:12px 0 0}
.tvx-hero{position:relative;isolation:isolate;max-width:1240px;margin:0 auto;padding:64px 24px 24px}
.tvx-hero::before{content:"";position:absolute;z-index:-1;inset:-64px 0 -40px;pointer-events:none;background:radial-gradient(38% 52% at 74% 46%,rgba(255,216,77,.34),rgba(255,216,77,0) 72%),linear-gradient(rgba(14,15,18,.05) 1px,transparent 1px) 0 0/56px 56px,linear-gradient(90deg,rgba(14,15,18,.05) 1px,transparent 1px) 0 0/56px 56px;-webkit-mask-image:radial-gradient(60% 70% at 55% 45%,#000 30%,transparent 78%);mask-image:radial-gradient(60% 70% at 55% 45%,#000 30%,transparent 78%)}
.tvx-hero-in{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,5vw,72px);align-items:center}
.tvx-hero-in:not(:has(.tvx-art)){grid-template-columns:minmax(0,1fr);max-width:860px}
.tvx-hero-copy{min-width:0}
.tvx-hero-copy>div:first-child{margin-bottom:22px}
.tvx-h1{font-size:clamp(40px,4.6vw,62px);line-height:1.02;font-weight:700;letter-spacing:-.035em;margin:18px 0 0}
.tvx-lede{font-size:clamp(17px,1.35vw,19px);line-height:1.6;color:#4B4E56;max-width:50ch;margin:24px 0 0}
.tvx-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.tvx-signin{font-size:14.5px;color:#4B4E56;margin:16px 0 0}
.tvx-signin a{color:#0E0F12;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.tvx-hl{list-style:none;display:grid;grid-template-columns:repeat(2,max-content);gap:10px 28px;margin:28px 0 0;padding:22px 0 0;border-top:1px solid rgba(14,15,18,.08)}
.tvx-hl li{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#3B3D44}
.tvx-hl svg{flex:none;width:18px;height:18px;border-radius:50%;background:#FFD84D;padding:3px}
.tvx-art{position:relative;padding:18px 18px 34px 34px}
.tvx-art-blob{position:absolute;inset:0 0 16px 16px;border-radius:40px;background:#FFD84D;transform:rotate(3deg)}
.tvx-ph{position:relative;margin:0;aspect-ratio:4/4.4;border-radius:32px;overflow:hidden;background:#F3E6B8;box-shadow:0 30px 60px -30px rgba(14,15,18,.45)}
.tvx-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:47% 28%}
.tvx-art-name{position:absolute;left:0;bottom:6px;display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:12px 18px 12px 12px;box-shadow:0 18px 40px -16px rgba(14,15,18,.35);animation:tvxFloat 6s ease-in-out infinite}
.tvx-art-name i{width:36px;height:36px;border-radius:12px;background:#0E0F12;display:grid;place-items:center;flex:none}
.tvx-art-name b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:16px;letter-spacing:-.01em;line-height:1.2}
.tvx-art-name span{display:block;font-size:12.5px;color:#4B4E56;margin-top:2px}
.tvx-art-chip{position:absolute;right:0;top:44px;display:flex;align-items:center;gap:8px;background:#0E0F12;color:#fff;border-radius:999px;padding:10px 16px 10px 12px;font-size:13px;font-weight:600;box-shadow:0 16px 36px -14px rgba(14,15,18,.5);animation:tvxFloat 6s 1.5s ease-in-out infinite}
.tvx-art-chip i{width:8px;height:8px;border-radius:50%;background:#16A35E;animation:tvxBlip 2.4s infinite}
@keyframes tvxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.tvx-art-name,.tvx-art-chip{animation:none!important}}
.tvx-founder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center;background:#FFF6D6;border-radius:36px;padding:clamp(28px,5vw,64px)}
.tvx-fd{min-width:0}
.tvx-fd-name{font-family:"Bricolage Grotesque",sans-serif;font-size:clamp(34px,4vw,52px);font-weight:700;letter-spacing:-.03em;line-height:1;margin:14px 0 0}
.tvx-fd-role{font-size:15px;font-weight:600;color:#3B3D44;margin:12px 0 0}
.tvx-fd-bio{font-size:clamp(16px,1.3vw,18px);line-height:1.65;color:#4B4E56;max-width:50ch;margin:18px 0 0}
.tvx-fd-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.tvx-fd-acts .pill:only-child{background:#0E0F12;color:#fff;border-color:transparent}
.tvx-pts{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.tvx-pt{display:flex;gap:18px;align-items:flex-start;background:#fff;border-radius:22px;padding:22px 24px;box-shadow:0 1px 2px rgba(14,15,18,.04),0 14px 34px -22px rgba(14,15,18,.3)}
.tvx-pt-n{flex:none;width:44px;height:44px;border-radius:14px;background:#FFD84D;display:grid;place-items:center;font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:15px}
.tvx-pt h3{font-family:"Bricolage Grotesque",sans-serif;font-size:19px;font-weight:700;letter-spacing:-.01em;margin:2px 0 0}
.tvx-pt p{font-size:14.5px;line-height:1.55;color:#4B4E56;margin:6px 0 0}
.tvx-lv{background:#fff;border:1px solid rgba(14,15,18,.08);border-radius:22px;padding:18px 20px 16px;margin-top:28px;box-shadow:0 1px 2px rgba(14,15,18,.04),0 12px 32px -18px rgba(14,15,18,.18)}
.tvx-lv-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tvx-lv-say{font-family:"Bricolage Grotesque",sans-serif;font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0}
.tvx-lv-tag{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#4B4E56;border:1px solid rgba(14,15,18,.1);border-radius:999px;padding:4px 11px 4px 9px}
.tvx-lv-tag i{width:7px;height:7px;border-radius:50%;background:#9A9DA6}
.tvx-lv-tag.on i{background:#16A35E;animation:tvxBlip 2.4s infinite}
.tvx-lv-chart{position:relative;aspect-ratio:600/240;margin-top:10px}
.tvx-lv-chart svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.tvx-lvl{position:absolute;left:0;transform:translateY(calc(-100% - 5px));display:flex;align-items:baseline;gap:10px;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:rgba(14,15,18,.5)}
.tvx-lvl b{font-family:"Bricolage Grotesque",sans-serif;font-size:16px;letter-spacing:-.01em;text-transform:none;color:#0E0F12}
.tvx-lvl.r span{color:#B42318}.tvx-lvl.s span{color:#12804A}
.tvx-lv-when{font-size:13px;color:#4B4E56;margin:6px 0 0}
.tvx-vo{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:18px;margin-top:40px}
@media (max-width:1100px){.tvx-vo{grid-template-columns:repeat(var(--n2,2),minmax(0,1fr))}}
@media (max-width:640px){.tvx-vo{grid-template-columns:minmax(0,1fr)}}
.tvx-vo-card{position:relative;margin:0;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(14,15,18,.09);border-radius:24px;padding:28px 26px 24px;box-shadow:0 1px 2px rgba(14,15,18,.04)}
.tvx-vo-card:nth-child(4n+1){background:#FFF6D6;border-color:transparent}
.tvx-vo-q{position:absolute;right:22px;top:14px;font-family:"Bricolage Grotesque",sans-serif;font-size:72px;line-height:1;color:#FFD84D;pointer-events:none}
.tvx-vo-card:nth-child(4n+1) .tvx-vo-q{color:#E0B400}
.tvx-vo-stars{display:flex;gap:3px;color:#E0A800}
.tvx-vo-stars svg{width:16px;height:16px}
.tvx-vo-stars .off{color:rgba(14,15,18,.14)}
.tvx-vo-text{font-size:16px;line-height:1.6;color:#23252B;margin:16px 0 0;padding:0;flex:1}
.tvx-vo-who{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(14,15,18,.08)}
.tvx-vo-av{width:44px;height:44px;border-radius:50%;flex:none;overflow:hidden;background:#0E0F12;color:#FFD84D;display:grid;place-items:center;font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:16px}
.tvx-vo-av img{width:100%;height:100%;object-fit:cover}
.tvx-vo-who b{display:block;font-size:15px;line-height:1.3}
.tvx-vo-who div>span{display:block;font-size:13px;color:#4B4E56;margin-top:3px;line-height:1.4}
.tvx-vo-note{font-size:12.5px;color:#7A7D86;margin:18px 0 0}
.tvx-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:start}
.tvx-faq-side{position:sticky;top:110px}
.tvx-faq-p{font-size:16px;line-height:1.6;color:#4B4E56;max-width:40ch;margin:16px 0 0}
.tvx-faq-list{display:flex;flex-direction:column;gap:12px}
.tvx-faq-list details{background:#fff;border:1px solid rgba(14,15,18,.09)!important;border-radius:20px;padding:20px 24px!important;transition:border-color .2s,box-shadow .2s}
.tvx-faq-list details[open]{border-color:rgba(176,137,0,.45)!important;box-shadow:0 14px 34px -24px rgba(14,15,18,.35)}
.tvx-faq-list summary{font-size:18px!important;cursor:pointer;list-style:none}
.tvx-faq-list summary::-webkit-details-marker{display:none}
.tvx-faq-list details[open] .fx{transform:rotate(45deg);background:#FFD84D!important}
.tvx-close{position:relative;overflow:hidden;border-radius:36px;background:#FFD84D;color:#0E0F12;padding:clamp(36px,5vw,72px);display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:28px 48px;align-items:center}
.tvx-close-dots{position:absolute;inset:0;pointer-events:none;opacity:.5;background:radial-gradient(rgba(14,15,18,.14) 1.2px,transparent 1.3px) 0 0/22px 22px;-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000);mask-image:linear-gradient(90deg,transparent 35%,#000)}
.tvx-close-h{font-family:"Bricolage Grotesque",sans-serif;font-size:clamp(30px,4vw,52px);font-weight:700;letter-spacing:-.03em;line-height:1.02;max-width:17ch;margin:0}
.tvx-close-p{font-size:17px;line-height:1.55;color:rgba(14,15,18,.72);max-width:48ch;margin:16px 0 0}
.tvx-close-acts{position:relative;display:flex;flex-direction:column;gap:12px;min-width:240px}
.tvx-close-acts .p-line{background:rgba(255,255,255,.55);border-color:rgba(14,15,18,.2)}
.pill.w-full{width:100%;white-space:normal;min-width:0;text-align:center;line-height:1.25}
html{background:#FFFFFF;scroll-behavior:smooth}
body{margin:0;text-wrap:pretty}
h1,h2,h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;margin:0;letter-spacing:-.03em}
p{margin:0}
a{color:#0E0F12;text-decoration:none}
a:hover{color:#5B4A00}
::selection{background:rgba(255,216,77,.55)}
:focus-visible{outline:2px solid #0E0F12;outline-offset:3px}
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details[open] .fx{transform:rotate(45deg)}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;font-weight:600;font-size:15px;padding:15px 26px;cursor:pointer;border:1.5px solid transparent;transition:transform .2s,background .2s,box-shadow .2s,color .2s;white-space:nowrap;text-decoration:none;font-family:'Instrument Sans',system-ui,sans-serif}
.pill:active{transform:translateY(1px)}
.p-ink{background:#0E0F12;color:#fff}
.p-ink:hover{background:#26282E;color:#fff;transform:translateY(-2px);box-shadow:0 14px 30px rgba(14,15,18,.22)}
.p-gold{background:#FFD84D;color:#0E0F12}
.p-gold:hover{background:#FFE47A;color:#0E0F12;transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,216,77,.45)}
.p-line{background:#fff;color:#0E0F12;border-color:rgba(14,15,18,.16)}
.p-line:hover{border-color:#0E0F12;color:#0E0F12}
.p-ghost{background:transparent;color:#0E0F12;padding-left:8px;padding-right:8px}
.p-ghost:hover{color:#5B4A00}
.card{background:#fff;border:1px solid rgba(14,15,18,.09);border-radius:24px;transition:transform .35s cubic-bezier(.16,.8,.3,1),box-shadow .35s,border-color .35s}
.card.lift:hover{transform:translateY(-5px);box-shadow:0 24px 54px rgba(14,15,18,.10);border-color:rgba(14,15,18,.16)}
.card.lift:hover image-slot{transform:scale(1.04)}
.card image-slot{transition:transform .7s cubic-bezier(.16,.8,.3,1)}
.rv{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.16,.8,.3,1),transform .8s cubic-bezier(.16,.8,.3,1)}
.rv.in{opacity:1;transform:none}
.hl{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hl>span{display:block;animation:tvxLine .9s cubic-bezier(.16,.8,.3,1) both}
@keyframes tvxLine{from{transform:translateY(110%)}to{transform:translateY(0)}}
@keyframes tvxMark{to{transform:scaleX(1)}}
@keyframes tvxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes tvxPop{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
@keyframes tvxBlip{0%{box-shadow:0 0 0 0 rgba(22,163,94,.5)}70%{box-shadow:0 0 0 8px rgba(22,163,94,0)}100%{box-shadow:0 0 0 0 rgba(22,163,94,0)}}
@keyframes tvxDrift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.float{animation:tvxPop .9s cubic-bezier(.16,.8,.3,1) both}
.float>div{animation:tvxFloat 6s ease-in-out infinite}
.mark{position:relative;display:inline-block;white-space:nowrap}
.mark::before{content:'';position:absolute;left:-.06em;right:-.06em;top:.12em;bottom:.02em;background:#FFD84D;border-radius:.18em;z-index:-1;transform:scaleX(0);transform-origin:left;animation:tvxMark .8s .65s cubic-bezier(.16,.8,.3,1) forwards}
@media (prefers-reduced-motion:reduce){.rv,.hl>span,.float,.float>div,.mark::before{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}

/* A twelve-column band is four slivers long before it is four slivers wide:
   at 768px the "span 7" card is already too narrow for the table inside it. */
@media (max-width:900px){
  /* minmax(0,1fr), not 1fr: a bare 1fr track cannot shrink below its widest
     card's content, which held the offer cards at 324px on a 320px phone. */
  .m-g12{grid-template-columns:minmax(0,1fr)!important}
  .m-g12>*{min-width:0!important}
  .m-full{grid-column:auto!important}
}
/* The menu needs ~1,150px at full size. Narrower than that the grid squeezed
   it and every two-word label ("Recorded Learning", "Live Classes") broke onto
   a second line. It never wraps now; instead it tightens in steps, and stops
   centring itself once the side columns can no longer be equal. Measured to
   stay on one line, clear of the logo and the buttons, from 1,180px down to
   861px — where the phone header takes over. */
.m-nav a{white-space:nowrap}
@media (max-width:1180px){
  .m-hd{gap:14px!important}
  .m-nav{gap:2px!important}
  .m-nav a{padding:8px 12px!important;font-size:13.5px!important}
  .m-acts .pill{padding:10px 16px!important;font-size:13.5px!important;white-space:nowrap}
}
@media (max-width:1040px){
  .m-hd{grid-template-columns:auto 1fr auto!important}
  .m-hd img{height:38px!important}
  .m-nav{justify-self:center}
}
@media (max-width:940px){
  .m-hd{gap:10px!important;padding-left:16px!important;padding-right:16px!important}
  .m-nav{gap:0!important}
  .m-nav a{padding:8px 10px!important;font-size:13px!important}
  .m-acts{gap:6px!important}
  .m-acts .pill{padding:9px 13px!important;font-size:13px!important}
  .m-hd img{height:34px!important}
}
@media (max-width:860px){
  .m-nav{display:none!important}
  .m-hd{grid-template-columns:1fr auto!important;padding:11px 16px!important}
}
@media (max-width:760px){
  section{padding-left:18px!important;padding-right:18px!important}
  /* Phone: the hero stacks with the photograph under the words; the founder
     band and the questions go to one column. Pivot is dropped from the levels
     — three labelled lines in a phone-width strip crowd each other. */
  .tvx-hero{padding-top:36px!important}
  .tvx-hero-in{grid-template-columns:minmax(0,1fr)!important;gap:36px!important}
  .tvx-art{max-width:460px;width:100%;margin:0 auto;padding:12px 12px 30px 22px}
  .tvx-founder{grid-template-columns:minmax(0,1fr)!important;border-radius:28px!important;gap:28px!important}
  .tvx-faq{grid-template-columns:minmax(0,1fr)!important}
  .tvx-faq-side{position:static}
  .tvx-lv-chart{aspect-ratio:600/300!important}
  .tvx-lvl.p{display:none!important}
  .tvx-lv-chart svg line:nth-child(2){display:none}
  .tvx-fd-acts .pill,.tvx-ctas .pill{flex:1 1 auto}
  .tvx-close{grid-template-columns:minmax(0,1fr)!important;border-radius:28px!important}
  .tvx-close-acts{min-width:0}
  .tvx-hl{grid-template-columns:minmax(0,1fr)!important;gap:8px}
  /* Five columns of numbers become two lines: the instrument and its result,
     then the levels underneath. */
  .m-call{grid-template-columns:1fr auto!important;gap:6px 12px!important}
  /* order, not grid-row: the levels sit last so the instrument and its result
     take the first line and the numbers wrap underneath. Placed by row instead,
     the pill would be pushed onto a third line of its own. */
  .m-call>.m-lv{order:3!important;grid-column:1/-1!important;display:flex!important;
    gap:14px!important;flex-wrap:wrap!important}
  .m-sess{grid-template-columns:auto 1fr!important;gap:8px 14px!important}
  .m-sess>:nth-child(3),.m-sess>:nth-child(4){grid-column:2!important;justify-self:start!important}
}
@media (max-width:520px){
  /* Logo, sign in and join on one row at phone width: smaller, not dropped —
     signing in is the one thing a returning member came here to do. */
  .m-acts{gap:6px!important}
  .m-acts .pill{padding:9px 13px!important;font-size:13px!important;white-space:nowrap}
  .m-hd img{height:36px!important}
}
@media (max-width:520px){
  /* A lesson or session row is number, title, duration and a tag. On a small
     phone those four do not fit one line — the title was squeezed to 85px and
     the row still ran 317px wide. The title keeps the first line beside its
     number; duration and tag drop underneath it. */
  .m-lgrid{grid-template-columns:minmax(0,1fr)!important}
  .m-lrow{flex-wrap:wrap!important;column-gap:12px!important;row-gap:4px!important;padding:13px 14px!important}
  .m-lnum{width:24px!important}
  .m-ltitle{flex:1 1 calc(100% - 36px)!important}
  .m-ltitle+*{margin-left:36px!important}
}
@media (max-width:420px){
  .m-g12>.card{padding:22px!important}
}

.v-step{display:flex;align-items:center;justify-content:space-between}
.v-ico{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(14,15,18,.08);color:#0E0F12}
.v-strip{max-width:1240px;margin:0 auto;padding:56px 24px 0}
.v-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px}
.v-tile{padding:24px 24px 26px;background:#fff}
.v-tile h3{font-size:19px;font-weight:700;margin:16px 0 6px}
.v-tile p{font-size:14px;color:#4B4E56;margin:0;line-height:1.5}
.v-ico-lg{width:48px;height:48px;border-radius:14px;background:#FFD84D}
.v-read{max-width:1240px;margin:0 auto;padding:72px 24px 0}
.v-read-in{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;background:#F4F3EE;border-radius:28px;padding:44px}
.v-kick{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#7A6A1E}
.v-read h2{font-size:clamp(28px,3.4vw,42px);font-weight:700;line-height:1.06;margin:12px 0 14px}
.v-read p{font-size:15px;color:#3B3D44;max-width:46ch}
.v-fig{margin:0;background:#fff;border-radius:20px;padding:22px 22px 16px}
.v-fig svg{width:100%;height:auto;display:block}
.v-fig figcaption{font-size:12px;color:#4B4E56;margin-top:10px}
@media (max-width:820px){.v-read-in{grid-template-columns:1fr;padding:28px 22px;gap:24px}}
