:root{--xcanvas:#eff8fb;--xraised:#ffffff;--xink:#0b2530;--xquiet:#4d6873;--xkey:#0e7490;--xpop:#e11d48;--xedge:#d2e8ef;--xcorner:4px;--xmax:1140px;--xfont-head:'Libre Baskerville',system-ui,sans-serif;--xfont-body:'Karla',system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem} body{margin:0;background:var(--xcanvas);color:var(--xink);font:16px/1.65 var(--xfont-body)}
img{max-width:100%;height:auto} a{color:var(--xkey);text-underline-offset:3px}
input,select,textarea{max-width:100%;box-sizing:border-box}
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{min-width:0;max-width:100%}
@supports (-webkit-touch-callout:none){input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{-webkit-appearance:none;appearance:none;min-height:2.75em} input::-webkit-date-and-time-value{text-align:left}}
h1,h2,h3{font-family:var(--xfont-head);line-height:1.2;letter-spacing:-.01em;color:var(--xink)}
h1{font-size:clamp(1.9rem,4.5vw,2.8rem);margin:.2em 0 .35em} h2{font-size:clamp(1.35rem,3vw,1.8rem);margin:2.20em 0 .6em} h3{font-size:1.15rem;margin:1.6em 0 .4em}
p,ul,ol{margin:0 0 1em}
.naj7g7{max-width:var(--xmax);margin:0 auto;padding:0 1rem} .na6rz4{max-width:var(--xmax);margin:0 auto;padding:1.2rem 1rem 3rem}
.najutx{position:absolute;left:-9999px} .najutx:focus{left:1rem;top:1rem;background:var(--xraised);padding:.5rem;z-index:99}
.naiphr{max-width:var(--xmax);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;flex-wrap:wrap}
.nad4yx{display:flex;align-items:center;gap:.6rem;font:800 1.15rem var(--xfont-head);color:var(--xink);text-decoration:none}
.nan0zr{display:flex;gap:1rem;flex-wrap:wrap;align-items:center} .nan0zr a{color:var(--xink);text-decoration:none;font-weight:600;font-size:.95rem}
.na9c2n{background:var(--xkey)} .na9c2n a,.na9c2n .nad4yx,.na9c2n summary{color:#fff} .na9c2n .na003v summary{border-color:rgba(255,255,255,.5)} .na9c2n .nawcr7 a{color:var(--xink)} .na9c2n .nawcr7 a[aria-current]{color:var(--xkey)} .na9c2n{position:sticky;top:0;z-index:30} .nan0zr a{border-bottom:2px solid transparent;padding-bottom:2px} .nan0zr a:hover,.nan0zr a[aria-current]{border-color:var(--xkey)}
.naji1c{margin:1rem 0 1.4rem} .na66ay{font-size:1.12rem;max-width:46em;color:var(--xquiet)} .naji1c{background:var(--xkey);color:#fff;padding:2.4rem 1.6rem;border-radius:var(--xcorner)} .naji1c h1,.naji1c .na66ay{color:#fff} .naji1c .na66ay{opacity:.92}
.nafbm6{margin:1.4rem 0 2rem}
.naftne{margin:1.4em 0;padding:.9em 1.1em;background:var(--xraised);border-left:4px solid var(--xpop);border-radius:0 var(--xcorner) var(--xcorner) 0}
.nazh2z{margin:1.2em 0;padding:.9em 1.1em;font-family:ui-monospace,Consolas,monospace;background:var(--xraised);border:1px dashed var(--xkey);border-radius:var(--xcorner);overflow-x:auto}
.napwmk{margin:1.2em 0;overflow-x:auto;border:1px solid var(--xedge);border-radius:var(--xcorner);background:var(--xraised)}
.nacxm3{width:100%;border-collapse:collapse;font-size:.95em;font-variant-numeric:tabular-nums} .nacxm3 th,.nacxm3 td{padding:.5em .75em;border-bottom:1px solid var(--xedge);text-align:left}
.nacxm3 thead th{background:color-mix(in srgb,var(--xedge) 60%,var(--xraised))}
ol.natrz1{padding-left:1.3em} ol.natrz1>li{margin:.5em 0}
.namudb{margin:1.6em 0;text-align:center} .namudb img{width:100%;max-width:720px;border-radius:var(--xcorner);border:1px solid var(--xedge);background:#fff} .namudb figcaption{font-size:.9em;color:var(--xquiet)}
.nar1w4{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:1.2em 0}
.na41qw{display:block;padding:1.1rem;background:var(--xraised);border-radius:var(--xcorner);border:1px solid var(--xedge);color:var(--xink);text-decoration:none}
.na41qw b{display:block;font-family:var(--xfont-head);margin-bottom:.35rem} .na41qw span{color:var(--xquiet);font-size:.92rem} .na41qw:hover{border-color:var(--xkey)}
.na41qw--img{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease} .na41qw--img:hover{transform:translateY(-3px);box-shadow:0 10px 24px color-mix(in srgb,var(--xink) 14%,transparent)}
.namc51{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover} .na5zce{display:block;padding:1rem 1.1rem 1.1rem} .na5zce>span{display:block}
.nawvpv a,.nau8yr,.nayhnz{background:none!important}
.na8zbs{display:block;margin-top:.6rem;font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--xkey)}
.nar1w4--feat{grid-template-columns:repeat(2,minmax(0,1fr))} .nar1w4--feat>.na41qw:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;align-items:center} .nar1w4--feat>.na41qw:first-child b{font-size:1.35rem}
.nawvpv{display:grid;gap:1rem;margin:1.2em 0} .nau8yr{display:grid;grid-template-columns:240px 1fr;gap:1.1rem;align-items:center;background:var(--xraised);border:1px solid var(--xedge);border-radius:var(--xcorner);overflow:hidden;color:var(--xink);text-decoration:none}
.nau8yr .namc51{height:100%;aspect-ratio:auto;min-height:126px} .nau8yr b{display:block;font-family:var(--xfont-head);font-size:1.12rem;margin-bottom:.3rem} .nau8yr .na5zce>span{color:var(--xquiet);font-size:.93rem} .nau8yr:hover{border-color:var(--xkey)}
.nawvpv--min{list-style:none;padding:0;counter-reset:bl;gap:0} .nawvpv--min li{counter-increment:bl;border-top:1px solid var(--xedge)} .nawvpv--min li:last-child{border-bottom:1px solid var(--xedge)}
.nawvpv--min a{display:grid;grid-template-columns:4.2rem 1fr;column-gap:1rem;padding:1.1rem .2rem;color:var(--xink);text-decoration:none} .nawvpv--min a::before{content:counter(bl,decimal-leading-zero);grid-row:1/4;font:800 2.4rem/1 var(--xfont-head);color:var(--xkey)}
.nawvpv--min b{font-family:var(--xfont-head);font-size:1.15rem} .nawvpv--min span{color:var(--xquiet);font-size:.93rem} .nawvpv--min a:hover b{color:var(--xkey)}
.na0u7w--overlay{position:relative;margin:.6rem 0 1.6rem;border-radius:var(--xcorner);overflow:hidden} .na0u7w--overlay>img{display:block;width:100%;height:auto;min-height:300px;object-fit:cover}
.najwmm{position:absolute;inset:auto 0 0 0;padding:4rem 1.6rem 1.4rem;background:linear-gradient(transparent,color-mix(in srgb,#000 72%,transparent))} .najwmm h1,.najwmm .nayi1w,.najwmm .nayhnz{color:#fff}
.na0u7w--band{background:var(--xkey);color:#fff;padding:2.2rem 1.6rem;border-radius:var(--xcorner)} .na0u7w--band h1,.na0u7w--band .nayi1w,.na0u7w--band .nayhnz{color:#fff}
.na0u7w--split{display:grid;grid-template-columns:1.1fr 1fr;gap:1.6rem;align-items:center} .na0u7w--split .nais96{margin:0}
.nazh69--chips ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.45rem} .nazh69--chips li{margin:0} .nazh69--chips a{display:inline-block;padding:.3rem .75rem;border:1px solid var(--xedge);border-radius:999px;background:var(--xcanvas);text-decoration:none;font-size:.88rem}
.nazh69--rail{background:none;border:0;border-left:3px solid var(--xpop);border-radius:0;padding:.2rem 0 .2rem 1rem}
.na003v--globe summary{display:flex;align-items:center;gap:.35rem} .naejyh{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem} .naejyh a{padding:.25rem .7rem;border:1px solid var(--xedge);border-radius:999px;text-decoration:none} .naejyh a[aria-current]{background:var(--xkey);border-color:var(--xkey);color:#fff}
@media (max-width:700px){.nar1w4--feat{grid-template-columns:1fr} .nar1w4--feat>.na41qw:first-child{display:flex} .nau8yr{grid-template-columns:1fr} .nau8yr .namc51{min-height:0;aspect-ratio:1200/630} .na0u7w--split{grid-template-columns:1fr} .najwmm{position:static;background:var(--xkey);padding:1.2rem} .na0u7w--overlay>img{min-height:0}}
.na0yef{max-width:48rem;margin:0 auto} .na0u7w{margin:.6rem 0 1.2rem} .na0u7w h1{font-size:clamp(2rem,5vw,3rem);line-height:1.12;letter-spacing:-.01em}
.nayhnz{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--xkey);text-decoration:none}
.naff58{color:var(--xquiet);font-size:.9rem;margin:2rem 0 0} .nanyxw{font-style:italic;color:var(--xquiet)} .nayi1w{color:var(--xquiet);font-size:.92rem;margin:0} .nais96{margin:0 0 1.6rem} .nais96 img{display:block;width:100%;height:auto;border-radius:var(--xcorner)}
.na0yef .na66ay{font-size:1.2rem;color:var(--xink)} .na0yef .na66ay::first-letter{font-family:var(--xfont-head);font-size:3.1em;float:left;line-height:.9;margin:.06em .1em 0 0;color:var(--xkey)}
.na0yef .nazh69--post{position:static!important;top:auto!important;z-index:auto;margin:0 0 1.8rem;padding:1rem 1.2rem;background:var(--xraised);border:1px solid var(--xedge);border-left:4px solid var(--xkey);border-radius:var(--xcorner);font-size:.95rem}
.nazh69--post ol{margin:.4rem 0 0;padding-left:1.2rem;columns:1} .nazh69--post li{margin:.2rem 0}
.na0yef h3{color:var(--xkey)} .na0yef blockquote{margin:1.4em 0;padding:.4em 1.2em;border-left:4px solid var(--xpop);font-size:1.1em}
.nazcg1 h3{font-size:1.05rem;margin-top:1.3em}
.natzkk{font-size:.88rem;color:var(--xquiet);margin:.4rem 0 1rem} .natzkk a{color:var(--xquiet)}
.na6ch9{margin:2.4rem 0;padding:1.4rem;background:var(--xraised);border-radius:var(--xcorner);border:1px solid var(--xedge);text-align:center}
.nakf3m{display:inline-block;padding:.7em 1.4em;background:var(--xkey);color:#fff;border-radius:999px;font-weight:700;text-decoration:none}
.na5f6y{border-top:1px solid var(--xedge);margin-top:3rem;padding:1.6rem 0 2.4rem;font-size:.9rem;color:var(--xquiet);background:var(--xraised)}
.na5f6y nav{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem} .na5f6y a{color:var(--xquiet)} .na5f6y{background:var(--xink);color:var(--xcanvas)} .na5f6y a,.na5f6y p{color:var(--xcanvas);opacity:.85}
.namtcn>h2{border-top:2px solid var(--xedge);padding-top:1rem}
.nazh69{margin:1.2rem 0;padding:.8rem 1rem;background:var(--xraised);border-radius:var(--xcorner);border:1px solid var(--xedge)} .nazh69 ol{margin:.3rem 0 0;padding-left:1.2rem;columns:2;column-gap:2rem} @media(max-width:640px){.nazh69 ol{columns:1}}
.na003v{position:relative} .na003v summary{cursor:pointer;list-style:none;padding:.25rem .6rem;border:1px solid var(--xedge);border-radius:999px;font-size:.85rem}
.nawcr7{position:absolute;right:0;top:120%;background:var(--xraised);border:1px solid var(--xedge);border-radius:10px;padding:.4rem;display:grid;min-width:9rem;z-index:40}
.nawcr7 a{padding:.3rem .5rem;text-decoration:none;color:var(--xink)} .nawcr7 a[aria-current]{font-weight:700;color:var(--xkey)}
.nasf4k{display:flex;gap:.35rem;font-size:.8rem;font-weight:700} .nasf4k a{text-decoration:none;color:var(--xquiet);padding:.1rem .3rem;border-radius:4px} .nasf4k a[aria-current]{color:var(--xkey);background:color-mix(in srgb,var(--xkey) 12%,transparent)}
[data-unit]{margin:1rem auto;text-align:center;overflow:hidden;max-width:100%} [data-unit]:empty{margin:0}
[data-unit="mobile_sticky"]{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:50;background:var(--xraised)}
[data-unit="sidebar_left"],[data-unit="sidebar_right"]{position:fixed;top:110px;width:160px;margin:0;z-index:20} [data-unit="sidebar_left"]{left:12px} [data-unit="sidebar_right"]{right:12px}
@media (max-width:1499px){[data-unit="sidebar_left"],[data-unit="sidebar_right"]{display:none}}
.nac6r7{float:right;border:0;background:transparent;font-size:1.2rem;cursor:pointer;color:var(--xquiet)}
.nakf3m{border-radius:4px;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}
.napwmk{border:0;border-top:3px solid var(--xkey);border-radius:0;background:transparent} .nacxm3 thead th{background:transparent;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em}
.namtcn a:not(.nakf3m):not(.na41qw){text-decoration-thickness:2px}
.naji1c--art{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;text-align:left} .naji1c--art .nabyvc{width:170px;height:170px;display:grid;place-items:center} .nabyvc svg{width:100%;height:100%;filter:drop-shadow(0 12px 24px color-mix(in srgb,var(--xkey) 35%,transparent))} .nabyvc--ring{border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--xpop) 30%,transparent) 0 38%,transparent 39% 52%,color-mix(in srgb,var(--xkey) 18%,transparent) 53% 66%,transparent 67%)} .nabyvc--ring svg{width:56%;height:56%} @media(max-width:700px){.naji1c--art{grid-template-columns:1fr} .naji1c--art .nabyvc{display:none}}
@media (max-width:640px){.naiphr{gap:.5rem} .nan0zr{gap:.8rem}}

/* natal-chart.org tool — only site tokens: --xcanvas --xraised --xink --xquiet --xkey --xpop --xedge --xcorner --xfont-head --xfont-body */
.nc-container {
    color: var(--xink);
    font-family: var(--xfont-body);
    color-scheme: inherit;
    line-height: 1.5;
    position: relative;
    --nc-fire: color-mix(in srgb, var(--xpop) 17%, var(--xraised));
    --nc-earth: color-mix(in srgb, var(--xink) 9%, var(--xraised));
    --nc-air: color-mix(in srgb, var(--xkey) 6%, var(--xraised));
    --nc-water: color-mix(in srgb, var(--xkey) 19%, var(--xraised));
    --nc-r2: calc(var(--xcorner) * 0.6);
}
.nc-container *, .nc-container *::before, .nc-container *::after { box-sizing: border-box; }
.nc-container [hidden] { display: none !important; }
.nc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- form ---------- */
.nc-form {
    background: var(--xraised);
    border: 1px solid var(--xedge);
    border-radius: var(--xcorner);
    padding: 1.25rem;
    position: relative;
    overflow: hidden;
}
.nc-form::before {
    content: "";
    position: absolute;
    right: -70px; top: -70px;
    width: 220px; height: 220px;
    border-radius: 50%;
    border: 1px dashed color-mix(in srgb, var(--xkey) 35%, transparent);
    box-shadow: 0 0 0 26px color-mix(in srgb, var(--xkey) 4%, transparent), 0 0 0 27px color-mix(in srgb, var(--xkey) 22%, transparent);
    pointer-events: none;
}
.nc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; position: relative; }
.nc-field { margin: 0; padding: 0; border: 0; min-width: 0; }
.nc-field-city, .nc-tz-box, .nc-manual, .nc-actions, .nc-error { grid-column: 1 / -1; }
.nc-label { display: block; font-weight: 700; font-size: .92rem; margin: 0 0 .35rem; padding: 0; color: var(--xink); }
.nc-opt { font-weight: 400; color: var(--xquiet); font-size: .85rem; }
.nc-input {
    width: 100%;
    min-height: 44px;
    padding: .55rem .7rem;
    font: inherit;
    font-family: var(--xfont-body);
    font-variant-numeric: tabular-nums;
    color: var(--xink);
    background: var(--xcanvas);
    border: 1px solid var(--xedge);
    border-radius: var(--nc-r2);
    color-scheme: inherit;
}
.nc-input:focus-visible, .nc-btn:focus-visible, .nc-linkbtn:focus-visible, .nc-hsys:focus-visible, .nc-aview:focus-visible, .nc-container summary:focus-visible, .nc-check input:focus-visible {
    outline: 2px solid var(--xkey);
    outline-offset: 2px;
}
.nc-input:disabled { opacity: .55; cursor: not-allowed; }
.nc-row3 { display: grid; grid-template-columns: 1fr 1.6fr 1.2fr; gap: .5rem; }
.nc-time-row { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.nc-time-row .nc-input { width: 4.6rem; text-align: center; }
.nc-colon { font-weight: 700; font-size: 1.2rem; color: var(--xquiet); }
.nc-clock-echo { color: var(--xquiet); font-size: .9rem; font-variant-numeric: tabular-nums; }
.nc-check { display: inline-flex; align-items: center; gap: .5rem; margin-top: .55rem; cursor: pointer; min-height: 36px; font-size: .95rem; }
.nc-check input { width: 1.15rem; height: 1.15rem; accent-color: var(--xkey); margin: 0; }
.nc-city-wrap { position: relative; }
.nc-city-list {
    position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px);
    margin: 0; padding: .3rem; list-style: none;
    background: var(--xraised); border: 1px solid var(--xedge); border-radius: var(--nc-r2);
    box-shadow: 0 12px 28px color-mix(in srgb, var(--xink) 18%, transparent);
    max-height: 18rem; overflow-y: auto;
}
.nc-city-opt { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem .7rem; border-radius: var(--nc-r2); cursor: pointer; min-height: 40px; align-items: center; }
.nc-city-opt:hover, .nc-city-opt.nc-on { background: color-mix(in srgb, var(--xkey) 12%, var(--xraised)); }
.nc-city-name { font-weight: 600; }
.nc-city-cc { color: var(--xquiet); font-size: .85rem; text-align: right; }
.nc-city-empty { padding: .6rem .7rem; color: var(--xquiet); font-size: .9rem; }
.nc-place-info { margin: .4rem 0 0; font-size: .85rem; color: var(--xquiet); font-variant-numeric: tabular-nums; }
.nc-linkbtn {
    background: none; border: 0; padding: .3rem 0; margin-top: .3rem; min-height: 36px;
    color: var(--xkey); font: inherit; font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.nc-manual { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; padding: .9rem; border: 1px dashed var(--xedge); border-radius: var(--nc-r2); }
.nc-manual .nc-label { font-size: .85rem; font-weight: 600; }
.nc-tz-box {
    display: flex; gap: .75rem; align-items: flex-start;
    padding: .75rem .9rem;
    background: color-mix(in srgb, var(--xkey) 6%, var(--xraised));
    border-left: 3px solid var(--xkey);
    border-radius: var(--nc-r2);
    font-size: .92rem;
}
.nc-tz-icon { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--xkey); stroke-width: 1.8; stroke-linecap: round; margin-top: 2px; }
.nc-tz-text { min-width: 0; }
.nc-tz-readout { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.nc-tz-notes { margin: .35rem 0 0; padding-left: 1.1rem; color: var(--xquiet); font-size: .88rem; }
.nc-tz-notes:empty { display: none; }
.nc-tz-note.nc-warn, .nc-note.nc-warn { color: var(--xink); }
.nc-tz-note.nc-warn::marker, .nc-note.nc-warn::marker { color: var(--xpop); }
.nc-actions { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.nc-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 44px; padding: .6rem 1.2rem;
    font: inherit; font-family: var(--xfont-body); font-weight: 700;
    border-radius: var(--nc-r2); border: 1px solid var(--xedge);
    background: var(--xraised); color: var(--xink); cursor: pointer;
    transition: transform .15s ease, background-color .15s ease;
}
.nc-btn:hover { background: color-mix(in srgb, var(--xkey) 8%, var(--xraised)); }
.nc-btn:active { transform: translateY(1px); }
.nc-btn-primary { background: var(--xkey); border-color: var(--xkey); color: var(--xraised); padding: .65rem 1.5rem; }
.nc-btn-primary:hover { background: color-mix(in srgb, var(--xkey) 86%, var(--xink)); }
.nc-btn-primary svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.nc-btn-ghost { background: transparent; }
.nc-btn-small { min-height: 38px; padding: .4rem .85rem; font-size: .88rem; font-weight: 600; }
.nc-error {
    margin: 0; padding: .65rem .85rem; border-radius: var(--nc-r2);
    background: color-mix(in srgb, var(--xpop) 12%, var(--xraised)); border: 1px solid color-mix(in srgb, var(--xpop) 45%, var(--xedge));
    color: var(--xink); font-weight: 600;
}

/* ---------- results ---------- */
.nc-results { margin-top: 1.75rem; }
.nc-res-head { text-align: center; margin-bottom: 1rem; }
.nc-res-title { font-family: var(--xfont-head); font-size: 1.55rem; margin: 0 0 .2rem; color: var(--xink); overflow-wrap: anywhere; }
.nc-res-meta { margin: 0; color: var(--xquiet); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nc-notes { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.nc-note {
    padding: .6rem .85rem .6rem 2.2rem; position: relative; font-size: .92rem;
    background: color-mix(in srgb, var(--xkey) 6%, var(--xraised)); border-radius: var(--nc-r2); border: 1px solid var(--xedge);
}
.nc-note::before { content: "i"; position: absolute; left: .7rem; top: .62rem; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--xkey); color: var(--xraised); font-size: .72rem; font-weight: 700; text-align: center; line-height: 1.05rem; font-family: var(--xfont-head); }
.nc-note.nc-warn::before { content: "!"; background: var(--xpop); }

.nc-big3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1.25rem; }
.nc-bt {
    display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: .8rem; align-items: center;
    padding: .9rem 1rem; border-radius: var(--xcorner);
    background: var(--xraised); border: 1px solid var(--xedge);
    position: relative; overflow: hidden;
}
.nc-bt::after { content: ""; position: absolute; inset: auto -30% -60% auto; width: 120px; height: 120px; border-radius: 50%; background: color-mix(in srgb, var(--xkey) 7%, transparent); pointer-events: none; }
.nc-bt-glyph {
    grid-row: 1 / span 3; width: 3rem; height: 3rem; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: color-mix(in srgb, var(--xkey) 14%, var(--xraised)); color: var(--xkey);
    font-size: 1.45rem; font-weight: 700; font-family: var(--xfont-head);
    border: 1px solid color-mix(in srgb, var(--xkey) 35%, var(--xedge));
}
.nc-bt-rising .nc-bt-glyph { font-size: .95rem; letter-spacing: .02em; }
.nc-bt-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--xquiet); font-weight: 700; }
.nc-bt-sign { font-family: var(--xfont-head); font-size: 1.3rem; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.nc-bt-deg { font-size: .85rem; color: var(--xquiet); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nc-bt-off .nc-bt-glyph { background: transparent; color: var(--xquiet); border-style: dashed; }
.nc-bt-off .nc-bt-sign { color: var(--xquiet); }

.nc-main { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.nc-wheel-col, .nc-tables-col { min-width: 0; }
.nc-hsys-wrap { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: .6rem; }
.nc-hsys-label { font-size: .85rem; color: var(--xquiet); font-weight: 700; }
.nc-hsys-group, .nc-seg { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--xedge); border-radius: var(--nc-r2); overflow: hidden; background: var(--xraised); }
.nc-hsys, .nc-aview {
    min-height: 38px; padding: .35rem .8rem; border: 0; border-right: 1px solid var(--xedge);
    background: transparent; color: var(--xink); font: inherit; font-size: .88rem; cursor: pointer;
}
.nc-hsys:last-child, .nc-aview:last-child { border-right: 0; }
.nc-hsys[aria-pressed="true"], .nc-aview[aria-pressed="true"] { background: var(--xkey); color: var(--xraised); font-weight: 700; }
.nc-wheel-box {
    border-radius: 50%;
    background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--xkey) 10%, transparent), transparent 70%);
    padding: 2%;
}
.nc-wheel { display: block; width: 100%; height: auto; max-width: 600px; margin: 0 auto; font-family: var(--xfont-body); overflow: visible; }
.nc-w-bg { fill: var(--xraised); stroke: var(--xedge); stroke-width: 1.2; }
.nc-w-ring { fill: none; stroke: var(--xedge); stroke-width: 1; }
.nc-w-sign { stroke: var(--xedge); stroke-width: .9; }
.nc-w-fire { fill: var(--nc-fire); }
.nc-w-earth { fill: var(--nc-earth); }
.nc-w-air { fill: var(--nc-air); }
.nc-w-water { fill: var(--nc-water); }
.nc-w-sg { font-size: 20px; fill: var(--xink); }
.nc-w-sg-fire { fill: color-mix(in srgb, var(--xpop) 80%, var(--xink)); }
.nc-w-sg-water { fill: var(--xkey); }
.nc-w-sg-air { fill: var(--xquiet); }
.nc-w-tick { stroke: var(--xquiet); stroke-width: .7; fill: none; }
.nc-w-inner { fill: color-mix(in srgb, var(--xkey) 4%, var(--xraised)); stroke: var(--xedge); stroke-width: 1; }
.nc-w-cusp { stroke: var(--xedge); stroke-width: 1.1; }
.nc-w-axis { stroke: var(--xquiet); stroke-width: 1.3; }
.nc-w-angle { stroke: var(--xink); stroke-width: 1.7; }
.nc-w-axlabel { font-size: 11px; font-weight: 700; fill: var(--xink); font-family: var(--xfont-head); }
.nc-w-hnum { font-size: 11px; fill: var(--xquiet); font-variant-numeric: tabular-nums; }
.nc-w-asp { stroke-width: 1.4; }
.nc-w-asp-harm { stroke: var(--xkey); }
.nc-w-asp-tens { stroke: var(--xpop); }
.nc-w-asp-sext { stroke-dasharray: 5 3; }
.nc-w-pl { font-size: 21px; fill: var(--xink); cursor: default; }
.nc-w-pl-tick { stroke: var(--xink); stroke-width: 1.4; }
.nc-w-pl-lead, .nc-w-tr-lead { stroke: var(--xquiet); stroke-width: .7; stroke-dasharray: 2 2; }
.nc-w-pl-deg { font-size: 10px; fill: var(--xquiet); font-variant-numeric: tabular-nums; }
.nc-w-tr { font-size: 16px; fill: var(--xpop); }
.nc-w-tr-tick { stroke: var(--xpop); stroke-width: 1.4; }
.nc-w-moonarc { fill: none; stroke: var(--xkey); stroke-width: 6; stroke-linecap: round; stroke-opacity: .55; }
.nc-w-anim { transform-origin: 300px 300px; animation: nc-wheel-in .8s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes nc-wheel-in { from { opacity: 0; transform: rotate(-24deg) scale(.96); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .nc-w-anim { animation: none; } .nc-btn { transition: none; } }

.nc-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; justify-content: center; margin: .6rem 0; font-size: .82rem; color: var(--xquiet); }
.nc-lg::before { content: ""; display: inline-block; width: 18px; height: 0; border-top: 2px solid var(--xkey); vertical-align: middle; margin-right: .4rem; }
.nc-lg-tens::before { border-color: var(--xpop); }
.nc-lg-tr::before { width: 9px; height: 9px; border: 0; border-radius: 50%; background: var(--xpop); }
.nc-export { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }

.nc-h { font-family: var(--xfont-head); font-size: 1.1rem; margin: 0 0 .6rem; color: var(--xink); }
.nc-h5 { font-family: var(--xfont-head); font-size: 1rem; margin: 1.1rem 0 .3rem; }
.nc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.nc-table { width: 100%; border-collapse: collapse; font-size: .92rem; font-variant-numeric: tabular-nums; }
.nc-table th, .nc-table td { padding: .42rem .5rem; text-align: left; border-bottom: 1px solid var(--xedge); white-space: nowrap; }
.nc-table thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--xquiet); font-weight: 700; border-bottom-width: 2px; }
.nc-table tbody th { font-weight: 600; }
.nc-table tbody tr:hover { background: color-mix(in srgb, var(--xkey) 5%, transparent); }
.nc-glyph { width: 1.8rem; text-align: center !important; font-size: 1.15rem; color: var(--xkey); }
.nc-row-angle .nc-glyph { font-size: .78rem; font-weight: 700; font-family: var(--xfont-head); }
.nc-row-asc { border-top: 2px solid var(--xedge); }
.nc-house { text-align: center !important; }
.nc-motion { color: var(--xquiet); }
.nc-rx { color: var(--xpop); font-weight: 700; }
.nc-houses-wrap { margin-top: 1.25rem; }
.nc-hn { color: var(--xquiet); font-size: .85rem; }

.nc-panel { margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--xedge); }
.nc-panel-head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: .4rem; }
.nc-panel-head .nc-h { margin: 0; }

/* unknown time */
.nc-md-title { font-weight: 700; margin: 0 0 .5rem; }
.nc-md-flag { display: inline-block; font-size: .78rem; font-weight: 700; padding: .1rem .55rem; border-radius: 999px; background: color-mix(in srgb, var(--xkey) 14%, var(--xraised)); color: var(--xkey); vertical-align: middle; }
.nc-md-flag.nc-md-change { background: color-mix(in srgb, var(--xpop) 15%, var(--xraised)); color: color-mix(in srgb, var(--xpop) 75%, var(--xink)); }
.nc-md-bar { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: center; font-size: .88rem; font-variant-numeric: tabular-nums; }
.nc-md-track { height: 10px; border-radius: 99px; position: relative; background: linear-gradient(90deg, var(--nc-water), color-mix(in srgb, var(--xkey) 45%, var(--xraised))); border: 1px solid var(--xedge); }
.nc-md-mark { position: absolute; top: -6px; bottom: -6px; width: 3px; margin-left: -1.5px; background: var(--xpop); border-radius: 2px; }
.nc-md-text { margin: .6rem 0 0; font-size: .92rem; }
.nc-rising-intro { font-size: .9rem; color: var(--xquiet); margin: 0 0 .6rem; }
.nc-rb { display: flex; height: 40px; border-radius: var(--nc-r2); overflow: hidden; border: 1px solid var(--xedge); }
.nc-rb-seg { display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--xraised); min-width: 0; font-size: 1.05rem; }
.nc-rb-seg:last-child { border-right: 0; }
.nc-rb-fire { background: var(--nc-fire); }
.nc-rb-earth { background: var(--nc-earth); }
.nc-rb-air { background: var(--nc-air); }
.nc-rb-water { background: var(--nc-water); }
.nc-rb-axis { display: flex; justify-content: space-between; font-size: .75rem; color: var(--xquiet); margin-top: .25rem; font-variant-numeric: tabular-nums; }
.nc-rising-list { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .35rem .9rem; font-size: .9rem; font-variant-numeric: tabular-nums; }
.nc-rl { display: flex; gap: .5rem; align-items: center; padding: .25rem .1rem; border-bottom: 1px dotted var(--xedge); }
.nc-rl-g { width: 1.6rem; height: 1.6rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.nc-rl-fire .nc-rl-g { background: var(--nc-fire); }
.nc-rl-earth .nc-rl-g { background: var(--nc-earth); }
.nc-rl-air .nc-rl-g { background: var(--nc-air); border: 1px solid var(--xedge); }
.nc-rl-water .nc-rl-g { background: var(--nc-water); }

/* aspects */
.nc-orbs { margin: .4rem 0 .6rem; font-size: .9rem; }
.nc-orbs summary { cursor: pointer; color: var(--xkey); min-height: 36px; display: flex; align-items: center; }
.nc-orb-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; margin-top: .4rem; }
.nc-orb-item { display: grid; gap: .2rem; font-size: .82rem; color: var(--xquiet); }
.nc-orb-item .nc-input { min-height: 40px; padding: .35rem .5rem; }
.nc-aspects-note, .nc-tinfo, .nc-bal-note { font-size: .88rem; color: var(--xquiet); margin: .2rem 0 .6rem; }
.nc-asym { display: inline-block; width: 1.3rem; text-align: center; font-size: 1.05rem; }
.nc-asp-harm .nc-asym, .nc-asp-harm .nc-gs { color: var(--xkey); }
.nc-asp-tens .nc-asym, .nc-asp-tens .nc-gs { color: var(--xpop); }
.nc-asp-conj .nc-asym, .nc-asp-conj .nc-gs { color: var(--xink); }
.nc-orbv { text-align: right !important; }
.nc-agrid { border-collapse: collapse; font-size: .85rem; margin: 0 auto; }
.nc-agrid th, .nc-agrid td { width: 2.15rem; height: 2.15rem; min-width: 2.15rem; text-align: center; padding: 0; }
.nc-agrid .nc-gh { color: var(--xkey); font-size: 1rem; font-weight: 400; }
.nc-agrid .nc-gc { border: 1px solid var(--xedge); background: var(--xraised); position: relative; }
.nc-agrid .nc-gc.nc-asp-harm { background: color-mix(in srgb, var(--xkey) 10%, var(--xraised)); }
.nc-agrid .nc-gc.nc-asp-tens { background: color-mix(in srgb, var(--xpop) 10%, var(--xraised)); }
.nc-gs { display: block; font-size: 1rem; line-height: 1.1; }
.nc-go { display: block; font-size: .6rem; color: var(--xquiet); line-height: 1; }

/* transits */
.nc-tcontrols { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: flex-end; margin-bottom: .4rem; }
.nc-tfield { display: grid; gap: .2rem; font-size: .82rem; color: var(--xquiet); font-weight: 700; }
.nc-tfield .nc-input { min-height: 40px; width: auto; }
.nc-tcontrols .nc-check { margin-top: 0; }
.nc-tempty td { color: var(--xquiet); white-space: normal; }

/* balance */
.nc-balance { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.nc-bal { display: grid; gap: .45rem; }
.nc-bar { display: grid; grid-template-columns: 6.5rem 1fr 1.5rem; gap: .6rem; align-items: center; font-size: .9rem; }
.nc-bar-t { height: 12px; border-radius: 99px; background: color-mix(in srgb, var(--xedge) 60%, var(--xraised)); overflow: hidden; }
.nc-bar-f { display: block; height: 100%; border-radius: 99px; background: var(--xkey); transition: width .6s ease; }
.nc-bar-fire .nc-bar-f { background: var(--xpop); }
.nc-bar-earth .nc-bar-f { background: color-mix(in srgb, var(--xink) 55%, var(--xraised)); }
.nc-bar-air .nc-bar-f { background: color-mix(in srgb, var(--xkey) 45%, var(--xraised)); }
.nc-bar-n { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }

/* meanings */
.nc-meanings-sec > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .5rem; min-height: 40px; }
.nc-meanings-sec > summary::-webkit-details-marker { display: none; }
.nc-meanings-sec > summary::before { content: "+"; display: inline-flex; width: 1.5rem; height: 1.5rem; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--xedge); color: var(--xkey); font-family: var(--xfont-head); }
.nc-meanings-sec[open] > summary::before { content: "\2212"; }
.nc-meanings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .6rem; }
.nc-mcard { padding: .8rem .95rem; border: 1px solid var(--xedge); border-radius: var(--nc-r2); background: var(--xraised); }
.nc-mcard p { margin: .3rem 0 0; font-size: .9rem; }
.nc-mtitle { margin: 0; font-family: var(--xfont-head); font-size: .98rem; display: flex; gap: .5rem; align-items: center; }
.nc-mglyph { color: var(--xkey); font-size: 1.1rem; min-width: 1.4rem; text-align: center; font-weight: 700; }

.nc-res-foot { margin-top: 1.5rem; padding-top: .9rem; border-top: 1px solid var(--xedge); font-size: .85rem; color: var(--xquiet); }
.nc-res-foot p { margin: 0 0 .4rem; }
.nc-disclaimer { color: var(--xink); }
.nc-toast {
    position: fixed; left: 50%; bottom: 1.25rem; transform: translateX(-50%); z-index: 1000;
    background: var(--xink); color: var(--xraised); padding: .6rem 1.1rem; border-radius: var(--nc-r2);
    font-size: .92rem; box-shadow: 0 8px 22px color-mix(in srgb, var(--xink) 30%, transparent); max-width: calc(100vw - 2rem);
}
.nc-copybuf { position: fixed; left: -9999px; top: 0; opacity: 0; }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
    .nc-main { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .nc-form { padding: 1rem; }
    .nc-form-grid { grid-template-columns: 1fr; }
    .nc-manual { grid-template-columns: 1fr; }
    .nc-big3 { grid-template-columns: 1fr; }
    .nc-balance, .nc-meanings { grid-template-columns: 1fr; }
    .nc-orb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nc-md-bar { grid-template-columns: 1fr 1fr; }
    .nc-md-track { grid-column: 1 / -1; grid-row: 2; }
    .nc-md-to { text-align: right; }
    .nc-res-title { font-size: 1.3rem; }
    .nc-table th, .nc-table td { padding: .4rem .35rem; }
    .nc-wheel-box { padding: 0; }
}

@media print {
    .nc-form, .nc-export, .nc-hsys-wrap, .nc-tcontrols, .nc-orbs, .nc-seg, .nc-clear, .nc-toast { display: none !important; }
    .nc-meanings-sec > .nc-meanings { display: grid !important; }
    .nc-main { grid-template-columns: 1fr; }
    .nc-w-anim { animation: none; }
}

/* design: sites/<d>/design/site.css */
/* natal-chart.org — "Planisphere and printed ephemeris"
   pale star-chart paper with a plus-mark graticule; a night-blue planisphere jacket
   for the header (24-hour scale on its lower edge) and the first screen (rotating disc,
   ecliptic ruler); ecliptic-ruler section heads with a planet dot; ephemeris tables,
   observing-log notes, almanac index, star-chart plate guides, horizon footer. */

:root{
  --n-night:color-mix(in srgb,var(--xink) 90%,var(--xkey));
  --n-night2:color-mix(in srgb,var(--xink) 78%,var(--xkey));
  --n-glow:color-mix(in srgb,var(--xkey) 45%,#fff);
  --n-hair:color-mix(in srgb,var(--xkey) 34%,var(--xedge));
  --n-tint:color-mix(in srgb,var(--xkey) 5%,var(--xraised));
  --n-rule:color-mix(in srgb,var(--xink) 78%,var(--xkey));
}
::selection{background:color-mix(in srgb,var(--xkey) 26%,transparent);color:var(--xink)}
body{background:var(--xcanvas) url(/assets/img/d-graticule.svg) 0 0/120px 120px}

/* ---------- header: planisphere jacket with a 24-hour scale on its lower edge ---------- */
.na9c2n{position:sticky;top:0;z-index:30;background:var(--n-night);border:0;
  box-shadow:0 1px 0 color-mix(in srgb,var(--xink) 40%,transparent)}
.na9c2n::after{content:'';position:absolute;left:0;right:0;bottom:0;height:7px;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,color-mix(in srgb,var(--n-glow) 75%,transparent) 0 1px,transparent 1px 60px) 0 100%/100% 7px no-repeat,
    repeating-linear-gradient(90deg,color-mix(in srgb,var(--n-glow) 38%,transparent) 0 1px,transparent 1px 15px) 0 100%/100% 4px no-repeat}
.naiphr{padding:.7rem 1rem .95rem;gap:.5rem 1.6rem}
.na9c2n a,.na9c2n .nad4yx{color:#fff}
.nad4yx{font:700 1.14rem/1.1 var(--xfont-head);letter-spacing:.005em;gap:.65rem}
.nad4yx svg{width:34px;height:34px;flex:none;border-radius:50%;
  box-shadow:0 0 0 2px var(--n-night),0 0 0 3px color-mix(in srgb,var(--n-glow) 60%,transparent)}
.nan0zr{gap:.4rem 1.4rem}
.na9c2n .nan0zr>a{font:600 .93rem/1 var(--xfont-body);letter-spacing:.02em;padding:.5rem 0 .42rem;color:color-mix(in srgb,#fff 86%,var(--xkey));
  border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.na9c2n .nan0zr>a:hover{color:#fff;border-bottom-color:color-mix(in srgb,var(--n-glow) 70%,transparent)}
.na9c2n .nan0zr>a[aria-current]{color:#fff;border-bottom-color:var(--xpop)}
/* language codes as hour labels on the scale; the current one is ringed */
.na9c2n .nasf4k{display:flex;gap:.15rem;align-items:center;padding-left:.9rem;border-left:1px solid color-mix(in srgb,var(--n-glow) 30%,transparent)}
.na9c2n .nasf4k a{font:700 .7rem/1 var(--xfont-body);letter-spacing:.08em;color:color-mix(in srgb,#fff 78%,var(--xkey));
  min-width:2.05rem;height:2.05rem;display:grid;place-items:center;border-radius:50%;border:1px solid transparent;padding:0;
  font-variant-numeric:tabular-nums;transition:border-color .2s,color .2s}
.na9c2n .nasf4k a:hover{color:#fff;border-color:color-mix(in srgb,var(--n-glow) 50%,transparent)}
.na9c2n .nasf4k a[aria-current]{color:#fff;background:transparent;border-color:var(--n-glow);
  box-shadow:inset 0 0 0 2px var(--n-night),inset 0 0 0 3px color-mix(in srgb,var(--xpop) 80%,transparent)}
@media (max-width:700px){
  .naiphr{gap:.35rem 1rem;padding:.55rem 1rem .85rem}
  .nad4yx{font-size:1.02rem}
  .nan0zr{flex:1 1 100%;flex-wrap:nowrap;justify-content:flex-start;gap:.2rem .9rem}
  .na9c2n .nasf4k{padding-left:.4rem;gap:0;margin-left:auto}
  .na9c2n .nasf4k a{min-width:1.85rem;height:1.85rem;font-size:.66rem;letter-spacing:.04em}
}

/* ---------- first screen: the jacket with the rotating disc ---------- */
.naji1c{position:relative;isolation:isolate;overflow:hidden;margin:1.6rem 0 1.8rem;padding:2.6rem 2rem 4.2rem;
  border-radius:var(--xcorner);color:#fff;
  background:
    repeating-radial-gradient(circle at 86% 50%,transparent 0 46px,color-mix(in srgb,var(--n-glow) 14%,transparent) 46px 47px),
    linear-gradient(170deg,var(--n-night2),var(--n-night) 70%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--n-glow) 22%,transparent)}
.naji1c h1{color:#fff;max-width:19em;font-size:clamp(1.9rem,4.4vw,2.75rem);line-height:1.13}
.naji1c .na66ay{color:color-mix(in srgb,#fff 90%,var(--xkey));opacity:1;max-width:38em}
/* ecliptic ruler at the bottom of the jacket */
.naji1c::after{content:'';position:absolute;z-index:-1;left:2rem;right:2rem;bottom:1.3rem;top:auto;height:16px;opacity:1;
  background:color-mix(in srgb,var(--n-glow) 70%,transparent);
  -webkit-mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat;mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat}
.naji1c::before{content:'';position:absolute;z-index:0;left:calc(2rem + 61%);bottom:calc(1.3rem + 11px);width:10px;height:10px;border-radius:50%;
  background:var(--xpop);box-shadow:0 0 0 3px var(--n-night)}
.naji1c--art .nabyvc{width:260px;height:260px;border-radius:50%;
  background:url(/assets/img/d-planisphere.svg) center/contain no-repeat;
  box-shadow:0 0 0 6px color-mix(in srgb,var(--xink) 50%,transparent),0 0 0 7px color-mix(in srgb,var(--n-glow) 25%,transparent)}
.naji1c--art .nabyvc svg{width:15%;height:15%;filter:none;transform:translateY(-4px)}
@media (max-width:700px){
  .naji1c{padding:1.8rem 1.15rem 3.4rem;margin-top:1.1rem}
  .naji1c::after{left:1.15rem;right:1.15rem;bottom:1rem}
  .naji1c::before{left:calc(1.15rem + 61%);bottom:calc(1rem + 11px)}
}

/* ---------- tool frame: outer spacing only ---------- */
.nafbm6{margin:1.8rem 0 2.6rem}

/* ---------- almanac index (home contents) ---------- */
.nazh69{background:var(--xraised);border:0;border-top:2px solid var(--n-rule);border-bottom:1px solid var(--n-rule);border-radius:0;
  padding:.9rem 1.2rem 1rem;margin:1.6rem 0 1rem}
.nazh69>strong,.nazh69--post>strong{display:block;font:700 .74rem/1.2 var(--xfont-body);letter-spacing:.16em;text-transform:uppercase;color:var(--xquiet);
  padding-bottom:.5rem;border-bottom:1px solid var(--xedge);margin-bottom:.35rem}
.nazh69 ol{counter-reset:ix;list-style:none;padding-left:0}
.nazh69 li{counter-increment:ix;position:relative;padding:.22rem 0 .22rem 2.3rem;break-inside:avoid}
.nazh69 li::before{content:counter(ix,decimal-leading-zero);position:absolute;left:0;top:.36rem;
  font:700 .82rem/1.55 var(--xfont-body);font-variant-numeric:tabular-nums;color:var(--xkey);letter-spacing:.04em}
.nazh69 a{color:var(--xink);text-decoration:none;border-bottom:1px dotted var(--n-hair)}
.nazh69 a:hover{color:var(--xkey);border-bottom-color:var(--xkey)}

/* ---------- sections: heading on the ecliptic ruler with a planet dot ---------- */
.namtcn>h2{position:relative;border-top:0;padding-top:1.55rem;margin-top:2.3em;font-size:clamp(1.38rem,3vw,1.8rem)}
.namtcn>h2::before{content:'';position:absolute;left:0;right:0;top:0;height:12px;margin:0;width:auto;display:block;
  background:var(--n-hair);
  -webkit-mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat;mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat}
.namtcn>h2::after{content:'';position:absolute;left:calc(8.33% - 5px);top:2px;width:10px;height:10px;border-radius:50%;
  background:var(--xpop);box-shadow:0 0 0 3px var(--xcanvas)}
.namtcn:nth-of-type(3n+2)>h2::after{left:calc(25% - 5px);background:var(--xkey)}
.namtcn:nth-of-type(3n)>h2::after{left:calc(41.66% - 5px);background:var(--xink)}
.namtcn h3{font-size:1.14rem}

/* prose links: thin teal underline, rose on hover */
.namtcn a:not(.nakf3m):not(.na41qw):not(.nau8yr){color:var(--xkey);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,var(--xkey) 50%,transparent);transition:text-decoration-color .2s}
.namtcn a:not(.nakf3m):not(.na41qw):not(.nau8yr):hover{text-decoration-color:var(--xpop);text-decoration-thickness:2px}

/* lists and steps: degree bullets */
.namtcn ul{padding-left:1.25em}
.namtcn ul>li::marker{color:var(--xpop)}
ol.natrz1,.namtcn ol:not(.nawvpv){padding-left:1.6em}
.namtcn ol:not(.nawvpv)>li::marker{color:var(--xkey);font-weight:700;font-variant-numeric:tabular-nums}

/* ---------- observing-log notes ---------- */
.naftne{position:relative;background:
    repeating-linear-gradient(transparent 0 1.55em,color-mix(in srgb,var(--xkey) 9%,transparent) 1.55em calc(1.55em + 1px)),
    var(--xraised);
  border:1px solid var(--xedge);border-left:0;border-radius:0 var(--xcorner) var(--xcorner) 0;padding:.85em 1.1em .85em 1.6em;
  box-shadow:inset 4px 0 0 var(--xraised),inset 5px 0 0 var(--xpop),inset 8px 0 0 var(--xraised),inset 9px 0 0 var(--xpop)}

/* ---------- ephemeris strips (formulas) ---------- */
.nazh2z{background:var(--n-tint);border:0;border-top:1px solid var(--n-rule);border-bottom:1px solid var(--n-rule);border-radius:0;
  padding:.85em 1.1em;font-variant-numeric:tabular-nums;color:var(--xink);letter-spacing:.01em}

/* ---------- ephemeris pages (tables) ---------- */
.napwmk{border:0;border-top:2px solid var(--n-rule);border-bottom:2px solid var(--n-rule);border-radius:0;background:var(--xraised);margin:1.6em 0}
.nacxm3{font-variant-numeric:tabular-nums lining-nums}
.nacxm3 caption{caption-side:top;text-align:left;padding:.55rem .75rem .45rem;font:italic 400 .93rem/1.4 var(--xfont-head);color:var(--xquiet);background:var(--xcanvas)}
.nacxm3 thead th{background:transparent;color:var(--xquiet);font:700 .72rem/1.3 var(--xfont-body);letter-spacing:.12em;text-transform:uppercase;
  border-bottom:1px solid var(--n-rule);padding:.6em .75em}
.nacxm3 td{border-bottom:1px solid color-mix(in srgb,var(--xedge) 75%,transparent);padding:.5em .75em}
.nacxm3 tbody tr:nth-child(5n):not(:last-child) td{border-bottom:1px solid var(--n-hair)}
.nacxm3 tbody tr:last-child td{border-bottom:0}
.nacxm3 tbody td:first-child{font-weight:600}
.nacxm3 tbody tr{transition:background-color .15s}
.nacxm3 tbody tr:hover{background:color-mix(in srgb,var(--xkey) 6%,transparent)}

/* ---------- figures: plates ---------- */
.namudb img{border-radius:var(--xcorner);border:1px solid var(--xedge);box-shadow:0 0 0 4px var(--xraised),0 0 0 5px var(--xedge)}
.namudb figcaption{font:italic .92em/1.5 var(--xfont-head);margin-top:.7em}

/* ---------- guides: star-chart plates ---------- */
.na41qw{border-radius:var(--xcorner)}
.na41qw--img{position:relative;border:1px solid var(--xedge);background:var(--xraised)}
.na41qw--img .na5zce{position:relative;padding-top:1.25rem}
.na41qw--img .na5zce::before{content:'';position:absolute;left:1.1rem;right:1.1rem;top:.35rem;height:8px;background:var(--n-hair);
  -webkit-mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat;mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat}
.na41qw--img:hover{border-color:var(--xkey);transform:translateY(-2px);box-shadow:0 8px 20px color-mix(in srgb,var(--xink) 12%,transparent)}
.na41qw b{font-size:1.12rem;line-height:1.3;color:var(--xink)}
.na41qw--img:hover b{color:var(--xkey)}
.na8zbs{font:700 .72rem/1 var(--xfont-body);letter-spacing:.12em;text-transform:uppercase;color:var(--xquiet)}
.na8zbs::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--xpop);margin-right:.5em;vertical-align:.08em}
.nar1w4--feat>.na41qw:first-child .na5zce{padding:1.6rem 1.6rem 1.6rem}
.nar1w4--feat>.na41qw:first-child .na5zce::before{left:1.6rem;right:1.6rem;top:.6rem}

/* ---------- FAQ: a planet marker that fills in when opened ---------- */
.nazcg1 details{border-bottom:1px solid var(--xedge);padding:0}
.nazcg1 details:first-of-type{border-top:1px solid var(--xedge)}
.nazcg1 summary{list-style:none;position:relative;padding:.85rem .4rem .85rem 2.1rem;font:700 1.05rem/1.4 var(--xfont-head);cursor:pointer;transition:color .2s}
.nazcg1 summary::-webkit-details-marker{display:none}
.nazcg1 summary::before{content:'';position:absolute;left:.25rem;top:1.05rem;width:12px;height:12px;border-radius:50%;
  border:2px solid var(--xkey);background:transparent;transition:background-color .2s,border-color .2s}
.nazcg1 summary:hover{color:var(--xkey)}
.nazcg1 details[open]>summary::before{background:var(--xpop);border-color:var(--xpop)}
.nazcg1 details>p{margin:0 0 1rem 2.1rem;color:var(--xink)}

/* ---------- crumbs, CTA, buttons ---------- */
.natzkk{font-size:.84rem;letter-spacing:.02em;color:var(--xquiet)}
.natzkk a{color:var(--xquiet);text-decoration-color:var(--n-hair)}
.natzkk a:hover{color:var(--xkey)}
.nakf3m{background:var(--xkey);border-radius:var(--xcorner);transition:background-color .2s,box-shadow .2s;
  box-shadow:0 0 0 1px var(--xkey),inset 0 0 0 2px color-mix(in srgb,#fff 18%,transparent)}
.nakf3m:hover{background:color-mix(in srgb,var(--xkey) 82%,var(--xink))}
.na6ch9{position:relative;overflow:hidden;background:var(--n-night);border:0;border-radius:var(--xcorner);padding:2rem 1.4rem 2.6rem;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--n-glow) 22%,transparent)}
.na6ch9::after{content:'';position:absolute;left:1.4rem;right:1.4rem;bottom:.9rem;height:12px;background:color-mix(in srgb,var(--n-glow) 55%,transparent);
  -webkit-mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat;mask:url(/assets/img/d-ecliptic.svg) 0 0/100% 100% no-repeat}
.na6ch9 .nakf3m{background:#fff;color:var(--xink);box-shadow:0 0 0 1px #fff,inset 0 0 0 2px color-mix(in srgb,var(--xkey) 22%,transparent)}
.na6ch9 .nakf3m:hover{background:color-mix(in srgb,var(--xkey) 12%,#fff)}

/* ---------- article (guide) ---------- */
.na0u7w--split{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem;padding:1.4rem 0 1.6rem;border-bottom:1px solid var(--xedge);margin-bottom:1.8rem}
.nayhnz{font:700 .74rem/1 var(--xfont-body);letter-spacing:.16em;color:var(--xkey);display:inline-flex;align-items:center;gap:.55em}
.nayhnz::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--xpop);box-shadow:0 0 0 2px var(--xcanvas),0 0 0 3px var(--n-hair)}
.na0u7w h1{font-size:clamp(1.85rem,3.6vw,2.35rem);line-height:1.15;margin:.45em 0 .4em}
.nayi1w{font-size:.84rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--xquiet)}
.nais96 img{border-radius:var(--xcorner);border:1px solid var(--xedge);box-shadow:0 0 0 5px var(--xraised),0 0 0 6px var(--xedge)}
.na0yef{font-size:1.04rem}
.na0yef>.namtcn p,.na0yef>.namtcn li{line-height:1.72}
.na0yef .na66ay{font:400 1.2rem/1.65 var(--xfont-head);color:var(--xink)}
.na0yef .na66ay::first-letter{color:var(--xkey);font-weight:700}
.na0yef .nazh69--post{background:var(--xraised);border:0;border-top:2px solid var(--n-rule);border-bottom:1px solid var(--n-rule);border-left:0;border-radius:0;padding:.9rem 1.2rem 1rem}
.na0yef .nazh69--post ol{columns:2;column-gap:2rem}
@media (max-width:700px){.na0yef .nazh69--post ol{columns:1}}
.na0yef h3{color:var(--xink);font-size:1.16rem}
.na0yef h3::before{content:'';display:inline-block;width:.5em;height:.5em;border-radius:50%;border:2px solid var(--xkey);margin-right:.5em;vertical-align:.12em}
.na0yef blockquote{border-left:0;padding:.6em 1.2em .6em 1.6em;position:relative;font:italic 1.12em/1.6 var(--xfont-head);color:var(--xink);
  background:linear-gradient(var(--xpop),var(--xpop)) 0 0/2px 100% no-repeat}
@media (max-width:700px){.na0u7w--split{grid-template-columns:1fr;gap:1.2rem;padding-top:.6rem}}

/* ---------- footer: dark ground under the horizon, a rose body rising ---------- */
.na5f6y{position:relative;background:var(--n-night);border-top:0;margin-top:3.6rem;padding:2.4rem 0 2.6rem;color:color-mix(in srgb,#fff 82%,var(--xkey))}
.na5f6y::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:color-mix(in srgb,var(--n-glow) 60%,transparent)}
.na5f6y::after{content:'';position:absolute;right:12%;top:-22px;width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle,var(--xpop) 0 50%,color-mix(in srgb,var(--xpop) 25%,transparent) 51% 70%,transparent 71%);
  -webkit-clip-path:inset(0 0 50% 0);clip-path:inset(0 0 50% 0)}
.na5f6y p{color:color-mix(in srgb,#fff 84%,var(--xkey));opacity:1}
.na5f6y a{color:color-mix(in srgb,#fff 84%,var(--xkey));opacity:1;text-decoration-color:color-mix(in srgb,var(--n-glow) 45%,transparent)}
.na5f6y a:hover{color:#fff;text-decoration-color:var(--xpop)}
.na0grj{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--n-glow) 20%,transparent) 0 1px,transparent 1px 15px) 0 0/100% 5px no-repeat;padding-top:1rem}

/* focus stays visible */
.na9c2n a:focus-visible,.na5f6y a:focus-visible,.na6ch9 .nakf3m:focus-visible{outline:2px solid #fff;outline-offset:2px}
.namtcn a:focus-visible,.nazh69 a:focus-visible,.na41qw:focus-visible,.nazcg1 summary:focus-visible,.nakf3m:focus-visible{outline:2px solid var(--xkey);outline-offset:2px}

@media (prefers-reduced-motion:reduce){
  .na41qw--img,.na41qw--img:hover,.nakf3m,.nazcg1 summary::before,.nacxm3 tbody tr{transition:none;transform:none}
}
