/* ============================================================
   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)}
