/* Generated from Figma mobile frame 14:71933; coordinate canvas is 768px wide. */
.mobile-stage{display:none;position:relative;width:100%;max-width:768px;aspect-ratio:768/17867;container-type:inline-size;background:#000;overflow:hidden;margin:0 auto;color:#fff}
.mobile-canvas{position:absolute;inset:0;width:768px;height:17867px;transform:scale(calc(100cqw / 768px));transform-origin:0 0;background:#000;overflow:hidden}
.mobile-stage .mn{position:absolute;left:0;top:0;box-sizing:border-box;margin:0;padding:0}
/* Figma mask wrappers export overflow:hidden, which is still programmatically
   scrollable — an anchor jump or scrollIntoView targeting content inside
   silently scrolls the mask and wrecks the artwork. clip cannot scroll. */
.mobile-stage .mn[style*="overflow:hidden"]{overflow:clip!important}
.mobile-stage .mc{overflow:visible}
.mobile-stage .mg{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mobile-stage .mt{z-index:2;white-space:pre-wrap;overflow:visible}
.mobile-stage .m14_118682{display:none}
.mobile-stage .m14_72090{width:2px!important;height:840.24219px!important;transform:matrix(1,0,0,1,84.80078,119.97275)!important;background:linear-gradient(180deg,rgba(0,255,174,0),rgba(0,255,174,.75) 20%,rgba(0,255,174,.75) 80%,rgba(0,255,174,0));z-index:1}
.mobile-stage .m14_72090>.mg{display:none}
.mobile-stage :is(.m14_72091,.m14_72092,.m14_72093,.m14_72094){z-index:2}
/* Chart emoji: reuse the desktop D2 Apple-glyph crops (same spots, same baked backgrounds)
   instead of the hand-built arrow+grid composite. */
.mobile-stage .m14_95303{
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
  /* The browser's visible Inter ink sits below its Figma text box. Align this
     glyph to the painted FXNL 2.0 label, not the misleading DOM box centre. */
  transform:matrix(1,0,0,1,297.38281,203.42969)!important;
}
.mobile-stage :is(.m14_118532,.m14_118575,.m14_141688){background-position:center;background-size:100% 100%;background-repeat:no-repeat}
.mobile-stage :is(.m14_95303,.m14_118532,.m14_118575,.m14_141688)>*{display:none!important}
.mobile-stage :is(.m14_95250,.m14_118497,.m14_141641){white-space:nowrap!important;overflow:visible!important}
.mobile-stage :is(.m14_72320,.m14_118672,.m14_141730){white-space:nowrap!important}
.mobile-stage .m14_72320{width:122px!important;transform:matrix(1,0,0,1,-13.89062,7.5)!important;font-size:24px!important}
.mobile-stage .m14_95353{background-size:auto 100%!important;background-position:center bottom!important}
.mobile-stage .m14_118665{background-size:100% 124.332%!important;background-position:0 0!important;background-repeat:no-repeat!important}
.mobile-stage :is(.m14_118617,.m14_118628,.m14_118639){border-radius:0!important;background:radial-gradient(ellipse 68% 58% at 50% 50%,rgba(0,0,0,.42) 0%,rgba(0,0,0,.2) 46%,rgba(0,0,0,0) 82%);filter:blur(24px);opacity:.78!important}
.mobile-stage :is(.m14_118617,.m14_118628,.m14_118639)>.mg{display:none!important}
.mobile-stage .m14_95359>span{position:absolute;left:0;width:100%}
.mobile-stage .m14_95359>span:nth-child(1){top:0}
.mobile-stage .m14_95359>span:nth-child(2){top:114px}
.mobile-stage .m14_95359>span:nth-child(3){top:234px}
.mobile-stage .m14_95359>span:nth-child(4){top:352px}
.mobile-stage :is(.m14_72057,.m14_72058){background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important}
.mobile-stage .m14_71992::after{content:"";position:absolute;z-index:20;left:343.5px;top:232px;width:1px;height:52px;background:rgba(255,255,255,.34);pointer-events:none}
.mobile-stage .mobile-day-carousel-card{width:352.22656px!important;height:352.22656px!important;border-radius:20px;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;will-change:transform,opacity}
.mobile-day-timeline-line{position:absolute;left:0;top:794px;width:2220px;height:2px;z-index:0;background:rgba(0,255,174,.22);pointer-events:none}
.mobile-stage .m14_95300{will-change:opacity}
.mobile-stage .m14_118727{background-size:219.282% 298.623%!important;background-position:50% 8.762%!important;background-repeat:no-repeat!important;filter:saturate(0)!important}
.mobile-stage .m14_118558{background-size:100% 148.996%!important;background-position:0 0!important;background-repeat:no-repeat!important}
.mobile-stage .m14_118512 path:nth-of-type(2),
.mobile-stage .m14_118552 path:nth-of-type(2){fill:#000!important}
/* The generated Figma lines have zero-height SVG viewBoxes, so render the
   chevron on the circular owner itself. This avoids inheriting the authored
   line group's 180-degree transform and keeps the visible ink centred in
   Chromium and WebKit. Figma's chevron centre is 1.1px left of the ellipse. */
.mobile-stage .m14_141645{display:none!important}
.mobile-stage .m14_141644::after{content:"";position:absolute;left:calc(50% - 1.1px);top:50%;width:15px;height:15px;border-left:4px solid #fff;border-bottom:4px solid #fff;border-radius:2px;transform:translate(-50%,-50%) rotate(45deg);transform-origin:50% 50%;pointer-events:none}
/* The visible Inter glyphs sit below their DOM line box. Keep the chart mark
   optically centred on the title ink and slightly enlarge it at every mobile
   viewport without relying on the newer independent `translate` property. */
.mobile-stage .m14_141688{width:39.4704px!important;height:33.7351px!important;transform:matrix(1,0,0,1,443.45898,319.502)!important}
.mobile-stage .m14_95554,.mobile-stage .m14_95577{background-size:219.282% 186.302%!important;background-position:50% 12.578%!important;background-repeat:no-repeat!important;filter:saturate(0)!important}
.mobile-stage .m14_95554{z-index:0}
.mobile-stage :is(.m14_95555,.m14_95558,.m14_95559,.m14_95562,.m14_95563){z-index:2}
/* Independent `scale` multiplies the inline matrix translation and flings the node — override the whole transform instead. */
.mobile-stage .m14_95563{transform:matrix(1,0,0,1,442.50781,9517.35938)!important}
.mobile-stage .m14_95564 path:first-of-type{stroke:#000;stroke-width:9.19642px;stroke-linejoin:round;paint-order:stroke fill}
.mobile-stage .m14_95564 path:nth-of-type(2){display:none}
/* Half-star overlays: Figma exports them as raw white rectangles. Oskar's
   overlay is 95443; 95482 is the matching Charlotte card later in the loop. */
.mobile-stage :is(.m14_95443,.m14_95482){background:#fff;-webkit-mask:url('/assets/vec/14_69558.svg') no-repeat 1.62109px 4.4375px/27.51318px 27.51318px;mask:url('/assets/vec/14_69558.svg') no-repeat 1.62109px 4.4375px/27.51318px 27.51318px}
.mobile-stage :is(.m14_95443,.m14_95482)>.mg{display:none!important}
.blog-eye-live{background:url('/assets/vec/blog-eye.svg') center/contain no-repeat!important}
.blog-eye-live>*{display:none!important}
.market-price-levels{background:
  linear-gradient(90deg,transparent 0,rgba(255,255,255,1) 30%,rgba(255,255,255,1) 70%,transparent 100%) 0 0/100% 1px no-repeat,
  linear-gradient(90deg,transparent 0,rgba(255,255,255,1) 30%,rgba(255,255,255,1) 70%,transparent 100%) 0 50%/100% 1px no-repeat,
  linear-gradient(90deg,transparent 0,rgba(255,255,255,1) 30%,rgba(255,255,255,1) 70%,transparent 100%) 0 100%/100% 1px no-repeat}
.market-price-levels>*{display:none!important}
.mobile-stage .m14_72257{background-size:210.54% 210.54%!important;background-position:50% 17.5%!important;background-repeat:no-repeat!important}
.mobile-stage :is(.m14_72250,.m14_72275){overflow:hidden;border-radius:32px}
.mobile-stage .m14_72287{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.mobile-stage :is(.m14_72324,.m14_118656,.m14_118676,.m14_141734){display:none!important}
.mobile-stage :is(.m14_72323,.m14_118653,.m14_118675,.m14_141733)::after{content:"";position:absolute;left:19.7%;top:25%;width:54.5%;height:46%;background:url('/assets/vec/telegram-plane-white.svg') center/contain no-repeat}
.mobile-stage :is(.m14_95409,.m14_95426,.m14_95447,.m14_95464,.m14_95485) svg>path:nth-of-type(2){fill:rgba(0,255,174,.03)!important}
/* The authored loop omitted its final gutter from the root width, so the last
   and first cards touched at the clone seam. The repeat span is 5 x 460.8px. */
.mobile-stage .m14_95406{width:2304px!important}
/* Lower the portraits just enough to cover the date-pill foot, as in Figma. */
.mobile-stage :is(.m14_95414,.m14_95431,.m14_95452,.m14_95469,.m14_95490){margin-top:10px;z-index:3}
.mobile-stage .m14_72056{width:1354px!important;filter:brightness(.56);opacity:1}
.mobile-stage .m14_72056>.m14_72067{transform:matrix(1,0,0,1,0,8.67188)!important}
.mobile-stage .m14_72056>.m14_72059{transform:matrix(1,0,0,1,258.589,8.70312)!important}
.mobile-stage .m14_72056>.m14_72070{transform:matrix(1,0,0,1,410.238,11.89062)!important}
.mobile-stage .m14_72056>.m14_72073{transform:matrix(1,0,0,1,663.48,11.34375)!important}
.mobile-stage .m14_72056>.m14_72057{transform:matrix(1,0,0,1,881.432,0)!important}
.mobile-stage .m14_72056>.m14_72058{transform:matrix(1,0,0,1,1082.71,7.55469)!important}
.mobile-press-edge-fade{position:absolute;z-index:800;left:0;top:2028px;width:768px;height:92px;background:linear-gradient(90deg,#000 0,rgba(0,0,0,.94) 4%,transparent 15%,transparent 85%,rgba(0,0,0,.94) 96%,#000 100%);pointer-events:none}
.mobile-stage .m14_71989{display:none}
.mobile-stage :is(.m14_71935,.m14_71983){display:none}
.mobile-stage :is(.m14_71986,.m14_72103)::after{content:"";position:absolute;z-index:12;right:23px;top:22px;width:25.26px;height:22.38px;background:url('/assets/vec/14_23233.svg') center/contain no-repeat;transform:rotate(-45deg);pointer-events:none}
.mobile-stage :is(.m14_71986,.m14_72103)::before{display:none!important}
.mobile-stage :is(.m14_141807,.m14_141811,.m14_141815,.m14_141819)::after{content:"";position:absolute;z-index:12;right:27px;top:24px;width:25.26px;height:22.38px;background:url('/assets/vec/14_23233.svg') center/contain no-repeat;transform:rotate(-45deg);pointer-events:none}
.mobile-stage :is(.m14_141807,.m14_141811,.m14_141815,.m14_141819)::before{display:none!important}
.mobile-stage :is(.m14_141810,.m14_141814,.m14_141818,.m14_141822){display:none!important}
.mobile-stage .m14_72106{display:none}
.mobile-stage .m14_72251{background:radial-gradient(ellipse 76% 125% at 72% 44%,rgba(0,255,174,.11) 0%,rgba(0,255,174,.045) 46%,rgba(0,255,174,0) 78%)}
.mobile-stage .m14_72251>.mg{display:none!important}
.mobile-stage .m14_72270::after{content:"";position:absolute;z-index:12;right:18px;top:22px;width:18px;height:16px;background:url('/assets/vec/14_23233.svg') center/contain no-repeat;transform:rotate(-45deg);pointer-events:none}
.mobile-stage .m14_72270::before{display:none!important}
.mobile-stage .m14_95254{display:none!important}
.mobile-stage .m14_95252::after{content:"";position:absolute;z-index:2;left:50%;top:50%;width:11px;height:11px;border-left:3px solid rgba(255,255,255,.92);border-bottom:3px solid rgba(255,255,255,.92);border-radius:1px;transform:translate(-38%,-50%) rotate(45deg);pointer-events:none}
.mobile-stage .m14_141772::before,.mobile-stage .m14_141772::after{content:"";position:absolute;top:0;width:2px;height:29px;background:rgba(255,255,255,.42);pointer-events:none}
.mobile-stage .m14_141772::before{left:233px}
.mobile-stage .m14_141772::after{left:406px}
.mobile-video-button{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:29.52979px}
.mobile-video-button{z-index:20;display:block;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mobile-video-button:focus-visible{outline:4px solid #00ffae;outline-offset:4px}
.mobile-stage .landing-join-link[data-cta-target="m14_72103"]:hover{background:rgba(255,255,255,.055);box-shadow:0 0 var(--cta-glow-blur,12px) rgba(0,255,174,.3),inset 0 0 0 1px rgba(255,255,255,.18);filter:brightness(1.04)}
.mobile-stage .footer-menu-link{display:block;height:47px;color:inherit;text-decoration:none;margin:0;line-height:24px;cursor:pointer}
.footer-menu-link:focus-visible{outline:2px solid #00ffae;outline-offset:3px}
.landing-scroll-target{scroll-margin-top:18px}
.mobile-faq{position:absolute;left:40px;top:11857.1px;width:688px;height:908px;background:#fff;color:#050505;z-index:50;overflow:hidden;font-family:Inter,sans-serif}
.mobile-faq-row{position:relative;box-sizing:border-box;height:var(--closed);transition:height .34s cubic-bezier(.22,.8,.22,1);border-bottom:1px solid rgba(0,0,0,.58);overflow:hidden}
.mobile-faq-row:nth-child(1){--closed:137.01562px;--open:223.45312px;--label-shift:0px;--icon-shift:0px}
.mobile-faq-row:nth-child(2){--closed:147.78126px;--open:234.21876px;--label-shift:36.28126px;--icon-shift:36.28126px}
.mobile-faq-row:nth-child(3){--closed:137.01562px;--open:223.45312px;--label-shift:28.5px;--icon-shift:28.5px}
.mobile-faq-row:nth-child(4){--closed:143.45312px;--open:229.89062px;--label-shift:31.48438px;--icon-shift:31.48438px}
.mobile-faq-row:nth-child(5){--closed:144.76563px;--open:231.20313px;--label-shift:31.48438px;--icon-shift:31.48438px}
.mobile-faq-row:nth-child(6){--closed:111.48437px;--open:197.92187px;--label-shift:31.48437px;--icon-shift:31.48437px}
.mobile-faq-row:last-child{border-bottom:0}
.mobile-faq-row.is-open{height:var(--open)}
.mobile-faq-question{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;color:#050505;text-align:left;padding:0;font:600 32px/24.3px Inter,sans-serif;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;z-index:2}
.mobile-faq-label{position:absolute;left:0;right:118px;top:27px;min-height:25px;align-content:center;pointer-events:none;transform:translate3d(0,var(--label-shift),0);transition:transform .34s cubic-bezier(.22,.8,.22,1)}
.mobile-faq-row.is-open .mobile-faq-label{transform:translate3d(0,0,0)}
.mobile-faq-icon{position:absolute;right:0;top:0;width:80px;height:80px;border-radius:50%;background:#00efad;pointer-events:none;transform:translate3d(0,var(--icon-shift),0) rotate(0deg);transition:transform .34s cubic-bezier(.22,.8,.22,1)}
.mobile-faq-row.is-open .mobile-faq-icon{transform:translate3d(0,0,0) rotate(45deg)}
.mobile-faq-icon::before,.mobile-faq-icon::after{content:"";position:absolute;left:27px;top:38px;width:26px;height:4px;border-radius:2px;background:#00261c;transition:transform .25s ease}
.mobile-faq-icon::after{transform:rotate(90deg)}
.mobile-faq-answer{position:absolute;left:0;top:73.17188px;width:516.1709px;height:114px;font:400 24px/28.8px Inter,sans-serif;align-content:center;opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .3s ease;pointer-events:none}
.mobile-faq-row.is-open .mobile-faq-answer{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.mobile-faq-row,.mobile-faq-label,.mobile-faq-icon,.mobile-faq-answer{transition:none}}
/* Top Students body: the mobile export drops the desktop glass treatment
   (translucent gradient + hairline + backdrop blur, page.css .n14_69767),
   leaving the raw grid art glaring through the rows. */
.mobile-stage .m14_72191{background:linear-gradient(180deg,rgba(22,55,45,.38),rgba(5,26,19,.38) 50.2%);border:.5px solid rgba(255,255,255,.26);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}
.mobile-stage .m14_72191>.mg{display:none!important}
/* GO TO COMMUNITY: the pill svg already bakes the full arrow glyph; the extra
   zero-height rotated stroke frame on top renders differently per engine/DPR
   (the "broken arrow") — drop it. */
.mobile-stage .m14_72274{display:none!important}
/* Keep the Meet Tom plate, radial fields, vertical bands and portrait in their
   authored DOM paint order. Promoting the plate above its siblings forced its
   black face transparent and leaked the grey lower-card surface behind it. */
.mobile-stage .m14_95333{pointer-events:none}
/* Figma's score plate has a GLASS effect. Older engines retain the authored
   SVG surface; Safari and current browsers add the intended optical blur. */
.mobile-stage .m14_95513{-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px)}
/* Safari places the large-number glyphs lower inside their authored box than
   Chromium/Figma. Separate the two real nodes instead of faking a line break. */
.mobile-stage .m14_71998{margin-top:-14px}
.mobile-stage .m14_71999{margin-top:4px}
/* The Figma copy uses paragraph gaps. Raw <br> export collapses those gaps on
   mobile Safari, making adjacent sentences look glued together. */
.mobile-stage :is(.m14_72253,.m14_72278) br{display:block;content:"";margin-top:10px}
@media (max-width:767px){.page-stage{display:none!important}.mobile-stage{display:block}body{overflow-x:hidden}}
