:root{--bg:#170d2c;--ink:#fbf1ff;--accent:#dfb6ff;--panel:#3c2066;--glow:#d3a5ff}
*{box-sizing:border-box} [hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,sans-serif}
a{color:inherit;text-underline-offset:.22em}
button,input{font:inherit} button{cursor:pointer}
button,.cta{padding:.55rem 1rem;border:1px solid currentColor;border-radius:.35rem;background:transparent;color:inherit}
:focus-visible{outline:3px solid var(--glow);outline-offset:3px}
.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
header{border-bottom:1px solid color-mix(in srgb,var(--ink) 20%,transparent)}
.mast,.navrow,.strip{padding:.85rem max(4vw,calc((100vw - 1330px)/2));display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{display:inline-flex;align-items:center;gap:.45em;font-weight:850;font-size:1.55rem;text-decoration:none;white-space:nowrap}
.logo span{color:var(--accent);font-size:1.25em}.logo small{font-size:.47em;letter-spacing:.1em;text-transform:uppercase}
nav{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}
nav a{text-decoration:none}nav a:hover{text-decoration:underline}
.search{display:flex;gap:.4rem;max-width:100%}.search input{width:min(12rem,42vw);border:1px solid currentColor;border-radius:.3rem;background:transparent;color:inherit;padding:.4rem .65rem}.search input::placeholder{color:inherit;opacity:.72}
main{width:min(92%,1330px);margin:1.8rem auto 5rem}
.hero{position:relative;color:white}
.slide{position:relative;isolation:isolate;min-height:510px;background:#17162b;overflow:hidden}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101021f0 4%,#101021b0 37%,transparent 90%);z-index:-1}
.slide-copy{position:relative;padding:clamp(1.3rem,5vw,5rem);max-width:760px}
.kicker,.strip,.issue{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.19em}
.slide .kicker{color:var(--glow)}
h1,h2,p{margin:0 0 .75em}h1,.slide h2{font-size:clamp(2.1rem,5.6vw,5.4rem);line-height:1.02;letter-spacing:-.045em;margin:.2em 0 .32em}
.slide p{max-width:38ch}.cta{display:inline-block;text-decoration:none;font-weight:750;background:var(--glow);border-color:transparent;color:#171629}
.controls{position:absolute;right:1.15rem;bottom:1.15rem;display:flex;gap:.65rem;align-items:center;background:#101021;padding:.35rem;border-radius:.4rem}
.directory,.faq,.reading{margin:3.75rem auto}.directory h2,.faq h2,.reading h2{line-height:1.15;font-size:clamp(1.55rem,3vw,2.75rem)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:.7rem}
.tiles a{padding:1.25rem;text-decoration:none;border:1px solid color-mix(in srgb,var(--ink) 28%,transparent);font-weight:750;overflow-wrap:anywhere}
.tiles a:hover{box-shadow:inset 0 -4px var(--accent)}
.faq,.reading{max-width:840px}.faq details{border-top:1px solid color-mix(in srgb,var(--ink) 30%,transparent);padding:1rem .25rem}.faq summary{cursor:pointer;font-weight:750}.faq details p{margin:.6rem 0 0}
footer{padding:2.5rem max(4vw,calc((100vw - 1330px)/2));color:white;background:var(--panel)}
footer .logo span{color:var(--glow)}footer nav{font-size:.9rem}.footer-lead{margin-bottom:1.25rem}
dialog{border:0;padding:0;color:#28233c;background:#fff;border-radius:1.2rem;width:min(92vw,500px);max-height:90dvh;box-shadow:0 25px 100px #0008}
dialog::backdrop{background:#0c1025aa;backdrop-filter:blur(5px)}
.modal-card{padding:1.5rem 2rem}.modal-close{position:absolute;right:1rem;top:.8rem;border:0;font-size:1.45rem;padding:.2rem .55rem}
.modal-mark{background:#eeeaf7;border-radius:12px;display:inline-grid;place-items:center;width:44px;height:44px;margin-bottom:.4rem}
.modal-tabs{display:flex;gap:.35rem;margin:.8rem 0}.modal-tabs button{padding:.4rem .55rem}.modal-tabs [aria-pressed="true"],dialog form button{background:#322755;color:#fff}.modal-card form label{display:grid;gap:.2rem;margin:.55rem 0}.modal-card form input{width:100%;padding:.4rem .65rem;border:1px solid #aaa2bd;border-radius:.35rem;background:#f6f4fa}.modal-check{font-size:.88rem}#demo-status:empty{display:none}
@media(max-width:800px){.mast,.navrow{flex-wrap:wrap}.slide{min-height:445px}.slide-copy{padding-bottom:5rem}.logo small{white-space:normal}nav{gap:.35rem .85rem}}
@media(max-width:420px){.mast,.navrow{padding:.7rem 4vw}.modal-card{padding:1rem}.slide{min-height:410px}}
