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.