:root{--bg:#0b0d14;--bg2:#12151f;--bg3:#1c2030;--gold:#d4af37;--gold-dim:#8a7226;--text:#e6e6ea;--dim:#9aa0b4;--green:#4cc38a;--red:#ef6b6b;--blue:#5aa9ff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:18px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--blue)}a:focus,button:focus,input:focus,select:focus{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--gold);color:#000;padding:8px;z-index:9}
header.site{background:var(--bg2);border-bottom:1px solid var(--bg3);padding:14px 20px}
header.site .brand{font-weight:800;color:var(--gold);font-size:1.15rem;text-decoration:none}
nav.main{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px}
nav.main a{color:var(--text);text-decoration:none;padding:6px 2px;border-bottom:2px solid transparent}
nav.main a[aria-current="page"],nav.main a:hover{border-color:var(--gold);color:var(--gold)}
main{max-width:980px;margin:0 auto;padding:24px 20px 60px}
h1{font-size:2rem;margin:.2em 0;color:#fff}h2{font-size:1.45rem;margin:1.6em 0 .4em;color:var(--gold)}h3{font-size:1.15rem;margin:1em 0 .2em}
.lead{color:var(--dim);font-size:1.1rem;max-width:760px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:16px 0}
.card{background:var(--bg2);border:1px solid var(--bg3);border-top:3px solid var(--gold);border-radius:10px;padding:16px}
.card h3{margin-top:0}.card p{margin:.3em 0 .8em;color:var(--text);font-size:.95rem}
.btn,button.btn{display:inline-block;background:var(--gold);color:#000;font-weight:700;border:0;border-radius:8px;padding:11px 18px;font-size:1rem;text-decoration:none;cursor:pointer}
.btn.alt{background:transparent;color:var(--gold);border:1px solid var(--gold)}
input[type=text],input[type=search],input[type=password],select{width:100%;padding:12px;border-radius:8px;border:1px solid var(--gold-dim);background:var(--bg);color:var(--text);font-size:1rem}
form.row{display:flex;gap:8px;flex-wrap:wrap}form.row input{flex:1 1 260px}
.note{font-size:.88rem;color:var(--dim);border-left:3px solid var(--gold-dim);padding-left:10px;margin:14px 0}
.src{background:var(--bg2);border:1px solid var(--bg3);border-radius:8px;padding:12px 14px;margin:10px 0}
.src .t{font-weight:700}.src .m{font-size:.8rem;color:var(--dim)}.src p{margin:.4em 0 0;font-size:.92rem}
.tag{display:inline-block;font-size:.72rem;padding:2px 8px;border-radius:12px;border:1px solid var(--gold-dim);color:var(--gold);margin-right:6px}
.res-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.gallery a{display:block}.gallery img{width:100%;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--bg3)}
.pct{font-size:2.6rem;font-weight:800;color:var(--gold);line-height:1}
.ok{color:var(--green)}.bad{color:var(--red)}
footer.site{border-top:1px solid var(--bg3);padding:22px 20px;color:var(--dim);font-size:.85rem;text-align:center}
.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:3px solid var(--gold-dim);padding:6px 0 10px 14px;margin-left:6px}.timeline time{color:var(--gold);font-weight:700;margin-right:8px}

.nx-voicebar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;background:var(--bg2);border:1px solid var(--bg3);border-radius:10px;padding:10px 14px;margin:0 0 18px}
.nx-mic{margin-left:6px}
form.row .nx-mic{flex:0 0 auto}

.hero{margin-bottom:10px}
.greeter{display:grid;grid-template-columns:minmax(260px,1.2fr) 1fr;gap:18px;margin:18px 0}
@media(max-width:760px){.greeter{grid-template-columns:1fr}}
.greeter-video{aspect-ratio:16/9;min-height:200px;background:linear-gradient(135deg,var(--bg2),var(--bg3));border:1px dashed var(--gold-dim);border-radius:12px;padding:22px;display:flex;flex-direction:column;justify-content:center}
.greeter-text{background:var(--bg2);border:1px solid var(--bg3);border-radius:12px;padding:18px}
nav.jump{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--bg3);padding:10px 0;display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0}
nav.jump a{color:var(--gold);text-decoration:none;font-weight:700}
h2[id]{scroll-margin-top:70px}
.card .btn{margin:4px 6px 4px 0}
@media (prefers-reduced-motion:no-preference){.card{transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-3px);border-color:var(--gold)}}

.readbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--bg2);border:1px solid var(--bg3);border-radius:10px;padding:10px 14px;margin:14px 0}
.poem-list{list-style:none;padding:0;margin:10px 0}
.poem-row{border-bottom:1px solid var(--bg3);padding:12px 0}
.poem-row a{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;text-decoration:none;color:var(--text)}
.poem-row .pn{color:var(--gold);font-weight:800;font-variant-numeric:tabular-nums}
.poem-row .pt{font-weight:700;color:#fff}
.pm{color:var(--dim);font-size:.85rem}
.poem-row p{margin:.3em 0 0;font-size:.92rem;color:var(--dim)}
pre.poemtext{white-space:pre-wrap;font:inherit;font-size:1.15rem;line-height:1.75;margin:14px 0;color:#fff}
html[data-theme="light"]{--bg:#fbfaf6;--bg2:#fff;--bg3:#e3dfd2;--text:#1a1a1a;--dim:#4b4b4b;--gold:#7a5c00;--gold-dim:#a68a2e;--blue:#0a4ea3}
html[data-theme="light"] h1,html[data-theme="light"] .poem-row .pt,html[data-theme="light"] pre.poemtext{color:#000}
html[data-theme="high"]{--bg:#000;--bg2:#000;--bg3:#fff;--text:#fff;--dim:#fff;--gold:#ffe600;--gold-dim:#ffe600;--blue:#7fd6ff}
@media print{header.site,footer.site,.readbar,.nx-voicebar,form,#sform,.skip,nav,.btn{display:none!important}body{background:#fff;color:#000}.poem-row a,pre.poemtext{color:#000}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* --- Library banner on the home page --- */
.banner{display:block;width:100%;max-width:100%;height:auto;border-radius:18px;border:1px solid var(--bg3);margin:18px 0 4px}

/* --- Living Library card: Astris, the librarian --- */
.card-living{display:flex;gap:16px;align-items:flex-start}
.card-living .librarian{flex:0 0 auto;width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,.14)}
.card-living .living-text{flex:1 1 auto;min-width:0}
@media(max-width:520px){.card-living{flex-direction:column;align-items:center;text-align:left}}

/* --- Gentle CSS-only starfield and soft glow behind the page header --- */
.hero{position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;left:-24px;right:-24px;top:-24px;bottom:0;z-index:-1;border-radius:22px;pointer-events:none;
background:
 radial-gradient(70% 120% at 18% 8%, rgba(90,169,255,.16), transparent 68%),
 radial-gradient(65% 110% at 86% 22%, rgba(212,175,55,.13), transparent 70%),
 radial-gradient(90% 130% at 50% 100%, rgba(76,195,138,.10), transparent 72%);
animation:nx-glow-breathe 26s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;left:-24px;right:-24px;top:-24px;bottom:0;z-index:-1;border-radius:22px;pointer-events:none;opacity:.7;
background-image:
 radial-gradient(1.4px 1.4px at 18px 26px, rgba(255,255,255,.85), transparent 100%),
 radial-gradient(1px 1px at 62px 84px, rgba(212,175,55,.75), transparent 100%),
 radial-gradient(1.4px 1.4px at 116px 42px, rgba(160,200,255,.75), transparent 100%),
 radial-gradient(1px 1px at 44px 138px, rgba(255,255,255,.6), transparent 100%);
background-size:170px 170px,230px 230px,280px 280px,330px 330px;
background-repeat:repeat;
animation:nx-star-drift 180s linear infinite, nx-star-twinkle 14s ease-in-out infinite alternate}
@keyframes nx-glow-breathe{from{opacity:.65;transform:translate3d(0,0,0) scale(1)}to{opacity:1;transform:translate3d(0,-8px,0) scale(1.02)}}
@keyframes nx-star-drift{from{background-position:0 0,0 0,0 0,0 0}to{background-position:170px 120px,-230px 170px,280px -190px,-330px 240px}}
@keyframes nx-star-twinkle{from{opacity:.55}to{opacity:.85}}
@media (prefers-reduced-motion:reduce){
 .hero::before,.hero::after{animation:none!important;transform:none!important;background-position:0 0,0 0,0 0,0 0!important}
 .hero::before{opacity:.85}
 .hero::after{opacity:.7}
}
/* ── RING OF 12 ICONS ── */
.ring12-icons{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:flex-end;margin:22px auto;max-width:780px}
.ring12-icon{margin:0;text-align:center}
.ring12-icon iframe{display:block;object-fit:cover;background:#111;border:0;border-radius:16px}
.ring12-icon.main iframe{width:min(280px,70vw);height:min(280px,70vw);box-shadow:0 0 44px rgba(201,162,39,.35),0 0 90px rgba(201,162,39,.12)}
.ring12-icon:not(.main) iframe{width:min(132px,32vw);height:min(132px,32vw);opacity:.94}
.ring12-icon.solo iframe{width:min(180px,46vw);height:min(180px,46vw)}
.ring12-icon figcaption{margin-top:8px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
