*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
button,input,select,textarea{font:inherit}

:root{
  --font-display:'Alegreya',Georgia,serif;
  --font-body:'Literata',Georgia,'Times New Roman',serif;

  --text-2xs:0.6875rem;
  --text-xs:0.75rem;
  --text-sm:0.875rem;
  --text-base:1rem;
  --text-lg:1.0625rem;
  --text-xl:1.25rem;
  --text-2xl:1.625rem;
  --text-2-5xl:2rem;
  --text-3xl:2.25rem;
  --text-3-5xl:2.5rem;
  --text-4xl:3rem;
  --text-4-5xl:3.5rem;
  --text-5xl:3.75rem;
  --text-6xl:4.5rem;
  --text-7xl:6rem;

  --space-1:0.25rem;
  --space-2:0.5rem;
  --space-3:0.75rem;
  --space-4:1rem;
  --space-5:1.5rem;
  --space-6:2rem;
  --space-7:3rem;
  --space-8:4rem;
  --space-9:6rem;

  --radius:8px;
  --radius-sm:4px;
  --radius-lg:12px;
  --ls-tight:-0.015em;
  --ls-snug:-0.01em;

  --transition:0.3s cubic-bezier(0.4,0,0.2,1);
  --transition-fast:0.15s ease;
  --max-w:52rem;

  --aspect-neutral:var(--text-tertiary);
  --bg-primary:var(--bg);
}

[data-theme="light"]{
  --shadow:0 2px 8px rgba(43,29,18,0.06);
  --shadow-lg:0 16px 48px rgba(43,29,18,0.12);
}

[data-theme="dark"]{
  --shadow:0 2px 8px rgba(0,0,0,0.18);
  --shadow-lg:0 16px 48px rgba(0,0,0,0.3);
}

html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:8rem}

body{
  font-family:var(--font-body);
  color:var(--text-primary);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  transition:background var(--transition),color var(--transition);
}

a{color:var(--accent);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--accent-hover)}

h1,h2,h3,h4{font-family:var(--font-display);line-height:1.18;font-weight:500}
h1{font-size:var(--text-5xl)}
h2{font-size:var(--text-3xl)}
h3{font-size:var(--text-2xl)}
h4{font-size:var(--text-xl)}

p{color:var(--text-secondary);line-height:1.65}

img,svg{display:block;max-width:100%;height:auto}

.site-header{
  position:sticky;top:0;z-index:1000;
  background:var(--nav-bg);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
  transition:background var(--transition);
}
.site-header__inner{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--space-7);
  height:3.5rem;
  display:flex;
  align-items:center;
  gap:var(--space-5);
}
.site-header__logo{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:700;
  font-size:var(--text-xl);
  color:var(--text-primary);
  text-decoration:none;
  margin-right:auto;
}
.site-header__nav{
  display:flex;
  align-items:center;
  gap:var(--space-5);
}
.site-header__link{
  font-size:var(--text-xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-tertiary);
  text-decoration:none;
  transition:color var(--transition);
  padding:var(--space-2) 0;
}
.site-header__link:hover{color:var(--accent)}
.site-header__link--active{color:var(--accent)}

.site-header__actions{
  display:flex;
  align-items:center;
  gap:0;
}
.site-header__toggle{
  position:relative;
  width:2.75rem;height:2.75rem;
  border:none;border-radius:50%;
  background:transparent;cursor:pointer;
  color:var(--text-tertiary);font-size:var(--text-xs);
  display:flex;align-items:center;justify-content:center;
  transition:color var(--transition),background var(--transition);
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
.site-header__toggle::before{
  content:'';
  display:block;
  width:16px;height:16px;
  background:var(--text-tertiary);
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z'/%3E%3C/svg%3E");
  transition:background var(--transition);
}
[data-theme="dark"] .site-header__toggle::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle fill='%23000' cx='12' cy='12' r='5'/%3E%3Crect fill='%23000' x='11' y='1' width='2' height='3' rx='1'/%3E%3Crect fill='%23000' x='11' y='20' width='2' height='3' rx='1'/%3E%3Crect fill='%23000' x='1' y='11' width='3' height='2' rx='1'/%3E%3Crect fill='%23000' x='20' y='11' width='3' height='2' rx='1'/%3E%3Crect fill='%23000' x='4.22' y='3.51' width='2' height='3' rx='1' transform='rotate(-45 5.22 5.01)'/%3E%3Crect fill='%23000' x='17.78' y='17.49' width='2' height='3' rx='1' transform='rotate(-45 18.78 18.99)'/%3E%3Crect fill='%23000' x='17.78' y='3.51' width='2' height='3' rx='1' transform='rotate(45 18.78 5.01)'/%3E%3Crect fill='%23000' x='4.22' y='17.49' width='2' height='3' rx='1' transform='rotate(45 5.22 18.99)'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle fill='%23000' cx='12' cy='12' r='5'/%3E%3Crect fill='%23000' x='11' y='1' width='2' height='3' rx='1'/%3E%3Crect fill='%23000' x='11' y='20' width='2' height='3' rx='1'/%3E%3Crect fill='%23000' x='1' y='11' width='3' height='2' rx='1'/%3E%3Crect fill='%23000' x='20' y='11' width='3' height='2' rx='1'/%3E%3Crect fill='%23000' x='4.22' y='3.51' width='2' height='3' rx='1' transform='rotate(-45 5.22 5.01)'/%3E%3Crect fill='%23000' x='17.78' y='17.49' width='2' height='3' rx='1' transform='rotate(-45 18.78 18.99)'/%3E%3Crect fill='%23000' x='17.78' y='3.51' width='2' height='3' rx='1' transform='rotate(45 18.78 5.01)'/%3E%3Crect fill='%23000' x='4.22' y='17.49' width='2' height='3' rx='1' transform='rotate(45 5.22 18.99)'/%3E%3C/svg%3E");
}
.site-header__toggle:hover{color:var(--accent)}
.site-header__toggle:hover::before{background:var(--accent)}

.hamburger{
  position:relative;
  display:none;
  width:2.75rem;height:2.75rem;
  border:none;border-radius:0;
  background:transparent;cursor:pointer;
  align-items:center;justify-content:center;
  transition:background var(--transition);
  flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
.hamburger__icon{
  width:18px;height:12px;
  position:relative;
}
.hamburger__icon span,
.hamburger__icon::before,
.hamburger__icon::after{
  display:block;position:absolute;left:0;
  width:100%;height:2px;
  background:var(--text-tertiary);
  transition:top var(--transition),transform var(--transition),opacity var(--transition),background var(--transition);
}
.hamburger__icon::before{content:'';top:0}
.hamburger__icon span{top:5px}
.hamburger__icon::after{content:'';top:10px}
.hamburger[aria-expanded="true"]{
  background:transparent;
}
.hamburger[aria-expanded="true"] .hamburger__icon::before{top:5px;transform:rotate(45deg);background:var(--accent)}
.hamburger[aria-expanded="true"] .hamburger__icon span{opacity:0}
.hamburger[aria-expanded="true"] .hamburger__icon::after{top:5px;transform:rotate(-45deg);background:var(--accent)}
.hamburger:hover .hamburger__icon span,
.hamburger:hover .hamburger__icon::before,
.hamburger:hover .hamburger__icon::after{background:var(--accent)}
.hamburger[aria-expanded="true"]:hover{background:transparent}

.lang-switch{position:relative;margin-right:var(--space-2)}
.lang-switch__toggle{
  display:flex;align-items:center;gap:var(--space-1);
  min-height:2.75rem;padding:0 var(--space-2);
  border-radius:var(--radius-sm);cursor:pointer;
  font-size:var(--text-xs);font-weight:600;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--text-tertiary);list-style:none;
  transition:color var(--transition);
  -webkit-tap-highlight-color:transparent;user-select:none;
}
.lang-switch__toggle::-webkit-details-marker{display:none}
.lang-switch__toggle::marker{content:''}
.lang-switch__toggle:hover{color:var(--accent)}
.lang-switch__toggle::after{
  content:"\25BE" / "";
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;
  font-size:var(--text-sm);display:inline-block;
  transition:transform var(--transition-fast);
}
.lang-switch[open]>.lang-switch__toggle::after{transform:rotate(180deg)}
.lang-switch__code{display:none}
.lang-switch__pop{
  position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;
  min-width:9rem;padding:var(--space-2);
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;
}
.lang-switch__item{
  display:flex;align-items:center;min-height:2.75rem;
  padding:0 var(--space-3);border-radius:var(--radius-sm);
  font-family:var(--font-body);font-size:var(--text-sm);text-transform:none;
  color:var(--text-secondary);text-decoration:none;
  transition:color var(--transition),background var(--transition);
}
.lang-switch__item:hover{color:var(--accent)}
.lang-switch__item--current{background:var(--accent-muted);color:var(--accent);font-weight:600}

.mobile-menu{
  position:fixed;
  top:3.5rem;left:0;right:0;bottom:0;
  background:var(--bg);
  z-index:999;
  overflow-y:auto;
  padding:var(--space-5);
  visibility:hidden;
  opacity:0;
  transform:translateY(-8px);
  transition:visibility 0.2s,opacity 0.2s ease,transform 0.2s ease;
}
.mobile-menu.is-open{
  visibility:visible;
  opacity:1;
  transform:translateY(0);
}
.mobile-menu__link{
  display:block;
  padding:var(--space-3) 0;
  font-size:var(--text-base);
  color:var(--text-secondary);
  text-decoration:none;
  border-bottom:1px solid var(--border-subtle);
  transition:color var(--transition);
}
.mobile-menu__link:hover{color:var(--accent)}
.mobile-menu__link[aria-current="page"]{color:var(--accent)}
.mobile-menu__link--primary{
  font-weight:600;
  color:var(--text-primary);
  font-size:var(--text-lg);
}
.mobile-menu__link--primary[aria-current="page"]{color:var(--accent)}

.sub-nav{
  position:sticky;
  top:3.5rem;
  z-index:998;
  background:var(--bg-subtle);
  box-shadow:inset 0 1px 0 var(--border-subtle);
  transition:background var(--transition);
}
.sub-nav__inner{
  max-width:var(--max-w);
  margin:0 auto;
  padding:var(--space-3) var(--space-7);
  display:flex;
  gap:var(--space-2);
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.sub-nav__inner::-webkit-scrollbar{display:none}
.sub-nav__link{
  flex-shrink:0;
  padding:var(--space-3) var(--space-4);
  font-family:var(--font-body);
  font-size:var(--text-sm);
  font-weight:500;
  color:var(--text-tertiary);
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:color var(--transition),border-color var(--transition);
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
}
.sub-nav__link:focus:not(:focus-visible){
  outline:none;
}
.sub-nav__link:hover{
  color:var(--accent);
}
.sub-nav__link.is-active{
  color:var(--accent);
  border-bottom-color:var(--accent);
}

.reading-progress{
  height:2px;
  width:100%;
  background:var(--border-subtle);
}
.reading-progress__fill{
  height:100%;
  width:0%;
  background:var(--accent);
}

.site-footer{
  border-top:1px solid var(--border);
  padding:var(--space-8) 0;
}
.site-footer__inner{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--space-7);
}
.site-footer__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-7);
  margin-bottom:var(--space-6);
  max-width:32rem;
}
.site-footer__section-title{
  font-size:var(--text-xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-primary);
  margin-bottom:var(--space-3);
}
.site-footer__link{
  display:block;
  font-size:var(--text-sm);
  color:var(--text-secondary);
  text-decoration:none;
  padding:var(--space-1) 0;
  transition:color var(--transition);
}
.site-footer__link:hover{color:var(--accent)}
.site-footer__bottom{
  border-top:1px solid var(--border-subtle);
  padding-top:var(--space-5);
  font-size:var(--text-xs);
  color:var(--text-tertiary);
  line-height:1.6;
  max-width:32rem;
}
.site-footer__disclaimer{margin-bottom:var(--space-2)}

.error-page{
  max-width:var(--max-w);margin:0 auto;
  padding:var(--space-10) var(--space-7);
  display:flex;flex-direction:column;align-items:center;text-align:center;
  min-height:52vh;justify-content:center;
}
.error-page__code{
  font-family:var(--font-display);font-weight:700;line-height:0.9;
  font-size:clamp(5rem,16vw,9rem);letter-spacing:-0.02em;color:var(--accent);
  position:relative;
}
.error-page__star{
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;
  font-variant-emoji:text;
  font-size:0.16em;vertical-align:0.9em;margin-left:0.1em;color:var(--text-tertiary);line-height:1;
}
.error-page__code--glyph{
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;
  font-variant-emoji:text;
}
.error-page__title{
  font-family:var(--font-display);font-weight:600;font-size:clamp(1.6rem,4vw,2.2rem);
  line-height:1.15;color:var(--text-primary);margin:var(--space-4) 0 0;
}
.error-page__text{
  font-family:var(--font-body);font-size:var(--text-lg);line-height:1.6;
  color:var(--text-secondary);max-width:34rem;margin:var(--space-4) 0 0;
}
.error-page__actions{margin-top:var(--space-7);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}
.error-page__home-link{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-secondary);text-decoration:underline}

.error-help{margin-top:var(--space-8);width:100%;display:flex;flex-direction:column;align-items:center}
.error-help__title{
  font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--text-tertiary);
  margin:0 0 var(--space-5);text-align:center;
}
.error-help__list{list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3) var(--space-7)}
.error-help__list a{
  display:inline-flex;align-items:center;
  font-family:var(--font-body);font-size:var(--text-base);color:var(--text-secondary);
  text-decoration:none;padding:var(--space-2) var(--space-2);min-height:44px;transition:color var(--transition);
}
.error-help__list a:hover{color:var(--accent)}
.error-help__list a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
@media (max-width:480px){ .error-help__list{gap:var(--space-2) var(--space-5)} }

.container{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--space-7);
}
.section{
  padding:var(--space-9) 0;
}
.eyebrow{
  font-family:var(--font-body);
  font-size:var(--text-xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:var(--space-3);
}

.page-title{
  font-size:var(--text-5xl);
  font-weight:400;
  line-height:1.05;
  margin-bottom:var(--space-4);
}
.page-title__detail{
  display:block;
  font-size:var(--text-2xl);
  font-weight:400;
  color:var(--accent);
  line-height:1.3;
  margin-top:var(--space-2);
}

.page-title__identity{
  display:block;
  font-family:var(--font-body);
  font-size:var(--text-base);
  font-style:normal;
  font-weight:400;
  color:var(--text-secondary);
  margin-top:var(--space-2);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  padding:var(--space-4) var(--space-6);
  border:none;
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-size:var(--text-sm);
  font-weight:500;
  cursor:pointer;
  transition:all var(--transition);
  text-decoration:none;
}
.btn--primary{
  background:var(--accent);
  color:var(--on-accent);
}
.btn--primary:hover{
  background:var(--accent-hover);
  transform:translateY(-1px);
  box-shadow:var(--shadow-lg);
  color:var(--on-accent);
}
.btn--full{width:100%}

.form-step{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:var(--space-4);
  align-items:end;
  padding:var(--space-5) 0;
  border-bottom:1px solid var(--border-subtle);
}
.form-step:last-of-type{border-bottom:none}

.form-step__num{
  grid-column:1;
  grid-row:1;
  font-family:var(--font-display);
  font-style:italic;
  font-weight:500;
  color:var(--accent);
  font-size:var(--text-base);
  width:5rem;
  padding-bottom:var(--space-1);
}
.form-step__field{
  grid-column:2;
  grid-row:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-1);
}
.form-step__below{
  grid-column:2;
  grid-row:2;
  min-width:0;
}
.form-step__label{
  font-size:var(--text-2xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.form-step__input{
  font-family:var(--font-display);
  font-size:var(--text-4xl);
  font-weight:400;
  color:var(--text-primary);
  background:transparent;
  border:none;
  border-bottom:2px solid var(--accent);
  padding-bottom:var(--space-1);
  width:100%;
  outline:none;
  line-height:1.25;
}
.form-step__input:focus{
  border-bottom-color:var(--accent-hover);
}
.form-step__input[readonly]{cursor:default}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:var(--space-7);
  box-shadow:var(--shadow);
}

.data-table{
  width:100%;
  border-collapse:collapse;
}
.table-section{
  margin-bottom:var(--space-8);
}
.table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
@media (max-width:480px){
  .table-scroll .data-table{min-width:32rem}
}
.data-table thead th{
  font-size:var(--text-2xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-tertiary);
  text-align:left;
  padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--border);
}
.data-table tbody td{
  padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--border-subtle);
  font-size:var(--text-sm);
  color:var(--text-secondary);
  vertical-align:middle;
}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table .glyph{
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;
  font-variant-emoji:text;
  font-size:var(--text-lg);
  color:var(--accent);
  min-width:2.5rem;
  text-align:center;
}
.data-table .planet-name{font-weight:600;color:var(--text-primary)}
.data-table .deg{font-variant-numeric:tabular-nums}
.data-table .latin{
  font-family:var(--font-display);
  font-style:italic;
  color:var(--text-tertiary);
  font-size:var(--text-sm);
}
.house-badge{font-size:var(--text-2xs);color:var(--accent);font-weight:600;margin-left:var(--space-2)}
.data-table .retro-cell{
  text-align:center;
  font-variant-numeric:tabular-nums;
}
.data-table .retro-cell--retro{
  font-weight:600;
  color:var(--accent);
}
.data-table .retro-cell--direct{
  color:var(--text-tertiary);
  font-weight:400;
}
.data-table .nature--hard{color:var(--accent)}
.data-table .nature--soft{color:var(--aspect-harmonious)}
.divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-3);
  margin:var(--space-7) 0;
}
.divider::before,.divider::after{
  content:'';flex:1;max-width:var(--space-8);
  height:1px;background:var(--border);
}
.divider__mark{
  width:6px;height:6px;
  border:1px solid var(--accent);
  transform:rotate(45deg);
}

.drop-cap::first-letter{
  font-family:var(--font-display);
  font-weight:700;
  font-size:3.75em;
  float:left;
  line-height:0.82;
  margin-right:0.18em;
  margin-top:0.08em;
  color:var(--text-primary);
}
.drop-cap > b { font-weight: 600; }

.pull-quote{
  position:relative;
  clear:left;
  margin:var(--space-7) 0 var(--space-5) 0;
  padding:var(--space-4) 0 var(--space-4) var(--space-5);
  font-family:var(--font-display);
  font-style:italic;
  font-size:var(--text-xl);
  color:var(--text-primary);
  line-height:1.55;
}
.pull-quote::before{
  content:'\00AB';
  position:absolute;
  left:-0.2em;top:-0.2em;
  font-size:4.5rem;
  line-height:1;
  color:var(--accent);
  opacity:0.2;
  font-family:var(--font-display);
  font-weight:700;
}

.interpretation-text{
  font-size:var(--text-lg);
  line-height:1.7;
  color:var(--text-secondary);
  max-width:32rem;
}
.interpretation-text p{margin-bottom:var(--space-5);line-height:1.7}

.content-page{
  max-width:46rem;
  margin:0 auto;
  padding:var(--space-7) var(--space-5) var(--space-9);
}
.content-page__title{
  font-family:var(--font-display);
  font-size:var(--text-4-5xl);
  line-height:1.15;
  letter-spacing:var(--ls-tight);
  color:var(--text-secondary);
  margin-bottom:var(--space-6);
}
@media (max-width:480px){
  .content-page__title{font-size:var(--text-3-5xl);letter-spacing:var(--ls-snug)}
}

.breadcrumb{margin-bottom:var(--space-5)}
.breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--space-2);
  list-style:none;
  margin:0;
  padding:0;
  font-size:var(--text-sm);
  color:var(--text-tertiary);
}
.breadcrumb__item{display:flex;align-items:center;gap:var(--space-2)}
.breadcrumb__item:not(:last-child)::after{content:"/";color:var(--text-tertiary);opacity:0.55}
.breadcrumb__link{color:var(--text-tertiary);text-decoration:none}
.breadcrumb__link:hover{color:var(--accent);text-decoration:underline}
.breadcrumb__current{color:var(--text-secondary)}

.content-prose{
  font-size:var(--text-lg);
  line-height:1.7;
  color:var(--text-secondary);
}
.content-prose h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  font-weight:600;
  line-height:1.25;
  color:var(--text-primary);
  margin:var(--space-7) 0 var(--space-4);
}
.content-prose h3{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:600;
  line-height:1.3;
  color:var(--text-primary);
  margin:var(--space-6) 0 var(--space-3);
}
.content-prose p{margin:0 0 var(--space-5);line-height:1.7}
.content-prose ul,
.content-prose ol{margin:0 0 var(--space-5);padding-left:var(--space-6)}
.content-prose li{margin-bottom:var(--space-2);line-height:1.6}
.content-prose li > ul,
.content-prose li > ol{margin:var(--space-2) 0 0}
.content-prose a{
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:2px;
}
.content-prose a:hover{color:var(--accent-hover)}
.content-prose blockquote{
  margin:0 0 var(--space-5);
  padding:var(--space-3) var(--space-5);
  border-left:3px solid var(--accent);
  color:var(--text-secondary);
  font-style:italic;
}
.content-prose code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:0.9em;
  background:var(--bg-subtle);
  padding:0.1em 0.35em;
  border-radius:var(--radius-sm);
}
.content-prose pre{
  overflow-x:auto;
  background:var(--bg-subtle);
  border-radius:var(--radius-sm);
  padding:var(--space-4) var(--space-5);
  margin:0 0 var(--space-5);
}
.content-prose pre code{
  background:none;
  padding:0;
  font-size:var(--text-sm);
}
.content-prose table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 var(--space-6);
  font-size:var(--text-base);
}
.content-prose thead{border-bottom:2px solid var(--border)}
.content-prose th,
.content-prose td{
  text-align:left;
  padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--border);
}
.content-prose th{font-weight:600;color:var(--text-primary)}

.faq{
  margin-top:var(--space-8);
  border-top:1px solid var(--border);
}
.content-prose h2 + .faq{margin-top:var(--space-2)}
.faq details{
  border-bottom:1px solid var(--border);
  max-height:none;
}
.faq summary{
  position:relative;
  cursor:pointer;
  list-style:none;
  padding:var(--space-5) var(--space-7) var(--space-5) 0;
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--text-primary);
  transition:color var(--transition);
}
.faq summary:hover{color:var(--accent)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::marker{content:""}
.faq summary::after{
  content:"+";
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  font-size:var(--text-xl);
  color:var(--text-tertiary);
  transition:color var(--transition);
}
.faq details[open] summary{color:var(--accent)}
.faq details[open] summary::after{content:"\2212"}
.faq details > *:not(summary){
  max-height:none;
  margin:0 0 var(--space-5);
  font-size:var(--text-base);
  line-height:1.65;
  color:var(--text-secondary);
}

.content-prose .glyph{color:var(--accent)}

.content-prose .props-table{max-width:26rem;margin-bottom:var(--space-7)}
.content-prose .props-table th{
  width:10rem;
  color:var(--text-tertiary);
  font-weight:600;
  font-size:var(--text-xs);
  letter-spacing:0.05em;
  text-transform:uppercase;
  vertical-align:middle;
}
.content-prose .props-table td{color:var(--text-primary)}
.content-prose .props-table td:first-child{white-space:nowrap}
.content-prose .props-table td .glyph{font-size:var(--text-2xl)}

.content-prose .natal-list{list-style:none;padding-left:0}
.content-prose .natal-list li{display:flex;align-items:baseline;gap:var(--space-3)}
.content-prose .natal-list .glyph{font-size:var(--text-xl);min-width:1.6rem;text-align:center}

.content-prose .sign-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
  margin-top:var(--space-7);
  padding-top:var(--space-5);
  border-top:1px solid var(--border);
}
.content-prose .sign-nav a{text-decoration:none;display:inline-flex;flex-direction:column;gap:2px}
.content-prose .sign-nav .sn-label{
  font-size:var(--text-2xs);
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.content-prose .sign-nav .sn-name{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--accent);
}
.content-prose .sign-nav .sn-next{text-align:right}
.content-prose .sign-nav .sn-all{font-size:var(--text-sm);color:var(--text-tertiary)}
.content-prose .sign-nav .sn-all:hover{color:var(--accent)}

@media (max-width:600px){
  .content-prose .props-table{max-width:none}
  .content-prose .props-table th{width:7rem;font-size:var(--text-2xs)}
  .content-prose .sign-nav{gap:var(--space-3)}
  .content-prose .sign-nav .sn-name{font-size:var(--text-base)}
  .content-prose .sign-nav .sn-label{font-size:9px}
  .content-prose .natal-list li{flex-wrap:wrap}
}

.content-prose .zodiac-grid{
  list-style:none;
  margin:var(--space-7) 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
}
.content-prose .zodiac-grid li{margin:0}
.content-prose .zodiac-card{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  min-height:44px;
  height:100%;
  padding:var(--space-5);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  text-decoration:none;
  color:inherit;
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);
}
.content-prose .zodiac-card:hover{
  border-color:var(--accent);
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
  color:inherit;
  text-decoration:none;
}
.content-prose .zodiac-card:visited{color:inherit}
.content-prose .zodiac-card__top{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:var(--space-3);
}
.content-prose .zodiac-card__glyph{font-size:var(--text-3-5xl);line-height:1}
.content-prose .zodiac-card__element{
  font-size:var(--text-2xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.content-prose .zodiac-card__name{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  font-weight:600;
  line-height:1.15;
  color:var(--accent);
  margin-top:var(--space-2);
}
.content-prose .zodiac-card__dates{
  font-family:var(--font-display);
  font-style:italic;
  font-size:0.95rem;
  font-weight:500;
  color:var(--text-tertiary);
  line-height:1.35;
  margin-top:var(--space-1);
}
.content-prose .zodiac-card__essence{
  font-size:var(--text-sm);
  line-height:1.5;
  color:var(--text-secondary);
  margin-top:var(--space-2);
}
@media (max-width:760px){
  .content-prose .zodiac-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}
}
@media (max-width:420px){
  .content-prose .zodiac-grid{grid-template-columns:1fr}
}

.content-prose .entity-hero{
  display:flex;
  align-items:center;
  gap:var(--space-6);
  margin:0 0 var(--space-6);
}
.content-prose .entity-hero__glyph{font-size:var(--text-7xl);line-height:1;flex:none}
.content-prose .entity-hero__num{
  font-family:var(--font-display);
  font-weight:600;
  font-size:var(--text-7xl);
  line-height:0.9;
  color:var(--accent);
  flex:none;
}
.content-prose .entity-hero__num .roman{
  display:block;
  font-size:var(--text-sm);
  font-style:italic;
  font-weight:400;
  color:var(--text-tertiary);
  text-align:center;
  margin-top:var(--space-1);
}
.content-prose .entity-hero__kw{
  font-family:var(--font-display);
  font-style:italic;
  font-size:var(--text-2xl);
  color:var(--text-secondary);
  line-height:1.2;
}
.content-prose .entity-hero__kw small{
  display:block;
  font-style:normal;
  font-family:var(--font-body);
  font-size:var(--text-2xs);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--text-tertiary);
  margin-bottom:var(--space-2);
}

.content-page--planets .content-prose .props-table,
.content-page--houses .content-prose .props-table{max-width:32rem}
.content-page--planets .content-prose .props-table th,
.content-page--houses .content-prose .props-table th{width:13rem}

.content-prose .ent-grid{
  list-style:none;
  margin:var(--space-7) 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:var(--space-4);
}
.content-prose .ent-grid li{margin:0}
.content-prose .ent-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:var(--space-2);
  min-height:44px;
  height:100%;
  padding:var(--space-5);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  text-decoration:none;
  color:inherit;
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);
}
.content-prose .ent-card:hover{
  border-color:var(--accent);
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
  color:inherit;
  text-decoration:none;
}
.content-prose .ent-card:visited{color:inherit}
.content-prose .ent-card__glyph{font-size:var(--text-4xl);line-height:1}
.content-prose .ent-card__name{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  font-weight:600;
  color:var(--accent);
  line-height:1.15;
}
.content-prose .ent-card__kw{
  font-size:var(--text-sm);
  line-height:1.45;
  color:var(--text-secondary);
}

.content-prose .houses-grid{
  list-style:none;
  margin:var(--space-7) 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
}
.content-prose .houses-grid li{margin:0}

.content-prose .house-card{
  display:flex;
  align-items:flex-start;
  gap:var(--space-4);
  min-height:44px;
  height:100%;
  padding:var(--space-5);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  text-decoration:none;
  color:inherit;
  transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);
}
.content-prose .house-card:hover{
  border-color:var(--accent);
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
  color:inherit;
  text-decoration:none;
}
.content-prose .house-card:visited{color:inherit}
.content-prose .house-card__num{
  font-family:var(--font-display);
  font-weight:600;
  font-size:var(--text-4xl);
  line-height:0.9;
  color:var(--accent);
  flex:none;
  min-width:2.2ch;
  text-align:center;
}
.content-prose .house-card__body{display:flex;flex-direction:column;gap:2px}
.content-prose .house-card__name{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--accent);
  line-height:1.15;
}
.content-prose .house-card__sphere{
  font-size:var(--text-sm);
  line-height:1.45;
  color:var(--text-secondary);
}

@media (max-width:900px){
  .content-prose .ent-grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:680px){
  .content-prose .ent-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
}
@media (max-width:600px){
  .content-prose .entity-hero{gap:var(--space-4)}
  .content-prose .entity-hero__glyph,
  .content-prose .entity-hero__num{font-size:var(--text-4-5xl)}
  .content-prose .houses-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}
}
@media (max-width:460px){
  .content-prose .ent-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:400px){
  .content-prose .ent-grid{grid-template-columns:1fr}
  .content-prose .houses-grid{grid-template-columns:1fr}
}

i.sign,i.house,i.aspect{color:var(--accent);font-style:italic}

.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;
}
.sc{font-variant:small-caps;letter-spacing:0.04em}
.tabnum{font-variant-numeric:tabular-nums}
.italic{font-style:italic}

@media(max-width:768px){
  :root{
    --text-2-5xl:1.75rem;
    --text-3-5xl:2rem;
    --text-4xl:2.25rem;
    --text-4-5xl:2.5rem;
    --text-5xl:2.75rem;
    --text-6xl:3.25rem;
    --text-7xl:4rem;
  }

  .site-header{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:var(--bg);
  }
  .site-header__inner{
    padding:0 var(--space-3) 0 var(--space-5);
    height:3rem;
  }
  .site-header__nav{display:none}
  .hamburger{display:flex}
  .lang-switch__endonym{display:none}
  .lang-switch__code{display:inline}
  .mobile-menu{top:3rem}
  .mobile-menu.is-open~.sub-nav{top:3rem}

  .sub-nav{top:3rem}
  .sub-nav__inner{padding:var(--space-3) var(--space-5);gap:var(--space-2)}
  .sub-nav{
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 3rem),transparent);
    mask-image:linear-gradient(to right,#000 calc(100% - 3rem),transparent);
  }

  .site-footer{padding:var(--space-6) 0}
  .site-footer__inner{padding:0 var(--space-5)}
  .site-footer__grid{grid-template-columns:1fr;gap:var(--space-6)}

  .container{padding:0 var(--space-5)}
  .section{padding:var(--space-8) 0}

  .page-title{font-size:var(--text-4xl)}
  .page-title__detail{font-size:var(--text-xl)}

  .form-step{
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:var(--space-1);
    align-items:start;
  }
  .form-step__num{grid-column:1;grid-row:1}
  .form-step__field{grid-column:1;grid-row:2}
  .form-step__below{grid-column:1;grid-row:3}
  .form-step__input{font-size:var(--text-3xl)}

  .card{padding:var(--space-5)}
}

@media(max-width:480px){
  .form-step__num{width:auto}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    transition-duration:0.01ms !important;
    animation-duration:0.01ms !important;
  }
}

@media print{
  :root{
    --bg:#fff;--bg-elevated:#fff;--bg-subtle:#f5f5f5;
    --text-primary:#000;--text-secondary:#333;--text-tertiary:#666;
    --accent:#8a3626;--border:#ccc;--border-subtle:#ddd;
    --card:#fff;--shadow:none;--shadow-lg:none;
  }
  body{font-size:11pt;line-height:1.6}
  .site-header,.site-footer,.btn,.site-header__toggle,.sub-nav,.mobile-menu,.hamburger{display:none}
  .toc-sidebar,.toc-mobile,.toc-skip{display:none !important}
  .result-layout{display:block}
  .section{padding:1rem 0;page-break-inside:avoid}
  .pull-quote{page-break-inside:avoid}
  .data-table{font-size:9pt}
  a{color:inherit;text-decoration:underline}
  a[href]::after{content:" (" attr(href) ")";font-size:8pt;color:#666}
}

@media(min-width:1080px){
  .result-layout{
    display:grid;
    grid-template-columns:19rem minmax(0,1fr);
    gap:var(--space-8);
    align-items:start;
  }
  .sub-nav{background:transparent;box-shadow:none;border:none}
  .sub-nav__inner{display:none}
  html{scroll-padding-top:4.5rem}
}

.toc-sidebar{display:none}

@media(min-width:1080px){
  .toc-sidebar{
    display:block;
    position:sticky;
    top:4.5rem;
    margin-top:var(--space-8);
    max-height:calc(100vh - 5.5rem);
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:none;
    border-right:1px solid var(--border-subtle);
    padding-right:var(--space-8);
  }
  .toc-sidebar::-webkit-scrollbar{display:none}
}

.toc-sidebar__title{
  display:block;
  font-size:var(--text-xs);
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:lowercase;
  font-variant:small-caps;
  color:var(--text-tertiary);
  margin-bottom:1rem;
}

.toc-sidebar__group,
.toc-mobile__group{border:none}
.toc-sidebar__group{margin-bottom:var(--space-4)}
.toc-mobile__group{margin-bottom:var(--space-3)}
.toc-sidebar__group+.toc-sidebar__group,
.toc-mobile__group+.toc-mobile__group{
  border-top:1px solid var(--border-subtle);
  padding-top:0.5rem;
}

.toc-sidebar__group-title,
.toc-mobile__group-title{
  font-family:var(--font-body);
  font-size:var(--text-sm);
  font-weight:500;
  color:var(--text-primary);
  padding-left:0;
  cursor:pointer;
  list-style:none;
  overflow-wrap:break-word;
}
.toc-sidebar__group-title::-webkit-details-marker,
.toc-mobile__group-title::-webkit-details-marker{display:none}
.toc-sidebar__group-title::marker,
.toc-mobile__group-title::marker{content:''}
.toc-sidebar__group-title::after,
.toc-mobile__group-title::after{
  content:"\25BE" / ""; /* A11Y A-4: CSS alt-text "" keeps decorative ▾ out of accessible name */
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;
  font-size:var(--text-2xs);
  color:var(--text-tertiary);
  margin-left:0.4em;
  display:inline-block;
  transform:rotate(-90deg);
  transition:transform var(--transition-fast);
}
[open]>.toc-sidebar__group-title::after,
[open]>.toc-mobile__group-title::after{
  transform:rotate(0);
}

.toc-sidebar__list,
.toc-mobile__list{list-style:none;padding:0;margin:var(--space-1) 0 0 0}

.toc-sidebar__link,
.toc-mobile__link{
  display:block;
  font-size:var(--text-sm);
  color:var(--text-tertiary);
  padding:var(--space-1) 0 var(--space-1) 1rem;
  line-height:1.45;
  transition:color var(--transition-fast),box-shadow var(--transition-fast);
  text-decoration:none;
  overflow-wrap:break-word;
  hyphens:auto;
  -webkit-hyphens:auto;
}
.toc-sidebar__link:hover,
.toc-mobile__link:hover{color:var(--text-primary);text-decoration:none}

.toc-sidebar__link.is-active,
.toc-mobile__link.is-active{
  color:var(--accent);
  box-shadow:inset 2px 0 0 var(--accent);
}

.toc-sidebar__link--tier1,
.toc-mobile__link--tier1{font-weight:600;color:var(--text-primary)}
.toc-sidebar__link--overview,
.toc-mobile__link--overview{margin-bottom:var(--space-2);font-weight:600;color:var(--text-primary)}
.toc-sidebar__link--overview.is-active,
.toc-mobile__link--overview.is-active{color:var(--accent)}

.toc-mobile{
  background:var(--bg-subtle);
  border:1px solid var(--border);
  border-radius:var(--radius);
  margin:0 var(--space-7) var(--space-5);
}
@media(min-width:1080px){.toc-mobile{display:none}}

.toc-mobile__toggle{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  padding:var(--space-4) var(--space-5);
  font-family:var(--font-body);
  font-size:var(--text-xs);
  font-weight:600;
  color:var(--accent);
  letter-spacing:0.06em;
  text-transform:lowercase;
  font-variant:small-caps;
  cursor:pointer;
  list-style:none;
}
.toc-mobile__toggle::-webkit-details-marker{display:none}
.toc-mobile__toggle::marker{content:''}
.toc-mobile__toggle::after{
  content:"\25BE" / ""; /* A11Y A-4: CSS alt-text "" keeps decorative ▾ out of accessible name */
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;
  color:var(--accent);
  font-size:var(--text-sm);
  display:inline-block;
  transition:transform var(--transition-fast);
}
.toc-mobile[open]>.toc-mobile__toggle::after{
  transform:rotate(180deg);
}

.toc-mobile__body{padding:0 var(--space-5) var(--space-4)}

.toc-sidebar__list.has-truncation>li:nth-child(n+6),
.toc-mobile__list.has-truncation>li:nth-child(n+6){
  max-height:0;overflow:hidden;padding:0;margin:0;border:0;visibility:hidden;
}
.toc-sidebar__list.is-expanded>li,
.toc-mobile__list.is-expanded>li{
  max-height:none;overflow:visible;visibility:visible;
}
.toc-sidebar__more,
.toc-mobile__more{
  display:none;
  font-size:var(--text-2xs);
  font-style:italic;
  color:var(--text-tertiary);
  background:none;
  border:none;
  padding:var(--space-1) 0 var(--space-1) 1rem;
  cursor:pointer;
  font-family:var(--font-body);
  transition:color var(--transition-fast);
}
.toc-sidebar__more:hover,
.toc-mobile__more:hover{color:var(--accent)}
.toc-sidebar__list:not(.is-expanded)~.toc-sidebar__more,
.toc-mobile__list:not(.is-expanded)~.toc-mobile__more{display:block}

.sr-only--focusable{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.sr-only--focusable:focus{
  position:static;
  width:auto;height:auto;
  padding:var(--space-2) var(--space-4);
  margin:0;
  overflow:visible;
  clip:auto;
  white-space:normal;
  background:var(--accent);
  color:var(--on-accent);
  font-size:var(--text-sm);
  font-weight:600;
  z-index:1001;
  display:inline-block;
}

.skip-to-main{
  position:absolute;
  top:0;left:0;
  background:var(--accent);
  color:var(--on-accent);
  padding:var(--space-3) var(--space-4);
  text-decoration:none;
  font-weight:600;
  font-size:var(--text-sm);
  border-radius:0 0 var(--radius) 0;
  transform:translateY(-150%);
  transition:transform 0.2s;
  z-index:9999;
}
.skip-to-main:focus{
  transform:translateY(0);
  outline:3px solid var(--text-primary);
  outline-offset:-3px;
}
@media(max-width:1079px){.toc-skip{display:none !important}}

[data-theme="dark"] .toc-mobile{
  border-color:#4a3e30;
  background:var(--bg-elevated);
}
[data-theme="dark"] .toc-sidebar__group-title,
[data-theme="dark"] .toc-mobile__group-title{
  color:var(--text-primary);
}
[data-theme="dark"] .toc-sidebar__link.is-active,
[data-theme="dark"] .toc-mobile__link.is-active{
  box-shadow:inset 3px 0 0 var(--accent);
}

.toc-sidebar__link--aspect-harmonious::before,
.toc-mobile__link--aspect-harmonious::before,
.toc-sidebar__link--aspect-tense::before,
.toc-mobile__link--aspect-tense::before,
.toc-sidebar__link--aspect-neutral::before,
.toc-mobile__link--aspect-neutral::before{
  content:'';
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  margin-right:0.4em;
  vertical-align:0.05em;
  flex-shrink:0;
}
.toc-sidebar__link--aspect-harmonious::before,
.toc-mobile__link--aspect-harmonious::before{background:var(--aspect-harmonious)}
.toc-sidebar__link--aspect-tense::before,
.toc-mobile__link--aspect-tense::before{background:var(--aspect-tense)}
.toc-sidebar__link--aspect-neutral::before,
.toc-mobile__link--aspect-neutral::before{background:var(--aspect-neutral)}

.toc-sidebar__link--aspect-harmonious,
.toc-sidebar__link--aspect-tense,
.toc-sidebar__link--aspect-neutral{
  padding-left:calc(1rem + 6px + 0.4em);
}
.toc-sidebar__link--aspect-harmonious::before,
.toc-sidebar__link--aspect-tense::before,
.toc-sidebar__link--aspect-neutral::before{
  margin-left:calc(-6px - 0.4em);
}

@media(max-width:768px){
  .toc-mobile{margin:0 var(--space-5) var(--space-5)}
  .toc-mobile__link{min-height:2.25rem;display:flex;align-items:flex-start;padding-top:calc((2.25rem - 1.45em) / 2)}
  .toc-mobile__link--aspect-harmonious::before,
  .toc-mobile__link--aspect-tense::before,
  .toc-mobile__link--aspect-neutral::before{
    margin-top:calc((1.45em - 6px) / 2 + 1px);
  }
}

@media (pointer: coarse) {
  .toc-mobile__group-title,
  .toc-mobile__more,
  .toc-mobile__link{
    min-height:44px;
  }
}

:lang(ru) .site-header__link,
:lang(ru) .site-footer__section-title,
:lang(ru) .sub-nav__link { letter-spacing: 0.025em; }

.reading-progress { height: 3px; background: var(--bg-secondary, transparent); }
.reading-progress__fill { background: var(--accent); transition: width 150ms linear; }

h1, h2, h3, p, em, b,
.chapter__title, .pull-quote, .interpretation-text,
.site-header, .sub-nav, .site-footer,
.data-table, .data-table th, .data-table td,
.btn--primary, .toc-sidebar__link, .toc-mobile__link {
  transition: background-color var(--transition), color var(--transition), border-color var(--transition);
}

.glyph, .glyph-trio, .wheel-svg .planet-glyph {
  font-family: 'AstroSymbols', 'Segoe UI Symbol', 'Apple Symbols', 'Noto Sans Symbols2', 'Symbola', var(--font-display), serif;
  font-variant-emoji: text;
  font-feature-settings: 'liga' off;
}
.wheel-svg text {
  font-variant-emoji: text;
  font-feature-settings: 'liga' off;
}

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--bg-primary);
}

.nowrap { white-space: nowrap; }

.site-header__toggle::before{
  -webkit-mask-image:url("/static/icons/moon.svg");
  mask-image:url("/static/icons/moon.svg");
}
[data-theme="dark"] .site-header__toggle::before{
  -webkit-mask-image:url("/static/icons/sun.svg");
  mask-image:url("/static/icons/sun.svg");
}

.home-hero{padding:var(--space-8) 0}
.home-hero__eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--space-3)}
.home-hero h1{font-family:var(--font-display);font-weight:700;
  font-size:clamp(2.4rem,4.2vw,var(--text-5xl));line-height:1.14;letter-spacing:-0.01em;
  color:var(--text-primary);margin:0 0 var(--space-5)}
.home-hero__sub{font-family:var(--font-body);font-size:var(--text-lg);line-height:1.55;
  color:var(--text-secondary);margin:0 0 var(--space-7);max-width:42ch}

.home-form{background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:var(--space-6) var(--space-7);box-shadow:var(--shadow)}
.home-form .form-step__num{width:1.4rem}
.home-form .form-step__input{font-size:var(--text-2xl);line-height:1.25;
  padding-right:1.8rem}
.home-form .form-step__input:focus,
.home-form .form-step__input:focus-visible{outline:none;box-shadow:none;
  border-bottom:2px solid var(--accent)}
.home-form__actions{margin-top:var(--space-6)}
.home-form .btn{font-size:var(--text-base);padding:var(--space-4) var(--space-7);min-height:52px}
.home-form__noscript{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--accent)}

.field-control{position:relative;display:block}
.field-status{position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:var(--text-lg);
  font-family:'AstroSymbols','Segoe UI Symbol','Apple Symbols','Noto Sans Symbols2','Symbola',serif;font-variant-emoji:text;
  line-height:1;pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}
.field-status.is-ok{opacity:1;color:var(--aspect-harmonious)}
.field-status.is-err{opacity:1;color:#b3402f}
.field-msg{font-family:var(--font-body);font-size:var(--text-sm);margin:0;
  line-height:1.25;min-height:0;color:#b3402f}
.field-msg:not(:empty){margin-top:var(--space-1)}
.form-step__field.is-ok .form-step__input{border-bottom-color:var(--aspect-harmonious)}
.form-step__field.is-error .form-step__input{border-bottom-color:#b3402f}
.is-hint .field-msg{color:var(--text-secondary)}

.time-label-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.time-help{position:relative;display:inline-flex;align-items:center}
.time-help__trigger{cursor:pointer;list-style:none;flex:none;width:1.15rem;height:1.15rem;
  border-radius:50%;border:1px solid var(--text-tertiary);display:inline-flex;align-items:center;
  justify-content:center;font-family:var(--font-body);font-size:0.66rem;font-weight:700;line-height:1;
  color:var(--text-tertiary)}
.time-help__trigger::-webkit-details-marker{display:none}
.time-help__trigger::after{content:"?"}
.time-help__trigger:hover,.time-help[open] .time-help__trigger{color:var(--accent);border-color:var(--accent)}
.time-help__pop{position:absolute;top:calc(100% + 0.5rem);left:0;z-index:30;width:min(22rem,78vw);
  padding:var(--space-4) var(--space-5);background:var(--card);border:1px solid var(--border);
  border-radius:10px;box-shadow:var(--shadow-lg);font-family:var(--font-body);font-size:var(--text-sm);
  line-height:1.55;color:var(--text-secondary);text-transform:none;letter-spacing:normal;font-weight:400}
.time-help__pop::before{content:"";position:absolute;top:-7px;left:14px;width:12px;height:12px;
  background:var(--card);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}
.time-help__pop p{margin:0}
.time-help__pop p + p{margin-top:var(--space-3)}

.home-trust{margin-top:var(--space-5);font-family:var(--font-body);font-size:var(--text-sm);
  line-height:1.6;color:var(--text-tertiary)}
.home-trust a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.home-trust a:hover{color:var(--accent-hover)}

.home-pitch{margin-top:var(--space-9)}
.home-pitch h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;
  color:var(--text-primary);margin:0 0 var(--space-5)}
.home-pitch__list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:1fr 1fr;gap:var(--space-4) var(--space-7)}
.home-pitch__list li{display:flex;gap:var(--space-3);font-family:var(--font-body);
  font-size:var(--text-base);line-height:1.5;color:var(--text-secondary)}
.home-pitch__list li::before{content:"";flex:none;width:7px;height:7px;margin-top:0.55em;
  border-radius:50%;background:var(--accent)}

.home-faq{margin:var(--space-9) 0}
.home-faq__more{margin-top:var(--space-5);font-family:var(--font-body);font-size:var(--text-sm);
  color:var(--text-secondary)}
.home-faq__more a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}

.autocomplete{position:relative}
.autocomplete__dropdown{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);overflow:hidden;max-height:18rem;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.autocomplete__dropdown::-webkit-scrollbar{width:6px}
.autocomplete__dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.autocomplete__dropdown::-webkit-scrollbar-track{background:transparent}
.autocomplete__dropdown--open{display:block}
.autocomplete__item{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-2);
  width:100%;text-align:left;cursor:pointer;background:transparent;border:none;
  border-bottom:1px solid var(--border-subtle);padding:var(--space-3) var(--space-4);
  font-family:var(--font-body)}
.autocomplete__item:last-child{border-bottom:none}
.autocomplete__item:hover,.autocomplete__item--active{background:var(--accent-muted)}
.autocomplete__item-name{flex-basis:100%;font-size:var(--text-base);color:var(--text-primary)}
.autocomplete__item-name b{font-weight:700;color:var(--accent)}
.autocomplete__item-region,.autocomplete__item-country{font-size:var(--text-xs);color:var(--text-tertiary)}
.autocomplete__input--unconfirmed{border-bottom-style:dashed}
.autocomplete__empty{padding:var(--space-4);font-family:var(--font-body);
  font-size:var(--text-sm);color:var(--text-tertiary)}
.autocomplete__selected{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3);
  margin-top:var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary)}
.autocomplete__selected[hidden]{display:none}
.autocomplete__coords{font-family:var(--font-mono,ui-monospace);font-size:var(--text-xs);color:var(--text-tertiary)}

@media(max-width:680px){
  .home-pitch__list{grid-template-columns:1fr}
  .home-form{padding:var(--space-5)}
}

.content-page--natal{padding:var(--space-6) var(--space-7) var(--space-9)}
.natal-hero__eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--space-3)}
.natal-hero h1{font-family:var(--font-display);font-weight:700;font-size:var(--text-4xl);
  line-height:1.25;color:var(--text-primary);margin:0 0 var(--space-5)}
.natal-lede{font-family:var(--font-display);font-style:italic;font-size:var(--text-xl);
  color:var(--text-secondary);margin:0 0 var(--space-6)}
.natal-intro{font-family:var(--font-body);font-size:var(--text-lg);line-height:1.7;
  color:var(--text-secondary);margin:0 0 var(--space-4)}

.natal-quickform{background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;
  padding:var(--space-4) var(--space-5);margin:var(--space-6) 0 var(--space-7);
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-4)}
.natal-quickform__field{display:flex;flex-direction:column;gap:var(--space-1);flex:1 1 0;min-width:0}
.natal-quickform__label{font-family:var(--font-body);font-size:var(--text-2xs);font-weight:600;
  letter-spacing:0.04em;text-transform:uppercase;color:var(--text-tertiary)}
.natal-quickform__input{width:100%;box-sizing:border-box;font-family:var(--font-body);
  font-size:var(--text-base);color:var(--text-primary);background:var(--card);
  border:1px solid var(--border);border-radius:6px;padding:var(--space-3) 1.8rem var(--space-3) var(--space-3);
  min-height:44px;outline:none}
.natal-quickform__input::placeholder{color:var(--text-tertiary);opacity:0.7}
.natal-quickform__input:focus{border-color:var(--accent)}
.natal-quickform__field.is-ok .natal-quickform__input{border-color:var(--aspect-harmonious)}
.natal-quickform__field.is-error .natal-quickform__input{border-color:#b3402f}
.natal-quickform__field .field-status{right:var(--space-3)}
.natal-quickform__submit{flex:1 0 100%;margin-top:var(--space-2)}
.natal-quickform .btn{width:100%;min-height:44px}
.natal-quickform .time-help__pop{left:auto;right:0}
.natal-quickform .time-help__pop::before{left:auto;right:14px}

@media(max-width:768px){
  .time-help__pop,
  .natal-quickform .time-help__pop{
    position:fixed;
    left:var(--space-4);
    right:var(--space-4);
    top:auto;
    bottom:var(--space-5);
    width:auto;
    max-width:none;
    z-index:50;
  }
  .time-help__pop::before,
  .natal-quickform .time-help__pop::before{display:none}
}

.natal-toc{border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:var(--space-5) 0;margin:0 0 var(--space-7)}
.natal-toc__title{font-family:var(--font-body);font-size:var(--text-2xs);font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--text-tertiary);margin:0 0 var(--space-3)}
.natal-toc__list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:1fr 1fr;gap:var(--space-2) var(--space-6)}
.natal-toc__list li{margin:0}
.natal-toc__list a{font-family:var(--font-body);font-size:var(--text-sm);
  color:var(--text-secondary);text-decoration:none;display:inline-flex;gap:var(--space-2);padding:var(--space-1) 0}
.natal-toc__list a:hover{color:var(--accent)}
.natal-toc__list a span{color:var(--accent);font-family:var(--font-display);font-style:italic}
.natal-faq__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;
  color:var(--text-primary);margin:0 0 var(--space-4)}
.natal-cta{margin-top:var(--space-8);padding-top:var(--space-7);
  border-top:1px solid var(--border);text-align:center}
.natal-cta p{font-family:var(--font-body);font-size:var(--text-base);
  color:var(--text-secondary);margin:0 0 var(--space-4)}
@media(max-width:560px){
  .natal-toc__list{grid-template-columns:1fr}
  .natal-quickform{flex-direction:column;align-items:stretch}
}
