/* Typefaces are served from this site (SIL Open Font License), so nothing loads from Google. */
@font-face{font-family:"Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/literata-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Literata";font-style:italic;font-weight:200 900;font-display:swap;src:url(../fonts/literata-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/literata-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Literata";font-style:italic;font-weight:200 900;font-display:swap;src:url(../fonts/literata-latin-ext-wght-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/literata-greek-wght-normal.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"Literata";font-style:italic;font-weight:200 900;font-display:swap;src:url(../fonts/literata-greek-wght-italic.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"Marcellus";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/marcellus-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Marcellus";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/marcellus-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Gnostic Studies — public site.
   Palette from the illuminated manuscript: lapis for the frame, gold leaf for
   rules and markers, rubric red for links, black ink on vellum-white. */
:root{
  --lapis:#1B2F57; --lapis-deep:#12203F; --lapis-soft:#E9EDF5;
  --gold:#B8892B; --gold-bright:#D9B04C;
  --rubric:#A3261C;
  --ink:#1D1C1A; --muted:#66625A; --rule:#DCD7C9; --page:#FCFBF8; --wash:#F4F1E8;
  --display:"Marcellus","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --text:"Literata","Iowan Old Style","Palatino Linotype",Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--text);font-size:1.0625rem;line-height:1.7;color:var(--ink);background:var(--page)}
img{max-width:100%;height:auto}
a{color:var(--rubric);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--gold-bright);outline-offset:2px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.2;color:var(--lapis-deep);text-wrap:balance}
/* inside lessons, headings run the full width of the text below them (balance made long ones wrap early) */
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6,.article>h1{text-wrap:wrap;max-width:none}
h1{font-size:clamp(2rem,1.4rem + 2.4vw,3rem);margin:.2em 0 .6em}
.wrap{width:min(1240px,100% - 2.5rem);margin-inline:auto}
.wrap.narrow{width:min(46rem,100% - 2.5rem)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:100}
.muted{color:var(--muted)}
.lede{font-size:1.15rem;color:#3d3a35}

.btn{display:inline-block;font:inherit;font-family:var(--display);font-size:1rem;letter-spacing:.02em;background:var(--lapis);color:#fff;
  border:1px solid var(--lapis);padding:.6rem 1.3rem;border-radius:3px;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--lapis-deep)}
.btn-gold{background:var(--gold-bright);border-color:var(--gold-bright);color:var(--lapis-deep)}
.btn-gold:hover{background:#E6C063}

.announce{background:var(--gold-bright);color:var(--lapis-deep);text-align:center;padding:.5rem 1rem;font-size:.95rem}
.announce a{color:inherit}

/* ---------- header ---------- */
.site-header{background:var(--lapis);color:#fff;border-bottom:3px solid var(--gold);position:relative;z-index:20}
.bar{display:flex;align-items:center;gap:1.2rem;min-height:4.25rem}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none;font-family:var(--display);font-size:1.45rem;white-space:nowrap}
.brand svg{color:var(--gold-bright);flex:none}
.nav{display:flex;align-items:center;gap:1rem;margin-left:auto}
.nav ul{list-style:none;margin:0;padding:0}
.nav>ul{display:flex;align-items:stretch}
.nav>ul>li{position:relative}
.nav>ul>li>a{display:block;padding:1.45rem .6rem;color:#E6EAF3;text-decoration:none;font-family:var(--display);font-size:.98rem;white-space:nowrap}
.nav>ul>li>a:hover,.nav>ul>li>a.active{color:#fff;box-shadow:inset 0 -3px 0 var(--gold-bright)}
.sub-toggle{display:none}
.sub{position:absolute;left:0;top:100%;min-width:17rem;background:#fff;border:1px solid var(--rule);border-top:3px solid var(--gold);
  box-shadow:0 14px 30px rgba(18,32,63,.18);padding:.4rem 0;visibility:hidden;opacity:0;transition:opacity .12s}
.nav>ul>li:hover>.sub,.nav>ul>li:focus-within>.sub{visibility:visible;opacity:1}
.nav>ul>li:nth-last-child(-n+3)>.sub{left:auto;right:0}
.sub a{display:block;padding:.45rem 1.1rem;color:var(--ink);text-decoration:none;font-size:.95rem;line-height:1.35}
.sub a:hover{background:var(--lapis-soft);color:var(--lapis-deep)}
.sub2 a{padding-left:2.1rem;font-size:.9rem;color:#45423c}
.nav-search{display:flex;align-items:center;border:1px solid rgba(255,255,255,.35);border-radius:3px;margin:0}
.nav-search input{background:transparent;border:0;color:#fff;font:inherit;font-size:.95rem;padding:.4rem .6rem;width:6.5rem;min-width:0}
.nav-search input::placeholder{color:#B9C2D8}
.nav-search button{background:none;border:0;color:#fff;padding:.4rem .55rem;cursor:pointer;display:flex}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.4);border-radius:3px;padding:.6rem .55rem;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:4px 0}

/* ---------- home ---------- */
.hero{background:var(--lapis);color:#fff;padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,5.5rem)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.hero h1{color:#fff;font-size:clamp(2.3rem,1.3rem + 4vw,4.4rem);line-height:1.08;margin:0 0 1.2rem;letter-spacing:-.005em}
.hero-lede{font-size:1.2rem;color:#D5DCEB;max-width:34rem;margin:0 0 2rem}
.hero-search{display:flex;gap:.6rem;max-width:34rem}
.hero-search input{flex:1;min-width:0;font:inherit;padding:.7rem 1rem;border:1px solid #fff;border-radius:3px;background:#fff;color:var(--ink)}
.hero-plate{margin:0;justify-self:end;max-width:22rem}
.hero-plate img{display:block;width:100%;border:1px solid var(--gold);padding:6px;background:#fff}
.hero-plate figcaption{font-size:.82rem;color:#B9C2D8;margin-top:.6rem;font-style:italic}
.section{padding:clamp(2.5rem,5vw,4.5rem) 0}
.section-rule{border-top:1px solid var(--rule);background:#fff}
.section-title{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);margin:0 0 1.6rem}
.contents{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:4rem;row-gap:1.5rem;align-items:start}
.contents li{padding:0}
.contents-head{display:flex;align-items:baseline;gap:.6rem;text-decoration:none;color:var(--lapis-deep)}
.contents-name{font-family:var(--display);font-size:1.5rem}
.contents-head:hover .contents-name{color:var(--rubric)}
.leader{flex:1;border-bottom:2px dotted var(--gold);transform:translateY(-.3em);min-width:1.5rem}
.contents-count{font-size:.92rem;color:var(--muted);white-space:nowrap;font-style:italic}
.contents-kids{margin:.25rem 0 0;font-size:.95rem;color:var(--muted);line-height:1.55}
.contents-kids a{color:#45423c;text-decoration:none}
.contents-kids a:hover{color:var(--rubric);text-decoration:underline}

/* ---------- lesson pages ---------- */
.page-grid{display:grid;grid-template-columns:17.5rem minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);padding:2.2rem 0 4rem;align-items:start}
.side{font-size:.93rem;line-height:1.4;border-right:1px solid var(--rule);padding-right:1.2rem;padding-bottom:4.5rem}
.side summary{font-family:var(--display);color:var(--muted);font-size:.95rem;cursor:pointer;list-style:none;margin-bottom:.4rem}
.side summary::-webkit-details-marker{display:none}
.side summary{display:none}
.side ul{list-style:none;margin:0;padding:0}
.side ul ul{margin-left:.9rem;border-left:1px solid var(--rule)}
.side a{display:block;padding:.34rem .7rem;color:#3d3a35;text-decoration:none;border-left:3px solid transparent;margin-left:-1px}
.side a:hover{color:var(--rubric)}
.side a.open{color:var(--lapis-deep);font-weight:600}
.side a.current{color:var(--lapis-deep);font-weight:600;border-left-color:var(--gold);background:var(--wash)}
.side a.is-draft{font-style:italic;color:var(--muted)}
.side a.is-draft::after{content:" (draft)"}
.side-root{font-family:var(--display);font-size:1.15rem;padding-left:.7rem!important;color:var(--lapis-deep)!important;margin-bottom:.3rem}
.article{min-width:0;max-width:48rem}
.article>h1{margin-top:.1em}
.crumbs{font-size:.88rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.4rem}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--rubric);text-decoration:underline}
.draft-note{background:#FFF3C9;border-bottom:1px solid var(--gold);text-align:center;padding:.5rem 1rem;font-size:.95rem}

/* text written in the editor (and 20 years of imported HTML) */
.prose{overflow-wrap:break-word}
.prose::after{content:"";display:block;clear:both}
.prose p{margin:0 0 1.15em}
.prose h2{font-size:1.75rem;margin:1.8em 0 .5em}
.prose h3{font-size:1.4rem;margin:1.7em 0 .5em}
.prose h4{font-size:1.15rem;margin:1.5em 0 .4em}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.4em;margin:0 0 1.15em}
.prose li{margin-bottom:.3em}
.prose blockquote{margin:1.4em 0;padding:.2em 0 .2em 1.3em;border-left:3px solid var(--gold);color:#3d3a35;font-style:italic}
.prose hr{border:0;border-top:1px solid var(--rule);margin:2.2em auto;width:40%}
.prose img{height:auto}
/* white scan backgrounds disappear into the page colour; add class="no-blend" to an image to opt out */
body.blend .prose img:not(.no-blend){mix-blend-mode:multiply}
.prose img[align=right],.prose img.alignright{float:right;margin:.3em 0 1em 1.6em;max-width:50%}
.prose img[align=left],.prose img.alignleft{float:left;margin:.3em 1.6em 1em 0;max-width:50%}
.prose img.aligncenter,.prose p[style*="center"] img,.prose center img{display:block;margin-inline:auto}
.prose img.aligncenter{margin-block:1em}
.prose .table-wrap{overflow-x:auto;margin:0 0 1.15em;max-width:100%}
.prose table{border-collapse:collapse;max-width:100%}
.prose td,.prose th{vertical-align:top;padding:.35em .6em}
.prose table.ruled td,.prose table.ruled th{border:1px solid var(--rule)}
.prose table.ruled th{background:var(--wash);font-weight:600;text-align:left}
.prose iframe{max-width:100%;border:0}
.prose iframe[src*="youtube"],.prose iframe[src*="vimeo"]{aspect-ratio:16/9;width:100%;max-width:40rem;height:auto;display:block;margin:1.2em auto}
.prose sup{line-height:0}
.prose .btn,.prose a.btn{color:#fff;text-decoration:none}
.download-link{display:inline-block;padding-left:1.5em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3261C' stroke-width='2'%3E%3Cpath d='M12 4v11m0 0-4.5-4.5M12 15l4.5-4.5M5 20h14'/%3E%3C/svg%3E") left .28em/1.05em no-repeat;font-weight:600}
.kids{margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.kids h2{font-size:1.4rem;margin:0 0 .8rem}
.kid-list{list-style:none;margin:0;padding:0;columns:2;column-gap:3rem}
.kid-list li{break-inside:avoid;margin-bottom:.35rem;display:flex;gap:.5rem}
.kid-list .num{color:var(--gold);font-family:var(--display);min-width:1.8em;text-align:right;flex:none}
.side .num{color:var(--gold);font-family:var(--display)}
.dl-topic{font-size:1.15rem;margin:1.4rem 0 .3rem;color:var(--muted)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:3rem;padding-top:1.4rem;border-top:3px double var(--rule)}
.pager a{text-decoration:none;font-family:var(--display);font-size:1.15rem;color:var(--lapis-deep);line-height:1.3}
.pager a:hover{color:var(--rubric)}
.pager small{display:block;font-family:var(--text);font-size:.85rem;color:var(--muted);font-style:italic}
.pager .next{text-align:right;grid-column:2}

/* ---------- search / downloads / 404 ---------- */
.search-form{display:flex;gap:.6rem;margin:0 0 1.5rem}
.search-form input,.dl-filter{flex:1;min-width:0;font:inherit;padding:.65rem 1rem;border:1px solid #9c988c;border-radius:3px;background:#fff;width:100%}
.results{list-style:none;padding:0;margin:1.5rem 0 0}
.results li{padding:1.1rem 0;border-top:1px solid var(--rule)}
.results li>a{font-family:var(--display);font-size:1.3rem;text-decoration:none}
.results li>a:hover{text-decoration:underline}
.result-path{display:block;font-size:.82rem;color:var(--muted);font-style:italic}
.results p{margin:.3rem 0 0;font-size:.98rem;color:#3d3a35}
.dl-jump{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:1.2rem 0 0;font-size:.95rem}
.dl-group h2{font-size:1.5rem;margin:2.4rem 0 .6rem;padding-bottom:.3rem;border-bottom:1px solid var(--gold)}
.dl-list,.plain-list{list-style:none;padding:0;margin:0}
.dl-list li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--rule)}
.dl-list .download-link{font-weight:400}
.dl-meta{font-size:.85rem;color:var(--muted);white-space:nowrap}
.plain-list li{padding:.25rem 0}

/* ---------- footer ---------- */
.site-footer{background:var(--lapis-deep);color:#C5CCDD;margin-top:2rem;border-top:3px solid var(--gold);font-size:.97rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:3rem;padding:3rem 0 2rem}
.foot-name{font-family:var(--display);font-size:1.5rem;color:#fff;margin:0 0 .5rem}
.site-footer h2{font-size:1.05rem;color:var(--gold-bright);margin:0 0 .7rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{padding:.16rem 0}
.site-footer a{color:#E6EAF3;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer a.btn-gold{color:var(--lapis-deep)}
.copyright{border-top:1px solid rgba(255,255,255,.14);padding:1.1rem 0 1.6rem;font-size:.86rem}
.editbar{position:fixed;right:1rem;bottom:1rem;z-index:50;background:var(--gold-bright);color:var(--lapis-deep);font-family:var(--display);
  padding:.6rem 1.1rem;border-radius:3px;text-decoration:none;box-shadow:0 6px 18px rgba(18,32,63,.3)}

/* ---------- smaller screens ---------- */
@media (max-width:1240px){
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--lapis-deep);flex-direction:column;align-items:stretch;gap:0;padding:.5rem 1.25rem 1.25rem;max-height:calc(100vh - 4.5rem);overflow:auto}
  .nav.open{display:flex}
  .nav>ul{flex-direction:column}
  .nav>ul>li{border-bottom:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:1fr auto}
  .nav>ul>li>a{padding:.85rem 0;white-space:normal}
  .nav>ul>li>a:hover,.nav>ul>li>a.active{box-shadow:none;color:var(--gold-bright)}
  .sub-toggle{display:block;background:none;border:0;color:#fff;width:3rem;cursor:pointer}
  .sub-toggle::before{content:"+";font-size:1.4rem}
  li.open>.sub-toggle::before{content:"–"}
  .sub{position:static;visibility:visible;opacity:1;display:none;grid-column:1/-1;background:transparent;border:0;box-shadow:none;padding:0 0 .6rem}
  li.open>.sub{display:block}
  .sub a{color:#D5DCEB;padding:.4rem .9rem}
  .sub a:hover{background:rgba(255,255,255,.08);color:#fff}
  .sub2 a{color:#B9C2D8}
  .nav-search{margin-top:1rem}
  .nav-search input{flex:1;width:auto}
}
@media (max-width:900px){
  body{font-size:1.02rem}
  .hero-grid{grid-template-columns:1fr}
  .hero-plate{justify-self:start;max-width:16rem}
  .contents{grid-template-columns:1fr}.kid-list{columns:1}
  .page-grid{grid-template-columns:1fr;padding-top:1.2rem}
  .side{position:static;max-height:none;border:1px solid var(--rule);border-radius:3px;padding:.7rem 1rem;background:#fff}
  .side summary{display:block;margin:0;color:var(--lapis-deep);font-size:1.05rem}
  .side summary::after{content:"Show the lessons";float:right;font-family:var(--text);font-size:.85rem;color:var(--rubric)}
  .side details[open] summary{margin-bottom:.6rem}
  .side details[open] summary::after{content:"Hide"}
  .foot-grid{grid-template-columns:1fr;gap:1.8rem}
  .hero-search{flex-direction:column}
}
@media (max-width:640px){
  .prose img[align=right],.prose img[align=left],.prose img.alignright,.prose img.alignleft{float:none;display:block;margin:1em auto;max-width:100%}
  .pager{grid-template-columns:1fr}.pager .next{grid-column:1;text-align:left}
  .dl-list li{flex-direction:column;gap:0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sub{transition:none}}
@media print{.site-header,.site-footer,.side,.pager,.editbar,.kids{display:none}.page-grid{display:block}body{font-size:11pt}}
.dl-courses{margin-top:2rem}.dl-topic-block{scroll-margin-top:1rem}
.dl-list li[hidden],.dl-topic-block[hidden],.dl-group[hidden]{display:none}
