@import url('./generated/tokens.css?v=1.4.0-candidate');
@font-face{font-family:Manrope;src:url('./assets/fonts/font-00.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/font-02.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/font-04.ttf') format('truetype');font-weight:800;font-display:swap}
.z-ui{font-family:var(--z-font);color:var(--z-ink);font-size:var(--z-body-size);line-height:var(--z-body-line);-webkit-font-smoothing:antialiased}
.z-ui *{box-sizing:border-box}.z-ui [hidden]{display:none!important}.z-ui button,.z-ui input,.z-ui select,.z-ui textarea{font:inherit;color:inherit}.z-ui button,.z-ui a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.z-ui button{cursor:pointer}.z-ui :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--z-accent);outline-offset:4px}.z-ui h1,.z-ui h2,.z-ui h3,.z-ui p{margin:0}.z-ui img{display:block;max-width:100%}
.z-hero{font-size:var(--z-hero-size);line-height:var(--z-hero-line);font-weight:var(--z-hero-weight);letter-spacing:var(--z-hero-tracking)}.z-title{font-size:var(--z-title-size);line-height:var(--z-title-line);font-weight:var(--z-title-weight);letter-spacing:var(--z-title-tracking)}.z-section-title{font-size:var(--z-section-size);line-height:var(--z-section-line);font-weight:var(--z-section-weight);letter-spacing:var(--z-section-tracking)}.z-body{font-size:var(--z-body-size);line-height:var(--z-body-line);font-weight:var(--z-body-weight);letter-spacing:var(--z-body-tracking)}.z-label{font-size:var(--z-label-size);line-height:var(--z-label-line);font-weight:var(--z-label-weight)}.z-caption{font-size:var(--z-caption-size);line-height:var(--z-caption-line)}.z-eyebrow{font-size:var(--z-eyebrow-size);line-height:var(--z-eyebrow-line);font-weight:var(--z-eyebrow-weight);letter-spacing:var(--z-eyebrow-tracking);text-transform:uppercase}.z-muted{color:var(--z-muted)}
.z-icon{width:var(--z-icon);height:var(--z-icon);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.z-button{min-height:var(--z-control);border:1px solid var(--z-ink);border-radius:var(--z-radius-control);padding:var(--z-space-3) var(--z-space-4);display:inline-flex;align-items:center;justify-content:center;gap:var(--z-space-3);background:var(--z-ink);color:var(--z-on-ink)!important;font-size:var(--z-label-size)!important;line-height:var(--z-label-line)!important;font-weight:600!important;text-decoration:none;text-align:center}.z-button[data-variant=secondary]{background:transparent;color:var(--z-ink)!important;border-color:var(--z-control-border)}.z-button[data-variant=quiet]{background:transparent;color:var(--z-ink)!important;border-color:transparent}.z-button[data-variant=danger]{background:var(--z-danger);border-color:var(--z-danger);color:var(--z-surface)!important}.z-button:hover:not(:disabled){background:var(--z-ink-pressed)}.z-button[data-variant=secondary]:hover:not(:disabled),.z-button[data-variant=quiet]:hover:not(:disabled){background:var(--z-selected)}.z-button[data-variant=danger]:hover:not(:disabled){filter:brightness(.92)}.z-button:active:not(:disabled){transform:translateY(1px)}.z-button:disabled{cursor:default;background:var(--z-disabled-fill);border-color:var(--z-line);color:var(--z-disabled-text)!important}.z-button[aria-busy=true]{background:var(--z-ink);color:var(--z-on-ink)!important}.z-button[data-size=compact]{min-height:var(--z-touch)}.z-button[data-full]{width:100%;justify-content:space-between}.z-icon-button{display:inline-grid;place-items:center;width:var(--z-touch);height:var(--z-touch);border:1px solid var(--z-control-border);background:transparent;border-radius:var(--z-radius-round)}
.z-segments{display:flex;gap:var(--z-space-1);border-bottom:1px solid var(--z-control-border)}.z-segments button{flex:1;min-height:var(--z-touch);padding:var(--z-space-2);font-size:var(--z-caption-size);background:transparent;border:0;border-bottom:2px solid transparent}.z-segments button[aria-pressed=true]{border-color:var(--z-ink);font-weight:800}.z-chips{display:flex;gap:var(--z-space-2);flex-wrap:wrap}.z-chip{min-height:var(--z-touch);padding:var(--z-space-2) var(--z-space-4);border:1px solid var(--z-control-border);border-radius:var(--z-radius-control);background:transparent;font-size:var(--z-label-size)!important}.z-chip[aria-pressed=true]{background:var(--z-ink);color:var(--z-on-ink)!important;border-color:var(--z-ink)}
.z-field{display:flex;flex-direction:column;gap:var(--z-space-2)}.z-field label,.z-field>span:first-child{font-size:var(--z-label-size);font-weight:600}.z-input{width:100%;min-height:var(--z-control);padding:var(--z-space-3) var(--z-space-4);border:1px solid var(--z-control-border);border-radius:var(--z-radius-control);background:var(--z-surface);font-size:var(--z-body-size)!important}.z-input::placeholder{color:var(--z-muted);opacity:1}.z-input:disabled{background:var(--z-disabled-fill);color:var(--z-disabled-text)}.z-input[aria-invalid=true]{border-color:var(--z-danger);box-shadow:inset 0 0 0 1px var(--z-danger)}.z-field-error{color:var(--z-danger);font-size:var(--z-caption-size);line-height:var(--z-caption-line)}.z-checkbox{display:flex;align-items:center;gap:var(--z-space-3);min-height:var(--z-touch);font-size:var(--z-label-size);cursor:pointer}.z-checkbox input{width:20px;height:20px;accent-color:var(--z-ink);margin:0;flex-shrink:0}
.z-notice{display:flex;align-items:flex-start;gap:var(--z-space-3);padding:var(--z-space-4);border-radius:var(--z-radius-control);background:var(--z-notice-surface);color:var(--z-notice);font-size:var(--z-caption-size);line-height:var(--z-caption-line)}.z-notice[data-tone=error]{background:var(--z-danger-surface);color:var(--z-danger)}.z-notice[data-tone=success]{background:var(--z-success-surface);color:var(--z-success)}.z-notice strong{display:block;font-size:var(--z-label-size);line-height:var(--z-label-line);margin-bottom:var(--z-space-1)}
.z-row{display:flex;align-items:center;gap:var(--z-space-4);padding:var(--z-space-5) 0;border-bottom:1px solid var(--z-line);text-decoration:none;color:inherit}.z-row-body{flex:1;min-width:0}.z-row-title{font-size:var(--z-label-size);font-weight:600;line-height:var(--z-label-line)}.z-row .z-caption{margin-top:var(--z-space-1);color:var(--z-muted)}.z-number{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--z-control-border);border-radius:var(--z-radius-round);font-size:var(--z-caption-size);flex-shrink:0}.z-row[data-state=complete] .z-number{background:var(--z-success-surface)}.z-row[data-state=current]{border-bottom-color:var(--z-ink)}.z-progress{height:4px;border:0;background:var(--z-line);border-radius:0;width:100%;accent-color:var(--z-ink)}.z-progress::-webkit-progress-bar{background:var(--z-line)}.z-progress::-webkit-progress-value{background:var(--z-ink)}.z-progress::-moz-progress-bar{background:var(--z-ink)}
.z-basis{border-top:1px solid var(--z-line);padding-top:var(--z-space-5);display:flex;align-items:flex-start;gap:var(--z-space-3)}.z-basis .z-number{width:28px;height:28px}.z-basis h3{font-size:var(--z-label-size);line-height:var(--z-label-line);font-weight:600;margin-top:var(--z-space-1)}.z-basis p{font-size:var(--z-caption-size);line-height:var(--z-caption-line);margin-top:var(--z-space-2)}.z-reference{display:inline;border:0;padding:0 2px;background:transparent;border-bottom:1px solid var(--z-accent);font:inherit!important;text-align:left}.z-reference[aria-expanded=true]{background:var(--z-selected)}.z-reference sup{font-size:10px;margin-left:3px;color:var(--z-accent)}.z-reading{font-size:var(--z-body-size);line-height:var(--z-body-line);max-width:var(--z-reading-max)}.z-reading p+p{margin-top:var(--z-space-5)}
.z-empty{text-align:left;padding:var(--z-space-8) 0}.z-empty>.z-icon{width:32px;height:32px;margin-bottom:var(--z-space-4)}.z-empty h3{font-size:var(--z-section-size);line-height:var(--z-section-line);font-weight:600}.z-empty p{margin-top:var(--z-space-3);color:var(--z-muted)}.z-empty .z-button{margin-top:var(--z-space-5)}.z-skeleton{height:12px;background:var(--z-line);margin:var(--z-space-3) 0;border-radius:2px}.z-skeleton[data-size=short]{width:66%}.z-spinner{display:inline-block;width:18px;height:18px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%}
.z-dialog{width:min(100% - 32px,480px);max-height:calc(100dvh - 32px);padding:var(--z-space-6);border:0;border-radius:var(--z-radius-sheet);background:var(--z-surface);color:var(--z-ink);overscroll-behavior:contain}.z-dialog::backdrop{background:var(--z-backdrop)}.z-dialog-head{display:flex;gap:var(--z-space-4);align-items:flex-start;justify-content:space-between;margin-bottom:var(--z-space-6)}.z-dialog .z-button{margin-top:var(--z-space-6)}.z-toast{position:fixed;bottom:calc(var(--z-space-6) + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:50;max-width:calc(100% - 32px);background:var(--z-ink);color:var(--z-on-ink);padding:var(--z-space-4) var(--z-space-5);border-radius:var(--z-radius-control);font-size:var(--z-label-size);box-shadow:0 8px 24px #27252B1F}
@media(prefers-reduced-motion:no-preference){.z-button,.z-chip{transition:background-color var(--z-motion-feedback) var(--z-ease),transform var(--z-motion-feedback) var(--z-ease)}.z-spinner{animation:z-spin 1.2s linear infinite}.z-skeleton{animation:z-breathe 1.2s ease-in-out 2}.z-dialog[open]{animation:z-enter var(--z-motion-enter) var(--z-ease)}@keyframes z-spin{to{transform:rotate(360deg)}}@keyframes z-breathe{50%{opacity:.5}}@keyframes z-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:600px){.z-dialog{width:100%;max-width:none;max-height:90dvh;margin:auto 0 0;border-radius:var(--z-radius-sheet) var(--z-radius-sheet) 0 0;padding-bottom:calc(var(--z-space-6) + env(safe-area-inset-bottom))}}

/* Candidate 1.4: the annotated sky. */
@font-face{font-family:"Zodsy Editorial";src:url('./assets/fonts/zodsy-editorial.ttf') format('truetype');font-weight:500;font-display:swap}
.z-display{font-family:var(--z-display-font);font-size:var(--z-display-size);line-height:var(--z-display-line);font-weight:var(--z-display-weight);letter-spacing:var(--z-display-tracking)}
.z-editorial{font-family:var(--z-display-font);font-size:var(--z-editorial-size);line-height:var(--z-editorial-line);font-weight:var(--z-editorial-weight);letter-spacing:var(--z-editorial-tracking)}
.z-specimen{margin:var(--z-space-2) 0 var(--z-space-4)}.z-specimen-body{display:flex;align-items:center;min-height:240px}.z-specimen-rail{width:88px;flex-shrink:0;display:grid;gap:var(--z-space-3)}.z-specimen-rail>.z-eyebrow{color:var(--z-accent)}.z-specimen-rail>i{height:1px;width:32px;background:var(--z-accent)}.z-specimen-body>img{width:calc(100% - 88px);height:252px;object-fit:contain;pointer-events:none}.z-specimen figcaption{display:flex;align-items:center;justify-content:space-between;gap:var(--z-space-2);flex-wrap:wrap;padding:var(--z-space-2) 0;border-bottom:1px solid var(--z-ink)}
.z-ui .z-action-row{display:flex;align-items:center;gap:var(--z-space-4);min-height:68px;padding:var(--z-space-3) 0;width:100%;border:0;border-bottom:1px solid var(--z-line);background:transparent;text-align:left;text-decoration:none}.z-action-copy{flex:1}.z-action-copy>span{display:block}.z-action-copy>.z-caption{margin-top:var(--z-space-1);color:var(--z-muted)}.z-action-circle{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--z-line);border-radius:var(--z-radius-round)}.z-action-row[data-primary] .z-action-circle{background:var(--z-accent);border-color:var(--z-accent);color:var(--z-on-ink)}.z-action-row:disabled{opacity:.45;cursor:default}.z-action-row:active:not(:disabled),.z-chapter-row:active{opacity:.65}
.z-ui .z-chapter-row{display:flex;align-items:center;gap:var(--z-space-3);min-height:90px;padding:var(--z-space-3) 0;border:0;border-bottom:1px solid var(--z-line);width:100%;text-align:left;background:transparent}.z-chapter-number{width:20px;flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--z-muted)}.z-chapter-copy{flex:1;min-width:0}.z-chapter-copy>span{display:block}.z-chapter-copy>.z-caption{margin-top:var(--z-space-1);color:var(--z-muted)}.z-chapter-row>img{width:52px;height:62px;object-fit:contain;flex-shrink:0;pointer-events:none}.z-chapter-row>.z-icon{width:18px;height:18px}.z-chapter-row[data-state=current]>.z-icon,.z-chapter-row[data-state=current]>.z-chapter-number{color:var(--z-accent)}

/* Shared learning controls: layer study, authored choices, and source notes. */
.z-study-options{display:flex;flex-direction:column;gap:var(--z-space-3);margin:var(--z-space-5) 0}
.z-ui .z-choice-row{width:100%;display:flex;align-items:center;gap:var(--z-space-3);min-height:56px;padding:var(--z-space-4);border:1px solid var(--z-control-border);border-radius:var(--z-radius-control);background:var(--z-surface);text-align:left}
.z-choice-row>span:first-child{flex:1;min-width:0}.z-choice-row strong{font-size:var(--z-label-size);line-height:var(--z-label-line);font-weight:600}.z-choice-row .z-caption{display:block;margin-top:var(--z-space-1);color:var(--z-muted)}
.z-choice-row[aria-checked=true]{border-color:var(--z-ink);background:var(--z-selected)}.z-choice-mark{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border:1px solid var(--z-control-border);border-radius:var(--z-radius-round)}.z-choice-row[aria-checked=true] .z-choice-mark{border-color:var(--z-ink);background:var(--z-ink);color:var(--z-on-ink)}.z-choice-row[aria-checked=true] .z-choice-mark::after{content:'✓';font-size:14px}.z-choice-row:disabled{opacity:.55;cursor:default}
.z-study-note{display:flex;flex-direction:column;gap:var(--z-space-2);border-left:2px solid var(--z-accent);padding-left:var(--z-space-4)}.z-study-note>.z-eyebrow{color:var(--z-accent)}.z-study-note .z-editorial{margin:0}

.z-option-group{display:flex;flex-wrap:wrap;gap:var(--z-space-2)}.z-option{min-height:44px;border:1px solid var(--z-control-border);border-radius:var(--z-radius-control);background:var(--z-surface);color:var(--z-ink);padding:var(--z-space-2) var(--z-space-3);font:inherit;cursor:pointer}.z-option[aria-checked="true"]{border:2px solid var(--z-ink);background:var(--z-selected)}.z-orbit-diagram{width:256px;max-width:100%;margin:auto}.z-orbit-diagram svg{display:block;width:100%}

/* A named guide remains attached to its source; artwork never stands in for chart data. */
.z-guide-identity{display:flex;align-items:center;gap:var(--z-space-4);border-top:1px solid var(--z-ink);border-bottom:1px solid var(--z-line);padding:var(--z-space-4) 0}.z-guide-identity>div{flex:1;min-width:0;display:grid;gap:var(--z-space-2)}.z-guide-identity .z-eyebrow{color:var(--z-accent)}.z-guide-identity>img{width:136px;height:152px;object-fit:contain;flex-shrink:0}.z-guide-identity[data-compact]>img{width:104px;height:112px}.z-mode-switch{display:flex;border-bottom:1px solid var(--z-control-border)}.z-mode-switch button{flex:1;min-height:var(--z-touch);padding:var(--z-space-3);border:0;border-bottom:2px solid transparent;background:var(--z-surface);font-size:var(--z-label-size);font-weight:600;color:var(--z-muted)}.z-mode-switch button[aria-selected=true]{border-bottom-color:var(--z-ink);color:var(--z-ink)}.z-mode-switch button:disabled{opacity:.55;cursor:default}.z-mode-switch button:active:not(:disabled){background:var(--z-selected)}

/* Shared atlas primitives. Glyphs are original local vectors, never chart data. */
.z-hero,.z-title,.z-section-title{font-family:var(--z-display-font);font-weight:500}
[data-celestial] svg{display:block;width:100%;height:100%}.z-specimen-body>[data-celestial]{width:calc(100% - 80px);height:216px}.z-specimen figcaption{border-bottom-color:var(--z-line)}
.z-chapter-art{width:52px;height:62px;flex-shrink:0}.z-reference-row{display:flex;align-items:center;gap:var(--z-space-3);min-height:64px;padding:var(--z-space-3) 0;border:0;border-bottom:1px solid var(--z-line);width:100%;background:transparent;text-align:left}.z-reference-row>span:first-child{width:24px;align-self:flex-start;color:var(--z-accent);padding-top:var(--z-space-1)}.z-reference-row>span:nth-child(2){flex:1}.z-reference-row strong{display:block;font-size:var(--z-label-size);font-weight:600}.z-reference-row small{display:block;font-size:var(--z-caption-size);color:var(--z-muted)}.z-reference-row>.z-icon{color:var(--z-accent)}
.z-guide-identity>[data-celestial]{flex:0 0 136px;height:136px}.z-guide-identity[data-compact]>[data-celestial]{flex-basis:104px;height:104px}

.z-chapter-rail{display:flex;flex-direction:column;align-items:center;gap:var(--z-space-1);width:48px;flex-shrink:0}.z-chapter-rail .z-chapter-art{width:48px;height:48px}.z-chapter-rail .z-chapter-number{width:auto}.z-chapter-row[data-state=current] .z-chapter-number{color:var(--z-accent)}.z-reference-list{margin-top:var(--z-space-6)}.z-reference-list>.z-eyebrow{color:var(--z-accent)}

.z-chapter-row[data-state=current] .z-chapter-meta{color:var(--z-accent)}
