:root { color-scheme: dark; --bg:#090d18; --panel:#151d30; --line:#334362; --text:#f7f7f3; --muted:#9aa8c0; --accent:hsl(36 80% 52%); --mint:#6ee7c8; }
* { box-sizing:border-box; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html,body { min-height:100%; margin:0; }
body { background:radial-gradient(circle at 75% 5%,#25314d 0,var(--bg) 42rem); color:var(--text); font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
a { color:inherit; }
.presentation-shell { min-height:100vh; display:grid; grid-template-rows:auto 1fr auto; }
.presentation-bar { display:flex; align-items:center; gap:1rem; padding:1rem clamp(1rem,4vw,4rem); border-bottom:1px solid var(--line); background:rgba(9,13,24,.85); backdrop-filter:blur(14px); }
.presentation-brand { margin-right:auto; color:var(--accent); font-size:.8rem; font-weight:900; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.presentation-search { width:min(18rem,36vw); }
.presentation-search input { width:100%; padding:.6rem .8rem; border:1px solid var(--line); border-radius:.65rem; background:#0d1322; color:var(--text); font:inherit; font-size:.8rem; }
.presentation-nav { display:flex; gap:.45rem; align-items:center; }
.presentation-nav a { padding:.55rem .7rem; border-radius:.5rem; color:var(--muted); font-size:.76rem; text-decoration:none; }
.presentation-nav a:hover { color:var(--text); background:var(--panel); }
.slides { position:relative; width:min(100% - 2rem,1100px); margin:auto; padding:clamp(2rem,7vh,6rem) 0; }
.slide { display:none; min-height:min(65vh,650px); align-content:center; animation:slide-in .45s ease both; }
.slide.active { display:grid; }
.slide[hidden] { display:none; }
.slide-kicker { margin-bottom:1rem; color:var(--accent); font-size:.76rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
h1 { max-width:900px; margin:0 0 1.25rem; font-size:clamp(3rem,8vw,7.5rem); letter-spacing:-.08em; line-height:.92; }
h2 { max-width:850px; margin:0 0 1rem; font-size:clamp(2rem,5vw,4.6rem); letter-spacing:-.07em; line-height:1; }
p, li { max-width:700px; color:var(--muted); font-size:clamp(1rem,1.7vw,1.3rem); line-height:1.55; }
.lead { max-width:720px; font-size:clamp(1.2rem,2.3vw,1.7rem); }
.slide em { color:var(--accent); font-style:normal; }
.slide-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.slide-card { padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:rgba(21,29,48,.78); }
.slide-card strong { display:block; margin-bottom:.45rem; color:var(--text); font-size:1.1rem; }
.slide-card p { margin:0; font-size:1rem; }
.city-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.55rem; max-width:760px; margin-top:1.5rem; }
.city-tile { padding:1rem .6rem; border:1px solid var(--line); border-radius:.6rem; background:#111a2b; color:var(--muted); font-size:.78rem; }
.city-tile.is-lit { border-color:var(--mint); background:rgba(110,231,200,.15); color:var(--mint); }
.controls { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem clamp(1rem,4vw,4rem); border-top:1px solid var(--line); color:var(--muted); font-size:.75rem; }
.controls button { padding:.55rem .8rem; border:1px solid var(--line); border-radius:.55rem; background:var(--panel); color:var(--text); cursor:pointer; font:inherit; }
.controls button:hover { border-color:var(--accent); }
.slide-number { color:var(--accent); font-variant-numeric:tabular-nums; }
.presentation-index { width:min(100% - 2rem,1000px); margin:auto; padding:clamp(3rem,10vh,8rem) 0; }
.presentation-index .slide-card { display:block; text-decoration:none; transition:transform .2s,border-color .2s; }
.presentation-index .slide-card:hover { border-color:var(--accent); transform:translateY(-3px); }
.presentation-index .slide-card p { font-size:.95rem; }
@keyframes slide-in { from { opacity:0; transform:translateY(1rem); } to { opacity:1; transform:none; } }
@media (max-width:700px) { .presentation-bar { flex-wrap:wrap; } .presentation-search { order:3; width:100%; } .presentation-nav { display:none; } .slide-grid { grid-template-columns:1fr; } .city-grid { grid-template-columns:repeat(2,1fr); } .controls { position:sticky; bottom:0; background:rgba(9,13,24,.9); } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
