
:root{--nle-bg:#f7f5ee;--nle-card:#fffdf8;--nle-text:#17221e;--nle-sub:#64706b;--nle-line:#e1e5df;--nle-brand:#0b765d;--nle-brand2:#f26b4b;--nle-soft:#e2f3eb;--nle-warn:#b83f2a;--nle-good:#0b765d;--nle-shadow:0 12px 32px rgba(18,61,51,.07)}
.nle-app,.nle-app *{box-sizing:border-box}.nle-app{font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;color:var(--nle-text);background:var(--nle-bg);margin:0 auto;max-width:860px;min-height:720px;border-radius:24px;overflow:hidden;position:relative;-webkit-font-smoothing:antialiased}.nle-shell{min-height:100vh;max-width:760px;margin:0 auto;padding-bottom:84px}.nle-topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:rgba(246,247,251,.92);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.nle-brand{display:flex;gap:10px;align-items:center;border:0;background:none;color:inherit;padding:0;text-align:left;cursor:pointer}.nle-brand b{display:block;font-size:14px;letter-spacing:-.02em}.nle-brand small{display:block;color:var(--nle-sub);font-size:10px;margin-top:1px}.nle-logo{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:20px;background:linear-gradient(135deg,var(--nle-brand),var(--nle-brand2));box-shadow:0 8px 18px rgba(91,103,241,.24)}.nle-mini-progress{border:0;background:#fff;padding:7px 11px;border-radius:12px;box-shadow:0 4px 16px rgba(25,32,51,.06);cursor:pointer;color:inherit}.nle-mini-progress span{display:block;font-weight:900;font-size:15px}.nle-mini-progress small{display:block;font-size:9px;color:var(--nle-sub)}.nle-main{padding:6px 14px 28px}.nle-view[hidden]{display:none!important}.nle-hero-card{background:linear-gradient(145deg,#222a55,#5b67f1 70%,#7568ff);border-radius:26px;padding:24px;color:#fff;min-height:220px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 18px 45px rgba(65,74,185,.2);overflow:hidden;position:relative}.nle-hero-card:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;border:1px solid rgba(255,255,255,.14);right:-75px;top:-100px}.nle-hero-copy{position:relative;z-index:2;max-width:450px}.nle-eyebrow{font-size:10px;letter-spacing:.14em;font-weight:900;opacity:.8}.nle-hero-copy h1{font-size:31px;line-height:1.18;margin:9px 0 11px;letter-spacing:-.04em}.nle-hero-copy p{font-size:13px;line-height:1.7;margin:0;opacity:.88}.nle-ring{--p:0;width:112px;height:112px;border-radius:50%;flex:0 0 112px;background:conic-gradient(#fff calc(var(--p)*1%),rgba(255,255,255,.18) 0);display:grid;place-items:center;position:relative;z-index:2}.nle-ring:before{content:"";width:87px;height:87px;border-radius:50%;background:#4d59d6;position:absolute}.nle-ring>div{z-index:2;text-align:center}.nle-ring strong{display:block;font-size:25px}.nle-ring span{font-size:10px;opacity:.8}.nle-today-card,.nle-page-card{background:var(--nle-card);border-radius:22px;padding:18px;margin-top:14px;box-shadow:var(--nle-shadow)}.nle-card-title{display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:16px;margin-bottom:9px}.nle-time{font-size:11px;color:var(--nle-sub);background:#f2f3f7;border-radius:999px;padding:5px 8px}.nle-today-row{padding:11px 0;border-bottom:1px solid var(--nle-line)}.nle-today-row>div{display:grid;grid-template-columns:14px 1fr;column-gap:7px}.nle-today-row b{font-size:14px}.nle-today-row small{grid-column:2;color:var(--nle-sub);font-size:11px;margin-top:2px}.nle-dot{width:9px;height:9px;border-radius:50%;margin-top:5px}.nle-dot-review{background:#ffb648}.nle-dot-new{background:var(--nle-brand)}.nle-primary{width:100%;border:0;border-radius:15px;background:linear-gradient(135deg,var(--nle-brand),var(--nle-brand2));color:#fff;font-weight:900;font-size:15px;padding:15px 17px;margin-top:15px;display:flex;justify-content:center;gap:10px;align-items:center;cursor:pointer;box-shadow:0 9px 20px rgba(91,103,241,.2)}.nle-primary:active{transform:translateY(1px)}.nle-secondary{width:100%;border:1px solid var(--nle-line);border-radius:14px;background:#fff;color:var(--nle-text);font-weight:800;padding:13px 15px;cursor:pointer}.nle-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:12px}.nle-stat{border:0;background:#fff;border-radius:18px;padding:15px;text-align:left;box-shadow:0 6px 22px rgba(25,32,51,.06);cursor:pointer;color:inherit}.nle-stat>span{font-size:20px;display:block;margin-bottom:10px}.nle-stat b{display:block;font-size:13px}.nle-stat small{display:block;color:var(--nle-sub);font-size:10.5px;margin-top:3px}.nle-beta-note{display:flex;gap:8px;align-items:flex-start;margin:14px 3px;color:var(--nle-sub);font-size:10.5px;line-height:1.5}.nle-beta-note b{white-space:nowrap;color:var(--nle-brand)}.nle-bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(760px,100%);height:72px;padding:8px 14px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid rgba(230,232,239,.9);display:grid;grid-template-columns:repeat(4,1fr);z-index:30}.nle-bottom-nav button{border:0;background:none;color:#8a90a3;display:grid;place-items:center;align-content:center;gap:1px;position:relative;cursor:pointer}.nle-bottom-nav button>span{font-size:20px;line-height:1}.nle-bottom-nav small{font-size:9.5px;font-weight:700}.nle-bottom-nav button.is-active{color:var(--nle-brand)}.nle-bottom-nav em{position:absolute;top:1px;right:25%;font-style:normal;background:var(--nle-warn);color:#fff;font-size:9px;min-width:17px;height:17px;border-radius:999px;display:grid;place-items:center;padding:0 4px}.nle-page-head{padding:8px 3px 3px}.nle-page-head h2{font-size:25px;margin:4px 0 5px;letter-spacing:-.035em}.nle-page-head p{color:var(--nle-sub);font-size:12px;line-height:1.6;margin:0}.nle-back{border:0;background:#fff;width:38px;height:38px;border-radius:12px;box-shadow:0 4px 14px rgba(25,32,51,.06);cursor:pointer;color:inherit;font-size:18px}.nle-lesson-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.nle-lesson-head .nle-title{flex:1}.nle-lesson-head h2{font-size:22px;line-height:1.35;margin:3px 0}.nle-chip{display:inline-flex;border-radius:999px;padding:5px 9px;background:var(--nle-soft);color:var(--nle-brand);font-weight:800;font-size:10px}.nle-stepper{display:flex;align-items:center;gap:5px;margin:15px 0}.nle-step{height:5px;flex:1;border-radius:999px;background:#e8eaf1}.nle-step.is-on{background:var(--nle-brand)}.nle-step-label{font-size:11px;color:var(--nle-sub);margin-bottom:7px;font-weight:800}.nle-audio-card{background:#242a47;color:#fff;border-radius:20px;padding:17px;margin:10px 0}.nle-audio-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.nle-audio-title b{display:block;font-size:14px}.nle-audio-title small{display:block;font-size:10px;opacity:.7;margin-top:3px}.nle-play{width:54px;height:54px;border-radius:50%;border:0;background:#fff;color:#363f9b;font-size:21px;cursor:pointer}.nle-speed-row{display:flex;gap:6px;margin-top:14px}.nle-speed{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;font-size:10px;padding:5px 8px;cursor:pointer}.nle-speed.is-active{background:#fff;color:#333c96}.nle-instruction{font-size:13px;line-height:1.65;color:var(--nle-sub);margin:10px 2px 13px}.nle-sentence-list{display:grid;gap:9px}.nle-sentence{background:#fff;border:1px solid var(--nle-line);border-radius:17px;padding:13px;transition:.18s}.nle-sentence.is-unclear{border-color:#ffb09d;background:#fff9f7;box-shadow:0 0 0 2px rgba(255,122,89,.08)}.nle-sentence-top{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:start}.nle-speaker{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef0f5;font-size:10px;font-weight:900}.nle-en{font-size:14px;line-height:1.55;font-weight:750}.nle-unclear-btn{border:1px solid #dfe2ea;background:#fff;border-radius:999px;padding:6px 8px;font-size:9.5px;color:#646b80;cursor:pointer;white-space:nowrap}.nle-sentence.is-unclear .nle-unclear-btn{background:#ffede8;border-color:#ffc5b6;color:#b7482d}.nle-explanation{margin:12px -2px 0;padding-top:11px;border-top:1px solid var(--nle-line)}.nle-jp{font-weight:750;font-size:13.5px;line-height:1.6}.nle-explain-line{font-size:12px;line-height:1.65;color:#4c5368;margin-top:7px}.nle-explain-line b{color:#30364b}.nle-vocab-box{margin-top:8px;background:#f6f7fa;border-radius:12px;padding:9px 10px;font-size:11.5px;line-height:1.6}.nle-note-box{border-radius:14px;padding:11px 12px;background:#fff6e8;color:#76531d;font-size:11.5px;line-height:1.55;margin:10px 0}.nle-review-answer{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.nle-review-answer button{border:0;border-radius:15px;padding:14px;font-weight:900;cursor:pointer}.nle-understood{background:#eaf8f2;color:#177b57}.nle-still{background:#fff0ec;color:#b9472d}.nle-context{background:#fff;border-radius:18px;padding:13px;margin-top:10px;box-shadow:0 5px 18px rgba(25,32,51,.05)}.nle-context-row{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:8px 0;color:#7b8193}.nle-context-row.is-target{color:var(--nle-text);font-weight:800}.nle-review-stage{font-size:10px;font-weight:900;color:var(--nle-brand);letter-spacing:.08em}.nle-map-level{background:#fff;border-radius:20px;padding:15px;margin:11px 0;box-shadow:0 5px 20px rgba(25,32,51,.05)}.nle-map-level-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.nle-map-level-head h3{font-size:15px;margin:0}.nle-map-level-head small{color:var(--nle-sub);font-size:10px}.nle-level-pct{font-weight:900;color:var(--nle-brand)}.nle-bar{height:6px;background:#eceef4;border-radius:999px;overflow:hidden;margin:10px 0 12px}.nle-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--nle-brand),var(--nle-brand2));border-radius:999px}.nle-map-scenes{display:grid;grid-template-columns:1fr 1fr;gap:7px}.nle-scene-btn{border:1px solid var(--nle-line);background:#fff;border-radius:13px;padding:9px;text-align:left;min-height:62px;color:inherit;cursor:pointer}.nle-scene-btn[disabled]{opacity:.48;cursor:default;background:#f7f8fa}.nle-scene-btn b{display:block;font-size:11px;line-height:1.35}.nle-scene-btn small{display:block;font-size:9px;color:var(--nle-sub);margin-top:5px}.nle-scene-pct{float:right;color:var(--nle-brand);font-weight:900}.nle-catalog-list{margin-top:12px}.nle-catalog-lesson{background:#fff;border-radius:16px;margin:9px 0;padding:0 13px;box-shadow:0 4px 18px rgba(25,32,51,.05)}.nle-catalog-lesson>summary{list-style:none;cursor:pointer;padding:14px 2px}.nle-catalog-lesson>summary::-webkit-details-marker{display:none}.nle-catalog-lesson>summary span{display:block;font-size:11px;color:var(--nle-brand);font-weight:850}.nle-catalog-lesson>summary strong{display:block;font-size:14px;margin-top:3px}.nle-catalog-body{padding:0 0 12px}.nle-catalog-sentence{padding:12px 0;border-top:1px solid var(--nle-line)}.nle-catalog-en{font-size:13px;line-height:1.6}.nle-catalog-en b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef0f5;font-size:9px;margin-right:4px}.nle-catalog-jp{font-size:12px;color:var(--nle-sub);line-height:1.55;margin-top:4px}.nle-catalog-sentence details{margin-top:5px}.nle-catalog-sentence details summary{font-size:10.5px;color:var(--nle-brand);cursor:pointer}.nle-catalog-sentence details p{font-size:11.5px;line-height:1.65;color:#4e556a;margin:7px 0}.nle-empty{background:#fff;border-radius:18px;padding:24px;text-align:center;color:var(--nle-sub);font-size:12px}.nle-toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);background:#252a3f;color:#fff;border-radius:999px;padding:9px 14px;font-size:11px;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.2)}
@media(max-width:560px){.nle-app{border-radius:0;max-width:none}.nle-main{padding-left:12px;padding-right:12px}.nle-hero-card{padding:20px;min-height:205px}.nle-hero-copy h1{font-size:27px}.nle-hero-copy p{font-size:12px}.nle-ring{width:92px;height:92px;flex-basis:92px}.nle-ring:before{width:71px;height:71px}.nle-ring strong{font-size:21px}.nle-map-scenes{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.nle-hero-card{align-items:flex-start}.nle-ring{width:82px;height:82px;flex-basis:82px}.nle-ring:before{width:63px;height:63px}.nle-hero-copy h1{font-size:24px}.nle-brand small{display:none}.nle-map-scenes{grid-template-columns:1fr}}
.nle-seo-content{max-width:760px;margin:28px auto 48px;padding:0 16px;color:#192033}.nle-seo-content h2{font-size:26px;margin:0 0 10px}.nle-seo-content h3{font-size:20px;margin:28px 0 12px}.nle-seo-content p{line-height:1.85}.nle-seo-levels{display:grid;gap:10px;margin:18px 0}.nle-seo-levels>div{background:#fff;border:1px solid #e8eaf1;border-radius:14px;padding:13px 14px}.nle-seo-levels strong,.nle-seo-levels span{display:block}.nle-seo-levels span{color:#697087;margin-top:3px;font-size:14px}.nle-seo-scenes{columns:2;gap:28px;padding-left:22px;line-height:1.9}.nle-seo-previews details{background:#fff;border:1px solid #e8eaf1;border-radius:14px;padding:12px 14px;margin:10px 0}.nle-seo-previews summary{font-weight:800;cursor:pointer}.nle-seo-previews p span{color:#697087}.nle-course-row{padding:13px 0;border-bottom:1px solid var(--nle-line)}.nle-course-row b,.nle-course-row small{display:block}.nle-course-row small{color:var(--nle-sub);margin-top:3px}.nle-hub{max-width:900px;margin:24px auto;padding:16px}.nle-hub header{text-align:center;margin-bottom:22px}.nle-hub header h2{font-size:30px;margin:8px 0}.nle-hub header p{color:#697087}.nle-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.nle-hub-card{display:block;background:#fff;border:1px solid #e8eaf1;border-radius:18px;padding:20px;text-decoration:none!important;color:#192033!important;box-shadow:0 10px 30px rgba(25,32,51,.06)}.nle-hub-card strong,.nle-hub-card span{display:block}.nle-hub-card strong{font-size:18px}.nle-hub-card span{color:#697087;margin-top:6px}.nle-hub-card:hover{transform:translateY(-1px)}
@media(max-width:640px){.nle-seo-scenes{columns:1}.nle-seo-content{margin-top:22px}.nle-hub{padding:10px}.nle-hub header h2{font-size:26px}}

/* v0.3 logical-memory brand */
.nle-hub-hero{background:#123d33;color:#fff;border-radius:28px;padding:34px 24px!important;box-shadow:0 18px 45px rgba(18,61,51,.16)}.nle-hub-hero .nle-eyebrow{opacity:.76}.nle-hub-hero h1{font-size:40px!important;letter-spacing:-.05em;margin:8px 0 2px!important}.nle-hub-hero h2{font-size:21px!important;margin:0 0 20px!important;font-weight:800}.nle-hub-hero p{color:rgba(255,255,255,.88)!important;line-height:1.75;margin:0}.nle-hub-hero p strong{font-size:16px;color:#fff}.nle-hub-card{transition:transform .16s ease,box-shadow .16s ease}.nle-hub-card:hover{box-shadow:0 14px 34px rgba(18,61,51,.10)}
@media(max-width:560px){.nle-hub-hero{padding:28px 20px!important}.nle-hub-hero h1{font-size:34px!important}.nle-hub-hero h2{font-size:19px!important}}

.nle-example-box{margin-top:10px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.75);border:1px dashed rgba(40,50,80,.18);line-height:1.6}.nle-example-box b{display:inline-block;margin-bottom:3px}

/* v0.4.2: listening lesson UX */
.nle-scene-context{display:flex;flex-direction:column;gap:3px;background:var(--nle-soft);border-radius:14px;padding:11px 12px;margin-bottom:12px}.nle-scene-context b{font-size:12px;color:var(--nle-brand)}.nle-scene-context span{font-size:11px;color:var(--nle-sub);line-height:1.5}.nle-understanding-card{position:relative}.nle-understanding-card.is-known{border-color:rgba(91,103,241,.38);box-shadow:0 0 0 2px rgba(91,103,241,.07)}.nle-known-check{width:100%;display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#626a80;font-size:11px;font-weight:800;padding:0 0 10px;cursor:pointer;text-align:left}.nle-known-check .nle-check-mark{width:20px;height:20px;border:1.5px solid #cfd3df;border-radius:6px;display:grid;place-items:center;background:#fff;color:#fff;font-size:12px;flex:0 0 20px}.nle-understanding-card.is-known .nle-known-check{color:var(--nle-brand)}.nle-understanding-card.is-known .nle-check-mark{background:var(--nle-brand);border-color:var(--nle-brand)}.nle-sentence-static{grid-template-columns:28px 1fr}.nle-understanding-card .nle-explanation{display:block}.nle-shadow-script{display:grid;gap:7px;margin-top:12px}.nle-shadow-row{background:#fff;border:1px solid var(--nle-line);border-radius:15px;padding:11px}.nle-shadow-help .nle-explanation{margin-top:10px}.nle-help-toggle{margin-top:11px}

.nle-exit{border:0;background:transparent;width:38px;height:38px;border-radius:12px;cursor:pointer;color:var(--nle-sub);font-size:24px;line-height:1}.nle-exit:hover{background:#fff;color:var(--nle-text)}

/* v0.4.5: friendly copy + autosave status */
.nle-save-status{text-align:center;margin:9px 0 0;color:var(--nle-sub);font-size:10px}
.nle-save-status:before{content:"✓";display:inline-block;margin-right:5px;color:var(--nle-good);font-weight:900}
.nle-save-status.is-error{color:#b9472d}
.nle-save-status.is-error:before{content:"!";color:#b9472d}
.nle-known-check span:last-child{font-size:11.5px}
.nle-explain-line b,.nle-vocab-box b,.nle-example-box b{font-weight:850}

/* v0.4.6: explanation UI = 意味 + ポイント */
.nle-explanation{display:grid;gap:10px;margin-top:12px}
.nle-meaning-block,.nle-point-block{
  border:1px solid var(--nle-line);
  background:#fff;
  border-radius:14px;
  padding:12px 13px;
}
.nle-explain-heading{
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  color:var(--nle-sub);
  margin-bottom:6px;
}
.nle-meaning-block .nle-jp{
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  font-size:14px;
  line-height:1.75;
  font-weight:700;
}
.nle-point-block{display:grid;gap:7px}
.nle-point-item{
  font-size:12.5px;
  line-height:1.7;
  color:var(--nle-text);
}
.nle-point-item+.nle-point-item{
  border-top:1px dashed var(--nle-line);
  padding-top:7px;
}
.nle-point-example-label{
  display:inline-block;
  margin-right:7px;
  padding:1px 6px;
  border-radius:999px;
  background:var(--nle-soft);
  color:var(--nle-sub);
  font-size:9px;
  font-weight:900;
  vertical-align:1px;
}


/* v0.4.8: app-page isolation and focused learning UI */
body.nle-app-page .breadcrumbs,
body.nle-app-page .breadcrumb,
body.nle-app-page #breadcrumb,
body.nle-app-page .breadcrumb-trail,
body.nle-app-page .breadcrumb-nav,
body.nle-app-page .entry-title,
body.nle-app-page article.page > .entry-header,
body.nle-app-page .page-header{display:none!important}
body.nle-app-page .entry-content{max-width:none!important;width:100%!important;margin-top:0!important;padding-left:0!important;padding-right:0!important}
body.nle-app-page .entry-content>.nle-app,
body.nle-app-page .entry-content>.nle-hub{margin-top:0}
body.nle-app-page .entry-content:before{display:none!important}

.nle-app[data-current-view="home"] .nle-mini-progress{display:none}
.nle-app.nle-focus-mode .nle-topbar,.nle-app.nle-focus-mode .nle-bottom-nav{display:none!important}
.nle-app.nle-focus-mode .nle-shell{padding-bottom:24px}
.nle-app.nle-focus-mode .nle-main{padding-top:14px}

/* Lighter sentence cards: one outer card, no nested card-in-card look */
.nle-sentence-list{gap:12px}
.nle-sentence{padding:16px;border-radius:19px;box-shadow:0 5px 18px rgba(25,32,51,.045)}
.nle-en{font-size:15.5px;line-height:1.62}
.nle-instruction{font-size:14px;line-height:1.7}
.nle-known-check{font-size:13px;padding-bottom:12px}
.nle-known-check span:last-child{font-size:13px}
.nle-explanation{gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid var(--nle-line)}
.nle-meaning-block,.nle-point-block{border:0!important;background:transparent!important;border-radius:0!important;padding:0!important}
.nle-point-block{border-top:1px dashed var(--nle-line)!important;padding-top:12px!important;margin-top:1px}
.nle-explain-heading{font-size:11px;margin-bottom:7px}
.nle-meaning-block .nle-jp{font-size:15px;line-height:1.75}
.nle-point-item{font-size:14px;line-height:1.72}
.nle-point-item+.nle-point-item{padding-top:8px}
.nle-shadow-row .nle-explanation{padding-left:2px;padding-right:2px}

/* Review: make the target and next action obvious */
.nle-target-audio{margin-top:8px;background:var(--nle-soft);border-color:transparent;color:var(--nle-brand)}
.nle-review-question{font-size:15px;font-weight:900;text-align:center;margin:18px 0 3px}
.nle-review-result-label{font-size:11px;font-weight:900;color:var(--nle-brand);margin:18px 2px 5px}
.nle-context{box-shadow:none;border:1px solid var(--nle-line)}
.nle-context-row.is-target{background:var(--nle-soft);margin:0 -6px;padding:10px 6px;border-radius:10px;color:var(--nle-text)}
.nle-review-answer button{font-size:13px;min-height:50px}

@media(max-width:560px){
  body.nle-app-page .entry-content{padding:0!important}
  .nle-app{min-height:100svh}
  .nle-main{padding-left:11px;padding-right:11px}
  .nle-sentence{padding:15px}
  .nle-en{font-size:15px}
  .nle-meaning-block .nle-jp{font-size:14.5px}
  .nle-point-item{font-size:13.5px}
}


/* =========================================================
   v0.4.9 — UX polish before 100-lesson expansion
   ========================================================= */
body.nle-app-page{background:var(--nle-bg)!important}
body.nle-app-page .site-header,
body.nle-app-page #site-header,
body.nle-app-page header.site-header,
body.nle-app-page #header,
body.nle-app-page .site-footer,
body.nle-app-page #site-footer,
body.nle-app-page footer.site-footer,
body.nle-app-page #footer{display:none!important}
body.nle-app-page #page,
body.nle-app-page #content,
body.nle-app-page .site-content,
body.nle-app-page .content-area,
body.nle-app-page main.site-main{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}

.nle-hero-copy h1{margin-top:0}
.nle-course-tagline{font-size:16px!important;line-height:1.55!important;font-weight:800;opacity:.96!important;max-width:330px}
.nle-primary:disabled{cursor:not-allowed;box-shadow:none;opacity:.48;transform:none!important}

.nle-known-check{margin-top:13px;padding:11px 3px 0!important;border-top:1px solid var(--nle-line);color:var(--nle-sub)}
.nle-understanding-card.is-known .nle-known-check{color:var(--nle-brand)}
.nle-understanding-card.is-known{background:#f1faf5}
.nle-inline-term{font-weight:900;color:#333c96;background:var(--nle-soft);border-radius:5px;padding:1px 3px}

.nle-shadow-page{overflow:visible}
.nle-shadow-player{position:sticky;top:8px;z-index:12;margin:8px -4px 12px;filter:drop-shadow(0 8px 16px rgba(25,32,51,.10))}
.nle-shadow-player .nle-audio-card{margin:0;border-radius:17px;padding:13px 14px}
.nle-shadow-player .nle-play{width:46px;height:46px}
.nle-shadow-player .nle-speed-row{margin-top:9px}
.nle-shadow-script:not([hidden]){display:block!important;background:#fff;border:1px solid var(--nle-line);border-radius:18px;overflow:hidden;margin:12px 0}
.nle-shadow-row{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;border:0!important;border-bottom:1px solid var(--nle-line)!important;border-radius:0!important;padding:13px 12px!important;transition:background .16s ease,box-shadow .16s ease}
.nle-shadow-row:last-child{border-bottom:0!important}
.nle-shadow-row.is-playing{background:var(--nle-soft);box-shadow:inset 3px 0 0 var(--nle-brand)}
.nle-shadow-row.is-playing .nle-en{color:#303a9e}
.nle-shadow-text{min-width:0}

.nle-review-answer button:disabled{opacity:.38;cursor:not-allowed}
.nle-review-listen-hint{text-align:center;color:var(--nle-sub);font-size:11px;margin:13px 0 2px}
.nle-review-retry{margin-top:12px}
.nle-review-learn-card{margin-top:8px;box-shadow:none}

.nle-level-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:12px 0}
.nle-level-tabs button{min-width:0;border:1px solid var(--nle-line);background:#fff;color:var(--nle-sub);border-radius:13px;padding:9px 4px 8px;cursor:pointer}
.nle-level-tabs button span{display:block;font-size:13px;font-weight:900}
.nle-level-tabs button small{display:block;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.nle-level-tabs button.is-active{border-color:transparent;background:var(--nle-brand);color:#fff;box-shadow:0 6px 16px rgba(91,103,241,.20)}
.nle-map-level-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:#fff;border-radius:17px;padding:14px;box-shadow:0 5px 18px rgba(25,32,51,.045)}
.nle-map-level-summary b,.nle-map-level-summary small{display:block}
.nle-map-level-summary b{font-size:14px}
.nle-map-level-summary small{color:var(--nle-sub);font-size:10.5px;line-height:1.55;margin-top:3px}
.nle-map-level-summary>strong{font-size:18px;color:var(--nle-brand)}
.nle-map-category{background:#fff;border-radius:18px;padding:14px;margin:12px 0;box-shadow:0 5px 18px rgba(25,32,51,.045)}
.nle-map-category-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:9px}
.nle-map-category-head b,.nle-map-category-head small{display:block}
.nle-map-category-head b{font-size:14px}
.nle-map-category-head small{font-size:10px;color:var(--nle-sub);line-height:1.45;margin-top:2px}
.nle-map-category-head>span{font-weight:900;color:var(--nle-brand);font-size:13px}
.nle-map-scenes{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
.nle-scene-btn{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;width:100%;min-height:64px;text-align:left;padding:10px 11px!important}
.nle-scene-main{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start;min-width:0}
.nle-scene-main b,.nle-scene-main small{display:block}
.nle-scene-main b{font-size:12.5px;line-height:1.35}
.nle-scene-main small{font-size:9.5px;color:var(--nle-sub);line-height:1.4;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
.nle-scene-no{font-size:10px;font-weight:900;color:var(--nle-brand);background:var(--nle-soft);border-radius:8px;padding:5px 3px;text-align:center}
.nle-scene-status{flex:0 0 auto;text-align:right}
.nle-scene-status strong,.nle-scene-status small{display:block}
.nle-scene-status strong{font-size:12px}
.nle-scene-status small{font-size:8.5px;color:var(--nle-sub);margin-top:2px}

.nle-modal-backdrop{position:fixed;inset:0;background:rgba(18,23,39,.42);backdrop-filter:blur(4px);z-index:1000;display:grid;place-items:end center;padding:18px}
.nle-modal{width:min(420px,100%);background:#fff;border-radius:22px;padding:18px;box-shadow:0 24px 70px rgba(18,23,39,.25)}
.nle-modal p{font-size:14px;line-height:1.65;margin:0;color:var(--nle-text);font-weight:700}
.nle-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}
.nle-modal-actions .nle-primary,.nle-modal-actions .nle-secondary{margin:0}
.nle-modal-confirm{background:var(--nle-brand)}

.nle-nav-icon{width:21px;height:21px;display:grid;place-items:center;margin-bottom:2px!important}
.nle-nav-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:560px){
  .nle-course-tagline{font-size:14.5px!important}
  .nle-shadow-player{top:6px}
  .nle-level-tabs button small{display:none}
  .nle-level-tabs button{padding:10px 3px}
  .nle-scene-main small{max-width:220px}
}

/* =========================================================
   v0.4.10 — full-page isolation, accessibility and resilient UX
   ========================================================= */
:root{--nle-brand2:#f26b4b;--nle-warn:#b83f2a}
html{min-height:100%;background:var(--nle-bg)}
body.nle-app-page{min-height:100%;margin:0!important;background:var(--nle-bg)!important;color:var(--nle-text)}
body.nle-app-page .nle-page-main{display:block;width:100%;max-width:none;margin:0;padding:0;min-height:100vh}
body.nle-app-page #headerContainer,
body.nle-app-page #footerContainer,
body.nle-app-page #sidebar,
body.nle-app-page .breadcrumbs,
body.nle-app-page .postTitleContainer{display:none!important}
body.nle-app-page #contentContainer,
body.nle-app-page #content,
body.nle-app-page #postContainer,
body.nle-app-page .post,
body.nle-app-page .postElemContainer,
body.nle-app-page .postTextContainer{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}

#nle-app [hidden]{display:none!important}
.nle-shadow-script:not([hidden]){display:block!important}
.nle-bottom-nav em:not([hidden]){display:grid}

.nle-app{border-radius:0;min-height:100svh}
.nle-shell{padding-right:env(safe-area-inset-right,0px);padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));padding-left:env(safe-area-inset-left,0px)}
.nle-topbar{height:calc(70px + env(safe-area-inset-top,0px));padding-top:calc(10px + env(safe-area-inset-top,0px))}
.nle-bottom-nav{height:calc(72px + env(safe-area-inset-bottom,0px));padding-right:calc(14px + env(safe-area-inset-right,0px));padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));padding-left:calc(14px + env(safe-area-inset-left,0px))}
.nle-toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
.nle-shadow-player{top:calc(8px + env(safe-area-inset-top,0px))}

.nle-hero-card{background:#123d33}
.nle-bottom-nav button{color:#626a80;min-width:44px;min-height:44px}
.nle-bottom-nav small{font-size:10.5px}
.nle-bottom-nav em{background:#b9472d;font-size:10px;font-weight:900}
.nle-back,.nle-exit{width:44px;height:44px;flex:0 0 44px}
.nle-speed{min-width:48px;min-height:36px;padding:7px 10px;font-size:11px}
.nle-level-tabs button{min-height:48px}
.nle-level-tabs button small{font-size:9.5px}

.nle-app button:focus-visible,
.nle-app input:focus-visible,
.nle-seo-content summary:focus-visible,
.nle-modal button:focus-visible{outline:3px solid #20284d;outline-offset:3px}
.nle-audio-card .nle-play:focus-visible{outline-color:#fff}

.nle-audio-progress{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:7px;margin-top:13px;color:rgba(255,255,255,.78);font-size:10px;font-variant-numeric:tabular-nums}
.nle-audio-duration{text-align:right}
.nle-audio-seek{width:100%;margin:0;accent-color:#fff;cursor:pointer}
.nle-sentence-audio{display:inline-flex;align-items:center;justify-content:center;min-height:36px;margin:10px 0 0 36px;padding:7px 10px;border:1px solid var(--nle-line);border-radius:999px;background:#fff;color:#3943a4;font-size:11px;font-weight:800;cursor:pointer}

.nle-loading{min-height:240px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--nle-sub);font-size:13px;font-weight:800}
.nle-loading span{width:18px;height:18px;border:2px solid #d8dbea;border-top-color:var(--nle-brand);border-radius:50%;animation:nle-spin .75s linear infinite}
@keyframes nle-spin{to{transform:rotate(360deg)}}
.nle-load-error{text-align:center;padding:28px}
.nle-load-error h2{font-size:19px;margin:0 0 8px}
.nle-load-error p{color:var(--nle-sub);font-size:13px;line-height:1.6}
.nle-load-error .nle-secondary{margin-top:9px}

.nle-complete-card{background:#fff;border-radius:22px;padding:26px 20px;margin-top:14px;text-align:center;box-shadow:var(--nle-shadow)}
.nle-complete-mark{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#eaf8f2;color:#177b57;font-size:25px;font-weight:900}
.nle-complete-card h3{font-size:21px;margin:0 0 8px}
.nle-complete-card>p{font-size:12px;line-height:1.65;color:var(--nle-sub);margin:8px 0}
.nle-complete-card .nle-secondary{margin-top:9px}
.nle-complete-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:17px 0}
.nle-complete-summary>div{background:#f6f7fa;border-radius:14px;padding:13px 8px}
.nle-complete-summary strong,.nle-complete-summary span{display:block}
.nle-complete-summary strong{font-size:20px;color:var(--nle-brand)}
.nle-complete-summary span{font-size:10px;color:var(--nle-sub);margin-top:3px}

.nle-review-feedback{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:13px;padding:11px 12px;margin-top:14px;font-size:12px}
.nle-review-feedback.is-success{background:#eaf8f2;color:#177b57}
.nle-review-feedback button,.nle-review-result-label button{border:0;background:transparent;color:inherit;text-decoration:underline;font-size:11px;font-weight:800;cursor:pointer;min-height:32px}
.nle-review-result-label{display:flex;justify-content:space-between;align-items:center;gap:10px}
.nle-review-speak-prompt{background:var(--nle-soft);color:#3943a4;border-radius:13px;padding:11px 12px;margin:10px 0 0;font-size:12px;line-height:1.55;font-weight:700}

.nle-course-overview h3{font-size:15px;margin:23px 0 7px}
.nle-course-summary{font-size:13px;line-height:1.75;color:var(--nle-sub);margin:0}
.nle-course-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}
.nle-course-flow>div{background:#f6f7fa;border-radius:14px;padding:12px 9px;text-align:center}
.nle-course-flow span{width:24px;height:24px;display:grid;place-items:center;margin:0 auto 7px;border-radius:50%;background:var(--nle-brand);color:#fff;font-size:11px;font-weight:900}
.nle-course-flow b,.nle-course-flow small{display:block}
.nle-course-flow b{font-size:12px}
.nle-course-flow small{font-size:9.5px;line-height:1.45;color:var(--nle-sub);margin-top:4px}

.nle-seo-content{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
.nle-seo-details{background:#fff;border:1px solid var(--nle-line);border-radius:18px;box-shadow:0 6px 22px rgba(25,32,51,.05);overflow:hidden}
.nle-seo-details>summary{list-style:none;cursor:pointer;padding:16px 18px;color:#3943a4;font-size:13px;font-weight:900}
.nle-seo-details>summary::-webkit-details-marker{display:none}
.nle-seo-details>summary:after{content:"＋";float:right}
.nle-seo-details[open]>summary:after{content:"−"}
.nle-seo-details-body{border-top:1px solid var(--nle-line);padding:20px 18px}
body.nle-app-page[data-nle-view]:not([data-nle-view="home"]) .nle-seo-content{display:none!important}

@media(max-width:560px){
  .nle-course-flow{grid-template-columns:1fr}
  .nle-course-flow>div{display:grid;grid-template-columns:28px 1fr;text-align:left;column-gap:9px}
  .nle-course-flow span{grid-row:1 / span 2;margin:0}
  .nle-course-flow small{grid-column:2}
  .nle-seo-content{padding-left:11px;padding-right:11px}
}

@media(prefers-reduced-motion:reduce){
  .nle-app *{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* =========================================================
   v0.4.12 — scoped audio, readable map and accessible views
   ========================================================= */
.nle-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nle-page-head h1{font-size:25px;margin:4px 0 5px;letter-spacing:-.035em;line-height:1.3}
.nle-lesson-head h1{font-size:22px;line-height:1.35;margin:3px 0;letter-spacing:-.02em}
.nle-head-spacer{width:44px;height:44px;flex:0 0 44px}
.nle-step-label{margin:0 0 7px;font-size:11.5px;line-height:1.45}
.nle-complete-card h2{font-size:21px;margin:0 0 8px}
.nle-course-overview h2{font-size:15px;margin:23px 0 7px}
.nle-page-head h1:focus-visible,.nle-lesson-head h1:focus-visible,.nle-step-label:focus-visible,.nle-complete-card h2:focus-visible{outline:3px solid #20284d;outline-offset:4px;border-radius:4px}

.nle-audio-card{transition:box-shadow .16s ease,transform .16s ease}
.nle-audio-card.is-playing{box-shadow:0 0 0 3px rgba(255,255,255,.24)}
.nle-audio-segment{display:inline!important;margin-left:6px;font-weight:900;opacity:1}
.nle-understanding-card.is-audio-playing{border-color:rgba(91,103,241,.5);box-shadow:0 0 0 3px rgba(91,103,241,.09)}
.nle-sentence-audio,.nle-target-audio{transition:background .16s ease,border-color .16s ease,color .16s ease}
.nle-sentence-audio.is-playing,.nle-target-audio.is-playing{background:var(--nle-soft);border-color:rgba(91,103,241,.38);color:#303a9e}
.nle-speed,.nle-sentence-audio{min-height:44px}
.nle-audio-title small{font-size:11px}

.nle-level-tabs button small{font-size:10.5px}
.nle-map-level-summary small{font-size:12px}
.nle-map-category-head small{font-size:11.5px}
.nle-scene-main b{font-size:13.5px}
.nle-scene-main small{font-size:11.5px;line-height:1.45;white-space:normal;overflow:hidden;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.nle-scene-no{font-size:11px}
.nle-scene-status strong{font-size:12.5px}
.nle-scene-status small{font-size:10.5px}
.nle-stat small,.nle-save-status{font-size:11.5px}
.nle-mini-progress small{font-size:10px}
.nle-course-flow small{font-size:11px}
.nle-review-feedback b{line-height:1.45}

body.nle-app-page[data-nle-view="home"] .nle-app,
body.nle-app-page[data-nle-view="home"] .nle-shell{min-height:0}

@media(max-width:560px){
  .nle-scene-main small{max-width:220px}
  .nle-map-level-summary small{font-size:11.5px}
  .nle-map-category-head small{font-size:11px}
}

/* =========================================================
   v0.4.13 — guided completion, loading feedback and long-step UX
   ========================================================= */
.nle-brand{min-height:44px;padding:3px 0}
.nle-stat-icon{width:23px;height:23px;display:grid!important;place-items:center;margin-bottom:9px!important;color:var(--nle-brand)}
.nle-stat-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.nle-lesson-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nle-lesson-step-state{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border-radius:999px;background:#fff;color:var(--nle-sub);font-size:9.5px;font-weight:900;letter-spacing:.04em;box-shadow:inset 0 0 0 1px var(--nle-line)}
#nle-lesson-root[data-step="2"] .nle-lesson-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:24;margin:-14px -14px 12px;padding:12px 14px 10px;background:rgba(246,247,251,.96);border-bottom:1px solid rgba(220,223,234,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#nle-lesson-root[data-step="2"] .nle-lesson-head h1{margin:4px 0 0;font-size:16px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nle-sentence .nle-en{margin:0}
.nle-known-check{min-height:44px}
.nle-shadow-complete-hint{margin:15px 4px -7px;color:var(--nle-sub);font-size:11.5px;line-height:1.6;text-align:center}

.nle-audio-card.is-loading{box-shadow:0 0 0 3px rgba(255,255,255,.18)}
.nle-play.is-loading{display:grid;place-items:center}
.nle-play.is-loading::before{content:"";width:20px;height:20px;border:2px solid rgba(54,63,155,.22);border-top-color:#363f9b;border-radius:50%;animation:nle-spin .7s linear infinite}
.nle-sentence-audio.is-loading,.nle-target-audio.is-loading{background:var(--nle-soft);border-color:rgba(91,103,241,.32);color:#303a9e;cursor:wait}
.nle-understanding-card.is-audio-loading{border-color:rgba(91,103,241,.34);box-shadow:0 0 0 3px rgba(91,103,241,.06)}
.nle-target-audio{min-height:44px}

.nle-review-feedback button,.nle-review-result-label button{min-width:44px;min-height:44px;padding:6px 4px}
.nle-map-category-head h2{display:block;margin:0;font-size:14px;line-height:1.4}

body.nle-app-page[data-nle-view="home"] .nle-main{padding-bottom:8px}
body.nle-app-page[data-nle-view="home"] .nle-shell{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
body.nle-app-page[data-nle-view="home"] .nle-seo-content{margin-top:12px}

/* =========================================================
   v0.4.14 — verified sticky controls and completion polish
   ========================================================= */
.nle-app.nle-focus-mode{overflow:visible}
.nle-seo-previews summary{display:flex;align-items:center;min-height:44px}
.nle-lesson-step-state.is-complete{background:#eaf8f2;color:#177b57;box-shadow:inset 0 0 0 1px rgba(23,123,87,.16)}

/* =========================================================
   v0.4.15 — consistent type, touch targets and focus order
   ========================================================= */
.nle-seo-content,.nle-modal{font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif}
.nle-modal button{font-family:inherit}
.nle-audio-seek{height:44px;min-height:44px}
.nle-ring span{opacity:1}
.nle-context-row{color:var(--nle-sub)}

/* =========================================================
   v0.4.16 — honest audio gates and long-step orientation
   ========================================================= */
.nle-audio-seek:disabled{opacity:.68;cursor:not-allowed}
.nle-sentence-static{grid-template-columns:28px minmax(0,1fr) auto}
.nle-sentence-index{align-self:start;min-width:36px;border-radius:999px;background:var(--nle-soft);color:var(--nle-brand);padding:4px 7px;text-align:center;font-size:10px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.25}

@media(max-width:560px){
  .nle-level-tabs button{min-height:66px;padding:8px 2px 7px}
  .nle-level-tabs button small{display:block;min-height:24px;margin-top:3px;overflow:visible;text-overflow:clip;white-space:normal;font-size:10px;line-height:1.2}
}

/* =========================================================
   v0.4.17 — habit feedback, clearer audio locks and small screens
   ========================================================= */
.nle-streak-chip{display:none;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border-radius:13px;background:#fff;box-shadow:0 4px 16px rgba(25,32,51,.06)}
.nle-app[data-current-view="home"] .nle-streak-chip{display:flex}
.nle-streak-chip>span:last-child,.nle-streak-chip strong,.nle-streak-chip small{display:block}
.nle-streak-chip strong{font-size:13px;line-height:1.15}
.nle-streak-chip small{margin-top:2px;color:var(--nle-sub);font-size:9.5px;line-height:1.1}
.nle-streak-icon{width:24px;height:24px;display:grid;place-items:center;color:#e56d42;background:#fff1e9;border-radius:9px}
.nle-streak-icon svg{width:16px;height:16px;fill:currentColor}

.nle-audio-lock-hint{display:flex;align-items:flex-start;gap:6px;margin:2px 0 0;color:rgba(255,255,255,.82);font-size:10.5px;line-height:1.5}
.nle-audio-lock-hint[hidden]{display:none!important}

.nle-complete-streak{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px 0;padding:11px 12px;border-radius:14px;background:#fff6ed;color:#7c472f;text-align:left}
.nle-complete-streak>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#ffe8d8;color:#e56d42;flex:0 0 34px}
.nle-complete-streak svg{width:20px;height:20px;fill:currentColor}
.nle-complete-streak b,.nle-complete-streak small{display:block}
.nle-complete-streak b{font-size:12.5px}
.nle-complete-streak small{margin-top:2px;font-size:10.5px;color:#8a5b44}

@media(max-width:360px){
  .nle-main{padding-right:10px;padding-left:10px}
  .nle-hero-card{min-height:196px;padding:18px;gap:10px}
  .nle-hero-copy h1{font-size:22px}
  .nle-course-tagline{font-size:13px!important}
  .nle-ring{width:72px;height:72px;flex-basis:72px}
  .nle-ring:before{width:56px;height:56px}
  .nle-ring strong{font-size:18px}
  .nle-level-tabs{gap:4px}
  .nle-level-tabs button{padding-right:1px;padding-left:1px}
  .nle-level-tabs button small{font-size:9.5px}
  .nle-streak-chip{gap:6px;padding-right:8px;padding-left:8px}
}

/* =========================================================
   v0.5.0 — warm, expressive and age-flexible design system
   ========================================================= */
:root{
  --nle-bg:#f7f5ee;
  --nle-card:#fffdf8;
  --nle-text:#17221e;
  --nle-sub:#64706b;
  --nle-line:#e1e5df;
  --nle-brand:#0b765d;
  --nle-brand-dark:#075a47;
  --nle-ink:#123d33;
  --nle-brand2:#f26b4b;
  --nle-soft:#e2f3eb;
  --nle-mint:#8be0bd;
  --nle-peach:#fff0e8;
  --nle-coral:#f26b4b;
  --nle-warn:#b83f2a;
  --nle-good:#0b765d;
  --nle-shadow:0 12px 32px rgba(18,61,51,.07);
}

html,body.nle-app-page{background:var(--nle-bg)!important}
.nle-app,.nle-seo-content,.nle-modal{
  color:var(--nle-text);
  background:var(--nle-bg);
  font-family:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Noto Sans JP",sans-serif;
}
.nle-app{letter-spacing:.005em}
.nle-topbar{
  background:rgba(247,245,238,.92);
  border-bottom:1px solid rgba(225,229,223,.7);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.nle-brand b{font-size:14px;letter-spacing:-.025em}
.nle-logo{
  position:relative;
  overflow:visible;
  border-radius:12px;
  background:var(--nle-brand);
  box-shadow:0 7px 16px rgba(11,118,93,.18);
}
.nle-logo:after{
  content:"";
  position:absolute;
  top:-3px;
  right:-3px;
  width:10px;
  height:10px;
  border:2px solid var(--nle-bg);
  border-radius:50%;
  background:var(--nle-coral);
}
.nle-mini-progress{
  border:1px solid var(--nle-line);
  background:var(--nle-card);
  box-shadow:none;
}
.nle-mini-progress span{color:var(--nle-brand)}

.nle-hero-card{
  isolation:isolate;
  min-height:232px;
  padding:28px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:30px;
  background:var(--nle-ink);
  box-shadow:0 18px 42px rgba(18,61,51,.16);
}
.nle-hero-card:before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-78px;
  right:-48px;
  width:210px;
  height:210px;
  border-radius:46% 54% 61% 39%;
  background:#1d584b;
  transform:rotate(18deg);
}
.nle-hero-card:after{
  content:"";
  position:absolute;
  z-index:-1;
  right:31px;
  bottom:22px;
  top:auto;
  width:20px;
  height:20px;
  border:0;
  border-radius:7px;
  background:var(--nle-coral);
  transform:rotate(16deg);
}
.nle-hero-copy{max-width:470px}
.nle-hero-kicker{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  color:#b7ead5;
  background:rgba(255,255,255,.06);
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
}
.nle-hero-copy h1{
  margin:13px 0 9px;
  color:#fffdf8;
  font-size:32px;
  line-height:1.2;
  letter-spacing:-.045em;
}
.nle-course-tagline{color:#e2eee9;font-size:16px!important}
.nle-hero-benefits,.nle-hub-benefits{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:17px;
}
.nle-hero-benefits span,.nle-hub-benefits span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  color:#fffdf8;
  background:rgba(255,255,255,.1);
  font-size:10.5px;
  font-weight:800;
}
.nle-hero-benefits span:first-child:before,.nle-hub-benefits span:first-child:before{
  content:"";
  width:6px;
  height:6px;
  margin-right:6px;
  border-radius:50%;
  background:var(--nle-mint);
}
.nle-ring{
  background:conic-gradient(var(--nle-mint) calc(var(--p)*1%),rgba(255,255,255,.14) 0);
  box-shadow:0 0 0 1px rgba(255,255,255,.07);
}
.nle-ring:before{background:var(--nle-ink)}
.nle-ring strong{color:#fffdf8}
.nle-ring span{color:#dcebe5}

.nle-today-card,.nle-page-card,.nle-complete-card{
  border:1px solid var(--nle-line);
  background:var(--nle-card);
  box-shadow:var(--nle-shadow);
}
.nle-today-card{padding:20px;border-radius:24px}
.nle-card-title{font-size:17px;letter-spacing:-.02em}
.nle-time{
  color:var(--nle-brand);
  background:var(--nle-soft);
  font-weight:850;
}
.nle-today-row{border-color:var(--nle-line)}
.nle-dot-review{background:#f2b84b}
.nle-dot-new{background:var(--nle-brand)}
.nle-primary{
  min-height:54px;
  border:1px solid var(--nle-brand-dark);
  border-radius:16px;
  background:var(--nle-brand);
  box-shadow:0 4px 0 var(--nle-brand-dark),0 11px 22px rgba(11,118,93,.13);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.nle-primary:hover{background:#096f58;transform:translateY(-1px)}
.nle-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--nle-brand-dark),0 5px 12px rgba(11,118,93,.12)}
.nle-primary:disabled{border-color:#a8b7b1;background:#a8b7b1;color:#f9fbfa;box-shadow:none}
.nle-secondary{
  min-height:48px;
  border:1px solid #d7ddd9;
  border-radius:15px;
  background:var(--nle-card);
  box-shadow:0 2px 0 #d7ddd9;
  transition:background .15s ease,transform .15s ease,box-shadow .15s ease;
}
.nle-secondary:hover{background:#f7faf8}
.nle-secondary:active{transform:translateY(1px);box-shadow:0 1px 0 #d7ddd9}
.nle-save-status:before{color:var(--nle-brand)}

.nle-stats-grid{gap:12px}
.nle-stat{
  min-height:112px;
  border:1px solid var(--nle-line);
  border-radius:21px;
  background:var(--nle-card);
  box-shadow:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.nle-stat:first-child{background:#eef8f3}
.nle-stat:nth-child(2){background:#fff3ec}
.nle-stat:hover{transform:translateY(-2px);border-color:#cbd8d2;box-shadow:0 10px 24px rgba(18,61,51,.07)}
.nle-stat-icon{
  width:34px;
  height:34px;
  border-radius:11px;
  color:var(--nle-brand);
  background:#d9efe5;
}
.nle-stat:nth-child(2) .nle-stat-icon{color:#ad4933;background:#ffe2d5}
.nle-stat b{font-size:14px}
.nle-stat small{font-size:11.5px;line-height:1.45}

.nle-streak-chip{
  border:1px solid #f3d9cc;
  background:var(--nle-peach);
  box-shadow:none;
}
.nle-streak-icon{color:var(--nle-warn);background:#ffe0d2}
.nle-bottom-nav{
  gap:4px;
  border-top:1px solid var(--nle-line);
  background:rgba(255,253,248,.96);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.nle-bottom-nav button{border-radius:14px;color:#727c78}
.nle-bottom-nav .nle-nav-icon{
  width:38px;
  height:28px;
  border-radius:999px;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.nle-bottom-nav button.is-active{color:var(--nle-brand)}
.nle-bottom-nav button.is-active .nle-nav-icon{background:var(--nle-soft);transform:translateY(-1px)}
.nle-bottom-nav em{top:0;right:22%;background:var(--nle-warn)}

.nle-page-head{padding:12px 4px 5px}
.nle-page-head h1,.nle-page-head h2{color:var(--nle-text);letter-spacing:-.04em}
.nle-back,.nle-exit{
  border:1px solid var(--nle-line);
  background:var(--nle-card);
  box-shadow:none;
}
.nle-exit:hover{background:var(--nle-peach);color:var(--nle-warn)}
.nle-chip{color:var(--nle-brand);background:var(--nle-soft)}
.nle-lesson-step-state{background:#fffdf8;box-shadow:inset 0 0 0 1px var(--nle-line)}
.nle-step{height:7px;background:#dfe5e1}
.nle-step.is-on{background:var(--nle-brand)}
#nle-lesson-root[data-step="2"] .nle-lesson-head{
  background:rgba(247,245,238,.96);
  border-color:var(--nle-line);
}

.nle-audio-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  background:#173f35;
  box-shadow:none;
}
.nle-audio-card:after{
  content:"";
  position:absolute;
  top:-38px;
  right:-34px;
  width:105px;
  height:105px;
  border-radius:36px;
  background:#205246;
  transform:rotate(18deg);
  pointer-events:none;
}
.nle-audio-top,.nle-audio-progress,.nle-audio-lock-hint,.nle-speed-row{position:relative;z-index:1}
.nle-play{
  position:relative;
  z-index:2;
  color:var(--nle-ink);
  background:var(--nle-mint);
  box-shadow:0 7px 18px rgba(0,0,0,.16);
}
.nle-speed{border-color:rgba(255,255,255,.19);background:rgba(255,255,255,.06)}
.nle-speed.is-active{color:var(--nle-ink);background:var(--nle-mint)}
.nle-audio-seek{accent-color:var(--nle-mint)}
.nle-audio-lock-hint{
  align-items:center;
  margin-top:2px;
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:11px;
  color:#dcebe5;
  background:rgba(255,255,255,.055);
}
.nle-lock-icon{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;color:var(--nle-mint)}
.nle-lock-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nle-shadow-player{filter:drop-shadow(0 10px 18px rgba(18,61,51,.15))}
.nle-audio-card.is-playing{box-shadow:0 0 0 3px rgba(139,224,189,.35)}

.nle-instruction{color:#596660}
.nle-scene-context{border:1px solid #cfe7dc;background:var(--nle-soft)}
.nle-sentence{
  border:1px solid var(--nle-line);
  border-radius:20px;
  background:var(--nle-card);
  box-shadow:0 6px 18px rgba(18,61,51,.045);
}
.nle-sentence.is-unclear{border-color:#eab8aa;background:#fff8f4;box-shadow:0 0 0 2px rgba(201,79,53,.07)}
.nle-speaker{
  color:#0b6a54;
  background:#d9efe5;
  box-shadow:inset 0 0 0 1px rgba(11,118,93,.08);
}
.nle-speaker.is-b{color:#a44430;background:#ffe3d7;box-shadow:inset 0 0 0 1px rgba(201,79,53,.08)}
.nle-sentence-index{color:var(--nle-sub);background:#f0f1ec}
.nle-sentence-audio,.nle-target-audio{
  border-color:#cfe3da;
  color:var(--nle-brand);
  background:#f2faf6;
}
.nle-sentence-audio.is-playing,.nle-target-audio.is-playing{
  border-color:#9fcdb9;
  color:var(--nle-brand-dark);
  background:var(--nle-soft);
}
.nle-understanding-card.is-audio-playing,.nle-understanding-card.is-audio-loading{
  border-color:#9fcdb9;
  box-shadow:0 0 0 3px rgba(11,118,93,.08);
}
.nle-understanding-card.is-known{
  border-color:#9fcdb9;
  background:#f1faf5;
  box-shadow:0 0 0 2px rgba(11,118,93,.055);
}
.nle-known-check{color:var(--nle-sub)}
.nle-known-check .nle-check-mark{border-color:#b8c6c0;border-radius:7px}
.nle-understanding-card.is-known .nle-known-check{color:var(--nle-brand)}
.nle-understanding-card.is-known .nle-check-mark{border-color:var(--nle-brand);background:var(--nle-brand)}
.nle-explain-line{color:#53605b}
.nle-explain-line b{color:var(--nle-text)}
.nle-vocab-box{background:#f2f3ef}
.nle-inline-term{color:var(--nle-brand-dark);background:var(--nle-soft)}
.nle-point-example-label{color:#9d402e;background:#ffe6da}
.nle-note-box{color:#6e5220;background:#fff4d9}

.nle-shadow-script:not([hidden]){border-color:var(--nle-line);background:var(--nle-card)}
.nle-shadow-row{border-color:var(--nle-line)!important;background:var(--nle-card)}
.nle-shadow-row.is-playing{background:#eaf7f1;box-shadow:inset 4px 0 0 var(--nle-brand)}
.nle-shadow-row.is-playing .nle-en{color:var(--nle-brand-dark)}

.nle-review-answer button{min-height:52px;border:1px solid transparent}
.nle-understood{border-color:#b8ddcc!important;color:#086049;background:#e4f6ed}
.nle-still{border-color:#f0c5b8!important;color:#a4402c;background:#fff0ea}
.nle-review-speak-prompt{color:var(--nle-brand-dark);background:var(--nle-soft)}
.nle-review-feedback.is-success{color:#086049;background:#e4f6ed}
.nle-review-result-label,.nle-review-stage{color:var(--nle-brand)}
.nle-context{border-color:var(--nle-line);background:var(--nle-card)}
.nle-context-row.is-target{background:var(--nle-soft)}

.nle-level-tabs button{
  border-color:var(--nle-line);
  color:var(--nle-sub);
  background:var(--nle-card);
  box-shadow:none;
}
.nle-level-tabs button.is-active{
  border-color:var(--nle-ink);
  color:#fff;
  background:var(--nle-ink);
  box-shadow:0 7px 17px rgba(18,61,51,.14);
}
.nle-map-level-summary,.nle-map-category,.nle-map-level{
  border:1px solid var(--nle-line);
  background:var(--nle-card);
  box-shadow:none;
}
.nle-map-level-summary>strong,.nle-map-category-head>span,.nle-level-pct{color:var(--nle-brand)}
.nle-bar{height:8px;background:#dfe7e2}
.nle-bar i{background:var(--nle-brand)}
.nle-scene-btn{
  border-color:var(--nle-line);
  background:var(--nle-card);
  transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.nle-scene-btn:not([disabled]):hover{border-color:#b8cec4;background:#f6fbf8;transform:translateY(-1px)}
.nle-scene-btn[disabled]{color:#7d8682;background:#f0f0eb}
.nle-scene-no{color:var(--nle-brand);background:var(--nle-soft)}
.nle-scene-pct,.nle-catalog-lesson>summary span,.nle-catalog-sentence details summary{color:var(--nle-brand)}
.nle-catalog-lesson{border:1px solid var(--nle-line);background:var(--nle-card);box-shadow:none}
.nle-empty{border:1px dashed #cad3ce;background:rgba(255,253,248,.78)}

.nle-course-flow>div{border:1px solid var(--nle-line);background:#f4f6f2}
.nle-course-flow>div:nth-child(1){background:#eef8f3}
.nle-course-flow>div:nth-child(2){background:#fff3ec}
.nle-course-flow>div:nth-child(3){background:#fff7df}
.nle-course-flow span{background:var(--nle-brand)}
.nle-course-flow>div:nth-child(2) span{background:var(--nle-warn)}
.nle-course-flow>div:nth-child(3) span{color:#5a4315;background:#f2c151}
.nle-course-row{border-color:var(--nle-line)}

.nle-complete-card{border-radius:25px}
.nle-complete-mark{
  width:58px;
  height:58px;
  border-radius:19px;
  color:#fff;
  background:var(--nle-brand);
  box-shadow:0 8px 18px rgba(11,118,93,.17);
  transform:rotate(-4deg);
}
.nle-complete-summary>div{border:1px solid var(--nle-line);background:#f5f6f2}
.nle-complete-summary>div:first-child{background:#eef8f3}
.nle-complete-summary>div:last-child{background:#fff3ec}
.nle-complete-summary strong{color:var(--nle-brand)}
.nle-complete-streak{border:1px solid #f1d8cb;background:var(--nle-peach)}
.nle-complete-streak>span{color:var(--nle-warn);background:#ffe0d2}
.nle-toast{background:var(--nle-ink);box-shadow:0 9px 25px rgba(18,61,51,.22)}
.nle-loading span{border-color:#cdd9d3;border-top-color:var(--nle-brand)}
.nle-play.is-loading::before{border-color:rgba(18,61,51,.2);border-top-color:var(--nle-ink)}
.nle-sentence-audio.is-loading,.nle-target-audio.is-loading{border-color:#9fcdb9;color:var(--nle-brand-dark);background:var(--nle-soft)}

.nle-modal-backdrop{background:rgba(14,35,29,.48)}
.nle-modal{border:1px solid var(--nle-line);border-radius:24px;background:var(--nle-card)}
.nle-modal-confirm{background:var(--nle-warn);border-color:#9e3825;box-shadow:0 4px 0 #9e3825,0 10px 20px rgba(158,56,37,.13)}

.nle-seo-content{color:var(--nle-text)}
.nle-seo-levels>div,.nle-seo-previews details,.nle-seo-details{
  border-color:var(--nle-line);
  background:var(--nle-card);
  box-shadow:none;
}
.nle-seo-levels span,.nle-seo-previews p span{color:var(--nle-sub)}
.nle-seo-details>summary{color:var(--nle-brand)}

.nle-hub{max-width:920px;padding:18px}
.nle-hub-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:42px 34px!important;
  border:1px solid rgba(255,255,255,.07);
  border-radius:32px;
  background:var(--nle-ink);
  box-shadow:0 20px 48px rgba(18,61,51,.16);
  text-align:left!important;
}
.nle-hub-hero:before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-105px;
  right:-70px;
  width:265px;
  height:265px;
  border-radius:42% 58% 57% 43%;
  background:#1d584b;
  transform:rotate(17deg);
}
.nle-hub-hero:after{
  content:"";
  position:absolute;
  right:48px;
  bottom:42px;
  width:25px;
  height:25px;
  border-radius:8px;
  background:var(--nle-coral);
  transform:rotate(14deg);
}
.nle-hub-hero h1{color:#fffdf8;font-size:44px!important}
.nle-hub-hero h2{color:#bdebd8;margin-bottom:17px!important}
.nle-hub-hero p{max-width:520px}
.nle-hub-grid{gap:16px;margin-top:18px}
.nle-hub-card{
  position:relative;
  min-height:170px;
  padding:23px 58px 22px 22px;
  border:1px solid var(--nle-line);
  border-radius:24px;
  color:var(--nle-text)!important;
  background:var(--nle-card);
  box-shadow:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.nle-hub-card:before{
  content:"";
  position:absolute;
  top:0;
  left:22px;
  width:52px;
  height:5px;
  border-radius:0 0 999px 999px;
  background:var(--nle-coral);
}
.nle-hub-card:hover{border-color:#b8cec4;box-shadow:0 13px 30px rgba(18,61,51,.08);transform:translateY(-2px)}
.nle-hub-card-label{display:block!important;margin:10px 0 24px!important;color:var(--nle-brand)!important;font-size:9px!important;font-weight:900;letter-spacing:.13em}
.nle-hub-card strong{font-size:19px}
.nle-hub-card span:not(.nle-hub-card-label){color:var(--nle-sub);font-size:13px;line-height:1.6}
.nle-hub-card i{
  position:absolute;
  right:20px;
  bottom:20px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:var(--nle-brand);
  font-style:normal;
  font-weight:900;
}

.nle-app button:focus-visible,
.nle-app input:focus-visible,
.nle-seo-content summary:focus-visible,
.nle-hub a:focus-visible,
.nle-modal button:focus-visible,
.nle-page-head h1:focus-visible,
.nle-lesson-head h1:focus-visible,
.nle-step-label:focus-visible,
.nle-complete-card h2:focus-visible{
  outline:3px solid var(--nle-ink);
  outline-offset:3px;
}
.nle-audio-card button:focus-visible,.nle-audio-card input:focus-visible{outline-color:var(--nle-mint)}

@media(max-width:560px){
  .nle-topbar{padding-right:12px;padding-left:12px}
  .nle-main{padding-right:11px;padding-left:11px}
  .nle-hero-card{min-height:222px;padding:23px;border-radius:26px}
  .nle-hero-copy h1{font-size:27px}
  .nle-course-tagline{font-size:14.5px!important}
  .nle-hero-benefits{margin-top:14px}
  .nle-today-card{padding:17px}
  .nle-stat{min-height:108px;padding:14px}
  .nle-bottom-nav{padding-right:9px;padding-left:9px}
  .nle-hub{padding:11px}
  .nle-hub-hero{padding:32px 23px!important;border-radius:27px}
  .nle-hub-hero h1{font-size:36px!important}
  .nle-hub-hero:after{right:28px;bottom:27px;width:19px;height:19px}
  .nle-hub-card{min-height:154px}
}

@media(max-width:390px){
  .nle-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}
  .nle-hero-copy h1{font-size:24px}
  .nle-hero-kicker{font-size:8px;letter-spacing:.1em}
  .nle-hero-benefits{gap:5px}
  .nle-hero-benefits span{padding-right:8px;padding-left:8px;font-size:9.5px}
  .nle-ring{width:82px;height:82px;flex-basis:82px}
  .nle-ring:before{width:63px;height:63px}
  .nle-ring strong{font-size:20px}
  .nle-ring span{font-size:8px}
  .nle-hero-card:after{right:19px;bottom:16px;width:15px;height:15px}
  .nle-card-title{font-size:16px}
  .nle-stats-grid{gap:9px}
}

@media(max-width:360px){
  .nle-hero-card{min-height:210px;padding:19px;gap:7px}
  .nle-hero-copy h1{font-size:22px}
  .nle-course-tagline{font-size:13px!important}
  .nle-ring{width:74px;height:74px;flex-basis:74px}
  .nle-ring:before{width:57px;height:57px}
  .nle-ring strong{font-size:18px}
  .nle-hero-benefits span{font-size:9px}
  .nle-streak-chip{padding-right:7px;padding-left:7px}
  .nle-streak-chip strong{font-size:12px}
}

/* =========================================================
   v0.6.0 — Logical Memory Route / youth-first product UI
   ========================================================= */
:root{
  --nle-bg:#f6f5f1;
  --nle-card:#ffffff;
  --nle-text:#24243b;
  --nle-sub:#696b7d;
  --nle-line:#dfdee8;
  --nle-brand:#6656d9;
  --nle-brand-dark:#4d3fba;
  --nle-ink:#262842;
  --nle-brand2:#ff705d;
  --nle-soft:#ebe8ff;
  --nle-lilac:#b9adff;
  --nle-lime:#cbef62;
  --nle-mint:#70d4b1;
  --nle-peach:#fff0eb;
  --nle-coral:#ff705d;
  --nle-yellow:#f7cf67;
  --nle-warn:#bd493a;
  --nle-good:#27785f;
  --nle-shadow:0 14px 34px rgba(38,40,66,.09);
}

html,body.nle-app-page{background:var(--nle-bg)!important}
.nle-app,.nle-seo-content,.nle-modal{color:var(--nle-text);background:var(--nle-bg)}
.nle-app{letter-spacing:0;border-radius:28px}
.nle-shell{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.nle-main{padding-top:10px}
.nle-topbar{
  height:auto;
  min-height:66px;
  padding:calc(9px + env(safe-area-inset-top,0px)) 16px 9px;
  border-bottom:0;
  background:rgba(246,245,241,.94);
  box-shadow:0 1px 0 rgba(38,40,66,.07);
}
.nle-brand{gap:9px}
.nle-brand b{color:var(--nle-ink);font-size:14px;letter-spacing:-.03em}
.nle-brand small{color:var(--nle-sub)}
.nle-logo{
  position:relative;
  width:40px;
  height:40px;
  overflow:visible;
  border-radius:14px 14px 14px 6px;
  color:#fff;
  background:var(--nle-brand);
  box-shadow:0 5px 0 var(--nle-brand-dark),0 10px 20px rgba(102,86,217,.16);
}
.nle-logo:before{
  content:"";
  position:absolute;
  right:-2px;
  bottom:6px;
  width:17px;
  height:2px;
  border-radius:999px;
  background:rgba(255,255,255,.6);
  transform:rotate(-37deg);
  transform-origin:right center;
}
.nle-logo:after{
  content:"";
  position:absolute;
  top:-3px;
  right:-3px;
  width:8px;
  height:8px;
  border:2px solid var(--nle-bg);
  border-radius:50%;
  background:var(--nle-lime);
  box-shadow:-13px 17px 0 -1px var(--nle-coral),-1px 29px 0 -1px var(--nle-mint);
}
.nle-streak-chip{
  min-height:42px;
  border:1px solid #f0d9d2;
  border-radius:14px;
  background:var(--nle-peach);
}
.nle-streak-icon{color:var(--nle-warn);background:#ffe0d7}
.nle-mini-progress{border-color:var(--nle-line);border-radius:14px;background:var(--nle-card)}
.nle-mini-progress span{color:var(--nle-brand)}

/* One dominant action: the learning method itself becomes the home identity. */
.nle-mission-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:21px;
  border:1px solid #363853;
  border-radius:31px;
  color:#fff;
  background:var(--nle-ink);
  box-shadow:0 18px 42px rgba(38,40,66,.18);
}
.nle-mission-card:before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-79px;
  right:-54px;
  width:195px;
  height:195px;
  border-radius:42% 58% 35% 65%;
  background:#393b5b;
  transform:rotate(21deg);
}
.nle-mission-card:after{
  content:"";
  position:absolute;
  z-index:-1;
  top:22px;
  right:128px;
  width:17px;
  height:17px;
  border-radius:6px 10px 6px 10px;
  background:var(--nle-coral);
  transform:rotate(18deg);
}
.nle-mission-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:2px 4px 0}
.nle-mission-head>*{min-width:0}
.nle-mission-head .nle-hero-copy{max-width:480px}
.nle-hero-kicker{
  min-height:24px;
  border-color:rgba(255,255,255,.15);
  color:#d4ceff;
  background:rgba(255,255,255,.07);
}
.nle-mission-head h1{
  margin:11px 0 7px;
  color:#fff;
  font-size:28px;
  line-height:1.18;
  letter-spacing:-.045em;
}
.nle-mission-head .nle-course-tagline{margin:0;color:#d9d9e6;font-size:14px!important;line-height:1.55}
.nle-mastery-core{position:relative;width:100px;height:100px;flex:0 0 100px;display:grid;place-items:center}
.nle-mastery-core .nle-ring{
  width:88px;
  height:88px;
  flex-basis:88px;
  background:conic-gradient(var(--nle-lime) calc(var(--p)*1%),rgba(255,255,255,.13) 0);
  box-shadow:0 0 0 1px rgba(255,255,255,.08);
}
.nle-mastery-core .nle-ring:before{width:68px;height:68px;background:var(--nle-ink)}
.nle-mastery-core .nle-ring strong{color:#fff;font-size:21px}
.nle-mastery-core .nle-ring span{color:#bfc0d0;font-size:8.5px}
.nle-core-node{position:absolute;width:10px;height:10px;border:2px solid var(--nle-ink);border-radius:50%}
.nle-core-node.is-one{top:1px;right:19px;background:var(--nle-lime)}
.nle-core-node.is-two{right:0;bottom:26px;background:var(--nle-coral)}
.nle-core-node.is-three{bottom:1px;left:22px;background:var(--nle-mint)}

.nle-memory-route{
  display:grid;
  grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr);
  align-items:center;
  gap:4px;
  margin:19px 0 14px;
  padding:12px 11px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:21px;
  background:#31334f;
}
.nle-memory-route>i{height:3px;border-radius:999px;background:#54566e}
.nle-route-step{min-width:0;text-align:center;color:#aaaabd}
.nle-route-step>span{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  margin:0 auto 5px;
  border:2px solid #5c5e75;
  border-radius:11px;
  color:#b8b9ca;
  background:#3c3e59;
  font-size:11px;
  font-weight:950;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.nle-route-step b,.nle-route-step small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nle-route-step b{font-size:11px;line-height:1.25}
.nle-route-step small{margin-top:2px;color:#b1b2c1;font-size:8.5px}
.nle-route-step.is-current{color:#fff}
.nle-route-step.is-current>span{border-color:var(--nle-lime);color:var(--nle-ink);background:var(--nle-lime);transform:translateY(-2px) rotate(-3deg);animation:nle-route-node-in .32s cubic-bezier(.2,.9,.25,1.25) both}
.nle-route-step.is-current small{color:#d5d5e1}
.nle-route-step.is-done{color:#fff}
.nle-route-step.is-done>span{border-color:var(--nle-mint);color:var(--nle-ink);background:var(--nle-mint)}
.nle-route-step.is-done+ i{background:var(--nle-mint)}

.nle-mission-action{
  padding:16px 16px 13px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:22px;
  color:var(--nle-text);
  background:#fff;
  box-shadow:0 9px 0 rgba(13,14,29,.16);
}
.nle-mission-action .nle-card-title{margin-bottom:2px;font-size:16px}
.nle-mission-action .nle-card-title>span:first-child{display:flex;align-items:center;gap:8px}
.nle-mission-spark{width:11px;height:11px;border-radius:4px 7px 4px 7px;background:var(--nle-coral);transform:rotate(15deg)}
.nle-mission-note{margin:3px 0 2px;color:var(--nle-sub);font-size:10.5px;line-height:1.45}
.nle-time{color:var(--nle-brand);background:var(--nle-soft)}
.nle-mission-action .nle-today-row{padding:9px 0}
.nle-mission-action .nle-today-row:last-of-type{border-bottom:0}
.nle-mission-action .nle-today-row b{font-size:13.5px;line-height:1.4}
.nle-mission-action .nle-today-row small{font-size:10.5px;line-height:1.4}
.nle-dot-review{background:var(--nle-yellow)}
.nle-dot-new{background:var(--nle-brand)}
.nle-primary{
  min-height:53px;
  border-color:var(--nle-brand-dark);
  border-radius:17px;
  background:var(--nle-brand);
  box-shadow:0 4px 0 var(--nle-brand-dark),0 11px 22px rgba(102,86,217,.17);
}
.nle-primary:hover{background:#5e4fd1}
.nle-primary:active{box-shadow:0 1px 0 var(--nle-brand-dark),0 5px 12px rgba(102,86,217,.14)}
.nle-primary:disabled{border-color:#a9a8b5;background:#a9a8b5}
.nle-save-status:before{color:var(--nle-brand)}

.nle-quick-actions{gap:10px;margin-top:11px}
.nle-quick-actions .nle-stat{
  min-height:82px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-content:center;
  column-gap:10px;
  padding:12px 13px;
  border-color:var(--nle-line);
  border-radius:20px;
  box-shadow:none;
}
.nle-quick-actions .nle-stat:first-child{background:#efedff}
.nle-quick-actions .nle-stat:nth-child(2){background:var(--nle-peach)}
.nle-quick-actions .nle-stat-icon{
  grid-row:1/3;
  align-self:center;
  width:38px;
  height:38px;
  margin:0!important;
  border-radius:13px;
  color:var(--nle-brand);
  background:#ded9ff;
}
.nle-quick-actions .nle-stat:nth-child(2) .nle-stat-icon{color:var(--nle-warn);background:#ffdcd3}
.nle-quick-actions .nle-stat b{align-self:end;font-size:13px}
.nle-quick-actions .nle-stat small{align-self:start;margin-top:2px;font-size:10px;line-height:1.3}
.nle-quick-actions .nle-stat:hover{border-color:#c7c2ec;box-shadow:0 8px 20px rgba(38,40,66,.07)}

.nle-bottom-nav{
  height:calc(72px + env(safe-area-inset-bottom,0px));
  gap:4px;
  border-color:#dddce5;
  background:rgba(255,255,255,.96);
}
.nle-bottom-nav button{border-radius:15px;color:var(--nle-sub)}
.nle-bottom-nav button.is-active{color:var(--nle-brand);background:#f1efff}
.nle-bottom-nav button.is-active .nle-nav-icon{color:var(--nle-brand);background:transparent;transform:translateY(-1px)}
.nle-bottom-nav em{background:var(--nle-coral)}
body.nle-app-page[data-nle-view="home"] .nle-shell{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}

/* The same three-node route remains visible inside every lesson. */
.nle-page-head h1,.nle-page-head h2,.nle-lesson-head h1{color:var(--nle-ink)}
.nle-chip{color:var(--nle-brand);background:var(--nle-soft)}
.nle-lesson-step-state{color:var(--nle-brand);background:#f5f3ff;box-shadow:inset 0 0 0 1px #dad5ff}
#nle-lesson-root[data-step="2"] .nle-lesson-head{background:rgba(246,245,241,.96);border-color:var(--nle-line)}
.nle-back,.nle-exit{border-color:var(--nle-line);background:#fff}
.nle-exit:hover{color:var(--nle-warn);background:var(--nle-peach)}
.nle-stepper{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin:9px 0 18px;
  padding:7px 4px;
}
.nle-step{
  position:relative;
  height:auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  color:#8a8b9b;
  background:transparent;
}
.nle-step:not(:last-child):after{
  content:"";
  position:absolute;
  z-index:0;
  top:14px;
  left:calc(50% + 18px);
  width:calc(100% - 36px);
  height:3px;
  border-radius:999px;
  background:#d8d7e1;
}
.nle-step.is-on:not(.is-current):after{background:var(--nle-brand)}
.nle-step i{
  position:relative;
  z-index:1;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:2px solid #d3d2dc;
  border-radius:11px;
  color:#7b7c8d;
  background:#f0eff3;
  font-size:10px;
  font-style:normal;
  font-weight:950;
}
.nle-step small{font-size:9.5px;font-weight:850;line-height:1.2}
.nle-step.is-on{color:var(--nle-brand);background:transparent}
.nle-step.is-on i{border-color:var(--nle-brand);color:#fff;background:var(--nle-brand)}
.nle-step.is-current i{border-color:var(--nle-lime);color:var(--nle-ink);background:var(--nle-lime);box-shadow:0 0 0 4px #eef7ce;transform:rotate(-3deg)}
.nle-step.is-current small{color:var(--nle-ink)}
.nle-step-label{margin:0 0 9px;color:var(--nle-ink);font-size:21px;line-height:1.35;letter-spacing:-.035em}
.nle-page-card,.nle-complete-card{border-color:var(--nle-line);background:#fff;box-shadow:var(--nle-shadow)}
.nle-secondary{border-color:#d7d6df;background:#fff;box-shadow:0 2px 0 #d7d6df}
.nle-secondary:hover{background:#f8f7fc}
.nle-instruction{color:#5e6072}
.nle-scene-context{border-color:#d8d3ff;background:var(--nle-soft)}
.nle-scene-context b{color:var(--nle-brand)}

.nle-audio-card{
  border-color:#3c3e59;
  border-radius:23px;
  background:var(--nle-ink);
}
.nle-audio-card:after{top:-44px;right:-34px;border-radius:35% 65% 51% 49%;background:#3a3c5a}
.nle-play{color:var(--nle-ink);background:var(--nle-lime);box-shadow:0 5px 0 #a8c83e,0 10px 18px rgba(0,0,0,.16)}
.nle-speed.is-active{color:var(--nle-ink);background:var(--nle-lime)}
.nle-audio-seek{accent-color:var(--nle-lime)}
.nle-lock-icon{color:var(--nle-lime)}
.nle-audio-card.is-playing{box-shadow:0 0 0 3px rgba(203,239,98,.35)}
.nle-shadow-player{filter:drop-shadow(0 10px 18px rgba(38,40,66,.15))}

.nle-sentence{border-color:var(--nle-line);border-radius:20px;background:#fff;box-shadow:0 6px 18px rgba(38,40,66,.045)}
.nle-speaker{color:#5547be;background:#e6e2ff;box-shadow:inset 0 0 0 1px rgba(102,86,217,.1)}
.nle-speaker.is-b{color:#a84234;background:#ffe1d9}
.nle-sentence-index{color:var(--nle-sub);background:#f0eff3}
.nle-sentence-audio,.nle-target-audio{border-color:#d2ccff;color:var(--nle-brand);background:#f4f2ff}
.nle-sentence-audio.is-playing,.nle-target-audio.is-playing{border-color:#aaa0f4;color:var(--nle-brand-dark);background:var(--nle-soft)}
.nle-understanding-card.is-audio-playing,.nle-understanding-card.is-audio-loading{border-color:#afa6ec;box-shadow:0 0 0 3px rgba(102,86,217,.09)}
.nle-understanding-card.is-known{border-color:#b6d667;background:#f7fce9;box-shadow:0 0 0 2px rgba(164,198,67,.09)}
.nle-understanding-card.is-known .nle-known-check{color:#587013}
.nle-understanding-card.is-known .nle-check-mark{border-color:#93b72e;color:var(--nle-ink);background:var(--nle-lime)}
.nle-inline-term{color:var(--nle-brand-dark);background:var(--nle-soft)}
.nle-point-example-label{color:#9f4033;background:#ffe4dc}
.nle-shadow-row.is-playing{background:#f0edff;box-shadow:inset 4px 0 0 var(--nle-brand)}
.nle-shadow-row.is-playing .nle-en{color:var(--nle-brand-dark)}
.nle-understood{border-color:#b9e0d0!important;color:#256d58;background:#e7f7f0}
.nle-still{border-color:#f0c4b9!important;color:#a54133;background:var(--nle-peach)}
.nle-review-speak-prompt{color:var(--nle-brand-dark);background:var(--nle-soft)}
.nle-review-feedback.is-success{color:#256d58;background:#e7f7f0}
.nle-review-result-label,.nle-review-stage{color:var(--nle-brand)}
.nle-context-row.is-target{background:var(--nle-soft)}

/* Map as a guided journey instead of a table of dashboard rows. */
.nle-level-tabs button{border-color:var(--nle-line);color:var(--nle-sub);background:#fff}
.nle-level-tabs button.is-active{border-color:var(--nle-brand);color:#fff;background:var(--nle-brand);box-shadow:0 4px 0 var(--nle-brand-dark),0 9px 18px rgba(102,86,217,.14)}
.nle-map-level-summary{border-color:#dcd7ff;background:#f1efff}
.nle-map-level-summary>strong,.nle-map-category-head>span,.nle-level-pct{color:var(--nle-brand)}
.nle-bar{height:8px;background:#dfdde8}
.nle-bar i{background:var(--nle-brand)}
.nle-map-category{padding:16px 14px 15px;border-color:var(--nle-line);border-radius:24px;background:#fff}
.nle-map-category-head{align-items:center;margin-bottom:13px;padding:0 3px}
.nle-map-category-head h2{color:var(--nle-ink);font-size:15px}
.nle-map-category-head>span{min-width:42px;padding:5px 7px;border-radius:999px;text-align:center;background:var(--nle-soft);font-size:11px}
.nle-map-scenes{position:relative;display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
.nle-map-scenes:before{content:"";position:absolute;z-index:0;top:26px;bottom:26px;left:27px;width:3px;border-radius:999px;background:#e1e0e9}
.nle-scene-btn{
  position:relative;
  z-index:1;
  min-height:76px;
  padding:10px 11px 10px 8px!important;
  border-color:transparent;
  border-radius:19px;
  background:#faf9fc;
  box-shadow:none;
}
.nle-scene-btn:not([disabled]):hover{border-color:#cbc5f3;background:#f7f5ff;transform:translateY(-1px)}
.nle-scene-main{grid-template-columns:50px minmax(0,1fr);gap:11px;align-items:center}
.nle-scene-no{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  align-content:center;
  padding:0;
  border:3px solid #fff;
  border-radius:18px;
  color:#626476;
  background:#e9e8ee;
  box-shadow:0 0 0 1px #d9d8e0;
  font-size:13px;
  line-height:1;
}
.nle-scene-no small{display:block;margin:0 0 3px;color:inherit;font-size:6.5px;letter-spacing:.07em;line-height:1}
.nle-scene-main b{color:var(--nle-ink);font-size:13.5px}
.nle-scene-main small{max-width:430px;color:var(--nle-sub);font-size:11px}
.nle-scene-main .nle-scene-no small{display:block;max-width:none;margin:0 0 3px;color:inherit;font-size:6.5px;line-height:1;letter-spacing:.07em;white-space:nowrap;-webkit-line-clamp:unset}
.nle-scene-status strong{color:var(--nle-ink)}
.nle-scene-btn.is-current{border-color:#bcb4f5;background:#efedff;box-shadow:0 7px 18px rgba(102,86,217,.09)}
.nle-scene-btn.is-current .nle-scene-no{border-color:#fff;color:#fff;background:var(--nle-brand);box-shadow:0 0 0 4px #ded9ff,0 4px 0 var(--nle-brand-dark);transform:rotate(-2deg)}
.nle-scene-btn.is-current .nle-scene-status small,.nle-scene-btn.is-current .nle-scene-status strong{color:var(--nle-brand-dark)}
.nle-scene-btn.is-completed{background:#f8fbeF}
.nle-scene-btn.is-completed .nle-scene-no{color:var(--nle-ink);background:var(--nle-lime);box-shadow:0 0 0 1px #b5d34f}
.nle-scene-btn[disabled]{opacity:1}
.nle-scene-btn.is-locked{color:var(--nle-sub);background:#f1f0f2}
.nle-scene-btn.is-locked .nle-scene-no{color:#676979;background:#e5e4e7}

.nle-course-flow{position:relative;gap:10px}
.nle-course-flow>div{position:relative;padding:15px 10px;border-color:var(--nle-line);border-radius:18px;background:#f3f1ff}
.nle-course-flow>div:nth-child(1){background:#f0edff}
.nle-course-flow>div:nth-child(2){background:#fff0eb}
.nle-course-flow>div:nth-child(3){background:#f4fadf}
.nle-course-flow span{background:var(--nle-brand)}
.nle-course-flow>div:nth-child(2) span{background:var(--nle-coral)}
.nle-course-flow>div:nth-child(3) span{color:var(--nle-ink);background:var(--nle-lime)}

.nle-complete-card{border-radius:27px}
.nle-complete-mark{color:#fff;background:var(--nle-brand);box-shadow:0 5px 0 var(--nle-brand-dark),0 10px 20px rgba(102,86,217,.17)}
.nle-complete-route,.nle-hub-route{
  display:grid;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr);
  align-items:center;
  gap:3px;
}
.nle-complete-route{margin:17px 0 15px;padding:13px 9px;border-radius:19px;background:#f2f0ff}
.nle-complete-route>i,.nle-hub-route>i{height:3px;border-radius:999px;background:var(--nle-mint)}
.nle-complete-route>div{text-align:center}
.nle-complete-route span{width:29px;height:29px;display:grid;place-items:center;margin:0 auto 5px;border-radius:10px;color:var(--nle-ink);background:var(--nle-lime);font-size:11px;font-weight:950}
.nle-complete-route b{font-size:10px}
.nle-complete-summary>div{border-color:var(--nle-line);background:#f5f4fa}
.nle-complete-summary>div:first-child{background:#f0edff}
.nle-complete-summary>div:last-child{background:var(--nle-peach)}
.nle-complete-summary strong{color:var(--nle-brand)}
.nle-complete-streak{border-color:#f0d8d1;background:var(--nle-peach)}
.nle-toast{background:var(--nle-ink);box-shadow:0 9px 25px rgba(38,40,66,.22)}
.nle-loading span{border-color:#d8d6e2;border-top-color:var(--nle-brand)}
.nle-play.is-loading::before{border-color:rgba(38,40,66,.2);border-top-color:var(--nle-ink)}
.nle-sentence-audio.is-loading,.nle-target-audio.is-loading{border-color:#aaa0f4;color:var(--nle-brand-dark);background:var(--nle-soft)}
.nle-modal-backdrop{background:rgba(24,25,43,.5)}
.nle-modal-confirm{background:var(--nle-warn);border-color:#94382e;box-shadow:0 4px 0 #94382e,0 10px 20px rgba(148,56,46,.14)}

/* Course hub: same route language, without copying another app's mascot. */
.nle-hub{max-width:920px;padding:18px}
.nle-hub-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,310px);
  align-items:center;
  gap:35px;
  padding:39px 35px!important;
  border-color:#363853;
  background:var(--nle-ink);
  box-shadow:0 19px 44px rgba(38,40,66,.18);
}
.nle-hub-hero:before{top:-116px;right:-72px;background:#3a3c5a}
.nle-hub-hero:after{right:auto;bottom:32px;left:51%;width:20px;height:20px;background:var(--nle-coral)}
.nle-hub-hero h1{color:#fff;font-size:44px!important}
.nle-hub-hero h2{color:#d3ceff!important}
.nle-hub-copy p{color:#d9d9e6!important}
.nle-hub-route{position:relative;padding:20px 13px;border:1px solid rgba(255,255,255,.1);border-radius:24px;background:#31334f}
.nle-hub-route>div{text-align:center}
.nle-hub-route span{width:38px;height:38px;display:grid;place-items:center;margin:0 auto 7px;border-radius:13px;color:var(--nle-ink);background:var(--nle-lime);font-size:12px;font-weight:950}
.nle-hub-route>div:nth-of-type(2) span{color:#fff;background:var(--nle-coral)}
.nle-hub-route>div:nth-of-type(3) span{background:var(--nle-mint)}
.nle-hub-route b{color:#fff;font-size:11px}
.nle-hub-card{border-color:var(--nle-line);border-radius:25px;color:var(--nle-text)!important;background:#fff}
.nle-hub-card:before{height:6px;background:var(--nle-coral)}
.nle-hub-card-label{color:var(--nle-brand)!important}
.nle-hub-card i{background:var(--nle-brand);box-shadow:0 3px 0 var(--nle-brand-dark)}
.nle-hub-card:hover{border-color:#c7c2ec;box-shadow:0 13px 30px rgba(38,40,66,.08)}
.nle-seo-details>summary,.nle-catalog-lesson>summary span,.nle-catalog-sentence details summary{color:var(--nle-brand)}

.nle-app button:focus-visible,.nle-app input:focus-visible,.nle-seo-content summary:focus-visible,.nle-hub a:focus-visible,.nle-modal button:focus-visible,.nle-page-head h1:focus-visible,.nle-lesson-head h1:focus-visible,.nle-step-label:focus-visible,.nle-complete-card h2:focus-visible{outline-color:var(--nle-brand)}
.nle-audio-card button:focus-visible,.nle-audio-card input:focus-visible{outline-color:var(--nle-lime)}

@keyframes nle-route-node-in{
  0%{transform:translateY(1px) rotate(0) scale(.82)}
  70%{transform:translateY(-3px) rotate(-4deg) scale(1.08)}
  100%{transform:translateY(-2px) rotate(-3deg) scale(1)}
}

@media(max-width:560px){
  .nle-app{border-radius:0}
  .nle-topbar{padding-right:11px;padding-left:11px}
  .nle-main{padding:7px 10px 24px}
  .nle-mission-card{padding:17px;border-radius:27px}
  .nle-mission-card:after{right:109px}
  .nle-mission-head{gap:10px;padding-right:0;padding-left:1px}
  .nle-mission-head h1{font-size:24px}
  .nle-mission-head .nle-course-tagline{font-size:13px!important}
  .nle-mastery-core{width:88px;height:88px;flex-basis:88px}
  .nle-mastery-core .nle-ring{width:78px;height:78px;flex-basis:78px}
  .nle-mastery-core .nle-ring:before{width:60px;height:60px}
  .nle-mastery-core .nle-ring strong{font-size:19px}
  .nle-memory-route{margin:16px 0 12px;padding:10px 7px;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 14px minmax(0,1fr)}
  .nle-route-step>span{width:29px;height:29px}
  .nle-mission-action{padding:14px 13px 12px}
  .nle-primary{min-height:52px}
  .nle-quick-actions .nle-stat{min-height:78px;padding:10px}
  .nle-scene-main small{max-width:220px}
  .nle-hub{padding:11px}
  .nle-hub-hero{display:block;padding:31px 23px!important}
  .nle-hub-hero h1{font-size:36px!important}
  .nle-hub-route{margin-top:24px}
  .nle-hub-hero:after{right:27px;bottom:27px;left:auto}
}

@media(max-width:390px){
  .nle-brand small{display:none}
  .nle-streak-chip{gap:5px;padding-right:7px;padding-left:7px}
  .nle-streak-chip small{display:none}
  .nle-streak-icon{width:22px;height:22px}
  .nle-mission-card{padding:15px}
  .nle-mission-head{display:grid;grid-template-columns:minmax(0,1fr) 76px}
  .nle-mission-head h1{font-size:21px}
  .nle-hero-kicker{padding-right:7px;padding-left:7px;font-size:7.5px;letter-spacing:.08em}
  .nle-mastery-core{width:76px;height:76px;flex-basis:76px}
  .nle-mastery-core .nle-ring{width:68px;height:68px;flex-basis:68px}
  .nle-mastery-core .nle-ring:before{width:52px;height:52px}
  .nle-mastery-core .nle-ring strong{font-size:17px}
  .nle-mastery-core .nle-ring span{font-size:7px}
  .nle-core-node{width:8px;height:8px}
  .nle-memory-route{grid-template-columns:minmax(0,1fr) 9px minmax(0,1fr) 9px minmax(0,1fr);gap:2px;padding:9px 4px}
  .nle-route-step b{font-size:10px}
  .nle-route-step small{font-size:7.5px}
  .nle-mission-action .nle-card-title{font-size:15px}
  .nle-quick-actions{gap:8px}
  .nle-quick-actions .nle-stat{grid-template-columns:34px minmax(0,1fr);column-gap:7px;padding:9px 8px}
  .nle-quick-actions .nle-stat-icon{width:33px;height:33px}
  .nle-quick-actions .nle-stat b{font-size:11.5px}
  .nle-quick-actions .nle-stat small{font-size:8.5px}
  .nle-step-label{font-size:20px}
  .nle-scene-btn{padding-right:8px!important}
  .nle-scene-main{grid-template-columns:46px minmax(0,1fr);gap:8px}
  .nle-scene-no{width:46px;height:46px;border-radius:16px}
  .nle-scene-main b{font-size:12.5px}
  .nle-scene-main small{max-width:154px;font-size:9.5px}
  .nle-scene-status strong{font-size:11px}
  .nle-scene-status small{font-size:8.5px}
}

@media(max-width:350px){
  .nle-logo{width:37px;height:37px}
  .nle-streak-chip strong{font-size:11px}
  .nle-mission-head h1{font-size:19px}
  .nle-mission-head .nle-course-tagline{font-size:11.5px!important}
  .nle-route-step small{font-size:7px}
  .nle-mission-action{padding-right:11px;padding-left:11px}
  .nle-mission-action .nle-today-row b{font-size:12.5px}
  .nle-quick-actions .nle-stat small{display:none}
  .nle-quick-actions .nle-stat{grid-template-rows:1fr}
  .nle-quick-actions .nle-stat-icon{grid-row:1}
  .nle-quick-actions .nle-stat b{align-self:center}
}

@media(prefers-reduced-motion:reduce){
  .nle-app *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* v0.9.14 — Step 3 audio progress and completion state */
.nle-audio-current-line{
  margin-top:10px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  color:rgba(255,255,255,.92);
  background:rgba(255,255,255,.08);
  font-size:11px;
  line-height:1.5;
  font-weight:750;
}
.nle-audio-complete-status{
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid rgba(255,255,255,.15);
  color:#c9f1dc;
  font-size:11px;
  line-height:1.5;
  font-weight:850;
}
.nle-audio-card.is-complete .nle-audio-complete-status{display:block}
.nle-audio-card.is-complete .nle-audio-segment{color:#c9f1dc}
@media(max-width:390px){
  .nle-audio-current-line{font-size:10.5px;padding:7px 9px}
  .nle-audio-complete-status{font-size:10.5px}
}
