:root{--bg:#0D0E0C;--surface:#171815;--line:#2A2B27;--line2:#1F201C;--line3:#3A3B36;--text:#EDEBE4;--text2:#B9B7AE;--text3:#CFCDC4;--muted:#9A988F;--accent:#FF5A36;--accent-text:#FF5A36;--night:#8FA3C7;--btn-bg:#EDEBE4;--btn-fg:#0D0E0C;--map:#141512;--osd:#F4F2EC;--display:'Bricolage Grotesque',system-ui,sans-serif;--body:Geist,system-ui,sans-serif;--mono:'Geist Mono',ui-monospace,monospace;color-scheme:dark}
:root[data-theme=light]{--bg:#F4F2EC;--surface:#EAE7DF;--line:#DAD7CE;--line2:#E3E0D7;--line3:#C9C6BC;--text:#151612;--text2:#45443F;--text3:#2E2D29;--muted:#6A6860;--accent-text:#C2401F;--night:#3D5A8C;--btn-bg:#151612;--btn-fg:#F4F2EC;--map:#ECE9E1;color-scheme:light}
@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#F4F2EC;--surface:#EAE7DF;--line:#DAD7CE;--line2:#E3E0D7;--line3:#C9C6BC;--text:#151612;--text2:#45443F;--text3:#2E2D29;--muted:#6A6860;--accent-text:#C2401F;--night:#3D5A8C;--btn-bg:#151612;--btn-fg:#F4F2EC;--map:#ECE9E1;color-scheme:light}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:15px;line-height:1.5}
a{color:var(--text)}a:hover{color:var(--accent-text)}
img{max-width:100%;display:block}
.wrap{max-width:1360px;margin:0 auto;padding:0 32px}
@media (max-width:640px){.wrap{padding:0 16px}}
.mono{font-family:var(--mono)}
.eyebrow{margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.eyebrow.hot{color:var(--accent-text)}.eyebrow.cool{color:var(--night)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* header */
.hdr{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:20}
.hdr .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding-top:14px;padding-bottom:14px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.03em;color:var(--text)}
.dot{width:10px;height:10px;border-radius:50%;background:var(--accent);display:inline-block}
.nav{display:flex;flex-wrap:wrap;gap:6px 20px;flex:1 1 380px;font-size:14px}
.nav a{text-decoration:none}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:0 14px;height:40px;width:240px;max-width:100%}
.search input{background:transparent;border:0;outline:0;color:var(--text);font:inherit;font-size:14px;width:100%}
.search svg{flex:none;stroke:var(--muted)}
.pill{flex:none;white-space:nowrap;height:40px;min-width:40px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text);font-family:var(--mono);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.pill:hover{border-color:var(--line3)}
.lang{position:relative}
.lang summary{list-style:none}.lang summary::-webkit-details-marker{display:none}
.lang ul{position:absolute;right:0;top:46px;margin:0;padding:6px;list-style:none;background:var(--bg);border:1px solid var(--line);border-radius:10px;min-width:160px;z-index:30}
.lang li a{display:block;padding:8px 12px;border-radius:6px;text-decoration:none;font-size:14px}
.lang li a:hover,.lang li a[aria-current]{background:var(--surface)}
.favlink .n{font-size:11px;color:var(--accent-text)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:999px;background:var(--btn-bg);color:var(--btn-fg);text-decoration:none;font-weight:600;border:1px solid var(--btn-bg);font:inherit;font-weight:600;cursor:pointer}
.btn:hover{color:var(--btn-fg);opacity:.9}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--line3)}
.btn.sm{height:44px;padding:0 18px;font-size:14px}
/* hero */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;align-items:end;padding-top:40px}
.hero h1{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(44px,6vw,76px);line-height:.95;letter-spacing:-.04em}
.hero p.sub{margin:0;max-width:440px;color:var(--text2);font-size:17px}
.hero .copy{display:flex;flex-direction:column;gap:20px;padding-bottom:8px}
.row{display:flex;flex-wrap:wrap;gap:10px}
/* frames */
.frame{position:relative;aspect-ratio:16/9;border-radius:4px;overflow:hidden;color:var(--osd);background:#2B2D3F}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.frame::after{content:"";position:absolute;inset:10px;border:1px solid rgba(237,235,228,.16);pointer-events:none}
.frame .shade{position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.35),transparent 30%,transparent 70%,rgba(0,0,0,.4))}
.osd{position:absolute;font-family:var(--mono);font-size:12px;z-index:2;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.osd.tl{top:18px;left:18px;display:flex;gap:8px;align-items:center}.osd.tr{top:18px;right:18px}.osd.bl{bottom:16px;left:18px;font-size:11px;opacity:.8}.osd.br{bottom:16px;right:18px;font-size:11px;opacity:.6}
.badge{display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:#0D0E0C;padding:2px 6px;border-radius:3px;font-weight:500;font-size:11px;text-shadow:none}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:#0D0E0C}
.badge.off{background:#55554F;color:#EDEBE4}.badge.off::before{background:#EDEBE4}
.frame.big .osd.tl{top:30px;left:30px}.frame.big .osd.tr{top:30px;right:30px;font-size:13px}.frame.big .osd.bl{bottom:28px;left:30px}.frame.big .osd.br{bottom:28px;right:30px}.frame.big::after{inset:18px}
.playbtn{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;border:1px solid rgba(237,235,228,.7);background:rgba(13,14,12,.35);display:flex;align-items:center;justify-content:center;color:#EDEBE4;cursor:pointer;z-index:3}
.playbtn:hover{background:var(--accent);border-color:var(--accent)}
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:4}
/* tiles */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px 20px}
.tile{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;position:relative}
.tile:hover .frame{outline:1px solid var(--accent)}
.tile .meta{display:flex;justify-content:space-between;gap:10px}
.tile .meta b{font-weight:600}.tile .meta span.p{color:var(--muted);font-size:14px;display:block}
.tile .cat{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;white-space:nowrap}
.fav{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:#EDEBE4;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center}
.tile .fav{top:auto;bottom:46px}
.fav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.fav[aria-pressed=true] svg{fill:var(--accent);stroke:var(--accent)}
/* sections */
.sec{margin-top:80px}
.sec-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:24px}
.sec-h h2,.h2{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.03em;line-height:1.05}
.cats{margin-top:72px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.cats a{display:flex;flex-direction:column;gap:28px;padding:22px 20px 20px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-decoration:none}
.cats a:hover{background:var(--surface)}
.cats .n{font-family:var(--mono);font-size:12px;color:var(--muted)}
.cats .t{display:flex;justify-content:space-between;align-items:baseline}
.cats .t b{font-family:var(--display);font-weight:600;font-size:26px;letter-spacing:-.02em}
.countries{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.countries a{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line2);text-decoration:none}
.countries a span:last-child,.count{font-family:var(--mono);font-size:12px;color:var(--muted)}
.empty{color:var(--muted);padding:24px 0}
/* camera page */
.crumbs{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;padding-top:28px}
.crumbs a{color:var(--muted);text-decoration:none}
.title-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin:14px 0 24px}
.title-row h1{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(38px,5vw,56px);line-height:1;letter-spacing:-.035em}
.title-row p{margin:6px 0 0;color:var(--text2);font-size:17px}
.split{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.split .main{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:16px}
.split aside{flex:1 1 300px;display:flex;flex-direction:column;gap:16px}
.note{margin:0;font-size:13px;color:var(--muted)}
.card{border:1px solid var(--line);border-radius:6px;padding:20px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.stat .k{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:block}
.stat .v{font-family:var(--display);font-weight:600;font-size:30px}
.stat .v.s{font-family:var(--mono);font-size:16px;font-weight:400}
.about{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;border-top:1px solid var(--line);padding-top:28px;margin-top:24px}
.about .txt{color:var(--text3);font-size:16px;max-width:640px}
.about .txt p{margin:0 0 14px}
.map{position:relative;height:240px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background-color:var(--map);background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:32px 32px}
.map .pin{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(255,90,54,.25)}
.map .lbl{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:11px;color:var(--muted)}
.map a.open{position:absolute;right:14px;bottom:8px;font-size:13px}
.list a{display:flex;justify-content:space-between;padding:6px 0;text-decoration:none}
/* listing page */
.page-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin:14px 0 28px}
.page-h h1{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(52px,7vw,88px);line-height:.9;letter-spacing:-.045em}
.page-h p{margin:8px 0 0;color:var(--text2);font-size:17px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line3);background:transparent;color:var(--text);font:inherit;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.chip[aria-pressed=true],.chip[aria-current]{background:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-bg)}
.prose{max-width:720px;color:var(--text3);font-size:16px}
.prose h1{font-family:var(--display);font-size:48px;letter-spacing:-.03em;color:var(--text);line-height:1}
/* footer */
.ftr{margin-top:112px;border-top:1px solid var(--line)}
.ftr .wrap{padding-top:36px;padding-bottom:48px;display:flex;flex-wrap:wrap;gap:24px 32px;justify-content:space-between}
.ftr p{margin:8px 0 0;color:var(--muted);font-size:13px;max-width:560px}
.ftr nav{display:flex;flex-wrap:wrap;gap:20px;font-size:14px}.ftr nav a{text-decoration:none}
.ftr .langs{flex-basis:100%;display:flex;flex-wrap:wrap;gap:16px;font-family:var(--mono);font-size:12px}
.ftr .langs a{color:var(--muted);text-decoration:none}.ftr .langs a[aria-current]{color:var(--text)}
[hidden]{display:none!important}
@media (max-width:760px){
.hdr{position:static}
.hdr .wrap{gap:10px 12px}
.logo{order:1;margin-right:auto}
.tools{order:2;flex:1 1 100%;flex-wrap:nowrap}
.tools .search{flex:1 1 auto;width:auto;min-width:0}
.nav{order:3;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap;padding-bottom:2px}
.nav::-webkit-scrollbar{display:none}
.hero{padding-top:24px;gap:28px}
.sec{margin-top:56px}.cats{margin-top:48px}
}
