:root { color-scheme:light; --bg:#f8f6f0; --text:#292823; --surface:#fcfaf5; --subtle:#efede6; --line:#d8d4c9; --control-line:#918b7e; --dim:#676256; --label:#59564d; --hit:#27251f; --on-hit:#fcfaf5; --hit-hover:#3c3931; --hover:#f1eee6; --hover-line:#777064; --placeholder:#746e62; --bad:var(--hit); --reading:"Iowan Old Style","Charter","Georgia","Times New Roman",serif; background:var(--bg); }
:root[data-theme=dark] { color-scheme:dark; --bg:#181816; --text:#eae6da; --surface:#201f1b; --subtle:#2a2924; --line:#454137; --control-line:#746f61; --dim:#b8b1a3; --label:#c3bcad; --hit:#e8e1d2; --on-hit:#222019; --hit-hover:#fcfaf5; --hover:#292821; --hover-line:#a29b8c; --placeholder:#aaa293; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { font:15px/1.55 system-ui,sans-serif; color:var(--text); background:var(--bg); margin:0 auto; padding:1.2rem; max-width:78rem; }
body.app-loading { min-height:100svh; }
body.app-loading main,body.app-loading .site-footer,body.app-loading #entry-sign-in,body.app-loading #account { visibility:hidden; }
#session-loading { margin:3rem 0; text-align:center; }
header { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-bottom:1rem; border-bottom:1px solid var(--line); }
h1 { font-size:1.05rem; font-weight:650; margin:0; letter-spacing:.02em; }
h1 span { font-weight:400; color:var(--dim); margin-left:.55rem; letter-spacing:0; }
h2 { font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; color:var(--dim); margin:1.4rem 0 .55rem; font-weight:600; }
p { margin:.3rem 0 .8rem; }
.note { font-size:.8rem; line-height:1.5; color:var(--dim); }
header .note { margin:.2rem 0 0; }
.header-actions { display:flex; align-items:center; justify-content:flex-end; gap:1.3rem; flex-wrap:wrap; }
.theme-switch { display:flex; gap:2px; padding:3px; border:1px solid var(--line); border-radius:4px; flex-shrink:0; }
.theme-switch button { display:grid; place-items:center; width:2.75rem; height:2.75rem; padding:.6rem; border:0; background:transparent; color:var(--dim); }
.theme-switch svg { width:1.25rem; height:1.25rem; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.theme-switch button[aria-pressed=true] { color:var(--on-hit); background:var(--hit); }
.theme-switch button[aria-pressed=false]:hover { color:var(--text); background:var(--hover); }
.reading { font:1.7rem/1.4 var(--reading); max-width:23rem; margin:1.2rem 0; text-wrap:pretty; }
.entry { display:grid; grid-template-columns:1fr 1fr; gap:5rem; max-width:55rem; margin:5rem auto 7rem; align-items:start; }
.entry-copy { padding-top:1.8rem; }
.entry-copy .note { max-width:22rem; }
.entry h2 { margin-top:1rem; }
.narrow { max-width:27rem; margin:3rem auto; }
label { display:block; font-size:.77rem; color:var(--label); margin:.8rem 0 .2rem; }
input,textarea,select,button { font:inherit; color:inherit; background:var(--surface); border:1px solid var(--control-line); padding:.5rem .55rem; width:100%; border-radius:2px; }
input::placeholder,textarea::placeholder { color:var(--placeholder); opacity:1; }
input:autofill { color:var(--text); background:var(--surface); }
:root { --field-error:#984138; }
:root[data-theme=dark] { --field-error:#eda999; }
.field-error,.form-error { color:var(--field-error); font-size:.78rem; line-height:1.45; margin:.4rem 0 .6rem; overflow-wrap:anywhere; }
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true],.picker-trigger[aria-invalid=true] { border-color:var(--field-error); box-shadow:inset 0 -1px var(--field-error); }
.date-entry:has(input[aria-invalid=true]) { border-color:var(--field-error); }
.date-entry > input[aria-invalid=true],.date-entry > .calendar-trigger[aria-invalid=true] { box-shadow:none; }
.time-picker-fields > span { margin-top:1.5rem; }
.time-picker-fields .field-error { text-align:center; }
#calendar-year-error { margin:.25rem 0 .6rem; }
input,select { min-height:2.6rem; min-width:0; }
button { cursor:pointer; width:auto; padding:.5rem .9rem; min-height:2.5rem; transition:background-color 140ms ease,border-color 140ms ease; }
button:hover { background:var(--hover); border-color:var(--hover-line); }
button:disabled { opacity:.5; cursor:wait; }
button.primary { background:var(--hit); color:var(--on-hit); border-color:var(--hit); }
button.primary:hover { background:var(--hit-hover); }
button.text-button { border-color:transparent; padding:.3rem .2rem; font-size:.8rem; }
.danger { color:var(--bad); }
:focus-visible { outline:2px solid var(--hit); outline-offset:3px; }
.actions { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; margin-top:1rem; }
.row { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.row > div { min-width:0; }
.search-row { display:flex; gap:.5rem; }
.search-row input { flex:1; width:0; }
.tabs { display:flex; gap:.3rem; border-bottom:1px solid var(--line); margin-bottom:1rem; }
.tabs button { border:0; border-bottom:2px solid transparent; border-radius:0; font-size:.82rem; color:var(--dim); padding:.55rem .8rem; }
.tabs [aria-pressed=true] { color:var(--text); border-bottom-color:var(--hit); }
.tabs button,.chart-list button,.results button,button.text-button { background:transparent; }
.tabs button:hover,.chart-list button:hover,.results button:hover,button.text-button:hover { background:var(--hover); }
.cols { display:grid; grid-template-columns:24rem minmax(0,1fr); gap:2.5rem; align-items:start; padding-top:.7rem; }
.cols aside { border-right:1px solid var(--line); padding-right:1.7rem; }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.section-head h2 { margin:1rem 0 .4rem; }
.chart-editor-heading { margin:1.2rem 0; }
.chart-editor-heading h2 { font:1.75rem/1.3 var(--reading); text-transform:none; letter-spacing:0; color:var(--text); margin:.7rem 0; }
.profile-chart-actions { display:flex; align-items:center; justify-content:flex-end; gap:.6rem; flex-wrap:wrap; }
.profile-chart-actions button { font-size:.8rem; }
.chart-list,.results { list-style:none; padding:0; margin:.2rem 0; }
.chart-list li,.results li { border-bottom:1px solid var(--line); }
.chart-list button,.results button { display:block; width:100%; border:0; padding:.65rem .1rem; text-align:left; font-size:.85rem; }
.chart-list button[aria-current=true] { color:var(--hit); font-weight:600; }
.chart-list small { display:block; color:var(--dim); font-weight:400; margin-top:.1rem; }
.chart-list { max-height:16rem; overflow:auto; }
.chart-list .reading-history-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.4rem; }
.chart-list .reading-delete { display:grid; place-items:center; width:44px; min-height:44px; align-self:start; padding:.75rem; color:var(--dim); }
.reading-delete svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.chart-list .reading-delete:hover { color:var(--text); }
.reading-delete-name { font:1.15rem/1.5 var(--reading); overflow-wrap:anywhere; }
.results button { padding:.5rem; }
.chart-workspace { min-width:0; }
.empty { padding:5rem 1rem; border-bottom:1px solid var(--line); }
.empty .reading { font-size:1.5rem; }
.view { animation:reveal 180ms ease-out; }
#chart-image { display:block; width:100%; height:auto; min-height:15rem; }
.chart-expand { display:block; width:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.chart-expand:hover { background:transparent; }
.chart-expand-hint { display:flex; justify-content:center; align-items:center; gap:.5rem; color:var(--dim); font-size:.75rem; padding:.35rem 0; }
.chart-expand-hint span { font-size:1rem; }
.chart-expand:hover .chart-expand-hint { color:var(--text); }
body.chart-viewer-open { position:fixed; left:0; right:0; width:100%; overflow:hidden; }
.chart-viewer { position:fixed; inset:0; width:100%; height:100%; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:var(--bg); color:var(--text); overflow:hidden; overscroll-behavior:none; }
.chart-viewer[open] { display:flex; flex-direction:column; }
.chart-viewer::backdrop { background:var(--bg); }
.chart-viewer-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:max(.65rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .65rem max(1rem,env(safe-area-inset-left)); border-bottom:1px solid var(--line); }
.chart-viewer-header h2 { margin:0; color:var(--text); font:1.2rem/1.3 var(--reading); text-transform:none; letter-spacing:0; overflow-wrap:anywhere; }
.chart-viewer-icon { display:grid; place-items:center; width:2.75rem; height:2.75rem; min-height:2.75rem; padding:.65rem; flex-shrink:0; background:transparent; border-color:transparent; }
.chart-viewer-icon svg { width:1.2rem; height:1.2rem; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; pointer-events:none; }
.chart-viewer-stage { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; overflow:hidden; touch-action:none; user-select:none; -webkit-user-select:none; }
.chart-viewer-stage:focus-visible { outline-offset:-3px; }
.chart-viewer-stage.is-zoomed { cursor:grab; }
.chart-viewer-stage.is-zoomed:active { cursor:grabbing; }
#chart-viewer-image { display:block; max-width:none; flex:none; object-fit:contain; transform-origin:center; pointer-events:none; }
.chart-viewer-footer { flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:.6rem max(1rem,env(safe-area-inset-right)) max(.8rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left)); border-top:1px solid var(--line); }
.chart-viewer-controls { display:flex; align-items:center; gap:.4rem; }
.chart-viewer-controls output { min-width:3rem; text-align:center; font-size:.8rem; font-variant-numeric:tabular-nums; }
.chart-viewer-controls button:disabled { cursor:default; }
#chart-zoom-reset { margin-left:.5rem; min-height:2.75rem; font-size:.8rem; background:transparent; }
.chart-viewer-footer .note { margin:0; font-size:.75rem; }
#reading-chart-open { width:9rem; flex-shrink:0; align-self:flex-start; }
@media (max-height:30rem) and (orientation:landscape) {
  .chart-viewer-header { padding-top:.25rem; padding-bottom:.25rem; }
  .chart-viewer-footer { flex-direction:row; justify-content:center; gap:1rem; padding-top:.25rem; padding-bottom:max(.25rem,env(safe-area-inset-bottom)); }
}
#chart-subtitle,#account-email { overflow-wrap:anywhere; }
#account { display:flex; align-items:center; gap:1rem; font-size:.8rem; }
.chart-legend { padding:.5rem 0; border-top:1px solid var(--line); }
.chart-legend .note { max-width:44rem; }
.element-key { list-style:none; margin:.5rem 0 .8rem; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem 1rem; color:var(--dim); font-size:.75rem; }
.element-key li { display:flex; align-items:baseline; gap:.4rem; }
.element-swatch { display:inline-block; width:.65rem; height:.65rem; border-radius:50%; flex-shrink:0; }
.element-swatch.fire { background:#CC6633; } .element-swatch.earth { background:#669966; }
.element-swatch.air { background:#3366CC; } .element-swatch.water { background:#6633CC; }
:root[data-theme=dark] .element-swatch.water { background:#ab85ec; }
:root[data-theme=dark] .element-swatch.fire { background:#df916c; }
:root[data-theme=dark] .element-swatch.earth { background:#8ab68a; }
:root[data-theme=dark] .element-swatch.air { background:#81a3e8; }
.house-help { margin:.25rem 0 .7rem; }
@media(max-width:30rem) { .element-key { grid-template-columns:1fr; } }
.reading-status { border-top:1px solid var(--line); margin-top:1.5rem; }
.reading-layout { display:grid; grid-template-columns:19rem minmax(0,1fr); gap:4rem; padding:2rem 0; }
.reading-content { max-width:43rem; min-width:0; }
.reading-content .reading { max-width:none; margin-top:.5rem; }
.reading-content { display:flex; flex-direction:column; min-height:calc(100dvh - 13rem); }
.reading-thread-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.reading-thread-heading .reading-heading { margin:0; }
.reading-heading-actions { display:flex; align-items:center; gap:1.2rem; }
#new-reading { white-space:nowrap; }
.reading-composer { margin-top:2rem; padding:0 0 max(.8rem,env(safe-area-inset-bottom)); }
.reading-composer[data-busy="true"] { display:none; }
.reading-input-well { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:.75rem; padding:.75rem; border:1px solid var(--control-line); border-radius:3px; background:var(--surface); transition:border-color 160ms ease; }
.reading-input-well:focus-within { border-color:var(--text); }
.reading-composer textarea { min-height:3.2rem; max-height:12rem; padding:.15rem; border:0; border-radius:0; background:transparent; font-size:.9rem; line-height:1.6; }
.reading-composer textarea:focus-visible { outline:0; }
#ask-reading { display:grid; place-items:center; width:2.75rem; min-height:2.75rem; padding:.6rem; border-radius:2px; }
#ask-reading svg { width:1.2rem; height:1.2rem; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
#ask-reading:disabled { cursor:default; opacity:.35; }
.reading-composer #reading-help { margin:.25rem 0; font-size:.7rem; }
.reading-speaker { margin:0 0 .4rem; font:.72rem/1.4 system-ui,sans-serif; color:var(--dim); letter-spacing:.05em; text-transform:uppercase; }
.reading-user-message { width:fit-content; max-width:85%; margin:0 0 1.8rem auto; text-align:right; }
.reading-user-message .reading-speaker { font-size:.65rem; font-weight:500; letter-spacing:.12em; margin:0 0 .45rem; }
.reading-user-question { font:400 1.2rem/1.55 var(--reading); letter-spacing:0; white-space:pre-wrap; overflow-wrap:anywhere; margin:0; }
.reading-user-message details { font-size:.8rem; color:var(--dim); margin:.4rem 0 0; }
.reading-user-message details summary { cursor:pointer; padding:.25rem 0; }
.reading-user-message.is-long { width:85%; text-align:left; }
.reading-user-message.is-long .reading-speaker { text-align:right; }
.reading-user-message.is-long .reading-user-question { font:400 .95rem/1.55 var(--reading); display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; max-height:4.65em; overflow:hidden; white-space:normal; }
.reading-user-message:has(details[open]) > .reading-user-question { display:none; }
.reading-user-full { text-align:left; font:400 .95rem/1.65 var(--reading); white-space:pre-wrap; overflow-wrap:anywhere; max-height:min(18rem,45dvh); overflow:auto; scrollbar-gutter:stable; margin:.6rem 0 0; padding-right:.6rem; color:var(--text); }
@media(max-width:36rem) { .reading-user-message { max-width:92%; margin-bottom:1.5rem; } .reading-user-question { font-size:1.1rem; } }
@media(max-width:36rem) { .reading-user-message.is-long { width:92%; } .reading-user-message.is-long .reading-user-question,.reading-user-full { font-size:1rem; } }
.reading-turn { padding:.5rem 0 1.5rem; scroll-margin-bottom:3rem; }
.reading-turn h3 { font:500 1.35rem/1.4 var(--reading); margin:1.3rem 0 .8rem; }
.reading-turn .reading-prose { font-size:1.1rem; }
#reading-result { scroll-margin-bottom:3rem; }
.shared-reading-content { max-width:43rem; margin:3rem auto; }
.shared-reading-page .wordmark a { color:inherit; text-decoration:none; }
.shared-reading-page .reading-turn:last-child { border-bottom:0; }
#reading-share-dialog { width:min(30rem,calc(100vw - 2rem)); }
#reading-share-dialog h2 { font:1.5rem/1.3 var(--reading); text-transform:none; letter-spacing:0; color:var(--text); }
#reading-share-url { font-size:.8rem; }
@media(max-width:50rem) { .reading-thread-heading { gap:.5rem; } .reading-composer { padding-top:.75rem; } .reading-composer textarea { font-size:1rem; } }
#reading-dialogue,#reading-clarification { border-top:1px solid var(--line); margin-top:1.4rem; padding-top:1rem; overflow-wrap:anywhere; }
#reading-dialogue h3,#clarification-prompt { font:600 .9rem/1.5 system-ui,sans-serif; margin:.25rem 0 .6rem; white-space:pre-wrap; }
#reading-scope-summary { font-size:.9rem; white-space:pre-wrap; }
#reading-deferred { margin:.8rem 0; }
#reading-deferred-topics { margin:.2rem 0; padding-left:1.2rem; color:var(--dim); font-size:.85rem; }
#reading-conversation { font-size:.85rem; margin:.7rem 0; }
#reading-conversation-turns { list-style:none; margin:.6rem 0; padding:0; }
#reading-conversation-turns li { padding:.55rem 0; border-top:1px solid var(--line); }
#reading-conversation-turns p { white-space:pre-wrap; margin:.2rem 0; }
#reading-conversation-turns .dialogue-question { color:var(--dim); }
.clarification-options { display:flex; gap:.5rem; flex-wrap:wrap; margin:.8rem 0; }
.clarification-options button { text-align:left; font-size:.85rem; white-space:normal; overflow-wrap:anywhere; max-width:100%; }
#reading-clarification .actions { align-items:flex-start; }
#clarification-alternative { background:transparent; font-size:.85rem; }
#clarification-scope { white-space:pre-wrap; }
#reading-result { border-top:1px solid var(--line); padding-top:1.5rem; margin-top:1.5rem; }
.reading-prose { font:1.15rem/1.7 var(--reading); overflow-wrap:anywhere; }
.reading-prose p { white-space:pre-wrap; margin:.65rem 0 1rem; }
.reading-prose h4 { font:600 .92rem/1.5 system-ui,sans-serif; margin:1.5rem 0 .5rem; }
.reading-prose ul,.reading-prose ol { padding-left:1.5rem; margin:.6rem 0 1rem; }
.reading-prose li { white-space:pre-wrap; margin:.3rem 0; }
.reading-prose code { font:.85em/1.6 ui-monospace,monospace; }
.reading-prose pre { background:var(--subtle); border:1px solid var(--line); padding:.8rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.reading-table-scroll { max-width:100%; overflow-x:auto; margin:1rem 0 1.4rem; }
.reading-table-scroll:focus-visible { outline:2px solid var(--control-line); outline-offset:3px; }
.reading-table-scroll table { width:100%; border-collapse:collapse; font:.85rem/1.55 system-ui,sans-serif; }
.reading-table-scroll th,.reading-table-scroll td { min-width:7.5rem; max-width:22rem; padding:.65rem .75rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.reading-table-scroll th { font-weight:600; background:var(--subtle); }
.reading-table-scroll .reading-cell-center { text-align:center; }
.reading-table-scroll .reading-cell-right { text-align:right; }
.reading-prose > :first-child { margin-top:0; }
@media(max-width:50rem) { .reading-layout { grid-template-columns:minmax(0,1fr); gap:1rem; padding:1rem 0; } }
table { border-collapse:collapse; width:100%; font-size:.8rem; text-align:left; }
th,td { padding:.6rem .25rem; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
th { color:var(--dim); font-weight:500; }
td { font-variant-numeric:tabular-nums; }
.astro-label { display:inline-flex; align-items:baseline; gap:.25em; max-width:100%; }
.astro-glyph { flex:none; min-width:1em; text-align:center; font:1.2em/1 "Apple Symbols","Segoe UI Symbol","DejaVu Sans",serif; color:var(--ink); }
.notice { font-size:.85rem; color:var(--hit); min-height:1.4rem; margin:.7rem 0; overflow-wrap:anywhere; }
.notice.error { color:var(--bad); font-weight:600; }
footer { margin-top:4rem; padding-top:1rem; border-top:1px solid var(--line); color:var(--dim); font-size:.75rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.workspace-nav { margin-top:.4rem; }
.profile-layout { display:grid; grid-template-columns:19rem minmax(0,39rem); gap:4rem; padding:2rem 0; animation:reveal 180ms ease-out; }
.profile-intro { position:sticky; top:2rem; }
.profile-intro h2 { margin-top:0; }
.profile-intro .reading { margin:.6rem 0 1rem; overflow-wrap:anywhere; }
.profile-intro .note { max-width:17rem; }
.profile-content { min-width:0; }
.profile-natal { padding:0 0 2rem; margin-bottom:1.7rem; border-bottom:1px solid var(--line); }
.profile-natal h3 { font:1.5rem var(--reading); margin:.5rem 0; }
.profile-natal .section-head { flex-wrap:wrap; }
.profile-natal .primary { font-size:.82rem; }
.profile-natal-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(10rem,1fr); align-items:center; gap:1.8rem; }
.profile-natal figure { margin:0; min-width:0; }
#profile-chart-image { width:100%; height:auto; display:block; }
.profile-natal figcaption { text-align:center; font-size:.78rem; }
.profile-natal a { color:inherit; text-underline-offset:.2em; }
.big-four { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:1rem 0; margin:.5rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); gap:.8rem; }
.big-four dt { color:var(--dim); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.big-four dd { font:1.05rem/1.6 var(--reading); margin:.15rem 0 0; }
.big-four small { display:block; color:var(--dim); font: .75rem system-ui,sans-serif; }
.birth-record h4 { font-size:.85rem; margin:1rem 0 .7rem; }
.birth-record dl { margin:0 0 1rem; }
.birth-record dt { font-size:.7rem; color:var(--dim); margin:.55rem 0 .1rem; }
.birth-record dd { margin:0; font-size:.8rem; overflow-wrap:anywhere; }
.birth-record .note { font-size:.72rem; }
.profile-natal details { border-top:1px solid var(--line); padding-top:.5rem; }
/* Keep collapsed table borders out of the paint/layout tree in WebKit. */
.profile-natal details:not([open]) > table { display:none; }
.profile-natal summary { font-weight:550; }
.profile-natal .natal-facts td { border-bottom:0; padding-bottom:.25rem; }
#profile-aspects .natal-facts td:nth-child(2), #profile-aspects .natal-facts td:nth-child(4) { white-space:nowrap; }
.profile-natal .natal-explanation td { padding-top:0; padding-bottom:1rem; }
.natal-explanation p { margin:.15rem 0 0; max-width:65ch; font:1rem/1.65 var(--reading); font-variant-numeric:normal; }
@media(min-width:67rem) { .profile-layout { grid-template-columns:16rem minmax(0,1fr); gap:3rem; } }
@media(max-width:66rem) { .profile-natal-layout { grid-template-columns:minmax(0,1fr); gap:.5rem; } .profile-natal figure { max-width:30rem; margin:auto; } .birth-record dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem 1rem; } }
@media(max-width:30rem) { .big-four { grid-template-columns:repeat(2,minmax(0,1fr)); } }
fieldset { padding:0; border:0; margin:0; min-width:0; }
.profile-section { padding:1.7rem 0; border-top:1px solid var(--line); }
.profile-section:first-child { border-top:0; padding-top:0; }
.profile-section h3 { font-size:1.02rem; font-weight:600; margin:0 0 .4rem; }
.profile-section label span { color:var(--dim); }
textarea { display:block; resize:vertical; min-height:5rem; }
.field-count { text-align:right; margin:.2rem 0 0; font-variant-numeric:tabular-nums; }
#reading-question-error { color:var(--bad); font-weight:600; }
.chart-shortcuts { margin:0 0 .7rem; }
.profile-savebar { padding:.9rem 0; border-top:1px solid var(--line); }
.profile-savebar .actions { margin:0 0 .5rem; }
#profile-save-status.error,#password-status.error { color:var(--bad); font-weight:600; }
.account-security { margin-top:1.6rem; }
.account-address { font-size:.9rem; overflow-wrap:anywhere; }
details { margin-top:1rem; }
summary { cursor:pointer; color:var(--hit); font-size:.85rem; padding:.4rem 0; }
#change-password-form { max-width:27rem; padding:.3rem 0; }
@keyframes reveal { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:none; } }
@media(max-width:66rem) { .cols { grid-template-columns:21rem minmax(0,1fr); gap:1.2rem; } .cols aside { padding-right:1rem; } }
@media(max-width:66rem) { .profile-layout { grid-template-columns:15rem minmax(0,1fr); gap:2rem; } }
@media(max-width:50rem) { .profile-layout { grid-template-columns:minmax(0,1fr); gap:1.8rem; padding:.8rem 0; max-width:39rem; margin:auto; } .profile-intro { position:static; } .profile-intro .note { max-width:32rem; } .profile-layout .row { grid-template-columns:1fr; gap:0; } }
@media(max-width:50rem) { body { padding:1rem; } .entry { grid-template-columns:1fr; gap:1.5rem; margin:1.5rem auto 3rem; max-width:27rem; } .entry-copy { padding:0; } .reading { font-size:1.45rem; margin:.5rem 0; } .cols { grid-template-columns:minmax(0,1fr); } .cols aside { border:0; padding:0 0 1.5rem; border-bottom:1px solid var(--line); } .empty { padding:2rem 0; } #account { flex-direction:column; align-items:flex-end; gap:.2rem; } h1 span { display:block; margin:0; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
@media(max-width:50rem) { .profile-natal > .section-head { align-items:flex-start; flex-wrap:wrap; } .profile-chart-actions { justify-content:flex-start; } }
@media(max-width:50rem) { header { align-items:flex-start; flex-wrap:wrap; } .header-actions { margin-left:auto; gap:.6rem; } #account-email { max-width:18rem; } }

/* A new reply takes the same place and voice as the conversation. */
#reading-workspace { margin-top:1.5rem; }
.eyebrow { font-size:.7rem; text-transform:uppercase; letter-spacing:.09em; color:var(--dim); }
#reading-summary-title { font:1.45rem/1.4 var(--reading); margin:.6rem 0 1rem; }
.reading-content { overflow-anchor:none; }
#reading-activity { margin:.4rem 0 1.6rem; min-height:8rem; }
#reading-activity-title { display:flex; align-items:center; gap:.6rem; font:400 1.35rem/1.4 var(--reading); letter-spacing:-.015em; margin:0 0 .8rem; }
#reading-activity-title:focus { outline:none; }
.reading-activity-star { width:1.15rem; height:1.15rem; fill:none; stroke:currentColor; stroke-width:1; stroke-linecap:round; stroke-linejoin:round; color:var(--dim); flex:none; }
#reading-activity:has(#reading-status[data-active="true"]) .reading-activity-star { animation:reading-breathe 4.8s ease-in-out infinite; }
#reading-status { font:400 1.13rem/1.65 var(--reading); color:var(--dim); margin:0; max-width:36rem; min-height:3.3em; overflow-wrap:anywhere; text-wrap:pretty; }
#reading-status.error { color:var(--text); }
.reading-activity-actions { display:flex; gap:1.2rem; margin-top:.75rem; }
.reading-activity-actions .text-button { padding:.2rem 0; color:var(--dim); min-height:2.75rem; font-size:.75rem; }
.reading-activity-actions .text-button:hover { color:var(--text); background:transparent; text-decoration:underline; text-underline-offset:.25em; }
.reading-activity-actions:has(#leave-reading[hidden]):has(#stop-reading[hidden]) { display:none; }
@keyframes reading-breathe { 50% { opacity:.4; transform:scale(.9); } }
@media(prefers-reduced-motion:reduce) { #reading-activity .reading-activity-star { animation:none; } }

.reading-job-banner { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); padding:.75rem 0; margin-bottom:1.5rem; }
.reading-job-banner p { margin:0; }
.reading-job-banner button { flex-shrink:0; }
@media (max-width:600px) { .reading-job-banner { align-items:flex-start; flex-direction:column; gap:.4rem; } }

/* First visit: birth details, then the person's own chart. */
header h1 { white-space:nowrap; }
header h1 span { display:inline; margin-left:.4rem; }
body.onboarding-active { min-height:100svh; }
body.onboarding-active header { align-items:center; flex-wrap:nowrap; }
body.onboarding-active #entry-sign-in { white-space:nowrap; }
.onboarding { max-width:64rem; margin:clamp(2.5rem,7vh,5.5rem) auto 2rem; }
.onboarding-step { animation:onboarding-arrive 300ms ease-out both; }
#onboarding-birth { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:clamp(3rem,7vw,7rem); align-items:start; }
.onboarding-intro { padding-top:1.2rem; }
.onboarding .eyebrow { margin:0 0 1.1rem; font-size:.7rem; letter-spacing:.14em; }
h2.onboarding-title { font:400 clamp(2.5rem,4vw,3.5rem)/1.08 var(--reading); text-transform:none; letter-spacing:-.035em; color:var(--text); margin:0 0 1.25rem; text-wrap:balance; }
.onboarding-title:focus { outline:none; }
.onboarding-intro .onboarding-title { max-width:10ch; }
.onboarding-description { max-width:26rem; color:var(--dim); font-size:.95rem; line-height:1.7; text-wrap:pretty; }
.onboarding-form { min-width:0; }
.onboarding-form label { font-size:.8rem; margin:1rem 0 .4rem; }
.onboarding-form > label:first-child { margin-top:0; }
.onboarding-form label span { color:var(--dim); font-weight:400; }
.onboarding-form input { min-height:3rem; padding:.7rem .8rem; font-size:.95rem; background:var(--bg); border-color:var(--control-line); transition:border-color 160ms ease,background-color 160ms ease; }
.onboarding-form input:hover { border-color:var(--hover-line); }
.birth-date-time { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:1rem; }
.birth-date-time > div { min-width:0; }
.onboarding-place .search-row { gap:.6rem; }
.onboarding-place .search-row button { min-height:3rem; padding:.6rem .85rem; font-size:.85rem; flex-shrink:0; }
.onboarding-place .results { max-height:12rem; overflow:auto; overscroll-behavior:contain; margin-top:.35rem; }
.onboarding-place .results:empty { margin:0; }
.onboarding-place .results button { min-height:2.75rem; padding:.6rem .4rem; }
.onboarding-place .results [aria-selected=true] { background:var(--subtle); outline:1px solid var(--control-line); outline-offset:-1px; }
#onboarding-selected-place { margin:.5rem 0 0; }
#onboarding-selected-place:empty { display:none; }
#onboarding-submit { width:100%; margin-top:1.5rem; min-height:3.1rem; font-size:.9rem; }
.onboarding-form > .note { margin:.7rem 0 0; }
#onboarding-error { margin:.7rem 0 0; min-height:0; }
#onboarding-error:empty { display:none; }
.onboarding-progress { grid-column:1/-1; margin:2rem 0 0; color:var(--dim); font-size:.7rem; letter-spacing:.12em; font-variant-numeric:tabular-nums; }
.preview-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:center; gap:clamp(2rem,5vw,5rem); }
.preview-chart { min-width:0; margin:0; }
#onboarding-chart-image { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.preview-copy { min-width:0; }
.preview-copy .onboarding-title { font-size:clamp(2.4rem,3.7vw,3.1rem); }
.preview-placements { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.7rem 0; padding:1.15rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.preview-placements > div { min-width:0; }
.preview-placements dt { color:var(--dim); font-size:.72rem; }
.preview-placements dd { font:1.2rem/1.45 var(--reading); margin:.3rem 0 0; overflow-wrap:anywhere; }
.preview-placements small { display:block; font:.72rem/1.5 system-ui,sans-serif; color:var(--dim); margin-top:.15rem; }
#onboarding-save { min-width:11rem; min-height:3rem; font-size:.9rem; }
#onboarding-edit { margin-left:1rem; }
.preview-copy > .note:last-child { margin-top:1rem; max-width:26rem; }
body.onboarding-active .entry { max-width:58rem; margin:clamp(2.5rem,7vh,5.5rem) auto 3rem; gap:clamp(3rem,7vw,7rem); }
body.onboarding-active .entry .reading { font-size:2.5rem; line-height:1.15; letter-spacing:-.025em; margin:.3rem 0 1.2rem; }
body.onboarding-active .entry input { min-height:3rem; }
body.onboarding-active .entry button.primary { min-height:3rem; }
body.onboarding-active .save-chart-auth { display:block; margin:1.5rem 0 0; }
.save-chart-auth .entry-copy { display:none; }
.save-chart-auth .actions { align-items:stretch; }
.save-chart-auth .primary { width:100%; }
#auth-back { margin-top:1rem; }
.onboarding-reassurance { text-align:center; }
.preview-copy .onboarding-progress { float:right; margin:0; }
#onboarding-edit { margin:1rem 0 0; }
body.onboarding-active #notice:empty { display:none; }
@keyframes onboarding-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:50rem) {
  .onboarding { max-width:30rem; margin:2.3rem auto 1.5rem; }
  #onboarding-birth { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .onboarding-intro { padding-top:0; }
  .onboarding .eyebrow { margin-bottom:.75rem; }
  .onboarding-intro .onboarding-title { max-width:none; font-size:2.65rem; margin-bottom:.8rem; }
  .onboarding-description { margin-bottom:0; font-size:.9rem; line-height:1.6; }
  .onboarding-form input { font-size:1rem; }
  .onboarding-progress { margin:.6rem 0 0; }
  .preview-layout { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .preview-chart { max-width:25rem; width:100%; margin:0 auto; }
  .preview-copy .onboarding-title { margin-bottom:.75rem; }
  .preview-placements { margin:1.3rem 0; }
  #onboarding-preview .onboarding-progress { margin-top:1.5rem; }
  body.onboarding-active .entry { grid-template-columns:minmax(0,1fr); max-width:30rem; gap:1.5rem; margin:2.3rem auto 2rem; }
  body.onboarding-active .entry .reading { font-size:2.3rem; }
}
@media(max-width:30rem) {
  body.onboarding-active header { gap:.5rem; }
  body.onboarding-active header .header-actions { gap:.75rem; flex-wrap:nowrap; }
  body.onboarding-active .theme-switch button { width:2.5rem; height:2.5rem; }
  .onboarding { margin-top:1.8rem; }
  #onboarding-birth { gap:1.1rem; }
  .onboarding-intro .onboarding-title { font-size:2.4rem; }
  .onboarding-form label { margin-top:.8rem; }
  .birth-date-time { gap:.7rem; }
  #onboarding-submit { margin-top:1.2rem; }
  .preview-layout { gap:1.2rem; }
  .preview-chart { max-width:19rem; }
  .preview-placements { gap:.65rem; }
  .preview-placements dd { font-size:1.05rem; }
}

/* Shared date, time and choice surfaces; native values still validate forms. */
.house-system-label { display:flex; align-items:center; gap:.1rem; margin:.45rem 0 .1rem; }
.house-system-label label,.onboarding-form .house-system-label label { margin:0; }
.house-help-toggle { display:grid; place-items:center; width:2.75rem; height:2.75rem; padding:0; border:0; background:transparent; color:var(--dim); flex-shrink:0; }
.house-help-toggle span { display:grid; place-items:center; width:1.1rem; height:1.1rem; border:1px solid currentColor; border-radius:50%; font-size:.73rem; line-height:1; }
.house-help-toggle[aria-expanded=true] { color:var(--text); }
.house-system-explanation { color:var(--dim); font-size:.8rem; line-height:1.6; margin:.8rem 0; max-width:34rem; }
.house-system-explanation p { margin:0 0 .6rem; }
.house-system-explanation p:last-child { margin-bottom:0; }
.house-system-explanation strong { color:var(--text); font-weight:600; }
.picker-native { position:absolute !important; width:1px !important; height:1px !important; min-height:0 !important; padding:0 !important; border:0 !important; opacity:0; pointer-events:none; }
.picker-trigger { display:flex; align-items:center; justify-content:space-between; gap:.65rem; width:100%; min-height:2.75rem; text-align:left; font-variant-numeric:tabular-nums; padding:.55rem .7rem; }
.picker-trigger > span:first-child { min-width:0; overflow-wrap:anywhere; }
.picker-trigger-icon { display:flex; flex-shrink:0; color:var(--dim); }
.picker-trigger-icon svg,.picker-icon svg { width:1.1rem; height:1.1rem; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.picker-placeholder { color:var(--placeholder); }
.onboarding-form .picker-trigger { min-height:3rem; padding:.7rem .8rem; font-size:.95rem; background:var(--bg); }
.date-entry { display:flex; align-items:stretch; min-width:0; border:1px solid var(--control-line); border-radius:2px; background:var(--surface); }
.date-entry > input { flex:1; width:0; min-width:0; border:0; border-radius:0; font-variant-numeric:tabular-nums; }
.date-entry > input::-webkit-calendar-picker-indicator { display:none; }
.date-entry > .calendar-trigger { justify-content:center; flex:0 0 2.75rem; width:2.75rem; padding:.5rem; border:0; border-left:1px solid var(--line); border-radius:0; }
.date-entry > input:focus-visible,.date-entry > .calendar-trigger:focus-visible { outline-offset:-2px; }
.field-picker { width:min(23rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:1.1rem; border:1px solid var(--line); border-radius:8px; color:var(--text); background:var(--surface); overflow:auto; overscroll-behavior:contain; box-shadow:0 18px 70px #0002; }
.field-picker[open] { animation:reveal 140ms ease-out; }
.field-picker::backdrop { background:#0005; }
.field-picker-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.field-picker-heading h2 { font:1.5rem/1.25 var(--reading); text-transform:none; letter-spacing:-.02em; color:var(--text); margin:0; }
.picker-icon { display:grid; place-items:center; width:2.75rem; height:2.75rem; min-height:2.75rem; flex-shrink:0; padding:.7rem; border-color:transparent; background:transparent; }
.field-picker-footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding-top:.7rem; margin-top:.8rem; border-top:1px solid var(--line); }
.field-picker-footer button { min-height:2.75rem; }
#field-picker-cancel { margin-left:auto; }
.calendar-navigation { display:grid; grid-template-columns:2.75rem minmax(0,1fr) 5rem 2.75rem; align-items:center; gap:.2rem; margin-bottom:.6rem; }
#calendar-month { border-color:transparent; padding:.5rem .2rem; min-height:2.75rem; font-size:.9rem; text-align:left; }
#calendar-month::after { content:'⌄'; margin-left:.35rem; color:var(--dim); }
#calendar-year { font-size:1rem; padding:.45rem .35rem; min-height:2.75rem; text-align:center; font-variant-numeric:tabular-nums; border-color:var(--line); }
.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.15rem; }
.calendar-days > span { display:grid; place-items:center; min-height:1.8rem; font-size:.7rem; color:var(--dim); }
.calendar-days button { width:100%; min-height:2.7rem; padding:.2rem; border-color:transparent; font-size:.86rem; font-variant-numeric:tabular-nums; }
.calendar-days button[aria-pressed=true],.calendar-months button[aria-pressed=true] { background:var(--hit); color:var(--on-hit); }
.calendar-days button:disabled,.calendar-months button:disabled { cursor:default; opacity:.3; }
.calendar-months { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.3rem; margin:.5rem 0 .8rem; padding-bottom:.8rem; border-bottom:1px solid var(--line); }
.calendar-months button { font-size:.85rem; min-height:2.75rem; border-color:transparent; }
.time-picker-fields { display:grid; grid-template-columns:1fr auto 1fr; align-items:start; gap:.7rem; max-width:15rem; margin:1.3rem auto 1.5rem; }
.time-picker-fields label { text-align:center; font-size:.75rem; margin:0 0 .4rem; }
.time-picker-fields input { font:2.8rem/1.2 var(--reading); font-variant-numeric:tabular-nums; min-height:5rem; width:100%; padding:.55rem .4rem; text-align:center; border-color:var(--line); }
.time-picker-fields > span { display:grid; place-items:center; height:5rem; padding-bottom:.3rem; color:var(--dim); font:2rem var(--reading); }
.field-picker input[type=number] { appearance:textfield; -moz-appearance:textfield; }
.field-picker input::-webkit-inner-spin-button,.field-picker input::-webkit-outer-spin-button { appearance:none; margin:0; }
.picker-apply { width:100%; min-height:2.75rem; }
.choice-picker { max-height:min(24rem,55dvh); overflow:auto; overscroll-behavior:contain; }
.choice-picker button { display:block; position:relative; width:100%; text-align:left; padding:.8rem 2rem .8rem .65rem; min-height:2.9rem; border:0; border-bottom:1px solid var(--line); background:transparent; font-size:.9rem; overflow-wrap:anywhere; }
.choice-picker button:hover,.choice-picker button:focus-visible { background:var(--hover); outline-offset:-2px; }
.choice-picker button[aria-selected=true] { background:var(--subtle); font-weight:550; }
.choice-picker button[aria-selected=true]::after { content:'✓'; position:absolute; right:.6rem; top:.8rem; color:var(--text); }
/* Location search follows the same choice treatment in both chart forms. */
.results { background:var(--surface); }
.results button { min-height:2.75rem; padding:.7rem .65rem; }
.results button:focus-visible { outline-offset:-2px; }
@media(max-width:30rem) {
  .field-picker { width:100%; max-width:none; max-height:calc(100dvh - 1rem); margin:auto 0 0; border-radius:12px 12px 0 0; padding:1rem max(1rem,env(safe-area-inset-right)) max(.8rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left)); }
  .calendar-days button { min-height:2.75rem; }
  .birth-date-time .picker-trigger { font-size:.87rem; padding:.7rem .6rem; gap:.3rem; }
}

/* Paper, ink and the measured typography of an astronomical journal. */
body > header { border-bottom:3px double var(--line); }
.wordmark { display:flex; align-items:baseline; gap:.6rem; font:500 1.65rem/1.2 var(--reading); letter-spacing:.09em; white-space:nowrap; }
.wordmark span { display:inline; margin:0; color:var(--text); font:400 .68rem/1.2 var(--reading); letter-spacing:.19em; text-transform:uppercase; }
.celestial-rule { display:flex; align-items:center; gap:.75rem; width:100%; max-width:14rem; color:var(--dim); }
.celestial-rule::before,.celestial-rule::after { content:""; height:4px; flex:1; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.celestial-rule svg { width:1.9rem; height:1.9rem; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:.9; }
.intro-rule { margin:1.6rem 0 0; }
.onboarding-intro .onboarding-progress { margin:1.4rem 0 0; }
.chart-plate { margin:0; }
@media(min-width:50.01rem) { .preview-chart { width:100%; max-width:28rem; margin-inline:auto; } }
.chart-caption { text-align:center; color:var(--dim); margin:1rem auto 1.4rem; padding-top:.8rem; max-width:31rem; border-top:3px double var(--line); overflow-wrap:anywhere; }
.chart-caption:empty { display:none; }
.chart-caption-name { display:flex; align-items:center; justify-content:center; gap:.25rem; color:var(--text); font:500 1.05rem/1.45 var(--reading); letter-spacing:.025em; margin-bottom:.3rem; }
.chart-caption-details { display:block; font-size:.72rem; line-height:1.7; font-variant-numeric:tabular-nums; }
.chart-download { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; min-height:44px; color:var(--dim); cursor:pointer; border-radius:2px; }
.chart-download:hover { color:var(--text); background:var(--surface); }
.chart-download:focus-visible { outline:2px solid var(--hit); outline-offset:2px; }
.chart-download svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
#reading-result { border-top:0; padding-top:.5rem; margin-top:1.7rem; }
.reading-rule { margin:0 auto 1.5rem; max-width:12rem; }
#reading-summary-title { font-size:1.35rem; letter-spacing:-.015em; margin:.75rem 0 1.1rem; }
#reading-answer { font-size:1.18rem; line-height:1.8; max-width:65ch; }
#reading-answer p { margin:.8rem 0 1.15rem; }
#reading-answer > p:first-of-type { display:flow-root; }
#reading-answer h4 { font:500 1.05rem/1.45 var(--reading); font-variant-caps:all-small-caps; letter-spacing:.07em; border-top:1px solid var(--line); padding-top:.9rem; margin:1.7rem 0 .65rem; }
#reading-answer > h4:first-child { border-top:0; padding-top:0; margin-top:0; }
@media(max-width:30rem) {
  .wordmark { font-size:1.45rem; gap:.4rem; }
  .wordmark span { font-size:.6rem; letter-spacing:.15em; }
  .intro-rule { margin-top:1.1rem; max-width:10rem; }
  .onboarding-intro .onboarding-progress { margin-top:.9rem; }
  .chart-caption { margin:.75rem auto 1.1rem; }
  #reading-answer { font-size:1.08rem; line-height:1.75; }
}

/* A few engraved celestial accents, shared by both appearances. */
.wordmark .wordmark-star { width:1.15rem; height:1.15rem; align-self:center; margin-right:.1rem; fill:none; stroke:currentColor; stroke-width:.85; flex-shrink:0; }
/* A patient hover reveals the cat; leaving cancels the delay or reverses it. */
.wordmark-star {
  --star-outline:path("M16 2C17 5.667 18 9.333 19 13C22.667 14 26.333 15 30 16C26.333 17 22.667 18 19 19C18 22.667 17 26.333 16 30C15 26.333 14 22.667 13 19C9.333 18 5.667 17 2 16C5.667 15 9.333 14 13 13C14 9.333 15 5.667 16 2Z");
  --cat-outline:path("M16 9C18 9 19 9.5 20.5 10.2C22 8 24 5.5 26 4C26.8 8 26 12 26.2 14.5C30 25 24 28 16 28C8 28 2 25 5.8 14.5C6 12 5.2 8 6 4C8 5.5 10 8 11.5 10.2C13 9.5 14 9 16 9Z");
  pointer-events:all; stroke-linecap:round; stroke-linejoin:round;
}
.wordmark-star > path { transition:opacity 900ms ease,transform 1100ms cubic-bezier(.4,0,.2,1),d 1100ms cubic-bezier(.4,0,.2,1),stroke-width 1100ms ease; transform-origin:16px 16px; }
.wordmark-cat-outline,.wordmark-cat-features { opacity:0; transform:translateY(1px) scale(.94); stroke-width:1.15; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .wordmark-star:hover > path { transition-delay:2.5s; }
  .wordmark-star:hover .wordmark-outline,.wordmark-star:hover .wordmark-rays { opacity:0; }
  .wordmark-star:hover .wordmark-cat-outline,.wordmark-star:hover .wordmark-cat-features { opacity:1; transform:none; }
  @supports (d:path("M0 0L1 1")) {
    .wordmark-outline { d:var(--star-outline); }
    .wordmark-cat-outline { display:none; }
    .wordmark-star:hover .wordmark-outline { d:var(--cat-outline); opacity:1; stroke-width:1.15; }
  }
}
.reading-heading { display:flex; align-items:center; gap:.65rem; }
.reading-heading svg { width:1.35rem; height:1.35rem; fill:none; stroke:currentColor; stroke-width:1; flex-shrink:0; }
.site-footer { margin-top:3.5rem; padding:0 0 1.5rem; border-top:0; text-align:center; }
.footer-rule { max-width:none; gap:1.25rem; }
.footer-rule svg { width:3.2rem; height:2rem; }
.footer-name { margin:.9rem 0 .15rem; font:500 1.2rem/1.4 var(--reading); letter-spacing:.08em; color:var(--text); }
.celestial-secret { margin:0; }
.celestial-secret > summary { min-height:2.75rem; padding:0; list-style:none; color:var(--dim); }
.celestial-secret > summary::-webkit-details-marker { display:none; }
.celestial-secret > summary:focus-visible { outline:none; }
.celestial-secret > summary:focus-visible svg { outline:1px solid var(--hit); outline-offset:5px; border-radius:50%; }
.celestial-secret > summary svg { transition:transform 220ms ease,color 220ms ease; }
.celestial-secret > summary:hover svg,.celestial-secret > summary:focus-visible svg { transform:rotate(8deg); color:var(--text); }
.celestial-footnote { max-width:25rem; margin:.7rem auto 1.4rem; }
.celestial-week { display:flex; justify-content:center; gap:.45rem; padding:0; margin:0 auto .8rem; list-style:none; }
.celestial-week li { display:flex; flex-direction:column; align-items:center; gap:.4rem; width:2.5rem; padding:.4rem .15rem; color:var(--dim); border-bottom:1px solid transparent; }
.celestial-week svg { width:1.3rem; height:1.3rem; fill:none; stroke:currentColor; stroke-width:1.05; stroke-linecap:round; stroke-linejoin:round; }
.celestial-week li > span { font-size:.6rem; letter-spacing:.04em; }
.celestial-week li[aria-current=date] { color:var(--text); border-color:currentColor; }
.celestial-week li[aria-current=date] svg { stroke-width:1.5; }
.celestial-week-note { margin:.3rem 0; font:1rem/1.5 var(--reading); color:var(--text); }
.celestial-week-caption { margin:0; font-size:.64rem; line-height:1.7; }
@media(prefers-reduced-motion:reduce) {
  .celestial-secret > summary svg { transition:none; }
  .celestial-secret > summary:hover svg,.celestial-secret > summary:focus-visible svg { transform:none; }
}
@media(max-width:30rem) {
  .site-footer { margin-top:2.5rem; padding-bottom:1rem; }
  .footer-rule { gap:.85rem; }
}

.reading-question-meta { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:.25rem 1rem; margin-top:.25rem; }
#reading-use-suggestion { margin-right:auto; padding:.35rem 0; color:var(--dim); }
#reading-use-suggestion:hover { color:var(--text); }
#reading-use-suggestion kbd { margin-left:.4rem; padding:.1rem .3rem; border:1px solid var(--line); border-radius:2px; font:.7rem/1.2 system-ui,sans-serif; }
.reading-question-meta .field-count { margin:0; }
#reading-question-count { visibility:hidden; font-size:.68rem; }
.reading-composer:focus-within #reading-question-count,.reading-composer[data-has-text="true"] #reading-question-count { visibility:visible; }
@media(pointer:coarse) { #reading-use-suggestion { min-height:2.75rem; } #reading-use-suggestion kbd { display:none; } }

/* Language belongs with appearance; labels retain generous touch targets. */
.i18n-pending body { visibility:hidden; }
.language-switch { display:flex; align-items:center; gap:2px; flex-shrink:0; }
.language-switch button { width:2.4rem; min-height:2.75rem; padding:.45rem .3rem; font-size:.72rem; letter-spacing:.04em; border:0; border-bottom:1px solid transparent; border-radius:0; background:transparent; color:var(--dim); }
.language-switch button[aria-pressed=true] { color:var(--text); border-bottom-color:currentColor; }
.language-switch button:hover { background:var(--hover); }
:root[lang=ru] { --reading:"Georgia","Times New Roman",serif; }
@media(max-width:40rem) {
  header { flex-wrap:wrap; row-gap:.6rem; }
  .header-actions { gap:.55rem; }
  .header-actions #account { flex-basis:100%; justify-content:flex-end; }
  .language-switch button { width:2.15rem; }
  :root[lang=ru] .wordmark { letter-spacing:.015em; }
}
