/* CECO Lab Apps product system — 2026-09-18
   Versioned URL to prevent stale HTML/CSS combinations. */
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@500;600&display=swap');

:root{
  color-scheme:light;
  font-family:"Geist",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:#f3f2ed;
  color:#15181d;
  --app-bg:#f3f2ed;
  --app-paper:#ffffff;
  --app-paper-soft:#f8f7f3;
  --app-ink:#15181d;
  --app-muted:#5b6470;
  --app-line:#d7d9dc;
  --app-line-strong:#bfc4ca;
  --app-blue:#2451d6;
  --app-blue-dark:#17348d;
  --app-navy:#101722;
  --app-navy-2:#172033;
  --app-signal:#35bff0;
  --app-max:1240px;
}
*{box-sizing:border-box}
html{background:var(--app-bg);scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:
    linear-gradient(90deg,transparent calc(50% - .5px),rgba(21,24,29,.025) 50%,transparent calc(50% + .5px)),
    var(--app-bg);
  color:var(--app-ink);
  font:400 16px/1.65 "Geist",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--app-blue-dark)}
img{max-width:100%}
code{
  display:inline;
  border:1px solid #d3d8df;
  border-radius:6px;
  background:#eef1f5;
  padding:.12rem .36rem;
  color:#263140;
  font:500 .9em/1.3 "Geist Mono",monospace;
  overflow-wrap:anywhere;
}
.page{
  width:min(calc(100% - 56px),var(--app-max));
  margin:0 auto;
  padding:0;
}
.topbar{
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:76px;
  border-bottom:1px solid var(--app-line);
  background:rgba(243,242,237,.92);
  backdrop-filter:blur(18px);
}
.topbar::before{
  content:"";
  position:fixed;
  z-index:-1;
  inset:0 calc((100vw - min(100vw - 56px,var(--app-max)))/-2) auto;
  height:76px;
  border-bottom:1px solid var(--app-line);
  background:rgba(243,242,237,.92);
  pointer-events:none;
}
.site-mark{
  display:flex;
  align-items:baseline;
  gap:.42rem;
  color:var(--app-ink)!important;
  font-size:1rem;
  font-weight:700;
  letter-spacing:-.035em;
}
.site-mark small{
  color:var(--app-muted);
  font:500 .78rem/1.2 "Geist Mono",monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.topbar-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.45rem 1.25rem;min-width:0}
.topbar-links a{
  color:#4c5561;
  font-size:.88rem;
  font-weight:600;
  white-space:nowrap;
}
.topbar-links a[aria-current="page"]{color:var(--app-ink)}
.topbar-links a[aria-current="page"]::after{
  content:"";
  display:block;
  height:2px;
  margin-top:5px;
  background:var(--app-blue);
}
.eyebrow,.brand,.label,.section-index,.doc-kicker{
  margin:0;
  color:var(--app-blue);
  font:650 .82rem/1.35 "Geist",system-ui,sans-serif;
  letter-spacing:.095em;
  text-transform:uppercase;
}
.hero{
  position:relative;
  padding:5.6rem 0 4.5rem;
}
.hero h1,h1{
  max-width:13ch;
  margin:.75rem 0 0;
  color:var(--app-ink);
  font-size:clamp(3.35rem,7vw,7rem);
  font-weight:500;
  line-height:.9;
  letter-spacing:-.065em;
}
.lead,.muted{
  max-width:760px;
  margin:1.35rem 0 0;
  color:var(--app-muted);
  font-size:1.08rem;
  line-height:1.65;
}
.meta{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:1.45rem;
}
.meta span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  border:1px solid #d1d5db;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  padding:.44rem .7rem;
  color:#4f5863;
  font:600 .82rem/1.2 "Geist",system-ui,sans-serif;
}
.actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.45rem;
}
.actions a,.actions span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border:1px solid #c6cbd2;
  border-radius:8px;
  padding:.72rem 1rem;
  background:#fff;
  color:var(--app-ink);
  font-size:.9rem;
  font-weight:650;
}
.actions a.primary,.actions a:not(.secondary){
  border-color:var(--app-blue);
  background:var(--app-blue);
  color:#fff;
}
.actions a.secondary{color:var(--app-blue);background:#fff}
.actions a:hover{
  border-color:var(--app-blue-dark);
  background:var(--app-blue-dark);
  color:#fff;
}
.actions span{background:#f1f2f4;color:#626b76}
.footer{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem .9rem;
  margin-top:4rem;
  padding-top:1.4rem;
  border-top:1px solid var(--app-line);
  color:#68717c;
  font-size:.88rem;
}
.footer a{color:#4e5865}
.footer a:hover{color:var(--app-blue)}

/* Product shelf */
.apps-index .hero{padding-bottom:3rem}
.shelf-hero{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(290px,.55fr);
  gap:5rem;
  align-items:end;
}
.shelf-hero h1{max-width:11ch}
.shelf-hero-aside{
  border-left:1px solid var(--app-line-strong);
  padding-left:1.5rem;
}
.shelf-hero-aside strong{
  display:block;
  max-width:15ch;
  color:var(--app-ink);
  font-size:1.35rem;
  line-height:1.18;
  letter-spacing:-.03em;
}
.shelf-hero-aside p{
  margin:.8rem 0 0;
  color:var(--app-muted);
  font-size:.92rem;
}
.product-shelf{
  display:grid;
  gap:1.4rem;
  padding:0 0 2rem;
}
.product-entry{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);
  min-height:430px;
  overflow:hidden;
  border:1px solid var(--app-line);
  border-radius:20px;
  background:var(--app-paper);
  box-shadow:0 18px 54px rgba(21,24,29,.06);
}
.product-entry:nth-child(even){grid-template-columns:minmax(420px,1.12fr) minmax(0,.88fr)}
.product-entry:nth-child(even) .product-entry-copy{order:2}
.product-entry:nth-child(even) .product-visual{order:1}
.product-entry-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(2rem,4vw,3.4rem);
}
.product-id{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--app-line);
  color:#636c77;
  font:650 .82rem/1.3 "Geist",system-ui,sans-serif;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.product-entry h2{
  max-width:9ch;
  margin:1.15rem 0 .75rem;
  color:var(--app-ink);
  font-size:clamp(2.5rem,4.6vw,4.8rem);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.06em;
}
.product-entry p{
  max-width:520px;
  margin:0;
  color:var(--app-muted);
  line-height:1.65;
}
.product-entry .meta{margin-top:1.25rem}
.product-visual{
  position:relative;
  display:grid;
  place-items:center;
  min-width:0;
  min-height:430px;
  overflow:hidden;
  background:#e9ebf0;
}
.product-visual--workbench{padding:2rem;background:#111827}
.product-visual--workbench::before{
  content:"";
  position:absolute;
  inset:9% 7%;
  border:1px solid rgba(255,255,255,.11);
  border-radius:20px;
  background:rgba(255,255,255,.03);
}
.product-visual--workbench img{
  position:relative;
  z-index:1;
  width:min(100%,760px);
  border:1px solid rgba(255,255,255,.15);
  border-radius:12px;
  box-shadow:0 30px 70px rgba(0,0,0,.28);
}
.product-visual--server{
  padding:2rem;
  background:
    radial-gradient(circle at 82% 14%,rgba(36,81,214,.10),transparent 22rem),
    #e4e8ed;
}
.product-visual--server::before{
  content:"";
  position:absolute;
  inset:9% 7%;
  border:1px solid rgba(21,24,29,.10);
  border-radius:20px;
  background:rgba(255,255,255,.38);
}
.product-visual--server img{
  position:relative;
  z-index:1;
  width:min(100%,760px);
  border:1px solid rgba(21,24,29,.12);
  border-radius:12px;
  background:#fff;
  box-shadow:0 30px 70px rgba(21,24,29,.16);
}

/* NRS interface composition */
.product-visual--nrs{
  background:
    radial-gradient(circle at 72% 18%,rgba(53,191,240,.16),transparent 22rem),
    linear-gradient(145deg,#0c1320,#151d2b 60%,#0d1420);
  padding:2rem;
}
.nrs-console{
  width:min(100%,620px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:24px;
  background:#101722;
  color:#fff;
  box-shadow:0 34px 90px rgba(0,0,0,.32);
}
.nrs-console-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1rem 1.1rem;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.nrs-console-head strong{
  font-size:1rem;
  letter-spacing:-.03em;
}
.nrs-console-head span{
  color:#9faabd;
  font:600 .66rem/1 "Geist Mono",monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.nrs-console-body{padding:1.1rem}
.nrs-now{
  display:grid;
  grid-template-columns:76px 1fr auto;
  gap:1rem;
  align-items:center;
  padding:1rem;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(36,81,214,.22),rgba(53,191,240,.08));
}
.nrs-disc{
  display:grid;
  place-items:center;
  width:76px;
  aspect-ratio:1;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  background:
    radial-gradient(circle,#101722 0 7%,#35bff0 8% 10%,#1d2a40 11% 24%,#111827 25% 42%,#243047 43% 45%,#111827 46%);
}
.nrs-disc::after{content:"NRS";color:#fff;font:600 .66rem/1 "Geist Mono",monospace;letter-spacing:.08em}
.nrs-now small{display:block;color:#9eacc2;font-size:.72rem}
.nrs-now strong{display:block;margin-top:.2rem;font-size:1.2rem;line-height:1.15}
.nrs-play{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#fff;
  color:#111827;
  font-size:.9rem;
}
.nrs-wave{
  display:flex;
  align-items:end;
  gap:3px;
  height:30px;
  margin-top:.65rem;
}
.nrs-wave i{
  display:block;
  width:3px;
  border-radius:999px;
  background:#35bff0;
}
.nrs-wave i:nth-child(1){height:26%}.nrs-wave i:nth-child(2){height:63%}.nrs-wave i:nth-child(3){height:40%}.nrs-wave i:nth-child(4){height:86%}.nrs-wave i:nth-child(5){height:58%}.nrs-wave i:nth-child(6){height:94%}.nrs-wave i:nth-child(7){height:47%}.nrs-wave i:nth-child(8){height:72%}.nrs-wave i:nth-child(9){height:35%}.nrs-wave i:nth-child(10){height:61%}
.nrs-console-nav{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.55rem;
  margin-top:.8rem;
}
.nrs-console-nav span{
  min-width:0;
  border:1px solid rgba(255,255,255,.09);
  border-radius:10px;
  padding:.65rem .5rem;
  color:#aab5c7;
  font-size:.72rem;
  text-align:center;
}
.nrs-console-nav span:first-child{border-color:rgba(53,191,240,.4);background:rgba(53,191,240,.08);color:#fff}
.nrs-console-foot{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.1rem;
  border-top:1px solid rgba(255,255,255,.09);
  color:#8f9cb0;
  font:500 .65rem/1.3 "Geist Mono",monospace;
}
.nrs-console--large{width:min(100%,680px)}

/* Product page */
.nrs-product .hero{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(480px,1.15fr);
  gap:4rem;
  align-items:center;
  padding:4.5rem 0;
}
.nrs-product .hero-copy{min-width:0}
.nrs-product .hero h1{max-width:7ch}
.nrs-product .hero-visual{
  min-width:0;
  padding:2rem;
  border-radius:24px;
  background:
    radial-gradient(circle at 75% 5%,rgba(53,191,240,.18),transparent 17rem),
    #111827;
}
.section{
  padding:4.2rem 0;
  border-top:1px solid var(--app-line);
}
.section-head{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:2rem;
  align-items:start;
  margin-bottom:2rem;
}
.section-head h2,h2{
  margin:0;
  color:var(--app-ink);
  font-size:clamp(2.1rem,4vw,4rem);
  font-weight:500;
  line-height:.95;
  letter-spacing:-.055em;
}
.section-head p{
  max-width:680px;
  margin:.2rem 0 0;
  color:var(--app-muted);
  font-size:1rem;
}
.feature-clusters{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--app-line-strong);
}
.feature-cluster{
  min-height:245px;
  padding:1.5rem 1.6rem 1.7rem 0;
  border-bottom:1px solid var(--app-line);
}
.feature-cluster:nth-child(odd){border-right:1px solid var(--app-line);padding-right:1.6rem}
.feature-cluster:nth-child(even){padding-left:1.6rem}
.feature-cluster span{
  color:var(--app-blue);
  font:700 .82rem/1.25 "Geist",system-ui,sans-serif;
}
.feature-cluster h3{
  margin:2rem 0 .65rem;
  color:var(--app-ink);
  font-size:1.3rem;
  line-height:1.15;
}
.feature-cluster p{
  margin:0;
  color:var(--app-muted);
  font-size:.96rem;
}
.privacy-ledger{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--app-line);
  border-radius:18px;
  background:#fff;
}
.privacy-ledger div{padding:1.6rem}
.privacy-ledger div+div{border-left:1px solid var(--app-line)}
.privacy-ledger strong{
  display:block;
  color:var(--app-ink);
  font-size:1.35rem;
  letter-spacing:-.03em;
}
.privacy-ledger span{
  display:block;
  margin-top:.35rem;
  color:var(--app-muted);
  font-size:.88rem;
}
.status-panel{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(260px,.28fr);
  gap:3rem;
  align-items:end;
  margin-top:4rem;
  padding:2rem;
  border-radius:20px;
  background:var(--app-navy);
  color:#fff;
}
.status-panel h2{color:#fff}
.status-panel p{margin:.8rem 0 0;color:#b6c0cf}
.status-panel .doc-kicker{color:#8fcff0}
.status-panel .actions{margin:0;justify-content:flex-end}
.status-panel .actions a{border-color:#fff;background:#fff;color:#111827}
.status-panel .actions a.secondary{border-color:rgba(255,255,255,.25);background:transparent;color:#fff}

/* Docs */
.doc-page .hero{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(320px,.48fr);
  gap:4rem;
  align-items:end;
  padding:4.6rem 0 3.2rem;
}
.doc-page .hero h1{max-width:10ch;font-size:clamp(3rem,6vw,5.8rem)}
.doc-stamp{
  border-left:1px solid var(--app-line-strong);
  padding-left:1.5rem;
}
.doc-stamp dl{margin:0}
.doc-stamp div{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:1rem;
  padding:.6rem 0;
  border-bottom:1px solid var(--app-line);
}
.doc-stamp dt{
  color:#626b76;
  font:650 .82rem/1.4 "Geist",system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.doc-stamp dd{margin:0;color:var(--app-ink);font-weight:600}
.policy-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:3rem;
  border:1px solid var(--app-line);
  border-radius:16px;
  background:#fff;
}
.policy-summary div{padding:1.1rem 1.2rem}
.policy-summary div+div{border-left:1px solid var(--app-line)}
.policy-summary strong{display:block;font-size:.96rem}
.policy-summary span{display:block;margin-top:.25rem;color:var(--app-muted);font-size:.86rem;line-height:1.45}
.policy-layout{
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:4rem;
  align-items:start;
  padding-top:2rem;
  border-top:1px solid var(--app-line);
}
.policy-nav{
  position:sticky;
  top:100px;
  display:grid;
  gap:.18rem;
}
.policy-nav strong{
  margin-bottom:.55rem;
  color:#626b76;
  font:650 .82rem/1.35 "Geist",system-ui,sans-serif;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.policy-nav a{
  display:block;
  padding:.32rem 0;
  color:#5c6570;
  font-size:.82rem;
  line-height:1.3;
}
.policy-nav a:hover{color:var(--app-blue)}
main.policy{min-width:0;padding:0;border:0}
.policy>p:first-child{
  margin:0 0 2.2rem;
  padding-bottom:2rem;
  border-bottom:1px solid var(--app-line);
  color:#424a54;
  font-size:1.08rem;
}
.policy h2{
  scroll-margin-top:100px;
  margin:3.2rem 0 .85rem;
  font-size:clamp(1.65rem,2.5vw,2.45rem);
  line-height:1.05;
}
.policy h2:first-of-type{margin-top:0}
.policy h3{
  margin:1.6rem 0 .55rem;
  color:var(--app-ink);
  font-size:1.08rem;
}
.policy p,.policy li{
  color:var(--app-muted);
  font-size:1rem;
  line-height:1.72;
}
.policy ul{padding-left:1.2rem}
.policy li+li{margin-top:.4rem}
.notice{
  margin-top:2rem;
  border-left:3px solid var(--app-blue);
  background:#e9edf9;
  padding:1rem 1.1rem;
  color:#3d485a;
  font-size:.92rem;
}

/* Support */
.support-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--app-line-strong);
}
.support-item{
  position:relative;
  min-height:210px;
  padding:1.5rem 1.7rem 1.7rem 0;
  border-bottom:1px solid var(--app-line);
}
.support-item:nth-child(odd){border-right:1px solid var(--app-line);padding-right:1.7rem}
.support-item:nth-child(even){padding-left:1.7rem}
.support-item .support-number{
  color:var(--app-blue);
  font:700 .82rem/1.25 "Geist",system-ui,sans-serif;
}
.support-item h3{margin:1.8rem 0 .55rem;font-size:1.18rem}
.support-item p{margin:0;color:var(--app-muted);font-size:.94rem}
.panel{
  margin-top:1.5rem;
  border:1px solid var(--app-line);
  border-radius:18px;
  background:#fff;
  padding:1.5rem;
}
.panel h2{font-size:clamp(1.9rem,3vw,3rem)}
.panel p{color:var(--app-muted)}

/* Legal registry */
.legal-registry{
  border-top:1px solid var(--app-line-strong);
}
.legal-row{
  display:grid;
  grid-template-columns:150px minmax(0,1fr) auto;
  gap:2rem;
  align-items:start;
  padding:1.6rem 0;
  border-bottom:1px solid var(--app-line);
}
.legal-status{
  display:inline-flex;
  width:max-content;
  border:1px solid #c9d0e3;
  border-radius:999px;
  padding:.4rem .6rem;
  color:var(--app-blue);
  font:700 .82rem/1.2 "Geist",system-ui,sans-serif;
}
.legal-row h2{font-size:clamp(1.8rem,3vw,2.7rem)}
.legal-row p{max-width:650px;margin:.5rem 0 0;color:var(--app-muted)}
.legal-row .actions{margin:0}

/* Legacy aliases retained for old markup */
.feature-list,.grid,.meta-grid{list-style:none}
.feature-list{padding:0}
.feature-list li,.info-box,.meta-card,.card{
  border:1px solid var(--app-line);
  border-radius:14px;
  background:#fff;
  color:var(--app-muted);
}
.feature-list li,.info-box,.meta-card,.card{padding:1rem}
.list{display:grid;gap:1rem}
.card h2{margin:.8rem 0 .55rem}
.meta-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
  margin-top:1.4rem;
}
.meta-card span{
  display:block;
  color:#626b76;
  font:650 .82rem/1.35 "Geist",system-ui,sans-serif;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.meta-card strong{display:block;margin-top:.3rem;color:var(--app-ink)}

a:focus-visible{
  outline:3px solid rgba(36,81,214,.28);
  outline-offset:3px;
}

@media(max-width:980px){
  .shelf-hero,.nrs-product .hero,.doc-page .hero{grid-template-columns:1fr;gap:2.2rem}
  .shelf-hero-aside,.doc-stamp{border-left:0;border-top:1px solid var(--app-line);padding:1.2rem 0 0}
  .product-entry,.product-entry:nth-child(even){grid-template-columns:1fr}
  .product-entry:nth-child(even) .product-entry-copy,.product-entry:nth-child(even) .product-visual{order:initial}
  .product-visual{min-height:360px}
  .nrs-product .hero-visual{max-width:760px}
  .section-head{grid-template-columns:150px 1fr}
  .policy-summary{grid-template-columns:repeat(2,1fr)}
  .policy-summary div:nth-child(3){border-left:0;border-top:1px solid var(--app-line)}
  .policy-summary div:nth-child(4){border-top:1px solid var(--app-line)}
  .policy-layout{grid-template-columns:190px minmax(0,1fr);gap:2.5rem}
  .status-panel{grid-template-columns:1fr}
  .status-panel .actions{justify-content:flex-start}
}
@media(max-width:720px){
  .page{width:min(calc(100% - 28px),var(--app-max));padding-bottom:42px}
  .topbar{position:relative;min-height:auto;padding:1rem 0;align-items:flex-start}
  .topbar::before{display:none}
  .site-mark small{display:none}
  .topbar-links{justify-content:flex-end;flex-wrap:wrap;gap:.55rem 1rem}
  .topbar-links a{font-size:.78rem}
  .hero{padding:3.4rem 0 2.7rem}
  .hero h1,h1{font-size:clamp(2.8rem,14vw,4.8rem)}
  .product-entry-copy{padding:1.5rem}
  .product-visual,.product-entry{min-height:0}
  .product-visual{padding:1.2rem;min-height:330px}
  .product-visual--workbench img{border-radius:8px}
  .nrs-console{border-radius:18px}
  .nrs-now{grid-template-columns:62px 1fr auto;gap:.75rem}
  .nrs-disc{width:62px}
  .nrs-console-nav{grid-template-columns:repeat(2,1fr)}
  .nrs-console-foot{flex-direction:column;gap:.35rem}
  .nrs-product .hero{padding:3.4rem 0 2.7rem}
  .nrs-product .hero-visual{padding:1rem}
  .section{padding:3.2rem 0}
  .section-head{grid-template-columns:1fr;gap:.8rem}
  .feature-clusters,.support-grid{grid-template-columns:1fr}
  .feature-cluster,.feature-cluster:nth-child(odd),.feature-cluster:nth-child(even),
  .support-item,.support-item:nth-child(odd),.support-item:nth-child(even){
    min-height:0;
    border-right:0;
    padding:1.35rem 0;
  }
  .privacy-ledger{grid-template-columns:1fr}
  .privacy-ledger div+div{border-left:0;border-top:1px solid var(--app-line)}
  .status-panel{padding:1.4rem}
  .doc-page .hero{padding:3.4rem 0 2.6rem}
  .doc-stamp div{grid-template-columns:90px 1fr}
  .policy-summary{grid-template-columns:1fr}
  .policy-summary div+div,.policy-summary div:nth-child(3),.policy-summary div:nth-child(4){border-left:0;border-top:1px solid var(--app-line)}
  .policy-layout{grid-template-columns:1fr;padding-top:0}
  .policy-nav{
    position:relative;
    top:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.25rem 1rem;
    padding:1.2rem 0;
    border-top:1px solid var(--app-line);
    border-bottom:1px solid var(--app-line);
  }
  .policy-nav strong{grid-column:1/-1}
  .legal-row{grid-template-columns:1fr;gap:.7rem}
  .legal-row .actions{margin-top:.5rem}
  .meta-grid{grid-template-columns:1fr}
  .actions{display:grid}
  .actions a,.actions span{width:100%}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}


/* CECO Lab Apps — restrained interaction layer */
:root{
  --app-shadow-xs:0 1px 2px rgba(20,24,29,.035),0 10px 28px rgba(20,24,29,.045);
  --app-shadow-sm:0 4px 10px rgba(20,24,29,.045),0 22px 54px rgba(20,24,29,.08);
}
.topbar{box-shadow:0 1px 0 rgba(20,24,29,.03)}
.product-entry{
  transition:border-color .28s ease,box-shadow .28s ease,transform .28s cubic-bezier(.16,1,.3,1);
}
.product-entry:hover{
  transform:translateY(-3px);
  border-color:#bdc3cb;
  box-shadow:var(--app-shadow-sm);
}
.product-visual--workbench img,
.product-visual--server img{
  transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .35s ease;
}
.product-entry:hover .product-visual--workbench img,
.product-entry:hover .product-visual--server img{transform:translateY(-3px) scale(1.008)}
.nrs-console{
  transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .3s ease,box-shadow .3s ease;
}
.product-entry:hover .nrs-console,.hero-visual:hover .nrs-console{
  transform:translateY(-3px);
  border-color:rgba(53,191,240,.28);
}
.nrs-play{position:relative}
.nrs-play::after{
  content:"";
  position:absolute;
  inset:-5px;
  border:1px solid rgba(53,191,240,.28);
  border-radius:50%;
  opacity:.75;
}
.actions a{
  transition:transform .18s cubic-bezier(.16,1,.3,1),background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.actions a:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(36,81,214,.13)}
.policy-nav a,.topbar-links a{transition:color .18s ease}
.legal-row,.support-item,.feature-cluster{transition:background-color .2s ease}
.legal-row:hover,.support-item:hover,.feature-cluster:hover{background:rgba(255,255,255,.34)}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;transform:none!important}
}




/* Shared shell refinements */
.topbar{
  min-height:82px;
  border-bottom:0;
}
.topbar::before{
  height:82px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--app-line);
  box-shadow:0 8px 28px rgba(21,24,29,.035);
}
.site-mark{
  flex-direction:column;
  align-items:flex-start;
  gap:.13rem;
  line-height:1;
}
.site-mark span{
  font-size:1.12rem;
  font-weight:750;
  letter-spacing:-.035em;
}
.site-mark small{
  color:var(--app-muted);
  font:600 .8rem/1.25 "Geist",system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.topbar-links{gap:1.55rem}
.topbar-links a{
  position:relative;
  padding:.45rem 0;
  color:#4c5561;
  font-size:1rem;
  font-weight:620;
  line-height:1.2;
}
.topbar-links a[aria-current="page"]::after{
  position:absolute;
  right:0;
  bottom:-.45rem;
  left:0;
  margin:0;
}

.product-footer{
  position:relative;
  z-index:0;
  display:grid;
  grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);
  gap:4rem;
  margin-top:5rem;
  padding:3rem 0 2.6rem;
  border-top:0;
  color:#fff;
}
.product-footer::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 calc((100vw - min(100vw - 56px,var(--app-max)))/-2);
  background:#111827;
}
.product-footer-brand strong{
  display:block;
  color:#f8fafc;
  font-size:1rem;
  font-weight:700;
  letter-spacing:-.025em;
}
.product-footer-brand p{
  max-width:390px;
  margin:.5rem 0 0;
  color:#bec8d7;
  font-size:.92rem;
  line-height:1.55;
}
.product-footer-side{
  display:grid;
  gap:1.2rem;
  justify-items:end;
}
.product-footer-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.7rem 1.35rem;
}
.product-footer-nav a{
  color:#bec8d7;
  font-size:.92rem;
  font-weight:600;
}
.product-footer-nav a:hover{color:#fff}
.product-footer-meta{
  color:#9eabc0;
  font:550 .82rem/1.4 "Geist",system-ui,sans-serif;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.apps-index .product-footer{margin-top:3.5rem}

@media(max-width:720px){
  .topbar{align-items:center;gap:1rem}
  .site-mark span{font-size:1.06rem}
  .site-mark small{font-size:.8rem}
  .topbar-links{gap:.5rem 1rem}
  .topbar-links a{font-size:.9rem}
  .product-footer{
    grid-template-columns:1fr;
    gap:1.4rem;
    margin-top:3.5rem;
    padding:2.5rem 0 2.2rem;
  }
  .product-footer-side{justify-items:start}
  .product-footer-nav{justify-content:flex-start}
}


/* 2026-09-23: documented projects in the Apps catalog */
.other-products{padding-top:3.8rem}
.product-compact-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:2rem;
}
.product-compact-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.9rem;
  border:1px solid var(--app-line);
  border-radius:16px;
  background:var(--app-paper);
  padding:1.5rem;
}
.product-compact-card .product-id{
  flex-wrap:wrap;
  row-gap:.5rem;
  padding-bottom:.85rem;
}
.product-compact-card h3{
  margin:.25rem 0 0;
  color:var(--app-ink);
  font-size:clamp(1.35rem,2.3vw,1.75rem);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-.035em;
}
.product-compact-card p{
  margin:0;
  color:var(--app-muted);
  font-size:1rem;
  line-height:1.65;
}
.product-compact-card a,
.product-compact-note{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  margin-top:auto;
  font-size:.88rem;
  font-weight:650;
  line-height:1.45;
}
.product-compact-card a{color:var(--app-blue);text-decoration:none}
.product-compact-card a:hover{text-decoration:underline}
.product-compact-note{color:#626b76}
@media(max-width:720px){
  .product-compact-grid{grid-template-columns:1fr;gap:.85rem}
  .product-compact-card{padding:1.25rem;gap:.7rem}
  .product-compact-card p{font-size:.96rem}
}

/* Apps catalog: separate product capabilities from distribution notes. */
.apps-index .product-compact-card{display:flex;flex-direction:column;min-width:0}
.apps-index .product-compact-card .product-compact-detail{
  margin-top:.8rem;
  padding-top:.8rem;
  border-top:1px solid var(--app-line);
  color:var(--app-muted);
  font-size:.9rem;
  line-height:1.55;
}
.apps-index .product-compact-card>a,
.apps-index .product-compact-card>.product-compact-note{margin-top:auto;padding-top:1rem}
.product-compact-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:auto;padding-top:1rem}
.product-compact-actions a{margin-top:0;min-height:36px}
.product-compact-actions + .product-compact-note{margin-top:0;padding-top:.2rem}
.apps-index .topbar-links{flex-wrap:wrap;justify-content:flex-end;row-gap:.4rem}
@media(max-width:720px){
  .apps-index .topbar{flex-direction:column;align-items:stretch;gap:.8rem}
  .apps-index .topbar-links{justify-content:flex-start;gap:.45rem .9rem}
}

/* Apps catalog: keyboard access and in-page wayfinding. */
.skip-link{
  position:fixed;
  z-index:100;
  top:12px;
  left:12px;
  transform:translateY(-160%);
  border-radius:8px;
  background:var(--app-navy);
  padding:.7rem 1rem;
  color:#fff;
  font-weight:700;
}
.skip-link:focus{transform:translateY(0);color:#fff}
.catalog-jumps{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.6rem}
.catalog-jumps a{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:44px;
  border:1px solid var(--app-line-strong);
  border-radius:8px;
  background:#fff;
  padding:.6rem .85rem;
  color:var(--app-ink);
  font-size:.9rem;
  font-weight:650;
  transition:border-color .18s ease,background-color .18s ease;
}
.catalog-jumps a:hover{border-color:var(--app-blue);background:#edf1ff;color:var(--app-blue-dark)}
#featured-products,#lab-projects,#other-products{scroll-margin-top:110px}
@media(max-width:720px){
  .catalog-jumps{display:grid;grid-template-columns:1fr}
  #featured-products,#lab-projects,#other-products{scroll-margin-top:16px}
}

/* Apps catalog: editorial hierarchy and clearly non-interactive status labels. */
.apps-index .product-compact-grid{gap:1.15rem;align-items:stretch}
.apps-index .product-compact-card{padding:clamp(1.35rem,2.2vw,1.85rem);gap:.8rem}
.apps-index .product-compact-card .product-id{
  align-items:baseline;
  column-gap:1.25rem;
  color:#515b68;
  font-size:.84rem;
  line-height:1.5;
  letter-spacing:.045em;
}
.apps-index .product-compact-card h3{margin:.35rem 0 .1rem;font-size:clamp(1.5rem,2.1vw,1.85rem);line-height:1.14}
.apps-index .product-compact-card p{max-width:62ch;line-height:1.6}
.apps-index .product-compact-card .product-compact-detail{
  margin-top:.35rem;
  padding-top:1rem;
  line-height:1.6;
}
.apps-index .product-compact-card>.product-compact-note{
  align-self:flex-start;
  min-height:0;
  margin-top:auto;
  padding:.75rem 0 0;
  color:#4b5563;
  font-size:.82rem;
  line-height:1.45;
}
.apps-index .product-compact-card>a:focus-visible,
.apps-index .catalog-jumps a:focus-visible{
  outline:3px solid var(--app-blue);
  outline-offset:4px;
  border-radius:4px;
}
.apps-index #soilsaas{scroll-margin-top:110px}
@media(max-width:720px){
  .apps-index .product-compact-grid{gap:.9rem}
  .apps-index .product-compact-card{padding:1.25rem;gap:.7rem}
  .apps-index .product-compact-card .product-id{font-size:.82rem;letter-spacing:.035em}
  .apps-index #soilsaas{scroll-margin-top:16px}
}

/* Keep the status below its own copy instead of pinning it to the next row's baseline. */
.apps-index .product-compact-card>.product-compact-note,
.apps-index .product-compact-card>a{margin-top:auto}
.apps-index .product-compact-card>.product-compact-note{padding-top:1.15rem}
@media(hover:hover){
  .apps-index .product-compact-card{transition:border-color .18s ease,box-shadow .18s ease}
  .apps-index .product-compact-card:hover{border-color:var(--app-line-strong);box-shadow:0 8px 24px rgba(21,24,29,.045)}
}

/* Deep links from Home: keep the selected card below the catalog header. */
.apps-index .product-compact-card[id]{scroll-margin-top:110px}
.apps-index .product-compact-card[id]:target{border-color:var(--app-blue);box-shadow:0 0 0 2px rgba(36,81,214,.12)}
@media(max-width:720px){.apps-index .product-compact-card[id]{scroll-margin-top:16px}}

/* Shared small-screen navigation for the Apps catalog and all NRS static pages. */
@media(max-width:720px){
  .apps-index .topbar,
  .nrs-product .topbar,
  .doc-page .topbar{
    flex-direction:column;
    align-items:stretch;
    gap:.7rem;
    padding:.95rem 0 .75rem;
  }
  .apps-index .topbar-links,
  .nrs-product .topbar-links,
  .doc-page .topbar-links{
    justify-content:flex-start;
    align-items:center;
    flex-wrap:wrap;
    gap:.1rem .35rem;
  }
  .apps-index .topbar-links a,
  .nrs-product .topbar-links a,
  .doc-page .topbar-links a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:.25rem .4rem;
    font-size:.88rem;
    line-height:1.25;
  }
  .apps-index .topbar-links a[aria-current="page"],
  .nrs-product .topbar-links a[aria-current="page"],
  .doc-page .topbar-links a[aria-current="page"]{
    text-decoration:underline;
    text-decoration-color:var(--app-blue);
    text-decoration-thickness:2px;
    text-underline-offset:.45em;
  }
  .apps-index .topbar-links a[aria-current="page"]::after,
  .nrs-product .topbar-links a[aria-current="page"]::after,
  .doc-page .topbar-links a[aria-current="page"]::after{display:none}
}

/* Apps catalog only: align its editorial hero with Home without changing NRS policy pages. */
.apps-index .hero.shelf-hero{
  grid-template-columns:minmax(0,1.55fr) minmax(220px,.55fr);
  align-items:center;
  gap:clamp(1.5rem,3vw,3rem);
  padding:clamp(2.5rem,4vw,3.6rem) 0 2.4rem;
}
.apps-index .shelf-hero h1{
  max-width:19ch;
  font-size:clamp(2.9rem,5.15vw,4.9rem);
  line-height:.98;
  letter-spacing:-.055em;
}
.apps-index .hero .lead{max-width:670px;margin-top:1rem;font-size:1rem;line-height:1.6}
.apps-index .shelf-hero-aside strong{font-size:1.08rem;max-width:none}
.apps-index .catalog-jumps{margin-top:1.2rem}
.apps-index .topbar{gap:1rem}
.apps-language-switch{display:flex;flex-shrink:0;gap:.15rem;align-items:center}
:is(.apps-language-switch button, .apps-language-switch a){
  min-width:auto;
  min-height:auto;
  padding:.3rem .24rem;
  border:0;
  border-radius:0;
  background:transparent;
  color:#5b6470;
  font:600 .82rem/1.25 "Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  cursor:pointer;
}
:is(.apps-language-switch button[aria-pressed="true"], .apps-language-switch a[aria-current="page"]){background:transparent;color:var(--app-ink)}
:is(.apps-language-switch button, .apps-language-switch a):focus-visible{outline:3px solid var(--app-blue);outline-offset:2px}
@media(max-width:980px){
  .apps-index .hero.shelf-hero{grid-template-columns:1fr;gap:1.3rem}
  .apps-index .shelf-hero-aside{max-width:620px}
}
@media(max-width:720px){
  .apps-index .hero.shelf-hero{padding:2.3rem 0 1.8rem}
  .apps-index .shelf-hero h1{font-size:clamp(2.55rem,10.8vw,3.5rem)}
  .apps-language-switch{justify-content:flex-start}
}

@media(min-width:721px) and (max-width:1080px){
  .apps-index .topbar{flex-wrap:wrap;gap:.2rem .8rem;padding:.4rem 0}
  .apps-index .topbar-links{order:3;flex:1 1 100%;justify-content:flex-start}
  .apps-index .apps-language-switch{margin-left:auto}
}

/* NRS product and support: the CA/ES/EN control follows the same header layout as Apps. */
@media(min-width:721px) and (max-width:1080px){
  .nrs-product .topbar,
  .nrs-support .topbar{flex-wrap:wrap;gap:.2rem .8rem;padding:.4rem 0}
  .nrs-product .topbar-links,
  .nrs-support .topbar-links{order:3;flex:1 1 100%;justify-content:flex-start}
  .nrs-product .apps-language-switch,
  .nrs-support .apps-language-switch{margin-left:auto}
}
@media(max-width:720px){
  .nrs-product .apps-language-switch,
  .nrs-support .apps-language-switch{justify-content:flex-start}
}


/* Apps catalog shell: match the React public header without affecting NRS static routes. */
.apps-index .apps-shell-header{position:sticky;top:0}
.apps-index .apps-shell-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.apps-index .apps-shell-cta{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:42px;
  border:1px solid var(--app-blue);
  border-radius:8px;
  background:var(--app-blue);
  padding:.68rem .92rem;
  color:#fff!important;
  font-size:.9rem;
  font-weight:700;
  line-height:1.2;
}
.apps-index .apps-shell-cta:hover{background:var(--app-blue-dark);border-color:var(--app-blue-dark)}
.apps-index .apps-nav-mobile-cta,
.apps-index .apps-menu-toggle{display:none}
.apps-index .apps-menu-toggle{
  place-content:center;
  gap:6px;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid #d5d9df;
  border-radius:10px;
  background:#fff;
  color:var(--app-ink);
  cursor:pointer;
}
.apps-index .apps-menu-toggle span{
  display:block;
  width:20px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .2s ease,opacity .2s ease;
}
.apps-index .apps-menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.apps-index .apps-menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.apps-index .apps-menu-toggle:focus-visible,
.apps-index .apps-shell-cta:focus-visible{outline:3px solid rgba(36,81,214,.28);outline-offset:3px}

@media(max-width:1180px) and (min-width:721px){
  .apps-index .apps-shell-cta{display:none}
}

@media(max-width:900px){
  .apps-index .topbar.apps-shell-header{
    position:sticky;
    top:0;
    z-index:80;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:.35rem;
    min-height:64px;
    padding:0;
    border-bottom:1px solid var(--app-line);
    background:rgba(255,255,255,.985);
    box-shadow:0 8px 28px rgba(21,24,29,.05);
    backdrop-filter:blur(16px);
  }
  .apps-index .topbar.apps-shell-header::before{display:none}
  .apps-index .site-mark{min-width:0;flex:1 1 auto}
  .apps-index .site-mark small{display:none}
  .apps-index .site-mark span{font-size:1.06rem}
  .apps-index .apps-shell-actions{margin-left:auto;gap:.2rem}
  .apps-index .apps-language-switch{justify-content:flex-end;gap:0}
  .apps-index :is(.apps-language-switch button, .apps-language-switch a){
    min-width:38px;
    min-height:44px;
    padding:0 .35rem;
    border-radius:8px;
    font-size:.82rem;
  }
  .apps-index .apps-shell-cta{display:none}
  .apps-index .apps-menu-toggle{display:grid;flex:0 0 44px}
  .apps-index .topbar-links{
    display:none;
    position:absolute;
    z-index:120;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 16px 18px;
    border-bottom:1px solid var(--app-line);
    background:rgba(255,255,255,.985);
    box-shadow:0 18px 40px rgba(20,24,29,.10);
    backdrop-filter:blur(16px);
  }
  .apps-index .topbar-links.is-open{display:flex}
  .apps-index .topbar-links a{
    display:flex;
    align-items:center;
    min-height:50px;
    padding:.3rem .2rem;
    border-bottom:1px solid #eceef1;
    color:#343a43;
    font-size:1rem;
    font-weight:620;
    line-height:1.25;
  }
  .apps-index .topbar-links a[aria-current="page"]{
    color:var(--app-blue);
    text-decoration:none;
  }
  .apps-index .topbar-links a[aria-current="page"]::after{display:none}
  .apps-index .apps-nav-mobile-cta{
    display:flex!important;
    justify-content:space-between;
    min-height:50px!important;
    margin-top:12px;
    padding:.75rem .95rem!important;
    border:0!important;
    border-radius:10px;
    background:var(--app-blue);
    color:#fff!important;
    font-size:.98rem!important;
    font-weight:700!important;
  }
  .apps-index .apps-nav-mobile-cta:hover{background:var(--app-blue-dark)}
}

@media(prefers-reduced-motion:reduce){
  .apps-index .apps-menu-toggle span{transition:none}
}


/* Neo Radio Station real product screenshots */
.nrs-product .nrs-interface-section{overflow:hidden}
.nrs-screen-gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.2rem,3vw,2.6rem);
  align-items:start;
  max-width:880px;
  margin:2.2rem auto 0;
}
.nrs-screen-shot{
  margin:0;
  padding:clamp(.7rem,1.4vw,1rem);
  border:1px solid var(--app-line);
  border-radius:28px;
  background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(230,237,244,.42));
  box-shadow:0 24px 60px rgba(15,23,42,.09);
}
.nrs-screen-shot img{
  display:block;
  width:100%;
  height:auto;
  border-radius:20px;
  background:#05070a;
}
.nrs-screen-shot figcaption{
  padding:.9rem .35rem .2rem;
  color:var(--app-muted);
  font-size:.82rem;
  letter-spacing:.02em;
}
@media (max-width:680px){
  .nrs-screen-gallery{
    grid-template-columns:1fr;
    max-width:420px;
    gap:1.4rem;
  }
  .nrs-screen-shot{border-radius:22px}
  .nrs-screen-shot img{border-radius:16px}
}

/* 2026-09-27: real product screenshots must remain fully visible inside catalog cards. */
.apps-index .product-entry{
  min-height:520px;
}
.apps-index .product-visual--screenshot,
.apps-index .product-visual--workbench,
.apps-index .product-visual--server{
  overflow:hidden;
}
.apps-index .product-visual--nrs{
  min-height:520px;
  padding:1.75rem;
}
.apps-index .product-visual--nrs img{
  position:relative;
  z-index:1;
  display:block;
  width:auto;
  height:460px;
  max-width:100%;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  box-shadow:0 30px 70px rgba(0,0,0,.28);
}
.apps-index .product-visual--workbench img,
.apps-index .product-visual--server img{
  display:block;
  width:calc(100% - 1rem);
  height:auto;
  max-width:760px;
  max-height:none;
  object-fit:contain;
  object-position:center;
}
.apps-index .product-entry:hover .product-visual--nrs img,
.apps-index .product-entry:hover .product-visual--workbench img,
.apps-index .product-entry:hover .product-visual--server img{
  transform:translateY(-2px);
}
@media(max-width:980px){
  .apps-index .product-entry{min-height:0}
  .apps-index .product-visual--nrs{min-height:500px}
  .apps-index .product-visual--workbench,
  .apps-index .product-visual--server{min-height:420px}
}
@media(max-width:720px){
  .apps-index .product-visual--nrs{min-height:420px;padding:1rem}
  .apps-index .product-visual--nrs img{height:390px}
  .apps-index .product-visual--workbench,
  .apps-index .product-visual--server{min-height:280px;padding:1rem}
  .apps-index .product-visual--workbench img,
  .apps-index .product-visual--server img{width:100%}
}

/* 2026-09-27: Neo Radio public Play/support surface */
.nrs-product .nrs-hero-shot{
  margin:0;
  display:grid;
  place-items:center;
  gap:.75rem;
}
.nrs-product .nrs-hero-shot img{
  display:block;
  width:auto;
  height:min(62vh,560px);
  max-width:100%;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:#05070a;
  box-shadow:0 30px 70px rgba(0,0,0,.28);
}
.nrs-product .nrs-hero-shot figcaption{
  color:#aab5c7;
  font-size:.86rem;
  letter-spacing:.04em;
}
.nrs-public-links{padding-top:3.2rem}
.nrs-resource-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.8rem;
}
.nrs-resource-card{
  display:flex;
  min-height:180px;
  flex-direction:column;
  border:1px solid var(--app-line);
  border-radius:16px;
  background:#fff;
  padding:1.25rem;
  color:var(--app-ink);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.nrs-resource-card:hover{
  transform:translateY(-2px);
  border-color:#b9c0ca;
  box-shadow:var(--app-shadow-xs);
}
.nrs-resource-card>span{
  color:var(--app-blue);
  font:700 .84rem/1.25 "Geist",system-ui,sans-serif;
}
.nrs-resource-card strong{
  margin-top:auto;
  font-size:1.1rem;
  letter-spacing:-.025em;
}
.nrs-resource-card small{
  margin-top:.35rem;
  color:var(--app-muted);
  font-size:.88rem;
  line-height:1.5;
}
.panel a{color:var(--app-blue)}
@media(max-width:980px){
  .nrs-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .nrs-product .nrs-hero-shot img{height:440px}
  .nrs-resource-grid{grid-template-columns:1fr}
  .nrs-resource-card{min-height:140px}
}

/* Neo Radio privacy/support ledgers with expanded local-data controls */
.privacy-ledger--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.privacy-ledger--five{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:980px){
  .privacy-ledger--four,
  .privacy-ledger--five{grid-template-columns:repeat(2,minmax(0,1fr))}
  .privacy-ledger--four div:nth-child(n+3),
  .privacy-ledger--five div:nth-child(n+3){border-top:1px solid var(--app-line)}
  .privacy-ledger--four div:nth-child(odd),
  .privacy-ledger--five div:nth-child(odd){border-left:0}
}
@media(max-width:720px){
  .privacy-ledger--four,
  .privacy-ledger--five{grid-template-columns:1fr}
  .privacy-ledger--four div,
  .privacy-ledger--five div{border-left:0}
  .privacy-ledger--four div+div,
  .privacy-ledger--five div+div{border-top:1px solid var(--app-line)}
}



/* URL-based language links share the existing selector appearance. */
.lab-site-lang a, .apps-language-switch a { text-decoration: none; }


/* 2026-10-02: frame real screenshots by their content ratio. */
.apps-index .product-entry{align-items:start;min-height:0}
.apps-index .product-visual--workbench,.apps-index .product-visual--server{min-height:0;aspect-ratio:16/10;padding:1rem;display:flex;align-items:center;justify-content:center;border-radius:14px}
.apps-index .product-visual--workbench img,.apps-index .product-visual--server img{width:100%;max-width:none;height:auto;object-fit:contain;transform:none}
.apps-index .product-visual--nrs{min-height:0;padding:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:14px}
.apps-index .product-visual--nrs img{height:min(560px,65vw);max-height:none;margin:0 auto}
.apps-index .product-entry h2{font-size:clamp(2.5rem,4.3vw,4rem);line-height:1.02;letter-spacing:-.05em}
.apps-index .product-entry-copy>p,.apps-index .product-compact-card>p{font-size:1rem;line-height:1.65}
.apps-index .product-compact-actions a{display:inline-flex;align-items:center;min-height:44px;padding:.65rem .8rem;border:1px solid #c8cdd5;border-radius:8px;background:#fff;font-size:.95rem}
.apps-index .product-compact-actions a[data-release="language-doctor-open"],.apps-index .product-compact-actions a[data-release="n43-open"]{background:#2451d6;border-color:#2451d6;color:#fff}
@media(max-width:720px){.apps-index .product-visual--nrs img{height:460px;max-width:100%}.apps-index .product-visual--workbench,.apps-index .product-visual--server{padding:.7rem}}
