/* Public-only palette. Application controls retain their existing tokens. */
.public-atlas {
  --ink:#382637; --muted:#695767; --subtle:#756573; --canvas:#fcfafc;
  --paper:#fff; --soft:#f4eef5; --line:#ded3de; --strong-line:#ac93a7;
  --accent:#673250; --accent-hover:#482238; --accent-soft:#eee0eb;
  --nav:#532640; --welcome:#532640; --peach:#ffe4bf;
  background:var(--canvas); scrollbar-color:#ac93a7 #f4eef5;
}
.public-atlas ::selection { background:#ffe4bf; color:#532640; }
.public-atlas :focus-visible { outline-color:#ab6092; }
.public-atlas .skip-link:not(:focus) { width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
.public-atlas h1,.public-atlas h2,.public-atlas h3 { font-family:"Sora",var(--font); font-weight:500; }
.public-atlas .site-header { width:min(1280px,calc(100% - 80px)); min-height:88px; border:0; }
.public-atlas .brand>.ui-icon { color:var(--accent); }
.public-atlas .site-nav { font-size:14px; }
.public-atlas .site-nav .button { min-height:44px; }
.public-atlas .welcome { background:var(--welcome); color:white; }
.welcome-inner { width:min(1280px,calc(100% - 80px)); margin:auto; display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:64px; padding:66px 0 48px; }
.welcome-copy h1 { font-size:clamp(2.7rem,4.7vw,4.4rem); line-height:1.09; letter-spacing:-.035em; margin:0 0 25px; text-wrap:initial; }
.welcome-copy h1 span { color:var(--peach); }
.welcome-copy>p { font-size:17px; line-height:1.75; max-width:43ch; color:#efdeea; margin-bottom:27px; }
.public-atlas .welcome-cta { background:var(--peach); color:#492535; min-height:54px; padding:15px 22px; font-weight:650; }
.public-atlas .welcome-cta:hover { background:white; }
.welcome-explain { display:block; width:fit-content; margin-top:19px; font-size:14px; text-decoration:underline; text-underline-offset:5px; }
.welcome-explain:hover { color:var(--peach); }
.welcome-copy>small { display:block; color:#e1c6d8; font-size:12px; max-width:42ch; margin-top:27px; }
.welcome :focus-visible,.public-close :focus-visible { outline-color:var(--peach); }
.sky-atlas { color:var(--ink); min-width:0; background:#f4eef5; border-radius:16px; overflow:hidden; }
.sky-atlas-top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:19px 22px; font-size:13px; }
.sky-atlas-top>span { display:flex; align-items:center; gap:9px; font-weight:600; }
.sky-atlas-top small { font-size:11px; color:var(--muted); }
.sky-geography { width:100%; display:block; aspect-ratio:610/370; }
.sky-city { fill:#513e51; }
.sky-city text { font:500 11px "Public Sans",sans-serif; paint-order:stroke; stroke:#f4eef5; stroke-width:4px; stroke-linejoin:round; }
.sky-line { stroke-width:1.5px; opacity:.32; transition:stroke-width .35s cubic-bezier(.16,1,.3,1),opacity .35s cubic-bezier(.16,1,.3,1); }
.sky-line.is-selected { stroke-width:3px; opacity:1; }
.sky-explore { background:#fff; padding:0 24px 21px; }
.sky-choices { display:flex; gap:5px; border-bottom:1px solid var(--line); margin-bottom:17px; }
.sky-choices button { flex:1; display:flex; align-items:center; justify-content:center; gap:9px; padding:15px 6px; background:none; border:0; border-bottom:3px solid transparent; color:var(--muted); font-size:14px; min-height:52px; }
.sky-choices button:hover { background:#f4eef5; color:var(--ink); }
.sky-choices button[aria-pressed=true] { border-bottom-color:var(--accent); color:var(--ink); font-weight:650; }
.line-swatch { width:18px; height:3px; border-radius:2px; flex:none; }
.swatch-sun { background:#a65419; }.swatch-venus { background:#91437b; }.swatch-jupiter { background:#365da5; }
.sky-readings { min-height:78px; }
.sky-readings strong { font-size:15px; display:block; margin-bottom:6px; }
.sky-readings p { font-size:13px; line-height:1.6; color:var(--muted); margin:0; max-width:60ch; }
.sky-nojs { padding:10px 24px; font-size:13px; }
.welcome-foot { display:flex; align-items:center; gap:40px; padding:20px 0 25px; width:min(1280px,calc(100% - 80px)); margin:auto; border-top:1px solid #80566f; font-size:13px; color:#eedcea; }
.welcome-foot span:first-child { margin-right:auto; color:white; font-weight:600; }
.public-section { width:min(1160px,calc(100% - 80px)); margin:100px auto; scroll-margin-top:24px; }
.public-section-intro { display:grid; grid-template-columns:1.1fr 1fr; align-items:start; gap:95px; margin-bottom:48px; }
.public-atlas h2 { font-size:clamp(1.9rem,3vw,2.75rem); line-height:1.22; letter-spacing:-.03em; }
.public-section-intro p { padding-top:6px; font-size:16px; line-height:1.8; color:var(--muted); max-width:60ch; }
.journey { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:42px; margin:0; }
.journey li { padding-top:24px; border-top:1px solid var(--strong-line); }
.journey-number { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#eee0eb; color:#673250; margin-bottom:21px; font-weight:600; }
.journey h3 { font-size:19px; line-height:1.35; max-width:24ch; }
.journey p { color:var(--muted); font-size:14px; line-height:1.8; max-width:39ch; margin:0; }
.discovery-band { background:#eee4ef; padding:68px 0; }
.discovery-inner { width:min(1160px,calc(100% - 80px)); margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.discovery-inner h2 span { color:var(--accent); }
.discovery-inner>div>p { color:var(--muted); margin:23px 0; line-height:1.8; }
.text-link { display:inline-flex; align-items:center; gap:12px; font-size:14px; font-weight:650; padding:8px 0; text-decoration:underline; }
.text-link:hover { color:var(--accent); }
.discovery-list { margin:0; }
.discovery-list>div { padding:23px 0; border-bottom:1px solid #d1bfd0; }
.discovery-list>div:first-child { padding-top:0; }
.discovery-list>div:last-child { border:0; padding-bottom:0; }
.discovery-list dt { font-size:19px; font-weight:600; margin-bottom:7px; }
.discovery-list dd { color:var(--muted); font-size:14px; line-height:1.75; margin:0; max-width:49ch; }
.access-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.access-plan { border:1px solid var(--line); background:white; border-radius:16px; padding:34px; display:flex; flex-direction:column; }
.access-complete { background:#f0e7f0; border-color:transparent; }
.access-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.access-heading h3 { font-size:25px; margin:0; }
.access-heading>span { font-size:12px; color:var(--muted); }
.access-plan>p { color:var(--muted); font-size:14px; max-width:44ch; }
.access-plan ul { padding:0; margin:12px 0 30px; list-style:none; }
.access-plan li { display:flex; align-items:flex-start; gap:10px; padding:9px 0; font-size:14px; }
.access-plan li .ui-icon { width:18px; height:18px; margin-top:2px; color:var(--accent); }
.access-plan>.button { margin-top:auto; width:100%; min-height:50px; }
.public-faq { display:grid; grid-template-columns:.7fr 1.3fr; gap:80px; }
.public-faq details { border-bottom:1px solid var(--line); }
.public-faq summary { cursor:pointer; padding:22px 26px 22px 0; font-size:16px; font-weight:550; }
.public-faq details:first-child summary { padding-top:8px; }
.public-faq summary::marker { color:var(--accent); }
.public-faq details p { font-size:14px; color:var(--muted); line-height:1.8; padding-bottom:8px; max-width:65ch; }
.public-close { background:var(--welcome); color:white; padding:54px max(40px,calc((100% - 1160px)/2)); display:flex; justify-content:space-between; align-items:center; gap:40px; }
.public-close h2 { max-width:23ch; font-size:2.1rem; }
.public-close p { color:#efdeea; margin:15px 0 0; }
.public-close>.button { flex:none; }
.public-atlas .site-footer { margin-top:0; padding-top:46px; border:0; }
.public-atlas .footer-credits { border-color:var(--line); }
@media(min-width:901px) and (max-width:1120px) {
  .welcome-inner { gap:32px; }.welcome-copy h1 { font-size:3.25rem; }
  .public-atlas .site-nav { gap:17px; }.sky-atlas-top { flex-wrap:wrap; gap:6px; }
}
@media(max-width:900px) {
  .public-atlas .site-header { width:calc(100% - 40px); min-height:76px; }
  .welcome-inner { width:calc(100% - 48px); grid-template-columns:1fr; gap:38px; padding:42px 0 32px; }
  .welcome-copy { max-width:650px; }.welcome-copy h1 { font-size:clamp(2.7rem,7vw,4rem); }
  .welcome-copy>p { max-width:55ch; }.welcome-copy>small { margin-top:22px; max-width:50ch; }
  .sky-atlas { width:100%; max-width:670px; margin:auto; }
  .welcome-foot { width:calc(100% - 48px); gap:22px; flex-wrap:wrap; }
  .welcome-foot span:first-child { width:100%; }
  .public-section { width:calc(100% - 48px); margin:64px auto; }
  .public-section-intro { gap:30px; }.journey { gap:24px; }
  .discovery-inner { width:calc(100% - 48px); gap:42px; }
  .access-plan { padding:25px; }.access-heading { display:block; }.access-heading h3 { margin-bottom:8px; }
  .public-faq { grid-template-columns:1fr; gap:20px; }
  .public-close { padding:40px 24px; flex-direction:column; align-items:flex-start; gap:25px; }
}
@media(max-width:620px) {
  .public-atlas .brand strong { font-size:15px; }
  .welcome-copy h1 { font-size:clamp(2.4rem,10.3vw,3.2rem); line-height:1.12; }
  .welcome-copy>p { font-size:15px; line-height:1.75; }
  .welcome-copy>.button { width:100%; font-size:14px; }
  .welcome-explain { font-size:13px; }.welcome-copy>small { font-size:11px; }
  .sky-atlas-top { padding:16px; gap:6px; flex-wrap:wrap; }.sky-atlas-top>span { font-size:12px; }
  .sky-atlas-top small { font-size:10px; }.sky-geography { aspect-ratio:1.4; object-fit:cover; }
  .sky-explore { padding:0 16px 20px; }.sky-choices button { font-size:12px; gap:6px; }
  .sky-readings { min-height:94px; }.sky-readings strong { font-size:14px; }
  .sky-readings p { font-size:12px; }.welcome-foot { font-size:11px; gap:13px; }
  .public-section-intro,.discovery-inner { grid-template-columns:1fr; gap:12px; }
  .public-section-intro { margin-bottom:30px; }.public-section-intro p { font-size:15px; }
  .journey { grid-template-columns:1fr; gap:28px; }
  .journey li { display:grid; grid-template-columns:34px 1fr; column-gap:16px; padding-top:24px; }
  .journey-number { grid-row:1/3; margin:0; }.journey h3 { font-size:18px; max-width:100%; }.journey p { grid-column:2; max-width:100%; }
  .discovery-band { padding:44px 0; }.discovery-inner { gap:28px; }
  .access-grid { grid-template-columns:1fr; gap:20px; }.access-plan { padding:26px; }
  .access-heading { display:flex; }.access-heading h3 { font-size:22px; margin:0; }
  .public-faq summary { font-size:15px; line-height:1.5; }.public-close h2 { font-size:1.85rem; }
  .public-close p { font-size:14px; }.public-close>.button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .sky-line { transition:none; } }
