/* ===== Nokh — présentation Veillée =====
   La présentation principale de Nokh, dans la direction artistique de l’onglet Histoire : chaque écran
   s’ouvre sur une peinture qui se fond dans sa couleur de fond (--ground, posée par js/veillee.js),
   texte clair, une seule police droite (Jost, choisie par Ibraguim : lisible, dans l’esprit des affiches
   de voyage peintes, sans italique), aucune couleur d’accent (la couleur vient des peintures), une petite peinture par leçon.
   La classe .veillee est posée sur <html> dans index.html. styles.css fournit les composants partagés. */

.veillee{
 --snow:#f3eee4;--mist:#bcc3c4;--accent:#f3eee4;--lichen:#a6d1a2;--rust:#ef9a85;--night:#121922;
 --glass:rgb(243 238 228 / .07);--glass-2:rgb(243 238 228 / .12);--hair:rgb(243 238 228 / .15);--shade:rgb(7 9 13 / .55);
 --story:'Jost Nokh',system-ui,-apple-system,'Segoe UI',sans-serif;--sans:var(--story);
 /* the base palette, turned to night */
 --forest:var(--accent);--deep:var(--snow);--ink:var(--snow);--cream:var(--ground,var(--night));--paper:var(--glass);
 --muted:var(--mist);--line:var(--hair);--pale:var(--glass);--success:rgb(166 209 162 / .16);--orange:var(--accent);--red:var(--rust);--serif:var(--story);
 /* no stone relief in this version */
 --edge:transparent;--edge-light:transparent;--edge-forest:transparent;--drop:0 0 0 transparent;--ridge:none;--ridge-light:none;
 --scene-h:42svh;
 color:var(--snow);background:#0b1016;
}
@font-face{font-family:'Jost Nokh';src:url('../fonts/jost-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Jost Nokh';src:url('../fonts/jost-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Jost Nokh';src:url('../fonts/jost-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Jost Nokh';src:url('../fonts/jost-600.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
/* One upright family everywhere, the History tab included: no italics in this version. */
.veillee *{font-style:normal!important}
.veillee .hx,.veillee .hx-home{--story:'Jost Nokh',system-ui,-apple-system,'Segoe UI',sans-serif;--ember:var(--snow)}
.veillee :is(.hx-kicker,.hx-aside-label){color:var(--mist)}
.veillee .hx-fact{border-left:0;border-top:1px solid var(--hair);padding:16px 0 0}
.veillee .hx-feedback{border-left:0;padding-left:0}
.veillee .hx-feedback.good strong{color:var(--lichen)}
.veillee .hx-feedback.bad strong{color:var(--rust)}
.veillee .hx-bars .done{background:rgb(243 238 228 / .5)}
.veillee .hx-bars .current{background:var(--snow)}
.veillee body{background:#0b1016;color:var(--snow)}
.veillee ::selection{background:var(--accent);color:#1b1e23}
.veillee :focus-visible{outline-color:var(--accent)}
.veillee .phone{background:var(--ground,var(--night));color:var(--snow);transition:background-color .6s}
.veillee h1,.veillee h2,.veillee h3{font-family:var(--story);font-weight:500;letter-spacing:-.012em;color:var(--snow)}
.veillee .muted,.veillee .small.muted{color:var(--mist)}
/* Type roles: light for the big numerals, regular for reading, medium for titles and expressions. */
.veillee :is(.course-level,.hx-numeral,.hx-chapter-num){font-weight:300!important;letter-spacing:-.02em}
.veillee :is(.hx-title,.hx-hero h1,.hx-word-ce,.hx-chapter-text strong,.hx-next-chapter strong){font-weight:500}
.veillee :is(.hx-kicker,.hx-aside-label){font-weight:500;font-size:.82rem;letter-spacing:.03em}
.veillee :is(.hx-era,.hx-chapter-era,.hx-length){letter-spacing:.01em}
.veillee .hx-text p{font-size:1.06rem;line-height:1.75}
.veillee :is(.hx-sub,.hx-teaser,.hx-narrator p,.hx-last,.hx-feedback strong){font-weight:400}
.veillee .card{background:var(--glass);border:1px solid var(--hair);box-shadow:none}
.veillee .divider{background:var(--hair)}
/* Labels written in capitals in the markup read as a quiet sentence-case line here. */
.veillee :is(.eyebrow,.tag,.lesson-kicker,.catalogue-eyebrow,.flip-side-label,.catalogue-section-heading>span){display:inline-block;font-family:var(--story);font-weight:500;font-size:.8rem;letter-spacing:.03em;text-transform:lowercase;color:var(--mist)}
.veillee :is(.eyebrow,.tag,.lesson-kicker,.catalogue-eyebrow,.flip-side-label,.catalogue-section-heading>span)::first-letter{text-transform:uppercase}

/* ---------- Buttons, pills, navigation ---------- */
.veillee .button,.veillee .button.cream{background:var(--snow);color:#1b1e23;border:0;border-radius:999px;min-height:54px;font-weight:650;box-shadow:none}
.veillee .button:hover,.veillee .button.cream:hover{background:#fff;transform:none}
.veillee .button:not(.outline):not(.secondary):not(:disabled),.veillee .button.cream:not(:disabled),.veillee .button:not(.outline):not(.secondary):not(:disabled):hover,.veillee .button:not(.outline):not(.secondary):not(:disabled):active{box-shadow:none}
.veillee .button:disabled{background:rgb(243 238 228 / .16);color:rgb(243 238 228 / .5)}
.veillee .button.outline{background:transparent;color:var(--snow);border:1px solid rgb(243 238 228 / .34)}
.veillee .button.outline:hover{background:var(--glass)}
.veillee .button.secondary{background:var(--glass-2);color:var(--snow)}
.veillee :is(.text-button,.reading-help,.source-reference,.lesson-reference,.conversation-replay summary,.conversation-callout-link){color:var(--snow);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:rgb(243 238 228 / .38)}
.veillee :is(.text-button,.reading-help,.source-reference,.lesson-reference):hover{text-decoration-color:var(--snow)}
.veillee :is(.text-button,.lesson-reference) svg{display:none}
.veillee .reading-help span{color:var(--mist)}
.veillee .icon-button{color:var(--snow)}
.veillee .icon-button:hover{background:var(--glass-2)}
.veillee .pill{background:var(--glass-2);color:var(--snow);border:1px solid var(--hair)}
.veillee .pill.orange{background:var(--glass-2);color:var(--snow)}
.veillee .brandmark{background:transparent;border:0;color:var(--snow)}
.veillee .wordmark{font-family:var(--story);font-weight:500}
.veillee .bottom-nav{background:rgb(10 13 18 / .82);-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);border-top:1px solid var(--hair);box-shadow:none}
.veillee .nav-item{color:rgb(243 238 228 / .62)}
.veillee .nav-item.active{color:var(--snow)}
.veillee .nav-item.active .nav-icon{background:transparent;box-shadow:none;color:var(--accent);position:relative}
.veillee .nav-item.active .nav-icon:after{content:'';position:absolute;left:50%;bottom:-4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent)}
.veillee .nav-item:not(.active):hover .nav-icon{background:var(--glass)}
.veillee .progress-track,.veillee .track-progress{background:rgb(243 238 228 / .14)}
.veillee .progress-fill,.veillee .track-progress span{background:var(--accent)}
.veillee #toast{background:rgb(14 18 24 / .92);color:var(--snow);border:1px solid var(--hair);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.veillee dialog{background:#161e28;color:var(--snow);border:1px solid var(--hair);box-shadow:0 30px 80px rgb(0 0 0 / .6)}
.veillee dialog::backdrop{background:rgb(4 6 10 / .72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.veillee dialog h2{font-size:1.5rem}
.veillee dialog p{color:var(--mist)}
.veillee .field label{color:var(--mist)}
.veillee .field input,.veillee .field select{background:rgb(243 238 228 / .06);border:1px solid var(--hair);color:var(--snow)}
.veillee .field input::placeholder{color:rgb(243 238 228 / .4)}
.veillee .field input:focus{border-color:var(--accent);outline:none}

/* ---------- The painting that opens each screen ---------- */
/* Behind the top of every screen (History screens keep their own design). A dark veil at the top
   keeps the header readable, and the painting dissolves into the ground colour below. */
.veillee :is(.screen,.lesson-screen):not(.hx):not(.hx-home){position:relative;isolation:isolate;background:transparent}
.veillee :is(.screen,.lesson-screen):not(.hx):not(.hx-home)::before{content:'';position:absolute;z-index:-1;left:0;right:0;top:0;height:var(--scene-h);pointer-events:none;
 background:linear-gradient(180deg,rgb(6 8 12 / .5) 0,rgb(6 8 12 / 0) 22%,rgb(6 8 12 / 0) 46%,var(--ground,var(--night)) 99%),var(--scene-img) 50% 46%/cover no-repeat}
.veillee :is(.screen,.lesson-screen):not(.hx):not(.hx-home)::after{content:'';position:absolute;z-index:-1;left:0;right:0;top:0;height:var(--scene-h);pointer-events:none;opacity:.18;mix-blend-mode:overlay;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='.33 .33 .33 0 0 .33 .33 .33 0 0 .33 .33 .33 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
/* Sub-pages: the title sits at the foot of the painting. */
.veillee .page-top{position:relative;min-height:calc(var(--scene-h) - 70px);align-items:flex-end;padding:0 24px 8px}
.veillee .page-top>.icon-button{position:absolute;top:calc(16px + env(safe-area-inset-top));left:14px}
.veillee .page-top h1{font-size:clamp(2rem,9vw,2.5rem);line-height:1.08;letter-spacing:-.02em;text-shadow:0 2px 26px rgb(0 0 0 / .35)}
.veillee .page-top>span[aria-hidden="true"]{display:none}
.veillee :is(.page-top,.lesson-header) .icon-button,.veillee .home-header .avatar{background:rgb(10 13 18 / .42);border:1px solid rgb(243 238 228 / .16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--snow)}
.veillee .screen-inner,.veillee .catalogue-body,.veillee .home-body{padding-left:24px;padding-right:24px}
.veillee .section-heading{font-size:1.7rem}

/* ---------- Opening screen ---------- */
.veillee .splash{background:#121922 url('../assets/veillee/welcome.webp') center 30%/cover;color:var(--snow)}
.veillee .splash:before{background:linear-gradient(180deg,rgb(6 8 12 / .35) 0,rgb(6 8 12 / 0) 18%,rgb(6 8 12 / 0) 40%,rgb(20 21 36 / .82) 70%,#141524 100%)}
.veillee .splash-top{justify-content:center;color:rgb(243 238 228 / .85)}
.veillee .splash-top .eyebrow{font-size:1rem;color:rgb(243 238 228 / .86)}
.veillee .splash-content{text-align:left}
.veillee .splash-content .brandmark{margin:0 0 6px;background:transparent;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;width:auto;height:auto;color:var(--accent);justify-content:start}
.veillee .splash h1{font-family:var(--story);font-weight:500;font-size:clamp(4.6rem,24vw,6.4rem);letter-spacing:-.045em;line-height:.9;margin-bottom:14px;color:var(--snow);text-shadow:0 4px 40px rgb(0 0 0 / .3)}
.veillee .splash-tagline{font-family:var(--story);font-weight:400;font-size:1.7rem;line-height:1.2;letter-spacing:-.01em}
.veillee .splash-description{color:var(--mist);font-size:.95rem;margin:14px 0 28px}

/* ---------- Home ---------- */
.veillee[data-screen="home"]{--scene-h:60svh}
.veillee[data-screen="home"] .screen::before{background:linear-gradient(180deg,rgb(6 8 12 / .45) 0,rgb(6 8 12 / 0) 20%,rgb(6 8 12 / 0) 38%,color-mix(in srgb,var(--ground,var(--night)) 72%,transparent) 66%,var(--ground,var(--night)) 94%),var(--scene-img) 50% 38%/cover no-repeat}
.veillee .home-header{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr;align-items:start;min-height:47svh;padding:calc(18px + env(safe-area-inset-top)) 22px 18px;gap:0 10px}
.veillee .home-header .avatar{width:46px;height:46px;font-family:var(--story);font-size:1.3rem;color:var(--snow)}
.veillee .home-header>div:nth-child(2){grid-column:1/-1;grid-row:2;align-self:end;max-width:none}
.veillee .home-header .greeting{font-family:var(--story);font-weight:500;font-size:clamp(2.3rem,11vw,2.9rem);line-height:1.02;letter-spacing:-.025em;max-width:none;text-shadow:0 2px 30px rgb(0 0 0 / .35)}
.veillee .home-header .header-sub{font-family:var(--story);font-size:1.02rem;max-width:none;color:rgb(243 238 228 / .88);margin-top:8px}
.veillee .streak{grid-column:3;grid-row:1;background:rgb(10 13 18 / .42);border:1px solid rgb(243 238 228 / .16);color:var(--snow);border-radius:999px;padding:9px 13px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.veillee .streak svg{color:var(--snow)}
.veillee .daily-card{background:transparent;border:0;padding:0;margin-bottom:6px}
.veillee .daily-card .row{gap:12px}
.veillee .daily-icon{width:26px;height:44px;flex:0 0 26px;background:none;border:0;border-radius:0;display:block}
.veillee .daily-card h2{font-family:var(--story);font-weight:500;font-size:1.05rem;color:var(--snow)}
.veillee .daily-card p,.veillee .progress-label{color:var(--mist);font-size:.82rem}
.veillee .landscape-banner{background:none;min-height:0;padding:0;margin:34px 0 14px;border:0;border-radius:0;color:var(--snow)}
.veillee .landscape-banner:before{display:none}
.veillee .landscape-banner .eyebrow{display:none}
.veillee .landscape-banner p{max-width:none;font-family:var(--story);font-weight:300;font-size:clamp(1.3rem,6.3vw,1.6rem);line-height:1.22;letter-spacing:-.01em;color:var(--snow)}
.veillee .section-title h2{font-size:1.45rem}
.veillee .section-title .pill{display:none}
.veillee .home-footnote{font-family:var(--story);color:var(--mist);font-size:.95rem}
/* The lesson to continue: a painted band. */
.veillee .continue-card,.veillee .continue-card:hover{position:relative;isolation:isolate;overflow:hidden;min-height:150px;align-items:flex-end;padding:18px;border:0;border-radius:20px;color:var(--snow);
 background:linear-gradient(90deg,rgb(8 10 14 / .78) 0,rgb(8 10 14 / .32) 62%,rgb(8 10 14 / .08)),var(--card-img,none) 50% 52%/cover,#1c2430;box-shadow:none}
.veillee .continue-card .tag{color:rgb(243 238 228 / .86)}
.veillee .continue-card h3{font-size:1.5rem;line-height:1.15;color:var(--snow)}
.veillee .continue-card .meta,.veillee .continue-card .branch-note{color:rgb(243 238 228 / .8)}
.veillee .play-circle,.veillee .continue-card:hover .play-circle,.veillee .continue-card:active .play-circle{background:var(--snow);color:#1b1e23;box-shadow:0 0 0 8px rgb(243 238 228 / .14)}
/* Courses: three painted bands, one per level. */
.veillee .course-list{gap:10px}
.veillee .course-card,.veillee .course-card:hover{position:relative;isolation:isolate;overflow:hidden;min-height:118px;align-items:flex-end;padding:16px;border:0;border-radius:18px;color:var(--snow);
 background:linear-gradient(90deg,rgb(8 10 14 / .8) 0,rgb(8 10 14 / .35) 60%,rgb(8 10 14 / .1)),var(--card-img,none) 50% 58%/cover,#1c2430;box-shadow:none}
.veillee .course-card::after{display:none}
.veillee .course-level,.veillee .course-card:nth-child(n) .course-level{background:transparent;box-shadow:none;width:auto;height:auto;color:var(--snow);font-family:var(--story);font-size:2.1rem;line-height:.95;align-self:flex-end;place-content:end start}
.veillee .course-level span{font-family:var(--sans);font-style:normal;font-size:.62rem;letter-spacing:.02em;text-transform:lowercase;opacity:.82}
.veillee .course-card h3{font-family:var(--story);font-weight:500;font-size:1.2rem;color:var(--snow)}
.veillee .course-card p{color:rgb(243 238 228 / .82);font-size:.8rem}
.veillee .course-card>.icon{color:var(--snow)}
.veillee :is(.course-card,.continue-card,.method-card,.training-callout,.training-topic,.conversation-callout,.conversation-role,.catalogue-track){transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.veillee :is(.course-card,.continue-card):hover{transform:translateY(-2px)}
.veillee :is(.course-card,.continue-card):active{transform:scale(.99)}

/* ---------- Library (Cours & pratique) ---------- */
.veillee .catalogue-screen{--scene-h:44svh}
.veillee .catalogue-header{min-height:calc(var(--scene-h) - 76px);align-items:flex-end;padding:0 24px 12px}
.veillee .catalogue-header h1{font-size:clamp(2.2rem,10vw,2.7rem);letter-spacing:-.025em;text-shadow:0 2px 26px rgb(0 0 0 / .35)}
.veillee .catalogue-header .catalogue-eyebrow{color:rgb(243 238 228 / .86)}
.veillee .catalogue-mark{display:none}
.veillee .catalogue-switch{background:rgb(10 13 18 / .45);border:1px solid var(--hair);border-radius:999px;margin:0 24px;padding:4px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.veillee .catalogue-switch button{color:rgb(243 238 228 / .7);border-radius:999px}
.veillee .catalogue-switch button.active,.veillee .catalogue-switch button.active:hover{background:var(--snow);color:#1b1e23;box-shadow:none}
.veillee .catalogue-switch button:not(.active):hover{background:var(--glass);color:var(--snow)}
.veillee .library-cover{background:none;box-shadow:none;border-radius:0;padding:6px 0 8px;color:var(--snow)}
.veillee .library-cover h2{font-size:2rem;line-height:1.1}
.veillee .library-cover h2 em{color:var(--snow);font-weight:300}
.veillee .library-cover p{color:var(--mist)}
.veillee .library-cover .catalogue-eyebrow{color:var(--mist)}
.veillee .library-cover-stats{border-top:1px solid var(--hair);color:var(--mist)}
.veillee .library-cover-stats strong{font-family:var(--story);font-weight:500;color:var(--snow)}
.veillee .catalogue-section-heading h2{font-size:1.45rem}
.veillee .catalogue-filters button{border:1px solid var(--hair);background:transparent;color:var(--snow);border-radius:999px}
.veillee .catalogue-filters button.active,.veillee .catalogue-filters button.active:hover{background:var(--snow);border-color:var(--snow);color:#1b1e23;box-shadow:none}
.veillee .catalogue-filters button:not(.active):hover{background:var(--glass);border-color:rgb(243 238 228 / .3)}
.veillee .catalogue-track{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;margin-top:26px}
.veillee .track-heading{position:relative;isolation:isolate;overflow:hidden;border-radius:18px;min-height:112px;align-items:flex-end;padding:14px 16px}
.veillee .track-heading:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(8 10 14 / .78),rgb(8 10 14 / .2)),var(--track-img) 50% 56%/cover}
.veillee .track-a0{--track-img:url('../assets/veillee/course-a0.webp')}
.veillee .track-a1{--track-img:url('../assets/veillee/course-a1.webp')}
.veillee .track-a2{--track-img:url('../assets/veillee/course-a2.webp')}
.veillee .track-symbol,.veillee .track-a1 .track-symbol,.veillee .track-a2 .track-symbol{display:none}
.veillee .track-heading h3{font-size:1.45rem;color:var(--snow)}
.veillee .track-heading .catalogue-eyebrow{color:rgb(243 238 228 / .86)}
.veillee .track-fraction{color:var(--snow);font-family:var(--story);font-size:1.1rem;align-self:flex-start}
.veillee .track-description{color:var(--mist);font-family:var(--story);font-size:.98rem;padding:12px 2px 0}
.veillee .track-progress{margin:10px 2px 6px}
.veillee .catalogue-lessons li{border-top:1px solid var(--hair)}
.veillee .catalogue-lesson,.veillee .catalogue-lesson:hover{background:transparent}
.veillee .catalogue-lesson::before{background:var(--accent)}
.veillee .catalogue-lesson-copy strong{font-family:var(--story);font-weight:500;font-size:1.02rem;color:var(--snow)}
.veillee .catalogue-lesson-copy small,.veillee .is-open .catalogue-lesson-copy small{color:var(--mist)}
.veillee .is-locked .catalogue-lesson-copy strong{color:rgb(243 238 228 / .58)}
.veillee .catalogue-lesson>.icon{color:var(--mist)}
/* Lesson numbers become small round paintings. */
.veillee .catalogue-number,.veillee .is-open .catalogue-number,.veillee .is-complete .catalogue-number,.veillee .is-locked .catalogue-number,.veillee .catalogue-lesson.is-open:hover .catalogue-number{width:46px;height:46px;border-radius:50%;box-shadow:none;color:var(--snow);font-family:var(--story);font-size:.98rem;
 background:linear-gradient(rgb(8 10 14 / .35),rgb(8 10 14 / .35)),var(--card-img,none) 50% 52%/cover,#253040;border:1.5px solid rgb(243 238 228 / .22)}
.veillee .is-complete .catalogue-number{border-color:var(--accent);color:var(--accent);background:linear-gradient(rgb(8 10 14 / .55),rgb(8 10 14 / .55)),var(--card-img,none) 50% 52%/cover,#253040}
.veillee .is-locked .catalogue-number{filter:grayscale(.85) brightness(.7);color:rgb(243 238 228 / .8)}
.veillee .training-callout,.veillee .training-callout:hover{background:var(--glass);border:1px solid var(--hair);box-shadow:none;color:var(--snow)}
.veillee .training-callout small,.veillee .catalogue-note,.veillee .practice-rule{color:var(--mist)}
.veillee .catalogue-empty{background:transparent;border:1px dashed var(--hair)}
.veillee .catalogue-empty p{color:var(--mist)}

/* ---------- Training ---------- */
.veillee .training-intro h2{font-size:2rem;line-height:1.1}
.veillee .training-intro h2 em{color:var(--snow);font-weight:300}
.veillee .training-intro p,.veillee .practice-heading p{color:var(--mist)}
.veillee .conversation-callout,.veillee .conversation-callout:hover{position:relative;isolation:isolate;overflow:hidden;border:0;border-radius:20px;color:var(--snow);
 background:linear-gradient(180deg,rgb(8 10 14 / .05) 0,rgb(8 10 14 / .78) 70%),url('../assets/veillee/scene-bench.webp') 50% 66%/cover,#1c2430}
.veillee .conversation-callout strong{font-size:1.6rem;color:var(--snow)}
.veillee .conversation-callout span,.veillee .conversation-callout .tag{color:rgb(243 238 228 / .86)}
.veillee .conversation-callout-link{color:var(--accent)}
.veillee .method-card,.veillee .method-card.gold,.veillee .method-card.clay,.veillee .method-card.pine,.veillee .method-card:hover{background:var(--glass);border:1px solid var(--hair);box-shadow:none;color:var(--snow)}
.veillee .method-card::after{display:none}
.veillee .method-icon,.veillee .method-icon.sage,.veillee .method-icon.gold,.veillee .method-icon.clay,.veillee .method-icon.pine,.veillee .method-card .method-icon{background:transparent;border:0;color:var(--snow);box-shadow:none;border-radius:0;width:auto;height:auto;justify-content:start}
.veillee .method-index{display:none}
.veillee .method-verb,.veillee .gold .method-verb,.veillee .clay .method-verb,.veillee .pine .method-verb{font-family:var(--story);color:var(--mist);text-transform:none;letter-spacing:.02em;font-size:.8rem;font-weight:500}
.veillee .method-card>strong{font-family:var(--story);color:var(--snow)}
.veillee .method-description,.veillee .pine .method-description{color:var(--mist)}
.veillee .method-count,.veillee .pine .method-count{border-top:1px solid var(--hair);color:var(--snow)}
.veillee .practice-heading .method-icon{width:52px;height:52px}
.veillee .practice-heading h2{font-size:1.6rem}
.veillee .training-subheading{color:var(--snow);font-size:1.2rem}
.veillee .training-topic,.veillee .training-topic:hover,.veillee .deck-topic,.veillee .deck-topic.deck-deck-reverse,.veillee .deck-topic.deck-deck-review{background:var(--glass);border:1px solid var(--hair);box-shadow:none;color:var(--snow);gap:14px}
.veillee .training-topic[data-id]:not(.deck-topic)::before{content:'';width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:var(--card-img,none) 50% 52%/cover,#253040;border:1.5px solid rgb(243 238 228 / .22)}
.veillee .training-topic strong{font-family:var(--story);font-weight:500}
.veillee .training-topic small{color:var(--mist)}
.veillee .training-topic>svg{color:var(--mist)}
.veillee .practice-finish{text-align:center}
.veillee .practice-complete-icon{background:transparent;border:0;color:var(--lichen)}
.veillee .practice-finish h1{font-size:2.2rem}
.veillee .practice-finish>p{color:var(--mist)}
.veillee .practice-result{background:transparent;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);border-radius:0}
.veillee .practice-result strong{font-family:var(--story);font-weight:300;font-size:3rem;color:var(--snow)}

/* ---------- A course: the trail ---------- */
.veillee .course-hero{padding:4px 24px 18px}
.veillee .course-hero h1{font-size:clamp(2.3rem,10.5vw,2.9rem);letter-spacing:-.025em;text-shadow:0 2px 26px rgb(0 0 0 / .35)}
.veillee[data-screen="course"] .page-top{min-height:calc(var(--scene-h) - 150px)}
.veillee[data-screen="course"] .page-top h1{font-family:var(--story);font-weight:400;font-size:1.05rem;letter-spacing:0;color:rgb(243 238 228 / .85)}
.veillee .intro-text{color:rgb(243 238 228 / .86);font-family:var(--story);font-size:1.02rem}
.veillee .tabs{background:rgb(10 13 18 / .45);border:1px solid var(--hair);border-radius:999px;margin-left:24px;margin-right:24px}
.veillee .tab{color:rgb(243 238 228 / .7);border-radius:999px}
.veillee .tab.active,.veillee .tab.active:hover{background:var(--snow);color:#1b1e23;box-shadow:none}
.veillee .trail-step:not(:last-child):before{border-left:2px dashed rgb(243 238 228 / .22)}
.veillee .trail-node,.veillee .trail-step.done .trail-node,.veillee .trail-step.current .trail-node{border:3px solid var(--ground,var(--night));color:var(--snow);box-shadow:0 0 0 1.5px rgb(243 238 228 / .25);
 background:linear-gradient(rgb(8 10 14 / .45),rgb(8 10 14 / .45)),var(--card-img,none) 50% 52%/cover,#253040}
.veillee .trail-step.done .trail-node{box-shadow:0 0 0 1.5px var(--snow)}
.veillee .trail-step.current .trail-node{background:linear-gradient(rgb(8 10 14 / .15),rgb(8 10 14 / .15)),var(--card-img,none) 50% 52%/cover,#253040;box-shadow:0 0 0 2px var(--snow),0 0 24px 4px rgb(255 255 255 / .28)}
.veillee .trail-step.locked .trail-node{filter:grayscale(.9) brightness(.65)}
.veillee .trail-card,.veillee .current .trail-card,.veillee .trail-step.current .trail-card,.veillee .trail-step.done .trail-card:hover{background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;box-shadow:none;opacity:1}
.veillee .trail-step.locked .trail-card{opacity:.55}
.veillee .trail-card h3{font-family:var(--story);font-weight:500;font-size:1.08rem}
.veillee .trail-card .tag{color:var(--mist)}
.veillee .trail-card .meta{color:var(--mist)}
.veillee .current .trail-card h3{color:var(--snow)}
.veillee .trail-quote{background:linear-gradient(0deg,rgb(8 10 14 / .82),rgb(8 10 14 / .1)),url('../assets/history/towers-1.webp') 50% 40%/cover;margin-left:24px;margin-right:24px}
.veillee .trail-quote:before{display:none}
.veillee .trail-quote p{font-family:var(--story);font-weight:400}
.veillee .trail-quote small{color:rgb(243 238 228 / .8);text-transform:lowercase;letter-spacing:0;font-family:var(--story);font-size:.85rem;display:inline-block}
.veillee .trail-quote small::first-letter{text-transform:uppercase}
.veillee .detail-panel p,.veillee .detail-panel li{color:var(--mist)}
.veillee .detail-chip{color:var(--snow)}
.veillee .detail-chip svg{color:var(--mist)}

/* ---------- Lessons and training sessions ---------- */
.veillee .lesson-screen{--scene-h:32svh}
.veillee .lesson-screen[data-step-type="learn"]{--scene-h:40svh}
.veillee .lesson-screen:not([data-step-type]){--scene-h:52svh}
.veillee .lesson-header{position:relative;z-index:2;padding-top:calc(16px + env(safe-area-inset-top))}
.veillee .lesson-header .icon-button{color:var(--snow);width:44px;height:44px;flex-basis:44px;border-radius:50%}
.veillee .lesson-header .progress-track{height:4px;background:rgb(243 238 228 / .26)}
.veillee .lesson-count{color:var(--snow);font-family:var(--story)}
.veillee .lesson-body{padding-top:calc(var(--scene-h) - 170px)}
.veillee .lesson-screen:not([data-step-type]) .lesson-body{padding-top:calc(var(--scene-h) - 176px)}
.veillee .lesson-kicker{color:rgb(243 238 228 / .88);text-shadow:0 1px 16px rgb(0 0 0 / .4)}
.veillee .lesson-heading{font-size:clamp(1.9rem,8.4vw,2.35rem);line-height:1.1;letter-spacing:-.02em;text-shadow:0 2px 26px rgb(0 0 0 / .35)}
.veillee .lesson-description{color:var(--snow);opacity:.88;font-family:var(--story);font-size:1.04rem}
.veillee .lesson-plan{background:transparent;border:0;border-top:1px solid var(--hair);border-radius:0;padding:18px 0 0}
.veillee .lesson-plan h2{font-size:1.15rem}
.veillee .lesson-plan ol{color:var(--snow)}
.veillee .lesson-plan ol li::marker{color:var(--mist)}
.veillee .lesson-plan p{color:var(--mist)}
.veillee .mascot-welcome{position:relative}
/* Personnages : deux silhouettes de profil, chacune dans sa fenêtre en arc (scripts/characters-art.mjs).
   Elles regardent vers la droite ; celles qui parlent depuis la droite se tournent vers l’autre. */
.veillee .mascot-welcome{gap:16px}
.veillee .mascot-image.mirrored,.veillee .dialogue-turn.turn-right .speaker-portrait .mascot-image{transform:scaleX(-1)}
.veillee .lesson-dock{background:linear-gradient(180deg,rgb(0 0 0 / 0),var(--ground,var(--night)) 34%);border-top:0;padding-top:30px}
.veillee .lesson-dock .small{color:var(--mist)}
.veillee .word-card,.veillee .study-card{background:rgb(10 13 18 / .5);border:1px solid var(--hair);border-radius:22px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:none}
.veillee .word-card .ce-word,.veillee .memory-word,.veillee .dialogue-ce{font-family:var(--story);font-weight:500;color:var(--snow)}
.veillee .word-card .ce-word{font-size:2.1rem;line-height:1.15}
.veillee .word-card .tag{color:var(--mist)}
.veillee .study-meaning{font-family:var(--story);font-size:1.2rem;color:var(--snow)}
.veillee .original-script{color:var(--mist)}
.veillee .usage-note{background:var(--glass);border:0;color:var(--snow)}
.veillee .explanation-card,.veillee .context-card{background:transparent;border:0;border-top:1px solid var(--hair);border-radius:0;padding:16px 0 0}
.veillee .explanation-card h2{font-family:var(--story);font-weight:500;font-size:.95rem;color:var(--mist)}
.veillee .explanation-card p,.veillee .context-card{color:var(--snow);font-size:1rem;line-height:1.65}
.veillee .source-reference,.veillee .lesson-reference{color:var(--accent)}
.veillee .alternative-card,.veillee .grammar-role{background:var(--glass);border:1px solid var(--hair)}
.veillee .alternative-card .tag{color:var(--mist)}
.veillee .grammar-role small,.veillee .branch-note,.veillee .meta{color:var(--mist)}
.veillee .translation-card{background:transparent;border:0;border-radius:0;padding:0}
.veillee .translation-card p{font-family:var(--story);font-weight:300;font-size:1.45rem;line-height:1.25;color:var(--snow)}
.veillee .choice{background:rgb(243 238 228 / .07);border:1px solid rgb(243 238 228 / .22);border-radius:16px;color:var(--snow)}
.veillee .choice:not(:disabled):hover{background:rgb(243 238 228 / .13);border-color:rgb(243 238 228 / .4)}
.veillee .choice [lang="ce-Latn"]{font-family:var(--story);font-weight:500;font-size:1.05rem}
.veillee .choice-label{border:1.5px solid rgb(243 238 228 / .4);border-radius:50%;color:var(--mist);font-family:var(--story)}
.veillee .choice.selected{border-color:var(--snow);background:rgb(243 238 228 / .16)}
.veillee .choice.selected .choice-label{border-color:var(--snow);background:var(--snow);color:#1b1e23}
.veillee .choice.correct{border-color:var(--lichen);background:rgb(166 209 162 / .18)}
.veillee .choice.correct .choice-label{background:var(--lichen);border-color:var(--lichen);color:#10200f}
.veillee .choice.wrong{border-color:var(--rust);background:rgb(239 154 133 / .15)}
.veillee .choice.wrong .choice-label{color:var(--rust);border-color:var(--rust)}
.veillee .result-icon{color:var(--lichen)}
.veillee .feedback-dock{background:#17241c;border-top:2px solid var(--lichen)}
.veillee .feedback-dock.error{background:#2a1b1a;border-color:var(--rust)}
.veillee .feedback-title{color:var(--lichen);font-family:var(--story);font-weight:500;font-size:1.15rem}
.veillee .feedback-dock.error .feedback-title{color:var(--rust)}
.veillee .feedback-copy{color:var(--snow)}
.veillee .feedback-dock.error .button{background:var(--snow)}
.veillee .tile-answer{background:transparent;border:1.5px dashed rgb(243 238 228 / .3)}
.veillee .tile-answer:empty:before{color:var(--mist)}
.veillee .word-tile,.veillee .tile-answer .word-tile{background:rgb(243 238 228 / .08);border:1px solid rgb(243 238 228 / .3);border-bottom-width:1px;border-radius:999px;color:var(--snow);font-family:var(--story);font-weight:500}
.veillee .word-tile:hover{background:rgb(243 238 228 / .16)}
.veillee .tile-answer .word-tile{background:var(--snow);color:#1b1e23;border-color:var(--snow)}
.veillee .word-tile:disabled{opacity:.35}
.veillee .match-button{background:rgb(243 238 228 / .07);border:1px solid rgb(243 238 228 / .22);color:var(--snow)}
.veillee .match-button [lang="ce-Latn"]{font-family:var(--story);font-weight:500}
.veillee .match-button.selected{border-color:var(--accent);background:rgb(243 238 228 / .15)}
.veillee .match-button.matched{background:rgb(166 209 162 / .16);border-color:rgb(166 209 162 / .6);color:var(--lichen)}
.veillee .match-button.wrong{background:rgb(239 154 133 / .16)}
.veillee .match-count{color:var(--mist)}
/* Conversations */
.veillee .dialogue-context{color:var(--snow);font-family:var(--story);font-size:1.02rem}
.veillee .dialogue-bubble,.veillee .dialogue-turn .dialogue-bubble{background:rgb(243 238 228 / .08);border:1px solid var(--hair);color:var(--snow)}
.veillee .dialogue-bubble.reply,.veillee .dialogue-turn.turn-right .dialogue-bubble{background:rgb(243 238 228 / .14);border-color:rgb(243 238 228 / .22)}
.veillee .dialogue-ce{font-size:1.15rem}
.veillee .dialogue-fr,.veillee .turn-header strong,.veillee .turn-header small,.veillee .cast-people figcaption{color:var(--mist)}
.veillee .conversation-role,.veillee .conversation-role:hover,.veillee .conversation-role:focus-visible{background:var(--glass);border:1px solid var(--hair);color:var(--snow)}
.veillee .conversation-role:hover{border-color:rgb(243 238 228 / .45)}
.veillee .conversation-role span{color:var(--mist)}
.veillee .conversation-cue{background:transparent;border:0;border-top:1px solid var(--hair);border-radius:0;padding-top:14px}
.veillee .conversation-cue h2{color:var(--mist);font-weight:500;font-size:.9rem}
.veillee .conversation-cue p{font-family:var(--story);color:var(--snow)}
.veillee .conversation-feedback{background:rgb(166 209 162 / .14);color:var(--snow)}
.veillee .conversation-feedback.is-error{background:rgb(239 154 133 / .14)}
.veillee .conversation-replay summary{color:var(--accent)}

/* ---------- Memory cards: night on the front, dawn paper on the back ---------- */
.veillee .flip-face{border:1px solid var(--hair);box-shadow:0 20px 50px -20px rgb(0 0 0 / .7)}
.veillee .flip-front{background:linear-gradient(180deg,rgb(6 9 20 / .25),rgb(6 9 20 / .8)),url('../assets/veillee/home-night.webp') 50% 12%/cover;color:var(--snow)}
.veillee .flip-back{background:linear-gradient(180deg,#fbf3e2,#f1dfc0);border-color:#e6cfa4;color:#2a2018}
.veillee .flip-card:hover .flip-face,.veillee .flip-card:hover .flip-back{box-shadow:0 26px 60px -20px rgb(0 0 0 / .75)}
.veillee .flip-front .flip-side-label,.veillee .flip-front .flip-question,.veillee .flip-front .flip-hint{color:rgb(243 238 228 / .82)}
.veillee .flip-front .memory-word,.veillee .flip-front .memory-meaning{color:var(--snow);text-shadow:0 2px 20px rgb(0 0 0 / .5)}
.veillee .flip-back .flip-side-label,.veillee .flip-back .flip-hint,.veillee .flip-back .memory-variant{color:#7a5a36}
.veillee .flip-back .memory-word,.veillee .flip-back .memory-meaning{color:#2a2018}
.veillee .flip-back .memory-answer{border-top-color:#d9c29a}
.veillee .flip-back .memory-answer>p{color:#4a3a28}
.veillee .flip-back .grammar-role{background:rgb(42 32 24 / .06);border-color:#dcc6a0}
.veillee .flip-back .grammar-role p,.veillee .flip-back .grammar-role small{color:#4a3a28}
.veillee .memory-question{color:var(--mist)}

/* ---------- Success ---------- */
.veillee .success-screen{isolation:isolate;background:var(--ground,#141526);--scene-h:64svh}
.veillee .success-screen::before{content:'';position:absolute;z-index:-1;left:0;right:0;top:0;height:var(--scene-h);background:linear-gradient(180deg,rgb(6 8 12 / .35) 0,rgb(6 8 12 / 0) 20%,rgb(6 8 12 / 0) 48%,#141526 99%),url('../assets/veillee/success.webp') 50% 40%/cover}
.veillee .success-screen .brand{color:var(--snow)}
.veillee .success-screen .pill{display:none}
.veillee .success-screen h1{font-size:clamp(2rem,9vw,2.6rem);text-shadow:0 2px 26px rgb(0 0 0 / .35)}
.veillee .success-screen>.muted{color:var(--snow);opacity:.88;font-family:var(--story);font-size:1.04rem}
.veillee .confetti i{border-radius:50%;width:4px!important;height:4px!important;background:#fff!important;box-shadow:0 0 8px 2px rgb(255 255 255 / .55)}
.veillee .stats-row{gap:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.veillee .stat,.veillee .stat.orange{background:transparent;border:0;border-radius:0;padding:16px 4px}
.veillee .stat+.stat{border-left:1px solid var(--hair)}
.veillee .stat-icon,.veillee .stat.orange .stat-icon{display:none}
.veillee .stat strong{font-family:var(--story);font-weight:500;font-size:1.5rem;color:var(--snow)}
.veillee .stat span{color:var(--mist)}
.veillee .success-quote{font-family:var(--story);color:var(--snow);opacity:.9}

/* ---------- Progress, profile, about ---------- */
/* The little Vainakh tower whose window lights up (daily goal, week). */
.veillee .tower-glyph{display:block;width:100%;height:100%;overflow:visible}
.veillee .tower-glyph :is(.t-body,.t-roof){fill:rgb(243 238 228 / .24)}
.veillee .tower-glyph .t-window{fill:rgb(6 8 12 / .7)}
.veillee .tower-glyph.is-lit :is(.t-body,.t-roof){fill:rgb(243 238 228 / .42)}
.veillee .tower-glyph.is-lit .t-window{fill:#fff7e4;filter:drop-shadow(0 0 3px rgb(255 247 228 / .95)) drop-shadow(0 0 9px rgb(255 247 228 / .6))}

/* Progress: the ascent */
.veillee .progress-screen{--scene-h:44svh}
.veillee .progress-screen .page-top{min-height:calc(var(--scene-h) - 110px)}
.veillee .progress-screen .screen-inner{padding-top:0}
.veillee .ascent-count{display:flex;align-items:baseline;gap:12px;margin-top:2px}
.veillee .ascent-count span{font-weight:300;font-size:clamp(4.4rem,22vw,5.6rem);line-height:.9;letter-spacing:-.04em;color:var(--snow)}
.veillee .ascent-count small{font-size:1rem;color:var(--mist)}
.veillee .ascent-caption{color:var(--mist);font-size:.95rem;margin-top:8px}
.veillee .ascent-ridge{display:block;width:calc(100% + 48px);height:auto;margin:14px -24px 6px;overflow:visible}
.veillee .ascent-far{fill:rgb(243 238 228 / .05)}
.veillee .ascent-mass{fill:url(#ascent-fill)}
.veillee .ascent-snow{fill:rgb(243 238 228 / .22)}
.veillee .ascent-trail{fill:none;stroke:rgb(243 238 228 / .32);stroke-width:1.2;stroke-dasharray:2 4;stroke-linecap:round;stroke-linejoin:round}
.veillee .ascent-walked{fill:none;stroke:var(--snow);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.veillee .ascent-ridge circle{fill:var(--ground,var(--night));stroke:rgb(243 238 228 / .45);stroke-width:1}
.veillee .ascent-ridge circle.is-done{fill:var(--snow);stroke:none}
.veillee .ascent-here circle{fill:none;stroke:var(--snow);stroke-width:1.5;filter:drop-shadow(0 0 6px rgb(255 255 255 / .7))}
.veillee .ascent-here path{fill:var(--snow);stroke:var(--snow);stroke-width:1.4;stroke-linejoin:round}
.veillee .ascent-labels text{fill:var(--mist);font-family:var(--story);font-size:9.5px;font-weight:500;letter-spacing:.05em}
.veillee .ascent-next{display:flex;align-items:center;gap:14px;width:100%;margin:6px 0 18px;padding:12px 14px;border-radius:16px;background:var(--glass);border:1px solid var(--hair);text-align:left;color:var(--snow)}
.veillee .ascent-next:hover{background:var(--glass-2)}
.veillee .ascent-next small{color:var(--mist);font-size:.78rem}
.veillee .ascent-next>svg{color:var(--snow)}
.veillee .ascent-courses{list-style:none;margin:0;padding:0}
.veillee .ascent-courses li{display:grid;grid-template-columns:2.4rem 1fr 3.4rem 3rem;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--hair)}
.veillee .ascent-level{font-weight:300;font-size:1.35rem;line-height:1}
.veillee .ascent-name{font-weight:500;font-size:.95rem}
.veillee .ascent-bar{height:2px;background:rgb(243 238 228 / .16);border-radius:2px;overflow:hidden}
.veillee .ascent-bar span{display:block;height:100%;background:var(--snow)}
.veillee .ascent-fraction{text-align:right;color:var(--mist);font-size:.85rem;font-variant-numeric:tabular-nums}
.veillee .ascent-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:26px 0 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.veillee .ascent-stats div{padding:16px 0 14px;display:flex;flex-direction:column-reverse;gap:4px}
.veillee .ascent-stats div+div{padding-left:14px;border-left:1px solid var(--hair)}
.veillee .ascent-stats dt{color:var(--mist);font-size:.78rem}
.veillee .ascent-stats dd{margin:0;font-weight:300;font-size:2rem;line-height:1;letter-spacing:-.02em}
.veillee .week-towers{margin-top:34px}
.veillee .week-towers h2,.veillee .steps-list h2{font-size:1.35rem;margin-bottom:16px}
.veillee .week-towers ol{list-style:none;margin:0;padding:18px 0 0;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;align-items:end;background:radial-gradient(60% 70% at 50% 100%,rgb(243 238 228 / .05),transparent)}
.veillee .week-towers li{display:grid;justify-items:center;gap:8px}
.veillee .week-towers .tower-glyph{width:32px;height:54px}
.veillee .week-towers li.is-lit{position:relative}
.veillee .week-towers li.is-lit:before{content:'';position:absolute;top:-6px;left:50%;width:56px;height:56px;margin-left:-28px;border-radius:50%;background:radial-gradient(closest-side,rgb(255 247 228 / .16),transparent);pointer-events:none}
.veillee .week-towers li span{font-size:.72rem;color:var(--mist)}
.veillee .week-towers li.is-today span{color:var(--snow);font-weight:500;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.veillee .week-note{color:var(--mist);font-size:.85rem;margin-top:14px}
.veillee .steps-list{margin-top:34px}
.veillee .steps-list ol{list-style:none;margin:0;padding:0}
.veillee .steps-list li+li{border-top:1px solid var(--hair)}
.veillee .step-row{display:flex;align-items:center;gap:14px;width:100%;padding:12px 0;background:none;border:0;text-align:left;color:var(--snow)}
.veillee .step-art{width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:var(--card-img,none) 50% 52%/cover,#253040}
.veillee .step-copy{display:grid;gap:3px;flex:1;min-width:0}
.veillee .step-copy strong{font-weight:500;font-size:1rem}
.veillee .step-copy small{color:var(--mist);font-size:.8rem}
.veillee .step-row>svg{color:var(--mist)}
.veillee .step-row:hover .step-copy strong{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.veillee .steps-empty p{color:var(--mist);margin-bottom:16px}
.veillee .profile-card{background:transparent;border:0}
.veillee .profile-card .avatar{background:transparent;border:1.5px solid var(--accent);color:var(--accent);font-family:var(--story)}
.veillee .profile-card h2{font-size:1.7rem}
.veillee .settings-row{border-bottom:1px solid var(--hair);color:var(--snow)}
.veillee .settings-row svg{color:var(--mist)}
.veillee .settings-row>svg:last-child{color:var(--mist)}
.veillee .settings-row.danger{color:var(--rust)}
.veillee .settings-row.danger svg{color:var(--rust)}
.veillee .profile-note{color:var(--mist)}
.veillee .account-card{background:var(--glass);border:1px solid var(--hair);box-shadow:none}
.veillee .about-body p{color:rgb(243 238 228 / .9);font-family:var(--story);font-size:1.04rem;line-height:1.72}
.veillee .about-body .landscape-banner{background:url('../assets/history/towers-1.webp') 50% 45%/cover;border:0;border-radius:20px;padding:0;margin:20px 0}
.veillee .marketing-footer{background:#0d1218;color:var(--snow);border-top:1px solid var(--hair)}
.veillee .footer-quote{font-family:var(--story);font-weight:500}
.veillee .footer-features{border-color:var(--hair)}
.veillee .footer-features span,.veillee .footer-translation,.veillee .footer-bottom{color:var(--mist)}
.veillee .footer-features svg{color:var(--mist)}

/* ---------- Desktop: the phone stands in front of the painted valley ---------- */
@media(min-width:760px){
 .veillee body{background:transparent}
 .veillee body:before{content:'';position:fixed;inset:-60px;z-index:-1;background:url('../assets/veillee/home-night.webp') 50% 40%/cover;filter:blur(28px) brightness(.5) saturate(1.1)}
 .veillee[data-daypart="dawn"] body:before{background-image:url('../assets/veillee/home-dawn.webp')}
 .veillee[data-daypart="day"] body:before{background-image:url('../assets/veillee/home-day.webp')}
 .veillee[data-daypart="dusk"] body:before{background-image:url('../assets/veillee/home-dusk.webp')}
 .veillee .phone{box-shadow:0 0 0 1px rgb(243 238 228 / .08),0 40px 120px rgb(0 0 0 / .6)}
 .veillee .desktop-brand{color:var(--snow)}
 .veillee .desktop-wordmark{font-family:var(--story);font-weight:500;letter-spacing:-.04em}
 .veillee .desktop-brand>span:last-child{font-family:var(--story);font-size:1rem;letter-spacing:0;color:rgb(243 238 228 / .75)}
 .veillee .desktop-note{color:rgb(243 238 228 / .7)}
 .veillee .desktop-note span:first-child{font-size:.8rem;letter-spacing:0}
}
@media(prefers-reduced-motion:reduce){.veillee :is(.course-card,.continue-card){transition:none}.veillee .phone{transition:none}}
