/* ============================================================
   MEMOrIA XR · um estúdio WeSense
   Site-exposição. Dark mode nativo. Mobile-first.
   Forma: editorial de museu — imagem imediata, alpha, camadas,
   parallax orgânico, mediação. Sem véu sobre as imagens.
   ============================================================ */

:root {
  --c-carvao: #0B0908;
  --c-pergaminho: #F2EBDD;
  --c-brasa: #D94A1E;
  --c-ouro: #C9A24B;          /* dourado de inscrição (acento curatorial) */
  --c-cianotipia: #1E3A8A;
  --c-cinabrio: #8B7D6B;

  --perg-90: rgba(242,235,221,.90);
  --perg-70: rgba(242,235,221,.70);
  --perg-55: rgba(242,235,221,.55);
  --perg-12: rgba(242,235,221,.12);
  --perg-06: rgba(242,235,221,.06);
  --carv-95: rgba(11,9,8,.95);
  --carv-80: rgba(11,9,8,.80);
  --carv-40: rgba(11,9,8,.40);
  --cinab-40: rgba(139,125,107,.40);
  --ouro-50: rgba(201,162,75,.5);
  --ouro-15: rgba(201,162,75,.15);
  --brasa-14: rgba(217,74,30,.14);

  --ff-lapide: "Fraunces", Georgia, "Times New Roman", serif;
  --ff-corpo: "Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --ff-margem: "JetBrains Mono", "Courier New", monospace;

  --fs-2xs:.75rem; --fs-xs:.875rem; --fs-sm:1rem; --fs-md:1.25rem;
  --fs-lg:1.563rem; --fs-xl:1.953rem; --fs-2xl:2.441rem; --fs-3xl:3.052rem;
  --fs-4xl:3.815rem; --fs-5xl:4.768rem; --fs-6xl:5.96rem;

  --sp-3:1rem; --sp-4:1.5rem; --sp-5:2rem; --sp-6:3rem; --sp-7:4rem; --sp-8:6rem; --sp-9:8rem;

  --ease-arch: cubic-bezier(.16,1,.3,1);
  --ease-def: cubic-bezier(.4,0,.2,1);

  --wrap:1200px; --wrap-narrow:760px; --gutter:2rem; --rail-w:0px;
}
@media (min-width:1100px){ :root{ --rail-w:128px; } }
@media (max-width:760px){
  :root{ --gutter:1.4rem; --fs-6xl:3.4rem; --fs-5xl:3rem; --fs-4xl:2.5rem; --fs-3xl:2.2rem; --fs-2xl:1.9rem; }
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
html{ overflow-x:hidden; }
body{
  margin:0; font-family:var(--ff-corpo); font-size:var(--fs-sm); line-height:1.65;
  color:var(--c-pergaminho); background:var(--c-carvao); overflow-x:clip;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; padding:0; }
::selection{ background:var(--c-brasa); color:var(--c-pergaminho); }

.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); width:100%; }
.wrap--narrow{ max-width:var(--wrap-narrow); }
.band{ padding-block:var(--sp-9); border-top:1px solid var(--perg-06); position:relative; }
@media (max-width:760px){ .band{ padding-block:var(--sp-8); } }

/* ===================== Wordmark ===================== */
.wordmark{ font-family:var(--ff-lapide); font-variation-settings:"opsz" 144; letter-spacing:-.02em; white-space:nowrap; display:inline-flex; align-items:baseline; line-height:1; }
.wordmark__ext{ font-weight:800; }
.wordmark__int{ font-weight:300; font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1; padding-inline:.01em; }
.wordmark__xr{ font-family:var(--ff-margem); font-weight:500; font-size:.4em; letter-spacing:.12em; color:var(--c-cinabrio); margin-left:.5em; transform:translateY(-.1em); }
.wordmark--xl{ font-size:clamp(2.8rem,7vw,5rem); }
.wordmark--sm{ font-size:1.4rem; }

/* ===================== Rail de percurso ===================== */
.rail{ position:fixed; left:0; top:0; bottom:0; width:var(--rail-w); z-index:40; display:none; align-items:center; pointer-events:none; }
@media (min-width:1100px){ .rail{ display:flex; } }
.rail ol{ list-style:none; margin:0 auto; padding:0; display:flex; flex-direction:column; gap:1.1rem; pointer-events:auto; }
.rail a{ display:flex; align-items:center; gap:.6rem; font-family:var(--ff-margem); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--perg-55); transition:color .3s; }
.rail a::before{ content:""; width:18px; height:1px; background:var(--cinab-40); transition:width .35s var(--ease-arch), background .35s; }
.rail a span{ opacity:0; transform:translateX(-4px); transition:opacity .3s, transform .3s; }
.rail a:hover span, .rail a.is-active span{ opacity:1; transform:none; }
.rail a:hover, .rail a.is-active{ color:var(--c-pergaminho); }
.rail a.is-active::before{ width:34px; background:var(--c-ouro); }

/* ===================== Topbar ===================== */
.topbar{ position:fixed; inset:0 0 auto 0; z-index:50; display:flex; align-items:center; justify-content:space-between;
  padding:1rem var(--gutter); padding-left:max(var(--gutter), var(--rail-w)); background:linear-gradient(to bottom,var(--carv-95),transparent); backdrop-filter:blur(3px); transition:background .4s, padding .4s; }
.topbar[data-scrolled="true"]{ background:var(--carv-95); border-bottom:1px solid var(--perg-06); padding-block:.65rem; }
.topbar__brand .wordmark{ font-size:1.3rem; }
.topbar__links{ display:flex; align-items:center; gap:1.5rem; list-style:none; margin:0; padding:0; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; text-transform:lowercase; }
.topbar__links a{ color:var(--perg-70); padding-bottom:2px; border-bottom:1px solid transparent; transition:color .25s,border-color .25s; }
.topbar__links a:hover{ color:var(--c-pergaminho); border-color:var(--c-brasa); }
.topbar__med{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; color:var(--c-carvao); background:var(--c-ouro); padding:.4rem .8rem; border-radius:2px; transition:background .25s, transform .25s; }
.topbar__med:hover{ background:var(--c-brasa); color:var(--c-pergaminho); transform:translateY(-1px); }
@media (max-width:680px){ .topbar__links li:not(:last-child){ display:none; } }

/* ===================== Hero (imagem + parallax + alpha) ===================== */
.hero{ position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding:8rem var(--gutter) 5rem; padding-left:max(var(--gutter), var(--rail-w)); overflow:hidden; }
.hero__stage{ position:absolute; inset:0; z-index:0; }
.hero__layer{ position:absolute; inset:-8% -4%; }
.hero__layer--img{ background:url("assets/img/abstract.jpg") center/cover no-repeat; filter:saturate(.9) contrast(1.02); will-change:transform; }
.hero__layer--grain{ background-image:radial-gradient(var(--perg-06) .5px, transparent .6px); background-size:3px 3px; opacity:.5; mix-blend-mode:overlay; }
.hero__layer--veil{ background:
    radial-gradient(120% 90% at 18% 64%, var(--carv-95) 0%, transparent 60%),
    linear-gradient(to right, var(--c-carvao) 8%, transparent 62%),
    linear-gradient(to top, var(--c-carvao) 4%, transparent 34%); }
.hero__inner{ position:relative; z-index:2; max-width:var(--wrap); margin-inline:auto; width:100%; will-change:transform; }
.hero__eyebrow{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.18em; text-transform:uppercase; color:var(--c-ouro); margin:0 0 1.6rem; }
.hero__lockup{ margin-bottom:1.8rem; }
.hero__title{ font-family:var(--ff-lapide); font-weight:600; font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 0; font-size:clamp(2rem,5vw,3.8rem); line-height:1.06; letter-spacing:-.02em; margin:0 0 1.5rem; max-width:20ch; }
.hero__title em{ font-style:italic; font-weight:400; color:var(--perg-90); }
.hero__sub{ max-width:56ch; font-size:var(--fs-md); line-height:1.6; color:var(--perg-90); margin:0 0 2.4rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; }
.hero__scrollhint{ position:absolute; bottom:1.6rem; left:50%; transform:translateX(-50%); z-index:2; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.12em; color:var(--perg-55); animation:floaty 3.2s var(--ease-def) infinite; }
@keyframes floaty{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,5px);} }

/* ===================== Botões ===================== */
.btn{ display:inline-flex; align-items:center; font-family:var(--ff-margem); font-size:var(--fs-xs); letter-spacing:.03em; padding:.85rem 1.5rem; border-radius:2px; transition:transform .25s var(--ease-def),background .25s,color .25s,border-color .25s; }
.btn--solid{ background:var(--c-pergaminho); color:var(--c-carvao); }
.btn--solid:hover{ background:var(--c-brasa); color:var(--c-pergaminho); transform:translateY(-2px); }
.btn--ghost{ color:var(--c-pergaminho); border:1px solid var(--cinab-40); }
.btn--ghost:hover{ border-color:var(--c-ouro); color:var(--c-ouro); transform:translateY(-2px); }

/* ===================== Glossário (termo inline + cartão) ===================== */
.gloss{ font:inherit; color:inherit; border-bottom:1px dotted var(--ouro-50); padding-bottom:1px; cursor:help; transition:color .2s,border-color .2s; }
.gloss:hover, .gloss:focus-visible{ color:var(--c-ouro); border-bottom-color:var(--c-ouro); outline:none; }
.gloss--dark{ border-bottom-color:rgba(201,162,75,.6); }
.glosscard{ position:fixed; z-index:90; max-width:300px; background:#16110d; border:1px solid var(--ouro-15); border-radius:4px; padding:.9rem 1rem; box-shadow:0 18px 50px rgba(0,0,0,.55); }
.glosscard__term{ display:block; font-family:var(--ff-lapide); font-style:italic; font-size:var(--fs-md); color:var(--c-ouro); margin-bottom:.3rem; }
.glosscard__def{ margin:0; font-size:var(--fs-xs); line-height:1.55; color:var(--perg-90); }

/* ===================== Tipos editoriais ===================== */
.eyebrow{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.2em; text-transform:uppercase; color:var(--c-ouro); margin:0 0 1.8rem; }
.band--invert .eyebrow{ color:#9a7b32; }
.display{ font-family:var(--ff-lapide); font-weight:600; font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 0; line-height:1.05; letter-spacing:-.02em; margin:0 0 1.6rem; }
.display--lg{ font-size:clamp(2.4rem,6vw,var(--fs-5xl)); }
.display--md{ font-size:clamp(1.9rem,4.4vw,var(--fs-3xl)); }
.lede{ font-size:var(--fs-md); line-height:1.6; max-width:60ch; color:var(--perg-90); margin:0; }
.lede--intro{ margin-bottom:var(--sp-7); }
.statement{ font-family:var(--ff-lapide); font-weight:500; font-size:clamp(1.5rem,3.4vw,var(--fs-2xl)); line-height:1.4; letter-spacing:-.01em; margin:0; color:var(--c-carvao); }
.statement--light{ color:var(--c-pergaminho); }
.statement .strong, .strong{ color:var(--c-ouro); font-weight:600; }
.statement em{ font-style:italic; color:var(--c-brasa); }
.statement__q{ display:inline; font-style:italic; color:var(--c-brasa); }
.statement__q::after{ content:" "; }
.thesis{ font-family:var(--ff-lapide); font-weight:500; font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 1; font-size:clamp(2rem,6vw,var(--fs-4xl)); line-height:1.08; letter-spacing:-.02em; margin:2.4rem 0 0; color:var(--c-carvao); }
.thesis__accent{ color:var(--c-brasa); font-style:italic; }
.band--tese{ background:radial-gradient(120% 130% at 50% 0%,#15100d 0%,var(--c-carvao) 62%); }

/* ===================== Quebras full-bleed ===================== */
.break{ position:relative; height:62vh; min-height:380px; overflow:hidden; display:grid; place-items:center; border:none; }
.break__img{ position:absolute; inset:-12% -4%; background-position:center; background-size:cover; background-repeat:no-repeat; filter:saturate(.85) brightness(.7); will-change:transform; }
.break__veil{ position:absolute; inset:0; background:linear-gradient(to bottom,var(--carv-80),var(--carv-40) 45%,var(--carv-80)); }
.break__phrase{ position:relative; z-index:2; font-family:var(--ff-lapide); font-style:italic; font-weight:500; font-size:clamp(1.6rem,4.4vw,var(--fs-3xl)); line-height:1.2; text-align:center; max-width:28ch; margin:0; padding:0 1rem; color:var(--c-pergaminho); text-shadow:0 2px 30px rgba(0,0,0,.6); }
.break__phrase em{ color:var(--c-ouro); }

/* ===================== O ofício (offer) ===================== */
.offer{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--perg-06); border:1px solid var(--perg-06); }
.offer__item{ background:var(--c-carvao); padding:2.4rem 2rem; transition:background .3s var(--ease-def); }
.offer__item:hover{ background:#110d0b; }
.offer__num{ font-family:var(--ff-margem); font-size:var(--fs-2xs); color:var(--c-ouro); letter-spacing:.1em; }
.offer__title{ font-family:var(--ff-lapide); font-weight:600; font-size:var(--fs-lg); line-height:1.18; margin:.8rem 0 .7rem; letter-spacing:-.01em; }
.offer__text{ margin:0; color:var(--perg-70); font-size:var(--fs-sm); }
@media (max-width:720px){ .offer{ grid-template-columns:1fr; } }

/* ===================== Anatomia (hotpoints) ===================== */
.band--anatomia{ background:#0d0a09; }
.hotscene{ position:relative; margin:2.4rem 0 0; border:1px solid var(--perg-06); overflow:hidden; aspect-ratio:16/9; }
.hotscene__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.92); }
.hotscene__veil{ position:absolute; inset:0; background:radial-gradient(120% 120% at 60% 40%,transparent 40%,var(--carv-80)); }
.hotscene__cap{ position:absolute; left:0; bottom:0; z-index:3; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; color:var(--perg-70); padding:.7rem .9rem; }
.hotpoint{ position:absolute; left:var(--x); top:var(--y); z-index:4; transform:translate(-50%,-50%); width:30px; height:30px; border-radius:50%; border:1px solid var(--c-ouro); color:var(--c-ouro); background:var(--carv-40); display:grid; place-items:center; font-size:.9rem; line-height:1; backdrop-filter:blur(2px); transition:background .25s,transform .25s,color .25s; }
.hotpoint::after{ content:""; position:absolute; inset:-6px; border-radius:50%; border:1px solid var(--ouro-50); animation:pulse 2.6s var(--ease-def) infinite; }
.hotpoint:hover, .hotpoint.is-on{ background:var(--c-ouro); color:var(--c-carvao); transform:translate(-50%,-50%) scale(1.08); }
@keyframes pulse{ 0%{ transform:scale(.7); opacity:.8;} 70%{ transform:scale(1.5); opacity:0;} 100%{ opacity:0;} }

/* ===================== Método ===================== */
.band--invert{ background:var(--c-pergaminho); color:var(--c-carvao); border-top:none; }
.method{ list-style:none; margin:2.4rem 0 0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:2.4rem 3rem; }
.method__step{ display:flex; gap:1.2rem; align-items:flex-start; }
.method__num{ font-family:var(--ff-margem); font-size:var(--fs-md); color:var(--c-brasa); border:1px solid var(--cinab-40); width:2.4rem; height:2.4rem; flex:0 0 2.4rem; display:grid; place-items:center; border-radius:50%; }
.method__title{ font-family:var(--ff-lapide); font-weight:600; font-size:var(--fs-md); margin:.2rem 0 .4rem; }
.method__text{ margin:0; color:var(--carv-80); font-size:var(--fs-sm); }
@media (max-width:720px){ .method{ grid-template-columns:1fr; gap:1.8rem; } }

/* ===================== Coleção (cards → ficha) ===================== */
.cases{ display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }
.cases[data-loading="true"]{ min-height:300px; }
.case{ display:flex; flex-direction:column; border:1px solid var(--perg-06); background:#0d0a09; text-align:left; width:100%; transition:transform .35s var(--ease-arch),border-color .35s; overflow:hidden; }
.case:hover{ transform:translateY(-4px); border-color:var(--ouro-50); }
.case--feature{ grid-column:1/-1; }
.case__media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.case--feature .case__media{ aspect-ratio:21/8; }
.case__photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-arch); }
.case:hover .case__photo{ transform:scale(1.04); }
.case__mask{ position:absolute; inset:0; background:linear-gradient(to top,#0d0a09 6%,transparent 52%),linear-gradient(to right,rgba(13,10,9,.5),transparent 40%); }
.case__plate{ position:absolute; left:0; bottom:0; z-index:3; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.06em; color:var(--perg-70); padding:.7rem .9rem; text-transform:lowercase; }
.case__open{ position:absolute; right:.8rem; top:.8rem; z-index:3; width:30px; height:30px; border-radius:50%; border:1px solid var(--ouro-50); color:var(--c-ouro); background:var(--carv-40); display:grid; place-items:center; opacity:0; transform:translateY(-4px); transition:opacity .3s,transform .3s; }
.case:hover .case__open{ opacity:1; transform:none; }
.case__body{ padding:1.5rem 1.6rem 1.8rem; }
.case--feature .case__body{ max-width:62ch; }
.case__title{ font-family:var(--ff-lapide); font-weight:600; font-size:var(--fs-xl); line-height:1.1; letter-spacing:-.015em; margin:0 0 .5rem; }
.case--feature .case__title{ font-size:var(--fs-2xl); }
.case__client{ font-family:var(--ff-margem); font-size:.5em; color:var(--c-cinabrio); letter-spacing:.06em; vertical-align:middle; margin-left:.4em; text-transform:uppercase; }
.case__line{ margin:0 0 .9rem; color:var(--perg-90); font-size:var(--fs-sm); }
.case__proof{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; color:var(--c-ouro); margin:0; }
@media (max-width:720px){ .cases{ grid-template-columns:1fr; } }

/* ===================== Números ===================== */
.numbers{ padding-block:var(--sp-8); background:radial-gradient(90% 120% at 50% 0%,#15100d 0%,var(--c-carvao) 60%); border-top:1px solid var(--perg-06); }
.numbers__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:3rem; }
.number__value{ display:block; font-family:var(--ff-lapide); font-weight:600; font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1; font-size:clamp(4rem,13vw,9rem); line-height:.9; letter-spacing:-.03em; color:var(--c-pergaminho); }
.number--accent .number__value{ color:var(--c-brasa); }
.number__label{ display:block; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; line-height:1.5; color:var(--perg-70); margin-top:1rem; max-width:28ch; }
@media (max-width:640px){ .numbers__grid{ grid-template-columns:1fr; gap:2.4rem; } }

/* ===================== Quem faz ===================== */
.who{ display:grid; grid-template-columns:.9fr 1.1fr; gap:3.5rem; align-items:center; }
.who__portrait{ margin:0; aspect-ratio:4/5; background:radial-gradient(90% 90% at 40% 25%,rgba(242,235,221,.08),transparent 60%),repeating-linear-gradient(100deg,var(--perg-06) 0 1px,transparent 1px 9px),#0a0807; border:1px solid var(--perg-06); display:grid; place-items:end start; position:relative; }
.who__text{ font-size:var(--fs-md); line-height:1.6; margin:0 0 1.2rem; color:var(--perg-90); }
.who__text strong{ color:var(--c-pergaminho); font-weight:600; }
.who__formacao{ font-family:var(--ff-margem); font-size:var(--fs-2xs); line-height:1.7; letter-spacing:.02em; color:var(--c-cinabrio); border-top:1px solid var(--perg-06); padding-top:1.2rem; margin:1.6rem 0 0; }
@media (max-width:760px){ .who{ grid-template-columns:1fr; gap:2rem; } .who__portrait{ max-width:320px; } }

/* ===================== Contato ===================== */
.band--contato{ background:#0e0b0a; }
.contact{ margin:2.6rem 0 1.6rem; max-width:620px; }
.contact__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field{ display:block; margin-bottom:1rem; }
.field__label{ display:block; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.08em; text-transform:uppercase; color:var(--c-cinabrio); margin-bottom:.4rem; }
.field input,.field textarea{ width:100%; font-family:var(--ff-corpo); font-size:var(--fs-sm); color:var(--c-pergaminho); background:var(--perg-06); border:1px solid var(--perg-12); border-radius:2px; padding:.75rem .9rem; resize:vertical; transition:border-color .25s; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--c-ouro); }
.contact .btn{ margin-top:.4rem; }
.contact__email{ font-size:var(--fs-sm); color:var(--perg-70); margin:0; }
.contact__email a{ color:var(--c-ouro); border-bottom:1px solid var(--cinab-40); }
@media (max-width:560px){ .contact__row{ grid-template-columns:1fr; } }

/* ===================== Rodapé ===================== */
.foot{ padding-block:3rem; border-top:1px solid var(--perg-06); padding-left:max(0px,var(--rail-w)); }
.foot__inner{ display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.foot__sig{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.06em; color:var(--c-cinabrio); text-transform:lowercase; }
.foot__contact a{ font-family:var(--ff-margem); font-size:var(--fs-2xs); color:var(--perg-70); border-bottom:1px solid var(--cinab-40); }

/* ===================== Ficha-overlay ===================== */
.ficha{ position:fixed; inset:0; z-index:80; display:flex; justify-content:flex-end; }
.ficha[hidden]{ display:none; }
.ficha__scrim{ position:absolute; inset:0; background:rgba(5,4,3,.72); backdrop-filter:blur(3px); opacity:0; transition:opacity .4s; }
.ficha.is-open .ficha__scrim{ opacity:1; }
.ficha__panel{ position:relative; width:min(960px,94vw); max-width:94vw; height:100%; overflow-y:auto; background:#0d0a09; border-left:1px solid var(--ouro-15); transform:translateX(40px); opacity:0; transition:transform .45s var(--ease-arch),opacity .45s; outline:none; }
.ficha.is-open .ficha__panel{ transform:none; opacity:1; }
.ficha__close{ position:sticky; float:right; top:1rem; right:1rem; margin:1rem 1rem 0 0; z-index:6; width:38px; height:38px; border-radius:50%; border:1px solid var(--cinab-40); color:var(--c-pergaminho); background:var(--carv-80); display:grid; place-items:center; transition:background .25s,border-color .25s; }
.ficha__close:hover{ background:var(--c-brasa); border-color:var(--c-brasa); }
.fk__media{ position:relative; aspect-ratio:16/10; background:#0a0807; overflow:hidden; }
.fk__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s; }
.fk__img.is-on{ opacity:1; }
.fk__badge{ position:absolute; left:1rem; top:1rem; z-index:3; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.06em; color:var(--c-ouro); border:1px solid var(--ouro-50); border-radius:2px; padding:.3rem .6rem; background:var(--carv-40); }
.fk__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:40px; height:40px; border-radius:50%; border:1px solid var(--cinab-40); color:var(--c-pergaminho); background:var(--carv-40); display:grid; place-items:center; }
.fk__nav--prev{ left:.8rem; } .fk__nav--next{ right:.8rem; }
.fk__credit{ position:absolute; left:0; bottom:0; z-index:3; font-family:var(--ff-margem); font-size:.62rem; letter-spacing:.04em; color:var(--perg-55); padding:.6rem .8rem; }
.fk__body{ padding:2.2rem clamp(1.4rem,4vw,3rem) 3rem; }
.fk__kicker{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.18em; text-transform:uppercase; color:var(--c-ouro); margin:0 0 1rem; }
.fk__title{ font-family:var(--ff-lapide); font-weight:600; font-size:clamp(2rem,5vw,var(--fs-3xl)); line-height:1.05; letter-spacing:-.02em; margin:0 0 .4rem; }
.fk__title .k{ color:var(--c-ouro); }
.fk__tagline{ font-family:var(--ff-lapide); font-style:italic; font-size:var(--fs-md); color:var(--perg-70); margin:0 0 1.6rem; }
.fk__tech{ list-style:none; margin:0 0 2rem; padding:1rem 0; display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem 1.4rem; border-top:1px solid var(--perg-06); border-bottom:1px solid var(--perg-06); }
.fk__tech li{ font-family:var(--ff-margem); font-size:var(--fs-2xs); line-height:1.4; color:var(--perg-70); }
.fk__tech .r{ display:block; color:var(--c-cinabrio); letter-spacing:.06em; text-transform:uppercase; margin-bottom:.15rem; }
.fk__sec{ margin:0 0 1.8rem; }
.fk__sectitle{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.16em; text-transform:uppercase; color:var(--c-ouro); margin:0 0 .6rem; }
.fk__sec p{ margin:0; font-size:var(--fs-sm); line-height:1.7; color:var(--perg-90); }
.fk__sec strong{ color:var(--c-pergaminho); font-weight:700; }
.fk__care{ border-left:2px solid var(--c-brasa); padding-left:1.1rem; background:linear-gradient(to right,var(--brasa-14),transparent 80%); padding-block:.8rem; }
.fk__care .fk__sectitle{ color:var(--c-brasa); }
.fk__quote{ font-family:var(--ff-lapide); font-style:italic; font-size:var(--fs-lg); line-height:1.35; color:var(--c-pergaminho); margin:1.8rem 0; padding-left:1.1rem; border-left:2px solid var(--c-ouro); }
.fk__quote cite{ display:block; font-family:var(--ff-margem); font-style:normal; font-size:var(--fs-2xs); letter-spacing:.04em; color:var(--c-cinabrio); margin-top:.6rem; }
.fk__giltoggle{ display:inline-flex; align-items:center; gap:.5rem; margin-top:.4rem; font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; color:var(--c-ouro); border:1px solid var(--ouro-50); border-radius:2px; padding:.5rem .9rem; transition:background .25s,color .25s; }
.fk__giltoggle:hover{ background:var(--c-ouro); color:var(--c-carvao); }
.fk__points{ position:absolute; inset:0; z-index:2; width:100%; height:100%; opacity:0; transition:opacity .7s var(--ease-arch); }
.fk__media.show-points .fk__points{ opacity:1; }
@media (max-width:680px){ .fk__tech{ grid-template-columns:1fr; } }

/* ===================== Mediador ===================== */
.med-launcher{ position:fixed; right:1.4rem; bottom:1.4rem; z-index:70; display:inline-flex; align-items:center; gap:.55rem; padding:.7rem 1.1rem; border-radius:999px; background:var(--c-ouro); color:var(--c-carvao); font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.06em; box-shadow:0 12px 34px rgba(0,0,0,.5); transition:transform .25s,background .25s; }
.med-launcher:hover{ transform:translateY(-2px); background:var(--c-brasa); color:var(--c-pergaminho); }
.med-launcher__dot{ width:8px; height:8px; border-radius:50%; background:currentColor; animation:blink 2.4s var(--ease-def) infinite; }
@keyframes blink{ 0%,100%{ opacity:1;} 50%{ opacity:.35;} }
.med-launcher.is-hidden{ opacity:0; pointer-events:none; transform:translateY(8px); }
.med{ position:fixed; right:0; top:0; bottom:0; z-index:85; width:min(420px,94vw); display:flex; flex-direction:column; background:#100c0a; border-left:1px solid var(--ouro-15); transform:translateX(30px); opacity:0; transition:transform .4s var(--ease-arch),opacity .4s; }
.med[hidden]{ display:none; }
.med.is-open{ transform:none; opacity:1; }
.med__head{ display:flex; align-items:center; justify-content:space-between; padding:1.2rem 1.3rem .8rem; }
.med__title{ font-family:var(--ff-lapide); font-size:var(--fs-lg); margin:0; }
.med__sub{ font-family:var(--ff-margem); font-size:var(--fs-2xs); letter-spacing:.04em; color:var(--c-cinabrio); margin:.1rem 0 0; }
.med__close{ width:34px; height:34px; border-radius:50%; border:1px solid var(--cinab-40); color:var(--perg-90); display:grid; place-items:center; }
.med__disclaimer{ font-family:var(--ff-margem); font-size:.62rem; line-height:1.5; letter-spacing:.03em; color:var(--perg-55); margin:0; padding:0 1.3rem .8rem; border-bottom:1px solid var(--perg-06); }
.med__log{ flex:1; overflow-y:auto; padding:1.2rem 1.3rem; display:flex; flex-direction:column; gap:1rem; }
.med__q,.med__a{ max-width:88%; font-size:var(--fs-sm); line-height:1.55; padding:.7rem .9rem; border-radius:10px; }
.med__q{ align-self:flex-end; background:var(--ouro-15); border:1px solid var(--ouro-50); color:var(--c-pergaminho); border-bottom-right-radius:2px; }
.med__a{ align-self:flex-start; background:var(--perg-06); border:1px solid var(--perg-12); color:var(--perg-90); border-bottom-left-radius:2px; }
.med__a strong{ color:var(--c-ouro); font-weight:600; }
.med__a.is-typing{ color:var(--perg-55); font-style:italic; }
.med__suggest{ display:flex; flex-wrap:wrap; gap:.5rem; padding:0 1.3rem .8rem; }
.med__chip{ font-family:var(--ff-margem); font-size:.66rem; letter-spacing:.03em; color:var(--perg-70); border:1px solid var(--cinab-40); border-radius:999px; padding:.35rem .7rem; transition:color .2s,border-color .2s; }
.med__chip:hover{ color:var(--c-ouro); border-color:var(--c-ouro); }
.med__form{ display:flex; gap:.5rem; padding:1rem 1.3rem 1.3rem; border-top:1px solid var(--perg-06); }
.med__input{ flex:1; font-family:var(--ff-corpo); font-size:var(--fs-sm); color:var(--c-pergaminho); background:var(--perg-06); border:1px solid var(--perg-12); border-radius:999px; padding:.7rem 1rem; }
.med__input:focus{ outline:none; border-color:var(--c-ouro); }
.med__send{ width:44px; flex:0 0 44px; border-radius:50%; background:var(--c-ouro); color:var(--c-carvao); font-size:1.1rem; transition:background .25s; }
.med__send:hover{ background:var(--c-brasa); color:var(--c-pergaminho); }

@media (max-width:560px){
  .hero{ min-height:auto; padding-top:6rem; padding-bottom:4.2rem; justify-content:flex-start; }
  .hero__eyebrow{ margin-bottom:1rem; }
  .hero__lockup{ margin-bottom:1rem; }
  .hero__sub{ font-size:1.08rem; line-height:1.55; margin-bottom:1.7rem; }
  .hero__cta{ gap:.7rem; }
  .hero__cta .btn{ width:100%; justify-content:center; padding:.8rem 1rem; }
  .hero__scrollhint{ display:none; }
  .med-launcher{ display:none; }
}

/* ===================== Reveal / parallax / scroll-lock ===================== */
.js .reveal > *{ opacity:0; transform:translateY(12px); }
.js .reveal.is-visible > *{ opacity:1; transform:none; transition:opacity .7s var(--ease-arch),transform .7s var(--ease-arch); }
.js .reveal.is-visible .break__phrase{ transition-delay:.1s; }
body.is-locked{ overflow:hidden; }

@media (prefers-reduced-motion: reduce){
  .reveal > *,.reveal.is-visible > *{ opacity:1!important; transform:none!important; transition:none!important; }
  .hero__scrollhint,.hotpoint::after,.med-launcher__dot{ animation:none; }
  [data-parallax]{ transform:none!important; }
  html{ scroll-behavior:auto; }
}
