:root {
  --navy:#0F2A44; --navy-deep:#0A1E32; --navy-20:rgba(15,42,68,.2); --navy-10:rgba(15,42,68,.1);
  --gold:#B8922F; --gold-dark:#967424; --gold-light:#D4B258;
  --cream:#E8E4DA; --cream-light:#F4F1EA; --paper:#FBF9F4;
  --ink:#1C1C1A; --ink-70:rgba(28,28,26,.72); --ink-50:rgba(28,28,26,.5);
  --panel:#16334f; --blue:#4A6FA5; --gray:#5a6b7d;
  --font-display:'Cormorant Garamond','Times New Roman',serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { background:var(--paper); color:var(--ink); font-family:var(--font-body); line-height:1.7; overflow-x:hidden; }
.serif { font-family:var(--font-display); }
.wrap { max-width:1100px; margin:0 auto; padding:0 24px; }
h1,h2,h3 { font-family:var(--font-display); font-weight:600; color:var(--navy); line-height:1.12; letter-spacing:-.015em; }
em.gold { font-style:italic; color:var(--gold); }
.eyebrow { font-family:var(--font-body); font-size:.75rem; font-weight:600; letter-spacing:.2em;
           text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem; display:inline-block; }

@keyframes fadeUp { from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:translateY(0);} }
.fade-up { animation:fadeUp .9s cubic-bezier(.2,.8,.2,1) both; }
.d1{animation-delay:.08s}.d2{animation-delay:.18s}.d3{animation-delay:.28s}.d4{animation-delay:.38s}

/* Nav (paper) */
nav { position:sticky; top:0; background:rgba(251,249,244,.95); backdrop-filter:blur(8px);
      border-bottom:1px solid var(--navy-10); z-index:50; }
.nav-inner { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; max-width:1100px; margin:0 auto; }
.nav-brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--navy); }
.nav-brand svg { width:30px; height:30px; }
.nav-brand span { font-family:var(--font-display); font-weight:700; font-size:1.3rem; }
.nav-links { display:flex; gap:24px; flex-wrap:wrap; }
.nav-links a { color:var(--ink-70); text-decoration:none; font-size:.85rem; letter-spacing:.06em; }
.nav-links a:hover { color:var(--gold); }

/* Hero (paper, left-aligned, watermark) */
.hero { position:relative; padding:110px 24px 90px; background:var(--paper); overflow:hidden; text-align:left; }
.hero .watermark { position:absolute; right:-6%; top:50%; transform:translateY(-50%);
                   width:620px; height:620px; opacity:.05; pointer-events:none; }
.hero-inner { max-width:1100px; margin:0 auto; position:relative; z-index:1; }
.hero h1 { font-size:clamp(2.6rem,6vw,4.6rem); max-width:860px; margin-bottom:1.8rem; }
.hero p.lead { font-size:1.22rem; max-width:640px; color:var(--ink-70); margin-bottom:2.6rem; }
.hero p.lead strong { color:var(--navy); font-weight:600; }
.hero .ctas { display:flex; gap:16px; flex-wrap:wrap; }

.btn { display:inline-flex; align-items:center; gap:.6rem; padding:1rem 1.75rem;
       font-family:var(--font-body); font-size:.875rem; font-weight:500; letter-spacing:.08em;
       text-transform:uppercase; border-radius:2px; text-decoration:none;
       transition:all .3s cubic-bezier(.4,0,.2,1); }
.btn-gold { background:var(--navy); color:var(--cream-light); }
.btn-gold:hover { background:var(--gold); color:var(--navy); transform:translateY(-2px); }
.btn-line { background:transparent; color:var(--navy); border:1px solid var(--navy); }
.btn-line:hover { background:var(--navy); color:var(--cream-light); }
.btn-ghost { color:var(--navy); padding:.5rem 0; border-bottom:1px solid var(--gold); border-radius:0; }
.btn-ghost:hover { color:var(--gold); transform:translateX(4px); }

/* Sections */
section { padding:clamp(4rem,9vh,7rem) 0; }
section.alt { background:var(--cream-light); }
.sec-head { text-align:left; margin-bottom:2.8rem; }
.sec-head h2 { font-size:clamp(1.9rem,4vw,3rem); max-width:760px; }
.sec-head .rule { display:none; }
.sec-head p { color:var(--ink-70); margin-top:1rem; max-width:620px; font-size:1.1rem; }
.sec-head.center { text-align:center; }
.sec-head.center h2, .sec-head.center p { margin-left:auto; margin-right:auto; }

.grid3 { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.grid2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }
.tile { background:#fff; border:1px solid var(--navy-20); border-radius:2px; padding:2rem; }
.tile h3 { font-family:var(--font-body); color:var(--gold); font-size:.78rem; letter-spacing:.18em;
           text-transform:uppercase; font-weight:600; margin-bottom:.8rem; }
.tile h3.big { font-family:var(--font-display); font-size:1.5rem; letter-spacing:-.01em;
               text-transform:none; color:var(--navy); font-weight:600; }
.tile p { color:var(--ink-70); font-size:.95rem; }
.tile .gold-tick { width:44px; height:2px; background:var(--gold); margin-bottom:1.1rem; }

/* Engagement cards */
.eng { display:flex; flex-direction:column; }
.eng .badge { align-self:flex-start; background:var(--gold); color:#fff; font-size:.66rem; font-weight:600;
              letter-spacing:.15em; padding:.4rem .85rem; border-radius:2px; text-transform:uppercase; margin-bottom:1rem; }
.eng h3 { font-family:var(--font-display); font-size:1.55rem; color:var(--navy); font-weight:600;
          letter-spacing:-.01em; text-transform:none; }
.eng .loc { color:var(--gold-dark); margin:4px 0 12px; font-style:italic; font-family:var(--font-display); font-size:1rem; }
.eng p { flex:1; }
.eng a { color:var(--navy); text-decoration:none; font-weight:600; margin-top:1.1rem; font-size:.85rem;
         letter-spacing:.06em; text-transform:uppercase; border-bottom:1px solid var(--gold); align-self:flex-start; padding-bottom:.3rem; }
.eng a:hover { color:var(--gold); }

/* Detail pages */
.detail { max-width:780px; margin:0 auto; padding:80px 24px; }
.detail .badge { display:inline-block; background:var(--gold); color:#fff; font-size:.7rem; font-weight:600;
                 letter-spacing:.16em; padding:.45rem .9rem; border-radius:2px; text-transform:uppercase; }
.detail h1 { font-size:clamp(2.2rem,4.5vw,3.2rem); margin:1.2rem 0 .4rem; }
.detail .loc { color:var(--ink-50); margin-bottom:1.6rem; font-family:var(--font-display); font-style:italic; font-size:1.1rem; }
.detail .rule { width:60px; height:2px; background:var(--gold); margin-bottom:2rem; }
.detail p { margin-bottom:1.3rem; color:var(--ink-70); font-size:1.05rem; }
.detail a { color:var(--gold-dark); }
.detail .stat-row { display:flex; gap:14px; flex-wrap:wrap; margin:2rem 0; }
.detail .stat { background:var(--navy); border-radius:2px; padding:1.2rem 1.5rem; text-align:center; flex:1; min-width:140px; }
.detail .stat b { display:block; font-family:var(--font-display); color:var(--gold-light); font-size:1.7rem; font-weight:600; }
.detail .stat span { color:#AAB3C0; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.ppt { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin:2rem 0; }
.ppt .cell { background:var(--navy); border-radius:2px; padding:1.4rem; }
.ppt .cell b { display:block; color:var(--gold-light); font-size:.72rem; letter-spacing:.15em; margin-bottom:.6rem; text-transform:uppercase; }
.ppt .cell span { color:#C9D2DD; font-size:.87rem; }
.cta-center { text-align:center; margin-top:3rem; }

/* Article pages */
.article { max-width:720px; margin:0 auto; padding:80px 24px; }
.article .kicker { color:var(--gold); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; }
.article h1 { font-size:clamp(2.1rem,4.5vw,3rem); line-height:1.15; margin:1rem 0 .6rem; }
.article .byline { color:var(--ink-50); margin-bottom:1.8rem; font-family:var(--font-display); font-style:italic; font-size:1.05rem; }
.article .rule { width:60px; height:2px; background:var(--gold); margin-bottom:2.2rem; }
.article p { margin-bottom:1.4rem; font-size:1.08rem; color:var(--ink-70); }
.article h2 { font-size:1.9rem; margin:2.4rem 0 1rem; }
.article .pull { border-left:2px solid var(--gold); background:var(--cream-light); padding:1.4rem 1.6rem;
                 font-family:var(--font-display); font-style:italic; font-size:1.35rem; color:var(--navy); margin:2rem 0; line-height:1.4; }
.article .back { display:inline-block; margin-bottom:1.6rem; color:var(--navy); text-decoration:none;
                 font-weight:600; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
                 border-bottom:1px solid var(--gold); padding-bottom:.3rem; }
.article .back:hover { color:var(--gold); }

/* About */
.about-flex { display:flex; gap:36px; align-items:flex-start; flex-wrap:wrap; }
.about-flex > div { flex:1; min-width:280px; }
.about-flex h3 { font-family:var(--font-display); font-size:1.7rem; margin-bottom:1rem; color:var(--navy);
                 text-transform:none; letter-spacing:-.01em; font-weight:600; }
.about-flex p { color:var(--ink-70); margin-bottom:1rem; }
.cred { display:flex; gap:12px; flex-wrap:wrap; margin-top:1.2rem; }
.cred span { background:#fff; border:1px solid var(--gold); border-radius:2px;
             padding:.5rem 1rem; font-size:.78rem; color:var(--navy); letter-spacing:.04em; }

/* Footer (navy) */
footer { background:var(--navy); padding:3rem 24px; text-align:center; color:var(--cream-light); }
footer .f-brand { font-family:var(--font-display); font-size:1.5rem; margin-bottom:.3rem; font-weight:600; }
footer .f-tag { color:var(--gold-light); font-size:.72rem; letter-spacing:.25em; text-transform:uppercase; }
footer .f-contact { color:#AAB3C0; font-size:.9rem; margin-top:1.1rem; }
footer .f-contact a { color:var(--gold-light); text-decoration:none; }
footer .f-legal { color:#AAB3C0; font-size:.72rem; margin-top:1.2rem; opacity:.8; }

/* Forms */
form label { display:block; font-size:.72rem; letter-spacing:.12em; color:var(--navy);
             margin:1.2rem 0 .4rem; text-transform:uppercase; font-weight:600; }
form input, form select, form textarea { width:100%; padding:.85rem 1rem; border-radius:2px;
             border:1px solid var(--navy-20); background:#fff; color:var(--ink);
             font-size:1rem; font-family:var(--font-body); }
form input:focus, form select:focus, form textarea:focus { outline:none; border-color:var(--gold); }
form textarea { min-height:120px; resize:vertical; }
form button { width:100%; margin-top:1.8rem; padding:1rem; border:none; border-radius:2px;
              background:var(--navy); color:var(--cream-light); font-size:.9rem; font-weight:600;
              letter-spacing:.1em; text-transform:uppercase; cursor:pointer;
              transition:all .3s ease; font-family:var(--font-body); }
form button:hover { background:var(--gold); color:var(--navy); }
.hp { position:absolute; left:-5000px; }
