:root{
  --limestone:#E6E6E0; --paper:#F4F4F0; --slate:#1F2E36; --muted:#4E5A60;
  --peat:#5A4636; --lichen:#6F7D3E; --gorse:#D9A21B; --rule:#C9CBC3;
  --serif:"Alegreya", Georgia, "Times New Roman", serif;
  --sans:"Alegreya Sans", "Helvetica Neue", Arial, sans-serif;
  --measure:38rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--limestone);color:var(--slate);font-family:var(--serif);font-size:1.1875rem;line-height:1.62}
a{color:var(--slate);text-decoration-color:var(--gorse);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--peat)}
:focus-visible{outline:3px solid var(--gorse);outline-offset:3px;border-radius:2px}
img,svg{max-width:100%}
.wrap{max-width:70rem;margin:0 auto;padding:0 1.5rem}

/* header */
.site-header{padding:1.25rem 0;border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.75rem 2rem}
.brand{font-family:var(--serif);font-weight:700;font-size:1.5rem;text-decoration:none;letter-spacing:.01em}
.brand small{font-family:var(--sans);font-weight:400;font-size:.95rem;color:var(--muted);margin-left:.5rem}
.site-nav{display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;font-family:var(--sans);font-size:1.02rem}
.site-nav a{text-decoration:none;color:var(--muted);padding:.15rem 0;border-bottom:2px solid transparent}
.site-nav a:hover{color:var(--slate)}
.site-nav a[aria-current="page"]{color:var(--slate);border-bottom-color:var(--gorse)}

/* hero */
.hero{padding:4rem 0 3.5rem}
.ogham{display:block;width:100%;height:auto;overflow:visible}
.ogham .stem{stroke:var(--slate);stroke-width:2.5;fill:none}
.ogham .mark{stroke:var(--slate);stroke-width:2.5;stroke-linecap:round;fill:none}
.ogham-caption{font-family:var(--sans);font-size:.95rem;color:var(--muted);margin:.75rem 0 0}
.hero h1{font-size:clamp(2.3rem,5.2vw,4.1rem);line-height:1.08;font-weight:500;margin:2.75rem 0 1.25rem;max-width:18ch;letter-spacing:-.01em}
.hero p.lede{font-size:1.3rem;max-width:var(--measure);color:var(--slate);margin:0}

/* page heads */
.page-head{padding:3.5rem 0 1.5rem}
.page-head h1{font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.1;font-weight:500;margin:0 0 1rem}
.page-head p{max-width:var(--measure);font-size:1.25rem;margin:0}

main section{padding:2.5rem 0}
h2{font-size:1.85rem;line-height:1.2;font-weight:500;margin:0 0 1rem}
h3{font-size:1.4rem;line-height:1.25;font-weight:700;margin:0 0 .4rem}
p{margin:0 0 1rem}
.prose{max-width:var(--measure)}
.muted{color:var(--muted)}

/* labels */
.label{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--sans);font-size:.88rem;color:var(--muted);margin-bottom:.4rem}
.label::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:var(--slate)}
.label.tradition::before{background:var(--lichen)}
.label.memory::before{background:var(--peat)}

/* entries */
.entry{padding:1.75rem 0;border-top:1px solid var(--rule);max-width:44rem}
.entry:first-of-type{border-top:0}
.carry{font-family:var(--sans);font-size:1rem;color:var(--peat);margin:.25rem 0 0}
.carry strong{font-weight:700}

/* timeline */
.timeline{list-style:none;margin:0;padding:0;border-left:2.5px solid var(--slate);max-width:48rem}
.timeline li{position:relative;padding:0 0 2.25rem 1.75rem}
.timeline li::before{content:"";position:absolute;left:-.5rem;top:.55rem;width:.75rem;height:2.5px;background:var(--slate)}
.timeline .when{font-family:var(--sans);font-weight:700;font-size:1rem;color:var(--peat);display:block;margin-bottom:.15rem}

/* home: featured */
.feature{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:3rem;align-items:start}
.pull{background:var(--paper);padding:2rem 2rem 1.75rem;border-left:6px solid var(--gorse)}
.pull h3{font-size:1.8rem;font-weight:500}
.contents{list-style:none;margin:0;padding:0}
.contents li{display:grid;grid-template-columns:12rem 1fr;gap:1.5rem;padding:1rem 0;border-top:1px solid var(--rule)}
.contents a{font-weight:700;font-size:1.2rem}
.contents p{margin:0;color:var(--muted)}
.soon{font-family:var(--sans);font-size:.9rem;color:var(--muted)}

/* tribes */
.tribe-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:0 2.5rem}
.tribe-list > div{padding:1.25rem 0;border-top:1px solid var(--rule)}
.tribe-list h3{font-size:1.3rem}
.tribe-list p{font-size:1.05rem;margin:0}
.quiz{background:var(--paper);padding:2rem;max-width:44rem;border-top:6px solid var(--slate)}
.quiz fieldset{border:0;margin:0 0 1.75rem;padding:0}
.quiz legend{font-weight:700;font-size:1.2rem;margin-bottom:.6rem;padding:0}
.quiz label{display:flex;gap:.65rem;align-items:flex-start;padding:.35rem 0;cursor:pointer;font-size:1.08rem}
.quiz input{margin-top:.45rem;accent-color:var(--slate)}
.btn{font-family:var(--sans);font-size:1.05rem;font-weight:700;background:var(--slate);color:var(--paper);border:0;padding:.75rem 1.4rem;cursor:pointer;border-radius:3px}
.btn:hover{background:var(--peat)}
.btn.ghost{background:transparent;color:var(--slate);border:2px solid var(--slate)}
.quiz-msg{font-family:var(--sans);color:var(--peat);margin:.75rem 0 0;min-height:1.5em}
.result{margin-top:2rem;padding-top:1.5rem;border-top:2px solid var(--gorse)}
.result h3{font-size:2rem;font-weight:500}
.result .actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.25rem}

/* footer */
.site-footer{margin-top:3rem;padding:2.5rem 0 3rem;border-top:1px solid var(--rule);font-family:var(--sans);font-size:1rem;color:var(--muted)}
.site-footer .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}
.site-footer ul{list-style:none;margin:0;padding:0;columns:2}
.site-footer li{margin-bottom:.3rem}
.site-footer a{color:var(--muted)}

@media (max-width:760px){
  body{font-size:1.125rem}
  .feature,.site-footer .wrap{grid-template-columns:1fr}
  .contents li{grid-template-columns:1fr;gap:.25rem}
  .hero{padding:2.5rem 0 2rem}
  .quiz{padding:1.5rem 1.25rem}
}
@media (prefers-reduced-motion:no-preference){
  .ogham.animate .stem{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.6s ease-out forwards}
  .ogham.animate .mark{opacity:0;animation:appear .35s ease-out forwards;animation-delay:var(--d)}
  @keyframes draw{to{stroke-dashoffset:0}}
  @keyframes appear{to{opacity:1}}
}
.hero{overflow:hidden}
@media (max-width:760px){ .hero .ogham{width:640px;max-width:none} }

/* figures */
.figure{margin:.5rem 0 1.25rem;max-width:44rem}
.figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--rule)}
.figure figcaption{font-family:var(--sans);font-size:.92rem;line-height:1.45;color:var(--muted);margin-top:.55rem}
.figure .credit{display:block;font-size:.82rem}
.figure .credit:empty{display:none}
.figure .credit a{color:var(--muted)}
.figure.band{max-width:none;margin:0 0 2.5rem}
.figure.band img{aspect-ratio:21/9;max-height:78vh}
.figure.portrait img{aspect-ratio:auto;object-fit:contain;max-width:26rem}
.figure.portrait-sm{max-width:20rem}
.figure.portrait-sm img{aspect-ratio:auto}
@media (max-width:760px){ .figure.band img{aspect-ratio:4/3} }

/* Speaking Irish */
.phrase-group{font-size:1.15rem;margin:2rem 0 .25rem;color:var(--peat)}
.phrases{max-width:48rem}
.phrase{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr);gap:1.25rem;padding:.7rem 0;border-top:1px solid var(--rule);align-items:baseline}
.phrase p{margin:0}
.phrase .ga{font-size:1.25rem;font-weight:700}
.phrase .say{font-family:var(--sans);font-size:.98rem;color:var(--muted);font-style:italic}
.sayings{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.5rem 2.5rem;max-width:56rem}
.saying{border-left:4px solid var(--lichen);padding-left:1rem}
.saying .ga{font-size:1.3rem;font-weight:700;margin:0 0 .25rem}
.saying .en{margin:0;color:var(--muted)}
.old{padding:2rem 0;border-top:1px solid var(--rule);max-width:50rem}
.old .src{font-family:var(--sans);font-size:.95rem}
.old-pair{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:var(--paper);padding:1.5rem 1.75rem;margin:1rem 0}
.old-ga{font-style:italic;font-size:1.3rem;line-height:1.55;margin:0;color:var(--slate)}
.old-en{margin:0;line-height:1.55}
.old .note{font-size:1.05rem}
@media (max-width:760px){
  .phrase{grid-template-columns:1fr;gap:.1rem}
  .old-pair{grid-template-columns:1fr;gap:1rem;padding:1.25rem}
}

/* data table */
.table-wrap{overflow-x:auto;max-width:56rem}
table.data{border-collapse:collapse;width:100%;font-size:1.05rem}
table.data th,table.data td{text-align:left;vertical-align:top;padding:.75rem 1rem .75rem 0;border-top:1px solid var(--rule)}
table.data thead th{font-family:var(--sans);font-size:.95rem;color:var(--muted);font-weight:700;border-top:0}
table.data tbody th{font-weight:700;white-space:nowrap}
table.data td:last-child{font-family:var(--sans);font-size:.95rem;color:var(--muted)}
