/* DayOneToday wing styles (from DayOneToday v5.7), scoped to .dot-scope */
.dot-scope {--paper: #FAF8F4;
    --ink: #1A1A1A;
    --soft: #6B6560;
    --sunrise: #E8853D;
    --line: #E5E0D8;
    --serif: 'Newsreader', Georgia, serif;
    --sans: -apple-system, 'Segoe UI', 'Helvetica Neue', sans-serif;}
.dot-scope * {margin: 0; padding: 0; box-sizing: border-box;}
.dot-scope {background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 17px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;}
.dot-scope a {color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--sunrise); transition: color .15s;}
.dot-scope a:hover {color: var(--sunrise);}
.dot-scope .wrap {max-width: 640px; margin: 0 auto; padding: 0 24px;}
.dot-scope .site-head {padding: 34px 0 0;}
.dot-scope .site-head .wrap {display: block;}
.dot-scope .site-head .mark {display: inline-flex; align-items: center; gap: 11px;}
.dot-scope .mark {display: flex; align-items: center; gap: 12px; border: none;}
.dot-scope .mark svg {display: block;}
.dot-scope .mark-word {font-family: var(--serif); font-size: 1.15em; font-weight: 500; letter-spacing: .01em;}
.dot-scope .head-nav {display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px;
    justify-content: flex-start; margin-top: 20px; padding: 13px 0 14px;
    border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
.dot-scope .head-nav a {border: none; margin-left: 0; font-size: .88em; color: var(--soft); white-space: nowrap;}
.dot-scope .head-nav a:hover {color: var(--ink);}
.dot-scope .hero {padding: 72px 0 56px; text-align: left;}
.dot-scope .hero h1 {font-family: var(--serif);
    font-weight: 400;
    font-size: clamp(2.4em, 7vw, 3.6em);
    line-height: 1.15;
    letter-spacing: -0.015em;}
.dot-scope .hero h1 em {font-style: italic; color: var(--sunrise);}
.dot-scope .hero .sub {margin-top: 20px; color: var(--soft); font-size: 1.05em; max-width: 480px;}
.dot-scope .horizon {border: none; height: 1px; background: var(--line); position: relative; margin: 0;}
.dot-scope .horizon::after {content: ''; position: absolute; left: 24px; top: -4px;
    width: 9px; height: 9px; border-radius: 50%; background: var(--sunrise);}
.dot-scope .today {padding: 56px 0;}
.dot-scope .kicker {font-size: .78em; letter-spacing: .18em; text-transform: uppercase; color: var(--sunrise); font-weight: 600;}
.dot-scope .today-date {color: var(--soft); font-size: .9em; margin-top: 6px;}
.dot-scope .today h2 {font-family: var(--serif); font-weight: 400; font-size: 1.7em; margin-top: 14px; line-height: 1.35;}
.dot-scope .today h2 a {border: none;}
.dot-scope .today .excerpt {margin-top: 14px; color: var(--soft);}
.dot-scope .embed {padding: 8px 0 56px;}
.dot-scope .embed-frame {border: 1px solid var(--line); background: #fff; padding: 8px;}
.dot-scope .embed-frame iframe {width: 100%; display: block; border: 0;}
.dot-scope .signup {padding: 56px 0;}
.dot-scope .signup h3 {font-family: var(--serif); font-weight: 400; font-size: 1.5em;}
.dot-scope .signup p {color: var(--soft); margin-top: 8px;}
.dot-scope .signup .form-slot {margin-top: 22px;}
.dot-scope .signup input[type=email] {width: 100%; max-width: 360px; padding: 13px 16px; font-size: 1em;
    border: 1px solid var(--line); background: #fff; font-family: var(--sans);}
.dot-scope .signup button, .dot-scope .btn {display: inline-block; margin-top: 12px; padding: 13px 30px;
    background: var(--ink); color: var(--paper); border: none; font-size: .95em;
    cursor: pointer; font-family: var(--sans);}
.dot-scope .signup button:hover, .dot-scope .btn:hover {background: var(--sunrise);}
.dot-scope .archive-list {padding: 40px 0 72px;}
.dot-scope .entry {padding: 30px 0; border-bottom: 1px solid var(--line);}
.dot-scope .entry-date {font-size: .82em; color: var(--sunrise); letter-spacing: .08em; text-transform: uppercase; font-weight: 600;}
.dot-scope .entry h2 {font-family: var(--serif); font-weight: 400; font-size: 1.45em; margin-top: 8px; line-height: 1.35;}
.dot-scope .entry h2 a {border: none;}
.dot-scope .entry .entry-excerpt {margin-top: 8px; color: var(--soft); font-size: .97em;}
.dot-scope .single-post {padding: 48px 0 80px;}
.dot-scope .single-post .entry-date {margin-bottom: 10px;}
.dot-scope .single-post h1 {font-family: var(--serif); font-weight: 400; font-size: 2.1em; line-height: 1.25; margin-bottom: 26px;}
.dot-scope .single-post .content p {margin-bottom: 1.3em;}
.dot-scope .single-post .content em {color: var(--sunrise);}
.dot-scope .site-foot {border-top: 1px solid var(--line); padding: 44px 0 56px; margin-top: 40px;}
.dot-scope .socials {display: flex; gap: 20px;}
.dot-scope .socials a {border: none; color: var(--soft); font-size: .92em;}
.dot-scope .socials a:hover {color: var(--sunrise);}
.dot-scope .foot-ad {margin-top: 30px; font-size: .9em; color: var(--soft);}
.dot-scope .foot-ad a {color: var(--soft); border-bottom-color: var(--line);}
.dot-scope .foot-ad a:hover {color: var(--sunrise);}
.dot-scope .foot-fine {margin-top: 22px; font-size: .8em; color: #A8A29B;}
@media (max-width: 560px) {
.dot-scope .hero {padding: 48px 0 40px;}
.dot-scope .head-nav {gap: 5px 13px;}
.dot-scope .head-nav a {margin-left: 0; font-size: .84em;}
}
.dot-scope .head-nav a.nav-deeper {color: var(--sunrise); font-weight: 600;}
.dot-scope .head-nav a.nav-deeper:hover {color: var(--ink);}
.dot-scope .theme-filter {display: flex; flex-wrap: wrap; gap: 16px; margin: 20px 0 4px;}
.dot-scope .theme-filter a {border: none; font-size: .86em; color: var(--soft);
    letter-spacing: .04em; padding-bottom: 2px;}
.dot-scope .theme-filter a:hover {color: var(--ink);}
.dot-scope .theme-filter a.on {color: var(--ink); border-bottom: 1px solid var(--sunrise);}
.dot-scope .aff-shelf {padding: 46px 0; border-top: 1px solid var(--line);}
.dot-scope .aff-intro {margin-top: 10px; color: var(--soft); font-size: .97em;}
.dot-scope .aff-note {margin-top: 14px; font-size: .8em; color: #A8A29B; font-style: italic;}
.dot-scope .aff-note a {border-bottom: 1px solid var(--line); color: #A8A29B;}
.dot-scope .aff-note a:hover {color: var(--soft);}
.dot-scope .aff-grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px; margin-top: 22px;}
.dot-scope .aff-card {display: flex; flex-direction: column; border: 1px solid var(--line);
    padding: 20px; background: #fff; transition: border-color .15s;}
.dot-scope .aff-card:hover {border-color: var(--sunrise);}
.dot-scope .aff-card-title {font-family: var(--serif); font-size: 1.12em; line-height: 1.3;}
.dot-scope .aff-card-author {font-size: .86em; color: var(--soft); margin-top: 3px; font-style: italic;}
.dot-scope .aff-card-note {font-size: .92em; color: var(--soft); margin-top: 10px; line-height: 1.6;}
.dot-scope .aff-card-go {font-size: .82em; color: var(--sunrise); margin-top: 14px; font-weight: 600;}
.dot-scope .aff-list {display: flex; flex-direction: column; gap: 12px; margin-top: 22px;}
.dot-scope .aff-row {display: block; border: none; border-left: 2px solid var(--sunrise);
    padding: 14px 18px; background: #fff;}
.dot-scope .aff-row-name {display: block; font-family: var(--serif); font-size: 1.08em;}
.dot-scope .aff-row-note {display: block; font-size: .92em; color: var(--soft); margin-top: 3px; line-height: 1.6;}
.dot-scope .shop-grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px; margin-top: 28px;}
.dot-scope .shop-card {display: flex; flex-direction: column; border: 1px solid var(--line);
    padding: 24px; background: #fff; transition: border-color .15s;}
.dot-scope .shop-card:hover {border-color: var(--sunrise);}
.dot-scope .shop-name {font-family: var(--serif); font-size: 1.25em;}
.dot-scope .shop-price {font-size: .88em; color: var(--sunrise); margin-top: 4px; font-weight: 600;}
.dot-scope .shop-note {font-size: .93em; color: var(--soft); margin-top: 12px; line-height: 1.6;}
.dot-scope .shop-go {font-size: .82em; color: var(--sunrise); margin-top: 16px; font-weight: 600;}
.dot-scope .sig {margin-top: 28px; color: var(--soft); font-style: italic;}
.dot-scope .masthead {line-height: 0;}
.dot-scope .masthead svg {display: block; width: 100%; height: auto;}
.dot-scope .issue-line {display: flex; justify-content: center; align-items: center; gap: 12px;
    flex-wrap: wrap; padding: 13px 24px;
    border-bottom: 1px solid var(--line);
    font-size: .76em; letter-spacing: .16em; text-transform: uppercase;
    color: var(--soft);}
.dot-scope .issue-line b {color: var(--ink); font-weight: 600;}
.dot-scope .masthead + .issue-line + .hero {padding-top: 44px;}
@media (max-width: 560px) {
.dot-scope .masthead {max-height: 190px; overflow: hidden;}
.dot-scope .masthead svg {min-height: 190px; object-fit: cover;}
.dot-scope .issue-line {font-size: .68em; letter-spacing: .12em; gap: 8px;}
}
.dot-scope .alm-lead {display:grid; grid-template-columns:1.55fr 1fr; gap:34px; padding:32px 0 28px; border-bottom:1px solid var(--line);}
.dot-scope .alm-lead h1 {font-family:var(--serif); font-weight:400; font-size:clamp(1.9em,5vw,2.2em); line-height:1.15; letter-spacing:-.015em; margin:10px 0 12px;}
.dot-scope .alm-lead p {color:#4A4540;}
.dot-scope .alm-meta {font-size:.72em; letter-spacing:1.3px; text-transform:uppercase; color:var(--soft); margin-top:13px;}
.dot-scope .alm-aside {border-left:1px solid var(--line); padding-left:24px;}
.dot-scope .alm-aside h4 {font-size:.7em; letter-spacing:.18em; text-transform:uppercase; color:var(--soft); margin-bottom:14px;}
.dot-scope .alm-disp {padding:10px 0; border-bottom:1px dotted var(--line);}
.dot-scope .alm-disp:last-child {border:none;}
.dot-scope .alm-disp .src {font-size:.62em; letter-spacing:1.2px; text-transform:uppercase; color:#4A6B55;}
.dot-scope .alm-disp p {font-family:var(--serif); font-size:.96em; font-weight:500; line-height:1.3; margin-top:3px;}
.dot-scope .alm-head {font-size:.7em; letter-spacing:.22em; text-transform:uppercase; color:var(--soft); margin:0 0 18px; display:flex; align-items:center; gap:13px;}
.dot-scope .alm-head::after {content:''; flex:1; height:1px; background:var(--line);}
.dot-scope .alm-band {padding:32px 0; border-bottom:1px solid var(--line);}
.dot-scope .firsts {display:grid; grid-template-columns:1fr 1fr; gap:0 28px;}
.dot-scope .frow {display:grid; grid-template-columns:46px 1fr; gap:12px; padding:9px 0; border-bottom:1px dotted var(--line); align-items:baseline;}
.dot-scope .frow .y {font-size:.76em; letter-spacing:.5px; color:var(--sunrise); font-weight:600;}
.dot-scope .frow .e {font-size:.96em; line-height:1.4;}
.dot-scope .alm-note {font-size:.82em; color:var(--soft); font-style:italic; margin-top:14px;}
.dot-scope .terr-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.dot-scope .terr-cell {background:var(--paper); padding:19px 17px; display:block; border:none;}
.dot-scope .terr-cell:hover {background:#F3EFE7;}
.dot-scope .terr-cell .num {font-size:.7em; color:var(--sunrise); letter-spacing:1px;}
.dot-scope .terr-cell h3 {font-family:var(--serif); font-weight:500; font-size:1.2em; margin:5px 0 4px;}
.dot-scope .terr-cell p {font-size:.86em; color:var(--soft); line-height:1.42;}
.dot-scope .world {display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.dot-scope .say {border-left:2px solid var(--sunrise); padding-left:16px;}
.dot-scope .say p {font-family:var(--serif); font-size:1.06em; line-height:1.5;}
.dot-scope .say .origin {font-size:.72em; letter-spacing:1.2px; text-transform:uppercase; color:var(--soft); margin-top:7px;}
.dot-scope .alm-duo {display:grid; grid-template-columns:1fr 1fr; gap:0; border-bottom:1px solid var(--line);}
.dot-scope .alm-shelf {padding:32px 34px 32px 0; border-right:1px solid var(--line);}
.dot-scope .alm-shop {padding:32px 0 32px 34px;}
.dot-scope .shoprow {display:flex; gap:10px; flex-wrap:wrap;}
.dot-scope .shopitem {flex:1 1 110px; border:1px solid var(--line); background:#fff; padding:18px 12px; text-align:center;}
.dot-scope .shopname {font-family:var(--serif); font-size:.94em;}
.dot-scope .colophon {padding:22px 0 40px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.dot-scope .colophon .who {font-family:var(--serif); font-size:.94em; color:var(--soft);}
@media (max-width:700px) {
.dot-scope .alm-lead, .dot-scope .alm-duo, .dot-scope .firsts, .dot-scope .world {grid-template-columns:1fr;}
.dot-scope .alm-aside {border-left:none; border-top:1px solid var(--line); padding-left:0; padding-top:22px;}
.dot-scope .alm-shelf {border-right:none; border-bottom:1px solid var(--line); padding:28px 0;}
.dot-scope .alm-shop {padding:28px 0;}
.dot-scope .terr-grid {grid-template-columns:1fr 1fr;}
}
.dot-scope .hub-head {padding: 44px 0 34px;}
.dot-scope .hub-head h1 {font-family: var(--serif); font-weight: 400; font-size: clamp(2.1em, 6vw, 2.9em);
    line-height: 1.1; letter-spacing: -.02em; margin-top: 10px;}
.dot-scope .hub-blurb {font-size: 1.06em; color: var(--soft); max-width: 520px; margin-top: 14px; line-height: 1.6;}
.dot-scope .hub-count {font-size: .8em; letter-spacing: .12em; text-transform: uppercase; color: var(--soft);
    margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line);}
.dot-scope .hub-sayings .say {margin-bottom: 26px;}
.dot-scope .hub-sayings .say p {font-size: 1.14em; line-height: 1.55;}
.dot-scope .hub-sayings .say:last-child {margin-bottom: 0;}
.dot-scope .hub-disp {padding: 12px 0; border-bottom: 1px dotted var(--line);}
.dot-scope .hub-disp:last-of-type {border-bottom: none;}
.dot-scope .hub-disp .src {font-size: .7em; letter-spacing: .12em; text-transform: uppercase; color: #4A6B55;}
.dot-scope .hub-disp p {font-family: var(--serif); font-size: 1.02em; line-height: 1.35; margin-top: 4px;}
.dot-scope .hub-disp a {border-bottom: 1px solid var(--line);}
.dot-scope .hub-disp a:hover {border-bottom-color: var(--sunrise);}
.dot-scope .cat-row {display: grid; grid-template-columns: 42px 1fr auto; gap: 18px; align-items: baseline;
    padding: 22px 0; border-bottom: 1px solid var(--line); border-top: none; text-decoration: none;}
.dot-scope .cat-row:first-child {border-top: 1px solid var(--line);}
.dot-scope .cat-row:hover {background: #F4F1EA;}
.dot-scope .cat-num {font-size: .8em; color: var(--sunrise); letter-spacing: 1px;}
.dot-scope .cat-name {display: block; font-family: var(--serif); font-size: 1.42em; line-height: 1.2;}
.dot-scope .cat-blurb {display: block; color: var(--soft); font-size: .94em; margin-top: 5px; line-height: 1.45;}
.dot-scope .cat-regions {display: block; font-size: .76em; letter-spacing: .06em; color: #4A6B55; margin-top: 9px;}
.dot-scope .cat-count {text-align: right; white-space: nowrap;}
.dot-scope .cat-count b {display: block; font-family: var(--serif); font-size: 1.5em;}
.dot-scope .cat-count-l {font-size: .7em; letter-spacing: .12em; text-transform: uppercase; color: var(--soft);}
@media (max-width: 620px) {
.dot-scope .cat-row {grid-template-columns: 32px 1fr; gap: 12px;}
.dot-scope .cat-count {grid-column: 2; text-align: left; margin-top: 8px;}
.dot-scope .cat-count b {display: inline; font-size: 1.1em; margin-right: 6px;}
}
.dot-scope .topics-lead {padding: 46px 0 8px;}
.dot-scope .topics-lead h1 {font-family: var(--serif); font-weight: 400; font-size: clamp(2.2em, 6vw, 3em);
    line-height: 1.08; letter-spacing: -.02em;}
.dot-scope .topics-intro {font-size: 1.08em; color: var(--soft); max-width: 540px; margin-top: 16px; line-height: 1.6;}
.dot-scope .topics-band {padding: 30px 0 40px;}
.dot-scope .topic-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line);
    border: 1px solid var(--line);}
.dot-scope .topic-cell {background: var(--paper); padding: 24px 20px 20px; display: block; border: none;
    transition: background .12s;}
.dot-scope .topic-cell:hover {background: #F4F1EA;}
.dot-scope .topic-num {font-size: .78em; color: var(--sunrise); letter-spacing: 1px;}
.dot-scope .topic-cell h2 {font-family: var(--serif); font-weight: 500; font-size: 1.32em; margin: 6px 0 6px;
    line-height: 1.2;}
.dot-scope .topic-blurb {font-size: .92em; color: var(--soft); line-height: 1.45;}
.dot-scope .topic-meta {font-size: .78em; letter-spacing: .08em; text-transform: uppercase; color: var(--soft);
    margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--line);}
.dot-scope .topic-meta b {font-family: var(--serif); font-size: 1.35em; letter-spacing: 0; text-transform: none;
    color: var(--ink);}
.dot-scope .topic-meta-empty {font-style: italic; text-transform: none; letter-spacing: 0;}
.dot-scope .topic-grid-small .topic-cell {padding: 18px 16px;}
.dot-scope .topic-grid-small .topic-cell h2 {font-size: 1.12em;}
.dot-scope .dayone-entry {border-left: 2px solid var(--sunrise); padding-left: 18px;}
.dot-scope .dayone-line {font-family: var(--serif); font-size: 1.4em; line-height: 1.4;}
.dot-scope .dayone-body {color: var(--soft); margin-top: 12px;}
.dot-scope .dayone-more {margin-top: 12px; font-size: .92em;}
.dot-scope .dayone-more a {color: var(--ink); border-bottom: 1px solid var(--sunrise);}
.dot-scope .mat-kind {font-family: var(--serif); font-weight: 500; font-size: 1.12em; margin: 22px 0 10px;}
.dot-scope .mat-kind:first-of-type {margin-top: 0;}
.dot-scope .mat-item {padding: 12px 0; border-bottom: 1px dotted var(--line);}
.dot-scope .mat-item:last-child {border-bottom: none;}
.dot-scope .mat-src {font-size: .72em; letter-spacing: .12em; text-transform: uppercase; color: #4A6B55;}
.dot-scope .mat-title {font-family: var(--serif); font-size: 1.06em; line-height: 1.35; margin-top: 4px;}
.dot-scope .mat-title a {border-bottom: 1px solid var(--line);}
.dot-scope .mat-title a:hover {border-bottom-color: var(--sunrise);}
.dot-scope .mat-note {font-size: .9em; color: var(--soft); margin-top: 5px; line-height: 1.45;}
.dot-scope .head-nav a.nav-sep {border-left: 1px solid var(--line); padding-left: 20px; margin-left: 2px;}
@media (max-width: 860px) {
.dot-scope .topic-grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 560px) {
.dot-scope .topic-grid {grid-template-columns: 1fr;}
}
.dot-scope .saying-single {padding: 56px 0 44px;}
.dot-scope .saying-single .kicker a {border: none; color: var(--sunrise);}
.dot-scope .saying-line {font-family: var(--serif); font-weight: 400; font-size: clamp(1.7em, 5vw, 2.4em);
    line-height: 1.35; margin: 16px 0 0; padding: 0; border: none; max-width: 620px;}
.dot-scope .saying-origin {margin-top: 20px; font-size: .82em; letter-spacing: .12em; text-transform: uppercase;
    color: var(--soft); padding-top: 16px; border-top: 1px solid var(--line);}
.dot-scope .saying-region {color: #4A6B55; margin-left: 10px;}
.dot-scope .saying-note {margin-top: 22px; color: var(--soft); max-width: 560px; line-height: 1.65;}
.dot-scope .saying-rights {margin-top: 18px; font-size: .84em; font-style: italic; color: var(--soft);}
.dot-scope .sh-banner {line-height: 0;}
.dot-scope .sh-banner svg {display: block; width: 100%; height: auto; max-height: 300px;}
.dot-scope .sh-lead {padding: 42px 0 10px;}
.dot-scope .sh-lead h1 {font-family: var(--serif); font-weight: 400; font-size: clamp(2em, 5.5vw, 2.7em);
    line-height: 1.12; letter-spacing: -.015em;}
.dot-scope .sh-intro {font-size: 1.06em; color: var(--soft); max-width: 540px; margin-top: 15px; line-height: 1.6;}
.dot-scope .sh-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;}
.dot-scope .sh-cell {display: block; border: 1px solid #EBDFC6; background: #FFFBF2; border-radius: 10px;
    padding: 20px 18px 17px; text-decoration: none; transition: background .12s, border-color .12s;}
.dot-scope .sh-cell:hover {background: #FFF6E4; border-color: #E8C98A;}
.dot-scope .sh-num {font-size: .78em; color: #E8853D; letter-spacing: 1px;}
.dot-scope .sh-cell h2 {font-family: var(--serif); font-weight: 500; font-size: 1.28em; margin: 5px 0 6px; line-height: 1.2;}
.dot-scope .sh-cell p {font-size: .92em; color: var(--soft); line-height: 1.45;}
.dot-scope .sh-meta {display: block; font-size: .76em; letter-spacing: .08em; text-transform: uppercase;
    color: var(--soft); margin-top: 13px; padding-top: 10px; border-top: 1px solid #F0E6D2;}
.dot-scope .sh-meta b {font-family: var(--serif); font-size: 1.3em; letter-spacing: 0; text-transform: none; color: var(--ink);}
.dot-scope .sh-meta-empty {font-style: italic; text-transform: none; letter-spacing: 0;}
.dot-scope .say.line-say {border-left-color: var(--line-mark, #E8853D);}
.dot-scope .sh-back {margin-top: 14px; font-size: .94em;}
.dot-scope .sh-back a {color: var(--ink); border-bottom: 1px solid #F7C948;}
.dot-scope .cl-band-inner {display: grid; grid-template-columns: 240px 1fr; gap: 26px; align-items: center;}
.dot-scope .cl-band-mark {border: 1px solid #D8CBA8; border-radius: 8px; overflow: hidden; line-height: 0;}
.dot-scope .cl-band-mark svg {display: block; width: 100%; height: auto;}
.dot-scope .cl-band-text p {color: var(--soft); line-height: 1.6;}
@media (max-width: 700px) {
.dot-scope .cl-band-inner {grid-template-columns: 1fr;}
}
@media (max-width: 860px) {
.dot-scope .sh-grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 560px) {
.dot-scope .sh-grid {grid-template-columns: 1fr;}
}
.dot-scope .sh-band-inner {display: grid; grid-template-columns: 240px 1fr; gap: 26px; align-items: center;}
.dot-scope .sh-band-mark {border: 1px solid #EBDFC6; border-radius: 8px; overflow: hidden; line-height: 0;}
.dot-scope .sh-band-mark svg {display: block; width: 100%; height: auto;}
.dot-scope .sh-band-text p {color: var(--soft); line-height: 1.6;}
.dot-scope .head-nav a.nav-sunny {color: #E8853D;}
@media (max-width: 700px) {
.dot-scope .sh-band-inner {grid-template-columns: 1fr;}
}
.dot-scope .ts-nav {display: flex; justify-content: space-between; align-items: baseline;
    padding-bottom: 16px; border-bottom: 1px solid var(--line); margin-bottom: 26px;}
.dot-scope .ts-nav a {border: none; color: var(--soft); font-size: .9em;}
.dot-scope .ts-nav a:hover {color: var(--sunrise);}
.dot-scope .ts-date {font-family: var(--serif); font-size: 1.5em;}
.dot-scope .ts-h1 {font-family: var(--serif); font-weight: 400; font-size: clamp(1.9em, 5vw, 2.5em);
    line-height: 1.14; margin-top: 10px;}
.dot-scope .ts-places {font-size: .82em; letter-spacing: .12em; text-transform: uppercase;
    color: #4A6B55; margin-top: 16px;}
.dot-scope .ts-entry {padding: 22px 0; border-bottom: 1px solid var(--line);}
.dot-scope .ts-entry:last-of-type {border-bottom: none;}
.dot-scope .ts-place {font-size: .74em; letter-spacing: .14em; text-transform: uppercase; color: #4A6B55;}
.dot-scope .ts-entry h2 {font-family: var(--serif); font-weight: 500; font-size: 1.5em; margin: 5px 0 8px; line-height: 1.25;}
.dot-scope .ts-note {color: var(--soft); line-height: 1.6; max-width: 560px;}
.dot-scope .ts-topic {margin-top: 11px; font-size: .9em;}
.dot-scope .ts-topic a {color: var(--ink); border-bottom: 1px solid var(--sunrise);}
.dot-scope .ts-row {display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;}
.dot-scope .ts-cell {border-left: 2px solid var(--sunrise); padding-left: 15px;}
.dot-scope .ts-cell .ts-name {font-family: var(--serif); font-size: 1.16em; margin-top: 3px; line-height: 1.3;}
.dot-scope .ts-cell p {font-size: .88em; color: var(--soft); margin-top: 6px; line-height: 1.5;}
@media (max-width: 700px) {
.dot-scope .ts-row {grid-template-columns: 1fr; gap: 18px;}
}
.dot-scope .topics-sub, .dot-scope .sh-sub {font-size: .96em; color: var(--soft); max-width: 620px; margin-top: 12px; line-height: 1.6;}
.dot-scope .d1-band {background: #FBF9F4;}
.dot-scope .d1-inner {display: grid; grid-template-columns: 240px 1fr; gap: 26px; align-items: center;}
.dot-scope .d1-mark {border: 1px solid #E3D9C6; border-radius: 8px; overflow: hidden; line-height: 0;}
.dot-scope .d1-line {font-family: var(--serif); font-size: 1.42em; line-height: 1.35; margin-bottom: 12px;}
.dot-scope .d1-text p {color: var(--soft); line-height: 1.6;}
.dot-scope .d1-text p.d1-line {color: var(--ink);}
@media (max-width: 700px) {
.dot-scope .d1-inner {grid-template-columns: 1fr;}
}
.dot-scope .d1-lead {padding: 46px 0 34px;}
.dot-scope .d1-base {font-family: var(--serif); font-weight: 400; font-size: clamp(1.8em, 5vw, 2.6em);
    line-height: 1.3; margin: 14px 0 0; padding: 0; border: none; max-width: 640px;}
.dot-scope .d1-base-note {color: var(--soft); max-width: 560px; margin-top: 20px; line-height: 1.65;}
.dot-scope .d1-entry {padding: 22px 0; border-bottom: 1px solid var(--line);}
.dot-scope .d1-entry:last-of-type {border-bottom: none;}
.dot-scope .d1-topic {font-size: .74em; letter-spacing: .14em; text-transform: uppercase;}
.dot-scope .d1-topic a {color: #4A6B55; border: none;}
.dot-scope .d1-entry h2 {font-family: var(--serif); font-weight: 500; font-size: 1.42em; line-height: 1.32; margin: 5px 0 8px;}
.dot-scope .d1-entry h2 a {color: var(--ink); border: none;}
.dot-scope .d1-entry h2 a:hover {border-bottom: 1px solid var(--sunrise);}
.dot-scope .d1-excerpt {color: var(--soft); line-height: 1.6; max-width: 560px;}
.dot-scope .d1-date {font-size: .78em; letter-spacing: .1em; text-transform: uppercase; color: var(--soft); margin-top: 10px;}
.dot-scope .head-nav a.nav-d1 {color: var(--ink); font-weight: 600;}
.dot-scope .d1-tome {margin-top: 18px; max-width: 620px;}
.dot-scope .d1-tome p {font-family: var(--serif); font-size: clamp(1.35em, 3.4vw, 1.72em);
    line-height: 1.5; color: var(--ink); margin: 0;}
.dot-scope .d1-tome .d1-ask {margin-top: 1em;}
.dot-scope .d1-tome .d1-answer {color: var(--sunrise);}
.dot-scope .rm {padding: 12px 0; border-bottom: 1px dotted var(--line);}
.dot-scope .rm:last-of-type {border-bottom: none;}
.dot-scope .rm h4 {font-family: var(--serif); font-weight: 500; font-size: 1.08em;}
.dot-scope .rm p {font-size: .88em; color: var(--soft); margin-top: 4px;}
.dot-scope .nav-critter {color: #6B8F4E;}
.dot-scope .mat-list {margin-top: 6px;}
.dot-scope .mat-item {padding: 12px 0; border-bottom: 1px dotted var(--line);}
.dot-scope .mat-item:last-of-type {border-bottom: none;}
.dot-scope .mat-src {font-size: .72em; letter-spacing: 1.2px; text-transform: uppercase; color: var(--soft);}
.dot-scope .mat-title {font-family: var(--serif); font-size: 1.06em; margin-top: 4px;}
.dot-scope .mat-note {font-size: .88em; color: var(--soft); margin-top: 4px;}
.dot-scope .piece-poem, .dot-scope .piece-limerick {border-left: 2px solid var(--sunrise); padding-left: 16px; margin-bottom: 20px;}
.dot-scope .poem-text, .dot-scope .limerick-text {font-family: var(--serif); font-size: 1.1em; line-height: 1.6; white-space: pre-line;}
.dot-scope .piece-story {padding: 16px 0; border-bottom: 1px dotted var(--line);}
.dot-scope .piece-type-label {font-size: .72em; letter-spacing: 1.2px; text-transform: uppercase; color: var(--sunrise);}
.dot-scope .piece-story h3 {font-family: var(--serif); font-weight: 500; font-size: 1.2em; margin-top: 6px;}
.dot-scope .story-excerpt {font-size: .95em; color: var(--soft); margin-top: 6px;}
.dot-scope .story-meta {font-size: .82em; color: var(--soft); margin-top: 8px;}
.dot-scope .region-browse {margin-top: 8px;}
.dot-scope .region-chips {display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px;}
.dot-scope .region-chip {font-size: .82em; padding: 5px 12px; border: 1px solid var(--line); border-radius: 20px; color: var(--soft);}
.dot-scope .region-chip:hover {border-color: var(--sunrise); color: var(--ink);}
.dot-scope .sh-band {background: #FFFBF2;}
.dot-scope .cl-band {background: #F4F0E4;}
.dot-scope .sh-pill-row {display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px;}
.dot-scope .sh-pill {display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 30px; background: #FFF4DC; border: 1px solid #F0DFB0; font-family: var(--serif); font-size: .95em; color: var(--ink);}
.dot-scope .sh-pill:hover {background: #FFEBBE; border-color: #E8853D;}
.dot-scope .sh-pill-count {font-size: .75em; color: var(--soft); background: #fff; padding: 2px 7px; border-radius: 10px;}
.dot-scope .cl-topic-list {list-style: none; margin-top: 20px; border-top: 1px solid #E0D8BE;}
.dot-scope .cl-topic-list li {border-bottom: 1px solid #E0D8BE;}
.dot-scope .cl-topic-list a {display: flex; align-items: center; justify-content: space-between; padding: 14px 4px; font-family: var(--serif); font-size: 1.08em; color: var(--ink); border: none;}
.dot-scope .cl-topic-list a:hover {color: #6B8F4E;}
.dot-scope .cl-mark {color: #6B8F4E; margin-right: 6px;}
.dot-scope .cl-count {font-size: .78em; color: var(--soft);}
.dot-scope .ts-view-toggle {display: flex; gap: 8px; margin: 16px 0;}
.dot-scope .ts-view-toggle a {padding: 6px 16px; border: 1px solid var(--line); border-radius: 20px; font-size: .85em; color: var(--soft);}
.dot-scope .ts-view-toggle a.active {background: var(--ink); color: var(--paper); border-color: var(--ink);}
.dot-scope .ts-year-grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 20px;}
.dot-scope .ts-year-cell {display: block; padding: 20px 16px; border: 1px solid var(--line); text-align: center;}
.dot-scope .ts-year-cell h3 {font-family: var(--serif); font-weight: 500; font-size: 1.1em;}
.dot-scope .ts-year-count {display: block; font-size: .78em; color: var(--soft); margin-top: 6px;}
.dot-scope .ts-month-nav {display: flex; justify-content: space-between; align-items: center; margin: 20px 0; font-family: var(--serif);}
.dot-scope .ts-month-nav a {border: none; color: var(--soft);}
.dot-scope .ts-month-table {width: 100%; border-collapse: collapse;}
.dot-scope .ts-month-table tr {border-bottom: 1px dotted var(--line);}
.dot-scope .ts-month-day {width: 40px; font-weight: 600; color: var(--sunrise); padding: 10px 12px 10px 0; vertical-align: top;}
.dot-scope .ts-month-table td:last-child {padding: 10px 0;}
.dot-scope .ts-month-table a {border: none;}
.dot-scope .ts-month-empty {color: var(--soft); opacity: .5;}


/* ==========================================================================
   ASTROBILITY UNIVERSE — v63.0
   The shared chrome (header, footer), the universe pages (front, Today,
   Shop), and the wing colours. The DayOneToday wing styles follow below,
   scoped to .dot-scope so they never reach an Astrobility page.
   ========================================================================== */

:root {
    --ab-navy: #0B1426;
    --ab-gold: #D4A843;
    --ab-gold-deep: #8B6914;
    --ab-ink: #1A1A1A;
    --ab-soft: #6B6560;
    --ab-line: #E5E0D8;
    --ab-paper: #F9F7F3;
    --ab-serif: 'Cormorant Garamond', Georgia, serif;
    --ab-body: 'EB Garamond', Georgia, serif;
    --dot-serif: 'Newsreader', Georgia, serif;
}

/* ---------- Header ---------- */
.ab-site-head { --hb: var(--ab-navy); --ht: #cbd5e1; --ha: var(--ab-gold); --hl: rgba(212,168,67,.18);
    background: var(--hb); color: var(--ht); border-bottom: 1px solid var(--hl); padding: 0 24px; position: relative; z-index: 50; }
.ab-site-head.ab-dot-head { --hb: var(--line-bg, #FAF8F4); --ht: var(--line-ink, #3A3530); --ha: var(--line-accent, #E8853D); --hl: var(--line-rule, #E5E0D8); }
.ab-head-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; gap: 14px; height: 62px; }
.ab-site-head a { text-decoration: none; }
.ab-brand { display: flex; align-items: center; gap: 9px; color: var(--ab-gold) !important; }
.ab-site-head.is-wing .ab-brand { color: var(--ab-gold-deep) !important; }
.ab-brand-word { font-family: var(--ab-serif); font-size: 1.55em; font-weight: 700; letter-spacing: 1.5px; }
.ab-brand-wing { font-family: var(--dot-serif); font-size: 1.15em; color: var(--ha) !important; padding-left: 14px; border-left: 1px solid var(--hl); }
.ab-nav { margin-left: auto; display: flex; align-items: center; gap: 20px; font-family: var(--ab-body); font-size: .95em; }
.ab-nav-item { position: relative; }
.ab-nav-item > a, .ab-nav > a { color: var(--ht) !important; padding: 20px 0; display: inline-block; }
.ab-nav-item > a:hover, .ab-nav a:hover { color: var(--ha) !important; }
.ab-nav-item.has-menu > a::after { content: ' \25BE'; font-size: .7em; opacity: .7; }
.ab-nav-menu { display: none; position: absolute; top: 100%; left: -14px; min-width: 200px; background: var(--hb); border: 1px solid var(--hl); padding: 8px 0; box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.ab-nav-menu a { display: block; padding: 8px 16px; color: var(--ht) !important; white-space: nowrap; }
.ab-nav-item.has-menu:hover .ab-nav-menu, .ab-nav-item.has-menu:focus-within .ab-nav-menu { display: block; }
.ab-nav-unlock { color: var(--ha) !important; border: 1px solid var(--ha); padding: 5px 16px !important; }
.ab-nav-toggle { display: none; margin-left: auto; background: none; border: 0; color: var(--ha); cursor: pointer; padding: 6px; }
.ab-mobile-nav { max-width: 1100px; margin: 0 auto; padding: 8px 0 18px; border-top: 1px solid var(--hl); }
.ab-mobile-nav[hidden] { display: none; }
.ab-mobile-nav a { display: block; color: var(--ht) !important; padding: 9px 0; font-family: var(--ab-body); }
.ab-mobile-nav .ab-m-sub { padding-left: 18px; font-size: .92em; opacity: .85; }
@media (max-width: 860px) {
    .ab-nav { display: none; }
    .ab-nav-toggle { display: block; }
    .ab-brand-wing { font-size: 1em; }
}

/* ---------- Footer ---------- */
.ab-site-foot { padding: 48px 24px 26px; font-family: var(--ab-body); text-align: center; }
.ab-foot-inner { max-width: 900px; margin: 0 auto; }
.ab-foot-brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--ab-serif); letter-spacing: 2px; color: #f1f5f9; font-size: 1.2em; }
.ab-foot-line { font-style: italic; color: #94a3b8 !important; margin: 10px auto 22px; }
.ab-foot-wings, .ab-foot-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin-bottom: 16px; font-size: .92em; }
.ab-foot-nav { font-size: .84em; }
.ab-foot-nav a { color: #94a3b8 !important; }
.ab-foot-fine { font-size: .78em; color: #64748b; border-top: 1px solid rgba(212,168,67,.12); padding-top: 16px; margin-top: 10px; }
.ab-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin: 4px 0 18px; font-size: .9em; }

/* ---------- Shared bits ---------- */
.ab-wrap { max-width: 1040px; margin: 0 auto; padding: 0 24px; }
.ab-band { padding: 34px 0; }
.ab-head { font-family: var(--ab-body); font-size: .76em; letter-spacing: 2.6px; text-transform: uppercase; color: var(--ab-gold-deep); margin-bottom: 18px; display: flex; align-items: center; gap: 14px; }
.ab-head::after { content: ''; flex: 1; height: 1px; background: #DCD5C9; }
.ab-head a { color: inherit; }
.ab-h1 { font-family: var(--ab-serif) !important; font-weight: 600 !important; font-size: 2.4em !important; margin: 26px 0 14px !important; }
.ab-note { font-size: .9em; color: var(--ab-soft); }
.ab-quiet { color: #9A958E; font-size: .9em; }
.ab-admin-hint { background: #FFF6E0; border-left: 3px solid #E8B84F; padding: 10px 14px; font-size: .9em; color: #5A4A20 !important; margin: 12px 0; }
.ab-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.ab-pills a { border: 1px solid #DCD5C9; padding: 6px 14px; border-radius: 20px; color: var(--ab-ink); font-size: .9em; }
.ab-pills a.on { background: var(--ab-ink); color: #fff; border-color: var(--ab-ink); }

/* ---------- Products ---------- */
.ab-prod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; }
.ab-prod { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid #E5E0D8; padding: 12px 12px 14px; color: var(--ab-ink) !important; transition: border-color .15s, box-shadow .15s; }
.ab-prod:hover { border-color: #C49B2E; box-shadow: 0 6px 20px rgba(0,0,0,.06); }
.ab-prod-img { display: block; aspect-ratio: 4 / 5; background: #F2EFE7; overflow: hidden; margin-bottom: 8px; }
.ab-prod-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ab-prod-wing { font-size: .7em; letter-spacing: 1.6px; text-transform: uppercase; color: #8B6914; }
.ab-prod-name { font-family: var(--ab-serif); font-size: 1.15em; line-height: 1.3; }
.ab-prod-price { font-size: .95em; color: var(--ab-soft); }
.ab-shop { padding: 10px 0 60px; }
.ab-shop-group { margin-bottom: 36px; }
.ab-product { padding: 40px 0 60px; }
.ab-product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.ab-product-img img { width: 100%; height: auto; display: block; background: #F2EFE7; }
.ab-product-wing { font-size: .74em; letter-spacing: 2px; text-transform: uppercase; color: #8B6914; }
.ab-product h1 { font-family: var(--ab-serif) !important; font-size: 2.2em !important; margin: 10px 0 !important; }
.ab-product-price { font-size: 1.3em; color: var(--ab-ink) !important; }
.ab-buy { display: inline-block; background: var(--ab-ink); color: #fff !important; padding: 12px 30px; font-family: var(--ab-body); letter-spacing: .5px; }
.ab-buy:hover { background: #8B6914; }
.ab-product-piece { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--ab-line); }
@media (max-width: 760px) { .ab-product-grid { grid-template-columns: 1fr; } }

/* ---------- Universe front ---------- */
.ab-front { font-family: var(--ab-body); }
.ab-front-mast { background: var(--ab-navy); text-align: center; padding: 46px 24px 34px; border-bottom: 1px solid rgba(212,168,67,.25); }
.ab-front-mast h1.ab-front-word { font-family: var(--ab-serif) !important; color: var(--ab-gold) !important; font-size: clamp(2.4em, 6vw, 3.6em) !important; letter-spacing: 6px; margin: 8px 0 6px !important; font-weight: 600 !important; }
.ab-front-date { color: #8b6914 !important; font-size: .78em; letter-spacing: 2.6px; text-transform: uppercase; margin: 0; }
.ab-front-intro { color: #cbd5e1 !important; max-width: 620px; margin: 18px auto 0; font-size: 1.08em; font-style: italic; }
.ab-front-reading { padding: 34px 0 10px; }
.ab-gen { max-width: 660px; margin: 0 auto; background: linear-gradient(150deg, #ECEAF4 0%, #DEDAEA 100%); border: 1px solid #C9C4DA; padding: 24px; }
.ab-gen-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ab-gen label { display: flex; flex-direction: column; font-size: .76em; letter-spacing: 1.4px; text-transform: uppercase; color: #6B6578; gap: 6px; }
.ab-gen input { background: #fff; border: 1px solid #C9C4DA; padding: 10px 12px; font-family: var(--ab-body); font-size: 1.25em; text-transform: none; letter-spacing: 0; color: #2A2534; }
.ab-gen-full { grid-column: 1 / -1; }
.ab-gen button { border: 0; padding: 14px; background: linear-gradient(135deg, #8b6914, #C49B2E); color: #fff; font-family: var(--ab-body); font-size: 1.05em; font-weight: 600; cursor: pointer; }
.ab-front-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin-top: 16px; }
.ab-front-links a { color: #8B6914; }
@media (max-width: 640px) { .ab-gen-grid { grid-template-columns: 1fr; } }

.ab-front-today { padding: 30px 0 10px; }
.ab-today-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1px; background: #DCD5C9; border: 1px solid #DCD5C9; }
.ab-today-cell { background: #FBFAF7; padding: 18px 18px 14px; border-top: 3px solid transparent; }
.ab-today-cell h3 { font-family: var(--ab-serif) !important; font-size: 1.2em !important; margin: 0 0 10px !important; font-weight: 600 !important; }
.ab-today-cell h3 a { color: var(--ab-ink); }
.ab-today-cell p { font-size: .95em; margin: 0 0 8px; line-height: 1.5; }
.ab-today-quote a { font-family: var(--dot-serif); font-size: 1.12em; color: var(--ab-ink); }
.k-sky { border-top-color: #C49B2E !important; }
.k-ts  { border-top-color: #E8853D !important; }
.k-otd { border-top-color: #1E2749 !important; }
.k-line{ border-top-color: #8FA86B !important; }
.ab-sky-row { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; margin: 0 0 8px; font-size: .92em; }
.ab-sky-row dt { color: #8B6914; font-size: .82em; letter-spacing: 1px; text-transform: uppercase; padding-top: 2px; }
.ab-sky-row dd { margin: 0; }

.ab-front-wings { padding: 34px 0 10px; }
.ab-wing-doors { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.ab-door { display: flex; flex-direction: column; border: 1px solid var(--line-rule, #E5E0D8); overflow: hidden; color: var(--ab-ink) !important; background: var(--line-bg, #FAF8F4); padding-bottom: 16px; transition: box-shadow .15s; }
.ab-door:hover { box-shadow: 0 8px 26px rgba(0,0,0,.08); }
.ab-door-banner { display: block; height: 120px; overflow: hidden; }
.ab-door-banner svg { width: 100%; height: 120px; display: block; }
.ab-door-name { font-family: var(--dot-serif); font-size: 1.4em; padding: 12px 16px 2px; }
.ab-door-tag { font-size: .9em; color: var(--ab-soft); padding: 0 16px; line-height: 1.45; }
.ab-door-count { font-size: .75em; letter-spacing: 1.4px; text-transform: uppercase; color: #8B6914; padding: 8px 16px 0; }
@media (max-width: 860px) { .ab-wing-doors { grid-template-columns: 1fr; } }

.ab-explore-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.ab-explore-item { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid #E5E0D8; border-top: 3px solid #C49B2E; padding: 16px 18px; color: var(--ab-ink) !important; }
.ab-explore-item[class*="wing-"] { border-top-color: var(--line-mark, #E8853D); }
.ab-explore-wing { font-size: .7em; letter-spacing: 1.6px; text-transform: uppercase; color: #8B6914; }
.ab-explore-title { font-family: var(--ab-serif); font-size: 1.2em; line-height: 1.3; }
.ab-explore-date { font-size: .82em; color: var(--ab-soft); }

/* ---------- Signup ---------- */
.ab-signup { padding: 40px 0 50px; text-align: center; border-top: 1px solid var(--ab-line); }
.ab-signup h3 { font-family: var(--dot-serif) !important; font-weight: 400 !important; font-size: 1.5em !important; }
.ab-signup-lists { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 20px; margin-bottom: 12px; font-size: .95em; }
.ab-signup-row { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.ab-signup input[type=email] { width: 100%; max-width: 340px; padding: 12px 14px; border: 1px solid var(--ab-line); background: #fff; font-size: 1em; }
.ab-signup button { background: var(--ab-ink); color: #fff; border: 0; padding: 12px 22px; cursor: pointer; font-size: .95em; }
.ab-signup-msg { min-height: 1.2em; margin-top: 8px; font-size: .9em; }

/* ---------- Today (calendar) ---------- */
.ab-cal { font-family: var(--ab-body); padding-bottom: 60px; }
.ab-cal-mast { background: var(--ab-navy); text-align: center; padding: 30px 24px 22px; }
.ab-cal-mast h1 { font-family: var(--ab-serif) !important; color: #EDEAE3 !important; font-size: 2.4em !important; margin: 0 0 12px !important; font-weight: 600 !important; }
.ab-cal-keys { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 22px; }
.ab-cal-keys a { color: #cbd5e1 !important; border-bottom: 2px solid; padding-bottom: 2px; font-size: .9em; }
.ab-cal-keys .k-sky { border-color: #C49B2E; } .ab-cal-keys .k-ts { border-color: #E8853D; } .ab-cal-keys .k-otd { border-color: #8FA3D9; }
.ab-cal-nav { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; border-bottom: 1px solid #DCD5C9; margin-bottom: 18px; }
.ab-cal-nav span { font-family: var(--ab-serif); font-size: 1.5em; }
.ab-cal-nav a { color: #8B6914; }
.ab-cal-month { width: 100%; border-collapse: collapse; font-size: .9em; }
.ab-cal-month th { text-align: left; font-size: .74em; letter-spacing: 1.4px; text-transform: uppercase; color: #7A736B; font-weight: 600; padding: 8px; border-bottom: 2px solid #DCD5C9; border-top: 0 !important; }
.ab-cal-month td { padding: 8px; border-bottom: 1px dotted #DCD5C9; vertical-align: top; border-top: 0 !important; }
.ab-cal-month tr.is-today td { background: #F1EDE2; }
.ab-cal-d { white-space: nowrap; width: 70px; }
.ab-cal-d a { color: var(--ab-ink); font-weight: 600; }
.ab-cal-tag { display: block; line-height: 1.4; margin-bottom: 3px; }
.ab-cal-day { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ab-cal-col { border-top: 3px solid; padding-top: 12px; }
.ab-cal-col h2 { font-family: var(--ab-serif) !important; font-size: 1.4em !important; margin: 0 0 12px !important; font-weight: 600 !important; }
.ab-cal-item { margin: 0 0 12px; line-height: 1.5; }
.ab-cal-item span { display: block; font-size: .75em; letter-spacing: 1.2px; text-transform: uppercase; color: #9A958E; }
.ab-cal-more, .ab-cal-back { font-size: .9em; }
.ab-cal-more a, .ab-cal-back a, .ab-cal-item a { color: #8B6914; }
@media (max-width: 760px) { .ab-cal-day { grid-template-columns: 1fr; } .ab-cal-month th:nth-child(4), .ab-cal-month td:nth-child(4) { display: none; } }

/* ---------- Wing pages (inside .dot-scope) ---------- */
.dot-scope.ab-wing-page { padding-bottom: 20px; }
.ab-wing-banner svg { display: block; width: 100%; height: auto; }
.ab-wing-lead { padding: 26px 0 6px; }
.ab-wing-tagline { font-family: var(--dot-serif); font-size: 1.35em; line-height: 1.45; font-style: italic; color: var(--ink); max-width: 720px; }
.ab-wing-intro { color: var(--soft); max-width: 640px; margin-top: 12px; }
.ab-wing-lead .ab-socials { justify-content: flex-start; margin-top: 14px; }
.dot-scope .issue-line a { border: none; color: inherit; }
.ab-stream > * + * { margin-top: 14px; }
.ab-sample { margin-top: 26px; }
.ab-pager { display: flex; justify-content: space-between; margin-top: 22px; }
.ab-two { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
@media (max-width: 760px) { .ab-two { grid-template-columns: 1fr; } }
.ab-page-head .ab-h1 { font-family: var(--dot-serif) !important; font-weight: 400 !important; }
.dot-scope .piece-name { font-family: var(--dot-serif); font-weight: 400; font-size: 1.15em; margin-bottom: 6px; }
.dot-scope .saying-note.is-verse { white-space: pre-line; font-family: var(--dot-serif); font-size: 1.1em; }
.dot-scope .saying-link { margin-top: 14px; }
.dot-scope .ab-post-img img { width: 100%; height: auto; margin-bottom: 20px; }
.dot-scope[class*="wing-"] { background: var(--line-bg, #FAF8F4); }
.dot-scope.ab-shop, .dot-scope.ab-product { background: transparent; }
.ab-wing-banner img { width: 100%; height: auto; display: block; }
.ab-cat-grid { margin-bottom: 8px; }

/* Astrobility's global h1–h6 rule carries !important colour; keep DayOneToday type on wing pages. */
.dot-scope h1, .dot-scope h2, .dot-scope h3, .dot-scope h4 { font-family: var(--dot-serif) !important; font-weight: 400 !important; letter-spacing: normal; }

/* DayOneToday underlines every link; universe components inside a wing keep their own edges. */
.dot-scope a.ab-prod, .dot-scope .ab-pills a, .dot-scope .ab-head a, .dot-scope .ab-socials a,
.dot-scope a.ab-product-wing, .dot-scope a.ab-buy, .dot-scope .ab-pager a, .dot-scope .ab-today-quote a,
.dot-scope .colophon a, .dot-scope .alm-head a { border-bottom: none; }
.dot-scope a.ab-prod { border: 1px solid #E5E0D8; }
.dot-scope .ab-pills a { border: 1px solid #DCD5C9; }
.dot-scope .ab-product-grid, .dot-scope .ab-wrap { padding-left: 24px; padding-right: 24px; }

/* Category grid inside a wing */
.dot-scope .ab-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; background: none; border: 0; padding: 0; margin: 0 0 22px; }
.dot-scope .ab-cat-grid .topic-cell { min-height: 96px; border: 1px solid var(--line); }
.dot-scope .ab-cat-grid .topic-cell { background: var(--line-bg, #FAF8F4); }
.dot-scope .ab-cat-grid .topic-cell:hover { background: var(--line-tint, #F3EEE6); }
/* Shop strip and signup line up with the wing's column */
.dot-scope .ab-prod-band .ab-wrap, .dot-scope .ab-signup .ab-wrap { max-width: 640px; }
.dot-scope .ab-prod-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.ab-note a, .ab-prod-band .ab-note a { color: #8B6914 !important; }
.ab-today-cell h3 a { border-bottom: none !important; }

/* ==========================================================================
   v63.0 — Astrobility's sections, The Social Center, the second header row
   ========================================================================== */
.ab-nav { gap: 18px; font-size: .92em; }
.ab-row2 { border-top: 1px solid var(--hl); background: rgba(0,0,0,.18); }
.ab-site-head.is-wing .ab-row2 { background: rgba(0,0,0,.035); }
.ab-row2-inner { max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 7px 0; font-family: var(--ab-body); font-size: .86em; }
.ab-row2 nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.ab-row2 a { color: var(--ht) !important; opacity: .85; }
.ab-row2 a:hover, .ab-row2 a.on { color: var(--ha) !important; opacity: 1; }
.ab-row2-dot a { font-family: var(--dot-serif); }
.ab-m-group { display: block; margin-top: 12px; font-size: .7em; letter-spacing: 2px; text-transform: uppercase; color: var(--ha); }
@media (max-width: 1080px) { .ab-nav { display: none; } .ab-nav-toggle { display: block; } }
@media (max-width: 700px) { .ab-row2 { display: none; } }

/* Section feed beneath each section's own page */
.ab-sec-feed { background: #F9F7F3; padding: 40px 0 46px; border-top: 1px solid #DCD5C9; font-family: var(--ab-body); }
.ab-sec-feed .ab-head, .ab-section-page .ab-head { margin-top: 26px; }
.ab-sec-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.ab-sec-cat { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: #fff; border: 1px solid #E5E0D8; border-left: 3px solid #C49B2E; color: var(--ab-ink) !important; }
.ab-sec-cat:hover { box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.ab-sec-cat-name { font-family: var(--ab-serif); font-size: 1.25em; font-weight: 600; }
.ab-sec-cat-desc { font-size: .9em; color: var(--ab-soft); line-height: 1.45; }
.ab-sec-cat-n { font-size: .72em; letter-spacing: 1.4px; text-transform: uppercase; color: #8B6914; }
.ab-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.ab-post-card { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid #E5E0D8; padding: 0 0 16px; color: var(--ab-ink) !important; overflow: hidden; }
.ab-post-card > span:not(.ab-post-card-img) { padding: 0 18px; }
.ab-post-card > span:nth-child(1):not(.ab-post-card-img) { padding-top: 16px; }
.ab-post-card-img img { width: 100%; height: 160px; object-fit: cover; display: block; margin-bottom: 6px; }
.ab-post-card-cat { font-size: .7em; letter-spacing: 1.6px; text-transform: uppercase; color: #8B6914; padding-top: 14px; }
.ab-post-card-title { font-family: var(--ab-serif); font-size: 1.25em; line-height: 1.3; font-weight: 600; }
.ab-post-card-ex { font-size: .92em; color: var(--ab-soft); line-height: 1.5; }
.ab-post-card-date { font-size: .8em; color: #9A958E; }
.ab-sec-readings { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 28px; padding: 16px 20px; background: #0B1426; }
.ab-sec-readings-k { font-size: .72em; letter-spacing: 2.4px; text-transform: uppercase; color: #8b6914; }
.ab-sec-readings a { color: #D4A843 !important; }
.ab-section-page { padding: 10px 0 56px; font-family: var(--ab-body); }
.ab-section-page .ab-sec-feed { margin-top: 30px; }
.ab-crumb { margin-top: 26px; font-size: .8em; letter-spacing: 2px; text-transform: uppercase; }
.ab-crumb a { color: #8B6914; }
.ab-crumb + .ab-h1 { margin-top: 6px !important; }
.ab-sec-intro { max-width: 680px; color: var(--ab-soft); font-size: 1.08em; margin-bottom: 22px; }
.ab-doc-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.ab-doc { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid #E5E0D8; background: #fff; color: var(--ab-ink) !important; }
.ab-doc-title { font-family: var(--ab-serif); font-size: 1.2em; font-weight: 600; }
.ab-doc-ex { font-size: .9em; color: var(--ab-soft); }
.ab-astro-pieces { background: transparent; margin-top: 18px; }
.ab-astro-pieces > * + * { margin-top: 12px; }

/* The Social Center */
.ab-social { padding-bottom: 56px; font-family: var(--ab-body); }
.ab-social-mast { background: var(--ab-navy); text-align: center; padding: 30px 24px 20px; }
.ab-social-mast h1 { font-family: var(--ab-serif) !important; color: #EDEAE3 !important; font-size: 2.4em !important; margin: 0 0 14px !important; font-weight: 600 !important; }
.ab-social-kinds { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 18px; }
.ab-social-kinds a { color: #cbd5e1 !important; font-size: .9em; padding-bottom: 2px; border-bottom: 2px solid transparent; }
.ab-social-kinds a.on { border-bottom-color: #D4A843; color: #D4A843 !important; }
.ab-social .ab-pills { margin-top: 22px; }
.ab-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.ab-media { display: flex; flex-direction: column; gap: 5px; color: var(--ab-ink) !important; }
.ab-media-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; background: #0B1426; overflow: hidden; }
.ab-media.k-reel .ab-media-img, .ab-media.k-tiktok .ab-media-img { aspect-ratio: 4 / 5; }
.ab-media-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-media-kind-big { color: #D4A843; font-family: var(--ab-serif); font-size: 1.5em; }
.ab-media-meta { font-size: .72em; letter-spacing: 1.4px; text-transform: uppercase; color: #8B6914; margin-top: 4px; }
.ab-media-title { font-family: var(--ab-serif); font-size: 1.15em; line-height: 1.3; }
.ab-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.ab-share-card { display: flex; flex-direction: column; gap: 6px; color: var(--ab-soft) !important; font-size: .8em; letter-spacing: 1.2px; text-transform: uppercase; }
.ab-share-card img { width: 100%; height: auto; display: block; border: 1px solid #E5E0D8; }

/* DayOneToday's section on the Astrobility homepage */
.ab-home-dot { padding: 10px 0 20px; }
.ab-home-dot-line { text-align: center; font-family: var(--dot-serif); font-size: 1.2em; margin: 0 auto 22px; max-width: 640px; }
.ab-home-dot-line a { color: #1A1A1A; }
.ab-home-dot-line span { display: block; font-family: var(--ab-body); font-size: .72em; letter-spacing: 1.6px; text-transform: uppercase; color: #8B6914; margin-top: 6px; }
.ab-home-dot .ab-wing-doors { max-width: 980px; margin: 0 auto; }

/* v63.0.1 — the foot of an Astrobility post: where it sits, and its readings */
.ab-post-foot { margin: 0 0 2rem; font-family: var(--ab-body); }
.ab-post-foot-k { font-size: .78em; letter-spacing: 1.8px; text-transform: uppercase; margin: 0 0 8px; color: #8B6914; }
.ab-post-foot-k a { color: #8B6914 !important; }
.ab-post-foot .ab-sec-readings { margin-top: 0; }
/* v63.0.1 — a post's own text on the light card (it was set for the old dark page) */
body.single-post .entry-content,
body.single-post .entry-content p,
body.single-post .entry-content li,
body.single-post .entry-content blockquote { color: var(--light-ink, #2A2622) !important; }
body.single-post .entry-content h2,
body.single-post .entry-content h3,
body.single-post .entry-content h4 { color: #1A1A1A !important; }
body.single-post .entry-content a { color: #8B6914 !important; }
body.single-post .post-meta { color: #8B6914 !important; }
body.single-post .post-meta a { color: #8B6914 !important; }

/* ==========================================================================
   v63.4 — THE TWO LEVELS
   The umbrella (Astrobility) in charcoal and ivory, so it reads as neither
   property; each property keeps its own colours beneath it.
   ========================================================================== */
:root { --um-bg: #16161A; --um-ink: #EDE9E1; --um-dim: #9C978E; --um-line: rgba(237,233,225,.14); --um-paper: #F7F5F0; }

.ab-umbrella { background: var(--um-bg); border-bottom: 1px solid var(--um-line); padding: 0 24px; font-family: var(--ab-body); position: relative; z-index: 60; }
.ab-umbrella-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; gap: 22px; min-height: 38px; flex-wrap: wrap; }
.ab-umbrella a { text-decoration: none; }
.ab-umbrella-mark { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; font-size: .92em; color: var(--um-ink) !important; }
.ab-umbrella nav { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .86em; }
.ab-umbrella-props { padding-left: 18px; border-left: 1px solid var(--um-line); }
.ab-umbrella-shared { margin-left: auto; }
.ab-umbrella nav a { color: var(--um-dim) !important; padding: 9px 0; }
.ab-umbrella nav a:hover, .ab-umbrella nav a.on { color: var(--um-ink) !important; }
.ab-umbrella nav a.on { box-shadow: inset 0 -2px 0 var(--um-ink); }
@media (max-width: 760px) {
    .ab-umbrella-inner { gap: 2px 14px; padding: 6px 0; }
    .ab-umbrella-props { padding-left: 0; border-left: 0; }
    .ab-umbrella-shared { margin-left: 0; }
    .ab-umbrella nav a { padding: 4px 0; }
}

.ab-umbrella-foot { background: var(--um-bg); color: var(--um-dim); padding: 30px 24px 26px; font-family: var(--ab-body); text-align: center; border-top: 1px solid var(--um-line); }
.ab-umbrella-foot-inner { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ab-umbrella-foot nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: .88em; }
.ab-umbrella-foot nav a { color: var(--um-dim) !important; text-decoration: none; }
.ab-umbrella-foot nav a:hover { color: var(--um-ink) !important; }
.ab-umbrella-fine { font-size: .78em; color: #6E6A63; border-top: 1px solid var(--um-line); padding-top: 14px; width: 100%; }

/* DayOneToday's own header and footer */
.ab-dot-head .ab-dot-brand { font-family: var(--dot-serif); font-size: 1.4em; letter-spacing: .3px; color: var(--ha) !important; }
.ab-dot-head .ab-dot-nav a { font-family: var(--dot-serif); font-size: 1.02em; padding: 18px 0; }
.ab-dot-head .ab-dot-nav a.on { color: var(--ha) !important; box-shadow: inset 0 -2px 0 var(--ha); }
.ab-dot-foot { background: var(--line-bg, #FAF8F4) !important; border-top: 1px solid var(--line-rule, #E5E0D8); padding: 30px 24px; text-align: center; font-family: var(--dot-serif); }
.ab-dot-foot-inner { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ab-dot-foot-brand { font-size: 1.3em; color: #1A1A1A !important; text-decoration: none; }
.ab-dot-foot nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
.ab-dot-foot nav a { color: #6B645C !important; text-decoration: none; }
.ab-dot-foot nav a:hover { color: #E8853D !important; }


/* The Shop, nested by property */
.ab-shop-sub { font-family: var(--dot-serif); font-size: 1.1em; color: #3A3530; margin: 22px 0 12px; }

/* Today: DayOneToday's two records */
.ab-cal-day { grid-template-columns: 1fr 1fr !important; }
@media (max-width: 700px) { .ab-cal-day { grid-template-columns: 1fr !important; } }

/* v64.0 — DayOneToday as one: each line's saying of the day or week */
.ab-line-sayings .wrap { display: grid; gap: 22px; }
.ab-line-saying .say { margin: 0; }
.ab-dot-front .ab-wing-doors { margin-top: 18px; }

/* ===================== v64.0 — THE LIBRARY ===================== */
.ab-library, .ab-account-page { background: #F9F7F3; color: #1A1A1A; padding-bottom: 40px; }
.ab-lib-mast { padding: 46px 0 18px; border-bottom: 1px solid rgba(212,168,67,.25); margin-bottom: 18px; }
.ab-lib-mast h1, .ab-account-page h1 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: clamp(2em, 5vw, 2.8em); color: #1A1A1A !important; margin: 4px 0 8px; }
.ab-lib-kicker { font-size: .78em; letter-spacing: 1.6px; text-transform: uppercase; color: #8B6914; margin: 0; }
.ab-lib-kicker a { color: #8B6914; text-decoration: none; }
.ab-lib-intro, .ab-lead { font-family: 'EB Garamond', Georgia, serif; font-size: 1.18em; color: #4A4540; max-width: 640px; line-height: 1.55; }
.ab-lib-rhythm { font-size: .8em; letter-spacing: 1.4px; text-transform: uppercase; color: #7A736B; margin: 0 0 6px; }
.ab-lib-search { margin-top: 16px; max-width: 420px; }
.ab-lib-search input { width: 100%; padding: 11px 14px; border: 1px solid rgba(212,168,67,.35); background: #fff; font-size: 1em; box-sizing: border-box; }
.ab-library .ab-pills { margin: 0 0 10px; }
.ab-pills-prog a { background: #fff; }
.ab-lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; margin: 18px 0 8px; }
.ab-lib-card { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid #E8E2D6; padding: 0 0 16px; color: #1A1A1A !important; text-decoration: none !important; position: relative; transition: box-shadow .15s; min-width: 0; }
.ab-lib-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.07); }
.ab-lib-card > span:not(.ab-lib-img) { padding: 0 16px; }
.ab-lib-card .ab-lib-meta { padding-top: 14px !important; }
.ab-lib-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #F1ECE2; }
.ab-lib-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-lib-img + .ab-lib-meta { padding-top: 4px !important; }
.ab-lib-meta { font-size: .7em; letter-spacing: 1.4px; text-transform: uppercase; color: #7A736B; }
.ab-lib-format { color: #8B6914; }
.ab-lib-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.32em; font-weight: 600; line-height: 1.25; }
.ab-lib-say { font-family: 'Newsreader', Georgia, serif; font-size: 1.18em; line-height: 1.45; border-left: 2px solid var(--line-mark, #E8853D); margin-left: 16px; padding-left: 12px !important; }
.ab-lib-ex { font-size: .92em; color: #5A5450; line-height: 1.5; }
.ab-lib-access { position: absolute; top: 10px; right: 10px; padding: 3px 8px !important; font-size: .66em; letter-spacing: 1.2px; text-transform: uppercase; background: #0B1426; color: #D4A843; }
.ab-lib-access.a-joined { background: #F1ECE2; color: #6B5A2E; }
.ab-lib-empty { font-family: 'EB Garamond', Georgia, serif; font-size: 1.1em; color: #7A736B; margin: 30px 0; }
.ab-prog-row { margin: 34px 0; }
.ab-prog-head { display: flex; align-items: baseline; gap: 12px; border-bottom: 1px solid rgba(212,168,67,.3); padding-bottom: 8px; }
.ab-prog-head a { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.5em; font-weight: 600; color: #1A1A1A; text-decoration: none; }
.ab-prog-head a.ab-prog-all { margin-left: auto; font-family: inherit; font-size: .85em; font-weight: 400; color: #8B6914; }
.ab-prog-rhythm { font-size: .72em; letter-spacing: 1.4px; text-transform: uppercase; color: #7A736B; }
.ab-prog-desc { color: #5A5450; margin: 8px 0 0; }
.ab-gate { border: 1px solid rgba(212,168,67,.4); background: #FFFCF4; padding: 22px 24px; margin: 24px 0; }
.ab-gate-k { font-size: .75em; letter-spacing: 1.6px; text-transform: uppercase; color: #8B6914; margin: 0 0 8px; }
a.ab-gate-btn, button.ab-gate-btn, .ab-plan button, .ab-form button { display: inline-block; background: #0B1426; color: #D4A843 !important; padding: 11px 22px; border: 0; text-decoration: none !important; font-size: .95em; letter-spacing: .5px; cursor: pointer; }
a.ab-gate-alt, button.ab-gate-alt { display: inline-block; color: #8B6914 !important; padding: 11px 14px; background: none; border: 0; text-decoration: underline; cursor: pointer; font-size: .95em; }
.ab-join-band { background: #0B1426; color: #E8E2D6; padding: 44px 0; margin-top: 40px; }
.ab-join-band h2 { font-family: 'Cormorant Garamond', Georgia, serif; color: #D4A843 !important; font-size: 2em; margin: 0 0 12px; }
.ab-join-band p, .ab-join-band li { color: #E8E2D6; }
.ab-join-band .ab-join-member b { color: #D4A843; font-weight: 600; }   /* v64.9.2 — membership, through the Library */
.ab-join-band a.ab-gate-btn { background: #D4A843; color: #0B1426 !important; }
.ab-join-band a.ab-gate-alt { color: #D4A843 !important; }
.ab-join-gets { margin: 0 0 18px; padding-left: 18px; line-height: 1.8; }
.ab-narrow { max-width: 620px; padding-top: 46px; }
.ab-form { display: flex; flex-direction: column; gap: 14px; background: #fff; border: 1px solid #E8E2D6; padding: 24px; margin: 18px 0; }
.ab-form label { display: flex; flex-direction: column; gap: 6px; font-size: .85em; letter-spacing: .4px; color: #4A4540; }
.ab-form label span, .ab-form legend span { color: #9A938A; font-weight: 400; }
.ab-form input[type=text], .ab-form input[type=email], .ab-form input[type=password], .ab-form input[type=date], .ab-form input[type=time], .ab-form select, .ab-form textarea { padding: 11px 12px; border: 1px solid #DDD5C6; font-size: 1em; background: #fff; font-family: inherit; }
.ab-form fieldset { border: 1px solid #EFE9DD; padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
.ab-form legend { font-size: .85em; color: #8B6914; padding: 0 6px; }
.ab-form label.ab-check { flex-direction: row; align-items: center; gap: 8px; font-size: .95em; }
.ab-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.ab-note { font-size: .88em; color: #7A736B; }
.ab-err { background: #FBEDEC; color: #8A2A22; padding: 10px 14px; }
.ab-ok { background: #EEF6EF; color: #1F5A33; padding: 10px 14px; }
.ab-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin: 20px 0; }
.ab-plan { background: #fff; border: 1px solid #E8E2D6; padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.ab-plan.is-founding { border-color: #D4A843; box-shadow: inset 0 0 0 1px #D4A843; }
.ab-plan h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.35em; margin: 0; }
.ab-plan p { margin: 0; }
.ab-plan-note { font-size: .82em; color: #7A736B; }
.ab-plan button { margin-top: auto; }
.ab-shelf-id { display: grid; grid-template-columns: 1fr; gap: 18px; background: #0B1426; color: #E8E2D6; padding: 28px; margin: 18px 0 28px; }
.ab-shelf-id h2 { font-family: 'Cormorant Garamond', Georgia, serif; color: #D4A843 !important; font-size: 2.2em; margin: 2px 0 4px; }
.ab-shelf-id p { color: #E8E2D6; }
.ab-shelf-id a { color: #D4A843; }
.ab-shelf-k { font-size: .75em; letter-spacing: 1.6px; text-transform: uppercase; color: #B9A57A !important; margin: 0; }
.ab-shelf-signs { font-size: .85em; letter-spacing: 1px; color: #B9A57A !important; }
.ab-shelf-art { display: flex; flex-wrap: wrap; gap: 18px; }
.ab-shelf-art figure { margin: 0; width: min(240px, 100%); }
.ab-shelf-art svg { width: 100%; height: auto; display: block; }
.ab-shelf-art figcaption { font-size: .8em; color: #B9A57A; margin-top: 6px; }
.ab-shelf-block { margin: 30px 0; }
.ab-shelf-block h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.6em; border-bottom: 1px solid rgba(212,168,67,.3); padding-bottom: 6px; color: #1A1A1A !important; }
.ab-mine { list-style: none; padding: 0; }
.ab-mine li { padding: 8px 0; border-bottom: 1px solid #EFE9DD; display: flex; justify-content: space-between; gap: 12px; }
.ab-mine span { font-size: .8em; color: #7A736B; white-space: nowrap; }
.ab-save { background: none; border: 1px solid rgba(212,168,67,.5); color: #8B6914; padding: 7px 14px; font-size: .85em; cursor: pointer; text-decoration: none; display: inline-block; }
.ab-save.on { background: #0B1426; color: #D4A843; border-color: #0B1426; }
.ab-umbrella-join { color: #D4A843 !important; }
@media (min-width: 760px) { .ab-shelf-id { grid-template-columns: 1.2fr 1fr; } }

.ab-account-page a:not(.ab-gate-btn):not(.ab-lib-card), .ab-library .ab-lib-empty a { color: #8B6914; }
.ab-mine li { color: #1A1A1A; }
.saying-credit { margin-top: 10px; font-size: .85em; color: #7A736B; font-style: italic; }
.ab-save-row { margin-top: 18px; }

/* ===================== v64.0 — TODAY, SOMEWHERE, framed ===================== */
.dot-scope .ts-mast { border-top: 1px solid var(--line-rule, #E5E0D8); border-bottom: 1px solid var(--line-rule, #E5E0D8); padding: 40px 0 30px; background: linear-gradient(180deg, rgba(232,133,61,.06), transparent 70%); }
.dot-scope .ts-mast-in { display: flex; gap: 32px; align-items: center; max-width: 900px; }
.dot-scope .ts-mast-text { min-width: 0; flex: 1; }
.dot-scope .ts-sheet { flex: none; width: 150px; background: #fff; border: 1px solid #E2D9C8; box-shadow: 0 10px 24px rgba(58,43,32,.10), 0 2px 0 #E2D9C8; text-align: center; position: relative; transform: rotate(-2deg); }
.dot-scope .ts-sheet::before { content: ''; position: absolute; left: 18px; right: 18px; top: -7px; height: 12px; background: repeating-linear-gradient(90deg, #3A3530 0 6px, transparent 6px 22px); border-radius: 3px; }
.dot-scope .ts-sheet-m { background: var(--line-accent, #E8853D); color: #fff; font-size: .78em; letter-spacing: 2.4px; text-transform: uppercase; padding: 9px 0 7px; }
.dot-scope .ts-sheet-d { font-family: var(--dot-serif); font-size: 4.6em; line-height: 1.05; color: #2A2420; padding-top: 6px; }
.dot-scope .ts-sheet-w { font-size: .76em; letter-spacing: 1.8px; text-transform: uppercase; color: #7A736B; padding: 2px 0 14px; }
.dot-scope .ts-h1 { margin: 6px 0 10px; }
.dot-scope .ts-count { color: #4A443E; margin: 0 0 12px; }
.dot-scope .ts-count span { color: #4A6B55; }
.dot-scope .ts-arrows { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 16px; font-size: .92em; }
.dot-scope .ts-arrows a { color: var(--line-accent, #E8853D); border-bottom: none; }
.dot-scope .ts-wide { max-width: 980px; }
.dot-scope .ts-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; margin-bottom: 22px; }
.dot-scope .ts-card { position: relative; background: #fff; border: 1px solid #E6DFD2; padding: 22px 22px 18px; box-shadow: 0 1px 0 #E6DFD2; background-image: linear-gradient(90deg, transparent 0 calc(100% - 1px)), repeating-linear-gradient(135deg, var(--line-accent, #E8853D) 0 8px, #fff 8px 12px, #4A6B55 12px 20px, #fff 20px 24px); background-size: 100% 100%, 100% 4px; background-repeat: no-repeat; background-position: 0 0, 0 0; padding-top: 26px; min-width: 0; }
.dot-scope .ts-card h2 { font-family: var(--dot-serif) !important; font-size: 1.45em; line-height: 1.2; margin: 6px 0 8px; padding-right: 96px; }
.dot-scope .ts-card .ts-note { color: #4A443E; line-height: 1.6; margin: 0 0 10px; }
.dot-scope .ts-card .ts-topic { margin: 0; font-size: .92em; }
.dot-scope .ts-stamp { position: absolute; top: 16px; right: 14px; width: 84px; min-height: 84px; border: 2px dashed #4A6B55; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #4A6B55; transform: rotate(8deg); padding: 6px; box-sizing: border-box; }
.dot-scope .ts-stamp span { font-size: .54em; letter-spacing: .4px; text-transform: uppercase; line-height: 1.15; overflow-wrap: anywhere; }
.dot-scope .ts-stamp b { font-weight: 600; font-size: .62em; letter-spacing: 1px; margin-top: 3px; text-transform: uppercase; }
.dot-scope .ts-empty { text-align: left; }
.dot-scope .ts-empty h2 { padding-right: 0; }
.dot-scope .ts-month-nav { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.dot-scope .ts-month-nav a { border-bottom: none; color: var(--line-accent, #E8853D); }
.dot-scope .ts-month-nav .ts-date small { font-size: .5em; letter-spacing: 1.4px; text-transform: uppercase; color: #7A736B; margin-left: 8px; }
.dot-scope .ts-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.dot-scope .ts-cal .wd { font-size: .66em; letter-spacing: 1.6px; text-transform: uppercase; color: #7A736B; text-align: center; padding-bottom: 4px; }
.dot-scope .ts-cell { background: #fff; border: 1px solid #E6DFD2; min-height: 96px; padding: 6px 7px; display: flex; flex-direction: column; gap: 3px; color: #2A2420 !important; border-bottom: 1px solid #E6DFD2 !important; min-width: 0; overflow: hidden; }
.dot-scope .ts-cell.e { background: transparent; border-color: transparent !important; }
.dot-scope .ts-cell.has { background: #FFF8EE; }
.dot-scope .ts-cell.t { box-shadow: inset 0 0 0 2px var(--line-accent, #E8853D); }
.dot-scope .ts-cell:hover { border-color: var(--line-accent, #E8853D) !important; }
.dot-scope .ts-cell .n { font-family: var(--dot-serif); font-size: 1.2em; line-height: 1; }
.dot-scope .ts-cell .x { font-size: .72em; line-height: 1.25; border-left: 2px solid var(--line-accent, #E8853D); padding-left: 5px; overflow-wrap: anywhere; }
.dot-scope .ts-cell .x em { display: block; font-style: normal; color: #7A736B; font-size: .9em; }
.dot-scope .ts-cell .more { font-size: .66em; color: #7A736B; margin-top: auto; }
.dot-scope .ts-year { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.dot-scope .ts-ymonth { background: #fff; border: 1px solid #E6DFD2 !important; padding: 14px 14px 12px; display: flex; flex-direction: column; gap: 4px; color: #2A2420 !important; }
.dot-scope .ts-ymonth:hover { border-color: var(--line-accent, #E8853D) !important; }
.dot-scope .ts-ym-name { font-family: var(--dot-serif); font-size: 1.25em; }
.dot-scope .ts-ym-count { font-size: .72em; letter-spacing: 1.3px; text-transform: uppercase; color: #7A736B; }
.dot-scope .ts-ym-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-top: 8px; }
.dot-scope .ts-ym-grid i { aspect-ratio: 1; background: #F1ECE2; display: block; }
.dot-scope .ts-ym-grid i.e { background: transparent; }
.dot-scope .ts-ym-grid i.l1 { background: #F7D9BF; } .dot-scope .ts-ym-grid i.l2 { background: #F2B888; }
.dot-scope .ts-ym-grid i.l3 { background: #EC9A58; } .dot-scope .ts-ym-grid i.l4 { background: #D9702A; }
.dot-scope .ts-ym-grid i.t { outline: 2px solid #2A2420; outline-offset: -1px; }
@media (max-width: 640px) {
  .dot-scope .ts-mast-in { flex-direction: column; align-items: flex-start; gap: 22px; }
  .dot-scope .ts-sheet { width: 120px; }
  .dot-scope .ts-sheet-d { font-size: 3.6em; }
  .dot-scope .ts-cell { min-height: 54px; padding: 4px; }
  .dot-scope .ts-cell .x, .dot-scope .ts-cell .more { display: none; }
  .dot-scope .ts-cell.has::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--line-accent, #E8853D); margin-top: auto; }
}

/* v64.0 — On This Day as a timeline; Today as a calendar */
.dot-scope .ts-sheet-m.otd-m { background: #1E2749; }
.dot-scope .otd-line { list-style: none; margin: 8px 0 22px; padding: 0 0 0 0; position: relative; }
.dot-scope .otd-line::before { content: ''; position: absolute; left: 62px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(#1E2749, var(--line-accent, #E8853D)); }
.dot-scope .otd-line li { display: grid; grid-template-columns: 52px 1fr; gap: 26px; align-items: start; margin-bottom: 18px; position: relative; }
.dot-scope .otd-line li::before { content: ''; position: absolute; left: 57px; top: 10px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--line-accent, #E8853D); }
.dot-scope .otd-year { font-family: var(--dot-serif); font-size: 1.35em; color: #1E2749; text-align: right; padding-top: 2px; }
.dot-scope .otd-card { background: #fff; border: 1px solid #E6DFD2; padding: 14px 18px; min-width: 0; }
.dot-scope .otd-card p { margin: 0; font-size: 1.05em; line-height: 1.55; }
.dot-scope .otd-ago { display: block; font-size: .7em; letter-spacing: 1.4px; text-transform: uppercase; color: var(--line-accent, #E8853D); margin-bottom: 4px; }
.dot-scope .otd-src { display: block; font-size: .78em; color: #7A736B; margin-top: 6px; }
.dot-scope .ts-cell .x.otd { border-left-color: #1E2749; color: #1E2749; }
.dot-scope .ab-cal-grid { margin-top: 6px; }
.dot-scope .ab-cal-legend { font-size: .8em; color: #7A736B; margin-top: 10px; }
.dot-scope .ab-cal-legend span { display: inline-block; width: 10px; height: 10px; vertical-align: middle; }
.dot-scope .ab-cal-legend .k-ts { background: var(--line-accent, #E8853D); }
.dot-scope .ab-cal-legend .k-otd { background: #1E2749; }
@media (max-width: 640px) {
  .dot-scope .otd-line::before { left: 46px; }
  .dot-scope .otd-line li { grid-template-columns: 38px 1fr; gap: 22px; }
  .dot-scope .otd-line li::before { left: 41px; }
  .dot-scope .otd-year { font-size: 1.05em; }
}

@media (max-width:640px){ .sky-navrow a { font-size:.8em !important; } .sky-navrow .now { font-size:1.15em !important; } }
.ab-delete summary { cursor: pointer; color: #8A2A22; font-size: .9em; }
.ab-delete .ab-form button { background: #8A2A22; color: #fff !important; }

/* v64.1 — groups inside groups, and gathered pieces */
.dot-scope .ab-cat-grid .topic-cell { display: flex; flex-direction: column; }
.dot-scope .ab-cat-grid .topic-link { display: block; color: inherit; text-decoration: none; flex: 1; border-bottom: 0; }
.dot-scope .ab-cat-grid .topic-link:hover h2 { color: var(--sunrise); }
.dot-scope .topic-kids { display: block; margin-top: 10px; font-size: .86em; line-height: 1.6; color: var(--soft, #6b6457); }
.dot-scope .topic-kids a { color: inherit; border-bottom: 1px solid rgba(0,0,0,.18); }
.dot-scope .dot-original { font-style: italic; color: var(--soft, #6b6457); }
.dot-scope .dot-verse { white-space: normal; line-height: 1.7; }


/* ==========================================================================
   v64.2 — The Astrobility emblems. The small Astrobility Emblem beside the
   name in the top bar and footer; the Astrobility Emblem above the heading
   on the Library, Join, the gift shop and your shelf; the two named emblem
   cards on the About page.
   ========================================================================== */
.ab-emblem { display: inline-block; line-height: 0; }
.ab-emblem svg { display: block; width: 100%; height: auto; }
.ab-umbrella-mark, .ab-umbrella-foot .ab-umbrella-mark { display: inline-flex; align-items: center; gap: 8px; }
.ab-umbrella-mark .ab-emblem-mark { width: 20px; flex-shrink: 0; }
.ab-umbrella-foot .ab-umbrella-mark .ab-emblem-mark { width: 26px; }
.ab-umbrella .em-ground, .ab-umbrella-foot .em-ground { fill: var(--um-bg); }
.ab-emblem-head { display: block; width: 92px; margin: 0 0 6px; }
.ab-library .ab-emblem-head .em-ground, .ab-account-page .ab-emblem-head .em-ground, .ab-shop .ab-emblem-head .em-ground { fill: #F9F7F3; }
.ab-library .ab-emblem-head path, .ab-account-page .ab-emblem-head path, .ab-shop .ab-emblem-head path { stroke: #B8902F; }
.ab-emblem-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin: 22px 0 8px; }
.ab-emblem-card { margin: 0; background: #0B1426; border: 1.5px solid rgba(212,168,67,.6); padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 14px; }
.ab-emblem-card .ab-emblem { width: 100%; }
.ab-emblem-card figcaption { display: flex; flex-direction: column; gap: 6px; }
.ab-emblem-card-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.35em; font-weight: 600; color: #F1F5F9; line-height: 1.2; }
.ab-emblem-card-text { font-family: 'EB Garamond', Georgia, serif; font-size: .95em; line-height: 1.55; color: #CBD5E1; }
@media (max-width: 760px) { .ab-emblem-head { width: 72px; } }

/* ==========================================================================
   v64.3 — the media centres, Today's DayOne, the sub pillars on the
   overplace, the journeys, the per-property account pages, the Astrobility page
   ========================================================================== */

/* The media centre: the newest episode, then each programme's row */
.ab-media-centre .ab-newest { margin-bottom: 30px; }
.ab-player-wrap { max-width: 860px; }
.ab-player { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--ab-navy); }
.ab-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ab-player-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-top: 10px; font-family: var(--ab-body); }
.ab-player-prog { font-size: .72em; letter-spacing: 1.8px; text-transform: uppercase; color: var(--ab-gold-deep); text-decoration: none; }
.ab-player-title { font-family: var(--ab-serif); font-size: 1.3em; font-weight: 600; color: var(--ab-ink); }
.ab-prog-row + .ab-prog-row { margin-top: 30px; }

/* DayOneToday — Today's DayOne leads */
.ab-dayone { border-top: 3px solid var(--line-accent, #E8853D); }
.ab-dayone .alm-head { font-size: .9em; }
.ab-dayone-ask { margin-top: 16px; font-family: var(--dot-serif); font-size: 1.05em; color: var(--line-ink, #3A3530); }
.ab-dayone-ask a { color: var(--line-accent, #E8853D); font-weight: 600; }

/* The sub pillars on the overplace: its saying, its own, its world */
.ab-subpillar-banner { display: block; margin-bottom: 14px; }
.ab-subpillar-banner svg, .ab-subpillar-banner img { width: 100%; height: auto; display: block; }
.ab-subpillar-name { font-family: var(--dot-serif); font-size: 1.7em; font-weight: 600; margin: 0 0 4px; }
.ab-subpillar-name a { color: inherit; text-decoration: none; }
.ab-subpillar-tag { color: var(--ab-soft); font-style: italic; margin: 0 0 18px; }
.ab-subpillar-own, .ab-subpillar-world { margin-top: 22px; }

/* Each property's account pages carry its own look */
.ab-account-dayonetoday .ab-wing-banner { margin: 0 -24px 24px; }
.ab-account-page .ab-join-gets { margin: 6px 0 22px; padding-left: 1.1em; line-height: 1.6; color: var(--ab-ink) !important; }
.ab-account-page .ab-join-gets li { color: var(--ab-ink) !important; }

/* The Astrobility page — the umbrella */
.ab-umbrella-page { font-family: var(--ab-body); color: var(--ab-ink); background: var(--ab-paper); }
.ab-um-head { text-align: center; padding: 56px 24px 30px; background: var(--ab-navy); color: #f1f5f9; }
.ab-um-head .ab-um-emblem { display: block; max-width: 340px; margin: 0 auto 10px; }
.ab-um-head .ab-um-emblem svg { width: 100%; height: auto; }
.ab-um-head h1 { font-family: var(--ab-serif); font-size: 2.6em; font-weight: 600; letter-spacing: 8px; text-transform: uppercase; margin: 0; color: #f1f5f9 !important; }
.ab-um-intro { max-width: 640px; margin: 14px auto 0; color: #cbd5e1; font-size: 1.1em; line-height: 1.6; }
.ab-um-part { max-width: 1100px; margin: 0 auto; padding: 48px 24px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 40px; align-items: start; border-bottom: 1px solid var(--ab-line); }
.ab-um-part:not(:has(.ab-um-media)) { grid-template-columns: minmax(0, 1fr); }
.ab-um-dot .ab-um-text { order: 2; }
.ab-um-k { font-size: .7em; letter-spacing: 2.2px; text-transform: uppercase; color: var(--ab-gold-deep); margin: 0 0 8px; }
.ab-um-part h2 { font-family: var(--ab-serif); font-size: 2.1em; font-weight: 600; margin: 0 0 10px; text-wrap: balance; }
.ab-um-part h2 a { color: var(--ab-ink); text-decoration: none; }
.ab-um-dot h2 { font-family: var(--dot-serif); }
.ab-um-line { font-size: 1.1em; line-height: 1.6; color: var(--ab-soft); max-width: 60ch; }
.ab-um-pillars { display: block; max-width: 420px; margin: 18px 0; }
.ab-um-pillars svg { width: 100%; height: auto; }
.ab-um-links, .ab-um-progs { list-style: none; padding: 0; margin: 16px 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.ab-um-links a, .ab-um-progs a { color: var(--ab-ink); border-bottom: 1px solid var(--ab-gold); text-decoration: none; }
.ab-um-progs li span { margin-left: 8px; font-size: .72em; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ab-soft); }
.ab-um-dayone { margin: 18px 0; padding: 16px 0; border-top: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); }
.ab-um-subs { list-style: none; padding: 0; margin: 18px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.ab-um-subs a { display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--ab-ink); }
.ab-um-sub-banner svg, .ab-um-sub-banner img { width: 100%; height: auto; display: block; }
.ab-um-subs b { font-family: var(--dot-serif); font-size: 1.15em; }
.ab-um-subs span { font-size: .88em; color: var(--ab-soft); font-style: italic; }
.ab-um-go { margin-top: 20px; font-weight: 600; }
.ab-um-go a { color: var(--ab-gold-deep); text-decoration: none; }
@media (max-width: 760px) {
    .ab-um-part { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 36px 16px; }
    .ab-um-dot .ab-um-text { order: 0; }
    .ab-account-dayonetoday .ab-wing-banner { margin: 0 -16px 20px; }
}

/* The Astrobility Library's front (/astrobility/) */
.ab-lf-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin-top: 22px; font-size: .95em; }
.ab-lf-nav a { color: #D4A843 !important; text-decoration: none; border-bottom: 1px solid rgba(212,168,67,.4); }
.ab-lf-part { max-width: 1100px; margin: 0 auto; padding: 44px 24px; border-bottom: 1px solid var(--ab-line); }
.ab-lf-head { margin-bottom: 22px; }
.ab-lf-head h2 { font-family: var(--ab-serif); font-size: 2em; font-weight: 600; margin: 0 0 4px; color: var(--ab-ink); }
.ab-lf-head p { margin: 0; color: var(--ab-soft); font-size: 1.05em; }
.ab-lf-prop + .ab-lf-prop { margin-top: 26px; }
.ab-lf-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.ab-lf-item { padding: 18px 20px; border-top: 2px solid var(--ab-gold); background: #fff; min-width: 0; }
.ab-lf-item h3 { font-family: var(--ab-serif); font-size: 1.35em; font-weight: 600; margin: 4px 0 6px; }
.ab-lf-item h3 a { color: var(--ab-ink); text-decoration: none; }
.ab-lf-item p { margin: 0 0 8px; color: var(--ab-soft); line-height: 1.55; }
.ab-lf-item ul { margin: 6px 0 10px; padding-left: 1.1em; line-height: 1.6; color: var(--ab-ink) !important; }
.ab-lf-item ul li { color: var(--ab-ink) !important; }
.ab-lf-item ul a { color: var(--ab-ink); }
.ab-lf-go a, .ab-lf-links a { color: var(--ab-gold-deep); font-weight: 600; text-decoration: none; }
.ab-lf-links { display: flex; flex-wrap: wrap; gap: 8px 26px; margin-top: 20px; }
.ab-um-subs i { font-size: .82em; letter-spacing: 1.2px; text-transform: uppercase; color: var(--ab-gold-deep); font-style: normal; }
.ab-lf-doors { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.ab-lf-door { display: flex; flex-direction: column; gap: 4px; padding: 16px; background: var(--ab-navy); text-decoration: none; border: 1px solid rgba(212,168,67,.35); }
.ab-lf-door b { font-family: var(--ab-serif); font-size: 1.15em; color: #F2E6C4; }
.ab-lf-door span { font-size: .7em; letter-spacing: 1.4px; text-transform: uppercase; color: #D4A843; }
.ab-lf-member .ab-lf-item { background: #FBF8F2; }
.ab-lf-platforms { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 0; max-width: none; border-bottom: 0; }
.ab-lf-platform { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 36px 24px; text-decoration: none; min-width: 0; }
.ab-lf-astro { background: var(--ab-navy); }
.ab-lf-astro b { font-family: var(--ab-serif); font-size: 1.6em; color: #F2E6C4; }
.ab-lf-astro span { color: #cbd5e1; }
.ab-lf-dot { background: var(--line-bg, #FAF8F4); }
.ab-lf-dot b { font-family: var(--dot-serif); font-size: 1.6em; color: var(--line-ink, #3A3530); }
.ab-lf-dot span { color: var(--ab-soft); }
.ab-lf-platform .ab-um-pillars { max-width: 300px; margin: 0; }
.ab-lf-platform .ab-um-sub-banner { width: 100%; max-width: 460px; }
@media (max-width: 760px) { .ab-lf-platforms { grid-template-columns: 1fr; } .ab-lf-part { padding: 32px 16px; } }
.ab-libfront .ab-lf-platforms { border-bottom: 1px solid var(--ab-line); }
.ab-lf-member .ab-lf-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
/* The episode before it is played: its picture, its title, a play button */
.ab-facade { overflow: hidden; }
.ab-facade img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.ab-facade-play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: linear-gradient(180deg, rgba(11,20,38,.15), rgba(11,20,38,.75)); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: #F2E6C4; font-family: var(--ab-serif); padding: 20px; }
.ab-facade-icon { width: 72px; height: 72px; border-radius: 50%; background: #D4A843; color: #0B1426; display: flex; align-items: center; justify-content: center; font-size: 28px; padding-left: 5px; }
.ab-facade-title { font-size: 1.35em; font-weight: 600; text-align: center; max-width: 30ch; text-wrap: balance; }
.ab-facade-play:hover .ab-facade-icon { background: #F2E6C4; }
.ab-lib-card img[src=""], .ab-card-img img { background: var(--ab-paper); }

/* ============================================================
   DAYONETODAY — its sections (v64.5)
   The home page stacks the three sub pillars, each a section in its own
   banner and colours, each with its own sections by form; then the
   connected media, writing and shop. Shelves are drawn stocked or not.
   ============================================================ */
.dot-scope .ab-sp-wrap { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.ab-dayone-lead { padding: 34px 0 30px; border-bottom: 1px solid var(--line-rule, #E5E0D8); }
.ab-dayone-line { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 1.5em; line-height: 1.35; font-style: italic; color: var(--line-ink, #3A3530); max-width: 760px; text-wrap: balance; }
.dot-scope .ab-dayone { margin-top: 18px; padding: 18px 0 4px; border-top: 3px solid var(--line-accent, #E8853D); max-width: 760px; }
.dot-scope .ab-dayone .say p { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 1.45em; line-height: 1.4; }
.dot-scope .ab-dayone-ask { margin-top: 14px; }
.ab-sp-jump { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-top: 22px; }
.dot-scope .ab-sp-jump a { border: 1px solid var(--line-rule, #E5E0D8); background: var(--line-tint, #F3EEE6); padding: 4px 12px; font-size: .82em; letter-spacing: .02em; border-radius: 999px; color: var(--line-ink, #3A3530); }
.dot-scope .ab-sp-jump a:hover { border-color: var(--line-accent, #E8853D); }

.dot-scope.ab-sp { background: var(--line-bg, #FAF8F4); color: var(--line-ink, #3A3530); border-top: 4px solid var(--line-accent, #E8853D); padding: 0 0 44px; scroll-margin-top: 70px; }
.ab-sp-banner { display: block; border: none !important; }
.ab-sp-banner svg, .ab-sp-banner img { display: block; width: 100%; height: auto; }
.dot-scope .ab-sp > .ab-sp-wrap { padding-top: 30px; }
.dot-scope .ab-sp-name { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 2em; font-weight: 600; line-height: 1.15; }
.dot-scope .ab-sp-name a { border: none; color: inherit; }
.dot-scope .ab-sp-tag { font-style: italic; color: var(--soft); margin-top: 4px; }
.dot-scope .ab-sp-part { margin-top: 30px; }
.dot-scope .ab-sp-k { font-size: .74em; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--line-accent, #E8853D); padding-bottom: 8px; margin-bottom: 14px; border-bottom: 1px solid var(--line-rule, #E5E0D8); }
.dot-scope .ab-sp-k a { border: none; color: inherit; }
.dot-scope .ab-sp-saying .say p { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 1.3em; line-height: 1.4; }
.dot-scope .ab-sp-more, .dot-scope .ab-forms-more { margin-top: 12px; font-size: .9em; }

/* Shelves: one per form, side by side */
.ab-forms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dot-scope .ab-form { background: var(--line-tint, #F3EEE6); border: 1px solid var(--line-rule, #E5E0D8); padding: 14px 16px 16px; min-width: 0; }
.dot-scope .ab-form-head { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 1.08em; font-weight: 600; margin-bottom: 10px; color: var(--line-ink, #3A3530); }
.dot-scope .ab-form-items { display: grid; gap: 12px; }
.dot-scope .ab-form-items > * { padding-bottom: 12px; border-bottom: 1px dashed var(--line-rule, #E5E0D8); }
.dot-scope .ab-form-items > *:last-child { border-bottom: none; padding-bottom: 0; }
.dot-scope .ab-form .say p { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 1.05em; line-height: 1.45; }
.dot-scope .ab-form .piece-story h3, .dot-scope .ab-form .piece-name { font-size: 1em; }
.dot-scope .ab-form .story-excerpt { font-size: .9em; }
.dot-scope .ab-form-empty { min-height: 64px; border: 1px dashed var(--line-rule, #E5E0D8); background: var(--line-bg, #FAF8F4); }
.dot-scope .ab-form-empty .ab-admin-hint { display: block; margin: 0; padding: 10px 12px; font-size: .8em; }
.dot-scope .ab-wide-empty { min-height: 90px; }

/* Categories, each a section by form; groups inside as sections inside */
.ab-cat-sects { display: grid; gap: 22px; }
.dot-scope .ab-cat-sect { border-left: 3px solid var(--line-mark, #E8853D); padding-left: 18px; scroll-margin-top: 70px; }
.dot-scope .ab-cat-sect-head { margin-bottom: 12px; }
.dot-scope .ab-cat-sect-name { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-weight: 600; line-height: 1.2; }
.dot-scope .ab-cat-sect-name a { border: none; color: inherit; }
.dot-scope h3.ab-cat-sect-name { font-size: 1.45em; }
.dot-scope h4.ab-cat-sect-name { font-size: 1.2em; }
.dot-scope h5.ab-cat-sect-name { font-size: 1.05em; }
.dot-scope .ab-cat-sect-desc { color: var(--soft); font-size: .92em; margin-top: 2px; max-width: 720px; }
.dot-scope .ab-cat-kids { display: grid; gap: 18px; margin-top: 18px; }
.dot-scope .ab-cat-sect.depth-1, .dot-scope .ab-cat-sect.depth-2 { border-left-width: 2px; }

/* The connected media, writing and shop */
.ab-dot-shared-part { scroll-margin-top: 70px; }
.dot-scope.ab-dot-shared-part { padding: 34px 0 24px; border-top: 1px solid var(--line-rule, #E5E0D8); }
.ab-dot-shared-head { padding-bottom: 0 !important; }
.dot-scope .ab-dot-writing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 14px; }
.dot-scope .ab-dot-writing h3 { font-family: var(--dot-serif, 'Newsreader', Georgia, serif); font-size: 1.2em; }
.ab-dot-shared-part .ab-media-centre .wrap, .ab-dot-shared-part .ab-prod-band .ab-wrap { max-width: 1120px; }

@media (max-width: 860px) {
  .ab-forms { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .dot-scope .ab-dot-writing { grid-template-columns: minmax(0, 1fr); }
  .dot-scope .ab-sp-name { font-size: 1.6em; }
  .ab-dayone-line { font-size: 1.25em; }
}
.ab-dot-shared-part .ab-prod-band { padding-top: 14px; border: none; background: transparent; }
.ab-dot-shared-part .ab-prod-band .ab-head:empty { display: none; }
.ab-dot-shared-part .ab-media-centre { border: none; padding-top: 14px; }
.ab-dot-shared-part .ab-media-centre .wrap, .ab-dot-shared-part .ab-prod-band .ab-wrap { max-width: 1120px; padding: 0 24px; margin: 0 auto; }
.dot-scope .ab-sp-saying .ab-form-empty { max-width: 760px; }
