
:root{
  --bg:#0c0f10;
  --bg-soft:#121617;
  --paper:#f1ece5;
  --ink:#f7f2ec;
  --muted:#b8b1aa;
  --gold:#d5b38a;
  --line:rgba(255,255,255,.14);
  --serif:Didot,"Bodoni 72","Times New Roman",Georgia,serif;
  --sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --header-h:86px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
body.menu-open,body.lightbox-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
img{display:block;max-width:100%}
::selection{background:var(--gold);color:#111}
.page-progress{position:fixed;inset:0 auto auto 0;height:2px;width:0;background:var(--gold);z-index:1000;pointer-events:none}
.grain{position:fixed;inset:0;z-index:999;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,72px);z-index:100;transition:background .4s,backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent}
.site-header.scrolled{background:rgba(10,13,14,.72);backdrop-filter:blur(18px);border-color:var(--line)}
.brand{display:inline-flex;align-items:center;gap:12px;letter-spacing:.12em;font-weight:700;font-size:.92rem}
.brand img{border-radius:50%}
.brand>span>span{display:block;color:var(--gold);font-size:.55rem;letter-spacing:.35em;margin-top:2px}
.nav{display:flex;align-items:center;gap:clamp(20px,3vw,44px);font-size:.8rem;letter-spacing:.13em;text-transform:uppercase}
.nav a:not(.nav__cta){position:relative;padding:12px 0}
.nav a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:6px;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__cta{border:1px solid rgba(255,255,255,.35);padding:13px 18px;border-radius:999px;transition:background .3s,color .3s,border-color .3s}
.nav__cta:hover{background:var(--paper);color:#111;border-color:var(--paper)}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;padding:0;position:relative}
.menu-toggle span{position:absolute;left:10px;width:24px;height:1px;background:#fff;transition:.3s}.menu-toggle span:first-child{top:17px}.menu-toggle span:last-child{top:25px}
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--header-h) + 60px) clamp(22px,6vw,110px) clamp(70px,8vw,120px);overflow:hidden}
.hero__bg{position:absolute;inset:-4%;background:url("assets/hero-mosaico.webp") center 45%/cover no-repeat;transform:scale(1.08);animation:kenburns 18s ease-in-out infinite alternate;will-change:transform}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,9,.88) 0%,rgba(6,8,9,.68) 38%,rgba(6,8,9,.25) 72%),linear-gradient(0deg,rgba(6,8,9,.82) 0%,transparent 55%,rgba(6,8,9,.35) 100%)}
.hero__content{position:relative;z-index:2;max-width:1040px}
.eyebrow,.section-kicker{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:600}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(4.2rem,10.2vw,10.4rem);line-height:.78;letter-spacing:-.045em;margin:24px 0 36px}
.hero__title em,.display em{font-weight:400;color:var(--gold)}
.line-mask{display:block;overflow:hidden;padding-bottom:.12em}
.line-mask>span{display:block;transform:translateY(110%);animation:titleIn 1.15s cubic-bezier(.22,.8,.18,1) forwards}
.line-mask:nth-child(2)>span{animation-delay:.12s}
.hero__lead{max-width:650px;color:#ddd7d0;font-size:clamp(1rem,1.4vw,1.22rem);line-height:1.7}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 25px;border-radius:999px;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;border:1px solid rgba(255,255,255,.38);transition:transform .25s,background .25s,color .25s,border-color .25s}
.button--solid{background:var(--paper);color:#101213;border-color:var(--paper)}.button--solid:hover{background:var(--gold);border-color:var(--gold)}
.button--ghost:hover{background:rgba(255,255,255,.11);border-color:#fff}
.hero__sideword{position:absolute;right:-168px;top:50%;transform:rotate(90deg);font-size:.66rem;letter-spacing:.5em;color:rgba(255,255,255,.35);z-index:2}
.scroll-cue{position:absolute;right:clamp(22px,4vw,72px);bottom:44px;z-index:2;display:flex;align-items:center;gap:14px;font-size:.62rem;letter-spacing:.25em;color:#d7d2cc}
.scroll-cue i{display:block;width:48px;height:1px;background:#fff;position:relative;overflow:hidden}.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-100%);animation:scrollLine 1.8s infinite}
.hero__orb{position:absolute;width:360px;height:360px;border-radius:50%;filter:blur(110px);opacity:.12;background:var(--gold);z-index:1;pointer-events:none}
.hero__orb--1{left:-120px;bottom:0}.hero__orb--2{right:-180px;top:10%;opacity:.08}
.section{padding:clamp(90px,11vw,170px) clamp(22px,6vw,110px)}
.manifesto{background:var(--paper);color:#151718}
.manifesto .section-kicker{color:#836748}
.manifesto__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(50px,8vw,140px);align-items:end;margin-top:44px}
.display{font-family:var(--serif);font-size:clamp(3.2rem,7vw,7rem);line-height:.92;letter-spacing:-.035em;font-weight:400;margin:0}
.manifesto__copy{font-size:1.05rem;line-height:1.8;color:#4a4a47}
.manifesto__copy p{margin:0 0 1.2em}
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#101314}
.marquee__track{display:flex;align-items:center;gap:28px;width:max-content;padding:24px 0;font-family:var(--serif);font-size:clamp(1.35rem,2.2vw,2.1rem);letter-spacing:.06em;animation:marquee 26s linear infinite}
.marquee__track b{color:var(--gold);font-size:.8em}
.portfolio{background:var(--bg)}
.portfolio__heading{display:grid;grid-template-columns:1.5fr .5fr;gap:40px;align-items:end;margin-bottom:62px}
.portfolio__heading .display{margin-top:25px}
.portfolio__heading>p{color:var(--muted);line-height:1.7;max-width:420px}
.gallery{columns:4 250px;column-gap:12px}
.gallery-card{position:relative;width:100%;margin:0 0 12px;padding:0;border:0;background:#171a1b;cursor:zoom-in;overflow:hidden;break-inside:avoid;border-radius:2px;transform:translateZ(0)}
.gallery-card:nth-child(7n+1) img{aspect-ratio:4/5}.gallery-card:nth-child(7n+2) img{aspect-ratio:3/4}.gallery-card:nth-child(7n+3) img{aspect-ratio:1/1}.gallery-card:nth-child(7n+4) img{aspect-ratio:4/6}.gallery-card:nth-child(7n+5) img{aspect-ratio:5/6}.gallery-card:nth-child(7n+6) img{aspect-ratio:4/5}.gallery-card:nth-child(7n) img{aspect-ratio:3/4}
.gallery-card img{width:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.75,.25,1),filter .5s;filter:saturate(.92) contrast(1.02)}
.gallery-card__veil{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.38));opacity:0;transition:.4s}
.gallery-card__icon{position:absolute;right:18px;bottom:16px;width:42px;height:42px;border-radius:50%;background:rgba(248,243,237,.92);color:#111;display:grid;place-items:center;transform:translateY(15px) scale(.8);opacity:0;transition:.4s}
.gallery-card:hover img{transform:scale(1.055);filter:saturate(1.02) contrast(1.03)}.gallery-card:hover .gallery-card__veil,.gallery-card:hover .gallery-card__icon{opacity:1}.gallery-card:hover .gallery-card__icon{transform:none}
.quote-band{position:relative;min-height:72svh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:80px 24px}
.quote-band__bg{position:absolute;inset:-8%;background:url("assets/boda-03.webp") center/cover no-repeat fixed;filter:saturate(.75)}
.quote-band::after{content:"";position:absolute;inset:0;background:rgba(6,8,8,.58)}
.quote-band blockquote{position:relative;z-index:1;font-family:var(--serif);font-size:clamp(3rem,7vw,7rem);line-height:.98;margin:0;max-width:1150px}
.quote-band em{color:var(--gold);font-weight:400}
.experience{background:#101314}
.experience__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:55px;border:1px solid var(--line)}
.experience-card{background:#101314;padding:clamp(28px,4vw,54px);min-height:330px;transition:background .4s,transform .4s}
.experience-card:hover{background:#15191a;transform:translateY(-4px)}
.experience-card>span{display:block;color:var(--gold);font-family:var(--serif);font-size:1.2rem;margin-bottom:80px}
.experience-card h3{font-family:var(--serif);font-weight:400;font-size:2.3rem;margin:0 0 18px}
.experience-card p{color:var(--muted);line-height:1.7;margin:0}
.contact{position:relative;text-align:center;overflow:hidden;padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px)}
.contact__halo{position:absolute;width:min(70vw,900px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(213,179,138,.15);left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 120px rgba(213,179,138,.06),inset 0 0 120px rgba(213,179,138,.04)}
.contact .display{position:relative;margin:26px auto 34px}
.contact__text{position:relative;color:var(--muted);font-size:1.05rem}
.mail-link{position:relative;display:inline-flex;align-items:center;gap:18px;margin-top:35px;font-family:var(--serif);font-size:clamp(1.7rem,4vw,4rem);border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:9px;transition:color .3s,border-color .3s}
.mail-link:hover{color:var(--gold);border-color:var(--gold)}
.mail-link i{font-family:var(--sans);font-size:.55em;font-style:normal}
.copy-mail{position:relative;display:block;margin:20px auto 0;background:none;border:0;color:#a9a39d;font-size:.73rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:10px}
.copy-mail:hover{color:#fff}
.footer{display:grid;grid-template-columns:1fr auto auto;gap:40px;align-items:center;border-top:1px solid var(--line);padding:28px clamp(22px,4vw,72px);font-size:.74rem;color:#9b9690}
.footer p{margin:0}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.75,.25,1),transform .8s cubic-bezier(.2,.75,.25,1)}
.reveal.is-visible{opacity:1;transform:none}
.gallery-card.reveal{transform:translateY(24px) scale(.985)}
.gallery-card.reveal.is-visible{transform:none}
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:0;background:rgba(5,7,8,.96);color:#fff;overflow:hidden}
.lightbox::backdrop{background:rgba(0,0,0,.75);backdrop-filter:blur(10px)}
.lightbox[open]{display:grid;place-items:center;animation:fadeIn .28s ease}
.lightbox img{max-width:min(92vw,1300px);max-height:88vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.45);animation:lightboxImage .42s cubic-bezier(.2,.75,.25,1)}
.lightbox__close,.lightbox__prev,.lightbox__next{position:fixed;border:0;background:rgba(255,255,255,.09);backdrop-filter:blur(10px);display:grid;place-items:center;cursor:pointer;z-index:2;transition:background .25s,transform .25s}
.lightbox__close{top:24px;right:26px;width:48px;height:48px;border-radius:50%;font-size:30px}.lightbox__prev,.lightbox__next{top:50%;width:52px;height:72px;transform:translateY(-50%);font-size:42px}.lightbox__prev{left:20px}.lightbox__next{right:20px}
.lightbox__close:hover,.lightbox__prev:hover,.lightbox__next:hover{background:rgba(255,255,255,.18)}
.lightbox__count{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);font-size:.7rem;letter-spacing:.18em;color:#cfc8c0}
.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%,20px);background:var(--paper);color:#111;padding:12px 18px;border-radius:999px;font-size:.78rem;opacity:0;pointer-events:none;z-index:1001;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}
.cursor{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;z-index:1200;mix-blend-mode:difference;display:none}
.cursor--dot{width:5px;height:5px;background:#fff}.cursor--ring{width:36px;height:36px;border:1px solid rgba(255,255,255,.8);transition:width .18s,height .18s,border-color .18s}
@media (pointer:fine){.cursor{display:block}body{cursor:none}a,button{cursor:none}.cursor--ring.hover{width:56px;height:56px;border-color:var(--gold)}}
@keyframes titleIn{to{transform:none}}@keyframes kenburns{0%{transform:scale(1.08) translate3d(0,0,0)}100%{transform:scale(1.15) translate3d(-1.5%,-1%,0)}}@keyframes scrollLine{0%{transform:translateX(-100%)}50%,100%{transform:translateX(100%)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes lightboxImage{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media (max-width:900px){
  :root{--header-h:74px}
  .site-header{padding:0 20px}
  .menu-toggle{display:block;z-index:102}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .nav{position:fixed;inset:0;background:rgba(9,12,13,.97);backdrop-filter:blur(18px);display:flex;flex-direction:column;justify-content:center;gap:28px;font-family:var(--serif);font-size:2.1rem;text-transform:none;letter-spacing:0;transform:translateY(-100%);transition:transform .55s cubic-bezier(.2,.75,.25,1)}
  .nav.open{transform:none}.nav__cta{font-family:var(--sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em}
  .hero{padding-left:22px;padding-right:22px}
  .hero__shade{background:linear-gradient(90deg,rgba(6,8,9,.82),rgba(6,8,9,.35)),linear-gradient(0deg,rgba(6,8,9,.88),transparent 65%)}
  .hero__title{font-size:clamp(4rem,18vw,7.5rem)}
  .hero__sideword{display:none}.scroll-cue{right:22px}
  .manifesto__grid,.portfolio__heading{grid-template-columns:1fr}
  .experience__grid{grid-template-columns:1fr}.experience-card>span{margin-bottom:45px}
  .quote-band__bg{background-attachment:scroll}
  .footer{grid-template-columns:1fr;text-align:center;justify-items:center}
}
@media (max-width:560px){
  .brand>span{font-size:.78rem}
  .hero__actions{align-items:stretch;flex-direction:column}.button{width:100%}
  .gallery{columns:2 140px;column-gap:8px}.gallery-card{margin-bottom:8px}
  .lightbox__prev,.lightbox__next{width:42px;height:58px}.lightbox__prev{left:7px}.lightbox__next{right:7px}
  .contact .display{font-size:clamp(3.1rem,15vw,5.2rem)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.hero__bg,.marquee__track,.scroll-cue i::after{animation:none}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .reveal{opacity:1;transform:none}
  .cursor{display:none!important}body,a,button{cursor:auto}
}
