
  /* ============ TOKENS — blackbox stage + velvet curtain + gel washes ============ */
  :root{
    --stage: #0b0707;         /* house-lights-down black */
    --stage-soft: #150e0e;
    --curtain-1: #4a0e18;     /* velvet red, lit fold */
    --curtain-2: #2b070d;     /* velvet red, shadowed fold */
    --curtain-3: #1a0407;     /* deep fold shadow */
    --red: #b5273f;           /* house curtain red — primary accent */
    --red-deep: #7a1626;
    --ivory: #ece7e0;         /* cool-toned page/program white, not cream/tan */
    --ink: #1c1414;           /* text on ivory */
    --stone: #a99f9a;         /* muted neutral for secondary text on dark */

    /* gel washes — each section gets its own colored light */
    --gel-blue: #2c6e8e;      /* steel blue gel — academia */
    --gel-magenta: #9c2f6b;   /* rose/surprise-pink gel — leadership & service */
    --gel-teal: #1f7a6c;      /* deep teal gel — the band */
    --gel-amber: #c9822f;     /* warm follow-spot — ventures/businesses */

    --accent: var(--red);     /* overridden per-section */

    --display: 'Fraunces', serif;
    --body: 'Work Sans', sans-serif;
    --mono: 'Space Mono', monospace;

    --edge: 1px solid rgba(169,159,154,0.22);
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  }

  body{
    margin:0;
    background:var(--stage);
    color:var(--ivory);
    font-family:var(--body);
    font-weight:400;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }

  img{ max-width:100%; display:block; }
  a{ color:inherit; }

  h1,h2,h3{ font-family:var(--display); font-weight:500; margin:0; }

  .eyebrow{
    font-family:var(--mono);
    font-size:.72rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--accent);
  }

  .wrap{ max-width:1120px; margin:0 auto; padding:0 clamp(20px,5vw,64px); }

  /* ============ CURTAIN TEXTURE ============ */
  .curtain-texture{
    background-image:
      repeating-linear-gradient(90deg,
        var(--curtain-1) 0px, var(--curtain-1) 26px,
        var(--curtain-2) 26px, var(--curtain-2) 52px,
        var(--curtain-3) 52px, var(--curtain-3) 66px,
        var(--curtain-2) 66px, var(--curtain-2) 92px),
      linear-gradient(180deg, var(--stage-soft), var(--stage) 70%);
    background-blend-mode:normal;
  }

  /* ============ NAV ============ */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding: 14px clamp(20px,5vw,48px);
    background:rgba(11,7,7,0.9);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(181,39,63,0.35);
  }
  .nav-mark{
    font-family:var(--display); font-weight:600; font-size:1.05rem;
    color:var(--ivory); letter-spacing:.02em; text-decoration:none;
    display:flex; align-items:center; gap:8px;
  }
  .nav-mark svg{ width:20px; height:20px; color:var(--red); }
  .nav-links{ display:flex; gap:clamp(10px,2vw,24px); list-style:none; margin:0; padding:0; }
  .nav-links a{
    font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
    color:var(--stone); text-decoration:none; opacity:.85;
    padding-bottom:4px; border-bottom:1px solid transparent;
    transition:opacity .25s ease, border-color .25s ease, color .25s ease;
  }
  .nav-links a:hover, .nav-links a.active{ opacity:1; color:var(--red); border-color:var(--red); }
  .nav-toggle{ display:none; }

  @media (max-width:900px){
    .nav-links{
      position:fixed; inset:56px 0 auto 0; flex-direction:column; gap:0;
      background:var(--stage); border-bottom:1px solid rgba(181,39,63,0.3);
      max-height:0; overflow:hidden; transition:max-height .35s ease;
    }
    .nav-links.open{ max-height:460px; }
    .nav-links a{ padding:14px clamp(20px,5vw,48px); border-bottom:1px solid rgba(255,255,255,0.06); width:100%; }
    .nav-toggle{
      display:block; background:none; border:1px solid var(--red); color:var(--red);
      font-family:var(--mono); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase;
      padding:6px 10px; cursor:pointer; border-radius:2px;
    }
  }

  /* ============ KEYHOLE SIGNATURE ============ */
  .keyhole-mask{ clip-path:url(#keyholeClip); -webkit-clip-path:url(#keyholeClip); }

  .keyhole-divider{
    display:flex; align-items:center; justify-content:center; gap:14px;
    padding:34px 0; color:var(--stone);
  }
  .keyhole-divider .line{ height:1px; width:min(140px,20vw); background:currentColor; opacity:.3; }
  .keyhole-divider svg{ width:16px; height:16px; color:var(--accent); opacity:.85; }

  /* ============ HERO ============ */
  .hero{
    color:var(--ivory);
    min-height:100vh; display:flex; flex-direction:column; justify-content:center;
    position:relative; overflow:hidden; padding:120px 0 70px;
  }
  .hero::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(circle at 18% 20%, rgba(181,39,63,0.30), transparent 45%),
      radial-gradient(circle at 85% 82%, rgba(201,130,47,0.14), transparent 50%),
      linear-gradient(180deg, rgba(11,7,7,0.15), rgba(11,7,7,0.75));
    pointer-events:none;
  }
  .hero-grid{
    position:relative; z-index:1;
    display:grid; grid-template-columns:minmax(240px,340px) 1fr; gap:clamp(24px,5vw,64px);
    align-items:center;
  }
  .hero-frame{
    position:relative; aspect-ratio:1/1.28; background:#000; overflow:hidden;
    opacity:0; transform:scale(.92);
    animation:heroReveal 1.4s cubic-bezier(.2,.8,.2,1) .2s forwards;
    filter:drop-shadow(0 0 34px rgba(181,39,63,0.35));
  }
  .hero-frame.hero-oval{ border-radius:50%; border:1px solid rgba(181,39,63,0.4); }
  @keyframes heroReveal{ to{ opacity:1; transform:scale(1); } }
  .hero-frame .frame-photo{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2;
    filter:sepia(.1) saturate(1.05) contrast(1.1) brightness(.92);
  }
  .hero-frame .frame-placeholder{
    position:absolute; inset:0; z-index:1;
    background:
      repeating-linear-gradient(135deg, rgba(181,39,63,0.1) 0 2px, transparent 2px 14px),
      linear-gradient(160deg,#210a0f,#0f0708);
    display:flex; align-items:center; justify-content:center; text-align:center; padding:20px;
  }

  .hero-copy h1{
    font-size:clamp(2.3rem,5.4vw,4.6rem); line-height:1.02; letter-spacing:-.01em;
    color:var(--ivory);
  }
  .hero-copy .tagline{
    font-family:var(--mono); font-size:clamp(.8rem,1.4vw,.95rem); letter-spacing:.04em;
    color:var(--stone); margin-top:18px;
  }
  .hero-copy .lede{
    font-family:var(--display); font-style:italic; font-weight:400;
    font-size:clamp(1.05rem,2vw,1.4rem); color:#d9cfc8;
    margin-top:26px; max-width:46ch; line-height:1.5;
  }
  .scroll-cue{
    margin-top:46px; font-family:var(--mono); font-size:.68rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--red);
  }

  /* ============ GENERIC SECTION ============ */
  section{ padding:96px 0; position:relative; background:var(--stage); }
  .section-head{ margin-bottom:52px; max-width:64ch; }
  .section-head h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); margin-top:10px; color:var(--ivory); }
  .section-head p{ margin-top:16px; color:var(--stone); font-size:1.02rem; }

  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:none; }

  /* ============ ABOUT ============ */
  .about-grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(32px,5vw,64px); align-items:start; }
  .pull-quote{
    font-family:var(--display); font-style:italic; font-weight:400;
    font-size:clamp(1.4rem,2.6vw,2rem); line-height:1.4; color:var(--red);
    border-left:3px solid var(--red-deep); padding-left:22px; margin:0 0 28px;
  }
  .about-body p{ margin:0 0 18px; color:#dcd4cd; }
  .about-body p:last-child{ margin-bottom:0; }
  .about-body a{ color:var(--red); border-bottom:1px dotted var(--red); text-decoration:none; }
  .about-portrait{ border:1px solid rgba(181,39,63,0.35); padding:10px; background:var(--stage-soft); }
  .about-portrait img{ filter:grayscale(.1) contrast(1.05); }
  .about-portrait figcaption{
    font-family:var(--mono); font-size:.68rem; letter-spacing:.06em; color:var(--stone);
    margin-top:10px; text-align:center;
  }

  @media (max-width:820px){ .about-grid{ grid-template-columns:1fr; } .about-portrait{ max-width:340px; } }

  /* ============ WORK / GALLERY ============ */
  .gallery{
    display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:22px;
  }
  .work-card{
    position:relative; aspect-ratio:4/5; overflow:hidden;
    border:1px solid rgba(181,39,63,0.3); background:#120b0b;
  }
  .work-card .frame-photo{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2;
    filter:grayscale(1) brightness(.7) contrast(1.1) sepia(.15) hue-rotate(300deg) saturate(1.4);
    transition:transform .6s ease, filter .6s ease;
  }
  .work-card .frame-placeholder{
    position:absolute; inset:0; z-index:1;
    background:
      repeating-linear-gradient(135deg, rgba(181,39,63,0.08) 0 2px, transparent 2px 14px),
      linear-gradient(160deg,#210a0f,#0f0708);
  }
  .work-card:hover .frame-photo{ filter:grayscale(0) brightness(.95) contrast(1) sepia(0) hue-rotate(0deg) saturate(1); transform:scale(1.05); }
  .work-card .keyhole-peek{
    position:absolute; inset:0; opacity:0; transition:opacity .5s ease; z-index:3;
  }
  .work-card:hover .keyhole-peek{ opacity:1; }
  .work-card .keyhole-peek img{
    width:100%; height:100%; object-fit:cover; clip-path:url(#keyholeClip); -webkit-clip-path:url(#keyholeClip);
  }
  .work-card .cap{
    position:absolute; left:0; right:0; bottom:0; padding:16px 16px 14px; z-index:4;
    background:linear-gradient(to top, rgba(8,4,4,0.94), transparent);
  }
  .work-card .cap .num{ font-family:var(--mono); font-size:.65rem; color:var(--gel-amber); letter-spacing:.1em; }
  .work-card .cap h3{ font-size:1.02rem; color:var(--ivory); margin-top:4px; line-height:1.25; }
  .work-more{
    margin-top:36px; font-family:var(--mono); font-size:.78rem; letter-spacing:.04em;
    color:var(--stone);
  }
  .work-more a{ color:var(--red); text-decoration:underline; text-underline-offset:3px; }

  /* ============ ACADEMIA (dossier) — blue gel ============ */
  .dossier-timeline{ list-style:none; margin:0; padding:0; border-top:var(--edge); }
  .dossier-timeline li{ border-bottom:var(--edge); padding:22px 0; display:grid; grid-template-columns:170px 1fr; gap:22px; }
  .dossier-timeline .years{ font-family:var(--mono); font-size:.8rem; color:var(--accent); }
  .dossier-timeline h3{ font-size:1.12rem; color:var(--ivory); }
  .dossier-timeline .meta{ margin-top:6px; font-size:.92rem; color:var(--stone); }
  .dossier-timeline .meta b{ color:var(--ivory); font-weight:500; }
  @media (max-width:700px){ .dossier-timeline li{ grid-template-columns:1fr; gap:6px; } }

  .course-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:44px; }
  .course-col .eyebrow{ display:block; margin-bottom:10px; }
  .course-col ul{ margin:0; padding-left:18px; color:#d6cfc9; }
  .course-col li{ margin-bottom:6px; font-size:.94rem; }
  @media (max-width:820px){ .course-grid{ grid-template-columns:1fr; } }

  /* ---- private coaching / actor training sub-block ---- */
  .coach-block{
    margin-top:64px; border:1px solid rgba(44,110,142,0.35); background:rgba(44,110,142,0.06);
    padding:clamp(24px,4vw,40px);
  }
  .coach-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 18px; margin-bottom:18px; }
  .coach-head h3{ font-size:1.4rem; color:var(--ivory); }
  .coach-head .rate-tag{ font-family:var(--mono); font-size:.72rem; color:var(--gel-blue); letter-spacing:.05em; }
  .coach-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(24px,4vw,44px); align-items:start; }
  .coach-grid p{ color:#d6cfc9; margin:0 0 14px; }
  .coach-list{ margin:0 0 14px; padding-left:18px; color:#d6cfc9; font-size:.94rem; }
  .coach-list li{ margin-bottom:5px; }
  .testimonial{
    border-left:3px solid var(--gel-blue); padding-left:18px; margin-top:20px;
    font-family:var(--display); font-style:italic; color:#e4dfda; font-size:.98rem; line-height:1.6;
  }
  .testimonial cite{ display:block; margin-top:10px; font-family:var(--mono); font-style:normal; font-size:.72rem; color:var(--gel-blue); letter-spacing:.04em; }
  .rate-card{ border:1px solid rgba(44,110,142,0.3); padding:20px; background:rgba(11,7,7,0.4); }
  .rate-card dt{ font-family:var(--mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gel-blue); margin-top:14px; }
  .rate-card dt:first-child{ margin-top:0; }
  .rate-card dd{ margin:3px 0 0; font-size:.94rem; color:var(--ivory); }
  .rate-card .cta{ display:inline-block; margin-top:18px; font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gel-blue); border-bottom:1px solid var(--gel-blue); text-decoration:none; }
  @media (max-width:820px){ .coach-grid{ grid-template-columns:1fr; } }

  /* ============ LEADERSHIP / SERVICE — magenta gel ============ */
  .lead-columns{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); }
  .lead-columns h3{ color:var(--accent); font-size:1.15rem; margin-bottom:18px; }
  .role-list{ list-style:none; margin:0; padding:0; }
  .role-list li{ padding:14px 0; border-bottom:1px solid rgba(236,231,224,0.1); }
  .role-list .org{ font-weight:500; color:var(--ivory); }
  .role-list .org a{ color:var(--ivory); text-decoration:none; border-bottom:1px dotted var(--accent); }
  .role-list .role-meta{ font-family:var(--mono); font-size:.74rem; color:var(--stone); margin-top:3px; }
  @media (max-width:820px){ .lead-columns{ grid-template-columns:1fr; } }

  /* ============ PRESS — clippings pinned on the black wall ============ */
  .press-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; }
  .clip{
    background:var(--ivory); border:1px solid rgba(28,20,20,0.15);
    padding:22px 22px 18px; position:relative; box-shadow:0 10px 26px rgba(0,0,0,0.35);
  }
  .clip::before{
    content:"✂"; position:absolute; top:-11px; left:18px; font-size:.8rem; color:var(--stone);
    background:var(--ivory); padding:0 6px;
  }
  .clip p.quote{ font-family:var(--display); font-style:italic; font-size:1.02rem; margin:0 0 12px; color:var(--ink); }
  .clip .cite{ font-family:var(--mono); font-size:.72rem; color:var(--red-deep); line-height:1.5; }
  .clip .cite a{ color:var(--red-deep); }

  /* ============ VENTURES — amber / teal gel ============ */
  .biz-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,40px); }
  .biz-card{ border:1px solid rgba(201,130,47,0.35); padding:30px; background:rgba(201,130,47,0.05); }
  .biz-card.teal{ border-color:rgba(31,122,108,0.4); background:rgba(31,122,108,0.06); }
  .biz-card img{ margin-bottom:18px; border:1px solid rgba(201,130,47,0.3); }
  .biz-card h3{ font-size:1.4rem; color:var(--ivory); }
  .biz-card .loc{ font-family:var(--mono); font-size:.74rem; color:var(--gel-amber); margin-top:6px; }
  .biz-card.teal .loc{ color:var(--gel-teal); }
  .biz-card p{ color:#d6cfc9; margin-top:14px; }
  .biz-links{ margin-top:20px; display:flex; flex-wrap:wrap; gap:10px 18px; }
  .biz-card .biz-links a{ font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gel-amber); text-decoration:none; border-bottom:1px solid var(--gel-amber); }
  .biz-card.teal .biz-links a{ color:var(--gel-teal); border-color:var(--gel-teal); }
  .biz-card.full{ grid-column:1/-1; }
  .band-members{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; margin-top:20px; }
  .band-members .member{ border-left:2px solid var(--gel-teal); padding-left:14px; }
  .band-members .member .role{ font-family:var(--mono); font-size:.68rem; color:var(--gel-teal); letter-spacing:.05em; text-transform:uppercase; }
  .band-members .member .name{ font-family:var(--display); font-size:1.1rem; color:var(--ivory); margin-top:3px; }
  @media (max-width:820px){ .biz-grid{ grid-template-columns:1fr; } }

  /* ============ CONTACT ============ */
  .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); }
  .field{ margin-bottom:18px; }
  .field label{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--stone); margin-bottom:6px; }
  .field input, .field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--stone);
    font-family:var(--body); font-size:1rem; padding:8px 2px; color:var(--ivory);
  }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--red); }
  .field textarea{ resize:vertical; min-height:100px; }
  .submit-btn{
    margin-top:8px; font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
    background:var(--red-deep); color:var(--ivory); border:none; padding:13px 26px; cursor:pointer;
    transition:background .25s ease;
  }
  .submit-btn:hover{ background:var(--red); }
  .form-status{ margin-top:14px; font-family:var(--mono); font-size:.8rem; color:var(--gel-amber); }

  .sheet{ border:1px solid rgba(181,39,63,0.3); padding:26px; background:rgba(181,39,63,0.05); }
  .sheet h3{ font-size:1.05rem; margin-bottom:14px; color:var(--ivory); }
  .sheet dl{ margin:0; }
  .sheet dt{ font-family:var(--mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--stone); margin-top:16px; }
  .sheet dt:first-child{ margin-top:0; }
  .sheet dd{ margin:4px 0 0; font-size:.98rem; color:#d6cfc9; }
  .sheet dd a{ text-decoration:underline; text-underline-offset:3px; color:var(--red); }
  @media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }

  footer{
    background:var(--stage-soft); color:var(--stone); padding:36px 0;
    font-family:var(--mono); font-size:.72rem; letter-spacing:.03em;
    border-top:1px solid rgba(181,39,63,0.25);
    display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; align-items:center;
  }
  footer a{ color:var(--red); text-decoration:none; }

  /* ============ PORTFOLIO BANNER (homepage teaser -> full page) ============ */
  .portfolio-banner{
    display:block; position:relative; overflow:hidden; text-decoration:none; color:inherit;
    border:1px solid rgba(181,39,63,0.35); aspect-ratio:21/8; min-height:220px;
    background:linear-gradient(160deg,#210a0f,#0f0708);
  }
  .portfolio-banner img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    filter:grayscale(.6) brightness(.55) contrast(1.1);
    transition:transform .7s ease, filter .7s ease;
  }
  .portfolio-banner:hover img{ transform:scale(1.04); filter:grayscale(.15) brightness(.65) contrast(1.05); }
  .portfolio-banner-copy{
    position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center;
    padding:clamp(24px,5vw,48px);
    background:linear-gradient(100deg, rgba(8,4,4,0.88) 0%, rgba(8,4,4,0.5) 55%, transparent 90%);
  }
  .portfolio-banner-copy h3{ font-size:clamp(1.5rem,3.4vw,2.3rem); color:var(--ivory); margin-top:8px; }
  .portfolio-banner-copy .arrow{ display:inline-block; transition:transform .3s ease; }
  .portfolio-banner:hover .arrow{ transform:translateX(6px); }

  /* ============ PAGE HEADER (artist-portfolio.html) ============ */
  .page-header{
    color:var(--ivory); padding:130px 0 60px; position:relative; overflow:hidden;
  }
  .page-header::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(circle at 15% 20%, rgba(181,39,63,0.28), transparent 45%),
      linear-gradient(180deg, rgba(11,7,7,0.1), rgba(11,7,7,0.8));
    pointer-events:none;
  }
  .page-header .wrap{ position:relative; z-index:1; max-width:760px; }
  .page-header h1{ font-size:clamp(2.1rem,5vw,3.6rem); margin-top:10px; }
  .page-header p.intro{ font-family:var(--display); font-style:italic; color:#d9cfc8; font-size:clamp(1rem,1.8vw,1.25rem); margin-top:20px; max-width:56ch; line-height:1.55; }
  .back-link{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--red); text-decoration:none; border-bottom:1px solid var(--red); }

  .archive-note{ margin-top:44px; font-family:var(--mono); font-size:.78rem; color:var(--stone); }
  .archive-note a{ color:var(--red); text-decoration:underline; text-underline-offset:3px; }

  /* ============ PHOTO-DETECTION STATES (self-hosted local images) ============ */
  .work-card{ cursor:default; }
  .work-card.has-photo{ cursor:pointer; }
  .work-card:not(.has-photo) .keyhole-peek{ display:none; }
  .frame-placeholder .ph-label{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
    color:rgba(169,159,154,0.45); text-align:center; padding:0 20px;
  }

  /* ============ LIGHTBOX ============ */
  .lightbox{
    position:fixed; inset:0; z-index:200; background:rgba(8,4,4,0.94);
    display:flex; align-items:center; justify-content:center; padding:40px;
    opacity:0; pointer-events:none; transition:opacity .3s ease;
  }
  .lightbox.open{ opacity:1; pointer-events:auto; }
  .lightbox figure{ margin:0; max-width:min(90vw,1000px); max-height:90vh; }
  .lightbox img{ max-width:100%; max-height:80vh; margin:0 auto; border:1px solid rgba(181,39,63,0.4); object-fit:contain; }
  .lightbox figcaption{ text-align:center; margin-top:16px; font-family:var(--mono); font-size:.78rem; color:var(--stone); letter-spacing:.04em; }
  .lightbox-close{
    position:absolute; top:24px; right:28px; background:none; border:1px solid var(--red); color:var(--red);
    font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
    padding:8px 14px; cursor:pointer; border-radius:2px;
  }

  /* ============ SUBSCRIBE / NEWSLETTER CTA ============ */
  .subscribe-btn{
    font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
    background:transparent; color:var(--red); border:1px solid var(--red); padding:7px 14px;
    cursor:pointer; text-decoration:none; display:inline-block; transition:background .25s ease, color .25s ease;
  }
  .subscribe-btn:hover{ background:var(--red); color:var(--ivory); }
  .nav-subscribe{ margin-left:6px; }
  @media (max-width:900px){ .nav-subscribe{ display:none; } }

  /* ============ JOURNAL TEASER (homepage) — teal gel, echoes the band section ============ */
  .journal-teaser-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; }
  .journal-teaser-card{
    display:block; text-decoration:none; color:inherit;
    border:1px solid rgba(31,122,108,0.3); background:rgba(31,122,108,0.05);
    padding:24px; transition:border-color .25s ease, background .25s ease;
  }
  .journal-teaser-card:hover{ border-color:rgba(31,122,108,0.6); background:rgba(31,122,108,0.09); }
  .journal-teaser-card .date{ font-family:var(--mono); font-size:.68rem; color:var(--gel-teal); letter-spacing:.06em; text-transform:uppercase; }
  .journal-teaser-card h3{ font-size:1.15rem; color:var(--ivory); margin-top:10px; line-height:1.3; }
  .journal-teaser-card p{ font-size:.9rem; color:var(--stone); margin-top:10px; line-height:1.5; }
  .journal-teaser-empty{ font-family:var(--mono); font-size:.85rem; color:var(--stone); border:1px dashed rgba(169,159,154,0.3); padding:24px; }
  .journal-more{ margin-top:30px; }

  /* ============ BLOG INDEX ============ */
  .post-index-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:28px; }
  .post-card{ display:block; text-decoration:none; color:inherit; border-bottom:var(--edge); padding-bottom:26px; }
  .post-card .feature-img{ width:100%; aspect-ratio:16/10; object-fit:cover; margin-bottom:16px; filter:grayscale(.4) contrast(1.05); border:1px solid rgba(181,39,63,0.25); transition:filter .4s ease; }
  .post-card:hover .feature-img{ filter:grayscale(0) contrast(1); }
  .post-card .date{ font-family:var(--mono); font-size:.68rem; color:var(--red); letter-spacing:.06em; text-transform:uppercase; }
  .post-card h2{ font-size:1.3rem; color:var(--ivory); margin-top:10px; line-height:1.3; }
  .post-card p{ color:var(--stone); margin-top:10px; font-size:.96rem; }
  .pagination-row{ display:flex; justify-content:space-between; margin-top:56px; font-family:var(--mono); font-size:.78rem; }
  .pagination-row a{ color:var(--red); text-decoration:underline; text-underline-offset:3px; }

  /* ============ SINGLE POST ============ */
  .post-header{ padding:130px 0 40px; }
  .post-header .tags{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--red); }
  .post-header h1{ font-size:clamp(2rem,5vw,3.3rem); margin-top:14px; color:var(--ivory); }
  .post-header .byline{ font-family:var(--mono); font-size:.78rem; color:var(--stone); margin-top:18px; }
  .post-feature-img{ width:100%; max-height:520px; object-fit:cover; border-top:1px solid rgba(181,39,63,0.3); border-bottom:1px solid rgba(181,39,63,0.3); margin-bottom:10px; }
  .post-content{ max-width:70ch; margin:40px auto 0; font-size:1.08rem; color:#dcd4cd; line-height:1.75; }
  .post-content h2, .post-content h3{ color:var(--ivory); margin-top:2.2em; }
  .post-content p{ margin:0 0 1.4em; }
  .post-content a{ color:var(--red); text-decoration:underline; text-underline-offset:3px; }
  .post-content img{ max-width:100%; margin:2em 0; border:1px solid rgba(181,39,63,0.25); }
  .post-content blockquote{ border-left:3px solid var(--red-deep); padding-left:20px; font-family:var(--display); font-style:italic; color:var(--red); margin:2em 0; }
  .post-content figcaption{ font-family:var(--mono); font-size:.75rem; color:var(--stone); text-align:center; margin-top:-1.5em; margin-bottom:2em; }
  .post-content code{ font-family:var(--mono); background:rgba(181,39,63,0.1); padding:2px 6px; font-size:.9em; }
  .post-content pre{ background:var(--stage-soft); border:1px solid rgba(181,39,63,0.25); padding:18px; overflow-x:auto; }
  .post-footer-subscribe{
    max-width:70ch; margin:70px auto 0; border:1px solid rgba(181,39,63,0.3); background:rgba(181,39,63,0.05);
    padding:34px; text-align:center;
  }
  .post-footer-subscribe h3{ font-size:1.3rem; color:var(--ivory); }
  .post-footer-subscribe p{ color:var(--stone); margin:12px 0 20px; }

  /* ============ MEMBER ACCESS UI ============ */
  .signin-link{
    font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
    color:var(--stone); text-decoration:none; opacity:.85; padding-bottom:4px;
    border-bottom:1px solid transparent; transition:opacity .25s ease, color .25s ease;
  }
  .signin-link:hover{ opacity:1; color:var(--ivory); }

  .access-badge{
    display:inline-block; font-family:var(--mono); font-size:.62rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--gel-teal); border:1px solid var(--gel-teal);
    padding:2px 7px; border-radius:2px;
  }

  .content-cta{
    max-width:70ch; margin:2.5em auto; padding:32px clamp(24px,4vw,40px);
    border:1px solid rgba(31,122,108,0.35); background:rgba(31,122,108,0.06); text-align:center;
  }
  .content-cta h3{ font-size:1.25rem; color:var(--ivory); margin-top:10px; }
  .content-cta p{ color:var(--stone); margin-top:12px; }
  .content-cta-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:20px; }

  /* ============ KOENIG EDITOR — wide & full-width image cards ============ */
  .post-content .kg-width-wide{
    width:100vw; max-width:1100px;
    margin-left:50%; transform:translateX(-50%);
  }
  .post-content .kg-width-full{
    width:100vw; max-width:100vw;
    margin-left:50%; transform:translateX(-50%);
  }
  .post-content .kg-width-wide img,
  .post-content .kg-width-full img{
    width:100%; margin:0; border:none;
  }
  .post-content .kg-width-full figcaption{ max-width:70ch; margin-left:auto; margin-right:auto; }
