@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@1,500;1,600&family=Manrope:wght@400;500;600;700;800&display=swap");

:root {
  --ink: #171a17; --dark: #131613; --paper: #f0eee6; --card: #f7f6f1; --lime: #d3ec97;
  --green: #264326; --line: #d2d3c8; --muted: #686c61; --white: #fff;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --max: 1180px; --r: 18px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { font-family: var(--sans); color: var(--ink); background: var(--paper); line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
.wrap { width: min(var(--max), 100% - 40px); margin-inline: auto; }
.serif { font-family: var(--serif); font-style: italic; font-weight: 500; letter-spacing: -0.01em; }
.eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--lime); padding: 8px 14px; z-index: 99; }
.skip:focus { left: 8px; }

/* header */
.top { position: sticky; top: 0; z-index: 50; background: rgba(19,22,19,.92); backdrop-filter: blur(10px); border-bottom: 1px solid #262b26; }
.top .wrap { display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 16px; }
.logo img { height: 22px; width: auto; }
.nav { display: flex; gap: 26px; }
.nav a { color: #d9dbd2; font-size: 14px; font-weight: 600; text-decoration: none; }
.nav a:hover { color: var(--lime); }
.btn { display: inline-flex; align-items: center; gap: 10px; border: 0; cursor: pointer; text-decoration: none; font: 700 15px/1 var(--sans); padding: 15px 22px; border-radius: 999px; transition: transform .15s ease, background .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-lime { background: var(--lime); color: var(--ink); }
.btn-dark { background: var(--ink); color: var(--white); }
.btn-ghost { background: transparent; color: var(--white); border: 1.5px solid #4a5148; }
.btn-sm { padding: 10px 16px; font-size: 13.5px; }
.btn[aria-disabled="true"] { background: #e2e1d9; color: #8a8d84; pointer-events: none; }

/* hero */
.hero { position: relative; color: var(--white); background: var(--dark); overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(19,22,19,.96) 0%, rgba(19,22,19,.82) 42%, rgba(19,22,19,.35) 100%), url("../img/eduraw-37245228.webp") center/cover no-repeat; }
.hero .wrap { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; padding: 96px 0 104px; }
.hero h1 { font-size: clamp(46px, 7vw, 92px); line-height: .95; font-weight: 700; letter-spacing: -0.035em; }
.hero h1 .serif { display: block; font-size: 1.04em; color: var(--lime); margin-top: 4px; }
.hero p.lead { font-size: 18px; color: #cfd2c8; max-width: 520px; margin: 26px 0 32px; }
.hero .actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero .by { display: flex; align-items: center; gap: 12px; margin-top: 36px; font-size: 13.5px; color: #b9bdb2; }
.hero .by img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.hero-cover { justify-self: end; width: min(420px, 100%); transform: rotate(4deg); box-shadow: 0 30px 80px rgba(0,0,0,.55); border-radius: 6px; overflow: hidden; }

/* marquee */
.strip { background: var(--lime); overflow: hidden; border-block: 1px solid #b9cf7f; }
.strip-track { display: flex; gap: 46px; padding: 16px 0; width: max-content; animation: slide 38s linear infinite; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; }
.strip-track .serif { font-weight: 500; }
@keyframes slide { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .strip-track { animation: none; } }

/* sections */
section.block { padding: 96px 0; }
.head { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 44px; flex-wrap: wrap; }
.head h2 { font-size: clamp(36px, 5vw, 60px); line-height: 1; letter-spacing: -0.03em; font-weight: 700; }
.head h2 .serif { display: block; color: var(--green); }
.head p { max-width: 420px; color: var(--muted); }

/* store */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.product { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; display: flex; flex-direction: column; }
.product .cover { background: #e7e5dc; border-radius: 12px; padding: 22px 34px; aspect-ratio: 4 / 4.3; display: flex; align-items: center; justify-content: center; }
.product .cover img { height: 100%; width: auto; max-width: 100%; object-fit: contain; box-shadow: 0 16px 34px rgba(19,22,19,.28); border-radius: 3px; }
.product .tag { font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-top: 18px; }
.product h3 { font-size: 22px; line-height: 1.15; letter-spacing: -0.02em; margin-top: 6px; }
.product p { font-size: 14.5px; color: var(--muted); margin-top: 8px; flex: 1; }
.product .buy { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.price { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.price small { font-size: 13px; color: var(--muted); font-weight: 600; }
.featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr; gap: 30px; align-items: center; background: var(--dark); color: var(--white); border-color: var(--dark); padding: 28px; }
.featured .cover { background: var(--paper); aspect-ratio: auto; padding: 0; overflow: hidden; }
.featured .cover img { box-shadow: none; border-radius: 0; width: 100%; height: auto; max-height: none; }
.featured h3 { font-size: 36px; }
.featured p { color: #cfd2c8; font-size: 16px; }
.featured .tag { color: var(--lime); }
.featured .buy { border-color: #2c322c; }
.featured ul { list-style: none; margin-top: 16px; display: grid; gap: 6px; font-size: 14.5px; color: #dfe2d8; }
.featured li::before { content: "✓"; color: var(--lime); font-weight: 800; margin-right: 10px; }
.save { display: inline-block; background: var(--lime); color: var(--ink); font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 999px; margin-left: 10px; vertical-align: middle; }
.note { font-size: 13px; color: var(--muted); margin-top: 22px; text-align: center; }

/* gift */
.gift { background: var(--green); color: var(--white); }
.gift .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.gift h2 { font-size: clamp(38px, 5vw, 60px); line-height: 1; letter-spacing: -0.03em; }
.gift h2 .serif { display: block; color: var(--lime); }
.gift p { color: #d6dfcf; margin-top: 18px; max-width: 470px; }
.gift ul { list-style: none; margin-top: 22px; display: grid; gap: 8px; }
.gift li::before { content: "✓"; color: var(--lime); font-weight: 800; margin-right: 10px; }
.formcard { background: var(--paper); color: var(--ink); border-radius: 22px; padding: 30px; box-shadow: 0 30px 70px rgba(0,0,0,.25); }
.formcard img { border-radius: 10px; margin-bottom: 20px; }
.formcard label { display: block; font-size: 13.5px; font-weight: 700; margin-bottom: 8px; }
.formcard input[type=email] { width: 100%; font: 500 16px var(--sans); padding: 15px 16px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--white); }
.formcard input[type=email]:focus { outline: 3px solid var(--lime); border-color: var(--green); }
.formcard .btn { width: 100%; justify-content: center; margin-top: 14px; }
.formcard small { display: block; font-size: 12.5px; color: var(--muted); margin-top: 12px; }
.formcard .msg { display: none; font-size: 14px; background: #fff3c4; padding: 10px 12px; border-radius: 10px; margin-top: 12px; }
.alt { margin-top: 26px; padding-top: 22px; border-top: 1px solid #3c5a3b; font-size: 14.5px; color: #d6dfcf; }
.alt a { color: var(--lime); font-weight: 700; }

/* collabs */
.collabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.collab { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; }
.collab .media { background: var(--dark); aspect-ratio: 16 / 10; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.collab .media img { width: 100%; height: 100%; object-fit: cover; }
.collab .media.logo img { width: auto; height: 44%; object-fit: contain; }
.collab .body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.collab .btn { align-self: flex-start; }
.collab h3 { font-size: 21px; letter-spacing: -0.02em; margin-top: 6px; }
.collab p { font-size: 14.5px; color: var(--muted); margin: 8px 0 16px; flex: 1; }
.code { display: inline-block; background: var(--lime); font-weight: 800; padding: 3px 9px; border-radius: 6px; font-size: 13px; }
.disclosure { font-size: 13px; color: var(--muted); margin-top: 26px; max-width: 760px; }

/* about */
.about .wrap { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
.about .photo { border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 5; }
.about .photo img { width: 100%; height: 100%; object-fit: cover; }
.about h2 { font-size: clamp(36px, 5vw, 58px); line-height: 1; letter-spacing: -0.03em; }
.about h2 .serif { display: block; color: var(--green); }
.about p { margin-top: 18px; color: #3d423b; font-size: 16.5px; }
.links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.links a { text-decoration: none; font-weight: 700; font-size: 14px; border: 1.5px solid var(--ink); padding: 10px 16px; border-radius: 999px; }
.links a:hover { background: var(--ink); color: var(--white); }
.gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 40px; }
.gallery img { aspect-ratio: 1; object-fit: cover; border-radius: 12px; width: 100%; }

/* faq */
.faq { max-width: 820px; }
.faq details { border-bottom: 1px solid var(--line); padding: 20px 0; }
.faq summary { cursor: pointer; font-weight: 700; font-size: 18px; list-style: none; display: flex; justify-content: space-between; gap: 20px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 24px; line-height: 1; color: var(--green); }
.faq details[open] summary::after { content: "–"; }
.faq details p { margin-top: 10px; color: var(--muted); }

/* footer */
.foot { background: var(--dark); color: #b9bdb2; padding: 56px 0 40px; }
.foot .big { color: var(--white); font-size: clamp(40px, 6vw, 76px); line-height: 1; letter-spacing: -0.03em; font-weight: 700; }
.foot .big .serif { color: var(--lime); }
.foot .row { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 40px; padding-top: 22px; border-top: 1px solid #2c322c; font-size: 14px; }
.foot nav { display: flex; gap: 20px; flex-wrap: wrap; }
.foot a { text-decoration: none; }
.foot a:hover { color: var(--lime); }

/* simple pages */
.page { padding: 80px 0 100px; }
.page .wrap { max-width: 780px; }
.page h1 { font-size: clamp(40px, 6vw, 64px); line-height: 1; letter-spacing: -0.03em; }
.page h1 .serif { display: block; color: var(--green); }
.page h2 { font-size: 21px; margin-top: 36px; letter-spacing: -0.01em; }
.page p, .page li { color: #3d423b; margin-top: 12px; }
.page ul { padding-left: 22px; }
.page .updated { margin-top: 14px; }
.thanks { text-align: center; }
.thanks .wrap { max-width: 640px; }
.thanks img { width: 220px; margin: 0 auto 30px; box-shadow: 0 20px 50px rgba(19,22,19,.25); border-radius: 4px; }
.thanks .btn { margin-top: 26px; }

/* responsive */
@media (max-width: 960px) {
  .nav { display: none; }
  .hero .wrap { grid-template-columns: 1fr; padding: 64px 0 72px; }
  .hero-cover { justify-self: start; width: 70%; max-width: 320px; }
  .grid, .collabs { grid-template-columns: 1fr 1fr; }
  .featured { grid-template-columns: 1fr; }
  .gift .wrap, .about .wrap { grid-template-columns: 1fr; gap: 36px; }
  .gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  section.block { padding: 70px 0; }
  .grid, .collabs { grid-template-columns: 1fr; }
  .top .btn { padding: 9px 14px; font-size: 13px; }
  .featured h3 { font-size: 28px; }
  .formcard { padding: 22px; }
}

.start { background: var(--lime); border-color: #b9cf7f; justify-content: center; }
.start h3 { font-size: 28px; }
.start p { color: #3d4a2c; flex: 0; margin-bottom: 20px; }
.start .btn { align-self: flex-start; }

/* ===================== MOTION LAYER ===================== */
.eyebrow.light { color: #a9ad9f; }

/* reveal on scroll */
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1); }
[data-reveal].in { opacity: 1; transform: none; }
.no-motion [data-reveal] { opacity: 1; transform: none; transition: none; }

/* viewfinder hero */
.vf-hero { position: relative; min-height: 100svh; display: flex; align-items: center; color: #fff; background: #0b0d0b; overflow: hidden; }
.vf-photo { position: absolute; inset: 0; }
.vf-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--zoom, 1.06)); filter: blur(var(--blur, 0px)); transition: filter .2s linear; will-change: transform, filter; }
.vf-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,13,11,.92) 0%, rgba(11,13,11,.62) 45%, rgba(11,13,11,.15) 100%), linear-gradient(0deg, rgba(11,13,11,.6), transparent 40%); }
.vf-ui { position: absolute; inset: 22px; pointer-events: none; font: 600 12.5px/1 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .06em; color: rgba(255,255,255,.88); }
.vf-c { position: absolute; width: 44px; height: 44px; border: 2px solid rgba(255,255,255,.85); }
.vf-c.tl { top: 40px; left: 0; border-right: 0; border-bottom: 0; } .vf-c.tr { top: 40px; right: 0; border-left: 0; border-bottom: 0; }
.vf-c.bl { bottom: 40px; left: 0; border-right: 0; border-top: 0; } .vf-c.br { bottom: 40px; right: 0; border-left: 0; border-top: 0; }
.vf-grid { position: absolute; inset: 40px 0; background:
  linear-gradient(90deg, transparent calc(33.33% - .5px), rgba(255,255,255,.14) calc(33.33% - .5px), rgba(255,255,255,.14) calc(33.33% + .5px), transparent calc(33.33% + .5px), transparent calc(66.66% - .5px), rgba(255,255,255,.14) calc(66.66% - .5px), rgba(255,255,255,.14) calc(66.66% + .5px), transparent calc(66.66% + .5px)),
  linear-gradient(0deg, transparent calc(33.33% - .5px), rgba(255,255,255,.14) calc(33.33% - .5px), rgba(255,255,255,.14) calc(33.33% + .5px), transparent calc(33.33% + .5px), transparent calc(66.66% - .5px), rgba(255,255,255,.14) calc(66.66% - .5px), rgba(255,255,255,.14) calc(66.66% + .5px), transparent calc(66.66% + .5px)); }
.vf-af { position: absolute; left: var(--afx, 72%); top: var(--afy, 46%); width: 86px; height: 64px; transform: translate(-50%,-50%); transition: left .5s cubic-bezier(.22,1,.36,1), top .5s cubic-bezier(.22,1,.36,1); }
.vf-af { border: 2px solid rgba(255,255,255,.9); border-radius: 4px; }
.vf-af.lock { border-color: var(--lime); box-shadow: 0 0 0 1px rgba(211,236,151,.35); }
.vf-af i { position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px; background: var(--lime); border-radius: 50%; opacity: 0; transition: opacity .2s; }
.vf-af.lock i { opacity: 1; }
.vf-top, .vf-bottom { position: absolute; left: 0; right: 0; display: flex; gap: 22px; align-items: center; }
.vf-top { top: 0; justify-content: flex-end; }
.vf-bottom { bottom: 0; justify-content: center; background: rgba(0,0,0,.35); padding: 10px 16px; border-radius: 10px; width: max-content; margin-inline: auto; }
.vf-bottom b, .vf-top b { color: var(--lime); font-weight: 700; }
.vf-rec { margin-right: auto; color: var(--lime); }
.vf-batt { width: 26px; height: 12px; border: 2px solid rgba(255,255,255,.85); border-radius: 3px; position: relative; }
.vf-batt i { position: absolute; inset: 1px 30% 1px 1px; background: var(--lime); }
.vf-meter { display: inline-flex; gap: 4px; align-items: end; }
.vf-meter i { width: 3px; height: 8px; background: rgba(255,255,255,.5); }
.vf-meter i.on { height: 14px; background: var(--lime); }
.vf-copy { position: relative; padding: 120px 0 140px; }
.vf-copy h1 { font-size: clamp(42px, 6.6vw, 88px); line-height: .98; font-weight: 700; letter-spacing: -0.035em; max-width: 820px; }
.vf-copy h1 .serif { display: block; color: var(--lime); font-size: 1.05em; }
.vf-copy .lead { font-size: 18.5px; color: #d3d6cc; max-width: 560px; margin: 26px 0 32px; }
.vf-copy .actions { display: flex; flex-wrap: wrap; gap: 12px; }
.vf-copy .by { display: flex; align-items: center; gap: 12px; margin-top: 34px; font-size: 13.5px; color: #b9bdb2; }
.vf-copy .by img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.vf-scroll { position: absolute; bottom: 86px; right: 40px; color: #d3d6cc; font-size: 13px; font-weight: 700; text-decoration: none; letter-spacing: .08em; text-transform: uppercase; animation: nudge 2s ease-in-out infinite; }
@keyframes nudge { 50% { transform: translateY(6px); } }

/* sin equipo */
.kit3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.k3 { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 28px; transition: transform .3s ease, box-shadow .3s ease; }
.k3:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(19,22,19,.12); }
.k3-ico { display: inline-flex; width: 64px; height: 64px; border-radius: 18px; background: var(--lime); color: var(--ink); align-items: center; justify-content: center; }
.k3-ico svg { width: 38px; height: 38px; }
.k3 h3 { font-size: 24px; margin-top: 18px; letter-spacing: -0.02em; }
.k3 p { color: var(--muted); margin-top: 8px; }
.pill-note { margin-top: 26px; display: inline-block; background: var(--ink); color: var(--white); padding: 12px 20px; border-radius: 999px; font-size: 14.5px; font-weight: 600; }

/* shoot section */
.shoot { background: var(--dark); color: #fff; padding: 110px 0; overflow: hidden; }
.shoot-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 50px; align-items: center; }
.shoot h2 { font-size: clamp(38px, 5vw, 62px); line-height: 1; letter-spacing: -0.03em; }
.shoot h2 .serif { display: block; color: var(--lime); }
.shoot-copy p { color: #cfd2c8; margin-top: 18px; max-width: 460px; }
.shoot-count { font: 600 14px ui-monospace, Menlo, monospace; color: var(--lime) !important; }
.shoot-cta { margin-top: 22px; background: #1e241e; border: 1px solid #343c33; border-radius: 16px; padding: 18px; }
.shoot-cta p { margin: 0 0 12px; }
.cam { position: relative; }
.cam-body { background: linear-gradient(160deg, #2b312b, #161a16); border-radius: 28px; padding: 22px; box-shadow: 0 40px 80px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08); }
.cam-screen { position: relative; aspect-ratio: 3 / 2; border-radius: 14px; overflow: hidden; background: #000; border: 3px solid #0b0d0b; }
.cam-screen img { width: 100%; height: 100%; object-fit: cover; transition: opacity .25s ease; }
.cam-hud { position: absolute; inset: 12px 14px auto; display: flex; justify-content: space-between; font: 600 12px ui-monospace, Menlo, monospace; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.6); }
.cam-hud span:first-child { color: #ff6b6b; }
.cam-af { position: absolute; left: 50%; top: 50%; width: 70px; height: 52px; transform: translate(-50%,-50%); border: 2px solid rgba(255,255,255,.85); border-radius: 4px; }
.cam-af.lock { border-color: var(--lime); animation: aflock .35s ease; }
@keyframes aflock { 0% { transform: translate(-50%,-50%) scale(1.25); } 100% { transform: translate(-50%,-50%) scale(1); } }
.shutter-top, .shutter-bot { position: absolute; left: 0; right: 0; height: 50%; background: #050605; transform: scaleY(0); transition: transform .09s ease-in; }
.shutter-top { top: 0; transform-origin: top; } .shutter-bot { bottom: 0; transform-origin: bottom; }
.cam-screen.snap .shutter-top, .cam-screen.snap .shutter-bot { transform: scaleY(1); }
.cam-flash { position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none; }
.cam-flash.go { animation: flash .45s ease-out; }
@keyframes flash { 0% { opacity: .95; } 100% { opacity: 0; } }
.cam-controls { display: flex; align-items: center; justify-content: center; gap: 34px; margin-top: 22px; }
.cam-dial { width: 54px; height: 54px; border-radius: 50%; background: repeating-conic-gradient(#3a423a 0 6deg, #2a302a 6deg 12deg); display: flex; align-items: center; justify-content: center; font: 800 14px var(--sans); color: var(--lime); box-shadow: inset 0 0 0 10px #232823; }
.shutter-btn { width: 96px; height: 96px; border-radius: 50%; border: 0; cursor: pointer; background: radial-gradient(circle at 35% 30%, #f2ffd0, var(--lime) 45%, #9cb85a 100%); box-shadow: 0 0 0 8px #232823, 0 0 0 10px #3a423a, 0 14px 30px rgba(0,0,0,.45); font: 800 13px var(--sans); color: var(--ink); text-transform: uppercase; letter-spacing: .06em; transition: transform .08s ease; }
.shutter-btn:active, .shutter-btn.press { transform: scale(.92); }
.shutter-btn:focus-visible { outline: 3px solid #fff; outline-offset: 10px; }
.prints { position: absolute; left: -40px; bottom: -40px; width: 0; height: 0; z-index: 3; }
.print { position: absolute; width: 170px; background: #fff; padding: 8px 8px 28px; box-shadow: 0 18px 40px rgba(0,0,0,.5); border-radius: 3px; animation: eject .8s cubic-bezier(.22,1,.36,1) both; }
.print img { width: 100%; aspect-ratio: 1; object-fit: cover; filter: brightness(1.4) saturate(.4); animation: develop 2.4s ease forwards .4s; }
.print span { position: absolute; left: 10px; bottom: 7px; font: 700 11px var(--sans); color: #333; }
@keyframes eject { from { transform: translate(260px,-220px) rotate(0) scale(.6); opacity: 0; } to { opacity: 1; } }
@keyframes develop { to { filter: none; } }

/* B4LH mock */
.media.b4 { background: linear-gradient(135deg, #e9e7de, #d9dccd); padding: 16px; }
.b4-win { width: 100%; height: 100%; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 12px 30px rgba(19,22,19,.18); display: flex; flex-direction: column; }
.b4-bar { display: flex; align-items: center; gap: 5px; padding: 6px 8px; background: #f1f1ee; font: 600 9px ui-monospace, monospace; color: #777; }
.b4-bar i { width: 7px; height: 7px; border-radius: 50%; background: #d0d0c8; }
.b4-bar span { margin-left: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b4-head { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; }
.b4-head b { font: 600 italic 15px var(--serif); display: block; }
.b4-head small { font-size: 9px; color: #777; }
.b4-btn { background: var(--ink); color: #fff; font-size: 9px; font-weight: 700; padding: 5px 8px; border-radius: 999px; }
.b4-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; padding: 0 10px 10px; }
.b4-grid figure { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 4px; }
.b4-grid img { width: 100%; height: 100%; object-fit: cover; }
.b4-grid i { position: absolute; right: 4px; bottom: 3px; font-style: normal; font-size: 11px; color: rgba(255,255,255,.8); }
.b4-grid i.on { color: #ff5c8a; }
.illus { font-size: 11.5px; color: var(--muted); margin-top: 10px; }

/* about */
.links a.solid { background: var(--ink); color: #fff; }
.links a.solid:hover { background: var(--green); }
.slider { overflow: hidden; margin-top: 56px; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.slider-track { display: flex; gap: 16px; width: max-content; animation: slide 60s linear infinite; }
.slider-track img { width: 260px; height: 325px; object-fit: cover; border-radius: 16px; transition: transform .4s ease, filter .4s ease; }
.slider:hover .slider-track { animation-play-state: paused; }
.slider-track img:hover { transform: scale(1.04); }

/* product tilt */
.product { transform-style: preserve-3d; transition: transform .25s ease, box-shadow .25s ease; }
.product:hover { box-shadow: 0 24px 50px rgba(19,22,19,.14); }

/* custom cursor */
.has-cursor, .has-cursor a, .has-cursor button { cursor: none; }
.has-cursor input, .has-cursor textarea { cursor: text; }
.cur-dot, .cur-ring { position: fixed; left: 0; top: 0; pointer-events: none; z-index: 9999; border-radius: 50%; }
.cur-dot { width: 7px; height: 7px; background: var(--lime); box-shadow: 0 0 0 1.5px var(--ink); margin: -3.5px 0 0 -3.5px; }
.cur-ring { width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1.5px solid rgba(23,26,23,.55); -webkit-backdrop-filter: grayscale(1); backdrop-filter: grayscale(1); transition: width .28s cubic-bezier(.22,1,.36,1), height .28s cubic-bezier(.22,1,.36,1), margin .28s cubic-bezier(.22,1,.36,1), border-color .2s, background-color .2s; }
.cur-ring.dark { border-color: rgba(255,255,255,.7); }
.cur-ring.big { width: 86px; height: 86px; margin: -43px 0 0 -43px; }
.cur-ring.text { width: 64px; height: 64px; margin: -32px 0 0 -32px; -webkit-backdrop-filter: grayscale(1) invert(1); backdrop-filter: grayscale(1) invert(1); border-color: transparent; }
.cur-ring.press { width: 24px; height: 24px; margin: -12px 0 0 -12px; }

/* bouncing camera */
.bouncer { position: fixed; left: 0; top: 0; z-index: 45; width: 84px; height: 70px; border: 0; padding: 0; background: none; cursor: pointer; filter: drop-shadow(0 10px 18px rgba(0,0,0,.35)); will-change: transform; }
.bouncer svg { width: 100%; height: 100%; display: block; animation: wobble 3.2s ease-in-out infinite; }
.bouncer .bz-lens { transform-origin: 60px 58px; animation: hue 6s linear infinite, spin 9s linear infinite; }
.bouncer .bz-flash { animation: blink 2.4s ease-in-out infinite; }
.bouncer.hit svg { animation: squash .35s ease; }
@keyframes hue { to { filter: hue-rotate(360deg); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes wobble { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@keyframes blink { 0%,85%,100% { opacity: 1; } 90% { opacity: .2; } }
@keyframes squash { 0% { transform: scale(1.25,.8); } 100% { transform: scale(1); } }
.flash-screen { position: fixed; inset: 0; background: #fff; opacity: 0; pointer-events: none; z-index: 9998; }
.flash-screen.go { animation: flash .5s ease-out; }
.motion-toggle { background: none; border: 0; color: inherit; font: inherit; cursor: pointer; padding: 0; }
.motion-toggle:hover { color: var(--lime); }
.no-motion .bouncer { display: none; }
.no-motion .strip-track, .no-motion .slider-track, .no-motion .vf-scroll { animation: none; }

@media (max-width: 960px) {
  .vf-ui { inset: 12px; font-size: 10.5px; }
  .vf-bottom { gap: 12px; }
  .vf-scroll { display: none; }
  .kit3 { grid-template-columns: 1fr; }
  .shoot-grid { grid-template-columns: 1fr; }
  .prints { left: 10px; bottom: -30px; }
  .print { width: 120px; }
}
@media (max-width: 620px) {
  .vf-copy { padding: 96px 0 120px; }
  .vf-top span:not(.vf-rec):not(.vf-focal) { display: none; }
  .vf-bottom span:nth-child(5), .vf-bottom span:nth-child(6) { display: none; }
  .bouncer { width: 58px; height: 48px; }
  .slider-track img { width: 200px; height: 250px; }
  .shutter-btn { width: 84px; height: 84px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .bouncer { display: none; }
  .slider-track, .vf-scroll { animation: none; }
}
.prints, .print { pointer-events: none; }
@media (max-width: 960px) { .prints { left: -6px; bottom: auto; top: 30%; } .print { width: 110px; } }
.vf-hero { min-height: calc(100svh - 64px); }
@media (max-width: 960px) {
  .vf-af { display: none; }
  .prints { position: relative; left: auto; top: auto; bottom: auto; width: auto; height: auto; display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 10px; margin-top: 18px; min-height: 0; overflow: hidden; padding: 8px 4px 12px; }
  .print { position: relative !important; left: auto !important; top: auto !important; width: 82px; flex: none; padding: 5px 5px 18px; }
  .print span { font-size: 8.5px; left: 6px; bottom: 4px; }
  @keyframes eject { from { transform: translateY(-40px) scale(.7); opacity: 0; } to { opacity: 1; } }
}

/* ===== v3 · celular + cámara flotante ===== */
.bouncer { opacity: .62; transition: opacity .3s ease; }
.bouncer:hover, .bouncer:active { opacity: 1; }
.bouncer svg { filter: drop-shadow(0 0 10px var(--glow, rgba(211,236,151,.7))); }
@media (max-width: 620px) {
  section.block { padding: 56px 0; }
  .head { margin-bottom: 26px; gap: 14px; }
  .head p { font-size: 15px; }
  .btn { min-height: 44px; }
  .btn-sm { padding: 12px 16px; font-size: 14px; }
  .top .btn { min-height: 40px; }
  .strip-track { font-size: 19px; padding: 12px 0; gap: 30px; }
  /* inicio */
  .vf-ui { inset: 10px; }
  .vf-c { width: 26px; height: 26px; }
  .vf-c.tl, .vf-c.tr { top: 30px; } .vf-c.bl, .vf-c.br { bottom: 44px; }
  .vf-grid { inset: 30px 0 44px; }
  .vf-copy { padding: 70px 8px 96px; }
  .vf-copy .eyebrow { font-size: 10.5px; }
  .vf-copy .lead { font-size: 16px; margin: 18px 0 24px; }
  .vf-copy .actions .btn { width: 100%; justify-content: center; }
  .vf-copy .by { margin-top: 24px; }
  /* sin equipo: tarjetas compactas */
  .kit3 { gap: 12px; }
  .k3 { display: grid; grid-template-columns: 52px 1fr; column-gap: 14px; padding: 16px; align-items: start; }
  .k3-ico { width: 52px; height: 52px; border-radius: 14px; grid-row: span 2; }
  .k3-ico svg { width: 30px; height: 30px; }
  .k3 h3 { margin-top: 0; font-size: 18px; }
  .k3 p { margin-top: 4px; font-size: 14px; }
  .pill-note { border-radius: 16px; font-size: 13.5px; }
  /* tienda: filas compactas */
  .grid { gap: 12px; }
  .product:not(.featured):not(.start) { display: grid; grid-template-columns: 96px 1fr; column-gap: 14px; padding: 12px; align-items: start; }
  .product:not(.featured):not(.start) .cover { grid-row: 1 / span 3; aspect-ratio: auto; padding: 0; background: none; border-radius: 6px; }
  .product:not(.featured):not(.start) .cover img { width: 100%; height: auto; box-shadow: 0 8px 18px rgba(19,22,19,.22); }
  .product:not(.featured):not(.start) .tag { margin-top: 0; font-size: 10.5px; }
  .product:not(.featured):not(.start) h3 { font-size: 17px; margin-top: 4px; }
  .product:not(.featured):not(.start) p { font-size: 13.5px; margin-top: 6px; }
  .product:not(.featured):not(.start) .buy { grid-column: 1 / -1; margin-top: 12px; padding-top: 12px; }
  .price { font-size: 22px; }
  .featured { padding: 16px; gap: 16px; }
  .featured h3 { font-size: 26px; }
  .featured ul { font-size: 13.5px; }
  .featured .buy { flex-direction: column; align-items: stretch; gap: 12px; }
  .featured .buy .btn { justify-content: center; }
  .start { padding: 20px; }
  .start h3 { font-size: 22px; }
  /* regalo */
  .gift h2 { font-size: 38px; }
  .formcard { padding: 18px; }
  /* colaboraciones: carrusel deslizable */
  .collabs { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin-inline: -20px; padding: 0 20px 14px; scrollbar-width: none; }
  .collabs::-webkit-scrollbar { display: none; }
  .collab { flex: 0 0 84%; scroll-snap-align: center; }
  .collab .body { padding: 18px; }
  .collab p { font-size: 14px; }
  /* sobre mí */
  .about .photo { aspect-ratio: 1; max-height: 340px; }
  .about p { font-size: 15.5px; }
  .links a { min-height: 44px; display: inline-flex; align-items: center; }
  .slider { margin-top: 36px; }
  /* preguntas y pie */
  .faq summary { font-size: 16.5px; }
  .foot { padding: 44px 0 32px; }
  .foot nav a, .motion-toggle { min-height: 40px; display: inline-flex; align-items: center; }
  .shoot { padding: 70px 0; }
  .cam-body { padding: 14px; border-radius: 22px; }
}

/* ===================== v4 · cámara real, degradados, conversión ===================== */
/* degradados animados + grano */
.shoot, .gift, .foot { position: relative; overflow: hidden; isolation: isolate; }
.mesh { position: absolute; inset: -20%; z-index: -2; opacity: .9;
  background:
    radial-gradient(40% 35% at 20% 30%, rgba(211,236,151,.22), transparent 70%),
    radial-gradient(35% 30% at 80% 20%, rgba(110,231,242,.16), transparent 70%),
    radial-gradient(45% 40% at 70% 80%, rgba(180,140,255,.18), transparent 70%),
    radial-gradient(30% 30% at 30% 85%, rgba(255,122,182,.12), transparent 70%);
  animation: meshmove 22s ease-in-out infinite alternate; }
.mesh.m2 { background:
    radial-gradient(40% 40% at 15% 20%, rgba(211,236,151,.25), transparent 70%),
    radial-gradient(40% 35% at 85% 75%, rgba(255,200,87,.16), transparent 70%),
    radial-gradient(35% 35% at 60% 10%, rgba(110,231,242,.12), transparent 70%); }
.mesh.m3 { background:
    radial-gradient(40% 50% at 85% 10%, rgba(211,236,151,.18), transparent 70%),
    radial-gradient(40% 50% at 10% 90%, rgba(180,140,255,.14), transparent 70%); }
@keyframes meshmove { 0% { transform: translate3d(-4%, -2%, 0) rotate(0deg) scale(1); } 100% { transform: translate3d(4%, 3%, 0) rotate(8deg) scale(1.08); } }
.grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .09; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
.gift { background: linear-gradient(160deg, #1f3a20 0%, #264326 45%, #1a2c1a 100%); }
/* fugas de luz en secciones claras */
#tienda, #sin-equipo, #colaboraciones, #preguntas { position: relative; isolation: isolate; }
#tienda::before, #sin-equipo::before, #colaboraciones::before { content: ""; position: absolute; z-index: -1; width: 560px; height: 560px; border-radius: 50%; filter: blur(80px); opacity: .55; pointer-events: none; }
#tienda::before { right: -160px; top: 80px; background: radial-gradient(circle, rgba(211,236,151,.9), rgba(255,200,87,.35) 55%, transparent 70%); }
#sin-equipo::before { left: -200px; top: -60px; background: radial-gradient(circle, rgba(255,186,140,.7), transparent 65%); }
#colaboraciones::before { right: -220px; bottom: -120px; background: radial-gradient(circle, rgba(180,140,255,.45), transparent 65%); }

/* barra de progreso */
.progress { position: fixed; left: 0; top: 64px; height: 3px; width: 0; z-index: 60; background: linear-gradient(90deg, var(--lime), #6ee7f2, #b48cff); box-shadow: 0 0 12px rgba(211,236,151,.6); pointer-events: none; }

/* simulador */
.sim { background: radial-gradient(120% 90% at 50% 0%, #1e2620 0%, #0e110e 60%, #0a0c0a 100%); color: #fff; padding: 110px 0 120px; }
.sim-head { max-width: 680px; }
.sim-head h2 { font-size: clamp(38px, 5.4vw, 66px); line-height: 1; letter-spacing: -0.03em; }
.sim-head h2 .serif { display: block; color: var(--lime); }
.sim-head p { color: #cfd2c8; margin-top: 16px; font-size: 17px; }
.scenes { display: flex; gap: 10px; flex-wrap: wrap; margin: 30px 0 34px; }
.scene { font: 700 14px var(--sans); color: #d9dcd2; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); padding: 11px 18px; border-radius: 999px; cursor: pointer; min-height: 44px; backdrop-filter: blur(6px); }
.scene.on { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.camera { position: relative; margin-top: 40px; border-radius: 38px; padding: 30px 30px 30px 30px;
  background: linear-gradient(165deg, #3a413a 0%, #262b26 30%, #171a17 75%, #111311 100%);
  box-shadow: 0 60px 120px rgba(0,0,0,.6), inset 0 2px 0 rgba(255,255,255,.08), inset 0 -3px 0 rgba(0,0,0,.5), 0 0 0 1px #0b0d0b; }
.cam-top { position: absolute; left: 0; right: 0; top: -26px; height: 30px; pointer-events: none; }
.evf { position: absolute; left: 70px; top: -14px; width: 150px; height: 42px; border-radius: 14px 14px 4px 4px; background: linear-gradient(180deg, #2e342e, #1a1d1a); box-shadow: inset 0 2px 0 rgba(255,255,255,.07); }
.evf::after { content: ""; position: absolute; left: 24px; right: 24px; top: 10px; height: 16px; border-radius: 6px; background: #050605; box-shadow: inset 0 0 0 2px #2a302a; }
.hotshoe { position: absolute; left: 50%; top: 2px; width: 64px; height: 12px; margin-left: -32px; border-radius: 3px; background: linear-gradient(180deg, #8d938a, #4b504a); }
.mdial { position: absolute; right: 230px; top: -18px; width: 64px; height: 30px; border-radius: 8px 8px 0 0; background: repeating-linear-gradient(90deg, #3c433c 0 3px, #262b26 3px 6px); color: var(--lime); font: 800 12px var(--sans); display: flex; align-items: center; justify-content: center; }
.cam-release { position: absolute; right: 120px; top: -30px; width: 70px; height: 30px; border-radius: 35px 35px 6px 6px; border: 0; cursor: pointer;
  background: linear-gradient(180deg, #e9ece4 0%, #a9afa5 45%, #6f756c 100%); box-shadow: inset 0 2px 0 #fff, 0 6px 14px rgba(0,0,0,.45); transition: transform .08s ease; }
.cam-release:active, .cam-release.press { transform: translateY(5px); }
.cam-main { display: grid; grid-template-columns: 1.55fr 1fr; gap: 30px; align-items: start; }
.lcd-wrap { position: relative; }
.lcd { position: relative; aspect-ratio: 3 / 2; border-radius: 16px; overflow: hidden; background: #000; box-shadow: 0 0 0 6px #0b0d0b, 0 0 0 7px #2c322c, inset 0 0 40px rgba(0,0,0,.6); }
.lv { position: absolute; inset: 0; transition: filter .25s ease; }
.lv img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: filter .25s ease; }
.lv-fg { -webkit-mask-image: radial-gradient(ellipse 34% 46% at var(--fx, 50%) var(--fy, 50%), #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 34% 46% at var(--fx, 50%) var(--fy, 50%), #000 55%, transparent 100%); }
.lv-noise { position: absolute; inset: 0; opacity: 0; mix-blend-mode: overlay; transition: opacity .25s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1.4 -.2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
.lcd-hud { position: absolute; inset: 0; pointer-events: none; font: 700 12.5px/1 ui-monospace, Menlo, Consolas, monospace; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.8); }
.hud-top { position: absolute; left: 14px; right: 14px; top: 12px; display: flex; gap: 14px; }
.hud-top .bat { margin-left: auto; width: 24px; height: 11px; border: 2px solid #fff; border-radius: 3px; position: relative; }
.hud-top .bat i { position: absolute; inset: 1px 25% 1px 1px; background: var(--lime); }
.hud-af { position: absolute; left: var(--fx, 50%); top: var(--fy, 50%); width: 70px; height: 52px; transform: translate(-50%,-50%); border: 2px solid var(--lime); border-radius: 4px; transition: left .4s ease, top .4s ease; }
.hud-bot { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: 16px; align-items: center; justify-content: center; padding: 10px 12px; background: linear-gradient(0deg, rgba(0,0,0,.65), transparent); }
.hud-bot b { color: var(--lime); }
.meter { position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.mscale { display: inline-flex; gap: 6px; align-items: end; }
.mscale i { width: 2px; height: 7px; background: rgba(255,255,255,.75); }
.mscale i.z { height: 12px; background: #fff; }
.mark { position: absolute; bottom: -7px; left: calc(50% + var(--ev, 0) * 8px); width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 6px solid var(--lime); transform: translateX(-50%); transition: left .25s ease; }
.mark.bad { border-bottom-color: #ff6b6b; }
.curtain { position: absolute; left: 0; right: 0; height: 50%; background: #050605; transform: scaleY(0); transition: transform .08s ease-in; z-index: 3; }
.curtain.c1 { top: 0; transform-origin: top; } .curtain.c2 { bottom: 0; transform-origin: bottom; }
.lcd.snap .curtain { transform: scaleY(1); }
.lcd-flash { position: absolute; inset: 0; background: #fff; opacity: 0; z-index: 4; pointer-events: none; }
.lcd-flash.go { animation: flash .45s ease-out; }
.lcd-btns { display: flex; gap: 10px; margin-top: 16px; }
.lcd-btns span { font: 700 10px var(--sans); letter-spacing: .08em; color: #9aa196; padding: 7px 10px; border-radius: 8px; background: linear-gradient(180deg, #2e342e, #1d211d); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.tip { margin-top: 14px; font-size: 14.5px; color: #e4e7dc; background: rgba(211,236,151,.08); border: 1px solid rgba(211,236,151,.25); border-radius: 12px; padding: 11px 14px; min-height: 46px; }
.tip.warn { background: rgba(255,107,107,.08); border-color: rgba(255,107,107,.35); }
.controls { display: flex; flex-direction: column; gap: 14px; padding-right: 30px; }
.ctl { background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01)); border: 1px solid rgba(255,255,255,.07); border-radius: 18px; padding: 12px 14px; }
.ctl-label { font: 800 11px var(--sans); letter-spacing: .12em; text-transform: uppercase; color: #9aa196; }
.ctl-row { display: grid; grid-template-columns: 44px 1fr 44px; gap: 10px; align-items: center; margin-top: 8px; }
.step { width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer; font: 700 22px var(--sans); color: var(--lime); background: radial-gradient(circle at 35% 30%, #3b423b, #1c201c); box-shadow: 0 4px 10px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08); }
.step:active { transform: scale(.93); }
.wheel { position: relative; height: 54px; border-radius: 14px; overflow: hidden; background: linear-gradient(180deg, #121512, #1e231e 50%, #121512); box-shadow: inset 0 0 0 1px #0b0d0b, inset 0 6px 10px rgba(0,0,0,.6), inset 0 -6px 10px rgba(0,0,0,.6); cursor: ew-resize; touch-action: pan-y; outline: none; }
.wheel:focus-visible { box-shadow: 0 0 0 3px var(--lime); }
.knurl { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(255,255,255,.10) 0 2px, transparent 2px 9px); background-position-x: var(--kx, 0px); transition: background-position .2s ease; -webkit-mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent); mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent); }
.wheel b { position: relative; display: flex; align-items: center; justify-content: center; height: 100%; font: 700 20px ui-monospace, Menlo, Consolas, monospace; color: #fff; text-shadow: 0 0 12px rgba(211,236,151,.45); }
.ctl-hint { display: block; font-size: 12px; color: #8a9186; margin-top: 8px; }
.shoot-big { margin-top: 6px; min-height: 64px; border: 0; border-radius: 999px; cursor: pointer; font: 800 16px var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink);
  background: radial-gradient(circle at 35% 25%, #f4ffd6, var(--lime) 45%, #9cb85a 100%); box-shadow: 0 0 0 6px #1c201c, 0 0 0 7px #3a423a, 0 16px 30px rgba(0,0,0,.45), 0 0 40px rgba(211,236,151,.25); transition: transform .08s ease; }
.shoot-big:active, .shoot-big.press { transform: scale(.97); }
.grip { position: absolute; right: 0; top: 30px; bottom: 30px; width: 22px; border-radius: 0 34px 34px 0; background: repeating-linear-gradient(0deg, #1b1f1b 0 3px, #262b26 3px 6px); box-shadow: inset 3px 0 6px rgba(0,0,0,.5); }
.cam-main { position: relative; }
.roll { display: flex; gap: 14px; overflow-x: auto; padding: 34px 4px 10px; scrollbar-width: none; }
.roll::-webkit-scrollbar { display: none; }
.shot { flex: 0 0 200px; background: #f4f2ea; color: var(--ink); padding: 8px 8px 12px; border-radius: 4px; box-shadow: 0 16px 34px rgba(0,0,0,.45); transform: rotate(var(--r, 0deg)); animation: eject2 .7s cubic-bezier(.22,1,.36,1) both; }
.shot .lv { position: relative; aspect-ratio: 3 / 2; border-radius: 2px; overflow: hidden; inset: auto; }
.shot .lv-noise { position: absolute; }
.shot figcaption { font: 700 11px ui-monospace, Menlo, monospace; margin-top: 8px; display: flex; justify-content: space-between; gap: 6px; }
.shot figcaption em { font-style: normal; font-family: var(--sans); font-size: 11px; padding: 2px 6px; border-radius: 6px; background: var(--lime); }
.shot figcaption em.bad { background: #ffd2d2; }
@keyframes eject2 { from { transform: translateY(-40px) rotate(0) scale(.85); opacity: 0; } to { opacity: 1; } }
.sim .shoot-cta { margin-top: 24px; max-width: 520px; }

/* ver por dentro */
.peek { margin-top: 12px; align-self: flex-start; background: none; border: 1.5px solid var(--line); border-radius: 999px; padding: 9px 14px; font: 700 13px var(--sans); cursor: pointer; color: var(--ink); min-height: 40px; }
.peek:hover { border-color: var(--ink); }
.peek::before { content: "◉ "; color: var(--green); }
.peek-modal { border: 0; padding: 22px; border-radius: 22px; width: min(560px, 94vw); background: var(--paper); color: var(--ink); box-shadow: 0 40px 100px rgba(0,0,0,.5); text-align: center; }
.peek-modal::backdrop { background: rgba(10,12,10,.75); backdrop-filter: blur(4px); }
.pm-close { position: absolute; right: 12px; top: 12px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--ink); color: #fff; cursor: pointer; font-size: 16px; }
.pm-title { font-weight: 800; font-size: 17px; margin: 4px 40px 14px; }
.pm-stage { display: grid; grid-template-columns: 44px 1fr 44px; gap: 8px; align-items: center; }
.pm-stage img { width: 100%; height: auto; max-height: 68vh; object-fit: contain; border-radius: 6px; box-shadow: 0 16px 40px rgba(19,22,19,.25); background: #fff; }
.pm-nav { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--ink); color: var(--lime); font-size: 22px; cursor: pointer; }
.pm-count { font-size: 13px; color: var(--muted); margin: 12px 0; }

/* barra fija en el celular */
.sticky-cta { display: none; }
@media (max-width: 620px) {
  .sticky-cta { display: flex; gap: 8px; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 70; padding: 8px; border-radius: 999px; background: rgba(19,22,19,.88); backdrop-filter: blur(10px); box-shadow: 0 14px 34px rgba(0,0,0,.35); transform: translateY(140%); transition: transform .35s cubic-bezier(.22,1,.36,1); }
  .sticky-cta.show { transform: none; }
  .sticky-cta .btn { flex: 1; justify-content: center; min-height: 44px; padding: 10px; font-size: 14px; }
  .sticky-cta .btn-ghost { border-color: #4a5148; }
  .progress { top: 64px; }
}

/* cámara en tablet y celular */
@media (max-width: 960px) {
  .cam-main { grid-template-columns: 1fr; gap: 18px; }
  .controls { padding-right: 0; }
  .grip { display: none; }
  .evf { left: 30px; width: 110px; }
  .mdial { right: 160px; }
  .cam-release { right: 64px; }
}
@media (max-width: 620px) {
  .sim { padding: 70px 0 90px; }
  .camera { padding: 18px 14px 18px; border-radius: 28px; margin-top: 34px; }
  .controls { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .ctl { padding: 10px 8px; border-radius: 14px; }
  .ctl-label { font-size: 10px; letter-spacing: .08em; display: block; text-align: center; }
  .ctl-row { grid-template-columns: 1fr; gap: 6px; }
  .ctl-row .step { display: none; }
  .wheel { height: 50px; }
  .wheel b { font-size: 15px; }
  .ctl-hint { display: none; }
  .shoot-big { grid-column: 1 / -1; min-height: 58px; }
  .hud-bot { gap: 10px; font-size: 10.5px; }
  .hud-top { font-size: 10.5px; }
  .lcd-btns { display: none; }
  .tip { font-size: 13.5px; }
  .shot { flex-basis: 150px; }
  .scenes { gap: 8px; }
  .scene { padding: 10px 14px; font-size: 13px; }
}
.no-motion .mesh { animation: none; }
@media (max-width: 620px) {
  .wheel::before, .wheel::after { position: absolute; top: 50%; transform: translateY(-50%); font: 700 18px var(--sans); color: var(--lime); opacity: .7; z-index: 1; }
  .wheel::before { content: "‹"; left: 6px; } .wheel::after { content: "›"; right: 6px; }
}
.peek-modal { margin: auto; }
#tienda, #sin-equipo, #colaboraciones, #preguntas { overflow: clip; }
html, body { overflow-x: clip; }
/* v5 · ver por dentro (2 páginas) */
.peek-modal { width: min(900px, 94vw); }
.peek-modal, .peek-modal * { cursor: auto; }
.peek-modal button, .peek-modal a { cursor: pointer; }
body.modal-open .cur-dot, body.modal-open .cur-ring, body.modal-open .bouncer { display: none; }
.pm-pages { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pm-pages img { width: 100%; height: auto; max-height: 64vh; object-fit: contain; border-radius: 6px; box-shadow: 0 16px 40px rgba(19,22,19,.25); background: #fff; }
@media (min-width: 701px) { .pm-nav { display: none; } .pm-stage { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .pm-pages { grid-template-columns: 1fr; }
  .pm-pages img:not(.on) { display: none; }
}
