:root{
  --night:#0e1330; --night2:#171d44; --night3:#232a5c; --gold:#e3b755; --gold-deep:#8a5a00; --cream:#fbf6ea; --cream2:#f1e9d4;
  --ink:#161a2e; --text:#efe9d8; --muted:#b4bad4; --muted-ink:#4a516e; --red:#b3261e; --line:#394070; --ok:#2e7d4f;
  --radius:14px; --font:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif; --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--text);font:1.0625rem/1.65 var(--font);background-image:radial-gradient(1200px 500px at 50% -120px,#1d2766 0,rgba(14,19,48,0) 70%)}
.wrap{width:100%;max-width:46rem;margin:0 auto;padding:0 16px}
a{color:var(--gold);text-underline-offset:.18em}
a:hover{color:#fff}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:10px 14px;border-radius:8px;z-index:10}
.skip:focus{left:8px}
h1,h2,h3{font-weight:600;line-height:1.25;margin:1.6em 0 .5em}
h1{font-size:clamp(1.75rem,6vw,2.5rem);margin-top:.6em;letter-spacing:.2px}
h2{font-size:1.45rem}h3{font-size:1.15rem}
p{margin:.7em 0}
ul,ol{padding-left:1.25em}li{margin:.3em 0}
.muted{color:var(--muted)}
.flush{margin-top:0;margin-bottom:0}
h2.flush{margin-bottom:.5em}
.tablewrap{overflow-x:auto}
.small{font-size:.9rem;color:var(--muted)}
.lede{font-size:1.2rem;color:#f6f0df}
.eyebrow{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--gold);margin:0}
/* header */
.site-header{border-bottom:1px solid var(--line);background:rgba(14,19,48,.85)}
.bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 18px;padding-top:10px;padding-bottom:10px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-size:1.3rem;letter-spacing:.04em;min-height:44px}
.site-header nav ul{display:flex;flex-wrap:wrap;gap:2px 6px;list-style:none;margin:0;padding:0}
.site-header nav a{display:inline-block;padding:10px 8px;min-height:44px;font-family:var(--sans);font-size:.95rem;color:var(--text);text-decoration:none;border-radius:8px}
.site-header nav a:hover{background:var(--night3)}
/* footer */
.site-footer{margin-top:64px;border-top:1px solid var(--line);padding:24px 0 40px;background:#0a0e25}
.disclaimer{font-family:var(--sans);font-size:.95rem;color:var(--text)}
.footlinks{display:flex;flex-wrap:wrap;gap:4px 18px;list-style:none;padding:0;margin:12px 0}
.footlinks a{display:inline-block;padding:10px 0;min-height:44px}
/* hero */
.hero{padding:28px 0 8px}
.hero p{max-width:38rem}
/* cards, forms */
.card{background:var(--night2);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:18px 0}
.paper{background:var(--cream);color:var(--ink);border-radius:var(--radius);padding:18px;margin:18px 0}
.paper a{color:var(--gold-deep)}.paper .muted,.paper .small{color:var(--muted-ink)}
label,.label{display:block;font-family:var(--sans);font-size:.95rem;margin:14px 0 6px;color:var(--text)}
input[type=text],input[type=date],input[type=time],input[type=search],select{width:100%;min-height:48px;font:1rem var(--sans);padding:10px 12px;border-radius:10px;border:2px solid #8e96c2;background:var(--cream);color:var(--ink)}
input::placeholder{color:#5c6385}
.row{display:grid;gap:0 14px;grid-template-columns:1fr}
@media(min-width:34rem){.row.two{grid-template-columns:1fr 1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-family:var(--sans);font-size:.95rem;margin:12px 0}
.check label{margin:0}
.check input{width:24px;height:24px;margin-top:2px;flex:none;accent-color:var(--gold)}
.hint{font-family:var(--sans);font-size:.88rem;color:var(--muted);margin:6px 0 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border:0;border-radius:999px;background:var(--gold);color:var(--ink);font:600 1rem var(--sans);cursor:pointer;text-decoration:none}
.btn:hover{background:#f0cb78;color:var(--ink)}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--gold);border:2px solid var(--gold)}
.btn.ghost:hover{background:var(--night3);color:#fff}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}
.combo{position:relative}
.listbox{position:absolute;left:0;right:0;top:100%;z-index:5;margin:4px 0 0;padding:4px;list-style:none;background:var(--cream);color:var(--ink);border:2px solid #8e96c2;border-radius:10px;max-height:16rem;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.listbox li{margin:0;padding:11px 10px;min-height:44px;font-family:var(--sans);border-radius:6px;cursor:pointer}
.listbox li[aria-selected=true],.listbox li:hover{background:var(--gold)}
.listbox .sub{color:#4a516e;font-size:.85rem}
.notice{font-family:var(--sans);font-size:.95rem;border-left:5px solid var(--gold);background:var(--night2);padding:10px 14px;border-radius:8px;margin:12px 0}
.notice.warn{border-color:#ffb347}.notice.error{border-color:#ff8a80}.notice.ok{border-color:#7ed6a2}
.paper .notice{background:#f6eccb;color:var(--ink)}
.tz-line{font-family:var(--sans);font-size:.95rem;margin:10px 0;color:var(--text)}
/* results */
.glance{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0}
@media(min-width:34rem){.glance{grid-template-columns:1fr 1fr}}
.glance div{background:var(--cream2);color:var(--ink);border-radius:10px;padding:10px 14px}
.glance dt{font-family:var(--sans);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-ink)}
.glance dd{margin:2px 0 0;font-size:1.15rem}
.paper .glance div{background:#fff}
.chart-wrap{max-width:420px;margin:18px auto}
.chart-svg{display:block;width:100%;height:auto;border-radius:18px}
.legend{font-family:var(--sans);font-size:.85rem;text-align:center;color:var(--muted)}
.paper .legend{color:var(--muted-ink)}
.sw{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:-2px;margin:0 4px 0 10px}
.sw-p{background:#14182b;border:1px solid #fff}.sw-d{background:#b3261e}.sw-b{background:#14182b;border:3px solid #b3261e}
.cols{display:grid;gap:16px}
@media(min-width:40rem){.cols{grid-template-columns:1fr 1fr}}
.side-p{border-bottom:3px solid #14182b}.side-d{border-bottom:3px solid var(--red)}
.paper .side-p{border-color:#14182b}
table.acts{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.95rem}
table.acts caption{text-align:left;font-weight:600;padding:8px 0}
table.acts th,table.acts td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.pills{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:8px 0}
.pills li{background:var(--night3);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-family:var(--sans);font-size:.9rem;margin:0}
.paper .pills li{background:#fff;border-color:#c7ccdd}
.cta{border:2px solid var(--gold);background:linear-gradient(180deg,#1b2260,#141a45)}
.price{font-family:var(--sans);font-size:1.05rem}
.soon{display:grid;gap:10px;margin:10px 0}
.soon div{border:1px dashed var(--line);border-radius:10px;padding:10px 14px;font-family:var(--sans)}
.badge{display:inline-block;font-size:.75rem;background:var(--night3);border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin-left:6px}
/* prose + reading */
.prose{padding-bottom:24px}
.prose h2{border-top:1px solid var(--line);padding-top:1em}
.toc ul{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0}
.toc a{display:inline-block;padding:8px 0;min-height:44px}
.reading{background:var(--cream);color:var(--ink);padding:20px 16px;border-radius:var(--radius);margin:18px 0}
.reading h1{font-size:clamp(1.6rem,5.5vw,2.2rem);margin-top:.2em}
.reading h2{font-size:1.35rem;border-top:1px solid #d7ccb0;padding-top:.9em}
.reading .eyebrow{color:var(--gold-deep)}
.reading .muted{color:var(--muted-ink)}
.reading .lede{color:var(--ink)}
.reading .legend,.reading .small{color:var(--muted-ink)}
.reading a{color:var(--gold-deep)}
.gate-list{padding-left:1.1em}
.closing{border-top:2px solid var(--gold);margin-top:2em}
.status{min-height:2em}
/* print and reduced motion */
@media print{
  body{background:#fff;color:#000;font-size:11pt;background-image:none}
  .site-header,.site-footer,.skip,.noprint,.btns{display:none!important}
  .reading,.paper{background:#fff;padding:0;box-shadow:none}
  .chart-wrap{max-width:360px}
  h2,h3{break-after:avoid}.reading section{break-inside:auto}
  a{color:#000}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---- Deep-space look: nebula, starfield, orrery. Pure CSS + two small same-origin SVG tiles; no JS, no external files. ---- */
@media screen{
  html{background-color:#080b22}
  html::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:
    linear-gradient(118deg,transparent 30%,rgba(170,150,235,.10) 46%,rgba(255,236,190,.07) 52%,rgba(170,150,235,.10) 58%,transparent 72%),
    radial-gradient(900px 600px at 12% 8%,rgba(92,52,170,.42),transparent 65%),
    radial-gradient(800px 700px at 92% 30%,rgba(36,64,170,.38),transparent 65%),
    radial-gradient(700px 500px at 50% 100%,rgba(227,183,85,.12),transparent 70%),
    radial-gradient(1100px 800px at 70% 62%,rgba(60,30,120,.25),transparent 70%)}
  body{background:transparent;background-image:none;position:relative}
  body::before,body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-repeat:repeat;background-size:1200px 900px}
  body::before{background-image:url(/assets/stars-a.svg)}
  body::after{background-image:url(/assets/stars-b.svg);background-position:340px 210px;animation:twinkle 7s ease-in-out infinite alternate}
  @keyframes twinkle{from{opacity:.25}to{opacity:1}}
  main.wrap{background:rgba(8,11,34,.68);border:1px solid rgba(57,64,112,.7);border-radius:20px;margin-top:18px;padding-left:18px;padding-right:18px;padding-bottom:24px}
  @media(max-width:34rem){main.wrap{border-radius:14px;padding-left:14px;padding-right:14px;margin-left:8px;margin-right:8px;width:auto}}
  .site-header{background:rgba(8,11,34,.82)}
  .card{background:rgba(23,29,68,.88)}
  .cta{background:linear-gradient(180deg,rgba(27,34,96,.92),rgba(20,26,69,.92))}
  .site-footer{background:rgba(6,9,28,.9)}
  .hero{position:relative;overflow:hidden}
  .hero>*:not(.orrery){position:relative;z-index:1}
  .orrery{position:absolute;right:-70px;top:-36px;width:330px;height:330px;z-index:0;opacity:.62;pointer-events:none}
  .orrery svg{display:block;width:100%;height:100%}
  .orb{transform-box:view-box;transform-origin:200px 200px;animation:orbit 60s linear infinite}
  .o1{animation-duration:34s}.o2{animation-duration:62s;animation-direction:reverse}.o3{animation-duration:98s}.o4{animation-duration:150s;animation-direction:reverse}
  @keyframes orbit{to{transform:rotate(360deg)}}
  @media(max-width:34rem){.orrery{width:250px;height:250px;right:-90px;top:-20px;opacity:.5}}
}
@media screen and (prefers-reduced-motion:reduce){
  body::after{animation:none;opacity:.8}
  .orb{animation:none}
}
@media print{html::before,body::before,body::after,.orrery{display:none!important}}

/* ---- Reading v2: look-back buttons, teaser, guide, emphasis ---- */
.lb-list{list-style:none;padding-left:0;margin:12px 0}
.lb{background:#fff;color:#161a2e;border:1px solid #d7ccb0;border-radius:12px;padding:12px 14px;margin:12px 0}
.lb-text{margin:0 0 4px;font-size:1.05rem}
.lb-src{margin:0 0 8px}
.lb-buttons{display:flex;flex-wrap:wrap;gap:8px}
.lbb{min-height:44px;min-width:44px;padding:8px 16px;border-radius:999px;border:2px solid #4a516e;background:#fff;color:#161a2e;font:600 .95rem var(--sans);cursor:pointer}
.lbb:hover{background:#f6eccb}
.lbb[aria-pressed=true]{background:#e3b755;border-color:#8a5a00;color:#161a2e}
.lb-summary{font-family:var(--sans);font-weight:600;margin:10px 0}
.teaser{border-top:3px solid #e3b755;margin-top:18px;padding-top:6px}
.unlock{font-family:var(--sans);background:#f6eccb;padding:10px 14px;border-radius:10px}
.jump ul{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0}
.jump a{display:inline-block;padding:8px 0;min-height:44px}
.reading section.emph{border-left:4px solid #e3b755;padding-left:12px}
.reading section.emph>h2::after,.reading section.emph>h3::after{content:" \00b7  matches what you marked";font:600 .75rem var(--sans);color:#8a5a00;letter-spacing:.04em}
.reading details.ref{border-top:1px solid #d7ccb0;margin-top:1.4em;padding-top:.6em}
.reading details.ref>summary{cursor:pointer;font-weight:600;font-size:1.2rem;min-height:44px}
.reading #lb-start{background:#f6eccb;color:#161a2e}
.days li{margin:.6em 0}
@media print{.lb{break-inside:avoid;border-color:#999}.lb[data-answer]::after{content:"You marked: " attr(data-answer);display:block;font-weight:600}.lb-buttons{display:none!important}.jump{display:none}.reading details.ref{display:block}}

/* ---- v3: simple-first layout, daily card ---- */
.steps{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;padding:0;margin:14px 0;font-family:var(--sans);font-size:.9rem}
.steps li{padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.steps li[aria-current=step]{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:600}
.first{padding:4px 0 8px}
.first .big{font-size:1.4rem;line-height:1.4;margin:.3em 0}
.first .action{background:#f6eccb;color:#161a2e;border-radius:10px;padding:10px 14px}
.labels{margin-top:.8em}
.mini-grid{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:40rem){.mini-grid{grid-template-columns:repeat(3,1fr)}}
.mini{background:#fff;color:#161a2e;border:1px solid #d7ccb0;border-radius:12px;padding:10px 14px}
.mini h3{margin:.2em 0 .3em;font-size:1.05rem}
.note-item{border-top:1px solid #d7ccb0;padding:2px 0}
.note-item summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-family:var(--sans)}
.notes h3{margin-top:1.2em}
.notes h4{margin:1em 0 .2em;font-family:var(--sans);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-ink)}
details.curious{border-top:1px solid #d7ccb0;margin-top:1.2em;padding-top:.4em}
details.curious>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.action-row{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.paper .btn.ghost{color:#161a2e;border-color:#161a2e}
.paper .btn.ghost:hover{background:#f6eccb;color:#161a2e}
.adds{font-family:var(--sans);font-size:.95rem}
.sides{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:40rem){.sides{grid-template-columns:1fr 1fr}}
.side{background:#fff;color:#161a2e;border-radius:12px;padding:12px 14px;border-top:5px solid #14182b}
.side-d{border-top-color:#b3261e}
.side h3{margin:.2em 0}
.gate-chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:8px 0}
.gate-chips li{background:#f1e9d4;border-radius:999px;padding:3px 10px;font-family:var(--sans);font-size:.85rem;margin:0}
.lean-ease{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:40rem){.lean-ease{grid-template-columns:1fr 1fr}}
.lean-ease>div{background:#fff;border-radius:12px;padding:6px 14px;border:1px solid #d7ccb0}
.day{list-style-position:inside}
.jq{background:#f6eccb;border-radius:8px;padding:8px 12px}
textarea.note{width:100%;min-height:84px;font:1rem var(--sans);padding:10px 12px;border-radius:10px;border:2px solid #8e96c2;background:#fff;color:#161a2e}
.tabs{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}
.tab{min-height:44px;padding:8px 18px;border-radius:999px;border:2px solid var(--gold);background:transparent;color:var(--gold);font:600 .95rem var(--sans);cursor:pointer}
.tab[aria-selected=true]{background:var(--gold);color:var(--ink)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.chip{min-height:44px;min-width:44px;padding:8px 18px;border-radius:999px;border:2px solid #4a516e;background:#fff;color:#161a2e;font:600 .95rem var(--sans);cursor:pointer}
.chip[aria-pressed=true]{background:#e3b755;border-color:#8a5a00}
.daily .personal{background:#f6eccb;border-radius:10px;padding:4px 14px;margin:12px 0}
.daily .personal.quiet{background:#fff;border:1px dashed #b9ad8c}
.moon-list{list-style:none;padding:0;font-family:var(--sans);font-size:.95rem}
.moon-list li{border-left:4px solid #e3b755;padding:4px 10px;margin:6px 0;background:#fff}
.mt{font-weight:600;margin-right:6px}
.week-list{padding-left:1.2em}
.week-list li{margin:.6em 0}
@media print{.steps,.tabs,.action-row{display:none!important}.side,.mini{break-inside:avoid}}

.reading label,.paper label{color:var(--ink)}
.paper .eyebrow,.reading .eyebrow{color:var(--gold-deep)}
.paper .lede,.paper .lede.big,.paper .first .lede{color:var(--ink)}
