{"id":35,"date":"2021-02-19T22:38:33","date_gmt":"2021-02-20T06:38:33","guid":{"rendered":"http:\/\/japaneseonlineclass.com\/?page_id=35"},"modified":"2026-10-16T05:36:56","modified_gmt":"2026-10-16T12:36:56","slug":"japanese-online-class","status":"publish","type":"page","link":"https:\/\/japaneseonlineclass.com\/","title":{"rendered":"Japanese Online Class"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"35\" class=\"elementor elementor-35\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-31ea3f76 elementor-section-stretched elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"31ea3f76\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-67803071\" data-id=\"67803071\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-523343b2 elementor-widget elementor-widget-html\" data-id=\"523343b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<!-- WORDPRESS NOTE: the title, meta description, canonical and Open Graph tags only count when they sit in the real page head. Set them in your SEO plugin (Rank Math or Yoast); the exact values are in the setup notes. The JSON-LD block below may stay in the page body. Its @id values match what Rank Math and Yoast use, so a plugin that outputs the same entities will merge with it instead of duplicating it. -->\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\">\r\n<title>Japanese Lessons Through Story | JapaneseOnlineClass.com<\/title>\r\n<meta name=\"description\" content=\"Japanese is not just words and grammar. It's perspective, culture and the stories behind it. Online Japanese lessons where language sticks when it has story.\">\r\n<meta name=\"robots\" content=\"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\">\r\n<meta name=\"theme-color\" content=\"#d9cfe0\">\r\n<meta name=\"format-detection\" content=\"telephone=no\">\r\n<link rel=\"canonical\" href=\"https:\/\/japaneseonlineclass.com\/\">\r\n<link rel=\"alternate\" hreflang=\"en\" href=\"https:\/\/japaneseonlineclass.com\/\">\r\n<link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\/\/japaneseonlineclass.com\/\">\r\n<meta property=\"og:type\" content=\"website\">\r\n<meta property=\"og:locale\" content=\"en_US\">\r\n<meta property=\"og:site_name\" content=\"JapaneseOnlineClass.com\">\r\n<meta property=\"og:title\" content=\"Japanese Lessons Through Story | JapaneseOnlineClass.com\">\r\n<meta property=\"og:description\" content=\"Language shapes perception. Live online Japanese lessons where language sticks when it has story.\">\r\n<meta property=\"og:url\" content=\"https:\/\/japaneseonlineclass.com\/\">\r\n<meta property=\"og:image\" content=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/IMG_20190421_153955-scaled-1.jpg\">\r\n<meta property=\"og:image:alt\" content=\"JapaneseOnlineClass.com: live online Japanese lessons\">\r\n<meta name=\"twitter:card\" content=\"summary_large_image\">\r\n<meta name=\"twitter:title\" content=\"Japanese Lessons Through Story | JapaneseOnlineClass.com\">\r\n<meta name=\"twitter:description\" content=\"Language shapes perception. Live online Japanese lessons where language sticks when it has story.\">\r\n<meta name=\"twitter:image\" content=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/IMG_20190421_153955-scaled-1.jpg\">\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@graph\":[\r\n{\"@type\":\"WebSite\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#website\",\"url\":\"https:\/\/japaneseonlineclass.com\/\",\"name\":\"JapaneseOnlineClass.com\",\"alternateName\":[\"Japanese Online Class\",\"JapaneseOnlineClass\"],\"inLanguage\":\"en\",\"publisher\":{\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\"}},\r\n{\"@type\":[\"EducationalOrganization\",\"Organization\"],\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\",\"alternateName\":[\"Japanese Online Class\",\"JapaneseOnlineClass\"],\"url\":\"https:\/\/japaneseonlineclass.com\/\",\"description\":\"Live online Japanese lessons where language sticks when it has story. Japanese is taught through perspective, culture and the stories behind the words.\",\"slogan\":\"language sticks when it has story\",\"knowsLanguage\":[\"en\",\"ja\"],\"areaServed\":\"Worldwide\",\"knowsAbout\":[\"Japanese language\",\"Japanese grammar\",\"Japanese particles\",\"Japanese conversation\",\"Japanese culture\",\"Language and perception\",\"Learning Japanese through story\"],\"image\":\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/IMG_20190421_153955-scaled-1.jpg\"},\r\n{\"@type\":\"WebPage\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#webpage\",\"url\":\"https:\/\/japaneseonlineclass.com\/\",\"name\":\"Japanese Lessons Through Story | JapaneseOnlineClass.com\",\"description\":\"Live online Japanese lessons where language sticks when it has story.\",\"inLanguage\":\"en\",\"isPartOf\":{\"@id\":\"https:\/\/japaneseonlineclass.com\/#website\"},\"about\":{\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\"},\"primaryImageOfPage\":{\"@type\":\"ImageObject\",\"url\":\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/IMG_20190421_153955-scaled-1.jpg\"}}\r\n]}\r\n<\/script>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link rel=\"preconnect\" href=\"https:\/\/www.youtube.com\">\r\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/IMG_20190421_153955-scaled-1.jpg\" fetchpriority=\"high\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;400;500&family=Cormorant+Garamond:wght@400&family=Montserrat:wght@500;600&display=swap\" rel=\"stylesheet\">\r\n<noscript><style>#loading-screen{display:none!important}.jo-logo-wrap,.jo-slogan,.jo-platforms,.jo-video-wrap,.jo-cta,.jo-cue{opacity:1!important}.jo-tagline{clip-path:none!important}.jo-shield{display:none}<\/style><\/noscript>\r\n<style>\r\n@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}\r\n@property --sw{syntax:'<angle>';inherits:false;initial-value:-8deg}\r\n@property --idle{syntax:'<number>';inherits:false;initial-value:1}\r\n:root{--ease:cubic-bezier(.22,1,.36,1)}\r\n#hero-section,#hero-section *,#hero-section *::before,#hero-section *::after,#loading-screen,#loading-screen *,#loading-screen *::before,#loading-screen *::after{box-sizing:border-box}\r\nhtml,body{margin:0!important;padding:0!important;width:100%!important;max-width:100%!important;overflow-x:hidden;scroll-behavior:smooth}\r\n#hero-section,#loading-screen{font-family:'Montserrat',system-ui,-apple-system,'Segoe UI','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}\r\n@supports (overflow:clip){html,body{overflow-x:clip}}\r\n.jo-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\r\n\r\n\/* ---------- Intro ---------- *\/\r\n#loading-screen{position:fixed;inset:0;z-index:10000;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;\r\n  background:linear-gradient(135deg,rgb(220,210,220) 0%,rgb(210,200,215) 25%,rgb(225,215,225) 50%,rgb(215,205,220) 75%,rgb(230,220,230) 100%);will-change:transform}\r\n.ld-aura i{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(70px);opacity:.55;animation:aura 9s ease-in-out infinite alternate}\r\n.ld-aura i:nth-child(1){left:-20vmax;top:-20vmax;background:radial-gradient(circle,rgba(255,182,193,.7),transparent 65%)}\r\n.ld-aura i:nth-child(2){right:-20vmax;bottom:-20vmax;background:radial-gradient(circle,rgba(147,197,253,.7),transparent 65%);animation-delay:-4s}\r\n.ld-glow{position:absolute;width:70vmin;height:70vmin;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.6),transparent 65%);opacity:0;animation:glowIn 3s ease-out .4s forwards,breathe 5s ease-in-out 3.4s infinite}\r\n.ld-beam{position:absolute;inset:0;background:linear-gradient(100deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);transform:translateX(-110%);animation:beam 2.6s cubic-bezier(.65,0,.35,1) 1.2s forwards}\r\n.ld-spinner{position:relative;width:50px;height:50px;margin-bottom:60px;animation:spinnerRotate 3s cubic-bezier(.4,0,.2,1) infinite;transition:opacity .8s ease-out,scale .8s ease-out}\r\n.ld-spinner i{position:absolute;border:2px solid transparent;border-radius:50%;animation:spinnerPulse 2s ease-in-out infinite}\r\n.ld-spinner i:nth-child(1){inset:0;border-top-color:rgba(147,51,234,.75)}\r\n.ld-spinner i:nth-child(2){inset:12.5%;border-right-color:rgba(59,130,246,.75);animation-delay:.4s}\r\n.ld-spinner i:nth-child(3){inset:25%;border-bottom-color:rgba(236,72,153,.75);animation-delay:.8s}\r\n\r\n\r\n.ld-copy{position:relative;text-align:center;max-width:650px;padding:0 30px}\r\n.ld-line{font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,2.8vw,2rem);font-weight:400;line-height:1.7;letter-spacing:.5em;opacity:0;filter:blur(18px);transform:scale(1.05);\r\n  color:transparent;background:linear-gradient(100deg,rgba(85,70,95,.9) 42%,rgba(147,51,234,.95) 50%,rgba(85,70,95,.9) 58%) 100% 0\/280% 100%;-webkit-background-clip:text;background-clip:text;\r\n  animation:trackIn 2.2s cubic-bezier(.16,1,.3,1) var(--b) forwards,glint 2.4s ease-in-out calc(var(--b) + 1.4s) forwards}\r\n.ld-line+.ld-line{margin-top:12px}\r\n.ld-meter{display:flex;align-items:center;margin-top:38px;--o:.75;opacity:var(--o);animation:fadeToVar 1.2s ease-out .6s backwards;transition:opacity .8s}\r\n.ld-bar{position:relative;width:150px;height:2px;border-radius:2px;overflow:hidden;background:rgba(110,95,125,.25)}\r\n.ld-bar b{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#ec4899,#9333ea,#3b82f6);box-shadow:0 0 8px rgba(147,51,234,.4)}\r\n#ld-pct{min-width:3.4ch;margin-left:12px;font-family:'Advent Pro',sans-serif;font-size:.85rem;font-weight:400;letter-spacing:1px;font-variant-numeric:tabular-nums;color:rgba(100,80,120,.7)}\r\n.jo-focus .ld-spinner{opacity:.25;scale:.9}.jo-focus .ld-meter{--o:.25}.jo-focus .ld-brand{--o:.28}\r\n.ld-brand{position:absolute;bottom:calc(46px + env(safe-area-inset-bottom,0px));font-family:'Advent Pro',sans-serif;font-size:clamp(.9rem,1.6vw,1.05rem);font-weight:300;color:rgba(110,95,125,.9);letter-spacing:1.5px;--o:.6;opacity:var(--o);animation:fadeToVar 1.4s ease-out 2.4s backwards;transition:opacity .8s}\r\n\r\n\/* ---------- Hero ---------- *\/\r\n#hero-section{position:relative;isolation:isolate;overflow:hidden;width:100vw!important;max-width:none!important;margin:0!important;left:50%;right:50%;margin-left:-50vw!important;margin-right:-50vw!important;padding:0!important;min-height:100vh;\r\n  display:flex;align-items:center;justify-content:center;background:#d9cfe0}\r\n.jo-bg{position:absolute;inset:-8% 0;z-index:0}\r\n.jo-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}\r\n.jo-go .jo-bg img{animation:bgIn 2.8s var(--ease) both,kenburns 28s ease-in-out 2.8s infinite alternate}\r\n@supports (animation-timeline:scroll()){.jo-bg{animation:bgScroll linear both;animation-timeline:scroll(root block);animation-range:0 100svh}}\r\n.jo-tint,.jo-vignette,.jo-grain,.jo-spot{position:absolute;inset:0;pointer-events:none}\r\n.jo-tint{z-index:1}\r\n.jo-tint-a{background:linear-gradient(135deg,rgba(255,192,203,.4),rgba(173,216,230,.4));animation:tintA 15s ease-in-out infinite}\r\n.jo-tint-b{background:linear-gradient(135deg,rgba(200,255,200,.4),rgba(230,190,255,.4));opacity:0;animation:tintB 15s ease-in-out infinite}\r\n.jo-vignette{z-index:1;background:radial-gradient(120% 90% at 50% 40%,transparent 45%,rgba(60,40,100,.22) 100%)}\r\n.jo-grain{z-index:2;opacity:.08;mix-blend-mode:overlay;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'\/%3E%3C\/svg%3E\")}\r\n.jo-spot{z-index:2;opacity:0;transition:opacity .6s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.34),transparent 65%);mix-blend-mode:soft-light}\r\n#hero-section.jo-live .jo-spot{opacity:1}\r\n\r\n.jo-hero-inner{position:relative;z-index:10;width:100%;max-width:1800px;margin:0 auto;padding:40px clamp(24px,4vw,60px) 56px;display:flex;flex-direction:column;align-items:center;gap:30px}\r\n.jo-logo-wrap,.jo-slogan,.jo-platforms,.jo-video-wrap,.jo-cta,.jo-cue{opacity:0}\r\n.jo-logo-wrap{margin-top:25px}\r\n.jo-logo{font-family:'Advent Pro',sans-serif;font-size:clamp(1.3rem,2.2vw,2.2rem);font-weight:400;letter-spacing:1px;text-align:center;cursor:pointer;\r\n  background:linear-gradient(135deg,rgba(255,182,193,.95) 0%,rgba(186,104,200,.85) 25%,rgba(147,197,253,.95) 50%,rgba(255,218,185,.85) 75%,rgba(230,230,250,.95) 100%);background-size:400% 400%;\r\n  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 14px rgba(120,80,180,.25));\r\n  animation:gradientFlow 8s ease-in-out infinite,logoBreathe 3s ease-in-out infinite,logoGrowth 7s ease-in-out infinite}\r\n.jo-logo:hover,.jo-logo.jo-shake-active{animation:intenseShake .5s ease-in-out infinite!important}\r\n\r\n.jo-stage{width:100%;display:flex;justify-content:center;align-items:center;gap:40px;margin:20px 0}\r\n.jo-slogan{flex:0 0 auto;max-width:800px;margin:0;font-weight:inherit;translate:var(--px,0) var(--py,0);transition:translate .4s var(--ease)}\r\n.jo-line{display:block}\r\n@supports (animation-timeline:scroll()){\r\n  .jo-l1{animation:splitL linear both;animation-timeline:scroll(root block);animation-range:0 75svh}\r\n  .jo-l2{animation:splitR linear both;animation-timeline:scroll(root block);animation-range:0 75svh}\r\n}\r\n.jo-tagline{display:block;font-family:'Advent Pro',sans-serif;font-weight:500;font-size:clamp(2.4rem,4.8vw,4.8rem);line-height:1.2;letter-spacing:2px;white-space:nowrap;padding-bottom:.1em;width:max-content;max-width:100%;\r\n  background-size:300% 100%,200% 200%;background-repeat:no-repeat,repeat;background-position:150% 0,0 50%;\r\n  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 22px rgba(90,70,170,.28));clip-path:inset(0 100% 0 0);transition:letter-spacing .7s var(--ease)}\r\n.jo-tagline:hover{letter-spacing:4px}\r\n#tagline-1{background-image:linear-gradient(105deg,transparent 47%,rgba(255,255,255,.95) 50%,transparent 53%),linear-gradient(120deg,rgba(147,197,253,.95) 0%,rgba(167,139,250,.95) 35%,rgba(125,211,252,.95) 70%,rgba(147,197,253,.95) 100%);margin-bottom:8px}\r\n#tagline-2{background-image:linear-gradient(105deg,transparent 47%,rgba(255,255,255,.95) 50%,transparent 53%),linear-gradient(140deg,rgba(167,139,250,.95) 0%,rgba(125,211,252,.95) 40%,rgba(147,197,253,.95) 80%,rgba(167,139,250,.95) 100%);padding-left:1.5ch}\r\n\r\n.jo-media{flex:1;display:flex;flex-direction:column;align-items:center;max-width:950px;gap:20px;min-width:0}\r\n.jo-platforms{display:flex;gap:15px;justify-content:center;--pw:130px;--ph:60px}\r\n.jo-platform{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;width:var(--pw);height:var(--ph);border-radius:calc(var(--ph)*.25);\r\n  background-color:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 20px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background-color .3s,box-shadow .3s,border-color .3s}\r\n.jo-platform::after{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%)}\r\n.jo-platform:focus-visible{animation:intenseShake .5s ease-in-out infinite;background-color:rgba(255,255,255,.22)}\r\n@media (hover:hover){\r\n  .jo-platform:hover::after{transform:translateX(120%);transition:transform .9s var(--ease)}\r\n  .jo-platform:hover{animation:intenseShake .5s ease-in-out infinite;background-color:rgba(255,255,255,.22);border-color:rgba(255,255,255,.6);box-shadow:0 14px 30px rgba(186,104,200,.3)}\r\n}\r\n.jo-platform:active{animation:none!important;transform:translateY(1px);box-shadow:inset 0 2px 8px rgba(60,20,100,.25);transition:transform .12s}\r\n.jo-platform .jo-ic{position:absolute;inset:0;background-position:center;background-repeat:no-repeat}\r\n.jo-ic-teams{background-image:url('https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2023\/05\/19-193109_microsoft-teams-microsoft-teams-logo-vector-fotor-bg-remover-20230514124347.png');background-size:calc(var(--ph)*.58)}\r\n.jo-ic-meet{background-image:url('https:\/\/upload.wikimedia.org\/wikipedia\/commons\/9\/9b\/Google_Meet_icon_%282020%29.svg');background-size:calc(var(--ph)*.67)}\r\n.jo-ic-zoom{background-image:url('https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2022\/11\/Zoom-Logo.png');background-size:contain}\r\n\r\n\/* 3D video stage *\/\r\n.jo-video-wrap{position:relative;width:100%;max-width:980px;perspective:1600px}\r\n.jo-rise,.jo-tilt{transform-style:preserve-3d}\r\n.jo-rise{position:relative}\r\n@supports (animation-timeline:scroll()){.jo-rise{animation:recede linear both;animation-timeline:scroll(root block);animation-range:0 90svh}}\r\n.jo-tilt{position:relative;--idle:1;transform:rotateY(calc(var(--sw)*var(--idle))) rotateX(calc(var(--sw)*var(--idle)*-.22));animation:sway 11s ease-in-out infinite alternate;transition:--idle 1s ease}\r\n#hero-section.jo-live .jo-tilt,#hero-section.jo-drive .jo-tilt{--idle:0}\r\n.jo-tilt::before{content:\"\";position:absolute;inset:8% 4%;border-radius:40px;background:radial-gradient(60% 60% at 50% 50%,rgba(186,104,200,.55),rgba(147,197,253,.4) 60%,transparent 80%);filter:blur(38px);transform:translateZ(-90px);opacity:.75}\r\n.jo-video-frame{position:relative;padding:2px;border-radius:27px;background:conic-gradient(from var(--a),#ffb6c1,#a78bfa,#7dd3fc,#ffdab9,#ffb6c1);\r\n  transform:translateZ(34px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .55s var(--ease);animation:borderSpin 7s linear infinite,videoGlow 6s ease-in-out infinite}\r\n.jo-video{position:relative;aspect-ratio:16\/9;border-radius:25px;overflow:hidden;background:#000}\r\n.jo-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}\r\n.jo-shield{position:absolute;inset:0;z-index:3;cursor:pointer}\r\n.jo-act .jo-shield{display:none}\r\n.jo-glare{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(520px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.17),transparent 60%)}\r\n.jo-floor{position:absolute;left:12%;right:12%;bottom:-26px;height:26px;border-radius:50%;background:radial-gradient(50% 50% at 50% 50%,rgba(50,25,95,.42),transparent 72%);filter:blur(14px);translate:var(--fx,0) 0;pointer-events:none}\r\n\r\n.jo-cta{display:flex;flex-direction:column;align-items:center;margin:10px 0 0}\r\n#get-started-btn{position:relative;overflow:hidden;display:inline-block;padding:18px 40px;font-family:'Montserrat',sans-serif;font-size:16px;font-weight:600;text-decoration:none;color:#fff;letter-spacing:1.2px;text-transform:uppercase;border-radius:50px;\r\n  background:linear-gradient(135deg,rgba(255,182,193,.9) 0%,rgba(186,104,200,.8) 50%,rgba(147,197,253,.9) 100%);box-shadow:0 15px 35px rgba(186,104,200,.3),inset 0 1px 0 rgba(255,255,255,.4);\r\n  translate:var(--bx,0) var(--by,0);transition:transform .6s var(--ease),background .6s var(--ease),box-shadow .6s var(--ease),letter-spacing .6s var(--ease),translate .25s ease-out;animation:buttonPulse 3s ease-in-out infinite}\r\n#get-started-btn::after{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.6) 50%,transparent 65%);transform:translateX(-130%);animation:sheen 4.5s ease-in-out 6s infinite}\r\n#get-started-btn:hover,#get-started-btn.jo-touch{transform:translateY(-8px) scale(1.05);background:linear-gradient(135deg,#FFC1CC 0%,#D4A5FF 50%,#B2D8FF 100%);box-shadow:0 22px 44px rgba(186,104,200,.45),0 0 0 8px rgba(255,255,255,.12);letter-spacing:3px}\r\n#get-started-btn:active{transform:translateY(-1px);letter-spacing:2px;box-shadow:0 6px 16px rgba(186,104,200,.4),inset 0 3px 10px rgba(60,20,100,.28);transition-duration:.12s}\r\n#get-started-btn:focus-visible,.jo-platform:focus-visible{outline:2px solid #fff;outline-offset:4px}\r\n.jo-footer-logo{display:none;margin-top:25px;font-family:'Advent Pro',sans-serif;font-weight:500;letter-spacing:1px;text-align:center;\r\n  background:linear-gradient(135deg,rgba(255,182,193,.95),rgba(186,104,200,.85),rgba(147,197,253,.95));background-size:400% 400%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;\r\n  animation:gradientFlow 8s ease-in-out infinite,logoBreathe 3s ease-in-out infinite,logoGrowth 7s ease-in-out infinite}\r\n.jo-cue{position:absolute;z-index:10;left:50%;bottom:18px;width:1px;height:44px;background:rgba(255,255,255,.35);overflow:hidden}\r\n.jo-cue::after{content:\"\";position:absolute;left:0;top:-16px;width:1px;height:16px;background:#fff;animation:cue 2.2s cubic-bezier(.65,0,.35,1) infinite}\r\n\r\n\/* ---------- Hero reveal: begins the moment the intro slides away ---------- *\/\r\n.jo-go .jo-logo-wrap{animation:heroIn 1.2s var(--ease) .1s both}\r\n.jo-go .jo-slogan{animation:contentSlideIn 1.2s ease-out .2s both}\r\n.jo-go #tagline-1{animation:modernTyping 3s steps(30) 1s forwards,shiftShine 12s ease-in-out 4s infinite,floatingText 5s ease-in-out 4s infinite}\r\n.jo-go #tagline-2{animation:modernTyping 2.5s steps(30) 4s forwards,shiftShine 12s ease-in-out 7s infinite,floatingText 5s ease-in-out 6.5s infinite}\r\n.jo-go .jo-platforms{animation:heroIn 1.2s var(--ease) .7s both}\r\n.jo-go .jo-video-wrap{animation:heroIn 1.6s var(--ease) .3s both,videoFloat 10s ease-in-out 2s infinite}\r\n.jo-go .jo-cta{animation:heroIn 1.2s var(--ease) 1.3s both}\r\n.jo-go .jo-cue{animation:textFadeInRefined 1.2s ease-out 3.5s forwards}\r\n\r\n\/* ---------- Tablet \/ mobile ---------- *\/\r\n@media (max-width:1024px){\r\n  .jo-hero-inner{padding:80px 40px 48px;gap:40px}\r\n  .jo-logo-wrap,.jo-cue{display:none}\r\n  .jo-stage{flex-direction:column;gap:30px}\r\n  .jo-slogan{max-width:100%;width:100%;text-align:center;margin-top:3rem;translate:none}\r\n  .jo-tagline{width:100%;white-space:normal;text-align:center;font-size:2.5rem;clip-path:none;padding-left:0;opacity:0;text-wrap:balance}\r\n  .jo-go #tagline-1{animation:mobileFadeInScale 1.8s cubic-bezier(.34,1.56,.64,1) 1s forwards,shiftShine 12s ease-in-out 4s infinite,floatingText 5s ease-in-out 2.8s infinite}\r\n  .jo-go #tagline-2{animation:mobileFadeInScale 1.8s cubic-bezier(.34,1.56,.64,1) 1.8s forwards,shiftShine 12s ease-in-out 7s infinite,floatingText 5s ease-in-out 3.6s infinite}\r\n  .jo-media{width:100%}\r\n  .jo-platforms{--pw:112px;--ph:52px;gap:12px}\r\n  .jo-video-wrap{width:85%;max-width:650px}\r\n  .jo-tilt{animation-name:swaySm}\r\n  .jo-cta{margin-top:20px}\r\n  #get-started-btn{padding:14px 32px;font-size:15px}\r\n  .jo-footer-logo{display:block;font-size:1.4rem}\r\n  .jo-spot{display:none}\r\n}\r\n@media (max-width:768px){\r\n  .jo-hero-inner{padding:72px 20px 44px}\r\n  .jo-slogan{margin:3.5rem auto 1rem}\r\n  .jo-tagline{font-size:1.8rem}\r\n  .jo-platforms{--pw:92px;--ph:44px;gap:10px}\r\n  .jo-video-wrap{width:95%;max-width:420px}\r\n  .jo-video-frame{border-radius:19px}\r\n  .jo-video{border-radius:17px}\r\n  #get-started-btn{padding:12px 28px;font-size:14px}\r\n  .jo-footer-logo{font-size:1.1rem;margin-top:40px}\r\n}\r\n\r\n\/* ---------- Keyframes ---------- *\/\r\n@keyframes gradientFlow{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}\r\n@keyframes modernTyping{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}\r\n@keyframes shiftShine{0%{background-position:150% 0,0 50%}45%{background-position:150% 0,90% 50%}70%{background-position:-50% 0,100% 50%}100%{background-position:-50% 0,0 50%}}\r\n@keyframes floatingText{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}\r\n@keyframes splitL{to{translate:-9vw -2vh;opacity:.12;filter:blur(6px)}}\r\n@keyframes splitR{to{translate:9vw 2vh;opacity:.12;filter:blur(6px)}}\r\n@keyframes logoBreathe{0%,100%{opacity:.7}50%{opacity:1}}\r\n@keyframes logoGrowth{0%,100%{transform:scale(1)}15%{transform:scale(1.03)}30%{transform:scale(.98)}65%{transform:scale(1.06)}85%{transform:scale(1.01)}}\r\n@keyframes intenseShake{0%,100%{transform:translate(0,0) rotate(0)}15%{transform:translate(-4px,-3px) rotate(-2deg)}30%{transform:translate(4px,2px) rotate(2deg)}45%{transform:translate(-4px,3px) rotate(-1.5deg)}60%{transform:translate(4px,-2px) rotate(1.5deg)}75%{transform:translate(-2px,2px) rotate(-.5deg)}}\r\n@keyframes tintA{0%,100%{opacity:1}50%{opacity:0}}\r\n@keyframes tintB{0%,100%{opacity:0}50%{opacity:1}}\r\n@keyframes bgIn{from{transform:scale(1.22)}to{transform:scale(1.02)}}\r\n@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.1) translate(-1%,-1%)}}\r\n@keyframes bgScroll{to{transform:translateY(5%)}}\r\n@keyframes recede{to{transform:translateY(-2vh) rotateX(12deg) scale(.93)}}\r\n@keyframes sway{from{--sw:-8deg}to{--sw:8deg}}\r\n@keyframes swaySm{from{--sw:-7deg}to{--sw:7deg}}\r\n@keyframes borderSpin{to{--a:360deg}}\r\n@keyframes videoFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}\r\n@keyframes videoGlow{0%,100%{box-shadow:0 25px 50px rgba(0,0,0,.15)}50%{box-shadow:0 25px 70px rgba(186,104,200,.4)}}\r\n@keyframes heroIn{from{opacity:0;transform:translateY(40px) scale(.95);filter:blur(14px)}to{opacity:1;transform:none;filter:none}}\r\n@keyframes buttonPulse{0%,100%{scale:1}50%{scale:1.05}}\r\n@keyframes contentSlideIn{from{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}\r\n@keyframes sheen{0%,60%{transform:translateX(-130%)}100%{transform:translateX(130%)}}\r\n@keyframes cue{to{top:44px}}\r\n@keyframes spinnerRotate{to{transform:rotate(360deg)}}\r\n@keyframes spinnerPulse{0%,100%{opacity:.35}50%{opacity:1}}\r\n@keyframes fadeToVar{from{opacity:0;transform:translateY(15px)}to{opacity:var(--o,1);transform:none}}\r\n@keyframes trackIn{to{opacity:1;filter:blur(0);letter-spacing:.3px;transform:none}}\r\n@keyframes glint{from{background-position:100% 0}to{background-position:0 0}}\r\n@keyframes beam{to{transform:translateX(110%)}}\r\n@keyframes glowIn{to{opacity:1}}\r\n@keyframes breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.75}}\r\n@keyframes aura{from{transform:translate(0,0) scale(1)}to{transform:translate(6vmax,4vmax) scale(1.15)}}\r\n@keyframes textFadeInRefined{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}\r\n@keyframes mobileFadeInScale{0%{opacity:0;transform:scale(.92) translateY(25px);filter:blur(8px)}50%{opacity:.5;transform:scale(.96) translateY(12px);filter:blur(4px)}100%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}\r\n@media (prefers-reduced-motion:reduce){.jo-tilt,.jo-rise,.jo-l1,.jo-l2{animation:none!important}.jo-tint,.jo-logo,.jo-footer-logo,.jo-bg img,#get-started-btn::after{animation-iteration-count:1!important}}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"loading-screen\" role=\"status\" aria-label=\"Loading\">\r\n  <div class=\"ld-aura\" aria-hidden=\"true\"><i><\/i><i><\/i><\/div>\r\n  <div class=\"ld-glow\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"ld-beam\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"ld-spinner\" id=\"ld-spinner\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/div>\r\n  <div class=\"ld-copy\">\r\n    <div class=\"ld-line\" id=\"loading-text-1\" style=\"--b:.5s\">Story gives language depth.<\/div>\r\n    <div class=\"ld-line\" id=\"loading-text-2\" style=\"--b:1.5s\">Depth is what remains.<\/div>\r\n  <\/div>\r\n  <div class=\"ld-meter\" id=\"ld-meter\" aria-hidden=\"true\"><div class=\"ld-bar\"><b id=\"ld-fill\"><\/b><\/div><span id=\"ld-pct\">0%<\/span><\/div>\r\n  <div class=\"ld-brand\" id=\"ld-brand\">JapaneseOnlineClass.com<\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  var t0=performance.now(),left=false,loaded=false;\r\n  var fill=document.getElementById('ld-fill'),pct=document.getElementById('ld-pct'),screen=document.getElementById('loading-screen');\r\n  function meter(){\r\n    if(left)return;\r\n    var p=Math.min((performance.now()-t0)\/4300,loaded?1:.92);\r\n    fill.style.transform='scaleX('+p.toFixed(4)+')';pct.textContent=Math.round(p*100)+'%';\r\n    requestAnimationFrame(meter);\r\n  }\r\n  meter();\r\n  \/* once both lines are fully written, everything else quietly steps back so the words stay with you *\/\r\n  setTimeout(function(){screen.classList.add('jo-focus');},3800);\r\n  function leave(){\r\n    if(left)return;left=true;\r\n    fill.style.transition='transform .3s ease-out';fill.style.transform='scaleX(1)';pct.textContent='100%';\r\n    screen.classList.add('jo-focus');\r\n    setTimeout(function(){document.getElementById('ld-meter').style.opacity='0';},300);\r\n    setTimeout(function(){\r\n      document.body.classList.add('jo-go');\r\n      screen.style.transition='transform 1.8s cubic-bezier(.7,0,.3,1),border-radius 1.8s cubic-bezier(.7,0,.3,1)';\r\n      screen.style.borderRadius='0 0 50% 50% \/ 0 0 14vh 14vh';screen.style.transform='translateY(100%)';\r\n    },450);\r\n    setTimeout(function(){screen.style.display='none';},2500);\r\n  }\r\n  addEventListener('load',function(){loaded=true;setTimeout(leave,Math.max(800,4700-(performance.now()-t0)));});\r\n  setTimeout(leave,8500);\r\n})();\r\n<\/script>\r\n\r\n<section id=\"hero-section\" aria-label=\"JapaneseOnlineClass.com\">\r\n  <div class=\"jo-bg\" aria-hidden=\"true\"><img src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/IMG_20190421_153955-scaled-1.jpg\" alt=\"\" decoding=\"async\" fetchpriority=\"high\"><\/div>\r\n  <div class=\"jo-tint jo-tint-a\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo-tint jo-tint-b\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo-vignette\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo-grain\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo-spot\" aria-hidden=\"true\"><\/div>\r\n\r\n  <div class=\"jo-hero-inner\">\r\n    <div class=\"jo-logo-wrap\"><div class=\"jo-logo\" id=\"main-logo\">JapaneseOnlineClass.com<\/div><\/div>\r\n\r\n    <div class=\"jo-stage\">\r\n      <h1 class=\"jo-slogan\" id=\"slogan\">\r\n        <span class=\"jo-sr-only\">Online Japanese lessons at JapaneseOnlineClass.com: <\/span>\r\n        <span class=\"jo-line jo-l1\"><span id=\"tagline-1\" class=\"jo-tagline\">language sticks<\/span><\/span>\r\n        <span class=\"jo-line jo-l2\"><span id=\"tagline-2\" class=\"jo-tagline\">when it has story<\/span><\/span>\r\n      <\/h1>\r\n\r\n      <div class=\"jo-media\">\r\n        <div class=\"jo-platforms\">\r\n          <a class=\"jo-platform\" href=\"https:\/\/teams.live.com\/dl\/launcher\/launcher.html?url=%2F_%23%2Fmeet%2F944827162154%3Fanon%3Dtrue&amp;type=meet&amp;deeplinkId=b547e1c9-bc0d-4c37-95e3-11f4cbb50a26&amp;directDl=true&amp;msLaunch=true&amp;enableMobilePage=true&amp;suppressPrompt=true\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Join a lesson on Microsoft Teams\"><span class=\"jo-ic jo-ic-teams\"><\/span><\/a>\r\n          <a class=\"jo-platform\" href=\"https:\/\/meet.google.com\/wps-kdqo-nbm\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Join a lesson on Google Meet\"><span class=\"jo-ic jo-ic-meet\"><\/span><\/a>\r\n          <a class=\"jo-platform\" href=\"https:\/\/us05web.zoom.us\/j\/7278856832?pwd=VDBZdE5zckozd1FFb0YrcnovdHpSUT09#success\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Join a lesson on Zoom\"><span class=\"jo-ic jo-ic-zoom\"><\/span><\/a>\r\n        <\/div>\r\n\r\n        <div class=\"jo-video-wrap\" id=\"video-wrap\">\r\n          <div class=\"jo-rise\">\r\n            <div class=\"jo-tilt\">\r\n              <div class=\"jo-video-frame\" id=\"frame\">\r\n                <div class=\"jo-video\">\r\n                  <iframe src=\"https:\/\/www.youtube.com\/embed\/rZ2U-S7l3LQ?autoplay=1&mute=1&loop=1&playlist=rZ2U-S7l3LQ&controls=1&showinfo=0&rel=0&modestbranding=1\" title=\"JapaneseOnlineClass.com introduction video\" allow=\"autoplay; encrypted-media; picture-in-picture; fullscreen\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\r\n                  <div class=\"jo-glare\" aria-hidden=\"true\"><\/div>\r\n                  <div class=\"jo-shield\" id=\"shield\" aria-hidden=\"true\"><\/div>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"jo-floor\" aria-hidden=\"true\"><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"jo-cta\">\r\n      <a href=\"#pricing\" id=\"get-started-btn\" ontouchstart=\"this.classList.add('jo-touch')\" ontouchend=\"this.classList.remove('jo-touch')\">Get Started<\/a>\r\n      <div class=\"jo-footer-logo\" aria-hidden=\"true\">JapaneseOnlineClass.com<\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"jo-cue\" aria-hidden=\"true\"><\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n  \/* Switches *\/\r\n  var SHIELD=true;          \/* true (desktop): the first click on the video \"activates\" it, so wheel-scrolling and 3D tilt always work over it. false: the video is directly clickable. *\/\r\n\r\n  var hero=document.getElementById('hero-section'),wrap=document.getElementById('video-wrap'),frame=document.getElementById('frame'),shield=document.getElementById('shield'),slogan=document.getElementById('slogan'),btn=document.getElementById('get-started-btn');\r\n  var fine=matchMedia('(hover:hover) and (pointer:fine)').matches,calm=matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var mouse={x:-9999,y:-9999},raf=0,active=false,gyroOn=false,tt=0;\r\n  function clamp(v,a,b){return Math.max(a,Math.min(b,v));}\r\n  function setTilt(ry,rx){frame.style.setProperty('--ry',ry.toFixed(2)+'deg');frame.style.setProperty('--rx',rx.toFixed(2)+'deg');}\r\n\r\n  \/* Keep the hero flush with the page top, and close any theme gap between the hero and whatever follows it *\/\r\n  function pull(){\r\n    hero.style.removeProperty('margin-top');hero.style.removeProperty('margin-bottom');\r\n    var t=hero.getBoundingClientRect().top+scrollY;\r\n    if(t>0&&t<600)hero.style.setProperty('margin-top',-t+'px','important');\r\n    var hb=hero.getBoundingClientRect().bottom+scrollY,el=hero,nx=null;\r\n    while(el&&el!==document.body&&el!==document.documentElement){\r\n      var sb=el.nextElementSibling;\r\n      while(sb){var cs=getComputedStyle(sb);if(!\/^(SCRIPT|STYLE|NOSCRIPT|CANVAS|LINK|PRE)$\/.test(sb.tagName)&&sb.offsetHeight>0&&cs.position!=='fixed'&&cs.position!=='absolute')break;sb=sb.nextElementSibling;}\r\n      if(sb){nx=sb;break;}\r\n      el=el.parentElement;\r\n    }\r\n    if(nx){var gap=nx.getBoundingClientRect().top+scrollY-hb;if(gap>.5&&gap<120)hero.style.setProperty('margin-bottom',-gap+'px','important');}\r\n  }\r\n  pull();addEventListener('load',pull);addEventListener('resize',pull);\r\n  \/* Diagnostics: add ?herodebug to the page address to see hero\/gap measurements on screen *\/\r\n  if(\/[?&]herodebug\/.test(location.search)){\r\n    hero.style.outline='3px solid red';\r\n    var dbgEl=document.createElement('pre');dbgEl.style.cssText='position:fixed;left:8px;bottom:8px;z-index:99999;margin:0;padding:8px 10px;background:#000;color:#0f0;font:11px\/1.4 monospace;max-width:92vw;white-space:pre-wrap;border-radius:6px';\r\n    var dbg=function(){var r=hero.getBoundingClientRect(),p=hero.parentElement,n=hero.nextElementSibling;dbgEl.textContent=['hero top '+Math.round(r.top+scrollY)+'  bottom '+Math.round(r.bottom+scrollY)+'  height '+Math.round(r.height),'viewport '+innerWidth+'x'+innerHeight+'  docHeight '+document.documentElement.scrollHeight,'margin-top '+hero.style.marginTop+'  margin-bottom '+hero.style.marginBottom,'parent '+(p?p.tagName+'.'+p.className:'-'),'next '+(n?n.tagName+'.'+n.className+'#'+n.id:'-')].join('\\n');};\r\n    document.body.appendChild(dbgEl);dbg();addEventListener('resize',dbg);addEventListener('scroll',dbg,{passive:true});setTimeout(dbg,1500);\r\n  }\r\n\r\n  \/* Video shield (desktop) *\/\r\n  if(fine&&SHIELD){shield.addEventListener('click',function(){active=true;wrap.classList.add('jo-act');setTilt(0,0);});}\r\n  else{shield.remove();}\r\n\r\n  \/* Mouse: 3D tilt toward the cursor, glare, spotlight, slogan parallax, magnetic button *\/\r\n  addEventListener('pointermove',function(e){if(e.pointerType==='touch')return;mouse.x=e.clientX;mouse.y=e.clientY;if(fine&&!raf)raf=requestAnimationFrame(update);},{passive:true});\r\n  hero.addEventListener('pointerleave',function(){hero.classList.remove('jo-live');\r\n    setTilt(0,0);wrap.style.setProperty('--fx','0px');\r\n    ['--px','--py'].forEach(function(k){slogan.style.setProperty(k,'0px')});['--bx','--by'].forEach(function(k){btn.style.setProperty(k,'0px')});});\r\n  function update(){\r\n    raf=0;var hr=hero.getBoundingClientRect();\r\n    if(mouse.y<hr.top||mouse.y>hr.bottom)return;\r\n    var x=mouse.x-hr.left,y=mouse.y-hr.top,hnx=x\/hr.width-.5,hny=y\/hr.height-.5;\r\n    hero.classList.add('jo-live');hero.style.setProperty('--mx',x+'px');hero.style.setProperty('--my',y+'px');\r\n    var wr=wrap.getBoundingClientRect();\r\n    if(active&&(mouse.x<wr.left-10||mouse.x>wr.right+10||mouse.y<wr.top-10||mouse.y>wr.bottom+10)){active=false;wrap.classList.remove('jo-act');}\r\n    if(innerWidth>1024){\r\n      if(!active){\r\n        var nx=clamp((mouse.x-(wr.left+wr.width\/2))\/(innerWidth*.5),-1,1),ny=clamp((mouse.y-(wr.top+wr.height\/2))\/(innerHeight*.5),-1,1);\r\n        setTilt(nx*14,-ny*9);\r\n        frame.style.setProperty('--gx',clamp((mouse.x-wr.left)\/wr.width*100,-20,120)+'%');frame.style.setProperty('--gy',clamp((mouse.y-wr.top)\/wr.height*100,-20,120)+'%');\r\n        wrap.style.setProperty('--fx',(-nx*28).toFixed(1)+'px');\r\n      }\r\n      slogan.style.setProperty('--px',(hnx*-18).toFixed(1)+'px');slogan.style.setProperty('--py',(hny*-12).toFixed(1)+'px');\r\n    }\r\n    var b=btn.getBoundingClientRect(),dx=mouse.x-(b.left+b.width\/2),dy=mouse.y-(b.top+b.height\/2);\r\n    if(Math.hypot(dx,dy)<140){btn.style.setProperty('--bx',(dx*.28).toFixed(1)+'px');btn.style.setProperty('--by',(dy*.35).toFixed(1)+'px');}\r\n    else{btn.style.setProperty('--bx','0px');btn.style.setProperty('--by','0px');}\r\n  }\r\n  frame.style.setProperty('--gx','50%');frame.style.setProperty('--gy','50%');\r\n\r\n  \/* Touch & tablet: the 3D video follows your finger, and on Android it also follows the tilt of the device *\/\r\n  function touchTilt(e){var t=e.touches&&e.touches[0];if(!t)return;clearTimeout(tt);hero.classList.add('jo-drive');\r\n    setTilt(clamp((t.clientX-innerWidth\/2)\/(innerWidth\/2),-1,1)*12,-clamp((t.clientY-innerHeight\/2)\/(innerHeight\/2),-1,1)*8);}\r\n  hero.addEventListener('touchstart',touchTilt,{passive:true});\r\n  hero.addEventListener('touchmove',touchTilt,{passive:true});\r\n  hero.addEventListener('touchend',function(){tt=setTimeout(function(){if(!gyroOn){hero.classList.remove('jo-drive');setTilt(0,0);}},900);},{passive:true});\r\n  if(!fine&&window.DeviceOrientationEvent&&typeof DeviceOrientationEvent.requestPermission!=='function'){\r\n    var base=null;\r\n    addEventListener('deviceorientation',function(e){\r\n      if(e.gamma==null||e.beta==null)return;\r\n      if(!base)base={g:e.gamma,b:e.beta};\r\n      base.g+=(e.gamma-base.g)*.01;base.b+=(e.beta-base.b)*.01;\r\n      gyroOn=true;hero.classList.add('jo-drive');\r\n      setTilt(clamp((e.gamma-base.g)\/18,-1,1)*12,-clamp((e.beta-base.b)\/18,-1,1)*8);\r\n    },true);\r\n  }\r\n\r\n\r\n  \/* Petals with real depth: far ones are small and faint, near ones large and soft. Now and then one flies toward you.\r\n     They drift through the whole page, part around the cursor, feel the scroll, and every click in the hero releases a fresh flutter. *\/\r\n})();\r\n<\/script>\r\n<script>\r\n\/* ============================================================\r\n   SITE-WIDE EFFECTS: falling petals, click ripple, button sound (works in every section of the page)\r\n   Falling petals + click ripple\/flutter. It attaches to the whole\r\n   document, so every section added below the hero gets it automatically.\r\n   Opt a block out with  data-jo-nofx  \u00b7  Switch everything off: ENABLED=false\r\n   ============================================================ *\/\r\n(function(){\r\n  if(window.__joFx)return;window.__joFx=true;window.__joFxVersion='12';\r\n  var ENABLED=true;\r\n  if(!ENABLED)return;\r\n  var calm=matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var mouse={x:-9999,y:-9999};\r\n  addEventListener('pointermove',function(e){if(e.pointerType==='touch')return;mouse.x=e.clientX;mouse.y=e.clientY;},{passive:true});\r\n  var st=document.createElement('style');st.id='jo-fx-style';\r\n  st.textContent='.jo-ring{position:fixed;z-index:9001;width:10px;height:10px;border:1px solid rgba(255,255,255,.85);border-radius:50%;pointer-events:none;translate:-50% -50%;box-shadow:0 0 0 1px rgba(147,51,234,.12);animation:jo-ring-kf .9s cubic-bezier(.22,1,.36,1) forwards}@keyframes jo-ring-kf{to{scale:11;opacity:0}}';\r\n  document.head.appendChild(st);\r\n  var cv=document.createElement('canvas');cv.setAttribute('aria-hidden','true');cv.style.cssText='position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:9000';document.body.appendChild(cv);\r\n  var ctx=cv.getContext('2d'),W,H,dpr=Math.min(devicePixelRatio||1,2),P=[],B=[],F=null,lastY=scrollY,mpx=0,mpy=0,canBlur='filter' in ctx;\r\n  var nextFly=performance.now()+9000,flyArmed=false;\r\n  function size(){W=innerWidth;H=innerHeight;cv.width=W*dpr;cv.height=H*dpr;ctx.setTransform(dpr,0,0,dpr,0,0);}\r\n  function amb(init){var z=.15+Math.random()*.85;return{x:Math.random()*W,y:init?Math.random()*H:-30,z:z,r:4+Math.random()*3,vy:(.2+Math.random()*.25)*(.6+z*.8),vx:-.1+Math.random()*.25,rot:Math.random()*6.28,vr:(Math.random()-.5)*.02,ph:Math.random()*6.28,a:.3+Math.random()*.25,ox:0,oy:0};}\r\n  function build(){size();var n=W<769?4:7;P=[];for(var i=0;i<n;i++)P.push(amb(true));}\r\n  function shape(x,y,r,rot,ph,a,blur){\r\n    ctx.save();ctx.translate(x,y);ctx.rotate(rot);ctx.scale(1,.55+.45*Math.abs(Math.cos(ph)));\r\n    if(canBlur&&blur>.4)ctx.filter='blur('+blur.toFixed(1)+'px)';\r\n    var g=ctx.createLinearGradient(0,-r,0,r);g.addColorStop(0,'rgba(255,232,242,'+a+')');g.addColorStop(1,'rgba(255,176,200,'+a+')');\r\n    ctx.fillStyle=g;ctx.beginPath();ctx.moveTo(0,-r);ctx.bezierCurveTo(r*.95,-r*.6,r*.7,r*.75,0,r);ctx.bezierCurveTo(-r*.7,r*.75,-r*.95,-r*.6,0,-r);ctx.fill();ctx.restore();\r\n  }\r\n  function flyby(){var fromLeft=Math.random()<.5;return{x:W*(fromLeft?.18:.82)+(Math.random()-.5)*W*.1,y:H*(.22+Math.random()*.4),z:.08,vz:.0062+Math.random()*.003,vx:(fromLeft?1:-1)*(.5+Math.random()*.7),vy:.25+Math.random()*.3,rot:Math.random()*6.28,vr:(Math.random()<.5?-1:1)*(.012+Math.random()*.012),ph:Math.random()*6.28};}\r\n  function burst(x,y){\r\n    for(var k=0;k<7;k++){\r\n      var u=Math.random(),z=u<.5?.1+Math.random()*.4:(u<.85?.5+Math.random()*.5:1+Math.random()*.7),sp=.5+z*.6;\r\n      B.push({x:x,y:y,z:z,r:5+Math.random()*3,vx:(Math.random()-.5)*8*sp,vy:(-1-Math.random()*3.4)*sp,rot:Math.random()*6.28,vr:(Math.random()-.5)*.08,ph:Math.random()*6.28,t:0,max:2400+z*900+Math.random()*1500,g:.03+z*.03});\r\n    }\r\n    while(B.length>34)B.shift();\r\n  }\r\n  var last=performance.now();\r\n  function tick(now){\r\n    requestAnimationFrame(tick);if(document.hidden){last=now;return;}\r\n    var dt=Math.min(now-last,50);last=now;var k60=dt\/16.7;\r\n    ctx.clearRect(0,0,W,H);var sy=scrollY,sdy=sy-lastY;lastY=sy;\r\n    var tmx=mouse.x>-5000?(mouse.x\/W-.5):0,tmy=mouse.y>-5000?(mouse.y\/H-.5):0;mpx+=(tmx-mpx)*.05;mpy+=(tmy-mpy)*.05;\r\n    if(!flyArmed&&(document.body.classList.contains('jo-go')||!document.getElementById('hero-section'))){flyArmed=true;nextFly=now+3800;}\r\n    if(!F&&flyArmed&&now>nextFly){F=flyby();}\r\n    \/* ambient *\/\r\n    for(var i=0;i<P.length;i++){var p=P[i];p.ph+=.016*k60;p.rot+=p.vr*k60;\r\n      var dx=p.x-mouse.x,dy=p.y-mouse.y,d=Math.hypot(dx,dy);if(d<120&&d>0){p.ox+=dx\/d*(120-d)*.01;p.oy+=dy\/d*(120-d)*.01;}\r\n      p.ox*=.94;p.oy*=.94;p.x+=(p.vx+Math.sin(p.ph)*.4+p.ox)*k60;p.y+=(p.vy+p.oy)*k60-sdy*(.2+p.z*.5);\r\n      if(p.y>H+30||p.y<-80||p.x>W+40||p.x<-40)P[i]=amb(false);\r\n      var q=P[i],kz=.55+q.z*.9;shape(q.x-mpx*34*q.z,q.y-mpy*22*q.z,q.r*kz,q.rot,q.ph,q.a*(.5+.5*q.z),q.z>.8?(q.z-.8)*5:0);}\r\n    \/* click bursts *\/\r\n    for(var j=B.length-1;j>=0;j--){var b=B[j];b.t+=dt;if(b.t>b.max){B.splice(j,1);continue;}\r\n      b.vy+=b.g*k60;b.vx*=Math.pow(.985,k60);b.vy*=Math.pow(.99,k60);b.x+=b.vx*k60;b.y+=b.vy*k60-sdy*.4;b.rot+=b.vr*k60;b.ph+=.05*k60;\r\n      var life=1-b.t\/b.max,kz=.35+b.z*1.1,al=(.3+Math.min(b.z,1)*.5)*Math.min(1,life*1.6),bl=b.z>1.1?(b.z-1.1)*9:(b.z<.25?.8:0);shape(b.x-mpx*34*b.z,b.y-mpy*22*b.z,b.r*kz,b.rot,b.ph,al,bl);}\r\n    \/* the one that flies toward you *\/\r\n    if(F){F.z+=F.vz*k60;F.x+=F.vx*k60;F.y+=F.vy*k60-sdy*.3;F.rot+=F.vr*k60;F.ph+=.03*k60;\r\n      var z=F.z,sc=.35+z*2.2,al=z<.25?z\/.25*.8:(z>1.4?Math.max(0,(1.95-z)\/.55)*.8:.8);\r\n      shape(F.x-mpx*60*z,F.y-mpy*40*z,9*sc,F.rot,F.ph,al,z>.9?(z-.9)*14:0);\r\n      if(z>1.95||F.x<-200||F.x>W+200){F=null;nextFly=now+7000+Math.random()*7000;}}\r\n  }\r\n  \/* ---------- Page-wide pointer layer ----------\r\n     1) tap anywhere on plain content  -> ripple + petal flutter\r\n     2) press any button-like element   -> squish, ripple, glow, \"click\" sound, haptic buzz\r\n     Listens on the window in the capture phase with pointer events, so nothing inside a section can swallow it. *\/\r\n  var SOUND=true,HAPTIC=true;   \/* switches: SOUND=false mutes the click, HAPTIC=false stops the phone buzz *\/\r\n  var NOFX='a,button,input,textarea,select,label,summary,iframe,[role=\"button\"],[aria-expanded],[contenteditable=\"true\"],[data-jo-nofx]';\r\n  var ac=null,master=null,SND_VOL=.55;\r\n  function audio(){\r\n    if(ac)return ac;\r\n    var AC=window.AudioContext||window.webkitAudioContext;if(!AC)return null;\r\n    try{\r\n      ac=new AC();\r\n      var comp=ac.createDynamicsCompressor();comp.threshold.value=-20;comp.ratio.value=3;comp.attack.value=.003;comp.release.value=.14;\r\n      master=ac.createGain();master.gain.value=SND_VOL;master.connect(comp);comp.connect(ac.destination);\r\n    }catch(_){ac=null;}\r\n    return ac;\r\n  }\r\n  \/* one soft, low, wooden tap with a whisper of felt *\/\r\n  function thock(a,t,f0,f1,peak,len){\r\n    var o=a.createOscillator(),g=a.createGain();o.type='sine';\r\n    o.frequency.setValueAtTime(f0,t);o.frequency.exponentialRampToValueAtTime(f1,t+.05);\r\n    g.gain.setValueAtTime(.0001,t);g.gain.exponentialRampToValueAtTime(peak,t+.004);g.gain.exponentialRampToValueAtTime(.0001,t+len);\r\n    o.connect(g);g.connect(master);o.start(t);o.stop(t+len+.02);\r\n    var n=Math.max(8,Math.floor(a.sampleRate*.009)),buf=a.createBuffer(1,n,a.sampleRate),ch=buf.getChannelData(0);\r\n    for(var i=0;i<n;i++)ch[i]=(Math.random()*2-1)*Math.pow(1-i\/n,3);\r\n    var sr=a.createBufferSource();sr.buffer=buf;\r\n    var f=a.createBiquadFilter();f.type='lowpass';f.frequency.value=1100;\r\n    var gg=a.createGain();gg.gain.value=peak*.18;sr.connect(f);f.connect(gg);gg.connect(master);sr.start(t);\r\n  }\r\n  \/* \"ko-to-tto\": two soft low taps, the second a little lower and softer, like a gentle double click *\/\r\n  function sound(){\r\n    if(!SOUND||window.JO_SOUND===false)return;\r\n    var a=audio();if(!a)return;if(a.state==='suspended')a.resume();\r\n    var t=a.currentTime+.005,v=1+(Math.random()-.5)*.03;\r\n    thock(a,t,215*v,98*v,.30,.09);\r\n    thock(a,t+.085,190*v,86*v,.24,.11);\r\n  }\r\n  function btnOf(t){\r\n    if(!t||!t.closest)return null;\r\n    var el=t.closest('button,[role=\"button\"],input[type=\"button\"],input[type=\"submit\"],input[type=\"reset\"],summary,[aria-expanded],a,[data-jo-press]');\r\n    if(!el||el.closest('[data-jo-nopress]')||el.disabled||el.getAttribute('aria-disabled')==='true')return null;\r\n    if(el.tagName==='A'&&!el.hasAttribute('data-jo-press')){\r\n      var r=el.getBoundingClientRect(),cs=getComputedStyle(el);\r\n      var boxed=cs.display!=='inline'&&(parseFloat(cs.borderTopWidth)>0||cs.backgroundImage!=='none'||!\/rgba\\(\\s*\\d+,\\s*\\d+,\\s*\\d+,\\s*0\\s*\\)|transparent\/.test(cs.backgroundColor));\r\n      if(!((boxed&&r.width<=520&&r.height<=140)||\/btn|button|cta\/i.test(String(el.getAttribute('class')||''))))return null;\r\n    }\r\n    return el;\r\n  }\r\n  function host(el){\r\n    var r=el.getBoundingClientRect(),cs=getComputedStyle(el),h=document.createElement('span');\r\n    h.style.cssText='position:fixed;left:'+r.left+'px;top:'+r.top+'px;width:'+r.width+'px;height:'+r.height+'px;border-radius:'+cs.borderRadius+';pointer-events:none;z-index:9002';\r\n    return {h:h,r:r};\r\n  }\r\n  function ripple(el,x,y){\r\n    var o=host(el),h=o.h,r=o.r,c=document.createElement('span'),d=Math.max(r.width,r.height)*2.4;\r\n    h.style.overflow='hidden';\r\n    c.style.cssText='position:absolute;left:'+(x-r.left-d\/2)+'px;top:'+(y-r.top-d\/2)+'px;width:'+d+'px;height:'+d+'px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.7),rgba(255,255,255,0) 70%)';\r\n    h.appendChild(c);document.body.appendChild(h);\r\n    if(!c.animate){h.remove();return;}\r\n    c.animate([{transform:'scale(0)',opacity:.9},{transform:'scale(1)',opacity:0}],{duration:650,easing:'cubic-bezier(.22,1,.36,1)'}).onfinish=function(){h.remove();};\r\n  }\r\n  function glow(el){\r\n    var o=host(el),h=o.h;document.body.appendChild(h);\r\n    if(!h.animate){h.remove();return;}\r\n    h.animate([{boxShadow:'0 0 0 0 rgba(168,85,247,.5)'},{boxShadow:'0 0 0 16px rgba(168,85,247,0)'}],{duration:520,easing:'cubic-bezier(.22,1,.36,1)'}).onfinish=function(){h.remove();};\r\n  }\r\n  var cur=null,downAnim=null,tap=null;\r\n  function pressDown(el,e){\r\n    cur=el;var touch=e.pointerType==='touch';\r\n    if(!touch)sound();\r\n    if(HAPTIC&&navigator.vibrate){try{navigator.vibrate(8);}catch(_){}}\r\n    if(calm)return;\r\n    if(el.animate){try{downAnim=el.animate([{scale:'1'},{scale:'.95'}],{duration:90,easing:'ease-out',fill:'forwards'});}catch(_){}}\r\n    ripple(el,e.clientX,e.clientY);\r\n  }\r\n  function pressUp(e,cancel){\r\n    var el=cur;if(!el)return;cur=null;\r\n    if(downAnim){try{downAnim.cancel();}catch(_){}downAnim=null;}\r\n    var ok=!cancel&&(el===e.target||el.contains(e.target));\r\n    if(!calm&&el.animate){try{el.animate([{scale:'.95'},{scale:ok?'1.035':'1'},{scale:'1'}],{duration:ok?340:160,easing:'cubic-bezier(.2,.9,.25,1.2)'});}catch(_){}}\r\n    if(ok){if(e.pointerType==='touch')sound();if(!calm)glow(el);}\r\n  }\r\n  var dbgEl=null;\r\n  function dbg(m){if(!dbgEl)return;dbgEl.textContent='Effects v12 ready\\n'+m;}\r\n  if(\/[?&]herodebug\/.test(location.search)){dbgEl=document.createElement('pre');dbgEl.style.cssText='position:fixed;left:8px;top:8px;z-index:99999;margin:0;padding:6px 9px;background:#000;color:#0f0;font:11px\/1.4 monospace;border-radius:6px;pointer-events:none';document.body.appendChild(dbgEl);dbg('waiting for a tap...');}\r\n  window.addEventListener('pointerdown',function(e){\r\n    if(e.pointerType==='mouse'&&e.button!==0)return;\r\n    var el=btnOf(e.target);\r\n    if(el){pressDown(el,e);tap=null;dbg('press on '+el.tagName+'.'+String(el.getAttribute('class')||'').slice(0,40));return;}\r\n    tap={x:e.clientX,y:e.clientY,t:performance.now(),id:e.pointerId};\r\n  },true);\r\n  window.addEventListener('pointerup',function(e){\r\n    if(cur){pressUp(e,false);return;}\r\n    if(!tap||tap.id!==e.pointerId)return;\r\n    var d=Math.hypot(e.clientX-tap.x,e.clientY-tap.y),dt=performance.now()-tap.t;tap=null;\r\n    if(d>12||dt>650){dbg('ignored: moved\/held');return;}\r\n    var t=e.target;\r\n    if(t&&t.closest&&t.closest(NOFX)){dbg('ignored: interactive\/opt-out target '+t.tagName);return;}\r\n    var sel=window.getSelection&&window.getSelection();if(sel&&String(sel).length>0){dbg('ignored: text selected');return;}\r\n    if(calm){dbg('ignored: reduced motion');return;}\r\n    var ring=document.createElement('span');ring.className='jo-ring';ring.style.left=e.clientX+'px';ring.style.top=e.clientY+'px';\r\n    document.body.appendChild(ring);setTimeout(function(){ring.remove();},1000);\r\n    burst(e.clientX,e.clientY);dbg('petals at '+Math.round(e.clientX)+','+Math.round(e.clientY)+' on '+(t&&t.tagName));\r\n  },true);\r\n  window.addEventListener('pointercancel',function(e){tap=null;if(cur)pressUp(e,true);},true);\r\n  if(!calm){build();addEventListener('resize',build);requestAnimationFrame(tick);}else{cv.remove();}\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-514f1aea elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"514f1aea\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-be1cb2c\" data-id=\"be1cb2c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6dce835d elementor-widget elementor-widget-html\" data-id=\"6dce835d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Structure is 99%: Miss the Context, Miss the Meaning | JapaneseOnlineClass.com<\/title>\r\n<!-- SECTION 2 of the home page. In WordPress, paste everything from <section> to the end of the last <script> into an Elementor HTML widget.\r\n     The hero holds the page's one H1, so this section uses an H2. -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@300;400;500;600&family=Crimson+Text:wght@300;400;600&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n* {\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n}\r\n\r\n.premium-section {\r\n    width: 100vw;\r\n    height: auto;\r\n    min-height: 210px;\r\n    position: relative;\r\n    overflow: hidden;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    margin: 0 auto;\r\n    padding: 0;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    background: linear-gradient(\r\n        45deg,\r\n        #e6f2ff, #f0e6ff, #ffe6f2, #fff0e6,\r\n        #e6fff0, #fffce6, #f2e6ff, #e6f9ff,\r\n        #ffe6e6, #f0ffe6, #e6f2ff, #f5f0ff\r\n    );\r\n    background-size: 600% 600%;\r\n    animation: pastelFlow 26s ease-in-out infinite;\r\n}\r\n\r\n@keyframes pastelFlow {\r\n    0%   { background-position: 0% 50%; }\r\n    20%  { background-position: 100% 0%; }\r\n    40%  { background-position: 0% 100%; }\r\n    60%  { background-position: 100% 50%; }\r\n    80%  { background-position: 50% 0%; }\r\n    100% { background-position: 0% 50%; }\r\n}\r\n\r\n.title-wrapper {\r\n    text-align: center;\r\n    position: relative;\r\n    z-index: 10;\r\n    max-width: 1200px;\r\n    width: 100%;\r\n    padding: 60px 40px;\r\n    margin: 0 auto;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n\r\n.premium-title {\r\n    font-family: 'Playfair Display', Georgia, serif;\r\n    font-size: clamp(2.8rem, 5.5vw, 5.2rem);\r\n    font-weight: 400;\r\n    letter-spacing: 0.022em;\r\n    line-height: 1.28;\r\n    text-align: center;\r\n    margin: 0 auto;\r\n    position: relative;\r\n    opacity: 1;\r\n    transform: translateY(0);\r\n}\r\n\r\n.structure-text {\r\n    background: linear-gradient(\r\n        45deg,\r\n        #4a5568, #7c3aed, #059669, #dc2626,\r\n        #d97706, #0891b2, #be185d, #4a5568\r\n    );\r\n    background-size: 400% 400%;\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n    animation: waveShift 11s ease-in-out infinite, emphasizeStructure 9s ease-in-out infinite;\r\n    display: inline-block;\r\n}\r\n\r\n\/* \"is\" \u3068 \"%\" *\/\r\n.percent-label {\r\n    background: linear-gradient(\r\n        90deg,\r\n        #e11d48, #7c3aed, #0891b2, #059669,\r\n        #d97706, #dc2626, #be185d, #e11d48\r\n    );\r\n    background-size: 300% 300%;\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n    animation: colorRotate 7.5s linear infinite;\r\n}\r\n\r\n.jo-pct-wrap {\r\n    display: inline-block;\r\n    position: relative;\r\n    vertical-align: baseline;\r\n    z-index: 30;\r\n}\r\n\r\n\/* \u30ab\u30a6\u30f3\u30c8\u4e2d\u306f\u5b9f\u8272\u3067\u78ba\u5b9f\u306b\u898b\u3048\u308b *\/\r\n.jo-pct {\r\n    display: inline-block;\r\n    min-width: 1.6em;\r\n    text-align: center;\r\n    font-variant-numeric: tabular-nums;\r\n    font-weight: 600;\r\n    color: #7c3aed;\r\n    -webkit-text-fill-color: #7c3aed;\r\n    transform-origin: center center;\r\n    will-change: transform, filter, opacity;\r\n}\r\n\r\n\/* ZOOM\u7d42\u4e86\u5f8c \u2192 \u30aa\u30ea\u30b8\u30ca\u30eb\u3068\u540c\u3058\u52d5\u304f\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u306b\u5207\u308a\u66ff\u3048 *\/\r\n.jo-pct.is-done {\r\n    background: linear-gradient(\r\n        90deg,\r\n        #e11d48, #7c3aed, #0891b2, #059669,\r\n        #d97706, #dc2626, #be185d, #e11d48\r\n    );\r\n    background-size: 300% 300%;\r\n    -webkit-background-clip: text;\r\n    background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    color: transparent;\r\n    animation: colorRotate 5s linear infinite, emphasizePercent 5s ease-in-out infinite;\r\n}\r\n\r\n\/* ===== \u3082\u3063\u3068\u6ed1\u3089\u304b\u3067\u3001\u3082\u3063\u3068\u5927\u304d\u304fZOOM ===== *\/\r\n.jo-pct.is-boom {\r\n    animation: pctBoom 3.8s cubic-bezier(.16, 1, .3, 1) forwards;\r\n}\r\n\r\n@keyframes pctBoom {\r\n    0% {\r\n        transform: scale(1) translateY(0);\r\n        filter: blur(0);\r\n        opacity: 1;\r\n    }\r\n    15% {\r\n        transform: scale(1.6) translateY(-4px);\r\n        filter: blur(0);\r\n        opacity: 1;\r\n    }\r\n    30% {\r\n        transform: scale(2.8) translateY(-10px);\r\n        filter: blur(0);\r\n        opacity: 1;\r\n    }\r\n    48% {\r\n        transform: scale(4.2) translateY(-16px);\r\n        filter: blur(0.5px);\r\n        opacity: 1;\r\n    }\r\n    58% {\r\n        transform: scale(4.8) translateY(-18px);\r\n        filter: blur(1.5px);\r\n        opacity: 0.95;\r\n    }\r\n    70% {\r\n        transform: scale(4.2) translateY(-14px);\r\n        filter: blur(4px);\r\n        opacity: 0.75;\r\n    }\r\n    82% {\r\n        transform: scale(2.4) translateY(-6px);\r\n        filter: blur(5px);\r\n        opacity: 0.6;\r\n    }\r\n    92% {\r\n        transform: scale(1.3) translateY(-2px);\r\n        filter: blur(2px);\r\n        opacity: 0.85;\r\n    }\r\n    100% {\r\n        transform: scale(1) translateY(0);\r\n        filter: blur(0);\r\n        opacity: 1;\r\n    }\r\n}\r\n\r\n.context-text {\r\n    background: linear-gradient(\r\n        135deg,\r\n        #374151, #0891b2, #7c3aed, #059669,\r\n        #d97706, #374151\r\n    );\r\n    background-size: 350% 350%;\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n    animation: gentleShift 10s ease-in-out infinite, swayContext 11s ease-in-out infinite;\r\n    display: inline-block;\r\n}\r\n\r\n.meaning-text {\r\n    background: linear-gradient(\r\n        225deg,\r\n        #6b7280, #be185d, #7c3aed, #0891b2,\r\n        #059669, #6b7280\r\n    );\r\n    background-size: 380% 380%;\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n    animation: smoothShift 12s ease-in-out infinite, floatMeaning 13s ease-in-out infinite;\r\n    display: inline-block;\r\n}\r\n\r\n@keyframes waveShift {\r\n    0%, 100% { background-position: 0% 50%; }\r\n    25% { background-position: 100% 0%; }\r\n    50% { background-position: 100% 100%; }\r\n    75% { background-position: 0% 100%; }\r\n}\r\n\r\n@keyframes colorRotate {\r\n    0% { background-position: 0% 50%; }\r\n    100% { background-position: 100% 50%; }\r\n}\r\n\r\n@keyframes gentleShift {\r\n    0%, 100% { background-position: 0% 0%; }\r\n    33% { background-position: 100% 50%; }\r\n    66% { background-position: 50% 100%; }\r\n}\r\n\r\n@keyframes smoothShift {\r\n    0%, 100% { background-position: 0% 100%; }\r\n    50% { background-position: 100% 0%; }\r\n}\r\n\r\n@keyframes emphasizeStructure {\r\n    0%, 100% { transform: scale(1) translateY(0); }\r\n    30% { transform: scale(1.03) translateY(-1.5px); }\r\n    55% { transform: scale(1.06) translateY(-3px); }\r\n    80% { transform: scale(1.02) translateY(-0.8px); }\r\n}\r\n\r\n@keyframes emphasizePercent {\r\n    0%, 100% { transform: scale(1) rotate(0deg); }\r\n    25% { transform: scale(1.12) rotate(1.5deg); }\r\n    50% { transform: scale(1.22) rotate(0deg); }\r\n    75% { transform: scale(1.12) rotate(-1.5deg); }\r\n}\r\n\r\n@keyframes swayContext {\r\n    0%, 100% { transform: translateX(0) rotate(0deg); }\r\n    25% { transform: translateX(-4px) rotate(-0.6deg); }\r\n    50% { transform: translateX(0) rotate(0deg); }\r\n    75% { transform: translateX(4px) rotate(0.6deg); }\r\n}\r\n\r\n@keyframes floatMeaning {\r\n    0%, 100% { transform: translateY(0) translateX(0); }\r\n    20% { transform: translateY(-4px) translateX(1.5px); }\r\n    40% { transform: translateY(-2.5px) translateX(-1.5px); }\r\n    60% { transform: translateY(-6px) translateX(1px); }\r\n    80% { transform: translateY(-1.5px) translateX(-1px); }\r\n}\r\n\r\n.floating-elements {\r\n    position: absolute;\r\n    width: 100%;\r\n    height: 100%;\r\n    pointer-events: none;\r\n    overflow: hidden;\r\n}\r\n\r\n.cosmic-particle {\r\n    position: absolute;\r\n    width: 3px;\r\n    height: 3px;\r\n    border-radius: 50%;\r\n    opacity: 0;\r\n    animation: gentleDrift 32s linear infinite;\r\n}\r\n\r\n.cosmic-particle:nth-child(1) { left: 10%; animation-delay: 0s;    background: linear-gradient(45deg, #06b6d4, #a855f7); }\r\n.cosmic-particle:nth-child(2) { left: 28%; animation-delay: -5.5s; background: linear-gradient(45deg, #10b981, #f59e0b); }\r\n.cosmic-particle:nth-child(3) { left: 50%; animation-delay: -12s;  background: linear-gradient(45deg, #ef4444, #ec4899); }\r\n.cosmic-particle:nth-child(4) { left: 72%; animation-delay: -2.5s; background: linear-gradient(45deg, #f59e0b, #06b6d4); }\r\n.cosmic-particle:nth-child(5) { left: 18%; animation-delay: -16s;  background: linear-gradient(45deg, #8b5cf6, #06b6d4); width: 2.3px; height: 2.3px; }\r\n.cosmic-particle:nth-child(6) { left: 63%; animation-delay: -9s;   background: linear-gradient(45deg, #ec4899, #10b981); width: 2.3px; height: 2.3px; }\r\n.cosmic-particle:nth-child(7) { left: 40%; animation-delay: -20s;  background: linear-gradient(45deg, #a855f7, #f59e0b); width: 2px; height: 2px; }\r\n.cosmic-particle:nth-child(8) { left: 85%; animation-delay: -7s;   background: linear-gradient(45deg, #06b6d4, #ec4899); width: 2px; height: 2px; }\r\n\r\n@keyframes gentleDrift {\r\n    0% {\r\n        transform: translateY(180px) translateX(-14px) rotate(0deg) scale(0.3);\r\n        opacity: 0;\r\n    }\r\n    12% {\r\n        opacity: 0.45;\r\n        transform: translateY(120px) translateX(-6px) rotate(30deg) scale(1);\r\n    }\r\n    88% {\r\n        opacity: 0.3;\r\n        transform: translateY(-120px) translateX(24px) rotate(330deg) scale(1.1);\r\n    }\r\n    100% {\r\n        transform: translateY(-180px) translateX(36px) rotate(360deg) scale(0.2);\r\n        opacity: 0;\r\n    }\r\n}\r\n\r\n.premium-section::before {\r\n    content: \"\";\r\n    position: absolute;\r\n    left: 0; right: 0; top: 0;\r\n    height: 1px;\r\n    background: linear-gradient(90deg, transparent, rgba(201,184,224,.8), rgba(240,196,208,.8), rgba(184,212,240,.8), transparent);\r\n    z-index: 5;\r\n    pointer-events: none;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n    .title-wrapper { padding: 48px 22px; }\r\n    .premium-title { font-size: 2.6rem; }\r\n\r\n    @keyframes pctBoom {\r\n        0%   { transform: scale(1) translateY(0);     filter: blur(0);    opacity: 1; }\r\n        15%  { transform: scale(1.4) translateY(-3px); filter: blur(0);    opacity: 1; }\r\n        30%  { transform: scale(2.2) translateY(-7px); filter: blur(0);    opacity: 1; }\r\n        48%  { transform: scale(3.0) translateY(-11px); filter: blur(0.4px); opacity: 1; }\r\n        58%  { transform: scale(3.3) translateY(-12px); filter: blur(1.2px); opacity: 0.95; }\r\n        70%  { transform: scale(2.8) translateY(-9px); filter: blur(3.5px); opacity: 0.75; }\r\n        82%  { transform: scale(1.8) translateY(-4px); filter: blur(4px);   opacity: 0.6; }\r\n        92%  { transform: scale(1.2) translateY(-1px); filter: blur(1.5px); opacity: 0.85; }\r\n        100% { transform: scale(1) translateY(0);     filter: blur(0);    opacity: 1; }\r\n    }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n    .premium-title { font-size: 2.25rem; }\r\n    .title-wrapper { padding: 40px 16px; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n    .premium-section,\r\n    .structure-text,\r\n    .percent-label,\r\n    .context-text,\r\n    .meaning-text,\r\n    .cosmic-particle,\r\n    .jo-pct.is-done {\r\n        animation: none !important;\r\n    }\r\n    .jo-pct.is-boom {\r\n        animation: none !important;\r\n    }\r\n    .jo-pct.is-done {\r\n        -webkit-text-fill-color: #7c3aed;\r\n        color: #7c3aed;\r\n        background: none;\r\n    }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<section class=\"premium-section\" id=\"jo-why\" aria-labelledby=\"jo-why-title\">\r\n    <div class=\"floating-elements\" aria-hidden=\"true\">\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n        <div class=\"cosmic-particle\"><\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"title-wrapper\">\r\n        <h2 id=\"jo-why-title\" class=\"premium-title\">\r\n            <span class=\"structure-text\">Structure<\/span>\r\n            <span class=\"percent-label\"> is <\/span>\r\n            <span class=\"jo-pct-wrap\">\r\n                <span class=\"jo-pct\" data-to=\"99\">0<\/span>\r\n            <\/span>\r\n            <span class=\"percent-label\">%<\/span><br>\r\n            <span class=\"context-text\">Miss the Context<\/span><br>\r\n            <span class=\"meaning-text\">Miss the Meaning<\/span>\r\n        <\/h2>\r\n    <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  \/\/ ========================================\r\n  \/\/ \u30ab\u30a6\u30f3\u30c8\u306e\u79d2\u6570\u3092\u3053\u3053\u3067\u81ea\u7531\u306b\u5909\u66f4\r\n  \/\/ ========================================\r\n  var COUNT_SECONDS = 4.2;   \/\/ \u2190 \u3053\u3053\u3092\u5909\u66f4\uff08\u4f8b: 3.5 \/ 5.0 \/ 6.0\uff09\r\n  \/\/ ========================================\r\n\r\n  var root = document.getElementById('jo-why');\r\n  if (!root) return;\r\n\r\n  var calm = matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n  var num = root.querySelector('.jo-pct');\r\n  if (!num) return;\r\n\r\n  var to = parseInt(num.getAttribute('data-to'), 10) || 99;\r\n  var isRunning = false;\r\n  var hasFinished = false;\r\n  var boomTimer = null;\r\n  var rafId = null;\r\n\r\n  function clamp(v, a, b) {\r\n    return Math.max(a, Math.min(b, v));\r\n  }\r\n\r\n  function reset() {\r\n    isRunning = false;\r\n    hasFinished = false;\r\n    if (boomTimer) {\r\n      clearTimeout(boomTimer);\r\n      boomTimer = null;\r\n    }\r\n    if (rafId) {\r\n      cancelAnimationFrame(rafId);\r\n      rafId = null;\r\n    }\r\n    num.classList.remove('is-boom', 'is-done');\r\n    num.style.transform = '';\r\n    num.style.filter = '';\r\n    num.style.opacity = '';\r\n    num.textContent = '0';\r\n  }\r\n\r\n  function playBoom() {\r\n    num.classList.remove('is-boom', 'is-done');\r\n    void num.offsetWidth;\r\n    num.classList.add('is-boom');\r\n\r\n    \/\/ ZOOM\u7d42\u4e86\u5f8c\u306b\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u52d5\u304f\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u306b\u5207\u308a\u66ff\u3048\r\n    boomTimer = setTimeout(function () {\r\n      num.classList.remove('is-boom');\r\n      num.classList.add('is-done');\r\n      hasFinished = true;\r\n      isRunning = false;\r\n      boomTimer = null;\r\n    }, 3800);\r\n  }\r\n\r\n  function startCount() {\r\n    if (isRunning || hasFinished) return;\r\n    isRunning = true;\r\n\r\n    if (calm) {\r\n      num.textContent = to;\r\n      num.classList.add('is-done');\r\n      hasFinished = true;\r\n      isRunning = false;\r\n      return;\r\n    }\r\n\r\n    num.classList.remove('is-done');\r\n    num.textContent = '0';\r\n    var startDelay = 400;\r\n    var duration = COUNT_SECONDS * 1000;\r\n    var t0 = performance.now() + startDelay;\r\n\r\n    function step(now) {\r\n      if (!isRunning) return;\r\n\r\n      var p = clamp((now - t0) \/ duration, 0, 1);\r\n      var e = p < 0.5\r\n        ? 4 * p * p * p\r\n        : 1 - Math.pow(-2 * p + 2, 3) \/ 2;\r\n\r\n      num.textContent = Math.round(to * e);\r\n\r\n      if (p < 1) {\r\n        rafId = requestAnimationFrame(step);\r\n      } else {\r\n        num.textContent = to;\r\n        setTimeout(function () {\r\n          if (isRunning) playBoom();\r\n        }, 180);\r\n      }\r\n    }\r\n\r\n    rafId = requestAnimationFrame(step);\r\n  }\r\n\r\n  if ('IntersectionObserver' in window) {\r\n    var observer = new IntersectionObserver(function (entries) {\r\n      entries.forEach(function (entry) {\r\n        if (entry.isIntersecting && entry.intersectionRatio >= 0.18) {\r\n          if (!isRunning && !hasFinished) {\r\n            startCount();\r\n          }\r\n        } else if (!entry.isIntersecting || entry.intersectionRatio < 0.05) {\r\n          reset();\r\n        }\r\n      });\r\n    }, {\r\n      threshold: [0, 0.05, 0.18, 0.4, 0.6],\r\n      rootMargin: '0px 0px -4% 0px'\r\n    });\r\n\r\n    observer.observe(root);\r\n  } else {\r\n    startCount();\r\n  }\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4a9ad2 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"b4a9ad2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Japanese Is About Perspective, Culture &amp; Story | JapaneseOnlineClass.com<\/title>\r\n<!-- SECTION 3 \u00b7 Elementor: paste from <section id=\"jo-story\"> through final <\/script> -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;400;500;600;700;800&family=Playfair+Display:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n* { margin: 0; padding: 0; box-sizing: border-box; }\r\n\r\n#jo-story {\r\n  position: relative;\r\n  min-height: 100vh;\r\n  width: 100vw !important;\r\n  max-width: none !important;\r\n  margin: 0 !important;\r\n  left: 50%;\r\n  right: 50%;\r\n  margin-left: -50vw !important;\r\n  margin-right: -50vw !important;\r\n  padding: 0 !important;\r\n  overflow: hidden;\r\n  font-family: 'Advent Pro', sans-serif;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  color: #2c2c2c;\r\n  -webkit-font-smoothing: antialiased;\r\n  background:\r\n    radial-gradient(circle at 20% 80%, rgba(255, 250, 250, 0.4) 0%, transparent 50%),\r\n    radial-gradient(circle at 80% 20%, rgba(252, 248, 255, 0.35) 0%, transparent 50%),\r\n    radial-gradient(circle at 40% 40%, rgba(248, 255, 252, 0.3) 0%, transparent 50%),\r\n    linear-gradient(135deg,\r\n      rgba(255, 253, 253, 1) 0%,\r\n      rgba(254, 250, 252, 1) 25%,\r\n      rgba(252, 252, 255, 1) 50%,\r\n      rgba(250, 255, 252, 1) 75%,\r\n      rgba(255, 252, 250, 1) 100%);\r\n  background-size: 400% 400%;\r\n  animation: continuousBackgroundFlow 30s ease-in-out infinite;\r\n}\r\n\r\n@keyframes continuousBackgroundFlow {\r\n  0%   { background-position: 0% 50%; filter: hue-rotate(0deg); }\r\n  25%  { background-position: 100% 25%; filter: hue-rotate(5deg); }\r\n  50%  { background-position: 50% 100%; filter: hue-rotate(10deg); }\r\n  75%  { background-position: 25% 0%; filter: hue-rotate(5deg); }\r\n  100% { background-position: 0% 50%; filter: hue-rotate(0deg); }\r\n}\r\n\r\n#jo-story::before {\r\n  content: '';\r\n  position: absolute;\r\n  inset: 0;\r\n  z-index: 0;\r\n  pointer-events: none;\r\n  background:\r\n    radial-gradient(circle at 30% 70%, rgba(255, 200, 200, 0.15) 0%, transparent 60%),\r\n    radial-gradient(circle at 70% 30%, rgba(252, 200, 255, 0.12) 0%, transparent 60%),\r\n    radial-gradient(circle at 50% 50%, rgba(200, 255, 220, 0.1) 0%, transparent 50%);\r\n  animation: backgroundPulse 25s ease-in-out infinite;\r\n}\r\n\r\n@keyframes backgroundPulse {\r\n  0%, 100% { opacity: 0.6; transform: scale(1) rotate(0deg); }\r\n  33% { opacity: 0.9; transform: scale(1.05) rotate(1deg); }\r\n  66% { opacity: 0.7; transform: scale(0.98) rotate(-0.5deg); }\r\n}\r\n\r\n.content-container {\r\n  position: relative;\r\n  z-index: 2;\r\n  width: 100%;\r\n  padding: 3rem 5%;\r\n}\r\n\r\n\/* ===== HERO (original) ===== *\/\r\n.hero-message {\r\n  text-align: center;\r\n  margin-bottom: 5rem;\r\n  padding: 0 2rem;\r\n}\r\n\r\n.hero-message p {\r\n  font-family: 'Playfair Display', serif;\r\n  font-size: clamp(1.8rem, 4vw, 3.2rem);\r\n  line-height: 1.4;\r\n  color: #2c2c2c;\r\n  font-weight: 500;\r\n  margin-bottom: 2rem;\r\n  letter-spacing: 0.5px;\r\n  text-shadow: 0 3px 6px rgba(0,0,0,0.1);\r\n  animation: slideInUp 1.2s ease-out 0.3s both, textBreath 8s ease-in-out infinite;\r\n  position: relative;\r\n}\r\n\r\n.hero-message p:last-child { margin-bottom: 0; }\r\n\r\n.hero-message p::before {\r\n  content: '';\r\n  position: absolute;\r\n  top: -10px; left: -10px; right: -10px; bottom: -10px;\r\n  background: radial-gradient(circle, rgba(255, 200, 200, 0.1) 0%, transparent 70%);\r\n  border-radius: 20px;\r\n  z-index: -1;\r\n  animation: auraGlow 6s ease-in-out infinite;\r\n}\r\n\r\n.hero-message p:nth-child(2) { animation-delay: 0.6s, 0.6s; }\r\n\r\n@keyframes textBreath {\r\n  0%, 100% { transform: scale(1); filter: brightness(1); }\r\n  50% { transform: scale(1.01); filter: brightness(1.05); }\r\n}\r\n@keyframes auraGlow {\r\n  0%, 100% { opacity: 0.3; transform: scale(1); }\r\n  50% { opacity: 0.6; transform: scale(1.05); }\r\n}\r\n@keyframes slideInUp {\r\n  from { opacity: 0; transform: translateY(40px); }\r\n  to { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n.hero-message strong {\r\n  font-weight: 800;\r\n  background: linear-gradient(135deg, #e74c3c 0%, #f39c12 30%, #ff6b6b 60%, #ff8a80 100%);\r\n  background-size: 300% 300%;\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  position: relative;\r\n  display: inline-block;\r\n  animation: soulfulPulse 3s ease-in-out infinite, gradientDance 4s ease-in-out infinite;\r\n  filter: drop-shadow(0 4px 8px rgba(231, 76, 60, 0.4));\r\n}\r\n\r\n.hero-message strong::before {\r\n  content: '';\r\n  position: absolute;\r\n  top: -3px; left: -3px; right: -3px; bottom: -3px;\r\n  background: linear-gradient(45deg, rgba(231, 76, 60, 0.4), rgba(243, 156, 18, 0.4));\r\n  border-radius: 6px;\r\n  z-index: -1;\r\n  filter: blur(12px);\r\n  animation: heartbeatGlow 2.5s ease-in-out infinite;\r\n}\r\n\r\n@keyframes soulfulPulse {\r\n  0%, 100% { transform: scale(1) translateY(0px); filter: brightness(1) saturate(1) drop-shadow(0 4px 8px rgba(231, 76, 60, 0.4)); }\r\n  25% { transform: scale(1.08) translateY(-2px); filter: brightness(1.4) saturate(1.3) drop-shadow(0 8px 16px rgba(231, 76, 60, 0.7)); }\r\n  50% { transform: scale(1.05) translateY(-1px); filter: brightness(1.2) saturate(1.2) drop-shadow(0 6px 12px rgba(231, 76, 60, 0.6)); }\r\n  75% { transform: scale(1.1) translateY(-3px); filter: brightness(1.5) saturate(1.4) drop-shadow(0 10px 20px rgba(231, 76, 60, 0.8)); }\r\n}\r\n@keyframes gradientDance {\r\n  0%, 100% { background-position: 0% 50%; }\r\n  33% { background-position: 50% 100%; }\r\n  66% { background-position: 100% 0%; }\r\n}\r\n@keyframes heartbeatGlow {\r\n  0%, 100% { opacity: 0.4; transform: scale(1); }\r\n  25% { opacity: 0.8; transform: scale(1.15); }\r\n  50% { opacity: 0.6; transform: scale(1.05); }\r\n  75% { opacity: 0.9; transform: scale(1.2); }\r\n}\r\n\r\n\/* ===== CHECKLIST ===== *\/\r\n.checklist-section {\r\n  margin: 5rem 0;\r\n  padding: 4rem 3rem;\r\n  background: rgba(255, 255, 255, 0.25);\r\n  backdrop-filter: blur(15px);\r\n  -webkit-backdrop-filter: blur(15px);\r\n  border-radius: 30px;\r\n  border: 2px solid rgba(255, 200, 200, 0.3);\r\n  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4);\r\n  position: relative;\r\n  animation: slideInScale 1.2s ease-out 0.9s both;\r\n}\r\n\r\n@keyframes slideInScale {\r\n  from { opacity: 0; transform: scale(0.9) translateY(30px); }\r\n  to { opacity: 1; transform: scale(1) translateY(0); }\r\n}\r\n\r\n.checklist-title {\r\n  font-family: 'Playfair Display', serif;\r\n  font-size: clamp(2.2rem, 5vw, 3.5rem);\r\n  font-weight: 700;\r\n  background: linear-gradient(135deg, #2c2c2c 0%, #3d3d3d 50%, #1a1a1a 100%);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  text-align: center;\r\n  margin-bottom: 3rem;\r\n  letter-spacing: 1px;\r\n  animation: titleFloat 5s ease-in-out infinite;\r\n}\r\n\r\n@keyframes titleFloat {\r\n  0%, 100% { transform: translateY(0px) scale(1); filter: brightness(1); }\r\n  50% { transform: translateY(-8px) scale(1.02); filter: brightness(1.1); }\r\n}\r\n\r\n.jo3-progress {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  gap: 14px;\r\n  margin: -1.25rem auto 2.5rem;\r\n  max-width: 320px;\r\n}\r\n\r\n.jo3-track { flex: 1; height: 4px; border-radius: 4px; background: rgba(231,76,60,.12); overflow: hidden; }\r\n.jo3-fill { height: 100%; width: 0; border-radius: 4px; background: linear-gradient(90deg,#e74c3c,#f39c12,#ff6b6b); transition: width .55s cubic-bezier(.22,1,.36,1); }\r\n.jo3-count { font-size: .95rem; font-weight: 600; letter-spacing: .06em; color: rgba(44,44,44,.55); min-width: 3.5ch; font-variant-numeric: tabular-nums; }\r\n\r\n.checklist-grid {\r\n  list-style: none;\r\n  display: grid;\r\n  grid-template-columns: repeat(3, 1fr);\r\n  gap: 2rem;\r\n}\r\n\r\n.jo-check-card {\r\n  position: relative;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 1rem;\r\n  width: 100%;\r\n  padding: 1.2rem 1.5rem;\r\n  border-radius: 16px;\r\n  cursor: pointer;\r\n  overflow: hidden;\r\n  font-size: 1.3rem;\r\n  font-weight: 500;\r\n  font-family: 'Advent Pro', sans-serif;\r\n  color: #2c2c2c;\r\n  background: rgba(255, 255, 255, 0.5);\r\n  backdrop-filter: blur(8px);\r\n  border: 1px solid rgba(255, 200, 200, 0.4);\r\n  user-select: none;\r\n  -webkit-tap-highlight-color: transparent;\r\n  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n}\r\n\r\n.jo-check-card:hover {\r\n  transform: translateY(-8px) scale(1.03);\r\n  background: rgba(255, 255, 255, 0.7);\r\n  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);\r\n  border-color: rgba(231, 76, 60, 0.5);\r\n}\r\n\r\n.jo-check-card.is-down { transform: scale(0.97) !important; transition-duration: 0.08s; }\r\n\r\n.jo-check-input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }\r\n\r\n.jo-check-box {\r\n  flex: 0 0 auto;\r\n  display: grid;\r\n  place-items: center;\r\n  width: 28px;\r\n  height: 28px;\r\n  border-radius: 9px;\r\n  border: 2px solid rgba(231, 76, 60, 0.4);\r\n  background: rgba(255, 255, 255, 0.88);\r\n  transition: background .3s, border-color .3s, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .35s;\r\n}\r\n\r\n.jo-check-box svg {\r\n  width: 16px; height: 16px; fill: none; stroke: #fff; stroke-width: 2.8;\r\n  stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24;\r\n  transition: stroke-dashoffset .4s cubic-bezier(.22,1,.36,1);\r\n}\r\n\r\n.jo-check-input:checked + .jo-check-box {\r\n  background: linear-gradient(135deg, #e74c3c, #f39c12);\r\n  border-color: transparent;\r\n  transform: scale(1.14);\r\n  box-shadow: 0 4px 14px rgba(231, 76, 60, 0.45);\r\n}\r\n\r\n.jo-check-input:checked + .jo-check-box svg { stroke-dashoffset: 0; }\r\n\r\n.jo-check-card:has(.jo-check-input:checked) {\r\n  background: rgba(255, 255, 255, 0.88);\r\n  border-color: rgba(231, 76, 60, 0.42);\r\n  box-shadow: 0 12px 28px rgba(231, 76, 60, 0.14);\r\n}\r\n\r\n.jo-check-input:focus-visible + .jo-check-box { outline: 2px solid #8b5cf6; outline-offset: 3px; }\r\n\r\n.jo-check-card.is-pop { animation: jo3Pop .55s cubic-bezier(.22,1,.36,1); }\r\n@keyframes jo3Pop {\r\n  0% { transform: scale(1); }\r\n  35% { transform: scale(1.06) translateY(-6px); }\r\n  60% { transform: scale(0.98) translateY(-2px); }\r\n  100% { transform: scale(1) translateY(0); }\r\n}\r\n\r\n.jo-check-card.is-sweep::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  inset: 0;\r\n  pointer-events: none;\r\n  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.85) 50%, transparent 70%);\r\n  animation: jo3Sweep .85s ease-out;\r\n}\r\n@keyframes jo3Sweep { from { transform: translateX(-130%); } to { transform: translateX(130%); } }\r\n\r\n.jo3-spark { position: absolute; width: 6px; height: 6px; border-radius: 50%; pointer-events: none; z-index: 6; }\r\n.jo3-chk-ring {\r\n  position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%;\r\n  border: 2px solid rgba(231,76,60,.55); pointer-events: none; z-index: 6;\r\n  animation: jo3Ring .65s cubic-bezier(.22,1,.36,1) forwards;\r\n}\r\n@keyframes jo3Ring { to { transform: scale(9); opacity: 0; } }\r\n\r\n.jo3-whisper {\r\n  position: relative;\r\n  display: grid;\r\n  place-items: center;\r\n  min-height: 4.2em;\r\n  margin-top: 2.2rem;\r\n  text-align: center;\r\n}\r\n.jo3-whisper > * { grid-area: 1 \/ 1; }\r\n.jo3-dots { display: flex; gap: 7px; opacity: 0; transition: opacity .35s; }\r\n.jo3-whisper.is-wait .jo3-dots { opacity: 1; }\r\n.jo3-dots i {\r\n  width: 7px; height: 7px; border-radius: 50%;\r\n  background: linear-gradient(135deg, #e74c3c, #f39c12);\r\n  animation: jo3Dot 1s ease-in-out infinite;\r\n}\r\n.jo3-dots i:nth-child(2) { animation-delay: .14s; }\r\n.jo3-dots i:nth-child(3) { animation-delay: .28s; }\r\n@keyframes jo3Dot {\r\n  0%, 100% { transform: translateY(0); opacity: .45; }\r\n  50% { transform: translateY(-5px); opacity: 1; }\r\n}\r\n\r\n.jo3-msg {\r\n  margin: 0;\r\n  max-width: 32em;\r\n  font-family: 'Playfair Display', serif;\r\n  font-size: clamp(1.15rem, 2.2vw, 1.5rem);\r\n  font-weight: 600;\r\n  line-height: 1.45;\r\n  letter-spacing: 0.02em;\r\n  background: linear-gradient(135deg, #e74c3c, #f39c12, #ff6b6b, #f39c12);\r\n  background-size: 300% 300%;\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  animation: gradientDance 4s ease-in-out infinite;\r\n}\r\n\r\n\/* ===== CLOSING (original spacing + original strongs) ===== *\/\r\n.closing-message {\r\n  text-align: center;\r\n  margin-top: 5rem;\r\n  padding: 0 2rem;\r\n  animation: fadeInUp 1.5s ease-out 1.2s both;\r\n}\r\n\r\n@keyframes fadeInUp {\r\n  from { opacity: 0; transform: translateY(40px); }\r\n  to { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n.closing-message p {\r\n  font-family: 'Playfair Display', serif;\r\n  font-size: clamp(1.6rem, 3.5vw, 2.8rem);\r\n  line-height: 1.5;\r\n  color: #2c2c2c;\r\n  font-weight: 500;\r\n  margin-bottom: 2rem;\r\n  letter-spacing: 0.3px;\r\n  text-shadow: 0 3px 6px rgba(0,0,0,0.1);\r\n}\r\n\r\n.closing-message p:last-child { margin-bottom: 0; }\r\n\r\n.closing-message p:nth-child(1) strong,\r\n.closing-message p:nth-child(2) strong:not(.seesaw-effect) {\r\n  font-weight: 800;\r\n  background: linear-gradient(135deg, #e74c3c 0%, #ff6b6b 25%, #ff8a80 50%, #ffab91 75%, #f39c12 100%);\r\n  background-size: 400% 400%;\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  position: relative;\r\n  display: inline-block;\r\n  animation: emotionalWave 2.8s ease-in-out infinite, intensePulse 3.5s ease-in-out infinite;\r\n  filter: drop-shadow(0 4px 8px rgba(231, 76, 60, 0.5));\r\n}\r\n\r\n.closing-message p:nth-child(2) strong.seesaw-effect {\r\n  font-weight: 800;\r\n  background: linear-gradient(135deg, #e74c3c 0%, #ff6b6b 25%, #ff8a80 50%, #ffab91 75%, #f39c12 100%);\r\n  background-size: 400% 400%;\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  position: relative;\r\n  display: inline-block;\r\n  animation: seesawMotion 4s ease-in-out infinite, seesawPulse 3.5s ease-in-out infinite;\r\n  filter: drop-shadow(0 4px 8px rgba(231, 76, 60, 0.5));\r\n  transform-origin: center center;\r\n}\r\n\r\n\/* ===== ONE \u2014 byte-for-byte original treatment ===== *\/\r\n.closing-message p:nth-child(3) strong.one-effect {\r\n  font-weight: 800;\r\n  background: linear-gradient(135deg, #e74c3c 0%, #ff6b6b 20%, #ff8a80 40%, #f39c12 60%, #ffab91 80%, #ff5722 100%);\r\n  background-size: 600% 600%;\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  position: relative;\r\n  display: inline-block;\r\n  animation: transcendentFlow 4s ease-in-out infinite, divinePresence 3s ease-in-out infinite;\r\n  filter: drop-shadow(0 6px 12px rgba(231, 76, 60, 0.6));\r\n  letter-spacing: normal;\r\n}\r\n\r\n.closing-message p:nth-child(3) strong.one-effect::before {\r\n  content: '';\r\n  position: absolute;\r\n  top: -4px;\r\n  left: -4px;\r\n  right: -4px;\r\n  bottom: -4px;\r\n  background: linear-gradient(45deg, rgba(231, 76, 60, 0.3), rgba(255, 107, 107, 0.3), rgba(255, 138, 128, 0.3));\r\n  border-radius: 8px;\r\n  z-index: -1;\r\n  filter: blur(15px);\r\n  animation: cosmicAura 2s ease-in-out infinite;\r\n}\r\n\r\n.closing-message p:nth-child(3) strong.one-effect::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  right: 0;\r\n  bottom: 0;\r\n  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\r\n  animation: enlightenmentSpark 3s linear infinite;\r\n  pointer-events: none;\r\n}\r\n\r\n@keyframes emotionalWave {\r\n  0%, 100% { background-position: 0% 50%; transform: translateY(0px) scale(1); }\r\n  25% { background-position: 25% 75%; transform: translateY(-2px) scale(1.05); }\r\n  50% { background-position: 50% 100%; transform: translateY(-1px) scale(1.03); }\r\n  75% { background-position: 75% 25%; transform: translateY(-3px) scale(1.07); }\r\n}\r\n@keyframes intensePulse {\r\n  0%, 100% { filter: brightness(1) saturate(1) drop-shadow(0 4px 8px rgba(231, 76, 60, 0.5)); }\r\n  50% { filter: brightness(1.3) saturate(1.4) drop-shadow(0 8px 16px rgba(231, 76, 60, 0.8)); }\r\n}\r\n@keyframes seesawMotion {\r\n  0%, 100% { transform: rotate(0deg) scale(1); background-position: 0% 50%; }\r\n  25% { transform: rotate(-8deg) scale(1.05); background-position: 25% 75%; }\r\n  50% { transform: rotate(0deg) scale(1.08); background-position: 50% 100%; }\r\n  75% { transform: rotate(8deg) scale(1.05); background-position: 75% 25%; }\r\n}\r\n@keyframes seesawPulse {\r\n  0%, 100% { filter: brightness(1) saturate(1) drop-shadow(0 4px 8px rgba(231, 76, 60, 0.5)); }\r\n  50% { filter: brightness(1.3) saturate(1.4) drop-shadow(0 8px 16px rgba(231, 76, 60, 0.8)); }\r\n}\r\n@keyframes transcendentFlow {\r\n  0%, 100% { background-position: 0% 50%; transform: translateY(0px) scale(1) rotate(0deg); }\r\n  20% { background-position: 20% 80%; transform: translateY(-3px) scale(1.08) rotate(0.5deg); }\r\n  40% { background-position: 40% 60%; transform: translateY(-1px) scale(1.04) rotate(-0.3deg); }\r\n  60% { background-position: 60% 90%; transform: translateY(-4px) scale(1.1) rotate(0.7deg); }\r\n  80% { background-position: 80% 30%; transform: translateY(-2px) scale(1.06) rotate(-0.2deg); }\r\n}\r\n@keyframes divinePresence {\r\n  0%, 100% { filter: brightness(1) saturate(1) drop-shadow(0 6px 12px rgba(231, 76, 60, 0.6)); }\r\n  33% { filter: brightness(1.5) saturate(1.6) drop-shadow(0 10px 20px rgba(231, 76, 60, 0.9)); }\r\n  66% { filter: brightness(1.2) saturate(1.3) drop-shadow(0 8px 16px rgba(231, 76, 60, 0.7)); }\r\n}\r\n@keyframes cosmicAura {\r\n  0%, 100% { opacity: 0.4; transform: scale(1) rotate(0deg); }\r\n  50% { opacity: 0.8; transform: scale(1.2) rotate(180deg); }\r\n}\r\n@keyframes enlightenmentSpark {\r\n  0% { transform: translateX(-100%) rotate(0deg); opacity: 0; }\r\n  10% { opacity: 1; }\r\n  90% { opacity: 1; }\r\n  100% { transform: translateX(100%) rotate(360deg); opacity: 0; }\r\n}\r\n\r\n\/* Responsive \u2014 original spacing *\/\r\n@media (max-width: 1024px) {\r\n  .checklist-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }\r\n  .content-container { padding: 3rem 3%; }\r\n}\r\n\r\n\/* Phone only: hide checklist (tablet keeps it). Change to 768px to match original exactly. *\/\r\n@media (max-width: 640px) {\r\n  .content-container { padding: 2rem 4%; }\r\n  .hero-message { margin-bottom: 3rem; padding: 0 1rem; }\r\n  .checklist-section { display: none; }\r\n  .closing-message { margin-top: 3rem; padding: 0 1rem; }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .hero-message p { font-size: 1.4rem; line-height: 1.3; }\r\n  .closing-message p { font-size: 1.2rem; line-height: 1.4; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  #jo-story, #jo-story::before,\r\n  .hero-message p, .hero-message strong, .hero-message strong::before,\r\n  .checklist-title, .checklist-section, .closing-message,\r\n  .closing-message strong, .closing-message strong::before, .closing-message strong::after,\r\n  .jo3-msg, .jo3-dots i { animation: none !important; }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<section id=\"jo-story\" aria-labelledby=\"jo-story-heading\">\r\n  <div class=\"content-container\">\r\n\r\n    <div class=\"hero-message\">\r\n      <p>\r\n        Japanese is <strong>not<\/strong> just about words and grammar\u2014it's about\r\n        <strong>perspective, culture,<\/strong> and the <strong>stories<\/strong> behind it.\r\n      <\/p>\r\n      <p>\r\n        Too often, Japanese is taught like a formula, disconnected from its\r\n        <strong>deeper meaning<\/strong>. That's why it feels confusing, why the rules don't stick,\r\n        and why learning stops being fun.\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <div class=\"checklist-section\" id=\"jo3-panel\">\r\n      <h2 id=\"jo-story-heading\" class=\"checklist-title\">Does this sound familiar?<\/h2>\r\n\r\n      <div class=\"jo3-progress\" aria-hidden=\"true\">\r\n        <div class=\"jo3-track\"><div class=\"jo3-fill\" id=\"jo3-fill\"><\/div><\/div>\r\n        <span class=\"jo3-count\"><b id=\"jo3-n\">0<\/b>\/9<\/span>\r\n      <\/div>\r\n\r\n      <ul class=\"checklist-grid\" role=\"list\">\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Not knowing where to start<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Struggling with Particles<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Confused by Conjugations<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Building everyday phrases<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Speaking in Full Sentences<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Basic Kanji<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Mastering <span lang=\"ja\">\u3066<\/span>-form<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Basic Conversations<\/span><\/label><\/li>\r\n        <li><label class=\"jo-check-card\"><input class=\"jo-check-input\" type=\"checkbox\"><span class=\"jo-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/span><span>Polite &amp; Casual Speech<\/span><\/label><\/li>\r\n      <\/ul>\r\n\r\n      <div class=\"jo3-whisper\" id=\"jo3-whisper\">\r\n        <span class=\"jo3-dots\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/span>\r\n        <p class=\"jo3-msg\" id=\"jo3-msg\" aria-live=\"polite\"><\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"closing-message\">\r\n      <p>\r\n        <strong>Without cultural and historical context<\/strong>\u2014or <strong>without STORY<\/strong>\u2014everything feels <strong>vague<\/strong>.\r\n        You might learn the words, but you won't truly understand their meaning.\r\n      <\/p>\r\n      <p>\r\n        <strong class=\"seesaw-effect\">When you see the \"why,\" everything clicks.<\/strong> Suddenly, grammar makes sense,\r\n        expressions come alive, and formalities feel natural.\r\n      <\/p>\r\n      <p>\r\n        Everything\u2014words, culture, history, mindset, and identity\u2014becomes <strong class=\"one-effect\">ONE<\/strong>,\r\n        transforming how we think, connect, and experience life as a whole.\r\n      <\/p>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  var root = document.getElementById('jo-story');\r\n  if (!root) return;\r\n  var calm = matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n  function clamp(v,a,b){ return Math.max(a, Math.min(b, v)); }\r\n\r\n  var ac = null, master = null, armed = false;\r\n  function ctx() {\r\n    if (ac) return ac;\r\n    var AC = window.AudioContext || window.webkitAudioContext;\r\n    if (!AC) return null;\r\n    try { ac = new AC({ latencyHint: 'interactive' }); } catch (e) { try { ac = new AC(); } catch (e2) { return null; } }\r\n    var comp = ac.createDynamicsCompressor();\r\n    comp.threshold.value = -18; comp.ratio.value = 3; comp.attack.value = .003; comp.release.value = .14;\r\n    master = ac.createGain(); master.gain.value = .9;\r\n    master.connect(comp); comp.connect(ac.destination);\r\n    return ac;\r\n  }\r\n  var PRIME = ['pointerdown','pointerup','touchend','click','keydown'];\r\n  function prime() {\r\n    var a = ctx(); if (!a) return;\r\n    if (a.state === 'running') armed = true;\r\n    else { var p = a.resume(); if (p && p.then) p.then(function () { armed = a.state === 'running'; }, function () {}); }\r\n    try { var b = a.createBuffer(1,1,22050), s = a.createBufferSource(); s.buffer = b; s.connect(a.destination); s.start(0); } catch (e) {}\r\n    if (armed) PRIME.forEach(function (ev) { window.removeEventListener(ev, prime, true); });\r\n  }\r\n  PRIME.forEach(function (ev) { window.addEventListener(ev, prime, { capture: true, passive: true }); });\r\n\r\n  var SCALE = [1,1.122,1.26,1.335,1.498,1.682,1.888,2,2.245];\r\n  function poyo(on, step, delay, soft) {\r\n    var a = ctx(); if (!a) return;\r\n    if (a.state === 'suspended') a.resume();\r\n    var t = a.currentTime + (delay || 0) + .001;\r\n    var k = on ? SCALE[clamp(step, 0, 8)] : .8;\r\n    var vol = soft ? .7 : 1;\r\n    var o = a.createOscillator(), g = a.createGain();\r\n    o.type = 'sine';\r\n    if (on) {\r\n      o.frequency.setValueAtTime(420 * k, t);\r\n      o.frequency.exponentialRampToValueAtTime(680 * k, t + .045);\r\n      o.frequency.exponentialRampToValueAtTime(520 * k, t + .11);\r\n      g.gain.setValueAtTime(.0001, t);\r\n      g.gain.exponentialRampToValueAtTime(.16 * vol, t + .02);\r\n      g.gain.exponentialRampToValueAtTime(.0001, t + .17);\r\n    } else {\r\n      o.frequency.setValueAtTime(480 * k, t);\r\n      o.frequency.exponentialRampToValueAtTime(300 * k, t + .09);\r\n      g.gain.setValueAtTime(.0001, t);\r\n      g.gain.exponentialRampToValueAtTime(.09, t + .015);\r\n      g.gain.exponentialRampToValueAtTime(.0001, t + .12);\r\n    }\r\n    o.connect(g); g.connect(master); o.start(t); o.stop(t + .2);\r\n    var o2 = a.createOscillator(), g2 = a.createGain();\r\n    o2.type = 'triangle'; o2.frequency.setValueAtTime((on ? 210 : 180) * k, t);\r\n    g2.gain.setValueAtTime(.0001, t);\r\n    g2.gain.exponentialRampToValueAtTime((on ? .06 : .035) * vol, t + .02);\r\n    g2.gain.exponentialRampToValueAtTime(.0001, t + .15);\r\n    o2.connect(g2); g2.connect(master); o2.start(t); o2.stop(t + .17);\r\n  }\r\n  function cue(on, n) {\r\n    poyo(on, n - 1);\r\n    if (on && n === 9) { poyo(true, 4, .13, true); poyo(true, 6, .26, true); poyo(true, 8, .39, true); }\r\n    if (navigator.vibrate) { try { navigator.vibrate(on ? (n === 9 ? [14,40,14,40,22] : 12) : 7); } catch (e) {} }\r\n  }\r\n\r\n  var panel = document.getElementById('jo3-panel');\r\n  if (!panel) return;\r\n  var cards = [].slice.call(panel.querySelectorAll('.jo-check-card'));\r\n  var inputs = cards.map(function (c) { return c.querySelector('.jo-check-input'); });\r\n  var fill = document.getElementById('jo3-fill');\r\n  var numEl = document.getElementById('jo3-n');\r\n  var whisper = document.getElementById('jo3-whisper');\r\n  var msgEl = document.getElementById('jo3-msg');\r\n  var total = inputs.length, WAIT = 2000, timer = 0, shown = '', lastN = 0;\r\n\r\n  function count() { return inputs.filter(function (i) { return i.checked; }).length; }\r\n\r\n  var MSG = {\r\n    all: \"You're not alone \u2014 this is exactly where story changes everything.\",\r\n    gram: 'Particles and conjugations feel like rules without reasons \u2014 until you see the \"why\" behind them.',\r\n    te: \"\u3066-form isn't random. It follows sound patterns that are easy to see once someone shows you.\",\r\n    polite: \"Polite and casual speech isn't only grammar \u2014 it's a relationship. That's the story behind it.\",\r\n    kanji: 'Many kanji began as tiny pictures. Knowing the picture is what makes them stick.',\r\n    start: 'Not knowing where to start is the most honest place to start.',\r\n    speak: 'Speaking is where grammar becomes you \u2014 and context makes it easier than drilling.',\r\n    phrases: 'Everyday phrases only land when you know the situation they grew up in.',\r\n    conv: \"Basic conversation isn't a script. It's shared context \u2014 that's what makes it flow.\",\r\n    teKanji: '\u3066-form and kanji both reward pattern-seeing more than pure memorization.',\r\n    gramSpeak: 'Grammar + speaking stuck? The missing link is almost always context, not more drills.',\r\n    startGram: 'Starting from zero and wrestling with particles is normal \u2014 and fixable with the right story.',\r\n    one: 'Good \u2014 naming it is already the first step.',\r\n    few: \"You're in good company. These come up for almost every learner.\",\r\n    many: \"That's a lot of ticks \u2014 and it isn't you. It's how Japanese is usually taught.\",\r\n    most: 'Nearly all of them. They share one missing piece: context.'\r\n  };\r\n\r\n  function pick() {\r\n    var s = inputs.map(function (i) { return i.checked; }), n = count();\r\n    if (n === 0) return '';\r\n    if (n === total) return MSG.all;\r\n    if (n >= 7) return MSG.most;\r\n    if (s[1] && s[2]) return MSG.gram;\r\n    if (s[6] && s[5]) return MSG.teKanji;\r\n    if ((s[1] || s[2]) && (s[4] || s[7])) return MSG.gramSpeak;\r\n    if (s[0] && (s[1] || s[2])) return MSG.startGram;\r\n    if (s[6]) return MSG.te;\r\n    if (s[8]) return MSG.polite;\r\n    if (s[5]) return MSG.kanji;\r\n    if (s[0]) return MSG.start;\r\n    if (s[3]) return MSG.phrases;\r\n    if (s[7]) return MSG.conv;\r\n    if ((s[3]?1:0)+(s[4]?1:0)+(s[7]?1:0) >= 2) return MSG.speak;\r\n    return n === 1 ? MSG.one : (n <= 3 ? MSG.few : MSG.many);\r\n  }\r\n\r\n  function showMsg(t) {\r\n    if (t === shown) return;\r\n    shown = t;\r\n    function go() {\r\n      msgEl.textContent = t;\r\n      if (t && !calm && msgEl.animate) {\r\n        msgEl.animate([{ opacity: 0, transform: 'translateY(10px)' }, { opacity: 1, transform: 'none' }], { duration: 750, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'both' });\r\n      }\r\n    }\r\n    if (msgEl.textContent && !calm && msgEl.animate) {\r\n      msgEl.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 180, fill: 'forwards' }).onfinish = go;\r\n    } else go();\r\n  }\r\n\r\n  function setProgress(n) {\r\n    if (fill) fill.style.width = (n \/ total * 100) + '%';\r\n    if (numEl && n !== lastN) {\r\n      numEl.textContent = n;\r\n      if (!calm && numEl.animate) numEl.animate([{ transform: 'translateY(70%)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\r\n      lastN = n;\r\n    }\r\n  }\r\n\r\n  function sparks(x, y, big) {\r\n    if (calm) return;\r\n    var pal = ['#e74c3c','#f39c12','#ff6b6b','#ffd27d','#ff8a80'], n = big ? 14 : 9;\r\n    for (var i = 0; i < n; i++) {\r\n      var s = document.createElement('span');\r\n      s.className = 'jo3-spark';\r\n      s.style.left = x + 'px'; s.style.top = y + 'px';\r\n      s.style.background = pal[i % pal.length];\r\n      panel.appendChild(s);\r\n      var a = (Math.PI * 2 * i \/ n) + Math.random() * .5, d = (big ? 48 : 36) + Math.random() * 40;\r\n      if (s.animate) {\r\n        s.animate([\r\n          { transform: 'translate(-50%,-50%) scale(1)', opacity: 1 },\r\n          { transform: 'translate(calc(-50% + ' + (Math.cos(a)*d).toFixed(1) + 'px), calc(-50% + ' + (Math.sin(a)*d).toFixed(1) + 'px)) scale(.2)', opacity: 0 }\r\n        ], { duration: 600 + Math.random() * 240, easing: 'cubic-bezier(.2,.8,.2,1)' }).onfinish = (function (el) { return function () { el.remove(); }; })(s);\r\n      } else s.remove();\r\n    }\r\n    var ring = document.createElement('span');\r\n    ring.className = 'jo3-chk-ring';\r\n    ring.style.left = x + 'px'; ring.style.top = y + 'px';\r\n    panel.appendChild(ring);\r\n    setTimeout(function () { ring.remove(); }, 700);\r\n  }\r\n\r\n  var played = false;\r\n  cards.forEach(function (card) {\r\n    var input = card.querySelector('.jo-check-input');\r\n    card.addEventListener('pointerdown', function (e) {\r\n      if (e.pointerType === 'mouse' && e.button !== 0) return;\r\n      played = false;\r\n      card.classList.add('is-down');\r\n      var willOn = !input.checked, n = count() + (willOn ? 1 : -1);\r\n      if (e.pointerType === 'mouse' || armed) { cue(willOn, n); played = true; }\r\n    }, { passive: true });\r\n    ['pointerup','pointercancel','pointerleave'].forEach(function (ev) {\r\n      card.addEventListener(ev, function () { card.classList.remove('is-down'); }, { passive: true });\r\n    });\r\n    input.addEventListener('change', function () {\r\n      var n = count(), on = input.checked;\r\n      if (!played) cue(on, n);\r\n      played = false;\r\n      if (on && !calm) {\r\n        card.classList.remove('is-pop', 'is-sweep');\r\n        void card.offsetWidth;\r\n        card.classList.add('is-pop', 'is-sweep');\r\n        setTimeout(function () { card.classList.remove('is-pop'); }, 560);\r\n        setTimeout(function () { card.classList.remove('is-sweep'); }, 900);\r\n        var box = card.querySelector('.jo-check-box').getBoundingClientRect();\r\n        var pr = panel.getBoundingClientRect();\r\n        sparks(box.left + box.width \/ 2 - pr.left, box.top + box.height \/ 2 - pr.top, n === total);\r\n        if (window.JOFX && window.JOFX.burst) window.JOFX.burst(box.left + box.width \/ 2, box.top + box.height \/ 2, n === total ? 16 : 3);\r\n      }\r\n      setProgress(n);\r\n      clearTimeout(timer);\r\n      if (n === 0) { whisper.classList.remove('is-wait'); showMsg(''); return; }\r\n      whisper.classList.add('is-wait');\r\n      timer = setTimeout(function () { whisper.classList.remove('is-wait'); showMsg(pick()); }, WAIT);\r\n    });\r\n  });\r\n  setProgress(0);\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\r\n<script>\r\n(function () {\r\n  var root = document.getElementById('jo-story');\r\n  if (!root) return;\r\n  function visible(el) {\r\n    var cs = getComputedStyle(el);\r\n    return !\/^(SCRIPT|STYLE|NOSCRIPT|CANVAS|LINK|PRE)$\/.test(el.tagName) && el.offsetHeight > 0 && cs.position !== 'fixed' && cs.position !== 'absolute';\r\n  }\r\n  function neighbour(dir) {\r\n    var el = root;\r\n    while (el && el !== document.body && el !== document.documentElement) {\r\n      var s = dir > 0 ? el.nextElementSibling : el.previousElementSibling;\r\n      while (s && !visible(s)) s = dir > 0 ? s.nextElementSibling : s.previousElementSibling;\r\n      if (s) return s;\r\n      el = el.parentElement;\r\n    }\r\n    return null;\r\n  }\r\n  function flush() {\r\n    root.style.removeProperty('margin-top');\r\n    var prev = neighbour(-1);\r\n    if (!prev) return;\r\n    var gt = root.getBoundingClientRect().top - prev.getBoundingClientRect().bottom;\r\n    if (gt > 0.5 && gt < 120) root.style.setProperty('margin-top', -gt + 'px', 'important');\r\n  }\r\n  flush();\r\n  addEventListener('load', flush);\r\n  addEventListener('resize', flush);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-325ad67a elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"325ad67a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>Our Clients Say | JapaneseOnlineClass.com<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;600;700&family=Noto+Sans+JP:wght@400;500&family=Playfair+Display:ital,wght@1,500;1,600&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n#jo-voices,#jo-voices *,#jo-voices *::before,#jo-voices *::after{box-sizing:border-box}\r\n#jo-voices{\r\n  --ease:cubic-bezier(.22,1,.36,1);--ink:#1a202c;--violet:#667eea;--plum:#764ba2;--rose:#f093fb;--pink:#f5576c;\r\n  position:relative;isolation:isolate;overflow:hidden;\r\n  width:100vw!important;max-width:none!important;margin:0!important;left:50%;right:50%;margin-left:-50vw!important;margin-right:-50vw!important;padding:0!important;\r\n  font-family:'Noto Sans JP',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;\r\n  background:linear-gradient(160deg,#f6f2ff 0%,#fff6fb 45%,#eef6ff 100%)\r\n}\r\n.jo4-orb{position:absolute;z-index:0;border-radius:50%;pointer-events:none;filter:blur(70px);will-change:transform}\r\n.jo4-orb-a{width:56vmax;height:56vmax;left:-18vmax;top:-14vmax;background:radial-gradient(circle,rgba(240,147,251,.34),transparent 66%);animation:jo4OrbA 32s ease-in-out infinite alternate}\r\n.jo4-orb-b{width:52vmax;height:52vmax;right:-18vmax;top:26%;background:radial-gradient(circle,rgba(102,126,234,.3),transparent 66%);animation:jo4OrbB 38s ease-in-out infinite alternate}\r\n.jo4-orb-c{width:48vmax;height:48vmax;left:20%;bottom:-20vmax;background:radial-gradient(circle,rgba(245,87,108,.2),transparent 66%);animation:jo4OrbC 34s ease-in-out infinite alternate}\r\n@keyframes jo4OrbA{to{transform:translate(10vmax,8vmax) scale(1.1)}}\r\n@keyframes jo4OrbB{to{transform:translate(-9vmax,10vmax) scale(1.12)}}\r\n@keyframes jo4OrbC{to{transform:translate(8vmax,-9vmax) scale(1.14)}}\r\n.jo4-depth{position:absolute;inset:0;z-index:0;pointer-events:none;perspective:900px}\r\n.jo4-fl{position:absolute;color:#a78bfa;translate:calc(var(--mx,0)*var(--d)*1px) calc(var(--my,0)*var(--d)*1px);will-change:transform}\r\n.jo4-fl svg{display:block;width:100%;height:100%;overflow:visible}\r\n.jo4-fl-1{width:min(46vw,460px);aspect-ratio:1;left:-6%;top:3%;--d:-26;opacity:.1;animation:jo4Swing 26s ease-in-out infinite}\r\n.jo4-fl-2{width:min(40vw,400px);aspect-ratio:1;right:-5%;bottom:8%;--d:34;opacity:.12;color:#f093fb;animation:jo4Swing 31s ease-in-out infinite reverse}\r\n.jo4-fl-3{width:min(26vw,250px);aspect-ratio:1;right:9%;top:34%;--d:58;opacity:.14;color:#f5576c;animation:jo4Swing 22s ease-in-out -6s infinite}\r\n.jo4-fl-4{width:min(16vw,150px);aspect-ratio:1;left:9%;bottom:20%;--d:80;opacity:.16;color:#667eea;animation:jo4Swing 19s ease-in-out -3s infinite reverse}\r\n@keyframes jo4Swing{0%,100%{transform:rotateY(-35deg) rotateZ(-6deg)}50%{transform:rotateY(35deg) rotateZ(10deg) translateY(24px)}}\r\n.jo4-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:clamp(72px,9vw,120px) clamp(18px,4vw,40px)}\r\n.jo4-title{margin:0 0 clamp(28px,4vw,44px);text-align:center;padding:0 15px;font-family:'Advent Pro',sans-serif;font-size:clamp(2.8rem,6vw,4.5rem);font-weight:300;letter-spacing:2px;text-transform:uppercase;position:relative;\r\n  background-image:linear-gradient(90deg,#667eea,#764ba2,#f093fb,#667eea);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:jo4Flow 9s linear infinite}\r\n@keyframes jo4Flow{to{background-position-x:200%}}\r\n.jo4-title::after{content:\"\";position:absolute;left:50%;bottom:-18px;translate:-50% 0;width:120px;height:3px;border-radius:2px;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);box-shadow:0 2px 10px rgba(102,126,234,.3);transform-origin:center;animation:jo4Line 1.4s var(--ease) both}\r\n@keyframes jo4Line{from{transform:scaleX(0)}}\r\n\r\n\/* Reel \u2014 always readable black *\/\r\n.jo4-reel{display:none;position:relative;max-width:820px;margin:clamp(44px,6vw,68px) auto clamp(40px,5vw,60px);text-align:center;background:transparent}\r\n.jo4-reel.is-on{display:block}\r\n.jo4-reel-q{appearance:none;border:0;background:transparent!important;cursor:pointer;display:block;width:100%;padding:10px 16px;text-align:center;\r\n  color:#111!important;font:italic 600 clamp(1.25rem,2.6vw,1.9rem)\/1.45 'Playfair Display',Georgia,serif;\r\n  text-shadow:0 1px 0 rgba(255,255,255,.9);transition:opacity .45s,filter .45s,transform .55s var(--ease),color .2s}\r\n.jo4-reel-q:hover{color:#000!important;transform:scale(1.02)}\r\n.jo4-reel-q.is-out{opacity:0;filter:blur(8px);transform:translateY(8px)}\r\n.jo4-reel-q::before{content:\"\\201C\";margin-right:.12em;font-size:1.45em;line-height:0;vertical-align:-.18em;color:rgba(102,126,234,.55)}\r\n.jo4-reel-q::after{content:\"\\201D\";margin-left:.08em;font-size:1.45em;line-height:0;vertical-align:-.18em;color:rgba(102,126,234,.55)}\r\n.jo4-reel-by{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:10px;font-family:'Advent Pro',sans-serif;font-size:1.2rem;font-weight:700;letter-spacing:.5px;color:#1a202c;transition:opacity .45s}\r\n.jo4-reel-by .jo4-stars{font-size:1.05rem}\r\n.jo4-dots{display:flex;gap:8px;justify-content:center;margin-top:16px}\r\n.jo4-dot{appearance:none;border:0;padding:0;width:9px;height:9px;border-radius:99px;background:rgba(102,126,234,.28);cursor:pointer;transition:width .4s var(--ease),background .3s}\r\n.jo4-dot.is-active{width:28px;background:linear-gradient(90deg,#667eea,#f093fb)}\r\n\r\n.jo4-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:clamp(24px,3vw,40px);perspective:1800px}\r\n@media (min-width:992px){.jo4-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\r\n.jo4-grid>li{margin:0;padding:0;display:flex}\r\n.jo4-grid>li.is-hidden{display:none!important}\r\n\r\n\/* Cards \u2014 strong 3D + light *\/\r\n.jo4-card{position:relative;width:100%;display:flex;flex-direction:column;padding:clamp(26px,3vw,36px);border-radius:26px;text-align:left;\r\n  background:linear-gradient(165deg,rgba(255,255,255,.99),rgba(255,255,255,.95));\r\n  border:1px solid rgba(255,255,255,.9);\r\n  box-shadow:0 18px 44px rgba(60,40,120,.13),0 2px 0 rgba(255,255,255,.95) inset,0 -1px 0 rgba(102,126,234,.06) inset;\r\n  transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);\r\n  transition:transform .55s var(--ease),box-shadow .55s var(--ease)}\r\n.jo4-card::before{content:\"\";position:absolute;left:0;right:0;top:0;height:5px;border-radius:26px 26px 0 0;background:linear-gradient(90deg,#667eea,#764ba2,#f093fb,#f5576c,#667eea);background-size:400% 100%;animation:jo4Shimmer 5s ease-in-out infinite}\r\n@keyframes jo4Shimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}\r\n.jo4-card::after{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;\r\n  background:radial-gradient(480px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,1),rgba(240,147,251,.16) 38%,transparent 68%)}\r\n@media (hover:hover){\r\n  .jo4-card:hover{\r\n    transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-16px) translateZ(32px) scale(1.03);\r\n    box-shadow:0 42px 84px rgba(60,40,120,.28),0 18px 36px rgba(102,126,234,.18),0 0 0 1px rgba(167,139,250,.28),0 2px 0 rgba(255,255,255,1) inset\r\n  }\r\n  .jo4-card:hover::after{opacity:1}\r\n  .jo4-card:hover .jo4-who{transform:translateZ(52px)}\r\n  .jo4-card:hover .jo4-avatar{transform:translateZ(74px) scale(1.12);box-shadow:0 16px 36px rgba(102,126,234,.35)}\r\n  .jo4-card:hover .jo4-text{transform:translateZ(20px)}\r\n  .jo4-card:hover .jo4-foot{transform:translateZ(40px)}\r\n  .jo4-card:hover .jo4-quote-mark{transform:translateZ(86px) scale(1.14);color:rgba(102,126,234,.24)}\r\n  .jo4-card:hover .jo4-more{transform:translateY(-5px) scale(1.07);box-shadow:0 16px 36px rgba(102,126,234,.55),0 0 24px rgba(240,147,251,.25)}\r\n}\r\n.jo4-card.is-press{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-3px) translateZ(8px) scale(.975)!important;box-shadow:0 10px 24px rgba(60,40,120,.18)!important;transition-duration:.1s!important}\r\n.jo4-card.is-spot{animation:jo4Spot 1.8s var(--ease)}\r\n@keyframes jo4Spot{0%{box-shadow:0 0 0 0 rgba(240,147,251,.8)}55%{box-shadow:0 0 0 26px rgba(240,147,251,0)}100%{box-shadow:0 18px 44px rgba(60,40,120,.13)}}\r\n.jo4-quote-mark{position:absolute;top:10px;right:22px;font:700 4.4rem\/1 Georgia,serif;color:rgba(102,126,234,.12);transform:translateZ(54px);pointer-events:none;transition:transform .45s,color .45s}\r\n.jo4-who{display:flex;align-items:center;gap:15px;margin-bottom:26px;transform:translateZ(26px);transition:transform .45s var(--ease)}\r\n.jo4-avatar{position:relative;flex:0 0 auto;width:60px;height:60px;border-radius:50%;border:4px solid rgba(255,255,255,.95);box-shadow:0 8px 25px rgba(0,0,0,.15);background:linear-gradient(135deg,#667eea,#764ba2);overflow:hidden;cursor:pointer;transform:translateZ(40px);transition:transform .45s,box-shadow .45s}\r\n.jo4-avatar img{display:block;width:100%;height:100%;object-fit:cover}\r\n.jo4-avatar .jo4-mono{display:grid;place-items:center;width:100%;height:100%;color:#fff;font:700 1.5rem\/1 'Advent Pro',sans-serif}\r\n.jo4-avatar.is-boop{animation:jo4Boop .6s var(--ease)}\r\n@keyframes jo4Boop{0%{transform:translateZ(40px) scale(1)}30%{transform:translateZ(66px) scale(1.24) rotate(-8deg)}60%{transform:translateZ(50px) scale(.94) rotate(6deg)}100%{transform:translateZ(40px) scale(1)}}\r\n.jo4-name{margin:0 0 5px;font-family:'Advent Pro',sans-serif;font-size:1.55rem;font-weight:700;line-height:1.1;color:var(--ink);letter-spacing:.5px}\r\n.jo4-rate{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}\r\n.jo4-stars{display:inline-flex;font-size:1.7rem;line-height:1;letter-spacing:1px}\r\n.jo4-stars i{font-style:normal;background:linear-gradient(45deg,#ffd700,#ffed4e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 3px rgba(255,190,0,.3));display:inline-block}\r\n@media (hover:hover){.jo4-card:hover .jo4-stars i{animation:jo4Twinkle .7s var(--ease) both;animation-delay:calc(var(--k)*70ms)}}\r\n@keyframes jo4Twinkle{0%{transform:scale(1)}40%{transform:scale(1.38) rotate(-14deg)}100%{transform:scale(1)}}\r\n.jo4-label{font-family:'Advent Pro',sans-serif;font-size:1.15rem;font-weight:600;font-style:italic;letter-spacing:.5px;color:var(--violet)}\r\n.jo4-text{position:relative;overflow:hidden;font-size:.95rem;line-height:1.75;color:#374151;text-align:left;transform:translateZ(8px);transition:transform .45s}\r\n.jo4-text p{margin:0}\r\n.jo4-card.is-clamped:not(.is-open) .jo4-text{-webkit-mask-image:linear-gradient(#000 calc(100% - 56px),transparent);mask-image:linear-gradient(#000 calc(100% - 56px),transparent)}\r\n.jo4-mark{border-radius:3px;padding:0 .12em;margin:0 -.12em;font-weight:600;color:#1a202c;background:linear-gradient(transparent 52%,rgba(255,214,102,.72) 52%) no-repeat 0 0\/0% 100%;transition:background-size 1.1s var(--ease)}\r\n.jo4-mark.is-lit{background-size:100% 100%}\r\n.jo4-foot{display:flex;align-items:center;gap:12px;margin-top:20px;min-height:44px;transform:translateZ(20px);transition:transform .45s}\r\n\r\n\/* Read More \u2014 luxury CTA *\/\r\n.jo4-more{appearance:none;border:0;display:none;align-items:center;gap:9px;padding:12px 24px;border-radius:999px;cursor:pointer;color:#fff;\r\n  font:600 1rem 'Advent Pro',sans-serif;letter-spacing:.7px;\r\n  background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#8b5cf6 100%);\r\n  box-shadow:0 10px 24px rgba(102,126,234,.4),inset 0 1px 0 rgba(255,255,255,.28);\r\n  transition:transform .3s var(--ease),box-shadow .3s,filter .2s;position:relative;overflow:hidden}\r\n.jo4-card.is-clamped .jo4-more{display:inline-flex}\r\n.jo4-more::after{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.35) 50%,transparent 72%);transform:translateX(-130%);pointer-events:none}\r\n@media (hover:hover){.jo4-more:hover::after{animation:jo4Sweep .8s var(--ease)}}\r\n@keyframes jo4Sweep{to{transform:translateX(130%)}}\r\n.jo4-more svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .45s var(--ease);position:relative;z-index:1}\r\n.jo4-more span{position:relative;z-index:1}\r\n.jo4-card.is-open .jo4-more svg{transform:rotate(180deg)}\r\n.jo4-more:active,.jo4-more.is-press{transform:scale(.92)!important;box-shadow:0 3px 12px rgba(102,126,234,.4)!important;filter:brightness(.96);transition-duration:.08s}\r\n.jo4-more:focus-visible,.jo4-dot:focus-visible,.jo4-reel-q:focus-visible,.jo4-show:focus-visible{outline:2px solid #8b5cf6;outline-offset:3px}\r\n\r\n\/* Show More \u2014 premium animated CTA *\/\r\n.jo4-show-wrap{text-align:center;margin-top:clamp(48px,6vw,80px)}\r\n.jo4-show{appearance:none;border:0;cursor:pointer;position:relative;overflow:hidden;color:#fff;\r\n  font:600 1.1rem 'Advent Pro',sans-serif;letter-spacing:2px;text-transform:uppercase;\r\n  padding:18px 52px;border-radius:999px;\r\n  background:linear-gradient(135deg,#667eea 0%,#764ba2 45%,#f093fb 110%);\r\n  background-size:200% 100%;\r\n  box-shadow:0 16px 40px rgba(102,126,234,.45),0 0 0 0 rgba(240,147,251,.4),inset 0 1px 0 rgba(255,255,255,.32);\r\n  transition:transform .32s var(--ease),box-shadow .32s,filter .2s,background-position .6s;\r\n  animation:jo4PulseGlow 3.2s ease-in-out infinite}\r\n@keyframes jo4PulseGlow{\r\n  0%,100%{box-shadow:0 16px 40px rgba(102,126,234,.45),0 0 0 0 rgba(240,147,251,.35),inset 0 1px 0 rgba(255,255,255,.32)}\r\n  50%{box-shadow:0 18px 48px rgba(102,126,234,.52),0 0 0 10px rgba(240,147,251,0),inset 0 1px 0 rgba(255,255,255,.32)}\r\n}\r\n.jo4-show::before{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 22%,rgba(255,255,255,.38) 50%,transparent 78%);transform:translateX(-140%);pointer-events:none}\r\n.jo4-show:hover{transform:translateY(-6px) scale(1.06);filter:brightness(1.07);background-position:100% 0;\r\n  box-shadow:0 24px 56px rgba(102,126,234,.55),0 0 32px rgba(240,147,251,.3),inset 0 1px 0 rgba(255,255,255,.4);\r\n  animation:none}\r\n.jo4-show:hover::before{animation:jo4Sweep .9s var(--ease)}\r\n.jo4-show:active,.jo4-show.is-press{transform:translateY(2px) scale(.95)!important;box-shadow:0 6px 18px rgba(102,126,234,.4)!important;transition-duration:.08s;animation:none}\r\n.jo4-show span{position:relative;z-index:1}\r\n\r\n.jo4-stamp{position:absolute;right:20px;bottom:18px;width:86px;height:86px;color:#ee4b6a;pointer-events:none;transform:translateZ(48px) rotate(-10deg);opacity:0}\r\n.jo4-card.is-stamped .jo4-stamp{opacity:.9;animation:jo4Thump .7s var(--ease)}\r\n@keyframes jo4Thump{0%{transform:translateZ(120px) rotate(-30deg) scale(2.3);opacity:0}55%{transform:translateZ(48px) rotate(-6deg) scale(.92);opacity:1}100%{transform:translateZ(48px) rotate(-10deg) scale(1);opacity:.9}}\r\n\r\n#jo-voices.jo4-js .jo4-grid>li{opacity:0}\r\n#jo-voices.jo4-in .jo4-grid>li:not(.is-hidden){opacity:1;animation:jo4Rise 1.1s var(--ease) calc(var(--i)*110ms + .15s) backwards}\r\n@keyframes jo4Rise{from{opacity:0;transform:perspective(1100px) rotateX(20deg) translateY(60px) scale(.95);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}\r\n#jo-voices.jo4-off *,#jo-voices.jo4-off .jo4-orb{animation-play-state:paused!important}\r\n@media (max-width:768px){\r\n  .jo4-name{font-size:1.4rem}.jo4-avatar{width:52px;height:52px}.jo4-text{font-size:.92rem;line-height:1.65}\r\n  .jo4-fl-1{opacity:.07}.jo4-fl-2{opacity:.08}.jo4-stamp{width:72px;height:72px}\r\n  .jo4-show{padding:16px 40px;font-size:1rem;letter-spacing:1.4px}\r\n  .jo4-reel-q{font-size:clamp(1.15rem,4.5vw,1.45rem)}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  #jo-voices *,.jo4-orb,.jo4-show{animation:none!important}\r\n  #jo-voices.jo4-js .jo4-grid>li{opacity:1}\r\n  .jo4-card{transform:none!important}\r\n  .jo4-mark{background-size:100% 100%}\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<section id=\"jo-voices\" aria-labelledby=\"jo4-title\">\r\n  <svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\r\n    <defs>\r\n      <symbol id=\"jo4-flower\" viewBox=\"0 0 100 100\">\r\n        <g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\">\r\n          <circle cx=\"77\" cy=\"50\" r=\"15\"\/><circle cx=\"69.1\" cy=\"69.1\" r=\"15\"\/><circle cx=\"50\" cy=\"77\" r=\"15\"\/><circle cx=\"30.9\" cy=\"69.1\" r=\"15\"\/>\r\n          <circle cx=\"23\" cy=\"50\" r=\"15\"\/><circle cx=\"30.9\" cy=\"30.9\" r=\"15\"\/><circle cx=\"50\" cy=\"23\" r=\"15\"\/><circle cx=\"69.1\" cy=\"30.9\" r=\"15\"\/>\r\n          <path d=\"M50 50 m0 -5 a5 5 0 1 1 -5 5 a10 10 0 1 1 10 10\"\/>\r\n        <\/g>\r\n      <\/symbol>\r\n    <\/defs>\r\n  <\/svg>\r\n  <div class=\"jo4-orb jo4-orb-a\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo4-orb jo4-orb-b\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo4-orb jo4-orb-c\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo4-depth\" aria-hidden=\"true\">\r\n    <div class=\"jo4-fl jo4-fl-1\"><svg><use href=\"#jo4-flower\"\/><\/svg><\/div>\r\n    <div class=\"jo4-fl jo4-fl-2\"><svg><use href=\"#jo4-flower\"\/><\/svg><\/div>\r\n    <div class=\"jo4-fl jo4-fl-3\"><svg><use href=\"#jo4-flower\"\/><\/svg><\/div>\r\n    <div class=\"jo4-fl jo4-fl-4\"><svg><use href=\"#jo4-flower\"\/><\/svg><\/div>\r\n  <\/div>\r\n  <div class=\"jo4-inner\">\r\n    <h2 id=\"jo4-title\" class=\"jo4-title\">Our Clients Say<\/h2>\r\n    <div class=\"jo4-reel\" id=\"jo4-reel\" aria-label=\"Highlights from client reviews\">\r\n      <button class=\"jo4-reel-q\" id=\"jo4-reel-q\" type=\"button\"><\/button>\r\n      <div class=\"jo4-reel-by\" id=\"jo4-reel-by\"><\/div>\r\n      <div class=\"jo4-dots\" id=\"jo4-dots\"><\/div>\r\n    <\/div>\r\n    <ul class=\"jo4-grid\" role=\"list\" id=\"jo4-grid\">\r\n\r\n<li style=\"--i:0\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-1.png\" alt=\"Lilly Davis\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Lilly Davis<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Perfect 10\/10<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t0\"><p>Moto-sensei is a solid 10\/10! I've been learning Japanese with Moto-sensei for over 89 lessons now, and I can confidently say my progress has been remarkable. We initially met on another platform, and even after so many lessons, I was still struggling with certain concepts. Moto-sensei, however, has a unique ability to clarify exactly what I didn't understand with other teachers. He gets it! <mark class=\"jo4-mark\" data-reel>Every lesson with Moto-sensei is something I look forward to.<\/mark> He has a fantastic teaching style that's both engaging and effective. I'm always excited to meet him for our sessions! I wholeheartedly recommend Moto-sensei to anyone looking to truly improve their Japanese. He understands exactly where my frustrations stemmed from, and before, I felt lost and didn't know where to start. Now, thanks to his structured approach, everything is so much clearer. He breaks down complex grammar and vocabulary into digestible pieces, making learning feel achievable and enjoyable. Plus, he adapts lessons to my interests, making each session relevant and fun. <mark class=\"jo4-mark\">Moto-sensei is not just a teacher; he's a mentor who genuinely cares about your success.<\/mark> If you're looking for a teacher who will not only guide you but also inspire you, Moto is the perfect choice.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t0\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:1\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/unnamed-file-1.jpg\" alt=\"Kyle Peterson\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Kyle Peterson<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Exceptional Teaching<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t1\"><p>I was introduced to Moto through a friend I met at my Japanese language school. They had been raving about how much their lessons with Moto had helped, so I decided to give it a try. Since September, I've been taking two lessons a week with him \u2014 and honestly, it's been life-changing. Moto is the kind of teacher who makes everything click. He's incredibly patient, intuitive, and skilled at explaining even the most confusing parts of Japanese \u2014 like particles and sentence structure \u2014 in a way that finally makes sense. He doesn't just correct your mistakes; he helps you understand why they happen, all while creating a supportive and encouraging learning environment. You never feel judged \u2014 just motivated. If you've ever felt stuck or overwhelmed learning Japanese, Moto is exactly the person you want on your side. I used to ask the same questions over and over in class and still felt confused. But with Moto, everything became clear. He's consistent, responsive, and genuinely cares about your progress. <mark class=\"jo4-mark\" data-reel>Every lesson brings that \"aha!\" moment.<\/mark> I can't recommend him enough \u2014 if you're serious about learning Japanese and want to actually enjoy the journey, Moto is the one.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t1\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:2\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-2.png\" alt=\"Sam Miller\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Sam Miller<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Outstanding Results<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t2\"><p>I wholeheartedly recommend Moto to anyone looking for an outstanding Japanese tutor! From the very first lesson, his energy, enthusiasm, and passion for teaching were undeniable. His lessons are well-structured, engaging, and personalized, making every session both effective and enjoyable. It's clear that he has extensive experience and genuinely loves helping students master Japanese. One thing that really stood out to me was his patience and encouragement\u2014<mark class=\"jo4-mark\" data-reel>he never made me feel pressured if I stumbled<\/mark>, and he always created a comfortable space for learning. I took hour-long lessons with him every weekday for 2\u20133 months, and the progress I made was incredible! Moto has a high-energy teaching style that keeps things interactive and fun, while still being incredibly effective. He adapted his lessons to fit my learning style and interests, ensuring that every session was valuable. We worked on a variety of practical skills, including role-playing, diary reviews, casual conversations, giving directions, and making requests, all of which significantly improved my confidence and fluency. Beyond the lessons themselves, <mark class=\"jo4-mark\">Moto goes the extra mile\u2014after each session, he sends a summary of key vocabulary and phrases we covered<\/mark>, making it easy to review and reinforce learning. He even checks in during our next lesson to ensure I remembered everything! If you're looking for a dynamic, supportive, and skilled tutor who will help you achieve real results, Moto is the perfect choice! I'm incredibly grateful to have learned from him, and I highly recommend him to anyone serious about improving their Japanese.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t2\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:3\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-3.png\" alt=\"Cove Adams\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Cove Adams<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Structured Excellence<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t3\"><p>Moto has been my first one-on-one Japanese tutor, and I truly wish I had found him sooner. Before working with Moto, I studied Japanese at university and attended a language school in Tokyo. Looking back, those experiences lacked the clear structure and personalized guidance that Moto provides. Moto's teaching approach is incredibly organized and logical, making it easy to fill in the gaps that were previously unclear to me. <mark class=\"jo4-mark\" data-reel>When I get stuck, he seamlessly provides explanations in English that resolve my questions in seconds\u2014problems that I struggled with for months in school!<\/mark> I wholeheartedly recommend Moto to anyone who is looking for a structured, effective approach to learning Japanese. Whether you're facing challenges with grammar, particles, or overall fluency, Moto's lessons will provide clarity and confidence. His dedication, professionalism, and skill make him stand out. In fact, I've already recommended Moto to classmates from my Japanese school, and one of them has started lessons with him. They've even said they prefer Moto's teaching over the school's methods! Moto's personalized style is unmatched, and I can't thank him enough for his support in my learning journey.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t3\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:4\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2021\/02\/unnamed-file-2.jpg\" alt=\"Ryan Johnson\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Ryan Johnson<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Perfect for Professionals<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t4\"><p>When I met Moto, I was in a desperate situation\u2014preparing to relocate to Japan for work with barely three months to get ready. I explained that I needed practical survival Japanese, not theoretical textbook learning. While other tutors tried to sell me their standard curriculum, Moto was the only teacher who truly listened and customized his approach specifically for my situation. What makes Moto exceptional is his intuitive teaching style. He quickly assessed my learning style and created a tailored strategy focused on practical application. He bypasses the tedious vocabulary memorization and grammar drills that make most language learning frustrating. Instead, he guides you through understanding Japanese sentence patterns and immediately applying them in real-life scenarios you'll actually encounter. Thanks to Moto's guidance, I achieved functional Japanese proficiency in record time. <mark class=\"jo4-mark\" data-reel>By the time I boarded my flight to Tokyo, I felt genuinely prepared to navigate everyday situations<\/mark>\u2014from ordering food to handling transportation emergencies. His method gave me the confidence to hit the ground running in my new life abroad. If you're looking for a Japanese teacher who adapts to YOUR needs rather than forcing you into a rigid curriculum, Moto is your perfect match. His \"Survival Japanese\" approach is ideal for busy professionals, travelers, or anyone who wants to learn Japanese that's immediately useful. Don't waste time on methods that don't work\u2014start your Japanese journey with Moto today!<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t4\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:5\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/images.unsplash.com\/photo-1540959733332-eab4deabeeaf?w=120&h=120&fit=crop&crop=entropy\" alt=\"Tokyo evening view\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Jake Williams<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Incredible Progress<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t5\"><p>I was introduced to Moto through a glowing recommendation from my friend and used JapaneseOnlineClass.com, and I can confidently say the hype was real! I immediately experienced those 'aha' moments that had been missing from my previous learning experiences. Moto is an incredibly friendly and encouraging teacher who genuinely cares about his students' success. In the two to three months I've been taking daily 1-hour lessons with him, my Japanese has improved significantly. He makes learning fun and engaging by tailoring lessons to my interests and needs, covering a wide range of topics from casual conversation and role-playing to practical skills like giving directions and making requests. I especially appreciate the personalized touch he brings to each session. I wholeheartedly recommend Moto to any student seeking a dedicated and effective Japanese teacher. He goes above and beyond, sending a summary of key phrases after each lesson, which is incredibly helpful for review. His passion for teaching is evident, and I'm incredibly grateful for the opportunity to learn from him. <mark class=\"jo4-mark\" data-reel>If you're looking for a teacher who will not only guide you but also inspire you, Moto is the perfect choice.<\/mark><\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t5\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:6\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-4.png\" alt=\"David Smith\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">David Smith<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Invaluable Insights<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t6\"><p>Moto's classes are not just about learning Japanese; they're about understanding Japanese culture from the inside out. He has a rare talent for breaking down complex linguistic concepts by connecting them to the nuances of Japanese thought and society. His explanations are incredibly clear, often using analogies that just click. Whether it's a tricky grammar point or a subtle cultural expression, <mark class=\"jo4-mark\" data-reel>Moto illuminates the \"why\" behind the \"what,\" making the language feel intuitive rather than just a set of rules to memorize.<\/mark> I've been studying Japanese for years, and I've never encountered a teacher who combines linguistic expertise with such deep cultural insight. His passion for both the language and its cultural context is infectious. He's incredibly patient, always willing to re-explain things in different ways until they make perfect sense. If you're looking to truly grasp Japanese\u2014not just speak it, but understand it\u2014Moto is the teacher for you. He makes learning an enriching experience that goes beyond the textbook. Highly recommended for anyone serious about mastering the language and appreciating its cultural depth.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t6\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:7\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/images.unsplash.com\/photo-1528164344705-47542687000d?w=120&h=120&fit=crop&crop=entropy\" alt=\"Quiet street in Japan\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Eleanor Vance<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Tailored &amp; Effective<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t7\"><p>I've tried numerous language learning apps and classes, but nothing compares to the personalized approach Moto offers. He truly understands how to adapt his teaching to individual needs and learning styles. My goal was to improve my conversational Japanese for daily life in Tokyo, and Moto designed lessons that were immediately applicable. He focuses on practical phrases, real-world scenarios, and common expressions you won't always find in textbooks. Every session feels dynamic and interactive, and he encourages you to speak from day one. <mark class=\"jo4-mark\" data-reel>What truly sets Moto apart is his ability to correct mistakes without making you feel self-conscious.<\/mark> He offers clear, constructive feedback and provides alternative ways to phrase things, helping you build confidence naturally. I've seen a remarkable improvement in my fluency and my ability to communicate effectively since I started learning with him. If you're looking for a Japanese tutor who is not only knowledgeable but also genuinely invested in your progress, Moto is an excellent choice. His lessons are enjoyable, effective, and perfectly tailored to help you achieve your specific language goals. I highly recommend him for anyone seeking practical, real-world Japanese skills.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t7\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:8\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-6.png\" alt=\"April Stevens\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">April Stevens<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Cultural Deep Dive<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t8\"><p>Look, if you're sick of drowning in grammar charts and feeling like Japanese is just a bunch of random rules, you NEED to talk to Moto. Seriously. I was hunting for a teacher who could actually make sense of the language, someone who could show me how it connects to real Japanese culture and history, not some textbook nonsense. And Moto? He totally delivered. He's not your typical teacher. He's the kind of guy who'll tell you straight up, <mark class=\"jo4-mark\" data-reel>\"Japanese grammar isn't just rules\u2014it's a reflection of culture and mindset. Once you see the connections, everything starts to click.\"<\/mark> And man, he's right! Moto has this way of breaking down the toughest stuff into bite-sized pieces, showing you how it all fits into everyday life. Honestly, if you want to actually understand Japanese, not just memorize it, Moto's your guy. He'll have you practicing until it feels natural, building your confidence with real-life examples. Trust me, you'll walk away feeling like you can actually use what you've learned. If you're ready to ditch the dry textbooks and dive into the real deal, Moto's the teacher you've been waiting for :)<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t8\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:9\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/images.unsplash.com\/photo-1490806843957-31f4c9a91c65?w=120&h=120&fit=crop&crop=entropy\" alt=\"Mountains and lake in Japan\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Mia Henderson<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Fantastic Progress<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t9\"><p>Moto-sensei has been an absolute game-changer for my Japanese learning journey. I've struggled with consistency and motivation in the past, but his engaging teaching style and genuine enthusiasm make every lesson a joy. He expertly tailors each session to my specific needs, whether it's drilling grammar points, practicing conversational flow, or delving into nuances of Japanese culture. What I appreciate most is how he breaks down complex concepts into simple, understandable explanations. I no longer feel overwhelmed by seemingly impossible grammar rules. <mark class=\"jo4-mark\" data-reel>My confidence in speaking and understanding Japanese has soared thanks to his patient guidance and clear methodology.<\/mark> I highly recommend Moto to anyone seeking an effective and supportive Japanese teacher!<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t9\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:10\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-8.png\" alt=\"Oscar King\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Oscar King<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Highly Engaging<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t10\"><p>If you're looking for a Japanese teacher who truly knows how to make learning fun and effective, look no further than Moto. His lessons are always dynamic, filled with practical examples and lively discussions that keep you engaged from start to finish. I particularly enjoy his ability to incorporate real-life scenarios into our lessons, which helps me apply what I've learned directly to everyday conversations. He's incredibly patient, always willing to re-explain concepts until they click, and his positive energy is contagious. <mark class=\"jo4-mark\" data-reel>My Japanese has improved dramatically since I started taking lessons with him<\/mark>, and I feel much more confident using the language in various situations. Thank you, Moto-sensei, for making Japanese learning such a rewarding experience!<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t10\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:11\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/images.unsplash.com\/photo-1480796927426-f609979314bd?w=120&h=120&fit=crop&crop=entropy\" alt=\"Lantern street in Japan\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Grace Thompson<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Excellent Communication<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t11\"><p>Moto-sensei is an exceptional Japanese teacher who truly cares about his students' success. His communication skills are top-notch, explaining complex grammar points and cultural nuances with incredible clarity. <mark class=\"jo4-mark\" data-reel>He creates a very comfortable and supportive learning environment, which made me feel at ease even when making mistakes.<\/mark> I've noticed a significant improvement in my listening comprehension and speaking fluency since I started with him. He's always well-prepared for our lessons, and his feedback is always constructive and helpful. I highly recommend Moto to anyone who wants to learn Japanese effectively and enjoy the process!<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t11\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:12\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-10.png\" alt=\"Liam Davies\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Liam Davies<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Highly Recommended<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t12\"><p>I've been learning Japanese for years, and Moto-sensei is hands down the best teacher I've had. His approach is highly effective because he understands how to identify your weaknesses and turn them into strengths. <mark class=\"jo4-mark\" data-reel>He doesn't just teach from a textbook; he teaches you how to think in Japanese.<\/mark> His lessons are always well-structured, yet flexible enough to address any questions or topics I want to discuss. I've gained so much confidence in my speaking abilities, and my understanding of Japanese grammar has deepened considerably. If you're serious about mastering Japanese, Moto-sensei is the perfect tutor. He's a true professional who is dedicated to his students' progress.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t12\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n<li style=\"--i:13\"><article class=\"jo4-card\">\r\n<div class=\"jo4-quote-mark\" aria-hidden=\"true\">&ldquo;<\/div>\r\n<div class=\"jo4-who\"><span class=\"jo4-avatar\"><img loading=\"lazy\" src=\"https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/japaneseonlineclass-11.png\" alt=\"Chloe Evans\" width=\"60\" height=\"60\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n<div><h3 class=\"jo4-name\">Chloe Evans<\/h3><div class=\"jo4-rate\"><span class=\"jo4-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"><i style=\"--k:0\">\u2605<\/i><i style=\"--k:1\">\u2605<\/i><i style=\"--k:2\">\u2605<\/i><i style=\"--k:3\">\u2605<\/i><i style=\"--k:4\">\u2605<\/i><\/span><span class=\"jo4-label\">Beyond Expectations<\/span><\/div><\/div><\/div>\r\n<div class=\"jo4-text\" id=\"jo4-t13\"><p>Moto-sensei exceeded all my expectations! I came to him with specific goals for business Japanese, and he quickly understood my needs and designed a customized curriculum. His business Japanese lessons are practical, relevant, and incredibly insightful, covering everything from formal keigo to understanding unspoken business etiquette. He creates a challenging yet supportive environment where I feel comfortable practicing new phrases and concepts. <mark class=\"jo4-mark\" data-reel>My colleagues in Japan have even commented on my improved Japanese!<\/mark> Moto's dedication and expertise are truly remarkable. I highly recommend him to any professional looking to master Japanese for business purposes.<\/p><\/div>\r\n<div class=\"jo4-foot\"><button class=\"jo4-more\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo4-t13\"><span>Read More<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><\/div>\r\n<svg class=\"jo4-stamp\" viewBox=\"0 0 100 100\" aria-hidden=\"true\"><use href=\"#jo4-flower\"\/><\/svg>\r\n<\/article><\/li>\r\n\r\n    <\/ul>\r\n    <div class=\"jo4-show-wrap\">\r\n      <button type=\"button\" class=\"jo4-show\" id=\"jo4-show\" aria-controls=\"jo4-grid\"><span>Show More<\/span><\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<script>\r\n(function(){\r\n  var root=document.getElementById('jo-voices');if(!root)return;\r\n  var calm=matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var fine=matchMedia('(hover:hover) and (pointer:fine)').matches;\r\n  var EASE='cubic-bezier(.22,1,.36,1)';\r\n  root.classList.add('jo4-js');\r\n  var items=[].slice.call(root.querySelectorAll('.jo4-grid > li'));\r\n  var cards=items.map(function(li){return li.querySelector('.jo4-card');});\r\n  var showBtn=document.getElementById('jo4-show');\r\n  var INITIAL=4,STEP=2,shown=INITIAL;\r\n  var burst=function(x,y,n){if(window.JOFX&&window.JOFX.burst)window.JOFX.burst(x,y,n);};\r\n\r\n  function paintList(){\r\n    items.forEach(function(li,i){if(i<shown)li.classList.remove('is-hidden');else li.classList.add('is-hidden');});\r\n    if(showBtn){showBtn.querySelector('span').textContent=shown>=items.length?'Show Less':'Show More';showBtn.style.display=items.length>INITIAL?'':'none';}\r\n    setupClamp();\r\n  }\r\n  if(showBtn){\r\n    showBtn.addEventListener('pointerdown',function(){showBtn.classList.add('is-press');});\r\n    ['pointerup','pointerleave','pointercancel'].forEach(function(ev){showBtn.addEventListener(ev,function(){showBtn.classList.remove('is-press');});});\r\n    showBtn.addEventListener('click',function(){\r\n      if(shown>=items.length){shown=INITIAL;paintList();var t=document.getElementById('jo4-title');if(t)t.scrollIntoView({behavior:calm?'auto':'smooth',block:'start'});return;}\r\n      var prev=shown;shown=Math.min(shown+STEP,items.length);paintList();\r\n      if(items[prev])items[prev].scrollIntoView({behavior:calm?'auto':'smooth',block:'nearest'});\r\n    });\r\n  }\r\n\r\n  if('IntersectionObserver' in window){\r\n    new IntersectionObserver(function(es,o){if(es[0].isIntersecting){root.classList.add('jo4-in');o.disconnect();}},{threshold:.08}).observe(root);\r\n    new IntersectionObserver(function(es){root.classList.toggle('jo4-off',!es[0].isIntersecting);},{rootMargin:'120px'}).observe(root);\r\n  }else root.classList.add('jo4-in');\r\n\r\n  cards.forEach(function(c){\r\n    var av=c.querySelector('.jo4-avatar'),img=av.querySelector('img'),name=c.querySelector('.jo4-name').textContent.trim();\r\n    function mono(){if(img&&img.parentNode)img.remove();if(av.querySelector('.jo4-mono'))return;var m=document.createElement('span');m.className='jo4-mono';m.textContent=name.split(\/\\s+\/).map(function(w){return w[0];}).slice(0,2).join('').toUpperCase();av.appendChild(m);}\r\n    if(!img)mono();else img.addEventListener('error',mono);\r\n    av.addEventListener('click',function(){av.classList.remove('is-boop');void av.offsetWidth;av.classList.add('is-boop');var r=av.getBoundingClientRect();burst(r.left+r.width\/2,r.top+r.height\/2,3);});\r\n    c.addEventListener('pointerdown',function(e){if(e.target.closest('button,a,.jo4-avatar'))return;c.classList.add('is-press');});\r\n    ['pointerup','pointerleave','pointercancel'].forEach(function(ev){c.addEventListener(ev,function(){c.classList.remove('is-press');});});\r\n  });\r\n\r\n  function collapsedH(){return innerWidth<=768?240:200;}\r\n  function setupClamp(){\r\n    cards.forEach(function(c){\r\n      if(c.closest('li').classList.contains('is-hidden'))return;\r\n      var t=c.querySelector('.jo4-text'),open=c.classList.contains('is-open');\r\n      t.style.height='';var full=t.scrollHeight;\r\n      if(full>collapsedH()+48){c.classList.add('is-clamped');if(!open)t.style.height=collapsedH()+'px';}\r\n      else c.classList.remove('is-clamped','is-open');\r\n    });\r\n  }\r\n  function stamp(c){if(c.classList.contains('is-stamped'))return;c.classList.add('is-stamped');var s=c.querySelector('.jo4-stamp').getBoundingClientRect();burst(s.left+s.width\/2,s.top+s.height\/2,6);}\r\n  function setOpen(c,open){\r\n    var t=c.querySelector('.jo4-text'),b=c.querySelector('.jo4-more');\r\n    var from=t.offsetHeight,to=open?t.scrollHeight:collapsedH();\r\n    c.classList.toggle('is-open',open);b.setAttribute('aria-expanded',open?'true':'false');b.querySelector('span').textContent=open?'Read Less':'Read More';\r\n    t.style.height=to+'px';\r\n    if(!calm&&t.animate)t.animate([{height:from+'px'},{height:to+'px'}],{duration:560,easing:EASE});\r\n    if(open){stamp(c);[].forEach.call(c.querySelectorAll('.jo4-mark'),function(m){setTimeout(function(){m.classList.add('is-lit');},350);});}\r\n  }\r\n  cards.forEach(function(c){\r\n    var btn=c.querySelector('.jo4-more');\r\n    btn.addEventListener('pointerdown',function(){btn.classList.add('is-press');});\r\n    ['pointerup','pointerleave','pointercancel'].forEach(function(ev){btn.addEventListener(ev,function(){btn.classList.remove('is-press');});});\r\n    btn.addEventListener('click',function(){setOpen(c,!c.classList.contains('is-open'));});\r\n  });\r\n  paintList();\r\n  var rz;addEventListener('resize',function(){clearTimeout(rz);rz=setTimeout(setupClamp,150);});\r\n\r\n  var marks=[].slice.call(root.querySelectorAll('.jo4-mark'));\r\n  if('IntersectionObserver' in window){\r\n    var mo=new IntersectionObserver(function(es,o){es.forEach(function(e){if(e.isIntersecting&&e.intersectionRatio>.55){e.target.classList.add('is-lit');o.unobserve(e.target);}});},{threshold:[0,.55,1]});\r\n    marks.forEach(function(m){mo.observe(m);});\r\n  }else marks.forEach(function(m){m.classList.add('is-lit');});\r\n\r\n  var reel=document.getElementById('jo4-reel'),rq=document.getElementById('jo4-reel-q'),rb=document.getElementById('jo4-reel-by'),dots=document.getElementById('jo4-dots');\r\n  var reelItems=cards.map(function(c,i){var m=c.querySelector('.jo4-mark[data-reel]');return m?{i:i,text:m.textContent.trim().replace(\/[.,]+$\/,''),name:c.querySelector('.jo4-name').textContent.trim(),card:c}:null;}).filter(Boolean);\r\n  var cur=0,rt=0,paused=false;\r\n  function paint(n,instant){\r\n    cur=n;var it=reelItems[n];\r\n    function apply(){rq.textContent=it.text;rb.innerHTML='<span><\/span><span class=\"jo4-stars\" aria-hidden=\"true\"><i>\u2605<\/i><i>\u2605<\/i><i>\u2605<\/i><i>\u2605<\/i><i>\u2605<\/i><\/span>';rb.firstChild.textContent=it.name;rq.classList.remove('is-out');rb.style.opacity=1;}\r\n    [].forEach.call(dots.children,function(d,k){d.classList.toggle('is-active',k===n);});\r\n    if(instant||calm)apply();else{rq.classList.add('is-out');rb.style.opacity=0;setTimeout(apply,420);}\r\n  }\r\n  function next(){paint((cur+1)%reelItems.length);}\r\n  function schedule(){clearTimeout(rt);if(!calm&&!paused)rt=setTimeout(function(){if(!root.classList.contains('jo4-off'))next();schedule();},5600);}\r\n  function jump(it){\r\n    var li=it.card.closest('li');\r\n    if(li&&li.classList.contains('is-hidden')){shown=Math.max(shown,it.i+1);paintList();}\r\n    it.card.scrollIntoView({behavior:calm?'auto':'smooth',block:'center'});\r\n    if(!it.card.classList.contains('is-open')&&it.card.classList.contains('is-clamped'))setOpen(it.card,true);else stamp(it.card);\r\n    it.card.classList.remove('is-spot');void it.card.offsetWidth;it.card.classList.add('is-spot');\r\n    [].forEach.call(it.card.querySelectorAll('.jo4-mark'),function(m){m.classList.add('is-lit');});\r\n  }\r\n  if(reelItems.length>1){\r\n    reelItems.forEach(function(it,n){var d=document.createElement('button');d.type='button';d.className='jo4-dot';d.setAttribute('aria-label','Show review by '+it.name);d.addEventListener('click',function(){paint(n);schedule();});dots.appendChild(d);});\r\n    reel.classList.add('is-on');paint(0,true);schedule();\r\n    rq.addEventListener('click',function(){jump(reelItems[cur]);});\r\n    reel.addEventListener('pointerenter',function(){paused=true;clearTimeout(rt);});\r\n    reel.addEventListener('pointerleave',function(){paused=false;schedule();});\r\n  }\r\n\r\n  if(fine&&!calm){\r\n    var grid=root.querySelector('.jo4-grid');\r\n    grid.addEventListener('pointermove',function(e){\r\n      var c=e.target.closest&&e.target.closest('.jo4-card');if(!c)return;\r\n      var r=c.getBoundingClientRect(),x=e.clientX-r.left,y=e.clientY-r.top;\r\n      c.style.setProperty('--ry',((x\/r.width-.5)*11).toFixed(2)+'deg');\r\n      c.style.setProperty('--rx',(-(y\/r.height-.5)*8.5).toFixed(2)+'deg');\r\n      c.style.setProperty('--gx',x+'px');c.style.setProperty('--gy',y+'px');\r\n    },{passive:true});\r\n    grid.addEventListener('pointerout',function(e){var c=e.target.closest&&e.target.closest('.jo4-card');if(c&&!c.contains(e.relatedTarget)){c.style.setProperty('--rx','0deg');c.style.setProperty('--ry','0deg');}},{passive:true});\r\n    var raf=0,px=0,py=0;\r\n    root.addEventListener('pointermove',function(e){var r=root.getBoundingClientRect();px=(e.clientX-r.left)\/r.width-.5;py=(e.clientY-r.top)\/r.height-.5;if(!raf)raf=requestAnimationFrame(function(){raf=0;root.style.setProperty('--mx',px.toFixed(3));root.style.setProperty('--my',py.toFixed(3));});},{passive:true});\r\n  }\r\n\r\n  function flush(){\r\n    root.style.removeProperty('margin-top');root.style.removeProperty('margin-bottom');\r\n    function visible(el){var cs=getComputedStyle(el);return !\/^(SCRIPT|STYLE|NOSCRIPT|CANVAS|LINK|PRE)$\/.test(el.tagName)&&el.offsetHeight>0&&cs.position!=='fixed'&&cs.position!=='absolute';}\r\n    function neighbour(dir){var el=root;while(el&&el!==document.body&&el!==document.documentElement){var s=dir>0?el.nextElementSibling:el.previousElementSibling;while(s&&!visible(s))s=dir>0?s.nextElementSibling:s.previousElementSibling;if(s)return s;el=el.parentElement;}return null;}\r\n    var prev=neighbour(-1),next=neighbour(1);\r\n    if(prev){var gt=root.getBoundingClientRect().top-prev.getBoundingClientRect().bottom;if(gt>.5&&gt<120)root.style.setProperty('margin-top',-gt+'px','important');}\r\n    if(next){var gb=next.getBoundingClientRect().top-root.getBoundingClientRect().bottom;if(gb>.5&&gb<120)root.style.setProperty('margin-bottom',-gb+'px','important');}\r\n  }\r\n  flush();addEventListener('load',flush);addEventListener('resize',flush);\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-663886c9 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"663886c9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7d599d1b\" data-id=\"7d599d1b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-41e636b8 elementor-widget elementor-widget-menu-anchor\" data-id=\"41e636b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"pricing\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7b442384 elementor-widget elementor-widget-html\" data-id=\"7b442384\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Japanese Lesson Plans &amp; Pricing | JapaneseOnlineClass.com<\/title>\r\n<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@400;700&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n.font-advent-pro { font-family: 'Advent Pro', sans-serif; }\r\n\r\n@keyframes gradient-x {\r\n  0% { background-position: 0% 50%; }\r\n  50% { background-position: 100% 50%; }\r\n  100% { background-position: 0% 50%; }\r\n}\r\n.animate-gradient-x {\r\n  background-size: 200% 200%;\r\n  animation: gradient-x 8s ease infinite;\r\n}\r\n\r\n@keyframes slideInFromLeft {\r\n  0% { transform: translateX(-100%); opacity: 0; }\r\n  100% { transform: translateX(0); opacity: 1; }\r\n}\r\n@keyframes slideInFromRight {\r\n  0% { transform: translateX(100%); opacity: 0; }\r\n  100% { transform: translateX(0); opacity: 1; }\r\n}\r\n@keyframes slideInFromUp {\r\n  0% { transform: translateY(100%); opacity: 0; }\r\n  100% { transform: translateY(0); opacity: 1; }\r\n}\r\n.animate-slide-left { animation: slideInFromLeft 1s ease-out forwards; }\r\n.animate-slide-right { animation: slideInFromRight 1s ease-out forwards; }\r\n.animate-slide-up { animation: slideInFromUp 1s ease-out forwards; }\r\n\r\n@keyframes float {\r\n  0% { transform: translateY(0px); }\r\n  50% { transform: translateY(-5px); }\r\n  100% { transform: translateY(0px); }\r\n}\r\n.animated-card { animation: float 3s ease-in-out infinite; }\r\n.animated-card.is-tilting { animation: none !important; }\r\n\r\n@keyframes original-background-pan {\r\n  0% { background-position: 0% 0%; }\r\n  100% { background-position: 100% 100%; }\r\n}\r\n.original-animate-background-pan {\r\n  animation: original-background-pan 60s linear infinite;\r\n}\r\n\r\n\/* ===== Trial loop (desktop) ===== *\/\r\n.trial-card-container {\r\n  width: auto;\r\n  position: absolute;\r\n  left: 33.33%;\r\n  top: 50%;\r\n  z-index: 20;\r\n  opacity: 0;\r\n  pointer-events: none;\r\n  transform: translate(-50%, -50%);\r\n  transform-style: preserve-3d;\r\n  perspective: 1200px;\r\n  will-change: transform, opacity, filter;\r\n  backface-visibility: hidden;\r\n}\r\n.trial-card-container.is-interactive { pointer-events: auto; }\r\n\r\n\/* ENTER: farther top-right, longer, smooth ease (no glitchy slo-mo) *\/\r\n.trial-card-container.is-enter {\r\n  animation: trialEnter 2.7s cubic-bezier(.22,.61,.36,1) forwards;\r\n}\r\n@keyframes trialEnter {\r\n  0% {\r\n    opacity: 0;\r\n    filter: blur(14px) brightness(1.2);\r\n    transform: translate(-50%, -50%) translate(56vw, -48vh) scale(0.22) rotateY(620deg) rotateZ(-12deg);\r\n  }\r\n  22% {\r\n    opacity: 1;\r\n    filter: blur(8px) brightness(1.12);\r\n    transform: translate(-50%, -50%) translate(38vw, -32vh) scale(0.45) rotateY(420deg) rotateZ(-8deg);\r\n  }\r\n  48% {\r\n    filter: blur(3px) brightness(1.06);\r\n    transform: translate(-50%, -50%) translate(18vw, -14vh) scale(0.72) rotateY(180deg) rotateZ(-3deg);\r\n  }\r\n  72% {\r\n    filter: blur(0.5px) brightness(1.02);\r\n    transform: translate(-50%, -50%) translate(5vw, -2vh) scale(0.94) rotateY(40deg) rotateZ(1deg);\r\n  }\r\n  88% {\r\n    filter: none;\r\n    transform: translate(-50%, -50%) translate(0, 5px) scale(1.04) rotateY(-6deg) rotateZ(1deg);\r\n  }\r\n  100% {\r\n    opacity: 1;\r\n    filter: none;\r\n    transform: translate(-50%, -50%) translate(0, 0) scale(1) rotateY(0deg) rotateZ(0deg);\r\n  }\r\n}\r\n\r\n.trial-card-container.is-enter::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  inset: -10px;\r\n  border-radius: 1.85rem;\r\n  pointer-events: none;\r\n  border: 2px solid rgba(249,115,22,.45);\r\n  box-shadow: 0 0 28px rgba(249,115,22,.25);\r\n  animation: trialRing 1.15s cubic-bezier(.16,1,.3,1) 1.55s forwards;\r\n  opacity: 0;\r\n  z-index: 0;\r\n}\r\n@keyframes trialRing {\r\n  0% { opacity: 0; transform: scale(0.78); }\r\n  35% { opacity: 1; }\r\n  100% { opacity: 0; transform: scale(1.18); }\r\n}\r\n\r\n.trial-card-container.is-idle {\r\n  opacity: 1;\r\n  pointer-events: auto;\r\n  animation: trialIdle 4s ease-in-out infinite;\r\n}\r\n@keyframes trialIdle {\r\n  0%, 100% { transform: translate(-50%, -50%) translateY(0); }\r\n  50% { transform: translate(-50%, -50%) translateY(-9px); }\r\n}\r\n.trial-card-container.is-idle.is-tilting { animation: none; }\r\n\r\n\/* EXIT: smooth, readable spin then soft fade *\/\r\n.trial-card-container.is-exit {\r\n  pointer-events: none;\r\n  animation: trialExit 2.15s cubic-bezier(.33,0,.2,1) forwards;\r\n}\r\n@keyframes trialExit {\r\n  0% {\r\n    opacity: 1;\r\n    filter: none;\r\n    transform: translate(-50%, -50%) scale(1) rotateY(0deg) rotateZ(0deg);\r\n  }\r\n  28% {\r\n    opacity: 1;\r\n    filter: blur(1px);\r\n    transform: translate(-50%, -50%) translate(-10vw, 8vh) scale(0.92) rotateY(-140deg) rotateZ(4deg);\r\n  }\r\n  60% {\r\n    opacity: 0.95;\r\n    filter: blur(4px);\r\n    transform: translate(-50%, -50%) translate(-28vw, 24vh) scale(0.62) rotateY(-320deg) rotateZ(8deg);\r\n  }\r\n  100% {\r\n    opacity: 0;\r\n    filter: blur(12px) brightness(1.15);\r\n    transform: translate(-50%, -50%) translate(-50vw, 46vh) scale(0.24) rotateY(-520deg) rotateZ(12deg);\r\n  }\r\n}\r\n\r\n.trial-card-container.is-wait {\r\n  opacity: 0;\r\n  pointer-events: none;\r\n  transform: translate(-50%, -50%) translate(56vw, -48vh) scale(0.22);\r\n}\r\n\r\n\/* ===== shared card chrome ===== *\/\r\n.trial-card-common-style {\r\n  border-radius: 1.5rem;\r\n  box-shadow: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1);\r\n  padding: 2rem;\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: space-between;\r\n  align-items: center;\r\n  transition: box-shadow .45s cubic-bezier(.22,1,.36,1), filter .35s ease;\r\n  transform-style: preserve-3d;\r\n  will-change: transform;\r\n  box-sizing: border-box;\r\n  border-width: 4px;\r\n  position: relative;\r\n  overflow: hidden;\r\n}\r\n.trial-card-common-style::before {\r\n  content: \"\";\r\n  position: absolute;\r\n  inset: 0;\r\n  border-radius: inherit;\r\n  pointer-events: none;\r\n  opacity: 0;\r\n  transition: opacity .35s ease;\r\n  background: radial-gradient(480px circle at var(--gx,50%) var(--gy,40%), rgba(255,255,255,.65), transparent 58%);\r\n  z-index: 0;\r\n}\r\n.trial-card-common-style > * { position: relative; z-index: 1; }\r\n\r\n.trial-card-common-style.is-hover,\r\n.trial-card-container.is-hover .trial-card-common-style {\r\n  box-shadow:\r\n    0 40px 70px -14px rgba(0,0,0,.28),\r\n    0 18px 36px rgba(102,126,234,.18),\r\n    0 0 0 1px rgba(255,255,255,.45) inset;\r\n  filter: brightness(1.08);\r\n  z-index: 8;\r\n}\r\n.trial-card-common-style.is-hover::before,\r\n.trial-card-container.is-hover .trial-card-common-style::before { opacity: 1; }\r\n\r\n.plan-price {\r\n  display: inline-block;\r\n  transform: translateZ(18px) scale(1);\r\n  transition: transform .4s cubic-bezier(.22,1,.36,1);\r\n  will-change: transform;\r\n}\r\n.trial-card-common-style.is-hover .plan-price,\r\n.trial-card-container.is-hover .plan-price {\r\n  transform: translateZ(48px) scale(1.22);\r\n}\r\n.plan-price.is-boom {\r\n  animation: priceBoom .55s cubic-bezier(.22,1,.36,1);\r\n}\r\n@keyframes priceBoom {\r\n  0% { transform: translateZ(18px) scale(1); }\r\n  45% { transform: translateZ(56px) scale(1.32); }\r\n  100% { transform: translateZ(48px) scale(1.22); }\r\n}\r\n\r\n.buy-btn {\r\n  position: relative;\r\n  overflow: hidden;\r\n  transform: translateZ(28px) scale(1);\r\n  transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, filter .15s ease !important;\r\n  will-change: transform;\r\n}\r\n.buy-btn::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  inset: 0;\r\n  background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.45) 50%, transparent 80%);\r\n  transform: translateX(-150%);\r\n  pointer-events: none;\r\n}\r\n.trial-card-common-style.is-hover .buy-btn,\r\n.trial-card-container.is-hover .buy-btn {\r\n  transform: translateZ(40px) scale(1.1) translateY(-4px);\r\n  box-shadow: 0 18px 36px rgba(0,0,0,.25);\r\n}\r\n.trial-card-common-style.is-hover .buy-btn::after,\r\n.trial-card-container.is-hover .buy-btn::after {\r\n  animation: buySweep .85s cubic-bezier(.22,1,.36,1);\r\n}\r\n@keyframes buySweep { to { transform: translateX(150%); } }\r\n\r\n.buy-btn.is-press {\r\n  transform: translateZ(12px) scale(.88) translateY(2px) !important;\r\n  filter: brightness(.94);\r\n  box-shadow: 0 2px 10px rgba(0,0,0,.22) !important;\r\n  transition-duration: .07s !important;\r\n}\r\n@keyframes buyRing {\r\n  0% { box-shadow: 0 0 0 0 rgba(255,255,255,.6), 0 18px 36px rgba(0,0,0,.25); }\r\n  100% { box-shadow: 0 0 0 22px rgba(255,255,255,0), 0 18px 36px rgba(0,0,0,.25); }\r\n}\r\n.buy-btn.is-ring { animation: buyRing .6s ease-out; }\r\n\r\n\/* ===== Mobile: modern, not flat ===== *\/\r\n@media (max-width: 767px) {\r\n  .trial-card-container {\r\n    position: relative;\r\n    left: auto;\r\n    top: auto;\r\n    transform: none !important;\r\n    margin: 2rem auto 0;\r\n    z-index: 10;\r\n    width: 100%;\r\n    max-width: 420px;\r\n    height: auto;\r\n    opacity: 1 !important;\r\n    pointer-events: auto !important;\r\n    animation: none !important;\r\n  }\r\n  .trial-card-container::after { display: none !important; }\r\n\r\n  .trial-card-container .trial-card-common-style {\r\n    width: 100%;\r\n    height: auto;\r\n    margin: 0 auto;\r\n    animation: trialMobileFloat 4.5s ease-in-out infinite;\r\n    box-shadow:\r\n      0 22px 40px rgba(249,115,22,.18),\r\n      0 8px 16px rgba(0,0,0,.08);\r\n  }\r\n  @keyframes trialMobileFloat {\r\n    0%, 100% { transform: translateY(0) scale(1); }\r\n    50% { transform: translateY(-8px) scale(1.015); }\r\n  }\r\n\r\n  \/* soft luxury border shimmer *\/\r\n  .trial-card-container .trial-card-common-style::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    inset: -2px;\r\n    border-radius: inherit;\r\n    padding: 2px;\r\n    background: linear-gradient(120deg, #fb923c, #f472b6, #a78bfa, #fb923c);\r\n    background-size: 300% 300%;\r\n    animation: trialMobileBorder 7s linear infinite;\r\n    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\r\n    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\r\n    -webkit-mask-composite: xor;\r\n    mask-composite: exclude;\r\n    pointer-events: none;\r\n    z-index: 0;\r\n    opacity: .85;\r\n  }\r\n  @keyframes trialMobileBorder {\r\n    0% { background-position: 0% 50%; }\r\n    100% { background-position: 300% 50%; }\r\n  }\r\n\r\n  .trial-card-container.is-touch .trial-card-common-style {\r\n    animation: none;\r\n    transform: scale(0.97);\r\n    filter: brightness(1.05);\r\n  }\r\n  .trial-card-container.is-touch .plan-price {\r\n    transform: translateZ(24px) scale(1.12);\r\n  }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .animated-card,\r\n  .animate-slide-left,\r\n  .animate-slide-right,\r\n  .animate-slide-up,\r\n  .trial-card-container,\r\n  .trial-card-container .trial-card-common-style { animation: none !important; }\r\n  .trial-card-container {\r\n    opacity: 1 !important;\r\n    pointer-events: auto !important;\r\n    transform: translate(-50%, -50%) !important;\r\n  }\r\n  @media (max-width: 767px) {\r\n    .trial-card-container { transform: none !important; }\r\n  }\r\n  .trial-card-common-style { transform: none !important; }\r\n  .plan-price, .buy-btn { transform: none !important; }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body class=\"bg-gray-50 text-gray-800\">\r\n<section class=\"relative min-h-screen flex items-center justify-center py-16 px-4 overflow-hidden original-animate-background-pan\"\r\n  style=\"background-image: url('https:\/\/japaneseonlineclass.com\/wp-content\/uploads\/2025\/05\/PNG-1-1-1-1.png'); background-repeat: repeat; background-size: auto; background-position: 0% 0%;\"\r\n  aria-labelledby=\"pricing-heading\">\r\n  <div class=\"absolute inset-0 bg-white bg-opacity-50\"><\/div>\r\n  <div class=\"relative z-10 max-w-7xl mx-auto text-center\">\r\n    <a id=\"pricing\" class=\"absolute top-0\"><\/a>\r\n    <h2 id=\"pricing-heading\" class=\"font-advent-pro text-6xl md:text-7xl lg:text-8xl font-extrabold mb-12\r\n                 bg-gradient-to-r from-pink-300 via-purple-300 to-blue-300\r\n                 text-transparent bg-clip-text animate-gradient-x drop-shadow-lg\">\r\n      Choose the perfect plan\r\n    <\/h2>\r\n    <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 p-4\" style=\"perspective:1600px;\">\r\n\r\n      <article class=\"animated-card trial-card-common-style bg-pink-50 border-pink-200\" style=\"animation-delay:0.2s;\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-pink-700\" itemprop=\"name\">One Time 60<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-pink-900 mb-2\" itemprop=\"price\" content=\"40.5\">$40.5<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-pink-600 mb-6\">each time<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">1<\/span> time lesson<\/li>\r\n          <li><span class=\"font-bold\">60<\/span> minutes class<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/28E9AS77l2ZBaEl4he3gk0W\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-pink-500 to-rose-600 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/article>\r\n\r\n      <article class=\"animated-card trial-card-common-style bg-blue-50 border-blue-200\" style=\"animation-delay:0.4s;\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-blue-700\" itemprop=\"name\">Package 60<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-blue-900 mb-2\" itemprop=\"price\" content=\"380.7\">$380.7<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-blue-600 mb-6\">package<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">10<\/span> time lessons package<\/li>\r\n          <li>Each lessons are <span class=\"font-bold\">60<\/span> minutes<\/li>\r\n          <li>Email Support<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/14A14mdvJ2ZB27P2963gk0X\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-blue-500 to-indigo-600 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/article>\r\n\r\n      <article class=\"animated-card trial-card-common-style bg-purple-50 border-purple-200\" style=\"animation-delay:0.6s;\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-purple-700\" itemprop=\"name\">Subscription 60<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-purple-900 mb-2\" itemprop=\"price\" content=\"75\">$75<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-purple-600 mb-6\">each WEEK<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">2<\/span> lessons\/week<\/li>\r\n          <li>Each lessons are <span class=\"font-bold\">60<\/span> minutes<\/li>\r\n          <li>Unlimited Microsoft Teams Text Support<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/28EcN49ftgQrfYF00Y3gk0Y\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-purple-500 to-fuchsia-600 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/article>\r\n\r\n      <article class=\"animated-card trial-card-common-style bg-green-50 border-green-200\" style=\"animation-delay:0.8s;\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-green-700\" itemprop=\"name\">One Time 30<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-green-900 mb-2\" itemprop=\"price\" content=\"23\">$23<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-green-600 mb-6\">each time<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">1<\/span> time lesson<\/li>\r\n          <li><span class=\"font-bold\">30<\/span> minutes class<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/6oU3cuezN43Fh2JcNK3gk0Z\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-green-500 to-emerald-600 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/article>\r\n\r\n      <article class=\"animated-card trial-card-common-style bg-yellow-50 border-yellow-200\" style=\"animation-delay:1.0s;\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-yellow-700\" itemprop=\"name\">Package 30<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-yellow-900 mb-2\" itemprop=\"price\" content=\"216.2\">$216.2<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-yellow-600 mb-6\">package<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">10<\/span> time lessons package<\/li>\r\n          <li>Each lessons are <span class=\"font-bold\">30<\/span> minutes<\/li>\r\n          <li>Email Support<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/7sY3cuajxas3h2J4he3gk10\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-yellow-500 to-amber-600 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/article>\r\n\r\n      <article class=\"animated-card trial-card-common-style bg-cyan-50 border-cyan-200\" style=\"animation-delay:1.2s;\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-cyan-700\" itemprop=\"name\">Package 45<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-cyan-900 mb-2\" itemprop=\"price\" content=\"305.5\">$305.5<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-cyan-600 mb-6\">package<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">10<\/span> time lessons package<\/li>\r\n          <li>Each lessons are <span class=\"font-bold\">45<\/span> minutes<\/li>\r\n          <li>Email Support<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/5kQcN40IX2ZBdQx7tq3gk11\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"trial-card-container\" id=\"trial-card\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\r\n      <div class=\"trial-card-common-style bg-orange-200 border-orange-500\">\r\n        <h3 class=\"text-3xl font-bold mb-4 text-orange-800\" itemprop=\"name\">Trial 30<\/h3>\r\n        <p class=\"plan-price text-5xl font-extrabold text-orange-900 mb-2\" itemprop=\"price\" content=\"15\">$15<\/p>\r\n        <meta itemprop=\"priceCurrency\" content=\"USD\">\r\n        <p class=\"text-xl font-semibold text-orange-600 mb-6\">one-time price<\/p>\r\n        <ul class=\"text-lg text-gray-700 space-y-2 mb-8 text-center\">\r\n          <li><span class=\"font-bold\">1<\/span> time trial lesson<\/li>\r\n          <li><span class=\"font-bold\">30<\/span> minutes class<\/li>\r\n          <li>Get the feel of the lesson<\/li>\r\n        <\/ul>\r\n        <a href=\"https:\/\/buy.stripe.com\/4gM8wO2R5gQrbIpbJG3gk0S\" target=\"_blank\" rel=\"noopener\" class=\"w-full\" itemprop=\"url\">\r\n          <button type=\"button\" class=\"buy-btn bg-gradient-to-r from-orange-600 to-red-700 text-white font-extrabold py-4 px-8 rounded-full shadow-lg text-xl w-full\">Buy Now<\/button>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n  var calm = matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n  var fine = matchMedia('(hover: hover) and (pointer: fine)').matches;\r\n  var mobile = matchMedia('(max-width: 767px)').matches;\r\n\r\n  document.querySelectorAll('.animated-card').forEach(function (card, index) {\r\n    var cls = index % 3 === 0 ? 'animate-slide-left' : index % 3 === 1 ? 'animate-slide-up' : 'animate-slide-right';\r\n    card.classList.add(cls);\r\n  });\r\n\r\n  var wrap = document.getElementById('trial-card');\r\n  var inner = wrap ? wrap.querySelector('.trial-card-common-style') : null;\r\n  var timers = [];\r\n  var hovering = false;\r\n\r\n  function clearTimers() {\r\n    timers.forEach(clearTimeout);\r\n    timers = [];\r\n  }\r\n  function later(fn, ms) {\r\n    var id = setTimeout(fn, ms);\r\n    timers.push(id);\r\n    return id;\r\n  }\r\n  function setStage(name) {\r\n    if (!wrap) return;\r\n    wrap.classList.remove('is-enter', 'is-idle', 'is-exit', 'is-wait', 'is-interactive', 'is-hover', 'is-tilting');\r\n    if (inner) inner.classList.remove('is-hover');\r\n    wrap.style.transform = '';\r\n    wrap.classList.add('is-' + name);\r\n    if (name === 'idle') wrap.classList.add('is-interactive');\r\n  }\r\n\r\n  function runEnter() {\r\n    if (hovering) return;\r\n    setStage('enter');\r\n    later(function () {\r\n      if (hovering) return;\r\n      setStage('idle');\r\n      \/* shorter stay *\/\r\n      later(function () {\r\n        if (hovering) return;\r\n        runExit();\r\n      }, 3600);\r\n    }, 2700);\r\n  }\r\n\r\n  function runExit() {\r\n    setStage('exit');\r\n    later(function () {\r\n      setStage('wait');\r\n      \/* longer absence *\/\r\n      later(runEnter, 2800);\r\n    }, 2150);\r\n  }\r\n\r\n  function armTrialHover() {\r\n    if (!wrap || !inner) return;\r\n    var price = inner.querySelector('.plan-price');\r\n    var btn = inner.querySelector('.buy-btn');\r\n\r\n    \/* desktop 3D hover *\/\r\n    if (fine && !calm && !mobile) {\r\n      wrap.addEventListener('pointerenter', function () {\r\n        if (!wrap.classList.contains('is-idle') && !wrap.classList.contains('is-interactive')) return;\r\n        hovering = true;\r\n        clearTimers();\r\n        if (price) {\r\n          price.classList.remove('is-boom');\r\n          void price.offsetWidth;\r\n          price.classList.add('is-boom');\r\n        }\r\n      });\r\n      wrap.addEventListener('pointermove', function (e) {\r\n        if (!wrap.classList.contains('is-interactive')) return;\r\n        var r = wrap.getBoundingClientRect();\r\n        var x = e.clientX - r.left;\r\n        var y = e.clientY - r.top;\r\n        var ry = ((x \/ r.width) - 0.5) * 18;\r\n        var rx = (0.5 - (y \/ r.height)) * 14;\r\n        wrap.classList.add('is-hover', 'is-tilting');\r\n        inner.classList.add('is-hover');\r\n        inner.style.setProperty('--gx', x + 'px');\r\n        inner.style.setProperty('--gy', y + 'px');\r\n        wrap.style.transform =\r\n          'translate(-50%, -50%) perspective(1100px) rotateX(' + rx.toFixed(2) + 'deg) rotateY(' + ry.toFixed(2) + 'deg) translateY(-16px) scale(1.08)';\r\n      });\r\n      wrap.addEventListener('pointerleave', function () {\r\n        hovering = false;\r\n        wrap.classList.remove('is-hover', 'is-tilting');\r\n        inner.classList.remove('is-hover');\r\n        wrap.style.transform = '';\r\n        inner.style.removeProperty('--gx');\r\n        inner.style.removeProperty('--gy');\r\n        if (wrap.classList.contains('is-interactive')) {\r\n          setStage('idle');\r\n          later(function () {\r\n            if (!hovering) runExit();\r\n          }, 2400);\r\n        }\r\n      });\r\n    }\r\n\r\n    \/* mobile touch press *\/\r\n    if (mobile && !calm) {\r\n      wrap.addEventListener('pointerdown', function () {\r\n        wrap.classList.add('is-touch');\r\n        if (price) {\r\n          price.classList.remove('is-boom');\r\n          void price.offsetWidth;\r\n          price.classList.add('is-boom');\r\n        }\r\n      });\r\n      ['pointerup', 'pointerleave', 'pointercancel'].forEach(function (ev) {\r\n        wrap.addEventListener(ev, function () { wrap.classList.remove('is-touch'); });\r\n      });\r\n    }\r\n\r\n    if (btn) {\r\n      btn.addEventListener('pointerdown', function (e) {\r\n        e.stopPropagation();\r\n        btn.classList.add('is-press');\r\n      });\r\n      ['pointerup', 'pointerleave', 'pointercancel'].forEach(function (ev) {\r\n        btn.addEventListener(ev, function () { btn.classList.remove('is-press'); });\r\n      });\r\n      btn.addEventListener('click', function () {\r\n        btn.classList.remove('is-ring');\r\n        void btn.offsetWidth;\r\n        btn.classList.add('is-ring');\r\n        if (window.JOFX && window.JOFX.burst) {\r\n          var r = btn.getBoundingClientRect();\r\n          window.JOFX.burst(r.left + r.width \/ 2, r.top + r.height \/ 2, 8);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  if (wrap) {\r\n    armTrialHover();\r\n    if (calm) {\r\n      setStage('idle');\r\n    } else if (mobile) {\r\n      \/* mobile: no fly loop \u2014 float + border already in CSS *\/\r\n      wrap.classList.add('is-interactive');\r\n      wrap.style.opacity = '1';\r\n    } else {\r\n      later(runEnter, 900);\r\n    }\r\n  }\r\n\r\n  document.querySelectorAll('.animated-card.trial-card-common-style').forEach(function (card) {\r\n    var price = card.querySelector('.plan-price');\r\n    var btn = card.querySelector('.buy-btn');\r\n\r\n    if (fine && !calm) {\r\n      card.addEventListener('pointermove', function (e) {\r\n        var r = card.getBoundingClientRect();\r\n        var x = e.clientX - r.left;\r\n        var y = e.clientY - r.top;\r\n        var ry = ((x \/ r.width) - 0.5) * 18;\r\n        var rx = (0.5 - (y \/ r.height)) * 14;\r\n        card.classList.add('is-hover', 'is-tilting');\r\n        card.style.setProperty('--gx', x + 'px');\r\n        card.style.setProperty('--gy', y + 'px');\r\n        card.style.transform =\r\n          'perspective(1100px) rotateX(' + rx.toFixed(2) + 'deg) rotateY(' + ry.toFixed(2) + 'deg) translateY(-16px) scale(1.08)';\r\n      });\r\n      card.addEventListener('pointerleave', function () {\r\n        card.classList.remove('is-hover', 'is-tilting');\r\n        card.style.transform = '';\r\n        card.style.removeProperty('--gx');\r\n        card.style.removeProperty('--gy');\r\n      });\r\n      card.addEventListener('pointerenter', function () {\r\n        if (!price) return;\r\n        price.classList.remove('is-boom');\r\n        void price.offsetWidth;\r\n        price.classList.add('is-boom');\r\n      });\r\n    } else {\r\n      card.addEventListener('pointerenter', function () { card.classList.add('is-hover'); });\r\n      card.addEventListener('pointerleave', function () { card.classList.remove('is-hover'); });\r\n    }\r\n\r\n    if (!btn) return;\r\n    btn.addEventListener('pointerdown', function (e) {\r\n      e.stopPropagation();\r\n      btn.classList.add('is-press');\r\n    });\r\n    ['pointerup', 'pointerleave', 'pointercancel'].forEach(function (ev) {\r\n      btn.addEventListener(ev, function () { btn.classList.remove('is-press'); });\r\n    });\r\n    btn.addEventListener('click', function () {\r\n      btn.classList.remove('is-ring');\r\n      void btn.offsetWidth;\r\n      btn.classList.add('is-ring');\r\n      if (window.JOFX && window.JOFX.burst) {\r\n        var r = btn.getBoundingClientRect();\r\n        window.JOFX.burst(r.left + r.width \/ 2, r.top + r.height \/ 2, 8);\r\n      }\r\n    });\r\n  });\r\n});\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5095a1a7 animated-slow elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"5095a1a7\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1cc50726 elementor-invisible\" data-id=\"1cc50726\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;rotateInUpLeft&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-43fb477d elementor-widget elementor-widget-html\" data-id=\"43fb477d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>How It Works &amp; FAQ | JapaneseOnlineClass.com<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;600;700&family=Noto+Sans+JP:wght@400;500&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n@property --jo5-p{syntax:'<number>';inherits:true;initial-value:0}\r\n#jo-guide,#jo-guide *,#jo-guide *::before,#jo-guide *::after{box-sizing:border-box}\r\n#jo-guide{\r\n  --ease:cubic-bezier(.22,1,.36,1);--ink:#2c3e50;--soft:#64748b;--violet:#667eea;--plum:#764ba2;--rose:#f093fb;\r\n  position:relative;isolation:isolate;overflow:hidden;\r\n  width:100vw!important;max-width:none!important;margin:0!important;left:50%;right:50%;margin-left:-50vw!important;margin-right:-50vw!important;padding:0!important;\r\n  font-family:'Noto Sans JP',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;\r\n  background:linear-gradient(165deg,#fdfaff 0%,#f7f3ff 35%,#fff7fb 70%,#fffdfd 100%)\r\n}\r\n.jo5-orb{position:absolute;z-index:0;border-radius:50%;pointer-events:none;filter:blur(72px);will-change:transform}\r\n.jo5-orb-a{width:52vmax;height:52vmax;left:-16vmax;top:-12vmax;background:radial-gradient(circle,rgba(240,147,251,.28),transparent 66%);animation:jo5OrbA 32s ease-in-out infinite alternate}\r\n.jo5-orb-b{width:50vmax;height:50vmax;right:-18vmax;top:30%;background:radial-gradient(circle,rgba(102,126,234,.26),transparent 66%);animation:jo5OrbB 38s ease-in-out infinite alternate}\r\n.jo5-orb-c{width:44vmax;height:44vmax;left:18%;bottom:-16vmax;background:radial-gradient(circle,rgba(255,214,186,.32),transparent 66%);animation:jo5OrbC 34s ease-in-out infinite alternate}\r\n@keyframes jo5OrbA{to{transform:translate(8vmax,7vmax) scale(1.08)}}\r\n@keyframes jo5OrbB{to{transform:translate(-7vmax,9vmax) scale(1.1)}}\r\n@keyframes jo5OrbC{to{transform:translate(7vmax,-7vmax) scale(1.12)}}\r\n#jo-guide::after{content:\"\";position:absolute;left:0;right:0;top:0;height:1px;z-index:4;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(201,184,224,.85),rgba(240,196,208,.85),rgba(184,212,240,.85),transparent)}\r\n.jo5-inner{position:relative;z-index:2;max-width:1080px;margin:0 auto;padding:clamp(80px,10vw,130px) clamp(18px,4vw,40px) clamp(72px,9vw,120px)}\r\n.jo5-title{margin:0;text-align:center;font-family:'Advent Pro',sans-serif;font-size:clamp(2.5rem,6vw,4.2rem);font-weight:300;letter-spacing:2px;line-height:1.1;text-transform:uppercase;position:relative;\r\n  background-image:linear-gradient(90deg,#667eea,#764ba2,#f093fb,#667eea);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:jo5Flow 9s linear infinite}\r\n@keyframes jo5Flow{to{background-position-x:200%}}\r\n.jo5-title::after{content:\"\";position:absolute;left:50%;bottom:-14px;translate:-50% 0;width:100px;height:3px;border-radius:2px;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);box-shadow:0 2px 10px rgba(102,126,234,.3)}\r\n\r\n.jo5-how{margin-bottom:clamp(80px,9vw,120px)}\r\n.jo5-steps{list-style:none;margin:clamp(52px,7vw,80px) 0 0;padding:0;position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,26px);perspective:1400px;--jo5-p:0}\r\n.jo5-line{position:absolute;left:16.66%;right:16.66%;top:27px;height:4px;border-radius:4px;background:rgba(102,126,234,.14);pointer-events:none}\r\n.jo5-line::after{content:\"\";position:absolute;inset:0;border-radius:inherit;transform-origin:left;transform:scaleX(var(--jo5-p));background:linear-gradient(90deg,#667eea,#764ba2,#f093fb);box-shadow:0 0 12px rgba(240,147,251,.35);transition:transform .5s var(--ease)}\r\n.jo5-traveler{position:absolute;left:calc(16.66% + var(--jo5-p)*66.68%);top:29px;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;pointer-events:none;z-index:5;opacity:0;background:radial-gradient(circle at 35% 35%,#fff,#f093fb 45%,#764ba2);box-shadow:0 0 14px rgba(240,147,251,.85);transition:left .5s var(--ease),opacity .3s}\r\n.jo5-steps.is-live .jo5-traveler{opacity:1}\r\n.jo5-steps[data-active=\"-1\"] .jo5-traveler{opacity:0}\r\n.jo5-steps[data-active=\"-1\"] .jo5-line::after{transform:scaleX(0)}\r\n\r\n.jo5-step{position:relative;display:flex;flex-direction:column;align-items:center}\r\n.jo5-node{position:relative;z-index:4;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font:700 1.3rem\/1 'Advent Pro',sans-serif;color:#8b95b8;background:#fff;border:2px solid rgba(102,126,234,.25);box-shadow:0 6px 18px rgba(102,126,234,.12);transition:background .35s var(--ease),color .25s,border-color .25s,transform .4s var(--ease),box-shadow .35s;cursor:pointer;padding:0}\r\n.jo5-node svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .35s var(--ease);position:absolute;opacity:0}\r\n.jo5-node .jo5-num{transition:opacity .25s,transform .3s var(--ease);position:relative;z-index:1}\r\n.jo5-step.is-on .jo5-node{background:linear-gradient(135deg,#667eea,#764ba2 55%,#f093fb);color:transparent;border-color:transparent;transform:scale(1.12);box-shadow:0 12px 28px rgba(118,75,162,.4)}\r\n.jo5-step.is-on .jo5-node .jo5-num{opacity:0;transform:scale(.4)}\r\n.jo5-step.is-on .jo5-node svg{opacity:1;stroke-dashoffset:0}\r\n.jo5-step.is-on .jo5-node.is-pop{animation:jo5NodePop .5s var(--ease)}\r\n@keyframes jo5NodePop{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1.12)}}\r\n.jo5-step.is-on .jo5-node::after{content:\"\";position:absolute;inset:-5px;border-radius:50%;border:2px solid rgba(240,147,251,.55);animation:jo5Ping .9s var(--ease) both}\r\n@keyframes jo5Ping{from{transform:scale(.85);opacity:1}to{transform:scale(1.75);opacity:0}}\r\n.jo5-node:focus-visible{outline:2px solid #8b5cf6;outline-offset:3px}\r\n\r\n.jo5-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;width:100%;flex:1;margin-top:20px;padding:26px 22px 22px;border-radius:24px;text-align:left;text-decoration:none;color:inherit;\r\n  background:rgba(255,255,255,.93);border:1px solid rgba(255,255,255,.98);box-shadow:0 16px 36px rgba(60,40,120,.1);\r\n  transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));\r\n  transition:transform .4s var(--ease),box-shadow .4s var(--ease),opacity .35s;cursor:pointer;-webkit-tap-highlight-color:transparent}\r\n.jo5-card::before{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;transition:opacity .3s;\r\n  background:radial-gradient(240px circle at var(--gx,50%) var(--gy,35%),#8b5cf6,#f093fb 50%,transparent 75%);\r\n  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}\r\n.jo5-card::after{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,35%),rgba(255,255,255,.92),transparent 65%)}\r\n@media (hover:hover){\r\n  a.jo5-card:hover,a.jo5-card.is-focus{\r\n    transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-14px) translateZ(24px) scale(1.05);\r\n    box-shadow:0 34px 64px rgba(60,40,120,.24),0 0 0 1px rgba(167,139,250,.16)\r\n  }\r\n  a.jo5-card:hover::before,a.jo5-card:hover::after,a.jo5-card.is-focus::before,a.jo5-card.is-focus::after{opacity:1}\r\n  a.jo5-card:hover .jo5-go,a.jo5-card.is-focus .jo5-go{gap:12px;color:#667eea}\r\n  a.jo5-card:hover .jo5-go svg,a.jo5-card.is-focus .jo5-go svg{transform:translateX(8px)}\r\n}\r\na.jo5-card.is-press,a.jo5-card:active{transform:translateY(-2px) scale(.97)!important;transition-duration:.08s!important}\r\na.jo5-card:focus-visible{outline:2px solid #8b5cf6;outline-offset:4px}\r\n.jo5-steps.is-live .jo5-step:not(.is-on) .jo5-card{opacity:.72}\r\n.jo5-steps.is-live .jo5-step.is-on .jo5-card{opacity:1}\r\n\r\n.jo5-tag{font:700 .76rem\/1 'Advent Pro',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--violet);transform:translateZ(14px)}\r\n.jo5-ico{display:block;width:72px;height:72px;margin:14px 0 12px;transform:translateZ(40px) rotateX(var(--ix,0deg)) rotateY(var(--iy,0deg));transition:transform .25s var(--ease);will-change:transform;transform-style:preserve-3d}\r\n.jo5-ico svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 8px 14px rgba(118,75,162,.18));transition:filter .3s}\r\n.jo5-ico .s{fill:none;stroke:url(#jo5-g);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}\r\n.jo5-ico .f{fill:url(#jo5-g);opacity:0;transition:opacity .4s .3s}\r\n.jo5-steps.jo5-in .jo5-ico .s{animation:jo5Draw 1.1s var(--ease) forwards;animation-delay:calc(var(--i)*140ms + .2s)}\r\n.jo5-steps.jo5-in .jo5-ico .f{opacity:1}\r\n.jo5-steps.jo5-in .jo5-step:not(.is-on) .jo5-ico{animation:jo5IcoFloat 3.4s ease-in-out calc(var(--i)*.3s) infinite}\r\n.jo5-steps.jo5-in .jo5-step.is-on .jo5-ico{animation:jo5IcoDance .9s var(--ease)}\r\n@keyframes jo5IcoFloat{0%,100%{transform:translateZ(40px) translateY(0)}50%{transform:translateZ(40px) translateY(-7px)}}\r\n@keyframes jo5IcoDance{\r\n  0%{transform:translateZ(40px) scale(1) rotate(0)}\r\n  30%{transform:translateZ(70px) scale(1.2) rotate(-10deg)}\r\n  60%{transform:translateZ(55px) scale(1.12) rotate(8deg)}\r\n  100%{transform:translateZ(48px) scale(1.1) rotate(0)}\r\n}\r\n@keyframes jo5Draw{to{stroke-dashoffset:0}}\r\n.jo5-txt{margin:0;font:700 clamp(1.25rem,2.3vw,1.45rem)\/1.3 'Advent Pro',sans-serif;letter-spacing:.2px;color:#2f3648;transform:translateZ(14px)}\r\n.jo5-sub{margin:8px 0 0;font-size:.9rem;line-height:1.5;color:#64748b;transform:translateZ(12px)}\r\n.jo5-go{margin-top:auto;padding-top:18px;display:inline-flex;align-items:center;gap:8px;font:700 .92rem 'Advent Pro',sans-serif;letter-spacing:.05em;color:var(--plum);transform:translateZ(18px);transition:gap .3s,color .3s}\r\n.jo5-go svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}\r\n.jo5-wait{display:inline-flex;gap:4px;margin-left:4px;vertical-align:middle}\r\n.jo5-wait i{width:5px;height:5px;border-radius:50%;background:#f093fb;animation:jo5Dot 1.15s ease-in-out infinite}\r\n.jo5-wait i:nth-child(2){animation-delay:.15s}.jo5-wait i:nth-child(3){animation-delay:.3s}\r\n@keyframes jo5Dot{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-4px);opacity:1}}\r\n\r\n#jo-guide.jo5-js .jo5-step{opacity:0}\r\n#jo-guide .jo5-steps.jo5-in .jo5-step{opacity:1;animation:jo5Rise .9s var(--ease) calc(var(--i)*110ms) backwards}\r\n@keyframes jo5Rise{from{opacity:0;transform:perspective(1000px) rotateX(14deg) translateY(36px) scale(.96);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}\r\n\r\n\/* FAQ *\/\r\n.jo5-faq{margin-bottom:clamp(52px,7vw,88px)}\r\n.jo5-acc{max-width:880px;margin:clamp(40px,5vw,56px) auto 0;display:grid;gap:12px}\r\n.jo5-q{position:relative;border-radius:18px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.98);box-shadow:0 8px 22px rgba(60,40,120,.07);transition:box-shadow .4s var(--ease),transform .4s var(--ease),background .3s,opacity .3s;overflow:hidden}\r\n.jo5-q::before{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;transition:opacity .35s;\r\n  background:linear-gradient(120deg,#667eea,#f093fb,#f5576c);\r\n  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}\r\n.jo5-q.is-open{background:#fff;box-shadow:0 22px 48px rgba(102,126,234,.22);transform:scale(1.012)}\r\n.jo5-q.is-open::before{opacity:1}\r\n.jo5-acc:has(.jo5-q.is-open) .jo5-q:not(.is-open){opacity:.6}\r\n.jo5-q .jo5-sum{list-style:none;position:relative;display:flex;align-items:center;gap:14px;padding:20px 20px;cursor:pointer;border-radius:18px;user-select:none;-webkit-tap-highlight-color:transparent;border:0;background:transparent;width:100%;text-align:left;font:inherit;color:inherit}\r\n.jo5-q .jo5-sum::before{content:\"\";position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(320px circle at var(--gx,18%) var(--gy,50%),rgba(240,147,251,.22),rgba(102,126,234,.08) 50%,transparent 72%)}\r\n@media (hover:hover){.jo5-q:hover .jo5-sum::before{opacity:1}.jo5-q:not(.is-open):hover{transform:translateY(-3px) scale(1.01);box-shadow:0 14px 32px rgba(60,40,120,.12)}}\r\n.jo5-q .jo5-sum.is-press{transform:scale(.985)!important}\r\n.jo5-q .jo5-sum:focus-visible{outline:2px solid #8b5cf6;outline-offset:-2px}\r\n.jo5-qn{flex:0 0 auto;width:2.4ch;font:300 1.55rem\/1 'Advent Pro',sans-serif;letter-spacing:1px;background:linear-gradient(135deg,#667eea,#f093fb);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:transform .4s var(--ease)}\r\n.jo5-q.is-open .jo5-qn{transform:scale(1.18)}\r\n.jo5-qt{flex:1;font:500 1.05rem\/1.4 'Noto Sans JP',sans-serif;color:#2c3e50}\r\n.jo5-qi{flex:0 0 auto;position:relative;width:32px;height:32px;border-radius:50%;background:rgba(102,126,234,.1);transition:background .35s,transform .5s var(--ease)}\r\n.jo5-qi::before,.jo5-qi::after{content:\"\";position:absolute;left:50%;top:50%;width:13px;height:2.2px;margin:-1.1px 0 0 -6.5px;border-radius:2px;background:#667eea;transition:transform .5s var(--ease),background .3s}\r\n.jo5-qi::after{transform:rotate(90deg)}\r\n.jo5-q.is-open .jo5-qi{background:linear-gradient(135deg,#667eea,#f093fb);transform:rotate(180deg)}\r\n.jo5-q.is-open .jo5-qi::before,.jo5-q.is-open .jo5-qi::after{background:#fff}\r\n.jo5-q.is-open .jo5-qi::after{transform:rotate(0)}\r\n.jo5-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}\r\n.jo5-q.is-open .jo5-a{grid-template-rows:1fr}\r\n.jo5-ai{overflow:hidden;min-height:0}\r\n.jo5-ai-inner{padding:0 20px 22px calc(20px + 2.4ch + 14px);font-size:.96rem;line-height:1.75;color:#4a5568;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}\r\n.jo5-q.is-open .jo5-ai-inner{opacity:1;transform:none;transition-delay:.08s}\r\n.jo5-pay{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}\r\n.jo5-pay li{display:flex;align-items:flex-start;gap:10px}\r\n.jo5-pay svg{flex:0 0 auto;width:18px;height:18px;margin-top:3px;fill:none;stroke:#34b38a;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}\r\n\r\n.jo5-contact{text-align:center}\r\n.jo5-cta{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:12px;padding:18px 40px;border-radius:999px;text-decoration:none;color:#fff;font:700 1.2rem\/1 'Advent Pro',sans-serif;letter-spacing:.08em;text-transform:uppercase;\r\n  background:linear-gradient(135deg,#667eea,#764ba2 55%,#f093fb);box-shadow:0 14px 32px rgba(118,75,162,.34),inset 0 1px 0 rgba(255,255,255,.35);\r\n  translate:var(--bx,0) var(--by,0);transition:transform .4s var(--ease),box-shadow .4s,letter-spacing .4s,translate .25s ease-out}\r\n.jo5-cta::after{content:\"\";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);transform:translateX(-140%);animation:jo5Sheen 5s ease-in-out 2s infinite}\r\n@keyframes jo5Sheen{0%,65%{transform:translateX(-140%)}100%{transform:translateX(140%)}}\r\n.jo5-cta svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease)}\r\n@media (hover:hover){.jo5-cta:hover{transform:translateY(-5px) scale(1.04);letter-spacing:.12em;box-shadow:0 22px 44px rgba(118,75,162,.44),0 0 0 7px rgba(240,147,251,.12)}.jo5-cta:hover svg{transform:translate(6px,-4px) rotate(-10deg)}}\r\n.jo5-cta.is-press,.jo5-cta:active{transform:scale(.94)!important;transition-duration:.08s!important}\r\n.jo5-cta:focus-visible{outline:2px solid #8b5cf6;outline-offset:4px}\r\n#jo-guide.jo5-off *,#jo-guide.jo5-off .jo5-orb{animation-play-state:paused!important}\r\n\r\n@media (max-width:900px){\r\n  .jo5-steps{grid-template-columns:1fr;gap:16px;perspective:none}\r\n  .jo5-line{left:26px;right:auto;top:27px;bottom:27px;width:4px;height:auto}\r\n  .jo5-line::after{transform-origin:top;transform:scaleY(var(--jo5-p))}\r\n  .jo5-steps[data-active=\"-1\"] .jo5-line::after{transform:scaleY(0)}\r\n  .jo5-traveler{left:28px;top:calc(27px + var(--jo5-p)*(100% - 54px));margin:-8px 0 0 -8px;transition:top .5s var(--ease),opacity .3s}\r\n  .jo5-step{flex-direction:row;align-items:flex-start;gap:14px}\r\n  .jo5-card{margin-top:0}\r\n  .jo5-ico{width:56px;height:56px;margin:8px 0 10px}\r\n  @media (hover:hover){a.jo5-card:hover,a.jo5-card.is-focus{transform:translateY(-8px) scale(1.02)!important}}\r\n}\r\n@media (max-width:600px){\r\n  .jo5-qt{font-size:.98rem}\r\n  .jo5-q .jo5-sum{padding:16px 14px;gap:10px}\r\n  .jo5-ai-inner{padding:0 14px 18px 14px}\r\n  .jo5-cta{padding:16px 30px;font-size:1.08rem}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  #jo-guide *,.jo5-orb{animation:none!important}\r\n  #jo-guide.jo5-js .jo5-step{opacity:1}\r\n  .jo5-ico .s{stroke-dashoffset:0}\r\n  .jo5-ico .f{opacity:1}\r\n  .jo5-line::after,.jo5-traveler,.jo5-a,.jo5-ai-inner{transition:none!important}\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<section id=\"jo-guide\" aria-label=\"How booking works, frequently asked questions and contact\">\r\n  <svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\r\n    <defs>\r\n      <linearGradient id=\"jo5-g\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#667eea\"\/><stop offset=\".55\" stop-color=\"#764ba2\"\/><stop offset=\"1\" stop-color=\"#f093fb\"\/><\/linearGradient>\r\n    <\/defs>\r\n  <\/svg>\r\n  <div class=\"jo5-orb jo5-orb-a\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo5-orb jo5-orb-b\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo5-orb jo5-orb-c\" aria-hidden=\"true\"><\/div>\r\n\r\n  <div class=\"jo5-inner\">\r\n    <div id=\"how-it-works\" class=\"jo5-how\">\r\n      <h2 class=\"jo5-title\">HOW IT WORKS<\/h2>\r\n      <ol class=\"jo5-steps is-live\" id=\"jo5-steps\" data-active=\"-1\" role=\"list\">\r\n        <span class=\"jo5-line\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"jo5-traveler\" aria-hidden=\"true\"><\/span>\r\n\r\n        <li class=\"jo5-step\" style=\"--i:0\" data-step=\"0\">\r\n          <button type=\"button\" class=\"jo5-node\" aria-label=\"Step 1\"><span class=\"jo5-num\">1<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/button>\r\n          <a class=\"jo5-card\" href=\"#pricing\">\r\n            <span class=\"jo5-tag\">Step 1<\/span>\r\n            <span class=\"jo5-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 64 64\"><path class=\"s\" pathLength=\"1\" d=\"M13 22h38l-3 32H16z\"\/><path class=\"s\" pathLength=\"1\" d=\"M23 22v-4a9 9 0 0 1 18 0v4\"\/><path class=\"s\" pathLength=\"1\" d=\"M26 33c1.5 3 3.5 4.5 6 4.5s4.5-1.5 6-4.5\"\/><\/svg><\/span>\r\n            <p class=\"jo5-txt\">Buy a plan<\/p>\r\n            <p class=\"jo5-sub\">Choose your plan and check out securely.<\/p>\r\n            <span class=\"jo5-go\">Go to plans<svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <li class=\"jo5-step\" style=\"--i:1\" data-step=\"1\">\r\n          <button type=\"button\" class=\"jo5-node\" aria-label=\"Step 2\"><span class=\"jo5-num\">2<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/button>\r\n          <a class=\"jo5-card\" href=\"#scheduling\">\r\n            <span class=\"jo5-tag\">Step 2<\/span>\r\n            <span class=\"jo5-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 64 64\"><rect class=\"s\" pathLength=\"1\" x=\"10\" y=\"14\" width=\"44\" height=\"40\" rx=\"7\"\/><path class=\"s\" pathLength=\"1\" d=\"M10 28h44M22 8v10M42 8v10\"\/><circle class=\"f\" cx=\"42\" cy=\"42\" r=\"5\"\/><\/svg><\/span>\r\n            <p class=\"jo5-txt\">Book a time<\/p>\r\n            <p class=\"jo5-sub\">Pick a convenient slot from the schedule.<\/p>\r\n            <span class=\"jo5-go\">Go to schedule<svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <li class=\"jo5-step\" style=\"--i:2\" data-step=\"2\">\r\n          <button type=\"button\" class=\"jo5-node\" aria-label=\"Step 3\"><span class=\"jo5-num\">3<\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><\/button>\r\n          <a class=\"jo5-card\" href=\"mailto:hello@japaneseonlineclass.com\">\r\n            <span class=\"jo5-tag\">Step 3<\/span>\r\n            <span class=\"jo5-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 64 64\"><rect class=\"s\" pathLength=\"1\" x=\"8\" y=\"14\" width=\"48\" height=\"36\" rx=\"7\"\/><path class=\"s\" pathLength=\"1\" d=\"M10 20l22 17 22-17\"\/><path class=\"s\" pathLength=\"1\" d=\"M22 40l6 6 12-14\"\/><\/svg><\/span>\r\n            <p class=\"jo5-txt\">Wait for confirmation<\/p>\r\n            <p class=\"jo5-sub\">We email you soon. When it arrives, you&rsquo;re all set. <span class=\"jo5-wait\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/span><\/p>\r\n            <span class=\"jo5-go\">Email us<svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span>\r\n          <\/a>\r\n        <\/li>\r\n      <\/ol>\r\n    <\/div>\r\n\r\n    <div id=\"faq-section\" class=\"jo5-faq\">\r\n      <h2 class=\"jo5-title\">FAQ<\/h2>\r\n      <div class=\"jo5-acc\" id=\"jo5-acc\" role=\"list\">\r\n        <div class=\"jo5-q\" role=\"listitem\">\r\n          <button type=\"button\" class=\"jo5-sum\" aria-expanded=\"false\">\r\n            <span class=\"jo5-qn\" aria-hidden=\"true\">01<\/span>\r\n            <span class=\"jo5-qt\">What happens if I need to reschedule classes?<\/span>\r\n            <span class=\"jo5-qi\" aria-hidden=\"true\"><\/span>\r\n          <\/button>\r\n          <div class=\"jo5-a\" hidden><div class=\"jo5-ai\"><div class=\"jo5-ai-inner\">Don&rsquo;t worry. We are quite flexible. If you need to change the day or time of your class, please give us a notice in 2 or more business days in advance.<\/div><\/div><\/div>\r\n        <\/div>\r\n        <div class=\"jo5-q\" role=\"listitem\">\r\n          <button type=\"button\" class=\"jo5-sum\" aria-expanded=\"false\">\r\n            <span class=\"jo5-qn\" aria-hidden=\"true\">02<\/span>\r\n            <span class=\"jo5-qt\">What platforms do you support for online sessions?<\/span>\r\n            <span class=\"jo5-qi\" aria-hidden=\"true\"><\/span>\r\n          <\/button>\r\n          <div class=\"jo5-a\" hidden><div class=\"jo5-ai\"><div class=\"jo5-ai-inner\">We offer lessons via Microsoft Teams, Google Meet, and Zoom to ensure flexibility and ease of access. These platforms do not require any additional installations, and you can use them seamlessly from your browser or app. If you experience any difficulties, please let us know\u2014we&rsquo;re happy to help troubleshoot or explore alternative solutions.<\/div><\/div><\/div>\r\n        <\/div>\r\n        <div class=\"jo5-q\" role=\"listitem\">\r\n          <button type=\"button\" class=\"jo5-sum\" aria-expanded=\"false\">\r\n            <span class=\"jo5-qn\" aria-hidden=\"true\">03<\/span>\r\n            <span class=\"jo5-qt\">How can I learn Japanese online?<\/span>\r\n            <span class=\"jo5-qi\" aria-hidden=\"true\"><\/span>\r\n          <\/button>\r\n          <div class=\"jo5-a\" hidden><div class=\"jo5-ai\"><div class=\"jo5-ai-inner\">We provide private Japanese lessons online to help you learn and improve your skills in Japanese. Whether you&rsquo;re a beginner or already have studied Japanese in the past, 2-3 sessions a week will help you reach your objectives in Japanese. Our Japanese tutors go at your pace, work on topics based on your needs and objectives.<\/div><\/div><\/div>\r\n        <\/div>\r\n        <div class=\"jo5-q\" role=\"listitem\">\r\n          <button type=\"button\" class=\"jo5-sum\" aria-expanded=\"false\">\r\n            <span class=\"jo5-qn\" aria-hidden=\"true\">04<\/span>\r\n            <span class=\"jo5-qt\">Do I need to prepare before the first class?<\/span>\r\n            <span class=\"jo5-qi\" aria-hidden=\"true\"><\/span>\r\n          <\/button>\r\n          <div class=\"jo5-a\" hidden><div class=\"jo5-ai\"><div class=\"jo5-ai-inner\">Let us know your aim for learning Japanese. What is your true purpose of learning Japanese? Having clear goal mobilizes your focus toward actionable behavior. If you are not absolute beginner, tell us your struggles, and prepare them before the class. It also helps us to pick up your current level and we can work on your weaknesses to turn into your strength.<\/div><\/div><\/div>\r\n        <\/div>\r\n        <div class=\"jo5-q\" role=\"listitem\">\r\n          <button type=\"button\" class=\"jo5-sum\" aria-expanded=\"false\">\r\n            <span class=\"jo5-qn\" aria-hidden=\"true\">05<\/span>\r\n            <span class=\"jo5-qt\">How to pay?<\/span>\r\n            <span class=\"jo5-qi\" aria-hidden=\"true\"><\/span>\r\n          <\/button>\r\n          <div class=\"jo5-a\" hidden><div class=\"jo5-ai\"><div class=\"jo5-ai-inner\">We accept the following forms of payment:\r\n            <ul class=\"jo5-pay\" role=\"list\">\r\n              <li><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><span>Credit Card<\/span><\/li>\r\n              <li><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12.5l4.2 4.2L19 7\"\/><\/svg><span>Interac eTransfer (for Canadian, please mention it when you schedule a class.)<\/span><\/li>\r\n            <\/ul>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div id=\"contact-us\" class=\"jo5-contact\">\r\n      <a class=\"jo5-cta\" id=\"jo5-cta\" href=\"mailto:hello@japaneseonlineclass.com\">Contact Us<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 2L11 13\"\/><path d=\"M22 2l-7 20-4-9-9-4 20-7z\"\/><\/svg><\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\r\n{\"@type\":\"Question\",\"name\":\"What happens if I need to reschedule classes?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Don\\u2019t worry. We are quite flexible. If you need to change the day or time of your class, please give us a notice in 2 or more business days in advance.\"}},\r\n{\"@type\":\"Question\",\"name\":\"What platforms do you support for online sessions?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"We offer lessons via Microsoft Teams, Google Meet, and Zoom to ensure flexibility and ease of access. These platforms do not require any additional installations, and you can use them seamlessly from your browser or app.\"}},\r\n{\"@type\":\"Question\",\"name\":\"How can I learn Japanese online?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"We provide private Japanese lessons online to help you learn and improve your skills in Japanese.\"}},\r\n{\"@type\":\"Question\",\"name\":\"Do I need to prepare before the first class?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Let us know your aim for learning Japanese. Having a clear goal mobilizes your focus toward actionable behavior.\"}},\r\n{\"@type\":\"Question\",\"name\":\"How to pay?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"We accept Credit Card and Interac eTransfer (for Canadian clients).\"}}\r\n]}\r\n<\/script>\r\n<script>\r\n(function () {\r\n  var root = document.getElementById('jo-guide');\r\n  if (!root) return;\r\n  var calm = matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var fine = matchMedia('(hover:hover) and (pointer:fine)').matches;\r\n  var burst = function (x, y, n) { if (window.JOFX && window.JOFX.burst) window.JOFX.burst(x, y, n); };\r\n  root.classList.add('jo5-js');\r\n\r\n  if ('IntersectionObserver' in window) {\r\n    new IntersectionObserver(function (es) { root.classList.toggle('jo5-off', !es[0].isIntersecting); }, { rootMargin: '120px' }).observe(root);\r\n  }\r\n\r\n  \/* ---------- STEPS: hover-only checks ---------- *\/\r\n  var steps = document.getElementById('jo5-steps');\r\n  var items = [].slice.call(steps.querySelectorAll('.jo5-step'));\r\n  var MARKS = [0, 0.5, 1];\r\n  var active = -1;\r\n\r\n  if ('IntersectionObserver' in window) {\r\n    new IntersectionObserver(function (es, o) {\r\n      if (es[0].isIntersecting) { steps.classList.add('jo5-in'); o.disconnect(); }\r\n    }, { threshold: 0.12 }).observe(steps);\r\n  } else {\r\n    steps.classList.add('jo5-in');\r\n  }\r\n\r\n  function setActive(idx) {\r\n    var prev = active;\r\n    active = idx;\r\n    steps.setAttribute('data-active', String(idx));\r\n    var p = idx < 0 ? 0 : MARKS[idx];\r\n    steps.style.setProperty('--jo5-p', p.toFixed(4));\r\n\r\n    items.forEach(function (li, i) {\r\n      var shouldOn = idx >= 0 && i <= idx;\r\n      var wasOn = li.classList.contains('is-on');\r\n      li.classList.toggle('is-on', shouldOn);\r\n      var card = li.querySelector('.jo5-card');\r\n      if (card) card.classList.toggle('is-focus', i === idx);\r\n      var node = li.querySelector('.jo5-node');\r\n      \/* pop only when newly turned on while moving forward *\/\r\n      if (shouldOn && !wasOn && node && (prev < 0 || i > prev)) {\r\n        node.classList.remove('is-pop');\r\n        void node.offsetWidth;\r\n        node.classList.add('is-pop');\r\n      }\r\n    });\r\n  }\r\n\r\n  setActive(-1); \/* default: numbers only, no checks *\/\r\n\r\n  items.forEach(function (li) {\r\n    var idx = parseInt(li.getAttribute('data-step'), 10);\r\n    var card = li.querySelector('.jo5-card');\r\n    var node = li.querySelector('.jo5-node');\r\n    var ico = li.querySelector('.jo5-ico');\r\n\r\n    function enter() { setActive(idx); }\r\n    function leave() {\r\n      requestAnimationFrame(function () {\r\n        if (!li.matches(':hover')) setActive(-1);\r\n      });\r\n    }\r\n\r\n    [card, node].forEach(function (el) {\r\n      if (!el) return;\r\n      el.addEventListener('pointerenter', enter);\r\n      el.addEventListener('pointerleave', leave);\r\n    });\r\n\r\n    if (node) {\r\n      node.addEventListener('click', function (e) {\r\n        e.preventDefault();\r\n        setActive(idx);\r\n        var r = node.getBoundingClientRect();\r\n        burst(r.left + r.width \/ 2, r.top + r.height \/ 2, 4);\r\n        node.classList.remove('is-pop');\r\n        void node.offsetWidth;\r\n        node.classList.add('is-pop');\r\n      });\r\n    }\r\n\r\n    if (card) {\r\n      card.addEventListener('pointerdown', function () { card.classList.add('is-press'); });\r\n      ['pointerup', 'pointerleave', 'pointercancel'].forEach(function (ev) {\r\n        card.addEventListener(ev, function () { card.classList.remove('is-press'); });\r\n      });\r\n      card.addEventListener('click', function () {\r\n        var r = card.getBoundingClientRect();\r\n        burst(r.left + r.width \/ 2, r.top + r.height \/ 2, 5);\r\n      });\r\n    }\r\n\r\n    if (fine && !calm && card && ico) {\r\n      card.addEventListener('pointermove', function (e) {\r\n        var r = card.getBoundingClientRect();\r\n        var x = e.clientX - r.left, y = e.clientY - r.top;\r\n        var px = x \/ r.width - 0.5, py = y \/ r.height - 0.5;\r\n        card.style.setProperty('--ry', (px * 12).toFixed(2) + 'deg');\r\n        card.style.setProperty('--rx', (-py * 9).toFixed(2) + 'deg');\r\n        card.style.setProperty('--gx', x + 'px');\r\n        card.style.setProperty('--gy', y + 'px');\r\n        ico.style.setProperty('--iy', (px * 18).toFixed(1) + 'deg');\r\n        ico.style.setProperty('--ix', (-py * 14).toFixed(1) + 'deg');\r\n        ico.style.transform = 'translateZ(58px) translate(' + (px * 16).toFixed(1) + 'px,' + (py * 12).toFixed(1) + 'px) scale(1.15) rotateX(' + (-py * 14).toFixed(1) + 'deg) rotateY(' + (px * 18).toFixed(1) + 'deg)';\r\n      });\r\n      card.addEventListener('pointerleave', function () {\r\n        card.style.setProperty('--rx', '0deg');\r\n        card.style.setProperty('--ry', '0deg');\r\n        ico.style.transform = '';\r\n      });\r\n    }\r\n  });\r\n\r\n  \/* ---------- FAQ: reliable open\/close ---------- *\/\r\n  var qs = [].slice.call(document.querySelectorAll('#jo5-acc .jo5-q'));\r\n  qs.forEach(function (q) {\r\n    var btn = q.querySelector('.jo5-sum');\r\n    var panel = q.querySelector('.jo5-a');\r\n    if (!btn || !panel) return;\r\n\r\n    btn.addEventListener('pointerdown', function () { btn.classList.add('is-press'); });\r\n    ['pointerup', 'pointerleave', 'pointercancel'].forEach(function (ev) {\r\n      btn.addEventListener(ev, function () { btn.classList.remove('is-press'); });\r\n    });\r\n\r\n    btn.addEventListener('click', function () {\r\n      var open = q.classList.contains('is-open');\r\n      qs.forEach(function (other) {\r\n        if (other === q) return;\r\n        other.classList.remove('is-open');\r\n        var ob = other.querySelector('.jo5-sum');\r\n        var op = other.querySelector('.jo5-a');\r\n        if (ob) ob.setAttribute('aria-expanded', 'false');\r\n        if (op) op.hidden = true;\r\n      });\r\n      if (open) {\r\n        q.classList.remove('is-open');\r\n        btn.setAttribute('aria-expanded', 'false');\r\n        panel.hidden = true;\r\n      } else {\r\n        panel.hidden = false;\r\n        q.classList.add('is-open');\r\n        btn.setAttribute('aria-expanded', 'true');\r\n        var i = q.querySelector('.jo5-qi');\r\n        if (i) {\r\n          var b = i.getBoundingClientRect();\r\n          burst(b.left + b.width \/ 2, b.top + b.height \/ 2, 2);\r\n        }\r\n      }\r\n    });\r\n\r\n    if (fine && !calm) {\r\n      btn.addEventListener('pointermove', function (e) {\r\n        var r = btn.getBoundingClientRect();\r\n        btn.style.setProperty('--gx', (e.clientX - r.left) + 'px');\r\n        btn.style.setProperty('--gy', (e.clientY - r.top) + 'px');\r\n      }, { passive: true });\r\n    }\r\n  });\r\n\r\n  \/* CTA *\/\r\n  var cta = document.getElementById('jo5-cta');\r\n  if (cta) {\r\n    cta.addEventListener('pointerdown', function () { cta.classList.add('is-press'); });\r\n    ['pointerup', 'pointerleave', 'pointercancel'].forEach(function (ev) {\r\n      cta.addEventListener(ev, function () { cta.classList.remove('is-press'); });\r\n    });\r\n    cta.addEventListener('click', function () {\r\n      var r = cta.getBoundingClientRect();\r\n      burst(r.left + r.width \/ 2, r.top + r.height \/ 2, 6);\r\n    });\r\n  }\r\n\r\n  function flush() {\r\n    root.style.removeProperty('margin-top');\r\n    root.style.removeProperty('margin-bottom');\r\n    function visible(el) {\r\n      var cs = getComputedStyle(el);\r\n      return !\/^(SCRIPT|STYLE|NOSCRIPT|CANVAS|LINK|PRE)$\/.test(el.tagName) && el.offsetHeight > 0 && cs.position !== 'fixed' && cs.position !== 'absolute';\r\n    }\r\n    function neighbour(dir) {\r\n      var el = root;\r\n      while (el && el !== document.body && el !== document.documentElement) {\r\n        var s = dir > 0 ? el.nextElementSibling : el.previousElementSibling;\r\n        while (s && !visible(s)) s = dir > 0 ? s.nextElementSibling : s.previousElementSibling;\r\n        if (s) return s;\r\n        el = el.parentElement;\r\n      }\r\n      return null;\r\n    }\r\n    var prev = neighbour(-1), next = neighbour(1);\r\n    if (prev) {\r\n      var gt = root.getBoundingClientRect().top - prev.getBoundingClientRect().bottom;\r\n      if (gt > 0.5 && gt < 120) root.style.setProperty('margin-top', -gt + 'px', 'important');\r\n    }\r\n    if (next) {\r\n      var gb = next.getBoundingClientRect().top - root.getBoundingClientRect().bottom;\r\n      if (gb > 0.5 && gb < 120) root.style.setProperty('margin-bottom', -gb + 'px', 'important');\r\n    }\r\n  }\r\n  flush();\r\n  addEventListener('load', flush);\r\n  addEventListener('resize', flush);\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-986f44b elementor-widget elementor-widget-menu-anchor\" data-id=\"986f44b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"scheduling\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-47ab7777 elementor-widget elementor-widget-shortcode\" data-id=\"47ab7777\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><iframe src=\"https:\/\/koalendar.com\/e\/moto-japanese-tutor?embed=true\" width=\"100%\" height=\"800px\" frameborder=\"0\"><\/iframe><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-53044b76 elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"53044b76\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-28590618\" data-id=\"28590618\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-26d879f elementor-widget elementor-widget-html\" data-id=\"26d879f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>One Flexible Class: Six Ways to Learn Japanese | JapaneseOnlineClass.com<\/title>\r\n<!-- SECTION 6: the six learning approaches. Paste the section element, the JSON-LD block and the script into an Elementor HTML widget.\r\n     Each approach has its own link target (#absolute-beginners, #survival-japanese, #particles-conjugation, #manga-anime-drama, #intensive-grammar, #conversation-class),\r\n     so other sections can link straight to it: opening that link scrolls here and opens the card. -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;600;700&family=Noto+Sans+JP:wght@400;500&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n#jo-lessons,#jo-lessons *,#jo-lessons *::before,#jo-lessons *::after{box-sizing:border-box}\r\n#jo-lessons{\r\n  --ease:cubic-bezier(.22,1,.36,1);--ink:#2d2a4a;--muted:#5d6478;--S:min(86vw,440px);\r\n  position:relative;isolation:isolate;overflow:hidden;\r\n  width:100vw!important;max-width:none!important;margin:0!important;left:50%;right:50%;margin-left:-50vw!important;margin-right:-50vw!important;padding:0!important;\r\n  font-family:'Noto Sans JP',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;\r\n  background:linear-gradient(180deg,#f2f7ff 0%,#fffafd 40%,#f7f2ff 100%)\r\n}\r\n#jo-lessons [id]{scroll-margin-top:90px}\r\n\r\n\/* ---------- background: the family colours, plus faint drifting flowers ---------- *\/\r\n.jo6-orb{position:absolute;z-index:0;border-radius:50%;pointer-events:none;filter:blur(70px);will-change:transform}\r\n.jo6-orb-a{width:54vmax;height:54vmax;right:-16vmax;top:-12vmax;background:radial-gradient(circle,rgba(240,196,208,.5),transparent 66%);animation:jo6OrbA 32s ease-in-out infinite alternate}\r\n.jo6-orb-b{width:50vmax;height:50vmax;left:-16vmax;top:34%;background:radial-gradient(circle,rgba(184,212,240,.5),transparent 66%);animation:jo6OrbB 38s ease-in-out infinite alternate}\r\n.jo6-orb-c{width:46vmax;height:46vmax;right:10%;bottom:-18vmax;background:radial-gradient(circle,rgba(201,184,224,.5),transparent 66%);animation:jo6OrbC 34s ease-in-out infinite alternate}\r\n@keyframes jo6OrbA{to{transform:translate(-9vmax,8vmax) scale(1.1)}}\r\n@keyframes jo6OrbB{to{transform:translate(8vmax,9vmax) scale(1.12)}}\r\n@keyframes jo6OrbC{to{transform:translate(-8vmax,-8vmax) scale(1.14)}}\r\n.jo6-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.04;mix-blend-mode:multiply;\r\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'\/%3E%3C\/svg%3E\")}\r\n#jo-lessons::after{content:\"\";position:absolute;left:0;right:0;top:0;height:1px;z-index:4;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(201,184,224,.9),rgba(240,196,208,.9),rgba(184,212,240,.9),transparent)}\r\n.jo6-inner{position:relative;z-index:2;max-width:1220px;margin:0 auto;padding:clamp(80px,10vw,130px) clamp(18px,4vw,40px)}\r\n\r\n\/* ---------- heading ---------- *\/\r\n.jo6-head{text-align:center}\r\n.jo6-title{position:relative;display:inline-flex;align-items:center;gap:.35em;margin:0 0 18px;padding:0 6px;font-family:'Advent Pro',sans-serif;font-size:clamp(2.2rem,5.4vw,4rem);font-weight:300;letter-spacing:2px;text-transform:uppercase;line-height:1.1;\r\n  background-image:linear-gradient(90deg,#667eea,#a855f7,#f093fb,#ff7a9c,#667eea);background-size:200% 100%;background-repeat:repeat-x;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:jo6Flow 10s linear infinite}\r\n@keyframes jo6Flow{to{background-position-x:200%}}\r\n.jo6-spark{flex:0 0 auto;width:.7em;height:.7em;fill:#f5a3ff;-webkit-text-fill-color:initial;animation:jo6Twinkle 3s ease-in-out infinite}\r\n.jo6-spark:last-child{animation-delay:-1.5s}\r\n@keyframes jo6Twinkle{0%,100%{transform:scale(.8) rotate(0);opacity:.6}50%{transform:scale(1.15) rotate(25deg);opacity:1}}\r\n.jo6-sub{margin:0 auto;max-width:640px;font-size:clamp(1.02rem,1.6vw,1.2rem);line-height:1.7;color:var(--muted)}\r\n\r\n\/* ---------- the hub: one class, six approaches ---------- *\/\r\n.jo6-hub{position:relative;width:var(--S);aspect-ratio:1;margin:clamp(30px,5vw,56px) auto clamp(40px,6vw,70px);--r:calc(var(--S) * .375)}\r\n.jo6-hub svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}\r\n.jo6-hub .ring{fill:none;stroke:rgba(124,109,240,.3);stroke-width:1.2;stroke-dasharray:3 7;transform-origin:200px 200px;animation:jo6Spin 80s linear infinite}\r\n.jo6-hub .ring2{stroke:rgba(240,147,251,.3);animation-duration:120s;animation-direction:reverse}\r\n@keyframes jo6Spin{to{transform:rotate(360deg)}}\r\n.jo6-hub .spoke{stroke:url(#jo6-hubg);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease) calc(var(--k) * 110ms + .2s)}\r\n.jo6-hub.is-in .spoke{stroke-dashoffset:0}\r\n.jo6-core{position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;translate:-50% -50%;display:grid;place-content:center;text-align:center;border-radius:50%;\r\n  background:radial-gradient(circle at 30% 25%,#fff,#f3ecff 60%,#e9dcff);box-shadow:0 20px 50px rgba(124,109,240,.28),inset 0 -6px 18px rgba(168,85,247,.15),0 0 0 8px rgba(255,255,255,.6);\r\n  font-family:'Advent Pro',sans-serif;font-weight:700;line-height:1;letter-spacing:1px;text-transform:uppercase;color:#5b4fd0;animation:jo6Breathe 5s ease-in-out infinite}\r\n.jo6-core b{display:block;font-size:clamp(1.6rem,5.6vw,2.4rem)}\r\n.jo6-core i{display:block;margin-top:2px;font-style:normal;font-size:clamp(.7rem,2.2vw,.95rem);font-weight:600;letter-spacing:3px;color:#a06be8}\r\n@keyframes jo6Breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}\r\n.jo6-node{appearance:none;border:0;position:absolute;left:50%;top:50%;width:clamp(46px,14vw,60px);aspect-ratio:1;border-radius:50%;cursor:pointer;display:grid;place-items:center;color:#fff;\r\n  font:700 clamp(1.1rem,4vw,1.5rem)\/1 'Advent Pro',sans-serif;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 12px 26px color-mix(in srgb,var(--c2) 45%,transparent);\r\n  translate:calc(-50% + var(--x) * var(--r)) calc(-50% + var(--y) * var(--r));opacity:0;scale:.4;transition:opacity .6s ease calc(var(--k) * 110ms + .5s),scale .8s var(--ease) calc(var(--k) * 110ms + .5s),box-shadow .3s}\r\n.jo6-hub.is-in .jo6-node{opacity:1;scale:1}\r\n.jo6-node em{position:absolute;white-space:nowrap;font:600 .95rem 'Advent Pro',sans-serif;font-style:normal;letter-spacing:.8px;color:#4a4670;pointer-events:none;transition:color .3s,transform .4s var(--ease)}\r\n.jo6-node[data-side=\"t\"] em{bottom:calc(100% + 10px);left:50%;translate:-50% 0}\r\n.jo6-node[data-side=\"b\"] em{top:calc(100% + 10px);left:50%;translate:-50% 0}\r\n.jo6-node[data-side=\"r\"] em{left:calc(100% + 12px);top:50%;translate:0 -50%}\r\n.jo6-node[data-side=\"l\"] em{right:calc(100% + 12px);top:50%;translate:0 -50%}\r\n@media (hover:hover){.jo6-node:hover{scale:1.16;box-shadow:0 16px 34px color-mix(in srgb,var(--c2) 60%,transparent)}.jo6-node:hover em{color:var(--c2)}}\r\n.jo6-node:focus-visible{outline:3px solid #8b5cf6;outline-offset:3px}\r\n@media (max-width:640px){.jo6-node em{display:none}}\r\n\r\n\/* ---------- cards ---------- *\/\r\n.jo6-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,2.6vw,34px);align-items:start;perspective:1600px}\r\n@media (max-width:1080px){.jo6-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\r\n@media (max-width:700px){.jo6-grid{grid-template-columns:1fr}}\r\n.jo6-grid>li{margin:0;padding:0}\r\n\r\n.jo6-card{position:relative;display:flex;flex-direction:column;border-radius:28px;background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.95);\r\n  box-shadow:0 16px 44px rgba(60,40,120,.1);transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));\r\n  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}\r\n.jo6-card::before{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(380px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.95),color-mix(in srgb,var(--c1) 14%,transparent) 45%,transparent 70%)}\r\n@media (hover:hover){.jo6-card:hover{box-shadow:0 32px 64px color-mix(in srgb,var(--c2) 24%,transparent)}.jo6-card:hover::before{opacity:1}}\r\n.jo6-card.is-open{box-shadow:0 34px 70px color-mix(in srgb,var(--c2) 30%,transparent)}\r\n.jo6-card.is-spot{animation:jo6Spot 1.8s var(--ease)}\r\n@keyframes jo6Spot{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c1) 70%,transparent)}60%{box-shadow:0 0 0 22px transparent}100%{box-shadow:0 16px 44px rgba(60,40,120,.1)}}\r\n\r\n.jo6-art{position:relative;height:170px;border-radius:28px 28px 0 0;overflow:hidden;background:linear-gradient(150deg,color-mix(in srgb,var(--c1) 22%,#fff),color-mix(in srgb,var(--c2) 16%,#fff))}\r\n.jo6-art svg{position:absolute;left:50%;top:50%;width:min(78%,250px);translate:-50% -50%;overflow:visible;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;animation:jo6Bob 6s ease-in-out infinite;transform:translateZ(30px)}\r\n.jo6-art svg .d{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s var(--ease) calc(var(--k,0) * 90ms + .3s)}\r\n.jo6-li.is-in .jo6-art svg .d{stroke-dashoffset:0}\r\n@media (hover:hover){.jo6-card:hover .jo6-art svg .d{animation:jo6Redraw 1.4s var(--ease) calc(var(--k,0) * 70ms) both}}\r\n@keyframes jo6Redraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}\r\n@keyframes jo6Bob{0%,100%{transform:translateZ(30px) translateY(0)}50%{transform:translateZ(30px) translateY(-7px)}}\r\n.jo6-art .blob{fill:url(#jo6-b);stroke:none}\r\n.jo6-art .dot{stroke:none;fill:var(--c2);opacity:.55}\r\n\r\n.jo6-badge{position:absolute;left:16px;top:16px;z-index:3;padding:8px 16px;border-radius:99px;font:600 .88rem 'Advent Pro',sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 8px 20px color-mix(in srgb,var(--c2) 40%,transparent);transform:translateZ(46px)}\r\n.jo6-badge.dark{color:#5a3a1a}\r\n.jo6-num{position:absolute;right:18px;top:122px;z-index:3;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;font:700 1.7rem\/1 'Advent Pro',sans-serif;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 14px 28px color-mix(in srgb,var(--c2) 45%,transparent),0 0 0 5px #fff;transform:translateZ(56px);transition:transform .8s var(--ease)}\r\n@media (hover:hover){.jo6-card:hover .jo6-num{transform:translateZ(70px) rotateY(360deg) scale(1.08)}}\r\n\r\n.jo6-body{position:relative;padding:34px 26px 26px;transform:translateZ(10px)}\r\n.jo6-h{margin:0}\r\n.jo6-btn{appearance:none;display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit}\r\n.jo6-btn::after{content:\"\";position:absolute;inset:0;z-index:2;border-radius:0 0 28px 28px}\r\n.jo6-btn:focus-visible{outline:none}\r\n.jo6-btn:focus-visible::after{outline:3px solid #8b5cf6;outline-offset:-3px}\r\n.jo6-ht{display:block;font:700 clamp(1.4rem,2.1vw,1.75rem)\/1.2 'Advent Pro',sans-serif;letter-spacing:.4px;color:var(--ink);padding-right:44px}\r\n.jo6-hs{display:block;margin-top:6px;font:600 clamp(1.1rem,1.7vw,1.3rem)\/1.3 'Advent Pro',sans-serif;letter-spacing:.5px;background-image:linear-gradient(90deg,var(--c1),var(--c2),var(--c1));background-size:200% 100%;background-repeat:repeat-x;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:jo6Flow 8s linear infinite}\r\n.jo6-lead{position:relative;margin:16px 0 0;font-size:1rem;font-weight:500;line-height:1.55;color:#3b3858}\r\n.jo6-hl{border-radius:4px;padding:0 .12em;margin:0 -.12em;background:linear-gradient(transparent 55%,var(--hl) 55%) no-repeat 0 0\/0% 100%;font-weight:inherit;transition:background-size .9s var(--ease) .1s}\r\n.jo6-card.is-open .jo6-hl,.jo6-hl.is-lit{background-size:100% 100%}\r\n.jo6-tog{position:absolute;right:22px;bottom:22px;z-index:3;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 10px 22px color-mix(in srgb,var(--c2) 38%,transparent);transition:transform .6s var(--ease),box-shadow .4s;pointer-events:none}\r\n.jo6-tog::before,.jo6-tog::after{content:\"\";position:absolute;left:50%;top:50%;width:16px;height:2.5px;margin:-1.25px 0 0 -8px;border-radius:2px;background:#fff;transition:transform .6s var(--ease)}\r\n.jo6-tog::after{transform:rotate(90deg)}\r\n.jo6-card.is-open .jo6-tog{transform:rotate(180deg)}\r\n.jo6-card.is-open .jo6-tog::after{transform:rotate(0)}\r\n@media (hover:hover){.jo6-card:hover .jo6-tog{transform:scale(1.12)}.jo6-card.is-open:hover .jo6-tog{transform:rotate(180deg) scale(1.12)}}\r\n.jo6-lead{padding-right:56px}\r\n\r\n\/* the text opens smoothly, and every line sweeps in from the left *\/\r\n.jo6-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .8s var(--ease)}\r\n.jo6-card.is-open .jo6-panel{grid-template-rows:1fr}\r\n.jo6-pin{overflow:hidden;min-height:0}\r\n.jo6-pbody{padding:18px 0 56px;font-size:.96rem;line-height:1.78;color:#4b5468}\r\n.jo6-pbody p{margin:0 0 14px}\r\n.jo6-pbody .t{margin:20px 0 12px;font-weight:500;color:var(--ink)}\r\n.jo6-b{clip-path:inset(0 100% 0 0)}\r\n.jo6-card.is-open .jo6-b{animation:jo6Wipe .85s var(--ease) calc(var(--k) * 90ms + .2s) both}\r\n@keyframes jo6Wipe{from{clip-path:inset(0 100% 0 0);opacity:.15;transform:translateX(-16px)}to{clip-path:inset(0 0 0 0);opacity:1;transform:none}}\r\n.jo6-pbody ul{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}\r\n.jo6-pbody li{position:relative;padding-left:34px}\r\n.jo6-pbody li::before{content:\"\";position:absolute;left:0;top:.28em;width:21px;height:21px;border-radius:50%;background:radial-gradient(circle,#fff 0 20%,transparent 22%),linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 4px 10px color-mix(in srgb,var(--c2) 35%,transparent)}\r\n.jo6-card.is-open .jo6-pbody li::before{animation:jo6Pop .7s var(--ease) calc(var(--k) * 90ms + .3s) backwards}\r\n@keyframes jo6Pop{from{transform:scale(0) rotate(-90deg)}60%{transform:scale(1.25)}to{transform:none}}\r\n.jo6-pbody em{display:block;font-size:.88rem;color:#6a7185}\r\n\r\n\/* entrance *\/\r\n#jo-lessons.jo6-js .jo6-li{opacity:0}\r\n#jo-lessons.jo6-js .jo6-li.is-in{opacity:1;animation:jo6Rise 1.1s var(--ease) calc(var(--i) * 90ms) backwards}\r\n@keyframes jo6Rise{from{opacity:0;transform:perspective(1100px) rotateX(18deg) rotateY(-8deg) translateY(60px) scale(.94);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}\r\n#jo-lessons.jo6-js .jo6-rv{opacity:0;transform:translateY(30px);filter:blur(8px)}\r\n#jo-lessons.jo6-js .jo6-rv.is-in{opacity:1;transform:none;filter:none;transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease)}\r\n#jo-lessons.jo6-off *,#jo-lessons.jo6-off .jo6-orb{animation-play-state:paused!important}\r\n\r\n@media (max-width:700px){.jo6-art{height:150px}.jo6-num{top:104px;width:56px;height:56px}.jo6-body{padding:32px 20px 22px}}\r\n@media (prefers-reduced-motion:reduce){\r\n  #jo-lessons *,.jo6-orb{animation:none!important}\r\n  #jo-lessons.jo6-js .jo6-li,#jo-lessons.jo6-js .jo6-rv{opacity:1;transform:none;filter:none}\r\n  .jo6-b{clip-path:none}.jo6-card{transform:none!important}.jo6-art svg .d,.jo6-hub .spoke{stroke-dashoffset:0}.jo6-node{opacity:1;scale:1}.jo6-hl{background-size:100% 100%}\r\n  .jo6-panel{transition:none}\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"ItemList\",\"name\":\"One Flexible Class: Six Powerful Learning Approaches to Master Japanese\",\"itemListElement\":[\r\n{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Course\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#absolute-beginners\",\"url\":\"https:\/\/japaneseonlineclass.com\/#absolute-beginners\",\"name\":\"Japanese for Absolute Beginners\",\"description\":\"Your Search for the Perfect Starting Point Ends Here! Are you completely new to Japanese, wondering \u201cWhere do I even begin?\u201d Stop searching - you\u2019ve found your starting point! As your guide, I\u2019ll show you the most efficient path to Japanese fluency, based on years of teaching experience.\",\"educationalLevel\":\"Beginner\",\"courseMode\":\"online\",\"provider\":{\"@type\":\"EducationalOrganization\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\"}}},\r\n{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Course\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#survival-japanese\",\"url\":\"https:\/\/japaneseonlineclass.com\/#survival-japanese\",\"name\":\"Survival Japanese: Fast Track to Fluency with Structure\",\"description\":\"Ready to Skip the Traditional Route? Are you tired of traditional language courses that focus on memorizing vocabulary and conjugation? It\u2019s time to try something different and see if it suits you better!\",\"courseMode\":\"online\",\"provider\":{\"@type\":\"EducationalOrganization\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\"}}},\r\n{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Course\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#particles-conjugation\",\"url\":\"https:\/\/japaneseonlineclass.com\/#particles-conjugation\",\"name\":\"Particles & Conjugation Mastery: Crush the Biggest Japanese Challenges\",\"description\":\"Tackle the Two Biggest Japanese Learning Obstacles! This approach is designed to conquer particles and conjugations - the two biggest struggles for Japanese learners.\",\"courseMode\":\"online\",\"provider\":{\"@type\":\"EducationalOrganization\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\"}}},\r\n{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Course\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#manga-anime-drama\",\"url\":\"https:\/\/japaneseonlineclass.com\/#manga-anime-drama\",\"name\":\"Improve Japanese IQ by Manga, Drama, and Anime\",\"description\":\"From Textbook to Real Japanese! Ever found yourself lost in anime dialogue even though you understand \u201cregular\u201d Japanese? Confused why manga characters speak so differently from your textbook?\",\"courseMode\":\"online\",\"provider\":{\"@type\":\"EducationalOrganization\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\"}}},\r\n{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Course\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#intensive-grammar\",\"url\":\"https:\/\/japaneseonlineclass.com\/#intensive-grammar\",\"name\":\"Intensive Grammar: From Complex to Crystal Clear\",\"description\":\"Struggling with Japanese Grammar? Let\u2019s Change That\u2014Forever! What if particles, passive-causative forms, and honorific expressions could feel natural?\",\"educationalLevel\":\"Advanced\",\"courseMode\":\"online\",\"provider\":{\"@type\":\"EducationalOrganization\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\"}}},\r\n{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Course\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#conversation-class\",\"url\":\"https:\/\/japaneseonlineclass.com\/#conversation-class\",\"name\":\"Conversation Class: Speak Like a Native from Day One\",\"description\":\"Stop Learning Japanese, Start SPEAKING Japanese! Tired of understanding Japanese but freezing up when it\u2019s time to speak? This conversation-focused approach gets you talking confidently from the very first lesson - no matter your current level!\",\"courseMode\":\"online\",\"provider\":{\"@type\":\"EducationalOrganization\",\"@id\":\"https:\/\/japaneseonlineclass.com\/#organization\",\"name\":\"JapaneseOnlineClass.com\"}}}\r\n]}\r\n<\/script>\r\n\r\n<section id=\"jo-lessons\" aria-labelledby=\"jo6-title\">\r\n  <svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\r\n    <defs>\r\n      <linearGradient id=\"jo6-hubg\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#667eea\"\/><stop offset=\".55\" stop-color=\"#a855f7\"\/><stop offset=\"1\" stop-color=\"#f093fb\"\/><\/linearGradient>\r\n      <symbol id=\"jo6-star\" viewBox=\"0 0 24 24\"><path d=\"M12 1l2.6 7.4L22 11l-7.4 2.6L12 21l-2.6-7.4L2 11l7.4-2.6z\"\/><\/symbol>\r\n    <\/defs>\r\n  <\/svg>\r\n  <div class=\"jo6-orb jo6-orb-a\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo6-orb jo6-orb-b\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo6-orb jo6-orb-c\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"jo6-grain\" aria-hidden=\"true\"><\/div>\r\n\r\n  <div class=\"jo6-inner\">\r\n    <div class=\"jo6-head jo6-rv\">\r\n      <h2 id=\"jo6-title\" class=\"jo6-title\"><svg class=\"jo6-spark\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"#jo6-star\"\/><\/svg>One Flexible Class<svg class=\"jo6-spark\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"#jo6-star\"\/><\/svg><\/h2>\r\n      <p class=\"jo6-sub\">One Class, Six Powerful Learning Approaches to Master Japanese Your Way!<\/p>\r\n    <\/div>\r\n\r\n    <!-- the hub: tap a number to jump to that approach -->\r\n    <div class=\"jo6-hub\" id=\"jo6-hub\" role=\"group\" aria-label=\"The six learning approaches\">\r\n      <svg viewBox=\"0 0 400 400\" aria-hidden=\"true\">\r\n        <circle class=\"ring\" cx=\"200\" cy=\"200\" r=\"150\"\/><circle class=\"ring ring2\" cx=\"200\" cy=\"200\" r=\"104\"\/>\r\n        <path class=\"spoke\" pathLength=\"1\" style=\"--k:0\" d=\"M200 200 L200 50\"\/><path class=\"spoke\" pathLength=\"1\" style=\"--k:1\" d=\"M200 200 L329.9 125\"\/>\r\n        <path class=\"spoke\" pathLength=\"1\" style=\"--k:2\" d=\"M200 200 L329.9 275\"\/><path class=\"spoke\" pathLength=\"1\" style=\"--k:3\" d=\"M200 200 L200 350\"\/>\r\n        <path class=\"spoke\" pathLength=\"1\" style=\"--k:4\" d=\"M200 200 L70.1 275\"\/><path class=\"spoke\" pathLength=\"1\" style=\"--k:5\" d=\"M200 200 L70.1 125\"\/>\r\n      <\/svg>\r\n      <div class=\"jo6-core\" aria-hidden=\"true\"><b>One<\/b><i>Class<\/i><\/div>\r\n      <button class=\"jo6-node\" type=\"button\" data-go=\"absolute-beginners\" data-side=\"t\" aria-label=\"Japanese for Absolute Beginners\" style=\"--x:0;--y:-1;--k:0;--c1:#ffb347;--c2:#ff6b6b\">1<em>Start Here<\/em><\/button>\r\n      <button class=\"jo6-node\" type=\"button\" data-go=\"survival-japanese\" data-side=\"r\" aria-label=\"Survival Japanese\" style=\"--x:.866;--y:-.5;--k:1;--c1:#ff9ff3;--c2:#f368e0\">2<em>Fast Track<\/em><\/button>\r\n      <button class=\"jo6-node\" type=\"button\" data-go=\"particles-conjugation\" data-side=\"r\" aria-label=\"Particles and Conjugation Mastery\" style=\"--x:.866;--y:.5;--k:2;--c1:#74b9ff;--c2:#0984e3\">3<em>Most Popular<\/em><\/button>\r\n      <button class=\"jo6-node\" type=\"button\" data-go=\"manga-anime-drama\" data-side=\"b\" aria-label=\"Improve Japanese IQ by Manga, Drama, and Anime\" style=\"--x:0;--y:1;--k:3;--c1:#fd79a8;--c2:#e84393\">4<em>Creative<\/em><\/button>\r\n      <button class=\"jo6-node\" type=\"button\" data-go=\"intensive-grammar\" data-side=\"l\" aria-label=\"Intensive Grammar\" style=\"--x:-.866;--y:.5;--k:4;--c1:#a29bfe;--c2:#6c5ce7\">5<em>Advanced<\/em><\/button>\r\n      <button class=\"jo6-node\" type=\"button\" data-go=\"conversation-class\" data-side=\"l\" aria-label=\"Conversation Class\" style=\"--x:-.866;--y:-.5;--k:5;--c1:#fdcb6e;--c2:#fd79a8\">6<em>Interactive<\/em><\/button>\r\n    <\/div>\r\n\r\n    <ul class=\"jo6-grid\" role=\"list\">\r\n\r\n      <!-- 1 -->\r\n      <li class=\"jo6-li\" style=\"--i:0\"><article class=\"jo6-card\" id=\"absolute-beginners\" style=\"--c1:#ffb347;--c2:#ff6b6b;--hl:rgba(255,190,80,.42)\">\r\n        <div class=\"jo6-art\" aria-hidden=\"true\"><svg viewBox=\"0 0 160 110\"><defs><linearGradient id=\"jo6-s1\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" style=\"stop-color:var(--c1)\"\/><stop offset=\"1\" style=\"stop-color:var(--c2)\"\/><\/linearGradient><radialGradient id=\"jo6-b\"><stop offset=\"0\" style=\"stop-color:var(--c1);stop-opacity:.45\"\/><stop offset=\"1\" style=\"stop-color:var(--c1);stop-opacity:0\"\/><\/radialGradient><\/defs>\r\n          <circle class=\"blob\" cx=\"80\" cy=\"56\" r=\"64\"\/><g stroke=\"url(#jo6-s1)\"><path class=\"d\" pathLength=\"1\" style=\"--k:0\" d=\"M16 94C48 94 40 62 72 62S100 32 128 28\" stroke-dasharray=\"1\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:2\" d=\"M128 28V6\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:3\" d=\"M128 6h24l-7 8 7 8h-24\"\/><circle class=\"d\" pathLength=\"1\" style=\"--k:1\" cx=\"16\" cy=\"94\" r=\"6\"\/><\/g><circle class=\"dot\" cx=\"48\" cy=\"40\" r=\"3\"\/><circle class=\"dot\" cx=\"104\" cy=\"82\" r=\"4\"\/><\/svg><\/div>\r\n        <span class=\"jo6-badge dark\">Start Here<\/span><span class=\"jo6-num\">1<\/span>\r\n        <div class=\"jo6-body\">\r\n          <h3 class=\"jo6-h\"><button class=\"jo6-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo6-p1\"><span class=\"jo6-ht\">Japanese for Absolute Beginners<\/span><span class=\"jo6-hs\">\u201cWhere Do I Even Begin?\u201d<\/span><\/button><\/h3>\r\n          <p class=\"jo6-lead\"><span class=\"jo6-hl\">Your Search for the Perfect Starting Point Ends Here!<\/span><\/p>\r\n          <span class=\"jo6-tog\" aria-hidden=\"true\"><\/span>\r\n          <div class=\"jo6-panel\" id=\"jo6-p1\" inert><div class=\"jo6-pin\"><div class=\"jo6-pbody\">\r\n            <p class=\"jo6-b\" style=\"--k:0\">Are you completely new to Japanese, wondering \u201cWhere do I even begin?\u201d Stop searching - you\u2019ve found your starting point! As your guide, I\u2019ll show you the most efficient path to Japanese fluency, based on years of teaching experience.<\/p>\r\n            <p class=\"jo6-b t\" style=\"--k:1\"><span class=\"jo6-hl\">Your Clear Path Forward:<\/span><\/p>\r\n            <ul>\r\n              <li class=\"jo6-b\" style=\"--k:2\">Master Essential Greetings - Your first step to real conversations<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:3\">Build Core Vocabulary - Only what you truly need<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:4\">Create Simple Sentences - Start speaking from day one<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:5\">Master Negative Expressions - Learn to say what you don\u2019t want<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:6\">Ask Questions Naturally - Engage in real dialogues<\/li>\r\n            <\/ul>\r\n            <p class=\"jo6-b\" style=\"--k:7\">Follow my guidance, and you\u2019ll never feel lost in your Japanese journey. I\u2019ll clear up every confusion, answer every question, and ensure you\u2019re always moving forward with confidence.<\/p>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/article><\/li>\r\n\r\n      <!-- 2 -->\r\n      <li class=\"jo6-li\" style=\"--i:1\"><article class=\"jo6-card\" id=\"survival-japanese\" style=\"--c1:#ff9ff3;--c2:#f368e0;--hl:rgba(255,150,240,.38)\">\r\n        <div class=\"jo6-art\" aria-hidden=\"true\"><svg viewBox=\"0 0 160 110\"><defs><linearGradient id=\"jo6-s2\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" style=\"stop-color:var(--c1)\"\/><stop offset=\"1\" style=\"stop-color:var(--c2)\"\/><\/linearGradient><\/defs>\r\n          <circle class=\"blob\" cx=\"84\" cy=\"56\" r=\"64\"\/><g stroke=\"url(#jo6-s2)\"><path class=\"d\" pathLength=\"1\" style=\"--k:0\" d=\"M88 8L54 62h26l-12 40 44-60H84z\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:2\" d=\"M14 38h24\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:3\" d=\"M6 56h30\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:4\" d=\"M18 74h22\"\/><\/g><circle class=\"dot\" cx=\"130\" cy=\"30\" r=\"4\"\/><circle class=\"dot\" cx=\"118\" cy=\"86\" r=\"3\"\/><\/svg><\/div>\r\n        <span class=\"jo6-badge\">Fast Track<\/span><span class=\"jo6-num\">2<\/span>\r\n        <div class=\"jo6-body\">\r\n          <h3 class=\"jo6-h\"><button class=\"jo6-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo6-p2\"><span class=\"jo6-ht\">Survival Japanese:<\/span><span class=\"jo6-hs\">Fast Track to Fluency with Structure<\/span><\/button><\/h3>\r\n          <p class=\"jo6-lead\"><span class=\"jo6-hl\">Ready to Skip the Traditional Route?<\/span><\/p>\r\n          <span class=\"jo6-tog\" aria-hidden=\"true\"><\/span>\r\n          <div class=\"jo6-panel\" id=\"jo6-p2\" inert><div class=\"jo6-pin\"><div class=\"jo6-pbody\">\r\n            <p class=\"jo6-b\" style=\"--k:0\">Are you tired of traditional language courses that focus on memorizing vocabulary and conjugation? It\u2019s time to try something different and see if it suits you better!<\/p>\r\n            <p class=\"jo6-b\" style=\"--k:1\">Our Survival Japanese approach is designed for learners who want to grasp the language quickly and effortlessly. Say goodbye to tedious vocabulary lists and grammar drills \u2013 we prioritize understanding the structure of Japanese sentences.<\/p>\r\n            <p class=\"jo6-b\" style=\"--k:2\">By learning how Japanese sentences are formed and occasionally incorporating concise English words, you\u2019ll be equipped to navigate real-life situations in Japan with ease. Our goal is to help you achieve survival-level proficiency in a short period of time.<\/p>\r\n            <p class=\"jo6-b\" style=\"--k:3\"><em>*This approach provides shortcuts to form sentences quickly, focusing on communication over perfect grammar. For long-term mastery, proper conjugation study is recommended after mastering this approach.<\/em><\/p>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/article><\/li>\r\n\r\n      <!-- 3 -->\r\n      <li class=\"jo6-li\" style=\"--i:2\"><article class=\"jo6-card\" id=\"particles-conjugation\" style=\"--c1:#74b9ff;--c2:#0984e3;--hl:rgba(116,185,255,.4)\">\r\n        <div class=\"jo6-art\" aria-hidden=\"true\"><svg viewBox=\"0 0 160 110\"><defs><linearGradient id=\"jo6-s3\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" style=\"stop-color:var(--c1)\"\/><stop offset=\"1\" style=\"stop-color:var(--c2)\"\/><\/linearGradient><\/defs>\r\n          <circle class=\"blob\" cx=\"80\" cy=\"56\" r=\"64\"\/><g stroke=\"url(#jo6-s3)\"><rect class=\"d\" pathLength=\"1\" style=\"--k:0\" x=\"18\" y=\"24\" width=\"56\" height=\"56\" rx=\"14\"\/><rect class=\"d\" pathLength=\"1\" style=\"--k:1\" x=\"86\" y=\"32\" width=\"56\" height=\"56\" rx=\"14\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:3\" d=\"M74 50c6-8 6-8 12 0M74 66c6 8 6 8 12 0\"\/><\/g><text x=\"46\" y=\"63\" text-anchor=\"middle\" font-size=\"34\" font-weight=\"700\" fill=\"url(#jo6-s3)\" stroke=\"none\" font-family=\"'Noto Sans JP',sans-serif\">\u306f<\/text><text x=\"114\" y=\"71\" text-anchor=\"middle\" font-size=\"34\" font-weight=\"700\" fill=\"url(#jo6-s3)\" stroke=\"none\" font-family=\"'Noto Sans JP',sans-serif\">\u304c<\/text><circle class=\"dot\" cx=\"140\" cy=\"16\" r=\"4\"\/><\/svg><\/div>\r\n        <span class=\"jo6-badge\">Most Popular<\/span><span class=\"jo6-num\">3<\/span>\r\n        <div class=\"jo6-body\">\r\n          <h3 class=\"jo6-h\"><button class=\"jo6-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo6-p3\"><span class=\"jo6-ht\">Particles &amp; Conjugation Mastery:<\/span><span class=\"jo6-hs\">Crush the Biggest Japanese Challenges<\/span><\/button><\/h3>\r\n          <p class=\"jo6-lead\"><span class=\"jo6-hl\">Tackle the Two Biggest Japanese Learning Obstacles!<\/span><\/p>\r\n          <span class=\"jo6-tog\" aria-hidden=\"true\"><\/span>\r\n          <div class=\"jo6-panel\" id=\"jo6-p3\" inert><div class=\"jo6-pin\"><div class=\"jo6-pbody\">\r\n            <p class=\"jo6-b\" style=\"--k:0\">This approach is designed to conquer particles and conjugations - the two biggest struggles for Japanese learners. If you\u2019ve ever been frustrated by when to use <span lang=\"ja\">\u306f<\/span> or <span lang=\"ja\">\u304c<\/span>, or felt overwhelmed by conjugation rules, this is perfect for you.<\/p>\r\n            <p class=\"jo6-b t\" style=\"--k:1\"><span class=\"jo6-hl\">What You\u2019ll Master:<\/span><\/p>\r\n            <ul>\r\n              <li class=\"jo6-b\" style=\"--k:2\">Particles: <span lang=\"ja\">\u306f<\/span> vs. <span lang=\"ja\">\u304c<\/span>, <span lang=\"ja\">\u306b<\/span>, <span lang=\"ja\">\u3067<\/span>, <span lang=\"ja\">\u3092<\/span>, and their real purposes<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:3\">Conjugations: <span lang=\"ja\">\u3066<\/span>-form fluency, past\/present\/progressive forms<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:4\">Cultural Logic: Understanding the WHY behind the rules<\/li>\r\n            <\/ul>\r\n            <p class=\"jo6-b\" style=\"--k:5\">Unlike broad grammar courses, this focuses specifically on particles and conjugations to help you nail these essentials. We\u2019ll break them down into simple, logical steps with real-life examples and cultural context.<\/p>\r\n            <p class=\"jo6-b\" style=\"--k:6\">By the end, particles will feel natural and intuitive, and conjugations will flow effortlessly in your sentences!<\/p>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/article><\/li>\r\n\r\n      <!-- 4 -->\r\n      <li class=\"jo6-li\" style=\"--i:3\"><article class=\"jo6-card\" id=\"manga-anime-drama\" style=\"--c1:#fd79a8;--c2:#e84393;--hl:rgba(253,121,168,.36)\">\r\n        <div class=\"jo6-art\" aria-hidden=\"true\"><svg viewBox=\"0 0 160 110\"><defs><linearGradient id=\"jo6-s4\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" style=\"stop-color:var(--c1)\"\/><stop offset=\"1\" style=\"stop-color:var(--c2)\"\/><\/linearGradient><\/defs>\r\n          <circle class=\"blob\" cx=\"80\" cy=\"56\" r=\"64\"\/><g stroke=\"url(#jo6-s4)\"><path class=\"d\" pathLength=\"1\" style=\"--k:0\" d=\"M32 16h96a14 14 0 0 1 14 14v34a14 14 0 0 1-14 14H88l-22 20V78H32a14 14 0 0 1-14-14V30a14 14 0 0 1 14-14z\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:2\" d=\"M42 38h46M42 54h28\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:3\" d=\"M108 36l16 10-16 10z\"\/><\/g><circle class=\"dot\" cx=\"146\" cy=\"12\" r=\"4\"\/><circle class=\"dot\" cx=\"10\" cy=\"96\" r=\"3\"\/><\/svg><\/div>\r\n        <span class=\"jo6-badge\">Creative<\/span><span class=\"jo6-num\">4<\/span>\r\n        <div class=\"jo6-body\">\r\n          <h3 class=\"jo6-h\"><button class=\"jo6-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo6-p4\"><span class=\"jo6-ht\">Improve Japanese IQ<\/span><span class=\"jo6-hs\">by Manga, Drama, and Anime<\/span><\/button><\/h3>\r\n          <p class=\"jo6-lead\"><span class=\"jo6-hl\">From Textbook to Real Japanese!<\/span><\/p>\r\n          <span class=\"jo6-tog\" aria-hidden=\"true\"><\/span>\r\n          <div class=\"jo6-panel\" id=\"jo6-p4\" inert><div class=\"jo6-pin\"><div class=\"jo6-pbody\">\r\n            <p class=\"jo6-b\" style=\"--k:0\">Ever found yourself lost in anime dialogue even though you understand \u201cregular\u201d Japanese? Confused why manga characters speak so differently from your textbook? You\u2019re not alone!<\/p>\r\n            <p class=\"jo6-b t\" style=\"--k:1\"><span class=\"jo6-hl\">Transform Your Japanese from Textbook to Real Life:<\/span><\/p>\r\n            <ul>\r\n              <li class=\"jo6-b\" style=\"--k:2\">Master authentic teenage slang<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:3\">Understand character-specific speaking styles<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:4\">Learn casual conversation patterns<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:5\">Decode modern internet expressions<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:6\">Express emotions naturally<\/li>\r\n            <\/ul>\r\n            <p class=\"jo6-b\" style=\"--k:7\"><span class=\"jo6-hl\">Bring Your Own Material!<\/span> Your favorite manga scenes, anime episodes, drama moments - any Japanese content you want to understand better. We don\u2019t just translate - we dive deep into cultural context and natural usage.<\/p>\r\n            <p class=\"jo6-b\" style=\"--k:8\">This isn\u2019t just learning - it\u2019s your key to unlocking the Japanese you\u2019ve always wanted to speak!<\/p>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/article><\/li>\r\n\r\n      <!-- 5 -->\r\n      <li class=\"jo6-li\" style=\"--i:4\"><article class=\"jo6-card\" id=\"intensive-grammar\" style=\"--c1:#a29bfe;--c2:#6c5ce7;--hl:rgba(162,155,254,.4)\">\r\n        <div class=\"jo6-art\" aria-hidden=\"true\"><svg viewBox=\"0 0 160 110\"><defs><linearGradient id=\"jo6-s5\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" style=\"stop-color:var(--c1)\"\/><stop offset=\"1\" style=\"stop-color:var(--c2)\"\/><\/linearGradient><\/defs>\r\n          <circle class=\"blob\" cx=\"80\" cy=\"56\" r=\"64\"\/><g stroke=\"url(#jo6-s5)\"><path class=\"d\" pathLength=\"1\" style=\"--k:0\" d=\"M80 8l46 30-46 64L34 38z\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:2\" d=\"M34 38h92\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:3\" d=\"M80 8L62 38l18 64 18-64z\"\/><\/g><circle class=\"dot\" cx=\"140\" cy=\"20\" r=\"4\"\/><circle class=\"dot\" cx=\"22\" cy=\"86\" r=\"3\"\/><\/svg><\/div>\r\n        <span class=\"jo6-badge\">Advanced<\/span><span class=\"jo6-num\">5<\/span>\r\n        <div class=\"jo6-body\">\r\n          <h3 class=\"jo6-h\"><button class=\"jo6-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo6-p5\"><span class=\"jo6-ht\">Intensive Grammar:<\/span><span class=\"jo6-hs\">From Complex to Crystal Clear<\/span><\/button><\/h3>\r\n          <p class=\"jo6-lead\"><span class=\"jo6-hl\">Struggling with Japanese Grammar? Let\u2019s Change That\u2014Forever!<\/span><\/p>\r\n          <span class=\"jo6-tog\" aria-hidden=\"true\"><\/span>\r\n          <div class=\"jo6-panel\" id=\"jo6-p5\" inert><div class=\"jo6-pin\"><div class=\"jo6-pbody\">\r\n            <p class=\"jo6-b\" style=\"--k:0\">Forget everything you\u2019ve heard about Japanese grammar being \u201ctoo hard.\u201d What if particles, passive-causative forms, and honorific expressions could feel natural? The key isn\u2019t memorizing rules\u2014it\u2019s understanding the SOUL of the language.<\/p>\r\n            <p class=\"jo6-b t\" style=\"--k:1\"><span class=\"jo6-hl\">What We\u2019ll Master Together:<\/span><\/p>\r\n            <ul>\r\n              <li class=\"jo6-b\" style=\"--k:2\">PARTICLES \u2013 From confusing to crystal clear<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:3\">Passive-Causative Forms \u2013 Learn their flow naturally<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:4\">Honorific Verbs \u2013 Speak formal Japanese with ease<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:5\">Humble &amp; Extra-modest Expressions \u2013 Express respect effortlessly<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:6\">Conjugations \u2013 No more second-guessing<\/li>\r\n            <\/ul>\r\n            <p class=\"jo6-b\" style=\"--k:7\">Japanese grammar isn\u2019t just rules\u2014it\u2019s a reflection of culture and mindset. Once you see the connections, everything starts to click. From confusion to clarity, from hesitation to confidence!<\/p>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/article><\/li>\r\n\r\n      <!-- 6 -->\r\n      <li class=\"jo6-li\" style=\"--i:5\"><article class=\"jo6-card\" id=\"conversation-class\" style=\"--c1:#fdcb6e;--c2:#fd79a8;--hl:rgba(253,203,110,.46)\">\r\n        <div class=\"jo6-art\" aria-hidden=\"true\"><svg viewBox=\"0 0 160 110\"><defs><linearGradient id=\"jo6-s6\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" style=\"stop-color:var(--c1)\"\/><stop offset=\"1\" style=\"stop-color:var(--c2)\"\/><\/linearGradient><\/defs>\r\n          <circle class=\"blob\" cx=\"80\" cy=\"56\" r=\"64\"\/><g stroke=\"url(#jo6-s6)\"><path class=\"d\" pathLength=\"1\" style=\"--k:0\" d=\"M26 14h62a12 12 0 0 1 12 12v22a12 12 0 0 1-12 12H56L38 76V60h-12A12 12 0 0 1 14 48V26a12 12 0 0 1 12-12z\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:2\" d=\"M82 48h52a12 12 0 0 1 12 12v22a12 12 0 0 1-12 12h-12v14L104 94H82A12 12 0 0 1 70 82V60a12 12 0 0 1 12-12z\"\/><path class=\"d\" pathLength=\"1\" style=\"--k:3\" d=\"M34 30v10M44 25v20M54 32v8M96 66v10M106 61v20M116 68v8\"\/><\/g><circle class=\"dot\" cx=\"148\" cy=\"12\" r=\"4\"\/><\/svg><\/div>\r\n        <span class=\"jo6-badge dark\">Interactive<\/span><span class=\"jo6-num\">6<\/span>\r\n        <div class=\"jo6-body\">\r\n          <h3 class=\"jo6-h\"><button class=\"jo6-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jo6-p6\"><span class=\"jo6-ht\">Conversation Class:<\/span><span class=\"jo6-hs\">Speak Like a Native from Day One<\/span><\/button><\/h3>\r\n          <p class=\"jo6-lead\"><span class=\"jo6-hl\">Stop Learning Japanese, Start SPEAKING Japanese!<\/span><\/p>\r\n          <span class=\"jo6-tog\" aria-hidden=\"true\"><\/span>\r\n          <div class=\"jo6-panel\" id=\"jo6-p6\" inert><div class=\"jo6-pin\"><div class=\"jo6-pbody\">\r\n            <p class=\"jo6-b\" style=\"--k:0\">Tired of understanding Japanese but freezing up when it\u2019s time to speak? This conversation-focused approach gets you talking confidently from the very first lesson - no matter your current level!<\/p>\r\n            <p class=\"jo6-b t\" style=\"--k:1\"><span class=\"jo6-hl\">What Makes This Different:<\/span><\/p>\r\n            <ul>\r\n              <li class=\"jo6-b\" style=\"--k:2\">Real conversations, not scripted dialogues<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:3\">Learn to think in Japanese, not translate<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:4\">Master natural rhythm and intonation<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:5\">Build confidence through practical scenarios<\/li>\r\n              <li class=\"jo6-b\" style=\"--k:6\">Express your personality in Japanese<\/li>\r\n            <\/ul>\r\n            <p class=\"jo6-b\" style=\"--k:7\">Whether you\u2019re a complete beginner or advanced learner, we\u2019ll create conversation opportunities that match your level. From ordering coffee to discussing your dreams - you\u2019ll speak with confidence and authenticity.<\/p>\r\n            <p class=\"jo6-b\" style=\"--k:8\">Ready to unlock your Japanese speaking potential? Let\u2019s start talking!<\/p>\r\n          <\/div><\/div><\/div>\r\n        <\/div>\r\n      <\/article><\/li>\r\n\r\n    <\/ul>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  var root = document.getElementById('jo-lessons');\r\n  if (!root) return;\r\n  var calm = matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var fine = matchMedia('(hover:hover) and (pointer:fine)').matches;\r\n  var burst = function (x, y, n) { if (window.JOFX && window.JOFX.burst) window.JOFX.burst(x, y, n); };\r\n  root.classList.add('jo6-js');\r\n\r\n  var cards = [].slice.call(root.querySelectorAll('.jo6-card'));\r\n  var hub = document.getElementById('jo6-hub');\r\n\r\n  \/* ---- arrival: cards rise in, the hub draws itself; pause decoration off-screen ---- *\/\r\n  if ('IntersectionObserver' in window) {\r\n    var io = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { e.target.classList.add('is-in'); io.unobserve(e.target); } }); }, { threshold: .14 });\r\n    [].forEach.call(root.querySelectorAll('.jo6-li,.jo6-rv'), function (el) { io.observe(el); });\r\n    var ho = new IntersectionObserver(function (es, o) { if (es[0].isIntersecting) { hub.classList.add('is-in'); o.disconnect(); } }, { threshold: .3 }); ho.observe(hub);\r\n    new IntersectionObserver(function (es) { root.classList.toggle('jo6-off', !es[0].isIntersecting); }, { rootMargin: '120px' }).observe(root);\r\n  } else { [].forEach.call(root.querySelectorAll('.jo6-li,.jo6-rv'), function (el) { el.classList.add('is-in'); }); hub.classList.add('is-in'); }\r\n\r\n  \/* ---- open \/ close (one at a time); the text sweeps in from the left ---- *\/\r\n  function setOpen(card, open) {\r\n    var btn = card.querySelector('.jo6-btn'), panel = card.querySelector('.jo6-panel');\r\n    card.classList.toggle('is-open', open);\r\n    btn.setAttribute('aria-expanded', open ? 'true' : 'false');\r\n    if (open) panel.removeAttribute('inert'); else panel.setAttribute('inert', '');\r\n  }\r\n  function openCard(card, opts) {\r\n    cards.forEach(function (c) { if (c !== card && c.classList.contains('is-open')) setOpen(c, false); });\r\n    var wasOpen = card.classList.contains('is-open');\r\n    setOpen(card, opts && opts.toggle ? !wasOpen : true);\r\n    if (card.classList.contains('is-open')) {\r\n      var r = card.querySelector('.jo6-num').getBoundingClientRect();\r\n      burst(r.left + r.width \/ 2, r.top + r.height \/ 2, 4);\r\n      setTimeout(function () {\r\n        var b = card.getBoundingClientRect();\r\n        if (b.bottom > innerHeight - 20 || b.top < 60) card.scrollIntoView({ behavior: calm ? 'auto' : 'smooth', block: 'center' });\r\n      }, 420);\r\n    }\r\n  }\r\n  cards.forEach(function (c) {\r\n    c.querySelector('.jo6-btn').addEventListener('click', function () { openCard(c, { toggle: true }); });\r\n  });\r\n\r\n  \/* ---- hub and deep links: jump to an approach and open it ---- *\/\r\n  function go(id) {\r\n    var card = document.getElementById(id);\r\n    if (!card || cards.indexOf(card) < 0) return false;\r\n    card.scrollIntoView({ behavior: calm ? 'auto' : 'smooth', block: 'center' });\r\n    openCard(card);\r\n    card.classList.remove('is-spot'); void card.offsetWidth; card.classList.add('is-spot');\r\n    return true;\r\n  }\r\n  [].forEach.call(hub.querySelectorAll('.jo6-node'), function (n) {\r\n    n.addEventListener('click', function () { go(n.getAttribute('data-go')); });\r\n  });\r\n  function fromHash() { var h = decodeURIComponent(location.hash.replace('#', '')); if (h) go(h); }\r\n  addEventListener('hashchange', fromHash);\r\n  if (location.hash) setTimeout(fromHash, 600);\r\n  window.JO_openLesson = go;\r\n\r\n  \/* ---- 3D tilt and light on the cards (mouse only) ---- *\/\r\n  if (fine && !calm) {\r\n    cards.forEach(function (c) {\r\n      c.addEventListener('pointermove', function (e) {\r\n        var r = c.getBoundingClientRect(), x = e.clientX - r.left, y = e.clientY - r.top;\r\n        c.style.setProperty('--ry', ((x \/ r.width - .5) * 8).toFixed(2) + 'deg');\r\n        c.style.setProperty('--rx', (-(y \/ r.height - .5) * 6).toFixed(2) + 'deg');\r\n        c.style.setProperty('--gx', x + 'px'); c.style.setProperty('--gy', y + 'px');\r\n      }, { passive: true });\r\n      c.addEventListener('pointerleave', function () { c.style.setProperty('--rx', '0deg'); c.style.setProperty('--ry', '0deg'); });\r\n    });\r\n  }\r\n\r\n  \/* ---- stay flush with neighbouring sections ---- *\/\r\n  function flush() {\r\n    root.style.removeProperty('margin-top'); root.style.removeProperty('margin-bottom');\r\n    function visible(el) { var cs = getComputedStyle(el); return !\/^(SCRIPT|STYLE|NOSCRIPT|CANVAS|LINK|PRE)$\/.test(el.tagName) && el.offsetHeight > 0 && cs.position !== 'fixed' && cs.position !== 'absolute'; }\r\n    function neighbour(dir) {\r\n      var el = root;\r\n      while (el && el !== document.body && el !== document.documentElement) {\r\n        var s = dir > 0 ? el.nextElementSibling : el.previousElementSibling;\r\n        while (s && !visible(s)) s = dir > 0 ? s.nextElementSibling : s.previousElementSibling;\r\n        if (s) return s; el = el.parentElement;\r\n      } return null;\r\n    }\r\n    var prev = neighbour(-1), next = neighbour(1);\r\n    if (prev) { var gt = root.getBoundingClientRect().top - prev.getBoundingClientRect().bottom; if (gt > .5 && gt < 120) root.style.setProperty('margin-top', -gt + 'px', 'important'); }\r\n    if (next) { var gb = next.getBoundingClientRect().top - root.getBoundingClientRect().bottom; if (gb > .5 && gb < 120) root.style.setProperty('margin-bottom', -gb + 'px', 'important'); }\r\n  }\r\n  flush(); addEventListener('load', flush); addEventListener('resize', flush);\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-33aae036 elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"33aae036\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3b8da8ae\" data-id=\"3b8da8ae\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4a8bcc55 elementor-widget elementor-widget-html\" data-id=\"4a8bcc55\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elegant-japanese-section-wrapper\" style=\"\r\n    position: relative;\r\n    overflow: hidden;\r\n    padding: 100px 20px;\r\n    box-sizing: border-box;\r\n    width: 100vw;\r\n    margin-left: calc(50% - 50vw);\r\n    margin-right: calc(50% - 50vw);\r\n    text-align: center;\r\n    font-family: 'Advent Pro', sans-serif;\r\n    color: #333;\r\n    background: linear-gradient(\r\n        -45deg,\r\n        #fce4ec, \/* Pale Pink *\/\r\n        #e0f7fa, \/* Light Cyan *\/\r\n        #e8f5e9, \/* Pale Green *\/\r\n        #ede7f6, \/* Lavender *\/\r\n        #fff3e0, \/* Pale Orange *\/\r\n        #ffe0b2  \/* Light Orange *\/\r\n    );\r\n    background-size: 600% 600%;\r\n    animation: slowGradientShift 40s ease-in-out infinite;\r\n    z-index: 1;\r\n\">\r\n\r\n    <style>\r\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;400;600;700&family=Noto+Sans+JP:wght@300;400;500&display=swap');\r\n\r\n        \/* Background Gradient Animation *\/\r\n        @keyframes slowGradientShift {\r\n            0% { background-position: 0% 50%; }\r\n            25% { background-position: 100% 50%; }\r\n            50% { background-position: 100% 0%; }\r\n            75% { background-position: 0% 0%; }\r\n            100% { background-position: 0% 50%; }\r\n        }\r\n\r\n        \/* Title Color Animation *\/\r\n        @keyframes rainbowText {\r\n            0% { background-position: 0% 50%; }\r\n            50% { background-position: 100% 50%; }\r\n            100% { background-position: 0% 50%; }\r\n        }\r\n        .animated-main-title {\r\n            background: linear-gradient(135deg, #a29bfe, #74b9ff, #55efc4, #f9ca24, #f06292);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            color: transparent; \/* Fallback for browsers that don't support background-clip: text *\/\r\n            background-size: 400% 100%;\r\n            animation: rainbowText 5s linear infinite;\r\n        }\r\n\r\n        \/* Sub-heading (Playful part) Animation *\/\r\n        @keyframes fadeInScale {\r\n            0% { opacity: 0; transform: scale(0.9); }\r\n            100% { opacity: 1; transform: scale(1); }\r\n        }\r\n        .playful-heading {\r\n            font-family: 'Advent Pro', sans-serif;\r\n            font-weight: 600;\r\n            font-size: clamp(1.5rem, 3vw, 2.2rem);\r\n            margin-bottom: 20px;\r\n            cursor: pointer;\r\n            position: relative;\r\n            text-shadow: 1px 1px 5px rgba(0,0,0,0.05);\r\n            transition: all 0.3s ease;\r\n            display: flex; \/* Use flexbox for layout *\/\r\n            justify-content: space-between; \/* Space out text and icon *\/\r\n            align-items: center; \/* Vertically align items *\/\r\n            padding: 15px 25px; \/* Add padding to make it look like a button *\/\r\n            background: rgba(255, 255, 255, 0.9); \/* Subtle white background for the button look *\/\r\n            border-radius: 10px; \/* Rounded corners for the button *\/\r\n            box-shadow: 0 5px 15px rgba(0,0,0,0.05); \/* Soft shadow for depth *\/\r\n            animation: fadeInScale 0.7s ease-out forwards;\r\n            opacity: 0; \/* Hidden until fadeInScale animation applies *\/\r\n            transform: scale(0.9);\r\n        }\r\n        .playful-heading::after {\r\n            content: '+';\r\n            font-size: 2rem; \/* Larger icon for better visibility *\/\r\n            color: #74b9ff;\r\n            transition: transform 0.3s ease;\r\n            margin-left: 15px; \/* Space between text and icon *\/\r\n        }\r\n        .playful-heading.active::after {\r\n            content: '-';\r\n            transform: rotate(180deg); \/* Only rotate, flex handles position *\/\r\n        }\r\n        .playful-heading:hover {\r\n            color: #74b9ff; \/* Slight color change on hover *\/\r\n            transform: scale(1.02);\r\n            box-shadow: 0 8px 20px rgba(0,0,0,0.1); \/* More pronounced shadow on hover *\/\r\n        }\r\n\r\n        \/* Toggle Content *\/\r\n        .toggle-content {\r\n            max-height: 0;\r\n            overflow: hidden;\r\n            \/* Transition max-height and padding for smooth animation *\/\r\n            transition: max-height 0.4s ease-out, padding-top 0.4s ease-out, padding-bottom 0.4s ease-out;\r\n            padding-left: 20px; \/* Keep horizontal padding always *\/\r\n            padding-right: 20px; \/* Keep horizontal padding always *\/\r\n            padding-top: 0; \/* Initial vertical padding is 0 *\/\r\n            padding-bottom: 0; \/* Initial vertical padding is 0 *\/\r\n            font-family: 'Noto Sans JP', sans-serif;\r\n            font-size: 1rem;\r\n            color: #555;\r\n            line-height: 1.6;\r\n            text-align: left;\r\n            background: rgba(255, 255, 255, 0.7);\r\n            border-radius: 8px;\r\n            box-shadow: inset 0 2px 5px rgba(0,0,0,0.05);\r\n            margin-top: 10px;\r\n        }\r\n        .toggle-content.open {\r\n            \/* max-height set dynamically by JS *\/\r\n            padding-top: 20px; \/* Apply vertical padding when open *\/\r\n            padding-bottom: 20px; \/* Apply vertical padding when open *\/\r\n        }\r\n\r\n        \/* Overall Container *\/\r\n        .content-container {\r\n            max-width: 900px;\r\n            margin: 0 auto;\r\n            position: relative;\r\n            z-index: 2;\r\n            text-align: center;\r\n        }\r\n\r\n        \/* Each Item *\/\r\n        .content-item {\r\n            background: rgba(255, 255, 255, 0.85);\r\n            border-radius: 15px;\r\n            padding: 25px;\r\n            margin-bottom: 30px;\r\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\r\n            backdrop-filter: blur(5px); \/* Background blur effect *\/\r\n            -webkit-backdrop-filter: blur(5px);\r\n            border: 1px solid rgba(255, 255, 255, 0.4);\r\n        }\r\n        .content-item:last-child {\r\n            margin-bottom: 0;\r\n        }\r\n\r\n        \/* Playful Heading Color Variations *\/\r\n        .playful-heading-1 { background: linear-gradient(45deg, #a29bfe, #74b9ff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }\r\n        .playful-heading-2 { background: linear-gradient(45deg, #ffeaa7, #fab1a0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.1s; }\r\n        .playful-heading-3 { background: linear-gradient(45deg, #55efc4, #81ecec); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.2s; }\r\n        .playful-heading-4 { background: linear-gradient(45deg, #f9ca24, #ffda79); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.3s; }\r\n        .playful-heading-5 { background: linear-gradient(45deg, #ff7675, #fd79a8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.4s; }\r\n        .playful-heading-6 { background: linear-gradient(45deg, #6c5ce7, #a29bfe); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.5s; }\r\n        .playful-heading-7 { background: linear-gradient(45deg, #00b894, #55efc4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.6s; }\r\n        .playful-heading-8 { background: linear-gradient(45deg, #ff9f43, #ffeaa7); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.7s; }\r\n        .playful-heading-9 { background: linear-gradient(45deg, #d63031, #ff7675); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.8s; }\r\n        .playful-heading-10 { background: linear-gradient(45deg, #2d3436, #636e72); -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation-delay: 0.9s; }\r\n\r\n\r\n        \/* Responsive Adjustments *\/\r\n        @media (max-width: 768px) {\r\n            .elegant-japanese-section-wrapper {\r\n                padding: 60px 15px;\r\n            }\r\n            .content-item {\r\n                padding: 15px;\r\n            }\r\n            .playful-heading {\r\n                font-size: 1.1rem; \/* Adjusted for mobile to be readable and button-like *\/\r\n                padding: 12px 20px; \/* Slightly less padding on mobile *\/\r\n            }\r\n            .playful-heading::after {\r\n                font-size: 1.6rem; \/* Keep icon relatively large on mobile *\/\r\n                margin-left: 10px;\r\n            }\r\n            .toggle-content {\r\n                padding-left: 15px;\r\n                padding-right: 15px;\r\n            }\r\n            .toggle-content.open {\r\n                padding-top: 15px;\r\n                padding-bottom: 15px;\r\n            }\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"content-container\">\r\n        <h1 class=\"animated-main-title\" style=\"\r\n            font-size: clamp(3rem, 7vw, 5rem);\r\n            font-weight: 300;\r\n            margin-bottom: 50px;\r\n            letter-spacing: 3px;\r\n            text-transform: uppercase;\r\n            text-shadow: 3px 3px 10px rgba(0, 0, 0, 0.15);\r\n        \">\r\n            Why Japan?<br>WHY Japanese?\r\n        <\/h1>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-1\">\r\n                Experience Unparalleled Safety and Cleanliness!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Discover true peace of mind living in <strong>Japan<\/strong>, consistently ranked among the world's safest nations. With an <strong>exceptionally low crime rate<\/strong>, Japan offers a secure environment for residents and visitors alike. This strong emphasis on safety, coupled with its renowned <strong>pristine cleanliness<\/strong>, significantly enhances the quality of life, making Japan an incredibly appealing place to live, visit, or study. Our Japanese lessons prepare you not just for the language, but for a life in this secure and beautiful country.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-2\">\r\n                Immerse Yourself in a Cultural Wonderland!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Step into a world unlike any other \u2013 a true <strong>bucket-lister's paradise<\/strong>. Japan masterfully blends <strong>ancient traditions<\/strong> with awe-inspiring <strong>modernization<\/strong>. As an island nation with a history of isolation, its culture developed uniquely, largely untouched by external influences. Dive into the captivating world of <strong>anime, cutting-edge technology, exquisite manners, stunning architecture, vibrant cosplay, and a culinary tapestry<\/strong> that will tantalize your taste buds. Learning Japanese opens the door to fully experiencing this kaleidoscope of captivating and inspiring cultural wonders.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-3\">\r\n                Enrich Your Business Prospects!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Japan boasts the <strong>world\u2019s third-largest economy<\/strong>, presenting <strong>lucrative business prospects<\/strong> for ambitious individuals. Gaining access to this vast market, comprising 120 million sophisticated and affluent consumers, unlocks extensive growth potential. As a vital member of the international trade system, Japan upholds the rule of law and provides <strong>robust protection for intellectual and real property rights<\/strong>, offering a secure and dynamic environment for businesses to thrive. Mastering Japanese is a powerful asset for anyone looking to succeed in the global marketplace.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-4\">\r\n                Bridge the Workforce Gap!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    With its rapidly declining population, Japan faces a pressing need for <strong>skilled foreign workers<\/strong>. By 2030, an estimated 6.4 million workers (nearly 10 percent of the working population) are projected to exit the workforce, exacerbating a critical labor shortage. To stabilize its demographics, Japan aims to welcome 200,000 to 400,000 new immigrants annually and seeks to accommodate <strong>10 million foreign workers by 2050<\/strong>. This presents a unique and significant opportunity to become part of Japan\u2019s future workforce, and <strong>learning Japanese<\/strong> is your key to seizing it.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-5\">\r\n                Savor Exquisite Gastronomy!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Immerse yourself in the incredible diversity of Japan's <strong>exquisite cuisine<\/strong>, celebrated worldwide for its meticulous attention to detail, artistry, and harmonious flavors. From the delicate nuances of <strong>sushi<\/strong> and the comforting warmth of <strong>ramen<\/strong> to the tantalizing variety of street food and regionally influenced specialties, Japanese gastronomy is a captivating journey that entices the taste buds and leaves a lasting impression. Embark on a culinary odyssey through vibrant markets, traditional izakayas, and Michelin-starred restaurants. Your Japanese language skills will unlock deeper experiences in this global culinary hub.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-6\">\r\n                Revel in Natural Beauty!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Discover the awe-inspiring <strong>natural landscapes<\/strong> that grace Japan\u2019s archipelago, where diverse terrains create a visual symphony that captivates the soul. From the ethereal charm of <strong>cherry blossom gardens<\/strong> to the iconic grandeur of <strong>Mount Fuji<\/strong>, Japan offers a rich tapestry of natural wonders. Explore national parks, wander through enchanting forests, and discover hidden gems along pristine coastlines. Unwind in the therapeutic embrace of traditional <strong>hot springs (onsen)<\/strong>. Learning Japanese allows you to connect more deeply with the local culture and truly appreciate these stunning natural environments.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-7\">\r\n                Gain a Global Edge and Expand Your Horizons!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Mastering the <strong>Japanese language<\/strong> opens a gateway to a world of global opportunities, significantly expanding your professional horizons. With Japan\u2019s status as a <strong>technological powerhouse, innovation hub, and leader in research and development<\/strong>, Japanese proficiency empowers you to engage with cutting-edge industries and collaborate with forward-thinking professionals. Whether you aspire to work in technology, engineering, business, or academia, fluency in Japanese provides a <strong>competitive advantage<\/strong>. Connect with multinational companies, leverage Japan\u2019s extensive business networks, and gain insights into a dynamic global economy.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-8\">\r\n                Connect with a Unique Community and Foster Lasting Friendships!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Join a vibrant and inclusive community of <strong>Japanese language learners and enthusiasts<\/strong>, where diverse backgrounds converge in a shared passion for language and culture. Engage in <strong>language exchanges, cultural events, and online forums<\/strong>, forging connections that transcend geographical boundaries. Immerse yourself in a supportive network of fellow learners, native speakers, and experienced tutors eager to share their knowledge. Participate in lively discussions, exchange tips, and celebrate cultural exchange. Through these interactions, you'll not only enhance your language skills but also create <strong>lifelong friendships<\/strong> and cultivate a global perspective.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-9\">\r\n                Unlock Japan's Rich History and Immerse Yourself in Timeless Traditions!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Delve deep into the captivating annals of <strong>Japan\u2019s rich historical tapestry<\/strong>, immersing yourself in the wonders of the <strong>samurai era<\/strong>, the grandeur of <strong>feudal castles<\/strong>, and the time-honored traditions that have shaped the nation\u2019s identity. Indulge your curiosity as you explore a myriad of historical sites, wander through enlightening museums, and witness the mastery of traditional arts that breathe life into Japan\u2019s cultural heritage. Learning Japanese allows you to forge a profound connection with the past and gain a newfound appreciation for the stories etched within its walls.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"content-item\">\r\n            <h3 class=\"playful-heading playful-heading-10\">\r\n                Embrace a Journey of Personal Growth and Cross-Cultural Exploration!\r\n            <\/h3>\r\n            <div class=\"toggle-content\">\r\n                <p>\r\n                    Embarking on the path of <strong>learning Japanese<\/strong> is more than just acquiring language proficiency; it's a transformative journey that nurtures <strong>personal growth<\/strong>, cultivates adaptability, fosters resilience, and deepens your understanding of diverse cultures. As you immerse yourself in the complexities of this vibrant language, you unlock the potential for limitless personal enrichment and expanded perspectives. Each step on this linguistic odyssey broadens your horizons, encourages self-discovery, and opens doors to meaningful cross-cultural interactions, empowering you to navigate the interconnected world with confidence and embrace the beauty of shared humanity.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        document.addEventListener('DOMContentLoaded', function() {\r\n            const playfulHeadings = document.querySelectorAll('.playful-heading');\r\n\r\n            playfulHeadings.forEach((heading, index) => {\r\n                \/\/ Apply staggered animation delay for each heading\r\n                heading.style.animationDelay = (index * 0.1) + 's';\r\n                \/\/ No need to set opacity: '1' here, as the fadeInScale animation handles it\r\n                \/\/ heading.style.opacity = '1'; \/\/ Removed this line\r\n\r\n                heading.addEventListener('click', function() {\r\n                    const toggleContent = this.nextElementSibling;\r\n                    const isActive = this.classList.toggle('active'); \/\/ Toggle 'active' class on heading\r\n\r\n                    if (isActive) {\r\n                        \/\/ Set max-height to content's scroll height plus vertical padding (20px top + 20px bottom = 40px)\r\n                        toggleContent.style.maxHeight = (toggleContent.scrollHeight + 40) + 'px';\r\n                        toggleContent.classList.add('open'); \/\/ Add 'open' class for CSS padding transition\r\n                    } else {\r\n                        toggleContent.style.maxHeight = '0'; \/\/ Collapse content\r\n                        toggleContent.classList.remove('open'); \/\/ Remove 'open' class\r\n                    }\r\n                });\r\n            });\r\n        });\r\n    <\/script>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-770fdc12 elementor-hidden-tablet elementor-hidden-mobile elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"770fdc12\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5b47f374\" data-id=\"5b47f374\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1ea07c42 elementor-widget elementor-widget-html\" data-id=\"1ea07c42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elegant-japanese-section-wrapper\" style=\"\r\n    position: relative;\r\n    overflow: hidden;\r\n    padding: 100px 20px;\r\n    box-sizing: border-box;\r\n    width: 100vw;\r\n    margin-left: calc(50% - 50vw);\r\n    margin-right: calc(50% - 50vw);\r\n    text-align: center;\r\n    font-family: 'Advent Pro', sans-serif;\r\n    color: #333;\r\n    background: linear-gradient(\r\n        -45deg,\r\n        #fce4ec, \/* Pale Pink *\/\r\n        #e0f7fa, \/* Light Cyan *\/\r\n        #e8f5e9, \/* Pale Green *\/\r\n        #ede7f6, \/* Lavender *\/\r\n        #fff3e0, \/* Pale Orange *\/\r\n        #ffe0b2  \/* Light Orange *\/\r\n    );\r\n    background-size: 600% 600%;\r\n    animation: slowGradientShift 40s ease-in-out infinite;\r\n    z-index: 1;\r\n\">\r\n\r\n    <style>\r\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Advent+Pro:wght@300;400;600;700&family=Noto+Sans+JP:wght@300;400;500&display=swap');\r\n        \/* Font Awesome for icons *\/\r\n        @import url('https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css');\r\n\r\n        \/* Background Gradient Animation *\/\r\n        @keyframes slowGradientShift {\r\n            0% { background-position: 0% 50%; }\r\n            25% { background-position: 100% 50%; }\r\n            50% { background-position: 100% 0%; }\r\n            75% { background-position: 0% 0%; }\r\n            100% { background-position: 0% 50%; }\r\n        }\r\n\r\n        \/* Main Section Title Color Animation *\/\r\n        @keyframes rainbowText {\r\n            0% { background-position: 0% 50%; }\r\n            50% { background-position: 100% 50%; }\r\n            100% { background-position: 0% 50%; }\r\n        }\r\n        .animated-main-title {\r\n            background: linear-gradient(135deg, #a29bfe, #74b9ff, #55efc4, #f9ca24, #f06292);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            color: transparent; \/* Fallback for browsers that don't support background-clip: text *\/\r\n            background-size: 400% 100%;\r\n            animation: rainbowText 5s linear infinite;\r\n        }\r\n\r\n        \/* Card entry animation *\/\r\n        @keyframes cardFadeInUp {\r\n            0% { opacity: 0; transform: translateY(50px); }\r\n            100% { opacity: 1; transform: translateY(0); }\r\n        }\r\n\r\n        \/* List item entry animation *\/\r\n        @keyframes listItemFadeIn {\r\n            0% { opacity: 0; transform: translateX(-10px); }\r\n            100% { opacity: 1; transform: translateX(0); }\r\n        }\r\n\r\n        \/* Overall Container *\/\r\n        .content-container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            position: relative;\r\n            z-index: 2;\r\n            text-align: center;\r\n        }\r\n\r\n        \/* Offerings Grid *\/\r\n        .offerings-grid {\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            justify-content: center;\r\n            gap: 30px;\r\n            margin-top: 50px;\r\n        }\r\n\r\n        \/* Offering Card *\/\r\n        .offering-card {\r\n            flex: 1 1 calc(50% - 30px); \/* 2 columns on desktop *\/\r\n            max-width: 500px; \/* Max width for larger screens *\/\r\n            background: rgba(255, 255, 255, 0.9);\r\n            border-radius: 20px;\r\n            padding: 35px;\r\n            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);\r\n            transition: transform 0.4s ease, box-shadow 0.4s ease;\r\n            text-align: left;\r\n            border: 1px solid rgba(255, 255, 255, 0.6);\r\n            backdrop-filter: blur(8px);\r\n            -webkit-backdrop-filter: blur(8px);\r\n            animation: cardFadeInUp 0.8s ease-out forwards;\r\n            opacity: 0; \/* Hidden until animation *\/\r\n            transform: translateY(50px);\r\n            position: relative; \/* For gradient overlay *\/\r\n            overflow: hidden; \/* For gradient overlay *\/\r\n        }\r\n        .offering-card:hover {\r\n            transform: translateY(-10px) scale(1.02) rotateZ(1deg); \/* Added slight rotation *\/\r\n            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.18); \/* Stronger shadow on hover *\/\r\n        }\r\n        \r\n        \/* Gradient Overlay for Card Titles (new approach) *\/\r\n        .offering-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            border-radius: 20px;\r\n            pointer-events: none; \/* Allow clicks to pass through *\/\r\n            opacity: 0.7; \/* Slightly more visible highlight *\/\r\n            transition: opacity 0.3s ease;\r\n        }\r\n\r\n        \/* Specific subtle gradient for each card's overlay - Distinct Characters *\/\r\n        .offering-card.intensive::before { background: linear-gradient(45deg, rgba(255, 100, 100, 0.05), rgba(255, 170, 170, 0.02)); } \/* Soft warm pink *\/\r\n        .offering-card.beginner::before { background: linear-gradient(45deg, rgba(100, 200, 255, 0.05), rgba(150, 220, 255, 0.02)); } \/* Soft cool blue *\/\r\n        .offering-card.job-hunting::before { background: linear-gradient(45deg, rgba(255, 220, 100, 0.05), rgba(255, 240, 150, 0.02)); } \/* Soft bright yellow *\/\r\n        .offering-card.tailor-made::before { background: linear-gradient(45deg, rgba(100, 255, 150, 0.05), rgba(170, 255, 200, 0.02)); } \/* Soft fresh green *\/\r\n\r\n        \/* Card Title - Explicitly dark color for readability, distinct shades *\/\r\n        .offering-card-title {\r\n            font-family: 'Advent Pro', sans-serif;\r\n            font-weight: 700; \/* Bold font weight *\/\r\n            font-size: clamp(1.8rem, 3.5vw, 2.5rem); \/* Adjust font size *\/\r\n            letter-spacing: 0.5px; \/* Slightly reduced letter spacing *\/\r\n            margin-bottom: 25px;\r\n            text-transform: uppercase;\r\n            text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1); \/* Subtle shadow for depth *\/\r\n            white-space: normal; \/* Allow text to wrap *\/\r\n            overflow: hidden; \/* Hide overflow if any *\/\r\n            text-overflow: clip; \/* Prevent ellipsis for full text visibility *\/\r\n            transition: transform 0.3s ease; \/* Add transition for title hover *\/\r\n            position: relative; \/* Ensure text is above the ::before pseudo-element *\/\r\n            z-index: 10; \/* Ensure text is above the ::before pseudo-element *\/\r\n        }\r\n        .offering-card-title:hover {\r\n            transform: scale(1.03); \/* Subtle scale on title hover *\/\r\n        }\r\n\r\n        \/* Distinct Title Colors for Character *\/\r\n        .offering-card.intensive .offering-card-title { color: #8B0000; } \/* Dark Red for intensity *\/\r\n        .offering-card.beginner .offering-card-title { color: #191970; } \/* Midnight Blue for stability *\/\r\n        .offering-card.job-hunting .offering-card-title { color: #8B4513; } \/* Saddle Brown for professionalism *\/\r\n        .offering-card.tailor-made .offering-card-title { color: #2F4F4F; } \/* Dark Slate Gray for sophistication *\/\r\n\r\n\r\n        \/* List Items *\/\r\n        .offering-card ul {\r\n            list-style: none;\r\n            padding: 0;\r\n            margin: 0;\r\n        }\r\n        .offering-card li {\r\n            font-family: 'Noto Sans JP', sans-serif;\r\n            font-size: 1.1rem;\r\n            color: #4a4a4a;\r\n            margin-bottom: 15px;\r\n            display: flex;\r\n            align-items: flex-start;\r\n            line-height: 1.4;\r\n            animation: listItemFadeIn 0.6s ease-out forwards;\r\n            opacity: 0; \/* Hidden until animation *\/\r\n            transform: translateX(-10px);\r\n        }\r\n        .offering-card li:last-child {\r\n            margin-bottom: 0;\r\n        }\r\n        \/* Checkmark Icon Color - Now unique per card *\/\r\n        .offering-card li i {\r\n            margin-right: 12px;\r\n            font-size: 1.3rem;\r\n            flex-shrink: 0; \/* Prevent icon from shrinking *\/\r\n            transform: translateY(2px); \/* Align icon vertically *\/\r\n        }\r\n        .offering-card.intensive li i { color: #FF6347; } \/* Tomato Red *\/\r\n        .offering-card.beginner li i { color: #6495ED; } \/* Cornflower Blue *\/\r\n        .offering-card.job-hunting li i { color: #FFD700; } \/* Gold *\/\r\n        .offering-card.tailor-made li i { color: #3CB371; } \/* Medium Sea Green *\/\r\n\r\n\r\n        \/* Responsive Adjustments *\/\r\n        @media (min-width: 769px) and (max-width: 1024px) {\r\n            .offering-card {\r\n                flex: 1 1 calc(50% - 30px); \/* 2 columns on tablet *\/\r\n            }\r\n        }\r\n        @media (max-width: 768px) {\r\n            .elegant-japanese-section-wrapper {\r\n                padding: 60px 15px;\r\n            }\r\n            .offering-card {\r\n                flex: 1 1 100%; \/* Full width on mobile *\/\r\n                padding: 25px;\r\n            }\r\n            .offering-card-title {\r\n                font-size: 1.8rem; \/* Adjust font size for mobile *\/\r\n            }\r\n            .offering-card li {\r\n                font-size: 1rem;\r\n            }\r\n            .offering-card li i {\r\n                font-size: 1.1rem;\r\n                margin-right: 10px;\r\n            }\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"content-container\">\r\n        <h1 class=\"animated-main-title\" style=\"\r\n            font-size: clamp(3rem, 7vw, 5rem);\r\n            font-weight: 300;\r\n            margin-bottom: 50px;\r\n            letter-spacing: 3px;\r\n            text-transform: uppercase;\r\n            text-shadow: 3px 3px 10px rgba(0, 0, 0, 0.15);\r\n        \">\r\n            Other Japanese Offering\r\n        <\/h1>\r\n\r\n        <div class=\"offerings-grid\">\r\n            <div class=\"offering-card intensive\" style=\"animation-delay: 0.1s;\">\r\n                <h3 class=\"offering-card-title\">Intensive Conversation<\/h3>\r\n                <ul>\r\n                    <li style=\"animation-delay: 0.3s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Master Natural Expressions<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.4s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Refine Accent & Speech<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.5s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Learn Useful Phraseology & Slangs<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.6s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Initiate & Lead Conversations Confidently<\/span><\/li>\r\n                <\/ul>\r\n            <\/div>\r\n\r\n            <div class=\"offering-card beginner\" style=\"animation-delay: 0.2s;\">\r\n                <h3 class=\"offering-card-title\">Absolute Beginner<\/h3>\r\n                <ul>\r\n                    <li style=\"animation-delay: 0.4s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Effective Self-Introduction Techniques<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.5s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Essential Everyday Expressions<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.6s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Vocabulary Boot Camp for Rapid Progress<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.7s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Strategies for Making New Friends in Japan<\/span><\/li>\r\n                <\/ul>\r\n            <\/div>\r\n\r\n            <div class=\"offering-card job-hunting\" style=\"animation-delay: 0.3s;\">\r\n                <h3 class=\"offering-card-title\">Job Hunting<\/h3>\r\n                <ul>\r\n                    <li style=\"animation-delay: 0.5s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Crafting Professional CVs\/Resumes<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.6s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Realistic Interview Role-Play Scenarios<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.7s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Mastering Business Calls & Email Etiquette<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.8s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Effective Workplace Communication<\/span><\/li>\r\n                <\/ul>\r\n            <\/div>\r\n\r\n            <div class=\"offering-card tailor-made\" style=\"animation-delay: 0.4s;\">\r\n                <h3 class=\"offering-card-title\">Tailor-Made Lesson<\/h3>\r\n                <ul>\r\n                    <li style=\"animation-delay: 0.6s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Customized to Meet Your Specific Objectives<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.7s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Targeting Your Strengths and Weaknesses<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.8s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Accommodating Your Unique Learning Pace<\/span><\/li>\r\n                    <li style=\"animation-delay: 0.9s;\"><i class=\"fas fa-check-circle\"><\/i> <span>Strategies to Boost Your Confidence in Japanese<\/span><\/li>\r\n                <\/ul>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        document.addEventListener('DOMContentLoaded', function() {\r\n            \/\/ No specific JS for this section's animations, as they are CSS-driven.\r\n            \/\/ The animation-delay is set directly in the HTML for staggered effects.\r\n        });\r\n    <\/script>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-39922d5f elementor-widget elementor-widget-text-editor\" data-id=\"39922d5f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><em>Refund Policy : We truly value customer satisfaction and strive to ensure that you are delighted with your purchase. If, for any reason, you find yourself less than fully satisfied with your order, we offer a convenient solution. You have the freedom to request a full refund within a generous timeframe of 120 days from the date of your purchase. Our aim is to provide you with a hassle-free experience, and thus we will gladly refund the entire cost of your order. Your contentment is our top priority, and we are committed to making things right for you.<\/em><\/p><p><em>Delivery Policy : Upon order receipt, we will provide Japanese language tutoring services according to your package&#8217;s terms. Service timing may vary based on service type and how you scheduled the date. Successful delivery is confirmed upon service completion. Contact our support team for any inquiries.<\/em><\/p><p><em>Privacy Policy : This policy covers how we use your personal information. We take your privacy seriously and will take all measures to protect your personal information.<\/em><\/p><p><em>Any personal information received will only be used to fill your order. We will not sell or redistribute your information to anyone.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-318935d elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"318935d\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6c698edf\" data-id=\"6c698edf\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-12506946 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"12506946\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong><span style=\"color: #dadada;\">Copyright \u00a9 <\/span><\/strong><strong><span style=\"color: #dadada;\">2026, JapaneseOnlineClass.com All Rights Reserved.<\/span><\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-efb78a6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"efb78a6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6929cf0\" data-id=\"6929cf0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Japanese Lessons Through Story | JapaneseOnlineClass.com Story gives language depth. Depth is what remains. 0% JapaneseOnlineClass.com JapaneseOnlineClass.com Online Japanese lessons at JapaneseOnlineClass.com: language sticks when it has story Get Started JapaneseOnlineClass.com Structure is 99%: Miss the Context, Miss the Meaning | JapaneseOnlineClass.com Japanese is not just about words and grammar\u2014it&#8217;s about perspective, culture, and the&hellip; <a class=\"more-link\" href=\"https:\/\/japaneseonlineclass.com\/\">Continue reading <span class=\"screen-reader-text\">Japanese Online Class<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":16,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-35","page","type-page","status-publish","has-post-thumbnail","hentry","entry"],"_links":{"self":[{"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/pages\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":2249,"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/pages\/35\/revisions"}],"predecessor-version":[{"id":3316,"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/pages\/35\/revisions\/3316"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=\/wp\/v2\/media\/16"}],"wp:attachment":[{"href":"https:\/\/japaneseonlineclass.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}