/* Amorario love page (viewer /p/<id> + editor preview). Mobile first, 390px. */
@font-face{font-family:"Crimson";src:url(/app/fonts/CrimsonText-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Crimson";font-style:italic;src:url(/app/fonts/CrimsonText-Italic.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Crimson";font-weight:600;src:url(/app/fonts/CrimsonText-SemiBold.ttf) format("truetype");font-display:swap}
.lp{--a:#c8324f;--a2:#a52641;--bg:#fff5f6;--soft:#fde3e8;--ink:#2b1b21;--mute:#76606a;--card:#fff;--line:#f3d3da;--g1:#e9607a;--g2:#c8324f;--g3:#8c1d38;
  min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;position:relative;overflow-x:hidden}
.lp.theme-noche{--a:#ff7d98;--a2:#ff98ad;--bg:#1d1217;--soft:#3a2129;--ink:#fbeef1;--mute:#c9aab3;--card:#2a1a20;--line:#4a2a34;--g1:#4a1a2b;--g2:#2a1019;--g3:#14080d}
.lp.theme-durazno{--a:#bf4430;--a2:#9e3524;--bg:#fff6ef;--soft:#ffe3d3;--ink:#33201a;--mute:#7b625a;--card:#fff;--line:#f5d6c6;--g1:#f7a072;--g2:#e8705a;--g3:#bf4430}
.lp *{box-sizing:border-box}.lp [hidden]{display:none!important}
.ribbon{position:fixed;top:0;left:0;right:0;z-index:30;background:#2b1b21;color:#fff;font:700 13px system-ui,sans-serif;text-align:center;padding:5px 8px;letter-spacing:.3px}.ribbon.pv{background:#1f6f5c}
/* cover */
.cover{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px 40px;text-align:center;color:#fff;background:radial-gradient(120% 80% at 50% 0%,var(--g1),var(--g2) 55%,var(--g3));position:relative;overflow:hidden}
.cover .cto{font-family:"Crimson",Georgia,serif;font-weight:600;font-size:clamp(34px,10vw,52px);line-height:1.1;margin:22px 0 0;text-shadow:0 2px 12px #0003;position:relative}
.cover .cintro{font-size:19px;margin:0 0 12px;opacity:.95;max-width:340px;position:relative}.cover .cfrom{font-family:"Crimson",Georgia,serif;font-style:italic;font-size:20px;margin:6px 0 0;opacity:.9;position:relative}
.openbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:99px;background:#fff;color:var(--a2);font:800 19px system-ui,sans-serif;padding:16px 28px;min-height:58px;box-shadow:0 10px 30px #0000004d;cursor:pointer;text-decoration:none;animation:beat 1.8s ease-in-out infinite}
.theme-noche .openbtn{color:#a52641}
@keyframes beat{0%,100%{transform:scale(1)}12%{transform:scale(1.06)}24%{transform:scale(1)}36%{transform:scale(1.04)}}
.hearts{position:absolute;inset:0;pointer-events:none}.hearts i{position:absolute;bottom:-30px;color:#ffffff59;font-style:normal;animation:float linear infinite}
@keyframes float{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}100%{transform:translateY(-110vh) rotate(25deg);opacity:0}}
.env{position:relative;width:210px;height:140px;margin-top:6px;filter:drop-shadow(0 14px 22px #00000040)}
.env-back{position:absolute;inset:0;background:#fbe9ec;border-radius:10px}
.env-card{position:absolute;left:16px;right:16px;top:14px;height:110px;background:#fff;border-radius:6px;display:grid;place-items:center;font-size:40px;transition:transform .8s cubic-bezier(.2,.8,.2,1) .25s}
.env-front{position:absolute;inset:0;border-radius:10px;background:linear-gradient(to top right,#f6d2d9 50%,transparent 50.5%) left/50% 100% no-repeat,linear-gradient(to top left,#f2c4cd 50%,transparent 50.5%) right/50% 100% no-repeat}
.env-flap{position:absolute;left:0;right:0;top:0;height:86px;background:#f9dce2;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform .5s ease;border-radius:10px 10px 0 0;z-index:2}
.seal{position:absolute;left:50%;top:66px;transform:translate(-50%,-50%);z-index:3;width:44px;height:44px;border-radius:50%;background:var(--a);color:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 2px 6px #0004;transition:opacity .3s}
.theme-noche .seal{background:#c8324f}
.cover.opening .env-flap{transform:rotateX(180deg);z-index:0}.cover.opening .seal{opacity:0}.cover.opening .env-card{transform:translateY(-70px)}
.cover.opening{animation:fadeout .45s ease .6s forwards}@keyframes fadeout{to{opacity:0}}
.cover.gone .cto{font-size:64px}
/* content */
.content{max-width:640px;margin:0 auto;padding:0 18px 30px;animation:fadein .7s ease}@keyframes fadein{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero{text-align:center;padding:40px 0 6px}.heroimg{width:min(68vw,260px);aspect-ratio:1;margin:0 auto;border-radius:50%;overflow:hidden;border:6px solid var(--card);box-shadow:0 10px 30px #c8324f33}.heroimg img{width:100%;height:100%;object-fit:cover;display:block}
.heroheart{font-size:76px}
.hero h1{font-family:"Crimson",Georgia,serif;font-weight:600;font-size:clamp(34px,9.5vw,48px);line-height:1.1;margin:18px 0 4px;color:var(--a2)}.theme-noche .hero h1{color:var(--a)}
.names{font-family:"Crimson",Georgia,serif;font-style:italic;font-size:22px;color:var(--mute);margin:0}.names span{color:var(--a)}
.sec{margin:34px 0}.sec h2{font-family:"Crimson",Georgia,serif;font-weight:600;font-size:28px;line-height:1.15;text-align:center;margin:0 0 14px;color:var(--ink)}
.sec h2::after{content:"";display:block;width:44px;height:3px;border-radius:3px;background:var(--a);margin:10px auto 0;opacity:.7}.secsub{text-align:center;color:var(--mute);font-size:15px;margin:-6px 0 14px}
.counter{background:var(--card);border-radius:24px;padding:22px 14px 18px;box-shadow:0 6px 24px #c8324f1a;text-align:center}
.cnt{display:flex;justify-content:center;gap:10px}.cnt .cb{flex:1;max-width:110px;display:flex;flex-direction:column;align-items:center}
.cnt.big b{font:800 clamp(38px,12vw,54px)/1 system-ui,sans-serif;color:var(--a);font-variant-numeric:tabular-nums}.cnt.big small{font-size:15px;font-weight:700;color:var(--mute);margin-top:4px}
.cnt.small{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.cnt.small b{font:700 24px/1 system-ui,sans-serif;font-variant-numeric:tabular-nums;color:var(--ink)}.cnt.small small{font-size:13px;color:var(--mute);margin-top:3px}
.csince{margin:14px 0 0;color:var(--mute);font-size:15px}
.embed{border-radius:16px;overflow:hidden;background:var(--card);box-shadow:0 4px 18px #0000000f}.embed iframe{display:block;width:100%;border:0}.embed.youtube iframe{aspect-ratio:16/9;height:auto}.embed.spotify iframe{height:152px}.embed.spotify.tall iframe{height:352px}
.songlink{display:block;text-align:center;padding:12px;color:var(--a2);font-weight:700;text-decoration:none;font-size:15px}.theme-noche .songlink{color:var(--a)}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}.pgrid .pol:first-child:nth-last-child(odd),.pgrid .pol:only-child{grid-column:1/-1}
.pol{margin:0;background:#fff;padding:8px 8px 10px;border-radius:4px;box-shadow:0 6px 18px #0000001f;transform:rotate(var(--r));transition:transform .2s}.pol:nth-child(even){margin-top:10px}
.phb{display:block;width:100%;padding:0;border:0;background:#f4f4f4;cursor:zoom-in}.pol img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.pgrid .pol:first-child:nth-last-child(odd) img{aspect-ratio:4/3}
.pol figcaption{font-family:"Crimson",Georgia,serif;font-style:italic;font-size:16px;line-height:1.25;color:#4a3a40;text-align:center;margin-top:7px;overflow-wrap:anywhere}
.paper{background:var(--card);border-radius:6px;padding:26px 22px 22px;box-shadow:0 8px 26px #0000001a;font-family:"Crimson",Georgia,serif;font-size:21px;line-height:1.55;position:relative;overflow-wrap:anywhere;background-image:repeating-linear-gradient(transparent 0 31px,var(--line) 31px 32px);background-position:0 18px}
.theme-noche .paper{background-image:none}.paper p{margin:0 0 14px}.paper .sign{text-align:right;font-style:italic;font-size:23px;color:var(--a2);margin:18px 0 0}.theme-noche .paper .sign{color:var(--a)}
.owl{list-style:none;padding:0;margin:0;display:grid;gap:10px}.owb{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--card);color:var(--ink);border:2px solid var(--line);border-radius:16px;padding:12px 14px;font:inherit;cursor:pointer;min-height:64px}
.owb.on{border-color:var(--a)}.owe{font-size:28px}.owtx{flex:1;display:flex;flex-direction:column}.owtx small{color:var(--mute);font-size:13px;font-weight:600}.owtx b{font-size:18px;overflow-wrap:anywhere}.owch{font-size:26px;color:var(--a);transition:transform .2s}.owb.on .owch{transform:rotate(90deg)}
.owt{background:var(--soft);border-radius:0 0 14px 14px;margin:-8px 4px 0;padding:18px 16px 6px;font-family:"Crimson",Georgia,serif;font-size:20px;line-height:1.5;overflow-wrap:anywhere}.owt p{margin:0 0 12px}
.ngrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nc{background:var(--card);border-radius:18px;padding:14px;box-shadow:0 3px 14px #0000000d;text-align:center;min-width:0}.nc.wide{grid-column:1/-1}
.nc h3{font-size:16px;margin:2px 0 4px;line-height:1.3}.nc p{margin:2px 0;color:var(--mute);font-size:14px}.ni{font-size:26px;display:block}.nd{display:block;font-family:"Crimson",Georgia,serif;font-size:25px;color:var(--a2);line-height:1.2;margin:2px 0}.theme-noche .nd{color:var(--a)}
.nc blockquote{margin:10px 0 0;font-family:"Crimson",Georgia,serif;font-style:italic;font-size:19px;line-height:1.35;background:var(--soft);border-radius:12px;padding:10px 12px;overflow-wrap:anywhere}
.nc.love{background:linear-gradient(160deg,var(--soft),var(--card))}.nsub{font-weight:700;color:var(--a2)!important}.theme-noche .nsub{color:var(--a)!important}
.nbig{display:block;font:800 44px/1.05 system-ui,sans-serif;color:var(--a);font-variant-numeric:tabular-nums}
.split{height:12px;border-radius:99px;background:var(--soft);overflow:hidden;margin:12px 0 6px}.split span{display:block;height:100%;background:var(--a);border-radius:99px}
.splitl{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--mute);font-weight:600}.splitl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emos{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:6px}.emos span{display:flex;flex-direction:column;align-items:center;min-width:48px}.emos b{font-size:30px;line-height:1.2}.emos .top b{font-size:42px}.emos small{color:var(--mute);font-size:12px;font-weight:700}
.lpf{text-align:center;padding:26px 0 calc(16px + env(safe-area-inset-bottom));color:var(--mute);font-size:14px}.lpf a{color:var(--a2);font-weight:700}.theme-noche .lpf a{color:var(--a)}.lpf p{margin:6px 0}
.fin{font-family:"Crimson",Georgia,serif;font-style:italic;font-size:24px;color:var(--ink)!important}
.replink{background:none;border:0;color:var(--mute);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;padding:12px;min-height:44px}
.lbox{position:fixed;inset:0;z-index:40;background:#000d;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px}.lbox img{max-width:100%;max-height:82vh;border-radius:6px}.lbox p{color:#fff;font-family:"Crimson",Georgia,serif;font-style:italic;font-size:19px;text-align:center}
.lbx{position:absolute;top:max(10px,env(safe-area-inset-top));right:10px;width:48px;height:48px;border-radius:50%;border:0;background:#fff3;color:#fff;font-size:22px;cursor:pointer}
.repd{border:0;border-radius:18px;padding:0;max-width:min(92vw,420px);width:100%;color:#2b1b21;background:#fff}.repd::backdrop{background:#0008}.repd form{padding:18px}.repd h3{margin:0 0 4px;font-size:20px}.repd .muted{color:#76606a;font-size:15px;margin:0 0 10px}
.rr{display:flex;gap:10px;align-items:center;padding:8px 0;font-size:16px;min-height:40px}.rr input{width:20px;height:20px;accent-color:#c8324f}.rf{display:block;margin:10px 0}.rf span{display:block;font-size:14px;font-weight:700;margin-bottom:4px}
.rf textarea,.rf input{width:100%;font:inherit;font-size:16px;padding:10px;border:1.5px solid #e2c6cd;border-radius:10px}.repmsg{min-height:1.2em;font-weight:700;color:#1f6f5c;margin:8px 0}
.rbtns{display:flex;gap:10px}.rbtns button{flex:1;min-height:50px;border-radius:12px;font:700 16px system-ui,sans-serif;cursor:pointer}.rcancel{background:#fff;border:2px solid #e2c6cd;color:#2b1b21}.rsend{background:#c8324f;border:0;color:#fff}
@media (prefers-reduced-motion:reduce){.hearts,.openbtn{animation:none}.hearts i{display:none}.content{animation:none}.env-flap,.env-card{transition:none}}
