/* nexus.css — design system compartilhado por todas as páginas do site.
   Tokens, base, navegação, rodapé, cabeçalhos de página, botões, formulários,
   modais, toast, estados (vazio/carregando) e lightbox. Cada página só define
   o CSS específico dela. O Modo Venom (venom.js) sobrescreve os tokens. */

:root{
  --red:#e8220a;
  --red-hover:#ff2a10;
  --red-dim:#a01a07;
  --red-glow:rgba(232,34,10,0.2);
  --red-mid:rgba(232,34,10,0.08);
  --red-soft:rgba(232,34,10,0.12);
  --red-line:rgba(232,34,10,0.3);
  --on-red:#fff;
  --ok:#3dbb80;
  --ok-soft:rgba(61,187,128,0.08);
  --ok-line:rgba(61,187,128,0.3);
  --warn:#f5c542;
  --warn-soft:rgba(245,197,66,0.08);
  --warn-line:rgba(245,197,66,0.3);
  --bg:#080808;
  --bg2:#111;
  --bg3:#191919;
  --bg4:#222;
  --border:rgba(255,255,255,0.07);
  --border-s:rgba(255,255,255,0.13);
  --text:#ede9e3;
  --text2:#9a958f;
  --text3:#85807a;
  --glass:rgba(8,8,8,0.9);
  --radius:14px;
  --radius-sm:8px;
  --radius-xs:5px;
  --tr:0.28s cubic-bezier(0.4,0,0.2,1);
  --nav-h:57px;
  --f-display:'Bebas Neue',sans-serif;
  --f-body:'Barlow',sans-serif;
  --f-cond:'Barlow Condensed',sans-serif;
  --f-mono:'DM Mono',monospace;
}

/* ── BASE ─────────────────────────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--f-body);font-weight:300;line-height:1.6;min-height:100vh;overflow-x:hidden;display:flex;flex-direction:column;}
body>main{flex:1;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:0.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
img{max-width:100%;}
button{font:inherit;}
a{color:inherit;}
::selection{background:var(--red);color:var(--on-red);}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px;}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
[hidden]{display:none!important;}
.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;}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--red-line);}50%{box-shadow:0 0 0 6px transparent;}100%{box-shadow:0 0 0 0 transparent;}}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* Quem pediu "reduzir movimento" no sistema continua vendo esmaecimentos
   suaves, mas sem deslizar, dar zoom, flutuar ou pulsar. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  @keyframes rise{from{opacity:0}to{opacity:1}}
  @keyframes fadeUp{from{opacity:0}to{opacity:1}}
  .nav-pulse,.mouse-wheel,.carr-icon,.skeleton,.hero-photo,.home-slide.on{animation:none!important;}
  .hero-photo,.home-slide{transform:none!important;}
  .card-hover:hover,.btn-primary:hover,.foto-card:hover,.cta-card:hover,.nav-card:hover{transform:none!important;}
}

/* ── ÍCONES ───────────────────────────────────────────────────────── */
.ic{width:1em;height:1em;flex-shrink:0;display:inline-block;vertical-align:-0.125em;}
i[data-icon]{display:inline-block;width:1em;height:1em;}

/* ── NAV ──────────────────────────────────────────────────────────── */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 40px;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;}
.nav-pulse{width:7px;height:7px;border-radius:50%;background:var(--red);animation:pulse-ring 2.5s ease-in-out infinite;}
.nav-logo img{height:32px;width:auto;object-fit:contain;}
.nav-links{display:flex;align-items:center;gap:26px;}
.nav-link{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text2);text-decoration:none;transition:color var(--tr);position:relative;}
.nav-link:hover{color:var(--text);}
.nav-link.active{color:var(--text);}
.nav-link.active::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--red);}
.nav-link .ic{font-size:0.9rem;}
.nav-rifa{color:var(--red)!important;border:1px solid var(--red-line);padding:5px 12px;border-radius:999px;}
.nav-rifa:hover{background:var(--red-soft);}
.nav-rifa.active::after{display:none;}
.nav-hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:38px;height:38px;background:none;border:1px solid var(--border-s);border-radius:var(--radius-sm);cursor:pointer;padding:8px;}
.nav-hamburger span{display:block;width:16px;height:1.5px;background:var(--text2);transition:all var(--tr);transform-origin:center;}
.nav-hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.nav-hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ── FOOTER ───────────────────────────────────────────────────────── */
.site-footer{border-top:1px solid var(--border);background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);color:var(--text3);position:relative;}
.footer-top{max-width:1080px;margin:0 auto;padding:56px 24px 40px;display:grid;grid-template-columns:1.1fr 0.7fr 1.2fr;gap:40px;}
.footer-brand img{height:44px;width:auto;margin-bottom:14px;}
.footer-brand p{font-size:0.9rem;color:var(--text2);line-height:1.7;max-width:280px;margin-bottom:18px;}
.footer-titulo{font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--text);margin-bottom:16px;}
.footer-nav{display:flex;flex-direction:column;gap:10px;}
.footer-nav a{color:var(--text2);text-decoration:none;font-size:0.92rem;transition:color var(--tr);width:fit-content;}
.footer-nav a:hover{color:var(--text);}
.footer-social{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.footer-social a{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-s);border-radius:50%;color:var(--text2);transition:all var(--tr);font-size:0.95rem;}
.footer-social a:hover{color:var(--text);border-color:var(--text3);}
.footer-avisos p{font-size:0.88rem;color:var(--text2);line-height:1.6;margin-bottom:14px;}
.footer-avisos .linha{display:flex;gap:8px;}
.footer-avisos .input{flex:1;min-width:0;}
.footer-avisos .ok{display:flex;align-items:center;gap:8px;color:var(--ok);font-size:0.9rem;}
.footer-avisos .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.footer-bottom{max-width:1080px;margin:0 auto;padding:18px 24px 26px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.06em;}
.footer-credit{color:var(--text3);}

@media(max-width:768px){
  .site-nav{padding:10px 20px;}
  .nav-links{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;padding:12px 20px 18px;gap:0;z-index:99;}
  .nav-links.open{display:flex;}
  .nav-link{padding:14px 0;border-bottom:1px solid var(--border);font-size:0.74rem;}
  .nav-link.active::after{display:none;}
  .nav-link.active{color:var(--red);}
  .nav-rifa{border:none;border-bottom:1px solid var(--border);padding:14px 0;border-radius:0;background:none!important;}
  .nav-hamburger{display:flex;}
  .footer-top{grid-template-columns:1fr;gap:32px;padding:44px 20px 32px;}
  .footer-nav{flex-direction:row;flex-wrap:wrap;gap:10px 18px;}
  .footer-bottom{padding:16px 20px 22px;}
}

/* ── CABEÇALHO DE PÁGINA ──────────────────────────────────────────── */
.page-hero{min-height:46vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:140px 24px 56px;position:relative;overflow:hidden;}
.page-hero::after,.grid-bg::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 0%,transparent 100%);mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 0%,transparent 100%);}
.hero-orb{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;width:520px;height:520px;background:var(--red);opacity:0.08;top:-180px;left:-120px;}
.hero-orb.right{left:auto;right:-120px;}
.page-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--text2);margin-bottom:16px;position:relative;z-index:1;opacity:0;animation:rise 0.7s 0.1s forwards;}
.page-eyebrow::before,.page-eyebrow::after{content:'';width:18px;height:2px;background:var(--red);}

/* Foto de fundo no topo das páginas: <header class="page-hero has-photo"
   style="--hero-sm:url(...);--hero-lg:url(...)"><div class="hero-photo"></div> */
.hero-photo{position:absolute;inset:0;background-image:var(--hero-sm);background-size:cover;background-position:center 38%;filter:grayscale(0.3) contrast(1.08) brightness(0.9);transform:scale(1.06);animation:heroZoom 16s ease-out forwards;}
@media(min-width:769px){.hero-photo{background-image:var(--hero-lg);}}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,8,0.7) 0%,rgba(8,8,8,0.55) 40%,rgba(8,8,8,0.85) 85%,var(--bg) 100%),radial-gradient(ellipse at 50% 45%,transparent 0%,rgba(0,0,0,0.55) 100%);}
@keyframes heroZoom{to{transform:scale(1);}}
.page-hero.has-photo{min-height:56vh;}
.page-hero.has-photo + .container{padding-top:32px;}
.page-hero.has-photo .page-eyebrow,.page-hero.has-photo .page-sub{color:rgba(255,255,255,0.82);}
.page-hero.has-photo .page-title{text-shadow:0 4px 40px rgba(0,0,0,0.6);}
/* grão de filme por cima da foto (no lugar da grade) */
.page-hero.has-photo::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");background-size:200px 200px;opacity:0.14;mix-blend-mode:overlay;-webkit-mask-image:none;mask-image:none;z-index:1;}
/* borda "rasgada" na base, ligando a foto ao resto da página */
.torn::before,.page-hero.has-photo::before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:26px;background:var(--bg);z-index:2;pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath d='M0 26V13l12 4 10-9 12 6 12-9 12 7 12-3 10 7 14-9 12 6 12-9 12 7 14-3 12 7 12-9 12 6 12-3 12 8 12-10 12 6 12-3v15z'/%3E%3C/svg%3E") bottom/240px 26px repeat-x;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath d='M0 26V13l12 4 10-9 12 6 12-9 12 7 12-3 10 7 14-9 12 6 12-9 12 7 14-3 12 7 12-9 12 6 12-3 12 8 12-10 12 6 12-3v15z'/%3E%3C/svg%3E") bottom/240px 26px repeat-x;}
.page-title{font-family:var(--f-display);font-weight:400;font-size:clamp(4rem,12vw,9rem);line-height:0.88;color:var(--text);position:relative;z-index:1;opacity:0;animation:rise 0.7s 0.2s forwards;}
.page-sub{font-family:var(--f-cond);font-size:clamp(0.85rem,2vw,1rem);color:var(--text2);letter-spacing:0.15em;text-transform:uppercase;margin-top:14px;position:relative;z-index:1;opacity:0;animation:rise 0.7s 0.3s forwards;}

/* ── LAYOUT / SEÇÕES ──────────────────────────────────────────────── */
.container{max-width:1080px;margin:0 auto;padding:0 24px 112px;}
.container-narrow{max-width:900px;}
.section{margin-bottom:80px;}
.section:last-child{margin-bottom:0;}
.sec-eyebrow{font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--text2);margin-bottom:14px;display:flex;align-items:center;gap:12px;}
.sec-eyebrow::before{content:'';width:14px;height:2px;background:var(--red);flex:none;}
.sec-eyebrow::after{content:'';flex:1;height:1px;background:var(--border);}
.sec-title{font-family:var(--f-display);font-weight:400;font-size:clamp(2.5rem,5vw,4.5rem);letter-spacing:0.04em;line-height:0.92;margin-bottom:32px;color:var(--text);}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:32px;}
.sec-head .sec-title{margin-bottom:0;}
.sec-title.sm{font-size:clamp(1.9rem,3.6vw,2.8rem);margin-bottom:24px;}
.sec-note{font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.08em;color:var(--text3);margin:-18px 0 22px;display:flex;align-items:center;gap:8px;}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--tr),transform var(--tr),box-shadow var(--tr);}
.card-hover:hover{border-color:var(--border-s);transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,0.35);}

/* ── BOTÕES ───────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-sm);border:1px solid transparent;font-family:var(--f-display);font-size:1rem;letter-spacing:0.12em;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:all var(--tr);background:none;color:var(--text);}
.btn .ic{font-size:1.05em;}
.btn:disabled,.btn[aria-disabled="true"]{opacity:0.4;cursor:not-allowed;transform:none!important;box-shadow:none!important;}
.btn-primary{background:var(--red);border-color:var(--red);color:var(--on-red);}
.btn-primary:hover:not(:disabled){background:var(--red-hover);border-color:var(--red-hover);transform:translateY(-2px);box-shadow:0 10px 28px var(--red-glow);}
.btn-outline{border-color:var(--border-s);color:var(--text2);}
.btn-outline:hover:not(:disabled){border-color:var(--text);color:var(--text);}
.btn-outline.is-accent:hover:not(:disabled){border-color:var(--red);color:var(--red);}
.btn-outline.is-danger:hover:not(:disabled){border-color:var(--red-dim);color:var(--red);}
.btn-outline.is-ok{border-color:var(--ok-line);color:var(--ok);}
.btn-sm{font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;padding:8px 14px;gap:6px;}
.btn-sm .ic{font-size:0.85rem;}
.btn-lg{padding:15px 34px;font-size:1.05rem;}
.btn-block{width:100%;}
.btn-icon{width:38px;height:38px;padding:0;border-radius:50%;border:1px solid var(--border-s);background:var(--bg3);color:var(--text2);font-size:1rem;}
.btn-icon:hover:not(:disabled){border-color:var(--red);color:var(--red);}
.btn-icon.sm{width:30px;height:30px;font-size:0.85rem;}
.link-arrow{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text2);text-decoration:none;transition:color var(--tr),gap var(--tr);}
.link-arrow:hover{color:var(--red);gap:10px;}

/* ── TAGS / BADGES ────────────────────────────────────────────────── */
.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:0.72rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--border-s);color:var(--text3);white-space:nowrap;}
.tag .ic{font-size:0.8rem;}
.tag-accent{color:var(--red);border-color:var(--red-line);background:var(--red-soft);}
.tag-solid{color:var(--on-red);border-color:var(--red);background:var(--red);}
.tag-ok{color:var(--ok);border-color:var(--ok-line);background:var(--ok-soft);}
.tag-warn{color:var(--warn);border-color:var(--warn-line);background:var(--warn-soft);}
.tag-muted{color:var(--text3);border-color:var(--border);background:transparent;}

/* ── FORMULÁRIOS ──────────────────────────────────────────────────── */
.fg{margin-bottom:14px;}
.fg>label,.fg-label{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--text2);margin-bottom:7px;}
.input,.fg input:not([type=checkbox]):not([type=radio]):not([type=file]),.fg select,.fg textarea{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;color:var(--text);font-family:var(--f-body);font-size:0.92rem;outline:none;transition:border-color var(--tr);}
.fg textarea{resize:vertical;min-height:84px;line-height:1.6;}
.input:focus,.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--red);}
.fg input::placeholder,.fg textarea::placeholder,.input::placeholder{color:var(--text3);}
.fg select option{background:var(--bg3);}
.fg input.invalid,.fg .invalid{border-color:var(--red)!important;}
.fg input[readonly]{color:var(--text2);}
.req{color:var(--red);font-size:0.7rem;letter-spacing:0.1em;}
.opt{color:var(--text3);font-size:0.7rem;letter-spacing:0.08em;text-transform:none;}
.field-hint{font-size:0.72rem;color:var(--text3);margin-top:6px;font-family:var(--f-mono);letter-spacing:0.03em;line-height:1.6;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-row.r-2-1{grid-template-columns:2fr 1fr;}
.form-sep{height:1px;background:var(--border);margin:20px 0 16px;}
@media(max-width:480px){.form-row,.form-row.r-2-1{grid-template-columns:1fr;gap:0;}}
.check{display:flex;align-items:center;gap:9px;cursor:pointer;font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--text2);}
.check input{accent-color:var(--red);width:15px;height:15px;cursor:pointer;}

/* ── MODAL ────────────────────────────────────────────────────────── */
.modal-ov{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity 0.25s;}
.modal-ov.open{opacity:1;pointer-events:all;}
.modal{background:var(--bg2);border:1px solid var(--border-s);border-radius:var(--radius);padding:34px;width:100%;max-width:460px;position:relative;transform:translateY(18px);transition:transform 0.28s;max-height:92vh;overflow-y:auto;}
.modal.wide{max-width:640px;}
.modal.center{text-align:center;}
.modal-ov.open .modal{transform:translateY(0);}
.modal-x{position:absolute;top:14px;right:14px;z-index:10;}
.modal-ey{font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--red);margin-bottom:6px;}
.modal-ti{font-family:var(--f-display);font-size:1.9rem;letter-spacing:0.04em;color:var(--text);margin-bottom:6px;line-height:1.05;}
.modal-sb{font-size:0.86rem;color:var(--text2);margin-bottom:22px;line-height:1.7;}
.modal-res{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:20px;font-size:0.84rem;color:var(--text2);line-height:1.85;}
.modal-res strong{color:var(--red);font-weight:500;}
.modal-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 18px;color:var(--red);background:var(--red-soft);border:1px solid var(--red-line);}
.modal-icon.ok{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line);}
.modal-icon.warn{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-line);}
.modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.note{display:flex;gap:10px;align-items:flex-start;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 15px;margin:16px 0;font-size:0.82rem;color:var(--text2);line-height:1.7;text-align:left;}
.note .ic{color:var(--text3);font-size:1rem;margin-top:3px;}
.note.accent{background:var(--red-mid);border-color:var(--red-line);}
.note.accent .ic{color:var(--red);}
@media(max-width:560px){.modal{padding:28px 20px;}}

/* ── TOAST ────────────────────────────────────────────────────────── */
.toast{position:fixed;top:76px;right:24px;z-index:9999;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);font-family:var(--f-mono);font-size:0.72rem;letter-spacing:0.04em;line-height:1.5;max-width:320px;background:var(--bg2);border:1px solid var(--border-s);color:var(--text);box-shadow:0 12px 32px rgba(0,0,0,0.45);transform:translateX(calc(100% + 48px));opacity:0;pointer-events:none;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1),opacity 0.25s;}
.toast.show{transform:translateX(0);opacity:1;pointer-events:auto;}
.toast .ic{font-size:1rem;}
.toast.ok{border-color:var(--ok-line);color:var(--ok);}
.toast.err{border-color:var(--red-line);color:var(--red);}
@media(max-width:480px){.toast{left:16px;right:16px;max-width:none;top:auto;bottom:20px;transform:translateY(calc(100% + 40px));}.toast.show{transform:translateY(0);}}

/* ── ESTADOS ──────────────────────────────────────────────────────── */
.state{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:64px 24px;background:var(--bg2);border:1px dashed var(--border-s);border-radius:var(--radius);color:var(--text3);font-family:var(--f-mono);font-size:0.78rem;letter-spacing:0.08em;line-height:1.8;}
.state .ic{font-size:1.9rem;color:var(--text3);opacity:0.7;}
.state-title{font-family:var(--f-display);font-size:1.3rem;letter-spacing:0.05em;color:var(--text2);}
.state.plain{border:none;background:none;}
.spinner{width:20px;height:20px;border:1.5px solid var(--border-s);border-top-color:var(--red);border-radius:50%;animation:spin 0.7s linear infinite;}
.skeleton{background:linear-gradient(90deg,var(--bg2) 0%,var(--bg3) 50%,var(--bg2) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm);}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}

/* ── MOVIMENTO ────────────────────────────────────────────────────── */
/* Cards, títulos e itens de lista surgem em cascata ao entrar na tela
   (classes aplicadas pelo nexus-core.js). .reveal = espera rolar até ele;
   .reveal-now = conteúdo carregado depois que já está visível. */
.reveal{opacity:0;}
.reveal.in{opacity:1;}
/* fill "backwards": invisível só durante o atraso; ao terminar, o elemento volta
   ao estilo normal (o efeito de passar o mouse continua funcionando) */
.reveal.in,.reveal-now{animation:fadeUp 0.7s cubic-bezier(0.2,0.7,0.2,1) backwards;animation-delay:var(--reveal-delay,0s);}
/* Imagens com carregamento preguiçoso aparecem suavemente */
img[loading="lazy"]{transition:opacity 0.6s ease;}
img[loading="lazy"]:not(.is-loaded){opacity:0;}


/* ── LIGHTBOX (fotos, mapa de palco, prêmios) ─────────────────────── */
.lightbox{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,0.94);display:flex;align-items:center;justify-content:center;padding:64px 72px;opacity:0;pointer-events:none;transition:opacity 0.22s;}
.lightbox.open{opacity:1;pointer-events:all;}
.lightbox-figure{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%;max-height:100%;}
.lightbox img{max-width:100%;max-height:calc(100vh - 160px);object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 20px 60px rgba(0,0,0,0.5);transform:scale(0.96);transition:transform 0.25s,opacity 0.18s;user-select:none;-webkit-user-select:none;}
.lightbox.open img{transform:scale(1);}
.lightbox-cap{font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.08em;color:var(--text2);text-align:center;min-height:1em;}
.lightbox-count{position:absolute;top:22px;left:24px;font-family:var(--f-mono);font-size:0.75rem;letter-spacing:0.15em;color:var(--text3);}
.lightbox-x{position:absolute;top:16px;right:18px;}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;font-size:1.2rem;background:rgba(17,17,17,0.85);}
.lightbox-prev{left:16px;}
.lightbox-next{right:16px;}
@media(max-width:700px){.lightbox{padding:60px 12px;}.lightbox-nav{top:auto;bottom:18px;transform:none;}.lightbox-prev{left:calc(50% - 56px);}.lightbox-next{right:calc(50% - 56px);}}
