/* Tamer setup and travel are independent of the focused lesson and parent layouts. */
.setup-page { min-height:100svh; background:radial-gradient(ellipse at top right,#243952,#0c1421 70%); }
.setup-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px clamp(18px,5vw,72px); border-bottom:1px solid var(--line); }
.setup-header .brand { margin:0; }
.setup-content { max-width:720px; margin:auto; padding:52px 24px; }
.setup-content h1 { margin:14px 0 18px; font-size:clamp(30px,5vw,43px); }
.setup-content>p { color:var(--muted); }
.setup-form { margin:28px 0 20px; }
.setup-form>.button { margin-top:24px; }
.setup-details { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.tamer-colors { border:0; padding:0; margin:24px 0; }
.tamer-colors legend { font-size:13px; font-weight:600; margin-bottom:12px; }
.tamer-colors>div { display:flex; gap:10px; flex-wrap:wrap; }
.tamer-colors label { position:relative; margin:0; cursor:pointer; }
.tamer-colors input { position:absolute; opacity:0; width:1px; height:1px; }
.tamer-colors span { display:flex; align-items:center; gap:9px; min-height:44px; padding:10px 12px; border:2px solid var(--line); background:#0d1929; }
.tamer-colors span::before { content:''; width:16px; height:16px; background:var(--choice-color); box-shadow:2px 2px #0006; }
.tamer-colors input:checked+span { border-color:var(--choice-color); }
.tamer-colors input:focus-visible+span { outline:3px solid var(--cyan); outline-offset:3px; }
.initiation { max-width:1240px; margin:auto; padding:24px 0; }
.initiation>h1 { margin:12px 0 16px; font-size:clamp(29px,4vw,42px); }
.initiation>p { max-width:740px; color:var(--muted); margin-bottom:28px; }
.world-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.world-card { min-width:0; overflow:hidden; border:1px solid #45607a; background:#111e30; box-shadow:4px 4px #030b14; }
.world-card.selected { border-color:var(--cyan); }
.world-preview { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.world-card-copy { padding:22px; }
.world-card h2 { font-size:24px; }
.world-card p { color:var(--muted); font-size:14px; margin:12px 0 18px; }
.world-card .button { width:100%; }
.world-egg-preview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:12px 0 20px; }
.world-egg-preview>span { min-width:0; text-align:center; }
.world-egg-preview .creature-art { width:100%; max-height:100px; object-fit:contain; }
.world-egg-preview small { display:block; color:var(--muted); font-size:10px; line-height:1.5; }
.egg-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:26px; }
.egg-choice { text-align:center; min-width:0; }
.egg-choice .creature-art { width:100%; max-height:230px; margin:16px 0; }
.egg-choice h2 { font-size:25px; overflow-wrap:anywhere; }
.egg-choice p { font-size:13px; margin:12px 0 20px; color:var(--muted); }
.egg-choice .button { width:100%; }
.placement-choice { max-width:720px; padding:0 18px; border:1px solid var(--line); }
.placement-choice form { padding-bottom:18px; }
.placement-choice .button { margin-top:16px; }
.assessment.activity { padding:24px 0!important; max-width:620px; margin:auto; }
.assessment h1 { margin:14px 0; }
.assessment>p { color:var(--muted); }
.assessment-progress { display:grid; gap:10px; margin:0 0 32px; text-align:right; font:12px/1.5 var(--display); color:var(--muted); }
.assessment-progress progress { appearance:none; display:block; width:100%; height:10px; border:1px solid #43536f; border-radius:0; background:#26354a; overflow:hidden; }
.assessment-progress progress::-webkit-progress-bar { background:#26354a; }
.assessment-progress progress::-webkit-progress-value { background:var(--cyan); }
.assessment-progress progress::-moz-progress-bar { background:var(--cyan); }
.assessment-followup { color:var(--cyan); }
.assessment .eyebrow { text-transform:uppercase; }
.assessment .spelling-input { margin:18px 0 0; }
.assessment .form-note { margin-top:24px; }
.world-dialog { width:min(1100px,100%); max-width:1100px; }
.world-dialog>p { margin:12px 0 24px; }
.world-dialog .world-card h2 { font-size:22px; }
.appearance-dialog { width:min(700px,100%); max-width:700px; }
.appearance-dialog h3 { margin:28px 0 10px; }
.portrait-picker { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:12px; margin-top:22px; }
.portrait-picker button { padding:10px; background:#101d30; border:2px solid var(--line); min-height:44px; }
.portrait-picker button[aria-pressed=true] { border-color:var(--cyan); }
.portrait-picker .creature-art { width:100%; height:95px; object-fit:contain; }
.portrait-picker span { display:block; font-size:11px; overflow-wrap:anywhere; line-height:1.5; }
.nickname-dialog { text-align:center; }
.nickname-dialog>.creature-art { width:180px; height:180px; object-fit:contain; }
.nickname-dialog form { text-align:left; }
.nickname-dialog .button { margin:16px 10px 0 0; }
.creature-evolution { display:block; margin:7px 0 12px; color:var(--cyan); font-size:13px; }
.creature-card .text { min-height:44px; }
.tamer-avatar { border-color:var(--profile-color,var(--cyan)); background:#102032; }
.tamer-avatar:is(button) { cursor:pointer; padding:7px; }
.tamer-monogram { display:flex; justify-content:center; align-items:center; width:100%; height:100%; color:var(--profile-color,var(--cyan)); font:700 44px var(--display); }
.explorer-card { border-top-color:var(--profile-color,var(--cyan)); }
.explorer-card::before { background:var(--profile-color,var(--cyan))!important; }
.world-travel-button { margin-top:24px; min-height:44px; }
.biome-world { position:absolute; inset:0; overflow:hidden; }
.biome-world>img { width:100%; height:100%; object-fit:cover; object-position:center; }
.discovery-banner { margin-bottom:24px; }
.discovery-banner>p { margin:12px 0 0; }
.discovery-budget { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; margin-top:20px; padding:14px 18px; background:#0d1b2b; color:var(--lime); border:1px solid #405963; }
.discovery-budget>span { color:var(--muted); }
.discovery-banner .discovery-shortfall { color:#ffdbb4; font-size:16px; line-height:1.7; }
.discovery-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:22px; }
.discovery-progress { display:flex; align-items:center; gap:20px; margin:0 0 24px; }
.discovery-progress-icon { flex:none; color:var(--cyan); }
.discovery-progress h2 { margin:0 0 10px; font-size:24px; }
.discovery-progress p { margin:0; color:var(--muted); line-height:1.7; }
.discovery-progress progress { display:block; margin-top:16px; width:min(100%,320px); height:9px; accent-color:var(--cyan); }
.hub-new-eggs { padding:4px 6px; color:#102032; background:var(--lime); font-size:10px; line-height:1.2; }
.placement-summary { margin:20px 0; }
.placement-summary p { margin:12px 0; }
.optional-keyboard { margin:16px 0; }
.optional-keyboard>summary { color:var(--muted); min-height:44px; }
.activity .audio-status { min-height:24px; margin:12px 0!important; }
.assessment .parent-help>summary { min-height:44px; font-size:12px; }
/* A quiet version of the chosen locale fills assessment and practice pages. */
.practice-world-shell { min-height:100svh; background-color:#0b0f1a; background-image:linear-gradient(#080e1bca,#080e1be8),var(--practice-world); background-position:center; background-size:cover; background-attachment:fixed; }
.assessment-shell,.celebration-shell { display:flex; flex-direction:column; }
.assessment-shell #main-content,.celebration-shell #main-content { flex:1; width:100%; }
.practice-world-shell .user-footer { width:100%; max-width:none; margin-top:32px; background:transparent; }
.practice-world-shell .user-footer::before { content:none; }
.sanctuary-header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.sanctuary-back{font-size:12px;min-height:44px}
@media(max-width:560px){.sanctuary-shell .child-header{height:auto;min-height:64px;flex-wrap:wrap;padding-block:10px}.sanctuary-header-actions{width:100%;justify-content:space-between;gap:12px}.sanctuary-back{font-size:11px;flex:1;justify-content:flex-start}}
/* The Hub has its own shared habitat, independent of the tamer's locale. */
.sanctuary-shell { display:flex; flex-direction:column; background-image:linear-gradient(#080e1b80,#080e1bcc),var(--practice-world); }
.sanctuary-shell #main-content { flex:1; width:100%; max-width:1320px; margin:0 auto; padding:48px clamp(20px,4vw,48px); }
.sanctuary-heading { align-items:flex-end; padding:18px 0 0; margin-bottom:32px; }
.sanctuary-heading h1 { font-size:clamp(32px,4vw,46px); }
.sanctuary-heading p { color:#e0e8ef; font-size:16px; }
.sanctuary-count { color:#e0e8ef; }
.sanctuary-shell .sanctuary-banner { padding:22px 0 28px; background:transparent; border:0; border-radius:0; border-bottom:1px solid #b5ddd342; margin-bottom:28px; }
.sanctuary-shell .sanctuary-banner p { color:#d5e2e7; font-size:14px; }
.sanctuary-shell .creature-card { min-width:0; background:#0b1422d9; border-color:#91c5ba52; box-shadow:none; }
.sanctuary-shell .creature-portrait { background:transparent; border:0; }
.sanctuary-shell .creature-card.undiscovered { background:#0b1422c9; opacity:1; }
.sanctuary-shell .discovery-banner { background:#0b1422e6; border-color:#91c5ba70; box-shadow:none; }
@media(max-width:560px) {
  .sanctuary-shell #main-content { padding:28px 18px; }
  .sanctuary-heading { flex-direction:column; align-items:flex-start; gap:14px; margin-bottom:20px; padding-top:8px; }
  .sanctuary-heading p { font-size:14px; }
  .sanctuary-heading .sanctuary-count { max-width:none; text-align:left; font-size:12px; }
  .sanctuary-shell .sanctuary-banner { align-items:flex-start; flex-wrap:wrap; gap:16px; padding:16px 0 24px; }
  .sanctuary-shell .sanctuary-banner>div { flex:1 1 220px; }
  .sanctuary-shell .sanctuary-banner p { font-size:14px; }
  .sanctuary-shell .large-berries { margin-left:0; }
}
@media(max-width:800px) { .egg-choices { gap:12px; } .egg-choice { padding:18px; } .egg-choice h2 { font-size:20px; } }
@media(max-width:560px) {
  .setup-header { padding:14px 16px; gap:12px; }
  .setup-header .brand>.brand-logo { width:145px; }
  .setup-header .button { padding:10px; font-size:11px; }
  .setup-content { padding:32px 18px; }
  .setup-details,.world-grid,.egg-choices { grid-template-columns:1fr; }
  .world-card-copy { padding:18px; }
  .world-dialog .world-card-copy { padding:14px; }
  .world-card h2 { font-size:23px; }
  .initiation { padding-top:12px; }
  .egg-choice .creature-art { max-height:185px; }
  .assessment .session-actions { flex-direction:column; align-items:stretch; }
  .biome-world>img { object-position:75% center; }
  .nickname-dialog h2 { font-size:25px; }
  .tamer-colors span { padding:10px 8px; font-size:12px; }
  .session-header { flex-wrap:wrap; }
}

.tamer-delete-settings { border-top:1px solid var(--border,#34435b); margin-top:28px; padding-top:24px; }
.tamer-delete-settings h3 { font-size:18px; }
.button.danger { color:#ffd7ce; background:#582c2a; border-color:#d78168; }
.button.danger:hover:not(:disabled), .button.danger:focus-visible { background:#773a34; }
.tamer-delete-acknowledgement { display:flex; align-items:flex-start; gap:12px; padding:18px; background:#291f29; border:1px solid #a86552; font-size:16px; line-height:1.6; }
.tamer-delete-acknowledgement input { flex:0 0 auto; width:20px; height:20px; margin:3px 0 0; accent-color:#efa27d; }
.tamer-delete-modal { max-width:640px; }
.tamer-delete-modal .eyebrow, .tamer-delete-error { color:#ffb38e; }
.tamer-delete-error { min-height:1.5em; }
.tamer-delete-modal .session-actions { justify-content:flex-start; }
