/* =========================================================================
   NEO library.org 3.4 · the five libraries, the collections and the living gadgets
   (Atlas · Culture · Nature · Science · Art · Gastronomy · Symbols · the three days · the NEO Atlas map)
   Loaded after assets/styles.css on every page and uses only the site tokens (--ink, --c1…--c5,
   --band…), so day and night modes follow the same switch. Every animation stops with "reduce motion".
   3.3 → 3.4: libraries bar with the three days · hero with sun rays, constellations, shooting stars
   and parallax · the day cards (Maya, Mexica, NEO) · the Earth right now (day and night) · the
   interactive NEO Atlas · symbol river · emblems for every library · scroll-driven reveals ·
   one map per library (peoples, nature, art, the table) · "Today in the library" on every content page ·
   the alignment pass: cards line up row by row (subgrid) and every grid fills its rows at every width.
   3.6: the final QA pass (text contrast WCAG 2.2 AA in day and night modes).
   Author: Librarian Joséf Sánchez Coach · technology: SESY.AI, Semantic Systems & AI
   ========================================================================= */

/* ---------- shared motion tokens ---------- */
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
:root{--ease:cubic-bezier(.2,.8,.2,1);--glass:rgba(255,255,255,.06);--glass-b:rgba(255,255,255,.13)}

/* ---------- 3.6 · WCAG 2.2 AA text contrast (final QA) ----------
   --i2 (orange ink) #C9531C gave 4.43:1 on white → #B54916 gives 5.3:1 (day mode only; night keeps #FF8A57).
   "Learn more" keeps its colour at full strength (it was 75 % opacity: 3.6:1 → 5.4:1).
   Section numbers on the dark bands take a light tint of --i3 (3.3:1 → 8.7:1). Card tags (.item .tag, .cards .tag) and
   the "Enter" of the five libraries mix their key colour with the ink: ≥ 5:1 in day and night modes. */
:root{--i2:#B54916}
.eco-more{opacity:1}
.band-sec .eyebrow .num{color:color-mix(in srgb,var(--i3) 45%,#fff)}
.cards>.card .tag{color:color-mix(in srgb,var(--k) 50%,var(--ink))}   /* the 3.2 cards: key colour + ink, ≥ 5:1 on the tinted card */
mark{color:var(--ink)}   /* highlighted words keep the full ink: night mode 4.0:1 → 8:1 on the violet mark */
/* "reduce motion" stops every animation and transition, as the header of this file promises (WCAG 2.2.2, 2.3.3):
   one-time entrances end at once in their final state; endless ones (rays, orbits, waves, rings, aurora) stand still */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}}

/* ---------- the libraries bar (under the main menu, every page) ---------- */
.rooms{position:relative;border-bottom:1px solid var(--line);background:var(--bg)}
.rooms .wrap{display:flex;align-items:center;gap:10px;min-height:54px}
.rooms-libs{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1 1 auto}
.rooms-libs::-webkit-scrollbar{display:none}
.rooms b.lbl{flex:none;margin-right:6px;font:400 .68rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.rooms-libs a{position:relative;flex:none;display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;color:var(--ink-2);text-decoration:none;font:500 .9rem/1 var(--f-text);transition:background .2s,color .2s}
.rooms-libs a .i{width:18px;height:18px;color:var(--k,var(--c4));transition:transform .35s var(--ease)}
.rooms-libs a:hover{background:var(--bg-2);color:var(--ink)}
.rooms-libs a:hover .i{transform:rotate(-12deg) scale(1.15)}
.rooms-libs a[aria-current="page"]{background:var(--ink);color:var(--bg)}
.rooms-libs a[aria-current="page"] .i{color:var(--c1)}
.rooms-libs .sep{flex:none;width:1px;height:22px;background:var(--line-2);margin:0 6px}
.rooms-libs a.k1{--k:var(--c4)}.rooms-libs a.k2{--k:var(--c3)}.rooms-libs a.k3{--k:var(--c5)}.rooms-libs a.k4{--k:var(--c2)}.rooms-libs a.k5{--k:var(--i2)}.rooms-libs a.k6{--k:var(--c2)}.rooms-libs a.k7{--k:var(--c4)}
.rooms-libs a .em{font-size:1rem;line-height:1}
/* the three days, small, on every page */
.days-mini{flex:none;display:inline-flex;align-items:center;gap:4px;padding:5px 6px 5px 6px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;font:400 .74rem/1 var(--f-mono);white-space:nowrap;transition:border-color .2s,box-shadow .2s}
.days-mini:hover{border-color:var(--ink);box-shadow:var(--shadow);color:var(--ink)}
.days-mini .dm{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 4px;border-radius:999px}
.days-mini .dm+.dm{border-left:1px solid var(--line);border-radius:0 999px 999px 0;padding-left:9px}
.days-mini .g{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:7px;background:#F4EBD6;overflow:hidden}
.days-mini .g img{width:22px;height:22px;object-fit:contain}
.days-mini .g svg{width:21px;height:21px;color:#2B2116}
.days-mini .dm.neo .g{background:transparent}
.days-mini .dm.neo .g svg{width:22px;height:22px;color:inherit}
.days-mini b{font-weight:700;color:var(--ink)}
@media (min-width:1180px){.rooms-libs{justify-content:center}}
@media (max-width:980px){.rooms .wrap{flex-wrap:wrap;gap:0 10px;padding-bottom:8px}.rooms-libs{flex-basis:100%}.days-mini{margin:0 auto}}
@media (max-width:420px){.days-mini .dm.neo{display:none}}

/* ---------- home · the first screen ---------- */
.hh{--px:0;--py:0;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(120% 90% at 70% 110%,#3A1E46 0%,#1E1638 38%,#0F0C1D 72%);color:#F4F1FF;min-height:min(780px,calc(100svh - 236px));display:grid;align-items:center}
.hh::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,#8C74FF,#FF5C9A,#FF7D45,#FFC94A,#2FD1BC,#8C74FF);background-size:200% 100%;animation:neoRibbon 9s linear infinite;z-index:3}
.hh-sky{position:absolute;inset:-20px;z-index:-1;pointer-events:none;transform:translate3d(calc(var(--px)*-10px),calc(var(--py)*-8px),0);transition:transform .6s var(--ease)}
.hh-sky svg{width:100%;height:100%;display:block}
.hh-sky .st{fill:#fff;animation:neoTwinkle 3.6s ease-in-out infinite alternate}
.hh-sky .cst{fill:none;stroke:rgba(255,255,255,.28);stroke-width:.6;stroke-dasharray:400;stroke-dashoffset:400;animation:neoDraw 5s var(--ease) 1.2s forwards}
.hh-shoot{position:absolute;top:12%;left:-10%;width:140px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,transparent,#fff 70%,#FFC94A);opacity:0;transform:rotate(-18deg);animation:neoShoot 11s linear 3s infinite;z-index:-1;pointer-events:none}
.hh-shoot.s2{top:28%;animation-delay:8.5s;animation-duration:13s;width:100px}
.hh .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:32px clamp(32px,5vw,80px);align-items:center;padding-block:clamp(36px,4.5vw,72px)}
.hh-text{display:grid;gap:22px;min-width:0}
.hh .eyebrow{color:#BDB6DA;margin:0}
.hh h1{color:#fff;font-size:clamp(2.6rem,6vw,5.4rem);line-height:.98;max-width:13ch}
.hh h1 .w{display:inline-block;opacity:0;transform:translateY(.45em) rotate(2deg);filter:blur(8px);animation:neoWord .9s var(--ease) forwards}
.hh h1 .spectrum{background:linear-gradient(92deg,#FFC94A 0%,#FF7D45 30%,#FF5C9A 60%,#A894FF 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-style:italic;background-size:200% 100%;animation:neoWord .9s var(--ease) forwards,neoFlow 8s ease-in-out 1s infinite alternate}
.hh .lede{color:#D6D0EE;max-width:52ch}
.hh .lede strong{color:#fff}
.hh .btn-ghost{color:#F4F1FF;border-color:rgba(244,241,255,.38)}
.hh .btn-ghost:hover{border-color:#fff;color:#fff}
.hh-text>*:not(h1){opacity:0;transform:translateY(18px);animation:neoIn .9s var(--ease) forwards}
.hh-text>.eyebrow{animation-delay:.05s}.hh-text>.lede{animation-delay:.7s}.hh-text>.actions{animation-delay:.85s}.hh-text>.hh-days{animation-delay:1s}
/* the three days in the first screen */
.hh-days{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.hh-days a{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 7px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-b);color:#E9E5FA;text-decoration:none;font:400 .78rem/1.2 var(--f-mono);transition:background .2s,border-color .2s,transform .2s}
.hh-days a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);transform:translateY(-2px);color:#fff}
.hh-days .g{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#F4EBD6;overflow:hidden;flex:none}
.hh-days .g img{width:27px;height:27px;object-fit:contain}
.hh-days .g svg{width:26px;height:26px;color:#2B2116}
.hh-days .neo .g{background:rgba(255,255,255,.08)}
.hh-days .neo .g svg{color:#FFC94A}
.hh-days b{color:#FFC94A;font-weight:700}
.hh-days small{display:block;color:#BDB6DA;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}
/* the scene: the NEO sun rises from the sea, its rays turn, the five libraries orbit around it */
.hh-art{position:relative;margin:0;aspect-ratio:1;width:100%;max-width:520px;justify-self:center;transform:translate3d(calc(var(--px)*8px),calc(var(--py)*6px),0);transition:transform .6s var(--ease)}
.hh-art svg{width:100%;height:100%;display:block;overflow:visible}
.hh-sun{transform-box:fill-box;transform-origin:50% 100%;animation:neoRise 2.6s var(--ease) both}
.hh-glow{transform-box:fill-box;transform-origin:50% 50%;animation:neoGlow 5s ease-in-out 2.4s infinite alternate}
.hh-rays{transform-origin:280px 280px;animation:neoSpin 120s linear infinite;opacity:0;animation-name:neoSpin,neoFade;animation-duration:120s,2s;animation-delay:0s,1.6s;animation-fill-mode:none,forwards;animation-iteration-count:infinite,1}
.hh-wave{animation:neoWave 4.8s ease-in-out infinite alternate}
.hh-wave:nth-of-type(2){animation-delay:-1.2s}.hh-wave:nth-of-type(3){animation-delay:-2.4s}
.hh-glint{stroke:#fff;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:10 18;animation:neoGlint 3.2s linear infinite;opacity:.7}
.hh-glint.g2{animation-duration:4.4s;opacity:.45}
.hh-orbit{transform-origin:280px 280px;animation:neoSpin 70s linear infinite}
.hh-orbit .hh-node{transform-box:fill-box;transform-origin:center;animation:neoSpin 70s linear infinite reverse}
.hh-ring{animation:neoDash 30s linear infinite}
.hh-node a{cursor:pointer}
.hh-node circle{fill:rgba(23,20,42,.72);stroke:rgba(255,255,255,.35);stroke-width:1.2;transition:stroke .2s,fill .2s}
.hh-node .pulse{fill:none;stroke:#FFC94A;stroke-width:1.5;opacity:0;animation:neoChase 10s linear infinite}
.hh-node:hover circle,.hh-node a:focus-visible circle{stroke:#FFC94A;fill:rgba(23,20,42,.92)}
.hh-node text{font:600 13px var(--f-text);fill:#F4F1FF;text-anchor:middle}
.hh-node use{color:#FFC94A}
@media (max-width:900px){.hh .wrap{grid-template-columns:1fr}.hh-art{max-width:300px;order:-1;margin-bottom:-18px}.hh{min-height:0}}
.hh-facts{border-bottom:1px solid var(--line);background:var(--bg)}
.hh-facts .hero-facts{border-top:0;margin:0;padding:22px 0;justify-content:space-between}

/* ---------- keyframes ---------- */
@keyframes neoIn{to{opacity:1;transform:none}}
@keyframes neoWord{to{opacity:1;transform:none;filter:none}}
@keyframes neoRise{from{transform:translateY(46%);opacity:.2}to{transform:none;opacity:1}}
@keyframes neoGlow{from{opacity:.55;transform:scale(.96)}to{opacity:.95;transform:scale(1.04)}}
@keyframes neoWave{from{transform:translateX(-10px)}to{transform:translateX(10px)}}
@keyframes neoSpin{to{transform:rotate(360deg)}}
@keyframes neoDash{to{stroke-dashoffset:-400}}
@keyframes neoFade{to{opacity:1}}
@keyframes neoTwinkle{from{opacity:.25}to{opacity:1}}
@keyframes neoDraw{to{stroke-dashoffset:0}}
@keyframes neoFlow{from{background-position:0 50%}to{background-position:100% 50%}}
@keyframes neoRibbon{to{background-position:200% 0}}
@keyframes neoGlint{to{stroke-dashoffset:-56}}
@keyframes neoShoot{0%{opacity:0;transform:translate(0,0) rotate(-18deg)}3%{opacity:1}12%{opacity:0;transform:translate(70vw,-22vw) rotate(-18deg)}100%{opacity:0;transform:translate(70vw,-22vw) rotate(-18deg)}}
@keyframes neoChase{0%,100%{opacity:0;r:38}4%{opacity:.9;r:38}14%{opacity:0;r:52}}
@keyframes neoUp{from{opacity:0;transform:translateY(28px) scale(.98)}to{opacity:1;transform:none}}
@keyframes neoBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes neoFlash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c1) 70%,transparent)}100%{box-shadow:0 0 0 18px transparent}}
@keyframes neoAurora{0%{transform:translate(0,0) scale(1) rotate(0)}100%{transform:translate(-6%,8%) scale(1.15) rotate(25deg)}}
@keyframes neoMarquee{to{transform:translateX(-50%)}}
@keyframes neoGlobe{to{background-position:-200% 0}}
@keyframes ptPulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
@keyframes phZoom{to{transform:scale(1.12)}}

/* ---------- scroll-driven reveals (modern browsers; others simply show everything) ---------- */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .items>.item,.libs5>.lib5,.fams>.fam,.cal-live>li,.days3>.day-card,.coll a,.agents>.agent,.sym-grid>article,.num-grid>li{animation:neoUp linear both;animation-timeline:view();animation-range:entry 0% entry 38%}
  }
}

/* ---------- page heroes: a slow aurora behind every title ---------- */
.page-hero::before{animation:neoAurora 22s ease-in-out infinite alternate}
.page-hero.room::after{content:"";position:absolute;left:-12%;bottom:-60%;width:min(56vw,760px);aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--c4) 20%,transparent),color-mix(in srgb,var(--c5) 8%,transparent) 55%,transparent 74%);pointer-events:none;animation:neoAurora 26s ease-in-out -8s infinite alternate-reverse}
.spectrum{background-size:200% 100%;animation:neoFlow 9s ease-in-out infinite alternate}
.page-hero.room .wrap{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}
@media (max-width:900px){.page-hero.room .wrap{grid-template-columns:1fr}}
.toc-mini{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.toc-mini a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;font:500 .9rem/1 var(--f-text);transition:border-color .2s,transform .2s}
.toc-mini a span{font:400 .7rem/1 var(--f-mono);color:var(--i3)}
.toc-mini a:hover{border-color:var(--ink);transform:translateY(-2px)}

/* ---------- emblems: the living picture of every library ---------- */
.emblem{position:relative;margin:0;aspect-ratio:1;width:100%;max-width:500px;justify-self:center;border-radius:50%;isolation:isolate}
.emblem .stage{position:absolute;inset:0;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 42%,#2A1F4F 0%,#17122E 55%,#0F0C1D 100%);box-shadow:var(--shadow-lg),inset 0 0 0 1px rgba(255,255,255,.08)}
.emblem .stage::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 18% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 72% 14%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 84% 62%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 30% 78%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 58% 88%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 10% 52%,#fff 50%,transparent 51%);opacity:.7;animation:neoTwinkle 4s ease-in-out infinite alternate;z-index:1}
.emblem .stage img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transform:scale(1.04);animation:phZoom 18s ease-in-out infinite alternate}
.emblem .stage::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 30%,rgba(15,12,29,.55) 72%);z-index:1}
.emblem .ring{position:absolute;inset:var(--in,8%);border-radius:50%;border:1px dashed rgba(255,255,255,.22);z-index:2;animation:neoSpin var(--t,60s) linear infinite}
.emblem .ring.rev{animation-direction:reverse}
.emblem .ring>span{position:absolute;left:50%;top:50%;width:var(--s,46px);height:var(--s,46px);margin:calc(var(--s,46px)/-2);display:grid;place-items:center;border-radius:50%;background:rgba(23,20,42,.78);border:1px solid rgba(255,255,255,.22);font-size:calc(var(--s,46px)*.52);line-height:1;transform:rotate(var(--a)) translate(var(--r)) rotate(calc(var(--a)*-1))}
.emblem .ring>span>i{display:block;font-style:normal;animation:neoSpin var(--t,60s) linear infinite reverse}
.emblem .ring.rev>span>i{animation-direction:normal}
.emblem .ring>span svg{width:70%;height:70%;color:#2B2116}
.emblem .ring>span.paper{background:#F4EBD6;border-color:#C9A84C}
.emblem .core{position:absolute;inset:34%;z-index:3;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.18),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.2);font-size:clamp(3rem,7vw,5rem);line-height:1;box-shadow:0 0 60px rgba(255,201,74,.25)}
.emblem .core svg{width:62%;height:62%}
.emblem .core .i{color:#FFC94A;width:48%;height:48%}
.emblem figcaption{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);z-index:4;padding:6px 12px;border-radius:999px;background:var(--ink);color:var(--bg);font:400 .68rem/1.3 var(--f-mono);white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis}
/* the globe of the atlas */
.globe{position:absolute;inset:16%;z-index:2;border-radius:50%;background:#0C5D86 url("img/neo-world.svg") repeat-x 0 0/auto 100%;animation:neoGlobe 48s linear infinite;box-shadow:inset -28px -18px 60px rgba(0,0,0,.55),inset 12px 10px 30px rgba(255,255,255,.18),0 0 70px rgba(46,197,232,.45)}
.globe::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.35),transparent 38%),linear-gradient(100deg,transparent 52%,rgba(8,6,20,.62) 78%)}
.moon-orbit{position:absolute;inset:6%;z-index:3;border-radius:50%;border:1px dashed rgba(255,255,255,.18);animation:neoSpin 26s linear infinite}
.moon-orbit::before{content:"";position:absolute;top:-9px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#C9C4DA 60%,#8E88A6);box-shadow:0 0 18px rgba(255,255,255,.5)}

/* ---------- photo plate ---------- */
.plate{position:relative;margin:0 0 clamp(28px,3.5vw,44px);border-radius:var(--r-lg);overflow:hidden;aspect-ratio:21/8;background:var(--band);box-shadow:var(--shadow-lg)}
.plate img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);animation:phZoom 16s ease-in-out infinite alternate}
.plate figcaption{position:absolute;left:14px;bottom:14px;padding:6px 10px;border-radius:10px;background:rgba(15,12,29,.6);color:#F4F1FF;font:400 .7rem/1.4 var(--f-mono)}
.plate::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--ribbon-x)}
@media (max-width:700px){.plate{aspect-ratio:16/9}}

/* ---------- the five libraries + the collections (home) ---------- */
.libs5{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}
.lib5{--k:var(--c4);grid-column:span 2;position:relative;display:grid;gap:12px;align-content:start;padding:28px;border-radius:var(--r-lg);border:1px solid color-mix(in srgb,var(--k) 30%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--k) 12%,var(--card)) 0,var(--card) 62%);text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.lib5:nth-child(4),.lib5:nth-child(5){grid-column:span 3}
.lib5::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--k)}
.lib5::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--ang),transparent 0 70%,var(--k) 85%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}
.lib5:hover::after{opacity:1;animation:neoAng 2.4s linear infinite}
@keyframes neoAng{to{--ang:360deg}}
.lib5:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);color:var(--ink)}
.lib5 .top{display:flex;align-items:center;justify-content:space-between}
.lib5 .n{font:400 .76rem/1 var(--f-mono);letter-spacing:.14em;color:var(--ink-2)}
.lib5 .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--k) 16%,transparent);color:var(--k);transition:transform .4s var(--ease)}
.lib5:hover .ic{transform:rotate(-8deg) scale(1.08)}
.lib5 .ic .i{width:28px;height:28px}
.lib5 h3{font:400 clamp(1.7rem,2.4vw,2.2rem)/1.05 var(--f-display);letter-spacing:-.01em}
.lib5 p{color:var(--ink-2);font-size:.98rem}
.lib5 .glyphs{display:flex;gap:8px;font-size:1.8rem;line-height:1}
.lib5 .glyphs span{display:inline-block}
.lib5:hover .glyphs span{animation:neoBob 1.2s ease-in-out infinite}
.lib5:hover .glyphs span:nth-child(2){animation-delay:.15s}.lib5:hover .glyphs span:nth-child(3){animation-delay:.3s}
.lib5 .go{display:inline-flex;align-items:center;gap:6px;font:600 .9rem/1 var(--f-text);color:color-mix(in srgb,var(--k) 50%,var(--ink));margin-top:4px}
.lib5 .count{font:400 .74rem/1.4 var(--f-mono);color:var(--ink-2);letter-spacing:.04em}
.lib5.k-atlas{--k:var(--c4)}.lib5.k-culture{--k:var(--c3)}.lib5.k-nature{--k:var(--c5)}.lib5.k-science{--k:var(--c2)}.lib5.k-art{--k:var(--c1)}
@media (max-width:1000px){.libs5{grid-template-columns:repeat(2,minmax(0,1fr))}.lib5,.lib5:nth-child(4),.lib5:nth-child(5){grid-column:auto}.lib5:nth-child(5){grid-column:1/-1}}
@media (max-width:620px){.libs5{grid-template-columns:1fr}.lib5:nth-child(5){grid-column:auto}}
.coll{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px;margin-top:22px}
.coll a{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
.coll a:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:var(--shadow);color:var(--ink)}
.coll .g{grid-row:1/3;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--bg-2);font-size:1.5rem;line-height:1;overflow:hidden}
.coll .g img{width:36px;height:36px;object-fit:contain}
.coll .g svg{width:32px;height:32px;color:#2B2116}
.coll .g.paper{background:#F4EBD6}
.coll b{font:600 .95rem/1.2 var(--f-text);align-self:end}
.coll small{font:400 .7rem/1.3 var(--f-mono);color:var(--ink-2);align-self:start}

/* ---------- the three days ---------- */
.band-sec{background:var(--band);color:var(--on-band);position:relative;overflow:hidden;isolation:isolate}
.band-sec::before{content:"";position:absolute;right:-15%;top:-40%;width:min(70vw,900px);aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(140,116,255,.22),rgba(255,92,154,.08) 55%,transparent 74%);z-index:-1;animation:neoAurora 24s ease-in-out infinite alternate}
.band-sec h2{color:var(--on-band)}.band-sec .eyebrow{color:var(--on-band-2)}.band-sec .row-head>p{color:var(--on-band-2)}.band-sec .row-head>p a{color:#FFC94A}
.days3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:1000px){.days3{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
.day-card{--k:#FFC94A;position:relative;display:grid;gap:12px;align-content:start;padding:24px 24px 22px;border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-b);color:var(--on-band);overflow:hidden;transition:transform .3s var(--ease),border-color .3s}
.day-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.28)}
.day-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--k)}
.day-card.maya{--k:linear-gradient(90deg,#12A08F,#F5B427)}.day-card.mexica{--k:linear-gradient(90deg,#006847,#F4EBD6,#CE1126)}.day-card.neo{--k:linear-gradient(90deg,#5A3FD6,#D9367A,#F0662A,#F5B427,#00A3C4)}
.day-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.day-card .dk{margin:0;font:400 .7rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-band-2)}
.day-card .dl{font:600 .78rem/1 var(--f-text);color:#FFC94A;text-decoration:none;white-space:nowrap}
.day-card .dl:hover{text-decoration:underline}
.dc-stage{position:relative;width:min(100%,250px);aspect-ratio:1;justify-self:center;margin:4px 0}
.dc-stage svg.wheel{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wheel .rim{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1}
.wheel .wbg{fill:#F4EBD6;stroke:#C9A84C;stroke-width:.6;transition:r .3s}
.wheel .wbg.on{stroke:#FFC94A;stroke-width:1.6}
.wheel .wg{color:#2B2116}
.wheel .wn{font:400 6.4px var(--f-mono);fill:rgba(244,241,255,.6);text-anchor:middle}
.wheel .wn.on{fill:#FFC94A;font-weight:700;font-size:8px}
.wheel .mark{fill:#FFC94A}
.dc-glyph{position:absolute;inset:27%;display:flex;align-items:center;justify-content:center;gap:6%;padding:8%;border-radius:24%;background:#F4EBD6;box-shadow:inset 0 0 0 2px #C9A84C,0 18px 40px -18px rgba(0,0,0,.7);color:#2B2116;animation:neoIn .8s var(--ease) both}
.dc-glyph img{width:62%;height:auto;max-height:100%;object-fit:contain}
.dc-glyph .num{width:30%;display:grid;place-items:center}
.dc-glyph .num svg{width:100%;height:auto}
.dc-glyph .ini{display:none;font:700 1.1rem/1 var(--f-display);color:#2B2116;text-align:center}
.dc-glyph.noimg img{display:none}.dc-glyph.noimg .ini{display:block}
.day-card.mexica .dc-glyph{flex-direction:column;gap:4%}
.day-card.mexica .dc-glyph .num{width:72%}
.day-card h3{font:400 clamp(1.6rem,2.2vw,2rem)/1.1 var(--f-display);color:var(--on-band);letter-spacing:-.01em}
.day-card .tr{font:400 .76rem/1.5 var(--f-mono);color:#FFC94A;margin-top:-4px}
.day-card .desc{color:var(--on-band-2);font-size:.95rem}
.dc-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 0}
.dc-meta div{padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.dc-meta dt{font:400 .62rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-band-2)}
.dc-meta dd{margin:2px 0 0;font:400 1rem/1.25 var(--f-display);color:var(--on-band)}
.dc-more{display:inline-flex;align-items:center;gap:6px;font:600 .88rem/1.2 var(--f-text);color:#FFC94A;text-decoration:none;margin-top:2px}
.dc-more:hover{color:#fff}
/* the NEO day: the sky of the day */
.orrery{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.orrery .rim{fill:none;stroke:rgba(255,255,255,.16)}
.orrery .orbit{fill:none;stroke:rgba(255,255,255,.3);stroke-dasharray:2 4}
.orrery .mo{font:400 7px var(--f-mono);fill:rgba(244,241,255,.6);text-anchor:middle}
.orrery .mo.on{fill:#FFC94A;font-weight:700}
.orrery .arm{transform-origin:100px 100px;transition:transform 2.2s cubic-bezier(.3,1.1,.3,1)}
.orrery .earth{fill:#2EC5E8;stroke:#fff;stroke-width:1}
.orrery .marm{transform-box:view-box;transition:transform 2.2s cubic-bezier(.3,1.1,.3,1)}
.orrery .moon{fill:#E9E5FA}
.orrery .trail{fill:none;stroke:url(#orb-trail);stroke-width:3;stroke-linecap:round}
.moonface{width:44px;height:44px}
.moonface .dk{fill:#2B2645}.moonface .lt{fill:#F1EEFA}
/* the same cards on a light page */
.days3.light .day-card{background:var(--card);border-color:var(--line);color:var(--ink)}
.days3.light .day-card h3,.days3.light .dc-meta dd{color:var(--ink)}
.days3.light .day-card .desc,.days3.light .day-card .dk,.days3.light .dc-meta dt{color:var(--ink-2)}
.days3.light .day-card .tr,.days3.light .day-card .dl,.days3.light .dc-more{color:var(--i2)}
.days3.light .dc-meta div{background:var(--bg-2);border-color:var(--line)}
.days3.light .wheel .wn{fill:var(--ink-2)}.days3.light .wheel .wn.on{fill:var(--i2)}
.days3.light .wheel .rim,.days3.light .orrery .rim{stroke:var(--line-2)}.days3.light .wheel .mark{fill:var(--i2)}.days3.light .wheel .wbg.on{stroke:var(--i2)}
.days3.light .orrery .mo{fill:var(--ink-2)}.days3.light .orrery .mo.on{fill:var(--i2)}.days3.light .orrery .orbit{stroke:var(--line-2)}
.days3.light .orrery .earth{stroke:var(--card)}
.day-pick{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:0 0 22px}
.day-pick input{height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:400 1rem var(--f-text)}
.band-sec .day-pick label{color:var(--on-band-2)}
.band-sec .day-pick input{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;color-scheme:dark}
.day-pick .btn{height:44px}
.counts8{margin-top:22px}
.band-sec .cal-live li{background:var(--glass);border-color:var(--glass-b)}
.band-sec .cal-live .v{color:var(--on-band)}.band-sec .cal-live b,.band-sec .cal-live small{color:var(--on-band-2)}

/* ---------- the Earth right now: day and night over the map ---------- */
.earth-now{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:color-mix(in srgb,var(--sea) 14%,var(--card))}
.earth-now svg{display:block;width:100%;height:auto}
.earth-now .night{fill:#0F0C1D;opacity:.5;transition:d 1s}
.earth-now .sunpt{fill:#FFC94A}
.earth-now .sunhalo{fill:url(#en-sun)}
.earth-now .pt circle{stroke:var(--card);stroke-width:.35}
.earth-now .pt.site circle{fill:var(--c2)}.earth-now .pt.wild circle{fill:var(--c5)}.earth-now .pt.ppl circle{fill:var(--c4)}
.earth-now .pt .halo{fill:none!important;stroke-width:.45!important;animation:ptPulse 2.8s ease-out infinite;transform-box:fill-box;transform-origin:center}
.earth-now .pt.site .halo{stroke:var(--c2)}.earth-now .pt.wild .halo{stroke:var(--c5)}
.earth-now .pt{cursor:pointer}
.earth-now figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:12px 16px;border-top:1px solid var(--line);font:400 .74rem/1.4 var(--f-mono);color:var(--ink-2);background:var(--card)}
.earth-now figcaption i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.earth-now .tip{position:absolute;pointer-events:none;padding:6px 10px;border-radius:10px;background:var(--ink);color:var(--bg);font:600 .8rem/1.2 var(--f-text);transform:translate(-50%,-130%);white-space:nowrap;opacity:0;transition:opacity .15s;z-index:3}
.earth-now .tip.on{opacity:1}
.earth-now .clock{margin-left:auto;color:var(--ink)}

/* ---------- the NEO Atlas (interactive map) ---------- */
.atlas{display:grid;gap:12px}
.atlas-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.atlas-find{position:relative;flex:1 1 280px;min-width:0}
.atlas-find input{width:100%;height:48px;padding:0 18px 0 44px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:400 1rem/1.2 var(--f-text)}
.atlas-find .i{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-2)}
.atlas-layers,.atlas-base{display:flex;flex-wrap:wrap;gap:6px}
.atlas-layers button,.atlas-base button{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font:500 .86rem/1 var(--f-text);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.atlas-layers button i{width:10px;height:10px;border-radius:50%;background:var(--dot,var(--c4));box-shadow:0 0 0 2px color-mix(in srgb,var(--dot,var(--c4)) 25%,transparent)}
.atlas-layers button[aria-pressed="true"],.atlas-base button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.atlas-map{position:relative;height:clamp(420px,68vh,720px);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:color-mix(in srgb,var(--sea) 14%,var(--card));z-index:0}
.atlas-map>.earth-now{position:absolute;inset:0;border:0;border-radius:0;display:grid;align-content:center}
.atlas-map>.earth-now figcaption{display:none}
.atlas-map.live>.earth-now{display:none}
.atlas-map .loading{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:2;padding:8px 14px;border-radius:999px;background:var(--ink);color:var(--bg);font:400 .74rem/1 var(--f-mono)}
.atlas-map.live .loading{display:none}
.atlas-tour{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;font:400 .8rem/1.4 var(--f-mono);color:var(--ink-2)}
.atlas-tour .ctl{display:flex;align-items:center;gap:8px}
.atlas-tour button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-2);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;font:700 1rem/1 var(--f-text)}
.atlas-tour button:hover{border-color:var(--ink)}
.atlas-tour .now{min-width:14ch;color:var(--ink);font-weight:700}
.atlas-fams{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.atlas-fams button{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:500 .8rem/1 var(--f-text);cursor:pointer}
.atlas-fams button i{width:9px;height:9px;border-radius:50%;background:var(--fc)}
.atlas-fams button[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
/* Leaflet inside the library look */
.atlas-map .leaflet-container{font-family:var(--f-text);background:color-mix(in srgb,var(--sea) 14%,var(--card))}
.atlas-map .leaflet-popup-content-wrapper{border-radius:16px;box-shadow:var(--shadow-lg)}
.atlas-map .leaflet-popup-content{margin:14px 16px;font:400 .9rem/1.45 var(--f-text);color:#17142A;min-width:200px}
.atlas-map .pp b{display:block;font:400 1.2rem/1.2 var(--f-display);margin-bottom:2px}
.atlas-map .pp small{display:block;font:400 .72rem/1.4 var(--f-mono);color:#55516B;margin-bottom:8px}
.atlas-map .pp a{display:inline-block;margin-right:10px;font-weight:600;color:#5A3FD6;text-decoration:none}
.atlas-map .pp a:hover{text-decoration:underline}
.mk{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid var(--mk,#F0662A);box-shadow:0 6px 14px -6px rgba(0,0,0,.6);font-size:15px;line-height:1;transition:transform .2s}
.leaflet-marker-icon:hover .mk,.leaflet-marker-icon:focus .mk{transform:scale(1.18)}
.mk.wild{--mk:#12A08F}
.mk::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--mk,#F0662A);opacity:0;animation:mkPulse 3s ease-out infinite}
@keyframes mkPulse{0%{transform:scale(1);opacity:.75}100%{transform:scale(1.7);opacity:0}}
.mk-sun{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle,#FFE08A 0,#FFC94A 45%,rgba(255,201,74,0) 70%)}

/* ---------- catalog cards (every library page) ---------- */
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px}
.item{--k:var(--c4);position:relative;display:grid;grid-template-rows:auto auto auto auto 1fr auto;gap:8px;padding:22px 22px 18px;border-radius:var(--r);border:1px solid var(--line);background:var(--card);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;overflow:hidden;scroll-margin-top:140px}
.item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--k) 55%,var(--line))}
.item::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--k);opacity:.85}
.item::after{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--k) 14%,transparent),transparent 60%);opacity:0;transition:opacity .25s;pointer-events:none}
.item:hover::after{opacity:1}
.item:target{animation:neoFlash 1.4s ease-out 2;border-color:var(--k)}
.items .item:nth-child(5n+2){--k:var(--c3)}.items .item:nth-child(5n+3){--k:var(--c2)}.items .item:nth-child(5n+4){--k:var(--c1)}.items .item:nth-child(5n+5){--k:var(--c5)}
.item .g{font-size:3rem;line-height:1.1;height:3.4rem;display:flex;align-items:center;transform-origin:20% 80%;transition:transform .45s var(--ease)}
.item:hover .g{transform:rotate(-8deg) scale(1.12)}
.item .g.sym{font:400 2.6rem/1 var(--f-display);color:var(--ink)}
.item .g img{height:3.2rem;width:auto}
.item .g.paper{width:3.4rem;justify-content:center;border-radius:14px;background:#F4EBD6;box-shadow:inset 0 0 0 1.5px #C9A84C}
.item .g.paper img{height:2.8rem}
.item .g.paper svg{width:2.6rem;height:2.6rem;color:#2B2116}
.item .tag{font:700 .66rem/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--k) 50%,var(--ink));justify-self:start;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--k) 12%,transparent)}
.item h3{font:400 1.45rem/1.12 var(--f-display);letter-spacing:-.01em}
.item .pl{font:400 .74rem/1.45 var(--f-mono);color:var(--ink-2);letter-spacing:.02em}
.item .pl i{font-family:var(--f-display);font-size:.95rem;letter-spacing:0}
.item p{color:var(--ink-2);font-size:.95rem}
.item .more{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line);font:600 .82rem/1.3 var(--f-text)}
.item .more a{text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.item .more a:hover{text-decoration:underline}
.item.hide{display:none}
.item .today{position:absolute;top:14px;right:14px;padding:5px 9px;border-radius:999px;background:var(--ink);color:var(--bg);font:700 .62rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.item.is-today{border-color:var(--c1);box-shadow:0 0 0 2px color-mix(in srgb,var(--c1) 55%,transparent),var(--shadow-lg)}
/* filter row */
.find{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 22px}
.find input{flex:1 1 260px;min-width:0;height:48px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:400 1rem/1.2 var(--f-text)}
.find input:focus{outline:2px solid var(--accent);outline-offset:2px}
.find .chips{display:flex;flex-wrap:wrap;gap:6px}
.find button{height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font:500 .88rem/1 var(--f-text);cursor:pointer;transition:background .2s,color .2s}
.find button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.find .none{flex-basis:100%;font:400 .85rem/1.4 var(--f-mono);color:var(--ink-2)}

/* ---------- symbols: river, sign grids, Maya numbers ---------- */
.river{position:relative;display:grid;gap:12px;overflow:hidden;padding:6px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.river .row{display:flex;width:max-content;gap:12px;animation:neoMarquee var(--t,70s) linear infinite}
.river .row.rev{animation-direction:reverse}
.river:hover .row,.river:focus-within .row{animation-play-state:paused}
.river a{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--card);border:1px solid var(--line);font-size:2rem;line-height:1;text-decoration:none;color:var(--ink);transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
.river a:hover,.river a:focus-visible{transform:translateY(-4px) scale(1.08);border-color:var(--ink);box-shadow:var(--shadow)}
.river a.paper{background:#F4EBD6;border-color:#E2D3AE}
.river a img{width:44px;height:44px;object-fit:contain}
.river a svg{width:40px;height:40px;color:#2B2116}
.river a.sym{font:400 1.7rem/1 var(--f-display)}
.band-sec .river a{background:var(--glass);border-color:var(--glass-b);color:var(--on-band)}
.band-sec .river a.paper{background:#F4EBD6}
.sym-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px}
.num-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.num-grid li{display:grid;justify-items:center;gap:6px;padding:14px 8px;border-radius:16px;background:#F4EBD6;box-shadow:inset 0 0 0 1.5px #E2D3AE;color:#2B2116}
.num-grid svg{width:54px;height:54px}
.num-grid b{font:700 .9rem/1 var(--f-mono)}
.num-grid small{font:400 .66rem/1 var(--f-mono);color:#6B5A3E}

/* ---------- world calendars ---------- */
.cal-live{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}
.cal-live li{display:grid;gap:4px;padding:16px 18px;border-radius:16px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--c1)}
.cal-live li:nth-child(5n+2){border-left-color:var(--c2)}.cal-live li:nth-child(5n+3){border-left-color:var(--c3)}.cal-live li:nth-child(5n+4){border-left-color:var(--c4)}.cal-live li:nth-child(5n+5){border-left-color:var(--c5)}
.cal-live b{font:700 .68rem/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.cal-live .v{font:400 1.25rem/1.25 var(--f-display);color:var(--ink);min-height:1.25em;transition:opacity .3s}
.cal-live .v.flip{animation:neoIn .5s var(--ease)}
.cal-live small{font-size:.82rem;color:var(--ink-2)}
.cal-pick{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px}
.cal-pick input{height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:400 1rem var(--f-text)}

/* ---------- peoples by language family ---------- */
.fams{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.fam{padding:18px 20px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);border-top:4px solid var(--fc,var(--c4));transition:transform .25s var(--ease),box-shadow .25s}
.fam:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.fam h3{display:flex;justify-content:space-between;align-items:center;gap:10px;font:600 1rem/1.3 var(--f-text);margin-bottom:10px}
.fam h3 small{font:400 .74rem/1.6 var(--f-mono);color:var(--ink-2)}
.fam h3 button{margin-left:auto;padding:4px 10px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font:500 .72rem/1 var(--f-text);cursor:pointer}
.fam h3 button:hover{border-color:var(--ink)}
.fam ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.fam li a{display:inline-block;padding:5px 10px;border-radius:999px;background:var(--bg-2);color:var(--ink);text-decoration:none;font-size:.86rem;transition:background .2s,color .2s}
.fam li a:hover{background:var(--ink);color:var(--bg)}

/* ---------- humans and AI agents (home) ---------- */
.agents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.agent{padding:26px;border-radius:var(--r);background:var(--glass);border:1px solid var(--glass-b);display:grid;gap:10px;align-content:start;transition:transform .3s var(--ease),border-color .3s}
.agent:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.28)}
.agent h3{color:var(--on-band);font:400 1.5rem/1.15 var(--f-display)}
.agent p{color:var(--on-band-2);font-size:.97rem}
.agent code{font:400 .8rem/1.5 var(--f-mono);color:#FFC94A;word-break:break-all}
.agent .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(255,201,74,.12);color:#FFC94A}
@media (max-width:900px){.agents{grid-template-columns:1fr}}

/* ---------- small helpers ---------- */
.mt-m{margin-top:28px}
.next-lib{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:28px;margin-top:clamp(36px,4vw,56px);border-top:1px solid var(--line)}
.ribbon-div{height:5px;background:linear-gradient(90deg,var(--c4),var(--c3),var(--c2),var(--c1),var(--c5),var(--c4));background-size:200% 100%;animation:neoRibbon 12s linear infinite}

@media (prefers-reduced-motion:reduce){
  .hh h1 .w,.hh-text>*{opacity:1!important;transform:none!important;filter:none!important}
  .river .row{animation:none!important;flex-wrap:wrap;width:auto}
  .river{-webkit-mask:none;mask:none}
}

/* 3.4 · additions after review */
.dc-glyph .gw{width:58%;display:grid;place-items:center}.dc-glyph .gw svg{width:100%;height:auto}
.dc-meta dd .moonface{vertical-align:-7px;margin-right:4px}
.band-sec .btn-ghost{color:var(--on-band);border-color:rgba(244,241,255,.38)}.band-sec .btn-ghost:hover{border-color:#fff;color:#fff}
.emblem{container-type:inline-size}
/* founder portrait: the spinning disc's square box must not widen the page on phones */
.bh{overflow-x:clip}

/* =========================================================================
   3.4 · alignment pass: every row lines up across its cards, full rows at every width
   ========================================================================= */
/* the eight counts of the home: two rows of four, never an orphan */
.cal-live.counts8{margin-top:22px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.cal-live.counts8{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cal-live.counts8{grid-template-columns:1fr}}
/* the same rows across the cards of one row (CSS subgrid; older browsers keep the plain grid) */
@supports (grid-template-rows:subgrid){
  .items{grid-auto-rows:auto;row-gap:0}
  .items>.item{grid-row:span 6;grid-template-rows:subgrid;row-gap:8px;margin-bottom:16px}
  @media (min-width:1001px){
    .days3{grid-template-rows:repeat(7,auto);row-gap:0}
    .days3>.day-card{grid-row:span 7;grid-template-rows:subgrid;row-gap:12px}
    .libs5{grid-template-rows:repeat(12,auto);row-gap:0}
    .libs5>.lib5{grid-row:span 6;grid-template-rows:subgrid;row-gap:12px}
    .libs5>.lib5:nth-child(-n+3){margin-bottom:18px}
  }
}
/* the twelve collections: 6 × 2, 4 × 3, 3 × 4, 2 × 6 */
.coll{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1240px){.coll{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){.coll{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.coll{grid-template-columns:repeat(2,minmax(0,1fr))}.coll a{grid-template-columns:34px 1fr;column-gap:9px;padding:10px}.coll .g{width:34px;height:34px;font-size:1.2rem;border-radius:10px}.coll .g svg{width:26px;height:26px}.coll b{font-size:.84rem}.coll small{font-size:.64rem}}
/* six doors: one row of six, two of three, three of two */
.items.six{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1240px){.items.six{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.items.six{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.items.six{grid-template-columns:1fr}}
/* the Moon of the day: its whole disc shows, lit side in gold on light grounds */
.dc-meta dd[data-k="moonface"]{display:flex;align-items:center;gap:8px}
.dc-meta dd .moonface{width:24px;height:24px;flex:none;vertical-align:0;margin:0}
.moonface .dk{stroke:rgba(255,255,255,.3);stroke-width:.8}
.days3.light .moonface .dk,.days-mini .moonface .dk{fill:#3A3458;stroke:none}
.days3.light .moonface .lt,.days-mini .moonface .lt{fill:#F5C451}

/* ---------- the points of each page on its map (works of art, dishes…) ---------- */
.mk.pts{--mk:#D9367A}
.mk i{position:absolute;right:-8px;top:-8px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#17142A;color:#fff;font:700 10px/18px var(--f-text);font-style:normal;text-align:center;box-shadow:0 0 0 2px #fff}
.atlas-map .pp .pp-list{display:grid;gap:5px;margin:2px 0 10px}
.atlas-map .pp .pp-list a{margin:0}
.earth-now .pt.x circle{fill:var(--c3)}.earth-now .pt.x .halo{stroke:var(--c3)}

/* ---------- today in the library: the gadgets of the day on every content page ---------- */
.alm-band{position:relative;overflow:hidden;isolation:isolate;padding:clamp(52px,6vw,88px) 0;background:radial-gradient(120% 120% at 85% 120%,#3A1E46 0%,#1E1638 40%,#0F0C1D 78%);color:#F4F1FF}
.alm-band::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(1.3px 1.3px at 12% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 74%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 46% 12%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 61% 88%,#fff 50%,transparent 51%),radial-gradient(1.3px 1.3px at 74% 8%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 94% 52%,#fff 50%,transparent 51%),radial-gradient(1.2px 1.2px at 6% 82%,#fff 50%,transparent 51%);opacity:.6;animation:almTwinkle 5s ease-in-out infinite alternate}
.alm-band::after{content:"";position:absolute;left:-10%;top:-50%;width:min(60vw,760px);aspect-ratio:1;border-radius:50%;z-index:-1;background:radial-gradient(closest-side,rgba(255,201,74,.16),rgba(255,92,154,.06) 55%,transparent 74%);animation:neoAurora 22s ease-in-out infinite alternate}
@keyframes almTwinkle{to{opacity:.22}}
.alm-band .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,60px);align-items:center}
.alm-text{display:grid;gap:18px;align-content:center;min-width:0}
.alm-band .eyebrow{color:#BDB6DA;margin:0}
.alm-band h2{margin:0;color:#F4F1FF;font:400 clamp(1.8rem,3.1vw,2.7rem)/1.1 var(--f-display);letter-spacing:-.01em}
.alm-days{display:grid;gap:10px;margin:0}
.alm-days a{display:flex;align-items:center;gap:14px;padding:10px 18px 10px 10px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);color:#E9E5FA;text-decoration:none;transition:background .2s,border-color .2s,transform .3s var(--ease)}
.alm-days a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);transform:translateX(5px);color:#fff}
.alm-days .g{width:48px;height:48px;flex:none;border-radius:14px;display:grid;place-items:center;background:#F4EBD6;box-shadow:inset 0 0 0 1.5px #C9A84C;overflow:hidden}
.alm-days .g img{width:40px;height:40px;object-fit:contain}
.alm-days .g svg{width:36px;height:36px;color:#2B2116}
.alm-days .neo .g{background:rgba(255,255,255,.08);box-shadow:none}
.alm-days small{display:block;font:400 .66rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#BDB6DA}
.alm-days b{display:block;font:400 1.3rem/1.2 var(--f-display);color:#fff}
.alm-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:2px 0 0}
.alm-links a{display:inline-flex;align-items:center;gap:6px;font:600 .88rem/1.2 var(--f-text);color:#FFC94A;text-decoration:none}
.alm-links a:hover{color:#fff}
.alm-links .i{width:15px;height:15px}
.alm-band .earth-now{border-color:rgba(255,255,255,.14);box-shadow:0 40px 80px -40px rgba(0,0,0,.85)}
.alm-band .earth-now figcaption{background:rgba(15,12,29,.92);border-top-color:rgba(255,255,255,.12);color:#BDB6DA}
.alm-band .earth-now .clock{color:#F4F1FF}
@media (max-width:900px){.alm-band .wrap{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.alm-band::before,.alm-band::after{animation:none}}
/* markers shrink while the whole world is in view; counts wrap in balanced lines; the band opens with the spectrum */
.atlas-map .mk{transition:transform .25s var(--ease)}
.atlas-map.far .mk{transform:scale(.72)}
.atlas-map.far .leaflet-marker-icon:hover .mk,.atlas-map.far .leaflet-marker-icon:focus .mk{transform:scale(.98)}
.cal-live .v,.day-card h3,.alm-band h2{text-wrap:balance}
.alm-band{border-top:3px solid transparent;border-image:linear-gradient(90deg,var(--c4),var(--c3),var(--c2),var(--c1),var(--c5)) 1}
.alm-days a{display:grid;grid-template-columns:48px minmax(0,auto) minmax(0,1fr);align-items:center;column-gap:14px;row-gap:0}
.alm-days .m{justify-self:end;text-align:right;font:400 .72rem/1.45 var(--f-mono);color:#BDB6DA;max-width:24ch}
@media (max-width:1100px) and (min-width:901px),(max-width:520px){.alm-days a{grid-template-columns:48px minmax(0,1fr)}.alm-days .m{grid-column:2;justify-self:start;text-align:left;max-width:none;margin-top:2px}}
/* catalog columns by breakpoint, tuned to the number of cards so no row is left with an orphan */
@media (min-width:560px) and (max-width:899px){.items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:900px){.items{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1240px){.items{grid-template-columns:repeat(5,minmax(0,1fr))}.items:has(>.item:nth-child(8):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1400px){.items:has(>.item:nth-child(18):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}}
.item .g.paper .ini{font:400 2rem/1 var(--f-display);color:#2B2116}
/* the thirteen counts: the civil calendar on top, then three rows of four */
.cal-live.all{grid-template-columns:repeat(4,minmax(0,1fr))}
.cal-live.all>li:first-child{grid-column:1/-1;grid-template-columns:auto 1fr auto;align-items:baseline;column-gap:18px}
@media (max-width:1100px){.cal-live.all{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.cal-live.all>li:first-child{grid-template-columns:1fr}}
@media (max-width:560px){.cal-live.all{grid-template-columns:1fr}}
/* the libraries bar: Gastronomy and Symbols always in sight on laptops; on phones the row scrolls with a soft edge */
@media (max-width:1240px){.rooms .wrap{flex-wrap:wrap;gap:0 10px;padding-bottom:8px}.rooms-libs{flex-basis:100%}.days-mini{margin:0 auto}}
@media (max-width:1240px) and (min-width:981px){.rooms-libs{justify-content:center}}
@media (max-width:980px){.rooms-libs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);padding-right:28px}}
@media (max-width:640px){.rooms b.lbl{display:none}}
/* the three day cards stay roomy on small laptops */
@media (min-width:1001px) and (max-width:1200px){.day-card{padding:22px 18px 20px}.day-card header{flex-wrap:wrap;gap:4px 10px}.dc-meta div{padding:8px 9px}.dc-meta dd{font-size:.92rem}}

/* 3.5 · the NEO reading and the circle of libraries (the same blocks as the Mayan and Mexican landings, Sesy Core 1.5) */
.reading .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4vw,64px);align-items:start}
.reading-text{display:grid;gap:18px;align-content:start;position:sticky;top:110px}
.reading-text h2{color:var(--on-band);font:400 clamp(2rem,3.6vw,3.2rem)/1.05 var(--f-display);letter-spacing:-.015em}
.reading-text h2 .spectrum{font-style:italic}
.reading-text>p{color:var(--on-band-2);font-size:1.05rem;max-width:46ch}
.reading-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.reading-list li{display:flex;gap:12px;align-items:flex-start;color:var(--on-band);font-size:1rem}
.reading-list li b{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);font:700 .78rem/1 var(--f-mono);color:#FFC94A}
.reading-note{font:400 .74rem/1.5 var(--f-mono);color:var(--on-band-2)}
.reading-form{border-radius:var(--r-lg);background:var(--card);color:var(--ink);padding:clamp(18px,2.4vw,30px);box-shadow:0 50px 90px -50px rgba(0,0,0,.9);border-top:6px solid var(--c1);min-height:420px}
.reading-form .sesy-wpform{min-height:360px}
.reading .hh-days{margin-top:4px}
@media (max-width:900px){.reading .wrap{grid-template-columns:1fr}.reading-text{position:static}}

.net3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.net3 a{--k:var(--c4);position:relative;display:grid;gap:10px;align-content:start;padding:26px;border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-b);color:var(--on-band);text-decoration:none;transition:transform .3s var(--ease),border-color .3s}
.net3 a:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.32);color:#fff}
.net3 a::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--k)}
.net3 a.neo{--k:linear-gradient(90deg,#5A3FD6,#D9367A,#F0662A,#F5B427,#12A08F)}.net3 a.mayan{--k:linear-gradient(90deg,#14503E,#E8B72A,#A3261C)}.net3 a.mexican{--k:linear-gradient(90deg,#006847,#FFFFFF,#CE1126)}
.net3 h3{font:400 1.6rem/1.1 var(--f-display);color:var(--on-band)}
.net3 p{color:var(--on-band-2);font-size:.95rem;margin:0}
.net3 .go{font:600 .9rem/1.2 var(--f-text);color:#FFC94A}
.net3 .here{position:absolute;top:16px;right:16px;font:700 .6rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:#FFC94A;color:#17142A}
@media (max-width:900px){.net3{grid-template-columns:1fr}}

.rooms-libs a.read{background:var(--c3);color:#fff}.rooms-libs a.read .i{color:#fff}.rooms-libs a.read:hover{background:var(--ink);color:#fff}

/* 3.5 · the libraries bar of every site of the circle: centred when it fits, scrolls from the start when it does not (never clipped);
   libraries, collections and Reading on the first row, the three days and the text size on the second row below 1560 px */
.rooms-libs{justify-content:flex-start!important}
.rooms-libs>:first-child{margin-left:auto}.rooms-libs>:last-child{margin-right:auto}
.rooms .fs{flex:none;display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.rooms .fs button{min-width:32px;height:32px;padding:0 6px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font:600 .78rem/1 var(--f-text);cursor:pointer}
.rooms .fs button[data-fs="118"]{font-size:.92rem}.rooms .fs button[data-fs="136"]{font-size:1.06rem}
.rooms .fs button:hover{color:var(--ink)}
.rooms .fs button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
@media (max-width:1560px){.rooms .wrap{flex-wrap:wrap;gap:0 10px;padding-bottom:8px}.rooms-libs{flex-basis:100%}.rooms .days-mini{margin:0 0 0 auto}.rooms .fs{margin-right:auto}}
@media (max-width:980px){.rooms-libs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);padding-right:28px}}
/* 3.5 · the NEO sun as the badge of the programs that live inside NEO (the five libraries, the NEO Atlas, the elders program) */
.neo-badge{box-sizing:border-box;padding:12%;background:var(--band,#17142A);border-radius:50%;overflow:visible}
