:root{
    --brown:#2A2230;--gold:#6E3E8C;--cream:#FAF6FB;--cream-warm:#F1EAF3;
    --gray:#585166;--rule:#D2C8DA;
    --display:'Cormorant Garamond', Georgia, serif;
    --body:'Inter', system-ui, sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--cream);color:var(--brown);font-family:var(--body);font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;letter-spacing:0.01em;}
  .skip{position:absolute;left:-999px;top:0;background:var(--brown);color:var(--cream);padding:0.6rem 1rem;z-index:100;}
  .skip:focus{left:0;}
  header{position:sticky;top:0;z-index:50;background:rgba(250,246,251,0.92);backdrop-filter:saturate(120%) blur(6px);border-bottom:1px solid var(--rule);}
  .bar{max-width:1080px;margin:0 auto;padding:1.4rem 2rem;display:flex;align-items:baseline;justify-content:space-between;gap:2rem;flex-wrap:wrap;}
  .brand{display:flex;align-items:center;gap:0.6rem;text-decoration:none;}
  .seal{width:34px;height:34px;flex:0 0 auto;}
  .wordmark{font-family:var(--body);font-size:1.05rem;font-weight:400;letter-spacing:0.28em;color:var(--brown);}
  .wordmark span{color:var(--gold);}
  .wordmark .atelier{color:var(--gray);font-size:0.6rem;letter-spacing:0.22em;margin-left:0.5em;font-weight:400;}
  nav{display:flex;gap:1.8rem;flex-wrap:wrap;}
  nav a{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.18em;color:var(--gray);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent;transition:color .3s ease,border-color .3s ease;}
  nav a:hover{color:var(--brown);}
  nav a.active{color:var(--brown);border-color:var(--gold);}
  a:focus-visible,nav a:focus-visible,.node:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:1px;}
  main{max-width:1080px;margin:0 auto;padding:0 2rem;}
  .eyebrow{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.26em;color:var(--gold);margin-bottom:1.4rem;font-weight:400;}
  h1{font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.04;letter-spacing:-0.01em;}
  h2{font-family:var(--display);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.4rem);line-height:1.1;margin-bottom:1.2rem;}
  h3{font-family:var(--display);font-weight:600;font-size:1.3rem;line-height:1.2;margin:2rem 0 0.4rem;}
  p{max-width:none;color:var(--gray);font-size:1.02rem;}
  p + p{margin-top:0.9rem;}
  .lead{font-size:1.18rem;color:var(--brown);max-width:none;}
  em{font-style:italic;}
  .rule{height:1px;background:var(--rule);border:0;margin:4rem 0;}
  .rule.short{width:64px;background:var(--gold);height:2px;margin:1.8rem 0;}
  section{padding:1rem 0;}
  .hero{padding:5.5rem 0 2.5rem;}
  a.inline{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--rule);}
  a.inline:hover{border-color:var(--gold);}
  .btn{display:inline-block;font-family:var(--body);font-size:0.74rem;text-transform:uppercase;letter-spacing:0.18em;color:var(--cream);background:var(--brown);padding:0.95rem 2rem;border:0;text-decoration:none;transition:background .3s ease;}
  .btn:hover{background:var(--gold);}
  .glance{display:grid;grid-template-columns:200px 1fr;gap:2.6rem;align-items:center;margin-top:2rem;}
  @media(max-width:680px){.glance{grid-template-columns:1fr;gap:1.6rem;}}
  .heptad-sm{width:200px;height:200px;display:block;}
  .heptad-sm polygon.ring{fill:none;stroke:var(--rule);stroke-width:1;}
  .heptad-sm polygon.spine{fill:none;stroke:var(--gold);stroke-width:1.1;opacity:0.5;}
  .heptad-sm circle.n{fill:var(--cream-warm);stroke:var(--rule);stroke-width:1;}
  .heptad-sm circle.t{fill:var(--gold);stroke:var(--gold);}
  .heptad-sm text{font-family:var(--display);font-weight:600;font-size:11px;fill:var(--brown);}
  .heptad-sm text.tn{fill:var(--cream);}
  .map-grid{display:grid;grid-template-columns:360px 1fr;gap:3.2rem;align-items:center;margin-top:2.4rem;}
  @media(max-width:780px){.map-grid{grid-template-columns:1fr;gap:2rem;}}
  .heptad{width:100%;max-width:360px;height:auto;display:block;margin:0 auto;}
  .heptad .ring{fill:none;stroke:var(--rule);stroke-width:1;}
  .heptad .spine{fill:none;stroke:var(--gold);stroke-width:1.2;opacity:0.5;}
  .heptad .nodecirc{fill:var(--cream-warm);stroke:var(--rule);stroke-width:1;transition:stroke .25s ease;}
  .heptad .node.treated .nodecirc{fill:var(--gold);stroke:var(--gold);}
  .heptad .num{font-family:var(--display);font-size:18px;font-weight:600;fill:var(--brown);}
  .heptad .node.treated .num{fill:var(--cream);}
  .heptad .node{cursor:pointer;}
  .heptad .node:hover .nodecirc{stroke:var(--gold);}
  .heptad .centre{font-family:var(--display);font-style:italic;font-size:15px;fill:var(--gray);}
  .detail{background:var(--cream-warm);border-left:2px solid var(--gold);padding:2rem 2.2rem;min-height:178px;}
  .detail .tag{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.2em;color:var(--gold);display:inline-block;margin-bottom:0.7rem;}
  .detail h3{margin:0 0 0.5rem;}
  .detail .lat{font-family:var(--display);font-style:italic;font-size:1.05rem;color:var(--brown);margin-bottom:0.6rem;}
  .detail p{font-size:0.98rem;}
  .hint{font-size:0.82rem;color:var(--gray);margin-top:1.1rem;}
  .nojs{margin-top:1.4rem;}
  .nojs li{margin:0.3rem 0;color:var(--gray);font-size:0.95rem;list-style:none;}
  .arc{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:2.4rem;border-top:1px solid var(--rule);}
  @media(max-width:680px){.arc{grid-template-columns:1fr;}}
  .arc .phase{padding:1.6rem 1.6rem 1.6rem 0;border-right:1px solid var(--rule);}
  .arc .phase:last-child{border-right:0;}
  @media(max-width:680px){.arc .phase{border-right:0;border-bottom:1px solid var(--rule);padding-right:0;}}
  .arc .ph{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.2em;color:var(--gold);}
  .arc .dates{font-family:var(--display);font-size:1.2rem;color:var(--brown);margin:0.3rem 0 0.4rem;}
  .arc .desc{font-size:0.95rem;color:var(--gray);}
  .arc .now{display:inline-block;font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--cream);background:var(--gold);padding:0.15rem 0.5rem;margin-left:0.5rem;vertical-align:middle;}
  .explore{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.2rem;margin-top:2rem;}
  .explore a{text-decoration:none;color:var(--brown);display:block;border-top:1px solid var(--rule);padding-top:1.2rem;}
  .explore a:hover h3{color:var(--gold);}
  .explore .label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.18em;color:var(--gold);}
  .explore h3{margin:0.5rem 0 0;}
  .explore p{font-size:0.92rem;margin-top:0.3rem;}
  .prose{max-width:none;}
  .prose p{color:var(--gray);font-size:1.04rem;}
  .prose p.first{font-size:1.16rem;color:var(--brown);}
  .prose ul{list-style:none;margin:0.6rem 0;}
  .prose ul li{position:relative;padding-left:1.3rem;margin:0.45rem 0;color:var(--gray);font-size:1rem;}
  .prose ul li::before{content:'';position:absolute;left:0;top:0.62em;width:6px;height:6px;background:var(--gold);}
  .prose .meta{font-size:0.85rem;color:var(--gray);font-style:italic;margin-top:2rem;}
  footer{border-top:1px solid var(--rule);margin-top:5rem;padding:2.5rem 2rem;text-align:center;}
  footer .fmark{font-family:var(--body);font-size:0.95rem;font-weight:400;letter-spacing:0.28em;color:var(--brown);}
  footer .fmark span{color:var(--gold);}
  footer .fmark .atelier{color:var(--gray);font-size:0.62em;letter-spacing:0.22em;margin-left:0.5em;}
  footer .fmeta{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.2em;color:var(--gray);margin-top:0.6rem;}
  footer .eco{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0.62em;margin-top:1rem;font-family:var(--display);font-style:italic;font-size:0.92rem;line-height:1;color:var(--gray);text-decoration:none;}
  footer .eco span{white-space:nowrap;}
  footer .eco .ecowm{height:16px;width:144px;margin:0 0.55em;display:inline-block;position:relative;top:0.05em;opacity:0.9;transition:opacity .3s ease;}
  footer .eco:hover{color:var(--brown);}
  footer .eco:hover .ecowm{opacity:1;}
  footer .flinks{margin-top:0.9rem;font-size:0.68rem;text-transform:uppercase;letter-spacing:0.18em;}
  footer .flinks a{color:var(--gray);text-decoration:none;border-bottom:1px solid transparent;transition:color .3s ease,border-color .3s ease;padding-bottom:2px;}
  footer .flinks a:hover{color:var(--gold);border-color:var(--gold);}
  footer .flinks .sep{color:var(--rule);margin:0 0.55rem;}
  @media(prefers-reduced-motion:reduce){*{transition:none !important;scroll-behavior:auto !important;}}
  /* policy, reference, and 404 pages */
  .prose h2{font-family:var(--display);font-weight:600;font-size:1.4rem;line-height:1.2;margin:2.4rem 0 0.5rem;color:var(--brown);}
  .prose h2:first-of-type{margin-top:0.6rem;}
  .prose .sub{color:var(--brown);font-size:1.12rem;margin-bottom:0.4rem;}
  .refs{list-style:none;margin:1rem 0 0;}
  .refs li{margin:0 0 1.1rem;padding-left:1.5rem;text-indent:-1.5rem;color:var(--gray);font-size:0.98rem;line-height:1.62;}
  .notfound{padding:6rem 0 3rem;text-align:center;}
  .notfound .btn{margin-top:1.6rem;}
  .attrib{font-size:0.82rem;color:var(--gray);font-style:italic;margin-top:2.2rem;border-top:1px solid var(--rule);padding-top:1.2rem;}

  /* reading-list references: hanging indent, no inherited bullet */
  .prose ul.refs li::before{content:none;}
  .prose ul li strong{color:var(--brown);font-weight:500;}
