/*
Theme Name: Laura Vitória
Theme URI: https://lauravitoria.com
Author: Laura Vitória
Description: Tema one-page para portfólio de artista visual. Pintura, ecobags e costura.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lauravitoria
Tags: one-page, portfolio, custom-colors, custom-logo, custom-menu, editor-style, featured-images, translation-ready
*/

/* ═══════════ RESET & TOKENS ═══════════ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --paper:#F6F3ED;
  --paper-2:#EDE8DF;
  --ink:#15130F;
  --ink-2:#3A362F;
  --mute:#7A736A;
  --line:#DDD6C9;

  --clay:#C0603A;
  --indigo:#2F5C7A;
  --ochre:#C99B33;
  --moss:#5F7448;
  --blush:#B96E80;

  --ff-display:"Fraunces",Georgia,serif;
  --ff-text:"Inter Tight",system-ui,-apple-system,sans-serif;

  --pad:clamp(1.25rem,5vw,6rem);
  --gap:clamp(1rem,2.5vw,2rem);
  --sec:clamp(5rem,12vw,11rem);

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --r:2px;
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--ff-text);
  font-size:clamp(.94rem,1.05vw,1.02rem);
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.lock{overflow:hidden}

img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--clay);color:var(--paper)}
:focus-visible{outline:2px solid var(--clay);outline-offset:4px;border-radius:var(--r)}

/* ═══════════ WORDPRESS CORE ═══════════ */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important
}
.screen-reader-text:focus{
  background:var(--ink);color:var(--paper);clip:auto!important;clip-path:none;
  display:block;height:auto;width:auto;left:5px;top:5px;padding:1rem 1.5rem;
  font-size:.85rem;z-index:100000;text-decoration:none
}
.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ink);color:var(--paper);padding:1rem 1.5rem}
.skip:focus{left:0}

.alignleft{float:left;margin:.5rem 1.6rem 1.2rem 0}
.alignright{float:right;margin:.5rem 0 1.2rem 1.6rem}
.aligncenter{margin-inline:auto}
.alignwide{width:min(1200px,92vw);margin-inline:auto}
.alignfull{width:100vw;margin-left:calc(50% - 50vw);max-width:none}
.wp-caption{max-width:100%}
.wp-caption-text,figcaption{font-size:.78rem;color:var(--mute);margin-top:.6rem;font-style:italic}
.sticky .entry-title::before{content:"★ ";color:var(--clay)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}
embed,iframe,object{max-width:100%}

body.admin-bar .hdr{top:32px}
@media screen and (max-width:782px){body.admin-bar .hdr{top:46px}}

/* ═══════════ PERFORMANCE ═══════════ */
.lv-sec,.marquee,.ftr{content-visibility:auto;contain-intrinsic-size:auto 700px}
.hero{content-visibility:visible}
[data-parallax]{will-change:auto;backface-visibility:hidden}
[data-parallax].px-on{will-change:transform}

/* ═══════════ GRAIN ═══════════ */
.grain{
  position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (max-width:1024px),(hover:none){.grain{display:none}}

/* ═══════════ CURSOR ═══════════ */
.cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}
.cursor-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}
.cursor-ring{
  position:absolute;width:34px;height:34px;border:1px solid rgba(255,255,255,.55);border-radius:50%;
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s
}
.cursor.is-link .cursor-ring{width:56px;height:56px;background:rgba(255,255,255,.12)}
.cursor.is-view .cursor-ring{width:80px;height:80px;background:rgba(255,255,255,.15)}
.cursor.is-view .cursor-dot{width:0;height:0}
.cursor.is-view::after{
  content:attr(data-label);position:absolute;transform:translate(-50%,-50%);
  font-size:.6rem;letter-spacing:.16em;color:#fff;font-weight:600
}
@media (hover:none),(max-width:900px){.cursor{display:none}}

.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--clay),var(--ochre),var(--indigo));z-index:9997
}
body.admin-bar .scroll-progress{top:32px}
@media screen and (max-width:782px){body.admin-bar .scroll-progress{top:46px}}

/* ═══════════ LOADER ═══════════ */
.loader{
  position:fixed;inset:0;z-index:9996;background:var(--ink);
  display:grid;place-items:center;transition:transform 1s var(--ease) .2s
}
.loader.done{transform:translateY(-101%)}
.loader-inner{text-align:center}
.loader-mark{
  font-family:var(--ff-display);font-size:clamp(2.5rem,7vw,4.5rem);font-weight:300;
  color:var(--paper);letter-spacing:.1em;display:block;margin-bottom:1.5rem
}
.loader-bar{width:min(180px,40vw);height:1px;background:rgba(246,243,237,.2);overflow:hidden}
.loader-bar i{display:block;height:100%;width:0;background:var(--paper);animation:load 1.2s var(--ease-io) forwards}
@keyframes load{to{width:100%}}

/* ═══════════ HEADER ═══════════ */
.hdr{
  position:fixed;top:0;left:0;width:100%;z-index:100;
  padding:clamp(1rem,2vw,1.6rem) var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s,transform .5s var(--ease)
}
.hdr.stuck{
  background:rgba(246,243,237,.82);backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  padding-block:clamp(.7rem,1.4vw,1rem);box-shadow:0 1px 0 var(--line)
}
.hdr.hide{transform:translateY(-110%)}
.hdr.solid{position:sticky;background:var(--paper);box-shadow:0 1px 0 var(--line)}

.hdr-logo{display:flex;align-items:baseline;gap:.6rem;font-family:var(--ff-display)}
.hdr-logo img{max-height:38px;width:auto}
.hdr-logo-mark{font-size:1.35rem;font-weight:500;letter-spacing:.12em}
.hdr-logo-full{
  font-size:.9rem;font-style:italic;color:var(--mute);
  opacity:0;max-width:0;overflow:hidden;white-space:nowrap;
  transition:opacity .4s var(--ease),max-width .5s var(--ease)
}
.hdr.stuck .hdr-logo-full,.hdr.solid .hdr-logo-full{opacity:1;max-width:160px}

.hdr-nav ul{display:flex;gap:clamp(1.2rem,2.4vw,2.4rem)}
.hdr-nav a{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;display:block;transition:color .3s}
.hdr-nav a:hover,.hdr-nav .current-menu-item>a{color:var(--clay)}
.hdr-nav .sub-menu{display:none}

.hdr-cta{
  display:inline-flex;align-items:center;gap:.55rem;
  border:1px solid var(--ink);border-radius:100px;
  padding:.55rem 1.15rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  position:relative;overflow:hidden;isolation:isolate;transition:color .4s var(--ease)
}
.hdr-cta svg{width:11px;height:11px;transition:transform .4s var(--ease)}
.hdr-cta::before{
  content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;
  transform:translateY(101%);transition:transform .45s var(--ease)
}
.hdr-cta:hover{color:var(--paper)}
.hdr-cta:hover::before{transform:translateY(0)}
.hdr-cta:hover svg{transform:translate(2px,-2px)}

.burger{display:none;width:34px;height:22px;position:relative;z-index:110}
.burger span{
  position:absolute;left:0;width:100%;height:1.5px;background:var(--ink);
  transition:transform .4s var(--ease),background .3s
}
.burger span:nth-child(1){top:6px}
.burger span:nth-child(2){top:14px}
.burger[aria-expanded="true"] span{background:var(--paper)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

/* ═══════════ MENU OVERLAY ═══════════ */
.menu-ov{
  position:fixed;inset:0;z-index:105;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center;padding:var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease);visibility:hidden
}
.menu-ov.open{clip-path:inset(0 0 0 0);visibility:visible}
.menu-ov ul{display:flex;flex-direction:column;gap:.2rem;counter-reset:mi}
.menu-ov li{counter-increment:mi}
.menu-ov a{
  font-family:var(--ff-display);font-size:clamp(2.2rem,9vw,5rem);font-weight:300;line-height:1.08;
  display:flex;align-items:baseline;gap:1rem;
  opacity:0;transform:translateY(40px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),color .3s
}
.menu-ov a::before{
  content:"0" counter(mi);font-family:var(--ff-text);font-size:.72rem;
  letter-spacing:.16em;color:var(--clay);font-weight:600
}
.menu-ov.open a{opacity:1;transform:none}
.menu-ov.open li:nth-child(1) a{transition-delay:.20s}
.menu-ov.open li:nth-child(2) a{transition-delay:.26s}
.menu-ov.open li:nth-child(3) a{transition-delay:.32s}
.menu-ov.open li:nth-child(4) a{transition-delay:.38s}
.menu-ov.open li:nth-child(5) a{transition-delay:.44s}
.menu-ov.open li:nth-child(6) a{transition-delay:.50s}
.menu-ov.open li:nth-child(7) a{transition-delay:.56s}
.menu-ov a:hover{color:var(--clay)}
.menu-ov .sub-menu{display:none}
.menu-foot{
  margin-top:3rem;display:flex;gap:2rem;flex-wrap:wrap;
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,243,237,.45)
}

/* ═══════════ HERO ═══════════ */
.hero{
  min-height:100svh;position:relative;display:flex;align-items:flex-end;
  padding:var(--pad);padding-bottom:clamp(4rem,9vw,7rem);overflow:hidden;background:var(--ink)
}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:112%;object-fit:cover;object-position:center 30%}
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(21,19,15,.85) 0%,rgba(21,19,15,.35) 45%,rgba(21,19,15,.15) 100%),
    linear-gradient(to right,rgba(21,19,15,.6) 0%,transparent 60%)
}
.hero-body{position:relative;z-index:2;max-width:min(880px,90%);color:var(--paper)}

.hero-eyebrow{
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ochre);font-weight:600;margin-bottom:clamp(1rem,2vw,1.6rem)
}
.hero-title{
  font-family:var(--ff-display);
  font-size:clamp(3.2rem,11.5vw,10rem);
  font-weight:250;line-height:.9;letter-spacing:-.02em;
  margin-bottom:clamp(1.2rem,2.5vw,2rem)
}
.hero-title em{font-style:italic;font-weight:300}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line>span{display:block;transform:translateY(110%);transition:transform 1.1s var(--ease)}
.hero.in .hero-title .line>span{transform:none}
.hero.in .hero-title .line:nth-child(2)>span{transition-delay:.1s}

.hero-lead{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(1.15rem,2.6vw,2rem);line-height:1.3;
  color:rgba(246,243,237,.92);margin-bottom:.9rem
}
.hero-sub{
  font-size:clamp(.88rem,1.1vw,1rem);line-height:1.75;color:rgba(246,243,237,.65);
  max-width:46ch;margin-bottom:clamp(1.8rem,3.5vw,2.6rem)
}

.reveal-line{overflow:hidden}
.reveal-line>span{display:block;transform:translateY(110%);transition:transform .95s var(--ease)}
.hero.in .reveal-line>span{transform:none}
.hero.in .hero-eyebrow>span{transition-delay:.05s}
.hero.in .hero-lead>span{transition-delay:.3s}
.hero.in .hero-sub>span{transition-delay:.38s}

.hero-actions{
  display:flex;gap:.8rem;flex-wrap:wrap;opacity:0;transform:translateY(24px);
  transition:opacity .9s var(--ease) .5s,transform .9s var(--ease) .5s
}
.hero.in .hero-actions{opacity:1;transform:none}

.hero-meta{
  position:absolute;z-index:2;bottom:clamp(1.4rem,3vw,2.4rem);right:var(--pad);
  display:flex;align-items:center;gap:.9rem;
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,243,237,.55);
  opacity:0;transition:opacity .8s ease .8s
}
.hero.in .hero-meta{opacity:1}
.hero-meta i{width:16px;height:1px;background:rgba(246,243,237,.3)}

.hero-scroll{
  position:absolute;z-index:2;bottom:clamp(1.4rem,3vw,2.4rem);left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,243,237,.5)
}
.hero-scroll-line{width:1px;height:44px;background:rgba(246,243,237,.2);overflow:hidden}
.hero-scroll-line i{display:block;width:100%;height:40%;background:var(--paper);animation:sd 2s var(--ease-io) infinite}
@keyframes sd{0%{transform:translateY(-100%)}60%,100%{transform:translateY(250%)}}

/* ═══════════ BOTÕES ═══════════ */
.btn{
  --bg:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;
  padding:.95rem 1.9rem;border-radius:100px;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  position:relative;overflow:hidden;isolation:isolate;transition:color .45s var(--ease)
}
.btn::before{content:"";position:absolute;inset:0;background:var(--bg);z-index:-2}
.btn::after{
  content:"";position:absolute;inset:0;background:var(--clay);z-index:-1;
  transform:translateY(101%);transition:transform .5s var(--ease)
}
.btn:hover::after{transform:translateY(0)}
.btn-solid{color:var(--paper)}
.btn-ghost{--bg:transparent;color:var(--paper);border:1px solid rgba(246,243,237,.45)}
.btn-ghost:hover{border-color:transparent}
.btn-light{--bg:var(--paper);color:var(--ink);margin-top:clamp(1.6rem,3vw,2.2rem)}
.btn-light:hover{color:var(--paper)}
.btn-ink{--bg:var(--ink);color:var(--paper)}

/* ═══════════ MARQUEE ═══════════ */
.marquee{overflow:hidden;background:var(--ink);color:var(--paper);padding:clamp(.8rem,1.6vw,1.2rem) 0;white-space:nowrap}
.marquee-track{display:flex;gap:2rem;animation:mq 32s linear infinite;will-change:transform}
.marquee-track span{font-family:var(--ff-display);font-size:clamp(1.1rem,2.4vw,1.8rem);font-weight:300;letter-spacing:.04em;flex:none}
@keyframes mq{to{transform:translateX(calc(-100%/3 - .667rem))}}
.marquee:hover .marquee-track{animation-play-state:paused}

/* ═══════════ TIPOGRAFIA ═══════════ */
.label{
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--clay);font-weight:600;margin-bottom:clamp(.8rem,1.6vw,1.2rem)
}
.label--light{color:var(--ochre)}
.h2{
  font-family:var(--ff-display);
  font-size:clamp(1.9rem,5.2vw,4rem);font-weight:280;line-height:1.06;letter-spacing:-.015em;
  margin-bottom:clamp(1.2rem,2.4vw,1.8rem)
}
.h2 em{font-style:italic;color:var(--clay)}
.h2--light{color:var(--paper)}
.h2--light em{color:var(--ochre)}
.sec-text{font-size:clamp(.92rem,1.15vw,1.05rem);line-height:1.85;color:var(--mute);max-width:60ch}
.sec-text--light{color:rgba(246,243,237,.66)}
.prose p{margin-bottom:1.1rem;color:var(--ink-2);line-height:1.9;max-width:58ch}
.prose strong{font-weight:600;color:var(--ink)}

.sec-head{padding-inline:var(--pad);margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-head--center{text-align:center;display:flex;flex-direction:column;align-items:center}

[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* ═══════════ STATEMENT ═══════════ */
.statement{padding:clamp(6rem,14vw,13rem) var(--pad);text-align:center;display:flex;flex-direction:column;align-items:center}
.statement-text{
  font-family:var(--ff-display);
  font-size:clamp(1.9rem,6.4vw,5rem);font-weight:250;line-height:1.12;letter-spacing:-.02em;
  max-width:16ch;margin-bottom:clamp(1.5rem,3vw,2.4rem)
}
.statement-text em{font-style:italic;color:var(--clay)}
.statement-text .w{display:inline-block;opacity:.12;transition:opacity .6s var(--ease)}
.statement-text .w.on{opacity:1}
.statement-sub{font-size:.9rem;color:var(--mute);font-style:italic;font-family:var(--ff-display)}

/* ═══════════ SOBRE ═══════════ */
.about{
  padding:var(--sec) var(--pad);
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;
  max-width:1400px;margin-inline:auto
}
.about-visual{position:relative}
.about-fig{overflow:hidden;border-radius:var(--r);background:var(--paper-2)}
.about-fig img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1.2s var(--ease)}
.about-fig:hover img{transform:scale(1.04)}
.about-fig--sm{
  position:absolute;right:-8%;bottom:-10%;width:44%;
  border:8px solid var(--paper);box-shadow:0 22px 60px rgba(21,19,15,.16)
}
.about-fig--sm img{aspect-ratio:1}

.stats{display:flex;gap:clamp(1.5rem,4vw,3rem);margin-top:clamp(2rem,4vw,3rem);flex-wrap:wrap}
.stats li{display:flex;flex-direction:column}
.stats b{font-family:var(--ff-display);font-size:clamp(1.8rem,4vw,3rem);font-weight:300;line-height:1;color:var(--clay)}
.stats span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-top:.4rem}

/* ═══════════ TIMELINE ═══════════ */
.timeline{padding:var(--sec) 0;background:var(--paper-2)}
.tl{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--gap);padding-inline:var(--pad);position:relative;max-width:1400px;margin-inline:auto}
.tl::before{
  content:"";position:absolute;top:.5rem;left:var(--pad);right:var(--pad);height:1px;
  background:linear-gradient(90deg,var(--clay),var(--ochre),var(--moss),var(--indigo))
}
.tl-item{padding-top:2.2rem;position:relative}
.tl-item::before{
  content:"";position:absolute;top:calc(.5rem - 4px);left:0;width:9px;height:9px;border-radius:50%;
  background:var(--paper-2);border:1.5px solid var(--clay)
}
.tl-item em{font-style:normal;font-size:.66rem;letter-spacing:.2em;color:var(--clay);font-weight:600}
.tl-item h3{font-family:var(--ff-display);font-size:clamp(1.15rem,2vw,1.6rem);font-weight:400;margin:.35rem 0 .5rem}
.tl-item p{font-size:.83rem;line-height:1.7;color:var(--mute)}
.tl-end{
  text-align:center;margin-top:clamp(3rem,6vw,4.5rem);padding-inline:var(--pad);
  font-family:var(--ff-display);font-size:clamp(1.1rem,2.6vw,1.9rem);font-weight:300;color:var(--mute)
}
.tl-end em{font-style:italic;color:var(--ink)}

/* ═══════════ CRIAÇÕES ═══════════ */
.works{padding:var(--sec) 0}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);padding-inline:var(--pad);max-width:1400px;margin-inline:auto}
.work{position:relative;overflow:hidden;border-radius:var(--r);background:var(--ink)}
.work-img{aspect-ratio:3/4;overflow:hidden}
.work-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.72);transition:transform 1.1s var(--ease)}
.work:hover .work-img img{transform:scale(1.06)}
.work::after{
  content:"";position:absolute;inset:0;background:rgba(21,19,15,.3);
  opacity:0;transition:opacity .5s var(--ease);pointer-events:none
}
.work:hover::after{opacity:1}
.work-body{position:absolute;inset:auto 0 0 0;padding:clamp(1.4rem,2.4vw,2.2rem);color:var(--paper);z-index:1}
.work-body em{font-style:normal;font-size:.66rem;letter-spacing:.2em;color:var(--ochre);font-weight:600}
.work-body h3{font-family:var(--ff-display);font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:300;margin:.3rem 0 .5rem}
.work-body p{
  font-size:.85rem;line-height:1.7;color:rgba(246,243,237,.7);max-width:34ch;
  max-height:0;opacity:0;overflow:hidden;transition:max-height .6s var(--ease),opacity .5s,margin .5s
}
.work:hover .work-body p{max-height:8rem;opacity:1;margin-bottom:1rem}

.link-arrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--paper)}
.link-arrow span{border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .3s}
.link-arrow::after{content:"→";transition:transform .35s var(--ease)}
.link-arrow:hover::after{transform:translateX(5px)}
.link-arrow:hover span{color:var(--ochre)}

/* ═══════════ ECOBAGS ═══════════ */
.ecobag{position:relative;min-height:92svh;display:flex;align-items:center;padding:var(--sec) var(--pad);overflow:hidden;color:var(--paper);background:var(--ink)}
.ecobag-bg{position:absolute;inset:0;z-index:0}
.ecobag-bg img{width:100%;height:112%;object-fit:cover}
.ecobag-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(21,19,15,.9) 0%,rgba(21,19,15,.6) 45%,rgba(21,19,15,.2) 100%)
}
.ecobag-body{position:relative;z-index:2;max-width:min(620px,92%)}
.pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:clamp(1.5rem,3vw,2.2rem)}
.pills li{
  border:1px solid rgba(246,243,237,.25);border-radius:100px;padding:.4rem 1rem;
  font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,243,237,.6)
}

/* ═══════════ GALERIA ═══════════ */
.gallery-sec{padding:var(--sec) 0}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;padding-inline:var(--pad);margin-bottom:clamp(1.8rem,3.5vw,2.8rem)}
.filter{
  border:1px solid var(--line);border-radius:100px;padding:.5rem 1.2rem;
  font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--mute);
  transition:background .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)
}
.filter:hover{border-color:var(--ink);color:var(--ink)}
.filter.is-on{background:var(--ink);border-color:var(--ink);color:var(--paper)}

.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:14rem;gap:var(--gap);padding-inline:var(--pad);max-width:1500px;margin-inline:auto}
.tile{
  position:relative;overflow:hidden;border-radius:var(--r);background:var(--paper-2);
  grid-row:span 2;transition:opacity .5s var(--ease),transform .5s var(--ease)
}
.tile--tall{grid-row:span 3}
.tile--wide{grid-column:span 2;grid-row:span 2}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.tile:hover img{transform:scale(1.05)}
.tile figcaption{
  position:absolute;inset:auto 0 0 0;padding:1.4rem;color:var(--paper);margin:0;font-style:normal;
  background:linear-gradient(to top,rgba(21,19,15,.82),transparent);
  opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease)
}
.tile:hover figcaption{opacity:1;transform:none}
.tile figcaption h3{font-family:var(--ff-display);font-size:1.15rem;font-weight:400}
.tile figcaption p{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,243,237,.65);margin-top:.2rem}
.tile.hidden{display:none}

/* ═══════════ PROCESSO ═══════════ */
.process{
  padding:var(--sec) var(--pad);background:var(--paper-2);
  display:grid;grid-template-columns:minmax(280px,38%) 1fr;gap:clamp(2rem,5vw,5rem);align-items:start
}
.process-sticky{position:sticky;top:22vh}
.process-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
.process-strip figure{overflow:hidden;border-radius:var(--r);position:relative;background:var(--paper)}
.process-strip figure:nth-child(even){margin-top:clamp(1.5rem,4vw,4rem)}
.process-strip img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.1s var(--ease)}
.process-strip figure:hover img{transform:scale(1.05)}
.process-strip figcaption{
  position:absolute;left:1rem;bottom:1rem;color:var(--paper);margin:0;font-style:normal;
  font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  background:rgba(21,19,15,.62);backdrop-filter:blur(6px);padding:.35rem .8rem;border-radius:100px
}

/* ═══════════ COSTURA ═══════════ */
.sewing{position:relative;min-height:88svh;display:flex;align-items:flex-end;padding:var(--sec) var(--pad);overflow:hidden;background:var(--ink)}
.sewing-img{position:absolute;inset:0;z-index:0}
.sewing-img img{width:100%;height:112%;object-fit:cover}
.sewing-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(21,19,15,.92),rgba(21,19,15,.25))}
.sewing-body{position:relative;z-index:2;max-width:min(720px,92%)}

/* ═══════════ MANIFESTO ═══════════ */
.manifesto{
  padding:clamp(6rem,15vw,14rem) var(--pad);text-align:center;
  background:radial-gradient(ellipse 80% 60% at 50% 50%,var(--paper-2) 0%,var(--paper) 70%)
}
.manifesto-line{font-family:var(--ff-display);font-size:clamp(1.7rem,6vw,4.6rem);font-weight:250;line-height:1.25;letter-spacing:-.02em}
.manifesto-line em{font-style:italic;color:var(--clay)}
.manifesto-line:nth-of-type(2){color:var(--ink-2)}
.manifesto-line:nth-of-type(3){color:var(--mute)}
.manifesto-end{margin-top:clamp(2rem,4vw,3rem);font-size:.92rem;color:var(--mute);font-style:italic;font-family:var(--ff-display)}

/* ═══════════ UFBA ═══════════ */
.uni{padding:var(--sec) var(--pad);background:var(--ink);color:var(--paper);text-align:center;display:flex;flex-direction:column;align-items:center}
.uni .sec-text{margin-inline:auto}
.badge{
  margin-top:clamp(2rem,4vw,3rem);border:1px solid rgba(246,243,237,.18);border-radius:var(--r);
  padding:clamp(1.2rem,2.4vw,1.8rem) clamp(1.8rem,4vw,3rem);display:flex;flex-direction:column;gap:.4rem
}
.badge strong{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.badge span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,243,237,.45)}

/* ═══════════ CADERNO (BLOG) ═══════════ */
.notes{padding:var(--sec) 0}
.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);padding-inline:var(--pad);max-width:1400px;margin-inline:auto}
.note{border-top:1px solid var(--line);padding-top:1.4rem;transition:border-color .4s}
.note:hover{border-color:var(--clay)}
.note-thumb{overflow:hidden;border-radius:var(--r);margin-bottom:1.1rem;background:var(--paper-2);aspect-ratio:4/3}
.note-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.note:hover .note-thumb img{transform:scale(1.05)}
.note time{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);font-weight:600}
.note h3{font-family:var(--ff-display);font-size:clamp(1.2rem,2.2vw,1.7rem);font-weight:400;line-height:1.2;margin:.4rem 0 .6rem}
.note p{font-size:.86rem;line-height:1.75;color:var(--mute)}
.notes-more{text-align:center;margin-top:clamp(2.5rem,5vw,4rem)}

/* ═══════════ PRÓXIMO ═══════════ */
.next{padding:var(--sec) var(--pad);max-width:1300px;margin-inline:auto;display:grid;grid-template-columns:auto 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.next-num{display:flex;flex-direction:column;align-items:center}
.next-num b{
  font-family:var(--ff-display);font-size:clamp(6rem,17vw,15rem);font-weight:200;line-height:.82;
  background:linear-gradient(160deg,var(--clay),var(--ochre));
  -webkit-background-clip:text;background-clip:text;color:transparent
}
.next-num span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-top:.6rem}

/* ═══════════ CONTATO ═══════════ */
.contact{padding:var(--sec) var(--pad);background:var(--paper-2)}
.contact-title{font-family:var(--ff-display);font-size:clamp(2.6rem,10vw,8rem);font-weight:250;line-height:.92;letter-spacing:-.025em;margin-bottom:clamp(1.2rem,2.4vw,1.8rem)}
.contact-title em{font-style:italic;color:var(--clay)}
.contact-links{margin-top:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line)}
.clink{
  display:grid;grid-template-columns:minmax(110px,16%) 1fr auto;align-items:center;gap:1rem;
  padding:clamp(1.3rem,2.6vw,2rem) 0;border-bottom:1px solid var(--line);
  position:relative;isolation:isolate;transition:color .4s var(--ease),padding-inline .4s var(--ease)
}
.clink::before{
  content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;
  transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease)
}
.clink:hover{color:var(--paper);padding-inline:clamp(1rem,2vw,2rem)}
.clink:hover::before{transform:scaleY(1);transform-origin:top}
.clink em{font-style:normal;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--clay);font-weight:600}
.clink:hover em{color:var(--ochre)}
.clink>span{font-family:var(--ff-display);font-size:clamp(1.2rem,3vw,2.2rem);font-weight:300}
.clink svg{width:16px;height:16px;transition:transform .4s var(--ease)}
.clink:hover svg{transform:translate(4px,-4px)}

/* ═══════════ PÁGINAS INTERNAS ═══════════ */
.page-hero{padding:calc(var(--sec) + 4rem) var(--pad) clamp(2rem,4vw,3.5rem);background:var(--paper-2)}
.page-hero h1{font-family:var(--ff-display);font-size:clamp(2.2rem,6vw,4.5rem);font-weight:250;line-height:1.05;letter-spacing:-.02em}
.page-hero .crumbs{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);font-weight:600;margin-bottom:1rem}
.page-body{padding:var(--sec) var(--pad);max-width:760px;margin-inline:auto}
.page-body h1,.page-body h2,.page-body h3,.page-body h4{font-family:var(--ff-display);font-weight:400;line-height:1.2;margin:2.4rem 0 1rem}
.page-body h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
.page-body h3{font-size:clamp(1.3rem,2.6vw,1.8rem)}
.page-body p{margin-bottom:1.3rem;color:var(--ink-2);line-height:1.9}
.page-body a{color:var(--clay);border-bottom:1px solid currentColor}
.page-body ul,.page-body ol{margin:0 0 1.3rem 1.2rem;color:var(--ink-2)}
.page-body ul li{list-style:disc;margin-bottom:.5rem}
.page-body ol li{list-style:decimal;margin-bottom:.5rem}
.page-body blockquote{
  border-left:2px solid var(--clay);padding-left:1.4rem;margin:2rem 0;
  font-family:var(--ff-display);font-style:italic;font-size:1.2rem;color:var(--ink-2)
}
.page-body img{border-radius:var(--r);margin:1.6rem 0}
.page-body code{background:var(--paper-2);padding:.15rem .4rem;border-radius:var(--r);font-size:.88em}
.page-body pre{background:var(--ink);color:var(--paper);padding:1.4rem;border-radius:var(--r);overflow:auto;margin-bottom:1.3rem}
.entry-meta{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-top:1rem}

.pagination{display:flex;gap:.5rem;justify-content:center;padding:0 var(--pad) var(--sec);flex-wrap:wrap}
.pagination .page-numbers{
  border:1px solid var(--line);border-radius:100px;padding:.5rem 1rem;
  font-size:.74rem;letter-spacing:.1em;transition:all .3s
}
.pagination .page-numbers:hover,.pagination .current{background:var(--ink);border-color:var(--ink);color:var(--paper)}

.err{min-height:70svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:var(--sec) var(--pad)}
.err b{font-family:var(--ff-display);font-size:clamp(5rem,18vw,13rem);font-weight:200;line-height:.85;color:var(--clay)}

.searchform{display:flex;gap:.5rem;max-width:420px}
.searchform input[type=search]{
  flex:1;border:1px solid var(--line);border-radius:100px;padding:.7rem 1.2rem;
  font-family:inherit;font-size:.88rem;background:var(--paper)
}
.searchform button{
  border-radius:100px;background:var(--ink);color:var(--paper);padding:.7rem 1.4rem;
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600
}

/* ═══════════ FOOTER ═══════════ */
.ftr{background:var(--ink);color:var(--paper);padding:clamp(3rem,7vw,6rem) var(--pad) clamp(1.5rem,3vw,2.5rem)}
.ftr-top{display:grid;grid-template-columns:1fr auto;gap:clamp(2rem,5vw,5rem);align-items:start;padding-bottom:clamp(2.5rem,5vw,4rem)}
.ftr-mark{font-family:var(--ff-display);font-size:clamp(2.4rem,7vw,5.5rem);font-weight:250;line-height:.92}
.ftr-mark em{font-style:italic;color:var(--ochre)}
.ftr-cols{display:flex;gap:clamp(2rem,5vw,4.5rem);flex-wrap:wrap}
.ftr-cols h4{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ochre);margin-bottom:1rem;font-weight:600}
.ftr-cols a,.ftr-cols p{display:block;font-size:.84rem;color:rgba(246,243,237,.55);margin-bottom:.5rem;transition:color .3s}
.ftr-cols a:hover{color:var(--paper)}
.ftr-cols .sub-menu{display:none}
.ftr-bot{
  border-top:1px solid rgba(246,243,237,.12);padding-top:clamp(1.2rem,2.4vw,1.8rem);
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  font-size:.72rem;color:rgba(246,243,237,.4)
}
.ftr-phrase{font-family:var(--ff-display);font-style:italic;font-size:.88rem;color:rgba(246,243,237,.55)}
.totop{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:rgba(246,243,237,.55);transition:color .3s}
.totop:hover{color:var(--paper)}

/* ═══════════ LIGHTBOX ═══════════ */
.lb{
  position:fixed;inset:0;z-index:200;background:rgba(12,11,9,.96);
  display:grid;place-items:center;padding:clamp(2rem,6vw,5rem);
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s
}
.lb.open{opacity:1;visibility:visible}
.lb-fig{max-width:100%;max-height:100%;text-align:center;transform:scale(.94);transition:transform .5s var(--ease)}
.lb.open .lb-fig{transform:none}
.lb-fig img{max-height:78svh;width:auto;margin-inline:auto;border-radius:var(--r)}
.lb-fig figcaption{margin-top:1.2rem;color:rgba(246,243,237,.7);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-style:normal}
.lb-close{position:absolute;top:1.5rem;right:1.5rem;color:var(--paper);font-size:1.3rem;padding:.6rem;line-height:1}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:var(--paper);font-size:2.6rem;padding:1rem;line-height:1;opacity:.55;transition:opacity .3s}
.lb-nav:hover{opacity:1}
.lb-prev{left:.6rem}
.lb-next{right:.6rem}

/* ═══════════ RESPONSIVO ═══════════ */
@media (max-width:1100px){
  .work-grid{grid-template-columns:repeat(2,1fr)}
  .work:last-child{grid-column:span 2}
  .work:last-child .work-img{aspect-ratio:16/9}
  .tl{grid-template-columns:repeat(3,1fr);row-gap:2.5rem}
  .tl::before{display:none}
  .tl-item{border-top:1px solid var(--line);padding-top:1.6rem}
  .tl-item::before{top:-4.5px}
  .grid{grid-template-columns:repeat(3,1fr)}
  .notes-grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:1024px),(hover:none){
  .hdr.stuck{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
  .process-strip figcaption{backdrop-filter:none;background:rgba(21,19,15,.75)}
}

@media (max-width:860px),(hover:none){
  [data-parallax]{transform:none!important;will-change:auto!important}
  .hero-media img,.ecobag-bg img,.sewing-img img{height:100%}
  .marquee-track{animation-duration:45s}
  .tile img,.about-fig img,.process-strip img,.work-img img,.note-thumb img{transition:none}
  .hero{min-height:92svh}
  .ecobag,.sewing{min-height:auto}
}

@media (max-width:860px){
  .hdr-nav,.hdr-cta{display:none}
  .burger{display:block}
  .about{grid-template-columns:1fr}
  .about-visual{order:-1;margin-bottom:2rem}
  .about-fig--sm{width:38%;right:0;bottom:-8%}
  .process{grid-template-columns:1fr}
  .process-sticky{position:static}
  .next{grid-template-columns:1fr;text-align:center;justify-items:center}
  .ftr-top{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:11rem}
  .tile--wide{grid-column:span 2}
  .hero-scroll{display:none}
  .hero-meta{left:var(--pad);right:auto}
  .notes-grid{grid-template-columns:1fr}
}

@media (max-width:560px){
  .work-grid{grid-template-columns:1fr}
  .work:last-child{grid-column:span 1}
  .work:last-child .work-img{aspect-ratio:3/4}
  .work-body p{max-height:8rem;opacity:1;margin-bottom:1rem}
  .tl{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .tile,.tile--tall,.tile--wide{grid-row:auto;grid-column:auto;aspect-ratio:4/5}
  .tile figcaption{opacity:1;transform:none}
  .clink{grid-template-columns:1fr auto}
  .clink em{grid-column:1/-1;margin-bottom:.2rem}
  .about-fig--sm{display:none}
  .btn{width:100%}
  .hero-actions{width:100%}
  .lb-nav{font-size:2rem;padding:.6rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal],.reveal-line>span,.hero-title .line>span{opacity:1!important;transform:none!important}
  .statement-text .w{opacity:1}
  .grain{display:none}
}