:root {
  --ink: #060918;
  --ink-soft: #0b1028;
  --paper: #f6f3ec;
  --white: #fff;
  --muted: #a7adc5;
  --pink: #ff2ebd;
  --cyan: #20e4e8;
  --lime: #d9ff43;
  --pad: clamp(1.25rem, 5vw, 5.75rem);
  --radius: 1.5rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: hidden; color: var(--white); background: var(--ink); font-family: Manrope, system-ui, sans-serif; }
img, video { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 1000; padding: .8rem 1rem; background: var(--white); color: var(--ink); border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.scroll-progress { position: fixed; inset: 0 auto auto 0; z-index: 1000; width: 0; height: 3px; background: linear-gradient(90deg, var(--pink), var(--cyan)); }
.cursor-glow { position: fixed; z-index: 2; width: 22rem; height: 22rem; pointer-events: none; opacity: .17; border-radius: 50%; background: radial-gradient(circle, var(--pink), transparent 68%); transform: translate(-50%, -50%); filter: blur(12px); mix-blend-mode: screen; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: .85rem var(--pad); border-bottom: 1px solid transparent; transition: background .3s, border-color .3s, backdrop-filter .3s; }
.site-header.is-scrolled { background: rgba(6,9,24,.72); border-color: rgba(255,255,255,.1); backdrop-filter: blur(18px); }
.brand img { width: 5rem; height: 5rem; object-fit: contain; }
nav { display: flex; gap: 2.25rem; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
nav a { position: relative; }
nav a::after { content:""; position:absolute; left:0; bottom:-.45rem; width:100%; height:1px; background:var(--cyan); transform:scaleX(0); transform-origin:right; transition:transform .25s; }
nav a:hover::after, nav a:focus-visible::after { transform:scaleX(1); transform-origin:left; }
.location { justify-self: end; color: var(--muted); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; }

.hero { position: relative; display: flex; min-height: 100svh; align-items: flex-end; isolation: isolate; overflow: hidden; padding: 8rem var(--pad) 6.5rem; }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.hero-media { z-index: -4; background: url("assets/hero-desktop.jpg") center 38% / cover no-repeat; transform: scale(1.04); animation: hero-breathe 12s ease-in-out infinite alternate; }
.hero-shade { z-index: -3; background: linear-gradient(90deg, rgba(4,7,20,.93) 0%, rgba(4,7,20,.7) 38%, rgba(4,7,20,.18) 72%, rgba(4,7,20,.5) 100%), linear-gradient(0deg, rgba(6,9,24,.9), transparent 48%); }
.hero-content { width: min(790px, 80vw); }
.eyebrow, .section-kicker { margin: 0 0 1rem; color: var(--cyan); font-size: .72rem; font-weight: 800; letter-spacing: .23em; text-transform: uppercase; }
.hero-brand-line { margin-bottom:1.35rem; font-family:Unbounded,Manrope,sans-serif; font-size:clamp(.92rem,1.25vw,1.28rem); letter-spacing:.3em; }
.hero h1, .display { margin: 0; font-family: Unbounded, Manrope, sans-serif; font-weight: 700; letter-spacing: -.065em; line-height: .94; text-transform: uppercase; }
.hero h1 { font-size: clamp(3.15rem, 7.6vw, 8.25rem); }
.hero h1 span { display:block; }
.accent { color: var(--pink); text-shadow: 0 0 42px rgba(255,46,189,.25); }
.outline { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.75); }
.hero-copy { max-width: 38rem; margin: 1.6rem 0 2rem; color: #e6e6ef; font-size: clamp(1rem, 1.5vw, 1.28rem); line-height: 1.55; }
.cta { display: inline-flex; min-height: 3.65rem; align-items:center; gap: 2rem; justify-content: space-between; padding: 0 1.35rem; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; font-weight: 800; font-size: .82rem; letter-spacing: .04em; transition: color .25s, background .25s, transform .25s; }
.cta:hover, .cta:focus-visible { color: var(--ink); background: var(--white); transform: translateY(-3px); }
.hero-index { position: absolute; right: var(--pad); bottom: 2.1rem; color: rgba(255,255,255,.6); font-size: .68rem; letter-spacing: .15em; }
.scroll-cue { position:absolute; left:50%; bottom:2rem; display:flex; flex-direction:column; align-items:center; gap:.6rem; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; transform:translateX(-50%); }
.scroll-cue i { width:1px; height:2.4rem; background:linear-gradient(var(--white),transparent); animation:scroll-cue 1.8s ease-in-out infinite; }
.hero-orb { position:absolute; z-index:-2; border-radius:50%; filter:blur(45px); opacity:.35; }
.hero-orb-one { top:14%; right:8%; width:13rem; height:13rem; background:var(--pink); animation:orb-one 8s ease-in-out infinite alternate; }
.hero-orb-two { right:38%; bottom:6%; width:10rem; height:10rem; background:var(--cyan); animation:orb-two 10s ease-in-out infinite alternate; }

.section-pad { padding: clamp(5rem, 10vw, 9rem) var(--pad); }
.section-pad-left { padding-left: var(--pad); }
.manifesto { position:relative; overflow:hidden; background:var(--paper); color:var(--ink); }
.manifesto .section-kicker { color:#6f1b61; }
.manifesto-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(230px,.55fr); gap:clamp(2rem,8vw,9rem); align-items:end; }
.display { font-size: clamp(2.6rem, 6vw, 6.5rem); }
.manifesto .display em { color:#a80080; font-style:normal; }
.manifesto-grid > p { margin:0 0 .6rem; font-size:clamp(1rem,1.4vw,1.2rem); line-height:1.7; }
.ticker { width:calc(100% + 2 * var(--pad)); margin:6rem calc(var(--pad) * -1) -4rem; overflow:hidden; border-block:1px solid rgba(6,9,24,.18); }
.ticker div { width:max-content; padding:1rem 0; color:#51134a; font-family:Unbounded,sans-serif; font-size:clamp(1.4rem,3vw,3rem); font-weight:600; animation:ticker 22s linear infinite; }

.experience-360 { position:relative; height:210vh; background:radial-gradient(circle at 75% 45%,#18205a 0%,#090d25 38%,var(--ink) 72%); }
.experience-sticky { position:sticky; top:0; display:grid; grid-template-columns:.82fr 1.18fr; min-height:100vh; overflow:hidden; align-items:center; isolation:isolate; }
.experience-sticky::before { content:""; position:absolute; inset:0; z-index:-2; pointer-events:none; background:url("assets/360-desktop.jpg") center 52% / cover no-repeat; opacity:.14; filter:saturate(1.18) contrast(1.08) brightness(.68); -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 29%,#000 62%,#000 100%); mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 29%,#000 62%,#000 100%); transform:scale(1.035); }
.experience-sticky::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(6,9,24,.72) 0%,rgba(6,9,24,.18) 52%,rgba(6,9,24,.42) 100%); }
.experience-copy { position:relative; z-index:4; max-width:39rem; padding-right:2rem; }
.section-number { margin:0 0 .5rem; color:var(--pink); font-family:Unbounded,sans-serif; font-size:.75rem; }
.experience-copy > p:not(.section-number):not(.section-kicker), .photo-copy > p:not(.section-number):not(.section-kicker) { max-width:31rem; margin:1.7rem 0; color:var(--muted); font-size:clamp(1rem,1.3vw,1.18rem); line-height:1.7; }
.text-link { display:inline-flex; gap:1rem; border-bottom:1px solid var(--cyan); padding-bottom:.45rem; color:var(--cyan); font-size:.8rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.orbit-stage { position:relative; height:100%; min-height:100vh; display:grid; place-items:center; perspective:1200px; }
.orbit-ring { position:absolute; border:1px solid rgba(32,228,232,.45); border-radius:50%; transform:rotateX(68deg); }
.ring-one { width:72%; aspect-ratio:1; box-shadow:0 0 36px rgba(32,228,232,.22); }
.ring-two { width:90%; aspect-ratio:1; border-color:rgba(255,46,189,.25); }
.platform-disc { position:absolute; z-index:1; left:50%; top:61%; width:min(30vw,28rem); height:min(9vw,8.5rem); border:2px solid rgba(255,46,189,.7); border-radius:50%; background:radial-gradient(ellipse,rgba(255,46,189,.32),rgba(5,8,26,.88) 64%); box-shadow:0 0 45px rgba(255,46,189,.22),inset 0 0 30px rgba(32,228,232,.17); transform:translate(-50%,-50%); }
.orbit-subject { position:absolute; z-index:4; top:47%; left:50%; width:clamp(12rem,16vw,16rem); padding:.45rem; overflow:hidden; border:1px solid rgba(255,255,255,.25); border-radius:1.8rem; background:rgba(6,9,24,.84); box-shadow:0 28px 75px rgba(0,0,0,.58),0 0 70px rgba(32,228,232,.12); transform:translate(-50%,-50%); transform-origin:50% 85%; will-change:transform; }
.orbit-subject video { aspect-ratio:9/16; border-radius:1.38rem; object-fit:cover; }
.orbit-subject span, .machine-reference span { display:block; padding:.65rem .35rem .3rem; color:var(--cyan); font-size:.58rem; font-weight:800; letter-spacing:.13em; text-align:center; text-transform:uppercase; }
.camera-beam { position:absolute; z-index:3; left:50%; top:50%; width:10rem; height:3px; background:linear-gradient(90deg,rgba(255,255,255,.16),var(--cyan)); box-shadow:0 0 18px rgba(32,228,232,.55); transform-origin:left center; will-change:width,transform; }
.camera-module { position:absolute; z-index:6; left:50%; top:50%; display:grid; width:5.4rem; height:3.2rem; place-items:center; border:1px solid rgba(255,255,255,.38); border-radius:.72rem; background:linear-gradient(145deg,#1f253b,#070a17); box-shadow:0 12px 30px rgba(0,0,0,.55),0 0 22px rgba(32,228,232,.28); transform:translate(-50%,-50%); will-change:transform; }
.camera-module i { width:1.45rem; height:1.45rem; border:3px solid #778199; border-radius:50%; background:radial-gradient(circle,var(--cyan) 0 15%,#10152c 20% 58%,#01020a 62%); box-shadow:0 0 13px rgba(32,228,232,.65); }
.camera-module b { position:absolute; top:-.42rem; left:.9rem; width:1.15rem; height:.48rem; border-radius:.25rem .25rem 0 0; background:#252c42; }
.camera-module span { position:absolute; left:50%; top:calc(100% + .45rem); color:var(--cyan); font-size:.48rem; font-weight:800; letter-spacing:.16em; transform:translateX(-50%); }
.machine-reference { position:absolute; z-index:5; right:3.5vw; bottom:4vh; width:clamp(7rem,10vw,9.5rem); padding:.38rem; overflow:hidden; border:1px solid rgba(255,255,255,.2); border-radius:1rem; background:rgba(6,9,24,.78); backdrop-filter:blur(14px); box-shadow:0 18px 45px rgba(0,0,0,.45); }
.machine-reference img { aspect-ratio:1/1; border-radius:.7rem; object-fit:cover; }
.orbit-word { position:absolute; color:rgba(255,255,255,.32); font-family:Unbounded,sans-serif; font-size:.64rem; letter-spacing:.3em; }
.word-one { top:17%; left:17%; }
.word-two { right:10%; top:32%; writing-mode:vertical-rl; }

.photo-booth { position:relative; display:grid; grid-template-columns:1.1fr .8fr; gap:clamp(2rem,7vw,8rem); align-items:center; min-height:100vh; background:linear-gradient(135deg,#17062c 0%,#080b1c 55%); overflow:hidden; }
.photo-visual { position:relative; min-height:42rem; overflow:hidden; border-radius:var(--radius); transform:translateX(-5rem); opacity:0; transition:transform 1s cubic-bezier(.2,.8,.2,1),opacity 1s; }
.photo-visual.is-visible { transform:translateX(0); opacity:1; }
.photo-visual img { height:100%; min-height:42rem; object-fit:cover; object-position:center; }
.photo-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,9,24,.68),transparent 58%); }
.light-beam { position:absolute; z-index:2; inset:-30% auto auto 15%; width:30%; height:160%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent); transform:rotate(17deg); filter:blur(10px); animation:beam 6s ease-in-out infinite alternate; }
.photo-stamp { position:absolute; z-index:3; right:1.5rem; bottom:1.5rem; display:flex; align-items:end; gap:.7rem; }
.photo-stamp span { color:var(--pink); font-family:Unbounded,sans-serif; font-size:clamp(2rem,5vw,5.5rem); font-weight:700; line-height:.8; }
.photo-stamp small { max-width:6rem; font-size:.58rem; letter-spacing:.14em; }
.photo-copy { position:relative; z-index:2; }
.cta-secondary { margin-top:.5rem; border-color:var(--pink); }

.services { background:var(--paper); color:var(--ink); }
.services .section-kicker { color:#6f1b61; }
.services .accent { color:#a80080; text-shadow:none; }
.section-head { display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:end; margin-bottom:4rem; }
.section-intro { max-width:24rem; margin:0 0 .4rem; color:#555b70; line-height:1.65; }
.mobile-slider-controls { display:none; }
.service-grid { display:grid; grid-template-columns:repeat(12,1fr); align-items:start; gap:1rem; }
.service-card { grid-column:span 6; overflow:hidden; border-radius:1.25rem; background:#11152a; color:white; }
.service-card:nth-child(3), .service-card:nth-child(4), .service-card:nth-child(5), .service-card:nth-child(6) { grid-column:span 3; }
.service-summary { position:relative; display:block; min-height:31rem; overflow:hidden; isolation:isolate; cursor:pointer; list-style:none; }
.service-card:nth-child(3) .service-summary, .service-card:nth-child(4) .service-summary, .service-card:nth-child(5) .service-summary, .service-card:nth-child(6) .service-summary { min-height:25rem; }
.service-summary::-webkit-details-marker { display:none; }
.service-summary::marker { display:none; content:""; }
.service-summary::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(5,8,22,.95),rgba(5,8,22,0) 68%); }
.service-summary:focus-visible { outline:3px solid var(--cyan); outline-offset:-3px; }
.service-card img { position:absolute; inset:0; z-index:-2; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s; }
.service-card:hover .service-summary img, .service-card[open] .service-summary img { transform:scale(1.07) rotate(.5deg); filter:saturate(1.12); }
.service-card-content { position:absolute; inset:auto 1.35rem 1.35rem; }
.service-card .count { color:var(--cyan); font-size:.62rem; font-weight:800; letter-spacing:.15em; }
.service-card h3 { margin:.45rem 0 .25rem; font-family:Unbounded,sans-serif; font-size:clamp(1.25rem,2.2vw,2.5rem); letter-spacing:-.05em; text-transform:uppercase; }
.service-card p { margin:0; color:#c9cada; font-size:.75rem; }
.service-toggle-icon { position:absolute; inset:1rem 1rem auto auto; display:grid; width:2.8rem; height:2.8rem; place-items:center; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(6,9,24,.2); backdrop-filter:blur(8px); font-size:1rem; transition:background .25s,color .25s,transform .35s; }
.service-summary:hover .service-toggle-icon { color:var(--ink); background:var(--cyan); }
.service-card[open] .service-toggle-icon { color:var(--ink); background:var(--cyan); transform:rotate(180deg); }
.service-card:not([open]) > .service-details { display:none; }
.service-details { padding:1.35rem 1.35rem 1.5rem; border-top:1px solid rgba(255,255,255,.12); background:linear-gradient(145deg,#11172f,#080b1b); }
.service-details > p { color:#e0e2ec; font-size:.9rem; line-height:1.6; }
.service-details-label { display:block; margin:1.15rem 0 .65rem; color:var(--cyan); font-size:.65rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.service-details ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem 1rem; margin:0; padding:0; list-style:none; }
.service-details li { position:relative; padding-left:.9rem; color:#bec3d6; font-size:.73rem; line-height:1.45; }
.service-details li::before { content:""; position:absolute; left:0; top:.52em; width:.32rem; height:.32rem; border-radius:50%; background:var(--pink); box-shadow:0 0 8px rgba(255,46,189,.55); }
.service-card:nth-child(n+3) .service-details ul { grid-template-columns:1fr; }
.packs { margin-top:1rem; overflow:hidden; color:white; background:var(--ink); border-radius:1rem; }
.packs-summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:2rem; padding:1.2rem 1.4rem; cursor:pointer; list-style:none; }
.packs-summary::-webkit-details-marker { display:none; }
.packs-summary::marker { display:none; content:""; }
.packs-summary > span:first-child { color:var(--pink); font-weight:800; text-transform:uppercase; }
.packs-summary p { margin:0; color:#c5c8d7; }
.packs-toggle { display:grid; width:2.6rem; height:2.6rem; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; transition:transform .3s,background .2s,color .2s; }
.packs[open] .packs-toggle { color:var(--ink); background:var(--cyan); border-color:var(--cyan); transform:rotate(180deg); }
.pack-options { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border-top:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.12); }
.pack-options article { padding:1.5rem; background:linear-gradient(145deg,#11172f,#080b1b); }
.pack-options h3 { margin:0 0 .65rem; color:var(--cyan); font-family:Unbounded,sans-serif; font-size:.9rem; line-height:1.3; text-transform:uppercase; }
.pack-options p { margin:0; color:#c9ccda; font-size:.78rem; line-height:1.6; }
.pack-cta { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; color:white; background:#0c1024; font-size:.76rem; font-weight:800; letter-spacing:.04em; }
.pack-cta span { color:var(--cyan); font-size:1rem; }

.moments { padding-bottom:clamp(5rem,10vw,9rem); background:var(--ink); overflow:hidden; }
.moments-title { position:relative; padding-bottom:3.5rem; }
.gallery-controls { position:absolute; right:var(--pad); bottom:3.8rem; display:flex; align-items:center; gap:.65rem; }
.gallery-controls span { margin-right:.5rem; color:#969aad; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.gallery-controls button { width:3rem; height:3rem; color:white; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.28); border-radius:50%; cursor:pointer; font-size:1.15rem; transition:background .2s,color .2s,border-color .2s,transform .2s; }
.gallery-controls button:hover { color:var(--ink); background:var(--cyan); border-color:var(--cyan); transform:scale(1.06); }
.gallery-controls button:disabled { opacity:.28; cursor:default; transform:none; }
.gallery-track { display:flex; gap:1rem; padding:0 var(--pad) 1.25rem; align-items:center; overflow-x:auto; overscroll-behavior-inline:contain; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:none; }
.gallery-track::-webkit-scrollbar { display:none; }
.gallery-card { position:relative; flex:0 0 clamp(20rem,29vw,33rem); height:min(47vw,36rem); margin:0; overflow:hidden; border-radius:1.2rem; scroll-snap-align:center; }
.gallery-card.gallery-tall { flex-basis:clamp(21rem,32vw,36rem); height:min(54vw,41rem); }
.gallery-card.gallery-wide { flex-basis:clamp(27rem,42vw,46rem); height:min(40vw,32rem); }
.gallery-card img { height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.8,.2,1); }
.gallery-card:hover img { transform:scale(1.055); }
.gallery-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,9,24,.85),transparent 50%); }
.gallery-card figcaption { position:absolute; z-index:2; left:1.2rem; bottom:1.2rem; font-family:Unbounded,sans-serif; font-size:clamp(.75rem,1.2vw,1.15rem); text-transform:uppercase; }

.closing { position:relative; min-height:90vh; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; isolation:isolate; overflow:hidden; }
.closing-bg { position:absolute; inset:0; z-index:-3; background:url("assets/hero-desktop.jpg") center / cover; filter:saturate(.75); }
.closing::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(6,9,24,.96),rgba(6,9,24,.68) 58%,rgba(6,9,24,.6)); }
.closing .display { font-size:clamp(3rem,8.5vw,9rem); }
.closing > p:not(.section-kicker) { max-width:32rem; margin:1.6rem 0; color:#d4d5df; font-size:1.1rem; }
.giant-mark { position:absolute; z-index:-1; right:-.06em; bottom:-.25em; color:rgba(255,255,255,.04); font-family:Unbounded,sans-serif; font-size:45vw; font-weight:700; line-height:1; }

footer { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.5rem; padding:1.5rem var(--pad); background:#03050d; border-top:1px solid rgba(255,255,255,.1); }
footer img { width:5.6rem; height:5.6rem; object-fit:contain; }
footer p { margin:0; color:#8f94aa; font-size:.78rem; }
.instagram-link { display:flex; flex-direction:column; align-items:center; justify-self:end; gap:.35rem; color:var(--cyan); font-size:.68rem; font-weight:700; letter-spacing:.08em; transition:color .25s,transform .25s; }
.instagram-link svg { width:2.65rem; height:2.65rem; padding:.62rem; overflow:visible; border:1px solid rgba(255,255,255,.28); border-radius:50%; fill:none; stroke:currentColor; stroke-width:1.7; }
.instagram-link .instagram-dot { fill:currentColor; stroke:none; }
.instagram-link:hover, .instagram-link:focus-visible { color:var(--pink); transform:translateY(-3px); }

.whatsapp-float { position:fixed; z-index:90; right:1.25rem; bottom:1.25rem; display:flex; align-items:center; gap:.6rem; min-height:3.25rem; padding:0 1rem; color:#04150b; background:#72ff9c; border:1px solid rgba(255,255,255,.45); border-radius:999px; box-shadow:0 14px 35px rgba(0,0,0,.38); font-size:.76rem; font-weight:800; opacity:0; pointer-events:none; transform:translateY(1rem); transition:opacity .3s,transform .3s,background .2s; }
.whatsapp-float svg { width:1.35rem; height:1.35rem; }
.whatsapp-float.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.whatsapp-float:hover { background:#a5ffbf; }

.reveal { opacity:0; transform:translateY(2.2rem); transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.hero .reveal:nth-child(2) { transition-delay:.08s; }
.hero .reveal:nth-child(3) { transition-delay:.16s; }
.hero .reveal:nth-child(4) { transition-delay:.24s; }

@keyframes hero-breathe { to { transform:scale(1.1) translate3d(-.7%,.5%,0); } }
@keyframes scroll-cue { 0%,100%{transform:scaleY(.3);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} }
@keyframes ticker { to { transform:translateX(-50%); } }
@keyframes beam { from{transform:translateX(-35%) rotate(17deg)} to{transform:translateX(245%) rotate(17deg)} }
@keyframes orb-one { to{transform:translate(-4rem,3rem) scale(1.25)} }
@keyframes orb-two { to{transform:translate(5rem,-2rem) scale(.8)} }

@media (max-width: 900px) {
  .site-header { grid-template-columns:1fr auto; }
  nav { display:none; }
  .hero { padding-bottom:5.6rem; }
  .hero-media { background-image:url("assets/hero-mobile.jpg"); background-position:center 42%; }
  .hero-shade { background:linear-gradient(0deg,rgba(4,7,20,.94) 0%,rgba(4,7,20,.62) 62%,rgba(4,7,20,.3) 100%); }
  .hero-content { width:100%; }
  .hero h1 { font-size:clamp(3rem,14vw,5.5rem); }
  .hero-brand-line { font-size:.9rem; letter-spacing:.26em; }
  .brand img { width:4.75rem; height:4.75rem; }
  .scroll-cue, .hero-index { display:none; }
  .manifesto-grid { grid-template-columns:1fr; }
  .ticker { margin-top:4rem; }
  .experience-360 { height:180vh; }
  .experience-sticky { grid-template-columns:1fr; grid-template-rows:auto 1fr; align-items:start; padding-top:6.5rem; }
  .experience-sticky::before { background-image:url("assets/360-mobile.jpg"); background-position:center bottom; opacity:.12; -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.08) 24%,#000 58%,#000 100%); mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.08) 24%,#000 58%,#000 100%); }
  .experience-sticky::after { background:linear-gradient(180deg,rgba(6,9,24,.72) 0%,rgba(6,9,24,.2) 52%,rgba(6,9,24,.48) 100%); }
  .experience-copy { padding-right:var(--pad); }
  .experience-copy .display { font-size:clamp(3rem,13vw,5.2rem); }
  .experience-copy > p:not(.section-number):not(.section-kicker) { margin:1rem 0; }
  .orbit-stage { min-height:55vh; }
  .orbit-subject { width:clamp(9rem,31vw,12rem); }
  .platform-disc { width:min(66vw,24rem); height:min(20vw,7rem); }
  .camera-module { width:4.2rem; height:2.6rem; }
  .machine-reference { right:.7rem; bottom:.7rem; width:6.5rem; }
  .word-one { top:10%; left:8%; }
  .photo-booth { grid-template-columns:1fr; min-height:auto; }
  .photo-visual { min-height:65vh; order:2; }
  .photo-visual img { min-height:65vh; }
  .photo-copy { order:1; }
  .section-head { grid-template-columns:1fr; }
  .service-card, .service-card:nth-child(n) { grid-column:span 6; }
  .service-card:nth-child(n) .service-summary { min-height:24rem; }
  .gallery-controls { bottom:3.6rem; }
  .gallery-controls span { display:none; }
  .gallery-card, .gallery-card.gallery-tall, .gallery-card.gallery-wide { flex-basis:82vw; height:62vh; }
}

@media (max-width: 560px) {
  .cursor-glow { display:none; }
  .hero { min-height:100svh; padding-top:7rem; }
  .hero-copy { max-width:19rem; margin:1rem 0 1.5rem; font-size:.96rem; }
  .cta { width:100%; }
  .manifesto .display, .moments .display { font-size:clamp(2.4rem,12.3vw,4rem); }
  .services .display { font-size:clamp(2.2rem,10.8vw,3.4rem); }
  .experience-copy .text-link { display:none; }
  .orbit-stage { min-height:52vh; }
  .orbit-subject { width:8.2rem; }
  .camera-module { width:3.7rem; height:2.35rem; }
  .camera-module span { display:none; }
  .machine-reference { display:none; }
  .photo-visual { min-height:33rem; }
  .photo-visual img { min-height:33rem; }
  .photo-stamp small { display:none; }
  .service-grid { display:flex; overflow-x:auto; gap:.8rem; margin-right:calc(var(--pad) * -1); padding-right:var(--pad); scroll-snap-type:x mandatory; }
  .service-grid::-webkit-scrollbar { display:none; }
  .service-grid { overscroll-behavior-inline:contain; scroll-behavior:smooth; scrollbar-width:none; }
  .mobile-slider-controls { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; margin:-1rem 0 1rem; }
  .mobile-slider-controls span { margin-right:auto; color:#62687b; font-size:.62rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
  .mobile-slider-controls button { display:grid; width:3rem; height:3rem; place-items:center; color:var(--ink); background:rgba(6,9,24,.05); border:1px solid rgba(6,9,24,.28); border-radius:50%; cursor:pointer; font-size:1.15rem; transition:background .2s,color .2s,border-color .2s,transform .2s; }
  .mobile-slider-controls button:active { color:var(--ink); background:var(--cyan); border-color:var(--cyan); transform:scale(.96); }
  .mobile-slider-controls button:disabled { opacity:.28; cursor:default; transform:none; }
  .service-card, .service-card:nth-child(n) { flex:0 0 82vw; scroll-snap-align:start; }
  .service-card:nth-child(n) .service-summary { min-height:27rem; }
  .service-details ul { grid-template-columns:1fr; }
  .packs-summary { grid-template-columns:1fr auto; gap:.5rem; }
  .packs-summary p { grid-column:1/-1; grid-row:2; }
  .packs-toggle { grid-column:2; grid-row:1; }
  .pack-options { grid-template-columns:1fr; }
  .pack-options article, .pack-cta { grid-column:1; }
  .gallery-controls { position:static; margin-top:1.5rem; }
  .moments-title { padding-bottom:2rem; }
  .gallery-card, .gallery-card.gallery-tall, .gallery-card.gallery-wide { flex-basis:84vw; height:64vh; }
  .closing { min-height:82vh; }
  footer { grid-template-columns:auto 1fr; }
  .instagram-link { grid-column:1/-1; justify-self:center; margin-top:.65rem; }
  .whatsapp-float { right:.75rem; bottom:.75rem; width:3.25rem; min-width:3.25rem; padding:0; justify-content:center; }
  .whatsapp-float span { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal, .photo-visual { opacity:1; transform:none; }
  .cursor-glow { display:none; }
  .orbit-subject { transform:translate(-50%,-50%) !important; }
  .camera-module, .camera-beam { display:none; }
}

