/* EasePlus — identidade visual Blackship, cor de ação própria (verde-água).
   Fonte da verdade do visual: bridge/layouts/easeplus/v1-landing-mockup.html
   e bridge/design-system/produtos/easeplus/index.html — não duplicar
   token novo aqui sem atualizar os dois. */
:root{
  --bg:#0A0A0C; --panel:#141417; --panel-2:#191A1E; --panel-3:#1F2025;
  --line:#26272C; --line-soft:#1C1D21;
  --text:#F2F2F0; --muted:#9A9AA2; --muted-2:#6E6E76;
  --cta:#3DDC97; --cta-dim:#1F6B49; --cta-ink:#06120C;
  --danger:#E5484D; --danger-dim:#5C1D1F; --warn:#F2B84B;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:'IBM Plex Sans',sans-serif;line-height:1.6;position:relative;overflow-x:hidden;}
body::before,body::after{content:'';position:fixed;border-radius:50%;pointer-events:none;filter:blur(100px);opacity:.16;z-index:0;}
body::before{width:560px;height:560px;top:-180px;right:-160px;background:radial-gradient(circle,var(--cta),transparent 70%);}
body::after{width:460px;height:460px;bottom:-160px;left:-160px;background:radial-gradient(circle,var(--cta-dim),transparent 70%);}
a{color:inherit;text-decoration:none;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* ===== Scrollbar customizada (Chrome/Edge + Firefox) ===== */
*{scrollbar-width:thin;scrollbar-color:var(--line) transparent;}
*::-webkit-scrollbar{width:9px;height:9px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:var(--line);border-radius:20px;border:2px solid var(--bg);background-clip:padding-box;}
*::-webkit-scrollbar-thumb:hover{background:var(--muted-2);background-clip:padding-box;}

/* ===== Destaque ao chegar numa âncora (rolagem menos seca) ===== */
:target{animation:ep-anchor-flash 1.4s ease-out;}
@keyframes ep-anchor-flash{
  0%{box-shadow:0 0 0 0 rgba(61,220,151,0);}
  15%{box-shadow:0 0 0 3px rgba(61,220,151,.35);}
  100%{box-shadow:0 0 0 0 rgba(61,220,151,0);}
}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:100;margin:0;}
.ep-wrap{max-width:1120px;margin:0 auto;padding:0 24px;position:relative;z-index:1;}
.ep-kicker{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--cta);letter-spacing:.06em;text-transform:uppercase;}
.ep-icon{width:18px;height:18px;}

/* ===== Header 100% fixo no topo ===== */
.ep-header{position:sticky;top:0;left:0;width:100%;z-index:100;background:rgba(10,10,12,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft);}
.ep-header .ep-wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.ep-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;width:100%;padding:16px 0;box-sizing:border-box;}
.ep-logo-link{grid-column:1;justify-self:start;display:inline-flex;align-items:center;line-height:1;}
.ep-logo-img{height:20px;width:auto;display:block;}
.ep-logo-mark{grid-column:1;justify-self:start;font-family:'Russo One',sans-serif;font-size:20px;letter-spacing:.01em;color:var(--cta);text-transform:lowercase;line-height:1;}
.ep-nav-links{grid-column:2;justify-self:center;display:flex;align-items:center;gap:24px;font-size:13.5px;color:#B9B9C2;}
.ep-nav-links a{text-decoration:none;}
.ep-nav-links a:hover,.ep-nav-links a.is-active{color:var(--text);}
.ep-nav-cta{grid-column:3;justify-self:end;background:var(--cta);color:var(--cta-ink);font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:13px;padding:10px 20px;border-radius:8px;text-decoration:none;flex-shrink:0;}
@media (max-width:760px){.ep-nav-links{display:none;}}

/* ===== Menu hambúrguer (tablet/mobile) ===== */
.ep-hamburger-btn{grid-column:3;justify-self:end;display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:var(--cta);border:none;border-radius:9px;cursor:pointer;flex-shrink:0;}
.ep-hamburger-btn span{display:block;width:16px;height:2px;background:var(--cta-ink);margin:0 auto;border-radius:2px;transition:transform .2s,opacity .2s;}
.ep-hamburger-btn.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ep-hamburger-btn.is-active span:nth-child(2){opacity:0;}
.ep-hamburger-btn.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:760px){.ep-hamburger-btn{display:flex;}.ep-nav-cta{display:none;}}

.ep-mobile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:150;display:none;}
.ep-mobile-overlay.is-open{display:block;}
.ep-mobile-drawer{position:fixed;top:0;left:0;bottom:0;width:min(320px,86vw);background:var(--panel);border-right:1px solid var(--line);z-index:160;transform:translateX(-100%);transition:transform .25s ease;display:flex;flex-direction:column;}
.ep-mobile-drawer.is-open{transform:translateX(0);}
.ep-mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);flex-shrink:0;}
.ep-mobile-drawer-body{padding:16px 20px 30px;overflow-y:auto;}

/* ===== Mega menu "Ferramentas" (desktop, fixo e centralizado na tela —
   nunca relativo ao botão, senão corta em telas menores) ===== */
.ep-nav-dropdown{position:relative;}
.ep-nav-dropdown-btn{background:none;border:none;color:var(--muted);font-family:'IBM Plex Sans',sans-serif;font-size:13.5px;cursor:pointer;display:flex;align-items:center;gap:5px;padding:0;}
.ep-nav-dropdown-btn:hover,.ep-nav-dropdown-btn[aria-expanded="true"]{color:var(--text);}
.ep-nav-dropdown-btn svg{width:13px;height:13px;transition:transform .15s;}
.ep-nav-dropdown-btn[aria-expanded="true"] svg{transform:rotate(180deg);}
.ep-mega{position:fixed;top:82px;left:50%;transform:translateX(-50%);width:min(1120px,94vw);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px 28px;display:none;grid-template-columns:repeat(4,1fr);gap:16px 24px;box-shadow:0 20px 50px rgba(0,0,0,.5);z-index:50;max-height:calc(100vh - 110px);overflow-y:auto;}
.ep-mega.is-open{display:grid;}
.ep-mega-col{min-width:0;}
.ep-mega-cat-title{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--cta);letter-spacing:.06em;margin-bottom:10px;white-space:nowrap;}
.ep-mega-item{display:flex;align-items:center;gap:9px;padding:7px 8px;margin:0 -8px;border-radius:8px;font-size:12.5px;color:var(--muted);}
.ep-mega-item:hover{background:var(--panel-3);color:var(--text);}
.ep-mega-item .ep-mega-icon{width:26px;height:26px;border-radius:7px;background:var(--panel-3);display:flex;align-items:center;justify-content:center;color:var(--cta);flex-shrink:0;}
.ep-mega-item .ep-mega-icon svg{width:14px;height:14px;}
.ep-mega-item .ep-mega-name{white-space:normal;line-height:1.25;}
@media (max-width:900px){.ep-mega{grid-template-columns:repeat(2,1fr);}}

/* ===== Botões (mesma forma/peso do núcleo, só a cor muda) ===== */
.ep-btn{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px;padding:13px 26px;border-radius:9px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;}
.ep-btn-cta{background:var(--cta);color:var(--cta-ink);}
.ep-btn-cta:disabled{opacity:.5;cursor:not-allowed;}
.ep-btn-ghost{border:1px solid var(--line);color:var(--text);background:transparent;}
/* Marca visual persistente de "já cliquei aqui" (ex.: links gerados do
   WhatsApp) — :active só dura o instante do clique, por isso é uma
   classe adicionada via JS no clique, não pseudo-classe CSS. */
.ep-btn-ghost.is-clicked{background:var(--cta-dim);border-color:var(--cta);color:var(--cta);}

/* ===== Hero com vídeo full-width passando por baixo do header ===== */
.ep-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);height:85vh;min-height:580px;margin-top:-71px;padding:71px 0 100px;box-sizing:border-box;overflow:hidden;display:flex;align-items:flex-end;background:#0A0A0C;}
.ep-hero-media{position:absolute;inset:0;top:0;left:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:0;pointer-events:none;}
.ep-hero-video{position:absolute;inset:0;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:0;transition:opacity .6s ease;}
.ep-hero-video.is-loaded{opacity:1;}
.ep-hero-poster{position:absolute;inset:0;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center top;transition:opacity .6s ease;}
.ep-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg, rgba(10,10,12,0.80) 0%, rgba(10,10,12,0.55) 42%, rgba(10,10,12,0.20) 72%, rgba(10,10,12,0.05) 100%),linear-gradient(180deg, rgba(10,10,12,0.15) 0%, transparent 25%, transparent 70%, rgba(10,10,12,0.95) 100%);z-index:1;}
.ep-hero-inner{max-width:1120px;width:100%;margin:0 auto;padding:0 24px;position:relative;z-index:2;text-align:left;display:flex;flex-direction:column;align-items:flex-start;}
.ep-hero h1{font-size:clamp(28px,4vw,46px);font-weight:100;line-height:1.15;letter-spacing:-0.02em;max-width:725px;margin:14px 0 18px;text-align:left;position:relative;z-index:1;text-shadow:0 2px 14px rgba(0,0,0,0.65);}
.ep-hero h1 span{color:var(--cta);font-weight:300;}
.ep-hero p{color:var(--text);opacity:.92;font-size:15.5px;line-height:1.6;max-width:580px;margin:0 0 24px;text-align:left;position:relative;z-index:1;text-shadow:0 1px 8px rgba(0,0,0,0.7);}
.ep-hero-ctas{display:flex;gap:12px;justify-content:flex-start;flex-wrap:wrap;position:relative;z-index:1;}
.ep-hero .ep-btn-ghost{border:1px solid var(--cta);color:var(--cta);transition:all .18s ease;}
.ep-hero .ep-btn-ghost:hover{border-color:var(--cta);background:var(--cta-dim);color:var(--cta);}
.ep-hero-free{margin-top:18px;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);position:relative;z-index:1;text-align:left;}
.ep-hero-free b{color:var(--cta);}
.ep-hero .ep-kicker{margin:0;align-self:flex-start;position:relative;z-index:1;text-shadow:0 1px 8px rgba(0,0,0,0.8);}


/* ===== Grade de ferramentas ===== */
.ep-cat{margin:96px 0;}
.ep-cat h2{font-size:clamp(24px,3.4vw,34px);margin-bottom:6px;}
.ep-cat .ep-desc{color:var(--muted);font-size:14.5px;margin:0 0 26px;}
.ep-tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.ep-tool-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;transition:border-color .15s;display:flex;flex-direction:column;}
.ep-tool-card:hover{border-color:var(--cta-dim);}
.ep-tool-card .ep-tool-icon{width:38px;height:38px;border-radius:10px;background:var(--panel-3);display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--cta);}
.ep-tool-card .ep-tool-icon svg{width:20px;height:20px;}
.ep-tool-card .ep-tool-t{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14.5px;margin-bottom:6px;}
.ep-tool-card p{color:var(--muted);font-size:12.5px;margin:0 0 14px;min-height:34px;flex:1;}
.ep-tool-card .ep-tool-foot{display:flex;align-items:center;justify-content:space-between;}
.ep-credit-badge{font-family:'IBM Plex Mono',monospace;font-size:10.5px;padding:3px 9px;border-radius:20px;border:1px solid var(--line);color:var(--muted-2);}
.ep-credit-badge.free{color:var(--cta);border-color:var(--cta-dim);}
.ep-tool-card .ep-tool-open{font-size:12px;color:var(--muted);text-decoration:none;}
.ep-tool-card .ep-tool-open:hover{color:var(--cta);}
.ep-tag-new{font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--bg);background:var(--cta);padding:2px 7px;border-radius:10px;margin-left:8px;vertical-align:2px;}

/* ===== Para quem é (audiência) ===== */
.ep-audience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;}
.ep-audience-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;}
.ep-audience-icon{width:40px;height:40px;border-radius:10px;background:var(--panel-3);display:flex;align-items:center;justify-content:center;color:var(--cta);margin-bottom:16px;}
.ep-audience-icon svg{width:20px;height:20px;}
.ep-audience-card h3{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;margin-bottom:8px;}
.ep-audience-card p{color:var(--muted);font-size:13px;margin:0;}

/* ===== Como funciona — 4 caixas na mesma linha ===== */
.ep-features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.ep-feature-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 22px;}
.ep-feature-icon{width:44px;height:44px;border-radius:11px;background:var(--panel-3);display:flex;align-items:center;justify-content:center;color:var(--cta);margin-bottom:18px;}
.ep-feature-icon svg{width:22px;height:22px;}
.ep-feature-card h3{font-family:'Space Grotesk',sans-serif;font-size:16px;font-weight:700;margin-bottom:10px;}
.ep-feature-card p{color:var(--muted);font-size:13.5px;line-height:1.65;margin:0;}
@media (max-width:900px){.ep-features-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.ep-features-grid{grid-template-columns:1fr;}}

/* ===== Vantagens ===== */
.ep-advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
.ep-advantage{display:flex;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;}
.ep-advantage-check{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--cta-dim);display:flex;align-items:center;justify-content:center;color:var(--cta);}
.ep-advantage-check svg{width:14px;height:14px;}
.ep-advantage strong{display:block;font-family:'Space Grotesk',sans-serif;font-size:13.5px;color:var(--text);margin-bottom:4px;}
.ep-advantage p{color:var(--muted);font-size:12.5px;margin:0;}

/* ===== Depoimentos ===== */
.ep-testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;}
.ep-testimonial{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;}
.ep-testimonial p{color:var(--text);font-size:13.5px;font-style:italic;margin:0 0 14px;line-height:1.6;}
.ep-testimonial-author{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:12.5px;color:var(--cta);}
.ep-testimonial-author span{color:var(--muted-2);font-family:'IBM Plex Sans',sans-serif;font-weight:400;}

/* ===== Créditos (seção da landing) ===== */
.ep-credits-box{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:40px;margin:64px 0;display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center;}
.ep-credits-box h2{font-size:26px;margin-bottom:12px;}
.ep-credits-box p{color:var(--muted);font-size:14px;max-width:440px;}
.ep-credit-plan{background:var(--panel-3);border:1px solid var(--line);border-radius:12px;padding:22px;}
.ep-credit-plan .n{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:700;}
.ep-credit-plan .l{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted-2);text-transform:uppercase;margin-top:4px;}
@media (max-width:760px){.ep-credits-box{grid-template-columns:1fr;}}

/* ===== Banner de crédito diário (topo de toda ferramenta) ===== */
.ep-credit-banner{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--cta-dim);border-radius:12px;padding:14px 18px;margin:28px 0;font-size:14.5px;color:var(--muted);}
.ep-credit-banner strong{color:var(--text);display:block;font-family:'Space Grotesk',sans-serif;}
.ep-credit-banner .ep-credit-icon{color:var(--cta);flex-shrink:0;}
.ep-credit-banner.is-empty{border-color:var(--danger);}
.ep-credit-banner.is-empty .ep-credit-icon{color:var(--danger);}
.ep-credit-banner.is-empty strong{color:var(--danger);}

/* ===== Cabeçalho de página de ferramenta ===== */
.ep-tool-page{padding:44px 0 80px;}
.ep-tool-head{margin-bottom:8px;}
.ep-tool-head h1{font-size:clamp(24px,4vw,34px);margin:10px 0 8px;}
.ep-tool-head p{color:var(--muted);font-size:15.5px;max-width:640px;margin:0;}
.ep-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);text-decoration:none;margin-bottom:18px;}
.ep-back:hover{color:var(--text);}

/* ===== Barra superior (voltar + ajuda) ===== */
.ep-tool-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ep-tool-topbar .ep-back{margin-bottom:0;}

/* ===== Botão "Ajuda" (ícone boia) + modal ===== */
.ep-help-btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:9px 16px 9px 12px;font-size:14px;color:var(--muted);cursor:pointer;font-family:'IBM Plex Sans',sans-serif;margin-bottom:18px;}
.ep-help-btn:hover{color:var(--text);border-color:var(--cta-dim);}
.ep-help-btn svg{width:16px;height:16px;color:var(--cta);flex-shrink:0;}

.ep-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:none;align-items:center;justify-content:center;z-index:200;padding:20px;}
.ep-modal-overlay.is-open{display:flex;}
.ep-modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;max-width:720px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.ep-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:24px 30px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);border-radius:18px 18px 0 0;}
.ep-modal-head h3{font-family:'Space Grotesk',sans-serif;font-size:21px;margin:0;}
.ep-modal-body{padding:30px;font-size:15.5px;color:var(--muted);line-height:1.8;}
.ep-modal-body h4{color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:16.5px;margin:24px 0 10px;}
.ep-modal-body h4:first-child{margin-top:0;}
.ep-modal-body ol,.ep-modal-body ul{margin:0 0 16px;padding-left:22px;}
.ep-modal-body li{margin-bottom:9px;}
.ep-modal-body code{background:var(--panel-2);padding:2px 8px;border-radius:5px;font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--cta);}
.ep-modal-body p{margin:0 0 16px;}
.ep-modal-body strong{color:var(--text);}
.ep-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;margin-top:24px;}

/* ===== Layout de duas colunas (form + preview) — ex.: Dados Estruturados ===== */
.ep-two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:start;}
.ep-two-col .ep-panel{margin-top:0;}
.ep-two-col .ep-panel-sticky{position:sticky;top:20px;}
@media (max-width:860px){.ep-two-col{grid-template-columns:1fr;}.ep-two-col .ep-panel-sticky{position:static;}}
.ep-fieldset{border:none;padding:0;margin:0 0 22px;}
.ep-fieldset legend{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14px;color:var(--text);margin-bottom:12px;padding:0;display:flex;align-items:center;gap:8px;}
.ep-fieldset legend svg{width:16px;height:16px;color:var(--cta);}
.ep-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:14px;}
.ep-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);}
.ep-check input{accent-color:var(--cta);width:15px;height:15px;}

/* ===== Layout padrão de ferramenta de imagem: upload ocupa 100% da
   largura até a primeira imagem entrar; a partir daí (.has-files) o
   upload encolhe para uma coluna de 70% — com a lista de imagens logo
   abaixo dele — e os controles aparecem numa coluna de 30% à direita. */
.ep-tool-layout{display:block;}
.ep-tool-layout.has-files{display:grid;grid-template-columns:7fr 3fr;gap:24px;align-items:start;}
.ep-tool-left{display:flex;flex-direction:column;gap:18px;min-width:0;}
.ep-tool-layout.has-files .ep-dropzone{padding:22px;}
.ep-tool-layout.has-files .ep-dropzone .ep-dz-icon{margin-bottom:6px;}
.ep-tool-layout.has-files .ep-dropzone .ep-dz-hide-when-compact{display:none;}
.ep-tool-layout.has-files .ep-tool-controls{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:20px;position:sticky;top:20px;}
.ep-tool-layout.has-files .ep-tool-controls .ep-btn{width:100%;justify-content:center;margin-bottom:10px;}
.ep-tool-layout.has-files .ep-tool-controls .ep-btn:last-of-type{margin-bottom:0;}
@media (max-width:760px){.ep-tool-layout.has-files{grid-template-columns:1fr;}.ep-tool-layout.has-files .ep-tool-controls{position:static;}}

/* ===== Dica curta abaixo de um campo ===== */
.ep-field-hint{font-size:12.5px;color:var(--muted-2);margin-top:7px;line-height:1.4;}

/* ===== Dropzone / upload ===== */
.ep-dropzone{border:2px dashed var(--line);border-radius:14px;padding:36px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--panel-2);}
.ep-dropzone:hover,.ep-dropzone.is-dragover{border-color:var(--cta);background:var(--panel-3);}
.ep-dropzone input[type=file]{display:none;}
.ep-dropzone .ep-dz-icon{color:var(--cta);margin-bottom:10px;}
.ep-dropzone p{margin:4px 0;color:var(--muted);font-size:15px;}

.ep-file-list{margin-top:18px;display:flex;flex-direction:column;gap:10px;}
.ep-file-item{display:flex;align-items:center;gap:14px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 14px;}
.ep-file-item img{width:44px;height:44px;object-fit:cover;border-radius:6px;background:var(--panel-3);}
.ep-file-item .ep-file-meta{flex:1;min-width:0;}
.ep-file-item .ep-file-name{font-size:14.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ep-file-item .ep-file-size{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted-2);}
.ep-file-item .ep-file-size .ep-saved{color:var(--cta);}
.ep-file-item .ep-file-actions{display:flex;gap:6px;}
.ep-icon-btn{background:transparent;border:1px solid var(--line);border-radius:8px;padding:7px;color:var(--muted);cursor:pointer;display:flex;}
.ep-icon-btn:hover{color:var(--text);border-color:var(--muted);}

/* ===== Form controls genéricos ===== */
.ep-field{margin-bottom:18px;}
.ep-field label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);margin-bottom:8px;font-family:'IBM Plex Mono',monospace;}
.mt-30,.ep-mt-30{margin-top:30px !important;}
.ep-field input[type=text],.ep-field input[type=url],.ep-field input[type=email],.ep-field input[type=tel],.ep-field input[type=number],.ep-field input[type=date],.ep-field input[type=time],.ep-field select,.ep-field textarea{
  width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:11px 14px;font-family:'IBM Plex Sans',sans-serif;font-size:14px;color-scheme:dark;
}
.ep-field input:focus,.ep-field select:focus,.ep-field textarea:focus{outline:none;border-color:var(--cta);}
.ep-field input[type=range]{width:100%;accent-color:var(--cta);}
/* input[type=date] no Chrome/Edge: o ícone do calendário some em fundo
   escuro sem inverter (é um ícone preto fixo, não segue currentColor). */
.ep-field input[type=date]::-webkit-calendar-picker-indicator,.ep-field input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer;}

.ep-color-field{width:56px;height:40px;padding:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;cursor:pointer;color-scheme:dark;}

/* ===== Toggle switch (nunca checkbox nativo, mesma regra do núcleo Blackship) ===== */
.ep-switch-row{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--muted);}
.ep-switch{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0;}
.ep-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.ep-switch .ep-switch-track{position:absolute;inset:0;background:var(--panel-3);border:1px solid var(--line);border-radius:20px;transition:background .15s,border-color .15s;}
.ep-switch .ep-switch-track::before{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s;}
.ep-switch input:checked ~ .ep-switch-track{background:var(--cta-dim);border-color:var(--cta);}
.ep-switch input:checked ~ .ep-switch-track::before{transform:translateX(16px);background:var(--cta);}
.ep-switch input:focus-visible ~ .ep-switch-track{outline:2px solid var(--cta);outline-offset:2px;}

/* ===== Checkbox de seleção sobre miniatura (Extrator de Imagens) —
   componente próprio, não é o toggle switch encolhido (isso quebrava o
   alinhamento do círculo, que não escala junto com a trilha). ===== */
.ep-img-select{position:absolute;top:8px;left:8px;z-index:2;width:22px;height:22px;cursor:pointer;}
.ep-img-select input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.ep-img-select-box{position:absolute;inset:0;background:rgba(10,10,12,.75);border:1.5px solid rgba(255,255,255,.6);border-radius:6px;display:flex;align-items:center;justify-content:center;color:transparent;transition:background .12s,border-color .12s,color .12s;}
.ep-img-select-box svg{width:14px;height:14px;}
.ep-img-select input:checked ~ .ep-img-select-box{background:var(--cta);border-color:var(--cta);color:var(--cta-ink);}

/* ===== Upload de arquivo mascarado (nunca o <input type=file> nativo à mostra) ===== */
.ep-file-mask{position:relative;display:inline-flex;}
.ep-file-mask input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;}
.ep-file-mask .ep-file-mask-btn{display:inline-flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 16px;font-size:14.5px;color:var(--muted);font-family:'IBM Plex Sans',sans-serif;pointer-events:none;}
.ep-file-mask:hover .ep-file-mask-btn{border-color:var(--cta-dim);color:var(--text);}
.ep-file-mask .ep-file-mask-btn svg{width:15px;height:15px;color:var(--cta);}
.ep-file-mask-name{font-size:12px;color:var(--muted-2);font-family:'IBM Plex Mono',monospace;margin-top:6px;}
.ep-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;}
.ep-row .ep-field{flex:1;min-width:180px;margin-bottom:0;}

/* ===== Roda de cores interativa (Gerador de Paleta) ===== */
.ep-wheel-wrap{position:relative;width:220px;height:220px;touch-action:none;}
.ep-wheel-wrap canvas{border-radius:50%;cursor:crosshair;}
.ep-wheel-marker{position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);transform:translate(-50%,-50%);pointer-events:none;}
.ep-wheel-marker.is-base{width:22px;height:22px;border-width:3px;cursor:grab;pointer-events:auto;z-index:2;}
.ep-wheel-marker.is-base:active{cursor:grabbing;}

/* ===== Seletor de modo (segmented control) — ex.: largura/altura/custom ===== */
.ep-mode-switch{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px;}
.ep-mode-btn{background:none;border:1px solid var(--line);color:var(--muted);font-family:'IBM Plex Sans',sans-serif;font-size:14px;padding:9px 15px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.ep-mode-btn:hover{color:var(--text);border-color:var(--line);}
.ep-mode-btn.is-active{background:var(--cta);color:var(--cta-ink);font-weight:600;border-color:transparent;}
.ep-icon-inline{width:13px;height:13px;flex-shrink:0;}

.ep-result{margin-top:20px;padding:18px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line);}
.ep-result.is-error{border-color:var(--danger);}
.ep-result h3{font-size:15px;margin-bottom:10px;}
.ep-result pre{white-space:pre-wrap;word-break:break-word;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin:0;}
.ep-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:12px;}
.ep-result-grid + .ep-btn,.ep-result-grid + p + .ep-btn{margin-top:16px;}
.ep-result-thumb{border-radius:8px;overflow:hidden;border:1px solid var(--line);}
.ep-result-thumb img{width:100%;display:block;}

/* ===== Barra de progresso durante ações ===== */
.ep-progress{height:6px;border-radius:999px;background:var(--panel-3);overflow:hidden;margin-top:16px;display:none;}
.ep-progress.is-visible{display:block;}
.ep-progress-fill{height:100%;background:var(--cta);border-radius:999px;width:0%;transition:width .25s ease;}
.ep-progress.is-indeterminate .ep-progress-fill{width:30%;animation:ep-progress-slide 1.1s ease-in-out infinite;}
@keyframes ep-progress-slide{
  0%{margin-left:-30%;}
  100%{margin-left:100%;}
}

/* ===== "Em construção" (ferramentas dependentes de IA/infra futura) ===== */
.ep-em-breve{text-align:center;padding:60px 24px;background:var(--panel);border:1px dashed var(--line);border-radius:16px;margin-top:24px;}
.ep-em-breve-icon{color:var(--cta);display:flex;justify-content:center;margin-bottom:14px;}
.ep-em-breve h2{font-size:20px;margin-bottom:10px;}
.ep-em-breve p{color:var(--muted);font-size:14px;max-width:440px;margin:0 auto 6px;}
.ep-em-breve-sub{font-family:'IBM Plex Mono',monospace;font-size:11.5px !important;color:var(--muted-2) !important;margin-top:14px !important;}
.ep-em-breve .ep-btn{margin-top:20px;}

/* ===== Footer ===== */
.ep-footer{padding:50px 0 60px;border-top:1px solid var(--line);margin-top:40px;text-align:center;}
.ep-brand-footer{display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--muted-2);text-decoration:none;}
.ep-brand-footer img{height:15px;}
.ep-brand-footer:hover{color:var(--muted);}

/* ===== Lightbox / carrossel (preview ampliado de imagem processada) ===== */
.ep-lightbox-overlay{position:fixed;inset:0;background:rgba(5,5,6,.92);z-index:300;display:none;flex-direction:column;align-items:center;justify-content:center;padding:24px;}
.ep-lightbox-overlay.is-open{display:flex;}
.ep-lightbox-close{position:absolute;top:20px;right:24px;background:var(--panel-2);border:1px solid var(--line);border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer;}
.ep-lightbox-close svg{width:18px;height:18px;}
.ep-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:var(--panel-2);border:1px solid var(--line);border-radius:50%;width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer;}
.ep-lightbox-nav:hover{background:var(--panel-3);border-color:var(--cta-dim);}
.ep-lightbox-nav svg{width:24px;height:24px;}
.ep-lightbox-prev{left:16px;}
.ep-lightbox-next{right:16px;}
.ep-lightbox-body{max-width:min(1200px,92vw);max-height:78vh;width:100%;display:flex;flex-direction:column;align-items:stretch;gap:18px;}
.ep-lightbox-single img{max-width:100%;max-height:66vh;border-radius:14px;display:block;margin:0 auto;box-shadow:0 20px 60px rgba(0,0,0,.5);}
/* Slider de comparação antes/depois — arrasta para esquerda revela o
   "depois" (a camada de baixo), arrasta para direita revela o "antes" (a
   camada de cima, recortada por clip-path). */
.ep-compare-slider{position:relative;width:100%;max-width:900px;margin:0 auto;height:min(60vh,600px);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);background:var(--panel-2);touch-action:none;user-select:none;cursor:ew-resize;}
.ep-compare-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--panel-2);pointer-events:none;}
.ep-compare-before{clip-path:inset(0 50% 0 0);}
.ep-compare-tag{position:absolute;top:14px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;background:rgba(10,10,12,.7);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:5px 12px;color:var(--text);pointer-events:none;}
.ep-compare-tag-before{left:14px;}
.ep-compare-tag-after{right:14px;color:var(--cta);}
.ep-compare-handle{position:absolute;top:0;bottom:0;left:50%;width:0;border-left:2px solid #fff;transform:translateX(-1px);pointer-events:none;}
.ep-compare-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:#fff;color:var(--bg);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.4);}
.ep-compare-grip svg{width:20px;height:20px;}
@media (max-width:760px){.ep-lightbox-nav{width:42px;height:42px;}.ep-lightbox-prev{left:6px;}.ep-lightbox-next{right:6px;}}
.ep-lightbox-info{text-align:center;color:var(--text);}
.ep-lightbox-info .ep-lightbox-name{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px;margin-bottom:4px;}
.ep-lightbox-info .ep-lightbox-meta{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted);}
.ep-lightbox-info .ep-lightbox-meta .ep-saved{color:var(--cta);}
.ep-lightbox-counter{margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted-2);}
.ep-file-item img,.ep-result-thumb img{cursor:zoom-in;}

/* ===== Notificação customizada (nunca alert()/confirm() nativo) ===== */
.ep-toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:999;max-width:340px;}
.ep-toast{background:var(--panel-3);border:1px solid var(--line);border-radius:10px;padding:13px 16px;font-size:13px;color:var(--text);box-shadow:0 10px 30px rgba(0,0,0,.35);display:flex;align-items:flex-start;gap:10px;animation:ep-toast-in .18s ease-out;}
.ep-toast.ep-toast-success{border-color:var(--cta-dim);}
.ep-toast.ep-toast-error{border-color:var(--danger);}
.ep-toast .ep-toast-icon{flex-shrink:0;margin-top:1px;}
.ep-toast.ep-toast-success .ep-toast-icon{color:var(--cta);}
.ep-toast.ep-toast-error .ep-toast-icon{color:var(--danger);}
@keyframes ep-toast-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ===== Moodboard ===== */
.ep-mb-notice{display:flex;align-items:flex-start;gap:12px;background:var(--panel);border:1px solid var(--warn);border-radius:12px;padding:14px 18px;margin:24px 0;font-size:13.5px;color:var(--muted);line-height:1.55;}
.ep-mb-notice svg{width:19px;height:19px;color:var(--warn);flex-shrink:0;margin-top:1px;}
.ep-mb-notice strong{color:var(--text);}

/* Card "retomar painel" — aparece na tela normal quando já existem
   imagens salvas mas o painel em tela cheia está fechado. */
.ep-mb-resume{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--panel);border:1px solid var(--cta-dim);border-radius:14px;padding:18px 22px;margin-top:18px;}
.ep-mb-resume strong{display:block;font-family:'Space Grotesk',sans-serif;font-size:15px;margin-bottom:2px;}
.ep-mb-resume span{color:var(--muted);font-size:13px;}

/* ===== Painel em tela cheia (100vh/100vw) — pedido do Allan: toda a
   edição acontece aqui a partir do momento que existe 1ª imagem, para
   melhor visibilidade. A entrada de upload na tela normal continua
   sendo a mesma dropzone padrão das outras ferramentas de imagem. ===== */
.ep-mb-modal{position:fixed;inset:0;z-index:300;background:var(--bg);display:none;flex-direction:column;min-height:0;}
.ep-mb-modal.is-open{display:flex;}
.ep-mb-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border-bottom:1px solid var(--line);padding:14px clamp(20px,4vw,48px);flex-shrink:0;}
.ep-mb-name-input{flex:1;min-width:180px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:10px 14px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14px;}
.ep-mb-name-input:focus{outline:none;border-color:var(--cta);}
.ep-mb-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ep-mb-size-control{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);white-space:nowrap;}
.ep-mb-size-control input[type=range]{width:90px;accent-color:var(--cta);}
.ep-mb-size-control span:last-child{width:14px;text-align:center;color:var(--text);}
.ep-mb-toolbar .ep-file-mask-btn{padding:9px 14px;}
.ep-mb-toolbar .ep-file-mask-name{display:none;}

/* O scroll vertical PRECISA ficar num wrapper separado do elemento que
   tem column-count — se o próprio `column-count` tiver altura
   restrita (flex:1 + overflow-y:auto), o layout multi-coluna não gera
   overflow vertical: ele cria colunas NOVAS para direita (achado ao
   vivo: imagens "vazando" para fora da tela, escondidas atrás de uma
   barra de rolagem horizontal em vez de aparecerem rolando para baixo). */
.ep-mb-board-scroll{flex:1;min-height:0;overflow-y:auto;}
.ep-mb-board{column-gap:14px;column-count:4;padding:24px clamp(20px,4vw,48px) 60px;}
.ep-mb-item{break-inside:avoid;margin-bottom:14px;position:relative;border-radius:10px;overflow:hidden;background:var(--panel-2);cursor:grab;border:1px solid var(--line);}
.ep-mb-item:active{cursor:grabbing;}
.ep-mb-item.is-dragging{opacity:.35;}
.ep-mb-item img{width:100%;display:block;pointer-events:none;}
.ep-mb-item-del{position:absolute;top:8px;right:8px;background:rgba(10,10,12,.75);border:1px solid rgba(255,255,255,.25);color:#fff;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;}
.ep-mb-item-del svg{width:14px;height:14px;}
.ep-mb-item:hover .ep-mb-item-del{opacity:1;}
@media (max-width:760px){.ep-mb-board{column-count:2 !important;}}

/* Flash de "pode soltar aqui" — mais forte que só trocar borda, para
   ficar óbvio em qualquer lugar da tela (dropzone normal e o painel
   inteiro em tela cheia). */
.ep-dropzone.is-dragover,.ep-mb-modal.is-dragover{animation:ep-drop-flash .6s ease-in-out infinite alternate;}
.ep-mb-modal.is-dragover{outline:4px dashed var(--cta);outline-offset:-4px;}
@keyframes ep-drop-flash{
  from{background-color:var(--panel-3);}
  to{background-color:var(--cta-dim);}
}

/* ===== Prévia de Compartilhamento — mockups por plataforma (cores
   reais de cada uma, não o tema escuro do site — o objetivo aqui é
   parecer autêntico, igual ao print real da tela do serviço). ===== */
.ep-pv-google{background:#fff;border-radius:12px;padding:22px 24px;max-width:560px;font-family:arial,helvetica,sans-serif;}
.ep-pvg-top{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.ep-pvg-favicon{width:22px;height:22px;border-radius:50%;background:#f1f3f4;object-fit:cover;flex-shrink:0;}
.ep-pvg-host{font-size:14px;color:#202124;}
.ep-pvg-url{font-size:12px;color:#4d5156;word-break:break-all;}
.ep-pvg-title{font-size:20px;color:#1a0dab;line-height:1.3;margin:4px 0 4px;}
.ep-pvg-desc{font-size:14px;color:#4d5156;line-height:1.55;}

.ep-pv-card{max-width:500px;border:1px solid #dadde1;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.ep-pv-card-img{aspect-ratio:1.91/1;background:#e4e6eb;}
.ep-pv-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.ep-pv-card-body{padding:10px 12px;}
.ep-pv-card-host{font-size:11px;color:#65676b;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;}
.ep-pv-card-title{font-size:15px;font-weight:600;color:#050505;line-height:1.3;margin-bottom:3px;}
.ep-pv-card-desc{font-size:13px;color:#65676b;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ep-pv-fb .ep-pv-card-body{background:#f0f2f5;}
.ep-pv-li .ep-pv-card-body{background:#fff;border-top:1px solid #e0e0e0;}
.ep-pv-li .ep-pv-card-title{margin-bottom:4px;}
.ep-pv-li .ep-pv-card-host{text-transform:none;font-size:12px;color:#00000099;margin:0;}

.ep-pv-wa-bg{background:#e5ddd5;border-radius:14px;padding:26px;display:flex;justify-content:flex-end;}
.ep-pv-wa-bubble{max-width:320px;width:100%;background:#d9fdd3;border-radius:10px 10px 2px 10px;overflow:hidden;box-shadow:0 1px 1px rgba(0,0,0,.15);}
.ep-pv-wa-bubble .ep-pv-card-img{aspect-ratio:1.91/1;background:#c7ecc0;}
.ep-pv-wa-bubble .ep-pv-card-body{padding:8px 10px 2px;}
.ep-pv-wa-bubble .ep-pv-card-title{font-size:13.5px;color:#111b21;margin-bottom:3px;}
.ep-pv-wa-bubble .ep-pv-card-desc{font-size:12.5px;color:#3f4a4f;-webkit-line-clamp:2;margin-bottom:4px;}
.ep-pv-wa-host{font-size:11px;color:#667781;text-transform:uppercase;padding:0 10px 8px;}
.ep-pv-wa-text{padding:2px 10px 9px;font-size:13.5px;color:#111b21;font-family:arial,helvetica,sans-serif;}

/* ===== Gravador de Tela ===== */
.ep-rec-badge{display:inline-flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--danger);border-radius:20px;padding:8px 16px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.04em;color:var(--danger);}
.ep-rec-dot{width:9px;height:9px;border-radius:50%;background:var(--danger);animation:ep-rec-pulse 1.2s ease-in-out infinite;}
@keyframes ep-rec-pulse{0%,100%{opacity:1;}50%{opacity:.25;}}
.ep-video-preview{width:100%;max-height:60vh;border-radius:14px;display:block;background:#000;}

/* ===== Webcam Flutuante Arrastável na Tela (EasePlus) ===== */
.ep-cam-bubble{
  position:fixed;
  z-index:99999;
  cursor:grab;
  user-select:none;
  touch-action:none;
  filter:drop-shadow(0 12px 28px rgba(0,0,0,0.65));
  transition:width .18s ease, height .18s ease, border-radius .18s ease;
}
.ep-cam-bubble:active{
  cursor:grabbing;
  filter:drop-shadow(0 18px 36px rgba(0,0,0,0.85));
}
.ep-cam-bubble-handle{
  position:relative;
  width:100%;
  height:100%;
  border-radius:inherit;
  overflow:hidden;
  border:2.5px solid var(--cta);
  background:#0B0F14;
  box-sizing:border-box;
}
.ep-cam-bubble video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  pointer-events:none;
  transform:scaleX(-1);
}
.ep-cam-bubble-badge{
  position:absolute;
  top:6px;
  left:50%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:rgba(10,10,12,0.8);
  backdrop-filter:blur(6px);
  padding:2px 8px;
  border-radius:12px;
  font-family:'IBM Plex Mono',monospace;
  font-size:9.5px;
  letter-spacing:.04em;
  color:var(--cta);
  pointer-events:none;
  opacity:0;
  transition:opacity .15s ease;
}
.ep-cam-bubble:hover .ep-cam-bubble-badge{
  opacity:1;
}

/* Tamanhos: Pequeno BEM MENOR e discreto */
.ep-cam-bubble.is-size-sm{ width:120px; height:120px; }
.ep-cam-bubble.is-size-md{ width:175px; height:175px; }
.ep-cam-bubble.is-size-lg{ width:245px; height:245px; }

/* Formatos */
.ep-cam-bubble.is-shape-circle{ border-radius:50%; }
.ep-cam-bubble.is-shape-rounded{ border-radius:18px; }
.ep-cam-bubble.is-shape-rounded.is-size-sm{ height:90px; }
.ep-cam-bubble.is-shape-rounded.is-size-md{ height:130px; }
.ep-cam-bubble.is-shape-rounded.is-size-lg{ height:185px; }

::selection{background:var(--cta);color:var(--cta-ink);}

/* ===== Fade-in ao rolar (ver assets/js/fade-in.js) ===== */
.ep-fade{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease;}
.ep-fade.is-visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){.ep-fade{opacity:1;transform:none;transition:none;}}

/* ===== Página 404 ===== */
.ep-404-hero{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  min-height:100vh;
  padding:40px 0 55px;
  box-sizing:border-box;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:#0A0A0C;
}
.ep-404-logo-wrap{
  display:inline-block;
  margin-bottom:14px;
  transition:transform .18s ease;
}
.ep-404-logo-wrap:hover{
  transform:scale(1.03);
}
.ep-404-logo-img{
  height:26px;
  width:auto;
  display:block;
  filter:drop-shadow(0 2px 12px rgba(0,0,0,0.9));
}
.ep-404-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
  z-index:0;
  pointer-events:none;
}
.ep-404-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 15%;
}
.ep-404-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,10,12,0.35) 0%, transparent 30%, rgba(10,10,12,0.45) 58%, rgba(10,10,12,0.90) 80%, rgba(10,10,12,0.98) 100%);
  z-index:1;
}
.ep-404-inner{
  max-width:1120px;
  width:100%;
  margin:0 auto;
  padding:0 24px;
  position:relative;
  z-index:2;
  text-align:left;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.ep-404-code{
  font-family:'Space Grotesk',sans-serif;
  font-weight:800;
  font-size:clamp(80px, 12vw, 150px);
  line-height:0.9;
  letter-spacing:-0.04em;
  color:var(--cta);
  margin:0 0 10px;
  text-shadow:0 6px 30px rgba(61,220,151,0.3);
}
.ep-404-title{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:clamp(22px, 3.2vw, 36px);
  line-height:1.15;
  letter-spacing:-0.01em;
  color:#FFFFFF;
  margin:0 0 14px;
  text-transform:uppercase;
  text-shadow:0 2px 14px rgba(0,0,0,0.85);
}
.ep-404-desc{
  font-size:16px;
  color:var(--text);
  opacity:0.92;
  max-width:540px;
  margin:0 0 24px;
  line-height:1.6;
  text-shadow:0 1px 8px rgba(0,0,0,0.8);
}
@media (max-width:768px){
  .ep-404-hero{
    min-height:100vh;
    padding:24px 0 40px;
  }
  .ep-404-img{
    object-position:center 10%;
  }
}
