@font-face{font-family:"Archivo";src:url("/assets/fonts/archivo-var.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("/assets/fonts/caslon-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("/assets/fonts/caslon-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("/assets/fonts/caslon-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --paper:#eff1f0;
  --ink:#17140f;
  --red:#cf221c;
  --red-press:#a9150f;
  --on-red:#fbf7f2;
  --ink-2:color-mix(in srgb,var(--ink) 74%,var(--paper));
  --ink-3:color-mix(in srgb,var(--ink) 68%,var(--paper));
  --rule:color-mix(in srgb,var(--ink) 22%,var(--paper));
  --rule-strong:var(--ink);
  --field:#ffffff;
  --red-wash:color-mix(in srgb,var(--red) 8%,var(--paper));
  --sans:"Archivo",system-ui,sans-serif;
  --serif:"Libre Caslon Text","Noto Serif",Georgia,"Times New Roman",serif;
  --wrap:1180px;
  --gut:clamp(16px,4vw,40px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#15130f;--ink:#efece6;--red:#ff4d3f;--red-press:#ff7466;--on-red:#16120e;--field:#201d18;color-scheme:dark;
  }
}
:root[data-theme="dark"]{--paper:#15130f;--ink:#efece6;--red:#ff4d3f;--red-press:#ff7466;--on-red:#16120e;--field:#201d18;color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--ink-3) var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--serif);font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
::selection{background:var(--red);color:var(--on-red)}
a{color:inherit;text-decoration-color:var(--red);text-underline-offset:.22em;text-decoration-thickness:1px}

:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}
input,select,button{font:inherit;color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
::placeholder{color:var(--ink-3);opacity:1}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-family:var(--sans);font-variant-numeric:tabular-nums lining-nums}

/* Masthead: red owns the band */
.mast{background:var(--red);color:var(--on-red)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px}
.brand{font:800 26px/1 var(--sans);font-stretch:72%;letter-spacing:-.01em;text-decoration:none;display:flex;align-items:baseline;gap:2px}
.brand b{font-weight:800;opacity:.78}
.nav{display:flex;gap:4px;margin:0;padding:0;list-style:none}
.nav a{display:block;padding:10px 12px;font:600 15px/1 var(--sans);font-stretch:88%;text-decoration:none;border-radius:2px}

.nav a[aria-current]{box-shadow:inset 0 -2px 0 var(--on-red)}
.mast :focus-visible{outline-color:var(--on-red)}
.double{height:5px;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong)}

/* Workspace */
.work{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,64px);padding-block:clamp(28px,5vw,56px)}
h1{font:800 clamp(2.2rem,4.6vw,3.55rem)/1 var(--sans);font-stretch:70%;letter-spacing:-.015em;margin:0 0 18px;text-wrap:balance}
h1 em{font-style:normal;color:var(--red)}
.lede{margin:0 0 28px;color:var(--ink-2);max-width:42ch}
.field{margin-bottom:18px}
label,.legend{display:block;font:600 14px/1.2 var(--sans);font-stretch:90%;letter-spacing:.01em;margin-bottom:7px}
.hint{font:400 13px/1.4 var(--sans);color:var(--ink-3);margin-top:6px}
input[type=text],input[type=number],select{width:100%;height:50px;padding:0 14px;background:var(--field);border:1px solid var(--ink-3);border-radius:3px;font:500 17px/1 var(--sans);caret-color:var(--red);transition:border-color .15s}

input:focus,select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--red);background-color:var(--red-wash)}
fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}
legend{padding:0}
select:invalid{color:var(--ink-3)}
.dob{display:grid;grid-template-columns:1fr 1.6fr 1.25fr;gap:10px}
.dob span{display:block;font:500 12px/1 var(--sans);color:var(--ink-3);margin-bottom:5px}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 19px) 22px,calc(100% - 14px) 22px;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
input[type=number]{-moz-appearance:textfield}
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 26px;border:0;border-radius:3px;background:var(--red);color:var(--on-red);font:700 17px/1 var(--sans);font-stretch:88%;cursor:pointer;transition:background .15s,transform .1s;touch-action:manipulation}

.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px}
.err{display:none;margin-top:8px;font:500 14px/1.4 var(--sans);color:var(--red)}
.err.on{display:block}
.private{display:flex;gap:9px;align-items:flex-start;margin-top:22px;padding-top:16px;border-top:1px solid var(--rule);font:400 14px/1.45 var(--sans);color:var(--ink-2)}
.private svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--red)}

/* Core numbers almanac table */
.sheet{align-self:start;border-top:3px solid var(--rule-strong)}
.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0 12px;border-bottom:1px solid var(--rule-strong)}
.sheet-title{font:800 15px/1.2 var(--sans);font-stretch:80%;text-transform:uppercase;letter-spacing:.06em;color:var(--red);margin:0}
.who{margin:4px 0 0;font:400 16px/1.35 var(--serif)}
.who i{color:var(--ink-2)}
.stamp{flex:none;display:inline-flex;align-items:center;height:28px;padding:0 11px;border:1.5px solid var(--red);border-radius:999px;color:var(--red);font:700 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;}
.stamp[hidden]{display:none}
table{border-collapse:collapse;width:100%}
.core th,.core td{padding:0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}
.core thead th{font:600 12px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);padding:12px 0 10px;border-bottom:1px solid var(--rule-strong)}
.core thead th.c{text-align:center}
.abbr{display:none}
.core tbody th{padding:14px 12px 14px 12px;width:38%}
.core thead th:first-child{padding-left:12px}
.core .nm{display:block;font:700 18px/1.15 var(--sans);font-stretch:85%}
.core .what{display:block;font:400 13px/1.35 var(--sans);color:var(--ink-3);margin-top:3px}
.core td.v{text-align:center;width:22%}
.core td.go{width:18%;text-align:right}
.core tbody tr:last-child th,.core tbody tr:last-child td{border-bottom:3px double var(--rule-strong)}
.val{display:inline-flex;align-items:baseline;justify-content:center;gap:3px;min-width:52px;height:52px;align-items:center;font:700 34px/1 var(--sans);font-stretch:80%;font-variant-numeric:tabular-nums}
.val small{font:600 14px/1 var(--sans);color:var(--ink-3);margin-right:2px}
.val.master{color:var(--red);border:2px solid var(--red);border-radius:50%;width:56px;height:56px;font-size:28px}
.same{font:500 12px/1.2 var(--sans);color:var(--ink-3);display:block;text-align:center;margin-top:2px}
.core td.span{text-align:center}
.show{background:none;border:0;padding:10px 0 10px 8px;font:600 14px/1 var(--sans);font-stretch:88%;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:.25em}

.core tr.sel th,.core tr.sel td{background:var(--red-wash)}
.core tr.sel th,.core tr.sel td{border-bottom-color:var(--red)}
.core tr.sel .show svg{border:1.5px solid var(--red);border-radius:50%;width:20px;height:20px;padding:2px}
.core tr.sel .show{color:var(--ink)}
.core tr.sel .show svg{color:var(--red)}
.note{font:400 13px/1.45 var(--sans);color:var(--ink-3);margin:12px 0 0}
.note.warn,.note .warn{color:var(--red)}
.note .warn{display:block;margin-bottom:6px}

/* Working + meaning */
.band{border-top:1px solid var(--rule-strong)}
.sec-h{color:var(--red);font:800 clamp(1.7rem,3vw,2.3rem)/1.05 var(--sans);font-stretch:72%;letter-spacing:-.01em;margin:0 0 6px;text-wrap:balance}
.sec-h.red{color:var(--red)}
.sec-sub{margin:0 0 24px;color:var(--ink-2);max-width:60ch}
.workarea{padding:clamp(32px,5vw,56px) 0}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule-strong);overflow-x:auto;scrollbar-width:none;margin-bottom:0}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;background:none;border:0;padding:13px 16px 12px;font:600 15px/1 var(--sans);font-stretch:88%;color:var(--ink-2);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}

.tab[aria-selected=true]{color:var(--red);border-bottom-color:var(--red)}
.tab .num{margin-left:6px;color:inherit}
.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,64px);padding-top:26px}
.wk caption{caption-side:top;text-align:left;font:400 15px/1.45 var(--sans);color:var(--ink-2);padding-bottom:12px}
.wk th,.wk td{border-bottom:1px solid var(--rule);padding:7px 10px;font:500 16px/1.3 var(--sans);font-variant-numeric:tabular-nums}
.wk thead th{font:600 12px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--rule-strong);padding:10px}
.wk td.n,.wk th.n{text-align:right;width:24%}
.wk th{text-align:left}
.wk tbody th{font-weight:700}
.wk .part td,.wk .part th{border-bottom:1px solid var(--rule-strong);font-weight:700;background:color-mix(in srgb,var(--ink) 5%,var(--paper))}
.wk .part th{font-stretch:85%}
.wk .muted{color:var(--ink-3)}
.wk .skip td,.wk .skip th{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--red)}
.reduce{margin:18px 0 0;padding:0;list-style:none;border-top:3px double var(--rule-strong)}
.reduce li{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);font:500 16px/1.4 var(--sans);font-variant-numeric:tabular-nums}
.reduce .sys{font:700 12px/1.6 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.reduce b{color:var(--red);font-weight:800}
.reduce .muted{color:var(--ink-3);font-weight:500;font-size:14px}
.wk .ring.sm{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1.5px solid var(--red);border-radius:50%;color:var(--red);font:800 11px/1 var(--sans);vertical-align:2px;margin-left:4px}
.reduce .ring{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 4px;border:1.5px solid var(--red);border-radius:50%;color:var(--red);font-weight:800}
.print{animation:print .34s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i,0) * 32ms)}
@keyframes print{from{opacity:0;filter:blur(2px);transform:translateY(3px)}to{opacity:1;filter:none;transform:none}}
@media (prefers-reduced-motion:reduce){.print{animation:none}}

.meaning{align-self:start;border-top:3px solid var(--rule-strong);padding-top:16px}
.big{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.big .numeral{font:800 88px/.85 var(--sans);font-stretch:66%;color:var(--red);font-variant-numeric:tabular-nums}
.big h3{margin:0;font:800 24px/1.1 var(--sans);font-stretch:78%}
.big .kw{margin:4px 0 0;font:500 14px/1.4 var(--sans);color:var(--ink-2)}
.meaning p{margin:0 0 14px}
.meaning .src{font:400 13px/1.45 var(--sans);color:var(--ink-3);border-top:1px solid var(--rule);padding-top:12px}

/* Systems chart */
.systems{padding:clamp(32px,5vw,56px) 0}
.sys-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,64px)}
.sys-grid p{margin:0 0 14px;max-width:62ch}
.sys-grid p strong{font-family:var(--sans);font-weight:700}
.chart{border-top:3px solid var(--rule-strong)}
.chart th,.chart td{border-bottom:1px solid var(--rule);padding:8px 12px;text-align:left;font:500 16px/1.25 var(--sans);font-variant-numeric:tabular-nums}
.chart thead th{font:600 12px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--rule-strong);padding:12px}
.chart tbody th{font:800 24px/1 var(--sans);font-stretch:75%;color:var(--red);width:72px}
.chart td{letter-spacing:.18em}
.chart tr:last-child th,.chart tr:last-child td{border-bottom:3px double var(--rule-strong)}
.chart .none{color:var(--ink-3);letter-spacing:0;font-size:14px}
.chart-wrap{overflow-x:auto}

/* Meanings index */
.index{padding:clamp(32px,5vw,56px) 0 clamp(40px,6vw,72px)}
.idx{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(28px,5vw,64px);border-top:3px solid var(--rule-strong)}
.idx li{break-inside:avoid}
.idx a{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.idx .n{font:800 34px/1 var(--sans);font-stretch:72%;font-variant-numeric:tabular-nums}
.idx .n.m{color:var(--red)}
.idx .t{font:700 16px/1.2 var(--sans);font-stretch:88%}
.idx .t span{display:block;font:400 13px/1.35 var(--sans);color:var(--ink-3);margin-top:2px}
.idx svg{width:16px;height:16px;color:var(--red);transition:transform .2s cubic-bezier(.16,1,.3,1)}



/* Footer */
.foot{border-top:1px solid var(--rule-strong);padding:26px 0 40px;font:400 14px/1.6 var(--sans);color:var(--ink-2)}
.foot .wrap{display:grid;grid-template-columns:1fr auto;gap:12px 32px}
.foot p{margin:0}
.foot .brand{color:var(--red);font-size:22px}
.foot nav{display:flex;gap:18px;flex-wrap:wrap;align-items:center}

@media (max-width:900px){
  .work,.split,.sys-grid{grid-template-columns:1fr}
  .idx{columns:1}
  .foot .wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .mast .wrap{flex-direction:column;align-items:stretch;gap:0;padding-top:12px}
  .brand{padding:4px 0 6px}
  .nav{overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gut) * -1);padding:0 calc(var(--gut) - 12px)}
  .nav::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap;padding:12px}
  input[type=text],input[type=number],select{font-size:16px}
  .btn{width:100%}
  .core tbody th{width:auto;padding-right:6px}
  .core .what{display:none}
  .core td.go{width:auto}
  .val{font-size:28px;min-width:40px;height:46px}
  .val.master{width:48px;height:48px;font-size:24px}
  .show span:not(.sr){display:none}
  .wide-only{display:none}
  .tabs{flex-wrap:wrap;overflow:visible}
  .tab{padding:12px 12px 11px}
  .core .full{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .abbr{display:inline}
  .reduce li{grid-template-columns:1fr;gap:2px}
}

/* Verdict: does the name suit the birth numbers */
.verdict{margin-top:22px;border-top:3px solid var(--rule-strong)}
.verdict h3{font:800 15px/1.2 var(--sans);font-stretch:80%;text-transform:uppercase;letter-spacing:.06em;color:var(--red);margin:14px 0 4px}
.verdict .vsub{margin:0 0 6px;font:400 14px/1.45 var(--sans);color:var(--ink-2)}
.vrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--rule)}
.vrow:last-of-type{border-bottom:3px double var(--rule-strong)}
.vpair{font:700 17px/1.25 var(--sans);font-stretch:85%;font-variant-numeric:tabular-nums}
.vpair .muted{font-weight:500;color:var(--ink-2)}
.vwhy{grid-column:1/-1;font:400 13px/1.45 var(--sans);color:var(--ink-2);margin:0}
.lvl{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;font:700 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1.5px solid currentColor}
.lvl.harmony{background:var(--red);border-color:var(--red);color:var(--on-red)}
.lvl.neutral{color:var(--ink-2)}
.lvl.not{color:var(--red-press)}
.src-line{font:400 12.5px/1.45 var(--sans);color:var(--ink-3);margin:10px 0 0}

/* Compare spellings */
.compare{padding-block:clamp(32px,5vw,56px)}
.cmp-wrap{overflow-x:auto;border-top:3px solid var(--rule-strong)}
.cmp{min-width:640px}
.cmp th,.cmp td{border-bottom:1px solid var(--rule);padding:10px 10px;text-align:left;vertical-align:middle;font:500 16px/1.3 var(--sans);font-variant-numeric:tabular-nums}
.cmp thead th{font:600 12px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--rule-strong)}
.cmp td.n{text-align:center;width:13%}
.cmp td.lv{width:18%}
.cmp input{height:44px;font-size:16px}
.cmp tr.base td:first-child{font:700 17px/1.2 var(--sans)}
.cmp tbody tr:last-child td{border-bottom:3px double var(--rule-strong)}
.cmp .empty{color:var(--ink-3);font-size:14px}
.cmp .val{font-size:26px;height:auto;min-width:0}
.cmp .val.master{width:44px;height:44px;font-size:21px}
.cmp-note{font:400 14px/1.5 var(--sans);color:var(--ink-2);margin:12px 0 0;max-width:72ch}

/* Inner pages */
.crumbs{font:500 14px/1.4 var(--sans);color:var(--ink-2);padding-top:20px;margin:0}
.crumbs a{color:inherit}
.page{padding-block:clamp(20px,4vw,40px) clamp(40px,6vw,72px)}
.page-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 28px;align-items:end;border-bottom:3px solid var(--rule-strong);padding-bottom:22px;margin-bottom:28px}
.page-head .numeral{font:800 clamp(96px,16vw,168px)/.8 var(--sans);font-stretch:62%;color:var(--red);font-variant-numeric:tabular-nums}
.page-head h1{margin:0 0 8px}
.page-head .kw{margin:0;font:500 16px/1.4 var(--sans);color:var(--ink-2)}
.cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,64px)}
.prose{max-width:66ch}
.prose h2{font:800 clamp(1.4rem,2.4vw,1.8rem)/1.1 var(--sans);font-stretch:74%;color:var(--red);margin:34px 0 10px}
.prose h2:first-child{margin-top:0}
.prose p{margin:0 0 14px}
.prose ul{margin:0 0 14px;padding-left:1.2em}
.prose li{margin-bottom:6px}
.prose li::marker{color:var(--red)}
.facts{align-self:start;border-top:3px solid var(--rule-strong)}
.facts table th,.facts table td{border-bottom:1px solid var(--rule);padding:10px 0;text-align:left;vertical-align:top;font:500 15px/1.4 var(--sans)}
.facts table th{font:600 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);width:46%;padding-right:12px}
.facts table td{font-variant-numeric:tabular-nums}
.facts h2{font:800 15px/1.2 var(--sans);font-stretch:80%;text-transform:uppercase;letter-spacing:.06em;color:var(--red);margin:22px 0 6px}
.facts .lvl{margin:0 4px 4px 0}
.cta{margin-top:26px;padding-top:20px;border-top:1px solid var(--rule)}
.pn{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--rule-strong);margin-top:40px;padding-top:16px;font:600 15px/1.3 var(--sans)}
.pn a{text-decoration:none}

@media (max-width:900px){.cols{grid-template-columns:1fr}}
@media (max-width:640px){.page-head{grid-template-columns:1fr}.vrow{grid-template-columns:1fr}}
.core .nm .alt{font-weight:600;color:var(--ink-2)}
.foot-note{margin:10px 0 0;max-width:62ch}
.foot-note + .foot-note{margin-top:8px}
.mail{user-select:all;font-variant-numeric:tabular-nums}
a.btn{text-decoration:none}
.facts .vsub{margin:0 0 4px}
.vrow .lvl{justify-self:start}

/* Phase 2 */
.share-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:14px}
.share-note{font:400 12.5px/1.4 var(--sans);color:var(--ink-3);flex-basis:100%}
.link-btn{background:none;border:0;padding:8px 0;font:600 14px/1 var(--sans);font-stretch:88%;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:.25em}

.sub-h{font:800 clamp(1.25rem,2.2vw,1.55rem)/1.1 var(--sans);font-stretch:74%;color:var(--red);margin:40px 0 6px}
.suggest{border-top:1px solid var(--rule-strong);margin-top:32px}
.sg-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:8px}
.sg-controls>div{flex:1 1 280px;max-width:420px}
.sg{list-style:none;margin:14px 0 0;padding:0;border-top:3px solid var(--rule-strong)}
.sg:empty{border-top:0;margin:0}
.sg li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:11px 0;border-bottom:1px solid var(--rule)}
.sg-name{font:700 18px/1.2 var(--sans);font-stretch:85%;min-width:12ch;flex:1 1 200px}
.sg-num{font:600 15px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink-2);min-width:5ch}
.sg .link-btn{margin-left:auto}
.assoc{margin:12px 0 4px}
.assoc caption{caption-side:top;text-align:left;font:800 13px/1.2 var(--sans);font-stretch:80%;text-transform:uppercase;letter-spacing:.06em;color:var(--red);padding:12px 0 6px;border-top:1px solid var(--rule)}
.assoc th,.assoc td{border-bottom:1px solid var(--rule);padding:7px 0;text-align:left;font:500 14px/1.4 var(--sans);vertical-align:top}
.assoc th{font:600 12px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);width:34%}
textarea{width:100%;min-height:150px;padding:12px 14px;background:var(--field);border:1px solid var(--ink-3);border-radius:3px;font:500 16px/1.5 var(--sans);caret-color:var(--red);resize:vertical}

textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
textarea[aria-invalid=true]{border-color:var(--red);background-color:var(--red-wash)}
.tool-table{min-width:0}
.tool-table td.nm{font:700 16px/1.3 var(--sans)}
.wk-line{display:block;font:400 12.5px/1.4 var(--sans);color:var(--ink-3);margin-top:3px;letter-spacing:0}
.page-head.plain{grid-template-columns:1fr}
.cmp-index{min-width:520px}
.cmp-index th a{font:800 22px/1 var(--sans);font-stretch:75%;color:var(--red);text-decoration:none}
.cmp-index td.n{text-align:center}
.page-head .kw .lvl{vertical-align:1px;margin-left:4px}
.prose .note{margin:0 0 14px}
@media (max-width:640px){
  .tool-table thead{display:none}
  .tool-table tr{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
  .tool-table td{border:0;padding:0}
  .tool-table td.nm{grid-column:1/-1}
  .tool-table td.lv{grid-column:auto}
  .tool-table td.n{text-align:left}
  .nav{flex-wrap:wrap}
}
@media print{
  .mast,.double,.foot,form,.private,.no-print,.compare,.systems,.index,.tabs,.btn,.show{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .work,.split{grid-template-columns:1fr!important;padding:0}
  .band{border:0}
  .print{animation:none!important}
  a{text-decoration:none;color:inherit}
}
.foot nav{row-gap:6px}
.foot .wrap{grid-template-columns:1fr}
.foot nav{justify-content:flex-start;column-gap:18px}
.tool-table td.nm{min-width:9ch}
.tool-table .lvl,.cmp .lvl{font-size:11px;letter-spacing:.04em;padding:0 8px;height:24px}
.tool-table td.lv{white-space:nowrap}
.tool-table th,.tool-table td{padding-left:8px;padding-right:8px}
@media (max-width:640px){
  .tool-table tbody tr:last-child td,.tool-table td{border-bottom:0!important}
  .tool-table tbody tr:last-child{border-bottom:3px double var(--rule-strong)}
}

/* ---- Review fixes ---- */
@media (hover:hover) and (pointer:fine){
  a:hover{text-decoration-thickness:2px}
  .nav a:hover{background:color-mix(in srgb,var(--on-red) 14%,transparent)}
  input:hover,select:hover,textarea:hover{border-color:var(--ink)}
  .btn:hover{background:var(--red-press)}
  .show:hover,.link-btn:hover,.pn a:hover,.idx a:hover .t{color:var(--red)}
  .tab:hover{color:var(--ink)}
  .idx a:hover svg{transform:translateX(3px)}
}
button,a,select,label,[role=tab]{touch-action:manipulation}
.btn,.tab,.show,.link-btn,.nav a{-webkit-user-select:none;user-select:none}
.show,.tab,.link-btn,.nav a{transition:opacity 100ms ease-out,background-color 100ms ease-out}
.show:active,.tab:active,.link-btn:active{opacity:.6}
.nav a:active{background:color-mix(in srgb,var(--on-red) 18%,transparent)}
.show{min-width:44px;min-height:44px;justify-content:flex-end;padding:0 0 0 8px}
.link-btn{min-height:44px;padding:0 4px;display:inline-flex;align-items:center}
.share-bar{gap:0 12px}
.tab{min-height:44px}
.foot nav a,.pn a{display:inline-flex;align-items:center;min-height:44px}
.foot nav{row-gap:0}
.crumbs a{display:inline-block;padding-block:12px;margin-block:-12px}
.cmp-index th a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.cmp-wrap,.chart-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
/* long words never push the page wide */
.work>*,.sheet,.split>*,.cols>*{min-width:0}
.who,.wk .part th,.wk tbody th,.reduce li>span:last-child,.tool-table td.nm,.wk-line,.cmp td,.sg-name,.vpair{overflow-wrap:anywhere}
.print{animation-delay:calc(min(var(--i,0),12) * 32ms)}
.cmp tbody tr:last-child :is(td,th){border-bottom:3px double var(--rule-strong)}
.cmp-index .muted{color:var(--ink-2)}
.sg-num .val{font-size:22px;height:auto;min-width:0}
.sg-num .val.master{width:38px;height:38px;font-size:18px}
.m-only{display:none}
@media (min-width:641px){.tool-table td.nm{min-width:14ch}}
/* phone: nav is one scrolling row with a fade cue */
@media (max-width:640px){
  .nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;margin:0 calc(var(--gut) * -1);padding:0 calc(var(--gut) - 12px);
    -webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}
  .nav::-webkit-scrollbar{display:none}
  .nav a{padding:14px 12px;white-space:nowrap}
  /* compare + tool tables reflow into labelled cards */
  .cmp:not(.cmp-index):not(.compat-table):not(.years){min-width:0}
  .cmp:not(.cmp-index):not(.compat-table):not(.years) thead{display:none}
  .cmp:not(.cmp-index):not(.compat-table):not(.years) tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
  .cmp:not(.cmp-index):not(.compat-table):not(.years) td{border:0!important;padding:0;text-align:left!important;width:auto!important}
  .cmp:not(.cmp-index):not(.compat-table):not(.years) td:first-child{grid-column:1/-1}
  .cmp:not(.cmp-index):not(.compat-table):not(.years) td.empty{grid-column:1/-1}
  .cmp:not(.cmp-index):not(.compat-table):not(.years) tbody tr:last-child{border-bottom:3px double var(--rule-strong)}
  .cmp td[data-label]::before{content:attr(data-label);display:block;font:600 11px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);margin-bottom:4px}
  .cmp td.lv{grid-column:auto}
  .m-only{display:inline}
  .cmp .lvl{white-space:normal;height:auto;min-height:26px;padding:4px 8px;line-height:1.2}
  .cmp-index th,.cmp-index td{white-space:normal}
}
.cmp-index thead th{white-space:normal}
@media print{
  h1,h2,h3,.sheet-head{break-after:avoid;page-break-after:avoid}
  tr,.vrow,li{break-inside:avoid}
  .sheet::before{content:"numerologywise.com";display:block;font:800 14pt/1 var(--sans);color:var(--red);border-bottom:2px solid var(--red);padding-bottom:6pt;margin-bottom:10pt}
}
@media (max-width:640px){
  .cmp .lvl{display:inline-block;text-align:left;border-radius:14px}
  .cmp td[data-label="Number"]{grid-column:1/-1}
}
.page-head.plain{border-bottom:0;padding-bottom:0;margin-bottom:12px}
@media (max-width:640px){
  .cmp .m-only{display:block;font-size:10px;letter-spacing:.06em;margin-bottom:2px}
  .cmp .lvl{border-radius:10px;padding:5px 9px}
  .cmp-index{min-width:0}
  .cmp-index th,.cmp-index td{padding:9px 5px;font-size:14px}
  .cmp-index thead th{font-size:10px;letter-spacing:.05em}
  .cmp-index .lvl{font-size:10px;padding:0 6px;height:22px}
  .cmp-index th a{min-width:36px}
}
@media (max-width:640px){
  .cmp-index .lvl{display:inline-flex;white-space:nowrap;border-radius:999px}
  .cmp-index td:last-child{white-space:nowrap;padding-right:0}
  .cmp-index th:first-child,.cmp-index td.n{padding-left:0;padding-right:2px}
}

/* 12px type floor */
.cmp td[data-label]::before{font-size:12px}
.tool-table .lvl,.cmp .lvl{font-size:12px}
@media (max-width:640px){
  .cmp .m-only{font-size:12px}
  .cmp-index thead th{font-size:12px;letter-spacing:.03em}
  .cmp-index .lvl{font-size:12px;padding:0 7px}
}

/* Phase 3 */
.pair{display:grid;gap:0 28px}
.person{min-width:0}
.sub-label{font:800 14px/1.2 var(--sans);font-stretch:80%;text-transform:uppercase;letter-spacing:.06em;color:var(--red);margin:22px 0 10px}
.person .sub-label{margin-top:0}
.opt{font-weight:400;color:var(--ink-3)}
.compat-table th[scope=row]{font:700 16px/1.2 var(--sans);font-stretch:85%;text-align:left;padding:12px 10px 12px 0;vertical-align:top}
.compat-table td.lv .wk-line{margin-top:6px}
.compat-table .val{font-size:30px}
.check{display:flex;gap:10px;align-items:flex-start;font:500 15px/1.4 var(--sans);margin:0 0 20px;cursor:pointer;min-height:44px}
.check input{width:20px;height:20px;margin-top:1px;accent-color:var(--red);flex:none}
.big{display:flex;align-items:center;gap:16px;margin:16px 0 4px}
.big .numeral{font:800 88px/.85 var(--sans);font-stretch:66%;color:var(--red);font-variant-numeric:tabular-nums}
.big h3{margin:0;font:800 24px/1.1 var(--sans);font-stretch:78%}
.big .kw{margin:4px 0 0;font:400 15px/1.45 var(--serif);color:var(--ink-2)}
.years{min-width:0}
.years tr.sel th,.years tr.sel td{background:var(--red-wash)}
.years th{font:700 16px/1.2 var(--sans);text-align:left;padding:10px}
.months{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));border-top:3px solid var(--rule-strong)}
.months li{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;align-items:baseline;padding:10px 8px;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule)}
.months li.sel{background:var(--red-wash)}
.months .mo{font:600 12px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.months .val{grid-row:span 2;font-size:26px;height:auto;min-width:0;justify-self:end}
.months .th{font:500 13px/1.3 var(--sans);grid-column:1}
.ls-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:3px solid var(--rule-strong);border-left:1px solid var(--rule-strong);margin:16px 0 4px;max-width:420px}
.ls-cell{position:relative;aspect-ratio:1;border-right:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;max-width:100%}
.ls-cell:nth-child(3n){border-right-width:1px}
.ls-pos{position:absolute;top:6px;left:8px;font:600 12px/1 var(--sans);color:var(--ink-3)}
.ls-val{font:800 clamp(26px,6vw,40px)/1 var(--sans);font-stretch:70%;color:var(--red);letter-spacing:.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:center;padding:0 6px}
.ls-cell.empty{background:color-mix(in srgb,var(--ink) 4%,var(--paper))}
.ls-facts{border-top:0}
.ls-list{list-style:none;margin:0;padding:0}
.ls-list li{padding:8px 0;border-bottom:1px solid var(--rule);font:400 15px/1.45 var(--sans)}
.ls-list b{font-weight:800;margin-right:4px}
.tools-idx{columns:2}
.tools-idx a{grid-template-columns:1fr auto}
@media (max-width:900px){.tools-idx{columns:1}}


.compat-table td,.years td,.compat-table th,.years th{border-bottom:1px solid var(--rule)}
@media (max-width:640px){.compat-table .val{font-size:24px}.compat-table th,.compat-table td{padding:10px 6px}}
.compat-table{min-width:0;width:100%}
.compat-table td.lv{min-width:0}

.person + .person{border-top:1px solid var(--rule);padding-top:18px}

/* Phase 3 review fixes */
@media (max-width:400px){.compat-table .lvl{white-space:normal!important;height:auto;min-height:24px;padding:4px 8px;line-height:1.2;border-radius:14px}}
.compat-table thead th{font-size:12px}
.cmp .lvl{border-radius:14px}
.stamp.now{height:20px;padding:0 7px;font-size:12px;letter-spacing:.06em;vertical-align:2px;margin-left:6px}
.years th .stamp.now{white-space:nowrap}
/* months: horizontal hairlines only, aligned labels, double closing rule */
.months{border-top:3px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);padding-bottom:0}
.months li{border-right:0;align-items:start;grid-template-rows:20px auto;border-bottom:1px solid var(--rule)}
.months li .mo{align-self:center}
/* Lo Shu */
.ls-cell.empty{background:none}
.ls-cell.empty .ls-pos{color:var(--ink-3)}
.ls-val small{font-size:.55em;color:var(--red);margin-left:2px}
.ls-layout{display:grid;gap:8px 28px;border-bottom:3px double var(--rule-strong);padding-bottom:12px}
@media (min-width:1000px){.ls-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ls-grid{max-width:none}}
.ls-rep{margin:10px 0 0;font:500 15px/1.4 var(--sans)}
.ls-rep .sub-label{display:inline;margin:0 8px 0 0}
.ls-list li{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:baseline}
.ls-list li.none{display:block}
.ls-n{font:800 28px/1 var(--sans);font-stretch:72%;color:var(--red);font-variant-numeric:tabular-nums}
.src-line a{display:inline-block;padding-block:12px;margin-block:-12px}
.idx a{touch-action:manipulation}
.idx a:active .t{color:var(--red)}
.check{-webkit-user-select:none;user-select:none}
@media (max-width:640px){.nav a{min-height:44px;display:flex;align-items:center}}

/* PDF capture: an off-screen copy in the light theme, without motion */
.pdf-doc{position:absolute;left:-10000px;top:0;width:760px;padding:0;background:#fff;color-scheme:light;
  --paper:#ffffff;--ink:#17140f;--red:#cf221c;--red-press:#a9150f;--on-red:#fbf7f2;--field:#ffffff;
  --ink-2:color-mix(in srgb,#17140f 74%,#fff);--ink-3:color-mix(in srgb,#17140f 62%,#fff);--rule:color-mix(in srgb,#17140f 22%,#fff);
  --rule-strong:#17140f;--red-wash:color-mix(in srgb,#cf221c 8%,#fff);color:var(--ink);font:400 17px/1.6 var(--serif)}
.pdf-doc *{animation:none!important;transition:none!important}
.pdf-doc .wrap{max-width:none;padding:0}
.pdf-doc .pdf-part + .pdf-part{margin-top:28px}
.pdf-doc .workarea{padding:0;border:0}
.pdf-doc .sec-h{font-size:28px}
.pdf-doc .sheet{border-top:3px solid #17140f}
.pdf-doc .split,.pdf-doc .ls-layout,.pdf-doc .work,.pdf-doc .cols{grid-template-columns:1fr!important}
.pdf-doc .meaning{margin-top:20px}
.pdf-doc .wk th,.pdf-doc .wk td{line-height:21px}
.pdf-doc .ls-grid{max-width:420px}
.pdf-doc .count-grid{max-width:260px}
.pdf-doc .pdf-part:last-child{padding-bottom:8px}

/* ---------- Full chart, personal days, Kua ---------- */
.chart-table,.cycles{min-width:0}
.chart-table th[scope=row],.cycles th[scope=row]{font:700 16px/1.2 var(--sans);width:26%;vertical-align:top;padding-top:16px}
.chart-table td,.cycles td{vertical-align:top}
.chart-table td.n,.cycles td.n{width:15%;padding-top:8px}
.chart-table .val,.cycles .val{font-size:30px;height:44px;min-width:0}
.chart-table .wk-line,.cycles .wk-line{margin:0 0 4px;font-size:13px;color:var(--ink-2)}
.rd{display:block;font:400 15px/1.45 var(--serif);color:var(--ink)}
.rd i{color:var(--ink-2)}
.rd b{font:800 15px/1 var(--sans);color:var(--red);margin-right:4px}
.ring.sm{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border:2px solid var(--red);border-radius:50%;color:var(--red);font-size:22px}
.cycles td:nth-child(2){font:500 15px/1.35 var(--sans)}
.cycles .yrs{display:block;font:400 13px/1.3 var(--sans);font-style:normal;color:var(--ink-3)}
.cycles tr.sel th,.cycles tr.sel td{background:var(--red-wash)}
.count-grid{max-width:260px}
.count-grid .ls-val{font-size:30px}
.count-grid .ls-cell.empty .ls-val{color:var(--ink-3)}
.count-grid .ls-cell.hot{background:var(--red-wash)}
.next-link{margin:14px 0 0}
.next-link a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:700 15px/1.3 var(--sans);color:var(--red);text-decoration:underline;text-underline-offset:3px}
.next-link svg{width:18px;height:18px;flex:none}
.kua{margin-top:8px}
.kua-pair{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;border-top:3px solid var(--rule-strong)}
.kua-card{padding:12px 0 4px}
.kua-who{margin:0;font:600 12px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.kua-card .big{margin:8px 0 6px}
.kua-card .big .numeral{font-size:64px}
.kua-dirs{list-style:none;margin:8px 0 0;padding:0}
.kua-dirs li{display:grid;grid-template-columns:44px 1fr;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--rule);font:500 14px/1.35 var(--sans)}
.kua-dirs i{color:var(--ink-2);font-style:normal}
.kd{font:800 18px/1 var(--sans);font-stretch:80%;color:var(--red)}
@media (max-width:640px){
  .kua-pair{grid-template-columns:1fr}
  .kua-card + .kua-card{border-top:1px solid var(--rule-strong);margin-top:8px}
  .chart-table thead,.cycles thead{display:none}
  .chart-table tr,.cycles tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
  .chart-table :is(th,td),.cycles :is(th,td){border:0!important;padding:0!important;width:auto!important;background:none}
  .chart-table td:last-child,.cycles td:last-child{grid-column:1/-1}
  .cycles td:nth-child(2){grid-column:1;grid-row:2}
  .cycles td.n{grid-column:2;grid-row:1/span 2;align-self:center}
  .chart-table td.n{align-self:start}
  .cycles tr.sel{background:var(--red-wash);padding-left:8px;padding-right:8px}
  .chart-table tbody tr:last-child,.cycles tbody tr:last-child{border-bottom:3px double var(--rule-strong)}
}

/* ---------- PDF sections: inputs, results, link, explanations ---------- */
.pdf-doc .pdf-h{font:800 13px/1.2 var(--sans);font-stretch:80%;text-transform:uppercase;letter-spacing:.08em;color:var(--red);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--rule-strong)}
.pdf-doc .pdf-in{width:100%;border-collapse:collapse}
.pdf-doc .pdf-in th,.pdf-doc .pdf-in td{text-align:left;vertical-align:top;padding:7px 10px 7px 0;border-bottom:1px solid var(--rule);font:500 15px/21px var(--sans)}
.pdf-doc .pdf-in th{width:34%;font-weight:700;color:var(--ink-2)}
.pdf-doc .pdf-url{margin:0 0 6px;font:600 14px/20px var(--sans);overflow-wrap:anywhere;word-break:break-all}
.pdf-doc .pdf-url a{color:var(--red);text-decoration:underline}
.pdf-doc .pdf-results .sheet{margin:0}
.pdf-doc .notes,.pdf-doc .prose{max-width:none}
.pdf-doc .prose h2{font-size:22px;margin-top:0}
.pdf-doc .cmp-wrap{overflow:visible}
.pdf-doc .cmp{min-width:0}

/* ---------- Lucky dates, lucky colour, variants, essence ---------- */
.rules{margin:14px 0 6px;border-top:3px solid var(--rule-strong)}
.rules>div{display:grid;grid-template-columns:150px 1fr;gap:4px 16px;padding:10px 0;border-bottom:1px solid var(--rule)}
.rules dt{font:600 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);padding-top:2px}
.rules dd{margin:0;font:500 15px/1.45 var(--sans)}
.plan{grid-template-columns:2fr 1fr!important}
.opt-block{margin:4px 0 16px;border-top:1px solid var(--rule);padding-top:10px}
.opt-block summary{cursor:pointer;font:700 15px/1.3 var(--sans);min-height:44px;display:flex;align-items:center;gap:6px}
.opt-block summary::marker{color:var(--red)}
.check-card{border:2px solid var(--red);padding:12px 16px 10px;margin:14px 0 6px;background:var(--red-wash)}
.check-card .big{margin:6px 0}
.check-card .big .numeral{font-size:64px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);border-top:3px solid var(--rule-strong);border-left:1px solid var(--rule)}
.cal-h{font:600 12px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);padding:8px 6px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule-strong)}
.cal-d{position:relative;min-height:52px;padding:6px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;justify-content:space-between}
.cal-d .cd{font:700 18px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink-3)}
.cal-d.own{background:var(--red)}
.cal-d.own .cd{color:#fff}
.cal-d.inter{background:var(--red-wash)}
.cal-d.inter .cd{color:var(--red)}
.cal-d .cm{font:800 12px/1 var(--sans);letter-spacing:.08em;color:var(--red);align-self:flex-end}
.cal-d.own .cm{color:#fff}
.cal-d.blank{background:transparent}
.cal-key{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;padding:0;font:500 13px/1.3 var(--sans);color:var(--ink-2)}
.cal-key li{display:flex;align-items:center;gap:6px}
.cal-key .k{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font:800 12px/1 var(--sans);color:var(--red);border:1px solid var(--rule)}
.cal-key .k.own{background:var(--red);border-color:var(--red)}
.cal-key .k.inter{background:var(--red-wash)}
.best .ls-n{min-width:38px;display:inline-block}
.best li{display:flex;gap:10px;align-items:baseline}
.variants{border-top:1px solid var(--rule-strong);margin-top:22px}
.v-controls{display:flex;flex-wrap:wrap;gap:10px 16px;margin:6px 0 0}
.v-controls label{display:flex;flex-direction:column;gap:4px;flex:1 1 220px;font:600 12px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.v-controls select{text-transform:none;letter-spacing:0}
.essence th .yrs,.essence td .yrs{display:block;font:400 12px/1.3 var(--sans);font-style:normal;color:var(--ink-3)}
.essence .tl{font:800 18px/1 var(--sans);color:var(--red);margin-right:2px}
.essence td{font:500 15px/1.3 var(--sans)}
.letters-table th[scope=row]{padding-top:12px}
@media (max-width:640px){
  .rules>div{grid-template-columns:1fr}
  .cal-d{min-height:44px;padding:4px}
  .cal-d .cd{font-size:16px}
  .cal-h{padding:6px 3px;text-align:center}
  .essence tr{grid-template-columns:repeat(3,1fr) auto!important}
  .essence th[scope=row]{grid-column:1/-1}
  .essence td:last-child{grid-column:auto!important}
  .essence td.n{grid-row:auto!important;grid-column:4!important}
  .essence td:nth-child(2){grid-column:1!important;grid-row:2!important}
}
.pdf-doc .cal-d{min-height:46px}
.pdf-doc .v-controls{display:none}

/* ---------- content pages ---------- */
.seq-links{font:600 15px/2 var(--sans);word-spacing:2px}
.seq-idx .n,.bday-idx .n{font-size:28px}
.yr-table{min-width:0;margin:10px 0}
.yr-table th[scope=row]{font:600 15px/1.2 var(--sans)}
.lp-ex li{font:500 15px/1.5 var(--sans);margin-bottom:6px}
.ck-h{margin:4px 0 6px;font:800 22px/1.15 var(--sans);font-stretch:80%}
@media (max-width:640px){.yr-table tr{display:table-row!important}.yr-table thead{display:table-header-group!important}}
.prose a svg,.facts a svg,.cmp-note a svg,.wk-line a svg{width:16px;height:16px;vertical-align:-3px;margin-left:2px}
.prose .btn svg{width:18px;height:18px}

/* ---------- enrichment: FAQ, steps, data tables ---------- */
.faq-list{margin:0;border-top:3px solid var(--rule-strong)}
.faq-q{padding:14px 0;border-bottom:1px solid var(--rule)}
.faq-q dt{font:700 17px/1.3 var(--sans);margin-bottom:6px}
.faq-q dd{margin:0;font:400 16px/1.55 var(--serif);color:var(--ink)}
.steps{margin:0;padding-left:1.4em}
.steps li{margin:0 0 10px;font:400 16px/1.55 var(--serif)}
.steps li strong{font-family:var(--sans)}
.steps .lvl{vertical-align:1px}
.extra .prose,.faq .prose{max-width:760px}
.lp-dist{min-width:0;max-width:520px}
.lp-dist td,.lp-dist th{padding:7px 10px}
.lp-dist tr.sel th,.lp-dist tr.sel td{background:var(--red-wash)}
.bar{display:block;height:10px;width:var(--w);background:var(--red);min-width:2px}
.pm-grid{min-width:640px}
.pm-grid th,.pm-grid td{padding:7px 6px;font-size:15px;text-align:center}
.pm-grid th[scope=row]{text-align:left;white-space:nowrap}
.pm-grid .py{color:var(--red);font-weight:700}
.py-detail>div{grid-template-columns:1fr}
.py-detail dt{text-transform:none;letter-spacing:0;font:700 15px/1.3 var(--sans);color:var(--ink)}
.py-detail b{font-weight:700}
.assoc-table{min-width:720px}
.assoc-table td,.assoc-table th{font-size:14px;vertical-align:top}
.prose.wide{max-width:none;margin-top:28px}
@media (max-width:640px){
  .pm-grid,.assoc-table{min-width:640px}
  .pm-grid thead,.assoc-table thead{display:table-header-group!important}
  .pm-grid tr,.assoc-table tr{display:table-row!important}
  .pm-grid td,.pm-grid th,.assoc-table td,.assoc-table th{display:table-cell!important;padding:6px 5px!important;border-bottom:1px solid var(--rule)!important}
  .lp-dist tr{display:table-row!important}.lp-dist td,.lp-dist th{display:table-cell!important;padding:6px 8px!important}
}
.pm-grid{min-width:0;width:100%}
.pm-grid th,.pm-grid td{padding:6px 3px;font-size:14px}
.pm-grid thead th{font-size:11px;letter-spacing:.04em}
@media (max-width:640px){.pm-grid{min-width:560px}}
.live-note{margin:10px 0 0;font:500 13px/1.3 var(--sans);color:var(--ink-3)}
.planes-table td.n .yrs{display:block;font:400 12px/1.3 var(--sans);font-style:normal;color:var(--ink-3)}
.planes-table tr.sel th,.planes-table tr.sel td{background:var(--red-wash)}

/* ---------- name correction, daily, single-number pages ---------- */
.corr-table{min-width:0}
.corr-table mark{background:var(--red-wash);color:var(--red);font-weight:800;padding:0 1px;border-bottom:2px solid var(--red)}
.corr-table td.nm b{font:700 18px/1.25 var(--sans)}
.day-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.day-nav input[type=date]{width:auto;flex:1 1 180px;max-width:240px}
.daily-list{list-style:none;margin:0;padding:0;border-top:3px solid var(--rule-strong)}
.dc{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--rule)}
.dc .dn{font:800 44px/.9 var(--sans);font-stretch:70%;color:var(--ink-3);font-variant-numeric:tabular-nums}
.dc.own .dn{color:var(--red)}
.dc.inter .dn{color:var(--red);opacity:.7}
.dc.own{background:var(--red-wash)}
.dc h3{margin:0;font:800 18px/1.2 var(--sans);font-stretch:85%}
.dc h3 .pl{font-weight:500;color:var(--ink-2)}
.dc .dh{margin:3px 0 2px;font:400 15px/1.4 var(--serif)}
.week-grid td.wk{font-size:16px;color:var(--ink-3)}
.week-grid td.wk.own{color:var(--red);font-weight:800}
.week-grid td.wk.inter{color:var(--red)}
.focus-nums{display:flex;flex-wrap:wrap;gap:12px 32px;margin:14px 0 6px;border-top:3px solid var(--rule-strong);padding-top:12px}
.fn .numeral{display:block;font:800 72px/.9 var(--sans);font-stretch:66%;color:var(--red);font-variant-numeric:tabular-nums;margin:4px 0}
.fn .kw{margin:0;font:500 14px/1.45 var(--sans);color:var(--ink-2)}
.fn .kw .lvl{margin-top:4px}
.focus-links{columns:2;column-gap:32px}
.focus-links li{break-inside:avoid;margin-bottom:6px}
@media (max-width:640px){.focus-links{columns:1}.dc{grid-template-columns:40px 1fr}.dc .dn{font-size:36px}}

/* ---------- batch: pairs, totals, personal years ---------- */
.pair-grid td.pr a{display:block;text-decoration:none;font-size:16px;padding:4px 0;color:var(--ink-3)}
.pair-grid td.pr.harmony a{color:var(--red);font-weight:800}
.pair-grid td.pr.neutral a{color:var(--red)}
.pair-grid td.pr.harmony{background:var(--red-wash)}
.py-grid td.hit{background:var(--red-wash);color:var(--red);font-weight:800}
.tot-table td:last-child{font-size:14px;color:var(--ink-2)}

/* ---------- batch 2 ---------- */
.mini-grid{max-width:180px;margin:10px 0 14px}
.mini-grid .ls-val{font-size:20px}
.mini-grid .ls-pos{font-size:11px;top:3px;left:5px}
.month-table{min-width:0}
.month-table td{font-size:14px}
.letter-table{min-width:0;max-width:640px}
.ud-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:4px;margin:8px 0 12px}
.ud-grid span{font:500 13px/1.3 var(--sans);padding:5px 6px;border:1px solid var(--rule)}
.ud-grid b{font-weight:800;color:var(--red)}

/* footer columns */
.foot .wrap{display:block}
.foot-brand{margin-bottom:22px}
.foot-cols{display:grid!important;align-items:start!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 32px;border-top:1px solid var(--rule);padding-top:20px}
.foot-col h2{font:700 12px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0 0 8px}
.foot-col ul{list-style:none;margin:0;padding:0}
.foot-col li{margin:0}
.foot .foot-col a{display:inline-flex;align-items:center;min-height:32px;color:var(--ink-2);text-decoration:none}
.foot .foot-col a:hover{color:var(--red);text-decoration:underline}
.foot-col .mail{display:inline-flex;align-items:center;min-height:32px;overflow-wrap:anywhere}
@media (max-width:900px){.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}}
@media (max-width:640px){.foot .foot-col a,.foot-col .mail{min-height:44px}}
@media (max-width:360px){.foot-cols{grid-template-columns:1fr}}

/* numbers hub, cheiro, chart how-to */
.letter-howto{max-width:72ch;margin-top:28px}
.letter-howto ol{padding-left:1.3em}
.numbers-table td,.numbers-table th{white-space:normal}
.cheiro-table{width:100%;font-size:13px;border-collapse:collapse}
.cheiro-table th,.cheiro-table td{padding:6px 6px 6px 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}
.page > .idx + .prose{margin-top:36px}
.numbers-table{min-width:640px}
.numbers-table td:nth-child(2){white-space:nowrap}
.page > .prose .cmp-wrap{max-width:none}

/* shareable chart images */
.chart-img{margin:28px 0;max-width:420px}
.chart-img img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
.chart-img figcaption{font:400 13px/1.5 var(--sans);color:var(--ink-2);margin-top:8px}
@media print{.chart-img{display:none}}
.ls-row{display:contents}

/* checklist pass: contrast on tinted rows, reduced motion, skip link */
.sel .stamp,.sel .lvl,.sel .not,.cal-d.inter .cd,.months li.sel .stamp{color:var(--red-press);border-color:var(--red-press)}
.cal-d.own .cd,.cal-d.own .cm{color:var(--on-red)}
.skip{position:absolute;left:8px;top:-60px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px;font:600 15px/1 var(--sans);border-radius:3px;text-decoration:none}
.skip:focus{top:8px}
.cmp-wrap[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* brand block at the bottom of the footer */
.foot-cols{border-top:0!important;padding-top:0!important}
.foot-brand{margin:28px 0 0!important;padding-top:20px;border-top:1px solid var(--rule)}
/* larger footer links */
.foot .foot-col a,.foot-col .mail{font-size:16px;line-height:1.35;min-height:36px}
.foot-col h2{font-size:13px}
@media (max-width:640px){.foot .foot-col a,.foot-col .mail{min-height:44px}}
@media (max-width:900px){.foot-cols{row-gap:36px!important}}

/* free tools network */
.nt-group{margin:28px 0 0}
.nt-group h2{font:800 clamp(1.25rem,2.2vw,1.6rem)/1.1 var(--sans);font-stretch:74%;color:var(--red);margin:0 0 10px}
.nt-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 24px;border-top:1px solid var(--rule-strong)}
.nt-list li{border-bottom:1px solid var(--rule)}
.nt-list a{display:flex;flex-direction:column;gap:2px;padding:12px 0;text-decoration:none;min-height:44px}
.nt-list a:hover .nt-name{color:var(--red);text-decoration:underline}
.nt-name{font:600 16px/1.3 var(--sans);color:var(--ink)}
.nt-dom{font:400 13px/1.3 var(--sans);color:var(--ink-3)}
.ltr{display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:26px;text-decoration:none}.ltr:hover{text-decoration:underline}
