
:root{
  --walnut:#6B4A32; --coral:#E8735A; --teal:#2E8B87; --mustard:#D9A426; --plum:#6B3B6E;
  --cream:#FAF7F0; --cream-2:#F3EDE1; --ink:#2A211B; --ink-soft:#5C4E44; --rule:#E0D5C2;
  --bead:var(--walnut);
  --stage:#050505; --cyan:#00E5FF; --gold:#D4AF37;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);
  font-family:"Karla",Georgia,serif;font-size:17px;line-height:1.72;}
h1,h2,h3,.logo-text,.entry-num,.strand-count,.cat-count,.eyebrow{font-family:"Manrope",system-ui,sans-serif}
h1,h2,h3{line-height:1.18;letter-spacing:-.015em;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,5vw,3.3rem);font-weight:800}
h2{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:700}
h3{font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:700}
p{margin:0 0 1.1em}
a{color:var(--walnut)}
a:hover{color:var(--coral)}
img{max-width:100%}
.wrap{width:min(1080px,100% - 2.5rem);margin-inline:auto}
.wrap.narrow{width:min(720px,100% - 2.5rem)}
.skip{position:absolute;left:-9999px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem .8rem;z-index:50}
.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
  font-weight:700;margin:0 0 .9rem;display:flex;align-items:center;gap:.55rem}

/* beads */
.bead{display:inline-block;width:18px;height:18px;border-radius:50%;background:var(--bead);
  box-shadow:inset -2px -3px 0 rgba(0,0,0,.14), inset 2px 2px 0 rgba(255,255,255,.28);flex:none}
.bead-inline{width:13px;height:13px}
.bead-plain{background:var(--walnut)}
.bead-coral{--bead:var(--coral)} .bead-teal{--bead:var(--teal)}
.bead-mustard{--bead:var(--mustard)} .bead-plum{--bead:var(--plum)}

/* header */
.site-head{background:var(--cream);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}
.head-inner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.85rem 0}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);margin-right:auto}
.logo-mark{width:34px;height:34px;flex:none}
.logo-text{font-weight:800;letter-spacing:-.02em;font-size:1.06rem}
.site-nav ul{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}
.site-nav a{text-decoration:none;color:var(--ink-soft);font-weight:500;font-size:.95rem}
.site-nav a:hover{color:var(--walnut);text-decoration:underline;text-underline-offset:4px}
.navtoggle,.burger{display:none}

/* hero stage */
.hero-stage{position:relative;isolation:isolate;min-height:min(92vh,920px);display:flex;
  align-items:flex-end;overflow:hidden;background:var(--stage);color:#f4f4f2}
.hero-stage-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:70% 22%;display:block;z-index:0;
  animation:hero-ken 14s ease-out forwards}
.hero-stage-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(5,5,5,.9) 0%,rgba(5,5,5,.58) 36%,rgba(5,5,5,.2) 58%,rgba(5,5,5,.4) 100%),
    linear-gradient(180deg,rgba(5,5,5,.28) 0%,rgba(5,5,5,.05) 24%,rgba(5,5,5,.5) 62%,rgba(5,5,5,.96) 100%),
    radial-gradient(ellipse 70% 55% at 72% 30%,rgba(0,229,255,.1),transparent 58%),
    radial-gradient(ellipse 50% 40% at 18% 82%,rgba(212,175,55,.12),transparent 55%)}
.hero-stage-content{position:relative;z-index:2;padding:4.5rem 0 3.4rem;max-width:34rem;
  animation:hero-rise .9s cubic-bezier(.22,1,.36,1) both}
.hero-brand{font-family:"Manrope",system-ui,sans-serif;font-weight:800;font-size:clamp(1.35rem,3.2vw,2rem);
  letter-spacing:-.03em;margin:0 0 .85rem;color:#fff;
  text-shadow:0 1px 18px rgba(0,0,0,.45)}
.hero-stage h1{color:#fff;margin:0 0 .85rem;text-shadow:0 2px 24px rgba(0,0,0,.4)}
.hero-stage .lede{font-size:1.12rem;line-height:1.65;color:rgba(244,244,242,.82);max-width:36ch;
  margin:0 0 1.5rem}
.btn-cta{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  font-family:"Manrope",system-ui,sans-serif;font-weight:800;font-size:.92rem;letter-spacing:.06em;
  text-transform:uppercase;text-decoration:none;color:#0a0a0a;background:var(--cyan);
  padding:.85rem 1.45rem;border-radius:6px;border:0;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
  box-shadow:0 0 0 0 rgba(0,229,255,.35),0 10px 28px rgba(0,0,0,.35);
  animation:cta-pulse 2.8s ease-in-out 1.1s infinite}
.btn-cta:hover{color:#0a0a0a;background:#5ef0ff;transform:translateY(-2px);
  box-shadow:0 0 0 4px rgba(0,229,255,.22),0 14px 32px rgba(0,0,0,.4)}
.btn-cta:focus-visible{outline:2px solid #fff;outline-offset:3px}
@keyframes hero-ken{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes hero-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes cta-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(0,229,255,.35),0 10px 28px rgba(0,0,0,.35)}
  50%{box-shadow:0 0 0 8px rgba(0,229,255,.12),0 10px 28px rgba(0,0,0,.35)}
}
@media (prefers-reduced-motion:reduce){
  .hero-stage-img,.hero-stage-content,.btn-cta{animation:none}
}

/* strand */
.strand-section{padding:2.4rem 0 3rem}
.sec-h{margin-bottom:.35rem}
.sec-intro{color:var(--ink-soft);max-width:62ch}
.strand{list-style:none;margin:2.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:1.6rem;position:relative}
.strand::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:var(--walnut)}
.strand-link{display:block;text-decoration:none;color:inherit;padding-right:.6rem}
.strand-link .bead{width:24px;height:24px;position:relative;z-index:1;margin-bottom:1rem;display:block}
.strand-name{display:block;font-family:"Manrope",sans-serif;font-weight:700;font-size:1.12rem;margin-bottom:.15rem}
.strand-count{display:block;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.6rem}
.strand-desc{display:block;color:var(--ink-soft);font-size:.96rem;line-height:1.6}
.strand-link:hover .strand-name{text-decoration:underline;text-underline-offset:4px}
.strand-link:hover .bead{transform:translateY(-2px)}
.strand-link .bead{transition:transform .18s ease}

.closing{padding:1rem 0 3.6rem}
.closing p{max-width:70ch;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:1.6rem;margin:0}

/* category */
.cat-head{padding:3rem 0 1.4rem}
.cat-head .eyebrow .bead{background:var(--bead)}
.cat-count{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
  border-top:1px solid var(--rule);padding-top:1rem;margin-top:1.4rem}
.cat-body{padding:2.2rem 0 3.4rem}
.cat-body > .wrap > .cat-count{margin-top:0;margin-bottom:1.8rem}
.entries{list-style:none;margin:0;padding:0}
.entry{position:relative;padding-left:2.4rem;padding-bottom:2.8rem}
.entry::before{content:"";position:absolute;left:8px;top:6px;bottom:0;width:2px;background:var(--walnut)}
.entry:last-child{padding-bottom:0}
.entry > .bead{position:absolute;left:0;top:2px;background:var(--bead)}
.entry-num{font-size:.76rem;letter-spacing:.18em;color:var(--ink-soft);margin:0 0 .3rem;font-weight:700}
.entry h3{margin-bottom:.15rem}
.entry-place{color:var(--ink-soft);font-style:italic;margin-bottom:1rem}
.entry p{max-width:68ch}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0 0;padding:0}
.tags li{font-family:"Manrope",sans-serif;font-size:.78rem;font-weight:500;color:var(--ink-soft);
  border:1px solid var(--rule);border-radius:999px;padding:.28rem .7rem;background:var(--cream-2)}

/* simple pages */
.page{padding:3rem 0 3.6rem}
.page h2{margin-top:2rem}
.page p{max-width:66ch}

/* footer */
.site-foot{background:var(--cream-2);border-top:1px solid var(--rule);padding:2.8rem 0 1.6rem;margin-top:1rem}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.foot-brand .logo-mark{width:34px;height:34px;margin-bottom:.6rem}
.foot-name{font-family:"Manrope",sans-serif;font-weight:800;margin:0 0 .4rem}
.foot-brand p{color:var(--ink-soft);font-size:.95rem;max-width:42ch}
.foot-h{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:.2rem 0 .8rem}
.foot-list{list-style:none;margin:0;padding:0}
.foot-list li{margin-bottom:.45rem}
.foot-list a{text-decoration:none;color:var(--ink);font-size:.95rem}
.foot-list a:hover{text-decoration:underline;text-underline-offset:4px}
.foot-end{border-top:1px solid var(--rule);margin-top:2rem;padding-top:1.1rem}
.foot-end p{font-size:.85rem;color:var(--ink-soft);margin:0}

@media (max-width:860px){
  .strand{grid-template-columns:repeat(2,1fr);row-gap:2.4rem}
  .strand::before{display:none}
  .strand-item{border-top:2px solid var(--walnut);padding-top:1rem}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1 / -1}
}
@media (max-width:620px){
  body{font-size:16px}
  .burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:36px;cursor:pointer;
    border:1px solid var(--rule);border-radius:4px;padding:0 8px}
  .burger .bar{display:block;height:2px;background:var(--walnut)}
  .site-nav{display:none;width:100%}
  .navtoggle:checked ~ .site-nav{display:block}
  .site-nav ul{flex-direction:column;gap:0;padding:.6rem 0 .2rem}
  .site-nav li{border-top:1px solid var(--rule)}
  .site-nav a{display:block;padding:.7rem 0}
  .strand{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .hero-stage{min-height:min(88vh,760px)}
  .hero-stage-content{padding:3.2rem 0 2.6rem;max-width:100%}
  .hero-stage-img{object-position:58% 18%}
  .hero-stage-scrim{background:
    linear-gradient(180deg,rgba(5,5,5,.4) 0%,rgba(5,5,5,.15) 28%,rgba(5,5,5,.78) 58%,rgba(5,5,5,.97) 100%),
    linear-gradient(90deg,rgba(5,5,5,.75) 0%,rgba(5,5,5,.28) 100%)}
}
