:root{--bg: #fbfaf6;--bg-2: #f3f0e8;--ink: #1a1a1a;--ink-soft: #3a3a38;--muted: #8a8a82;--line: #d9d6cc;--leaf: #9fa987;--leaf-deep: #6d7a58;--gold: #b69a64;--accent: var(--leaf);--serif: "Cormorant Garamond", "Cormorant", Georgia, serif;--script: "Parisienne", "Dancing Script", cursive;--mono: ui-monospace, "SF Mono", Menlo, monospace}[data-theme=dark]{--bg: #1b1c18;--bg-2: #24251f;--ink: #f2efe6;--ink-soft: #d9d5c7;--muted: #8d8c82;--line: #3a3a33}[data-script=dancing]{--script: "Dancing Script", cursive}[data-script=vibes]{--script: "Great Vibes", cursive}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{margin:0;padding:0;overflow-x:clip}html,body{background:var(--bg);color:var(--ink);font-family:var(--serif)}body{margin:0;padding:0;font-size:17px;line-height:1.5;overflow:visible}img{display:block;max-width:100%}a{color:inherit}button{font-family:inherit;cursor:pointer}.page{max-width:480px;margin:0 auto;background:var(--bg);position:relative;overflow:visible;min-height:100vh}.cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overscroll-behavior:none;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:transform 1.2s cubic-bezier(.76,0,.24,1),opacity .6s ease .6s}.cover.open{transform:translateY(-100%);opacity:0;pointer-events:none}.cover-inner{max-width:480px;width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 28px;text-align:center}.cover .leaves{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cover .leaf-corner{position:absolute;opacity:0;animation:leafIn 1.6s cubic-bezier(.22,.8,.3,1) forwards}.cover .leaf-corner.tl{top:-10px;left:-20px;width:58%;animation-delay:.1s}.cover .leaf-corner.tr{top:20px;right:-30px;width:48%;transform:scaleX(-1);animation-delay:.3s}.cover .leaf-corner.bl{bottom:-10px;left:-20px;width:42%;transform:scaleY(-1);animation-delay:.5s}.cover .leaf-corner.br{bottom:20px;right:-10px;width:44%;transform:scale(-1);animation-delay:.7s}.cover .meta{font-family:var(--serif);letter-spacing:.35em;text-transform:uppercase;font-size:11px;color:var(--muted);opacity:0;animation:fadeUp .9s ease .9s forwards}.cover .names{font-family:var(--script);font-size:clamp(46px,13vw,72px);line-height:1.25;color:var(--ink);margin:18px 0 0;font-weight:400;padding-bottom:.35em}.cover .names .line1{display:block;opacity:0;animation:fadeUp 1.2s ease 1.2s forwards;padding-bottom:.2em}.cover .names .line2{display:block;opacity:0;animation:fadeUp 1.2s ease 1.5s forwards;padding-bottom:2.5em}.cover .ampersand{display:inline;font-style:italic}.cover .date{margin-top:64px;font-family:var(--serif);letter-spacing:.3em;font-size:14px;color:var(--ink-soft);opacity:0;animation:fadeUp .9s ease 1.9s forwards}.cover .hint{position:absolute;bottom:42px;left:0;right:0;text-align:center;font-family:var(--serif);font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);opacity:0;animation:fadeUp .9s ease 2.3s forwards,bob 2.6s ease-in-out 3.2s infinite}.cover .open-btn{margin-top:36px;border:1px solid var(--ink);background:transparent;color:var(--ink);padding:14px 28px;font-family:var(--serif);font-size:13px;letter-spacing:.3em;text-transform:uppercase;border-radius:0;opacity:0;animation:fadeUp .9s ease 2.1s forwards;transition:background .2s,color .2s}.cover .open-btn:hover,.cover .open-btn:active{background:var(--ink);color:var(--bg)}@keyframes leafIn{0%{opacity:0;transform:translate(var(--tx,0),20px) var(--base-tf, none);filter:blur(6px)}to{opacity:.95;transform:translate(0) var(--base-tf, none);filter:blur(0)}}.cover .leaf-corner.tr{--base-tf: scaleX(-1)}.cover .leaf-corner.bl{--base-tf: scaleY(-1)}.cover .leaf-corner.br{--base-tf: scale(-1,-1)}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}section.block{position:relative;padding:56px 28px;text-align:center;border-bottom:1px solid var(--line)}section.block:last-of-type{border-bottom:none}.overline{font-size:10.5px;letter-spacing:.45em;text-transform:uppercase;color:var(--muted);margin-bottom:22px;font-family:var(--serif)}h2.title{font-family:var(--script);font-weight:400;font-size:44px;line-height:1;margin:0 0 10px}.kicker{font-family:var(--serif);letter-spacing:.3em;font-size:13px;text-transform:uppercase;color:var(--ink-soft)}.body-text{font-family:var(--serif);font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:380px;margin:18px auto 0;text-wrap:pretty}.divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:28px auto;color:var(--leaf)}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1;max-width:70px}.divider svg{width:18px;height:18px}.welcome .names-big{font-family:var(--script);font-size:clamp(32px,8vw,64px);line-height:1;margin:10px 0 36px}.welcome .intro{font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-soft);max-width:380px;margin:0 auto 28px}.welcome .date-big{font-family:var(--serif);letter-spacing:.35em;font-size:22px;margin:10px 0 32px;color:var(--ink)}.welcome .date-big .dot{color:var(--leaf);margin:0 .2em}.welcome .places{font-family:var(--serif);font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:380px;margin:0 auto}.welcome .sign{margin-top:34px;font-family:var(--script);font-size:26px;color:var(--ink)}.countdown{background:var(--bg-2)}.count-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:380px;margin:8px auto 0}.count-cell{background:var(--bg);border:1px solid var(--line);padding:18px 6px 14px;display:flex;flex-direction:column;align-items:center;gap:6px}.count-num{font-family:var(--serif);font-size:34px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.count-lab{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted)}.venue{display:flex;flex-direction:column;align-items:center}.venue .time{font-family:var(--serif);font-size:22px;letter-spacing:.15em;color:var(--ink);margin:6px 0 14px}.venue .name{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--ink);margin:0;max-width:340px}.venue .addr{font-family:var(--serif);font-size:15px;color:var(--ink-soft);margin:8px 0 22px}.venue .map-btn{display:inline-block;border:1px solid var(--ink);color:var(--ink);background:transparent;padding:12px 22px;text-decoration:none;font-family:var(--serif);font-size:12px;letter-spacing:.3em;text-transform:uppercase;transition:background .2s,color .2s}.venue .map-btn:hover{background:var(--ink);color:var(--bg)}.venue+.venue{margin-top:54px;padding-top:54px;border-top:1px solid var(--line);width:100%}.trayecto{background:var(--bg-2)}.route{background:var(--bg);border:1px solid var(--line);padding:20px 14px 14px;margin:8px auto 0;max-width:380px;color:var(--ink)}.route svg{display:block;width:100%;height:auto}.bus-stop .hr-note{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-family:var(--serif);text-align:right;line-height:1.35}.map-card{background:var(--bg);border:1px solid var(--line);padding:14px;margin-top:10px}.map-card img{width:100%;height:auto;filter:saturate(.95)}.bus-stops{display:grid;gap:14px;margin-top:26px;text-align:left}.bus-stop{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;background:var(--bg);border:1px solid var(--line);padding:14px 16px}.bus-stop .ico{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--ink)}.bus-stop .ico svg{width:28px;height:28px}.bus-stop .town{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.bus-stop .where{font-family:var(--serif);font-size:16px;color:var(--ink);font-style:italic}.bus-stop .hr{font-family:var(--serif);font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.08em}.rsvp{background:var(--bg)}.form-wrap{margin-top:16px;display:grid;gap:14px;text-align:left;max-width:380px;margin-left:auto;margin-right:auto}.field{display:grid;gap:6px}.field label{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);font-family:var(--serif)}.field input,.field select,.field textarea{font-family:var(--serif);font-size:16px;padding:12px 14px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:0;outline:none;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}.field textarea{min-height:72px;resize:vertical}.seg{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line)}#busField .seg{grid-template-columns:1fr}#busField .seg button+button{border-left:0;border-top:1px solid var(--line)}.seg button{padding:14px 10px;background:var(--bg);color:var(--ink-soft);border:0;font-family:var(--serif);font-size:13px;letter-spacing:.3em;text-transform:uppercase;transition:background .15s,color .15s}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--ink);color:var(--bg)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.submit{margin-top:6px;padding:16px;background:var(--ink);color:var(--bg);border:0;font-family:var(--serif);font-size:13px;letter-spacing:.35em;text-transform:uppercase}.submit:active{transform:translateY(1px)}.wa-btn{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;background:transparent;color:var(--ink);border:1px solid var(--ink);text-decoration:none;font-family:var(--serif);font-size:13px;letter-spacing:.3em;text-transform:uppercase}.wa-btn svg{width:18px;height:18px}.thanks{display:none;background:var(--bg-2);border:1px solid var(--line);padding:26px;text-align:center;font-family:var(--serif)}.thanks.show{display:block}.thanks h3{font-family:var(--script);font-weight:400;font-size:34px;margin:0 0 10px}.contact .pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.contact .pair .who{font-family:var(--serif);font-size:18px;color:var(--ink);margin-bottom:6px}.contact .pair a{font-family:var(--serif);font-size:17px;letter-spacing:.05em;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px}.orn{position:absolute;pointer-events:none;opacity:0;transition:opacity .8s;z-index:0}[data-orn=on] .orn{opacity:var(--orn-op, .55)}[data-orn=soft] .orn{opacity:var(--orn-op, .25)}[data-orn=off] .orn{opacity:0}section.block>*{position:relative;z-index:1}.orn.tl{top:-10px;left:-30px;width:180px}.orn.tr{top:20px;right:-30px;width:150px;transform:scaleX(-1)}.orn.bl{bottom:0;left:-20px;width:130px;transform:scaleY(-1)}.orn.br{bottom:10px;right:-20px;width:150px;transform:scale(-1)}.foot{text-align:center;padding:40px 24px 56px;font-family:var(--serif);color:var(--muted);font-size:12px;letter-spacing:.3em;text-transform:uppercase;background:var(--bg)}.foot .amp{font-family:var(--script);text-transform:none;font-size:22px;color:var(--leaf);letter-spacing:0;display:block;margin-bottom:6px}.audio-toggle{position:fixed;bottom:16px;right:16px;width:44px;height:44px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;z-index:40;color:var(--ink-soft);display:none}[data-music=on] .audio-toggle{display:flex}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}.tweaks{position:fixed;right:16px;bottom:16px;width:300px;max-width:calc(100vw - 32px);background:var(--bg);color:var(--ink);border:1px solid var(--line);box-shadow:0 20px 60px #00000014,0 2px 8px #0000000a;z-index:9999;font-family:var(--serif);font-size:13px;display:none;max-height:calc(100vh - 32px);overflow-y:auto}.tweaks.show{display:block}.tweaks header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);letter-spacing:.3em;text-transform:uppercase;font-size:11px}.tweaks header button{border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1}.tweaks .tw-body{padding:10px 14px 14px;display:grid;gap:12px}.tw-row{display:grid;gap:6px}.tw-row>label{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.tw-row .opts{display:flex;flex-wrap:wrap;gap:6px}.tw-row .opts button{padding:7px 10px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--line);background:var(--bg);color:var(--ink-soft);font-family:var(--serif)}.tw-row .opts button.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.tw-row .swatches{display:flex;gap:8px}.tw-row .swatches button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;padding:0}.tw-row .swatches button.active{border-color:var(--ink)}@media (min-width: 720px){body{background:var(--bg-2);padding:32px 0}.page{max-width:920px;box-shadow:0 30px 80px -30px #0000002e,0 2px 12px #0000000f;border:1px solid var(--line)}section.block{padding:88px 64px}h2.title{font-size:56px}.body-text{font-size:19px;max-width:540px}.welcome .names-big{font-size:clamp(48px,5.5vw,72px)}.welcome .date-big{font-size:26px}.welcome .places{font-size:18px;max-width:540px}.places .venues-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;max-width:760px;margin:36px auto 0;align-items:start}.places .venues-grid .venue+.venue{margin-top:0;padding-top:0;border-top:0;border-left:1px solid var(--line);padding-left:56px}.trayecto .trayecto-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;max-width:800px;margin:28px auto 0;align-items:center}.trayecto .route,.trayecto .bus-stops{margin-top:0}.cover-inner{max-width:720px}.cover .names{font-size:clamp(72px,10vw,110px)}.count-grid{max-width:520px;gap:14px}.count-cell{padding:26px 8px 22px}.count-num{font-size:44px}.form-wrap{max-width:520px}.row-2{grid-template-columns:1fr 1fr}.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;max-width:720px;margin:32px auto 0;align-items:center}}@media (min-width: 1100px){.page{max-width:1080px}section.block{padding:104px 96px}}
