/* FAZENDA DO LAGO · TELA INTERATIVA v2 · design system com profundidade
   Canon: Resort Sans (Thin 100 / Light 300 / Regular 400) · navy #061B32 · cream #E8E2D2
   Sem dourado, sem terceira cor. Numeração 01/02/03. Motion: GSAP (vendor local). */

@font-face { font-family: 'Resort'; src: url('../assets/fonts/Resort-SansThin.ttf') format('truetype'); font-weight: 100; font-display: block; }
@font-face { font-family: 'Resort'; src: url('../assets/fonts/Resort-SansLight.ttf') format('truetype'); font-weight: 300; font-display: block; }
@font-face { font-family: 'Resort'; src: url('../assets/fonts/Resort-SansRegular.ttf') format('truetype'); font-weight: 400; font-display: block; }

:root {
  --navy: #061B32; --navy-2: #0A2440; --navy-3: #10304F;
  --cream: #E8E2D2;
  --cream-70: rgba(232,226,210,.7); --cream-45: rgba(232,226,210,.45);
  --cream-18: rgba(232,226,210,.18); --cream-08: rgba(232,226,210,.08);
  --ease: cubic-bezier(.22,.8,.26,1);
}

* { margin:0; padding:0; box-sizing:border-box; -webkit-user-select:none; user-select:none; -webkit-tap-highlight-color:transparent; }
/* ---------- parallax 3D global + profundidade de campo ----------
   camadas recebem classe via JS; o ponteiro escreve --mx/--my (-1..1) no body */
body { --mx:0; --my:0; }
.scene { perspective:1500px; }
.pll-far { transform:translate3d(calc(var(--mx)*-16px), calc(var(--my)*-10px), 0) scale(1.05); transition:transform .7s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.pll-mid { transform:translate3d(calc(var(--mx)*9px), calc(var(--my)*6px), 0); transition:transform .55s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.pll-near { transform:translate3d(calc(var(--mx)*20px), calc(var(--my)*13px), 0) rotateY(calc(var(--mx)*1.5deg)) rotateX(calc(var(--my)*-1.1deg)); transition:transform .45s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.dof img { filter:blur(2.2px) saturate(.92); }
/* tipografia 100% Resort Sans, inclusive dentro do container do MapLibre */
.maplibregl-map, .maplibregl-map * { font-family:'Resort','Helvetica Neue',sans-serif !important; }
html, body { height:100%; overflow:hidden; }
body { background:var(--navy); color:var(--cream); font-family:'Resort','Helvetica Neue',sans-serif; font-weight:300; cursor:default; touch-action:manipulation; }
body.sala { cursor:none; }
img { pointer-events:none; }

/* ---------- tipografia ---------- */
.h-display { font-weight:100; font-size:9.5vmin; line-height:.98; letter-spacing:.02em; text-transform:uppercase; }
.h-1 { font-weight:300; font-size:5.4vmin; line-height:1.05; letter-spacing:.08em; text-transform:uppercase; }
.h-2 { font-weight:300; font-size:2.6vmin; letter-spacing:.22em; text-transform:uppercase; }
.kicker { font-weight:400; font-size:1.45vmin; letter-spacing:.42em; text-transform:uppercase; color:var(--cream-45); }
.body { font-weight:300; font-size:2.05vmin; line-height:1.55; letter-spacing:.015em; color:var(--cream-70); }
.num { font-weight:100; font-variant-numeric:tabular-nums; }

/* ---------- profundidade ambiente ---------- */
#bokeh { position:fixed; inset:0; z-index:2; pointer-events:none; }
#bokeh .orb { position:absolute; border-radius:50%; background:radial-gradient(circle, rgba(232,226,210,.16), transparent 70%); filter:blur(8px); will-change:transform; }
#ripple { position:fixed; inset:0; z-index:60; pointer-events:none; mix-blend-mode:screen; }
#grain { position:fixed; inset:0; z-index:70; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); }
#vignette { position:fixed; inset:0; z-index:55; pointer-events:none; background:radial-gradient(120% 100% at 50% 45%, transparent 58%, rgba(2,9,18,.55) 100%); }

/* ---------- cenas ---------- */
.scene { position:fixed; inset:0; display:none; overflow:hidden; z-index:10; will-change:opacity, filter; }
.scene.on { display:block; }
.bg { position:absolute; inset:0; }
.bg img, .bg video { width:100%; height:100%; object-fit:cover; }
.bg.dim img { opacity:.4; filter:blur(10px) saturate(.9); transform:scale(1.06); }
.bg .tint { position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,8,15,.18) 0%, rgba(3,8,15,.06) 45%, rgba(3,8,15,.5) 100%); }
.bg .tint.heavy { background:linear-gradient(180deg, rgba(4,10,18,.55), rgba(4,10,18,.72)); }
.kenburns img { animation:kb 26s ease-in-out infinite alternate; }
@keyframes kb { from { transform:scale(1) translateY(0); } to { transform:scale(1.07) translateY(-1.4%); } }

/* ---------- chrome ---------- */
#chrome { position:fixed; top:0; left:0; right:0; z-index:40; display:flex; align-items:center; justify-content:space-between; padding:3.2vmin 4vmin; opacity:0; visibility:hidden; }
#chrome.on { opacity:1; visibility:visible; transition:opacity .6s var(--ease); }
#chrome .mark { position:absolute; left:50%; top:3vmin; transform:translateX(-50%); text-align:center; }
#chrome .mark img { height:4.6vmin; display:block; margin:0 auto; }
#chrome .mark .ass { margin-top:.9vmin; font-size:1.05vmin; letter-spacing:.5em; color:var(--cream-45); text-transform:uppercase; }

/* ---------- botões (UX touch) ---------- */
.chip { display:inline-flex; align-items:center; gap:1.2vmin; border:1px solid var(--cream-18); border-radius:999px; padding:1.6vmin 2.8vmin; font-size:1.5vmin; letter-spacing:.26em; text-transform:uppercase; color:var(--cream-70); background:rgba(6,27,50,.45); backdrop-filter:blur(10px); transition:border-color .3s, color .3s, background .3s; min-height:6vmin; }
.chip:active { background:var(--cream-18); color:var(--cream); }
.chip.on { background:var(--cream); color:var(--navy); border-color:var(--cream); }
.chip.big { padding:2vmin 3.4vmin; font-size:1.6vmin; }
.chip.destaque { border-color:var(--cream-45); }
.chip .arrow { font-weight:100; font-size:2vmin; line-height:0; }

/* ---------- idle ---------- */
#idle .center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3.4vmin; text-align:center; }
#idle .wordmark { width:44vmin; }
#idle .ass { font-size:1.5vmin; letter-spacing:.58em; color:var(--cream-70); text-transform:uppercase; }
#idle .hint, #dia .hintdrag { position:absolute; bottom:7vmin; left:0; right:0; text-align:center; font-size:1.6vmin; letter-spacing:.42em; text-transform:uppercase; color:var(--cream-45); animation:breathe 4.2s ease-in-out infinite; }
@keyframes breathe { 0%,100% { opacity:.35; } 50% { opacity:.9; } }

/* ---------- home ---------- */
#home .wrap { position:absolute; inset:12vmin 4vmin 4vmin; display:flex; flex-direction:column; gap:2.2vmin; }
#home .grid { flex:1; min-height:0; display:grid; grid-template-columns:repeat(5,1fr); grid-template-rows:repeat(2,1fr); gap:1.4vmin; }
#home .ritualbar { flex:0 0 auto; padding-bottom:.4vmin; }
#home .grid { perspective:1600px; }
.portal { position:relative; border-radius:1.4vmin; overflow:hidden; background:var(--navy-2); box-shadow:0 2.4vmin 6vmin rgba(2,9,18,.55); transform-style:preserve-3d; will-change:transform; }
.portal .glare { position:absolute; inset:0; pointer-events:none; opacity:0; background:radial-gradient(60% 60% at var(--gx,50%) var(--gy,50%), rgba(232,226,210,.14), transparent 70%); }
.portal img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.94; will-change:transform; }
.portal .shade { position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,8,15,.02) 42%, rgba(3,8,15,.74) 100%); }
.portal .tx, .expcard .tx, .filme .tx, .ht-op .t, .portal .ix, .expcard .ix, .portal .pic { text-shadow:0 .2vmin 1.8vmin rgba(2,8,15,.85); }
.portal .tx { position:absolute; left:2.4vmin; right:2.4vmin; bottom:2.2vmin; }
.portal .ix { position:absolute; top:2vmin; left:2.4vmin; font-weight:100; font-size:2.2vmin; color:var(--cream-45); }
.portal .nm { font-weight:300; font-size:2.5vmin; letter-spacing:.12em; text-transform:uppercase; }
.portal .ds { margin-top:.7vmin; font-size:1.35vmin; letter-spacing:.05em; color:var(--cream-45); }
#home .ritualbar { display:flex; justify-content:center; gap:1.5vmin; flex-wrap:wrap; }

/* ---------- painéis genéricos ---------- */
.panelwrap { position:absolute; inset:12vmin 4vmin 4.6vmin; display:flex; gap:4vmin; }
.pane-l { flex:0 0 38%; display:flex; flex-direction:column; justify-content:center; gap:2.4vmin; }
.pane-r { flex:1; position:relative; border-radius:1.4vmin; overflow:hidden; }

/* ---------- conceito (scroll editorial) ---------- */
#conceito .scroller { position:absolute; inset:0; overflow-y:auto; scrollbar-width:none; scroll-snap-type:y proximity; }
#conceito .scroller::-webkit-scrollbar { display:none; }
.cbloco { position:relative; min-height:100vh; display:flex; align-items:center; scroll-snap-align:start; padding:12vmin 8vmin; }
.cbloco .cbg { position:absolute; inset:0; }
.cbloco .cbg img { width:100%; height:100%; object-fit:cover; opacity:.8; will-change:transform, filter; }
.cbloco .cbg::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(3,8,15,.72) 0%, rgba(3,8,15,.3) 55%, rgba(3,8,15,.06) 100%); }
.cbloco .ctx { position:relative; max-width:72vmin; display:flex; flex-direction:column; gap:2.4vmin; }
.cbloco .ctitulo { font-weight:100; font-size:7.4vmin; line-height:1; letter-spacing:.03em; text-transform:uppercase; }
.cbloco:first-child .ctitulo { font-size:8.6vmin; }
.cscroll-hint { position:fixed; bottom:4.6vmin; left:50%; transform:translateX(-50%); font-size:1.3vmin; letter-spacing:.4em; text-transform:uppercase; color:var(--cream-45); animation:breathe 4s infinite; pointer-events:none; }

/* ---------- corumbá ---------- */
#corumba .fatos { display:grid; grid-template-columns:1fr 1fr; gap:2vmin 2.6vmin; }
#corumba .fato .n { font-weight:100; font-size:4.6vmin; line-height:1; }
#corumba .fato .n small { font-size:2vmin; letter-spacing:.1em; }
#corumba .fato .t { margin-top:.6vmin; font-size:1.35vmin; line-height:1.45; color:var(--cream-45); max-width:24vmin; }
#corumba .luas { display:flex; gap:1.6vmin; }
.lua { display:flex; align-items:center; gap:1.4vmin; border:1px solid var(--cream-18); border-radius:1vmin; padding:1.3vmin 1.7vmin; background:rgba(6,27,50,.4); backdrop-filter:blur(8px); }
.lua .moon { width:3vmin; height:3vmin; border-radius:50%; background:var(--cream); box-shadow:0 0 2.4vmin rgba(232,226,210,.5); }
.lua .d { font-size:1.6vmin; letter-spacing:.1em; }
.lua .l { font-size:1.1vmin; letter-spacing:.2em; color:var(--cream-45); text-transform:uppercase; }
.fotostrip { position:absolute; inset:0; display:flex; flex-direction:column; gap:1.2vmin; overflow-y:auto; scrollbar-width:none; }
.fotostrip::-webkit-scrollbar { display:none; }
.fotostrip img { width:100%; height:32vmin; object-fit:cover; border-radius:1.2vmin; flex:0 0 auto; }

/* ---------- localização (maplibre) ---------- */
#mapa-real { position:absolute; inset:0; background:var(--navy); }
#mapa-real .maplibregl-ctrl-attrib { display:none; }
.map-fallback { position:absolute; inset:0; }
.map-fallback svg { width:100%; height:100%; }
.map-painel { position:absolute; top:12vmin; left:4vmin; width:34vmin; display:flex; flex-direction:column; gap:1.8vmin; padding:3vmin; border-radius:1.4vmin; background:rgba(6,27,50,.68); backdrop-filter:blur(18px); border:1px solid var(--cream-08); box-shadow:0 2.4vmin 7vmin rgba(2,9,18,.6); z-index:5; }
.map-painel .citybar { display:flex; flex-direction:column; gap:1vmin; }
.map-painel .citybar .chip { justify-content:space-between; }
.routeinfo { opacity:0; border-top:1px solid var(--cream-08); padding-top:1.6vmin; }
.routeinfo .tt { font-weight:100; font-size:4.6vmin; line-height:1; }
.routeinfo .kk { margin-top:.6vmin; font-size:1.25vmin; letter-spacing:.22em; color:var(--cream-45); text-transform:uppercase; }
.map-attr { position:absolute; bottom:1.4vmin; right:1.8vmin; font-size:1vmin; letter-spacing:.1em; color:var(--cream-45); z-index:5; }
.mk-portal { width:4.6vmin; height:4.6vmin; position:relative; }
.mk-portal .core { position:absolute; inset:35%; border-radius:50%; background:var(--cream); box-shadow:0 0 2vmin rgba(232,226,210,.8); }
.mk-portal .pulse { position:absolute; inset:0; border-radius:50%; border:1px solid var(--cream); animation:pulse 2.6s ease-out infinite; }
@keyframes pulse { 0% { transform:scale(.4); opacity:.9; } 80% { transform:scale(1.15); opacity:0; } 100% { opacity:0; } }
.mk-city { padding:.9vmin 1.6vmin; border-radius:999px; background:rgba(6,27,50,.78); border:1px solid var(--cream-18); color:var(--cream); font-family:'Resort'; font-size:1.3vmin; letter-spacing:.28em; text-transform:uppercase; backdrop-filter:blur(6px); white-space:nowrap; }
.mk-label { margin-top:.8vmin; text-align:center; color:var(--cream); font-family:'Resort'; font-size:1.35vmin; letter-spacing:.3em; text-transform:uppercase; text-shadow:0 0 1.4vmin rgba(2,9,18,.9); white-space:nowrap; }

/* ---------- implantação ---------- */
#masterplan .mapa { flex:1; position:relative; border-radius:1.4vmin; overflow:hidden; background:linear-gradient(180deg, var(--navy-2) 0%, var(--navy) 100%); box-shadow:inset 0 0 8vmin rgba(2,9,18,.5); }
#masterplan .mapa svg { width:100%; height:100%; }
#masterplan .zona-pt circle.halo { animation:halo 3s ease-out infinite; transform-origin:center; }
@keyframes halo { 0% { opacity:.7; transform:scale(.6); } 80% { opacity:0; transform:scale(2.1); } 100% { opacity:0; } }
#masterplan .ficha { flex:0 0 32%; display:flex; flex-direction:column; border-radius:1.4vmin; overflow:hidden; background:var(--navy-2); box-shadow:0 2.4vmin 6vmin rgba(2,9,18,.5); }
#masterplan .ficha .ph { height:38%; position:relative; }
#masterplan .ficha .ph img { width:100%; height:100%; object-fit:cover; }
#masterplan .ficha .bd { flex:1; padding:3vmin; display:flex; flex-direction:column; gap:1.6vmin; }
.badge { display:inline-block; align-self:flex-start; border:1px solid var(--cream-18); border-radius:999px; padding:.8vmin 1.6vmin; font-size:1.1vmin; letter-spacing:.3em; text-transform:uppercase; color:var(--cream-45); }
.badge.hoje { color:var(--navy); background:var(--cream); border-color:var(--cream); }
.disclaimer { position:fixed; bottom:1.6vmin; left:0; right:0; text-align:center; font-size:1.15vmin; letter-spacing:.12em; color:var(--cream-45); z-index:41; }
.chips { display:flex; gap:1.2vmin; flex-wrap:wrap; }

/* ---------- maquete 3d ---------- */
#mq-canvas { position:absolute; inset:0; width:100%; height:100%; touch-action:none; }
.mq-painel { position:absolute; top:12vmin; left:4vmin; padding:2.4vmin 3vmin; border-radius:1.4vmin; background:rgba(6,27,50,.62); backdrop-filter:blur(14px); border:1px solid var(--cream-08); max-width:34vmin; display:flex; flex-direction:column; gap:1.2vmin; z-index:5; }
.mq-ficha { position:absolute; right:4vmin; bottom:6vmin; width:34vmin; padding:2.6vmin; border-radius:1.4vmin; background:rgba(6,27,50,.74); backdrop-filter:blur(16px); border:1px solid var(--cream-08); display:none; flex-direction:column; gap:1.2vmin; z-index:5; }
.mq-ficha.on { display:flex; }

/* ---------- clubs ---------- */
.railhead { position:absolute; top:11.6vmin; left:6vmin; right:6vmin; display:flex; align-items:flex-end; justify-content:space-between; gap:2vmin; z-index:5; }
#clubs .rail { position:absolute; inset:20vmin 0 5vmin; display:flex; gap:2vmin; overflow-x:auto; padding:0 6vmin; scroll-snap-type:x mandatory; align-items:stretch; scrollbar-width:none; }
#clubs .rail::-webkit-scrollbar { display:none; }
.expcard { position:relative; flex:0 0 30vmin; border-radius:1.4vmin; overflow:hidden; scroll-snap-align:center; background:var(--navy-2); box-shadow:0 2vmin 5vmin rgba(2,9,18,.5); }
.expcard img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.94; will-change:transform; }
.expcard .shade { position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(3,8,15,.74) 100%); }
.expcard .tx { position:absolute; left:2.2vmin; right:2.2vmin; bottom:2.2vmin; }
.expcard .ix { position:absolute; top:2vmin; left:2.2vmin; font-weight:100; font-size:2vmin; color:var(--cream-70); }
.expcard .nm { font-size:2.2vmin; letter-spacing:.12em; text-transform:uppercase; }
.expcard .tg { margin-top:.7vmin; font-size:1.35vmin; color:var(--cream-45); line-height:1.4; }
#clubview .tx { position:absolute; left:6vmin; bottom:6vmin; max-width:62vmin; display:flex; flex-direction:column; gap:1.8vmin; }
#clubview .bignum { position:absolute; top:10vmin; right:6vmin; font-weight:100; font-size:22vmin; line-height:1; color:var(--cream-08); }
.clubnav { position:absolute; right:6vmin; bottom:6vmin; display:flex; gap:1.2vmin; z-index:5; }

/* ---------- o dia ---------- */
#dia { perspective:1400px; }
#dia .sky { position:absolute; inset:0; }
#dia .ph { position:absolute; inset:-4vmin; will-change:transform; transform-style:preserve-3d; }
#dia .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.1s var(--ease); }
#dia .ph img.on { opacity:.88; }
#dia #stars { position:absolute; inset:0; pointer-events:none; opacity:0; }
#dia .sunreflex { position:absolute; bottom:0; width:8vmin; height:30vmin; transform:translateX(-50%); pointer-events:none; opacity:0;
  background:linear-gradient(180deg, rgba(232,226,210,.34), rgba(232,226,210,0) 80%); filter:blur(8px); }
#dia .sweep { position:absolute; inset:0; pointer-events:none; opacity:0;
  background:linear-gradient(115deg, transparent 38%, rgba(232,226,210,.1) 50%, transparent 62%); }
#dia .card .hh { overflow:hidden; }
#dia .card .nn .ch { display:inline-block; will-change:transform, filter; }
#dia .phshade { position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,8,15,.08) 0%, rgba(3,8,15,.48) 100%); }
#dia .arc { position:absolute; left:8vmin; right:8vmin; bottom:17vmin; height:34vmin; pointer-events:none; }
#dia .arc svg { width:100%; height:100%; overflow:visible; }
#dia .sun { filter:drop-shadow(0 0 3vmin rgba(232,226,210,.8)); }
#dia .card { position:absolute; left:8vmin; bottom:30vmin; max-width:52vmin; }
#dia .card .hh { font-weight:100; font-size:7vmin; line-height:1; }
#dia .card .nn { margin-top:1vmin; font-size:2.6vmin; letter-spacing:.2em; text-transform:uppercase; }
#dia .card .tt { margin-top:1.4vmin; font-size:1.9vmin; line-height:1.55; color:var(--cream-70); max-width:44vmin; }
#dia .stops { position:absolute; bottom:12.5vmin; left:8vmin; right:8vmin; display:flex; justify-content:space-between; }
#dia .stop { font-size:1.25vmin; letter-spacing:.22em; text-transform:uppercase; color:var(--cream-45); transition:color .4s; text-align:center; }
#dia .stop.on { color:var(--cream); }

/* ---------- galeria ---------- */
.galtabs { display:flex; gap:1.2vmin; }
.galwrap { position:absolute; inset:20vmin 6vmin 4vmin; overflow-y:auto; scrollbar-width:none; }
.galwrap::-webkit-scrollbar { display:none; }
.masonry { columns:4; column-gap:1.5vmin; }
.gfoto { position:relative; break-inside:avoid; margin-bottom:1.5vmin; border-radius:1.2vmin; overflow:hidden; background:var(--navy-2); }
.gfoto img { width:100%; display:block; opacity:1; }
.gfoto .gcap { position:absolute; left:1.6vmin; bottom:1.4vmin; right:1.6vmin; font-size:1.2vmin; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); text-shadow:0 0 1.6vmin rgba(2,9,18,.9); opacity:0; transition:opacity .3s; }
.gfoto:active .gcap { opacity:1; }
.filmes { display:grid; grid-template-columns:1fr 1fr; gap:2vmin; }
.filme { position:relative; border-radius:1.4vmin; overflow:hidden; aspect-ratio:16/9; background:var(--navy-2); }
.filme img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.94; }
.filme .shade { position:absolute; inset:0; background:linear-gradient(180deg, transparent 42%, rgba(3,8,15,.76) 100%); }
.filme .tx { position:absolute; left:3vmin; bottom:3vmin; right:3vmin; }
.filme .nm { font-weight:100; font-size:3.6vmin; text-transform:uppercase; letter-spacing:.04em; }
.filme .sb { margin-top:.7vmin; font-size:1.4vmin; color:var(--cream-45); letter-spacing:.1em; }
.filme .play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:9vmin; height:9vmin; border-radius:50%; border:1px solid var(--cream-45); display:flex; align-items:center; justify-content:center; font-size:2.6vmin; backdrop-filter:blur(6px); background:rgba(6,27,50,.35); }
.filme .badgeprod { position:absolute; top:2.4vmin; right:2.4vmin; }

/* ---------- lightbox / player ---------- */
#lightbox { position:fixed; inset:0; z-index:80; display:none; align-items:center; justify-content:center; background:rgba(2,9,18,.55); }
#lightbox.on { display:flex; }
#lightbox .lb-media { position:relative; max-width:86vw; max-height:78vh; border-radius:1.4vmin; overflow:hidden; box-shadow:0 4vmin 12vmin rgba(2,9,18,.8); }
#lightbox .lb-media img, #lightbox .lb-media video { max-width:86vw; max-height:78vh; display:block; }
#lightbox .lb-cap { position:absolute; bottom:6.4vmin; left:0; right:0; text-align:center; font-size:1.4vmin; letter-spacing:.3em; text-transform:uppercase; color:var(--cream-70); }
#lightbox .lb-close { position:absolute; top:3.4vmin; left:4vmin; }
#lightbox .lb-nav { position:absolute; right:4vmin; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:1.2vmin; }

/* ---------- fundação ---------- */
#fundacao .timeline { flex:1; overflow-y:auto; padding-right:2vmin; scrollbar-width:none; display:flex; flex-direction:column; gap:1.2vmin; }
#fundacao .timeline::-webkit-scrollbar { display:none; }
#fundadores-box { display:flex; flex-direction:column; gap:1.6vmin; border:1px solid var(--cream-18); border-radius:1.4vmin; padding:3vmin; background:rgba(10,36,64,.45); backdrop-filter:blur(10px); }
.evento { display:grid; grid-template-columns:13vmin 1fr auto; gap:2.4vmin; align-items:center; border:1px solid var(--cream-08); border-radius:1.2vmin; padding:2vmin 2.6vmin; background:rgba(10,36,64,.35); backdrop-filter:blur(6px); }
.evento.destaque { border-color:var(--cream-45); background:var(--navy-2); }
.evento .dt .d { font-weight:100; font-size:3.6vmin; line-height:1; }
.evento .dt .w { font-size:1.1vmin; letter-spacing:.3em; text-transform:uppercase; color:var(--cream-45); margin-top:.5vmin; }
.evento .nm { font-size:2vmin; letter-spacing:.1em; text-transform:uppercase; }
.evento .sb { margin-top:.6vmin; font-size:1.45vmin; color:var(--cream-45); line-height:1.45; }
.evento .tp { font-size:1.1vmin; letter-spacing:.26em; text-transform:uppercase; color:var(--cream-45); border:1px solid var(--cream-18); border-radius:999px; padding:.9vmin 1.7vmin; white-space:nowrap; }

/* ---------- manifesto ---------- */
#manifesto .tx { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:0 14vmin; text-align:center; }
#manifesto .par { font-weight:100; font-size:4.2vmin; line-height:1.35; max-width:120vmin; opacity:0; }
#manifesto .par.first { font-size:8vmin; letter-spacing:.04em; }
#manifesto .progress { position:absolute; bottom:6.6vmin; left:0; right:0; display:flex; gap:1vmin; justify-content:center; }
#manifesto .dot { width:.9vmin; height:.9vmin; border-radius:50%; background:var(--cream-18); transition:background .4s; }
#manifesto .dot.on { background:var(--cream); }
#manifesto .final { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.6vmin; opacity:0; visibility:hidden; }
#manifesto .final.on { opacity:1; visibility:visible; transition:opacity 1.2s var(--ease); }
#manifesto .final img { width:40vmin; }
#manifesto .final .ass { font-size:1.4vmin; letter-spacing:.56em; color:var(--cream-70); text-transform:uppercase; }

/* ---------- sua margem ---------- */
#margem .preview { flex:1; border-radius:1.4vmin; overflow:hidden; position:relative; display:flex; align-items:center; justify-content:center; box-shadow:0 2.4vmin 7vmin rgba(2,9,18,.55); }
#margem .preview .bgp { position:absolute; inset:0; }
#margem .preview .bgp img { width:100%; height:100%; object-fit:cover; opacity:.85; }
#margem .preview .bgp .tint { position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,8,15,.25), rgba(3,8,15,.55)); }
#margem .bloco { position:relative; text-align:center; display:flex; flex-direction:column; align-items:center; gap:2vmin; }
#margem .bloco .sym { width:9vmin; }
#margem .bloco .fam { font-weight:100; font-size:6.4vmin; letter-spacing:.1em; text-transform:uppercase; min-height:7vmin; }
#margem .bloco .sub { font-size:1.4vmin; letter-spacing:.5em; text-transform:uppercase; color:var(--cream-70); }
#margem .kb { flex:0 0 44%; display:flex; flex-direction:column; gap:1.2vmin; justify-content:center; }
.krow { display:flex; gap:1.2vmin; justify-content:center; }
.key { flex:0 0 6.4vmin; height:6.4vmin; border:1px solid var(--cream-18); border-radius:1.1vmin; display:flex; align-items:center; justify-content:center; font-size:2.2vmin; color:var(--cream); background:rgba(10,36,64,.4); backdrop-filter:blur(6px); transition:all .15s; }
.key:active { background:var(--cream); color:var(--navy); }
.key.wide { flex:0 0 20.4vmin; font-size:1.4vmin; letter-spacing:.3em; text-transform:uppercase; }

/* ---------- ícones (lucide) ---------- */
.ic { display:inline-flex; width:1.9vmin; height:1.9vmin; flex:0 0 auto; }
.ic svg { width:100%; height:100%; stroke:currentColor; stroke-width:1.6; fill:none; }
.portal .pic { position:absolute; top:2vmin; right:2.2vmin; color:var(--cream-45); }
.portal .pic .ic { width:2.4vmin; height:2.4vmin; }

/* ---------- menu hamburger ---------- */
#menu { position:fixed; inset:0; z-index:85; display:none; flex-direction:column; background:rgba(4,14,26,.72); backdrop-filter:blur(26px); }
#menu.on { display:flex; }
#menu .menu-head { display:flex; align-items:center; justify-content:space-between; padding:3.2vmin 4vmin; }
#menu .menu-head img { height:4.6vmin; }
#menu .menu-lista { flex:1; display:grid; grid-template-columns:repeat(2, 1fr); gap:.4vmin 6vmin; align-content:center; padding:0 14vmin; }
.menu-item { display:flex; align-items:center; gap:2.4vmin; padding:1.7vmin 0; border-bottom:1px solid var(--cream-08); color:var(--cream-70); }
.menu-item .mi-num { font-weight:100; font-size:2vmin; color:var(--cream-45); width:4vmin; }
.menu-item .mi-nm { font-weight:300; font-size:2.8vmin; letter-spacing:.14em; text-transform:uppercase; }
.menu-item .ic { width:2.4vmin; height:2.4vmin; color:var(--cream-45); }
.menu-item:active { color:var(--cream); }

/* ---------- grupo cpr ---------- */
.cpr-nums { display:grid; grid-template-columns:1fr 1fr; gap:2vmin 2.6vmin; }
.cpr-nums .fato .n { font-weight:100; font-size:5vmin; line-height:1; }
.cpr-nums .fato .n small { font-size:2vmin; letter-spacing:.08em; }
.cpr-nums .fato .t { margin-top:.6vmin; font-size:1.35vmin; color:var(--cream-45); }
.cpr-pilares { display:flex; flex-direction:column; gap:1.2vmin; }
.cpr-pilar { border:1px solid var(--cream-08); border-radius:1.2vmin; padding:2.2vmin 2.6vmin; background:rgba(6,27,50,.55); backdrop-filter:blur(10px); }
.cpr-pilar .t { font-size:1.9vmin; letter-spacing:.14em; text-transform:uppercase; }
.cpr-pilar .d { margin-top:.7vmin; font-size:1.45vmin; line-height:1.5; color:var(--cream-45); }
.cpr-obras { display:flex; flex-wrap:wrap; gap:1vmin; }
.cpr-obras .chip { font-size:1.2vmin; padding:1.2vmin 1.8vmin; }

/* ---------- o seu sábado ---------- */
#historia .ht-bg { position:absolute; inset:0; background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%); }
#historia .ht-intro { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.6vmin; text-align:center; }
#historia .ht-jogo { position:absolute; inset:11vmin 5vmin 4vmin; display:none; flex-direction:column; gap:2vmin; }
#historia .ht-hora { font-weight:100; font-size:6vmin; line-height:1; }
#historia .ht-q { font-weight:300; font-size:3.2vmin; letter-spacing:.04em; max-width:100vmin; }
#historia .ht-ops { flex:1; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6vmin; margin-top:1vmin; }
.ht-op { position:relative; border-radius:1.4vmin; overflow:hidden; background:var(--navy-2); box-shadow:0 2vmin 6vmin rgba(2,9,18,.5); will-change:transform; transform-style:preserve-3d; }
.ht-op img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.94; }
.ht-op .shade { position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(3,8,15,.74) 100%); }
.ht-op .t { position:absolute; left:2.6vmin; right:2.6vmin; bottom:2.6vmin; font-size:2.1vmin; letter-spacing:.06em; line-height:1.4; }
#historia .ht-progresso { display:flex; gap:1vmin; justify-content:center; }
#historia .ht-progresso .dot { width:.9vmin; height:.9vmin; border-radius:50%; background:var(--cream-18); }
#historia .ht-progresso .dot.on { background:var(--cream); }
#historia .ht-fim { position:absolute; inset:0; display:none; }
#historia .ht-fim-bg { position:absolute; inset:0; }
#historia .ht-fim-bg img { width:100%; height:100%; object-fit:cover; opacity:.75; }
#historia .ht-fim-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(3,8,15,.78) 0%, rgba(3,8,15,.4) 60%, rgba(3,8,15,.1) 100%); }
#historia .ht-fim-tx { position:absolute; inset:11vmin 40vmin 4vmin 6vmin; display:flex; flex-direction:column; gap:1.8vmin; justify-content:center; }
#historia .ht-perfil { font-size:6.6vmin; }
#historia .ht-perfil-txt { max-width:64vmin; }
#historia .ht-clubs { display:flex; gap:1vmin; flex-wrap:wrap; }
#historia .ht-roteiro { display:flex; gap:1.6vmin; flex-wrap:wrap; margin-top:.6vmin; }
#historia .ht-roteiro .rt { border-left:1px solid var(--cream-18); padding-left:1.2vmin; }
#historia .ht-roteiro .rt .h { font-weight:100; font-size:1.9vmin; }
#historia .ht-roteiro .rt .n { font-size:1.1vmin; letter-spacing:.2em; text-transform:uppercase; color:var(--cream-45); max-width:14vmin; }
#historia .ht-acoes { display:flex; gap:1.2vmin; margin-top:1vmin; }

/* ---------- galeria subtabs ---------- */
.galsubs { display:flex; gap:.8vmin; flex-wrap:wrap; justify-content:flex-end; }
.galsubs .chip { font-size:1.15vmin; padding:1vmin 1.7vmin; min-height:0; }

/* ---------- host / promoter ---------- */
#host { position:fixed; inset:0; z-index:90; background:rgba(2,9,18,.7); backdrop-filter:blur(18px); display:none; align-items:center; justify-content:center; }
#host.on { display:flex; }
#host .box { display:flex; flex-direction:column; gap:2.4vmin; padding:5vmin; border:1px solid var(--cream-18); border-radius:1.6vmin; background:var(--navy); min-width:66vmin; box-shadow:0 4vmin 14vmin rgba(2,9,18,.8); }
#host .row { display:flex; gap:1.2vmin; flex-wrap:wrap; }

/* ---------- sala ---------- */
body.sala #chrome, body.sala .disclaimer, body.sala #idle .hint, body.sala .map-painel, body.sala .mq-painel { display:none !important; }
#salacard { position:fixed; inset:0; z-index:20; display:none; align-items:center; justify-content:center; text-align:center; padding:0 12vmin; }
body.sala #salacard { display:flex; }
