/* ============================================================
   Cosmicalley — article + insights styles (v89)
   Uses the tokens already defined in styles.css (:root).
   Namespaced so nothing collides with the core stylesheet.
   ============================================================ */

/* ---------- article shell ---------- */
.article{max-width:44rem;margin:0 auto;padding:0 clamp(1.2rem,5vw,2rem)}
.article .eyebrow{display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--cyan);margin:0 0 1.4rem}
.article h1{font-size:clamp(2rem,4.6vw,3.1rem);margin:0 0 1.1rem}
.article h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:3.4rem 0 .9rem}
.article .deck{font-family:var(--body);font-size:clamp(1.05rem,1.7vw,1.3rem);color:var(--mut);
  line-height:1.5;margin:0 0 .8rem;font-weight:300}
.article .meta{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);border-top:1px solid var(--edge);padding-top:1.2rem;margin:1.8rem 0 2.6rem}
.article .author{color:var(--tx);text-decoration:none;border-bottom:1px solid transparent}
.article .author:hover{color:var(--cyan);border-bottom-color:var(--cyan)}
.article .li{width:12px;height:12px;margin-left:5px;vertical-align:-1px;opacity:.85}
.article p{font-size:1.05rem;line-height:1.75;color:var(--tx);margin:0 0 1.3rem;font-weight:300}
.article p.lead{font-size:1.2rem;color:var(--tx)}
.article strong{font-weight:500;color:#fff}
.article em{font-style:italic}
.article a{color:var(--cyan)}
.article ul{padding-left:1.2rem;margin:0 0 1.3rem}
.article ul li{font-size:1.05rem;line-height:1.7;color:var(--tx);margin:0 0 .5rem;font-weight:300}
.article .k{color:var(--cyan);font-weight:500}
.article blockquote{margin:2.6rem 0;padding:.2rem 0 .2rem 1.6rem;border-left:2px solid var(--cyan);
  font-family:var(--disp);font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.35;color:var(--tx);font-weight:600}

/* ---------- figures (break out wider than the text column) ---------- */
.article figure{width:min(64rem,94vw);margin:2.8rem 0;margin-left:50%;transform:translateX(-50%);
  border:1px solid var(--edge);border-radius:14px;overflow:hidden;background:#060910}
.article .scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.article .scroll svg{display:block;width:100%;min-width:660px;height:auto}
.article figcaption{font-family:var(--body);font-size:.85rem;color:var(--mut);padding:.9rem 1.2rem;
  border-top:1px solid var(--edge);font-weight:300}
.article .swipe{display:none;color:var(--cyan);font-weight:500}
@media(max-width:760px){.article .swipe{display:inline}}

/* ---------- ranked list (now / next / not yet) ---------- */
.article .rank{border:1px solid var(--edge);border-radius:12px;overflow:hidden;margin:1.8rem 0;background:var(--surface)}
.article .rank .row{display:flex;gap:1rem;padding:1.1rem 1.2rem;border-top:1px solid var(--edge)}
.article .rank .row:first-child{border-top:none}
.article .rank .tag{flex:0 0 6.5rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.14em;padding-top:.25rem}
.article .now{color:var(--cyan)}.article .next{color:var(--tx)}.article .notyet{color:var(--dim)}
.article .rank .b{font-size:.98rem;margin:0;line-height:1.65}
.article .rank .b b{color:#fff;font-weight:500}
@media(max-width:640px){.article .rank .row{flex-direction:column;gap:.4rem}}

/* ---------- worked trace card ---------- */
.article .trace{border:1px solid var(--edge);border-radius:14px;overflow:hidden;background:var(--surface);margin:1.8rem 0}
.article .th{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.9rem 1.2rem;
  border-bottom:1px solid var(--edge);background:var(--veil)}
.article .th .wo{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--tx)}
.article .th .ill{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:var(--mut);
  border:1px solid var(--edge);border-radius:20px;padding:.2rem .6rem;white-space:nowrap}
.article .tv{display:flex;gap:1.1rem;padding:1rem 1.2rem;border-top:1px solid var(--edge)}
.article .tv:first-of-type{border-top:none}
.article .tv .n{flex:0 0 4.6rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.14em;color:var(--cyan);padding-top:.2rem}
.article .tv.ok .n{color:var(--dim)}
.article .tv .body{flex:1}
.article .tv .w{font-size:1rem;color:#fff;margin:0 0 .25rem;font-weight:500}
.article .tv .d{font-size:.85rem;color:var(--mut);margin:0;line-height:1.6}
.article .tv .d b{color:var(--tx);font-weight:500}
.article .tf{padding:1rem 1.2rem;border-top:1px solid var(--edge);background:rgba(45,212,232,.06);
  font-size:.95rem;color:var(--tx)}
.article .tf b{color:var(--cyan);font-weight:500}
.article .econ{display:flex;gap:.9rem;margin:0 0 1.3rem}
.article .econ>div{flex:1;border:1px solid var(--edge);border-radius:10px;padding:.9rem 1rem;background:var(--surface)}
.article .econ .hi{border-color:var(--cyan-deep);background:rgba(45,212,232,.05)}
.article .econ h5{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;color:var(--mut);margin:0 0 .4rem}
.article .econ .hi h5{color:var(--cyan)}
.article .econ p{margin:0;font-size:.9rem;color:var(--tx)}
@media(max-width:640px){.article .tv{flex-direction:column;gap:.35rem}.article .econ{flex-direction:column}}

/* ---------- three-capacity framework ---------- */
.article .cap3{display:flex;gap:.9rem;margin:1.8rem 0}
.article .cap3 .c{flex:1;border:1px solid var(--edge);border-radius:12px;padding:1.1rem;background:var(--surface)}
.article .cap3 .c.hi{border-color:var(--cyan-deep);background:linear-gradient(180deg,rgba(45,212,232,.07),var(--surface))}
.article .cap3 h4{font-family:var(--disp);margin:0 0 .5rem;font-size:1rem;color:var(--tx)}
.article .cap3 .c.hi h4{color:var(--cyan)}
.article .cap3 p{font-size:.85rem;color:var(--mut);margin:0}
@media(max-width:640px){.article .cap3{flex-direction:column}}

/* ---------- CTA cards ---------- */
.article .cta{margin:2.4rem 0 0;padding:1.8rem;border:1px solid var(--edge);border-radius:16px;background:var(--surface)}
.article .cta.primary{border-color:var(--cyan-deep);background:linear-gradient(180deg,rgba(45,212,232,.07),var(--surface))}
.article .cta h3{font-family:var(--disp);margin:0 0 .5rem;font-size:1.25rem;color:var(--tx)}
.article .cta p{font-size:.95rem;color:var(--mut);margin:0 0 1.2rem}
.article .btn{display:inline-block;background:var(--cyan);color:#04121A;text-decoration:none;font-family:var(--mono);
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:.85rem 1.5rem;border-radius:100px;
  transition:transform .25s,box-shadow .25s}
.article .btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(45,212,232,.25)}
.article .btn.ghost{background:transparent;color:var(--cyan);border:1px solid var(--cyan-deep)}
.article .calc{font-size:.9rem;color:var(--mut);border-left:2px solid var(--edge);padding:.2rem 0 .2rem 1rem;margin:0 0 1.3rem}

/* ---------- sources ---------- */
.article .src{margin-top:3.4rem;border-top:1px solid var(--edge);padding-top:1.4rem}
.article .src h4{font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--dim);margin:0 0 .8rem}
.article .src p{font-size:.82rem;color:var(--mut);margin:0 0 .6rem;line-height:1.55}

/* ============================================================
   Insights hub
   ============================================================ */
.ilist{display:grid;gap:1.2rem}
.icard{display:block;border:1px solid var(--edge);border-radius:16px;padding:1.8rem;background:var(--surface);
  text-decoration:none;transition:border-color .3s,transform .3s,box-shadow .3s}
.icard:hover{border-color:var(--cyan-deep);transform:translateY(-3px);box-shadow:0 18px 50px rgba(0,0,0,.35)}
.icard__kick{display:block;margin-bottom:.9rem}
.icard__h{font-size:clamp(1.3rem,2.4vw,1.75rem);margin:0 0 .7rem;color:var(--tx);max-width:32ch}
.icard:hover .icard__h{color:#fff}
.icard__d{font-size:1rem;color:var(--mut);line-height:1.7;margin:0 0 1rem;font-weight:300;max-width:62ch}
.icard__tool{display:block;font-size:.85rem;color:var(--cyan);margin:0 0 1.1rem}
.icard__go{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.ifoot{margin-top:2.4rem;font-size:.88rem;color:var(--mut);font-weight:300}
.ifoot a{color:var(--cyan)}


/* ============================================================
   v94 — instrument layer (insights index + article polish)
   ============================================================ */
/* insights: editorial index rows (Linear-style ledger) */
.ilist{gap:0;border-top:1px solid var(--hair);margin-top:.4rem}
.icard{border:0;border-bottom:1px solid var(--hair);border-radius:0;background:transparent;padding:2.1rem 0 2.1rem 1rem;
  display:grid;grid-template-columns:13.5rem 1fr auto;column-gap:2.4rem;align-items:start;transition:background var(--d-def) var(--ease-out)}
.icard:hover{transform:none;box-shadow:none;border-color:var(--hair);background:linear-gradient(90deg,rgba(45,212,232,.05),transparent 62%)}
.icard__kick{grid-column:1;grid-row:1/span 3;margin:0;font-size:.6rem;line-height:1.75;letter-spacing:.2em;color:var(--dim);white-space:normal;padding-top:.5rem}
.icard__h{grid-column:2;font-size:clamp(1.25rem,2.1vw,1.6rem);letter-spacing:-.022em;margin-bottom:.6rem;max-width:34ch}
.icard__d{grid-column:2;margin-bottom:.8rem;font-size:.98rem}
.icard__tool{grid-column:2;margin:0;font-size:.85rem}
.icard__go{grid-column:3;grid-row:1;padding-top:.55rem;transition:transform var(--d-def) var(--ease-out),text-shadow .3s}
.icard:hover .icard__go{transform:translateX(4px);text-shadow:0 0 12px rgba(45,212,232,.6)}
@media(max-width:820px){.icard{grid-template-columns:1fr;column-gap:0;padding-left:0}.icard__kick{grid-row:auto;grid-column:1;margin-bottom:.8rem;padding-top:0}.icard__h,.icard__d,.icard__tool{grid-column:1}.icard__go{grid-column:1;grid-row:auto;margin-top:1rem;padding-top:0}}


/* ---- article page polish ----------------------------------------------------- */
.article h1{font-weight:600;letter-spacing:-.03em;line-height:1.05}
.article .eyebrow{display:inline-flex;align-items:center;gap:.65rem}
.article .eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px rgba(45,212,232,.9)}
.article h2{font-weight:600;letter-spacing:-.02em}
.article .meta{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:1rem 0}
.article .btn{border:1px solid transparent}
.article .btn.ghost{border-color:rgba(45,212,232,.45)}


/* article figures: same registration-mark + numbered caption system as the site */
body{counter-reset:fig}
.article figure{position:relative;border-color:var(--hair-2);border-radius:var(--r-panel);box-shadow:0 30px 80px -40px rgba(0,0,0,.9)}
.article figure::before,.article figure::after{content:'';position:absolute;width:12px;height:12px;pointer-events:none;z-index:4;border-color:rgba(45,212,232,.6);border-style:solid;opacity:.9}
.article figure::before{top:9px;left:9px;border-width:1px 0 0 1px}
.article figure::after{bottom:9px;right:9px;border-width:0 1px 1px 0}
.article figcaption::before{counter-increment:fig;content:'Fig. ' counter(fig,decimal-leading-zero) ' \2014  ';color:var(--cyan);font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;margin-right:.35rem}

/* article opening: same atmosphere as the page heroes */
section.band:has(>.article){position:relative;overflow:hidden;isolation:isolate}
section.band:has(>.article)::before{content:'';position:absolute;inset:0 0 auto 0;height:40rem;z-index:-1;pointer-events:none;
  background-image:var(--grid-dot);background-size:26px 26px;opacity:.45;
  -webkit-mask-image:radial-gradient(ellipse 55% 60% at 40% 0%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse 55% 60% at 40% 0%,#000 10%,transparent 70%)}
section.band:has(>.article)::after{content:'';position:absolute;z-index:-1;pointer-events:none;left:-10vw;top:-30vw;width:70vw;height:70vw;max-width:900px;max-height:900px;border-radius:50%;
  background:radial-gradient(circle,rgba(45,212,232,.11) 0%,rgba(143,124,246,.05) 42%,transparent 66%)}

.icard:focus-visible{outline:1px solid var(--cyan);outline-offset:-4px}
