/* ── Public site styles — lifted from johantgen_site.html prototype ── */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --gold:#C49A2A;
  --gold-light:#E8B84B;
  --gold-dim:rgba(196,154,42,0.18);
  --cyan:#3BAABB;
  --cyan-bright:#5DCFDF;
  --white:#F0EBE0;
  --white-soft:rgba(240,235,224,0.65);
  --white-ghost:rgba(240,235,224,0.25);
  --ink:#07074E;
  --ink-mid:#0A0A60;
  --ink-deep:#050538;
  --ink-section:rgba(6,6,52,0.97);
}

html{scroll-behavior:smooth}
body{
  background:var(--ink);
  color:var(--white);
  font-family:'Raleway',sans-serif;
  overflow-x:hidden;
}

#particleContainer{
  position:fixed;
  top:0;left:0;
  width:100%;height:100%;
  z-index:0;
  pointer-events:none;
}
#particleContainer canvas{
  display:block;
  width:100%!important;
  height:100%!important;
}

nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;justify-content:space-between;align-items:center;
  padding:26px 60px;
  background:linear-gradient(to bottom,rgba(5,5,50,0.96) 0%,transparent 100%);
  transition:background .4s;
}
nav.scrolled{
  background:rgba(5,5,50,0.97);
  border-bottom:1px solid var(--gold-dim);
}
.nav-logo{
  font-family:'Raleway',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.3em;color:var(--gold);text-transform:uppercase;text-decoration:none;
}
.nav-links{display:flex;gap:36px;list-style:none}
.nav-links a{
  font-family:'Raleway',sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--white-soft);
  text-decoration:none;position:relative;transition:color .3s;
}
.nav-links a::after{
  content:'';position:absolute;bottom:-3px;left:0;
  width:0;height:1px;background:var(--gold-light);transition:width .35s ease;
}
.nav-links a:hover{color:var(--gold-light)}
.nav-links a:hover::after{width:100%}
.nav-links a.active{color:var(--gold-light)}
.nav-links a.active::after{width:100%;background:var(--gold)}

.hero{
  position:relative;
  min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 10vw 120px;
  overflow:hidden;
  background:transparent;
  z-index:10;
}

.hero-vignette{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 70% at 20% 50%, rgba(5,5,56,0.55) 0%, transparent 70%),
    linear-gradient(to right, rgba(5,5,56,0.7) 0%, transparent 60%);
  pointer-events:none;
  z-index:1;
}

.hero-content{position:relative;z-index:5}

.hero-overline{
  display:flex;align-items:center;gap:18px;margin-bottom:32px;
  opacity:0;animation:riseIn 1s ease .2s forwards;
}
.overline-bar{width:48px;height:1px;background:linear-gradient(to right,var(--gold),transparent)}
.overline-text{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.44em;color:var(--gold);text-transform:uppercase;
}

h1{
  font-family:'Raleway',sans-serif;
  font-weight:800;font-style:normal;
  font-size:clamp(32px,5.8vw,88px);
  letter-spacing:.03em;line-height:1;
  color:#F0EBE0;
  white-space:nowrap;
  opacity:0;animation:riseIn 1.1s ease .5s forwards;
  text-shadow:0 2px 40px rgba(5,5,56,0.8);
}

.name-rule{margin:24px 0 28px;opacity:0;animation:riseIn .9s ease .85s forwards}
.name-rule-line{
  height:1px;max-width:520px;
  background:linear-gradient(to right,transparent,var(--gold-dim),var(--gold),var(--gold-dim),transparent);
}

.subtitle-wrap{
  height:38px;position:relative;margin-bottom:54px;
  opacity:0;animation:riseIn .9s ease 1.05s forwards;
}
.subtitle{
  position:absolute;top:0;left:0;
  font-family:'Cormorant Garamond',serif;font-weight:300;font-style:italic;
  font-size:clamp(20px,2.5vw,32px);letter-spacing:.1em;color:var(--cyan-bright);
  opacity:0;transform:translateY(9px);
  transition:opacity .7s ease,transform .7s ease;white-space:nowrap;
  text-shadow:0 0 30px rgba(93,207,223,0.4);
}
.subtitle.visible{opacity:1;transform:translateY(0)}

.hero-cta{display:flex;gap:20px;flex-wrap:wrap;opacity:0;animation:riseIn .9s ease 1.35s forwards}
.btn-gold{
  font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--ink);
  background:var(--gold-light);border:none;padding:15px 38px;
  text-decoration:none;display:inline-flex;align-items:center;cursor:pointer;
  transition:background .3s,transform .25s;
}
.btn-gold:hover{background:var(--gold);transform:translateY(-2px)}
.btn-outline{
  font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light);
  background:rgba(7,7,78,0.4);border:1px solid rgba(196,154,42,.38);
  padding:15px 38px;text-decoration:none;display:inline-flex;
  align-items:center;cursor:pointer;backdrop-filter:blur(4px);
  transition:border-color .3s,color .3s,transform .25s;
}
.btn-outline:hover{border-color:var(--gold-light);transform:translateY(-2px)}

/* HERO BOTTOM LOGO — replaces SCROLL hint.
   Sits at the bottom-left of the hero, aligned under the "Explore the
   Series" button. Its width is synced to the button's width at runtime
   by syncLogoWidth() in site.js; the value below is just a sensible
   pre-JS default so layout doesn't flash. */
.hero-logo-bottom{
  position:absolute;left:10vw;bottom:0;
  width:220px;            /* JS overrides with the actual button width */
  z-index:10;
  opacity:0;animation:fadeIn 1s ease 2.2s forwards;
}
.hero-logo-bottom img{
  display:block;width:100%;height:auto;
}

/* (Legacy) SCROLL HINT — no longer rendered, but styles kept inert. */
.scroll-hint{
  position:absolute;bottom:80px;left:10vw;
  display:flex;align-items:center;gap:14px;
  opacity:0;animation:fadeIn 1s ease 2.2s forwards;z-index:10;
}
.scroll-hint-line{
  width:1px;height:52px;
  background:linear-gradient(to bottom,var(--gold-dim),var(--gold));
  animation:scrollPulse 2.2s ease-in-out infinite;
}
.scroll-hint-text{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:600;
  letter-spacing:.35em;color:var(--white-ghost);text-transform:uppercase;
  writing-mode:vertical-rl;transform:rotate(180deg);
}

.bach-player{
  position:absolute;bottom:88px;right:10vw;z-index:10;
  display:flex;align-items:center;gap:16px;
  opacity:0;animation:fadeIn 1s ease 2s forwards;
}
.bach-player-label{text-align:right}
.bach-title-tag{
  font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;
  letter-spacing:.3em;color:var(--gold);text-transform:uppercase;display:block;margin-bottom:3px;
}
.bach-sub{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;
  color:var(--white-soft);display:block;
}
.bach-progress-wrap{width:100px;display:flex;flex-direction:column;gap:5px}
.bach-bar{
  width:100%;height:2px;background:rgba(196,154,42,.15);
  border-radius:1px;cursor:pointer;
}
.bach-fill{
  height:100%;width:0%;
  background:linear-gradient(to right,var(--gold),var(--gold-light));border-radius:1px;
}
.bach-time-el{
  font-family:'Raleway',sans-serif;font-size:8px;font-weight:500;
  letter-spacing:.15em;color:var(--white-ghost);
}
.bach-btn{
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(196,154,42,.4);background:rgba(196,154,42,.06);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .3s,border-color .3s,transform .25s;flex-shrink:0;
}
.bach-btn:hover{background:rgba(196,154,42,.14);border-color:var(--gold-light);transform:scale(1.08)}
.bach-btn svg{width:16px;height:16px;fill:var(--gold-light)}
#bachAudio{display:none}

/* Mini bach player — fixed bottom-right on every page except / and /music.
   Shares the #bachAudio element with site.js for cross-page playback. */
.bach-mini{
  position:fixed;right:24px;bottom:24px;z-index:200;
  display:flex;align-items:center;
}
.bach-mini-btn{
  width:44px;height:44px;border-radius:50%;padding:0;
  border:1px solid rgba(196,154,42,.4);
  background:rgba(7,7,78,0.78);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  backdrop-filter:blur(6px);
  transition:background .3s,border-color .3s,transform .2s;
}
.bach-mini-btn:hover{
  background:rgba(196,154,42,.18);
  border-color:var(--gold-light);
  transform:scale(1.08);
}
@media(max-width:900px){
  .bach-mini{right:14px;bottom:14px}
  .bach-mini-btn{width:40px;height:40px}
}

.section{
  position:relative;padding:110px 10vw;
  z-index:10;
  background:var(--ink-section);
}
.section+.section{border-top:1px solid var(--gold-dim)}

/* Per-URL section pages need extra top padding so content clears the fixed nav. */
.section-page{padding-top:170px;min-height:calc(100vh - 200px)}

.section-eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.section-eyebrow-num{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.35em;color:var(--gold);text-transform:uppercase;
}
.section-eyebrow-line{width:60px;height:1px;background:linear-gradient(to right,var(--gold),transparent)}

.section-heading{
  font-family:'Raleway',sans-serif;font-weight:800;
  font-size:clamp(28px,4vw,54px);letter-spacing:.05em;
  color:var(--white);margin-bottom:56px;line-height:1.05;
}

#books{background:rgba(8,8,64,0.98)}
.books-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2px}
.book-card{
  background:rgba(5,5,52,0.9);border:1px solid var(--gold-dim);
  overflow:hidden;cursor:pointer;
  transition:border-color .4s,transform .4s;display:flex;flex-direction:column;
}
.book-card:hover{border-color:rgba(232,184,75,.4);transform:translateY(-6px)}
/* Cover thumbnail — 25% of card width, centered, with breathing room
   above and below. The image sits inside without filling the card. */
.book-cover{
  width:25%;
  min-width:96px;
  max-width:160px;
  aspect-ratio:2/3;
  position:relative;
  margin:36px auto 20px;
  background:#000;overflow:hidden;
  border:1px solid var(--gold-dim);
}
.book-cover img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;display:block;
}
.book-spine{width:100%;aspect-ratio:2/3;position:relative;display:flex;align-items:center;justify-content:center}
.book-spine-bg{position:absolute;inset:0;background:linear-gradient(155deg,#07093a 0%,#04062a 60%,#020318 100%)}
.book-spine-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 40% 35%,rgba(59,170,187,.15) 0%,transparent 65%)}
.book-spine-text{position:relative;z-index:1;text-align:center;padding:30px}
.book-spine-series{
  font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;
  letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:16px;
}
.book-spine-title{
  font-family:'Raleway',sans-serif;font-weight:800;font-size:18px;
  letter-spacing:.04em;color:var(--white);line-height:1.25;
}
.book-spine-subtitle{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;
  color:var(--white-soft);margin-top:8px;
}
.book-info{padding:28px 28px 32px;border-top:1px solid var(--gold-dim);flex:1;display:flex;flex-direction:column;gap:10px}
.book-number{font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;letter-spacing:.3em;color:var(--gold)}
.book-title-text{font-family:'Raleway',sans-serif;font-size:20px;font-weight:800;color:var(--white);line-height:1.2}
.book-blurb{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:300;line-height:1.7;color:var(--white-soft);flex:1}
.book-cta{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;letter-spacing:.25em;
  color:var(--cyan-bright);text-transform:uppercase;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;margin-top:8px;transition:color .3s;
}
.book-cta::after{content:'→';transition:transform .3s}
.book-card:hover .book-cta::after{transform:translateX(4px)}

#about{background:rgba(6,6,58,0.98)}
.about-layout{display:grid;grid-template-columns:260px 1fr;gap:72px;align-items:start}
.about-portrait-wrap{position:sticky;top:120px}
.about-portrait{
  width:100%;aspect-ratio:3/4;
  background:linear-gradient(165deg,#080a3a,#040620);
  border:1px solid var(--gold-dim);position:relative;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.about-portrait.has-image{background:#000}
.about-portrait-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;display:block;
}
.about-portrait-inner{position:absolute;inset:14px;border:1px solid rgba(196,154,42,.08)}
.about-portrait-monogram{
  font-family:'Raleway',sans-serif;font-size:52px;font-weight:900;
  color:rgba(196,154,42,.1);letter-spacing:.1em;z-index:1;
}
.about-portrait-caption{
  margin-top:14px;font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;
  letter-spacing:.3em;color:var(--gold);text-transform:uppercase;text-align:center;
}
.about-body p{
  font-family:'Cormorant Garamond',serif;font-size:clamp(18px,1.8vw,22px);
  font-weight:300;line-height:1.85;color:var(--white-soft);margin-bottom:26px;
}
.about-body p strong{color:var(--white);font-weight:500}
.about-rule{width:56px;height:1px;background:var(--gold);margin:32px 0}
.about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.about-tag{
  font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;letter-spacing:.26em;
  color:var(--gold);border:1px solid var(--gold-dim);padding:7px 14px;text-transform:uppercase;
}

#blog{background:rgba(8,8,64,0.98)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.blog-card{
  background:rgba(5,5,48,0.9);border:1px solid var(--gold-dim);
  padding:40px 32px 36px;cursor:pointer;
  transition:background .35s,border-color .35s,transform .35s;
  display:flex;flex-direction:column;
}
.blog-card:hover{background:rgba(196,154,42,.04);border-color:rgba(232,184,75,.3);transform:translateY(-4px)}
.blog-date{font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;letter-spacing:.32em;color:var(--gold);text-transform:uppercase;margin-bottom:18px}
.blog-card-title{font-family:'Raleway',sans-serif;font-size:18px;font-weight:800;color:var(--white);line-height:1.3;margin-bottom:14px}
.blog-excerpt{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:300;line-height:1.7;color:var(--white-soft);margin-bottom:22px;flex:1}
.blog-read{font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;letter-spacing:.25em;color:var(--cyan);text-transform:uppercase;text-decoration:none;transition:color .3s}
.blog-card:hover .blog-read{color:var(--cyan-bright)}
.blog-empty{
  grid-column:1/-1;padding:40px;border:1px dashed var(--gold-dim);
  text-align:center;color:var(--white-soft);
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;
}

#music{background:rgba(6,6,58,0.98)}
#art{background:rgba(8,8,64,0.98)}

.section-subtitle{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(17px,1.7vw,22px);color:var(--white-soft);
  margin:-32px 0 56px;letter-spacing:.04em;
}

.media-empty{
  padding:40px;border:1px dashed var(--gold-dim);
  text-align:center;color:var(--white-soft);
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;
}

/* ── MUSIC GRID — YouTube embeds ── */
.music-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:32px;
}
.music-item{
  display:flex;flex-direction:column;
  background:rgba(5,5,52,0.6);
  border:1px solid var(--gold-dim);
  transition:border-color .35s,transform .35s;
}
.music-item:hover{border-color:rgba(232,184,75,.35)}
.music-frame-wrap{
  position:relative;width:100%;aspect-ratio:16/9;
  background:#000;
}
.music-frame{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.music-title{
  font-family:'Raleway',sans-serif;font-size:13px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--white);
  padding:18px 20px 0;
}
.music-caption{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:16px;line-height:1.5;color:var(--white-soft);
  padding:8px 20px 20px;
}
.music-item .music-title + .music-caption{padding-top:6px}
.music-item:has(.music-title:only-child) .music-title,
.music-item:has(.music-caption:only-child) .music-caption{padding-bottom:20px}

/* ── ART GRID — images ── */
.art-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:24px;
}
/* Thumbnail variant — smaller cells, square preview. Click opens link in a new tab. */
.art-grid.art-thumbs{
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:18px;
}
.art-thumbs .art-image-wrap{aspect-ratio:1/1}
.art-thumbs .art-caption{padding:12px 14px 14px;gap:4px}
.art-thumbs .art-title{font-size:10px;letter-spacing:.22em}
.art-thumbs .art-sub{font-size:13px}
.art-item{
  display:flex;flex-direction:column;
  background:rgba(5,5,52,0.6);
  border:1px solid var(--gold-dim);
  transition:border-color .35s,transform .35s;
}
.art-item:hover{border-color:rgba(232,184,75,.35);transform:translateY(-3px)}
.art-link{display:block;text-decoration:none;color:inherit}
.art-image-wrap{
  position:relative;width:100%;aspect-ratio:4/3;
  background:linear-gradient(160deg,#1a0e02 0%,#2a1808 50%,#0d0802 100%);
  overflow:hidden;
}
.art-image{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;display:block;
  transition:transform .6s ease;
}
.art-item:hover .art-image{transform:scale(1.03)}
.art-caption{
  padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;
}
.art-title{
  font-family:'Raleway',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--white);
}
.art-sub{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:15px;line-height:1.5;color:var(--white-soft);
}

#events{background:rgba(8,8,64,0.98)}
.events-list{display:flex;flex-direction:column}
.event-row{
  display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:40px;
  padding:28px 0;border-bottom:1px solid var(--gold-dim);cursor:pointer;transition:padding-left .3s;
  text-decoration:none;color:inherit;
}
.event-row:hover{padding-left:12px}
.event-date{font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}
.event-name{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:400;color:var(--white);margin-bottom:4px}
.event-location{font-family:'Raleway',sans-serif;font-size:11px;font-weight:400;color:var(--white-soft)}
.event-arrow{font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;letter-spacing:.2em;color:var(--cyan);white-space:nowrap;transition:transform .3s}
.event-row:hover .event-arrow{transform:translateX(6px)}

#contact{background:rgba(5,5,52,0.98);text-align:center;position:relative;overflow:hidden}
#contact::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 50% 60% at 50% 100%,rgba(196,154,42,.07) 0%,transparent 70%);
}
.contact-headline{
  font-family:'Raleway',sans-serif;font-weight:900;
  font-size:clamp(32px,5vw,72px);letter-spacing:.04em;color:var(--white);
  line-height:1.05;margin-bottom:28px;
}
.contact-sub{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(18px,2vw,26px);color:var(--white-soft);
  margin-bottom:52px;max-width:520px;margin-left:auto;margin-right:auto;line-height:1.6;
}
.contact-email{
  font-family:'Raleway',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.25em;color:var(--gold-light);text-decoration:none;
  border-bottom:1px solid var(--gold-dim);padding-bottom:4px;
  transition:color .3s,border-color .3s;
}
.contact-email:hover{color:var(--gold);border-color:var(--gold)}

.newsletter{
  margin:60px auto 12px;max-width:520px;
  position:relative;z-index:1;
}
.newsletter-label{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.4em;color:var(--gold);text-transform:uppercase;
  margin-bottom:18px;
}
.newsletter-form{
  display:flex;gap:0;flex-wrap:wrap;justify-content:center;
  border:1px solid var(--gold-dim);
  background:rgba(7,7,78,0.4);
  transition:border-color .3s;
}
.newsletter-form:focus-within{border-color:var(--gold-light)}
.newsletter-input{
  flex:1 1 240px;min-width:0;
  padding:15px 20px;
  background:transparent;border:none;outline:none;
  color:var(--white);
  font-family:'Raleway',sans-serif;font-size:13px;letter-spacing:.05em;
}
.newsletter-input::placeholder{color:var(--white-ghost);font-style:italic}
.newsletter-submit{
  font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--ink);
  background:var(--gold-light);border:none;padding:15px 28px;
  cursor:pointer;transition:background .3s;
}
.newsletter-submit:hover{background:var(--gold)}
.newsletter-submit:disabled{opacity:.5;cursor:not-allowed}
.newsletter-status{
  margin-top:14px;font-family:'Raleway',sans-serif;font-size:11px;
  letter-spacing:.15em;text-transform:uppercase;
  min-height:1.2em;
}
.newsletter-status.ok{color:var(--cyan-bright)}
.newsletter-status.err{color:var(--gold-light)}
.newsletter-divider{
  width:40px;height:1px;background:var(--gold-dim);
  margin:36px auto 28px;
}

footer{
  border-top:1px solid var(--gold-dim);padding:36px 10vw 28px;
  background:rgba(4,4,40,0.99);position:relative;z-index:10;
}
.footer-row{
  display:flex;justify-content:space-between;align-items:center;
  gap:18px;
}
.footer-left{font-family:'Raleway',sans-serif;font-size:9px;font-weight:500;letter-spacing:.25em;color:var(--gold)}
.footer-right{font-family:'Raleway',sans-serif;font-size:8px;font-weight:700;letter-spacing:.22em;color:var(--gold);text-transform:uppercase}
.footer-attribution{
  margin-top:18px;padding-top:18px;border-top:1px solid var(--gold-dim);
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:500;
  letter-spacing:.25em;color:var(--gold);
}

@keyframes riseIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scrollPulse{0%,100%{opacity:.3}50%{opacity:1}}

@media(max-width:900px){
  nav{padding:18px 24px}.nav-links{gap:18px}
  .hero{padding:0 7vw 120px}h1{white-space:normal}
  .about-layout{grid-template-columns:1fr}.about-portrait-wrap{position:static;max-width:260px}
  .blog-grid{grid-template-columns:1fr}.media-split{grid-template-columns:1fr}
  .bach-player{right:7vw}
  .footer-row{flex-direction:column;gap:12px;text-align:center}
  .footer-attribution{text-align:center;letter-spacing:.18em}
}

/* ── Landing directory (home page section grid) ── */
.landing-directory{padding-top:110px}
.directory-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2px;
}
.directory-card{
  display:flex;flex-direction:column;justify-content:space-between;gap:18px;
  background:rgba(5,5,52,0.7);border:1px solid var(--gold-dim);
  padding:36px 28px 32px;min-height:200px;
  text-decoration:none;color:inherit;
  transition:background .35s,border-color .35s,transform .35s;
}
.directory-card:hover{
  background:rgba(196,154,42,.05);
  border-color:rgba(232,184,75,.35);
  transform:translateY(-4px);
}
.directory-num{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.4em;color:var(--gold);text-transform:uppercase;
}
.directory-title{
  font-family:'Raleway',sans-serif;font-weight:900;font-size:28px;
  letter-spacing:.04em;color:var(--white);line-height:1;
}
.directory-sub{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:16px;line-height:1.4;color:var(--white-soft);
}

/* ── Blog post page ── */
.post-article{
  position:relative;z-index:10;
  max-width:760px;margin:0 auto;
  padding:160px 24px 100px;
}
.post-back{
  font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.3em;color:var(--gold);text-transform:uppercase;
  text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  margin-bottom:48px;
}
.post-back:hover{color:var(--gold-light)}
.post-date{
  font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.35em;color:var(--gold);text-transform:uppercase;
  margin-bottom:24px;
}
.post-title{
  font-family:'Raleway',sans-serif;font-weight:800;
  font-size:clamp(28px,4vw,52px);letter-spacing:.03em;
  color:var(--white);line-height:1.1;margin-bottom:32px;
}
.post-rule{width:56px;height:1px;background:var(--gold);margin:0 0 40px}
.post-excerpt{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(18px,2vw,24px);line-height:1.6;
  color:var(--white-soft);margin-bottom:48px;
}
.post-body{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(17px,1.4vw,20px);line-height:1.85;
  color:var(--white-soft);
}
.post-body p{margin-bottom:24px}
.post-body p strong{color:var(--white);font-weight:500}
.post-body h2,.post-body h3,.post-body h4{
  font-family:'Raleway',sans-serif;color:var(--white);
  letter-spacing:.04em;margin:40px 0 18px;
}
.post-body h2{font-size:24px;font-weight:800}
.post-body h3{font-size:20px;font-weight:700}
.post-body a{color:var(--cyan-bright);text-decoration:underline}
.post-body blockquote{
  border-left:2px solid var(--gold);
  padding-left:20px;margin:24px 0;color:var(--white);
  font-style:italic;
}
