:root{
  --navy:#101c34; --navy2:#1c2e52; --navy3:#243a66;
  --gold:#d6ab5c; --gold-dk:#b08a3e; --cream:#f6f0e4; --muted:#b2bacc; --ink:#0b1426;
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --sans:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--navy);color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--gold)}
img{display:block;max-width:100%}
button{font:inherit}

.demo-ribbon{background:var(--gold);color:var(--ink);text-align:center;font-size:13px;padding:7px 12px;font-weight:600}
.demo-ribbon a{color:var(--ink);text-decoration:underline}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:linear-gradient(var(--navy),rgba(16,28,52,.85));position:sticky;top:0;z-index:20;backdrop-filter:blur(8px)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--cream)}
.brand-mark{width:44px;height:44px;border-radius:10px}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-family:var(--serif);font-size:19px;font-weight:600}
.brand-text em{font-style:normal;color:var(--gold);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.topnav{display:flex;gap:6px}
.topnav a{color:var(--cream);text-decoration:none;padding:8px 14px;border-radius:999px;font-size:14px}
.topnav a:hover{background:rgba(255,255,255,.08)}
.topnav a.give{background:var(--gold);color:var(--ink);font-weight:600}

.hero{position:relative;min-height:62vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--navy2)}
.hero-art{position:absolute;inset:0;background:center/cover no-repeat;filter:brightness(.55) saturate(.9);transform:scale(1.03)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,28,52,.1) 0%,rgba(16,28,52,.55) 55%,var(--navy) 100%)}
.hero-body{position:relative;z-index:1;padding:40px 20px 36px;max-width:820px}
.hero-kicker{margin:0 0 8px;color:var(--gold);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.hero h1{margin:0 0 10px;font-family:var(--serif);font-weight:600;font-size:clamp(30px,5.5vw,56px);line-height:1.08}
.hero-meta{margin:0 0 12px;color:var(--muted);font-size:14px}
.hero-desc{margin:0 0 20px;font-size:16px;line-height:1.55;max-width:60ch;color:#e6e1d6}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;gap:6px;padding:12px 22px;border-radius:999px;border:1px solid transparent;text-decoration:none;cursor:pointer;font-weight:600;font-size:15px;color:var(--cream);background:rgba(255,255,255,.1)}
.btn.primary{background:var(--gold);color:var(--ink)}
.btn.primary:hover{background:#e3bb6f}
.btn.ghost{border-color:rgba(255,255,255,.25);background:transparent}
.btn.ghost:hover{background:rgba(255,255,255,.08)}
.icon-btn{background:rgba(0,0,0,.5);color:#fff;border:0;width:42px;height:42px;border-radius:50%;font-size:24px;cursor:pointer;display:grid;place-items:center}

.rows{padding:10px 0 30px}
.row{padding:18px 0 6px}
.row h2{margin:0 20px 12px;font-family:var(--serif);font-weight:600;font-size:22px}
.row h2 small{display:block;font-family:var(--sans);font-weight:500;font-size:12px;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.strip{display:flex;gap:14px;overflow-x:auto;padding:4px 20px 14px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.card{flex:0 0 280px;scroll-snap-align:start;background:var(--navy2);border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.06);cursor:pointer;text-align:left;padding:0;color:inherit;transition:transform .18s,border-color .18s}
.card:hover,.card:focus-visible{transform:translateY(-3px);border-color:var(--gold);outline:none}
.card .art{aspect-ratio:16/9;background:center/cover no-repeat var(--navy3);position:relative}
.card .art .dur{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.65);font-size:11px;padding:2px 7px;border-radius:6px}
.card .meta{padding:10px 12px 12px}
.card .meta strong{display:block;font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.25}
.card .meta span{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.card .meta .prog{height:3px;background:rgba(255,255,255,.12);border-radius:2px;margin-top:8px;overflow:hidden}
.card .meta .prog i{display:block;height:100%;background:var(--gold)}

.visit{padding:30px 20px 40px;background:var(--navy2)}
.visit-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:1000px;margin:0 auto}
.visit h2{font-family:var(--serif);font-weight:600;margin:0 0 8px}
.visit p{margin:0 0 8px;line-height:1.5;color:#e6e1d6}
.tiny{font-size:12px;color:var(--muted)}
.sitefoot{padding:22px 20px 40px;text-align:center;color:var(--muted);font-size:13px}
.sitefoot p{margin:4px 0}

.sheet{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet-scrim{position:absolute;inset:0;background:rgba(5,9,20,.75)}
.sheet-card{position:relative;background:var(--navy2);width:min(720px,100%);max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.5)}
.sheet-close{position:absolute;top:10px;right:10px;z-index:2}
.sheet-art{aspect-ratio:16/9;background:center/cover no-repeat var(--navy3)}
.sheet-body{padding:18px 20px 28px}
.sheet-kicker{margin:0 0 6px;color:var(--gold);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.sheet-body h2{margin:0 0 6px;font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.15}
.sheet-meta{margin:0 0 12px;color:var(--muted);font-size:13px}
.sheet-desc{margin:0 0 18px;line-height:1.55;color:#e6e1d6}
.sheet-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.sheet-licence{font-size:12px;color:var(--muted);margin:0}
@media (min-width:720px){.sheet{align-items:center}.sheet-card{border-radius:18px}}

.player{position:fixed;inset:0;z-index:50;background:#000;display:flex;flex-direction:column}
.player video{flex:1;width:100%;height:100%;object-fit:contain;background:#000}
.player-close{position:absolute;top:12px;left:12px;z-index:2}
.player-title{position:absolute;top:18px;left:64px;right:16px;margin:0;font-family:var(--serif);font-weight:600;font-size:18px;text-shadow:0 1px 6px #000;pointer-events:none}
.player-error{position:absolute;left:0;right:0;bottom:70px;text-align:center;margin:0;padding:10px 20px;color:#ffd7d7}
.loading{padding:40px 20px;text-align:center;color:var(--muted)}

[hidden]{display:none !important}
