
/* Layout: a walk through Villa Kerylos — ΧΑΙΡΕ mosaic at the threshold, Ionic peristyle, painted friezes between rooms (black ground, ochre ornament), statue niches, the Aegean beyond. Crimson speaks only for Sparta. */
:root{
  --marble:#f3eee2; --paper:#fbf8f0; --fresco:#ebe2cc; --ink:#16130e; --stone:#62594b;
  --ochre:#a8731f; --bronze:#6f5223; --frieze:#1b1712; --on-frieze:#d9a548;
  --sea:#1d5960; --on-sea:#f3eee2; --sea-line:#9cc7c4;
  --crimson:#9b1b1f;
  --tess-field:#1b1712; --tess-letter:#efe6d2; --tess-border:#a8731f;
  --display:"Marcellus SC","Marcellus",Georgia,"Times New Roman",serif;
  --display-lc:"Marcellus",Georgia,serif;
  --body:"Cardo","Palatino Linotype",Palatino,Georgia,serif;
  --measure:64ch;
}
/* One light scheme by design: the villa's marble and painted walls, whatever the viewer's theme */
:root{color-scheme:light;
  /* sampled from the founder's photographs of Kerylos: oxblood woodwork, charcoal-and-gold ceilings, warm plaster walls */
  --wall-black:#24211d; --wall-red:#6c2e25; --wall-ochre:#e5dac6; --dado:#3a1a14;
  --on-wall:#f2e9d5; --on-wall-soft:#ddcfb4; --on-wall-accent:#d9b56a; --on-ochre-soft:#4a3a26; --on-ochre-accent:#8a5a1c}

/* Kerylos room */
.kerylos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
.kerylos-grid .photo .frame img{aspect-ratio:1/1;object-fit:cover}
.offerings{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.niches.niches{grid-template-columns:repeat(4,1fr)}
.route{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.route .frame{border-color:var(--sea-line);background:var(--sea)}
.route .frame img{aspect-ratio:1/1;object-fit:cover}
.sea .photo figcaption{color:var(--sea-line)}
.sea .photo figcaption b{color:var(--on-sea)}
.route-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-top:44px}
.route-head + .route{margin-top:14px}
.offerings .frame img{aspect-ratio:3/4;object-fit:cover}
.offerings .photo{align-content:start}
.offerings.two{grid-template-columns:repeat(2,1fr)}
.offerings.two .frame img{aspect-ratio:4/3}
.gods-head{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:48px;align-items:end;margin-bottom:44px}
.gods-head .sec-head{margin:0}
.threshold-pair .frame img{aspect-ratio:4/5;object-fit:cover}

.wall{box-shadow:inset 0 -18px 0 var(--dado);padding-bottom:84px;border-top:3px solid var(--ochre)}
.wall-black{background:var(--wall-black)}
.wall-red{background:var(--wall-red)}
.wall-ochre{background:var(--wall-ochre)}
.wall-black,.wall-red{color:var(--on-wall)}
.wall-black .epigraph,.wall-red .epigraph{color:var(--on-wall-accent)}
.wall-black .sec-head p,.wall-red .sec-head p,.wall-red .note,.wall-red .god .en,.wall-red .god .dom,.wall-black .niche .sub,.wall-black .photo figcaption,.wall-red .photo figcaption{color:var(--on-wall-soft)}
.wall-black .photo figcaption b,.wall-red .photo figcaption b,.wall-black .niche .cap{color:var(--on-wall)}
.wall-ochre .epigraph{color:var(--on-ochre-accent)}
.wall-ochre .sec-head p,.wall-ochre .photo figcaption{color:var(--on-ochre-soft)}
.wall-ochre .photo .frame,.wall-ochre blockquote{border-color:var(--dado)}

*{box-sizing:border-box}
body{background:var(--marble);color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.6}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}
.wrap{max-width:70rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;letter-spacing:.04em}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem)}
h3{font-size:1.25rem}
p{margin:0}
.eyebrow{font-family:var(--display);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--stone)}
.epigraph{font-family:var(--body);font-size:1.05rem;letter-spacing:.42em;color:var(--ochre)}
.greek{font-family:var(--body)}

/* Friezes: painted bands on a black ground, ornament drawn by script */
.band{display:block;width:100%;color:var(--ink)}
.band path,.band ellipse,.band line{fill:none;stroke:currentColor}
.meander{height:28px}
.meander path{stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}
.dmeander{height:38px}
.anthemion{height:64px;overflow:hidden}
.band.anthemion path{fill:currentColor;stroke:currentColor}

.frieze.inv{background:var(--on-frieze)}
.frieze.inv .band{color:var(--frieze)}
.dmeander path,.dmeander line{stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}
.dmeander rect{fill:currentColor;stroke:none}
.meander2,.meander5{height:28px}
.meander2 path,.meander3 path,.meander4 path,.meander5 path{stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}
.frieze{background:var(--frieze);color:var(--on-frieze);padding-block:10px;border-top:2px solid var(--ochre);border-bottom:2px solid var(--ochre)}
.frieze .band{color:var(--on-frieze)}
.wave{height:30px}
.wave path{stroke-width:2.2;stroke-linecap:round}

header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--marble);border-bottom:1px solid var(--fresco)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--marble)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;flex-wrap:wrap}
.mark{font-family:var(--display);letter-spacing:.16em;font-size:.92rem;text-decoration:none}
nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
nav a{font-family:var(--display);font-size:.78rem;letter-spacing:.16em;text-decoration:none;color:var(--stone)}
nav a:hover{color:var(--ochre)}

/* Threshold: columns flank the ΧΑΙΡΕ mosaic */
.threshold{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:end;padding-block:40px 28px}
.column{width:74px;height:400px;color:var(--ink)}
.column *{vector-effect:non-scaling-stroke}
.center{display:grid;gap:22px;justify-items:center;text-align:center;min-width:0}
.mosaic-frame{width:100%;max-width:620px;aspect-ratio:620/190;border:2px solid var(--ochre);padding:6px;background:var(--paper)}
#mosaic{display:block;width:100%;height:100%}
.hero-name{font-family:var(--display-lc);font-size:clamp(1.5rem,3.2vw,2.3rem);letter-spacing:.06em}
.lead{max-width:46ch;font-size:1.2rem;color:var(--stone)}
.actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.btn{font-family:var(--display);letter-spacing:.14em;font-size:.84rem;padding:13px 22px;border:1.5px solid var(--ink);background:var(--ink);color:var(--marble);text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink)}
.btn:hover{background:var(--ochre);border-color:var(--ochre);color:var(--paper)}

section{padding-block:64px}
.sec-head{display:grid;gap:10px;margin-bottom:34px;max-width:var(--measure)}
.sec-head p{color:var(--stone)}

/* Intro with niche */
.intro{display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:start}
.intro .text{display:grid;gap:18px;max-width:var(--measure);min-width:0}
.maxim{border:4px double var(--ochre);padding:26px;display:grid;gap:12px;text-align:center;background:var(--paper)}
.maxim .g{font-size:1.8rem;letter-spacing:.08em}
.maxim .t{color:var(--stone);font-style:italic}

/* Statue niches: arched, ready for photographs of ancient sculpture */
.niches{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.niche{display:grid;gap:12px;justify-items:center;text-align:center}
.arch{width:100%;max-width:260px;aspect-ratio:3/4.4;border-radius:130px 130px 4px 4px;background:
  radial-gradient(ellipse at 50% 30%,var(--paper) 0%,var(--fresco) 70%);
  border:2px solid var(--ochre);box-shadow:inset 0 0 0 6px var(--paper),inset 0 0 0 7px var(--ochre);
  display:grid;place-items:center;overflow:hidden;position:relative;color:var(--bronze)}
.arch svg{width:44%;height:auto}
.arch img{width:100%;height:100%;object-fit:cover}
.niche .cap{font-family:var(--display);font-size:.8rem;letter-spacing:.16em}
.niche .sub{font-size:.95rem;color:var(--stone);font-style:italic;max-width:28ch}

/* The Twelve: medallions */
.twelve{display:grid;grid-template-columns:repeat(6,1fr);gap:26px 14px}
.god{display:grid;gap:6px;justify-items:center;text-align:center}
.medal{width:96px;height:96px;border-radius:50%;border:2px solid var(--ochre);box-shadow:inset 0 0 0 5px var(--paper),inset 0 0 0 6px var(--ochre);background:var(--paper);display:grid;place-items:center;color:var(--ink)}
.medal svg{width:46px;height:46px}
.medal svg *{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.god .gr{font-size:1.25rem}
.god .en{font-family:var(--display);font-size:.74rem;letter-spacing:.16em;color:var(--stone)}
.god .dom{font-size:.88rem;color:var(--stone);font-style:italic}
.god.sparta .medal{color:var(--crimson)}
.note{margin-top:22px;font-size:.98rem;color:var(--stone)}

/* Festival year */
.year{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;background:var(--paper)}
.year th{font-family:var(--display);font-weight:400;font-size:.74rem;letter-spacing:.18em;text-align:left;color:var(--stone);padding:12px 14px;border-bottom:2px solid var(--ochre)}
.year td{padding:14px;border-bottom:1px solid var(--fresco);vertical-align:top}
.year td.fest{font-family:var(--display-lc);font-size:1.12rem}
.year tr.sparta td.fest{color:var(--crimson)}
.tag{display:inline-block;font-family:var(--display);font-size:.64rem;letter-spacing:.16em;color:var(--crimson);border:1px solid var(--crimson);padding:1px 6px;margin-left:8px;vertical-align:2px}
.table-scroll{overflow-x:auto;border:1px solid var(--fresco)}
.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.chip{font-family:var(--display);font-size:.74rem;letter-spacing:.14em;padding:7px 14px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--marble)}

/* Liturgy */
.hymn{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.hymn blockquote{margin:0;padding:30px 34px;background:var(--paper);border:4px double var(--ochre);display:grid;gap:14px}
.hymn .gk{font-size:1.25rem}
.hymn .en{font-style:italic;line-height:1.7}
.hymn cite{font-style:normal;font-size:.9rem;color:var(--stone)}

/* Pilgrimage: the Aegean below the villa */
.sea{background:var(--sea);color:var(--on-sea)}
.sea .eyebrow,.sea .sec-head p{color:var(--sea-line)}
.sea .band{color:var(--sea-line)}
.pilgrim{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.pilgrim .card{border:2px solid var(--sea-line);padding:28px;display:grid;gap:10px}
.pilgrim dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:8px 0 0}
.pilgrim dt{font-family:var(--display);font-size:.74rem;letter-spacing:.14em;color:var(--sea-line);padding-top:3px}
.pilgrim dd{margin:0}
.sea .btn.ghost{border-color:var(--on-sea);color:var(--on-sea)}
.sea .btn.ghost:hover{background:var(--on-sea);color:var(--sea)}

/* Membership */
.paths{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.path{padding:28px 24px;display:grid;gap:12px;align-content:start;min-width:0;background:var(--paper)}
.path + .path{border-left:2px solid var(--ink)}
.path .price{font-family:var(--display);font-size:1.6rem;letter-spacing:.04em}
.path .price small{font-family:var(--body);font-size:.95rem;color:var(--stone);letter-spacing:0}
.path ul{margin:0;padding-left:1.1em;display:grid;gap:6px}
.path.featured{background:var(--fresco)}
.join{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;margin-top:44px}
.join .text{display:grid;gap:12px;min-width:0}
form{display:grid;gap:14px;padding:28px;border:4px double var(--ochre);background:var(--paper)}
label{display:grid;gap:6px;font-family:var(--display);font-size:.76rem;letter-spacing:.14em;color:var(--stone)}
input,select{font:inherit;font-family:var(--body);font-size:1.05rem;padding:10px 12px;border:1.5px solid var(--ink);background:var(--marble);color:var(--ink);border-radius:0}
.status{min-height:1.5em;font-size:.98rem}

footer{padding-block:28px 56px;text-align:center;color:var(--stone)}
footer .inner{display:grid;gap:12px;justify-items:center}
footer .g{font-size:1.4rem;color:var(--ink);letter-spacing:.1em}
footer small{font-size:.85rem}

/* Photographs and paintings */
.photo{margin:0;display:grid;gap:10px;min-width:0}
.photo .frame{border:2px solid var(--ochre);padding:6px;background:var(--paper)}
.photo img{display:block;width:100%;height:auto}
.photo figcaption{font-size:.9rem;color:var(--stone);font-style:italic;line-height:1.45}
.photo figcaption b{font-family:var(--display);font-style:normal;font-weight:400;font-size:.76rem;letter-spacing:.16em;color:var(--ink);margin-right:6px}
.cover img{aspect-ratio:var(--ratio,4/3);object-fit:cover}
.agalmata-head{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:end;margin-bottom:40px}
.agalmata-head .sec-head{margin:0}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}
.duo .card{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:center;padding:20px;border:4px double var(--ochre);background:var(--paper)}
.duo .card .text{display:grid;gap:8px;min-width:0}
.duo .card .text p{font-size:1rem;color:var(--stone)}
.nashville{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.nashville .wide{grid-column:1 / -1}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.vase-band{margin-bottom:28px}
.liturgy-left{display:grid;gap:22px}


/* Hemera */
.hemera{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center}
.hemera .text{display:grid;gap:16px;min-width:0;max-width:var(--measure)}
.feat{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.feat li{display:grid;gap:2px;padding-left:16px;border-left:2px solid var(--ochre)}
.feat b{font-family:var(--display);font-weight:400;font-size:.8rem;letter-spacing:.14em}
.feat span{font-size:.98rem;color:var(--stone)}
.store{display:inline-flex;align-items:center;gap:12px;padding:12px 22px;background:var(--ink);color:var(--marble);text-decoration:none;font-family:var(--display);letter-spacing:.12em;font-size:.85rem;justify-self:start}
.store small{display:block;font-family:var(--body);letter-spacing:0;font-size:.8rem;opacity:.8}
.store:hover{background:var(--ochre)}
.phone{width:270px;border:10px solid var(--ink);border-radius:38px;background:var(--marble);padding:22px 18px 26px;display:grid;gap:12px;box-shadow:0 18px 40px rgba(20,17,12,.25)}
.phone .meander,.phone .meander2,.phone .meander5{height:18px}
.phone .day{font-family:var(--display);text-align:center;display:grid;gap:2px}
.phone .day .att{font-size:1.15rem;letter-spacing:.06em}
.phone .day .jul{font-family:var(--body);font-size:.85rem;color:var(--stone)}
.phone .card{border:1.5px solid var(--ochre);background:var(--paper);padding:12px;display:grid;gap:6px;text-align:center}
.phone .card .f{font-family:var(--display-lc);font-size:1.05rem;color:var(--crimson)}
.phone .card .g{font-size:.9rem;color:var(--stone)}
.phone .card.plain .f{color:var(--ink)}
.phone .medal{width:64px;height:64px;justify-self:center}
.phone .medal svg{width:32px;height:32px}
@media (max-width:980px){.hemera{grid-template-columns:1fr}.phone{justify-self:center}}
@media (max-width:600px){.feat{grid-template-columns:1fr}}
/* Archive */
.archive{columns:4 220px;column-gap:16px}
.archive figure{break-inside:avoid;margin:0 0 16px;display:grid;gap:6px}
.archive img{display:block;width:100%;height:auto;border:1.5px solid var(--ochre);padding:4px;background:var(--paper)}
.archive figcaption{font-size:.86rem;color:var(--stone);font-style:italic;line-height:1.4}
/* Mission */
.mission{display:grid;gap:40px}
.mission .lead-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.mission .text{display:grid;gap:16px;max-width:var(--measure);min-width:0}
.mission .statement{font-size:1.3rem;line-height:1.55;border-left:3px solid var(--ochre);padding-left:22px}
.mission .cols{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.mission .cols > div{display:grid;gap:14px;align-content:start;min-width:0}
.mission ul,.mission ol{margin:0;padding-left:1.2em;display:grid;gap:8px}
.mission .groups{width:100%;border-collapse:collapse;background:var(--paper);font-size:1rem}
.mission .groups th{font-family:var(--display);font-weight:400;font-size:.74rem;letter-spacing:.16em;text-align:left;color:var(--stone);padding:10px 12px;border-bottom:2px solid var(--ochre)}
.mission .groups td{padding:12px;border-bottom:1px solid var(--fresco);vertical-align:top}
@media (max-width:980px){.mission .lead-row,.mission .cols{grid-template-columns:1fr}}
@media (max-width:980px){
  .sparta-gods{grid-template-columns:1fr !important}
  .sparta-gods p[style]{margin-top:0 !important}
  .column{display:none}
  .agalmata-head,.gods-head,.duo,.duo .card{grid-template-columns:1fr}
  .nashville{grid-template-columns:1fr 1fr}
  .kerylos-grid,.route,.niches.niches{grid-template-columns:repeat(2,1fr)}
  .offerings{grid-template-columns:1fr 1fr}
  .offerings > .photo:last-child:nth-child(odd){grid-column:1 / -1}
  .offerings > .photo:last-child:nth-child(odd) .frame img{aspect-ratio:4/3}
  .threshold{grid-template-columns:minmax(0,1fr)}
  .twelve{grid-template-columns:repeat(4,1fr)}
  .intro,.hymn,.join,.pilgrim{grid-template-columns:1fr}
  .paths{grid-template-columns:1fr}
  .path + .path{border-left:0;border-top:2px solid var(--ink)}
  .niches{grid-template-columns:repeat(3,1fr);gap:16px}
}
@media (max-width:600px){
  .nashville,.pair,.niches.niches{grid-template-columns:1fr}
  .twelve{grid-template-columns:repeat(2,1fr)}
  .niches{grid-template-columns:1fr}
  section{padding-block:48px}
  nav ul{gap:12px}
}
@media (prefers-reduced-motion:no-preference){.btn,.chip{transition:background .15s ease,color .15s ease}}

/* tab labels */
.tab-label{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:clamp(1.05rem,2.2vw,1.35rem);color:var(--ochre);margin:0 0 6px}
.wall-red .tab-label,.wall-black .tab-label{color:var(--on-wall-accent)}
.wall-ochre .tab-label{color:var(--on-ochre-accent)}
.sea .tab-label{color:var(--sea-line)}
.tab-intro{font-style:italic;margin:0 0 10px}
/* mystery schools (scoped, from orpheus.html) */
#mystery-schools .page{max-width:var(--measure);margin:0 auto}
#mystery-schools .page h3{font-size:1.2rem;margin:34px 0 10px}
#mystery-schools .page dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
#mystery-schools .page dt{font-family:var(--display);letter-spacing:.08em}
#mystery-schools .page dd{margin:0;color:var(--stone)}
#mystery-schools .page ul.facts{padding-left:1.1em;display:grid;gap:8px}
#mystery-schools .page blockquote{border-left:4px double var(--ochre);margin:12px 0;padding:8px 18px;background:var(--paper);font-style:italic}
#mystery-schools .page cite{display:block;font-style:normal;font-size:.85rem;color:var(--stone);margin-top:8px}
#mystery-schools .page dl{grid-template-columns:1fr}
#mystery-schools .page dt{margin-top:8px}
#mystery-schools .toc{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;font-family:var(--display);font-size:.78rem;letter-spacing:.12em}
#mystery-schools .toc a{color:var(--ochre);text-decoration:none}


/* Layout: a walk through Villa Kerylos — ΧΑΙΡΕ mosaic at the threshold, Ionic peristyle, painted friezes between rooms (black ground, ochre ornament), statue niches, the Aegean beyond. Crimson speaks only for Sparta. */
:root{
  --marble:#f3eee2; --paper:#fbf8f0; --fresco:#ebe2cc; --ink:#16130e; --stone:#62594b;
  --ochre:#a8731f; --bronze:#6f5223; --frieze:#1b1712; --on-frieze:#d9a548;
  --sea:#1d5960; --on-sea:#f3eee2; --sea-line:#9cc7c4;
  --crimson:#9b1b1f;
  --tess-field:#1b1712; --tess-letter:#efe6d2; --tess-border:#a8731f;
  --display:"Marcellus SC","Marcellus",Georgia,"Times New Roman",serif;
  --display-lc:"Marcellus",Georgia,serif;
  --body:"Cardo","Palatino Linotype",Palatino,Georgia,serif;
  --measure:64ch;
}
/* One light scheme by design: the villa's marble and painted walls, whatever the viewer's theme */
:root{color-scheme:light;
  /* sampled from the founder's photographs of Kerylos: oxblood woodwork, charcoal-and-gold ceilings, warm plaster walls */
  --wall-black:#24211d; --wall-red:#6c2e25; --wall-ochre:#e5dac6; --dado:#3a1a14;
  --on-wall:#f2e9d5; --on-wall-soft:#ddcfb4; --on-wall-accent:#d9b56a; --on-ochre-soft:#4a3a26; --on-ochre-accent:#8a5a1c}

/* Kerylos room */
.kerylos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
.kerylos-grid .photo .frame img{aspect-ratio:1/1;object-fit:cover}
.offerings{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.niches.niches{grid-template-columns:repeat(4,1fr)}
.route{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.route .frame{border-color:var(--sea-line);background:var(--sea)}
.route .frame img{aspect-ratio:1/1;object-fit:cover}
.sea .photo figcaption{color:var(--sea-line)}
.sea .photo figcaption b{color:var(--on-sea)}
.route-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-top:44px}
.route-head + .route{margin-top:14px}
.offerings .frame img{aspect-ratio:3/4;object-fit:cover}
.offerings .photo{align-content:start}
.offerings.two{grid-template-columns:repeat(2,1fr)}
.offerings.two .frame img{aspect-ratio:4/3}
.gods-head{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:48px;align-items:end;margin-bottom:44px}
.gods-head .sec-head{margin:0}
.threshold-pair .frame img{aspect-ratio:4/5;object-fit:cover}

.wall{box-shadow:inset 0 -18px 0 var(--dado);padding-bottom:84px;border-top:3px solid var(--ochre)}
.wall-black{background:var(--wall-black)}
.wall-red{background:var(--wall-red)}
.wall-ochre{background:var(--wall-ochre)}
.wall-black,.wall-red{color:var(--on-wall)}
.wall-black .epigraph,.wall-red .epigraph{color:var(--on-wall-accent)}
.wall-black .sec-head p,.wall-red .sec-head p,.wall-red .note,.wall-red .god .en,.wall-red .god .dom,.wall-black .niche .sub,.wall-black .photo figcaption,.wall-red .photo figcaption{color:var(--on-wall-soft)}
.wall-black .photo figcaption b,.wall-red .photo figcaption b,.wall-black .niche .cap{color:var(--on-wall)}
.wall-ochre .epigraph{color:var(--on-ochre-accent)}
.wall-ochre .sec-head p,.wall-ochre .photo figcaption{color:var(--on-ochre-soft)}
.wall-ochre .photo .frame,.wall-ochre blockquote{border-color:var(--dado)}

*{box-sizing:border-box}
body{background:var(--marble);color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.6}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}
.wrap{max-width:70rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;letter-spacing:.04em}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem)}
h3{font-size:1.25rem}
p{margin:0}
.eyebrow{font-family:var(--display);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--stone)}
.epigraph{font-family:var(--body);font-size:1.05rem;letter-spacing:.42em;color:var(--ochre)}
.greek{font-family:var(--body)}

/* Friezes: painted bands on a black ground, ornament drawn by script */
.band{display:block;width:100%;color:var(--ink)}
.band path,.band ellipse,.band line{fill:none;stroke:currentColor}
.meander{height:28px}
.meander path{stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}
.dmeander{height:38px}
.anthemion{height:64px;overflow:hidden}
.band.anthemion path{fill:currentColor;stroke:currentColor}

.frieze.inv{background:var(--on-frieze)}
.frieze.inv .band{color:var(--frieze)}
.dmeander path,.dmeander line{stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}
.dmeander rect{fill:currentColor;stroke:none}
.meander2,.meander5{height:28px}
.meander2 path,.meander3 path,.meander4 path,.meander5 path{stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}
.frieze{background:var(--frieze);color:var(--on-frieze);padding-block:10px;border-top:2px solid var(--ochre);border-bottom:2px solid var(--ochre)}
.frieze .band{color:var(--on-frieze)}
.wave{height:30px}
.wave path{stroke-width:2.2;stroke-linecap:round}

header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--marble);border-bottom:1px solid var(--fresco)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--marble)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;flex-wrap:wrap}
.mark{font-family:var(--display);letter-spacing:.16em;font-size:.92rem;text-decoration:none}
nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
nav a{font-family:var(--display);font-size:.78rem;letter-spacing:.16em;text-decoration:none;color:var(--stone)}
nav a:hover{color:var(--ochre)}

/* Threshold: columns flank the ΧΑΙΡΕ mosaic */
.threshold{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:end;padding-block:40px 28px}
.column{width:74px;height:400px;color:var(--ink)}
.column *{vector-effect:non-scaling-stroke}
.center{display:grid;gap:22px;justify-items:center;text-align:center;min-width:0}
.mosaic-frame{width:100%;max-width:620px;aspect-ratio:620/190;border:2px solid var(--ochre);padding:6px;background:var(--paper)}
#mosaic{display:block;width:100%;height:100%}
.hero-name{font-family:var(--display-lc);font-size:clamp(1.5rem,3.2vw,2.3rem);letter-spacing:.06em}
.lead{max-width:46ch;font-size:1.2rem;color:var(--stone)}
.actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.btn{font-family:var(--display);letter-spacing:.14em;font-size:.84rem;padding:13px 22px;border:1.5px solid var(--ink);background:var(--ink);color:var(--marble);text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink)}
.btn:hover{background:var(--ochre);border-color:var(--ochre);color:var(--paper)}

section{padding-block:64px}
.sec-head{display:grid;gap:10px;margin-bottom:34px;max-width:var(--measure)}
.sec-head p{color:var(--stone)}

/* Intro with niche */
.intro{display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:start}
.intro .text{display:grid;gap:18px;max-width:var(--measure);min-width:0}
.maxim{border:4px double var(--ochre);padding:26px;display:grid;gap:12px;text-align:center;background:var(--paper)}
.maxim .g{font-size:1.8rem;letter-spacing:.08em}
.maxim .t{color:var(--stone);font-style:italic}

/* Statue niches: arched, ready for photographs of ancient sculpture */
.niches{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.niche{display:grid;gap:12px;justify-items:center;text-align:center}
.arch{width:100%;max-width:260px;aspect-ratio:3/4.4;border-radius:130px 130px 4px 4px;background:
  radial-gradient(ellipse at 50% 30%,var(--paper) 0%,var(--fresco) 70%);
  border:2px solid var(--ochre);box-shadow:inset 0 0 0 6px var(--paper),inset 0 0 0 7px var(--ochre);
  display:grid;place-items:center;overflow:hidden;position:relative;color:var(--bronze)}
.arch svg{width:44%;height:auto}
.arch img{width:100%;height:100%;object-fit:cover}
.niche .cap{font-family:var(--display);font-size:.8rem;letter-spacing:.16em}
.niche .sub{font-size:.95rem;color:var(--stone);font-style:italic;max-width:28ch}

/* The Twelve: medallions */
.twelve{display:grid;grid-template-columns:repeat(6,1fr);gap:26px 14px}
.god{display:grid;gap:6px;justify-items:center;text-align:center}
.medal{width:96px;height:96px;border-radius:50%;border:2px solid var(--ochre);box-shadow:inset 0 0 0 5px var(--paper),inset 0 0 0 6px var(--ochre);background:var(--paper);display:grid;place-items:center;color:var(--ink)}
.medal svg{width:46px;height:46px}
.medal svg *{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.god .gr{font-size:1.25rem}
.god .en{font-family:var(--display);font-size:.74rem;letter-spacing:.16em;color:var(--stone)}
.god .dom{font-size:.88rem;color:var(--stone);font-style:italic}
.god.sparta .medal{color:var(--crimson)}
.note{margin-top:22px;font-size:.98rem;color:var(--stone)}

/* Festival year */
.year{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;background:var(--paper)}
.year th{font-family:var(--display);font-weight:400;font-size:.74rem;letter-spacing:.18em;text-align:left;color:var(--stone);padding:12px 14px;border-bottom:2px solid var(--ochre)}
.year td{padding:14px;border-bottom:1px solid var(--fresco);vertical-align:top}
.year td.fest{font-family:var(--display-lc);font-size:1.12rem}
.year tr.sparta td.fest{color:var(--crimson)}
.tag{display:inline-block;font-family:var(--display);font-size:.64rem;letter-spacing:.16em;color:var(--crimson);border:1px solid var(--crimson);padding:1px 6px;margin-left:8px;vertical-align:2px}
.table-scroll{overflow-x:auto;border:1px solid var(--fresco)}
.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.chip{font-family:var(--display);font-size:.74rem;letter-spacing:.14em;padding:7px 14px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--marble)}

/* Liturgy */
.hymn{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.hymn blockquote{margin:0;padding:30px 34px;background:var(--paper);border:4px double var(--ochre);display:grid;gap:14px}
.hymn .gk{font-size:1.25rem}
.hymn .en{font-style:italic;line-height:1.7}
.hymn cite{font-style:normal;font-size:.9rem;color:var(--stone)}

/* Pilgrimage: the Aegean below the villa */
.sea{background:var(--sea);color:var(--on-sea)}
.sea .eyebrow,.sea .sec-head p{color:var(--sea-line)}
.sea .band{color:var(--sea-line)}
.pilgrim{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.pilgrim .card{border:2px solid var(--sea-line);padding:28px;display:grid;gap:10px}
.pilgrim dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:8px 0 0}
.pilgrim dt{font-family:var(--display);font-size:.74rem;letter-spacing:.14em;color:var(--sea-line);padding-top:3px}
.pilgrim dd{margin:0}
.sea .btn.ghost{border-color:var(--on-sea);color:var(--on-sea)}
.sea .btn.ghost:hover{background:var(--on-sea);color:var(--sea)}

/* Membership */
.paths{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.path{padding:28px 24px;display:grid;gap:12px;align-content:start;min-width:0;background:var(--paper)}
.path + .path{border-left:2px solid var(--ink)}
.path .price{font-family:var(--display);font-size:1.6rem;letter-spacing:.04em}
.path .price small{font-family:var(--body);font-size:.95rem;color:var(--stone);letter-spacing:0}
.path ul{margin:0;padding-left:1.1em;display:grid;gap:6px}
.path.featured{background:var(--fresco)}
.join{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;margin-top:44px}
.join .text{display:grid;gap:12px;min-width:0}
form{display:grid;gap:14px;padding:28px;border:4px double var(--ochre);background:var(--paper)}
label{display:grid;gap:6px;font-family:var(--display);font-size:.76rem;letter-spacing:.14em;color:var(--stone)}
input,select{font:inherit;font-family:var(--body);font-size:1.05rem;padding:10px 12px;border:1.5px solid var(--ink);background:var(--marble);color:var(--ink);border-radius:0}
.status{min-height:1.5em;font-size:.98rem}

footer{padding-block:28px 56px;text-align:center;color:var(--stone)}
footer .inner{display:grid;gap:12px;justify-items:center}
footer .g{font-size:1.4rem;color:var(--ink);letter-spacing:.1em}
footer small{font-size:.85rem}

/* Photographs and paintings */
.photo{margin:0;display:grid;gap:10px;min-width:0}
.photo .frame{border:2px solid var(--ochre);padding:6px;background:var(--paper)}
.photo img{display:block;width:100%;height:auto}
.photo figcaption{font-size:.9rem;color:var(--stone);font-style:italic;line-height:1.45}
.photo figcaption b{font-family:var(--display);font-style:normal;font-weight:400;font-size:.76rem;letter-spacing:.16em;color:var(--ink);margin-right:6px}
.cover img{aspect-ratio:var(--ratio,4/3);object-fit:cover}
.agalmata-head{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:end;margin-bottom:40px}
.agalmata-head .sec-head{margin:0}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}
.duo .card{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:center;padding:20px;border:4px double var(--ochre);background:var(--paper)}
.duo .card .text{display:grid;gap:8px;min-width:0}
.duo .card .text p{font-size:1rem;color:var(--stone)}
.nashville{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.nashville .wide{grid-column:1 / -1}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.vase-band{margin-bottom:28px}
.liturgy-left{display:grid;gap:22px}


/* Hemera */
.hemera{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center}
.hemera .text{display:grid;gap:16px;min-width:0;max-width:var(--measure)}
.feat{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.feat li{display:grid;gap:2px;padding-left:16px;border-left:2px solid var(--ochre)}
.feat b{font-family:var(--display);font-weight:400;font-size:.8rem;letter-spacing:.14em}
.feat span{font-size:.98rem;color:var(--stone)}
.store{display:inline-flex;align-items:center;gap:12px;padding:12px 22px;background:var(--ink);color:var(--marble);text-decoration:none;font-family:var(--display);letter-spacing:.12em;font-size:.85rem;justify-self:start}
.store small{display:block;font-family:var(--body);letter-spacing:0;font-size:.8rem;opacity:.8}
.store:hover{background:var(--ochre)}
.phone{width:270px;border:10px solid var(--ink);border-radius:38px;background:var(--marble);padding:22px 18px 26px;display:grid;gap:12px;box-shadow:0 18px 40px rgba(20,17,12,.25)}
.phone .meander,.phone .meander2,.phone .meander5{height:18px}
.phone .day{font-family:var(--display);text-align:center;display:grid;gap:2px}
.phone .day .att{font-size:1.15rem;letter-spacing:.06em}
.phone .day .jul{font-family:var(--body);font-size:.85rem;color:var(--stone)}
.phone .card{border:1.5px solid var(--ochre);background:var(--paper);padding:12px;display:grid;gap:6px;text-align:center}
.phone .card .f{font-family:var(--display-lc);font-size:1.05rem;color:var(--crimson)}
.phone .card .g{font-size:.9rem;color:var(--stone)}
.phone .card.plain .f{color:var(--ink)}
.phone .medal{width:64px;height:64px;justify-self:center}
.phone .medal svg{width:32px;height:32px}
@media (max-width:980px){.hemera{grid-template-columns:1fr}.phone{justify-self:center}}
@media (max-width:600px){.feat{grid-template-columns:1fr}}
/* Archive */
.archive{columns:4 220px;column-gap:16px}
.archive figure{break-inside:avoid;margin:0 0 16px;display:grid;gap:6px}
.archive img{display:block;width:100%;height:auto;border:1.5px solid var(--ochre);padding:4px;background:var(--paper)}
.archive figcaption{font-size:.86rem;color:var(--stone);font-style:italic;line-height:1.4}
/* Mission */
.mission{display:grid;gap:40px}
.mission .lead-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.mission .text{display:grid;gap:16px;max-width:var(--measure);min-width:0}
.mission .statement{font-size:1.3rem;line-height:1.55;border-left:3px solid var(--ochre);padding-left:22px}
.mission .cols{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.mission .cols > div{display:grid;gap:14px;align-content:start;min-width:0}
.mission ul,.mission ol{margin:0;padding-left:1.2em;display:grid;gap:8px}
.mission .groups{width:100%;border-collapse:collapse;background:var(--paper);font-size:1rem}
.mission .groups th{font-family:var(--display);font-weight:400;font-size:.74rem;letter-spacing:.16em;text-align:left;color:var(--stone);padding:10px 12px;border-bottom:2px solid var(--ochre)}
.mission .groups td{padding:12px;border-bottom:1px solid var(--fresco);vertical-align:top}
@media (max-width:980px){.mission .lead-row,.mission .cols{grid-template-columns:1fr}}
@media (max-width:980px){
  .sparta-gods{grid-template-columns:1fr !important}
  .sparta-gods p[style]{margin-top:0 !important}
  .column{display:none}
  .agalmata-head,.gods-head,.duo,.duo .card{grid-template-columns:1fr}
  .nashville{grid-template-columns:1fr 1fr}
  .kerylos-grid,.route,.niches.niches{grid-template-columns:repeat(2,1fr)}
  .offerings{grid-template-columns:1fr 1fr}
  .offerings > .photo:last-child:nth-child(odd){grid-column:1 / -1}
  .offerings > .photo:last-child:nth-child(odd) .frame img{aspect-ratio:4/3}
  .threshold{grid-template-columns:minmax(0,1fr)}
  .twelve{grid-template-columns:repeat(4,1fr)}
  .intro,.hymn,.join,.pilgrim{grid-template-columns:1fr}
  .paths{grid-template-columns:1fr}
  .path + .path{border-left:0;border-top:2px solid var(--ink)}
  .niches{grid-template-columns:repeat(3,1fr);gap:16px}
}
@media (max-width:600px){
  .nashville,.pair,.niches.niches{grid-template-columns:1fr}
  .twelve{grid-template-columns:repeat(2,1fr)}
  .niches{grid-template-columns:1fr}
  section{padding-block:48px}
  nav ul{gap:12px}
}
@media (prefers-reduced-motion:no-preference){.btn,.chip{transition:background .15s ease,color .15s ease}}

/* tab labels */
.tab-label{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:clamp(1.05rem,2.2vw,1.35rem);color:var(--ochre);margin:0 0 6px}
.wall-red .tab-label,.wall-black .tab-label{color:var(--on-wall-accent)}
.wall-ochre .tab-label{color:var(--on-ochre-accent)}
.sea .tab-label{color:var(--sea-line)}
.tab-intro{font-style:italic;margin:0 0 10px}
/* mystery schools (scoped, from orpheus.html) */
#mystery-schools .page{max-width:var(--measure);margin:0 auto}
#mystery-schools .page h3{font-size:1.2rem;margin:34px 0 10px}
#mystery-schools .page dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
#mystery-schools .page dt{font-family:var(--display);letter-spacing:.08em}
#mystery-schools .page dd{margin:0;color:var(--stone)}
#mystery-schools .page ul.facts{padding-left:1.1em;display:grid;gap:8px}
#mystery-schools .page blockquote{border-left:4px double var(--ochre);margin:12px 0;padding:8px 18px;background:var(--paper);font-style:italic}
#mystery-schools .page cite{display:block;font-style:normal;font-size:.85rem;color:var(--stone);margin-top:8px}
#mystery-schools .page dl{grid-template-columns:1fr}
#mystery-schools .page dt{margin-top:8px}
#mystery-schools .toc{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;font-family:var(--display);font-size:.78rem;letter-spacing:.12em}
#mystery-schools .toc a{color:var(--ochre);text-decoration:none}

.frieze.inv{background:var(--on-frieze)}.frieze.inv .band{color:var(--frieze)}
.preview-flag{background:var(--crimson);color:#fff;text-align:center;font-family:var(--display);letter-spacing:.16em;font-size:.72rem;padding:6px 10px}
.hero{padding-block:48px 36px;text-align:center;display:grid;gap:18px;justify-items:center}
.hero h1{font-size:clamp(1.9rem,5vw,3.2rem)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.card{border:2px solid var(--ochre);background:var(--paper);padding:12px;display:grid;gap:8px;align-content:start;min-width:0}
.card .img{aspect-ratio:4/3;background:var(--fresco);display:grid;place-items:center;overflow:hidden;border:1px solid var(--fresco)}
.card .img img{width:100%;height:100%;object-fit:contain;background:#fff}
.card h3{font-size:1.08rem;letter-spacing:.02em}
.card dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 10px;margin:0;font-size:.9rem}
.card dt{font-family:var(--display);font-size:.68rem;letter-spacing:.12em;padding-top:3px;color:var(--stone)}
.card dd{margin:0;overflow-wrap:anywhere}
.card .credit{font-size:.78rem;color:var(--stone);font-style:italic}
.flag{display:inline-block;font-family:var(--display);font-size:.66rem;letter-spacing:.12em;padding:2px 7px;border:1px solid var(--crimson);color:var(--crimson)}
.flag.ok{border-color:var(--sea);color:var(--sea)}
.ph{width:100%;height:100%;min-height:160px;display:grid;place-items:center;text-align:center;padding:16px;border:2px dashed var(--ochre);color:var(--stone);font-family:var(--display);font-size:.78rem;letter-spacing:.14em;background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 10px,var(--fresco) 10px,var(--fresco) 20px)}
.ev{border-left:4px solid var(--ochre);padding:10px 16px;background:var(--paper);margin:14px 0}
.ev.anc{border-color:var(--bronze)}.ev.exc{border-color:var(--sea)}.ev.con{border-color:var(--crimson);border-left-style:dashed}
.ev b.k{font-family:var(--display);font-weight:400;font-size:.72rem;letter-spacing:.16em;display:block;margin-bottom:4px}
.page p{margin:0 0 1em}.page h2{margin:1.4em 0 .5em}
.wide{max-width:70rem}
table.list{width:100%;border-collapse:collapse;background:var(--paper);font-size:1rem}
table.list th{font-family:var(--display);font-weight:400;font-size:.72rem;letter-spacing:.14em;text-align:left;padding:8px;border-bottom:2px solid var(--ochre)}
table.list td{padding:8px;border-bottom:1px solid var(--fresco);vertical-align:top}
.tablewrap{overflow-x:auto}
.map svg{width:100%;height:auto;border:2px solid var(--ochre);background:var(--paper)}
.filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:24px}
.filters button{font-family:var(--display);font-size:.72rem;letter-spacing:.12em;padding:8px 12px;border:1.5px solid var(--ink);background:transparent;cursor:pointer;color:var(--ink)}
.filters button[aria-pressed=true]{background:var(--ink);color:var(--marble)}
footer a{color:var(--sea)}
@media (max-width:560px){.card dl{grid-template-columns:1fr}.card dt{padding-top:6px}nav ul{gap:8px 12px}}
