.rje-vocab-app{visibility:visible!important;--ink:#182033;--muted:#657084;--purple:#7c3aed;max-width:980px;margin:0 auto;padding:4px;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Bengali","Noto Sans JP",sans-serif}.rje-vocab-app *{box-sizing:border-box}.rje-vocab-app a{text-decoration:none}.rjev-hero{min-height:330px;border-radius:26px;padding:34px 20px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(145deg,#fff8f4,#fff,#eff6ff);border:1px solid #f1e9e4;box-shadow:0 12px 32px rgba(51,34,89,.08);position:relative;overflow:hidden}.rjev-hero:before{content:"🌸";position:absolute;left:20px;top:16px;font-size:76px;opacity:.55}.rjev-hero:after{content:"日本";position:absolute;right:30px;top:26px;font-size:58px;font-weight:900;color:#ef4444;opacity:.14}.rjev-logo{font-weight:900;font-size:12px}.rjev-hero h1{font-size:42px;margin:10px 0 6px;line-height:1.05}.rjev-hero h1 b{color:#ef2028}.rjev-hero p{margin:4px;color:#364152}.rjev-hero>strong{margin-top:12px}.rjev-hero i{color:#ef2028;margin:0 8px}.rjev-toolbar{display:flex;gap:10px;align-items:center;margin:14px 0}.rjev-search{flex:1;border:1px solid #ddd6fe;border-radius:15px;padding:0 12px;display:flex;align-items:center;background:#fff}.rjev-search input{border:0!important;box-shadow:none!important;outline:0;width:100%;padding:13px 9px;background:transparent}.rjev-sync{font-size:11px;background:#eef7ff;padding:8px 10px;border-radius:999px;white-space:nowrap}.rjev-icon{width:40px;height:40px;border:1px solid #ddd6fe;border-radius:13px;background:#fff;color:#6d28d9;cursor:pointer}.rjev-dashboard{padding:12px;border:1px solid #ede9fe;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(75,50,125,.08)}.rjev-continue{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:16px;border-radius:16px;background:linear-gradient(110deg,#30207b,#99135f);color:#fff}.rjev-continue>span{font-size:28px}.rjev-continue small,.rjev-continue b{display:block}.rjev-continue a{background:#f43f9d;color:#fff;padding:11px 16px;border-radius:12px;font-weight:800}.rjev-progress-mini{height:5px;background:#261d57;margin-top:8px;border-radius:9px;overflow:hidden}.rjev-progress-mini i{display:block;width:55%;height:100%;background:#fff}.rjev-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px}.rjev-actions button{border:1px solid #ebe8f5;background:#fff;border-radius:13px;padding:10px;cursor:pointer;display:grid;text-align:left;gap:2px}.rjev-actions button>b{font-size:11px;text-transform:uppercase;color:#592bc8}.rjev-actions button small{font-size:10px;color:var(--muted)}.rjev-levels h2{text-align:center;font-size:18px;margin:26px 0 16px}.rjev-level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.rjev-level-card{min-height:170px;border-radius:18px;padding:14px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid;color:#1f2937}.rjev-level-card strong{font-size:28px;color:#fff;text-shadow:0 2px 5px rgba(0,0,0,.2)}.rjev-level-card b{font-family:"Noto Serif JP",serif;font-size:37px;margin:8px 0}.rjev-level-card small{font-size:10px}.rjev-level-card em{position:absolute;right:8px;bottom:8px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.7)}.rjev-level-card.blue{background:linear-gradient(160deg,#eafff4,#b9f4d6)}.rjev-level-card.green{background:linear-gradient(160deg,#fff9d7,#ffec8d)}.rjev-level-card.orange{background:linear-gradient(160deg,#fff0d9,#ffc078)}.rjev-level-card.purple{background:linear-gradient(160deg,#ede6ff,#a98aff)}.rjev-level-card.red{background:linear-gradient(160deg,#ffe6e8,#ff8f98)}.rjev-back{display:inline-flex;margin:5px 0 15px;padding:8px 13px;border:1px solid #e9d5ff;border-radius:999px;color:#6d28d9;background:#faf7ff;font-weight:800}.rjev-section-head{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 16px}.rjev-section-head span{display:inline-block;background:#f2ecff;padding:7px 9px;border-radius:10px;font-size:12px}.rjev-section-head h2{margin:6px 0 2px;color:#4f46e5;text-transform:uppercase}.rjev-section-head p{margin:0;color:var(--muted)}.rjev-section-head>b{background:#ecfeff;padding:10px 13px;border-radius:999px;font-size:11px}.rjev-chapters{display:grid;gap:12px}.rjev-chapter{border:1px solid #dfc9ff;border-radius:16px;padding:17px 55px 17px 18px;color:var(--ink);position:relative;background:#fbf8ff}.rjev-chapter:nth-child(4n+2){background:#f0fff9;border-color:#8ce7bf}.rjev-chapter:nth-child(4n+3){background:#fff9ef;border-color:#ffc980}.rjev-chapter:nth-child(4n+4){background:#fff5f8;border-color:#ffc4da}.rjev-chapter span,.rjev-chapter strong,.rjev-chapter em{display:block}.rjev-chapter span{color:#6d28d9;font-size:12px;font-weight:900;text-transform:uppercase}.rjev-chapter strong{font-size:19px;margin:5px 0}.rjev-chapter>div{height:5px;background:#eee8ff;border-radius:8px}.rjev-chapter>div i{display:block;height:100%;width:0;background:#7c3aed}.rjev-chapter em{margin-top:8px;font-size:11px;font-weight:800}.rjev-chapter:after{content:"›";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;font-weight:900}.rjev-word-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rjev-word-tile{min-height:205px;border:1px solid #d8c8ff;border-radius:18px;padding:13px;text-align:center;color:var(--ink);background:#f7f5ff;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.rjev-word-tile:nth-child(6n+2){background:#effcff;border-color:#a6e7f7}.rjev-word-tile:nth-child(6n+3){background:#f0fff6;border-color:#a9edc5}.rjev-word-tile:nth-child(6n+4){background:#fff9ef;border-color:#ffd099}.rjev-word-tile:nth-child(6n+5){background:#fff4f8;border-color:#ffc4db}.rjev-diff{position:absolute;left:10px;top:10px;font-size:9px;border-radius:999px;padding:5px 7px;background:#cbf7da;color:#047857}.rjev-diff.medium{background:#fff0b5;color:#9a6400}.rjev-diff.hard{background:#ffd6d6;color:#b42318}.rjev-star{position:absolute;right:11px;top:11px;color:#a78bfa}.rjev-word{font-family:"Noto Serif JP",serif;font-size:34px;line-height:1.15}.rjev-reading{font-size:14px;color:#4f46e5;margin:6px 0}.rjev-word-tile small{line-height:1.4;color:#536175}.rjev-word-tile em{margin-top:9px;padding:4px 9px;border:1px solid #e5ddff;border-radius:999px;background:#fff;font-size:10px;color:#6d28d9}.rjev-modes{display:grid;grid-template-columns:repeat(3,1fr);background:#ede9fe;border-radius:999px;overflow:hidden;margin:5px 0 15px}.rjev-modes button{border:0;background:transparent;padding:9px;text-transform:uppercase;font-size:9px;font-weight:900;color:#6d28d9}.rjev-modes button.active{background:#fff;border:1px solid #d8c8ff;border-radius:999px}.rjev-lesson-hero{background:linear-gradient(135deg,#fff3fa,#e9e8ff,#dff8ff);border:1px solid #e6dbff;border-radius:22px;padding:20px;display:flex;justify-content:space-between;gap:15px;align-items:center}.rjev-lesson-hero h1{font-family:"Noto Serif JP",serif;font-size:72px;margin:4px 0 0;color:#28124f}.rjev-lesson-hero h2{margin:0;color:#5b21b6}.rjev-lesson-hero p{margin:2px 0;color:#64748b}.rjev-lesson-hero>div>strong{display:block;margin-top:5px}.rjev-tags{display:flex;gap:7px;margin-top:8px}.rjev-tags i{font-style:normal;background:#fff;border:1px solid #ddd6fe;border-radius:999px;padding:5px 8px;font-size:10px}.rjev-hero-actions{display:grid!important;gap:7px;min-width:125px}.rjev-hero-actions button,.rjev-listen{border:1px solid #d9d0ee;background:#fff;border-radius:999px;padding:8px 10px;font-size:11px;cursor:pointer}.rjev-progress{border:1px solid #ddd6fe;border-radius:13px;padding:8px 10px;margin:8px 0}.rjev-progress>div{display:flex;justify-content:space-between;font-size:9px}.rjev-progress>i{display:block;height:4px;background:#eee8ff;border-radius:8px;margin-top:5px}.rjev-progress>i em{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#ec4899);border-radius:8px}.rjev-reveal-all{width:100%;border:0;background:linear-gradient(90deg,#7c3aed,#ec4899);color:#fff;border-radius:10px;padding:10px;font-weight:900}.rjev-panel{border:1px solid #ebe7f4;border-radius:14px;margin:9px 0;overflow:hidden;background:#fff}.rjev-panel summary{list-style:none;padding:14px;font-weight:850;display:flex;justify-content:space-between;cursor:pointer}.rjev-panel summary::-webkit-details-marker{display:none}.rjev-panel summary span{width:23px;height:23px;border-radius:50%;background:#fff;display:grid;place-items:center}.rjev-panel[open] summary span{transform:rotate(45deg)}.rjev-panel.blue summary{background:#e9f5ff}.rjev-panel.yellow summary{background:#fff2cf}.rjev-panel.purple summary{background:#f3eaff}.rjev-panel.green summary{background:#e4faec}.rjev-panel.cyan summary{background:#e5fbfb}.rjev-panel.orange summary{background:#fff0df}.rjev-panel.red summary{background:#ffe8ef}.rjev-panel-body{padding:15px;line-height:1.65}.rjev-info{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rjev-info>div{background:#f8fafc;border:1px solid #edf0f3;border-radius:12px;padding:12px}.rjev-info b,.rjev-info strong{display:block}.rjev-info b{font-size:10px;color:#6d28d9}.rjev-info strong{font-size:20px}.rjev-copy h3{font-size:14px;color:#5b21b6;margin:10px 0 3px}.rjev-copy p{margin:4px 0}.rjev-example{display:flex;gap:10px;padding:13px;border:1px solid #eee;border-radius:13px;margin:9px 0;background:#fff}.rjev-example>b{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff}.rjev-example>div{min-width:0}.rjev-example p{margin:4px 0}.rjev-example .jp{font-size:19px;font-weight:800;color:#312e81}.rjev-example .jp button{border:0;background:transparent;cursor:pointer}.rjev-example .reading{color:#4f46e5}.rjev-example small{color:#64748b}.rjev-show-more{width:100%;border:1px solid #d8c8ff;background:#faf7ff;border-radius:10px;padding:10px;color:#6d28d9;font-weight:800;cursor:pointer}.rjev-relation{display:grid;grid-template-columns:auto auto 1fr;gap:7px;align-items:baseline;padding:10px;border-bottom:1px solid #eee}.rjev-relation b{font-size:20px}.rjev-relation span{color:#6d28d9}.rjev-relation small{color:#64748b}.rjev-relation p{grid-column:1/-1;margin:0}.rjev-quiz,.rjev-review{border:1px solid #c7b8ff;border-radius:16px;padding:16px;margin-top:12px;background:#f8f6ff}.rjev-quiz>span,.rjev-review>span{font-size:9px;color:#6d28d9;font-weight:900}.rjev-quiz h3,.rjev-review h3{margin:3px 0 9px}.rjev-quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rjev-quiz-options button{border:1px solid #d6c8ff;background:#fff;border-radius:8px;padding:9px;cursor:pointer}.rjev-quiz-options button.correct{background:#dcfce7;border-color:#86efac}.rjev-try{width:100%;border:0;background:linear-gradient(90deg,#30207b,#7c3aed);color:#fff;border-radius:9px;padding:9px;font-weight:800}.rjev-empty,.rjev-no-results{padding:18px;border:1px solid #fed7aa;border-radius:14px;background:#fff8ea}.rjev-local-panel{margin-top:15px;border:1px solid #ddd6fe;border-radius:15px;padding:14px}.rjev-local-panel a{display:flex;justify-content:space-between;padding:8px;border-bottom:1px solid #eee;color:var(--ink)}.rjev-local-panel small{color:#64748b}.rjev-progress-dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rjev-progress-dashboard>div{padding:18px;border:1px solid #e5e7eb;border-radius:14px;text-align:center}.rjev-progress-dashboard b{font-size:30px;display:block}.rjev-toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;background:#1f2937;color:#fff;padding:10px 14px;border-radius:999px;z-index:99999;transition:.2s}.rjev-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.rjev-hero{min-height:260px}.rjev-hero h1{font-size:31px}.rjev-level-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.rjev-level-card{min-height:128px;padding:7px}.rjev-level-card strong{font-size:18px}.rjev-level-card b{font-size:25px}.rjev-level-card small{font-size:8px}.rjev-word-grid{grid-template-columns:repeat(2,1fr)}.rjev-word-tile{min-height:175px}.rjev-word{font-size:30px}.rjev-actions{grid-template-columns:repeat(2,1fr)}.rjev-lesson-hero{align-items:flex-start}.rjev-lesson-hero h1{font-size:50px}.rjev-hero-actions{min-width:105px}.rjev-info{grid-template-columns:1fr}}
@media(max-width:420px){.rje-vocab-app{padding:2px}.rjev-hero{min-height:230px;border-radius:19px}.rjev-hero h1{font-size:27px}.rjev-toolbar{gap:6px}.rjev-sync{font-size:9px}.rjev-levels h2{font-size:14px}.rjev-level-card{min-height:112px}.rjev-level-card b{font-size:21px}.rjev-lesson-hero{padding:14px}.rjev-lesson-hero h1{font-size:42px}.rjev-lesson-hero h2{font-size:18px}.rjev-hero-actions button{font-size:9px;padding:7px}.rjev-panel summary{font-size:14px;padding:12px}.rjev-panel-body{padding:12px}.rjev-example .jp{font-size:17px}.rjev-quiz-options{grid-template-columns:1fr}}

/* v1.0.1 home hero + premium JLPT level cards */
.rje-vocab-app{max-width:1200px}
.rjev-hero{min-height:0;padding:0;background:#fff;border:0;box-shadow:0 14px 34px rgba(51,34,89,.10);border-radius:26px;overflow:hidden;display:block}
.rjev-hero:before,.rjev-hero:after{display:none!important}
.rjev-hero-image{display:block;width:100%;height:auto;aspect-ratio:1536/560;object-fit:cover}
.rjev-hero-fallback{display:none}
.rjev-levels{margin-top:8px}
.rjev-levels h2{font-size:20px;margin:30px 0 18px;letter-spacing:.1px}
.rjev-level-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.rjev-level-card{min-height:235px;padding:20px 16px 28px;border-radius:24px;border-width:1.5px;isolation:isolate;box-shadow:0 10px 24px rgba(35,25,70,.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,filter .25s ease;justify-content:flex-start;color:#182033}
.rjev-level-card:before{content:"";position:absolute;inset:auto -18% -18px -18%;height:88px;z-index:-1;opacity:.34;background:linear-gradient(165deg,transparent 24%,currentColor 25% 35%,transparent 36%),linear-gradient(195deg,transparent 35%,currentColor 36% 47%,transparent 48%);transform:scaleX(1.2)}
.rjev-level-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 15%,rgba(255,255,255,.72),transparent 21%),linear-gradient(180deg,rgba(255,255,255,.3),transparent 45%);z-index:-2;pointer-events:none}
.rjev-level-card:hover,.rjev-level-card:focus-visible{transform:translateY(-8px) scale(1.025);box-shadow:0 20px 38px rgba(35,25,70,.18);filter:saturate(1.06);outline:none}
.rjev-level-card strong{font-size:34px;line-height:1;margin-top:6px;text-shadow:0 2px 5px rgba(0,0,0,.15)}
.rjev-level-card b{font-size:45px;line-height:1.1;margin:18px 0 10px;color:#111827;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.rjev-level-card .rjev-stage{font-style:normal;font-weight:800;font-size:12px;line-height:1;color:#fff;padding:7px 16px;border-radius:999px;background:rgba(20,20,20,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.25);margin-bottom:12px}
.rjev-level-card small{font-size:13px;font-weight:800;position:relative;z-index:2}
.rjev-level-card em{right:14px;bottom:14px;width:40px;height:40px;font-size:28px;background:rgba(255,255,255,.9);box-shadow:0 7px 16px rgba(30,30,60,.12);transition:transform .25s ease,background .25s ease}
.rjev-level-card:hover em{transform:translateX(4px);background:#fff}
.rjev-card-deco{position:absolute;left:16px;top:13px;font-size:25px;opacity:.12}
.rjev-card-scene{position:absolute;left:18px;bottom:14px;width:58px;height:48px;opacity:.18;background:linear-gradient(90deg,transparent 41%,currentColor 42% 58%,transparent 59%),linear-gradient(150deg,transparent 42%,currentColor 43% 58%,transparent 59%);clip-path:polygon(50% 0,63% 20%,83% 20%,83% 31%,72% 31%,72% 44%,88% 44%,88% 56%,67% 56%,67% 100%,33% 100%,33% 56%,12% 56%,12% 44%,28% 44%,28% 31%,17% 31%,17% 20%,37% 20%)}
.rjev-level-card.blue{color:#059669;background:linear-gradient(160deg,#f2fff8 0%,#c9f7df 58%,#9be9c4 100%);border-color:#62d69d}
.rjev-level-card.green{color:#b98300;background:linear-gradient(160deg,#fffce8 0%,#fff0ad 58%,#ffdc65 100%);border-color:#e9bd32}
.rjev-level-card.orange{color:#e65f00;background:linear-gradient(160deg,#fff7eb 0%,#ffd29b 58%,#ffad5c 100%);border-color:#f09034}
.rjev-level-card.purple{color:#633bd3;background:linear-gradient(160deg,#f7f2ff 0%,#d8c6ff 58%,#ae8fff 100%);border-color:#8e6ce8}
.rjev-level-card.red{color:#dc343f;background:linear-gradient(160deg,#fff4f5 0%,#ffc8cd 58%,#ff9da6 100%);border-color:#ec6b76}
.rjev-level-card.blue .rjev-stage{background:#159a68}.rjev-level-card.green .rjev-stage{background:#c89400}.rjev-level-card.orange .rjev-stage{background:#e96708}.rjev-level-card.purple .rjev-stage{background:#6742d7}.rjev-level-card.red .rjev-stage{background:#df3f48}

@media(max-width:900px){
  .rjev-level-grid{gap:10px}
  .rjev-level-card{min-height:205px;padding:16px 10px 24px}
  .rjev-level-card strong{font-size:28px}.rjev-level-card b{font-size:37px}
}
@media(max-width:700px){
  .rjev-hero{border-radius:20px}
  .rjev-hero-image{aspect-ratio:1536/560;object-fit:cover}
  .rjev-levels h2{font-size:17px;margin:24px 0 14px}
  .rjev-level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .rjev-level-card{min-height:190px;padding:16px 12px 24px;border-radius:20px}
  .rjev-level-card strong{font-size:29px}.rjev-level-card b{font-size:38px;margin:13px 0 8px}.rjev-level-card small{font-size:11px}.rjev-level-card .rjev-stage{font-size:10px;padding:6px 12px}.rjev-level-card em{width:34px;height:34px;font-size:24px}
  .rjev-level-card:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 6px)}
}
@media(max-width:420px){
  .rjev-hero{border-radius:16px}
  .rjev-level-grid{gap:9px}
  .rjev-level-card{min-height:166px;padding:13px 8px 20px;border-radius:17px}
  .rjev-level-card strong{font-size:24px}.rjev-level-card b{font-size:31px;margin:10px 0 7px}.rjev-level-card small{font-size:10px}.rjev-card-deco{font-size:18px;left:10px;top:9px}.rjev-card-scene{width:45px;height:36px;left:10px;bottom:10px}.rjev-level-card em{right:9px;bottom:9px;width:30px;height:30px;font-size:21px}
}

/* v1.0.2 agreed landing-page composition */
.rje-vocab-app{max-width:1200px;padding:5px}
.rjev-home-brand{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 8px 26px rgba(44,32,80,.08);margin-bottom:18px}
.rjev-home-brand .rjev-hero{border-radius:22px 22px 0 0;box-shadow:none}
.rjev-brand-extension{height:155px;background:linear-gradient(180deg,#fff 0%,#fff 72%,#fefefe 100%)}
.rjev-dashboard{padding:14px;border:1px solid #eeeaf8;border-radius:22px;background:#fff;box-shadow:0 9px 28px rgba(60,41,105,.08);margin:0 0 30px}
.rjev-continue{grid-template-columns:56px minmax(0,1fr) auto;gap:14px;padding:19px 20px;border-radius:19px;background:linear-gradient(105deg,#21156e 0%,#5e177e 48%,#d31169 100%);box-shadow:0 10px 26px rgba(74,25,112,.20)}
.rjev-target{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);font-size:25px!important}
.rjev-continue-copy small{font-size:10px;opacity:.88}.rjev-continue-copy>b{font-size:18px;line-height:1.25;margin-top:2px}.rjev-continue-copy p{font-size:10px;margin:3px 0 0;opacity:.82}
.rjev-continue>a{padding:12px 19px;border-radius:11px;background:linear-gradient(135deg,#ff4d9b,#ee2f83);box-shadow:0 8px 18px rgba(237,43,126,.28);white-space:nowrap}
.rjev-progress-row{display:flex;align-items:center;gap:10px;margin-top:10px}.rjev-progress-row .rjev-progress-mini{flex:1;margin:0;background:rgba(20,10,60,.5);height:5px}.rjev-progress-row .rjev-progress-mini i{width:0;background:linear-gradient(90deg,#ff5ba5,#ba76ff);transition:width .3s ease}.rjev-progress-row>strong{font-size:11px;min-width:30px}
.rjev-actions{gap:10px;margin-top:10px}.rjev-actions button{grid-template-columns:34px 1fr 18px;align-items:center;gap:9px;min-height:64px;padding:10px 11px;border:1px solid #eeeaf8;border-radius:15px;box-shadow:0 4px 14px rgba(49,37,84,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.rjev-actions button:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(49,37,84,.11);border-color:#ded4fb}.rjev-actions button>span:nth-child(2){display:grid;gap:1px}.rjev-actions button>b{font-size:11px}.rjev-actions button em{font-style:normal;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#faf8ff;color:#6d28d9;font-weight:900}.rjev-action-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:16px}.rjev-action-icon.review{background:linear-gradient(135deg,#ff5c9b,#f02565)}.rjev-action-icon.favourite{background:linear-gradient(135deg,#ffca24,#f39b09)}.rjev-action-icon.random{background:linear-gradient(135deg,#7c5cff,#7139e8)}.rjev-action-icon.recent{background:linear-gradient(135deg,#35b6ff,#188ee8)}
.rjev-levels{margin:0;padding:14px 14px 18px;border:1px solid #eeeaf8;border-radius:22px;background:#fff;box-shadow:0 9px 28px rgba(60,41,105,.08)}
.rjev-levels h2{margin:2px 0 16px;font-size:18px;color:#17213a}.rjev-levels h2 span{color:#ff9ca8;font-size:17px;margin:0 5px}
.rjev-level-grid{gap:12px}.rjev-level-card{min-height:220px;border-radius:18px;padding:14px 12px 22px;box-shadow:0 7px 18px rgba(35,25,70,.09)}
.rjev-level-card:hover,.rjev-level-card:focus-visible{transform:translateY(-9px) scale(1.035);box-shadow:0 20px 36px rgba(35,25,70,.20);z-index:3}
.rjev-level-card strong{font-size:31px}.rjev-level-card b{font-size:39px;margin:13px 0 8px}.rjev-level-card .rjev-stage{font-size:10px;padding:5px 12px;margin-bottom:9px}.rjev-level-card small{font-size:11px}.rjev-level-card em{width:34px;height:34px;font-size:23px;right:11px;bottom:11px}.rjev-card-scene{width:60px;height:48px;left:12px;bottom:8px;opacity:.28}

@media(max-width:900px){
  .rjev-brand-extension{height:105px}.rjev-dashboard{margin-bottom:22px}.rjev-actions button{grid-template-columns:30px 1fr 16px;padding:9px}.rjev-action-icon{width:30px;height:30px}.rjev-level-card{min-height:200px}
}
@media(max-width:700px){
  .rje-vocab-app{padding:3px}.rjev-home-brand{border-radius:18px;margin-bottom:12px}.rjev-home-brand .rjev-hero{border-radius:17px 17px 0 0}.rjev-brand-extension{height:58px}.rjev-dashboard{padding:9px;border-radius:17px;margin-bottom:18px}.rjev-continue{grid-template-columns:42px 1fr auto;padding:13px 12px;gap:9px;border-radius:14px}.rjev-target{width:40px;height:40px;font-size:20px!important}.rjev-continue-copy>b{font-size:14px}.rjev-continue-copy p{display:none}.rjev-continue>a{font-size:10px;padding:10px 11px}.rjev-progress-row{margin-top:7px}.rjev-actions{grid-template-columns:repeat(2,1fr);gap:7px}.rjev-actions button{min-height:58px}.rjev-levels{padding:11px 10px 14px;border-radius:17px}.rjev-levels h2{font-size:15px;margin:1px 0 13px}.rjev-level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rjev-level-card{min-height:185px}.rjev-level-card:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 5px)}
}
@media(max-width:420px){
  .rjev-brand-extension{height:42px}.rjev-continue{grid-template-columns:36px 1fr auto}.rjev-target{width:34px;height:34px}.rjev-continue-copy small{font-size:8px}.rjev-continue-copy>b{font-size:12px}.rjev-continue>a{font-size:9px;padding:8px 9px}.rjev-progress-row>strong{font-size:9px}.rjev-actions button{grid-template-columns:29px 1fr 14px;gap:6px;padding:8px 7px}.rjev-action-icon{width:29px;height:29px}.rjev-actions button>b{font-size:9px}.rjev-actions button small{font-size:8px}.rjev-level-card{min-height:165px}.rjev-level-card strong{font-size:25px}.rjev-level-card b{font-size:31px;margin:9px 0 6px}
}


/* v1.0.3 final landing polish: remove blank hero extension + stronger level cards */
.rjev-brand-extension{display:none!important;height:0!important}
.rjev-home-brand{margin-bottom:14px}
.rjev-home-brand .rjev-hero{border-radius:22px}

.rjev-level-grid{gap:14px}
.rjev-level-card{min-height:248px;padding:18px 14px 28px;border-radius:21px;box-shadow:0 9px 22px rgba(35,25,70,.11)}
.rjev-level-card strong{font-size:38px!important;line-height:1;font-weight:900!important;letter-spacing:.3px;text-shadow:none!important}
.rjev-level-card b{font-size:45px;margin:16px 0 10px}
.rjev-level-card small{font-size:12px}
.rjev-level-card.blue strong{color:#047857!important}
.rjev-level-card.green strong{color:#9a6700!important}
.rjev-level-card.orange strong{color:#c94d00!important}
.rjev-level-card.purple strong{color:#5127b8!important}
.rjev-level-card.red strong{color:#b91c2b!important}
.rjev-level-card:hover,.rjev-level-card:focus-visible{transform:translateY(-10px) scale(1.04);box-shadow:0 22px 40px rgba(35,25,70,.22)}

@media(max-width:900px){
  .rjev-level-card{min-height:220px}
  .rjev-level-card strong{font-size:33px!important}
  .rjev-level-card b{font-size:40px}
}
@media(max-width:700px){
  .rjev-home-brand{margin-bottom:10px}
  .rjev-home-brand .rjev-hero{border-radius:17px}
  .rjev-level-card{min-height:200px;padding:16px 12px 24px}
  .rjev-level-card strong{font-size:31px!important}
  .rjev-level-card b{font-size:37px}
}
@media(max-width:420px){
  .rjev-level-card{min-height:178px}
  .rjev-level-card strong{font-size:28px!important}
  .rjev-level-card b{font-size:33px}
}

/* v1.0.4 lesson UI readability update
   Scope: typography/readability only. No layout, data schema or behavior changes. */
.rjev-modes button{
  font-size:12px;
  letter-spacing:.25px;
  padding:11px 9px;
}
.rjev-hero-actions button,
.rjev-listen{
  font-size:13px;
  font-weight:700;
  padding:9px 12px;
}
.rjev-tags i{
  font-size:12px;
  font-weight:700;
  padding:6px 9px;
}
.rjev-progress>div{
  font-size:11px;
}
.rjev-reveal-all{
  font-size:13px;
  padding:11px;
}
.rjev-panel summary{
  font-size:16px;
  line-height:1.35;
  font-weight:800;
  padding:15px 14px;
  align-items:center;
}
.rjev-panel summary span{
  flex:0 0 25px;
  width:25px;
  height:25px;
  font-size:15px;
}
.rjev-panel-body{
  font-size:14px;
}
.rjev-info b{
  font-size:12px;
}
.rjev-copy h3{
  font-size:16px;
}
.rjev-copy p,
.rjev-example p,
.rjev-relation p{
  font-size:14px;
}
.rjev-example .reading,
.rjev-example small,
.rjev-relation span,
.rjev-relation small{
  font-size:13px;
}
.rjev-show-more{
  font-size:13px;
  padding:11px;
}
.rjev-quiz>span,
.rjev-quiz h3,
.rjev-quiz p,
.rjev-quiz label{
  font-size:14px;
  line-height:1.5;
}
.rjev-quiz-options button{
  font-size:14px;
  line-height:1.35;
  min-height:42px;
  padding:10px 12px;
  font-weight:650;
}
.rjev-try{
  font-size:13px;
  padding:10px;
}



@media(max-width:700px){
  .rjev-modes button{font-size:12px;padding:11px 7px}
  .rjev-hero-actions button,.rjev-listen{font-size:12px;padding:9px 10px}
  .rjev-tags i{font-size:11px}
  .rjev-progress>div{font-size:10px}
  .rjev-reveal-all{font-size:12px}
  .rjev-panel summary{font-size:15px;padding:14px 12px}
  .rjev-panel-body{font-size:14px}
  .rjev-quiz h3{font-size:19px}
  .rjev-quiz p,.rjev-quiz label{font-size:14px}
  .rjev-quiz-options button{font-size:14px;min-height:44px}
  
  
}
@media(max-width:420px){
  .rjev-modes button{font-size:11px;padding:10px 5px}
  .rjev-hero-actions button{font-size:11px!important;padding:8px 9px}
  .rjev-tags i{font-size:10.5px;padding:5px 7px}
  .rjev-panel summary{font-size:15px!important;padding:13px 11px}
  .rjev-panel summary span{width:24px;height:24px;flex-basis:24px}
  .rjev-panel-body{font-size:13.5px}
  .rjev-copy h3{font-size:15px}
  .rjev-copy p,.rjev-example p,.rjev-relation p{font-size:13.5px}
  .rjev-quiz>span{font-size:10.5px}
  .rjev-quiz h3{font-size:18px}
  .rjev-quiz p,.rjev-quiz label{font-size:13.5px}
  .rjev-quiz-options{grid-template-columns:1fr}
  .rjev-quiz-options button{font-size:14px;min-height:44px}
  
  
}


/* v1.0.8: clearer saved/review/recent item rows */
.rjev-local-panel{
  background:#fff;
}
.rjev-local-panel a{
  margin:8px 0;
  padding:11px 13px;
  border:1px solid #e9e4f5;
  border-radius:12px;
  background:#f8f6ff;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.rjev-local-panel a:nth-of-type(5n+1){background:#f5f1ff;border-color:#e1d6ff}
.rjev-local-panel a:nth-of-type(5n+2){background:#eef9ff;border-color:#d4effb}
.rjev-local-panel a:nth-of-type(5n+3){background:#effcf4;border-color:#d4f2df}
.rjev-local-panel a:nth-of-type(5n+4){background:#fff8e9;border-color:#f8e8bd}
.rjev-local-panel a:nth-of-type(5n+5){background:#fff1f6;border-color:#f7d9e5}
.rjev-local-panel a:hover{
  transform:translateY(-2px);
  box-shadow:0 7px 16px rgba(49,37,84,.08);
  border-color:#d9cff3;
}
.rjev-local-panel a b{font-weight:800}
.rjev-local-panel a small{font-weight:650}

/* =========================================================
   v1.0.9 — Elementor Pro compatibility hardening
   Scope: CSS/scroll compatibility only. Preserve v1.0.8 UI.
   ========================================================= */

/* Keep the app predictable inside Elementor containers/kits. */
.rje-vocab-app{
  width:100%!important;
  max-width:1200px!important;
  min-width:0;
  line-height:1.45;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
.rje-vocab-app,
.rje-vocab-app button,
.rje-vocab-app input,
.rje-vocab-app summary,
.rje-vocab-app a{
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Bengali","Noto Sans JP",sans-serif!important;
}
.rje-vocab-app button,
.rje-vocab-app input{
  box-shadow:none;
  text-shadow:none;
}
.rje-vocab-app button{
  line-height:1.25!important;
  letter-spacing:normal!important;
  text-transform:none!important;
}

/* Avoid Elementor global heading/paragraph spacing from changing lesson geometry. */
.rje-vocab-app .rjev-lesson-hero h1{
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:72px;
  line-height:1.08!important;
  font-weight:700!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  color:#28124f!important;
  margin:4px 0 0!important;
  padding:0!important;
}
.rje-vocab-app .rjev-lesson-hero h2{
  line-height:1.2!important;
  font-weight:700!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  color:#5b21b6!important;
  margin:0!important;
  padding:0!important;
}
.rje-vocab-app .rjev-lesson-hero p{
  color:#64748b!important;
  line-height:1.35!important;
  margin:2px 0!important;
  padding:0!important;
}
.rje-vocab-app .rjev-lesson-hero>div>strong{
  color:#182033!important;
  line-height:1.4!important;
}
.rje-vocab-app .rjev-copy h3{
  color:#5b21b6!important;
  line-height:1.35!important;
  margin:10px 0 3px!important;
  padding:0!important;
}
.rje-vocab-app .rjev-copy p,
.rje-vocab-app .rjev-example p,
.rje-vocab-app .rjev-relation p,
.rje-vocab-app .rjev-local-panel p{
  line-height:1.6!important;
  margin:4px 0!important;
}

/* Elementor kits frequently impose button foreground/background colors. */
.rje-vocab-app .rjev-hero-actions button,
.rje-vocab-app .rjev-listen{
  color:#6d28d9!important;
  background:#fff!important;
  border-color:#d9d0ee!important;
}
.rje-vocab-app .rjev-hero-actions button:hover,
.rje-vocab-app .rjev-listen:hover{
  color:#5b21b6!important;
  background:#faf7ff!important;
}
.rje-vocab-app .rjev-modes button{
  color:#6d28d9!important;
  background:transparent!important;
}
.rje-vocab-app .rjev-modes button.active{
  color:#5b21b6!important;
  background:#fff!important;
  border-color:#d8c8ff!important;
}
.rje-vocab-app .rjev-reveal-all,
.rje-vocab-app .rjev-try,
.rje-vocab-app .rjev-continue>a{
  color:#fff!important;
}
.rje-vocab-app .rjev-reveal-all{
  background:linear-gradient(90deg,#7c3aed,#ec4899)!important;
}
.rje-vocab-app .rjev-try{
  background:linear-gradient(90deg,#30207b,#7c3aed)!important;
}
.rje-vocab-app .rjev-actions button{
  color:#182033!important;
  background:#fff!important;
  border-color:#eeeaf8!important;
}
.rje-vocab-app .rjev-actions button>b{
  color:#592bc8!important;
}
.rje-vocab-app .rjev-actions button small{
  color:#657084!important;
}
.rje-vocab-app .rjev-quiz-options button{
  color:#30204d!important;
  background:#fff!important;
  border-color:#d6c8ff!important;
}
.rje-vocab-app .rjev-quiz-options button:hover{
  color:#4c1d95!important;
  background:#faf7ff!important;
}
.rje-vocab-app .rjev-quiz-options button.correct{
  color:#166534!important;
  background:#dcfce7!important;
  border-color:#86efac!important;
}
.rje-vocab-app .rjev-show-more{
  color:#6d28d9!important;
  background:#faf7ff!important;
  border-color:#d8c8ff!important;
}

/* Accordion and information text must retain readable contrast. */
.rje-vocab-app .rjev-panel summary{
  color:#182033!important;
  line-height:1.35!important;
  letter-spacing:normal!important;
  text-transform:none!important;
}
.rje-vocab-app .rjev-panel-body{
  color:#182033!important;
}
.rje-vocab-app .rjev-info b{
  color:#6d28d9!important;
}
.rje-vocab-app .rjev-info strong{
  color:#182033!important;
  line-height:1.35!important;
}
.rje-vocab-app .rjev-example .jp{
  color:#312e81!important;
  line-height:1.45!important;
}
.rje-vocab-app .rjev-example .reading,
.rje-vocab-app .rjev-relation span{
  color:#4f46e5!important;
}
.rje-vocab-app .rjev-example small,
.rje-vocab-app .rjev-relation small,
.rje-vocab-app .rjev-local-panel small{
  color:#64748b!important;
}

/* Keep level cards independent of Elementor global link typography/colors. */
.rje-vocab-app .rjev-level-card{
  text-decoration:none!important;
}
.rje-vocab-app .rjev-level-card b{
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  color:#111827!important;
  line-height:1.15!important;
  font-weight:700!important;
  text-transform:none!important;
}
.rje-vocab-app .rjev-level-card .rjev-stage{
  color:#fff!important;
}
.rje-vocab-app .rjev-level-card small{
  color:#263244!important;
  line-height:1.3!important;
}
.rje-vocab-app .rjev-word,
.rje-vocab-app .rjev-word-tile .rjev-word{
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  color:#182033!important;
  line-height:1.15!important;
}
.rje-vocab-app .rjev-reading{
  color:#4f46e5!important;
  line-height:1.35!important;
}
.rje-vocab-app .rjev-word-tile small{
  color:#536175!important;
}

/* Safer sizing/overflow inside Elementor nested containers. */
.rje-vocab-app .rjev-dashboard,
.rje-vocab-app .rjev-levels,
.rje-vocab-app .rjev-toolbar,
.rje-vocab-app .rjev-word-grid,
.rje-vocab-app .rjev-lesson,
.rje-vocab-app .rjev-lesson-hero,
.rje-vocab-app .rjev-panel,
.rje-vocab-app .rjev-panel-body,
.rje-vocab-app .rjev-local-panel{
  max-width:100%;
  min-width:0;
}
.rje-vocab-app .rjev-panel-body,
.rje-vocab-app .rjev-example>div,
.rje-vocab-app .rjev-local-panel a{
  overflow-wrap:anywhere;
  word-break:normal;
}
.rje-vocab-app .rjev-local-panel a{
  align-items:center;
  gap:12px;
}

/* Sticky Elementor headers: anchors should not land underneath the header. */
.rje-vocab-app #rjev-level-selector,
.rje-vocab-app .rjev-local-panel,
.rje-vocab-app .rjev-lesson{
  scroll-margin-top:110px;
}

@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero h1{font-size:50px!important}
  .rje-vocab-app .rjev-lesson-hero h2{font-size:20px!important}
  .rje-vocab-app .rjev-lesson-hero{gap:10px}
  .rje-vocab-app .rjev-hero-actions{min-width:105px}
}
@media(max-width:420px){
  .rje-vocab-app .rjev-lesson-hero h1{font-size:42px!important}
  .rje-vocab-app .rjev-lesson-hero h2{font-size:18px!important}
  .rje-vocab-app .rjev-hero-actions{min-width:100px}
}
\n\n/* =========================================================\n   v1.0.10 — Elementor Pro section-header spacing patch\n   Scope: only Level/Chapter heading groups.\n   ========================================================= */\n.rje-vocab-app .rjev-section-head{\n  align-items:flex-start!important;\n  padding:6px 2px 18px!important;\n}\n.rje-vocab-app .rjev-section-head>div{\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:flex-start!important;\n  justify-content:flex-start!important;\n  gap:6px!important;\n  min-width:0!important;\n}\n.rje-vocab-app .rjev-section-head>div>span{\n  display:inline-flex!important;\n  align-items:center!important;\n  width:auto!important;\n  min-height:28px!important;\n  margin:0!important;\n  padding:7px 9px!important;\n  line-height:1!important;\n  position:static!important;\n}\n.rje-vocab-app .rjev-section-head h2{\n  display:block!important;\n  position:static!important;\n  margin:0!important;\n  padding:0!important;\n  line-height:1.2!important;\n  min-height:1.2em!important;\n  font-size:22px!important;\n  letter-spacing:normal!important;\n}\n.rje-vocab-app .rjev-section-head p{\n  display:block!important;\n  position:static!important;\n  margin:0!important;\n  padding:0!important;\n  line-height:1.5!important;\n  min-height:1.5em!important;\n}\n.rje-vocab-app .rjev-section-head>b{\n  flex:0 0 auto!important;\n  margin-top:8px!important;\n}\n@media(max-width:700px){\n  .rje-vocab-app .rjev-section-head{padding-bottom:15px!important}\n  .rje-vocab-app .rjev-section-head>div{gap:5px!important}\n  .rje-vocab-app .rjev-section-head h2{font-size:20px!important}\n  .rje-vocab-app .rjev-section-head p{line-height:1.45!important}\n}\n@media(max-width:420px){\n  .rje-vocab-app .rjev-section-head h2{font-size:18px!important}\n  .rje-vocab-app .rjev-section-head>div>span{min-height:26px!important;padding:6px 8px!important}\n}\n

/* v1.0.13 — Elementor/theme link-decoration isolation
   Keep all RJE Vocabulary navigation/cards clickable without inherited underlines. */
.rje-vocab-app a,
.rje-vocab-app a:link,
.rje-vocab-app a:visited,
.rje-vocab-app a:hover,
.rje-vocab-app a:focus,
.rje-vocab-app a:focus-visible,
.rje-vocab-app a:active{
  text-decoration:none!important;
  text-decoration-line:none!important;
  text-decoration-thickness:0!important;
}
.rje-vocab-app a > *,
.rje-vocab-app a:hover > *,
.rje-vocab-app a:focus > *{
  text-decoration:none!important;
  text-decoration-line:none!important;
}

/* =========================================================
   v1.0.14 — Phase navigation layer
   Scope: phase-selection + phase chapter page only.
   Landing page / lesson styling intentionally unchanged.
   ========================================================= */
.rje-vocab-app .rjev-phase-hero{
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:22px;
  min-height:150px;margin:4px 0 14px;padding:24px 26px;border:1px solid #e7eaf0;border-radius:22px;
  background:linear-gradient(120deg,#fff 0%,#fffdf9 54%,#eefbf4 100%);box-shadow:0 8px 24px rgba(31,41,55,.06)
}
.rje-vocab-app .rjev-phase-hero>div:first-child{display:flex;align-items:flex-start;gap:14px;position:relative;z-index:2;min-width:0}
.rje-vocab-app .rjev-phase-level{display:grid;place-items:center;min-width:54px;height:48px;padding:0 10px;border-radius:9px;background:#119b61;color:#fff;font-size:22px;font-weight:900;line-height:1}
.rje-vocab-app .rjev-phase-hero h2{margin:0 0 7px!important;padding:0!important;font-size:30px!important;line-height:1.15!important;color:#151923!important;text-transform:none!important;letter-spacing:normal!important}
.rje-vocab-app .rjev-phase-hero p{margin:0 0 8px!important;color:#303746!important;font-weight:700!important;line-height:1.4!important}
.rje-vocab-app .rjev-phase-hero small{display:block;color:#5c6472;font-size:13px;line-height:1.5}
.rje-vocab-app .rjev-phase-hero-art{position:absolute!important;right:0;top:0;bottom:0;width:47%;min-width:310px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.08)),url('../images/rje-vocab-hero.jpg') center/cover no-repeat;opacity:.55;z-index:1;mask-image:linear-gradient(90deg,transparent 0,#000 28%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28%)}
.rje-vocab-app .rjev-phase-hero-art span{display:none}
.rje-vocab-app .rjev-phase-hero.gold .rjev-phase-level{background:#b47700}.rje-vocab-app .rjev-phase-hero.orange .rjev-phase-level{background:#d95e0b}.rje-vocab-app .rjev-phase-hero.purple .rjev-phase-level{background:#6142c7}.rje-vocab-app .rjev-phase-hero.red .rjev-phase-level{background:#e1404c}

.rje-vocab-app .rjev-phase-overall{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin:12px 0 18px;padding:16px 20px;border:1px solid #e5e9ef;border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(31,41,55,.05)}
.rje-vocab-app .rjev-phase-overall-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#eafaf1;font-size:24px}
.rje-vocab-app .rjev-phase-overall-copy{min-width:0}.rje-vocab-app .rjev-phase-overall-copy>b{display:block;margin-bottom:9px;color:#252a34;font-size:14px}
.rje-vocab-app .rjev-phase-overall-copy>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px}
.rje-vocab-app .rjev-phase-overall-copy i{display:block;height:10px;background:#e9edf1;border-radius:999px;overflow:hidden}
.rje-vocab-app .rjev-phase-overall-copy i em{display:block;width:0;height:100%;border-radius:999px;background:#17a567;transition:width .25s ease}
.rje-vocab-app .rjev-phase-overall-copy strong{color:#12955e;font-size:18px;min-width:48px;text-align:right}
.rje-vocab-app .rjev-phase-goal{display:flex;align-items:center;gap:10px;min-width:205px;padding:12px 16px;border-radius:14px;background:#effbf6;color:#25302c}
.rje-vocab-app .rjev-phase-goal>span{font-size:27px;color:#17a567}.rje-vocab-app .rjev-phase-goal small,.rje-vocab-app .rjev-phase-goal b{display:block}.rje-vocab-app .rjev-phase-goal small{font-size:11px}.rje-vocab-app .rjev-phase-goal b{font-size:13px;margin-top:2px}

.rje-vocab-app .rjev-phase-section{padding:0 2px}.rje-vocab-app .rjev-phase-section>h3{text-align:center;margin:14px 0 2px!important;font-size:22px!important;line-height:1.3!important;color:#20252f!important}.rje-vocab-app .rjev-phase-section>h3 span{color:#68c99b}.rje-vocab-app .rjev-phase-section>p{text-align:center;margin:0 0 18px!important;color:#697180!important;font-size:13px}
.rje-vocab-app .rjev-phase-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.rje-vocab-app .rjev-phase-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;min-height:315px;padding:22px 18px 18px;border:1px solid #8bd9b4;border-radius:20px;background:linear-gradient(160deg,#f1fff8,#fafffc);color:#19212a!important;box-shadow:0 6px 18px rgba(31,41,55,.035);transition:transform .18s ease,box-shadow .18s ease}
.rje-vocab-app .rjev-phase-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(31,41,55,.08)}
.rje-vocab-app .rjev-phase-card.phase-2{border-color:#f0c34e;background:linear-gradient(160deg,#fffdf3,#fffaf0)}
.rje-vocab-app .rjev-phase-card.phase-3{border-color:#f2a47f;background:linear-gradient(160deg,#fff9f4,#fff7f3)}
.rje-vocab-app .rjev-phase-card.phase-4{border-color:#79d2c8;background:linear-gradient(160deg,#f1fffd,#f8fffe)}
.rje-vocab-app .rjev-phase-deco{position:absolute;left:18px;top:18px;color:#80d0a8;font-size:20px;opacity:.9}.rje-vocab-app .phase-2 .rjev-phase-deco{color:#f1c75b}.rje-vocab-app .phase-3 .rjev-phase-deco{color:#f2a080}.rje-vocab-app .phase-4 .rjev-phase-deco{color:#6fcfc3}
.rje-vocab-app .rjev-phase-card>strong{font-size:19px;color:#169b62!important;line-height:1.2}.rje-vocab-app .phase-2>strong{color:#b47a00!important}.rje-vocab-app .phase-3>strong{color:#db5d21!important}.rje-vocab-app .phase-4>strong{color:#168f86!important}
.rje-vocab-app .rjev-phase-icon{display:grid;place-items:center;width:78px;height:78px;margin:16px 0 12px;border:1px solid #bde8d2;border-radius:50%;background:rgba(255,255,255,.75);font-size:34px;box-shadow:0 5px 14px rgba(31,41,55,.06)}
.rje-vocab-app .rjev-phase-card>b{font-size:17px;color:#171b22!important;line-height:1.3;text-align:center}.rje-vocab-app .rjev-phase-card>small{margin-top:5px;color:#15985f;font-size:13px;font-weight:800}.rje-vocab-app .phase-2>small{color:#aa7300}.rje-vocab-app .phase-3>small{color:#cf5520}.rje-vocab-app .phase-4>small{color:#118c82}
.rje-vocab-app .rjev-phase-progress-label{display:flex;justify-content:space-between;width:100%;margin-top:auto;padding-top:17px;font-size:11px;color:#3e4653}.rje-vocab-app .rjev-phase-progress-label em{font-style:normal;font-weight:900;color:#14945d}
.rje-vocab-app .rjev-phase-progress{width:100%;height:8px;margin:7px 0 12px;background:#e8ecef;border-radius:999px;overflow:hidden}.rje-vocab-app .rjev-phase-progress i{display:block;width:0;height:100%;border-radius:999px;background:#18a667;transition:width .25s ease}.rje-vocab-app .phase-2 .rjev-phase-progress i{background:#ecb20d}.rje-vocab-app .phase-3 .rjev-phase-progress i{background:#ec6b2a}.rje-vocab-app .phase-4 .rjev-phase-progress i{background:#18a79b}
.rje-vocab-app .rjev-phase-cta{display:flex;justify-content:center;align-items:center;gap:9px;width:100%;min-height:43px;border-radius:10px;background:#15a261;color:#fff!important;font-size:13px;font-weight:900}.rje-vocab-app .rjev-phase-cta em{font-style:normal;font-size:18px}.rje-vocab-app .phase-2 .rjev-phase-cta{background:#e7aa00}.rje-vocab-app .phase-3 .rjev-phase-cta{background:transparent;color:#d95220!important;border:1px solid #e86a35}.rje-vocab-app .phase-4 .rjev-phase-cta{background:transparent;color:#128a82!important;border:1px solid #159c93}
.rje-vocab-app .rjev-phase-card.is-empty{opacity:.72}.rje-vocab-app .rjev-phase-card.is-empty .rjev-phase-cta{background:#fff!important;color:#657084!important;border:1px solid #d9dde3!important}

.rje-vocab-app .rjev-phase-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:20px 0 8px;border:1px solid #e8ebef;border-radius:17px;background:#fff;overflow:hidden;box-shadow:0 5px 18px rgba(31,41,55,.04)}
.rje-vocab-app .rjev-phase-stats>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:15px 18px;border-right:1px solid #edf0f3}.rje-vocab-app .rjev-phase-stats>div:last-child{border-right:0}.rje-vocab-app .rjev-phase-stats span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eefaf4;font-size:18px}.rje-vocab-app .rjev-phase-stats b{font-size:16px;color:#20252f}.rje-vocab-app .rjev-phase-stats small{font-size:10px;color:#717987}
.rje-vocab-app .rjev-phase-note{margin:12px 0!important;padding:12px 14px;border-radius:12px;background:#fff8df;border:1px solid #f3dc8b;color:#715500;font-size:12px;line-height:1.55}
.rje-vocab-app .rjev-chapter.is-empty{opacity:.65}

@media(max-width:800px){
  .rje-vocab-app .rjev-phase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rje-vocab-app .rjev-phase-overall{grid-template-columns:auto 1fr}.rje-vocab-app .rjev-phase-goal{grid-column:1/-1;min-width:0}
  .rje-vocab-app .rjev-phase-stats{grid-template-columns:repeat(2,1fr)}.rje-vocab-app .rjev-phase-stats>div:nth-child(2){border-right:0}.rje-vocab-app .rjev-phase-stats>div:nth-child(-n+2){border-bottom:1px solid #edf0f3}
}
@media(max-width:560px){
  /* v1.0.15: mobile-only Phase hero cleanup. Keep desktop hero and all other UI unchanged. */
  .rje-vocab-app .rjev-phase-hero{min-height:0;padding:20px 18px;background:linear-gradient(135deg,#fff 0%,#fbfffd 100%);box-shadow:0 5px 16px rgba(31,41,55,.05)}
  .rje-vocab-app .rjev-phase-hero>div:first-child{width:100%;align-items:flex-start;gap:13px}
  .rje-vocab-app .rjev-phase-hero-art{display:none!important}
  .rje-vocab-app .rjev-phase-level{flex:0 0 auto;min-width:50px;height:46px;padding:0 9px;font-size:19px;border-radius:10px}
  .rje-vocab-app .rjev-phase-hero>div:first-child>div{min-width:0;flex:1}
  .rje-vocab-app .rjev-phase-hero h2{font-size:21px!important;line-height:1.18!important;margin-bottom:7px!important;white-space:normal!important}
  .rje-vocab-app .rjev-phase-hero p{font-size:12px!important;line-height:1.45!important;margin-bottom:8px!important;white-space:normal!important}
  .rje-vocab-app .rjev-phase-hero small{font-size:11px;line-height:1.5;color:#626b78}
  .rje-vocab-app .rjev-phase-card{min-height:288px;padding:19px 14px 14px}.rje-vocab-app .rjev-phase-card>strong{font-size:16px}.rje-vocab-app .rjev-phase-icon{width:65px;height:65px;font-size:28px;margin:14px 0 10px}.rje-vocab-app .rjev-phase-card>b{font-size:14px}.rje-vocab-app .rjev-phase-card>small{font-size:11px}.rje-vocab-app .rjev-phase-cta{min-height:39px;font-size:11px}
}
@media(max-width:380px){
  .rje-vocab-app .rjev-phase-grid{gap:9px}.rje-vocab-app .rjev-phase-card{padding-left:10px;padding-right:10px}.rje-vocab-app .rjev-phase-section>h3{font-size:18px!important}
}


/* =========================================================
   v1.0.16 — Vocabulary lesson hero readability enlargement
   Scope: visual-only. No database/importer/content/learning-flow changes.
   - Desktop/tablet: main vocabulary lesson card approximately 50% taller.
   - Mobile: main vocabulary lesson card substantially enlarged for small screens.
   - Vocabulary, reading, romaji and meaning are enlarged inside this card only.
   - Tabs, progress, accordions, colors, actions and all other UI remain unchanged.
   ========================================================= */

/* Desktop / tablet: enlarge only the main vocabulary lesson card. */
.rje-vocab-app .rjev-lesson-hero{
  min-height:270px!important;
  padding:30px!important;
  gap:22px!important;
}
.rje-vocab-app .rjev-lesson-hero h1{
  font-size:96px!important;
  line-height:1.02!important;
}
.rje-vocab-app .rjev-lesson-hero h2{
  font-size:30px!important;
  line-height:1.15!important;
  margin-top:4px!important;
}
.rje-vocab-app .rjev-lesson-hero p{
  font-size:18px!important;
  line-height:1.3!important;
  margin-top:5px!important;
}
.rje-vocab-app .rjev-lesson-hero>div>strong{
  font-size:24px!important;
  line-height:1.4!important;
  margin-top:10px!important;
}

/* Keep action controls visually consistent with the approved design. */
.rje-vocab-app .rjev-hero-actions{
  flex:0 0 auto;
}

/* Mobile: width is already screen-limited, so increase usable card height,
   internal breathing room and key vocabulary typography instead of scaling
   the whole UI (which would cause overflow/overlap). */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero{
    min-height:360px!important;
    padding:26px 18px!important;
    gap:14px!important;
    align-items:center!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div:first-child{
    min-width:0!important;
    flex:1 1 auto!important;
  }
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:84px!important;
    line-height:1!important;
  }
  .rje-vocab-app .rjev-lesson-hero h2{
    font-size:30px!important;
    line-height:1.15!important;
    margin-top:6px!important;
  }
  .rje-vocab-app .rjev-lesson-hero p{
    font-size:18px!important;
    line-height:1.3!important;
    margin-top:5px!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div>strong{
    font-size:24px!important;
    line-height:1.45!important;
    margin-top:10px!important;
  }
}

@media(max-width:420px){
  .rje-vocab-app .rjev-lesson-hero{
    min-height:350px!important;
    padding:24px 14px!important;
    gap:10px!important;
  }
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:78px!important;
  }
  .rje-vocab-app .rjev-lesson-hero h2{
    font-size:28px!important;
  }
  .rje-vocab-app .rjev-lesson-hero p{
    font-size:17px!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div>strong{
    font-size:22px!important;
  }
}

/* Extra-narrow phones: preserve legibility without horizontal overflow. */
@media(max-width:360px){
  .rje-vocab-app .rjev-lesson-hero h1{font-size:70px!important}
  .rje-vocab-app .rjev-lesson-hero h2{font-size:26px!important}
  .rje-vocab-app .rjev-lesson-hero>div>strong{font-size:20px!important}
  .rje-vocab-app .rjev-hero-actions{min-width:94px!important}
}


/* =========================================================
   v1.0.18 — Previous / Next vocabulary navigation
   Scope: lesson-page navigation only. No data/schema changes.
   ========================================================= */
.rje-vocab-app .rjev-word-nav{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  width:100%;
  margin:10px 0 12px;
}
.rje-vocab-app .rjev-word-nav-btn{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:10px 14px;
  border:1px solid #d59f1c;
  border-radius:10px;
  background:linear-gradient(180deg,#ffe78a 0%,#ffd95f 100%);
  color:#241b08!important;
  font-size:14px;
  line-height:1.2;
  font-weight:850;
  text-align:center;
  box-shadow:0 3px 8px rgba(125,86,0,.10);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.rje-vocab-app a.rjev-word-nav-btn:hover,
.rje-vocab-app a.rjev-word-nav-btn:focus-visible{
  transform:translateY(-1px);
  border-color:#b98100;
  box-shadow:0 6px 14px rgba(125,86,0,.16);
  outline:none;
}
.rje-vocab-app .rjev-word-nav-btn.disabled{
  opacity:.42;
  cursor:not-allowed;
  filter:saturate(.65);
  box-shadow:none;
}
@media(max-width:420px){
  .rje-vocab-app .rjev-word-nav{gap:8px;margin:8px 0 10px}
  .rje-vocab-app .rjev-word-nav-btn{min-height:42px;padding:9px 8px;font-size:12px;border-radius:8px}
}


/* =========================================================
   v1.0.20 — Direct Phase button on vocabulary lesson
   Scope: navigation/UI only. Existing database/data untouched.
   ========================================================= */
.rje-vocab-app .rjev-lesson-context-nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin:5px 0 15px;
}
.rje-vocab-app .rjev-lesson-context-nav .rjev-back{
  margin:0;
}
.rje-vocab-app .rjev-phase-back{
  justify-content:center;
}
@media(max-width:420px){
  .rje-vocab-app .rjev-lesson-context-nav{gap:7px;margin:5px 0 12px}
  .rje-vocab-app .rjev-lesson-context-nav .rjev-back{padding:7px 11px;font-size:12px}
}

/* v1.0.21 — Phase lesson button now returns to the JLPT level Phase overview. */


/* =========================================================
   v1.0.22 — Study-area continuation anchor
   Scope: frontend navigation/scroll position only.
   ========================================================= */
.rje-vocab-app #rjev-study-start{
  scroll-margin-top:18px;
}
@media(max-width:767px){
  .rje-vocab-app #rjev-study-start{scroll-margin-top:12px}
}


/* =========================================================
   v1.0.23 — Multi-page learning-flow anchors
   Scope: frontend navigation/scroll position only.
   ========================================================= */
.rje-vocab-app #rjev-vocab-start,
.rje-vocab-app #rjev-level-selector,
.rje-vocab-app #rjev-level-start,
.rje-vocab-app #rjev-phase-start,
.rje-vocab-app #rjev-chapter-start{
  scroll-margin-top:18px;
}
@media(max-width:767px){
  .rje-vocab-app #rjev-vocab-start,
  .rje-vocab-app #rjev-level-selector,
  .rje-vocab-app #rjev-level-start,
  .rje-vocab-app #rjev-phase-start,
  .rje-vocab-app #rjev-chapter-start{scroll-margin-top:12px}
}

/* v1.0.24 — Mobile landing page auto-position is handled in rje-vocab.js. */

/* =========================================================
   v1.0.26 — Mobile lesson-card typography refinement
   Scope: visual-only. No database/importer/content/navigation changes.
   - Reduce the main Japanese vocabulary size on mobile so longer Kanji
     words can remain on one line within the existing card layout.
   - Use normal weight for the Bangla / English meaning in the hero card.
   - Keep all buttons, tabs, colors, card dimensions and other typography unchanged.
   ========================================================= */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:clamp(36px,10vw,48px)!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    letter-spacing:-0.02em!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div>strong{
    font-weight:400!important;
  }
}
\n\n/* =========================================================
   v1.0.27 — Main-card furigana / ruby presentation
   Scope: visual/display-only. Existing word + reading fields are reused.
   - Show the existing reading above Kanji as native HTML ruby text.
   - Remove the duplicate standalone reading line from the hero card.
   - No database, importer, schema, navigation, color or control changes.
   ========================================================= */
.rje-vocab-app .rjev-lesson-hero h1 ruby.rjev-main-ruby{
  ruby-position:over;
  ruby-align:center;
}
.rje-vocab-app .rjev-lesson-hero h1 ruby.rjev-main-ruby rt{
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;
  font-size:.28em;
  line-height:1;
  font-weight:600;
  letter-spacing:.03em;
  color:#5b21b6;
}

/* =========================================================
   v1.0.28 — Mobile hero meaning typography refinement
   Scope: visual-only. No database/importer/content/navigation changes.
   - Reduce only the Bangla / English meaning size in the main lesson card.
   - Keep the meaning at normal font weight.
   - Preserve all other card, button, tab, color and typography settings.
   ========================================================= */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero>div>strong{
    font-size:18px!important;
    font-weight:400!important;
  }
}
@media(max-width:420px){
  .rje-vocab-app .rjev-lesson-hero>div>strong{
    font-size:17px!important;
  }
}
@media(max-width:360px){
  .rje-vocab-app .rjev-lesson-hero>div>strong{
    font-size:16px!important;
  }
}

/* =========================================================
   v1.0.29 — Mobile lesson-card vertical height increase
   Scope: visual-only. No database/importer/content/navigation changes.
   - Increase only the main vocabulary lesson card height by ~70% on mobile.
   - Preserve width, typography, colors, controls, spacing and desktop/tablet UI.
   ========================================================= */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero{
    min-height:612px!important;
  }
}
@media(max-width:420px){
  .rje-vocab-app .rjev-lesson-hero{
    min-height:595px!important;
  }
}

/* =========================================================
   v1.0.30 — Mobile hero action placement refinement
   Scope: visual-only. No database/importer/content/navigation changes.
   - Mobile only: move Favourite / Listen / Known below the part-of-speech badge.
   - Keep the three controls vertically stacked with their existing visual styling.
   - Preserve the approved tall hero card, typography, colors and desktop/tablet UI.
   ========================================================= */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero{
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-start!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div:first-child{
    flex:0 1 auto!important;
    width:100%!important;
  }
  .rje-vocab-app .rjev-hero-actions{
    align-self:flex-start!important;
    min-width:105px!important;
    width:max-content!important;
    margin-top:10px!important;
  }
}
@media(max-width:420px){
  .rje-vocab-app .rjev-hero-actions{
    min-width:100px!important;
    margin-top:8px!important;
  }
}

/* =========================================================
   v1.0.31 — Mobile main Kanji / furigana size increase
   Scope: visual-only. No database/importer/content/navigation changes.
   - Increase the main Kanji vocabulary size by about 50% on typical phones.
   - Keep the size responsive so longer words remain inside the mobile card.
   - Furigana scales automatically with the Kanji through the existing em ratio.
   - Preserve card dimensions, meanings, controls, colors and desktop/tablet UI.
   ========================================================= */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:clamp(48px,15vw,68px)!important;
    line-height:1.02!important;
    max-width:100%!important;
    white-space:nowrap!important;
    letter-spacing:-0.025em!important;
  }
  .rje-vocab-app .rjev-lesson-hero h1 ruby.rjev-main-ruby{
    max-width:100%!important;
  }
}
@media(max-width:360px){
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:clamp(46px,14.5vw,54px)!important;
  }
}


/* =========================================================
   v1.0.32 — Mobile hero visual balance refinement
   Scope: mobile presentation only. No database/importer/data/navigation changes.
   - Increase the main Japanese vocabulary by ~10% from v1.0.31 while retaining
     responsive one-line fitting within the lesson card.
   - Present existing Bangla and English meanings as separate labelled lines.
   - Slightly enlarge the three action buttons and increase vertical spacing.
   - Use the available tall-card space with comfortable, balanced spacing.
   ========================================================= */
.rje-vocab-app .rjev-hero-meanings{
  display:none;
  margin-top:5px;
}
.rje-vocab-app .rjev-hero-meanings p{
  margin:2px 0;
  color:#182033;
  font-weight:400;
}
.rje-vocab-app .rjev-hero-meanings span{
  font-weight:400;
}
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero{
    justify-content:center!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div:first-child{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:clamp(53px,16.5vw,75px)!important;
    line-height:1.02!important;
    max-width:100%!important;
    white-space:nowrap!important;
    letter-spacing:-0.03em!important;
    margin-top:7px!important;
  }
  .rje-vocab-app .rjev-lesson-hero h1 ruby.rjev-main-ruby{
    max-width:100%!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div:first-child>p{
    margin-top:8px!important;
  }
  .rje-vocab-app .rjev-hero-meaning-legacy{
    display:none!important;
  }
  .rje-vocab-app .rjev-hero-meanings{
    display:block!important;
    margin-top:12px!important;
    font-size:18px!important;
    line-height:1.42!important;
    font-weight:400!important;
  }
  .rje-vocab-app .rjev-hero-meanings p{
    margin:3px 0!important;
    font-weight:400!important;
  }
  .rje-vocab-app .rjev-tags{
    margin-top:12px!important;
  }
  .rje-vocab-app .rjev-hero-actions{
    gap:11px!important;
    margin-top:15px!important;
    min-width:116px!important;
  }
  .rje-vocab-app .rjev-hero-actions button{
    font-size:12px!important;
    padding:10px 13px!important;
  }
}
@media(max-width:420px){
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:clamp(51px,16.5vw,68px)!important;
  }
  .rje-vocab-app .rjev-hero-meanings{
    font-size:17px!important;
  }
  .rje-vocab-app .rjev-hero-actions{
    min-width:112px!important;
    gap:10px!important;
    margin-top:14px!important;
  }
  .rje-vocab-app .rjev-hero-actions button{
    font-size:11.5px!important;
    padding:9px 12px!important;
  }
}
@media(max-width:360px){
  .rje-vocab-app .rjev-lesson-hero h1{
    font-size:clamp(49px,16vw,60px)!important;
  }
  .rje-vocab-app .rjev-hero-meanings{
    font-size:16px!important;
  }
}

/* =========================================================
   v1.0.35 — Mobile Pearl Aurora main-card surface
   Scope: mobile visual surface only. No layout/data/function changes.
   - Refine only the main vocabulary lesson card background on mobile.
   - Pearl ivory + sakura mist + pale lavender + ice blue aurora blend.
   - Add a restrained translucent lavender border and soft premium depth.
   - Preserve all typography, spacing, dimensions, controls and desktop/tablet UI.
   ========================================================= */
@media(max-width:700px){
  .rje-vocab-app .rjev-lesson-hero{
    background:
      radial-gradient(circle at 10% 6%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.72) 18%,rgba(255,255,255,0) 40%),
      radial-gradient(circle at 88% 14%,rgba(239,230,255,.78) 0%,rgba(239,230,255,.34) 28%,rgba(239,230,255,0) 52%),
      radial-gradient(circle at 78% 88%,rgba(218,244,255,.82) 0%,rgba(218,244,255,.36) 34%,rgba(218,244,255,0) 60%),
      linear-gradient(145deg,#fffaf6 0%,#faeff8 32%,#eeedff 63%,#e4f7ff 100%)!important;
    border-color:rgba(181,160,226,.44)!important;
    box-shadow:
      0 18px 44px rgba(69,49,112,.12),
      inset 0 1px 0 rgba(255,255,255,.92),
      inset 0 -1px 0 rgba(144,119,196,.08)!important;
  }
}


/* =========================================================
   v1.0.36 — Mobile Kanji-plugin palette replication
   Scope: mobile visual theme only. No layout/data/function changes.
   Source palette: RJE Kanji Learning lesson card / controls.
   ========================================================= */
@media(max-width:700px){
  /* Main lesson card: exact Kanji lesson-card pastel gradient + depth. */
  .rje-vocab-app .rjev-lesson-hero{
    background:linear-gradient(135deg,#fdf2f8 0%,#ede9fe 48%,#cffafe 100%)!important;
    border-color:rgba(255,255,255,.8)!important;
    box-shadow:0 16px 38px rgba(109,40,217,.14)!important;
  }

  /* Main vocabulary: Kanji plugin indigo → violet → magenta treatment. */
  .rje-vocab-app .rjev-lesson-hero h1{
    background:linear-gradient(145deg,#312e81,#7c3aed,#db2777)!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    filter:drop-shadow(0 5px 9px rgba(109,40,217,.14))!important;
  }
  .rje-vocab-app .rjev-lesson-hero h1 ruby.rjev-main-ruby rt{
    color:#7c3aed!important;
    -webkit-text-fill-color:#7c3aed!important;
    background:none!important;
    filter:none!important;
  }

  /* Supporting text follows the Kanji card's ink / muted-purple family. */
  .rje-vocab-app .rjev-lesson-hero>div:first-child>span{
    color:#7c3aed!important;
  }
  .rje-vocab-app .rjev-lesson-hero>div:first-child>p{
    color:#4b5563!important;
  }
  .rje-vocab-app .rjev-hero-meanings,
  .rje-vocab-app .rjev-hero-meanings p,
  .rje-vocab-app .rjev-hero-meanings span{
    color:#312e81!important;
  }

  /* Part-of-speech + action pills: Kanji secondary audio-control palette. */
  .rje-vocab-app .rjev-tags i,
  .rje-vocab-app .rjev-hero-actions button{
    background:rgba(255,255,255,.84)!important;
    color:#5b21b6!important;
    border-color:rgba(196,181,253,.9)!important;
    box-shadow:0 6px 16px rgba(76,29,149,.10)!important;
  }
  .rje-vocab-app .rjev-hero-actions button:hover,
  .rje-vocab-app .rjev-hero-actions button:focus-visible{
    background:#fff!important;
    color:#6d28d9!important;
    border-color:#c4b5fd!important;
    box-shadow:0 8px 20px rgba(124,58,237,.18)!important;
  }

  /* Chapter / Phase and Previous / Next controls: pale Kanji navigation palette. */
  .rje-vocab-app .rjev-back,
  .rje-vocab-app .rjev-word-nav-btn{
    background:linear-gradient(135deg,#fff,#f5f3ff)!important;
    color:#5b21b6!important;
    border-color:#ddd6fe!important;
    box-shadow:0 6px 16px rgba(76,29,149,.10)!important;
  }
  .rje-vocab-app a.rjev-word-nav-btn:hover,
  .rje-vocab-app a.rjev-word-nav-btn:focus-visible,
  .rje-vocab-app .rjev-back:hover,
  .rje-vocab-app .rjev-back:focus-visible{
    background:linear-gradient(135deg,#f5f3ff,#fdf2f8)!important;
    color:#6d28d9!important;
    border-color:#c4b5fd!important;
  }

  /* Remaining lesson accordions: exact Kanji pastel panel families. */
  .rje-vocab-app .rjev-panel summary{
    color:#312e81!important;
  }
  .rje-vocab-app .rjev-panel.blue summary,
  .rje-vocab-app .rjev-panel.cyan summary{
    background:linear-gradient(110deg,#dbeafe,#cffafe)!important;
  }
  .rje-vocab-app .rjev-panel.green summary{
    background:linear-gradient(110deg,#dcfce7,#d1fae5)!important;
  }
  .rje-vocab-app .rjev-panel.yellow summary{
    background:linear-gradient(110deg,#fef3c7,#ffedd5)!important;
  }
  .rje-vocab-app .rjev-panel.purple summary{
    background:linear-gradient(110deg,#ede9fe,#fae8ff)!important;
  }
  .rje-vocab-app .rjev-panel.orange summary{
    background:linear-gradient(110deg,#ffedd5,#fef3c7)!important;
  }
  .rje-vocab-app .rjev-panel.red summary{
    background:linear-gradient(110deg,#fee2e2,#fce7f3)!important;
  }
  .rje-vocab-app .rjev-panel summary span{
    background:rgba(255,255,255,.72)!important;
    color:#5b21b6!important;
    box-shadow:0 4px 10px rgba(31,41,55,.10)!important;
  }
  .rje-vocab-app .rjev-panel[open] summary span{
    background:#fff!important;
  }
}

/* =========================================================
   v1.0.37 — Kanji-plugin palette extended to desktop
   Scope: visual theme only, all screen sizes. No layout/data/function changes.
   Mobile retains the exact v1.0.36 appearance; desktop now uses the same palette.
   ========================================================= */
/* Main lesson card: exact Kanji lesson-card pastel gradient + depth. */
.rje-vocab-app .rjev-lesson-hero{
  background:linear-gradient(135deg,#fdf2f8 0%,#ede9fe 48%,#cffafe 100%)!important;
  border-color:rgba(255,255,255,.8)!important;
  box-shadow:0 16px 38px rgba(109,40,217,.14)!important;
}

/* Main vocabulary: Kanji plugin indigo → violet → magenta treatment. */
.rje-vocab-app .rjev-lesson-hero h1{
  background:linear-gradient(145deg,#312e81,#7c3aed,#db2777)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  filter:drop-shadow(0 5px 9px rgba(109,40,217,.14))!important;
}
.rje-vocab-app .rjev-lesson-hero h1 ruby.rjev-main-ruby rt{
  color:#7c3aed!important;
  -webkit-text-fill-color:#7c3aed!important;
  background:none!important;
  filter:none!important;
}

/* Supporting text follows the Kanji card's ink / muted-purple family. */
.rje-vocab-app .rjev-lesson-hero>div:first-child>span{
  color:#7c3aed!important;
}
.rje-vocab-app .rjev-lesson-hero>div:first-child>p{
  color:#4b5563!important;
}
.rje-vocab-app .rjev-hero-meanings,
.rje-vocab-app .rjev-hero-meanings p,
.rje-vocab-app .rjev-hero-meanings span{
  color:#312e81!important;
}

/* Part-of-speech + action pills: Kanji secondary audio-control palette. */
.rje-vocab-app .rjev-tags i,
.rje-vocab-app .rjev-hero-actions button{
  background:rgba(255,255,255,.84)!important;
  color:#5b21b6!important;
  border-color:rgba(196,181,253,.9)!important;
  box-shadow:0 6px 16px rgba(76,29,149,.10)!important;
}
.rje-vocab-app .rjev-hero-actions button:hover,
.rje-vocab-app .rjev-hero-actions button:focus-visible{
  background:#fff!important;
  color:#6d28d9!important;
  border-color:#c4b5fd!important;
  box-shadow:0 8px 20px rgba(124,58,237,.18)!important;
}

/* Chapter / Phase and Previous / Next controls: pale Kanji navigation palette. */
.rje-vocab-app .rjev-back,
.rje-vocab-app .rjev-word-nav-btn{
  background:linear-gradient(135deg,#fff,#f5f3ff)!important;
  color:#5b21b6!important;
  border-color:#ddd6fe!important;
  box-shadow:0 6px 16px rgba(76,29,149,.10)!important;
}
.rje-vocab-app a.rjev-word-nav-btn:hover,
.rje-vocab-app a.rjev-word-nav-btn:focus-visible,
.rje-vocab-app .rjev-back:hover,
.rje-vocab-app .rjev-back:focus-visible{
  background:linear-gradient(135deg,#f5f3ff,#fdf2f8)!important;
  color:#6d28d9!important;
  border-color:#c4b5fd!important;
}

/* Remaining lesson accordions: exact Kanji pastel panel families. */
.rje-vocab-app .rjev-panel summary{
  color:#312e81!important;
}
.rje-vocab-app .rjev-panel.blue summary,
.rje-vocab-app .rjev-panel.cyan summary{
  background:linear-gradient(110deg,#dbeafe,#cffafe)!important;
}
.rje-vocab-app .rjev-panel.green summary{
  background:linear-gradient(110deg,#dcfce7,#d1fae5)!important;
}
.rje-vocab-app .rjev-panel.yellow summary{
  background:linear-gradient(110deg,#fef3c7,#ffedd5)!important;
}
.rje-vocab-app .rjev-panel.purple summary{
  background:linear-gradient(110deg,#ede9fe,#fae8ff)!important;
}
.rje-vocab-app .rjev-panel.orange summary{
  background:linear-gradient(110deg,#ffedd5,#fef3c7)!important;
}
.rje-vocab-app .rjev-panel.red summary{
  background:linear-gradient(110deg,#fee2e2,#fce7f3)!important;
}
.rje-vocab-app .rjev-panel summary span{
  background:rgba(255,255,255,.72)!important;
  color:#5b21b6!important;
  box-shadow:0 4px 10px rgba(31,41,55,.10)!important;
}
.rje-vocab-app .rjev-panel[open] summary span{
  background:#fff!important;
}
