/* =====================================================================
   Design F, tools cluster: birth chart, composite, numerology, life path.
   Tokens only (day + night come from kismet.css). Scoped to page classes.
   ===================================================================== */

/* scripts toggle the old utility name; keep it working on these pages */
.hidden{display:none!important}

.kt-page{padding-top:6px;padding-bottom:24px}
.tp-main{display:grid;gap:36px;min-width:0}
.tp-side{align-content:start}
.tp-side .note{margin-top:14px}
/* long H1s ("Composite (Compatibility Test)") need the full width on small phones */

/* ------------------------------------------------------------ form pieces */
.bc-when{display:grid;gap:18px}
@media (min-width:1200px){.bc-when{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:start}}
.bc-time{display:grid;gap:8px;margin:0;padding:0;border:0;min-width:0}
.bc-time legend{padding:0;margin-bottom:6px}
.bc-time-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bc-time-row .field label{font-size:14.5px;color:var(--c-ink-2)}
.bc-time.is-off{opacity:.55}
.bc-time select:disabled{cursor:not-allowed}
.bc-place{display:flex;flex-wrap:wrap;gap:8px}
.bc-place .input-ic{flex:1 1 180px;min-width:0}
.bc-place .btn{flex:none;min-height:50px}
.bc-place .btn-sm{min-height:50px}
.bc-places:empty{display:none}
.bc-places-list{display:grid;gap:6px}
.bc-place-opt{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:48px;padding:11px 14px;border:2px solid var(--c-line-2);border-radius:var(--r-md);background:var(--c-card);color:var(--c-ink);font-size:16px;line-height:1.35;text-align:left;cursor:pointer}
.bc-place-opt:hover{border-color:var(--c-ink)}
.bc-place-opt .ic{width:18px;height:18px;margin-top:1px;color:var(--c-ink-2)}
.bc-places-msg{display:flex;align-items:flex-start;gap:8px;font-size:15.5px;line-height:1.4;color:var(--c-ink-2)}
.bc-places-msg:empty{display:none}
.bc-places-msg.is-ok{color:var(--c-ink);font-weight:700}
.bc-places-msg.is-error{color:var(--c-hand);font-weight:700}
.bc-places-msg .ic{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--c-mint);color:#2B1338;stroke-width:3.4;flex:none}
.bc-status{font-size:15.5px;line-height:1.45;color:var(--c-ink-2)}
.bc-status:empty{display:none}
.bc-status.is-error{color:var(--c-hand);font-weight:700}

/* ------------------------------------------------------------ results */
.bc-out{display:grid;gap:18px;min-width:0}
.bc-empty{display:grid;justify-items:center;gap:6px;padding:30px 22px;border:2px dashed var(--c-line-2);border-radius:var(--r-xl);text-align:center;color:var(--c-ink-2);font-size:17px}
.bc-empty b{color:var(--c-ink)}
.bc-empty img{width:56px;height:56px;margin-bottom:4px;transform:rotate(-8deg)}
.bc-res{display:grid;gap:30px;min-width:0}
.bc-intro,.bc-sub{max-width:680px;color:var(--c-ink-2);font-size:17px}
.bc-big3{display:grid;gap:14px}
.bc-big3 li{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:14px;align-content:center;align-items:center;padding:12px 16px;border-radius:var(--r-lg);box-shadow:var(--sh-print)}
.bc-big3 .zs{grid-row:1/span 3;width:56px;height:56px;transform:rotate(-6deg);filter:var(--sh-sticker)}
.bc-big3 li:nth-child(2) .zs{transform:rotate(4deg)}
.bc-big3 b{font:400 22px/1.15 var(--display)}
.bc-big3 small{font-size:14.5px;line-height:1.35;color:var(--c-ink-2)}
.bc-big3 small:empty{display:none}
@media (min-width:760px){
  .bc-big3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bc-big3 li{grid-template-columns:1fr;align-content:start;gap:4px;padding:16px 18px}
  .bc-big3 .zs{grid-row:auto;width:64px;height:64px;margin-bottom:6px}
}
.bc-meta{display:flex;align-items:center;gap:8px;margin-top:-14px;font-size:15.5px;color:var(--c-ink-2)}
.bc-meta .ic{width:18px;height:18px}
.bc-chart{display:grid;gap:20px;align-items:start}
@media (min-width:1200px){.bc-chart{grid-template-columns:minmax(0,400px) minmax(0,1fr)}}
.bc-wheel{margin:0;padding:12px;background:var(--c-card);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
.bc-wheel canvas{display:block;width:100%;max-width:440px;height:auto;aspect-ratio:1;margin:0 auto}
.bc-table,.bc-aspects .table-wrap{margin-top:0}
.bc-pl{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.bc-pl img{width:17px;height:17px}
.bc-sign{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.bc-sign img{width:30px;height:30px;flex:none}
.bc-pair{display:inline-flex;flex-wrap:wrap;gap:2px 14px}
.bc-asc-row th,.bc-asc-row td{color:var(--c-hand)}
.bc-out .data td,.bc-out .data tbody th{vertical-align:middle}
@media (max-width:480px){
  .bc-out .data{font-size:15.5px}
  .bc-out .data tbody th{font-size:16px}
  .bc-sign img{width:24px;height:24px}
  .bc-out .table-wrap{padding:4px 14px}
}
.bc-aspects{display:grid;gap:12px}
.bc-hl{display:grid;gap:6px;max-width:680px;padding:16px 18px;border-radius:var(--r-lg);font-size:16.5px;line-height:1.5;color:var(--c-ink)}
.bc-hl-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.bc-read{display:grid;gap:12px;max-width:760px;padding:24px 22px;background:var(--c-card);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
.bc-read p:empty{display:none}
.bc-aside{font-size:22px;color:var(--c-hand);transform:rotate(-1deg);transform-origin:left}
.bc-share{display:grid;gap:14px;padding:22px 20px;background:var(--c-card);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
.bc-share p{margin-top:4px;color:var(--c-ink-2);font-size:16.5px}
.bc-share-act{display:flex;flex-wrap:wrap;gap:8px;align-self:center}
.bc-share-msg{grid-column:1/-1;font-size:15px;color:var(--c-ink-2)}
.bc-share-msg:empty{display:none}
@media (min-width:1000px){.bc-share{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:24px 28px}.bc-share-act{justify-content:flex-end;max-width:360px}}
.bc-next ul{display:flex;flex-wrap:wrap;gap:0 26px}
.bc-next .more{margin-top:10px}

/* 2027 waitlist (butter card from the design) */
.waitlist .k{margin-bottom:4px}
.wl-stack{display:grid;gap:12px}
.waitlist .check{font-size:15.5px;color:var(--c-ink-2)}
.waitlist .check a{color:var(--c-link)}
.wl-msg{font-size:15.5px;color:var(--c-ink-2)}
.wl-msg:empty{display:none}
.wl-msg.is-ok{color:var(--c-ink);font-weight:700}
.wl-msg.is-error{color:var(--c-hand);font-weight:700}

/* ------------------------------------------------------------ guide content under the tools */
.kt-guide{display:grid;gap:56px;margin-top:28px}
.kt-sec{display:grid;gap:14px;min-width:0}
.kt-sec>p{max-width:680px}
.kt-sec a:not(.tool):not(.btn){color:var(--c-link)}
.kt-sec .note-inline{max-width:640px;margin:6px 0 0}
.kt-box{display:grid;gap:12px;max-width:760px;padding:22px 20px;background:var(--c-card);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
@media (min-width:700px){.kt-box{padding:26px 28px}}
.kt-box .list{margin:4px 0 0}
.kt-cards{display:grid;gap:16px}
.kt-cards>li{padding:20px;border-radius:var(--r-lg);box-shadow:var(--sh-print)}
.kt-cards>li>.pg,.kt-cards>li>img{width:28px;height:28px}
.kt-cards h3{margin:10px 0 6px}
.kt-cards p{font-size:16.5px;line-height:1.5;color:var(--c-ink)}
.kt-cards .list{margin:8px 0 0;font-size:16.5px}
@media (min-width:760px){.kt-cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}.kt-cards-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}}
.kt-planets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:900px}
@media (min-width:760px){.kt-planets{grid-template-columns:repeat(5,minmax(0,1fr))}}
.kt-planets li{display:grid;justify-items:center;gap:2px;padding:16px 10px;background:var(--c-card);border-radius:var(--r-lg);box-shadow:var(--sh-print);text-align:center}
.kt-planets .pg{width:28px;height:28px;margin-bottom:6px}
.kt-planets b{font:400 18px/1.2 var(--display)}
.kt-planets span{font-size:15px;color:var(--c-ink-2)}
.kt-planets li:last-child:nth-child(odd){grid-column:1/-1}
@media (min-width:760px){.kt-planets li:last-child:nth-child(odd){grid-column:auto}}
.kt-houses{max-width:760px}
@media (max-width:560px){
  .kt-houses thead{display:none}
  .kt-houses tr{display:grid;grid-template-columns:52px minmax(0,1fr);padding:8px 0;border-bottom:1.5px dotted var(--c-line-2)}
  .kt-houses tbody tr:last-child{border-bottom:0}
  .kt-houses td,.kt-houses tbody th{padding:3px 0;border:0}
}
.kt-glyph-list{display:grid;gap:10px}
.kt-glyph-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:17px;line-height:1.5}
.kt-glyph-list .pg{margin-top:5px}
.kt-faq{display:grid;gap:10px;max-width:760px}
.kt-faq details{background:var(--c-card);border-radius:var(--r-lg);box-shadow:var(--sh-print)}
.kt-faq summary{position:relative;display:block;padding:16px 54px 16px 20px;font:400 18px/1.3 var(--display);cursor:pointer;list-style:none}
.kt-faq summary::-webkit-details-marker{display:none}
.kt-faq summary::after{content:"";position:absolute;right:22px;top:50%;width:10px;height:10px;margin-top:-8px;border:solid var(--c-ink);border-width:0 2.6px 2.6px 0;transform:rotate(45deg);border-radius:1px;transition:transform .2s var(--ease)}
.kt-faq details[open] summary::after{transform:rotate(225deg);margin-top:-3px}
.kt-faq details p{padding:0 20px 18px;font-size:17px;line-height:1.55;color:var(--c-ink-2)}
.kt-tools .tool-list{margin-top:8px}
@media (min-width:1000px){.kt-tools .tool-list{grid-template-columns:repeat(5,minmax(0,1fr))}.kt-tools .tool-list li:last-child{grid-column:auto}}

/* ------------------------------------------------------------ composite */
.cc-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.cc-room{font-size:14.5px;color:var(--c-ink-2)}
.cc-seats{display:flex;flex-wrap:wrap;gap:8px}
.cc-seats li{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:6px 14px;border-radius:var(--r-md);background:var(--c-paper);font-size:15.5px}
.cc-seats span{color:var(--c-ink-2)}
.cc-seats b{display:inline-flex;align-items:center;gap:6px}
.cc-seats .ic,.cc-in .ic{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--c-mint);color:#2B1338;stroke-width:3.4}
.two-people fieldset{display:grid;gap:14px;align-content:start;margin:0;border:0;min-width:0}
.two-people .bc-place .input-ic{flex-basis:150px}
.cc-them-fields{display:grid;gap:14px}
.cc-in{display:flex;align-items:flex-start;gap:8px;font-size:16px}
#cc-them.is-in .cc-them-fields,#cc-them.is-in .cc-invite{display:none}
.cc-invite{display:grid;gap:8px;padding-top:14px;border-top:2px dotted var(--c-line-2)}
.cc-or{font-size:15.5px;line-height:1.45;color:var(--c-ink-2)}
.cc-link{padding:10px 12px;border-radius:var(--r-sm);background:var(--c-card);font:500 14px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
.cc-invite .btn{justify-self:start}
.cc-notes{display:grid;gap:10px;padding:20px;background:var(--c-card);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
.cc-notes .bc-sub{font-size:15.5px}
.cc-notes-list{display:grid;gap:8px;max-height:260px;overflow:auto}
.cc-notes-list:empty{display:none}
.cc-note{display:grid;gap:2px;padding:10px 12px;border-radius:var(--r-md);background:var(--c-paper);font-size:16px;line-height:1.4}
.cc-note small{font-size:13.5px;color:var(--c-ink-2)}
.cc-note-row{display:flex;gap:8px}
.cc-note-row .input{flex:1;min-width:0}
.cc-note-row .btn{min-height:50px}
#composite-extra{display:grid;gap:26px}
#composite-extra:empty{display:none}
.cc-score{display:grid;gap:14px;align-items:center;padding:22px;background:var(--c-butter-lt);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
@media (min-width:560px){.cc-score{grid-template-columns:auto minmax(0,1fr);gap:28px;padding:24px 28px}}
.cc-score-num{display:grid}
.cc-score-num b{font:400 64px/1 var(--display)}
.cc-score-num small{font-size:24px;color:var(--c-ink-2)}
.cc-final{margin-top:2px;font-size:26px;line-height:1.15;color:var(--c-hand);transform:rotate(-1deg);transform-origin:left}
.cc-reasons{max-width:760px}
.cc-reasons .list{margin-top:10px;font-size:17px}
.cc-areas-wrap{display:grid;gap:14px}
.cc-areas{display:grid;gap:14px}
@media (min-width:760px){.cc-areas{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cc-areas li{padding:18px 20px;border-radius:var(--r-lg);box-shadow:var(--sh-print)}
.cc-areas h4{margin:0 0 4px;font:400 19px/1.2 var(--display)}
.cc-areas p{font-size:16.5px;line-height:1.5}

/* ------------------------------------------------------------ numerology */
.nm-root{min-width:0}
.nm-step-head{display:grid;gap:4px}
.nm-line{color:var(--c-ink-2)}
.nm-line b{color:var(--c-ink)}
.nm-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-size:15px;color:var(--c-ink-2)}
.nm-links a{color:var(--c-link)}
.nm-res{display:grid;gap:24px}
.nm-res-head{display:grid;gap:12px}
@media (min-width:760px){.nm-res-head{grid-template-columns:minmax(0,1fr) auto;align-items:end}}
.nm-edit{display:flex;flex-wrap:wrap;gap:8px}
.nm-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:520px;margin:0}
.nm-scores li{padding:14px 10px;border-radius:var(--r-lg);background:var(--c-card);box-shadow:var(--sh-print);text-align:center}
.nm-scores b{display:block;font:400 40px/1 var(--display)}
.nm-scores span{display:block;margin-top:6px;font-size:15px;color:var(--c-ink-2)}
.nm-card{display:grid;gap:16px;padding:22px 20px;background:var(--c-card);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
@media (min-width:700px){.nm-card{padding:28px 30px}}
.nm-card-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}
.nm-big{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;box-shadow:inset 0 0 0 3px var(--c-ink);transform:rotate(-4deg)}
.nm-big b{font:400 40px/1 var(--display)}
.nm-tag{margin-top:4px;font-size:16.5px;line-height:1.4;color:var(--c-ink-2)}
.nm-vibe{max-width:680px}
.nm-two{display:grid;gap:12px}
@media (min-width:560px){.nm-two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nm-two>div{padding:16px 18px;border-radius:var(--r-lg)}
.nm-two h4,.nm-ritual h4{margin:0 0 4px;font:400 18px/1.2 var(--display)}
.nm-two .list{margin:8px 0 0;font-size:16.5px}
.nm-ritual{padding-top:14px;border-top:2px dotted var(--c-line-2)}
.nm-ritual p{color:var(--c-ink-2)}
.nm-card .more{margin-top:0}
.nm-how p{color:var(--c-ink-2);font-size:16.5px}
.nm-sum{display:grid;gap:2px;padding:14px 16px;border-radius:var(--r-md);background:var(--c-paper);font-size:16.5px;font-variant-numeric:tabular-nums}
.nm-sum p{color:var(--c-ink-2)}
.nm-sum b,.nm-total{color:var(--c-ink)}
.nm-total{margin-top:6px}
.nm-letters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (min-width:700px){.nm-letters{grid-template-columns:repeat(9,minmax(0,1fr))}}
.nm-letters li{display:grid;gap:2px;padding:10px 6px;border-radius:var(--r-sm);background:var(--c-paper);text-align:center}
.nm-letters b{font:400 22px/1 var(--display)}
.nm-letters span{font-size:14.5px;letter-spacing:.08em;color:var(--c-ink-2);white-space:nowrap}
.nm-grid{display:grid;gap:14px}
@media (min-width:560px){.nm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.nm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.nm-grid a{display:grid;grid-template-columns:48px minmax(0,1fr);gap:2px 14px;height:100%;padding:18px 16px;background:var(--c-card);border-radius:var(--r-lg);box-shadow:0 4px 0 var(--c-line-2);text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.nm-grid a:hover{transform:translateY(-3px);box-shadow:0 7px 0 var(--c-line-2)}
.nm-n{grid-row:span 2;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--c-butter-lt);font:400 22px/1 var(--display)}
.nm-master .nm-n{background:var(--c-lilac-lt)}
.nm-grid h3{align-self:end;font:400 19px/1.15 var(--display)}
.nm-grid p{font-size:15.5px;line-height:1.45;color:var(--c-ink-2)}
@media (prefers-reduced-motion:reduce){.nm-grid a{transition:none}}

/* ------------------------------------------------------------ life path pages */
.lp-article .crumbs{margin-bottom:4px}
.lp-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 24px;align-items:center;margin-top:14px}
.lp-hero .t-h1{margin:6px 0 4px}
.lp-badge{display:grid;place-items:center;width:112px;height:112px;border-radius:50%;background:var(--c-butter);box-shadow:var(--sh-print);transform:rotate(-5deg)}
.lp-badge b{font:400 54px/1 var(--display);color:#2B1338}
@media (min-width:1000px){.lp-badge{width:140px;height:140px}.lp-badge b{font-size:68px}}
@media (max-width:559px){.lp-hero{grid-template-columns:1fr}.lp-badge{width:80px;height:80px}.lp-badge b{font-size:40px}}
.lp-tag{margin-top:4px}
.lp-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:760px;margin:24px 0 0}
@media (min-width:760px){.lp-facts{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-facts>div{padding:12px 14px;border-radius:var(--r-md)}
.lp-facts dt{font:400 14.5px/1.2 var(--display);color:var(--c-label)}
.lp-facts dd{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;margin:4px 0 0;font-weight:700;font-size:16.5px;line-height:1.3}
.lp-planet{display:inline-flex;align-items:center;gap:5px}
.lp-prose .list li{line-height:1.5}
.lp-famous{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lp-famous li{padding:6px 14px;border-radius:var(--r-pill);background:var(--c-card);box-shadow:inset 0 0 0 1.5px var(--c-line-2);font-weight:700;font-size:16px}
.lp-cta{position:relative;display:grid;gap:16px;margin-top:64px;padding:30px 24px 26px;background:var(--c-butter-lt);border-radius:var(--r-xl);box-shadow:var(--sh-print)}
.lp-cta .tape{left:34px}
.lp-cta p{margin-top:6px;color:var(--c-ink-2)}
.lp-cta .btn{justify-self:start}
@media (min-width:760px){.lp-cta{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:34px 40px}}
.lp-others{margin-top:56px}
.lp-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:900px;margin-top:18px}
@media (min-width:560px){.lp-nums{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:1000px){.lp-nums{grid-template-columns:repeat(12,minmax(0,1fr))}}
.lp-nums a{display:grid;place-items:center;min-height:54px;border-radius:var(--r-md);background:var(--c-card);box-shadow:0 3px 0 var(--c-line-2);font:400 22px/1 var(--display);text-decoration:none;transition:transform .2s var(--ease)}
.lp-nums a:hover{transform:translateY(-2px)}
.lp-nums a.is-master{background:var(--c-lilac-lt)}
.lp-nums a[aria-current]{background:var(--c-btn);color:var(--c-btn-ink);box-shadow:0 3px 0 var(--c-btn-key)}
.lp-tools{margin-top:56px}

/* lilac tint is too close to the lilac paper: those cards print on white */
.lp-facts .t-lilac,.bc-big3 .t-lilac,.kt-cards>.t-lilac,.cc-areas .t-lilac{background:var(--c-card)}
/* Rising = an arrow turned up */
.bc-rise{transform:rotate(-90deg)}
.kt-cards>li>.bc-rise{width:28px;height:28px}
.bc-pl .bc-rise{width:17px;height:17px}
