/* NALAROO Unified Typography & Learning Readability v1.0
 * One loaded Nunito family, a restrained 400–800 weight scale, and a consistent
 * ink hierarchy across Login, Explorer, Home, Journal, Collectibles and Learning.
 * No layout coordinates, data logic, illustrations, rarity frames or result
 * composite artwork are altered here.
 */
:root {
  --nr-font-ui:"Nunito","Trebuchet MS",ui-rounded,system-ui,sans-serif;
  --nr-ink:#244665;
  --nr-forest:#3E5948;
  --nr-copy:#526950;
  --nr-warm-ink:#83533D;
  --nr-weight-copy:500;
  --nr-weight-label:600;
  --nr-weight-action:700;
  --nr-weight-heading:800;
}

/* Explicitly unify the page roots; Google sign-in retains Google's own label. */
body.login-gateway .nalaroo-auth-card,
body.explorer-view .explorer-scene,
body.explorer-view .explorer-family-tools,
body.living-world-view .living-world,
body.collection-view .collection-page,
body.learning-journal-view .learning-journal,
body.quest-view .learning-quest,
body.quest-view .world-dialog,
body.living-world-view .world-dialog,
.collection-dialog,
.adventure-quiz,
.adventure-result,
.exam-shell,
.exam-result {
  font-family:var(--nr-font-ui);
}
body.login-gateway .nalaroo-auth-card :is(button,input,select,textarea):not(.nalaroo-auth-google),
body.explorer-view .explorer-scene :is(button,input,select,textarea),
body.living-world-view .world-dialog :is(button,select,input),
body.quest-view .learning-quest :is(button,input,textarea),
body.collection-view .collection-page :is(button,input,select),
body.learning-journal-view .learning-journal button,
.exam-shell :is(button,input,textarea) {
  font-family:var(--nr-font-ui);
}

/* LOGIN: headings lead; instructional text and controls stay comfortably legible. */
body.login-gateway .nalaroo-auth-card h1{
  font-family:var(--nr-font-ui);
  font-size:clamp(1.75rem,3vw,2.25rem);
  font-weight:var(--nr-weight-heading);
  line-height:1.2;
  letter-spacing:-.018em;
  color:#173551;
}
body.login-gateway .nalaroo-auth-note{
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
  color:#3F5570;
}
body.login-gateway .nalaroo-auth-card :is(.auth-email-choice,.primary){
  font-size:1rem;
  font-weight:var(--nr-weight-action);
  line-height:1.35;
}
body.login-gateway .nalaroo-auth-field{
  font-size:.9375rem;
  font-weight:var(--nr-weight-label);
}
body.login-gateway .nalaroo-auth-field input{
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.5;
}
body.login-gateway .auth-signup,
body.login-gateway .auth-family-note{
  font-size:.875rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
}
body.login-gateway .nalaroo-auth-card .nalaroo-auth-google{
  font-family:Arial,system-ui,sans-serif; /* Provider button identity */
  font-size:1rem;
  font-weight:500;
}

/* EXPLORER SELECT & EDIT: one headline and one clear action per card. */
body.explorer-view .explorer-heading h1,
body.explorer-view .explorer-creating .explorer-heading h1{
  font-family:var(--nr-font-ui);
  font-size:clamp(1.625rem,2.8vw,2.125rem);
  font-weight:var(--nr-weight-heading);
  line-height:1.23;
  letter-spacing:-.015em;
}
body.explorer-view .explorer-start h2{
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-heading);
  line-height:1.22;
  letter-spacing:-.01em;
}
body.explorer-view .explorer-heading>p,
body.explorer-view .explorer-editor-note{
  font-family:var(--nr-font-ui);
  font-size:.9375rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.5;
}
body.explorer-view :is(.explorer-play,.explorer-edit,.explorer-back,.explorer-submit){
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-action);
  line-height:1.3;
}
body.explorer-view .explorer-play{font-size:1rem}
body.explorer-view .explorer-edit{font-size:.875rem}
body.explorer-view .explorer-family-tools :is(p,button,small,strong){
  font-family:var(--nr-font-ui);
}
/* Name and avatar editing must match the profile cards. */
body.explorer-view .explorer-form :is(.explorer-editor-field>label,.explorer-avatar-picker legend){
  font-family:var(--nr-font-ui);
  font-size:1rem;
  font-weight:var(--nr-weight-action);
  line-height:1.4;
}
body.explorer-view .explorer-form :is(input:not([type=radio]),select){
  font-family:var(--nr-font-ui);
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.45;
}
body.explorer-view .explorer-form .explorer-status{
  font-family:var(--nr-font-ui);
  font-size:.875rem;
  font-weight:var(--nr-weight-label);
  line-height:1.5;
}

/* HOME: honor the artist-calibrated label positions and small HUD geometry. */
body.living-world-view .integrated-world .world-building-label{
  font-family:var(--nr-font-ui)!important;
  font-weight:var(--nr-weight-heading)!important;
  letter-spacing:0;
}
body.living-world-view .integrated-world .world-profile-copy strong{
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-heading);
}
body.living-world-view .integrated-world .world-profile-copy>span,
body.living-world-view .integrated-world .world-profile-copy small{
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-label);
}
body.living-world-view .integrated-world .world-coins strong{
  font-weight:var(--nr-weight-heading);
  font-variant-numeric:tabular-nums;
}

/* WORLD COURSE SELECTOR: a readable learning choice, not administrative UI. */
body.living-world-view .world-dialog-heading h2,
body.quest-view .world-dialog-heading h2{
  font-size:1.375rem;
  font-weight:var(--nr-weight-heading);
  line-height:1.3;
  color:var(--nr-forest);
}
body.living-world-view .world-dialog-content p,
body.quest-view .world-dialog-content p{
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
  color:var(--nr-forest);
}
body.living-world-view .world-field,
body.quest-view .world-field{
  font-size:1rem;
  font-weight:var(--nr-weight-action);
  line-height:1.4;
}
body.living-world-view .world-field select,
body.quest-view .world-field select{
  font-size:1rem;
  font-weight:var(--nr-weight-label);
}
body.living-world-view .world-action,
body.quest-view .world-action{
  font-family:var(--nr-font-ui);
  font-size:1rem;
  font-weight:var(--nr-weight-action);
  line-height:1.35;
}

/* DESTINATION CHAPTER HEADERS: harmonize title, story subtitle and chapter tag. */
.collection-page .adventure-title,
.learning-journal .adventure-title{
  font-size:clamp(1.625rem,2.4vw,2rem);
  font-weight:var(--nr-weight-heading);
  line-height:1.2;
  letter-spacing:-.015em;
  color:var(--nr-ink);
}
.collection-page .adventure-hero .adventure-eyebrow,
.learning-journal .adventure-hero .adventure-eyebrow{
  font-size:.75rem;
  font-weight:var(--nr-weight-heading);
  line-height:1.4;
  letter-spacing:.07em;
}
.collection-page .adventure-hero .adventure-subtitle,
.learning-journal .adventure-hero .adventure-subtitle{
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.5;
  color:var(--nr-copy);
}
.collection-page .adventure-identity,
.learning-journal .adventure-identity{
  font-weight:var(--nr-weight-label);
}
.collection-page .adventure-hero .collection-wallet-amount span,
.collection-page .adventure-hero .collection-owned-count span{
  font-size:.8125rem;
  font-weight:var(--nr-weight-copy);
}
.collection-page .adventure-hero .collection-balance,
.collection-page .adventure-hero .collection-owned-count strong{
  font-weight:var(--nr-weight-heading);
  font-variant-numeric:tabular-nums;
}
.collection-page :is(.collection-section-heading h2,.collection-heading h1),
.learning-journal .lj-panel>h2{
  font-weight:var(--nr-weight-heading);
  line-height:1.28;
  color:var(--nr-ink);
}
.collection-page .collection-filter,
.collection-page .collection-family-link,
.collection-page .collection-link{
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-action);
  line-height:1.3;
}

/* Collectible art/frame is fixed 3:4. Do not scale/reposition text on the card. */
.collection-page .collection-card h3{
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-heading);
}
.collection-page .collection-card :is(.collection-rarity,.collection-price){
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-action);
}
.collection-dialog .collection-dialog-header h2{
  font-size:1.375rem!important;
  font-weight:var(--nr-weight-heading);
  line-height:1.3;
}
.collection-dialog .collection-flavor,
.collection-dialog .collection-note,
.collection-dialog .collection-acquired{
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
}
.collection-dialog .collection-button{
  font-family:var(--nr-font-ui);
  font-weight:var(--nr-weight-action);
}

/* PROGRESS: metrics stand apart from explanations and action labels. */
.learning-journal .lj-panel>h2{
  font-size:1.25rem;
}
.learning-journal :is(.lj-subject h3,.lj-next h3){
  font-size:1.0625rem;
  font-weight:var(--nr-weight-action);
  line-height:1.35;
}
.learning-journal .lj-stat-value{
  font-size:clamp(1.5rem,2.5vw,1.875rem);
  font-weight:var(--nr-weight-heading);
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.learning-journal .lj-stat-label{
  font-size:.875rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.45;
}
.learning-journal :is(.lj-caption,.lj-no-data,.lj-next-copy,.lj-session-score,.lj-session-details,.lj-badge p,.lj-empty){
  font-size:.875rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.5;
  color:var(--nr-copy);
}
.learning-journal :is(.lj-accuracy,.lj-review-count,.lj-session-heading strong){
  font-size:.875rem;
  font-weight:var(--nr-weight-action);
  line-height:1.4;
}
.learning-journal :is(.lj-link-button,.lj-button,.lj-detail-label){
  font-size:.9375rem;
  font-weight:var(--nr-weight-action);
  line-height:1.4;
}
.learning-journal .lj-badge-preview li{
  font-size:.875rem;
  font-weight:var(--nr-weight-action);
}
.learning-journal .lj-method-note{font-size:.8125rem;line-height:1.5}

/* LEARNING QUEST — primary route for Practice, Assessment and Cek Kemampuan.
 * Reading comfort takes priority over decorative, ultra-bold question styling. */
body.quest-view .learning-quest{
  font-family:var(--nr-font-ui);
  font-size:1rem;
  line-height:1.55;
  color:var(--nr-ink);
}
.learning-quest .quest-heading h1{
  font-size:clamp(1.625rem,2.6vw,2rem);
  font-weight:var(--nr-weight-heading);
  line-height:1.22;
  letter-spacing:-.015em;
}
.learning-quest :is(.quest-mode,.quest-position,.quest-explorer,.quest-chip,.quest-hint){
  font-size:.875rem;
  line-height:1.45;
}
.learning-quest .quest-mode{font-weight:var(--nr-weight-action)}
.learning-quest .quest-explorer{font-weight:var(--nr-weight-copy)}
.learning-quest .quest-stem{
  font-size:clamp(1.3125rem,2.2vw,1.625rem);
  line-height:1.5;
  font-weight:var(--nr-weight-action);
  letter-spacing:0;
  text-wrap:pretty;
  overflow-wrap:anywhere;
}
.learning-quest .quest-option{
  font-family:var(--nr-font-ui);
  font-size:1.0625rem;
  font-weight:var(--nr-weight-label);
  line-height:1.45;
}
.learning-quest .quest-choice-text{
  font-size:1.0625rem;
  font-weight:var(--nr-weight-action);
  line-height:1.45;
}
.learning-quest .quest-input{
  font-family:var(--nr-font-ui);
  font-size:1.0625rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
}
.learning-quest .quest-button{
  font-family:var(--nr-font-ui);
  font-size:1rem;
  font-weight:var(--nr-weight-action);
  line-height:1.35;
}
.learning-quest .quest-feedback h2{
  font-size:1.25rem;
  font-weight:var(--nr-weight-heading);
  line-height:1.35;
}
.learning-quest .quest-feedback p,
.learning-quest .quest-explanation{
  font-size:1.0625rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.6;
  color:#334D47;
  overflow-wrap:anywhere;
}
.learning-quest .quest-feedback .quest-answer-label{
  font-weight:var(--nr-weight-action);
}
.learning-quest .quest-award{
  font-size:.875rem;
  font-weight:var(--nr-weight-action);
}
.learning-quest .quest-review details p{
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
}
.learning-quest .quest-review summary{
  font-weight:var(--nr-weight-action);
}
.learning-quest .quest-result-message{
  font-size:1rem;
  line-height:1.55;
  font-weight:var(--nr-weight-label);
  color:#465F50;
}
.learning-quest .quest-score{
  font-size:1.75rem;
  line-height:1.25;
  font-weight:var(--nr-weight-heading);
  font-variant-numeric:tabular-nums;
}
.learning-quest .quest-result-stats strong{
  font-weight:var(--nr-weight-heading);
  font-variant-numeric:tabular-nums;
}
.learning-quest .quest-result-stats span{
  font-size:.875rem;
  font-weight:var(--nr-weight-copy);
}
.learning-quest .quest-result-awards .quest-award{
  font-size:1rem;
  font-weight:var(--nr-weight-action);
}
/* Composite hero text belongs on the wooden sign. Preserve its overlay scale. */
.learning-quest .quest-composite-title{
  font-family:var(--nr-font-ui);
}

/* LEGACY QUIZ & ASSESSMENT: use the same reading scale when these views appear. */
.adventure-quiz .question-text{
  font-size:clamp(1.3125rem,2vw,1.625rem);
  line-height:1.48;
  font-weight:var(--nr-weight-action);
  letter-spacing:0;
}
.adventure-quiz :is(.option-text,.text-answer){
  font-size:1.0625rem;
  font-weight:var(--nr-weight-action);
  line-height:1.45;
}
.adventure-quiz .feedback .feedback-title{
  font-size:1.25rem;
  font-weight:var(--nr-weight-heading);
  line-height:1.35;
}
.adventure-quiz .feedback .feedback-copy{
  font-size:1.0625rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
}
.adventure-quiz :is(.next-btn,.check-btn,.skip-btn){
  font-size:1rem;
  font-weight:var(--nr-weight-action);
}
.adventure-result h2{
  font-weight:var(--nr-weight-heading);
}
.adventure-result .result-message{
  font-size:1rem;
  font-weight:var(--nr-weight-copy);
  line-height:1.55;
}
.exam-shell .exam-question-text{
  font-size:clamp(1.25rem,2vw,1.5rem);
  line-height:1.5;
  font-weight:var(--nr-weight-action);
}
.exam-shell .exam-option{
  font-size:1.0625rem;
  font-weight:var(--nr-weight-action);
  line-height:1.45;
}
.exam-result :is(.exam-result-note,.exam-review-body,.exam-review-explanation){
  font-size:1rem;
  line-height:1.55;
  font-weight:var(--nr-weight-copy);
}

/* Mobile text stays readable while layout remains owned by existing scenes. */
@media(max-width:760px){
  body.login-gateway .nalaroo-auth-card h1{font-size:1.75rem}
  body.explorer-view .explorer-heading h1,
  body.explorer-view .explorer-creating .explorer-heading h1{
    font-size:clamp(1.5rem,6vw,1.75rem);
  }
  body.explorer-view .explorer-start h2{font-size:1.25rem}
  .collection-page .adventure-title,
  .learning-journal .adventure-title{font-size:1.625rem}
  .collection-page .adventure-hero .adventure-subtitle,
  .learning-journal .adventure-hero .adventure-subtitle{
    font-size:.875rem;
  }
  .learning-journal .lj-panel>h2{font-size:1.125rem}
  .learning-journal .lj-stat-value{font-size:clamp(1.375rem,5.4vw,1.625rem)}
  .learning-journal .lj-stat-label{font-size:.8125rem}
  .learning-quest .quest-heading h1{font-size:1.625rem}
  .learning-quest .quest-stem{font-size:1.3125rem;line-height:1.5}
  .learning-quest .quest-option,
  .learning-quest .quest-choice-text{font-size:1.0625rem}
  .learning-quest .quest-feedback p,
  .learning-quest .quest-explanation{font-size:1rem;line-height:1.55}
  .learning-quest .quest-feedback h2{font-size:1.1875rem}
  .learning-quest .quest-result-message{font-size:1rem}
  .learning-quest .quest-result-stats span{font-size:.8125rem}
  .adventure-quiz .question-text{font-size:1.3125rem}
}
@media(max-width:370px){
  /* Keep three journal metric columns and the art-backed collection cards intact. */
  .learning-journal .lj-stat-value{font-size:1.25rem}
  .learning-journal .lj-stat-label{font-size:.75rem}
  .learning-quest .quest-stem{font-size:1.25rem}
}
/* System accessibility settings still control zoom. No px-locked heights/overflow. */
