/* ===================== PORTED CYCLES ARC SHOP — FREE SKY TOOLS =====================
   The whole shop sky-tools section + "make your moon" modal, brought onto the
   landing. Shop design tokens are SCOPED to the ported subtree so they never
   touch the landing's own theme variables; they flip with the page's data-theme. */
.skytools, .moonpop, .geo-suggest{
  --maxw:1120px; --radius:10px; --radius-sm:6px;
  --font-serif:'Raleway',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:'Open Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --burgundy:#047857; --burgundy-light:#059669; --cream:#272424; --muted:#55605A;
  --dim:#55605A; --dimmer:#85908A; --dark:#F5F4F0; --dark2:#ECEAE2; --dark3:#E6E3DA;
  --line:#E0DCD2; --gold:#065F46; --accent:#047857; --accent-soft:rgba(4,120,87,0.14);
  --paper:#272424; --soft:#55605A; --faint:#85908A; --rule:#E0DCD2; --panel:#ECEAE2;
  --stock:#f5f4f0; --band:#0d2a1e;
}
html[data-theme="night"] .skytools,
html[data-theme="night"] .moonpop,
html[data-theme="night"] .geo-suggest{
  --burgundy:#10b981; --burgundy-light:#34d399; --cream:#EAF3EE; --muted:#A7C4B5;
  --dim:#A7C4B5; --dimmer:#6E8A7B; --dark:#0d2a1e; --dark2:#123526; --dark3:#17402e;
  --line:#24503a; --gold:#34d399; --accent:#10b981; --accent-soft:rgba(16,185,129,0.16);
  --paper:#EAF3EE; --soft:#A7C4B5; --faint:#6E8A7B; --rule:#24503a; --panel:#123526;
  --stock:#f5f4f0; --band:#071c14;
}
/* base container + buttons (from nous-base.css), scoped */
.skytools .wrap, .moonpop .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.skytools .btn, .moonpop .btn{ display:inline-flex; align-items:center; gap:8px; padding:12px 22px;
  border-radius:var(--radius-sm); font-weight:600; font-size:14px; line-height:1.2; text-decoration:none;
  border:1px solid transparent; cursor:pointer; transition:transform .12s ease, opacity .12s ease; }
.skytools .btn:active, .moonpop .btn:active{ transform:translateY(1px); }
.skytools .btn-block, .moonpop .btn-block{ width:100%; justify-content:center; }
.skytools .btn svg{ width:16px; height:16px; fill:currentColor; display:inline-block; }
.skytools{ padding:72px 0; }
/* guard: neutralise the landing's global ul/li indent inside the ported subtree */
.skytools ul, .skytools li, .moonpop ul, .moonpop li, .geo-suggest, .geo-suggest li{ text-indent:0; }
.skytools li, .moonpop li, .geo-suggest li{ margin-bottom:0; }
/* ---- extracted shop rules ---- */
.kicker {color: var(--burgundy); font-family: var(--font-body); font-weight: 700; letter-spacing: 0.24em; font-size: 12px; }
.btn-primary {background: var(--burgundy); color: #FBF8F3; border-color: var(--burgundy); font-family: var(--font-body); letter-spacing: 0.04em; }
.btn-primary:hover {background: var(--burgundy-light); opacity: 1; }
.btn-ghost {background: transparent; color: var(--cream); border-color: rgba(242,241,238,0.28); }
.btn-ghost:hover {border-color: var(--gold); color: var(--gold); }
.btn-outline {background: transparent; color: var(--muted); border-color: var(--line); }
.btn-outline:hover {border-color: var(--burgundy); color: var(--cream); }
@media (max-width:760px) {
  header.site .cta .btn-primary {display:none; }
}
.trustbar .wrap {color: var(--muted); }
.filterbar .wrap {display:flex; flex-direction:column; gap:9px; padding-top:10px; padding-bottom:10px; }
.pcard .cardbtns .btn {width:100%; justify-content:center; text-align:center; padding:10px 6px; font-size:12.5px; border-radius:24px; }
.mp .season s {display:block; background:#fff; border:1px solid #D8D2C8; border-radius:1px; height:15px; margin-bottom:4px; position:relative; }
.mp .season s:before {content:""; position:absolute; left:3px; top:3px; width:20px; height:1px; background:#8D867F; box-shadow:0 4px #D8D2C8,0 8px #D8D2C8; }
@keyframes slidein { from { opacity:0; transform:translateY(6px);} to { opacity:1; transform:none; } }
.btn.btn-primary:disabled {opacity:.5; cursor:not-allowed; }
.pview-bar .wrap {display:flex; align-items:center; gap:20px; min-height:54px; padding-top:0; padding-bottom:0; }
.btn-block {width:100%; justify-content:center; }
@keyframes orbit { to { transform:rotate(360deg); } }
.cart-foot .btn {margin:0; }
.empty .btn {margin-left:10px; vertical-align:middle; }
.nl-form .btn {flex:0 0 auto; }
@media (max-width:600px) {
  .nl-form .btn {width:100%; }
}
.skytools {background:var(--dark2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.skytools::before {content:""; position:absolute; inset:0 0 auto 0; height:2px; background:linear-gradient(to right, transparent, var(--gold), transparent); }
.skytools::after {content:""; position:absolute; inset:0; pointer-events:none; opacity:.6;
  background:
    radial-gradient(1.4px 1.4px at 12% 22%, rgba(52,211,153,.5), transparent),
    radial-gradient(1.4px 1.4px at 78% 16%, rgba(167,243,208,.45), transparent),
    radial-gradient(1.2px 1.2px at 40% 68%, rgba(52,211,153,.4), transparent),
    radial-gradient(1.2px 1.2px at 88% 74%, rgba(167,243,208,.4), transparent),
    radial-gradient(1.1px 1.1px at 60% 40%, rgba(52,211,153,.35), transparent); }
.skytools .wrap {position:relative; z-index:1; }
.st-head {display:flex; align-items:flex-start; justify-content:space-between; gap:32px; margin-bottom:34px; }
.st-head-main {max-width:700px; }
.st-head h2 {font-family:var(--font-serif); font-weight:300; font-size:clamp(26px,3.4vw,36px); color:var(--cream); margin:10px 0 10px; line-height:1.08; }
.st-head h2 em {font-style:italic; color:var(--gold); }
.st-head-main > p {color:var(--muted); font-size:15px; line-height:1.6; margin:0; max-width:600px; }
.st-nextfull {flex:0 0 auto; align-self:flex-start; min-width:158px; text-align:center;
  background:#f7f8f4; border:1.5px solid var(--accent); border-radius:15px;
  padding:16px 22px 15px; box-shadow:0 10px 30px rgba(0,0,0,0.25); }
.st-nextfull-lab {display:block; font-family:var(--font-body); font-weight:700; text-transform:uppercase; letter-spacing:.14em; font-size:10px; color:#4a6b58; margin-bottom:6px; }
.st-nextfull-n {font-family:var(--font-serif); font-size:32px; color:#0d3324; font-variant-numeric:tabular-nums; letter-spacing:.02em; line-height:1.05; }
.st-nextfull-sub {display:block; color:#516b5d; font-size:12.5px; margin-top:5px; font-variant-numeric:tabular-nums; }
[data-theme="day"] .st-nextfull {background:#0d3324; border-color:#0d3324; box-shadow:0 8px 22px rgba(13,51,36,0.22); }
[data-theme="day"] .st-nextfull-lab {color:#7fc3a8; }
[data-theme="day"] .st-nextfull-n {color:#fbfdfb; }
[data-theme="day"] .st-nextfull-sub {color:#bfe0d0; }
.st-loc {display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:22px; }
#geo-btn {display:inline-flex; align-items:center; gap:7px; }
#geo-btn svg {width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.st-place {display:flex; gap:8px; flex-wrap:wrap; }
.st-place input {background:var(--dark); border:1px solid var(--line); border-radius:9px; padding:10px 13px; color:var(--cream); font-family:var(--font-body); font-size:14px; min-width:180px; }
.st-place input::placeholder {color:var(--dim); }
.st-place input:focus {outline:none; border-color:var(--gold); }
.st-loc-name {font-family:var(--font-serif); font-style:italic; font-size:13.5px; color:var(--gold); }
.st-grid {display:grid;
  grid-template-columns:minmax(200px,238px) minmax(0,1.1fr) minmax(0,1fr);
  grid-template-areas:"left moon vis";
  gap:16px 18px;
  align-items:stretch; }
.st-lcol {grid-area:left; display:flex; flex-direction:column; gap:16px; }
.st-sun {flex:0 0 auto; }
.st-season-bare {flex:1 1 auto; }
.st-moon {grid-area:moon; }
.st-vis {grid-area:vis; }
.st-card {position:relative; background:var(--dark); border:1px solid var(--line); border-radius:16px; padding:22px 22px 20px; transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.st-card:hover {border-color:rgba(52,211,153,0.4); transform:translateY(-2px); box-shadow:0 14px 34px rgba(0,0,0,0.28); }
.st-card h3 {font-family:var(--font-serif); font-weight:400; font-size:16px; color:var(--cream); margin:0 0 12px; letter-spacing:.02em; }
.st-ic {display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:var(--dark3); border:1px solid var(--line); color:var(--gold); font-size:18px; margin-bottom:12px; }
.st-rows {list-style:none; margin:0; padding:0; }
.st-rows li {display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.st-rows li:last-child {border-bottom:0; }
.st-rows li span {color:var(--muted); }
.st-rows li b {color:var(--cream); font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:.01em; }
.st-sun {background:var(--dark); border-color:rgba(240,150,70,0.34); }
.st-sun:hover {border-color:rgba(247,162,74,0.55); }
.st-sun .st-ic {color:#f7a24a; border-color:rgba(240,150,70,0.42); background:rgba(240,150,70,0.11); display:flex; margin-left:auto; margin-right:auto; }
.st-sun h3 {text-align:center; }
.st-sun h3 {color:#f6d9b8; }
.st-sun .st-rows li b {color:#f8e5cf; }
[data-theme="day"] .st-sun h3 {color:#272424; }
[data-theme="day"] .st-sun .st-rows li b {color:#272424; }
.st-moon {text-align:center; }
.st-moondisc {position:relative; width:100px; height:100px; margin:2px auto 14px; border-radius:50%; }
.st-moondisc .moon-svg, .mp-disc .moon-svg {display:block; width:100%; height:100%; filter:drop-shadow(0 4px 16px rgba(0,0,0,.45)); }
.md-shadow {display:block; width:100%; height:100%; border-radius:50%; background:radial-gradient(circle at 38% 34%, #17402e, #0b2019); border:1px solid var(--line); }
.st-phase {font-family:var(--font-serif); font-size:17px; color:var(--gold); margin-bottom:12px; }
.st-moon .st-rows {text-align:left; }
.st-planets {list-style:none; margin:6px 0 0; padding:0; }
.st-planets li {display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.st-planets li:last-child {border-bottom:0; }
.vp-n {color:var(--cream); font-weight:600; }
.vp-d {font-style:normal; font-size:11px; color:var(--gold); font-weight:600; letter-spacing:.05em; margin-left:6px; opacity:.92; }
.vp-t {color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.st-empty {color:var(--dim); font-style:italic; }
.st-season-bare {padding:6px 4px 0; display:flex; flex-direction:column; justify-content:center; }
.st-season-bare h3 {font-family:var(--font-serif); font-weight:400; font-size:15px; color:var(--cream); margin:0 0 2px; letter-spacing:.02em; }
.st-bar {height:9px; border-radius:6px; background:var(--dark3); border:1px solid var(--line); overflow:hidden; margin:12px 0 10px; }
.st-bar-fill {display:block; height:100%; width:0; background:linear-gradient(to right, var(--burgundy), var(--gold)); border-radius:6px; transition:width .7s cubic-bezier(.4,0,.2,1); }
.st-season-meta {font-size:12.5px; color:var(--muted); margin:0; }
.st-season-meta b {color:var(--cream); font-variant-numeric:tabular-nums; }
.st-make {background:linear-gradient(140% 140% at 100% 0%, var(--accent-soft), var(--dark)); border-color:rgba(52,211,153,0.4); display:flex; flex-direction:column; }
.st-make p {color:var(--muted); font-size:13px; line-height:1.55; margin:0 0 16px; }
.st-make .btn {margin-top:auto; }
.st-note {margin-top:24px; font-size:12.5px; color:var(--dim); font-style:italic; font-family:var(--font-serif); line-height:1.5; max-width:620px; }
@media (max-width:860px) {
  .st-head {flex-direction:column; gap:22px; }
  .st-nextfull {align-self:flex-start; }
  .st-grid {grid-template-columns:minmax(180px,220px) minmax(0,1fr);
    grid-template-areas:
      "left moon"
      "vis  vis"; }
}
@media (max-width:560px) {
  .st-grid {grid-template-columns:1fr;
    grid-template-areas:"left" "moon" "vis"; }
  .st-place, .st-place input {width:100%; }
  .st-loc .btn {width:100%; justify-content:center; }
}
body.moon-open {overflow:hidden; }
.moonpop {position:fixed; inset:0; z-index:140; display:flex; align-items:center; justify-content:center; padding:24px; }
.moonpop[hidden] {display:none; }
.mp-scrim {position:absolute; inset:0; background:rgba(6,20,14,0.84); backdrop-filter:blur(5px); }
.mp-sheet {position:relative; width:min(460px,96vw); max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); overflow:auto;
  background:var(--dark2); border:1px solid var(--line); border-top:3px solid var(--burgundy); border-radius:18px;
  box-shadow:0 40px 100px rgba(0,0,0,0.6); animation:mp-in .28s cubic-bezier(.4,0,.2,1);
  transition:width .3s cubic-bezier(.4,0,.2,1); }
.mp-sheet:has(.mp-body.has-result) {width:min(720px,96vw); }
@keyframes mp-in { from { opacity:0; transform:translateY(16px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
.mp-x {position:absolute; top:14px; right:16px; background:transparent; border:0; color:var(--muted); font-size:26px; line-height:1; cursor:pointer; z-index:2; }
.mp-x:hover {color:var(--cream); }
.mp-body {padding:24px 30px 22px; }
.mp-body h2 {font-family:var(--font-serif); font-weight:300; font-size:25px; color:var(--cream); margin:4px 0 6px; }
.mp-lead {color:var(--muted); font-size:13.5px; line-height:1.5; margin:0 0 14px; }
.mp-form {display:flex; flex-direction:column; gap:12px; }
.mp-frow {display:flex; gap:12px; flex-wrap:wrap; }
.mp-fld {flex:1 1 130px; display:flex; flex-direction:column; gap:6px; min-width:0; }
.mp-fld-sm {flex:0 0 116px; }
.mp-fld label {font-family:var(--font-body); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:10.5px; color:var(--muted); }
.mp-fld label span {font-weight:400; letter-spacing:0; text-transform:none; color:var(--dim); font-style:italic; }
.mp-fld input {width:100%; box-sizing:border-box; background:var(--dark); border:1px solid var(--line); border-radius:9px; padding:11px 13px; color:var(--cream); font-family:var(--font-body); font-size:14px; }
.mp-fld input::placeholder {color:var(--dim); }
.mp-fld input:focus {outline:none; border-color:var(--gold); }
.mp-err {color:var(--burgundy-light); font-size:12.5px; min-height:1em; }
.mp-consent {display:block; color:var(--dim); font-size:11.5px; line-height:1.5; margin-top:2px; }
.mp-result {margin-top:22px; padding-top:20px; border-top:1px solid var(--line);
  display:grid; grid-template-columns:150px 1fr; gap:18px 26px; align-items:center; text-align:left; }
.mp-result[hidden] {display:none !important; }
.mp-body.has-result {display:grid; grid-template-columns:minmax(220px,270px) 1fr;
  column-gap:40px; row-gap:4px; align-items:start; }
.mp-body.has-result > .kicker,
.mp-body.has-result > h2 {grid-column:1 / -1; }
.mp-body.has-result > .mp-lead {display:none; }
.mp-body.has-result > .mp-form {grid-column:1; margin-top:6px; }
.mp-body.has-result > .mp-result {grid-column:2; grid-row:3 / span 4; align-self:start;
  margin-top:14px; padding-top:0; border-top:0; }
.mp-disc {position:relative; width:150px; height:150px; margin:0; border-radius:50%; align-self:start; }
.mp-facts {min-width:0; }
.mp-phase {font-family:var(--font-serif); font-size:21px; color:var(--gold); margin:0 0 10px; }
.mp-rows {list-style:none; margin:0; padding:0; display:block; }
.mp-rows li {display:flex; justify-content:space-between; gap:22px; padding:7px 0; font-size:13.5px; border-bottom:1px solid var(--line); }
.mp-rows li:last-child {border-bottom:0; }
.mp-rows li span {color:var(--muted); }
.mp-rows li b {color:var(--cream); font-variant-numeric:tabular-nums; }
.mp-actions {grid-column:1 / -1; display:flex; gap:10px; justify-content:flex-start; margin:2px 0 4px; flex-wrap:wrap; }
.mp-fine {grid-column:1 / -1; font-size:12px; color:var(--dim); line-height:1.55; margin:0; }
.mp-fine a {color:var(--gold); }
.mp-new {display:none; }
@media (max-width:640px) {
  .moonpop {padding:12px; align-items:flex-start; }
  .mp-sheet {width:100%; max-height:calc(100dvh - 24px); border-radius:16px; }
  .mp-fld input {font-size:16px; }
  .mp-x {top:10px; right:12px; padding:6px; }
  .btn-block {min-height:48px; }
  .mp-body {padding:26px 18px 24px; }
  .mp-fld-sm {flex:1 1 130px; }
  .mp-body.has-result {display:block; }
  .mp-body.has-result > .mp-form {display:none; }
  .mp-body.has-result > .mp-result {margin-top:4px; padding-top:0; border-top:0; }
  .mp-new {display:inline-flex; }
  .mp-result {grid-template-columns:1fr; justify-items:center; text-align:center; gap:14px; }
  .mp-disc {width:130px; height:130px; }
  .mp-rows {width:100%; max-width:280px; }
  .mp-actions {justify-content:center; }
}
.mp-fld-wide {flex:1 1 100%; }
.has-suggest {position:relative; }
.geo-suggest {position:absolute; top:calc(100% + 6px); left:0; z-index:60; margin:0; padding:5px; list-style:none;
  min-width:min(260px,100%); max-width:340px; max-height:270px; overflow:auto;
  background:var(--dark2); border:1px solid var(--line); border-radius:12px; box-shadow:0 22px 54px rgba(0,0,0,0.42); }
.geo-suggest[hidden] {display:none; }
.st-feature {position:relative; overflow:hidden; display:grid; grid-template-columns:auto 1fr auto; align-items:center;
  gap:30px; margin:0 0 22px; padding:26px 32px; border-radius:20px;
  background:linear-gradient(118deg, var(--accent-soft), transparent 58%), var(--dark2);
  border:1px solid rgba(52,211,153,0.45); box-shadow:0 20px 50px rgba(0,0,0,0.28); }
.st-feature-glow {position:absolute; inset:auto -40px -80px auto; width:260px; height:260px; pointer-events:none;
  background:radial-gradient(circle, rgba(52,211,153,0.22), transparent 68%); }
.st-feature-disc {position:relative; width:90px; height:90px; flex:none; filter:drop-shadow(0 8px 22px rgba(0,0,0,0.5)); }
.st-feature-disc .moon-svg {display:block; width:100%; height:100%; }
.st-feature-copy {position:relative; }
.st-feature-badge {display:inline-block; font-family:var(--font-body); font-weight:700; font-size:10px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--gold); margin-bottom:9px; }
.st-feature h3 {font-family:var(--font-serif); font-weight:300; font-size:clamp(21px,2.6vw,28px); color:var(--cream); margin:0 0 7px; line-height:1.1; }
.st-feature h3 em {font-style:italic; color:var(--gold); }
.st-feature p {color:var(--muted); font-size:13.5px; line-height:1.55; margin:0; max-width:660px; }
.st-feature-act {position:relative; display:flex; flex-direction:column; align-items:flex-end; gap:9px; }
.st-feature-fine {font-size:11px; color:var(--dim); letter-spacing:.02em; }
.btn-lg {padding:14px 26px; font-size:15px; border-radius:28px; }
@media (max-width:760px) {
  .st-feature {grid-template-columns:1fr; text-align:center; gap:16px; padding:24px 22px; }
  .st-feature-disc {margin:0 auto; }
  .st-feature-act {align-items:center; }
  .st-feature p {margin:0 auto; }
}
.cat-hero .wrap {position: relative; z-index: 1; padding: 34px 24px 26px; }
.catmenu .wrap {display: flex; align-items: center; gap: 18px; padding-top: 14px; padding-bottom: 14px; flex-wrap: wrap; }
@media (max-width:640px) {
  .catmenu .wrap {gap: 12px; }
}



/* ---- caffeine cutoff tool (ported verbatim from the circadian page) ---- */
  /* caffeine cutoff — free interactive hook (mirrors the moon maker) */
  .cf-wrap{ max-width:640px; margin:0 auto; background:linear-gradient(160deg,#0e2a20,#123a2b); border:1px solid rgba(52,211,153,.25); border-radius:20px; padding:34px 30px; box-shadow:0 18px 50px -24px rgba(4,60,40,.6); position:relative; overflow:hidden; }
  .cf-wrap::before{ content:""; position:absolute; inset:0 0 auto 0; height:2px; background:linear-gradient(to right,transparent,var(--accent-light),transparent); }
  .cf-kick{ text-align:center; text-transform:uppercase; letter-spacing:.26em; font-size:10.5px; font-weight:700; color:var(--accent-light); margin:0 0 10px; }
  .cf-h{ text-align:center; margin:0 0 8px; font-size:clamp(1.35rem,3.4vw,1.9rem); font-family:'Raleway',sans-serif; color:#fff; line-height:1.2; }
  .cf-sub{ text-align:center; max-width:470px; margin:0 auto 22px; font-size:.9em; line-height:1.6; color:#bfe0d2; }
  .cf-form{ display:grid; gap:13px; }
  .cf-fld{ position:relative; text-align:left; }
  .cf-fld label{ display:block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#8fc7b3; margin:0 0 6px; }
  .cf-fld label span{ text-transform:none; letter-spacing:0; font-weight:400; color:#6fae99; }
  .cf-in{ width:100%; box-sizing:border-box; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:11px; padding:13px 14px; color:#fff; font-size:1em; font-family:inherit; }
  .cf-in::placeholder{ color:#7fa595; }
  .cf-in:focus{ outline:none; border-color:var(--accent-light); background:rgba(255,255,255,.09); }
  .cf-geo{ display:inline-block; margin-top:7px; background:none; border:none; color:var(--accent-light); font-size:.82em; font-weight:600; cursor:pointer; padding:0; text-decoration:underline; text-underline-offset:3px; }
  .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  @media(max-width:460px){ .cf-row{ grid-template-columns:1fr; } }
  .cf-btn{ width:100%; border:none; border-radius:11px; padding:14px 18px; font-size:1em; font-weight:700; font-family:inherit; cursor:pointer; background:var(--accent); color:#fff; transition:filter .15s,transform .05s; }
  .cf-btn:hover{ filter:brightness(1.08); }
  .cf-btn:active{ transform:translateY(1px); }
  .cf-err{ display:block; min-height:1em; font-size:.84em; color:#ffb4a0; text-align:center; }
  .cf-consent{ display:block; font-size:.74em; color:#79ab97; text-align:center; line-height:1.55; }
  .cf-result{ text-align:center; margin-top:8px; }
  .cf-result-lab{ display:block; text-transform:uppercase; letter-spacing:.2em; font-size:10.5px; color:#8fc7b3; margin:0 0 8px; }
  .cf-big{ font-size:clamp(2.4rem,9vw,3.4rem); font-family:'Raleway',sans-serif; font-weight:700; color:#fff; line-height:1; letter-spacing:-.01em; }
  .cf-big-sub{ display:block; margin-top:12px; font-size:.9em; color:#bfe0d2; line-height:1.5; }
  .cf-rows{ list-style:none; padding:0; margin:22px 0 0; display:grid; gap:1px; background:rgba(255,255,255,.1); border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.1); }
  .cf-rows li{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:12px 16px; background:#0e2a20; font-size:.92em; }
  .cf-rows li span{ color:#9fc5b6; }
  .cf-rows li b{ color:#fff; font-weight:600; }
  .cf-note{ margin:18px auto 0; max-width:480px; font-size:.78em; color:#79ab97; line-height:1.55; }
  .cf-actions{ margin-top:18px; display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap; }

/* ---- circadian window grid (ported verbatim from the circadian page) ---- */
  /* ===== Circadian Cycles App — infographic blocks ===== */
  .ccy-eyebrow{ text-align:center; text-transform:uppercase; letter-spacing:.3em; font-size:11px; font-weight:700; color:var(--accent-light); margin:0 0 10px; }
  .ccy-eyebrow.on-light{ color:var(--accent); }
  .ccy-h{ text-align:center; margin:0 0 8px; font-size:clamp(1.4rem,3vw,2rem); font-family:'Raleway',sans-serif; }
  .ccy-sub{ text-align:center; max-width:660px; margin:0 auto 26px; font-size:.98em; line-height:1.65; }
  /* 24-hour body-clock arc */
  .ccy-arcwrap{ max-width:920px; margin:0 auto; }
  .ccy-arc{ width:100%; height:auto; display:block; }
  .ccy-marks{ display:grid; grid-template-columns:repeat(8,1fr); gap:8px; max-width:920px; margin:16px auto 0; }
  .ccy-mark{ text-align:center; }
  .ccy-mark i{ display:block; width:10px; height:10px; border-radius:50%; margin:0 auto 8px; box-shadow:0 0 0 3px rgba(255,255,255,.06); }
  .ccy-mark b{ display:block; font-size:11px; font-weight:700; color:#eafaf3; line-height:1.2; }
  .ccy-mark span{ display:block; font-size:9.5px; color:#9fc5b6; margin-top:2px; }
  @media(max-width:760px){ .ccy-marks{ grid-template-columns:repeat(4,1fr); row-gap:18px; } }
  @media(max-width:430px){ .ccy-marks{ grid-template-columns:repeat(2,1fr); } }
  /* grouped feature grid — the 19 windows */
  .ccy-group{ margin-top:30px; }
  .ccy-gh{ display:flex; align-items:baseline; gap:10px; margin:0 0 14px; padding-bottom:8px; border-bottom:1px solid rgba(4,120,87,.18); }
  .ccy-gh b{ font-family:'Raleway',sans-serif; font-size:1.05rem; color:var(--accent); font-weight:700; }
  .ccy-gh span{ font-size:.72em; letter-spacing:.12em; text-transform:uppercase; color:#8a9a92; margin-left:auto; }
  .ccy-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media(max-width:820px){ .ccy-grid{ grid-template-columns:repeat(2,1fr); } }
  @media(max-width:520px){ .ccy-grid{ grid-template-columns:1fr; } }
  .ccy-card{ position:relative; background:#fff; border:1px solid #e4e0d6; border-left:3px solid var(--accent); border-radius:12px; padding:16px; }
  .ccy-card .ic{ font-size:1.35rem; line-height:1; }
  .ccy-card b{ display:block; margin-top:8px; font-size:.96em; color:var(--ink,#23202b); font-weight:700; }
  .ccy-card p{ margin:5px 0 0; font-size:.83em; line-height:1.5; color:#5a6b62; }
  .ccy-card.contested{ border-left-color:#c9872f; }
  .ccy-badge{ position:absolute; top:12px; right:12px; font-size:8.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#a9721f; background:rgba(201,135,47,.12); border:1px solid rgba(201,135,47,.4); border-radius:20px; padding:3px 8px; }
  /* science credibility band */
  .ccy-scichips{ display:flex; flex-wrap:wrap; gap:9px; justify-content:center; max-width:840px; margin:6px auto 0; }
  .ccy-scichip{ font-size:.82em; color:#dff3ea; background:rgba(16,185,129,.10); border:1px solid rgba(52,211,153,.3); border-radius:30px; padding:7px 14px; }
  .ccy-scichip s{ text-decoration:none; color:#7fc9b0; }
  /* precision stat trio */
  .ccy-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:780px; margin:26px auto 0; }
  @media(max-width:560px){ .ccy-stats{ grid-template-columns:1fr; } }
  .ccy-stat{ text-align:center; padding:18px 14px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); }
  .ccy-stat b{ display:block; font-size:1.5rem; color:#fff; font-family:'Raleway',sans-serif; line-height:1; }
  .ccy-stat span{ display:block; margin-top:6px; font-size:.8em; color:#9fc5b6; }
