:root{
  --bg:#fbf5ea;
  --paper:#fffaf2;
  --ink:#2b2118;
  --muted:#735f4d;
  --brand:#b84235;
  --brand-dark:#842f27;
  --olive:#5d6f45;
  --gold:#c99a45;
  --line:#eadbc6;
  --soft:#f3e5d2;
  --ok:#2f7d55;
  --warn:#ad7a15;
  --bad:#9f2f2f;
  --shadow:0 14px 38px rgba(60,39,20,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at top left,#fff6e7,transparent 34%),var(--bg);color:var(--ink);line-height:1.55}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(1120px,92vw);margin:0 auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,250,242,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink)}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--brand);color:white;box-shadow:var(--shadow)}.brand small{display:block;color:var(--muted);font-size:12px;margin-top:-2px}.nav{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.nav a{font-weight:700;color:var(--ink);font-size:14px}.nav a:hover{color:var(--brand)}main{padding:28px 0 48px}.site-footer{padding:28px 0;background:#312419;color:#f9eee1}.site-footer p{margin:.35rem 0;color:#e7d6c4}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center}.card{background:rgba(255,250,242,.96);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow)}.hero h1{font-size:clamp(38px,6vw,78px);line-height:.95;margin:0 0 14px;letter-spacing:-2px}.kicker{color:var(--brand);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.lead{font-size:20px;color:var(--muted);max-width:720px}.hero-photo{position:relative}.hero-photo img{width:100%;border-radius:30px;border:10px solid white;box-shadow:var(--shadow);display:block}.badge{display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:800;color:var(--brand-dark)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.btn{appearance:none;border:0;border-radius:999px;padding:13px 18px;font-weight:900;cursor:pointer;background:var(--brand);color:white;box-shadow:0 10px 24px rgba(184,66,53,.2);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{text-decoration:none;background:var(--brand-dark)}.btn.secondary{background:#fff;color:var(--brand-dark);border:1px solid var(--line);box-shadow:none}.btn.olive{background:var(--olive)}.btn.small{padding:8px 12px;font-size:13px}.grid{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.section-title{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:28px 0 16px}.section-title h2,.section-title h1{margin:0;font-size:clamp(26px,4vw,42px);letter-spacing:-1px}.muted{color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}.photo-card{background:white;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 26px rgba(60,39,20,.08);transition:.18s transform}.photo-card:hover{transform:translateY(-3px);text-decoration:none}.photo-card img{width:100%;height:210px;object-fit:cover;display:block}.photo-card div{padding:14px}.photo-code{font-size:12px;color:var(--brand);font-weight:900}.photo-title{font-weight:900;color:var(--ink);margin:2px 0}.status{display:inline-flex;padding:4px 9px;border-radius:999px;background:var(--soft);font-size:12px;color:var(--muted);font-weight:800}.photo-detail{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:22px;align-items:start}.photo-detail img{width:100%;border-radius:24px;border:8px solid white;box-shadow:var(--shadow)}.form{display:grid;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{font-weight:900;font-size:14px}.field span{display:block;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:130px;resize:vertical}.hint{font-size:12px;color:var(--muted);margin-top:6px}.check{display:flex;gap:10px;align-items:flex-start}.check input{width:auto;margin-top:5px}.divider{height:1px;background:var(--line);margin:12px 0}.alert{padding:14px 16px;border-radius:16px;margin:0 0 18px;border:1px solid}.alert-success{background:#eef8f1;color:#285b39;border-color:#cde8d4}.alert-error{background:#fff0ee;color:#842f27;border-color:#ffd1cb}.alert-info{background:#eef6fb;color:#25566d;border-color:#cce8f5}.gate{min-height:calc(100vh - 180px);display:grid;place-items:center}.gate-card{max-width:760px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden;padding:0}.gate-card img{width:100%;height:100%;object-fit:cover}.gate-body{padding:32px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:white;border:1px solid var(--line);border-radius:18px;padding:18px}.stat strong{display:block;font-size:32px;color:var(--brand)}.timeline{position:relative;margin-left:16px;padding-left:26px;border-left:4px solid var(--brand)}.event{position:relative;background:white;border:1px solid var(--line);border-radius:18px;padding:16px;margin:0 0 16px;box-shadow:0 8px 20px rgba(60,39,20,.07)}.event:before{content:"";position:absolute;left:-37px;top:18px;width:16px;height:16px;background:var(--brand);border:4px solid var(--bg);border-radius:50%}.admin-layout{display:grid;grid-template-columns:230px 1fr;gap:22px}.admin-menu{position:sticky;top:95px;align-self:start}.admin-menu a{display:block;padding:10px 12px;border-radius:12px;color:var(--ink);font-weight:800}.admin-menu a:hover{background:var(--soft);text-decoration:none}.table-wrap{overflow:auto;background:white;border-radius:18px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#fff6e8;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.tag{display:inline-block;background:var(--soft);border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}.audio-box{border:1px dashed var(--gold);border-radius:18px;padding:16px;background:#fff8ea}.recorder-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.hidden{display:none!important}.empty{padding:28px;text-align:center;color:var(--muted)}.danger-zone{border-color:#ffd0c7;background:#fff4f2}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.soft-note{background:#fff6e8;border:1px solid var(--line);border-radius:18px;padding:15px;color:var(--muted)}
@media (max-width:900px){.hero,.photo-detail,.gate-card,.admin-layout{grid-template-columns:1fr}.footer-grid,.grid-2,.grid-3,.stats{grid-template-columns:1fr}.nav-wrap{align-items:flex-start;flex-direction:column;padding:12px 0}.nav{gap:9px}.hero h1{letter-spacing:-1px}.photo-detail aside{order:-1}.form-row{grid-template-columns:1fr}.gate-card img{max-height:360px}.site-header{position:relative}}

/* ===== Upgrade visual: versión más emotiva, familiar y editorial ===== */
body{
  background:
    radial-gradient(circle at 10% 0%, rgba(255,235,196,.85), transparent 32%),
    radial-gradient(circle at 95% 15%, rgba(187,64,55,.10), transparent 26%),
    linear-gradient(180deg,#fff7ec 0%,#fbf0df 46%,#f6ead8 100%);
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.24;
  background-image:
    linear-gradient(90deg,rgba(95,60,28,.05) 1px,transparent 1px),
    linear-gradient(rgba(95,60,28,.045) 1px,transparent 1px);
  background-size:34px 34px;
  mix-blend-mode:multiply;
}
.site-header{
  background:rgba(255,248,236,.84);
  border-bottom:1px solid rgba(154,88,53,.18);
  box-shadow:0 10px 28px rgba(83,50,26,.06);
}
.brand-mark{
  background:linear-gradient(135deg,#c9453a,#7c2924);
  box-shadow:0 12px 28px rgba(157,49,41,.25);
}
.nav a{
  padding:8px 10px;
  border-radius:999px;
}
.nav a:hover{
  background:#fff2e5;
  text-decoration:none;
}
main{padding-top:28px}
.alert-success{
  max-width:980px;
  margin:0 auto 22px;
  border-radius:18px;
  background:rgba(234,249,240,.9);
}

/* Gate de acceso */
.gate-cinematic{
  min-height:calc(100vh - 140px);
  padding:36px 0;
}
.gate-shell{
  width:min(980px,94vw);
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  border-radius:34px;
  overflow:hidden;
  background:rgba(255,250,242,.88);
  border:1px solid rgba(202,154,69,.35);
  box-shadow:0 28px 85px rgba(72,42,20,.18);
}
.gate-portrait{position:relative;min-height:520px;background:#3b291d;display:grid;place-items:center;overflow:hidden}
.gate-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(34,21,12,.62));}
.gate-portrait img{width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.02)}
.seal{position:absolute;left:22px;bottom:22px;z-index:2;background:rgba(255,246,232,.94);border:1px solid rgba(202,154,69,.45);padding:10px 14px;border-radius:999px;font-weight:900;color:#7c2924;box-shadow:0 12px 32px rgba(0,0,0,.16)}
.gate-body-rich{padding:48px;background:radial-gradient(circle at 10% 0%,#fff,transparent 50%)}
.gate-body-rich h1{font-size:clamp(38px,5vw,64px);line-height:.96;letter-spacing:-2px;margin:8px 0 16px;color:#2c1f16}
.access-form{margin-top:24px;background:#fff9f0;border:1px solid var(--line);padding:18px;border-radius:24px}
.btn-glow{box-shadow:0 16px 34px rgba(154,48,40,.28), inset 0 1px 0 rgba(255,255,255,.24)}

/* Home hero */
.memory-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:34px;
  align-items:center;
  min-height:620px;
  padding:54px;
  border-radius:42px;
  background:
    linear-gradient(115deg,rgba(255,250,242,.94),rgba(255,238,214,.86)),
    url('../photos/MM-DILIA-020.jpg');
  background-size:cover;
  background-position:center;
  box-shadow:0 35px 90px rgba(79,45,22,.17);
  border:1px solid rgba(202,154,69,.32);
}
.memory-hero:before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(154,48,40,.18);
  border-radius:32px;
  pointer-events:none;
}
.memory-hero-bg:before,
.memory-hero-bg:after{
  content:"❤";
  position:absolute;
  color:rgba(154,48,40,.12);
  font-size:120px;
  line-height:1;
}
.memory-hero-bg:before{left:28px;top:24px;transform:rotate(-18deg)}
.memory-hero-bg:after{right:42px;bottom:22px;transform:rotate(16deg)}
.memory-copy{position:relative;z-index:1}
.badge-strong{background:#fff;border-color:rgba(202,154,69,.45);box-shadow:0 12px 30px rgba(80,45,20,.08)}
.memory-copy h1{
  font-size:clamp(58px,8.2vw,112px);
  line-height:.82;
  letter-spacing:-5px;
  margin:18px 0 18px;
  color:#24170f;
  text-shadow:0 2px 0 rgba(255,255,255,.55);
}
.subtitle{font-size:clamp(22px,2.2vw,32px);line-height:1.22;max-width:820px;color:#5f4631;margin:0 0 20px}
.legacy-line{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}
.legacy-line span{background:rgba(255,255,255,.72);border:1px solid rgba(202,154,69,.42);border-radius:999px;padding:7px 11px;font-weight:900;color:#7c2924;font-size:13px}
.hero-text{font-size:18px;color:#604c3a;max-width:690px}
.hero-actions-main{margin-top:30px}
.memory-frame{position:relative;z-index:1;display:grid;place-items:center}
.portrait-card{
  position:relative;
  width:min(450px,100%);
  transform:rotate(1.4deg);
  background:#fff;
  padding:16px 16px 86px;
  border-radius:26px;
  box-shadow:0 34px 80px rgba(50,30,18,.24);
  border:1px solid rgba(202,154,69,.45);
}
.portrait-card:before{content:"";position:absolute;inset:-20px;border-radius:38px;background:linear-gradient(135deg,rgba(201,154,69,.34),rgba(184,66,53,.12));z-index:-1;transform:rotate(-3deg)}
.portrait-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:20px;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.portrait-caption{position:absolute;left:22px;right:22px;bottom:22px;text-align:center;color:#5b3329}
.portrait-caption strong{display:block;font-size:24px}
.portrait-caption span{font-style:italic;color:#8a453c;font-size:18px}

/* Misión */
.mission-board{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin:26px 0}
.mission-card{border-radius:30px;padding:28px;border:1px solid rgba(202,154,69,.32);box-shadow:0 18px 44px rgba(72,42,20,.10)}
.main-mission{background:#fffaf2}
.main-mission h2{font-size:clamp(32px,4vw,54px);line-height:1;margin:8px 0 12px;letter-spacing:-1.5px}
.main-mission p{font-size:20px;color:#614a38;margin:0;max-width:850px}
.quote-card{display:grid;place-items:center;background:linear-gradient(135deg,#96342d,#6c2622);color:#fff;text-align:center}
.quote-card p{font-size:24px;line-height:1.22;font-weight:800;margin:0;font-style:italic}

.section-title-rich{margin-top:44px}
.stats-rich .stat{position:relative;overflow:hidden;background:rgba(255,255,255,.88);padding:24px;border-radius:24px;box-shadow:0 16px 42px rgba(79,45,22,.09)}
.stats-rich .stat:after{content:"";position:absolute;right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;background:rgba(184,66,53,.08)}
.stats-rich .stat strong{font-size:44px;line-height:1}
.stats-rich .stat span{display:block;font-weight:900;color:#332317;margin-top:4px}
.stats-rich .stat small{display:block;color:#765f4b;margin-top:8px}

.memory-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.polaroid{border-radius:10px;background:#fff;padding:12px 12px 18px;box-shadow:0 18px 40px rgba(62,38,22,.14);transform:rotate(-.7deg);transition:.2s ease}
.polaroid:nth-child(even){transform:rotate(1deg)}
.polaroid:nth-child(3n){transform:rotate(-1.4deg)}
.polaroid:hover{transform:translateY(-7px) rotate(0deg);box-shadow:0 26px 60px rgba(62,38,22,.20)}
.polaroid img{height:230px;border-radius:6px;border:1px solid #eee}
.polaroid div{padding:12px 4px 0}

.family-cta{
  margin:44px 0 20px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  padding:34px;
  border-radius:34px;
  background:linear-gradient(135deg,#fff8ee,#f4dfc4);
  border:1px solid rgba(202,154,69,.4);
  box-shadow:0 24px 70px rgba(72,42,20,.12);
}
.family-cta h2{font-size:clamp(30px,4vw,52px);line-height:1;margin:12px 0;letter-spacing:-1.2px}
.family-cta p{font-size:18px;color:#634b38;max-width:860px}
.cta-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.step-card{position:relative;overflow:hidden;min-height:210px;background:rgba(255,255,255,.9)}
.step-card span{display:inline-flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:#96342d;color:#fff;font-weight:900;margin-bottom:18px}
.step-card h3{font-size:26px;margin:0 0 8px}
.step-card:after{content:"";position:absolute;right:-32px;bottom:-32px;width:120px;height:120px;border-radius:50%;background:rgba(201,154,69,.14)}

@media (max-width:980px){
  .memory-hero{grid-template-columns:1fr;padding:32px;min-height:auto}
  .memory-copy h1{letter-spacing:-3px}
  .mission-board,.family-cta{grid-template-columns:1fr}
  .cta-buttons{justify-content:flex-start}
  .gate-shell{grid-template-columns:1fr}
  .gate-portrait{min-height:360px}
}
@media (max-width:560px){
  .memory-hero{padding:24px;border-radius:28px}
  .memory-hero:before{inset:10px;border-radius:22px}
  .memory-copy h1{font-size:56px;letter-spacing:-2px}
  .subtitle{font-size:21px}
  .portrait-card{padding:10px 10px 74px}
  .mission-card,.family-cta{padding:22px;border-radius:24px}
  .quote-card p{font-size:20px}
  .polaroid img{height:210px}
}

/* ===== v3: acceso visible, boxes premium y móvil primero ===== */
.nav-exit{
  background:#fff1e8!important;
  color:#8a2f28!important;
  border:1px solid rgba(154,48,40,.18);
}
.nav-exit:before{content:"↩ ";font-weight:900}
.btn-block{width:100%;min-height:56px;font-size:16px}
.microcopy{margin:14px 0 0;color:#755d4a;font-size:14px;text-align:center}
.access-note{
  display:grid;
  gap:4px;
  margin:20px 0 0;
  padding:16px 18px;
  background:linear-gradient(135deg,#fff6e8,#fffdf8);
  border:1px solid rgba(202,154,69,.38);
  border-radius:22px;
  color:#604632;
  box-shadow:0 12px 30px rgba(80,45,20,.07);
}
.access-note strong{color:#842f27;font-size:16px}
.access-note span{font-size:14px;line-height:1.45}
.gate-v3{padding:34px 0 42px}
.gate-shell-v3{max-width:1080px}
.gate-portrait-v3{isolation:isolate}
.gate-portrait-v3:before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,250,242,.55);
  border-radius:28px;
  z-index:2;
  pointer-events:none;
}
.gate-portrait-caption{
  position:absolute;
  z-index:3;
  left:24px;
  right:24px;
  bottom:78px;
  color:#fff7ed;
  text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.gate-portrait-caption strong{display:block;font-size:clamp(30px,4vw,46px);line-height:1;font-family:Georgia,serif}
.gate-portrait-caption span{font-size:18px;font-style:italic}
.gate-access-panel h1{font-family:Georgia,serif;color:#2b1d14;letter-spacing:-1.8px}
.gate-access-panel .lead{font-size:20px;line-height:1.45;color:#634d3a}
.access-form-v3 .field span{font-size:14px;color:#5d4032}
.access-form-v3 input{
  min-height:58px;
  border-radius:18px;
  font-size:18px;
  background:#fff;
  border:1px solid #e1c7ad;
  box-shadow:inset 0 2px 8px rgba(60,39,20,.04);
}
.access-form-v3 input:focus,
.form input:focus,
.form select:focus,
.form textarea:focus{
  outline:3px solid rgba(184,66,53,.18);
  border-color:#b84235;
}

/* Header y navegación más cómoda en teléfono */
.nav{
  row-gap:8px;
}
.nav a{
  white-space:nowrap;
}

/* Portada invitación integrada */
.welcome-poster-card{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:26px;
  align-items:center;
  margin:34px 0;
  padding:28px;
  border-radius:34px;
  background:linear-gradient(135deg,rgba(255,250,242,.96),rgba(255,240,218,.92));
  border:1px solid rgba(202,154,69,.36);
  box-shadow:0 24px 70px rgba(72,42,20,.12);
}
.welcome-poster-card .poster-copy h2{
  font-family:Georgia,serif;
  font-size:clamp(30px,4vw,52px);
  line-height:1;
  margin:8px 0 12px;
  letter-spacing:-1.2px;
}
.welcome-poster-card .poster-copy p{font-size:18px;color:#634b38;margin:0;line-height:1.55}
.welcome-poster-card img{
  width:100%;
  display:block;
  border-radius:24px;
  border:8px solid #fff;
  box-shadow:0 18px 50px rgba(68,38,19,.15);
}

/* Cajas y formularios con más calidez */
.card,
.form.card,
form.card,
.photo-card,
.event,
.stat{
  background:rgba(255,252,247,.96);
  border:1px solid rgba(202,154,69,.32);
  box-shadow:0 18px 44px rgba(72,42,20,.09);
}
.card:hover,
.photo-card:hover{
  box-shadow:0 24px 60px rgba(72,42,20,.13);
}
.form:not(.access-form){
  max-width:980px;
}
form.form > .card{
  margin-bottom:8px;
}
.field span,
label span{
  color:#4d3526;
}
input,select,textarea{
  min-height:50px;
  border-radius:17px;
  border:1px solid #e1c7ad;
  background:#fffefc;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
textarea{min-height:150px;line-height:1.55}
input::placeholder,textarea::placeholder{color:#aa8f76}
.hint{display:block;line-height:1.35;color:#806650}
.check{
  background:#fff8ee;
  border:1px solid rgba(202,154,69,.25);
  padding:12px 14px;
  border-radius:18px;
}
.check input{accent-color:#b84235}
.section-title{
  align-items:flex-start;
}
.section-title h1,.section-title h2{
  font-family:Georgia,serif;
  letter-spacing:-1.1px;
}
.section-title p{font-size:17px;max-width:760px}

/* Galería y detalle más emotivo */
.photo-grid:not(.memory-grid){
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
}
.photo-card{
  border-radius:24px;
  overflow:hidden;
}
.photo-card img{
  height:240px;
}
.photo-title{font-size:16px;line-height:1.25}
.photo-detail{
  grid-template-columns:minmax(0,1fr) minmax(340px,420px);
}
.photo-detail > section > img{
  max-height:680px;
  object-fit:contain;
  background:#fff;
}
.photo-detail aside.card{
  border-radius:28px;
  background:linear-gradient(180deg,#fffdf8,#fff4e6);
}

/* Botones táctiles */
.btn{
  min-height:48px;
  padding:13px 20px;
  font-size:15px;
}
.btn.small{min-height:40px}
.actions .btn,
.cta-buttons .btn,
.hero-actions-main .btn{
  min-width:170px;
}

/* Tablas y admin en móvil */
.table-wrap{
  -webkit-overflow-scrolling:touch;
}

@media (max-width:980px){
  .site-header{position:sticky;top:0}
  .nav-wrap{
    width:100%;
    gap:10px;
    align-items:stretch;
  }
  .brand{justify-content:flex-start}
  .nav{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    padding:0 0 8px;
    gap:8px;
    scrollbar-width:none;
  }
  .nav::-webkit-scrollbar{display:none}
  .nav a{
    flex:0 0 auto;
    background:#fff7ef;
    border:1px solid rgba(202,154,69,.26);
    padding:10px 12px;
    font-size:13px;
  }
  .welcome-poster-card{
    grid-template-columns:1fr;
    padding:22px;
  }
  .welcome-poster-card img{
    max-height:760px;
    object-fit:contain;
  }
  .photo-detail{
    grid-template-columns:1fr;
  }
  .photo-detail aside{order:0;position:relative;top:auto}
  .form:not(.access-form){max-width:none}
}

@media (max-width:640px){
  .container{width:min(100% - 28px,1120px)}
  main{padding:18px 0 34px}
  .site-header{border-bottom-color:rgba(154,88,53,.12)}
  .brand-mark{width:38px;height:38px}
  .brand strong{font-size:15px}
  .brand small{font-size:11px}
  .gate-v3{padding:14px 0 28px;min-height:auto}
  .gate-shell-v3{
    width:100%;
    border-radius:26px;
  }
  .gate-portrait{min-height:300px}
  .gate-portrait-caption{bottom:62px;left:18px;right:18px}
  .gate-portrait-caption strong{font-size:32px}
  .seal{left:18px;bottom:18px;font-size:12px;padding:8px 11px}
  .gate-body-rich{padding:24px 20px 22px}
  .gate-access-panel h1{font-size:34px;line-height:1.05;margin-bottom:12px}
  .gate-access-panel .lead{font-size:17px}
  .access-note{padding:13px 14px;border-radius:18px}
  .access-form{padding:14px;border-radius:20px}
  .access-form-v3 input{font-size:16px;min-height:54px}

  .memory-hero{
    padding:22px 18px;
    border-radius:26px;
    gap:22px;
  }
  .memory-copy h1{font-size:54px;line-height:.92;letter-spacing:-2px}
  .subtitle{font-size:19px}
  .hero-text{font-size:16px}
  .legacy-line span{font-size:12px;padding:6px 9px}
  .hero-actions-main{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-actions-main .btn,.actions .btn,.cta-buttons .btn{width:100%;min-width:0}
  .portrait-card{transform:none;width:100%}
  .portrait-caption strong{font-size:20px}
  .portrait-caption span{font-size:15px}
  .welcome-poster-card{margin:24px 0;padding:16px;border-radius:24px}
  .welcome-poster-card .poster-copy h2{font-size:30px}
  .welcome-poster-card .poster-copy p{font-size:16px}
  .welcome-poster-card img{border-width:5px;border-radius:18px}
  .mission-board{gap:14px;margin:20px 0}
  .main-mission h2{font-size:32px}
  .main-mission p{font-size:17px}
  .quote-card p{font-size:19px}
  .section-title{display:block;margin:24px 0 14px}
  .section-title h1,.section-title h2{font-size:30px;line-height:1.05}
  .section-title .btn{margin-top:12px;width:100%}
  .stats{grid-template-columns:1fr 1fr!important;gap:10px}
  .stats-rich .stat{padding:16px;border-radius:20px}
  .stats-rich .stat strong{font-size:34px}
  .stats-rich .stat small{font-size:12px}
  .photo-grid,.photo-grid:not(.memory-grid),.memory-grid{grid-template-columns:1fr!important;gap:16px}
  .photo-card img,.polaroid img{height:auto;max-height:none;aspect-ratio:4/3;object-fit:cover}
  .polaroid{transform:none!important;border-radius:18px}
  .card{padding:18px;border-radius:22px}
  .form-row{grid-template-columns:1fr!important;gap:12px}
  input,select,textarea{font-size:16px;min-height:52px;padding:12px 14px}
  textarea{min-height:160px}
  .check{font-size:13px}
  .photo-detail > section > img{border-width:5px;border-radius:18px}
  .family-cta{padding:20px;border-radius:24px;margin:30px 0 18px}
  .family-cta h2{font-size:30px}
  .family-cta p{font-size:16px}
  .steps-rich{gap:14px}
  .step-card{min-height:auto}
  .step-card h3{font-size:22px}
  .footer-grid{grid-template-columns:1fr!important}
}

@media (max-width:390px){
  .container{width:min(100% - 20px,1120px)}
  .memory-copy h1{font-size:48px}
  .gate-access-panel h1{font-size:30px}
  .stats{grid-template-columns:1fr!important}
}

/* v4 - Inicio con imagen de invitación completa */
.gate-poster-v4{
  min-height:calc(100vh - 150px);
  padding:34px 0 48px;
  display:grid;
  place-items:center;
}
.gate-poster-shell{
  width:min(1180px,96vw);
  display:grid;
  grid-template-columns:minmax(320px,520px) minmax(320px,1fr);
  gap:0;
  align-items:stretch;
  border-radius:34px;
  overflow:hidden;
  background:rgba(255,250,242,.94);
  border:1px solid rgba(197,148,94,.38);
  box-shadow:0 28px 80px rgba(67,43,22,.16);
}
.gate-poster-card{
  background:linear-gradient(145deg,#fff8ee,#f3dfc3);
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.gate-poster-card img{
  width:100%;
  max-height:78vh;
  object-fit:contain;
  border-radius:24px;
  box-shadow:0 18px 42px rgba(58,36,20,.18);
  background:white;
}
.gate-login-card{
  padding:clamp(26px,4vw,56px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:radial-gradient(circle at 15% 0%,rgba(255,255,255,.9),transparent 45%),linear-gradient(180deg,#fffaf2,#fff4e7);
}
.gate-login-card h1{
  font-family:Georgia,serif;
  color:#2b1d14;
  font-size:clamp(38px,5vw,68px);
  line-height:.96;
  letter-spacing:-2px;
  margin:10px 0 18px;
}
.gate-login-card .lead{
  font-size:clamp(17px,2vw,21px);
  line-height:1.55;
  color:#604a37;
}
.access-note-warm{
  background:#fff8eb;
  border:1px solid rgba(197,148,94,.45);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.72);
}
.access-form-v4{
  margin-top:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(197,148,94,.42);
  border-radius:26px;
  padding:22px;
}
.access-form-v4 input{
  min-height:58px;
  font-size:18px;
  border-radius:18px;
}
.access-form-v4 .btn{
  min-height:58px;
  font-size:16px;
}

.home-poster-hero{
  position:relative;
  margin:24px 0 42px;
  padding:clamp(18px,3vw,32px);
  border-radius:36px;
  background:linear-gradient(145deg,rgba(255,250,242,.96),rgba(250,237,216,.9));
  border:1px solid rgba(197,148,94,.35);
  box-shadow:0 24px 70px rgba(67,43,22,.12);
  overflow:hidden;
}
.home-poster-hero:before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(155,51,44,.12);
  border-radius:28px;
  pointer-events:none;
}
.home-poster-intro{
  position:relative;
  z-index:1;
  max-width:860px;
  margin:0 auto 20px;
  text-align:center;
}
.home-poster-intro h1{
  font-family:Georgia,serif;
  font-size:clamp(42px,7vw,82px);
  line-height:.95;
  margin:14px 0 12px;
  color:#2b1d14;
  letter-spacing:-2px;
}
.home-poster-intro p{
  font-size:clamp(17px,2vw,22px);
  line-height:1.55;
  color:#604a37;
  margin:0 auto;
}
.home-poster-frame{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:center;
  margin:26px auto 24px;
}
.home-poster-frame img{
  width:min(100%,880px);
  border-radius:28px;
  border:8px solid white;
  background:white;
  box-shadow:0 24px 68px rgba(50,31,17,.2);
}
.home-poster-actions{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
  margin-top:20px;
}
.home-poster-actions .btn{
  min-height:54px;
  padding-left:22px;
  padding-right:22px;
}
.mission-board-v4{margin-top:26px;}
.family-cta-v4{margin-top:34px;}

@media (max-width:920px){
  .gate-poster-shell{grid-template-columns:1fr;border-radius:26px;width:min(94vw,680px)}
  .gate-poster-card{padding:12px;order:2;background:#fff7ed}
  .gate-login-card{order:1;padding:26px 18px 22px;text-align:left}
  .gate-login-card h1{font-size:38px;letter-spacing:-1px}
  .gate-login-card .lead{font-size:17px}
  .access-form-v4{padding:16px;border-radius:22px}
  .gate-poster-card img{max-height:none;border-radius:18px}
  .home-poster-hero{padding:18px 12px;border-radius:26px;margin-top:12px}
  .home-poster-hero:before{inset:8px;border-radius:20px}
  .home-poster-intro{text-align:left;padding:4px 4px 0}
  .home-poster-intro h1{font-size:44px;letter-spacing:-1px}
  .home-poster-intro p{font-size:17px}
  .home-poster-frame{margin:18px auto}
  .home-poster-frame img{border-width:5px;border-radius:20px;box-shadow:0 16px 42px rgba(50,31,17,.18)}
  .home-poster-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .home-poster-actions .btn{width:100%}
}

@media (max-width:520px){
  .gate-poster-v4{padding:12px 0 24px;min-height:auto}
  .gate-login-card h1{font-size:32px}
  .gate-login-card .kicker{font-size:11px}
  .access-note{font-size:14px}
  .access-form-v4 input,.access-form-v4 .btn{min-height:54px}
  .home-poster-intro h1{font-size:36px}
  .home-poster-actions .btn{font-size:14px;padding:13px 14px}
  .stats-rich .stat,.stat{padding:16px}
  .section-title{align-items:flex-start;flex-direction:column}
}

/* v5 - Curaduría de títulos e histórico */
.title-suggestion-box{
  background:linear-gradient(180deg,#fffdf8,#fff3e3)!important;
  border-color:rgba(155,51,44,.18)!important;
}
.clean-list{
  margin:10px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}
.clean-list li{
  background:#fff;
  border:1px solid rgba(197,148,94,.25);
  border-radius:14px;
  padding:10px 12px;
}
.soft-history-card{
  background:linear-gradient(145deg,#fffaf2,#fff6ea)!important;
}
.suggestion-comparison .suggested-title{
  display:inline-block;
  margin-top:6px;
  padding:10px 14px;
  border-radius:16px;
  background:#fff6e8;
  border:1px solid rgba(197,148,94,.35);
  color:#8f2f29;
  font-size:20px;
  font-weight:900;
}
details summary{
  cursor:pointer;
  color:var(--brand);
  font-weight:800;
  margin-top:6px;
}
pre{
  white-space:pre-wrap;
  overflow:auto;
  background:#2b1d14;
  color:#fff8ef;
  padding:12px;
  border-radius:12px;
  font-size:12px;
}
.table-wrap img{
  box-shadow:0 6px 16px rgba(60,39,20,.12);
}
@media (max-width:760px){
  .photo-detail aside .card{padding:16px;border-radius:20px}
  .title-suggestion-box h2{font-size:24px;margin:.25rem 0}
  .table-wrap table{min-width:760px}
  .admin-layout{grid-template-columns:1fr!important}
  .admin-menu{position:relative;top:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .admin-menu a{background:#fff7ef;border:1px solid rgba(202,154,69,.24)}
}
@media (max-width:430px){
  .admin-menu{grid-template-columns:1fr}
}

/* ===== v6: portada preliminar del libro integrada en el inicio ===== */
.book-cover-section-v6 {
  max-width: 1180px;
  margin: 42px auto 34px;
  padding: 0;
}

.book-cover-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
  gap: 34px;
  align-items: center;
  padding: 34px;
  border-radius: 34px;
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 221, 166, .44), transparent 34%),
    radial-gradient(circle at 90% 20%, rgba(146, 53, 45, .10), transparent 28%),
    linear-gradient(135deg, rgba(255,250,242,.96), rgba(244,226,199,.94));
  border: 1px solid rgba(202,154,69,.38);
  box-shadow: 0 28px 82px rgba(72,42,20,.14);
  position: relative;
  overflow: hidden;
}

.book-cover-content:before {
  content: "";
  position: absolute;
  inset: 18px;
  border-radius: 25px;
  border: 1px solid rgba(154,48,40,.12);
  pointer-events: none;
}

.book-cover-copy,
.book-cover-image-wrap {
  position: relative;
  z-index: 1;
}

.book-cover-copy h2 {
  margin: 8px 0 16px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 68px);
  line-height: .96;
  letter-spacing: -2px;
  color: #2a1a12;
}

.book-cover-copy p {
  max-width: 680px;
  margin: 0 0 14px;
  color: #5d4634;
  font-size: 18px;
  line-height: 1.72;
}

.book-cover-note {
  padding-left: 16px;
  border-left: 4px solid rgba(154,48,40,.35);
  font-style: italic;
  background: rgba(255,255,255,.42);
  border-radius: 0 14px 14px 0;
}

.book-cover-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.book-cover-image-wrap {
  display: flex;
  justify-content: center;
}

.book-cover-image {
  width: 100%;
  max-width: 390px;
  border-radius: 22px;
  border: 6px solid #fff8ee;
  box-shadow: 0 32px 80px rgba(29, 16, 9, .36);
  transform: rotate(1.1deg);
  background: #fff8ee;
}

@media (max-width: 940px) {
  .book-cover-content {
    grid-template-columns: 1fr;
    padding: 26px;
    gap: 24px;
  }
  .book-cover-copy {
    text-align: center;
  }
  .book-cover-copy p {
    margin-left: auto;
    margin-right: auto;
  }
  .book-cover-note {
    text-align: left;
  }
  .book-cover-actions {
    justify-content: center;
  }
  .book-cover-image {
    max-width: 340px;
    transform: none;
  }
}

@media (max-width: 560px) {
  .book-cover-section-v6 {
    margin: 28px auto 24px;
  }
  .book-cover-content {
    border-radius: 26px;
    padding: 18px;
  }
  .book-cover-content:before {
    inset: 10px;
    border-radius: 20px;
  }
  .book-cover-copy h2 {
    font-size: 38px;
    letter-spacing: -1px;
  }
  .book-cover-copy p {
    font-size: 16px;
  }
  .book-cover-actions a {
    width: 100%;
    text-align: center;
  }
  .book-cover-image {
    max-width: 100%;
    border-radius: 18px;
    border-width: 4px;
  }
}
