.ngk-vfc-app{--purple:#6424a8;--purple2:#8b21c7;--pink:#d23aac;--red:#ef0808;--ink:#121212;max-width:760px;margin:0 auto;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Bengali","Noto Sans JP",Arial,sans-serif;box-sizing:border-box}.ngk-vfc-app *{box-sizing:border-box}.ngk-vfc-picker{margin:0 0 16px}.ngk-vfc-levels,.ngk-vfc-chapters{display:flex;gap:8px;overflow-x:auto;padding:3px 2px 8px;scrollbar-width:thin}.ngk-vfc-level,.ngk-vfc-chapter{flex:0 0 auto;text-decoration:none!important;border-radius:999px;padding:8px 14px;font-weight:800;font-size:14px;line-height:1;border:1px solid #e1d4ef;background:#fff;color:#57208f;box-shadow:0 2px 8px rgba(67,31,101,.08)}.ngk-vfc-level.is-active,.ngk-vfc-chapter.is-active{background:linear-gradient(135deg,#8e31cc,#d744ae);color:#fff;border-color:transparent}.ngk-vfc-level.is-disabled{opacity:.35;pointer-events:none}.ngk-vfc-card{width:100%;min-height:760px;border-radius:34px;padding:18px 22px 22px;background:linear-gradient(180deg,#f7f8e8 0%,#f7f6d9 9%,#f5f6ce 16%,#f9f4b2 29%,#f7f183 44%,#fbed59 63%,#fee92e 81%,#fee610 100%);box-shadow:0 3px 15px rgba(0,0,0,.28),0 16px 38px rgba(0,0,0,.18);display:flex;flex-direction:column;overflow:hidden;outline:none}.ngk-vfc-topline{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#4d4d4d;font-weight:800;font-size:15px;letter-spacing:.01em;padding:2px 5px 10px}.ngk-vfc-counter{white-space:nowrap}.ngk-vfc-kanji-zone{position:relative;flex:0 0 52%;min-height:360px;background:rgba(248,248,248,.96);border-radius:4px;overflow:hidden;display:grid;place-items:center;margin:0 0 18px}.ngk-vfc-slide{display:none;width:100%;height:100%;place-items:center}.ngk-vfc-slide.is-active{display:grid}.ngk-vfc-kanji{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP","Yu Gothic","Noto Sans JP",serif;font-size:clamp(190px,43vw,360px);font-weight:700;color:var(--red);line-height:.9;text-align:center;transform:translateY(-1%);text-shadow:0 1px 0 rgba(0,0,0,.03)}.ngk-vfc-info-zone{position:relative;background:rgba(255,255,255,.92);border-radius:14px;padding:20px 22px;min-height:206px;display:flex;align-items:center}.ngk-vfc-info{display:none;width:100%}.ngk-vfc-info.is-active{display:block}.ngk-vfc-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:center;margin:9px 0;color:#391467}.ngk-vfc-pill{display:inline-flex;align-items:center;justify-content:center;width:70px;min-height:32px;border-radius:999px;background:linear-gradient(135deg,#a147d6,#d73aa9);color:#fff;font-weight:900;font-size:18px;box-shadow:0 5px 13px rgba(125,38,173,.20)}.ngk-vfc-pill-on{background:linear-gradient(135deg,#7427bc,#9a2fd0)}.ngk-vfc-reading{font-size:24px;font-weight:800;line-height:1.3;color:#371360;word-break:break-word}.ngk-vfc-meaning{color:#2f1952;font-size:18px;line-height:1.45}.ngk-vfc-label{font-size:14px;font-weight:900;color:#6f26b0}.ngk-vfc-brand{display:flex;justify-content:center;align-items:center;padding:15px 0 0;transform:translateY(8px)}.ngk-vfc-brand img{display:block;width:195px;max-width:58%;height:107px;object-fit:contain;object-position:center;background:transparent;border-radius:0;padding:0}.ngk-vfc-controls{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:2px}.ngk-vfc-controls button{appearance:none;border:0;border-radius:999px;min-width:145px;padding:12px 18px;background:linear-gradient(135deg,#6c27b0,#a330cb);color:#fff;font-weight:900;font-size:15px;cursor:pointer;box-shadow:0 6px 16px rgba(90,35,143,.22);transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.ngk-vfc-controls button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px rgba(90,35,143,.3)}.ngk-vfc-controls button:disabled{opacity:.38;cursor:default;box-shadow:none}.ngk-vfc-empty{padding:18px;border:1px solid #eadcf6;background:#fbf7ff;border-radius:12px;color:#4b2568}
@media (max-width:600px){.ngk-vfc-app{width:100%;padding:0 4px}.ngk-vfc-card{min-height:720px;border-radius:28px;padding:14px 14px 18px}.ngk-vfc-topline{font-size:13px;padding:1px 3px 9px}.ngk-vfc-kanji-zone{flex-basis:52%;min-height:340px;margin-bottom:14px}.ngk-vfc-kanji{font-size:clamp(180px,56vw,275px)}.ngk-vfc-info-zone{padding:15px 14px;min-height:196px}.ngk-vfc-row{grid-template-columns:74px minmax(0,1fr);gap:10px;margin:8px 0}.ngk-vfc-pill{width:61px;min-height:29px;font-size:16px}.ngk-vfc-reading{font-size:21px}.ngk-vfc-meaning{font-size:16px}.ngk-vfc-label{font-size:13px}.ngk-vfc-brand{padding:10px 0 0;transform:translateY(8px)}.ngk-vfc-brand img{width:172px;height:94px;max-width:65%}.ngk-vfc-controls{gap:9px}.ngk-vfc-controls button{min-width:0;flex:1;padding:12px 10px;font-size:14px}.ngk-vfc-level,.ngk-vfc-chapter{font-size:13px;padding:8px 12px}}
@media (max-width:390px){.ngk-vfc-card{min-height:680px}.ngk-vfc-kanji-zone{min-height:310px}.ngk-vfc-kanji{font-size:clamp(168px,54vw,235px)}.ngk-vfc-info-zone{min-height:184px}.ngk-vfc-reading{font-size:19px}.ngk-vfc-meaning{font-size:15px}}

/* v1.1.0 landing flow: Level -> Chapter -> existing viewer */
.ngk-vfc-landing{max-width:980px}
.ngk-vfc-level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;width:100%}
.ngk-vfc-level-card,.ngk-vfc-chapter-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-decoration:none!important;border:1px solid rgba(103,47,154,.18);border-radius:22px;background:linear-gradient(180deg,#fffef6 0%,#fbf4bd 52%,#ffe934 100%);box-shadow:0 6px 18px rgba(68,39,88,.12);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;overflow:hidden}
.ngk-vfc-level-card{min-height:126px;padding:20px 12px}
.ngk-vfc-level-card:hover:not(.is-disabled),.ngk-vfc-chapter-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(68,39,88,.18);border-color:rgba(117,43,173,.35)}
.ngk-vfc-level-card-label{font-size:32px;line-height:1;font-weight:900;color:#e31818;letter-spacing:.01em}
.ngk-vfc-level-card-sub{margin-top:10px;font-size:13px;line-height:1.25;font-weight:800;color:#5c237d}
.ngk-vfc-level-card.is-disabled{filter:saturate(.35);opacity:.52;cursor:default;pointer-events:none}
.ngk-vfc-landing-bar,.ngk-vfc-viewer-backbar{display:flex;align-items:center;gap:14px;margin:0 0 16px}
.ngk-vfc-landing-current{font-size:20px;font-weight:900;color:#4b1f67}
.ngk-vfc-back{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;text-decoration:none!important;border-radius:999px;padding:9px 14px;background:#fff;color:#6325a1;border:1px solid #dfd1ea;font-size:14px;font-weight:900;box-shadow:0 3px 10px rgba(67,31,101,.08)}
.ngk-vfc-back:hover{background:#fbf6ff;color:#4c177f}
.ngk-vfc-chapter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%}
.ngk-vfc-chapter-card{min-height:108px;padding:16px 10px;background:linear-gradient(180deg,#fff 0%,#fffaf0 50%,#f7edff 100%)}
.ngk-vfc-chapter-card-title{font-size:18px;font-weight:900;color:#5b238f}
.ngk-vfc-chapter-card-sub{margin-top:7px;font-size:13px;font-weight:800;color:#75558d}
.ngk-vfc-viewer-backbar{max-width:760px;margin:0 auto 12px}
@media (max-width:760px){.ngk-vfc-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ngk-vfc-level-card{min-height:112px}.ngk-vfc-chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}
@media (max-width:520px){.ngk-vfc-level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ngk-vfc-level-card{min-height:104px;border-radius:18px;padding:16px 8px}.ngk-vfc-level-card-label{font-size:29px}.ngk-vfc-level-card-sub{font-size:12px}.ngk-vfc-landing-bar{align-items:flex-start;flex-direction:column;gap:9px}.ngk-vfc-landing-current{font-size:18px}.ngk-vfc-chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ngk-vfc-chapter-card{min-height:96px;border-radius:18px}.ngk-vfc-chapter-card-title{font-size:16px}.ngk-vfc-viewer-backbar{margin-bottom:10px}}


/* v1.2.2 persistent Level navigation on chapter and viewer screens */
.ngk-vfc-level-return{background:linear-gradient(135deg,#7b28bf 0%,#d73aa9 100%)}

/* v1.2.4 visual-only compact-height adjustment (Option A)
   Scope: reduce vertical footprint of the flash-card viewer only.
   No database/importer/navigation/content behavior changes. */
.ngk-vfc-card{
  min-height:680px;
  padding:16px 20px 18px;
}
.ngk-vfc-topline{padding-bottom:8px}
.ngk-vfc-kanji-zone{
  flex:0 0 325px;
  min-height:325px;
  margin-bottom:14px;
}
.ngk-vfc-info-zone{
  min-height:188px;
  padding:18px 20px;
}
.ngk-vfc-row{margin:7px 0}
.ngk-vfc-brand{padding-top:10px;transform:translateY(5px)}
.ngk-vfc-brand img{height:100px}

@media (max-width:600px){
  .ngk-vfc-card{
    min-height:635px;
    padding:12px 14px 14px;
  }
  .ngk-vfc-topline{padding-bottom:7px}
  .ngk-vfc-kanji-zone{
    flex:0 0 300px;
    min-height:300px;
    margin-bottom:12px;
  }
  .ngk-vfc-info-zone{
    min-height:178px;
    padding:13px 14px;
  }
  .ngk-vfc-row{margin:6px 0}
  .ngk-vfc-brand{padding-top:6px;transform:translateY(4px)}
  .ngk-vfc-brand img{height:88px}
}

@media (max-width:390px){
  .ngk-vfc-card{min-height:600px}
  .ngk-vfc-kanji-zone{
    flex-basis:275px;
    min-height:275px;
  }
  .ngk-vfc-info-zone{min-height:168px}
  .ngk-vfc-brand img{height:84px}
}

/* v1.2.5 visual-only main Kanji glyph size refinement
   Scope: slightly reduce only the large red Kanji so complex glyphs fit the compact viewer comfortably.
   No layout, database, importer, navigation, content, or other typography changes. */
.ngk-vfc-kanji{
  font-size:clamp(172px,39vw,320px);
}
@media (max-width:600px){
  .ngk-vfc-kanji{
    font-size:clamp(162px,51vw,248px);
  }
}
@media (max-width:390px){
  .ngk-vfc-kanji{
    font-size:clamp(152px,49vw,212px);
  }
}


/* v1.2.6 visual-only Kanji optical vertical centering
   Scope: keep the v1.2.5 glyph size and compact card dimensions unchanged;
   only correct the large red Kanji's vertical position inside the white display zone. */
.ngk-vfc-kanji{
  transform:translateY(2%);
}

/* v1.2.7 visual-only mobile height reduction
   Scope: reduce the flash-card viewer's vertical footprint by approximately 15% on mobile only,
   so Previous / Next controls are reachable sooner without scrolling.
   Desktop dimensions, database, importer, navigation, content, and behavior are unchanged. */
@media (max-width:600px){
  .ngk-vfc-card{
    min-height:540px;
    padding:10px 14px 12px;
  }
  .ngk-vfc-topline{padding-bottom:6px}
  .ngk-vfc-kanji-zone{
    flex:0 0 255px;
    min-height:255px;
    margin-bottom:10px;
  }
  .ngk-vfc-info-zone{
    min-height:151px;
    padding:11px 14px;
  }
  .ngk-vfc-row{margin:5px 0}
  .ngk-vfc-brand{padding-top:5px;transform:translateY(3px)}
  .ngk-vfc-brand img{height:75px}
}

@media (max-width:390px){
  .ngk-vfc-card{min-height:510px}
  .ngk-vfc-kanji-zone{
    flex-basis:234px;
    min-height:234px;
  }
  .ngk-vfc-info-zone{min-height:143px}
  .ngk-vfc-brand img{height:71px}
}


/* v1.3.3 visual-only Flash Cards hero
   Scope: add an attractive Bangla hero above the N5-N1 level cards.
   No database, importer, routing, chapter/viewer, or existing card behavior changes. */
.ngk-vfc-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(190px,.7fr);
  gap:22px;
  align-items:center;
  margin:0 0 22px;
  padding:28px 30px;
  border:1px solid rgba(226,174,16,.28);
  border-radius:28px;
  overflow:hidden;
  background:
    radial-gradient(circle at 90% 8%,rgba(255,255,255,.88) 0 12%,transparent 13%),
    linear-gradient(135deg,#fff8df 0%,#fff1cf 32%,#ffe4df 66%,#f4eaff 100%);
  box-shadow:0 12px 30px rgba(89,50,104,.13),inset 0 1px 0 rgba(255,255,255,.86);
}
.ngk-vfc-hero:before{
  content:"";
  position:absolute;
  inset:auto -60px -90px auto;
  width:280px;
  height:190px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(112,47,178,.13) 0%,rgba(112,47,178,0) 70%);
  pointer-events:none;
}
.ngk-vfc-hero-copy{position:relative;z-index:2}
.ngk-vfc-hero-kicker{
  display:inline-flex;
  align-items:center;
  margin-bottom:10px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(106,37,162,.13);
  color:#6424a8;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 4px 12px rgba(92,36,124,.08);
}
.ngk-vfc-hero h2{
  margin:0;
  max-width:620px;
  color:#271333;
  font-size:clamp(27px,4vw,43px);
  line-height:1.16;
  font-weight:950;
  letter-spacing:-.02em;
}
.ngk-vfc-hero h2::first-line{color:#e11818}
.ngk-vfc-hero p{
  margin:12px 0 0;
  max-width:620px;
  color:#5a4363;
  font-size:16px;
  line-height:1.65;
  font-weight:650;
}
.ngk-vfc-hero-benefits{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:15px;
}
.ngk-vfc-hero-benefits span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(93,46,126,.10);
  color:#4d2767;
  font-size:12px;
  line-height:1.2;
  font-weight:850;
  box-shadow:0 3px 10px rgba(73,36,90,.06);
}
.ngk-vfc-hero-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:17px;
  min-height:46px;
  padding:11px 18px;
  border-radius:999px;
  text-decoration:none!important;
  color:#fff!important;
  background:linear-gradient(135deg,#e91420 0%,#ef4d31 52%,#d72aa1 100%);
  font-size:14px;
  line-height:1.2;
  font-weight:950;
  box-shadow:0 8px 20px rgba(221,35,61,.25);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.ngk-vfc-hero-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 11px 25px rgba(221,35,61,.34);
  filter:saturate(1.06);
}
.ngk-vfc-hero-visual{
  position:relative;
  min-height:205px;
  display:grid;
  place-items:center;
  z-index:1;
}
.ngk-vfc-hero-card{
  position:relative;
  z-index:2;
  width:160px;
  min-height:190px;
  padding:14px 12px 12px;
  border-radius:22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,#fff 0%,#fffdf5 68%,#fff2b3 100%);
  border:1px solid rgba(198,144,0,.25);
  box-shadow:0 16px 28px rgba(70,37,83,.16);
  transform:rotate(3deg);
}
.ngk-vfc-hero-kanji{
  color:#111;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size:82px;
  line-height:.95;
  font-weight:800;
}
.ngk-vfc-hero-reading{margin-top:5px;color:#6a249f;font-size:18px;font-weight:900}
.ngk-vfc-hero-meaning{margin-top:3px;color:#e31818;font-size:14px;font-weight:900}
.ngk-vfc-hero-sakura{
  position:absolute;
  top:2px;
  right:12px;
  color:#ef5e85;
  font-size:48px;
  opacity:.78;
  transform:rotate(18deg);
}
.ngk-vfc-hero-mini{
  position:absolute;
  left:2px;
  bottom:20px;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(135deg,#7b2bc2,#d63bac);
  color:#fff;
  font-family:"Yu Mincho","Noto Serif JP",serif;
  font-size:30px;
  font-weight:800;
  box-shadow:0 8px 18px rgba(89,36,139,.22);
  transform:rotate(-8deg);
}
.ngk-vfc-hero-mini-2{
  left:auto;
  right:0;
  bottom:2px;
  width:50px;
  height:50px;
  border-radius:15px;
  background:linear-gradient(135deg,#f3a120,#ef4c27);
  font-size:27px;
  transform:rotate(8deg);
}
#ngk-vfc-level-cards{scroll-margin-top:24px}

@media (max-width:760px){
  .ngk-vfc-hero{grid-template-columns:minmax(0,1fr) 150px;padding:23px 22px;gap:16px;border-radius:24px}
  .ngk-vfc-hero-visual{min-height:180px}
  .ngk-vfc-hero-card{width:138px;min-height:166px;border-radius:19px}
  .ngk-vfc-hero-kanji{font-size:70px}
  .ngk-vfc-hero-mini{width:48px;height:48px;font-size:25px}
  .ngk-vfc-hero-mini-2{width:43px;height:43px;font-size:23px}
}

@media (max-width:520px){
  .ngk-vfc-hero{
    grid-template-columns:minmax(0,1fr) 104px;
    gap:9px;
    margin-bottom:16px;
    padding:18px 15px 17px;
    border-radius:21px;
  }
  .ngk-vfc-hero-kicker{margin-bottom:8px;padding:6px 9px;font-size:10px}
  .ngk-vfc-hero h2{font-size:23px;line-height:1.18;letter-spacing:-.018em}
  .ngk-vfc-hero p{margin-top:8px;font-size:13px;line-height:1.52}
  .ngk-vfc-hero-benefits{gap:5px;margin-top:10px}
  .ngk-vfc-hero-benefits span{min-height:28px;padding:5px 8px;font-size:10px}
  .ngk-vfc-hero-cta{margin-top:11px;min-height:39px;padding:9px 13px;font-size:12px}
  .ngk-vfc-hero-visual{min-height:142px}
  .ngk-vfc-hero-card{width:94px;min-height:126px;padding:9px 7px;border-radius:16px}
  .ngk-vfc-hero-kanji{font-size:51px}
  .ngk-vfc-hero-reading{font-size:13px}
  .ngk-vfc-hero-meaning{font-size:10px}
  .ngk-vfc-hero-sakura{top:2px;right:0;font-size:28px}
  .ngk-vfc-hero-mini{left:-2px;bottom:7px;width:35px;height:35px;border-radius:11px;font-size:19px}
  .ngk-vfc-hero-mini-2{right:-2px;bottom:-3px;width:31px;height:31px;border-radius:10px;font-size:17px}
}

@media (max-width:360px){
  .ngk-vfc-hero{grid-template-columns:1fr;padding:17px 14px}
  .ngk-vfc-hero-visual{display:none}
  .ngk-vfc-hero h2{font-size:22px}
}


/* v1.3.4 — navigation-only return to the main Kanji Learning landing page. */
.ngk-vfc-kanji-homebar{display:flex;justify-content:flex-end;align-items:center;width:100%;margin:0 0 10px}
.ngk-vfc-kanji-home{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 16px;border:1px solid rgba(221,169,0,.55);border-radius:999px;background:linear-gradient(135deg,#fff7b7 0%,#ffd928 100%);color:#54228b!important;text-decoration:none!important;font-size:13px;font-weight:900;line-height:1.1;box-shadow:0 6px 16px rgba(196,145,0,.20);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.ngk-vfc-kanji-home:hover,.ngk-vfc-kanji-home:focus{color:#54228b!important;transform:translateY(-1px);box-shadow:0 8px 20px rgba(196,145,0,.28);filter:saturate(1.08)}
.ngk-vfc-main-returnbar .ngk-vfc-kanji-home{margin-left:auto}
@media(max-width:520px){.ngk-vfc-kanji-homebar{margin-bottom:8px}.ngk-vfc-kanji-home{min-height:36px;padding:8px 12px;font-size:11px;white-space:nowrap}.ngk-vfc-main-returnbar{display:flex;justify-content:space-between;gap:8px}.ngk-vfc-main-returnbar .ngk-vfc-kanji-home{margin-left:auto}}

/* v1.3.6 QA — tap-to-flip example sentences.
   Example content is stored in a separate QA table; the existing Kanji table is untouched. */
.ngk-vfc-flip-shell{position:relative;perspective:1400px;outline:none;flex:1;min-height:525px}
.ngk-vfc-flip-shell.can-flip{cursor:pointer}
.ngk-vfc-flip-shell.can-flip:focus-visible{border-radius:18px;box-shadow:0 0 0 3px rgba(100,36,168,.22)}
.ngk-vfc-flip-inner{position:relative;width:100%;min-height:525px;transform-style:preserve-3d;transition:transform .52s cubic-bezier(.2,.7,.2,1)}
.ngk-vfc-flip-shell.is-flipped .ngk-vfc-flip-inner{transform:rotateY(180deg)}
.ngk-vfc-face{width:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ngk-vfc-front{position:relative;display:flex;flex-direction:column;min-height:525px}
.ngk-vfc-backface{position:absolute;inset:0;transform:rotateY(180deg);display:flex;align-items:stretch;justify-content:center}
.ngk-vfc-examples{display:none;width:100%;min-height:525px;padding:12px 4px 4px;flex-direction:column}
.ngk-vfc-examples.is-active{display:flex}
.ngk-vfc-example-heading{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 13px;color:#54208a;font-size:22px;font-weight:950}
.ngk-vfc-example-kanji{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#9b31d2,#d83daa);color:#fff;font-family:"Yu Mincho","Noto Serif JP",serif;font-size:31px;line-height:1;box-shadow:0 6px 16px rgba(105,39,161,.18)}
.ngk-vfc-example-frame{background:rgba(255,255,255,.93);border:1px solid rgba(102,39,161,.12);border-radius:20px;padding:4px 19px;box-shadow:0 8px 22px rgba(73,41,86,.10);overflow:auto}
.ngk-vfc-example-item{padding:16px 4px;border-bottom:1px solid rgba(93,49,118,.12)}
.ngk-vfc-example-item:last-child{border-bottom:0}
.ngk-vfc-example-ja{color:#30124f;font-size:22px;line-height:2.0;font-weight:850;word-break:normal;overflow-wrap:anywhere}
.ngk-vfc-example-ja ruby{ruby-position:over;ruby-align:center}
.ngk-vfc-example-ja rt{font-size:.48em;line-height:1;color:#7a3baa;font-weight:750}
.ngk-vfc-example-bn{margin-top:4px;color:#33273d;font-size:16px;line-height:1.55;font-weight:700}
.ngk-vfc-flip-hint{margin-top:auto;padding:11px 0 1px;text-align:center;color:#6d4a7e;font-size:12px;font-weight:800}

@media(max-width:600px){
  .ngk-vfc-flip-shell,.ngk-vfc-flip-inner,.ngk-vfc-front,.ngk-vfc-examples{min-height:445px}
  .ngk-vfc-example-heading{margin-bottom:9px;font-size:18px}
  .ngk-vfc-example-kanji{width:40px;height:40px;border-radius:12px;font-size:27px}
  .ngk-vfc-example-frame{padding:3px 12px;border-radius:16px;max-height:392px}
  .ngk-vfc-example-item{padding:12px 2px}
  .ngk-vfc-example-ja{font-size:18px;line-height:2.05}
  .ngk-vfc-example-bn{font-size:14px;line-height:1.45}
  .ngk-vfc-flip-hint{padding-top:8px;font-size:10px}
}
@media(max-width:390px){
  .ngk-vfc-flip-shell,.ngk-vfc-flip-inner,.ngk-vfc-front,.ngk-vfc-examples{min-height:420px}
  .ngk-vfc-example-frame{max-height:368px}
  .ngk-vfc-example-ja{font-size:17px}
  .ngk-vfc-example-bn{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.ngk-vfc-flip-inner{transition:none}}


/* v1.3.7 QA — five-example pilot + front-side Bangla tap instruction.
   Scope: visual affordance only; existing Kanji data/table and navigation remain unchanged. */
.ngk-vfc-brand{position:relative}
.ngk-vfc-front-flip-hint{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-33%);
  max-width:190px;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.48);
  border:1px solid rgba(108,39,176,.18);
  color:#6b2a96;
  font-size:12px;
  line-height:1.3;
  font-weight:850;
  text-align:center;
  box-shadow:0 3px 10px rgba(84,34,139,.08);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease,visibility .18s ease;
}
.ngk-vfc-front-flip-hint.is-visible{opacity:1;visibility:visible}
@media(max-width:600px){
  .ngk-vfc-front-flip-hint{right:4px;max-width:150px;padding:6px 8px;font-size:10px;line-height:1.25}
  .ngk-vfc-example-frame{max-height:392px}
  .ngk-vfc-example-item{padding:9px 2px}
  .ngk-vfc-example-ja{font-size:17px;line-height:1.9}
  .ngk-vfc-example-bn{font-size:13px;line-height:1.38}
}
@media(max-width:390px){
  .ngk-vfc-front-flip-hint{right:0;max-width:132px;font-size:9.5px}
  .ngk-vfc-example-item{padding:8px 2px}
  .ngk-vfc-example-ja{font-size:16px;line-height:1.85}
  .ngk-vfc-example-bn{font-size:12.5px;line-height:1.35}
}
\n/* Vocabulary Flash Cards v1.0.0 — vocabulary-specific front/back typography. */
.ngk-vfc-vocab-zone{position:relative;flex:0 0 52%;min-height:360px;background:rgba(248,248,248,.96);border-radius:4px;overflow:hidden;display:grid;place-items:center;margin:0 0 18px;padding:22px}
.ngk-vfc-vocab{font-family:"Yu Gothic","Noto Sans JP",sans-serif;font-size:clamp(62px,12vw,112px);font-weight:900;color:var(--red);line-height:1.25;text-align:center;word-break:keep-all}
.ngk-vfc-vocab ruby{ruby-position:over;ruby-align:center}.ngk-vfc-vocab rt{font-size:.30em;color:#6f26b0;font-weight:800}
.ngk-vfc-info-zone{min-height:180px}.ngk-vfc-row.ngk-vfc-meaning{grid-template-columns:105px minmax(0,1fr)}
.ngk-vfc-label{font-size:16px}.ngk-vfc-meaning span:last-child{font-weight:800}
.ngk-vfc-example-ja ruby{ruby-position:over;ruby-align:center}.ngk-vfc-example-ja rt{font-size:.42em;line-height:1;color:#7a3baa;font-weight:750}
@media(max-width:600px){.ngk-vfc-vocab-zone{min-height:315px;padding:16px}.ngk-vfc-vocab{font-size:clamp(48px,15vw,82px)}.ngk-vfc-row.ngk-vfc-meaning{grid-template-columns:88px minmax(0,1fr)}.ngk-vfc-label{font-size:14px}}
@media(max-width:390px){.ngk-vfc-vocab-zone{min-height:290px}.ngk-vfc-vocab{font-size:clamp(42px,14vw,70px)}}

/* v1.0.1 QA — Vocabulary front-card hierarchy + example Bangla + true ruby furigana.
   Data-safe: visual/importer extension only; existing rows remain intact and FINAL v2 re-import updates in place. */
.ngk-vfc-vocab-zone{
  flex:0 0 325px;
  min-height:325px;
  margin:0 0 14px;
  padding:24px;
  border-radius:14px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(105,63,130,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 4px 14px rgba(73,41,86,.07);
  display:grid;
  place-items:center;
  overflow:hidden;
}
.ngk-vfc-vocab{
  width:100%;
  font-size:clamp(86px,18vw,168px);
  line-height:1.05;
  transform:translateY(6%);
}
.ngk-vfc-vocab rt{font-size:.24em;line-height:1;color:#6f26b0;font-weight:850}
.ngk-vfc-info-zone{border:1px solid rgba(105,63,130,.08);box-shadow:0 4px 14px rgba(73,41,86,.06)}
.ngk-vfc-example-item{padding:12px 0 11px;border-bottom:1px solid rgba(77,45,93,.14)}
.ngk-vfc-example-item:last-child{border-bottom:0}
.ngk-vfc-example-ja{line-height:1.85}
.ngk-vfc-example-ja ruby{ruby-position:over;ruby-align:center}
.ngk-vfc-example-ja rt{font-size:.48em;line-height:1;color:#7a3baa;font-weight:800}
.ngk-vfc-example-bn{margin-top:5px;color:#5b4268;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Bengali",sans-serif;font-size:14px;line-height:1.45;font-weight:650}
.ngk-vfc-example-frame{padding:2px 18px;max-height:430px}

@media (max-width:600px){
  .ngk-vfc-card{min-height:650px}
  .ngk-vfc-vocab-zone{flex:0 0 286px;min-height:286px;margin-bottom:11px;padding:18px;border-radius:12px}
  .ngk-vfc-vocab{font-size:clamp(66px,22vw,122px);transform:translateY(7%)}
  
  
  .ngk-vfc-vocab rt{font-size:.25em}
  .ngk-vfc-example-frame{max-height:445px;padding:1px 12px}
  .ngk-vfc-example-item{padding:9px 0 8px}
  .ngk-vfc-example-ja{font-size:17px;line-height:1.8}
  .ngk-vfc-example-bn{margin-top:4px;font-size:12.5px;line-height:1.38}
}
@media (max-width:390px){
  .ngk-vfc-card{min-height:620px}
  .ngk-vfc-vocab-zone{flex-basis:264px;min-height:264px}
  .ngk-vfc-vocab{font-size:clamp(62px,21vw,108px)}
  
  
  .ngk-vfc-example-frame{max-height:420px}
  .ngk-vfc-example-ja{font-size:16px}
  .ngk-vfc-example-bn{font-size:12px}
}

/* v1.0.2 QA data-render fix: ensure ruby annotation and Bangla example line remain visible. */
.ngk-vfc-example-ja ruby{display:ruby;ruby-position:over;ruby-align:center}
.ngk-vfc-example-ja rt{display:ruby-text;font-size:.48em!important;line-height:1;color:#7a3baa!important;font-weight:800!important}
.ngk-vfc-example-bn{display:block!important;visibility:visible!important;opacity:1!important;margin-top:5px!important}

/* v1.0.3 — navigation-only return to Vocabulary Landing on level and chapter screens. */
.ngk-vfc-vocabulary-homebar{display:flex;justify-content:flex-end;align-items:center;width:100%;margin:0 0 10px}
.ngk-vfc-vocabulary-home{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 16px;border:1px solid rgba(221,169,0,.55);border-radius:999px;background:linear-gradient(135deg,#fff7b7 0%,#ffd928 100%);color:#54228b!important;text-decoration:none!important;font-size:13px;font-weight:900;line-height:1.1;box-shadow:0 6px 16px rgba(196,145,0,.20);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.ngk-vfc-vocabulary-home:hover,.ngk-vfc-vocabulary-home:focus{color:#54228b!important;transform:translateY(-1px);box-shadow:0 8px 20px rgba(196,145,0,.28);filter:saturate(1.08)}
@media(max-width:520px){.ngk-vfc-vocabulary-homebar{margin-bottom:8px}.ngk-vfc-vocabulary-home{min-height:36px;padding:8px 12px;font-size:11px;white-space:nowrap}}


/* v1.0.4 Phase navigation — UI only; 10 chapters per phase. */
.ngk-vfc-phase-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;width:100%}
.ngk-vfc-phase-card{position:relative;display:flex;flex-direction:column;align-items:center;min-height:300px;padding:24px 18px 18px;border:1px solid rgba(24,166,113,.30);border-radius:22px;background:#f5fff9;text-align:center;text-decoration:none!important;box-shadow:0 7px 18px rgba(61,57,78,.08);overflow:hidden;transition:transform .17s ease,box-shadow .17s ease}
.ngk-vfc-phase-card:hover,.ngk-vfc-phase-card:focus{transform:translateY(-2px);box-shadow:0 11px 25px rgba(61,57,78,.14);text-decoration:none!important}
.ngk-vfc-phase-flower{position:absolute;left:18px;top:18px;font-size:21px;opacity:.55}
.ngk-vfc-phase-title{font-size:18px;font-weight:950;letter-spacing:.025em;color:#08a667}
.ngk-vfc-phase-icon{display:flex;align-items:center;justify-content:center;width:76px;height:76px;margin:18px 0 16px;border-radius:50%;border:1px solid rgba(24,166,113,.25);background:rgba(255,255,255,.82);font-size:31px;box-shadow:0 5px 14px rgba(67,51,91,.07)}
.ngk-vfc-phase-range{font-size:18px;font-weight:900;color:#17141c}
.ngk-vfc-phase-words{margin-top:7px;font-size:14px;font-weight:850;color:#08a667}
.ngk-vfc-phase-start{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:44px;margin-top:auto;border-radius:11px;background:#11a969;color:#fff;font-size:14px;font-weight:900}
.ngk-vfc-phase-2{background:#fffaf0;border-color:rgba(226,164,0,.45)}.ngk-vfc-phase-2 .ngk-vfc-phase-title,.ngk-vfc-phase-2 .ngk-vfc-phase-words{color:#c88900}.ngk-vfc-phase-2 .ngk-vfc-phase-start{background:#efb000}
.ngk-vfc-phase-3{background:#fff7f4;border-color:rgba(241,101,48,.45)}.ngk-vfc-phase-3 .ngk-vfc-phase-title,.ngk-vfc-phase-3 .ngk-vfc-phase-words{color:#ee541b}.ngk-vfc-phase-3 .ngk-vfc-phase-start{background:transparent;border:1px solid #ee642d;color:#e94c14}
.ngk-vfc-phase-4{background:#f3fffe;border-color:rgba(0,164,160,.38)}.ngk-vfc-phase-4 .ngk-vfc-phase-title,.ngk-vfc-phase-4 .ngk-vfc-phase-words{color:#009b98}.ngk-vfc-phase-4 .ngk-vfc-phase-start{background:transparent;border:1px solid #009b98;color:#008c89}
@media(max-width:900px){.ngk-vfc-phase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ngk-vfc-phase-card{min-height:270px}}
@media(max-width:520px){.ngk-vfc-phase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ngk-vfc-phase-card{min-height:225px;padding:18px 10px 12px;border-radius:18px}.ngk-vfc-phase-flower{left:10px;top:10px;font-size:15px}.ngk-vfc-phase-title{font-size:14px}.ngk-vfc-phase-icon{width:58px;height:58px;margin:13px 0 12px;font-size:24px}.ngk-vfc-phase-range{font-size:14px}.ngk-vfc-phase-words{font-size:12px}.ngk-vfc-phase-start{min-height:38px;font-size:12px;gap:8px}}




/* v1.0.8 — authoritative mobile vocabulary size bands.
   Server assigns the band from vocabulary characters only; JS starts at the
   agreed band maximum and shrinks only when the actual rendered base text
   cannot fit. This block intentionally overrides all older mobile font rules. */
@media (max-width:600px){
  .ngk-vfc-vocab-zone{display:grid!important;place-items:center!important;overflow:hidden!important;}
  .ngk-vfc-slide.is-active{display:grid!important;place-items:center!important;overflow:visible!important;}
  .ngk-vfc-vocab{
    width:auto!important;
    max-width:calc(100% - 4px)!important;
    display:inline-block!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    text-align:center!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    line-height:1.08!important;
  }
  .ngk-vfc-vocab.vlen-1{font-size:80px!important;}
  .ngk-vfc-vocab.vlen-2-4{font-size:62px!important;}
  .ngk-vfc-vocab.vlen-5-7{font-size:45px!important;}
  .ngk-vfc-vocab.vlen-8plus{font-size:36px!important;}
  .ngk-vfc-vocab ruby{white-space:nowrap!important;ruby-position:over;ruby-align:center;}
  .ngk-vfc-vocab rt{font-size:.25em!important;line-height:1!important;}
}

/* v1.0.9 — desktop-only authoritative vocabulary size bands.
   Mobile rules in v1.0.8 remain unchanged. Desktop starts at the agreed
   band maximum and JavaScript shrinks only when the actual rendered word
   cannot fit the white vocabulary card. */
@media (min-width:601px){
  .ngk-vfc-vocab-zone{display:grid!important;place-items:center!important;overflow:hidden!important;}
  .ngk-vfc-slide.is-active{display:grid!important;place-items:center!important;overflow:visible!important;}
  .ngk-vfc-vocab{
    width:auto!important;
    max-width:calc(100% - 8px)!important;
    display:inline-block!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    text-align:center!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    line-height:1.08!important;
  }
  .ngk-vfc-vocab.vlen-1{font-size:80px!important;}
  .ngk-vfc-vocab.vlen-2-4{font-size:62px!important;}
  .ngk-vfc-vocab.vlen-5-7{font-size:45px!important;}
  .ngk-vfc-vocab.vlen-8plus{font-size:36px!important;}
  .ngk-vfc-vocab ruby{white-space:nowrap!important;ruby-position:over;ruby-align:center;}
  .ngk-vfc-vocab rt{font-size:.25em!important;line-height:1!important;}
}
