/* Nordic Canon Constellation — homepage instrument system */
.nordicConstellation{
  --nc-bg:#09080d;
  --nc-panel:#111017;
  --nc-panel-2:#15121a;
  --nc-ink:#ece8e1;
  --nc-muted:#8f8982;
  --nc-line:rgba(236,232,225,.12);
  --nc-gold:#c9a24b;
  --nc-red:#a82922;
  --nc-serif:"Cormorant Garamond", Georgia, serif;
  --nc-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  color:var(--nc-ink);
  background:
    radial-gradient(circle at 18% 0%, rgba(201,162,75,.09), transparent 28rem),
    radial-gradient(circle at 80% 30%, rgba(168,41,34,.07), transparent 26rem),
    linear-gradient(180deg, rgba(255,255,255,.025), transparent 30%),
    var(--nc-bg);
  border-top:1px solid var(--nc-line);
  border-bottom:1px solid var(--nc-line);
}
.nordicConstellation::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(var(--nc-line) 1px, transparent 1px) 0 0/100% 4.1rem,
    linear-gradient(90deg, rgba(236,232,225,.07) 1px, transparent 1px) 0 0/4.1rem 100%;
  opacity:.16;
  pointer-events:none;
  z-index:-1;
}
.nordicConstellation__inner{width:min(1180px, calc(100% - 2rem)); margin:0 auto; padding:clamp(3rem,8vw,6.5rem) 0;}
.nordicConstellation__head{display:grid; grid-template-columns:minmax(0, 1fr) minmax(260px, 380px); gap:clamp(1.4rem,4vw,3rem); align-items:end; margin-bottom:clamp(2rem,5vw,3.8rem);}
.ncEyebrow{display:inline-flex; align-items:center; gap:.7rem; margin:0 0 1rem; color:var(--nc-gold); font-family:var(--nc-sans); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;}
.ncEyebrow::before{content:""; width:2.4rem; height:1px; background:var(--nc-gold); opacity:.7;}
.nordicConstellation h2{font-family:var(--nc-serif); font-size:clamp(2.35rem,7vw,5.4rem); line-height:.88; letter-spacing:-.045em; margin:0; font-weight:600;}
.ncLead{margin:0; color:#cfc8bd; font-size:clamp(1rem,2vw,1.16rem); line-height:1.65; max-width:34rem;}
.ncLead strong{color:var(--nc-ink); font-weight:600;}
.ncMapline{display:grid; grid-template-columns:repeat(4,1fr); gap:.45rem; margin:0 0 2rem; position:relative;}
.ncMapline::before{content:""; position:absolute; left:6%; right:6%; top:50%; height:1px; background:linear-gradient(90deg, transparent, var(--nc-gold), transparent); opacity:.4; transform:translateY(-50%);}
.ncMapPoint{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:.45rem; color:var(--nc-muted); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;}
.ncMapPoint::before{content:none !important;}
.ncFlag{display:inline-flex; align-items:center; justify-content:center; width:.86rem; height:.86rem; font-size:.78rem; line-height:1; filter:saturate(.95) brightness(.94) drop-shadow(0 0 .28rem rgba(213,170,93,.18)); transform:translateY(.02rem);}
.ncMapPoint strong{font-family:var(--nc-serif); color:var(--nc-ink); font-size:1.05rem; letter-spacing:.02em; text-transform:none;}
.ncCards{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem;}
.ncCard{position:relative; min-height:26rem; display:flex; flex-direction:column; justify-content:space-between; padding:1.15rem; text-decoration:none; color:inherit; background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)), var(--nc-panel); border:1px solid var(--nc-line); border-radius:9px; overflow:hidden; transition:transform .45s ease, border-color .45s ease, box-shadow .45s ease, background .45s ease;}
.ncCard::before{content:attr(data-index); position:absolute; right:.85rem; top:.72rem; font-family:var(--nc-serif); font-size:4.6rem; line-height:.75; color:rgba(236,232,225,.035); pointer-events:none;}
.ncCard::after{content:""; position:absolute; inset:auto 0 0; height:42%; background:radial-gradient(circle at 50% 100%, rgba(201,162,75,.11), transparent 70%); opacity:.5; pointer-events:none;}
.ncCard:hover{transform:translateY(-6px); border-color:rgba(201,162,75,.45); box-shadow:0 28px 55px -34px rgba(0,0,0,.85), 0 0 0 1px rgba(201,162,75,.08) inset; background:linear-gradient(180deg, rgba(201,162,75,.05), rgba(255,255,255,.012)), var(--nc-panel-2);}
.ncCard__top{position:relative; z-index:1;}
.ncNation{display:flex; justify-content:space-between; gap:.75rem; color:var(--nc-muted); font-family:var(--nc-sans); font-size:.64rem; letter-spacing:.17em; text-transform:uppercase; padding-bottom:.85rem; border-bottom:1px solid var(--nc-line);}
.ncAuthor{font-family:var(--nc-serif); font-size:clamp(1.58rem,2.5vw,2.08rem); line-height:.95; letter-spacing:-.03em; margin:1.2rem 0 .8rem;}
.ncRole{margin:0; color:var(--nc-muted); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;}
.ncInstrument{position:relative; z-index:1; margin-top:2.2rem;}
.ncInstrument__label{display:block; color:var(--nc-gold); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; margin:0 0 .6rem;}
.ncInstrument h3{font-family:var(--nc-serif); font-size:clamp(1.42rem,2vw,1.75rem); line-height:1; margin:0 0 .8rem; font-weight:600;}
.ncInstrument p{margin:0; color:#cfc8bd; line-height:1.55; font-size:.93rem;}
.ncState{position:relative; z-index:1; display:inline-flex; align-self:flex-start; margin-top:1.3rem; padding:.48rem .65rem; border:1px solid var(--nc-line); border-radius:999px; color:var(--nc-muted); font-size:.64rem; letter-spacing:.15em; text-transform:uppercase;}
.ncCard--produced .ncState{color:#e9d7a3; border-color:rgba(201,162,75,.36);}
.ncCard--funded .ncState{color:#e4d0b3; border-color:rgba(201,162,75,.28);}
.ncCard--progress .ncState{color:#d4c8c1;}
.ncCard--lab .ncState{color:#e9d7a3; border-color:rgba(201,162,75,.36);}
.ncCard__cta{position:relative; z-index:1; margin-top:1.8rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; color:var(--nc-ink); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; border-top:1px solid var(--nc-line); padding-top:.9rem;}
.ncCard__cta span:last-child{color:var(--nc-gold); font-size:1rem; transition:transform .35s ease;}
.ncCard:hover .ncCard__cta span:last-child{transform:translateX(.25rem);}
.ncNote{display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--nc-line); color:var(--nc-muted); font-size:.82rem; line-height:1.55;}
.ncNote strong{color:var(--nc-ink); font-weight:600;}
.ncNote a{color:var(--nc-gold); text-decoration:none; border-bottom:1px solid rgba(201,162,75,.35);}
@media (max-width: 980px){
  .nordicConstellation__head{grid-template-columns:1fr;}
  .ncCards{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ncCard{min-height:23rem;}
}
@media (max-width: 640px){
  .nordicConstellation__inner{width:min(100% - 1.2rem, 1180px); padding:3rem 0;}
  .ncCards{grid-template-columns:1fr;}
  .ncCard{min-height:auto;}
  .ncMapline{grid-template-columns:repeat(2,1fr); row-gap:1rem;}
  .ncMapline::before{display:none;}
  .ncNote{display:block;}
}
