/* ============================================
   LVZTECH - Estilos Principais
   Versão: 2.0 | Produção
   ============================================ */

:root {
  --red: #e8000d;
  --red-glow: rgba(232,0,13,0.5);
  --black: #050505;
  --dark: #0d0d0d;
  --gray: #111111;
  --gray2: #1a1a1a;
  --white: #f0f0f0;
  --muted: #555;
  --muted2: #888;
  --font-display: 'Bebas Neue', sans-serif;
  --font-body: 'Rajdhani', sans-serif;
  --font-mono: 'Orbitron', sans-serif;
  --trans: 0.3s cubic-bezier(0.25,0.46,0.45,0.94);
}

/* Reset */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--black); color:var(--white); font-family:var(--font-body); overflow-x:hidden; cursor:none; }
a { text-decoration:none; color:inherit; }
img { display:block; max-width:100%; }
button { cursor:none; font-family:var(--font-body); }

/* Cursor */
.cursor { width:10px; height:10px; background:var(--red); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); mix-blend-mode:exclusion; transition:width .2s,height .2s; }
.cursor-ring { width:32px; height:32px; border:1.5px solid rgba(232,0,13,0.7); border-radius:50%; position:fixed; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s; }
.cursor.big { width:20px; height:20px; }
.cursor-ring.big { width:50px; height:50px; }

/* Canvas */
#bg-canvas { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }

/* Noise */
.noise { position:fixed; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity:.022; pointer-events:none; z-index:1; }

/* Scanline */
.scan { position:fixed; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,rgba(232,0,13,.12),transparent); pointer-events:none; z-index:2; animation:scan 5s linear infinite; }
@keyframes scan { from{transform:translateY(-2px)} to{transform:translateY(100vh)} }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 50px;
  background:linear-gradient(to bottom, rgba(5,5,5,.97) 0%, transparent 100%);
  backdrop-filter:blur(2px);
  transition:background var(--trans);
}
nav.scrolled { background:rgba(5,5,5,.98) !important; border-bottom:1px solid rgba(232,0,13,.12); }
.logo { font-family:var(--font-mono); font-size:1.4rem; font-weight:900; letter-spacing:3px; }
.logo span { color:var(--red); }
.nav-links { display:flex; gap:36px; list-style:none; }
.nav-links a { font-size:.72rem; letter-spacing:2.5px; text-transform:uppercase; color:var(--muted2); font-weight:600; transition:color var(--trans); position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1.5px; background:var(--red); transition:width var(--trans); }
.nav-links a:hover,.nav-links a.active { color:var(--white); }
.nav-links a.active { color:var(--red); }
.nav-links a:hover::after,.nav-links a.active::after { width:100%; }
.btn-nav { border:1.5px solid var(--red); background:transparent; color:var(--white); padding:10px 22px; font-size:.7rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; display:flex; align-items:center; gap:7px; transition:background var(--trans),box-shadow var(--trans); }
.btn-nav:hover { background:var(--red); box-shadow:0 0 20px var(--red-glow); }
.btn-nav svg { width:13px; height:13px; }

/* ── HERO ── */
#hero { position:relative; min-height:100vh; display:flex; align-items:center; z-index:5; overflow:hidden; }
.hero-content { position:relative; z-index:10; padding:100px 50px 60px; max-width:54%; }
.hero-tag { display:flex; align-items:center; gap:8px; font-size:.62rem; letter-spacing:4px; color:var(--red); text-transform:uppercase; font-weight:700; margin-bottom:22px; opacity:0; animation:fadeUp .8s .4s forwards; }
.tag-tri { width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:8px solid var(--red); }

.hero-h1 { line-height:.93; }
.hero-h1 .l1 { font-family:var(--font-display); font-size:clamp(2rem,4vw,3.5rem); color:var(--white); display:block; opacity:0; animation:fadeUp .8s .6s forwards; letter-spacing:1px; }
.hero-h1 .l2 { font-family:var(--font-display); font-size:clamp(4rem,9.5vw,8rem); color:var(--red); display:block; opacity:0; animation:fadeUp .8s .8s forwards; text-shadow:0 0 60px rgba(232,0,13,.25); }
.hero-h1 .l3 { font-family:var(--font-display); font-size:clamp(2rem,4.2vw,3.5rem); color:var(--white); display:block; opacity:0; animation:fadeUp .8s 1s forwards; letter-spacing:1px; }
.hero-sub { font-size:.9rem; color:var(--muted2); line-height:1.9; margin-top:22px; max-width:400px; opacity:0; animation:fadeUp .8s 1.2s forwards; }
.hero-btns { display:flex; gap:14px; margin-top:38px; opacity:0; animation:fadeUp .8s 1.4s forwards; flex-wrap:wrap; }

.btn-primary { background:var(--red); color:var(--white); border:none; padding:15px 32px; font-size:.76rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); transition:box-shadow var(--trans),transform .2s; }
.btn-primary:hover { box-shadow:0 0 30px var(--red-glow); transform:translateY(-2px); }
.btn-secondary { background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,.18); padding:15px 32px; font-size:.76rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); transition:border-color var(--trans),background var(--trans),transform .2s; }
.btn-secondary:hover { border-color:var(--red); background:rgba(232,0,13,.08); transform:translateY(-2px); }

/* Hero visual */
.hero-visual { position:absolute; right:0; top:0; width:52%; height:100%; z-index:6; overflow:hidden; }
.hero-img-wrap { position:absolute; inset:0; }
.hero-img-wrap::before { content:''; position:absolute; inset:0; background:linear-gradient(to right,var(--black) 0%,rgba(5,5,5,.5) 30%,rgba(5,5,5,.1) 60%,transparent 100%),linear-gradient(to top,rgba(5,5,5,.7) 0%,transparent 25%); z-index:2; }
.hero-img-wrap::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 70% 50%,rgba(140,0,0,.18) 0%,transparent 65%); z-index:1; }
#hero-char-img { width:100%; height:100%; object-fit:cover; object-position:top center; filter:brightness(.82) contrast(1.12) saturate(.85); position:relative; z-index:0; transition:transform .15s ease-out; }

/* Vertical accent */
.v-line { position:absolute; left:28px; top:32%; width:2px; height:160px; background:linear-gradient(to bottom,transparent,var(--red),transparent); z-index:10; opacity:0; animation:fadeIn 1s 2.2s forwards; }
.v-dots { position:absolute; left:25px; top:30%; display:flex; flex-direction:column; gap:5px; z-index:10; opacity:0; animation:fadeIn 1s 2.4s forwards; }
.v-dots i { width:7px; height:7px; background:var(--red); border-radius:50%; opacity:.45; }

/* Scroll */
.scroll-ind { position:absolute; bottom:30px; left:50px; display:flex; align-items:center; gap:12px; z-index:10; opacity:0; animation:fadeIn 1s 2.8s forwards; }
.scroll-ln { width:34px; height:1px; background:linear-gradient(to right,transparent,var(--red)); }
.scroll-tx { font-size:.58rem; letter-spacing:3px; color:var(--muted); text-transform:uppercase; }
.scroll-dt { width:7px; height:7px; border:1.5px solid var(--red); border-radius:50%; animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{box-shadow:0 0 0 0 rgba(232,0,13,.4)} 50%{box-shadow:0 0 0 6px rgba(232,0,13,0)} }

/* ── STATS ── */
.stats-bar { position:relative; z-index:10; background:var(--gray); border-top:1px solid rgba(232,0,13,.22); border-bottom:1px solid rgba(232,0,13,.08); padding:34px 50px; display:grid; grid-template-columns:repeat(4,1fr); }
.stat-item { text-align:center; padding:0 16px; border-right:1px solid rgba(255,255,255,.05); opacity:0; transform:translateY(20px); transition:opacity .6s,transform .6s; }
.stat-item:last-child { border-right:none; }
.stat-item.in { opacity:1; transform:translateY(0); }
.stat-n { font-family:var(--font-display); font-size:2.8rem; color:var(--red); line-height:1; text-shadow:0 0 30px rgba(232,0,13,.3); }
.stat-l { font-size:.62rem; letter-spacing:3px; color:var(--muted); text-transform:uppercase; margin-top:5px; }

/* ── SECTION COMMON ── */
.s-wrap { position:relative; z-index:10; }
.s-tag { font-size:.62rem; letter-spacing:4px; color:var(--red); text-transform:uppercase; font-weight:700; margin-bottom:10px; display:block; opacity:0; transform:translateX(-18px); transition:opacity .6s,transform .6s; }
.s-tag.in { opacity:1; transform:translateX(0); }
.s-title { font-family:var(--font-display); font-size:clamp(2rem,4.2vw,3.8rem); line-height:1; letter-spacing:1.5px; opacity:0; transform:translateY(22px); transition:opacity .6s .1s,transform .6s .1s; }
.s-title.in { opacity:1; transform:translateY(0); }
.s-title em { color:var(--red); font-style:normal; }

/* ── SERVICES ── */
#servicos { padding:100px 50px; background:var(--dark); }
.svc-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin-top:52px; }
.svc-card { background:rgba(14,14,14,.95); border:1px solid rgba(255,255,255,.04); padding:44px; position:relative; overflow:hidden; opacity:0; transform:translateY(28px); transition:opacity .6s,transform .6s,border-color var(--trans); }
.svc-card.in { opacity:1; transform:translateY(0); }
.svc-card::before { content:''; position:absolute; left:0; top:0; width:3px; height:0; background:var(--red); transition:height .4s; }
.svc-card:hover::before { height:100%; }
.svc-card:hover { border-color:rgba(232,0,13,.22); }
.svc-glow { position:absolute; inset:0; background:radial-gradient(circle at 0% 0%,rgba(232,0,13,.05),transparent 65%); opacity:0; transition:opacity .4s; }
.svc-card:hover .svc-glow { opacity:1; }
.svc-n { font-family:var(--font-display); font-size:5rem; color:rgba(232,0,13,.06); position:absolute; top:14px; right:22px; line-height:1; transition:color .4s; pointer-events:none; }
.svc-card:hover .svc-n { color:rgba(232,0,13,.12); }
.svc-icon { width:42px; height:42px; color:var(--red); margin-bottom:18px; position:relative; z-index:1; }
.svc-name { font-family:var(--font-display); font-size:1.65rem; letter-spacing:1.5px; margin-bottom:12px; position:relative; z-index:1; }
.svc-desc { font-size:.9rem; color:var(--muted2); line-height:1.8; position:relative; z-index:1; }
.svc-arr { display:inline-flex; align-items:center; gap:7px; margin-top:26px; font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--red); font-weight:700; position:relative; z-index:1; transition:gap .3s; }
.svc-card:hover .svc-arr { gap:13px; }

/* ── PROJECTS ── */
#projetos { padding:100px 50px; background:var(--black); }
.proj-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:50px; flex-wrap:wrap; gap:16px; }
.proj-grid { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:280px 280px; gap:3px; }
.proj-card { position:relative; overflow:hidden; background:var(--gray2); opacity:0; transform:scale(.96); transition:opacity .6s,transform .6s; }
.proj-card.in { opacity:1; transform:scale(1); }
.proj-card:first-child { grid-row:span 2; }
.proj-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--trans); }
.proj-card:hover .proj-img { transform:scale(1.06); }
.proj-no-img { position:absolute; inset:0; background:linear-gradient(135deg,#0d0d18,#150010); }
.proj-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.25) 55%,transparent 100%); z-index:1; }
.proj-grid-lines { position:absolute; inset:0; background-image:linear-gradient(rgba(232,0,13,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(232,0,13,.04) 1px,transparent 1px); background-size:36px 36px; opacity:0; transition:opacity .4s; z-index:2; }
.proj-card:hover .proj-grid-lines { opacity:1; }
.proj-num { position:absolute; top:18px; right:18px; font-family:var(--font-mono); font-size:.62rem; color:rgba(255,255,255,.18); z-index:3; }
.proj-meta { position:absolute; bottom:0; left:0; right:0; padding:22px; z-index:3; }
.proj-tech { font-size:.58rem; letter-spacing:3px; color:var(--red); text-transform:uppercase; font-weight:700; margin-bottom:4px; }
.proj-name { font-family:var(--font-display); font-size:1.5rem; letter-spacing:1.5px; }
.proj-desc { font-size:.8rem; color:var(--muted2); margin-top:5px; display:none; }
.proj-card:hover .proj-desc { display:block; }
.proj-link { display:inline-flex; align-items:center; gap:6px; margin-top:8px; font-size:.65rem; letter-spacing:2px; color:var(--red); text-transform:uppercase; font-weight:700; display:none; }
.proj-card:hover .proj-link { display:inline-flex; }

/* admin edit button on cards */
.proj-edit-btn { position:absolute; top:12px; left:12px; z-index:10; background:rgba(232,0,13,.9); color:#fff; border:none; width:28px; height:28px; display:none; align-items:center; justify-content:center; font-size:.75rem; transition:background .2s; }
.proj-edit-btn:hover { background:var(--red); }
body.admin-mode .proj-edit-btn { display:flex; }

/* ── ADMIN PANEL ── */
.admin-fab { position:fixed; bottom:28px; right:28px; z-index:200; background:rgba(12,12,12,.92); border:1.5px solid rgba(232,0,13,.35); color:var(--red); width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.05rem; transition:background var(--trans),box-shadow var(--trans); backdrop-filter:blur(6px); }
.admin-fab:hover { background:rgba(232,0,13,.14); box-shadow:0 0 18px var(--red-glow); }
.admin-panel { position:fixed; top:0; right:-430px; width:420px; height:100vh; background:rgba(7,7,7,.98); border-left:1px solid rgba(232,0,13,.18); z-index:500; transition:right .4s var(--trans); overflow-y:auto; backdrop-filter:blur(12px); }
.admin-panel.open { right:0; }
.admin-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:499; backdrop-filter:blur(2px); }
.admin-overlay.open { display:block; }
.ap-inner { padding:30px; }
.ap-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; padding-bottom:18px; border-bottom:1px solid rgba(232,0,13,.18); }
.ap-title { font-family:var(--font-mono); font-size:.95rem; letter-spacing:2px; color:var(--red); }
.ap-close { background:none; border:none; color:var(--muted2); font-size:1.2rem; transition:color .2s; }
.ap-close:hover { color:var(--white); }

/* Admin login */
.ap-login h3 { font-family:var(--font-display); font-size:1.6rem; margin-bottom:6px; }
.ap-login p { font-size:.82rem; color:var(--muted2); margin-bottom:24px; }
.ap-input { width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); color:var(--white); padding:12px 14px; font-family:var(--font-body); font-size:.93rem; margin-bottom:10px; outline:none; transition:border-color .3s; }
.ap-input:focus { border-color:var(--red); }
.ap-label { font-size:.68rem; letter-spacing:2px; color:var(--muted); text-transform:uppercase; margin-bottom:5px; display:block; }
.ap-btn { background:var(--red); color:#fff; border:none; padding:12px; font-size:.73rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; width:100%; margin-top:6px; transition:box-shadow .3s,opacity .3s; }
.ap-btn:hover { box-shadow:0 0 18px var(--red-glow); }
.ap-btn.ghost { background:transparent; border:1px solid rgba(255,255,255,.12); color:var(--muted2); }
.ap-btn.ghost:hover { border-color:var(--red); color:var(--white); box-shadow:none; }
.ap-btn.danger { background:#5a0000; }
.ap-btn.danger:hover { background:#7a0000; box-shadow:none; }
.ap-btn.small { padding:8px 14px; font-size:.65rem; width:auto; }

/* Admin logged bar */
.ap-logged { background:rgba(232,0,13,.08); border:1px solid rgba(232,0,13,.18); padding:10px 13px; display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; border-radius:2px; }
.ap-logged span { font-size:.68rem; letter-spacing:1px; color:var(--red); display:flex; align-items:center; gap:7px; }
.ap-dot { width:7px; height:7px; background:#00e676; border-radius:50%; animation:blink 1.5s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }

/* Admin section */
.ap-section { margin-top:26px; }
.ap-sec-title { font-size:.65rem; letter-spacing:3px; text-transform:uppercase; color:var(--muted); margin-bottom:14px; padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.05); }
.ap-proj-list { display:flex; flex-direction:column; gap:8px; }
.ap-proj-item { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); padding:12px; display:flex; justify-content:space-between; align-items:center; gap:8px; }
.ap-proj-name { font-size:.86rem; font-weight:600; flex:1; }
.ap-proj-actions { display:flex; gap:5px; }
.ap-icon-btn { background:none; border:1px solid rgba(255,255,255,.1); color:var(--muted2); width:28px; height:28px; display:flex; align-items:center; justify-content:center; font-size:.72rem; transition:border-color .2s,color .2s; }
.ap-icon-btn:hover { border-color:var(--red); color:var(--red); }
.ap-icon-btn.del:hover { border-color:#ff4444; color:#ff4444; }

/* Project form */
.proj-form { display:flex; flex-direction:column; gap:9px; margin-top:12px; }
.proj-form-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.proj-form textarea.ap-input { height:75px; resize:none; }

/* Image upload preview */
.img-prev { width:100%; height:110px; background:rgba(255,255,255,.02); border:1px dashed rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:.78rem; color:var(--muted); overflow:hidden; position:relative; }
.img-prev img { width:100%; height:100%; object-fit:cover; }
.img-prev-lbl { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.55); opacity:0; transition:opacity .2s; font-size:.72rem; }
.img-prev:hover .img-prev-lbl { opacity:1; }
.file-input-hidden { display:none; }

/* ── ABOUT ── */
#sobre { padding:100px 50px; background:var(--dark); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-visual { position:relative; height:440px; }
.ab-box1 { position:absolute; inset:0 60px 60px 0; border:1px solid rgba(232,0,13,.22); background:rgba(232,0,13,.03); }
.ab-box2 { position:absolute; top:60px; right:0; bottom:0; left:60px; border:1px solid rgba(255,255,255,.05); }
.ab-center { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; z-index:1; }
.ab-num { font-family:var(--font-display); font-size:7rem; color:var(--red); text-shadow:0 0 60px rgba(232,0,13,.4); line-height:1; }
.ab-lbl { font-size:.62rem; letter-spacing:4px; color:var(--muted); text-transform:uppercase; }
.about-text p { font-size:.92rem; color:var(--muted2); line-height:1.9; margin-bottom:16px; }
.about-text p strong { color:var(--white); }
.chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:26px; }
.chip { border:1px solid rgba(232,0,13,.28); padding:5px 13px; font-size:.65rem; letter-spacing:2px; text-transform:uppercase; color:var(--red); font-weight:700; transition:background .3s; }
.chip:hover { background:rgba(232,0,13,.1); }

/* ── CONTACT ── */
#contato { padding:100px 50px; background:var(--black); position:relative; }
.contact-glow { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:700px; height:400px; background:radial-gradient(ellipse,rgba(232,0,13,.07),transparent 70%); pointer-events:none; }
.contact-inner { max-width:670px; margin:0 auto; text-align:center; position:relative; z-index:1; }
.contact-form { margin-top:50px; display:flex; flex-direction:column; gap:13px; text-align:left; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.form-input { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); color:var(--white); padding:14px 17px; font-family:var(--font-body); font-size:.93rem; outline:none; width:100%; transition:border-color .3s,background .3s; }
.form-input::placeholder { color:var(--muted); }
.form-input:focus { border-color:var(--red); background:rgba(232,0,13,.025); }
textarea.form-input { resize:none; height:128px; }
.form-submit { background:var(--red); color:#fff; border:none; padding:15px 46px; font-size:.8rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px)); transition:box-shadow .3s,transform .2s; margin:6px auto 0; display:block; }
.form-submit:hover { box-shadow:0 0 36px var(--red-glow); transform:translateY(-2px); }

/* ── FOOTER ── */
footer { background:var(--gray); border-top:1px solid rgba(232,0,13,.13); padding:34px 50px; display:flex; justify-content:space-between; align-items:center; position:relative; z-index:10; flex-wrap:wrap; gap:14px; }
.foot-copy { font-size:.7rem; color:var(--muted); }
.foot-links { display:flex; gap:26px; }
.foot-links a { font-size:.7rem; color:var(--muted); display:flex; align-items:center; gap:5px; transition:color .3s; }
.foot-links a:hover { color:var(--red); }
.foot-links svg { width:13px; height:13px; }

/* ── TOAST ── */
.toast-wrap { position:fixed; bottom:88px; right:28px; z-index:1000; display:flex; flex-direction:column; gap:7px; }
.toast { background:var(--gray2); border-left:3px solid var(--red); padding:11px 16px; font-size:.8rem; min-width:230px; animation:tin .3s,tout .3s 2.7s forwards; box-shadow:0 4px 18px rgba(0,0,0,.5); pointer-events:none; }
.toast.ok { border-color:#00e676; }
.toast.err { border-color:#ff4444; }
@keyframes tin { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes tout { to{opacity:0} }

/* ── KEYFRAMES ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:none} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* ── RESPONSIVE ── */
@media(max-width:1100px) {
  .hero-content{max-width:62%}
  .svc-grid{grid-template-columns:1fr}
  #sobre{grid-template-columns:1fr;gap:48px}
  .about-visual{height:280px}
}
@media(max-width:900px) {
  nav{padding:14px 22px}
  .nav-links{display:none}
  .hero-content{max-width:100%;padding:100px 22px 60px}
  .hero-visual{opacity:.22;width:100%}
  .stats-bar{grid-template-columns:repeat(2,1fr);padding:26px 22px}
  #servicos,#projetos,#sobre,#contato{padding:68px 22px}
  .proj-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .proj-card:first-child{grid-row:span 1}
  .form-row{grid-template-columns:1fr}
  footer{padding:26px 22px}
  .proj-grid{grid-template-rows:220px 220px 220px}
}
@media(max-width:600px) {
  .proj-grid{grid-template-columns:1fr;grid-template-rows:auto}
  .proj-card{min-height:200px}
  .hero-btns{flex-direction:column}
  .btn-primary,.btn-secondary{text-align:center}
  .admin-panel{width:100%;right:-100%}
  .admin-panel.open{right:0}
}
@media(max-width:768px) {
  body{cursor:auto}
  .cursor,.cursor-ring{display:none}
}

/* ══════════════════════════════════════════════
   DRIVELVZ - Estilos
══════════════════════════════════════════════ */
#drivelvz { padding:100px 0 0; background:var(--black); min-height:100vh; position:relative; z-index:10; }
.drive-page { display:flex; min-height:calc(100vh - 100px); }
.drive-sidebar { width:240px; flex-shrink:0; background:rgba(10,10,10,.97); border-right:1px solid rgba(232,0,13,.12); padding:28px 0; position:sticky; top:0; height:calc(100vh - 100px); overflow-y:auto; display:flex; flex-direction:column; }
.drive-sidebar-logo { padding:0 22px 22px; border-bottom:1px solid rgba(255,255,255,.05); margin-bottom:18px; }
.drive-sidebar-logo h2 { font-family:var(--font-mono); font-size:.95rem; letter-spacing:2px; color:var(--white); display:flex; align-items:center; gap:8px; }
.drive-sidebar-logo h2 span { color:var(--red); }
.drive-sidebar-logo p { font-size:.65rem; color:var(--muted); letter-spacing:1px; margin-top:3px; }
.drive-nav-label { font-size:.58rem; letter-spacing:3px; color:var(--muted); text-transform:uppercase; padding:0 22px; margin-bottom:6px; margin-top:16px; }
.drive-nav-item { display:flex; align-items:center; gap:10px; padding:10px 22px; font-size:.82rem; color:var(--muted2); cursor:none; transition:background .2s,color .2s; border-left:2px solid transparent; font-weight:600; letter-spacing:.5px; }
.drive-nav-item:hover { background:rgba(255,255,255,.04); color:var(--white); }
.drive-nav-item.active { background:rgba(232,0,13,.08); color:var(--red); border-left-color:var(--red); }
.drive-nav-item .icon { font-size:1rem; width:20px; text-align:center; }
.drive-nav-badge { margin-left:auto; background:var(--red); color:#fff; font-size:.55rem; padding:2px 6px; border-radius:10px; font-weight:700; }
.drive-nav-badge.free { background:#00c853; }
.drive-nav-badge.paid { background:#aa00ff; }
.drive-main { flex:1; padding:32px 40px; overflow-y:auto; }
.drive-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; gap:16px; flex-wrap:wrap; }
.drive-breadcrumb { display:flex; align-items:center; gap:8px; font-size:.8rem; color:var(--muted2); }
.drive-breadcrumb span { color:var(--muted); }
.drive-breadcrumb .current { color:var(--white); font-weight:600; }
.drive-breadcrumb button { background:none; border:none; color:var(--muted2); font-size:.8rem; cursor:none; transition:color .2s; font-family:var(--font-body); }
.drive-breadcrumb button:hover { color:var(--red); }
.drive-search { display:flex; align-items:center; gap:0; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); padding:0 14px; flex:1; max-width:360px; transition:border-color .3s; }
.drive-search:focus-within { border-color:var(--red); }
.drive-search input { background:none; border:none; color:var(--white); padding:10px 10px 10px 0; font-family:var(--font-body); font-size:.88rem; outline:none; flex:1; }
.drive-search input::placeholder { color:var(--muted); }
.drive-search svg { width:14px; height:14px; color:var(--muted); flex-shrink:0; }
.drive-controls { display:flex; align-items:center; gap:8px; }
.drive-ctrl-btn { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); color:var(--muted2); width:34px; height:34px; display:flex; align-items:center; justify-content:center; font-size:.85rem; cursor:none; transition:background .2s,color .2s,border-color .2s; }
.drive-ctrl-btn:hover,.drive-ctrl-btn.active { background:rgba(232,0,13,.1); border-color:var(--red); color:var(--red); }
.drive-sort-select { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); color:var(--muted2); padding:7px 12px; font-family:var(--font-body); font-size:.75rem; outline:none; cursor:none; }
.drive-sort-select option { background:#111; }
.drive-section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.05); }
.drive-section-title { font-size:.68rem; letter-spacing:3px; color:var(--muted); text-transform:uppercase; font-weight:700; }
.drive-section-count { font-size:.65rem; color:var(--muted); background:rgba(255,255,255,.05); padding:3px 10px; border-radius:10px; }
.drive-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin-bottom:36px; }
.drive-list { display:flex; flex-direction:column; gap:2px; margin-bottom:36px; }
.drive-folder-card { background:rgba(15,15,15,.9); border:1px solid rgba(255,255,255,.07); padding:20px 16px; cursor:none; transition:background .2s,border-color .2s,transform .2s; position:relative; overflow:hidden; display:flex; flex-direction:column; gap:8px; }
.drive-folder-card::before { content:''; position:absolute; top:0; left:0; width:100%; height:2px; background:var(--red); transform:scaleX(0); transition:transform .3s; transform-origin:left; }
.drive-folder-card:hover { background:rgba(232,0,13,.06); border-color:rgba(232,0,13,.25); transform:translateY(-2px); }
.drive-folder-card:hover::before { transform:scaleX(1); }
.drive-folder-icon { font-size:2.2rem; line-height:1; }
.drive-folder-name { font-size:.85rem; font-weight:700; letter-spacing:.5px; color:var(--white); }
.drive-folder-meta { font-size:.65rem; color:var(--muted); display:flex; align-items:center; gap:6px; }
.drive-folder-badge { font-size:.55rem; padding:2px 7px; border-radius:10px; font-weight:700; letter-spacing:1px; }
.badge-free { background:rgba(0,200,83,.15); color:#00c853; border:1px solid rgba(0,200,83,.25); }
.badge-paid { background:rgba(170,0,255,.15); color:#cc44ff; border:1px solid rgba(170,0,255,.25); }
.badge-mixed { background:rgba(232,0,13,.12); color:var(--red); border:1px solid rgba(232,0,13,.2); }
.drive-file-card { background:rgba(15,15,15,.9); border:1px solid rgba(255,255,255,.07); padding:16px; cursor:none; transition:background .2s,border-color .2s,transform .2s,box-shadow .2s; position:relative; overflow:hidden; display:flex; flex-direction:column; gap:8px; }
.drive-file-card:hover { background:rgba(20,20,20,.95); border-color:rgba(255,255,255,.15); transform:translateY(-2px); }
.drive-file-card.paid-item:hover { border-color:rgba(170,0,255,.4); box-shadow:0 0 20px rgba(170,0,255,.1); }
.drive-file-card.free-item:hover { border-color:rgba(0,200,83,.3); box-shadow:0 0 20px rgba(0,200,83,.08); }
.drive-file-icon-wrap { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:4px; font-size:1.5rem; margin-bottom:4px; }
.drive-file-name { font-size:.82rem; font-weight:700; color:var(--white); word-break:break-word; }
.drive-file-meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-top:2px; }
.drive-file-ext { font-size:.6rem; font-weight:700; letter-spacing:1px; padding:2px 7px; border-radius:3px; }
.drive-file-size { font-size:.65rem; color:var(--muted); }
.drive-file-price { font-size:.75rem; font-weight:700; letter-spacing:1px; color:#cc44ff; margin-top:auto; display:flex; align-items:center; gap:5px; }
.drive-file-dl-btn { margin-top:8px; background:var(--red); border:none; color:#fff; padding:7px 14px; font-family:var(--font-body); font-size:.68rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; width:100%; transition:box-shadow .2s,opacity .2s; }
.drive-file-dl-btn:hover { box-shadow:0 0 14px var(--red-glow); }
.drive-file-dl-btn.paid-btn { background:linear-gradient(135deg,#6600cc,#aa00ff); }
.drive-file-dl-btn.paid-btn:hover { box-shadow:0 0 20px rgba(170,0,255,.4); }
.drive-file-row { display:flex; align-items:center; gap:14px; padding:12px 16px; background:rgba(15,15,15,.9); border:1px solid rgba(255,255,255,.05); cursor:none; transition:background .2s,border-color .2s; }
.drive-file-row:hover { background:rgba(25,25,25,.95); border-color:rgba(255,255,255,.12); }
.drive-file-row .drive-file-icon-wrap { width:36px; height:36px; font-size:1.2rem; flex-shrink:0; }
.drive-file-row .drive-file-name { flex:1; font-size:.85rem; }
.drive-file-row .drive-file-size { font-size:.72rem; color:var(--muted); min-width:60px; text-align:right; }
.drive-file-row .drive-file-dl-btn { width:auto; padding:6px 16px; margin-top:0; white-space:nowrap; }
.ext-iso,.ext-img { background:rgba(255,60,0,.15); color:#ff6030; }
.ext-zip,.ext-rar,.ext-7z { background:rgba(255,180,0,.15); color:#ffc000; }
.ext-mp4,.ext-mkv,.ext-avi { background:rgba(0,150,255,.15); color:#40aaff; }
.ext-pdf { background:rgba(255,0,50,.15); color:#ff2050; }
.ext-exe,.ext-apk { background:rgba(0,200,100,.15); color:#00cc60; }
.ext-link { background:rgba(100,150,255,.15); color:#6699ff; }
.ext-default { background:rgba(150,150,150,.1); color:#999; }
.drive-empty { text-align:center; padding:80px 20px; color:var(--muted); }
.drive-empty .drive-empty-icon { font-size:3.5rem; margin-bottom:16px; opacity:.4; }
.drive-empty p { font-size:.9rem; }
.drive-img-preview { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:2000; display:none; align-items:center; justify-content:center; backdrop-filter:blur(8px); }
.drive-img-preview.open { display:flex; }
.drive-img-preview img { max-width:90vw; max-height:85vh; object-fit:contain; border:1px solid rgba(255,255,255,.1); }
.drive-img-preview-close { position:absolute; top:20px; right:24px; background:rgba(232,0,13,.8); border:none; color:#fff; width:40px; height:40px; border-radius:50%; font-size:1.1rem; cursor:none; transition:background .2s; }
.drive-img-preview-close:hover { background:var(--red); }
.drive-video-modal { position:fixed; inset:0; background:rgba(0,0,0,.95); z-index:2000; display:none; align-items:center; justify-content:center; backdrop-filter:blur(6px); }
.drive-video-modal.open { display:flex; }
.drive-video-inner { width:90vw; max-width:900px; background:#0a0a0a; border:1px solid rgba(255,255,255,.1); position:relative; }
.drive-video-inner video { width:100%; display:block; }
.drive-video-close { position:absolute; top:-40px; right:0; background:none; border:none; color:var(--muted2); font-size:.9rem; letter-spacing:2px; cursor:none; transition:color .2s; font-family:var(--font-body); text-transform:uppercase; }
.drive-video-close:hover { color:var(--red); }
.drive-paid-modal { position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:3000; display:none; align-items:center; justify-content:center; backdrop-filter:blur(10px); }
.drive-paid-modal.open { display:flex; }
.drive-paid-box { background:#090909; border:1px solid rgba(170,0,255,.3); max-width:500px; width:90%; padding:48px 40px; text-align:center; position:relative; box-shadow:0 0 60px rgba(170,0,255,.15),0 0 120px rgba(232,0,13,.08); animation:modalPop .4s cubic-bezier(.25,.46,.45,.94); }
@keyframes modalPop { from{opacity:0;transform:scale(.9) translateY(20px)} to{opacity:1;transform:none} }
.drive-paid-box::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(170,0,255,.03),rgba(232,0,13,.03)); pointer-events:none; }
.drive-paid-corner { position:absolute; width:20px; height:20px; border-color:var(--red); border-style:solid; }
.drive-paid-corner.tl { top:0; left:0; border-width:2px 0 0 2px; }
.drive-paid-corner.tr { top:0; right:0; border-width:2px 2px 0 0; }
.drive-paid-corner.bl { bottom:0; left:0; border-width:0 0 2px 2px; }
.drive-paid-corner.br { bottom:0; right:0; border-width:0 2px 2px 0; }
.drive-paid-alert { font-family:var(--font-mono); font-size:1.3rem; color:var(--red); letter-spacing:3px; margin-bottom:8px; animation:alertBlink 1.2s step-start infinite; text-shadow:0 0 20px var(--red-glow),0 0 40px var(--red-glow); }
@keyframes alertBlink { 0%,100%{opacity:1} 50%{opacity:.3} }
.drive-paid-title { font-family:var(--font-display); font-size:1.2rem; letter-spacing:2px; color:var(--white); margin-bottom:24px; }
.drive-paid-item-name { font-family:var(--font-mono); font-size:.85rem; color:#cc44ff; background:rgba(170,0,255,.08); border:1px solid rgba(170,0,255,.2); padding:8px 16px; margin-bottom:24px; letter-spacing:1px; display:inline-block; }
.drive-paid-info { background:rgba(255,255,255,.03); border-left:2px solid var(--red); padding:16px 20px; text-align:left; margin-bottom:24px; }
.drive-paid-info h4 { font-size:.78rem; letter-spacing:2px; color:var(--red); margin-bottom:10px; text-transform:uppercase; }
.drive-paid-info ul { list-style:none; display:flex; flex-direction:column; gap:6px; }
.drive-paid-info li { font-size:.82rem; color:var(--muted2); display:flex; align-items:center; gap:8px; }
.drive-paid-info li::before { content:'✓'; color:#00c853; font-size:.7rem; }
.drive-paid-info .no::before { content:'✗'; color:var(--red); }
.drive-paid-ok { background:linear-gradient(135deg,#6600cc,#aa00ff); border:none; color:#fff; padding:15px 40px; font-family:var(--font-body); font-size:.82rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; width:100%; transition:box-shadow .3s,transform .2s; clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); }
.drive-paid-ok:hover { box-shadow:0 0 30px rgba(170,0,255,.5); transform:translateY(-2px); }
.drive-paid-cancel { background:none; border:none; color:var(--muted); font-size:.72rem; letter-spacing:2px; text-transform:uppercase; margin-top:14px; cursor:none; font-family:var(--font-body); transition:color .2s; }
.drive-paid-cancel:hover { color:var(--white); }
.drive-admin-tabs { display:flex; border-bottom:1px solid rgba(255,255,255,.06); margin-bottom:16px; overflow-x:auto; }
.drive-admin-tab { padding:10px 18px; font-size:.68rem; letter-spacing:2px; text-transform:uppercase; font-weight:700; color:var(--muted2); background:none; border:none; border-bottom:2px solid transparent; white-space:nowrap; cursor:none; font-family:var(--font-body); transition:color .2s,border-color .2s; }
.drive-admin-tab.active { color:var(--red); border-bottom-color:var(--red); }
.drive-admin-tab-content { display:none; }
.drive-admin-tab-content.active { display:block; }
.drive-email-row { display:flex; gap:8px; }
.drive-email-row .ap-input { flex:1; margin:0; }
.drive-email-send { background:var(--red); border:none; color:#fff; padding:12px 18px; font-size:.7rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; white-space:nowrap; transition:box-shadow .2s; }
.drive-email-send:hover { box-shadow:0 0 16px var(--red-glow); }
.drive-file-admin-item { background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.06); padding:10px 12px; display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.drive-file-admin-item .name { flex:1; font-size:.82rem; font-weight:600; }
.drive-file-admin-item .type-badge { font-size:.6rem; padding:2px 8px; border-radius:3px; }
.drive-file-admin-item .actions { display:flex; gap:5px; }
@media(max-width:900px) { .drive-sidebar{display:none} .drive-main{padding:20px} .drive-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))} }
@media(max-width:600px) { .drive-grid{grid-template-columns:repeat(2,1fr);gap:8px} .drive-paid-box{padding:32px 20px} }

/* ══════════════════════════════════════════════
   VÍDEOS EM DESTAQUE
══════════════════════════════════════════════ */
.videos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}
.videos-empty { text-align: center; padding: 60px 20px; }

.video-card {
  background: rgba(14,14,14,.95);
  border: 1px solid rgba(255,255,255,.07);
  overflow: hidden;
  cursor: none;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  position: relative;
}
.video-card:hover { border-color: rgba(232,0,13,.35); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.5); }

.video-thumb-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: #111;
  overflow: hidden;
}
.video-thumb-wrap img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s;
}
.video-card:hover .video-thumb-wrap img { transform: scale(1.05); }

.video-play-btn {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 56px; height: 56px;
  background: rgba(232,0,13,.9);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  transition: background .2s, transform .2s;
  box-shadow: 0 0 24px rgba(232,0,13,.5);
}
.video-card:hover .video-play-btn { background: var(--red); transform: translate(-50%,-50%) scale(1.1); }

.video-tag {
  position: absolute; top: 10px; left: 10px;
  background: rgba(232,0,13,.85);
  color: #fff;
  font-size: .58rem; letter-spacing: 2px;
  padding: 3px 8px; font-weight: 700; text-transform: uppercase;
}

.video-info { padding: 16px; }
.video-title {
  font-family: var(--font-display);
  font-size: 1.15rem; letter-spacing: 1px;
  color: var(--white);
  margin-bottom: 6px;
  line-height: 1.2;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.video-desc {
  font-size: .8rem; color: var(--muted2);
  line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* Admin edit overlay on card */
.video-admin-btns {
  position: absolute; top: 8px; right: 8px;
  display: none; gap: 4px;
  z-index: 5;
}
body.admin-mode .video-admin-btns { display: flex; }
.video-admin-btn {
  background: rgba(0,0,0,.8); border: 1px solid rgba(255,255,255,.15);
  color: var(--white); width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  font-size: .75rem; cursor: none;
  transition: background .2s, border-color .2s;
}
.video-admin-btn:hover { background: var(--red); border-color: var(--red); }
.video-admin-btn.del:hover { background: #cc0000; border-color: #cc0000; }

/* Video modal */
.video-modal-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 4000;
  align-items: center; justify-content: center;
  backdrop-filter: blur(8px);
}
.video-modal-overlay.open { display: flex; }
.video-modal-box {
  width: 90vw; max-width: 860px;
  background: #0a0a0a;
  border: 1px solid rgba(255,255,255,.1);
  padding: 24px;
  position: relative;
  animation: modalPop .35s ease;
}
.video-modal-close {
  background: none; border: none; color: var(--muted2);
  font-size: .78rem; letter-spacing: 2px; text-transform: uppercase;
  cursor: none; font-family: var(--font-body);
  margin-bottom: 12px; display: block;
  transition: color .2s;
}
.video-modal-close:hover { color: var(--red); }
.video-modal-title {
  font-family: var(--font-display);
  font-size: 1.4rem; letter-spacing: 1.5px;
  margin-bottom: 14px; color: var(--white);
}
.video-modal-player {
  width: 100%; position: relative;
  padding-top: 56.25%; background: #000;
}
.video-modal-player iframe,
.video-modal-player video {
  position: absolute; inset: 0;
  width: 100%; height: 100%; border: none;
}
.video-modal-desc {
  font-size: .85rem; color: var(--muted2);
  line-height: 1.7; margin-top: 14px;
}

/* ── FIX: Drive file card description ── */
.drive-file-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
.drive-file-card .drive-file-desc-text {
  font-size: .78rem;
  color: var(--muted2);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  flex: 0 0 auto;
}
.drive-file-card .drive-file-dl-btn { margin-top: auto; }
.drive-file-card .drive-file-name { font-size:.82rem; font-weight:700; color:var(--white); word-break:break-word; line-height:1.3; }
.drive-file-card .drive-file-meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }

/* Drive product image */
.drive-file-thumb {
  width: 100%; height: 130px;
  object-fit: cover;
  border-radius: 2px;
  margin-bottom: 2px;
  display: block;
}

@media(max-width:900px) {
  .videos-grid { grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap:14px; }
  #videos { padding: 60px 22px; }
}
@media(max-width:600px) {
  .videos-grid { grid-template-columns: 1fr; }
}
