/* Shared interior materials: the scenic world continues into reading and utility pages. */
body.gallery-section.detail-gallery::before {
  background-image: url("/artwork/reading-night-v1.webp");
}
body.detail-gallery:is(.account-page,.library-page,.learning-page,.lesson-page,.calendar-page)::before {
  background-image: url("/artwork/today-gallery-night-v1.webp");
}
body.detail-gallery.person-page::before { background-image:url("/artwork/people-garden-v1.webp"); }
.detail-gallery { --interior-surface:linear-gradient(180deg,rgba(21,46,65,.94),rgba(10,32,49,.9) 82%,rgba(5,23,36,0)); }
.interior-eyebrow { color:var(--app-gold);font:500 12px/1.6 var(--font-body);letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px; }
.interior-reading-mount { position:relative;isolation:isolate;background:var(--interior-surface);border-radius:28px 28px 0 0;padding:36px; }
.interior-reading-mount::before { content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border:1px solid #ccb57499;border-radius:inherit;mask-image:linear-gradient(#000,transparent 65%);-webkit-mask-image:linear-gradient(#000,transparent 65%); }
.detail-gallery .interior-reading-mount h2 { margin:0 0 18px;font:400 30px/1.3 var(--font-display); }
.detail-gallery .interior-reading-mount > p:not(.interior-eyebrow) { margin:0;font:400 18px/1.75 var(--font-body);color:var(--app-text); }
body.portrait-reading .app-main { max-width:1320px;padding-top:28px; }
.portrait-introduction { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center;margin-bottom:48px; }
.portrait-introduction h1 { font:400 clamp(44px,5vw,76px)/1.12 var(--font-display);overflow-wrap:anywhere; }
.portrait-intro-text { max-width:38ch;font:400 18px/1.7 var(--font-body);color:var(--app-text);margin:24px 0; }
.portrait-hero-art { width:100%;max-height:480px;object-fit:contain;filter:drop-shadow(0 18px 28px #0005); }
.portrait-anchors { display:grid;gap:0;max-width:480px; }
.portrait-anchors a { display:grid;grid-template-columns:1fr 1fr 22px;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #bda66b33;color:var(--app-text);text-decoration:none; }
.portrait-anchors span { color:var(--app-muted);font-size:14px; }
.portrait-anchors strong { font:400 23px/1.3 var(--font-display); }
.portrait-anchors a:hover { color:var(--app-gold); }
.portrait-reading-chapters { display:grid;gap:36px;max-width:1000px;margin:auto; }
.portrait-reading-chapter { display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;scroll-margin-top:120px; }
.portrait-chapter-art { width:270px;max-width:none;height:270px;object-fit:contain;position:relative;z-index:2; }
.portrait-reading-chapter .interior-reading-mount { padding-left:65px; }
.portrait-reading .detail-actions { max-width:1000px;margin:24px auto 0;padding-left:230px;display:flex;flex-wrap:wrap;gap:12px; }
.detail-gallery:is(.library-page,.learning-page,.lesson-page,.account-page,.calendar-page) .app-main { max-width:1100px; }
.detail-gallery :is(.collection-entry,.journal-postcard,.account-card,.micro-lesson) { background:var(--interior-surface);border:0;border-radius:24px;padding:28px; }
.detail-gallery .collection-empty { padding:32px;background:var(--interior-surface);border-radius:24px; }
.detail-gallery .collection-tabs a[aria-current=page],.detail-gallery .person-tabs [aria-selected=true] { background:#344c68b0; }
.detail-gallery .person-identity-card { background:linear-gradient(180deg,#102f43ed,#0a2038dd,transparent);border-radius:140px 140px 0 0;padding-top:52px; }
.detail-gallery .person-reading-card { background:transparent; }
.detail-gallery :is(.relationship-chapter,.horoscope-chapter) { background:var(--interior-surface);border-radius:24px 24px 0 0; }
.detail-gallery .calendar-content { max-width:680px;margin-inline:auto; }
.calendar-page .lux-card { background:linear-gradient(180deg,#142d43f5,#0b2238ef);padding:28px; }
.calendar-page .lux-calendar-day { min-height:54px;font-size:16px; }
.calendar-page .lux-calendar-label { font-size:13px; }
.detail-gallery .lesson-content .reading-sections { padding:32px;gap:20px; }
.lesson-completed { color:var(--app-gold);padding:16px 0;text-align:center; }
.learning-heading { display:flex;align-items:center;gap:32px;margin-bottom:32px; }
.learning-heading img { width:180px;height:180px;object-fit:contain; }
.learning-heading p { color:var(--app-muted);font-size:16px;margin-top:14px; }
.learning-list { display:grid;gap:0;margin-top:24px; }
.learning-step { display:grid;grid-template-columns:44px minmax(0,1fr) 24px;gap:20px;align-items:center;text-decoration:none;color:var(--app-text);padding:26px 12px;border-bottom:1px solid #bda66b33;transition:background .18s; }
.learning-step:hover { background:#24435d66; }
.learning-step-number { font:400 26px var(--font-display);color:var(--app-gold); }
.learning-step h2 { margin:0 0 8px;font-size:26px; }
.learning-step p { color:var(--app-muted);font-size:16px;line-height:1.6;margin:0; }
.learning-step small { display:block;color:var(--app-gold);margin-top:10px; }
@media(max-width:700px) {
 .portrait-introduction { grid-template-columns:1fr;gap:12px;margin-bottom:28px; }
 .portrait-hero-art { grid-row:1;height:230px; }
 .portrait-introduction h1 { font-size:44px; }
 .portrait-intro-text { font-size:16px;margin:18px 0; }
 .portrait-reading-chapter { grid-template-columns:1fr; }
 .portrait-chapter-art { width:180px;height:180px;justify-self:center;margin-bottom:-40px; }
 .portrait-reading-chapter .interior-reading-mount { padding:60px 22px 28px; }
 .detail-gallery .interior-reading-mount h2 { font-size:26px; }
 .detail-gallery .interior-reading-mount > p:not(.interior-eyebrow) { font-size:16px; }
 .portrait-reading .detail-actions { padding:0; }
 .learning-heading { gap:20px; }
 .learning-heading img { width:110px;height:130px; }
 .learning-step { gap:12px;padding:22px 0;grid-template-columns:30px minmax(0,1fr) 20px; }
 .learning-step h2 { font-size:24px; }
 .calendar-page .lux-card,.detail-gallery .lesson-content .reading-sections { padding:20px; }
 .calendar-page .lux-calendar-day { min-height:40px; }
}
.detail-gallery.tarot-archive::before { background-image:url("/artwork/reading-night-v1.webp"); }
.detail-gallery .navigation-row { background:linear-gradient(90deg,#142e43dc,#10263d66,transparent);border:0;border-bottom:1px solid #bda66b33;border-radius:0;padding:24px; }
.detail-gallery .navigation-row .history-art { height:140px;width:94px;object-fit:contain; }
.detail-gallery .navigation-row strong { font:400 28px/1.3 var(--font-display); }
.detail-gallery .empty-state { background:var(--interior-surface);padding:36px;border-radius:24px; }
.relationship-reading .forecast-layout { display:block; }
.relationship-reading .forecast-cover { display:flex;align-items:center;gap:40px;margin-bottom:40px; }
.relationship-reading .forecast-main-art { width:240px;height:240px;flex-shrink:0; }
.relationship-reading .forecast-headline h1 { font-size:clamp(34px,4vw,56px); }
.relationship-reading .forecast-reading { max-width:800px;margin:auto;display:grid;gap:24px; }
.relationship-reading .reading-section { margin:0; }
.relationship-library .section-home { max-width:900px;margin:auto; }
@media(max-width:700px) {
 .relationship-reading .forecast-cover { flex-direction:column;gap:20px; }
 .relationship-reading .forecast-main-art { width:180px;height:180px; }
 .relationship-reading .interior-reading-mount { padding:24px; }
 .detail-gallery .navigation-row { padding:18px; }
 .detail-gallery .navigation-row strong { font-size:24px; }
}
.portrait-introduction > header { background:linear-gradient(90deg,#061c2be8,#061c2baa 75%,transparent);padding:24px;border-radius:24px; }
@media(max-width:700px) { .portrait-introduction > header { background:linear-gradient(180deg,#0a243beF,#081f33dc 85%,transparent);padding:22px;border-radius:24px 24px 0 0; } }
.learning-list { background:linear-gradient(180deg,#081e31db,#081e31e8 80%,#081e3199);border-radius:24px;padding:0 20px; }
.learning-step-number { white-space:nowrap;font-variant-numeric:tabular-nums; }
@media(max-width:700px) { .learning-list { padding:0 14px; } .learning-step-number { font-size:22px; } }
/* The public entrance uses the same engraved wordmark as the signed-in app. */
.screen-public .entry-brand-image { display:block;width:240px;max-width:70%;margin:8px auto 28px; }
.entry-brand-image img { display:block;width:100%;height:auto; }
body.welcome-page { background:#041725;isolation:isolate; }
body.welcome-page::before { content:'';position:fixed;inset:0;z-index:-1;background:url("/artwork/today-gallery-night-v1.webp") center/cover no-repeat;pointer-events:none; }
.welcome-page .sky-map { display:none; }
body.welcome-page .app-main { max-width:none;padding:0; }
.welcome-scene { min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 24px 20px;text-align:center;background:radial-gradient(ellipse at 50% 52%,#041522b0,transparent 70%); }
.welcome-brand .entry-brand-image { width:260px;max-width:none;margin:0 auto 12px; }
.welcome-art { position:relative;width:min(620px,90vw);height:clamp(190px,30svh,310px);margin:8px 0 20px; }
.welcome-art img { position:absolute;object-fit:contain;filter:drop-shadow(0 16px 20px #0006); }
.welcome-card { height:100%;width:auto;left:50%;transform:translateX(-50%) rotate(-7deg);z-index:2; }
.welcome-sun { height:68%;width:auto;left:5%;top:18%;transform:rotate(-9deg); }
.welcome-moon { height:58%;width:auto;right:7%;top:24%; }
.welcome-copy { position:relative;z-index:2; }
.welcome-eyebrow { color:var(--app-gold);text-transform:uppercase;letter-spacing:.18em;font-size:11px;margin:0 0 16px; }
.welcome-copy h1 { font:400 clamp(38px,4vw,60px)/1.1 var(--font-display);color:var(--app-text);margin:0; }
.welcome-description { font:400 17px/1.65 var(--font-body);color:var(--app-text);margin:18px 0 22px; }
.welcome-actions { display:flex;flex-direction:column;align-items:center;gap:16px; }
.welcome-start { display:inline-flex;align-items:center;justify-content:center;gap:10px;width:240px;max-width:100%;min-height:52px;padding:14px 24px;box-sizing:border-box;border-radius:999px;background:linear-gradient(110deg,#ddc795,#bfa56c);color:#082235;font:500 16px/24px var(--font-body);white-space:nowrap;text-decoration:none;box-shadow:0 4px 18px #d6b97218;transition:transform 160ms ease-out; }
.welcome-start .nav-svg { display:block;width:20px;height:20px;flex:0 0 20px; }
@media(hover:hover) and (pointer:fine) { .welcome-start:hover { transform:translateY(-1px); } }
.welcome-start:active { transform:scale(.98); }
.welcome-login,.welcome-footer a { color:var(--app-text);font:400 14px/1.5 var(--font-body);text-decoration:none; }
.welcome-footer { margin-top:26px; }
.welcome-footer a { color:var(--app-muted);font-size:12px; }
.welcome-page a:focus-visible { outline:2px solid var(--app-gold);outline-offset:5px; }
@keyframes welcome-appear { from { opacity:0;translate:0 12px; } to { opacity:1;translate:0 0; } }
.welcome-art { animation:welcome-appear .65s ease-out both; }
.welcome-copy { animation:welcome-appear .65s .1s ease-out both; }
@media(max-width:600px) {
 .welcome-scene { padding:16px 22px 24px; }
 .welcome-brand .entry-brand-image { width:210px; }
 .welcome-art { width:340px;max-width:100%;height:clamp(160px,26svh,240px);margin:10px 0 22px; }
 .welcome-sun { left:0;height:60%;top:23%; }
 .welcome-moon { right:0;height:50%;top:30%; }
 .welcome-description { font-size:15px; }
 .welcome-copy h1 { font-size:39px; }
 .welcome-eyebrow { font-size:10px;letter-spacing:.14em; }
 .welcome-start { width:min(240px,100%); }
}
@media(prefers-reduced-motion:reduce) { .welcome-art,.welcome-copy { animation:none; }.welcome-start { transition:none;transform:none; } }
.screen-public .entry-form .lux-date-row { grid-template-columns:.85fr 1.3fr 1fr;gap:8px; }
.screen-public .entry-form .lux-date-row > div { min-width:0; }
.screen-public .entry-form .lux-date-row select { width:100%;padding-inline:10px;font-size:15px; }

/* A gallery of the original engraved zodiac illustrations. */
body.zodiac-gallery .app-main { max-width:1080px;padding-bottom:64px; }
.zodiac-gallery .page-heading { margin-bottom:36px; }
.zodiac-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px; }
.zodiac-card { position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;padding:24px 24px 28px;border:1px solid #c9af7633;border-radius:24px;background:linear-gradient(155deg,#17354aeF,#0b2035f5);color:var(--app-text);text-decoration:none;transition:transform 180ms ease-out,border-color 180ms ease-out; }
.zodiac-card-art { display:block;width:100%;max-width:240px;height:auto;aspect-ratio:1;object-fit:contain; }
.zodiac-card-caption { width:100%;margin-top:12px; }
.zodiac-card h2 { margin:0 0 8px;font:400 32px/1.2 var(--font-display); }
.zodiac-card p { margin:0;color:var(--app-muted);font:400 13px/1.5 var(--font-body); }
.zodiac-card-arrow { position:absolute;right:24px;bottom:42px;color:var(--app-gold); }
.zodiac-card-arrow .nav-svg { width:20px;height:20px; }
.zodiac-card:focus-visible { outline:2px solid var(--app-gold);outline-offset:5px; }
@media(hover:hover) and (pointer:fine) { .zodiac-card:hover { transform:translateY(-4px);border-color:#c9af7688; } }
.zodiac-card:active { transform:scale(.985); }
@media(max-width:700px) {
 .zodiac-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
 .zodiac-card { padding:14px 14px 20px;border-radius:20px; }
 .zodiac-card-caption { margin-top:8px; }
 .zodiac-card h2 { font-size:25px; }
 .zodiac-card p { font-size:11px; }
 .zodiac-card-arrow { display:none; }
}
@media(max-width:359px) { .zodiac-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .zodiac-card { transition:none;transform:none; } }

body.horoscope-reading { background:#091e30; }
body.horoscope-reading::before { content:'';position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#091e30c9,#091e30f5 65%),url("/artwork/reading-night-v1.webp") center/cover; }
body.horoscope-reading .app-main { max-width:1100px;padding-top:24px; }
.horoscope-reading .public-brand { display:block;width:fit-content;margin-bottom:24px; }
.horoscope-back { display:inline-flex;align-items:center;gap:6px;color:var(--app-muted);font-size:13px;text-decoration:none;margin-bottom:32px; }
.horoscope-back .nav-svg { width:16px;height:16px; }
.horoscope-edition { display:grid;grid-template-columns:320px minmax(0,1fr);gap:80px;align-items:start;padding:12px 0 48px; }
.horoscope-portrait { position:sticky;top:48px;text-align:center;padding-top:12px; }
.horoscope-sign-art { display:block;width:100%;max-width:300px;height:auto;margin:0 auto 12px; }
.horoscope-portrait h1 { font:400 52px/1.15 var(--font-display);margin:0 0 12px;color:var(--app-text); }
.horoscope-sign-dates { color:var(--app-muted);font-size:13px;margin:0; }
.horoscope-dateline { display:flex;align-items:center;gap:10px;font:500 12px/1.5 var(--font-body);letter-spacing:.08em;color:var(--app-gold);margin:0 0 22px; }
.horoscope-story-title { font:400 clamp(32px,3.5vw,44px)/1.15 var(--font-display);margin:0 0 24px;color:var(--app-text);text-wrap:balance; }
.horoscope-lead { font:400 20px/1.75 var(--font-body);color:var(--app-text);margin:0 0 30px; }
.horoscope-detail { margin:28px 0; }
.horoscope-column h3 { font:500 11px/1.5 var(--font-body);text-transform:uppercase;letter-spacing:.14em;color:var(--app-muted);margin:0 0 12px; }
.horoscope-detail p { font:400 16px/1.8 var(--font-body);color:var(--app-secondary);margin:0; }
.horoscope-thought { margin:32px 0;padding:4px 0 4px 24px;border-left:2px solid var(--app-gold); }
.horoscope-thought p { font:400 27px/1.45 var(--font-display);color:var(--app-gold);margin:0; }
.horoscope-reading-footer { margin-top:36px;padding-top:24px;border-top:1px solid #bda66b33; }
.horoscope-app-link { display:inline-flex;align-items:center;gap:12px;font-size:14px;color:var(--app-gold);text-decoration:none; }
.horoscope-app-link .nav-svg { width:18px;height:18px; }
.horoscope-reading-footer > p { color:var(--app-muted);font-size:11px;line-height:1.6;margin:16px 0 0; }
.horoscope-reading a:focus-visible { outline:2px solid var(--app-gold);outline-offset:5px; }
@media(max-width:760px) {
 .horoscope-edition { grid-template-columns:1fr;gap:36px;padding-top:0; }
 .horoscope-portrait { position:static;padding-top:0; }
 .horoscope-sign-art { width:200px;margin-bottom:4px; }
 .horoscope-portrait h1 { font-size:42px; }
 .horoscope-back { margin-bottom:12px; }
 .horoscope-dateline { margin-bottom:16px; }
 .horoscope-story-title { font-size:34px;margin-bottom:20px; }
 .horoscope-lead { font-size:18px;line-height:1.7; }
 .horoscope-thought { padding-left:20px; }
 .horoscope-thought p { font-size:25px; }
}
