.rje-kanji-app{
  --ink:#172033;
  --muted:#667085;
  --purple:#7c3aed;
  --pink:#ec4899;
  --blue:#2563eb;
  --cyan:#06b6d4;
  --green:#059669;
  --yellow:#f59e0b;
  --orange:#ea580c;
  --red:#dc2626;
  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-kanji-app *{box-sizing:border-box}
.rje-kanji-app a,.rje-kanji-app summary,.rje-kanji-app button{-webkit-tap-highlight-color:transparent}

/* Hero */
.rje-hero{
  position:relative;
  overflow:hidden;
  padding:30px 20px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:28px;
  background:
    radial-gradient(circle at 10% 15%,rgba(255,255,255,.95) 0 7%,transparent 8%),
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.55) 0 8%,transparent 9%),
    linear-gradient(135deg,#fff1f2 0%,#f5d0fe 38%,#ddd6fe 68%,#cffafe 100%);
  text-align:center;
  margin-bottom:18px;
  box-shadow:0 18px 45px rgba(109,40,217,.16);
}
.rje-hero:before,.rje-hero:after{
  content:"";
  position:absolute;
  width:145px;height:145px;border-radius:50%;filter:blur(2px);opacity:.28;pointer-events:none
}
.rje-hero:before{left:-55px;bottom:-72px;background:linear-gradient(135deg,#fb7185,#f59e0b)}
.rje-hero:after{right:-58px;top:-72px;background:linear-gradient(135deg,#38bdf8,#8b5cf6)}
.rje-eyebrow{position:relative;z-index:1;font-size:11px;letter-spacing:.15em;font-weight:900;color:#6d28d9}
.rje-hero h2{position:relative;z-index:1;font-size:29px;line-height:1.2;margin:8px 0;background:linear-gradient(90deg,#6d28d9,#db2777,#2563eb);-webkit-background-clip:text;background-clip:text;color:transparent}
.rje-hero p,.rje-section-head p{position:relative;z-index:1;color:var(--muted);margin:0}

/* Shared interactive behavior */
.rje-level-card,.rje-chapter-card,.rje-kanji-tile,.rje-swipe-card,.rje-sentence-card,.rje-mistake-card,.rje-back,.rje-panel summary{
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,filter .22s ease,background-position .35s ease
}
.rje-level-card:focus-visible,.rje-chapter-card:focus-visible,.rje-kanji-tile:focus-visible,.rje-back:focus-visible,.rje-panel summary:focus-visible{
  outline:4px solid rgba(37,99,235,.24);outline-offset:3px
}

/* Level cards */
.rje-level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.rje-level-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:148px;
  padding:20px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:24px;
  text-decoration:none;
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  box-shadow:0 12px 28px rgba(31,41,55,.16);
  background-size:180% 180%;
}
.rje-level-card:before{
  content:"";position:absolute;inset:-50%;z-index:-1;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.32) 48%,transparent 61%);
  transform:translateX(-55%) rotate(8deg);transition:transform .55s ease
}
.rje-level-card:after{
  content:"漢";position:absolute;right:12px;top:4px;font-family:"Noto Serif JP",serif;font-size:68px;font-weight:900;color:rgba(255,255,255,.14);line-height:1
}
.rje-level-card span{font-size:32px;font-weight:950;line-height:1}
.rje-level-card strong{font-size:19px;margin-top:8px}
.rje-level-card small{opacity:.9;font-weight:700}
.rje-level-card.blue{background-image:linear-gradient(135deg,#1d4ed8,#06b6d4,#60a5fa)}
.rje-level-card.green{background-image:linear-gradient(135deg,#047857,#10b981,#84cc16)}
.rje-level-card.orange{background-image:linear-gradient(135deg,#c2410c,#f97316,#fbbf24)}
.rje-level-card.purple{background-image:linear-gradient(135deg,#6d28d9,#a855f7,#ec4899)}
.rje-level-card.red{background-image:linear-gradient(135deg,#b91c1c,#f43f5e,#f97316)}

/* Navigation */
.rje-back{
  display:inline-flex;align-items:center;gap:7px;margin:2px 0 15px;padding:10px 14px;border-radius:999px;
  color:#6d28d9;font-weight:850;text-decoration:none;background:linear-gradient(135deg,#f5f3ff,#fdf2f8);border:1px solid #e9d5ff
}
.rje-section-head{padding:4px 3px 16px}
.rje-section-head h2{font-size:28px;line-height:1.2;margin:0 0 5px;background:linear-gradient(90deg,#4f46e5,#9333ea,#db2777);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Chapter cards */
.rje-chapter-grid{display:grid;gap:13px}
.rje-chapter-card{
  position:relative;overflow:hidden;background:linear-gradient(120deg,#fff 0%,#faf5ff 52%,#ecfeff 100%);
  background-size:170% 170%;border:1px solid #e9d5ff;border-radius:21px;padding:19px 52px 19px 19px;
  text-decoration:none;color:var(--ink);display:grid;gap:5px;box-shadow:0 8px 22px rgba(76,29,149,.09)
}
.rje-chapter-card:after{content:"›";position:absolute;right:19px;top:50%;transform:translateY(-50%);width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;font-size:23px;font-weight:900;box-shadow:0 6px 14px rgba(139,92,246,.3)}
.rje-chapter-card:nth-child(4n+2){background-image:linear-gradient(120deg,#fff,#ecfdf5,#eff6ff);border-color:#a7f3d0}
.rje-chapter-card:nth-child(4n+3){background-image:linear-gradient(120deg,#fff,#fff7ed,#fef3c7);border-color:#fed7aa}
.rje-chapter-card:nth-child(4n+4){background-image:linear-gradient(120deg,#fff,#fdf2f8,#f5f3ff);border-color:#fbcfe8}
.rje-chapter-card span{color:#7c3aed;font-weight:900;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.rje-chapter-card strong{font-size:21px}
.rje-chapter-card i{font-style:normal;color:var(--muted);font-weight:650}

/* Kanji tiles */
.rje-kanji-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.rje-kanji-tile{
  position:relative;overflow:hidden;min-height:162px;border:1px solid rgba(139,92,246,.22);border-radius:22px;padding:15px;
  text-align:center;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;justify-content:center;
  background:linear-gradient(145deg,#ffffff 0%,#faf5ff 52%,#eef2ff 100%);box-shadow:0 8px 22px rgba(91,33,182,.10)
}
.rje-kanji-tile:before{content:"";position:absolute;width:75px;height:75px;right:-26px;top:-28px;border-radius:50%;background:linear-gradient(135deg,rgba(236,72,153,.24),rgba(139,92,246,.08))}
.rje-kanji-tile:nth-child(6n+2){background:linear-gradient(145deg,#fff,#ecfeff,#eff6ff);border-color:#bae6fd}
.rje-kanji-tile:nth-child(6n+3){background:linear-gradient(145deg,#fff,#ecfdf5,#f0fdf4);border-color:#bbf7d0}
.rje-kanji-tile:nth-child(6n+4){background:linear-gradient(145deg,#fff,#fff7ed,#fffbeb);border-color:#fed7aa}
.rje-kanji-tile:nth-child(6n+5){background:linear-gradient(145deg,#fff,#fdf2f8,#fff1f2);border-color:#fbcfe8}
.rje-kanji-tile:nth-child(6n+6){background:linear-gradient(145deg,#fff,#f5f3ff,#eef2ff);border-color:#ddd6fe}
.rje-kanji-char{position:relative;font-family:"Noto Serif JP",serif;font-size:66px;font-weight:700;line-height:1;color:#2b1f45;text-shadow:0 3px 10px rgba(109,40,217,.10)}
.rje-kanji-tile small{position:relative;margin-top:11px;line-height:1.4;color:var(--muted);font-weight:650}
.rje-kanji-tile b{position:relative;align-self:center;font-size:11px;margin-top:9px;padding:4px 9px;border-radius:999px;color:#6d28d9;background:rgba(255,255,255,.82);border:1px solid rgba(124,58,237,.15)}

.rje-empty{background:linear-gradient(135deg,#fff7ed,#fef3c7);border:1px solid #fdba74;border-radius:18px;padding:19px;box-shadow:0 8px 20px rgba(234,88,12,.08)}

/* Lesson hero */
.rje-lesson-hero{
  position:relative;overflow:hidden;background:linear-gradient(135deg,#fdf2f8 0%,#ede9fe 48%,#cffafe 100%);
  border:1px solid rgba(255,255,255,.8);border-radius:28px;padding:22px;display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;
  box-shadow:0 16px 38px rgba(109,40,217,.14)
}
.rje-lesson-hero:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-75px;bottom:-110px;background:linear-gradient(135deg,rgba(59,130,246,.22),rgba(236,72,153,.28))}
.rje-lesson-hero>div,.rje-lesson-hero ul{position:relative;z-index:1}
.rje-lesson-hero span{font-weight:900;color:#7c3aed;letter-spacing:.03em}
.rje-lesson-hero h1{font-family:"Noto Serif JP",serif;font-size:112px;font-weight:800;line-height:1;margin:8px 0;background:linear-gradient(145deg,#312e81,#7c3aed,#db2777);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 5px 9px rgba(109,40,217,.14))}
.rje-lesson-hero ul{list-style:none;padding:0;margin:0;text-align:right;color:#4b5563;font-weight:700}
.rje-lesson-hero li{margin:7px 0;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.8)}

/* Accordions */
.rje-panel{border:1px solid rgba(148,163,184,.18);border-radius:20px;margin:13px 0;overflow:hidden;background:#fff;box-shadow:0 7px 21px rgba(31,41,55,.08)}
.rje-panel summary{cursor:pointer;list-style:none;padding:18px;font-size:18px;font-weight:950;display:flex;align-items:center;justify-content:space-between;user-select:none}
.rje-panel summary::-webkit-details-marker{display:none}
.rje-panel summary span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.72);box-shadow:0 4px 10px rgba(31,41,55,.10);transition:transform .25s ease,background .25s ease}
.rje-panel[open] summary span{transform:rotate(45deg);background:#fff}
.rje-panel.blue summary{background:linear-gradient(110deg,#dbeafe,#cffafe)}
.rje-panel.green summary{background:linear-gradient(110deg,#dcfce7,#d1fae5)}
.rje-panel.yellow summary{background:linear-gradient(110deg,#fef3c7,#ffedd5)}
.rje-panel.purple summary{background:linear-gradient(110deg,#ede9fe,#fae8ff)}
.rje-panel.orange summary{background:linear-gradient(110deg,#ffedd5,#fef3c7)}
.rje-panel.red summary{background:linear-gradient(110deg,#fee2e2,#fce7f3)}
.rje-panel-body{padding:18px;font-size:17px;line-height:1.72;background:linear-gradient(180deg,#fff,#fcfcff)}
.rje-info-grid{display:grid;gap:18px}
.rje-info-grid b{color:#6d28d9}
.rje-memory{background:linear-gradient(135deg,#fff7ed,#fef3c7);border:1px solid #fed7aa;border-radius:16px;padding:15px;margin-top:12px}

/* Content cards */
.rje-swipe-card,.rje-sentence-card,.rje-mistake-card{position:relative;border:1px solid #ececf4;border-radius:18px;padding:16px;margin:11px 0;background:linear-gradient(145deg,#fff,#fafafa);box-shadow:0 5px 14px rgba(31,41,55,.06)}
.rje-swipe-card{display:flex;gap:12px;align-items:flex-start}
.rje-swipe-card>span,.rje-sentence-card>b{width:31px;height:31px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff;display:inline-grid;place-items:center;flex:0 0 auto;box-shadow:0 5px 12px rgba(124,58,237,.24)}
.rje-swipe-card p{margin:0}
.rje-sentence-card{background:linear-gradient(145deg,#fff,#fff7ed)}
.rje-sentence-card .jp{font-size:22px;font-weight:800;color:#312e81}
.rje-sentence-card p{margin:5px 0}
.rje-sentence-card small{color:var(--muted)}
.rje-mistake-card{background:linear-gradient(145deg,#fff,#fff1f2)}
.rje-mistake-card .wrong{color:#b91c1c;font-weight:800}
.rje-mistake-card .correct{color:#047857;font-weight:800}
.rje-mistake-card p{margin:5px 0}

/* Desktop hover */
@media (hover:hover) and (pointer:fine){
  .rje-level-card:hover{transform:translateY(-7px) scale(1.025);box-shadow:0 22px 44px rgba(31,41,55,.24);filter:saturate(1.1);background-position:100% 100%}
  .rje-level-card:hover:before{transform:translateX(58%) rotate(8deg)}
  .rje-chapter-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(76,29,149,.16);border-color:#c4b5fd;background-position:100% 100%}
  .rje-chapter-card:hover:after{transform:translateY(-50%) scale(1.13)}
  .rje-kanji-tile:hover{transform:translateY(-6px) rotate(.25deg);box-shadow:0 18px 35px rgba(91,33,182,.17);border-color:#a78bfa}
  .rje-kanji-tile:hover .rje-kanji-char{transform:scale(1.08);color:#6d28d9}
  .rje-kanji-char{transition:transform .22s ease,color .22s ease}
  .rje-back:hover{transform:translateX(-4px);box-shadow:0 8px 18px rgba(109,40,217,.15);border-color:#c4b5fd}
  .rje-panel summary:hover{filter:saturate(1.12) brightness(.99);padding-left:22px}
  .rje-swipe-card:hover,.rje-sentence-card:hover,.rje-mistake-card:hover{transform:translateY(-3px);box-shadow:0 12px 25px rgba(31,41,55,.10);border-color:#ddd6fe}
}

/* Touch feedback */
.rje-level-card:active,.rje-chapter-card:active,.rje-kanji-tile:active,.rje-back:active{transform:scale(.975)}
.rje-panel summary:active{filter:brightness(.96)}

@media(min-width:700px){
  .rje-level-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .rje-kanji-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rje-info-grid{grid-template-columns:1fr 1fr}
  .rje-level-card{min-height:172px}
  .rje-lesson-hero{padding:30px 38px}
}
@media(max-width:420px){
  .rje-kanji-app{padding:0 2px}
  .rje-hero{padding:25px 14px;border-radius:23px}
  .rje-hero h2{font-size:25px}
  .rje-level-grid{gap:10px}
  .rje-level-card{min-height:140px;padding:17px;border-radius:20px}
  .rje-level-card span{font-size:29px}
  .rje-lesson-hero h1{font-size:94px}
  .rje-lesson-hero{padding:18px;border-radius:23px}
  .rje-lesson-hero li{font-size:12px;padding:6px 8px}
  .rje-panel-body{padding:15px;font-size:16px}
  .rje-panel summary{font-size:17px;padding:16px}
  .rje-kanji-grid{gap:9px}
  .rje-kanji-tile{min-height:148px;padding:12px;border-radius:19px}
  .rje-kanji-char{font-size:59px}
  .rje-chapter-card{padding:17px 48px 17px 16px}
}
@media(prefers-reduced-motion:reduce){
  .rje-kanji-app *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}


/* v0.1.2 — prevent WordPress/Elementor theme link-underlines from appearing beneath Kanji */
.rje-kanji-app .rje-kanji-tile,
.rje-kanji-app .rje-kanji-tile:link,
.rje-kanji-app .rje-kanji-tile:visited,
.rje-kanji-app .rje-kanji-tile:hover,
.rje-kanji-app .rje-kanji-tile:focus,
.rje-kanji-app .rje-kanji-tile:active {
  text-decoration: none !important;
  text-decoration-line: none !important;
}
.rje-kanji-app .rje-kanji-tile .rje-kanji-char,
.rje-kanji-app .rje-kanji-tile:hover .rje-kanji-char,
.rje-kanji-app .rje-kanji-tile:focus .rje-kanji-char,
.rje-kanji-app .rje-kanji-tile:active .rje-kanji-char {
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-bottom: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* v0.2.0 — interactive learning foundation */
.rje-kanji-app{--surface:#fff;--surface-2:#f8fafc;--line:#e7e5ef;--shadow:0 14px 34px rgba(52,37,93,.12);padding-bottom:84px}
.rje-kanji-app[data-theme="dark"]{--ink:#f5f3ff;--muted:#cbd5e1;--surface:#171527;--surface-2:#211d34;--line:#393252;background:#100e1d;color:var(--ink);border-radius:24px;padding:10px}
.rje-kanji-app[data-theme="dark"] .rje-panel,.rje-kanji-app[data-theme="dark"] .rje-panel-body,.rje-kanji-app[data-theme="dark"] .rje-swipe-card,.rje-kanji-app[data-theme="dark"] .rje-sentence-card,.rje-kanji-app[data-theme="dark"] .rje-mistake-card,.rje-kanji-app[data-theme="dark"] .rje-reveal-card{background:var(--surface);color:var(--ink);border-color:var(--line)}
.rje-kanji-app[data-theme="dark"] .rje-section-head h2,.rje-kanji-app[data-theme="dark"] .rje-reveal-card,.rje-kanji-app[data-theme="dark"] .rje-kanji-tile{color:var(--ink)}
.rje-app-toolbar,.rje-lesson-topbar{display:flex;align-items:center;gap:10px;margin:12px 0}
.rje-app-toolbar{justify-content:flex-end}.rje-lesson-topbar{justify-content:space-between}
.rje-search{flex:1;display:flex;align-items:center;gap:10px;border:1px solid #ddd6fe;background:rgba(255,255,255,.82);border-radius:16px;padding:10px 13px;box-shadow:0 6px 18px rgba(76,29,149,.08)}
.rje-search input{width:100%;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;font:inherit;color:var(--ink);padding:0!important}
.rje-icon-button{width:44px;height:44px;border:1px solid #ddd6fe;border-radius:14px;background:linear-gradient(135deg,#fff,#f5f3ff);font-size:20px;cursor:pointer;color:#5b21b6;box-shadow:0 6px 16px rgba(76,29,149,.10)}
.rje-hero-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:16px;position:relative;z-index:1}.rje-hero-stats span{font-size:12px;font-weight:800;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.64);border:1px solid rgba(255,255,255,.75)}
.rje-continue-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px;margin:14px 0;border-radius:20px;background:linear-gradient(120deg,#312e81,#7c3aed,#db2777);color:#fff;box-shadow:0 14px 30px rgba(91,33,182,.25)}.rje-continue-card div{display:flex;flex-direction:column}.rje-continue-card small{opacity:.78}.rje-continue-card strong{font-size:17px}.rje-continue-card a{color:#fff!important;text-decoration:none!important;font-weight:900;background:rgba(255,255,255,.15);padding:10px 12px;border-radius:12px}
.rje-dashboard-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.rje-action-card{border:1px solid #e9d5ff;border-radius:18px;background:linear-gradient(145deg,#fff,#faf5ff);padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;color:var(--ink);box-shadow:0 8px 18px rgba(76,29,149,.08)}.rje-action-card>span{font-size:24px}.rje-action-card b{font-size:13px}.rje-action-card small{font-size:11px;color:var(--muted)}
.rje-level-card em,.rje-chapter-card em{font-style:normal;font-weight:800;font-size:12px;margin-top:7px;opacity:.82}.rje-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.rje-section-head>div{min-width:0}.rje-level-pill,.rje-total-pill{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}.rje-level-pill{background:#ede9fe;color:#6d28d9}.rje-total-pill{background:#ecfeff;color:#0e7490;white-space:nowrap}
.rje-mini-progress{height:6px;border-radius:99px;background:#ede9fe;overflow:hidden;margin-top:8px}.rje-mini-progress i{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#ec4899)}
.rje-tile-top{position:absolute;left:10px;right:10px;top:10px;display:flex;justify-content:space-between;align-items:center}.rje-fav-mini{font-style:normal;color:#a78bfa}.rje-difficulty{display:inline-flex;align-items:center;width:auto!important;height:auto!important;padding:4px 8px!important;border-radius:999px!important;font-size:10px!important;font-style:normal;font-weight:900;background:#dcfce7!important;color:#047857!important}.rje-difficulty.medium{background:#fef3c7!important;color:#a16207!important}.rje-difficulty.hard{background:#fee2e2!important;color:#b91c1c!important}
.rje-mode-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px;border-radius:16px;background:#ede9fe;margin:12px 0}.rje-mode-switch button{border:0;border-radius:12px;padding:11px 7px;background:transparent;color:#6d28d9;font-weight:900;cursor:pointer}.rje-mode-switch button.active{background:#fff;color:#4c1d95;box-shadow:0 6px 14px rgba(91,33,182,.15)}
.rje-hero-main{min-width:0}.rje-primary-meaning{font-weight:800;margin:0;color:#4c1d95}.rje-hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.rje-favourite-button{border:1px solid rgba(255,255,255,.85);border-radius:999px;background:rgba(255,255,255,.72);padding:8px 12px;font-weight:900;color:#6d28d9;cursor:pointer}.rje-favourite-button.active{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.rje-favourite-button span{font-size:18px}
.rje-lesson-progress{padding:13px 15px;border:1px solid #e9d5ff;border-radius:17px;background:linear-gradient(135deg,#fff,#faf5ff);margin:12px 0}.rje-lesson-progress>div{display:flex;justify-content:space-between;font-size:12px;font-weight:900;margin-bottom:8px}.rje-lesson-progress>i{display:block;height:9px;border-radius:99px;background:#ede9fe;overflow:hidden}.rje-lesson-progress em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#06b6d4,#7c3aed,#ec4899);transition:width .3s ease}
.rje-reveal-all{display:block;width:100%;border:0;border-radius:15px;padding:13px;background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff;font-weight:900;cursor:pointer;margin:10px 0}
.rje-card-carousel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:4px 2px 10px;overflow:visible;scroll-snap-type:none}.rje-card-carousel::-webkit-scrollbar{display:none}
.rje-reveal-card{position:relative;scroll-snap-align:none;min-width:0;min-height:190px;border:1px solid #ddd6fe;border-radius:20px;background:linear-gradient(145deg,#fff,#faf5ff);padding:18px;text-align:left;color:var(--ink);cursor:pointer;box-shadow:0 8px 20px rgba(76,29,149,.09);overflow:hidden}.rje-card-number{position:absolute;top:11px;right:11px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff;font-weight:900}.rje-card-front,.rje-card-back{transition:opacity .2s ease,transform .2s ease}.rje-card-front{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.rje-card-front b{color:#7c3aed}.rje-card-back{position:absolute;inset:18px;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(10px);pointer-events:none}.rje-reveal-card.revealed .rje-card-front{opacity:0;transform:translateY(-10px)}.rje-reveal-card.revealed .rje-card-back{opacity:1;transform:none}.rje-sentence-reveal .jp{font-size:22px;font-weight:850;color:#312e81}.rje-sentence-reveal .rje-card-back p{margin:5px 0}
.rje-wrong-box,.rje-correct-box{padding:12px;border-radius:14px;margin:7px 0}.rje-wrong-box{background:#fff1f2;border:1px solid #fecdd3;color:#b91c1c}.rje-correct-box{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.rje-wrong-box p,.rje-correct-box p{margin:3px 0}.rje-mistake-card details{margin-top:8px}.rje-mistake-card details summary{cursor:pointer;font-weight:900;color:#6d28d9}
.rje-kanji-app[data-mode="practice"] .rje-primary-meaning,.rje-kanji-app[data-mode="practice"] .rje-answer{filter:blur(7px);user-select:none}.rje-kanji-app[data-mode="exam"] .rje-study-content,.rje-kanji-app[data-mode="exam"] .rje-primary-meaning,.rje-kanji-app[data-mode="exam"] .rje-hero-side ul{display:none}.rje-kanji-app[data-mode="exam"] .rje-lesson-hero{min-height:360px;justify-content:center;text-align:center}.rje-kanji-app[data-mode="exam"] .rje-hero-side{position:absolute;right:18px;top:18px}.rje-kanji-app.rje-all-revealed .rje-primary-meaning,.rje-kanji-app.rje-all-revealed .rje-answer{filter:none!important}.rje-kanji-app.rje-all-revealed[data-mode="exam"] .rje-study-content{display:block}.rje-kanji-app.rje-all-revealed[data-mode="exam"] .rje-primary-meaning,.rje-kanji-app.rje-all-revealed[data-mode="exam"] .rje-hero-side ul{display:block}
.rje-bottom-nav{position:sticky;bottom:8px;z-index:20;margin:18px auto 0;max-width:520px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:7px;border:1px solid rgba(221,214,254,.9);border-radius:20px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);box-shadow:0 14px 34px rgba(49,46,129,.20)}.rje-bottom-nav a,.rje-bottom-nav button,.rje-bottom-nav>span{border:0;background:transparent;text-decoration:none!important;color:#6d28d9;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 3px;border-radius:13px;cursor:pointer}.rje-bottom-nav span span,.rje-bottom-nav a span,.rje-bottom-nav button span{font-size:21px}.rje-bottom-nav small{font-size:10px;font-weight:900}.rje-bottom-nav .disabled{opacity:.3;cursor:default}.rje-bottom-nav button.active{background:#fef3c7;color:#92400e}
.rje-local-panel{border:1px solid #ddd6fe;border-radius:20px;background:linear-gradient(145deg,#fff,#faf5ff);padding:15px;margin:14px 0;box-shadow:var(--shadow)}.rje-local-head{display:flex;align-items:center;justify-content:space-between}.rje-local-head h3{margin:0}.rje-local-head button{border:0;background:#ede9fe;color:#6d28d9;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer}.rje-local-list{display:grid;gap:8px;margin-top:12px}.rje-local-list a{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:10px;border-radius:14px;background:#fff;text-decoration:none!important;color:var(--ink);border:1px solid #eee}.rje-local-list a b{font-size:28px}.rje-local-list a span{font-size:13px}.rje-local-list a em{font-style:normal;font-size:11px;color:#7c3aed;font-weight:900}.rje-empty-small{color:var(--muted)}
.rje-progress-dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rje-progress-dashboard>div{padding:18px 8px;border-radius:18px;background:linear-gradient(145deg,#fff,#f5f3ff);border:1px solid #ddd6fe;text-align:center}.rje-progress-dashboard strong{display:block;font-size:27px;color:#7c3aed}.rje-progress-dashboard span{font-size:12px;color:var(--muted)}
.rje-toast{position:fixed;left:50%;bottom:92px;z-index:99999;transform:translate(-50%,15px);opacity:0;background:#211d34;color:#fff;padding:11px 16px;border-radius:999px;font-weight:800;font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:.22s ease}.rje-toast.show{opacity:1;transform:translate(-50%,0)}
.rje-no-results{text-align:center;padding:24px;color:var(--muted)}
@media(hover:hover) and (pointer:fine){.rje-action-card:hover,.rje-icon-button:hover,.rje-reveal-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(76,29,149,.15)}.rje-bottom-nav a:hover,.rje-bottom-nav button:hover{background:#f5f3ff}.rje-local-list a:hover{transform:translateX(3px);border-color:#c4b5fd}}
@media(max-width:520px){.rje-dashboard-actions{grid-template-columns:repeat(3,1fr);gap:7px}.rje-action-card{padding:11px 5px}.rje-action-card b{font-size:11px}.rje-action-card small{display:none}.rje-section-head{align-items:flex-start}.rje-card-carousel{grid-template-columns:1fr}.rje-lesson-hero{align-items:flex-start}.rje-hero-side ul{font-size:11px}.rje-favourite-button{padding:7px 9px;font-size:12px}.rje-bottom-nav{bottom:5px}.rje-progress-dashboard{gap:7px}.rje-progress-dashboard>div{padding:14px 4px}}

/* v0.4.0 — quiz, review queue and measurable progress */
.rje-dashboard-actions-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.rje-quiz{margin:18px 0;padding:18px;border-radius:24px;background:linear-gradient(145deg,#eef2ff,#faf5ff 55%,#fff1f2);border:1px solid #ddd6fe;box-shadow:0 14px 34px rgba(76,29,149,.12)}
.rje-quiz-head span,.rje-review-eyebrow{display:inline-flex;padding:5px 9px;border-radius:999px;background:#ede9fe;color:#6d28d9;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.rje-quiz-head h3,.rje-review-box h3{margin:8px 0 3px;font-size:22px}.rje-quiz-head p,.rje-review-box p{margin:0;color:var(--muted)}
.rje-quiz-questions{display:grid;gap:13px;margin-top:16px}.rje-quiz-question{padding:15px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}.rje-quiz-question>b{display:block;margin-bottom:11px;color:var(--ink)}
.rje-quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rje-quiz-options button{min-height:45px;border:1px solid #ddd6fe;border-radius:13px;background:linear-gradient(145deg,#fff,#faf5ff);color:#312e81;font-weight:850;cursor:pointer;padding:9px;transition:.18s ease}.rje-quiz-options button:hover:not(:disabled){transform:translateY(-2px);border-color:#8b5cf6}.rje-quiz-options button.correct{background:#dcfce7;border-color:#22c55e;color:#166534}.rje-quiz-options button.wrong{background:#fee2e2;border-color:#ef4444;color:#991b1b}.rje-quiz-options button:disabled{cursor:default;opacity:.88}
.rje-quiz-feedback{min-height:20px;margin:9px 0 0!important;font-size:13px;font-weight:800}.rje-quiz-result{margin-top:14px;padding:15px;border-radius:17px;background:linear-gradient(135deg,#312e81,#7c3aed);color:#fff;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.rje-quiz-result strong{font-size:28px}.rje-quiz-result span{font-size:13px}.rje-quiz-result button{border:0;border-radius:11px;background:rgba(255,255,255,.17);color:#fff;font-weight:900;padding:9px 11px;cursor:pointer}
.rje-review-box{margin:18px 0;padding:18px;border-radius:24px;background:linear-gradient(135deg,#ecfeff,#eef2ff 50%,#faf5ff);border:1px solid #c4b5fd}.rje-rating-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:15px}.rje-rating-grid button{border:1px solid #ddd6fe;border-radius:15px;background:#fff;padding:11px 6px;color:#4c1d95;cursor:pointer}.rje-rating-grid button b,.rje-rating-grid button small{display:block}.rje-rating-grid button small{font-size:10px;color:var(--muted);margin-top:3px}.rje-rating-grid button.active{background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(124,58,237,.25)}.rje-rating-grid button.active small{color:#fff;opacity:.85}.rje-next-review{margin-top:12px!important;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.72);font-weight:850;color:#5b21b6!important}
.rje-progress-dashboard-four{grid-template-columns:repeat(4,minmax(0,1fr))}.rje-progress-section{margin-top:15px;padding:17px;border:1px solid #ddd6fe;border-radius:21px;background:linear-gradient(145deg,#fff,#faf5ff)}.rje-progress-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.rje-progress-section-head h3{margin:0}.rje-progress-section-head button{border:0;border-radius:12px;padding:9px 12px;background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff;font-weight:900;cursor:pointer}.rje-review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.rje-review-summary>div{padding:13px;border-radius:15px;background:#fff;border:1px solid #ede9fe;text-align:center}.rje-review-summary span,.rje-review-summary b{display:block}.rje-review-summary span{font-size:11px;color:var(--muted)}.rje-review-summary b{font-size:22px;color:#7c3aed;margin-top:3px}
.rje-completed-tile:after{content:'✓';position:absolute;right:10px;bottom:9px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#22c55e;color:#fff;font-weight:900;box-shadow:0 5px 12px rgba(34,197,94,.28)}
.rje-kanji-app[data-theme="dark"] .rje-quiz,.rje-kanji-app[data-theme="dark"] .rje-review-box,.rje-kanji-app[data-theme="dark"] .rje-progress-section{background:linear-gradient(145deg,#211d34,#171527);border-color:var(--line)}.rje-kanji-app[data-theme="dark"] .rje-quiz-options button,.rje-kanji-app[data-theme="dark"] .rje-rating-grid button,.rje-kanji-app[data-theme="dark"] .rje-review-summary>div{background:#211d34;color:var(--ink);border-color:var(--line)}
@media(max-width:640px){.rje-dashboard-actions-four{grid-template-columns:repeat(2,1fr)}.rje-progress-dashboard-four{grid-template-columns:repeat(2,1fr)}.rje-rating-grid{grid-template-columns:repeat(2,1fr)}.rje-quiz-result{grid-template-columns:auto 1fr}.rje-quiz-result button{grid-column:1/-1}.rje-review-summary{grid-template-columns:1fr}.rje-quiz-options{grid-template-columns:1fr}}


/* v0.5.0 — built-in Japanese pronunciation audio */
.rje-audio-hero{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.rje-speak-button,.rje-inline-speak,.rje-card-speak{border:0;cursor:pointer;transition:.18s ease}.rje-speak-button{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border-radius:999px;background:linear-gradient(135deg,#7c3aed,#ec4899);color:#fff;font-weight:900;box-shadow:0 8px 20px rgba(124,58,237,.22)}.rje-speak-button.secondary{background:rgba(255,255,255,.84);color:#5b21b6;border:1px solid rgba(196,181,253,.9)}.rje-speak-button:hover,.rje-inline-speak:hover,.rje-card-speak:hover{transform:translateY(-2px)}.rje-speak-button.speaking,.rje-inline-speak.speaking,.rje-card-speak.speaking{animation:rjeAudioPulse .75s ease-in-out infinite alternate;box-shadow:0 0 0 5px rgba(139,92,246,.16)}
.rje-inline-speak{display:inline-flex;align-items:center;gap:5px;margin:3px 0 11px;padding:7px 10px;border-radius:10px;background:#ede9fe;color:#5b21b6;font-size:12px;font-weight:900}.rje-audio-settings{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;padding:10px 12px;border-radius:13px;background:linear-gradient(135deg,#f5f3ff,#eef2ff);border:1px solid #ddd6fe;font-size:12px}.rje-audio-settings label{font-weight:850;color:#4c1d95}.rje-audio-settings select{margin-left:5px;border:1px solid #c4b5fd;border-radius:8px;padding:5px 7px;background:#fff;color:#312e81}.rje-audio-settings span{color:var(--muted)}
.rje-reveal-card{position:relative}.rje-card-speak{position:absolute;right:10px;top:10px;z-index:4;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);color:#6d28d9;box-shadow:0 5px 14px rgba(76,29,149,.15)}.rje-card-speak:disabled,.rje-speak-button:disabled,.rje-inline-speak:disabled{opacity:.42;cursor:not-allowed}.rje-kanji-app[data-theme="dark"] .rje-speak-button.secondary,.rje-kanji-app[data-theme="dark"] .rje-card-speak{background:#211d34;color:#c4b5fd;border-color:var(--line)}.rje-kanji-app[data-theme="dark"] .rje-audio-settings{background:#211d34;border-color:var(--line)}.rje-kanji-app[data-theme="dark"] .rje-audio-settings select{background:#171527;color:var(--ink);border-color:var(--line)}
@keyframes rjeAudioPulse{from{transform:scale(1)}to{transform:scale(1.05)}}
@media(max-width:520px){.rje-audio-hero{display:grid;grid-template-columns:1fr 1fr}.rje-speak-button{justify-content:center;padding:9px 8px;font-size:12px}.rje-audio-settings{align-items:flex-start;flex-direction:column}.rje-card-speak{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.rje-speak-button.speaking,.rje-inline-speak.speaking,.rje-card-speak.speaking{animation:none}}

/* v0.6.0 Writing Practice */
.rje-writing-practice{display:grid;gap:18px}.rje-writing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.rje-writing-head span{display:inline-block;padding:5px 10px;border-radius:999px;background:linear-gradient(135deg,#dcfce7,#d1fae5);color:#047857;font-size:12px;font-weight:800;letter-spacing:.04em}.rje-writing-head h3{margin:8px 0 5px;font-size:22px}.rje-writing-head p{margin:0;max-width:650px;color:var(--rje-muted,#64748b)}.rje-writing-head>strong{flex:0 0 auto;padding:10px 14px;border-radius:16px;background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;box-shadow:0 10px 22px rgba(16,185,129,.22)}
.rje-writing-layout{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:16px;align-items:stretch}.rje-writing-board{position:relative;aspect-ratio:1/1;max-width:520px;width:100%;margin:auto;overflow:hidden;border:2px solid rgba(16,185,129,.25);border-radius:24px;background:linear-gradient(145deg,#fff,#f0fdf4);box-shadow:inset 0 0 0 8px rgba(255,255,255,.55),0 18px 36px rgba(15,118,110,.12);touch-action:none;user-select:none}.rje-writing-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:4;cursor:crosshair;touch-action:none}.rje-writing-guide{position:absolute;inset:0;display:grid;place-items:center;font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:clamp(170px,48vw,360px);font-weight:500;line-height:1;color:rgba(16,185,129,.16);z-index:2;transition:opacity .2s ease}.rje-writing-board.guide-hidden .rje-writing-guide{opacity:0}.rje-writing-gridlines{position:absolute;inset:7%;z-index:1;border:1px dashed rgba(15,118,110,.22);background:linear-gradient(to right,transparent calc(50% - .5px),rgba(15,118,110,.16) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),rgba(15,118,110,.16) 50%,transparent calc(50% + .5px));pointer-events:none}.rje-writing-gridlines:before,.rje-writing-gridlines:after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent calc(50% - .5px),rgba(15,118,110,.1) 50%,transparent calc(50% + .5px))}.rje-writing-gridlines:after{transform:rotate(90deg)}
.rje-writing-controls{display:flex;flex-direction:column;gap:10px}.rje-writing-controls button,.rje-writing-controls select{min-height:46px;border:1px solid rgba(15,118,110,.18);border-radius:14px;background:#fff;color:#0f172a;font-weight:750;padding:10px 12px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.rje-writing-controls button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(15,118,110,.13);border-color:#34d399}.rje-writing-controls button.primary{background:linear-gradient(135deg,#10b981,#0ea5e9);color:#fff;border:0}.rje-writing-controls label{display:grid;gap:6px;font-size:13px;font-weight:750;color:#475569}.rje-writing-note{padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,rgba(236,253,245,.9),rgba(224,242,254,.9));border:1px solid rgba(20,184,166,.16)}.rje-writing-note b{color:#047857}.rje-writing-note p{margin:4px 0 0;color:#475569;font-size:14px}
.rje-kanji-app.rje-dark .rje-writing-board{background:linear-gradient(145deg,#0f172a,#132b2a);border-color:rgba(52,211,153,.3);box-shadow:inset 0 0 0 8px rgba(15,23,42,.5),0 18px 36px rgba(0,0,0,.25)}.rje-kanji-app.rje-dark .rje-writing-controls button,.rje-kanji-app.rje-dark .rje-writing-controls select{background:#172033;color:#e2e8f0;border-color:rgba(148,163,184,.2)}.rje-kanji-app.rje-dark .rje-writing-note{background:linear-gradient(135deg,rgba(6,78,59,.28),rgba(12,74,110,.25))}.rje-kanji-app.rje-dark .rje-writing-note p,.rje-kanji-app.rje-dark .rje-writing-controls label{color:#cbd5e1}
@media(max-width:720px){.rje-writing-head{display:grid}.rje-writing-head>strong{justify-self:start}.rje-writing-layout{grid-template-columns:1fr}.rje-writing-board{max-width:100%}.rje-writing-controls{display:grid;grid-template-columns:1fr 1fr}.rje-writing-controls label{grid-column:span 2}.rje-writing-controls button.primary{grid-column:span 2}}

/* v0.7.0 — verified KanjiVG stroke-order animation */
.rje-stroke-player{display:grid;gap:13px;padding:15px;border-radius:21px;background:linear-gradient(145deg,#eff6ff,#f5f3ff 52%,#ecfeff);border:1px solid rgba(99,102,241,.18)}
.rje-stroke-stage{position:relative;width:min(100%,430px);aspect-ratio:1;margin:auto;border:2px solid rgba(99,102,241,.2);border-radius:22px;overflow:hidden;background:rgba(255,255,255,.88);box-shadow:inset 0 0 0 8px rgba(255,255,255,.55),0 14px 30px rgba(79,70,229,.12)}
.rje-stroke-svg{position:absolute;inset:7%;width:86%;height:86%;z-index:3;overflow:visible}.rje-stroke-svg path{fill:none;stroke:#312e81;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;opacity:.24}.rje-stroke-svg path.drawn{opacity:1}.rje-stroke-svg path.active{stroke:#ec4899;filter:drop-shadow(0 0 3px rgba(236,72,153,.4))}
.rje-stroke-grid{position:absolute;inset:7%;border:1px dashed rgba(99,102,241,.2);background:linear-gradient(to right,transparent calc(50% - .5px),rgba(99,102,241,.14) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),rgba(99,102,241,.14) 50%,transparent calc(50% + .5px));z-index:1}.rje-stroke-grid:before,.rje-stroke-grid:after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent calc(50% - .5px),rgba(99,102,241,.08) 50%,transparent calc(50% + .5px))}.rje-stroke-grid:after{transform:rotate(90deg)}
.rje-stroke-loading{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:#5b21b6;font-weight:850;z-index:4}.rje-stroke-loading:before{content:"";width:34px;height:34px;border:4px solid #ddd6fe;border-top-color:#7c3aed;border-radius:50%;animation:rjeStrokeSpin .9s linear infinite;position:absolute;top:35%}.rje-stroke-loading.error{color:#b91c1c}.rje-stroke-loading.error:before{display:none}
.rje-stroke-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.rje-stroke-controls button,.rje-stroke-controls select{min-height:42px;border:1px solid #c7d2fe;border-radius:12px;background:#fff;color:#3730a3;font-weight:850;padding:8px 12px;cursor:pointer}.rje-stroke-controls button.primary{border:0;background:linear-gradient(135deg,#4f46e5,#8b5cf6,#ec4899);color:#fff;box-shadow:0 8px 17px rgba(79,70,229,.2)}.rje-stroke-controls button:hover:not(:disabled){transform:translateY(-1px)}.rje-stroke-controls button:disabled{opacity:.45;cursor:not-allowed}.rje-stroke-controls label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:850;color:#475569}.rje-stroke-counter{min-width:68px;padding:8px 11px;border-radius:999px;background:#ede9fe;color:#5b21b6;text-align:center;font-weight:900}.rje-stroke-source{text-align:center;font-size:11px;color:#64748b}
.rje-kanji-app[data-theme="dark"] .rje-stroke-player{background:linear-gradient(145deg,#211d34,#172033);border-color:var(--line)}.rje-kanji-app[data-theme="dark"] .rje-stroke-stage{background:#101827;border-color:rgba(167,139,250,.25);box-shadow:inset 0 0 0 8px rgba(15,23,42,.55),0 14px 30px rgba(0,0,0,.25)}.rje-kanji-app[data-theme="dark"] .rje-stroke-svg path{stroke:#ede9fe}.rje-kanji-app[data-theme="dark"] .rje-stroke-svg path.active{stroke:#f472b6}.rje-kanji-app[data-theme="dark"] .rje-stroke-controls button,.rje-kanji-app[data-theme="dark"] .rje-stroke-controls select{background:#211d34;color:#ddd6fe;border-color:var(--line)}.rje-kanji-app[data-theme="dark"] .rje-stroke-controls label,.rje-kanji-app[data-theme="dark"] .rje-stroke-source{color:#cbd5e1}
@keyframes rjeStrokeSpin{to{transform:rotate(360deg)}}
@media(max-width:520px){.rje-stroke-controls{display:grid;grid-template-columns:1fr 1fr}.rje-stroke-controls label{grid-column:1/-1;justify-content:center}.rje-stroke-counter{justify-self:center}.rje-stroke-stage{width:100%}}
@media(prefers-reduced-motion:reduce){.rje-stroke-loading:before{animation:none}.rje-stroke-svg path{transition:none!important}}

/* v0.8.0 account sync */
.rje-sync-status{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;background:linear-gradient(135deg,#eef2ff,#ecfeff);border:1px solid rgba(99,102,241,.16);font-size:12px;font-weight:800;color:#4338ca;white-space:nowrap}
.rje-sync-status[data-state="ok"]{background:linear-gradient(135deg,#dcfce7,#ecfdf5);color:#047857;border-color:rgba(16,185,129,.25)}
.rje-sync-status[data-state="busy"]{background:linear-gradient(135deg,#fef3c7,#fff7ed);color:#b45309}
.rje-sync-status[data-state="error"]{background:linear-gradient(135deg,#fee2e2,#fff1f2);color:#be123c}
.rje-sync-status[data-state="guest"]{background:linear-gradient(135deg,#f1f5f9,#f8fafc);color:#64748b}
.rje-kanji-app[data-theme="dark"] .rje-sync-status{background:#1e293b;color:#c7d2fe;border-color:#334155}
@media(max-width:520px){.rje-sync-status{font-size:11px;padding:0 9px;min-height:34px}}

/* v0.8.1 — no horizontal card scrolling */
.rje-panel-body{max-width:100%;overflow-x:hidden}
.rje-card-carousel>.rje-reveal-card{width:100%;max-width:100%;box-sizing:border-box}
.rje-card-back{overflow-wrap:anywhere;word-break:normal}
@media(max-width:900px) and (min-width:521px){.rje-card-carousel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.rje-card-carousel{grid-template-columns:1fr;gap:11px}.rje-reveal-card{min-height:170px;padding:16px}.rje-card-back{inset:16px}}

/* v1.1.1 — photographic premium landing page */
.rje-home-hero{position:relative;min-height:350px;border-radius:30px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(370px,.88fr);align-items:center;padding:44px 48px;background:linear-gradient(112deg,#fff 0%,#fff9fd 35%,#e7f5ff 100%);box-shadow:0 24px 56px rgba(67,56,121,.18);isolation:isolate}
.rje-home-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.94) 40%,rgba(255,255,255,.46) 60%,rgba(255,255,255,.04) 100%),radial-gradient(circle at 8% 10%,rgba(255,255,255,.95) 0 58px,transparent 60px);z-index:1;pointer-events:none}
.rje-home-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:82px;background:linear-gradient(0deg,rgba(244,114,182,.18),transparent);z-index:2;pointer-events:none}
.rje-home-hero-copy{position:relative;z-index:5;max-width:720px}
.rje-home-brand{display:inline-flex;align-items:center;gap:10px;color:#6d28d9;font-size:13px;letter-spacing:.16em;font-weight:900}.rje-home-brand i{font-size:21px;font-style:normal;color:#ec4899}
.rje-home-hero h2{font-size:clamp(42px,5.4vw,72px);line-height:1.01;margin:17px 0 12px;color:#10113f;letter-spacing:-.048em;text-shadow:0 2px 0 rgba(255,255,255,.45)}.rje-home-hero h2 strong{font-weight:950;background:linear-gradient(90deg,#6d28d9,#c026d3,#ec4899);-webkit-background-clip:text;background-clip:text;color:transparent}
.rje-home-hero p{font-size:19px;color:#334155;margin:0;max-width:650px;font-weight:600}.rje-home-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.rje-home-badges span{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.98);font-size:13px;font-weight:850;color:#1e293b;box-shadow:0 8px 22px rgba(49,46,129,.09);backdrop-filter:blur(9px)}
.rje-hero-photo{position:absolute;right:0;top:0;width:59%;height:100%;z-index:0;background-image:url('../images/rje-kanji-hero-student.webp');background-size:cover;background-position:center right;background-repeat:no-repeat;transform:scale(1.01)}
.rje-photo-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.28) 32%,transparent 60%),linear-gradient(0deg,rgba(239,68,128,.12),transparent 45%)}
.rje-study-kanji{position:absolute;right:4%;bottom:42px;width:118px;min-height:126px;border-radius:21px;background:linear-gradient(145deg,rgba(31,20,65,.87),rgba(70,38,99,.75));color:#fff;font-size:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 17px 35px rgba(43,23,81,.27);backdrop-filter:blur(9px);border:1px solid rgba(255,255,255,.18)}.rje-study-kanji small{font-size:11px;text-align:center;line-height:1.45;opacity:.9}
.rje-continue-premium{position:relative;padding:24px 28px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;border-radius:25px;background:linear-gradient(115deg,#17154f 0%,#3b1f7a 43%,#b40d64 100%);box-shadow:0 18px 38px rgba(55,28,112,.25);overflow:hidden}.rje-continue-premium:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-120px;top:-150px;background:rgba(255,255,255,.08)}.rje-continue-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;font-size:34px;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(236,72,153,.26));border:1px solid rgba(255,255,255,.18)}.rje-continue-copy{min-width:0}.rje-continue-copy strong{font-size:23px}.rje-continue-copy>span{font-size:13px;opacity:.8;margin-top:4px}.rje-home-progress{height:8px;border-radius:99px;background:rgba(13,10,72,.55);margin-top:12px;overflow:hidden}.rje-home-progress i{display:block;width:65%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ec4899,#f9a8d4,#c084fc)}.rje-continue-premium>a{position:relative;z-index:2;padding:14px 23px!important;background:linear-gradient(135deg,#f02f9e,#ec4899)!important;box-shadow:0 8px 22px rgba(236,72,153,.32);font-size:16px;white-space:nowrap}
.rje-dashboard-actions-four{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rje-dashboard-actions-four .rje-action-card{position:relative;min-height:112px;align-items:flex-start;text-align:left;padding:20px 20px 18px 70px;background:#fff;border:1px solid #ece7f6;border-radius:21px}.rje-dashboard-actions-four .rje-action-card>span{position:absolute;left:17px;top:24px;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:21px}.rje-dashboard-actions-four .rje-action-card.review>span{background:linear-gradient(135deg,#fb7185,#e11d48)}.rje-dashboard-actions-four .rje-action-card.favourite>span{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.rje-dashboard-actions-four .rje-action-card.random>span{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}.rje-dashboard-actions-four .rje-action-card.recent>span{background:linear-gradient(135deg,#38bdf8,#2563eb)}.rje-dashboard-actions-four .rje-action-card b{font-size:15px}.rje-dashboard-actions-four .rje-action-card small{font-size:12px}.rje-dashboard-actions-four .rje-action-card>i{position:absolute;right:15px;bottom:16px;font-style:normal;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#f8fafc;color:#7c3aed}
.rje-home-level-grid{gap:16px}.rje-home-level-grid .rje-level-card{min-height:285px;padding:28px 22px 23px;justify-content:flex-start;overflow:hidden}.rje-home-level-grid .rje-level-card span{font-size:42px}.rje-home-level-grid .rje-level-card strong{font-size:22px;margin-top:21px}.rje-home-level-grid .rje-level-card em{margin-top:auto;display:inline-flex;width:max-content;padding:9px 16px;border-radius:999px;background:rgba(15,23,42,.25);border:1px solid rgba(255,255,255,.22);position:relative;z-index:3}.rje-level-watermark{position:absolute!important;right:13px;top:19px;font-size:66px!important;line-height:1!important;color:rgba(255,255,255,.18)!important;z-index:1}.rje-level-landscape{position:absolute;left:0;right:0;bottom:0;height:103px;background:rgba(15,23,42,.22);clip-path:polygon(0 58%,14% 47%,23% 61%,38% 36%,49% 55%,63% 29%,78% 52%,100% 31%,100% 100%,0 100%)}
.rje-home-level-grid .rje-level-art-pagoda .rje-level-landscape{clip-path:polygon(0 78%,22% 78%,22% 57%,31% 57%,31% 42%,40% 42%,40% 31%,48% 31%,48% 100%,0 100%)}.rje-home-level-grid .rje-level-art-bamboo .rje-level-landscape{clip-path:polygon(0 100%,0 74%,8% 74%,12% 22%,17% 72%,27% 72%,32% 39%,38% 72%,52% 72%,58% 14%,64% 72%,77% 72%,84% 33%,90% 72%,100% 72%,100% 100%)}.rje-home-level-grid .rje-level-art-torii .rje-level-landscape{clip-path:polygon(0 100%,0 76%,23% 76%,27% 53%,38% 53%,39% 34%,61% 34%,62% 53%,73% 53%,77% 76%,100% 76%,100% 100%)}.rje-home-level-grid .rje-level-art-fuji .rje-level-landscape{clip-path:polygon(0 100%,0 79%,18% 79%,39% 46%,50% 27%,61% 47%,81% 79%,100% 79%,100% 100%)}.rje-home-level-grid .rje-level-art-pine .rje-level-landscape{clip-path:polygon(0 100%,0 81%,19% 81%,27% 62%,39% 70%,47% 43%,56% 66%,70% 54%,80% 76%,100% 76%,100% 100%)}
.rje-home-feature-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:18px;padding:18px 14px;border-radius:21px;background:#fff;border:1px solid #ede9f5;box-shadow:0 10px 28px rgba(53,43,85,.08)}.rje-home-feature-strip>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:3px 16px;border-right:1px solid #eeeaf5}.rje-home-feature-strip>div:last-child{border-right:0}.rje-home-feature-strip span{grid-row:1/3;font-size:22px}.rje-home-feature-strip b{font-size:13px;color:#1e1b4b}.rje-home-feature-strip small{font-size:10px;color:#64748b}
.rje-dark .rje-home-hero{background:#12172c}.rje-dark .rje-home-hero:before{background:linear-gradient(90deg,rgba(15,18,39,.98) 0%,rgba(15,18,39,.91) 43%,rgba(15,18,39,.25) 70%,transparent 100%)}.rje-dark .rje-home-hero h2{color:#fff}.rje-dark .rje-home-hero p{color:#dbeafe}.rje-dark .rje-home-badges span{background:rgba(17,24,39,.72);border-color:rgba(255,255,255,.16);color:#fff}.rje-dark .rje-home-feature-strip,.rje-dark .rje-dashboard-actions-four .rje-action-card{background:#171b31;border-color:#292f4b}
@media(hover:hover) and (pointer:fine){.rje-dashboard-actions-four .rje-action-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(66,45,112,.14)}.rje-continue-premium>a:hover{transform:translateY(-2px);filter:brightness(1.07)}.rje-home-level-grid .rje-level-card:hover .rje-level-landscape{transform:scale(1.05)}.rje-home-hero:hover .rje-hero-photo{transform:scale(1.035)}}
.rje-hero-photo,.rje-level-landscape{transition:transform .45s ease}
@media(max-width:900px){.rje-home-hero{grid-template-columns:1fr;padding:38px 30px;min-height:390px}.rje-home-hero-copy{max-width:72%}.rje-hero-photo{width:62%;opacity:.85}.rje-dashboard-actions-four{grid-template-columns:repeat(2,1fr)}.rje-home-feature-strip{grid-template-columns:repeat(2,1fr)}.rje-home-feature-strip>div{border-right:0;border-bottom:1px solid #eeeaf5;padding:12px}.rje-home-feature-strip>div:last-child{grid-column:1/-1;border-bottom:0}}
@media(max-width:620px){.rje-home-hero{padding:25px 18px 235px;min-height:auto;border-radius:24px}.rje-home-hero:before{background:linear-gradient(180deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.94) 48%,rgba(255,255,255,.17) 76%,transparent 100%)}.rje-home-hero-copy{max-width:100%;text-align:left}.rje-home-hero h2{font-size:40px}.rje-home-hero p{font-size:15px}.rje-home-badges{gap:6px;margin-top:17px}.rje-home-badges span{font-size:10.5px;padding:7px 9px}.rje-hero-photo{top:auto;bottom:0;width:100%;height:245px;background-position:58% center;opacity:1}.rje-photo-shade{background:linear-gradient(180deg,rgba(255,255,255,.45),transparent 30%),linear-gradient(90deg,rgba(255,255,255,.35),transparent 55%)}.rje-study-kanji{right:12px;bottom:16px;width:82px;min-height:91px;font-size:35px;border-radius:16px}.rje-study-kanji small{font-size:9px}.rje-continue-premium{grid-template-columns:auto 1fr;padding:18px;gap:12px}.rje-continue-icon{width:52px;height:52px;font-size:25px}.rje-continue-copy strong{font-size:17px}.rje-continue-copy>span{display:none}.rje-continue-premium>a{grid-column:1/-1;text-align:center}.rje-dashboard-actions-four{gap:9px}.rje-dashboard-actions-four .rje-action-card{padding:15px 10px 14px 58px;min-height:88px}.rje-dashboard-actions-four .rje-action-card>span{left:12px;top:18px;width:35px;height:35px}.rje-dashboard-actions-four .rje-action-card>i{display:none}.rje-home-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.rje-home-level-grid .rje-level-card{min-height:210px;padding:20px 16px}.rje-home-level-grid .rje-level-card span{font-size:34px}.rje-level-watermark{font-size:51px!important}.rje-home-feature-strip{grid-template-columns:1fr}.rje-home-feature-strip>div:last-child{grid-column:auto}}
@media(max-width:390px){.rje-home-hero h2{font-size:35px}.rje-home-hero{padding-bottom:215px}.rje-hero-photo{height:225px}.rje-home-level-grid{gap:10px}.rje-home-level-grid .rje-level-card{min-height:195px}}

/* v1.2.0 — visible learning cards: no tap-to-reveal */
.rje-visible-learning-grid{align-items:stretch}
.rje-learning-card{position:relative;min-width:0;min-height:210px;border:1px solid #ddd6fe;border-radius:22px;background:linear-gradient(145deg,#fff,#faf5ff);padding:28px 22px 22px;color:var(--ink);box-shadow:0 9px 24px rgba(76,29,149,.09);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;justify-content:center}
.rje-vocab-japanese{display:flex;flex-direction:column;gap:2px;padding-right:42px;margin-bottom:15px}.rje-vocab-japanese strong{font-size:clamp(27px,3vw,38px);line-height:1.18;font-weight:900;letter-spacing:.01em}.rje-vocab-japanese span{font-size:16px;color:#6d28d9;font-weight:800}
.rje-vocab-english,.rje-vocab-bangla{margin:5px 0;overflow-wrap:anywhere}.rje-vocab-english{font-size:17px;font-weight:800;color:#4338ca}.rje-vocab-bangla{font-size:18px;line-height:1.55;font-weight:700;color:#1f2937}
.rje-sentence-visible{justify-content:flex-start;padding-top:50px}.rje-sentence-jp{font-size:22px;line-height:1.55;font-weight:900;color:#312e81;margin:0 0 13px;padding-right:36px}.rje-sentence-romaji{font-size:14px;font-style:italic;color:#6b7280;margin:0 0 10px}.rje-sentence-bangla{font-size:17px;line-height:1.55;font-weight:700;margin:0 0 8px;color:#1f2937}.rje-sentence-english{font-size:15px;line-height:1.5;color:#4b5563;margin:0}
.rje-learning-card .rje-card-number{left:14px;right:auto;top:14px;border-radius:10px;width:34px;height:34px}
.rje-learning-card .rje-card-speak{right:13px;top:13px}
.rje-kanji-app[data-theme="dark"] .rje-learning-card{background:linear-gradient(145deg,#211d34,#171527);border-color:var(--line);color:var(--ink)}
.rje-kanji-app[data-theme="dark"] .rje-vocab-japanese span{color:#c4b5fd}.rje-kanji-app[data-theme="dark"] .rje-vocab-english{color:#c4b5fd}.rje-kanji-app[data-theme="dark"] .rje-vocab-bangla,.rje-kanji-app[data-theme="dark"] .rje-sentence-bangla{color:#f4f1ff}.rje-kanji-app[data-theme="dark"] .rje-sentence-jp{color:#e9d5ff}.rje-kanji-app[data-theme="dark"] .rje-sentence-romaji,.rje-kanji-app[data-theme="dark"] .rje-sentence-english{color:#c8c2d8}
@media(hover:hover) and (pointer:fine){.rje-learning-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(76,29,149,.16);border-color:#c4b5fd}}
@media(max-width:520px){.rje-learning-card{min-height:0;padding:24px 18px 19px}.rje-vocab-japanese{padding-right:38px;margin-top:14px}.rje-vocab-japanese strong{font-size:29px}.rje-vocab-english{font-size:16px}.rje-vocab-bangla{font-size:17px}.rje-sentence-visible{padding-top:55px}.rje-sentence-jp{font-size:20px;padding-right:28px}}


/* v1.2.1 vocabulary mastery UI */
.rje-vocab-progress{display:grid;grid-template-columns:auto auto minmax(120px,1fr) auto;align-items:center;gap:16px;margin:0 0 20px;padding:17px 20px;border:1px solid #e8ddff;border-radius:20px;background:linear-gradient(135deg,#fff,#faf7ff);box-shadow:0 10px 24px rgba(91,33,182,.08)}
.rje-vocab-progress-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#7c3aed,#4c1d95);color:#fff;font-size:24px;box-shadow:0 8px 18px rgba(91,33,182,.2)}
.rje-vocab-progress-copy{display:flex;flex-direction:column;line-height:1.15}.rje-vocab-progress-copy span{font-size:12px;color:#6d28d9;font-weight:800}.rje-vocab-progress-copy strong{font-size:23px;color:#111827;margin-top:4px}.rje-vocab-progress-copy strong b{font:inherit}
.rje-vocab-progress-track{height:8px;border-radius:999px;background:#ede9fe;overflow:hidden}.rje-vocab-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7c3aed,#9333ea,#c026d3);transition:width .3s ease}
.rje-vocab-progress-status{font-size:13px;font-weight:850;color:#7c3aed;white-space:nowrap}.rje-vocab-progress-status.complete{color:#16a34a}
.rje-vocab-card{display:flex;flex-direction:column;min-height:210px;padding:18px 18px 16px!important}
.rje-vocab-topline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px}
.rje-learning-card .rje-vocab-topline .rje-card-number{position:static!important;flex:none;width:38px;height:38px;border-radius:11px;font-size:16px;box-shadow:0 7px 16px rgba(147,51,234,.18)}
.rje-vocab-japanese{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding-top:1px}.rje-vocab-japanese strong{font-size:31px;line-height:1.16;color:#111827}.rje-vocab-japanese span{font-size:15px;font-weight:800;color:#6d28d9}
.rje-vocab-topline .rje-card-speak{position:static!important;flex:none}
.rje-vocab-english{font-size:16px!important;font-weight:800;color:#5b21b6!important;margin:22px 0 9px!important}
.rje-vocab-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto}.rje-vocab-bangla{font-size:17px!important;font-weight:850;color:#111827!important;margin:0!important;line-height:1.45}
.rje-known-button{flex:none;border:1px solid #22c55e;background:#fff;color:#15803d;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:850;cursor:pointer;transition:.2s ease}.rje-known-button:hover{background:#f0fdf4;transform:translateY(-1px)}.rje-known-button[aria-pressed="true"]{background:#16a34a;color:#fff;border-color:#16a34a}
.rje-vocab-card.is-known{border-color:#86efac!important;background:linear-gradient(145deg,#fff,#f0fdf4)!important}.rje-vocab-card.is-known:after{content:"✓";position:absolute;right:14px;bottom:12px;font-size:52px;color:rgba(34,197,94,.08);font-weight:900;pointer-events:none}
.rje-vocab-tip{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:14px 16px;border-radius:16px;border:1px solid #e9d5ff;background:linear-gradient(135deg,#faf5ff,#fff)}.rje-vocab-tip span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff}.rje-vocab-tip p{margin:2px 0 0;font-size:13px;line-height:1.65;color:#334155}
.rje-dark .rje-vocab-progress,.rje-dark .rje-vocab-tip{background:#171b31;border-color:#343b5c}.rje-dark .rje-vocab-progress-copy strong,.rje-dark .rje-vocab-japanese strong,.rje-dark .rje-vocab-bangla{color:#f8fafc!important}.rje-dark .rje-vocab-progress-track{background:#2f3656}.rje-dark .rje-known-button{background:#171b31}.rje-dark .rje-vocab-card.is-known{background:linear-gradient(145deg,#171b31,#122a23)!important;border-color:#166534!important}
@media(max-width:720px){.rje-vocab-progress{grid-template-columns:auto 1fr auto;gap:11px;padding:14px}.rje-vocab-progress-track{grid-column:1/-1}.rje-vocab-progress-status{font-size:11px}.rje-vocab-card{min-height:190px}.rje-vocab-japanese strong{font-size:28px}.rje-vocab-bottom{align-items:center}.rje-known-button{padding:8px 10px;font-size:11px}}
@media(max-width:390px){.rje-vocab-topline{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.rje-learning-card .rje-vocab-topline .rje-card-number{width:34px;height:34px}.rje-vocab-japanese strong{font-size:25px}.rje-vocab-japanese span{font-size:13px}.rje-vocab-bottom{display:grid;grid-template-columns:1fr}.rje-known-button{width:100%}}

/* v1.3.0 — true mobile-first landing page / iPhone Safari optimization */
.rje-kanji-app{width:100%;max-width:980px;min-width:0;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.rje-kanji-app button,.rje-kanji-app a{touch-action:manipulation}
.rje-kanji-app img{max-width:100%;height:auto}
.rje-home-hero-copy,.rje-continue-copy,.rje-dashboard-actions-four .rje-action-card,.rje-home-level-grid .rje-level-card{min-width:0}

@media(max-width:620px){
  .rje-kanji-app{padding:0 2px;overflow-x:hidden}
  .rje-home-hero{
    display:flex!important;
    flex-direction:column;
    align-items:stretch;
    min-height:0!important;
    padding:22px 17px 0!important;
    border-radius:22px;
    overflow:hidden;
    background:linear-gradient(155deg,#fff 0%,#fff8fc 48%,#eef8ff 100%);
    box-shadow:0 14px 34px rgba(67,56,121,.14)
  }
  .rje-home-hero:before{
    background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 48%,rgba(255,255,255,.30) 68%,rgba(255,255,255,0) 86%)!important
  }
  .rje-home-hero:after{height:42px;z-index:2}
  .rje-home-hero-copy{order:1;width:100%;max-width:none!important;position:relative;z-index:5;padding:0 0 17px;text-align:left}
  .rje-home-brand{font-size:10px;gap:7px;letter-spacing:.14em;white-space:normal}
  .rje-home-brand i{font-size:17px}
  .rje-home-hero h2{
    font-size:clamp(31px,9.2vw,38px)!important;
    line-height:1.04!important;
    letter-spacing:-.035em!important;
    margin:13px 0 10px!important;
    max-width:100%;
    overflow-wrap:normal;
    word-break:normal;
    white-space:normal;
    text-wrap:balance
  }
  .rje-home-hero p{font-size:14px!important;line-height:1.55;max-width:100%;font-weight:650}
  .rje-home-badges{display:flex;gap:6px!important;margin-top:14px!important;align-items:flex-start}
  .rje-home-badges span{font-size:10px!important;line-height:1.2;padding:7px 9px!important;white-space:nowrap;max-width:100%}
  .rje-hero-photo{
    order:2;
    position:relative!important;
    inset:auto!important;
    width:calc(100% + 34px)!important;
    height:220px!important;
    margin:0 -17px!important;
    transform:none!important;
    opacity:1!important;
    background-size:cover!important;
    background-position:62% 48%!important;
    border-radius:0;
    flex:0 0 auto;
    z-index:0
  }
  .rje-photo-shade{background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 26%),linear-gradient(90deg,rgba(255,255,255,.18),transparent 42%)}
  /* The photographic artwork already contains a learning badge. Hide the extra overlay on phones. */
  .rje-study-kanji{display:none!important}

  .rje-app-toolbar{margin:9px 0 12px;gap:7px;min-height:44px;flex-wrap:wrap}
  .rje-app-toolbar .rje-sync-status{min-height:38px}
  .rje-icon-button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}

  .rje-continue-premium{
    grid-template-columns:48px minmax(0,1fr)!important;
    gap:10px!important;
    padding:16px!important;
    border-radius:21px;
    margin-top:0
  }
  .rje-continue-icon{width:46px!important;height:46px!important;font-size:22px!important}
  .rje-continue-copy small{font-size:10px;line-height:1.2}
  .rje-continue-copy strong{font-size:17px!important;line-height:1.28;display:block;overflow-wrap:anywhere}
  .rje-continue-copy>span{display:none!important}
  .rje-home-progress{height:7px;margin-top:9px}
  .rje-continue-premium>a{
    grid-column:1/-1!important;
    width:100%;
    min-height:48px;
    display:flex!important;
    align-items:center;
    justify-content:center;
    padding:11px 16px!important;
    border-radius:14px!important;
    font-size:15px!important;
    line-height:1.1;
    text-transform:none!important;
    letter-spacing:normal!important
  }

  .rje-dashboard-actions-four{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    margin:12px 0 14px
  }
  .rje-dashboard-actions-four .rje-action-card{
    min-height:112px!important;
    padding:13px 8px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    text-align:center!important;
    border-radius:18px;
    overflow:hidden;
    text-transform:none!important;
    letter-spacing:normal!important;
    line-height:1.2!important
  }
  .rje-dashboard-actions-four .rje-action-card>span{
    position:static!important;
    width:38px!important;
    height:38px!important;
    flex:0 0 38px;
    font-size:19px!important;
    margin:0 0 3px!important
  }
  .rje-dashboard-actions-four .rje-action-card b{
    display:block;
    width:100%;
    font-size:12px!important;
    line-height:1.18!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    text-transform:none!important;
    letter-spacing:normal!important
  }
  .rje-dashboard-actions-four .rje-action-card small{
    display:block!important;
    width:100%;
    font-size:10px!important;
    line-height:1.2!important;
    white-space:normal!important;
    text-transform:none!important;
    letter-spacing:normal!important
  }
  .rje-dashboard-actions-four .rje-action-card>i{display:none!important}

  .rje-home-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important}
  .rje-home-level-grid .rje-level-card{
    min-height:190px!important;
    padding:18px 14px 16px!important;
    border-radius:20px;
    text-transform:none!important;
    letter-spacing:normal!important
  }
  .rje-home-level-grid .rje-level-card span{font-size:32px!important;line-height:1!important}
  .rje-home-level-grid .rje-level-card strong{font-size:20px!important;margin-top:15px!important;line-height:1.1}
  .rje-home-level-grid .rje-level-card small{font-size:11px!important;line-height:1.1}
  .rje-home-level-grid .rje-level-card em{
    padding:8px 12px!important;
    font-size:10.5px!important;
    line-height:1.1;
    white-space:nowrap;
    text-transform:none!important;
    letter-spacing:normal!important
  }
  .rje-level-watermark{right:9px!important;top:13px!important;font-size:47px!important}
  .rje-level-landscape{height:76px!important}
  .rje-home-level-grid .rje-level-card:last-child{grid-column:1/-1;min-height:158px!important}

  .rje-home-feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:10px!important;gap:0;margin-top:14px}
  .rje-home-feature-strip>div{border-right:0!important;border-bottom:1px solid #eeeaf5;padding:11px 7px!important;min-width:0}
  .rje-home-feature-strip>div:nth-last-child(-n+2){border-bottom:0}
  .rje-home-feature-strip>div:last-child{grid-column:1/-1!important;border-bottom:0!important}
  .rje-home-feature-strip b{font-size:11px!important;line-height:1.2}
  .rje-home-feature-strip small{font-size:9px!important;line-height:1.25}

  /* Prevent page/theme typography rules from distorting app labels on iOS. */
  .rje-kanji-app button,
  .rje-kanji-app .rje-action-card,
  .rje-kanji-app .rje-level-card,
  .rje-kanji-app .rje-continue-premium>a{
    font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Bengali","Noto Sans JP",sans-serif!important;
    text-decoration:none!important
  }
}

@media(max-width:390px){
  .rje-home-hero{padding-left:14px!important;padding-right:14px!important}
  .rje-hero-photo{width:calc(100% + 28px)!important;margin-left:-14px!important;margin-right:-14px!important;height:205px!important;background-position:61% 50%!important}
  .rje-home-hero h2{font-size:30px!important}
  .rje-home-badges span{font-size:9.4px!important;padding:6px 7px!important}
  .rje-dashboard-actions-four{gap:8px!important}
  .rje-dashboard-actions-four .rje-action-card{min-height:106px!important}
  .rje-home-level-grid{gap:9px!important}
  .rje-home-level-grid .rje-level-card{min-height:182px!important;padding:16px 12px!important}
  .rje-home-level-grid .rje-level-card:last-child{min-height:150px!important}
}

@media(max-width:350px){
  .rje-home-badges{display:grid;grid-template-columns:1fr 1fr}
  .rje-home-badges span:last-child{grid-column:1/-1;width:max-content;max-width:100%}
  .rje-home-hero h2{font-size:28px!important}
}


/* v1.3.3 — comprehensive dark-mode readability hotfix
   Keeps the existing visual design while ensuring all lesson text remains legible. */
.rje-kanji-app[data-theme="dark"]{
  --ink:#f8fafc;
  --muted:#cbd5e1;
  --surface:#171527;
  --surface-2:#211d34;
  --line:#3f3859;
  color:#f8fafc;
}

/* General copy and labels */
.rje-kanji-app[data-theme="dark"] p,
.rje-kanji-app[data-theme="dark"] li,
.rje-kanji-app[data-theme="dark"] label,
.rje-kanji-app[data-theme="dark"] small,
.rje-kanji-app[data-theme="dark"] i,
.rje-kanji-app[data-theme="dark"] .rje-panel-body,
.rje-kanji-app[data-theme="dark"] .rje-info-grid,
.rje-kanji-app[data-theme="dark"] .rje-card-back{
  color:#e2e8f0;
}
.rje-kanji-app[data-theme="dark"] strong,
.rje-kanji-app[data-theme="dark"] b{
  color:#f8fafc;
}

/* Top bars and navigation */
.rje-kanji-app[data-theme="dark"] .rje-back{
  background:#211d34;
  border-color:#4b4268;
  color:#ddd6fe;
}
.rje-kanji-app[data-theme="dark"] .rje-search{
  background:#171527;
  border-color:#4b4268;
}
.rje-kanji-app[data-theme="dark"] .rje-search input{
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-search input::placeholder{
  color:#94a3b8;
}
.rje-kanji-app[data-theme="dark"] .rje-icon-button{
  background:#211d34;
  color:#e9d5ff;
  border-color:#4b4268;
}

/* Lesson hero */
.rje-kanji-app[data-theme="dark"] .rje-lesson-hero{
  background:linear-gradient(135deg,#211d34 0%,#27213d 52%,#172a35 100%);
  border-color:#443c60;
}
.rje-kanji-app[data-theme="dark"] .rje-lesson-hero span{
  color:#c4b5fd;
}
.rje-kanji-app[data-theme="dark"] .rje-lesson-hero h1{
  background:linear-gradient(145deg,#f5f3ff,#c4b5fd,#f9a8d4);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.rje-kanji-app[data-theme="dark"] .rje-lesson-hero ul{
  color:#e2e8f0;
}
.rje-kanji-app[data-theme="dark"] .rje-lesson-hero li{
  background:rgba(30,41,59,.88);
  border-color:#475569;
  color:#f8fafc;
}

/* Accordion headers were the main low-contrast area */
.rje-kanji-app[data-theme="dark"] .rje-panel{
  background:#171527;
  border-color:#3f3859;
}
.rje-kanji-app[data-theme="dark"] .rje-panel summary{
  color:#f8fafc!important;
  border-bottom-color:#3f3859;
}
.rje-kanji-app[data-theme="dark"] .rje-panel.blue summary{background:linear-gradient(110deg,#172554,#164e63)}
.rje-kanji-app[data-theme="dark"] .rje-panel.green summary{background:linear-gradient(110deg,#14532d,#134e4a)}
.rje-kanji-app[data-theme="dark"] .rje-panel.yellow summary{background:linear-gradient(110deg,#713f12,#7c2d12)}
.rje-kanji-app[data-theme="dark"] .rje-panel.purple summary{background:linear-gradient(110deg,#3b1d65,#581c87)}
.rje-kanji-app[data-theme="dark"] .rje-panel.orange summary{background:linear-gradient(110deg,#7c2d12,#78350f)}
.rje-kanji-app[data-theme="dark"] .rje-panel.red summary{background:linear-gradient(110deg,#7f1d1d,#831843)}
.rje-kanji-app[data-theme="dark"] .rje-panel summary span{
  background:#312b46;
  color:#f8fafc;
  box-shadow:none;
}
.rje-kanji-app[data-theme="dark"] .rje-panel[open] summary span{
  background:#3b3452;
}
.rje-kanji-app[data-theme="dark"] .rje-panel-body{
  background:linear-gradient(180deg,#171527,#12101e);
  color:#e5e7eb;
}
.rje-kanji-app[data-theme="dark"] .rje-info-grid b{
  color:#c4b5fd!important;
}
.rje-kanji-app[data-theme="dark"] .rje-memory{
  background:linear-gradient(135deg,#3f2a18,#45331c);
  border-color:#76552b;
  color:#f8fafc;
}

/* Vocabulary and sentence learning cards */
.rje-kanji-app[data-theme="dark"] .rje-learning-card,
.rje-kanji-app[data-theme="dark"] .rje-vocab-card,
.rje-kanji-app[data-theme="dark"] .rje-sentence-card,
.rje-kanji-app[data-theme="dark"] .rje-swipe-card,
.rje-kanji-app[data-theme="dark"] .rje-mistake-card{
  background:linear-gradient(145deg,#211d34,#171527)!important;
  border-color:#40385b!important;
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-japanese strong{
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-japanese span,
.rje-kanji-app[data-theme="dark"] .rje-vocab-english{
  color:#c4b5fd!important;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-bangla,
.rje-kanji-app[data-theme="dark"] .rje-sentence-bangla{
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-sentence-jp{
  color:#ede9fe!important;
}
.rje-kanji-app[data-theme="dark"] .rje-sentence-romaji,
.rje-kanji-app[data-theme="dark"] .rje-sentence-english{
  color:#cbd5e1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-sentence-card .jp{
  color:#ede9fe!important;
}
.rje-kanji-app[data-theme="dark"] .rje-sentence-card small{
  color:#cbd5e1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-mistake-card .wrong{color:#fca5a5!important}
.rje-kanji-app[data-theme="dark"] .rje-mistake-card .correct{color:#86efac!important}

/* Vocabulary mastery/progress area */
.rje-kanji-app[data-theme="dark"] .rje-vocab-progress,
.rje-kanji-app[data-theme="dark"] .rje-vocab-tip{
  background:#171b31!important;
  border-color:#343b5c!important;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-progress-copy span,
.rje-kanji-app[data-theme="dark"] .rje-vocab-progress-status{
  color:#c4b5fd;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-progress-copy strong{
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-progress-track{
  background:#2f3656;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-tip p{
  color:#e2e8f0;
}
.rje-kanji-app[data-theme="dark"] .rje-known-button{
  background:#211d34;
  color:#86efac;
  border-color:#22c55e;
}
.rje-kanji-app[data-theme="dark"] .rje-known-button[aria-pressed="true"]{
  background:#166534;
  color:#fff;
}
.rje-kanji-app[data-theme="dark"] .rje-vocab-card.is-known{
  background:linear-gradient(145deg,#171b31,#122a23)!important;
  border-color:#166534!important;
}

/* Quiz/review controls */
.rje-kanji-app[data-theme="dark"] .rje-quiz,
.rje-kanji-app[data-theme="dark"] .rje-review-box,
.rje-kanji-app[data-theme="dark"] .rje-progress-section{
  background:linear-gradient(145deg,#211d34,#171527);
  border-color:#40385b;
  color:#f8fafc;
}
.rje-kanji-app[data-theme="dark"] .rje-quiz-options button,
.rje-kanji-app[data-theme="dark"] .rje-rating-grid button,
.rje-kanji-app[data-theme="dark"] .rje-review-summary>div{
  background:#211d34;
  color:#f8fafc;
  border-color:#40385b;
}

/* Home/dashboard elements */
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card,
.rje-kanji-app[data-theme="dark"] .rje-home-feature-strip{
  background:#171b31;
  border-color:#292f4b;
  color:#f8fafc;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card b,
.rje-kanji-app[data-theme="dark"] .rje-home-feature-strip b{
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card small,
.rje-kanji-app[data-theme="dark"] .rje-home-feature-strip small{
  color:#cbd5e1!important;
}

/* Chapter and Kanji listing pages */
.rje-kanji-app[data-theme="dark"] .rje-chapter-card,
.rje-kanji-app[data-theme="dark"] .rje-kanji-tile{
  background:linear-gradient(145deg,#211d34,#171527)!important;
  border-color:#40385b!important;
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-chapter-card span,
.rje-kanji-app[data-theme="dark"] .rje-kanji-tile b{
  color:#c4b5fd!important;
}
.rje-kanji-app[data-theme="dark"] .rje-chapter-card i,
.rje-kanji-app[data-theme="dark"] .rje-kanji-tile small{
  color:#cbd5e1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-kanji-char{
  color:#f5f3ff!important;
  text-shadow:none;
}


/* v1.3.4 — dark-mode Common Mistakes readability fix */
.rje-kanji-app[data-theme="dark"] .rje-wrong-box{
  background:#3a1822!important;
  border-color:#7f1d1d!important;
  color:#fecaca!important;
}
.rje-kanji-app[data-theme="dark"] .rje-wrong-box b,
.rje-kanji-app[data-theme="dark"] .rje-wrong-box p{
  color:#fecaca!important;
}
.rje-kanji-app[data-theme="dark"] .rje-wrong-box p{
  opacity:1!important;
}

.rje-kanji-app[data-theme="dark"] .rje-correct-box{
  background:#12352a!important;
  border-color:#166534!important;
  color:#bbf7d0!important;
}
.rje-kanji-app[data-theme="dark"] .rje-correct-box b,
.rje-kanji-app[data-theme="dark"] .rje-correct-box p{
  color:#bbf7d0!important;
}
.rje-kanji-app[data-theme="dark"] .rje-correct-box p{
  opacity:1!important;
}

.rje-kanji-app[data-theme="dark"] .rje-mistake-card details{
  border-color:#4b365e;
}
.rje-kanji-app[data-theme="dark"] .rje-mistake-card details summary{
  background:#8a1735!important;
  color:#ffffff!important;
}
.rje-kanji-app[data-theme="dark"] .rje-mistake-card details p{
  color:#e5e7eb!important;
}


/* v1.3.5 — mobile accordion position stability
   Prevent browser scroll anchoring from fighting the JS position-preservation fix. */
.rje-kanji-app .rje-panel{
  overflow-anchor:none;
}
.rje-kanji-app .rje-panel > summary{
  scroll-margin-top:12px;
}


/* v1.3.6 — restore the original v1.3.0 main lesson Kanji size.
   The early stylesheet loading fix can allow later Elementor/global H1 rules
   to override the hero Kanji. These high-specificity rules preserve the
   original plugin dimensions without changing any other typography. */
.rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
  font-size:112px!important;
  line-height:1!important;
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
    font-size:94px!important;
  }
}


/* ==========================================================
   v1.3.7 — Approved 3-part landing dashboard (mobile first)
   Scope: landing page only. All lesson/chapter/import behavior unchanged.
   ========================================================== */
.rje-home-hero-watercolor{
  min-height:0!important;height:auto!important;aspect-ratio:512/219!important;
  display:block!important;padding:0!important;border-radius:26px!important;
  background:#fbfaf7 url('../images/rje-kanji-watercolor-hero.png') center/cover no-repeat!important;
  box-shadow:0 18px 42px rgba(44,35,74,.12)!important;
}
.rje-home-hero-watercolor:before,.rje-home-hero-watercolor:after{display:none!important}
.rje-home-dashboard-shell,.rje-level-selector{
  margin-top:18px;padding:18px;border:1px solid #eee7f5;border-radius:26px;
  background:rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(55,42,88,.08)
}
.rje-home-dashboard-shell .rje-continue-premium{margin:0 0 14px}
.rje-level-selector-title{display:flex;align-items:center;justify-content:center;gap:13px;margin:0 0 16px;text-align:center}
.rje-level-selector-title:before,.rje-level-selector-title:after{content:"";height:1px;max-width:120px;flex:1;background:linear-gradient(90deg,transparent,#f5a5a5)}
.rje-level-selector-title:after{background:linear-gradient(90deg,#f5a5a5,transparent)}
.rje-level-selector-title h2{font-size:21px;line-height:1.35;margin:0;color:#172033;font-weight:900}
.rje-level-selector-title span{color:#ef6b62;font-size:18px}
.rje-home-level-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:16px!important}
.rje-home-level-grid .rje-level-card{
  position:relative;min-height:280px!important;padding:22px 16px 18px!important;
  border-radius:24px!important;justify-content:flex-start!important;align-items:center!important;text-align:center;
  color:#172033!important;border:1px solid rgba(80,70,100,.12)!important;box-shadow:0 12px 26px rgba(49,43,72,.10)!important;
  background-color:#fff!important;background-image:none!important;overflow:hidden;isolation:isolate
}
.rje-home-level-grid .rje-level-card:before{content:"";position:absolute;inset:0;z-index:-2;opacity:1;transform:none!important}
.rje-home-level-grid .rje-level-card.blue:before{background:linear-gradient(180deg,#fbfffc 0%,#effbf3 48%,#bdebd1 100%)}
.rje-home-level-grid .rje-level-card.green:before{background:linear-gradient(180deg,#fffef9 0%,#faf8e8 48%,#e8df9b 100%)}
.rje-home-level-grid .rje-level-card.orange:before{background:linear-gradient(180deg,#fffaf7 0%,#fff0e5 48%,#ffc795 100%)}
.rje-home-level-grid .rje-level-card.purple:before{background:linear-gradient(180deg,#fdfbff 0%,#f3efff 48%,#cbbcf3 100%)}
.rje-home-level-grid .rje-level-card.red:before{background:linear-gradient(180deg,#fffafa 0%,#fff0f1 48%,#f7b5b8 100%)}
.rje-home-level-grid .rje-level-card:after{content:"";position:absolute;left:-8%;right:-8%;bottom:-9px;height:48%;z-index:-1;opacity:.55;background:linear-gradient(155deg,transparent 0 18%,currentColor 19% 21%,transparent 22% 30%,currentColor 31% 34%,transparent 35% 100%);clip-path:polygon(0 64%,16% 46%,29% 62%,43% 34%,58% 58%,73% 39%,100% 57%,100% 100%,0 100%)}
.rje-home-level-grid .rje-level-card.blue{color:#14835a!important}.rje-home-level-grid .rje-level-card.green{color:#85810d!important}.rje-home-level-grid .rje-level-card.orange{color:#ea6519!important}.rje-home-level-grid .rje-level-card.purple{color:#6844c2!important}.rje-home-level-grid .rje-level-card.red{color:#e42f32!important}
.rje-home-level-grid .rje-level-name{font-size:38px!important;font-weight:950!important;line-height:1!important;color:currentColor!important;position:relative;z-index:2}
.rje-home-level-grid .rje-level-main-kanji{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:76px!important;line-height:1.05!important;margin:18px 0 8px!important;color:#080b12!important;font-weight:700!important;position:relative!important;right:auto!important;top:auto!important;z-index:2!important}
.rje-home-level-grid .rje-level-bn{font-size:16px!important;line-height:1.25!important;margin:0!important;color:currentColor!important;position:relative;z-index:2}
.rje-home-level-grid .rje-level-card small{font-size:11px!important;margin-top:6px;color:#475569!important;opacity:.9;position:relative;z-index:2}
.rje-home-level-grid .rje-level-card em{position:absolute!important;right:13px;bottom:13px;margin:0!important;width:34px!important;height:34px!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center;background:rgba(255,255,255,.9)!important;color:currentColor!important;border:1px solid rgba(255,255,255,.95)!important;box-shadow:0 5px 12px rgba(0,0,0,.08);font-size:24px!important;z-index:4}
.rje-home-level-grid .rje-level-landscape{height:84px!important;opacity:.28!important;background:currentColor!important;z-index:0!important;transition:transform .28s ease,opacity .28s ease}
@media(hover:hover) and (pointer:fine){
  .rje-home-level-grid .rje-level-card:hover{transform:translateY(-8px) scale(1.025)!important;box-shadow:0 22px 44px rgba(31,41,55,.18)!important;filter:none!important}
  .rje-home-level-grid .rje-level-card:hover .rje-level-landscape{transform:scale(1.08)!important;opacity:.38!important}
  .rje-home-level-grid .rje-level-card:hover .rje-level-main-kanji{transform:scale(1.06);transition:transform .28s ease}
}
.rje-kanji-app[data-theme="dark"] .rje-home-dashboard-shell,.rje-kanji-app[data-theme="dark"] .rje-level-selector{background:#12101e;border-color:#3f3859}
.rje-kanji-app[data-theme="dark"] .rje-level-selector-title h2{color:#f8fafc}
.rje-kanji-app[data-theme="dark"] .rje-home-level-grid .rje-level-card{border-color:#514969!important}
@media(max-width:620px){
  .rje-home-hero-watercolor{aspect-ratio:auto!important;height:230px!important;border-radius:20px!important;background-size:cover!important;background-position:center center!important}
  .rje-home-dashboard-shell,.rje-level-selector{margin-top:12px;padding:11px;border-radius:20px}
  .rje-home-dashboard-shell .rje-continue-premium{margin-bottom:10px}
  .rje-level-selector-title{gap:7px;margin-bottom:11px}.rje-level-selector-title h2{font-size:15px}.rje-level-selector-title span{font-size:14px}
  .rje-home-level-grid{grid-template-columns:1fr!important;gap:9px!important}
  .rje-home-level-grid .rje-level-card,.rje-home-level-grid .rje-level-card:last-child{
    min-height:86px!important;height:86px!important;padding:10px 48px 10px 15px!important;border-radius:18px!important;
    display:grid!important;grid-template-columns:54px 70px minmax(0,1fr)!important;grid-template-rows:1fr 1fr!important;column-gap:8px!important;align-items:center!important;text-align:left!important
  }
  .rje-home-level-grid .rje-level-name{grid-column:1;grid-row:1/3;font-size:25px!important;align-self:center}
  .rje-home-level-grid .rje-level-main-kanji{grid-column:2;grid-row:1/3;font-size:48px!important;margin:0!important;text-align:center}
  .rje-home-level-grid .rje-level-bn{grid-column:3;grid-row:1;font-size:13px!important;align-self:end}
  .rje-home-level-grid .rje-level-card small{grid-column:3;grid-row:2;font-size:10px!important;margin:2px 0 0!important;align-self:start}
  .rje-home-level-grid .rje-level-card em{right:10px;bottom:26px;width:30px!important;height:30px!important;font-size:20px!important}
  .rje-home-level-grid .rje-level-landscape{left:45%!important;height:62px!important;opacity:.22!important}
  .rje-dashboard-actions-four{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:390px){
  .rje-home-hero-watercolor{height:205px!important}
  .rje-home-level-grid .rje-level-card,.rje-home-level-grid .rje-level-card:last-child{grid-template-columns:47px 60px minmax(0,1fr)!important;height:80px!important;min-height:80px!important;padding-left:12px!important}
  .rje-home-level-grid .rje-level-main-kanji{font-size:43px!important}.rje-home-level-grid .rje-level-name{font-size:23px!important}
}


/* ==========================================================
   v1.3.8 — Landing visual correction
   - High-resolution hero without JLPT cards inside the hero
   - Richer, deeper JLPT N5–N1 card palette
   - Landing-only; all learning functionality remains unchanged
   ========================================================== */

/* The new hero asset is a clean 1024x700 crop of the approved design. */
.rje-home-hero-watercolor{
  aspect-ratio:1024/700!important;
  min-height:0!important;
  height:auto!important;
  background-size:cover!important;
  background-position:center center!important;
}

/* Deeper but still calm JLPT level palettes. */
.rje-home-level-grid .rje-level-card.blue{
  border-color:#70c99a!important;
}
.rje-home-level-grid .rje-level-card.blue:before{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.76),transparent 28%),
    linear-gradient(180deg,#f5fff8 0%,#d6f6df 37%,#8bd7aa 70%,#3fa374 100%)!important;
}
.rje-home-level-grid .rje-level-card.blue{color:#0f7a4e!important}

.rje-home-level-grid .rje-level-card.green{
  border-color:#d0bd42!important;
}
.rje-home-level-grid .rje-level-card.green:before{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.75),transparent 28%),
    linear-gradient(180deg,#fffdf3 0%,#fff3b4 37%,#dfc84f 70%,#a69417 100%)!important;
}
.rje-home-level-grid .rje-level-card.green{color:#756f00!important}

.rje-home-level-grid .rje-level-card.orange{
  border-color:#f29045!important;
}
.rje-home-level-grid .rje-level-card.orange:before{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.74),transparent 28%),
    linear-gradient(180deg,#fff9f3 0%,#ffd9b7 37%,#ffad67 70%,#e96b24 100%)!important;
}
.rje-home-level-grid .rje-level-card.orange{color:#e3520b!important}

.rje-home-level-grid .rje-level-card.purple{
  border-color:#9f7ce2!important;
}
.rje-home-level-grid .rje-level-card.purple:before{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.74),transparent 28%),
    linear-gradient(180deg,#fcfaff 0%,#e5dcff 37%,#b79aed 70%,#7148cf 100%)!important;
}
.rje-home-level-grid .rje-level-card.purple{color:#5f35bd!important}

.rje-home-level-grid .rje-level-card.red{
  border-color:#e9777d!important;
}
.rje-home-level-grid .rje-level-card.red:before{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.74),transparent 28%),
    linear-gradient(180deg,#fff9fa 0%,#ffd7da 37%,#f39a9f 70%,#d93d46 100%)!important;
}
.rje-home-level-grid .rje-level-card.red{color:#d32631!important}

/* Richer landscape silhouettes at the bottom of each card. */
.rje-home-level-grid .rje-level-landscape{
  opacity:.43!important;
}
@media(hover:hover) and (pointer:fine){
  .rje-home-level-grid .rje-level-card:hover{
    transform:translateY(-9px) scale(1.028)!important;
    box-shadow:0 24px 48px rgba(31,41,55,.21)!important;
    filter:saturate(1.08)!important;
  }
  .rje-home-level-grid .rje-level-card:hover .rje-level-landscape{
    opacity:.58!important;
  }
}

/* Mobile: preserve the same rich palette while keeping every level a large tap target. */
@media(max-width:620px){
  .rje-home-hero-watercolor{
    aspect-ratio:1024/700!important;
    height:auto!important;
    min-height:0!important;
    background-size:cover!important;
    background-position:center!important;
  }
  .rje-home-level-grid .rje-level-card,
  .rje-home-level-grid .rje-level-card:last-child{
    min-height:96px!important;
    height:96px!important;
  }
  .rje-home-level-grid .rje-level-landscape{
    opacity:.34!important;
  }
}
@media(max-width:390px){
  .rje-home-hero-watercolor{
    height:auto!important;
  }
  .rje-home-level-grid .rje-level-card,
  .rje-home-level-grid .rje-level-card:last-child{
    min-height:90px!important;
    height:90px!important;
  }
}


/* ==========================================================
   v1.3.9 — small layout + hover readability correction
   1) Dashboard quick-card metadata sits on a separate second line.
   2) Lesson action buttons keep readable text on hover even when
      Elementor/theme global button:hover rules are present.
   ========================================================== */

/* Desktop/tablet dashboard cards:
   icon | title
        | metadata
   This prevents "1 due", "3 saved", "Quick revision", etc. from
   running on the same line as the main title. */
@media(min-width:621px){
  .rje-kanji-app .rje-dashboard-actions-four .rje-action-card{
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr) 28px!important;
    grid-template-rows:auto auto!important;
    column-gap:12px!important;
    row-gap:3px!important;
    align-items:center!important;
    justify-items:start!important;
    min-height:100px!important;
    padding:17px 15px!important;
    text-align:left!important;
  }
  .rje-kanji-app .rje-dashboard-actions-four .rje-action-card>span{
    position:static!important;
    grid-column:1!important;
    grid-row:1 / 3!important;
    width:40px!important;
    height:40px!important;
    margin:0!important;
    align-self:center!important;
  }
  .rje-kanji-app .rje-dashboard-actions-four .rje-action-card>b{
    grid-column:2!important;
    grid-row:1!important;
    display:block!important;
    width:100%!important;
    margin:0!important;
    color:#e11d48!important;
    font-size:14px!important;
    line-height:1.18!important;
    white-space:normal!important;
  }
  .rje-kanji-app .rje-dashboard-actions-four .rje-action-card>small{
    grid-column:2!important;
    grid-row:2!important;
    display:block!important;
    width:100%!important;
    margin:0!important;
    color:#64748b!important;
    font-size:11px!important;
    line-height:1.2!important;
    white-space:normal!important;
  }
  .rje-kanji-app .rje-dashboard-actions-four .rje-action-card>i{
    position:static!important;
    grid-column:3!important;
    grid-row:1 / 3!important;
    display:grid!important;
    align-self:center!important;
    justify-self:end!important;
  }
}

/* Dark-mode equivalents for dashboard metadata. */
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card>b{
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card>small{
  color:#cbd5e1!important;
}

/* Protect lesson button colors from Elementor/theme global hover CSS. */
.rje-kanji-app .rje-speak-button:not(.secondary),
.rje-kanji-app .rje-speak-button:not(.secondary):hover,
.rje-kanji-app .rje-speak-button:not(.secondary):focus,
.rje-kanji-app .rje-speak-button:not(.secondary):focus-visible{
  background:linear-gradient(135deg,#7c3aed,#ec4899)!important;
  color:#ffffff!important;
  border-color:transparent!important;
}
.rje-kanji-app .rje-speak-button:not(.secondary) *,
.rje-kanji-app .rje-speak-button:not(.secondary):hover *{
  color:#ffffff!important;
}

.rje-kanji-app .rje-speak-button.secondary,
.rje-kanji-app .rje-speak-button.secondary:hover,
.rje-kanji-app .rje-speak-button.secondary:focus,
.rje-kanji-app .rje-speak-button.secondary:focus-visible{
  background:rgba(255,255,255,.92)!important;
  color:#5b21b6!important;
  border-color:#c4b5fd!important;
}
.rje-kanji-app .rje-speak-button.secondary *,
.rje-kanji-app .rje-speak-button.secondary:hover *{
  color:#5b21b6!important;
}

.rje-kanji-app .rje-reveal-all,
.rje-kanji-app .rje-reveal-all:hover,
.rje-kanji-app .rje-reveal-all:focus,
.rje-kanji-app .rje-reveal-all:focus-visible{
  background:linear-gradient(135deg,#7c3aed,#ec4899)!important;
  color:#ffffff!important;
  border-color:transparent!important;
  opacity:1!important;
}

/* Keep primary action text readable in dark mode as well. */
.rje-kanji-app[data-theme="dark"] .rje-speak-button:not(.secondary),
.rje-kanji-app[data-theme="dark"] .rje-speak-button:not(.secondary):hover,
.rje-kanji-app[data-theme="dark"] .rje-reveal-all,
.rje-kanji-app[data-theme="dark"] .rje-reveal-all:hover{
  color:#ffffff!important;
}

/* Mobile retains the already-approved stacked quick cards. */
@media(max-width:620px){
  .rje-kanji-app .rje-dashboard-actions-four .rje-action-card>small{
    display:block!important;
    margin-top:1px!important;
  }
}


/* ==========================================================
   v1.3.10 — Landing dashboard dark-mode readability hotfix
   Fixes the three remaining areas:
   1) Dashboard action cards
   2) Local panel headings (Today's Review / Favourites / Recently Viewed)
   3) Local panel lesson rows and metadata
   ========================================================== */

/* Quick-access dashboard cards */
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card{
  background:#171b31!important;
  border-color:#343b5c!important;
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card>b{
  color:#f8fafc!important;
  opacity:1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card>small,
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card>small span{
  color:#cbd5e1!important;
  opacity:1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card>i{
  background:#f8fafc!important;
  color:#5b21b6!important;
  border-color:#e2e8f0!important;
}
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card:hover{
  background:#202641!important;
  border-color:#525f87!important;
}

/* Expanded local panels: Today's Review / Favourites / Recently Viewed */
.rje-kanji-app[data-theme="dark"] .rje-local-panel{
  background:linear-gradient(145deg,#171527,#12101e)!important;
  border-color:#40385b!important;
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-local-head h3{
  color:#f8fafc!important;
  opacity:1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-local-head button{
  background:#312b46!important;
  color:#ddd6fe!important;
  border:1px solid #4b4268!important;
}

/* Each lesson row inside the expanded panels */
.rje-kanji-app[data-theme="dark"] .rje-local-list a{
  background:#1d1a2f!important;
  border-color:#3f3859!important;
  color:#f8fafc!important;
}
.rje-kanji-app[data-theme="dark"] .rje-local-list a>b{
  color:#f5f3ff!important;
  opacity:1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-local-list a>span{
  color:#e2e8f0!important;
  opacity:1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-local-list a>em{
  color:#c4b5fd!important;
  opacity:1!important;
}
.rje-kanji-app[data-theme="dark"] .rje-local-list a:hover{
  background:#27213d!important;
  border-color:#7c3aed!important;
}
.rje-kanji-app[data-theme="dark"] .rje-empty-small{
  color:#cbd5e1!important;
}

/* Protect all nested text from Elementor/theme global dark/opacity rules. */
.rje-kanji-app[data-theme="dark"] .rje-local-panel *,
.rje-kanji-app[data-theme="dark"] .rje-dashboard-actions-four .rje-action-card *{
  text-shadow:none;
}


/* ==========================================================
   v1.3.11 — Phase navigation only
   5 chapters per phase. No lesson/database/import changes.
   ========================================================== */
.rje-phase-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:18px;
}
.rje-phase-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:178px;
  padding:22px;
  border:1px solid #e4dcfa;
  border-radius:22px;
  background:linear-gradient(145deg,#ffffff,#faf8ff);
  color:#201936;
  text-decoration:none!important;
  box-shadow:0 10px 28px rgba(63,42,105,.08);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.rje-phase-card .rje-phase-kicker{
  display:inline-flex;
  align-self:flex-start;
  margin-bottom:14px;
  padding:7px 11px;
  border-radius:999px;
  background:#f1ebff;
  color:#6d28d9;
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
}
.rje-phase-card strong{
  display:block;
  color:#241b3d;
  font-size:20px;
  line-height:1.25;
}
.rje-phase-card small{
  display:block;
  margin-top:6px;
  color:#6b7280;
  font-size:13px;
}
.rje-phase-card .rje-mini-progress{
  margin-top:auto;
  margin-bottom:14px;
}
.rje-phase-card em{
  color:#6d28d9;
  font-size:13px;
  font-style:normal;
  font-weight:700;
}
@media(hover:hover) and (pointer:fine){
  .rje-phase-card:hover{
    transform:translateY(-5px);
    border-color:#c4b5fd;
    box-shadow:0 18px 36px rgba(63,42,105,.14);
  }
}
.rje-kanji-app[data-theme="dark"] .rje-phase-card{
  background:linear-gradient(145deg,#211d34,#171527);
  border-color:#40385b;
  color:#f8fafc;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-card .rje-phase-kicker{
  background:#312b46;
  color:#ddd6fe;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-card strong{
  color:#f8fafc;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-card small{
  color:#cbd5e1;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-card em{
  color:#c4b5fd;
}
@media(max-width:620px){
  .rje-phase-grid{
    grid-template-columns:1fr;
    gap:13px;
  }
  .rje-phase-card{
    min-height:142px;
    padding:18px;
    border-radius:18px;
  }
  .rje-phase-card strong{
    font-size:18px;
  }
}


/* ==========================================================
   v1.3.12 — Vocabulary-style Kanji Phase dashboard
   UI-only refinement on top of v1.3.11 Phase navigation.
   ========================================================== */

.rje-phase-overview{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto minmax(230px,auto);
  gap:18px;
  align-items:center;
  padding:18px 22px;
  margin:14px 0 20px;
  border:1px solid #e5e7eb;
  border-radius:22px;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.rje-phase-overview-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:50%;
  background:#eefbf5;
  font-size:23px;
}
.rje-phase-overview-main strong{
  display:block;
  margin-bottom:10px;
  color:#273043;
  font-size:15px;
}
.rje-phase-overall-track,
.rje-phase-progress-track{
  height:8px;
  border-radius:999px;
  background:#e9edf2;
  overflow:hidden;
}
.rje-phase-overall-track i,
.rje-phase-progress-track i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#16a34a,#34d399);
}
.rje-phase-overview-percent{
  color:#16a34a;
  font-size:18px;
  font-weight:800;
}
.rje-phase-goal{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2px 10px;
  align-items:center;
  padding:12px 16px;
  border-radius:16px;
  background:#effaf5;
  color:#14532d;
}
.rje-phase-goal>span{
  grid-row:1/3;
  font-size:26px;
  color:#10b981;
}
.rje-phase-goal small{
  font-size:10px;
  color:#64748b;
}
.rje-phase-goal strong{
  font-size:13px;
}

.rje-phase-title{
  margin:12px 0 18px;
  text-align:center;
}
.rje-phase-title h2{
  margin:0;
  color:#263147;
  font-size:24px;
  line-height:1.2;
}
.rje-phase-title p{
  margin:7px 0 0;
  color:#7c8595;
  font-size:13px;
}

.rje-phase-grid-v2{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.rje-phase-card-v2{
  --accent:#54b991;
  --soft:#f4fcf8;
  --border:#9fdfc4;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:305px;
  padding:18px 14px 14px;
  border:1.5px solid var(--border);
  border-radius:20px;
  background:var(--soft);
  box-shadow:0 8px 20px rgba(15,23,42,.035);
}
.rje-phase-card-v2.phase-2{--accent:#d39f37;--soft:#fffaf0;--border:#e9c56b}
.rje-phase-card-v2.phase-3{--accent:#ed805e;--soft:#fff7f3;--border:#f3ad96}
.rje-phase-card-v2.phase-4{--accent:#4fb4b0;--soft:#f2fbfb;--border:#91d7d3}

.rje-phase-flower{
  position:absolute;
  left:16px;
  top:16px;
  color:var(--accent);
  font-size:18px;
  opacity:.55;
}
.rje-phase-name{
  margin-top:4px;
  color:var(--accent);
  font-size:16px;
  letter-spacing:.02em;
}
.rje-phase-book{
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  margin:18px 0 14px;
  border:1px solid color-mix(in srgb,var(--accent) 35%,#fff);
  border-radius:50%;
  background:#fff;
  font-size:30px;
  box-shadow:0 6px 16px rgba(15,23,42,.05);
}
.rje-phase-range{
  color:#4b5563;
  font-size:15px;
  font-weight:700;
}
.rje-phase-count{
  margin-top:7px;
  color:var(--accent);
  font-size:12px;
  font-weight:700;
}
.rje-phase-progress-row{
  display:flex;
  justify-content:space-between;
  width:100%;
  margin-top:auto;
  margin-bottom:6px;
  color:#7b8492;
  font-size:10px;
}
.rje-phase-progress-row b{
  color:var(--accent);
}
.rje-phase-progress-track{
  width:100%;
  height:7px;
}
.rje-phase-progress-track i{
  background:var(--accent);
}
.rje-phase-open{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid #d9dee8;
  border-radius:10px;
  background:#fff;
  color:#8b95a7!important;
  text-decoration:none!important;
  font-size:12px;
  font-weight:600;
}
.rje-phase-open.start{
  border-color:#11a75d;
  background:#13ad60;
  color:#fff!important;
}
@media(hover:hover) and (pointer:fine){
  .rje-phase-card-v2{
    transition:transform .18s ease,box-shadow .18s ease;
  }
  .rje-phase-card-v2:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 28px rgba(15,23,42,.08);
  }
  .rje-phase-open:hover{
    border-color:var(--accent);
    color:var(--accent)!important;
  }
  .rje-phase-open.start:hover{
    color:#fff!important;
    filter:brightness(.97);
  }
}

.rje-phase-summary{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:12px;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}
.rje-phase-summary>div{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 9px;
  align-items:center;
  min-height:62px;
  padding:10px 14px;
  border-right:1px solid #e2e8f0;
}
.rje-phase-summary>div:last-child{border-right:0}
.rje-phase-summary span{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#effaf5;
}
.rje-phase-summary strong{
  color:#293241;
  font-size:14px;
}
.rje-phase-summary small{
  color:#7c8595;
  font-size:9px;
}

/* Dark mode */
.rje-kanji-app[data-theme="dark"] .rje-phase-overview,
.rje-kanji-app[data-theme="dark"] .rje-phase-summary{
  background:#171527;
  border-color:#40385b;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-overview-main strong,
.rje-kanji-app[data-theme="dark"] .rje-phase-title h2,
.rje-kanji-app[data-theme="dark"] .rje-phase-summary strong{
  color:#f8fafc;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-title p,
.rje-kanji-app[data-theme="dark"] .rje-phase-summary small,
.rje-kanji-app[data-theme="dark"] .rje-phase-progress-row{
  color:#cbd5e1;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-card-v2{
  background:#19182b;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-range{
  color:#f8fafc;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-open{
  background:#211f33;
  border-color:#47415f;
  color:#ddd6fe!important;
}
.rje-kanji-app[data-theme="dark"] .rje-phase-summary>div{
  border-color:#40385b;
}

/* Tablet */
@media(max-width:900px){
  .rje-phase-grid-v2{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .rje-phase-overview{
    grid-template-columns:auto 1fr auto;
  }
  .rje-phase-goal{
    grid-column:1/-1;
  }
}

/* Mobile-first: one clear phase card per row, large touch target. */
@media(max-width:620px){
  .rje-phase-overview{
    grid-template-columns:auto 1fr auto;
    gap:10px;
    padding:14px;
    border-radius:18px;
  }
  .rje-phase-overview-icon{
    width:40px;
    height:40px;
  }
  .rje-phase-goal{
    grid-column:1/-1;
    width:100%;
  }
  .rje-phase-title h2{
    font-size:20px;
  }
  .rje-phase-grid-v2{
    grid-template-columns:1fr;
    gap:12px;
  }
  .rje-phase-card-v2{
    min-height:260px;
    padding:16px 14px 14px;
  }
  .rje-phase-book{
    width:64px;
    height:64px;
    margin:14px 0 12px;
  }
  .rje-phase-open{
    min-height:44px;
    font-size:13px;
  }
  .rje-phase-summary{
    grid-template-columns:repeat(2,1fr);
  }
  .rje-phase-summary>div:nth-child(2){
    border-right:0;
  }
  .rje-phase-summary>div:nth-child(-n+2){
    border-bottom:1px solid #e2e8f0;
  }
  .rje-kanji-app[data-theme="dark"] .rje-phase-summary>div:nth-child(-n+2){
    border-bottom-color:#40385b;
  }
}

/* ==========================================================
   v1.3.13 — Kanji lesson main-frame visibility enlargement
   Scope: visual sizing only. No colors, data, schema, importer,
   navigation, shortcode, or functional behavior changed.
   The lesson hero/main Kanji area is approximately 70% larger
   than the v1.3.12 baseline on both desktop and mobile.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero{
  min-height:290px;
}
.rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
  font-size:190px!important;
  line-height:1!important;
}
@media(min-width:700px){
  .rje-kanji-app .rje-lesson-hero{
    padding:51px 65px;
  }
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero{
    min-height:290px;
    padding:31px;
  }
  .rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
    font-size:160px!important;
  }
}
@media(max-width:420px){
  .rje-kanji-app .rje-lesson-hero{
    min-height:270px;
    padding:31px 18px;
  }
}


/* ==========================================================
   v1.3.14 — Additional Kanji lesson main-frame enlargement
   Scope: visual sizing only. Approximately 30% larger than
   v1.3.13 on both desktop and mobile.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero{
  min-height:377px;
}
.rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
  font-size:247px!important;
  line-height:1!important;
}
@media(min-width:700px){
  .rje-kanji-app .rje-lesson-hero{
    padding:66px 85px;
  }
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero{
    min-height:377px;
    padding:40px;
  }
  .rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
    font-size:208px!important;
  }
}
@media(max-width:420px){
  .rje-kanji-app .rje-lesson-hero{
    min-height:351px;
    padding:40px 23px;
  }
}

/* ==========================================================
   v1.3.16 — Lesson-card quick tools
   Scope: front-end lesson-card controls only.
   - Keep Favourite and Radical.
   - Remove stroke-count and difficulty pills from hero.
   - Add Stroke Guide and Writing Practice full-screen tools.
   Existing colors, lesson sizing, database, importer and content
   remain unchanged.
   ========================================================== */
.rje-hero-tools{display:grid;gap:8px;justify-items:end}
.rje-lesson-tool-button{border:1px solid rgba(255,255,255,.85);border-radius:999px;background:rgba(255,255,255,.72);padding:8px 12px;font-weight:900;color:#6d28d9;cursor:pointer;white-space:nowrap;box-shadow:0 5px 14px rgba(76,29,149,.08)}
.rje-lesson-tool-button span{margin-right:4px}
.rje-lesson-tool-button:hover{transform:translateY(-1px)}
.rje-tool-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:stretch;justify-content:center;padding:18px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
.rje-tool-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
.rje-tool-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.72);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.rje-tool-modal-window{position:relative;z-index:1;width:min(980px,100%);height:calc(100dvh - 36px);overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:24px;background:var(--card);color:var(--ink);padding:22px;box-shadow:0 28px 80px rgba(15,23,42,.35)}
.rje-tool-modal-head{position:sticky;top:-22px;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-22px -22px 20px;padding:19px 22px 16px;background:var(--card);border-bottom:1px solid var(--line);border-radius:24px 24px 0 0}
.rje-tool-modal-head span{display:inline-block;font-size:12px;font-weight:900;color:#6d28d9;letter-spacing:.05em;text-transform:uppercase}
.rje-tool-modal-head h3{margin:4px 0 0;font-size:24px}
.rje-tool-modal-close{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);font-size:28px;line-height:1;cursor:pointer}
.rje-writing-practice-modal{max-width:760px;margin:0 auto}
.rje-writing-practice-modal .rje-writing-layout{grid-template-columns:1fr}
.rje-writing-practice-modal .rje-writing-board{width:min(680px,100%);margin:0 auto}
.rje-kanji-app[data-theme="dark"] .rje-lesson-tool-button{background:#211d34;color:#ddd6fe;border-color:var(--line)}
.rje-kanji-app[data-theme="dark"] .rje-tool-modal-head span{color:#c4b5fd}
body.rje-tool-modal-open{overflow:hidden!important}
@media(max-width:760px){
  .rje-hero-tools{width:100%;justify-items:stretch}
  .rje-lesson-tool-button{width:100%;text-align:center}
  .rje-tool-modal{padding:0}
  .rje-tool-modal-window{width:100%;height:100dvh;border-radius:0;border-left:0;border-right:0;padding:16px}
  .rje-tool-modal-head{top:-16px;margin:-16px -16px 16px;padding:15px 16px 13px;border-radius:0}
  .rje-tool-modal-head h3{font-size:20px}
  .rje-tool-modal-close{width:40px;height:40px}
}


/* ==========================================================
   v1.3.17 — Lesson-card quick tools position adjustment
   Scope: visual positioning only. Stroke Guide and Writing
   Practice now sit below the existing Kanji/Reading audio
   buttons so they no longer occupy the right side of the
   main Kanji display. Favourite, Radical, colors, sizing and
   all existing functionality remain unchanged.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero .rje-hero-main .rje-hero-tools{
  width:min(100%,430px);
  margin-top:10px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  justify-items:stretch;
}
.rje-kanji-app .rje-lesson-hero .rje-hero-main .rje-lesson-tool-button{
  width:100%;
  text-align:center;
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero .rje-hero-main .rje-hero-tools{
    width:100%;
    margin-top:10px;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:380px){
  .rje-kanji-app .rje-lesson-hero .rje-hero-main .rje-lesson-tool-button{
    padding-left:7px;
    padding-right:7px;
    font-size:11px;
  }
}


/* ==========================================================
   v1.3.18 — Mobile quick-tool width/stack adjustment
   Scope: visual layout only. On mobile, Stroke Guide and
   Writing Practice are full-width and stacked vertically so
   both labels remain clearly readable. No color, design,
   database, importer, content or functionality changes.
   ========================================================== */
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero .rje-hero-main .rje-hero-tools{
    grid-template-columns:1fr;
    gap:8px;
    width:100%;
  }
  .rje-kanji-app .rje-lesson-hero .rje-hero-main .rje-lesson-tool-button{
    width:100%;
    min-width:0;
    white-space:nowrap;
    text-align:center;
  }
}


/* v1.3.22 — quick Previous/Next Kanji navigation below the existing Chapter topbar.
   Reuses the established visual language; no color/design-system changes. */
.rje-lesson-quick-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.rje-lesson-quick-nav a,.rje-lesson-quick-nav>span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid #ddd6fe;border-radius:14px;background:linear-gradient(135deg,#fff,#f5f3ff);color:#5b21b6!important;text-decoration:none!important;font-weight:900;box-shadow:0 6px 16px rgba(76,29,149,.10)}
.rje-lesson-quick-nav small{font-size:12px;font-weight:900}
.rje-lesson-quick-nav .disabled{opacity:.42;cursor:default}
.rje-kanji-app[data-theme="dark"] .rje-lesson-quick-nav a,.rje-kanji-app[data-theme="dark"] .rje-lesson-quick-nav>span{background:var(--surface-2);border-color:var(--line);color:var(--ink)!important}
@media(max-width:520px){.rje-lesson-quick-nav{gap:8px}.rje-lesson-quick-nav a,.rje-lesson-quick-nav>span{padding:10px 7px}.rje-lesson-quick-nav small{font-size:11px}}


/* v1.3.24 — stable anchor landing + lesson context navigation.
   Visual-only/navigation refinement; no database or content-schema changes. */
#rje-kanji-content{scroll-margin-top:16px}
.rje-lesson-context-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rje-lesson-context-nav .rje-back{margin:0}
@media(max-width:640px){
  #rje-kanji-content{scroll-margin-top:10px}
  .rje-lesson-context-nav{gap:8px}
}

/* ==========================================================
   v1.3.26 — Main Kanji display size refinement
   Scope: visual sizing only.
   - Keep the existing lesson hero/card dimensions unchanged.
   - Cap the main Kanji display box at 170px × 170px.
   - Apply the same 170px maximum on desktop and mobile.
   - No database, schema, importer, content, navigation, tool,
     shortcode, or learner-data changes.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
  width:170px;
  max-width:170px;
  height:170px;
  max-height:170px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:visible;
  font-size:170px!important;
  line-height:1!important;
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
    width:170px;
    max-width:170px;
    height:170px;
    max-height:170px;
    font-size:170px!important;
    line-height:1!important;
  }
}


/* ==========================================================
   v1.3.27 — Main lesson-card learning summary
   Scope: presentation only. Uses existing stored fields only.
   - Existing color palette, gradients, controls and card style retained.
   - 170px Kanji display retained on desktop and mobile.
   - Adds Bangla meaning, English meaning, Kun-yomi and On-yomi
     inside the main card.
   - Compact くん / おん badges replace long reading labels here.
   - Card grows only as needed to prevent clipping/wrapping.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero{
  min-height:520px;
}
.rje-kanji-app .rje-lesson-hero .rje-hero-main{
  flex:1 1 auto;
  max-width:430px;
}
.rje-kanji-app .rje-hero-learning{
  display:grid;
  gap:7px;
  width:min(100%,430px);
  margin-top:8px;
}
.rje-kanji-app .rje-hero-meaning-row,
.rje-kanji-app .rje-hero-reading-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  align-items:start;
  gap:8px;
}
.rje-kanji-app .rje-hero-meaning-row>b{
  color:#6d28d9;
  font-size:12px;
  font-weight:950;
  line-height:1.45;
}
.rje-kanji-app .rje-hero-meaning-row p,
.rje-kanji-app .rje-hero-reading-row p{
  margin:0;
  min-width:0;
  color:#4c1d95;
  font-size:14px;
  font-weight:800;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.rje-kanji-app .rje-hero-english p{
  color:#4b5563;
  font-weight:750;
}
.rje-kanji-app .rje-reading-badge{
  width:54px;
  min-height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:start;
  padding:4px 9px;
  border-radius:55% 45% 52% 48% / 48% 55% 45% 52%;
  color:#fff;
  background:linear-gradient(135deg,#7c3aed,#ec4899);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 5px 12px rgba(124,58,237,.14);
  font-size:14px;
  font-weight:950;
  line-height:1;
  letter-spacing:.02em;
}
.rje-kanji-app .rje-reading-on{
  background:linear-gradient(135deg,#6d28d9,#db2777);
}
.rje-kanji-app[data-theme="dark"] .rje-hero-english p{
  color:var(--muted);
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero{
    min-height:565px;
  }
  .rje-kanji-app .rje-lesson-hero .rje-hero-main{
    max-width:100%;
  }
  .rje-kanji-app .rje-hero-learning{
    width:100%;
    gap:6px;
  }
}
@media(max-width:420px){
  .rje-kanji-app .rje-lesson-hero{
    min-height:575px;
  }
  .rje-kanji-app .rje-hero-meaning-row,
  .rje-kanji-app .rje-hero-reading-row{
    grid-template-columns:60px minmax(0,1fr);
    gap:7px;
  }
  .rje-kanji-app .rje-hero-meaning-row p,
  .rje-kanji-app .rje-hero-reading-row p{
    font-size:13px;
  }
  .rje-kanji-app .rje-reading-badge{
    width:50px;
    min-height:26px;
    padding:4px 7px;
    font-size:13px;
  }
}

/* ==========================================================
   v1.3.30 — Dark-mode contrast refinement for lesson summary
   Scope: visual contrast only.
   - Keeps light mode unchanged.
   - Improves readability of Bangla/English meaning and
     Kun/On reading values inside the main Kanji card.
   - Applies on desktop and mobile dark mode.
   ========================================================== */
.rje-kanji-app[data-theme="dark"] .rje-hero-meaning-row>b{
  color:#e9d5ff;
}
.rje-kanji-app[data-theme="dark"] .rje-hero-meaning-row p,
.rje-kanji-app[data-theme="dark"] .rje-hero-reading-row p,
.rje-kanji-app[data-theme="dark"] .rje-hero-english p{
  color:#f8fafc;
}

/* ==========================================================
   v1.3.31 — Favourite position + Radical display refinement
   Scope: lesson-card presentation only, desktop + mobile.
   - Moves the existing Favourite control below Writing Practice.
   - Removes the learner-facing Radical (部首) pill from the card.
   - Favourite behaviour/storage remains unchanged.
   - No database, schema, importer, content, navigation, shortcode,
     learning-flow, or stored learner-data changes.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero .rje-hero-favourite-row{
  width:min(100%,430px);
  margin-top:8px;
  display:flex;
  justify-content:flex-start;
}
.rje-kanji-app .rje-lesson-hero .rje-hero-favourite-row .rje-favourite-button{
  flex:0 0 auto;
}
@media(max-width:760px){
  .rje-kanji-app .rje-lesson-hero .rje-hero-favourite-row{
    width:100%;
  }
}

/* ==========================================================
   v1.3.32 — Main Kanji horizontal centering
   Scope: visual positioning only, desktop + mobile.
   - Centers the existing 170px main Kanji display horizontally
     within the lesson-card content area.
   - Kanji size, font, card dimensions and all other UI remain unchanged.
   - No database, schema, importer, content, navigation, shortcode,
     learning-flow, Favourite behavior, or stored-data changes.
   ========================================================== */
.rje-kanji-app .rje-lesson-hero .rje-hero-main > h1{
  margin-left:auto!important;
  margin-right:auto!important;
  justify-content:center;
  text-align:center;
}

/* ==========================================================
   v1.3.33 — Kun/On reading rows moved below main Kanji
   Scope: visual positioning only, desktop + mobile.
   - Moves the existing Kun-yomi and On-yomi rows to the top of
     the learning-summary block, directly below the main Kanji.
   - Keeps their existing left alignment, badge style, values,
     spacing system, and functionality unchanged.
   - Meaning/English rows follow naturally below the readings.
   - No database, schema, importer, content, navigation, shortcode,
     learning-flow, Favourite behavior, or stored-data changes.
   ========================================================== */
.rje-kanji-app .rje-hero-learning .rje-hero-reading-row{
  order:-1;
}


/* ==========================================================
   v1.3.34 — Mini Quiz answer typography readability
   Scope: visual typography only, desktop + mobile.
   - Increases Mini Quiz answer-option text for easier reading,
     especially Japanese readings and single Kanji choices.
   - Preserves quiz layout, colors, spacing structure, logic,
     scoring, questions, database, importer and all stored data.
   ========================================================== */
.rje-kanji-app .rje-quiz-options button{
  font-size:18px;
  line-height:1.45;
}
