:root{--bg: #0e0e11;--bg-2: #141418;--surface: #17171c;--surface-2: #1e1e24;--line: #2a2a32;--text: #f3efe9;--muted: #9a958d;--accent: #d8a7ac;--accent-soft: #3a2b2d;--gold: #c9a24b;--ok: #7fb98b;--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;overscroll-behavior:none}body{min-height:100dvh;background:radial-gradient(1200px 600px at 50% -10%,#1a161a 0%,transparent 60%),radial-gradient(900px 500px at 100% 110%,#16171d 0%,transparent 55%),var(--bg)}#app{min-height:100dvh;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 22px) 22px calc(var(--safe-bottom) + 22px);max-width:560px;margin:0 auto}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:.2px;line-height:1.12;margin:0}h1{font-size:clamp(30px,8vw,40px)}h2{font-size:clamp(24px,6.5vw,32px)}p{line-height:1.55;color:var(--muted);margin:0}.eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:14px}.screen{flex:1;display:flex;flex-direction:column;animation:fadeUp .6s cubic-bezier(.22,1,.36,1)}.screen-center{justify-content:center}.spacer{flex:1}.stack>*+*{margin-top:16px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:16px;font-weight:500;padding:16px 22px;border-radius:14px;width:100%;cursor:pointer;transition:transform .15s ease,background .2s ease,border-color .2s ease;text-align:center}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,#c98f96 100%);color:#1a1114;border:none;font-weight:600;box-shadow:0 10px 30px -12px #d8a7acb3}.btn-ghost{background:transparent}.btn:disabled{opacity:.4;cursor:not-allowed}.photo-frame{width:100%;aspect-ratio:4 / 5;border-radius:18px;border:1px solid var(--line);background:var(--surface);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.photo-frame img{width:100%;height:100%;object-fit:cover}.photo-frame .placeholder{color:var(--muted);font-size:14px;text-align:center;padding:24px}.photo-frame .placeholder .ico{font-size:34px;display:block;margin-bottom:10px}.hidden-input{display:none}.option{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:16px;padding:17px 18px;border-radius:14px;width:100%;text-align:left;cursor:pointer;transition:transform .12s ease,background .2s ease,border-color .2s ease}.option:active{transform:scale(.99)}.option.selected{border-color:var(--accent);background:var(--accent-soft)}.reaction{color:var(--accent);font-family:var(--serif);font-size:22px;font-style:italic;text-align:center;animation:pop .4s ease}.q-count{color:var(--muted);font-size:13px;letter-spacing:1px}#progress{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:50}#progress-bar{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--gold));transition:width .5s cubic-bezier(.22,1,.36,1)}.proposal{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:40px}.proposal h1{font-size:clamp(34px,10vw,52px)}.proposal-buttons{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%}.btn-yes{background:linear-gradient(135deg,var(--accent),#c98f96);color:#1a1114;border:none;border-radius:18px;font-weight:700;cursor:pointer;transition:all .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 14px 40px -14px #d8a7accc;font-family:var(--sans)}.btn-no{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:all .35s cubic-bezier(.34,1.56,.64,1);font-family:var(--sans)}.reject{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;color:#111;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;animation:fadeIn .3s ease}.reject p{color:#111;font-family:var(--sans);font-weight:500;font-size:clamp(21px,6vw,28px);line-height:1.35;max-width:340px}.reject .count{margin-top:26px;font-family:var(--sans);font-size:13px;letter-spacing:2px;color:#999;text-transform:uppercase}.terms-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.terms-box ul{margin:0;padding-left:20px}.terms-box li{color:var(--text);line-height:1.6;margin:8px 0;font-weight:300}.check-row{display:flex;align-items:flex-start;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.check-row input{display:none}.check-box{width:24px;height:24px;min-width:24px;border:1px solid var(--line);border-radius:7px;background:var(--surface);display:flex;align-items:center;justify-content:center;transition:all .2s ease;margin-top:1px}.check-row input:checked+.check-box{background:var(--accent);border-color:var(--accent)}.check-box svg{opacity:0;transition:opacity .2s ease}.check-row input:checked+.check-box svg{opacity:1}.check-row span.label{color:var(--text);font-size:15px;line-height:1.4}.sign-wrap{background:#fbfaf7;border-radius:14px;border:1px solid var(--line);position:relative;overflow:hidden}.sign-canvas{display:block;width:100%;height:190px;touch-action:none}.sign-line{position:absolute;left:18px;right:18px;bottom:34px;border-bottom:1px solid #d8d2c6;pointer-events:none}.sign-x{position:absolute;left:18px;bottom:38px;color:#b7b0a3;font-size:18px;pointer-events:none}.sign-clear{position:absolute;top:8px;right:10px;background:#fffc;border:1px solid #e2ddd2;color:#6b665c;font-size:12px;padding:6px 12px;border-radius:20px;cursor:pointer}.stat{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 18px 20px}.stat .stat-label{color:var(--muted);font-size:14px;margin-bottom:10px}.stat .stat-value{font-family:var(--serif);font-size:40px;font-weight:600;color:var(--text);line-height:1}.stat .stat-value .suffix{font-size:22px;color:var(--accent)}.bar-track{margin-top:12px;height:8px;border-radius:20px;background:var(--surface-2);overflow:hidden}.bar-fill{height:100%;width:0%;border-radius:20px;background:linear-gradient(90deg,var(--accent),var(--gold));transition:width 1.1s cubic-bezier(.22,1,.36,1)}.cert-preview{background:#fbf9f4;color:#2a2620;border-radius:14px;padding:26px 22px;border:1px solid var(--line);text-align:center;position:relative;overflow:hidden}.cert-preview .cert-title{font-family:var(--serif);font-size:22px;color:#2a2620;letter-spacing:1px}.cert-preview .cert-photo{width:120px;height:150px;object-fit:cover;border-radius:8px;margin:16px auto;border:3px solid #fff;box-shadow:0 6px 20px -8px #0006}.cert-preview .cert-names{font-family:var(--serif);font-size:26px;color:#2a2620}.cert-preview .cert-meta{color:#8a8272;font-size:12px;margin-top:6px}.muted-note{color:var(--muted);font-size:13px;text-align:center}.center{text-align:center}.confetti-heart{position:fixed;top:-30px;font-size:22px;pointer-events:none;z-index:90;animation:fall linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(360deg);opacity:.9}}.afloje{animation:pop .6s cubic-bezier(.34,1.56,.64,1)}.fade-out{animation:fadeOut .35s ease forwards}@keyframes fadeOut{to{opacity:0;transform:translateY(-10px)}}
