PageSourceSearch

https://www.earonman.com/_next/static/chunks/app/pricing/page-0e67…?dpl=dpl_5XHRgkQEcCCQtd2fVPET9D8YF9Lb

js earonman.com collected 2026-10-02 00:30:25 UTC 34,553 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[16907],{42634:()=>{},78381:(e,a,t)=>{Promise.resolve().then(t.bind(t,87776))},87776:(e,a,t)=>{"use strict";t.r(a),t.d(a,{default:()=>S});var r=t(95155),n=t(58803),s=t.n(n),o=t(12115),i=t(54203),l=t(71568),d=t(43226),c=t(2615),m=t(35906),u=t(76046),p=t(46784),h=t(49711),f=t(68570),x=t(37879);let b={hero:{badge:"14-day Pro free trial. Cancel anytime.",titleLine1:"Train your ears.",titleLine2:"Unlock every quest.",body:"Start free, no card required. Upgrade to Pro for unlimited exercises, all 10 quest modes, advanced stats and Weekly Leagues.",trustStripe:"Secure checkout via Stripe",trustNoCard:"No card needed for Free",trustCancel:"Cancel in 1 click"},banners:{referralLead:"You followed a partner link.",referralBody:"Create your account from here and your Pro trial runs 30 days instead of the 14 shown below. Yearly is the plan we suggest, and the one your partner is credited most for.",resumeLead:"Your account is ready.",resumeBody:"Here is the plan you picked, one click from done."},plans:[{name:"Free Plan",tagline:"Get started, no card needed.",price:"€0",features:["52 free levels: intervals up to compound, triads and seventh chords","Practice Mode: free training for core intervals, triads, 7ths, major scale modes and basic jazz voicings","3 exercises per 8-hour window","Basic stats and achievement badges"],buttonText:"Start Free Plan"},{name:"Pro Monthly",tagline:"Unlock everything, month to month.",price:"€6.99",features:["Unlimited exercises (no cooldown)","All intervals, chord types and scales (incl. 7ths, altered, modes)","6 advanced quest modes: Slashmaster, Functioneer, Harmonic Quest, Guido, Hybrid Lab, Polychordist","Open Mic: answer by singing or playing into your microphone (mobile app)","Practice Mode: full library of intervals, chord types, scales and voicing categories","Advanced stats: per-quest-type analytics & session breakdowns","Weekly Leagues with full history","Full achievement & badge system","All 8 instrument sounds (Rhodes, strings, harp, e-guitar, flute, clarinet, French horn)","Priority support"],buttonText:"Get Pro Access"},{name:"Pro Yearly",tagline:"Best value. Save €23.89 per year.",price:"€59.99",features:["Everything in Pro Monthly","Save ~28% vs paying monthly","Early access to new features","Downloadable progress reports","Priority email support"],buttonText:"Save with Yearly"}],card:{ribbonMostPopular:"MOST POPULAR",ribbonBestValue:"BEST VALUE",currentBadge:"CURRENT",perYear:"/year",perMonth:"/month",yearlyEquivalentLine:"Just €5/month, billed yearly",trialLine:"Start with a 14-d
1ay free trial",freeLine:"Free forever. No credit card.",buttonProcessing:"Processing...",buttonLogin:"Login to continue",buttonAlreadyFree:"Already on Free Plan",buttonStartTrial:"Start 14-day free trial",trialFootnote:"No charge for 14 days. Cancel anytime."},reassurance:{trialTitle:"14-day free trial",trialBody:"No charge until trial ends.",secureTitle:"Secure payments",secureBody:"Processed by Stripe. We never see your card.",cancelTitle:"Cancel in 1 click",cancelBody:"Self-service from your account anytime."},faq:{heading:"Frequently asked questions",items:[{q:"Do I need a credit card to start?",a:"No. The Free Plan is fully free forever and never asks for a card. A card is only required when you start the 14-day Pro trial."},{q:"What happens after the 14-day free trial?",a:"You will be charged the regular monthly or yearly price. You can cancel any time during the trial and you will not be charged."},{q:"Can I cancel anytime?",a:"Yes. Manage or cancel your subscription from your account in one click. You keep Pro access until the end of the current billing period."},{q:"Is the yearly plan really cheaper?",a:"Yes. Pro Yearly is €59.99, while 12 months of Pro Monthly would cost €83.88. You save €23.89 per year (about 28%)."},{q:"What if I already have a Free account?",a:"Just upgrade from the same account. Your progress, badges and stats carry over automatically."}]},finalCta:{heading:"Ready to train your ears?",body:"Try Pro free for 14 days. No charge until the trial ends.",button:"Start 14-day free trial"},messages:{alreadyOnFree:"You are already on the Free Plan.",actionCompleted:"Action completed",checkoutFailed:"Failed to create checkout session",stripeLoadFailed:"Failed to load Stripe",subscribeFailed:"Failed to subscribe"}},g={en:b,cs:{hero:{badge:"14 dn\xed Pro zdarma. Zrušit můžeš kdykoli.",titleLine1:"Tr\xe9nuj hudebn\xed sluch.",titleLine2:"Odemkni všechny moduly.",body:"Začni zdarma, bez platebn\xed karty. S Pro z\xedsk\xe1š neomezen\xe1 cvičen\xed, všech 10 modulů, pokročil\xe9 statistiky a t\xfddenn\xed ligy.",trustStripe:"Bezpečn\xe1 platba přes Stripe",trustNoCard:"Zdarma bez platebn\xed karty",trustCancel:"Zruš\xedš jedn\xedm kliknut\xedm"},banners:{referralLead:"Přivedl tě sem partnersk\xfd odkaz.",referralBody:"Když si \xfačet založ\xedš odsud, poběž\xed ti zkušebn\xed verze Pro 30 dn\xed m\xedsto 14 dn\xed uveden\xfdch n\xedž. Doporučujeme ročn\xed pl\xe1n - a pr\xe1vě za ten m\xe1 n\xe1š partner největš\xed odměnu.",resumeLead:"\xdačet m\xe1š připraven\xfd.",resumeBody:"Tady je tvůj vybran\xfd pl\xe1n - jedno kliknut\xed a je hotovo."},plans:[{name:"Zdarma",tagline:"Začni hned, kartu nepotřebuješ.",price:"€0",features:["52 levelů zdarma: intervaly až po složen\xe9, kvintakordy a septakordy","Procvičov\xe1n\xed zdarma: z\xe1kladn\xed intervaly, kvintakordy, septakordy, mody durov\xe9 stupnice a z\xe1kladn\xed jazzov\xe9 voicingy","3 cvičen\xed za každ\xfdch 8 hodin","Z\xe1kladn\xed statistiky a odznaky za \xfaspěchy"],buttonText:"Zač\xedt zdarma"},{name:"Pro měs\xedčně",tagline:"Odemkni všechno, měs\xedc po měs\xedci.",price:"€6.99",features:["Neomezen\xe1 cvičen\xed (bez ček\xe1n\xed na obnoven\xed limitu)","Všechny intervaly, druhy akordů a stupnice (včetně septakordů, alterovan\xfdch akordů a modů)","6 pokročil\xfdch modulů: Slashmaster, Functioneer, Harmonic Quest, Guido, Hybrid Lab, Polychordist","Open Mic: odpov\xeddej zpěvem nebo hrou do mikrofonu (mobiln\xed aplikace)","Procvičov\xe1n\xed: cel\xe1 knihovna intervalů, druhů akordů, stupnic a kategori\xed voicingů","Pokročil\xe9 statistiky: rozbor podle typu modulu a rozpis jednotliv\xfdch sezen\xed","T\xfddenn\xed ligy s kompletn\xed histori\xed","Cel\xfd syst\xe9m \xfaspěchů a odznaků","Všech 8 zvuků n\xe1strojů (Rhodes, smyčce, harfa, elektrick\xe1 kytara, fl\xe9tna, klarinet, lesn\xed roh)","Prioritn\xed podpora"],buttonText:"Z\xedskat Pro"},{name:"Pro ročně",tagline:"Nejv\xfdhodnějš\xed. Ušetř\xedš €23.89 za rok.",price:"€59.99",features:["Všechno, co m\xe1 Pro měs\xedčně","Ušetř\xedš zhruba 28 % oproti měs\xedčn\xed platbě","Nov\xe9 funkce dř\xedv než ostatn\xed","Přehledy o pokroku ke stažen\xed","Prioritn\xed e-mailov\xe1 podpora"],buttonText:"Ušetřit s ročn\xedm pl\xe1nem"}],card:{ribbonMostPopular:"NEJOBL\xcdBENĚJŠ\xcd",ribbonBestValue:"NEJV\xddHODNĚJŠ\xcd",currentBadge:"TVŮJ PL\xc1N",perYear:"/rok",perMonth:"/měs\xedc",yearlyEquivalentLine:"Jen €5/měs\xedc, \xfačtov\xe1no ročně",trialLine:"Zač
1ni 14denn\xed zkušebn\xed verz\xed zdarma",freeLine:"Zdarma napoř\xe1d. Bez platebn\xed karty.",buttonProcessing:"Zpracov\xe1v\xe1m...",buttonLogin:"Přihlas se a pokračuj",buttonAlreadyFree:"Pl\xe1n Zdarma už m\xe1š",buttonStartTrial:"Vyzkoušet 14 dn\xed zdarma",trialFootnote:"14 dn\xed nic neplat\xedš. Zrušit můžeš kdykoli."},reassurance:{trialTitle:"14denn\xed zkušebn\xed verze zdarma",trialBody:"Než zkušebn\xed verze skonč\xed, nic neplat\xedš.",secureTitle:"Bezpečn\xe9 platby",secureBody:"Platbu zpracov\xe1v\xe1 Stripe. Tvoji kartu nikdy nevid\xedme.",cancelTitle:"Zruš\xedš jedn\xedm kliknut\xedm",cancelBody:"Kdykoli ve sv\xe9m \xfačtu, bez psan\xed podpoře."},faq:{heading:"Čast\xe9 ot\xe1zky",items:[{q:"Potřebuju na zač\xe1tek platebn\xed kartu?",a:"Ne. Pl\xe1n Zdarma je zdarma napoř\xe1d a kartu po tobě nikdy nechce. Kartu potřebuješ, až když spust\xedš 14denn\xed zkušebn\xed verzi Pro."},{q:"Co se stane po 14denn\xed zkušebn\xed verzi zdarma?",a:"Začne se ti \xfačtovat běžn\xe1 měs\xedčn\xed nebo ročn\xed cena. Během zkušebn\xed verze můžeš předplatn\xe9 kdykoli zrušit a nic nezaplat\xedš."},{q:"Můžu předplatn\xe9 kdykoli zrušit?",a:"Ano. Předplatn\xe9 spravuješ i zruš\xedš ve sv\xe9m \xfačtu jedn\xedm kliknut\xedm. Funkce Pro ti zůstanou do konce zaplacen\xe9ho obdob\xed."},{q:"Je ročn\xed pl\xe1n opravdu levnějš\xed?",a:"Ano. Pro ročně stoj\xed €59.99, zat\xedmco za 12 měs\xedců Pro měs\xedčně zaplat\xedš €83.88. Ušetř\xedš €23.89 za rok (zhruba 28 %)."},{q:"Co když už m\xe1m \xfačet zdarma?",a:"Stač\xed přej\xedt na Pro ze stejn\xe9ho \xfačtu. Postup v levelech, odznaky i statistiky se ti přenesou automaticky."}]},finalCta:{heading:"Pust\xedš se do tr\xe9ninku sluchu?",body:"Vyzkoušej Pro na 14 dn\xed zdarma. Než zkušebn\xed verze skonč\xed, nic neplat\xedš.",button:"Vyzkoušet 14 dn\xed zdarma"},messages:{alreadyOnFree:"Pl\xe1n Zdarma už m\xe1š.",actionCompleted:"Hotovo",checkoutFailed:"Platbu se nepodařilo zah\xe1jit",stripeLoadFailed:"Stripe se nepodařilo nač\xedst",subscribeFailed:"Předplatn\xe9 se nepodařilo zř\xeddit"}}};var y=t(30098),v=t(23817),j=t(16233),k=t(66889),w=t(96644),N=t(98867),z=t(48686);let P=[{name:"Free Plan",price:0,popular:!1,bestValue:!1,lookup_key:"Free Plan"},{name:"Pro Monthly",price:6.99,trialDays:14,popular:!0,bestValue:!1,lookup_key:"Pro Monthly"},{name:"Pro Yearly",price:59.99,trialDays:14,monthlyEquivalent:5,popular:!1,bestValue:!0,lookup_key:"Pro Yearly"}];function S(){var e,a,n,S;let{locale:L}=(0,x.Y)(),_=null!==(n=g[L])&&void 0!==n?n:b,{data:C,update:F}=(0,c.useSession)(),A=(0,u.useRouter)(),E=(0,m.jE)(),[T,U]=(0,o.useState)(null),[B,q]=(0,o.useState)(null),[M,R]=(0,o.useState)(!1),[O,I]=(0,o.useState)(null),[Z,Y]=(0,o.useState)(!0),V=!!C;(0,o.useEffect)(()=>{if(!V)return;let e=!1;return fetch("/api/subscription/trial-eligibility",{credentials:"same-origin"}).then(e=>e.ok?e.json():null).then(a=>{!e&&a&&"boolean"==typeof a.eligible&&Y(a.eligible)}).catch(()=>{}),()=>{e=!0}},[V]);let D=e=>Z&&(e.trialDays||0)>0;(0,o.useEffect)(()=>{try{let e=new URLSearchParams(window.location.search);R("yearly"===e.get("plan")),I(e.get("resume"))}catch(e){}},[]),(0,o.useEffect)(()=>{if(!O)return;let e=document.getElementById("plan-"+O.replace(/\s+/g,"-").toLowerCase());null==e||e.scrollIntoView({behavior:"smooth",block:"center"})},[O]);let W=(0,o.useMemo)(()=>(0,h.ol)([{name:"Home",path:"/"},{name:"Pricing",path:"/pricing"}]),[]),J=null==C?void 0:null===(a=C.user)||void 0===a?void 0:null===(e=a.subscription)||void 0===e?void 0:e.planName,H="Free Plan"===J||!(null==J?void 0:J.includes("Pro")),K=async e=>{if(!C){if("Free Plan"===e){A.push("/auth/register");return}let a=(0,f.FM)(e);(0,f.hh)(a),A.push("/auth/register?callbackUrl=".concat(encodeURIComponent(a)));return}try{if(U(null),q(e),"Free Plan"===e&&H){q(null);let{notify:e}=await Promise.all([t.e(2178),t.e(1843)]).then(t.bind(t,24224));e({description:_.messages.alreadyOnFree,variant:"info"});return}let r=await fetch("/api/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({planName:e})}),n=await r.json();if(!r.ok)throw Error(n.error||_.messages.checkoutFailed);if(n.success&&n.message){let{notify:e}=await Promise.all([t.e(2178),t.e(1843)]).then(t.bind(t,24224));if(e({description:n.message||_.messages.actionCompleted,variant:"success"}),n.needsSessionRefresh){try{await fetch("/api/auth/refresh-session",{method:"POST"})}catch(e){console.error("Failed to refresh server session cache:",e)}try{var a;await (0,c.signIn)("credentials",{redirect:!1,email:null==C?void 0:null===(a=C.user)||void 0===a?void 0:a.email})}catch(e){console.error("Silent signIn failed:",e)}await F();try{E.invalidateQueries({queryKey:["staticUserData"]}),E.invalidateQueries({queryKey:["subscription"],exact:!1})}
1catch(e){console.error("Failed to invalidate queries:",e)}}A.push("/dashboard");return}let s=await (0,p.Cv)();if(!s)throw Error(_.messages.stripeLoadFailed);let{error:o}=await s.redirectToCheckout({sessionId:n.sessionId});if(o)throw o}catch(e){console.error("Subscription error:",e),U(e instanceof Error?e.message:_.messages.subscribeFailed)}finally{q(null)}};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.default,{id:"pricing-breadcrumbs",type:"application/ld+json",strategy:"afterInteractive",children:JSON.stringify(W)}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f flex flex-col min-h-screen text-foreground font-inter overflow-hidden relative",children:[(0,r.jsxs)("div",{className:"jsx-859a70b77495896f absolute inset-0 overflow-hidden pointer-events-none",children:[(0,r.jsx)("div",{className:"jsx-859a70b77495896f absolute top-1/4 left-1/4 w-64 h-64 bg-gradient-to-r from-primary/10 to-secondary/10 rounded-full blur-3xl animate-pulse"}),(0,r.jsx)("div",{style:{animationDelay:"1s"},className:"jsx-859a70b77495896f absolute top-3/4 right-1/4 w-96 h-96 bg-gradient-to-r from-slate-900/20 to-blue-900/20 rounded-full blur-3xl animate-pulse"}),(0,r.jsx)("div",{className:"jsx-859a70b77495896f absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-gradient-conic from-slate-800/30 via-blue-900/30 to-emerald-900/30 rounded-full blur-3xl animate-slow-spin"})]}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f mx-auto max-w-7xl px-6 py-20 sm:py-28 lg:px-8 relative z-10",children:[(0,r.jsxs)("div",{className:"jsx-859a70b77495896f mx-auto max-w-4xl text-center",children:[Z&&(0,r.jsxs)("div",{className:"jsx-859a70b77495896f inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-emerald-500/10 border border-emerald-500/30 mb-6",children:[(0,r.jsx)(y.A,{className:"w-4 h-4 text-emerald-400"}),(0,r.jsx)("span",{className:"jsx-859a70b77495896f text-xs font-medium text-emerald-300 tracking-wide",children:_.hero.badge})]}),(0,r.jsxs)("h1",{className:"jsx-859a70b77495896f ear-title text-4xl font-bold tracking-tight sm:text-6xl leading-[1.1]",children:[_.hero.titleLine1,(0,r.jsx)("br",{className:"jsx-859a70b77495896f"}),_.hero.titleLine2]}),(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-6 text-lg sm:text-xl leading-8 text-foreground/85 max-w-2xl mx-auto",children:_.hero.body}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f mt-8 flex flex-wrap items-center justify-center gap-x-6 gap-y-3 text-xs text-muted-foreground",children:[(0,r.jsxs)("div",{className:"jsx-859a70b77495896f inline-flex items-center gap-1.5",children:[(0,r.jsx)(v.A,{className:"w-4 h-4 text-emerald-400"}),(0,r.jsx)("span",{className:"jsx-859a70b77495896f",children:_.hero.trustStripe})]}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f inline-flex items-center gap-1.5",children:[(0,r.jsx)(j.A,{className:"w-4 h-4 text-blue-400"}),(0,r.jsx)("span",{className:"jsx-859a70b77495896f",children:_.hero.trustNoCard})]}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f inline-flex items-center gap-1.5",children:[(0,r.jsx)(k.A,{className:"w-4 h-4 text-cyan-400"}),(0,r.jsx)("span",{className:"jsx-859a70b77495896f",children:_.hero.trustCancel})]})]}),T&&(0,r.jsx)("div",{className:"jsx-859a70b77495896f mt-6 text-red-400 text-sm",children:T})]}),M&&(0,r.jsx)("div",{className:"jsx-859a70b77495896f mx-auto mt-12 max-w-2xl rounded-2xl border border-emerald-500/30 bg-emerald-500/10 p-5 text-center",children:(0,r.jsxs)("p",{className:"jsx-859a70b77495896f text-sm text-emerald-200",children:[(0,r.jsx)("span",{className:"jsx-859a70b77495896f font-semibold text-emerald-300",children:_.banners.referralLead})," ",_.banners.referralBody]})}),O&&!M&&(0,r.jsx)("div",{className:"jsx-859a70b77495896f mx-auto mt-12 max-w-2xl rounded-2xl border border-emerald-500/30 bg-emerald-500/10 p-5 text-center",children:(0,r.jsxs)("p",{className:"jsx-859a70b77495896f text-sm text-emerald-200",children:[(0,r.jsx)("span",{className:"jsx-859a70b77495896f font-semibold text-emerald-300",children:_.banners.resumeLead})," ",_.banners.resumeBody]})}),(0,r.jsx)("div",{className:"jsx-859a70b77495896f isolate mx-auto mt-20 grid max-w-md grid-cols-1 gap-8 lg:mx-0 lg:max-w-none lg:grid-cols-3 lg:items-start",children:P.map((e,a)=>{var t;let n=null!==(t=_.plans[a])&&void 0!==t?t:b.plans[a],s=e.popular,o=e.bestValue,i="Free Plan"===e.name&&H,c=M&&"Pro Yearly"===e.name,m=O===e.lookup_key;return(0,r.jsxs)("div",{id:"plan-".concat(e.lookup_key.replace(/\s+/g,"-").toLowerCase()),className:"jsx-859a70b77495896f "+"relative ".concat(s?"lg:-mt-4":""," ").concat(c||m?"rounded-3xl r
1ing-2 ring-emerald-400/60 ring-offset-4 ring-offset-transparent":""),children:[s&&(0,r.jsx)("div",{className:"jsx-859a70b77495896f absolute -top-4 left-1/2 -translate-x-1/2 z-20",children:(0,r.jsxs)("div",{className:"jsx-859a70b77495896f inline-flex items-center gap-1.5 px-4 py-1.5 rounded-full bg-action text-white text-xs font-semibold shadow-lg shadow-action/30",children:[(0,r.jsx)(w.A,{className:"w-3.5 h-3.5"}),_.card.ribbonMostPopular]})}),o&&(0,r.jsx)("div",{className:"jsx-859a70b77495896f absolute -top-4 left-1/2 -translate-x-1/2 z-20",children:(0,r.jsxs)("div",{className:"jsx-859a70b77495896f inline-flex items-center gap-1.5 px-4 py-1.5 rounded-full bg-primary text-primary-foreground text-xs font-semibold shadow-lg shadow-primary/30",children:[(0,r.jsx)(y.A,{className:"w-3.5 h-3.5"}),_.card.ribbonBestValue]})}),(0,r.jsxs)(l.Zp,{className:"relative h-full rounded-3xl p-8 backdrop-blur-lg transition-all duration-500 hover:-translate-y-1 flex flex-col ".concat(s?"ear-card ring-2 ring-action/50 border-none":o?"ear-card ring-1 ring-primary/40 hover:ring-primary/60 border-none":"ear-card ring-1 ring-white/10 hover:ring-white/20 border-none"),children:[(0,r.jsxs)("h3",{className:"jsx-859a70b77495896f text-lg font-semibold leading-8 text-foreground flex items-center gap-2",children:[n.name,i&&(0,r.jsx)("span",{className:"jsx-859a70b77495896f inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-emerald-500/20 text-emerald-300 text-[10px] font-medium border border-emerald-500/30",children:_.card.currentBadge})]}),(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-2 text-sm text-muted-foreground",children:n.tagline}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f mt-6",children:[(0,r.jsxs)("div",{className:"jsx-859a70b77495896f flex items-baseline gap-x-1.5",children:[(0,r.jsx)("span",{className:"jsx-859a70b77495896f text-5xl font-bold tracking-tight text-foreground",children:n.price}),e.price>0&&(0,r.jsx)("span",{className:"jsx-859a70b77495896f text-sm font-medium leading-6 text-muted-foreground",children:59.99===e.price?_.card.perYear:_.card.perMonth})]}),e.monthlyEquivalent&&(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-1 text-sm text-amber-300",children:_.card.yearlyEquivalentLine}),D(e)?(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-3 text-sm font-semibold text-emerald-400",children:_.card.trialLine}):0===e.price?(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-3 text-sm text-muted-foreground",children:_.card.freeLine}):null]}),(0,r.jsx)("ul",{role:"list",className:"jsx-859a70b77495896f mt-8 space-y-3 text-sm leading-6 text-gray-200 flex-1",children:n.features.map(e=>(0,r.jsxs)("li",{className:"jsx-859a70b77495896f flex gap-x-3",children:[(0,r.jsx)("span",{className:"jsx-859a70b77495896f "+"flex-none mt-0.5 inline-flex items-center justify-center w-5 h-5 rounded-full ".concat(s?"bg-emerald-500/20 text-emerald-300":o?"bg-amber-500/15 text-amber-300":"bg-white/10 text-gray-200"),children:(0,r.jsx)(N.A,{className:"h-3.5 w-3.5",strokeWidth:3})}),(0,r.jsx)("span",{className:"jsx-859a70b77495896f",children:e})]},e))}),(0,r.jsx)(d.$,{className:"mt-8 w-full h-12 text-base font-semibold ".concat(s||o?"bg-primary text-primary-foreground hover:bg-primary/90 hover:shadow-[0_0_30px_rgba(255,143,27,0.35)] hover:scale-[1.02]":"bg-white/10 text-foreground hover:bg-white/20 border border-white/10"),onClick:()=>K(e.lookup_key),disabled:B===e.name||"Free Plan"===e.name&&H,children:B===e.name?_.card.buttonProcessing:C?"Free Plan"===e.name&&H?_.card.buttonAlreadyFree:D(e)?_.card.buttonStartTrial:n.buttonText:_.card.buttonLogin}),D(e)&&(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-3 text-xs text-center text-muted-foreground",children:_.card.trialFootnote})]})]},e.name)})}),(0,r.jsx)("div",{className:"jsx-859a70b77495896f mt-20 sm:mt-24 mx-auto max-w-4xl",children:(0,r.jsxs)("div",{className:"jsx-859a70b77495896f "+"grid grid-cols-1 ".concat(Z?"sm:grid-cols-3":"sm:grid-cols-2"," gap-4"),children:[Z&&(0,r.jsxs)("div",{className:"jsx-859a70b77495896f flex items-start gap-3 p-4 rounded-2xl bg-card border border-white/5",children:[(0,r.jsx)(v.A,{className:"w-6 h-6 text-emerald-400 flex-none mt-0.5"}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f",children:[(0,r.jsx)("p",{className:"jsx-859a70b77495896f text-sm font-semibold text-foreground",children:_.reassurance.trialTitle}),(0,r.jsx)("p",{className:"jsx-859a70b77495896f text-xs text-muted-foreground mt-0.5",children:_.reassurance.trialBody})]})]}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f flex items-start gap-3 p-4 rounded-2xl bg-card border border-white/5",children:[(0,r.jsx)(z.A,{className:"w-6 h-6 text-blue-400 flex-none mt-0.5"}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f",children:[(0,r.jsx)("p",{className:"jsx-859a70b77495896f text-sm font-semibold text-foreground",children:_.reassurance.secureTitle}),(0,r.jsx)("p",{className:"jsx-859a70b77495896f text-xs text-muted-foreground mt-0.5",children:_.reassurance.secureBody})]})]}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f flex items-start gap-3 p-4 rounded-2xl bg-card border border-white/5",children:[(0,r.jsx)(k.A,{className:"w-6 h-6 text-cyan-400 flex-none mt-0.5"}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f",children:[(0,r.jsx)("p",{className:"jsx-859a70b77495896f text-sm font-semibold text-foreground",children:_.reassurance.cancelTitle}),(0,r.jsx)("p",{className:"jsx-859a70b77495896f text-xs text-muted-foreground mt-0.5",children:_.reassurance.cancelBody})]})]})]})}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f mt-28 sm:mt-36 mx-auto max-w-3xl",children:[(0,r.jsx)("h2",{className:"jsx-859a70b77495896f text-3xl font-bold text-center text-foreground",children:_.faq.heading}),(0,r.jsx)("div",{className:"jsx-859a70b77495896f mt-12 space-y-4",children:_.faq.items.map(e=>(0,r.jsxs)("details",{className:"jsx-859a70b77495896f group rounded-2xl bg-card border border-white/5 p-5 open:bg-card o
1pen:border-white/10 transition-colors",children:[(0,r.jsxs)("summary",{className:"jsx-859a70b77495896f flex justify-between items-center cursor-pointer text-base font-medium text-foreground list-none",children:[(0,r.jsx)("span",{className:"jsx-859a70b77495896f",children:e.q}),(0,r.jsx)("span",{className:"jsx-859a70b77495896f ml-4 flex-none text-muted-foreground group-open:rotate-45 transition-transform text-xl leading-none",children:"+"})]}),(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-3 text-sm text-foreground/85 leading-relaxed",children:e.a})]},e.q))})]}),(0,r.jsxs)("div",{className:"jsx-859a70b77495896f mt-28 sm:mt-36 mb-12 mx-auto max-w-3xl text-center",children:[(0,r.jsx)("h3",{className:"jsx-859a70b77495896f text-2xl sm:text-3xl font-bold text-foreground",children:_.finalCta.heading}),Z&&(0,r.jsx)("p",{className:"jsx-859a70b77495896f mt-3 text-foreground/85",children:_.finalCta.body}),(0,r.jsx)(d.$,{className:"mt-6 h-12 px-8 bg-primary text-primary-foreground text-base font-semibold hover:bg-primary/90 hover:shadow-[0_0_30px_rgba(255,143,27,0.35)] hover:scale-[1.02]",onClick:()=>K("Pro Monthly"),disabled:"Pro Monthly"===B,children:"Pro Monthly"===B?_.card.buttonProcessing:Z?_.finalCta.button:(null!==(S=_.plans[1])&&void 0!==S?S:b.plans[1]).buttonText})]})]}),(0,r.jsx)(s(),{id:"859a70b77495896f",children:"@-webkit-keyframes gradient-flow{0%{background-position:0%50%}50%{background-position:100%50%}100%{background-position:0%50%}}@-moz-keyframes gradient-flow{0%{background-position:0%50%}50%{background-position:100%50%}100%{background-position:0%50%}}@-o-keyframes gradient-flow{0%{background-position:0%50%}50%{background-position:100%50%}100%{background-position:0%50%}}@keyframes gradient-flow{0%{background-position:0%50%}50%{background-position:100%50%}100%{background-position:0%50%}}@-webkit-keyframes slow-spin{from{-webkit-transform:translate(-50%,-50%)rotate(0deg);transform:translate(-50%,-50%)rotate(0deg)}to{-webkit-transform:translate(-50%,-50%)rotate(360deg);transform:translate(-50%,-50%)rotate(360deg)}}@-moz-keyframes slow-spin{from{-moz-transform:translate(-50%,-50%)rotate(0deg);transform:translate(-50%,-50%)rotate(0deg)}to{-moz-transform:translate(-50%,-50%)rotate(360deg);transform:translate(-50%,-50%)rotate(360deg)}}@-o-keyframes slow-spin{from{-o-transform:translate(-50%,-50%)rotate(0deg);transform:translate(-50%,-50%)rotate(0deg)}to{-o-transform:translate(-50%,-50%)rotate(360deg);transform:translate(-50%,-50%)rotate(360deg)}}@keyframes slow-spin{from{-webkit-transform:translate(-50%,-50%)rotate(0deg);-moz-transform:translate(-50%,-50%)rotate(0deg);-o-transform:translate(-50%,-50%)rotate(0deg);transform:translate(-50%,-50%)rotate(0deg)}to{-webkit-transform:translate(-50%,-50%)rotate(360deg);-moz-transform:translate(-50%,-50%)rotate(360deg);-o-transform:translate(-50%,-50%)rotate(360deg);transform:translate(-50%,-50%)rotate(360deg)}}.animate-gradient-flow{-webkit-background-size:200%200%;-moz-background-size:200%200%;-o-background-size:200%200%;background-size:200%200%;-webkit-animation:gradient-flow 3s linear infinite;-moz-animation:gradient-flow 3s linear infinite;-o-animation:gradient-flow 3s linear infinite;animation:gradient-flow 3s linear infinite}.animate-slow-spin{-webkit-animation:slow-spin 20s linear infinite;-moz-animation:slow-spin 20s linear infinite;-o-animation:slow-spin 20s linear infinite;animation:slow-spin 20s linear infinite}"})]})]})}},43226:(e,a,t)=>{"use strict";t.d(a,{$:()=>d});var r=t(95155),n=t(12115),s=t(12317),o=t(31027),i=t(21567);let l=(0,o.F)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",unstyled:"",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),d=n.forwardRef((e,a)=>{let{className:t,variant:n,size:o,asChild:d=!1,...c}=e,m=d?s.Slot:"button";return(0,r.jsx)(m,{className:(0,i.cn)(l({variant:n,size:o,className:t})),ref:a,...c})});d.displayName="Button"},71568:(e,a,t)=>{"use strict";t.d(a,{BT:()=>d,Wu:()=>c,ZB:()=>l,Zp:()=>o,aR:()=>i});var r=t(95155),n=t(12115),s=t(21567);let o=n.forwardRef((e,a)=>{let{className:t,...n}=e;return(0,r.jsx)("div",{ref:a,className:(0,s.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",t),...n})});
1o.displayName="Card";let i=n.forwardRef((e,a)=>{let{className:t,...n}=e;return(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",t),...n})});i.displayName="CardHeader";let l=n.forwardRef((e,a)=>{let{className:t,...n}=e;return(0,r.jsx)("h3",{ref:a,className:(0,s.cn)("text-2xl font-semibold leading-none tracking-tight",t),...n})});l.displayName="CardTitle";let d=n.forwardRef((e,a)=>{let{className:t,...n}=e;return(0,r.jsx)("p",{ref:a,className:(0,s.cn)("text-sm text-muted-foreground",t),...n})});d.displayName="CardDescription";let c=n.forwardRef((e,a)=>{let{className:t,...n}=e;return(0,r.jsx)("div",{ref:a,className:(0,s.cn)("p-6 pt-0",t),...n})});c.displayName="CardContent",n.forwardRef((e,a)=>{let{className:t,...n}=e;return(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex items-center p-6 pt-0",t),...n})}).displayName="CardFooter"},46784:(e,a,t)=>{"use strict";t.d(a,{Cv:()=>n}),t(77358);var r=t(17506);let n=()=>(0,r.c)("pk_live_TplUH4DKSDXfDROKpZ5UjbWX0042jPvGUP")},68570:(e,a,t)=>{"use strict";t.d(a,{FM:()=>d,a5:()=>l,hh:()=>o,lW:()=>i,q_:()=>s});let r="postAuthDest";function n(e){return!!e&&e.startsWith("/")&&!e.startsWith("//")}function s(e){try{let a=new URLSearchParams(e).get("callbackUrl");return n(a)?a:null}catch(e){return null}}function o(e){if(n(e))try{let a="https:"===window.location.protocol?"; Secure":"";document.cookie="".concat(r,"=").concat(encodeURIComponent(e),"; Max-Age=").concat(7200,"; Path=/; SameSite=Lax").concat(a)}catch(e){}}function i(){try{let e=document.cookie.split("; ").find(e=>e.startsWith("".concat(r,"=")));if(!e)return null;let a=decodeURIComponent(e.slice(r.length+1));return n(a)?a:null}catch(e){return null}}function l(){try{document.cookie="".concat(r,"=; Max-Age=0; Path=/; SameSite=Lax")}catch(e){}}function d(e){return"/pricing?resume=".concat(encodeURIComponent(e))}},49711:(e,a,t)=>{"use strict";t.d(a,{KQ:()=>g,M0:()=>x,Tl:()=>p,Wh:()=>o,_8:()=>c,b_:()=>y,m5:()=>f,ol:()=>b,qc:()=>s});var r=t(2818);let n="https://www.earonman.com",s=r.env.NEXT_PUBLIC_IOS_APP_URL||"https://apps.apple.com/cz/app/earonman/id6760226882",o=r.env.NEXT_PUBLIC_ANDROID_APP_URL||"https://play.google.com/store/apps/details?id=".concat("com.earonman.app"),i=e=>{try{return new URL(e).origin}catch(a){return e.replace(/\/+$/,"")}},l=(()=>{let e="https://www.earonman.com/";if(!e)return n;let a=e.trim();if(!a)return n;let t=a.replace(/\/+$/,"");try{return new URL(t).origin}catch(e){return i("https://".concat(t))}})(),d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";if(!e||"/"===e)return l;try{return new URL(e,l).toString()}catch(t){let a=e.startsWith("/")?e:"/".concat(e);return"".concat(l).concat(a)}},c={"@context":"https://schema.org","@type":"Organization",name:"Earonman",url:l,logo:d("/logos/Earonman_logo_no_text.png"),sameAs:["https://www.instagram.com/earonman/","https://www.facebook.com/earonman","https://www.youtube.com/@earonman"],description:"Earonman helps musicians master interval recognition, chord qualities, and harmonic awareness through guided ear training practice.",foundingDate:"2025",founders:[{"@type":"Person",name:"Tom\xe1Å¡ Jochmann",jobTitle:"Founder & Creator"}]},m={"@context":"https://schema.org","@type":"WebSite",name:"Earonman",url:l,description:"Gamified ear training platform for musicians who want to master intervals, chords, and scales with interactive exercises and progress tracking.",inLanguage:"en-US",publisher:{"@type":"Organization",name:"Earonman",url:l}},u={"@context":"https://schema.org","@type":"SoftwareApplication",name:"Earonman Ear Training",operatingSystem:"Web",applicationCategory:"EducationalApplication",offers:[{"@type":"Offer",priceCurrency:"EUR",availability:"https://schema.org/InStock",price:"0",description:"Free tier with limited daily exercises and basic tracking.",url:d("/pricing")},{"@type":"Offer",priceCurrency:"EUR",availability:"https://schema.org/InStock",price:"6.99",description:"Pro monthly subscription with unlimited access and advanced analytics.",url:d("/pricing")}],publisher:{"@type":"Organization",name:"Earonman"},description:"Interactive ear training platform built for pianists and improvisers to internalize harmony through pedagogy-backed exercises.",image:d("/logos/Earonman_logo_no_text.png"),url:l,featureList:["Interval training quests","Chord recognition challenges","Guided lesson paths","Progress tracking dashboard"]},p="https://apps.apple.com/app/id".concat("6760226882","?action=write-review"),h={"@context":"https://schema.org","@type":"MobileApplication",name:"Earonman - Ear Training",operatingSystem:"iOS, Android",applicationCategory:"EducationalApplication",applicationSubCategory:"Music Education",downloadUrl:[s,o],installUrl:[s,o],url:d("/mobile"),image:d("/logos/app-icon.png"),screenshot:[d("/screenshots/ios/AppStore_Screenshot_4_Earonman_1284x2778.png"),d("/screenshots/ios/AppStore_Screenshot_5_LevelMap_1284x2778.png"),d("/screenshots/ios/AppStore_Screenshot_7_Lesson_1284x2778.png"),d("/screenshots/ios/AppStore_Screenshot_6_Practice_1284x2778.png"),d("/screenshots/ios/AppStore_Screenshot_JazzVoicings_1284x2778.png"),d("/screenshots/ios/AppStore_Screenshot_JazzKeyboard_1284x2778.png"),d("/screenshots/ios/AppStore_Screenshot_HybridLab_1284x2778.png")],description:"Earonman for iOS and Android - the gamified ear training experience for musicians. Master intervals, chords, scales, and jazz harmony anywhere with structured lessons and adaptive practice.",publisher:{"@type":"Organization",name:"Earonman",url:l},offers:{"@type":"Offer",priceCurrency:"EUR",price:"0",availability:"https://schema.org/InStock"},inLanguage:"en-US",featureList:["Interval recognition","Chord recognition","Scale practice","Jazz voicings","Structured lessons","Progress tracking","Streaks and achievements"]},f=()=>[c,m,u,h],x=()=>[c,h,b([{name:"Home",path:"/"},{name:"Mobile App",path:"/mobile"}])],b=e=>({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.map((e,a)=>({"@type":"ListItem",position:a+1,name:e.name,item:d(e.path)}))}),g=e=>{let{name:a,description:t,path:r,keywords:n,image:s}=e;return{"@context":"https://schema.org","@type":"Course",name:a,description:t,url:d(r),provider:{"@type":"Organization",name:"Earonman",sameAs:l},inLanguage:"en-US",educationalLevel:"Beginner to Expert",...n&&n.length>0?{keywords:n.join(", ")}:{},...s?{image:d(s)}:{},hasCourseInstance:{"@type":"CourseInstance",courseMode:"online",courseWorkload:"PT10M",inLanguage:"en-US"}}},y=e=>({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(e=>{let{question:a,answer:t}=e;
1return{"@type":"Question",name:a,acceptedAnswer:{"@type":"Answer",text:t}}})})},21567:(e,a,t)=>{"use strict";t.d(a,{cn:()=>s});var r=t(43463),n=t(69795);function s(){for(var e=arguments.length,a=Array(e),t=0;t<e;t++)a[t]=arguments[t];return(0,n.QP)((0,r.$)(a))}}},e=>{var a=a=>e(e.s=a);e.O(0,[61181,11555,2615,41229,94874,37879,29793,28441,71238,77358],()=>a(78381)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.