:root{
  --navy-deep:#0B1640;
  --navy-mid:#16265E;
  --signal-blue:#3E7FC4;
  --signal-blue-soft:#7FA8D9;
  --gold:#E8B84B;
  --gold-deep:#A9761E;
  --fog:#EEF3FA;
  --paper:#FFFFFF;
  --ink:#1B2540;
  --mist:#66738F;
  --border:#E1E8F2;
  --radius:10px;
  --max:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--fog);
  color:var(--ink);
  line-height:1.6;
}
a{color:var(--signal-blue);}
img{max-width:100%;display:block;}
h1,h2,h3{font-family:'Oswald','Arial Narrow',sans-serif;letter-spacing:0.01em;margin:0;}

a:focus-visible, button:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}

/* ---------- Header / Nav ---------- */
header.site-header{
  background:linear-gradient(180deg,var(--navy-deep) 0%,var(--navy-mid) 100%);
  color:var(--fog);
}
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 40px;max-width:1280px;margin:0 auto;
  border-bottom:1px solid rgba(232,184,75,0.25);
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.brand-mark{
    width: 69px;height:30px;flex:none;
}
.brand-name{font-size:14px;line-height:1.25;color:var(--fog);text-transform:uppercase;}
.brand-name b{
  display:block;
  background:linear-gradient(180deg,var(--gold) 20%,var(--gold-deep) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-weight:700;
}
nav.main-nav{display:flex;gap:26px;font-size:14px;flex-wrap:wrap;}
nav.main-nav a{
  color:var(--fog);text-decoration:none;opacity:0.82;
  padding-bottom:4px;border-bottom:2px solid transparent;
}
nav.main-nav a:hover{opacity:1;}
nav.main-nav a[aria-current="page"]{opacity:1;border-bottom-color:var(--gold);}

.menu-toggle{display:none;}

@media (max-width:760px){
  .topbar{flex-wrap:wrap;gap:12px;padding:14px 20px;}
  nav.main-nav{gap:14px 20px;width:100%;}
}

/* ---------- Page hero (small, for interior pages) ---------- */
.page-hero{
  padding:44px 40px;max-width:1280px;margin:0 auto;
}
.page-hero .eyebrow{
  font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;display:block;
}
.page-hero h1{font-size:32px;color:var(--paper);font-weight:600;}
.page-hero p{color:var(--signal-blue-soft);max-width:620px;margin-top:12px;font-size:15px;}
.page-hero .hero-trail{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;
  font-size:13px;color:var(--signal-blue-soft);
}
.page-hero .hero-trail a{color:var(--fog);text-decoration:underline;text-underline-offset:3px;}
.page-hero .hero-trail a:hover{color:var(--gold);}
.page-hero .hero-trail .sep{opacity:0.45;}

/* ---------- Sections ---------- */
main{max-width:var(--max);margin:0 auto;padding:0 40px;}
section{padding:48px 0;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:8px;}
.section-head h2{font-size:21px;}
.section-head span{font-size:13px;color:var(--mist);}

/* ---------- Buttons ---------- */
.btn{
  padding:12px 22px;border-radius:6px;font-size:14px;font-weight:600;
  text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  border:1px solid transparent;cursor:pointer;
  touch-action:manipulation;
}
.btn-primary{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:var(--navy-deep);}
.btn-ghost{border-color:rgba(255,255,255,0.28);color:var(--fog);background:transparent;}
.btn-outline{border-color:var(--border);color:var(--ink);background:var(--paper);}
.btn-primary:active{filter:brightness(1.08);}
.btn-ghost:active{border-color:var(--gold);color:var(--gold);}
.btn-outline:active{border-color:var(--signal-blue);color:var(--signal-blue);}
@media (hover: hover) and (pointer: fine){
  .btn-primary:hover{filter:brightness(1.08);}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold);}
  .btn-outline:hover{border-color:var(--signal-blue);color:var(--signal-blue);}
}

/* ---------- Chapter cards ---------- */
.chapters{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;}
.chapter-card{
  background:var(--paper);border-radius:var(--radius);padding:20px 22px;
  border:1px solid var(--border);text-decoration:none;color:inherit;display:block;
  transition:transform .15s ease, box-shadow .15s ease;
}
@media (hover: hover) and (pointer: fine){
  .chapter-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(11,22,64,0.08);}
}
.chapter-num{font-size:12px;color:var(--gold-deep);font-weight:700;letter-spacing:0.06em;}
.chapter-card h3{font-family:'Inter',sans-serif;font-size:16px;font-weight:600;margin:6px 0 8px;color:var(--ink);}
.chapter-card p{font-size:13px;color:var(--mist);margin:0;line-height:1.5;}

/* ---------- Gallery grid ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.gallery a{
  aspect-ratio:4/3;border-radius:8px;overflow:hidden;position:relative;
  display:flex;align-items:flex-end;
  background:linear-gradient(135deg,var(--signal-blue-soft),var(--signal-blue));
  text-decoration:none;color:inherit;
}
.gallery:not(.gallery-flip) a > span,
.gallery-flip .flip-caption{
  font-size:12px;color:white;padding:8px 10px;background:rgba(11,22,64,0.55);width:100%;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  overflow:hidden;line-height:1.35em;
  max-height:calc(1.35em * 3 + 16px);
  word-break:break-word;
}
.gallery-flip{
  overflow:hidden;
}
.gallery-flip .flip-tile{
  perspective:900px;
  overflow:visible;
  background:transparent;
  display:block;
  min-width:0;
  width:100%;
}
.gallery-flip .flip-inner{
  position:absolute;inset:0;
  display:block;width:100%;height:100%;
  transform-style:preserve-3d;
  -webkit-transform-style:preserve-3d;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
  border-radius:8px;
}
.gallery-flip .flip-inner.no-transition{transition:none;}
.gallery-flip .flip-face{
  position:absolute;inset:0;display:flex;align-items:flex-end;
  border-radius:8px;overflow:hidden;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  background:#0B1640;
}
.gallery-flip .flip-front{transform:rotateY(0deg);}
.gallery-flip .flip-back{transform:rotateY(180deg);}
.gallery-flip .flip-tile.axis-x .flip-back{transform:rotateX(180deg);}
.gallery-flip .flip-tile.is-flipping.axis-y .flip-inner{transform:rotateY(180deg);}
.gallery-flip .flip-tile.is-flipping.axis-x .flip-inner{transform:rotateX(180deg);}
.gallery-flip .flip-face img{
  width:100%;height:100%;object-fit:cover;position:absolute;inset:0;
}
.gallery-flip .flip-caption{
  position:relative;z-index:1;
}
@media (max-width:760px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (prefers-reduced-motion: reduce){
  .gallery-flip .flip-inner{transition:none;}
}

/* ---------- Chapter reading page ---------- */
.reader-layout{
  display:grid;grid-template-columns:220px 1fr;gap:40px;
  max-width:var(--max);margin:0 auto;padding:40px;
}
.reader-toc{
  position:sticky;top:20px;align-self:start;
  font-size:13px;
}
.reader-toc h4{font-size:12px;text-transform:uppercase;letter-spacing:0.08em;color:var(--mist);margin-bottom:10px;}
.reader-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.reader-toc a{
  text-decoration:none;color:var(--mist);display:block;padding:6px 10px;border-radius:6px;
}
.reader-toc a[aria-current="page"]{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--gold);}
.reader-toc a:hover{color:var(--ink);}

article.chapter-body{
  background:var(--paper);border-radius:var(--radius);border:1px solid var(--border);
  padding:44px 48px;
  display:flex;flex-direction:column;
}
article.chapter-body .chapter-eyebrow{font-size:12px;color:var(--gold-deep);font-weight:700;letter-spacing:0.08em;}
article.chapter-body h1{font-size:28px;margin:8px 0 6px;color:var(--ink);}
article.chapter-body .chapter-sub{color:var(--mist);font-size:14px;margin-bottom:28px;}
article.chapter-body p{margin:0 0 18px;font-size:16px;color:var(--ink);}
article.chapter-body p.note{
  font-size:13px;color:var(--mist);background:var(--fog);border-radius:8px;padding:14px 16px;
  border:1px dashed var(--border);
}
.chapter-nav{
  display:flex;justify-content:space-between;margin-top:32px;padding-top:24px;border-top:1px solid var(--border);
  font-size:14px;gap:16px;
}
.chapter-nav a{text-decoration:none;color:var(--ink);font-weight:600;}
.chapter-nav a span{display:block;font-size:12px;font-weight:400;color:var(--mist);}

@media (max-width:900px){
  .reader-layout{grid-template-columns:1fr;padding:24px;}
  .reader-toc{position:relative;top:0;order:2;}
  article.chapter-body{padding:28px 22px;order:1;}
  article.chapter-body .chapter-nav{
    order:-1;
    margin:0 0 20px;
    padding:0 0 16px;
    border-top:none;
    border-bottom:1px solid var(--border);
  }
}

/* ---------- Footer ---------- */
footer.site-footer{
  background:var(--navy-deep);color:var(--mist);
  padding:30px 40px;font-size:13px;text-align:center;
  margin-top:48px;
}
footer.site-footer b{color:var(--gold);}
footer.site-footer .footer-links{margin:16px 0 0;}
footer.site-footer .footer-links a{color:var(--gold);text-decoration:none;}
footer.site-footer .footer-links a:hover{text-decoration:underline;text-underline-offset:3px;}

.chapters-list{grid-template-columns:1fr;}
.chapter-row{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
}
.chapter-row .meta{color:var(--mist);font-size:13px;white-space:nowrap;}
.chapter-row .play{color:var(--signal-blue);font-size:20px;}

.album-filters{display:flex;gap:10px;flex-wrap:wrap;}
.album-filters .btn{padding:6px 14px;font-size:13px;}
.album-filters .btn[aria-current="page"]{
  border-color:var(--signal-blue);color:var(--signal-blue);
}

.gallery:not(.gallery-flip) a{background:#0B1640;}
.gallery:not(.gallery-flip) a img{
  width:100%;height:100%;object-fit:cover;position:absolute;inset:0;
}
.gallery:not(.gallery-flip) a > span{position:relative;z-index:1;}

.photo-stage{
  background:var(--paper);border-radius:var(--radius);border:1px solid var(--border);
  padding:28px;text-align:center;
}
.photo-stage img{margin:0 auto 16px;max-height:70vh;width:auto;}
.photo-stage .caption{color:var(--mist);font-size:14px;margin:0 0 20px;}
.photo-nav{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}
.photo-nav .btn{touch-action:manipulation;position:relative;z-index:1;}

.video-stage{
  background:var(--paper);border-radius:var(--radius);border:1px solid var(--border);
  overflow:hidden;margin-bottom:24px;
}
.video-stage video{width:100%;height:auto;display:block;background:#000;}
.prose-block{font-size:16px;color:var(--ink);}
.prose-block h2{font-size:20px;margin:28px 0 14px;color:var(--ink);}
.prose-block h2:first-child{margin-top:0;}
.prose-block p{margin:0 0 18px;}
.prose-block img{max-width:100%;height:auto;border-radius:8px;margin:12px 0;}
.prose-block b,
.prose-block strong,
.prose-block .award-name{
  font-weight:700;
  font-family:'Inter',system-ui,-apple-system,sans-serif;
}
.chrono{
  width:100%;
  border-collapse:collapse;
  margin:8px 0 24px;
  font-size:15px;
}
.chrono th,
.chrono td{
  vertical-align:top;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  text-align:left;
}
.chrono th{
  width:160px;
  color:var(--gold-deep);
  font-weight:700;
  white-space:nowrap;
}
.chrono-people th{
  width:220px;
  white-space:normal;
}
.chrono-section td{
  padding-top:22px;
  color:var(--navy-deep);
  font-size:15px;
  border-bottom:1px solid var(--gold);
}
.chrono tr:last-child th,
.chrono tr:last-child td{border-bottom:none;}
@media (max-width:760px){
  .chrono th,
  .chrono td{display:block;width:auto;padding:8px 0;}
  .chrono th{padding-bottom:2px;white-space:normal;}
  .chrono td{padding-top:0;padding-bottom:16px;border-bottom:1px solid var(--border);}
  .chrono tr:last-child td{border-bottom:none;}
}
.page-break{
  display:flex;align-items:center;justify-content:center;gap:16px;
  margin:44px 0;
  color:var(--gold-deep);
  font-size:12px;
  letter-spacing:0.4em;
  user-select:none;
}
.page-break::before,
.page-break::after{
  content:"";
  flex:1;
  height:5px;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.muted-note{color:var(--mist);font-size:13px;margin-top:18px;}
.cta-row{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}
.hero-home{max-width:760px;padding-bottom:70px;}
.hero-home h1{font-size:44px;}
@media (max-width:760px){
  .hero-home h1{font-size:32px;}
  main{padding:0 20px;}
  .page-hero{padding:32px 20px;}
  .photo-nav{padding-bottom:56px;}
}

.feedback-card{
  background:var(--paper);border-radius:var(--radius);border:1px solid var(--border);
  padding:32px;max-width:640px;
}
.feedback-form .form-field{margin:0 0 18px;}
.feedback-form label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;}
.feedback-form input,
.feedback-form textarea{
  width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;
  font:inherit;color:var(--ink);background:var(--paper);
}
.feedback-form textarea{min-height:160px;resize:vertical;}
.feedback-form input:focus,
.feedback-form textarea:focus{
  outline:2px solid var(--gold);outline-offset:1px;border-color:transparent;
}
.feedback-form .form-error{color:#9b1c1c;font-size:13px;margin-top:6px;}
.feedback-form .g-recaptcha{margin:4px 0 8px;}
.form-alert{
  padding:14px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;
}
.form-alert-success{background:#e8f6ee;color:#0f5132;border:1px solid #badbcc;}
.form-alert-error{background:#fdecea;color:#842029;border:1px solid #f5c2c7;}
.form-actions{margin-top:8px;}
.form-actions .btn{border:none;}

.scroll-top{
  display:none;
}
@media (max-width:760px){
  .scroll-top{
    display:flex;align-items:center;justify-content:center;
    position:fixed;z-index:40;
    right:16px;bottom:max(16px, env(safe-area-inset-bottom, 0px));
    width:48px;height:48px;padding:0;margin:0;
    border:1px solid rgba(232,184,75,0.45);
    border-radius:50%;
    background:linear-gradient(180deg,var(--navy-mid),var(--navy-deep));
    color:var(--gold);
    box-shadow:0 8px 24px rgba(11,22,64,0.28);
    cursor:pointer;touch-action:manipulation;
    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateY(8px);
    transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
  }
  .scroll-top.is-visible{
    opacity:1;visibility:visible;pointer-events:auto;
    transform:translateY(0);
  }
  .scroll-top svg{width:24px;height:24px;fill:currentColor;display:block;}
  .scroll-top:active{transform:translateY(1px);}
}
@media (max-width:760px) and (hover: hover) and (pointer: fine){
  .scroll-top:hover{filter:brightness(1.08);}
}
@media (max-width:760px) and (prefers-reduced-motion: reduce){
  .scroll-top{transition:none;transform:none;}
  .scroll-top:active{transform:none;}
}
