*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}:root{--terracotta: #c46a52;--terracotta-dark: #a8513c;--peach: #f6d9c2;--sun: #e6b14a;--warm-cream: #fffcf5;--warm-white: #fffaf0;--card: #fcefdc;--text: #3a2a22;--text-light: #7a5d4f;--text-muted: #a8907f;--border: #ead9c1;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{background-color:var(--warm-cream);color:var(--text);-webkit-font-smoothing:antialiased}.masthead{position:relative;max-width:1200px;margin:0 auto;padding:2.5rem 1.5rem 1.25rem;text-align:center}.names{font-family:var(--font-display);font-size:3.5rem;font-weight:400;font-variation-settings:"SOFT" 100,"opsz" 144;letter-spacing:-.01em;line-height:1.05;color:var(--terracotta-dark)}.names .amp{font-style:normal;font-weight:400;font-variation-settings:"SOFT" 100,"opsz" 144;padding:0 .1em;color:var(--sun)}.masthead-divider{width:40px;height:1px;background:var(--border);margin:.85rem auto .8rem}.meta{font-family:var(--font-body);font-size:.95rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--text-light)}.split{max-width:1200px;margin:0 auto;padding:1rem 1.5rem 5rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:3rem;align-items:start}.split-form{position:sticky;top:1.5rem}.timeline{display:flex;flex-direction:column;gap:3.5rem}.timeline-entry{display:flex;flex-direction:column;gap:.9rem}.timeline-photo-wrap{width:100%;container-type:inline-size}.timeline-photo{border-radius:16px;overflow:hidden;box-shadow:0 14px 40px -18px #50281947,0 3px 10px -6px #5028191a;background:var(--card)}.timeline-photo img{display:block;width:100%;height:auto;max-height:100cqw;object-fit:cover}.timeline-photo[data-rotation="90"] img{transform:rotate(90deg);transform-origin:center}.timeline-photo[data-rotation="180"] img{transform:rotate(180deg)}.timeline-photo[data-rotation="270"] img{transform:rotate(270deg);transform-origin:center}.timeline-text{padding:0 .25rem}.timeline-date{font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terracotta);margin-bottom:.3rem}.timeline-caption{font-family:var(--font-display);font-size:1.35rem;font-style:italic;font-weight:400;font-variation-settings:"SOFT" 100,"opsz" 36;color:var(--text);line-height:1.35}.form-card{background:var(--card);border-radius:18px;padding:2.25rem 1.75rem 2rem;box-shadow:0 12px 40px -16px #5028192e,0 2px 8px -4px #50281914;text-align:center}.form-card h2{font-family:var(--font-display);font-size:2rem;font-weight:400;font-style:italic;font-variation-settings:"SOFT" 100,"opsz" 72;color:var(--terracotta-dark);margin-bottom:.5rem;line-height:1.1}.form-intro{font-family:var(--font-body);font-size:.9rem;color:var(--text-light);line-height:1.6;margin-bottom:1.75rem}form{text-align:left}.form-row{display:flex;gap:.75rem}.form-field{display:flex;flex-direction:column;margin-bottom:1.25rem;flex:1}.form-field label{font-family:var(--font-body);font-size:.9rem;font-weight:500;letter-spacing:.03em;color:var(--text-light);margin-bottom:.35rem}.form-field input[type=text],.form-field input[type=email],.form-field input[type=number]{padding:.75rem .95rem;border:1px solid var(--border);border-radius:10px;font-family:var(--font-body);font-size:.95rem;background:var(--warm-white);color:var(--text);transition:border-color .2s,box-shadow .2s;width:100%}.form-field input:focus{outline:none;border-color:var(--terracotta);box-shadow:0 0 0 3px #c46a522e}.form-field input::placeholder{color:var(--text-muted);font-weight:300}.radio-group{display:flex;gap:1.5rem;margin-top:.5rem}.radio-label{display:flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-size:.9rem;color:var(--text);cursor:pointer}.radio-label input[type=radio]{accent-color:var(--terracotta)}.error{font-family:var(--font-body);color:#b44;font-size:.85rem;margin-bottom:1rem}.form-card button[type=submit]{display:block;width:100%;padding:.95rem;margin-top:1.75rem;background:var(--terracotta);color:#fff;border:none;border-radius:10px;font-family:var(--font-body);font-size:.95rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .2s,transform .1s;box-shadow:0 4px 14px -4px #c46a5266}.form-card button[type=submit]:hover{background:var(--terracotta-dark);transform:translateY(-1px)}.form-card button[type=submit]:active{transform:translateY(0)}.form-card button[type=submit]:disabled{background:#d6b5a8;cursor:not-allowed;transform:none;box-shadow:none}.thank-you{max-width:540px;margin:0 auto;padding:4rem 2rem 5rem;text-align:center}.thank-you h2{font-family:var(--font-display);font-size:2.25rem;font-weight:400;font-style:italic;font-variation-settings:"SOFT" 100,"opsz" 72;color:var(--terracotta-dark);margin-bottom:.6rem}.thank-you p{font-family:var(--font-body);font-size:.95rem;color:var(--text-light);line-height:1.6}@media(max-width:900px){.masthead{padding-top:1.5rem}.split{grid-template-columns:1fr;gap:2rem;padding:.5rem 1.25rem 4rem}.split-form{position:static;max-width:560px;margin:0 auto;width:100%;order:-1}}@media(max-width:480px){.masthead{padding:1.5rem 1.25rem 1rem}.feed-toggle button{padding:.5rem 1.1rem;font-size:.74rem}.names{font-size:2.8rem}.meta-sep{display:none}.meta-loc{display:block}.form-card{padding:2rem 1.5rem 1.75rem}.form-row{flex-direction:column;gap:0}.timeline{gap:2.5rem}.timeline-caption{font-size:1.2rem}}.page{position:relative}.page-toggle{position:absolute;left:1.5rem;bottom:1.8rem;transform:translateY(50%);z-index:5}.feed-toggle{display:inline-flex;gap:.15rem;padding:.2rem;background:var(--card);border-radius:999px}.feed-toggle button{border:none;background:transparent;padding:.4rem 1rem;border-radius:999px;font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s}.feed-toggle button:hover{color:var(--text-light)}.feed-toggle button.active{background:var(--warm-white);color:var(--terracotta);box-shadow:0 1px 3px -1px #50281926}@media(max-width:900px){.page-toggle{position:static;transform:none;display:flex;justify-content:center;margin:0 0 1.25rem}}.guest-identity-input,.guest-composer-caption{width:100%;padding:.75rem .95rem;border:1px solid var(--border);border-radius:10px;font-family:var(--font-body);font-size:.95rem;background:var(--warm-white);color:var(--text);transition:border-color .2s,box-shadow .2s}.guest-identity-input{margin-bottom:.75rem}.guest-composer-caption{resize:vertical;line-height:1.5}.guest-identity-input:focus,.guest-composer-caption:focus{outline:none;border-color:var(--terracotta);box-shadow:0 0 0 3px #c46a522e}.guest-identity-input::placeholder,.guest-composer-caption::placeholder{color:var(--text-muted);font-weight:300}.photo-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.85rem;padding:.7rem;border:1.5px dashed var(--border);border-radius:10px;background:var(--warm-white);color:var(--terracotta);font-family:var(--font-body);font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,color .2s}.photo-button:hover{border-color:var(--terracotta);background:var(--peach);color:var(--terracotta-dark)}.photo-button input[type=file]{display:none}.composer-file{display:flex;align-items:center;gap:.6rem;margin-top:.85rem;padding:.5rem;border:1px solid var(--border);border-radius:10px;background:var(--warm-white)}.composer-file img{width:44px;height:44px;border-radius:6px;object-fit:cover;flex-shrink:0}.composer-file span{flex:1;min-width:0;font-family:var(--font-body);font-size:.82rem;color:var(--text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.composer-file button{flex-shrink:0;border:none;background:none;color:var(--text-muted);font-size:1.3rem;line-height:1;padding:0 .3rem;cursor:pointer}.composer-file button:hover{color:#b44}.guest-posts{display:flex;flex-direction:column;gap:2.75rem}.guest-feed-empty{font-family:var(--font-body);font-size:.9rem;color:var(--text-muted);text-align:center;padding:1.5rem 0}.gp-photo{container-type:inline-size;border-radius:16px;overflow:hidden;background:var(--card);box-shadow:0 14px 40px -18px #50281947,0 3px 10px -6px #5028191a;margin-bottom:.85rem}.gp-photo img{display:block;width:100%;height:auto;max-height:100cqw;object-fit:cover}.gp-body{padding:0 .25rem}.gp-caption{font-family:var(--font-display);font-size:1.3rem;font-style:italic;font-variation-settings:"SOFT" 100,"opsz" 36;color:var(--text);line-height:1.4}.gp-text .gp-caption{font-size:1.45rem}.gp-name{font-family:var(--font-body);font-style:normal;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--terracotta);margin-top:.35rem}.gp-actions{display:flex;gap:1.25rem;margin-top:.65rem}.gp-action{display:inline-flex;align-items:center;gap:.4rem;border:none;background:none;padding:0;cursor:pointer;color:var(--text-muted);font-family:var(--font-body);font-size:.85rem;font-weight:600;transition:color .15s,transform .1s}.gp-action svg{display:block}.gp-action:hover{color:var(--terracotta)}.gp-action:active{transform:scale(.88)}.gp-action.liked{color:var(--terracotta)}.gp-comments{margin-top:1rem;display:flex;flex-direction:column;gap:.6rem;text-align:left}.gp-comment{font-family:var(--font-body);font-size:.9rem;color:var(--text);line-height:1.5}.gp-comment-name{font-weight:600;margin-right:.2rem}.gp-comment-form{display:flex;flex-direction:column;gap:.55rem;margin-top:.5rem}.gp-comment-input,.gp-comment-name-input{width:100%;padding:.55rem .95rem;border:1px solid var(--border);border-radius:999px;font-family:var(--font-body);font-size:.88rem;background:var(--warm-white);color:var(--text)}.gp-comment-input:focus,.gp-comment-name-input:focus{outline:none;border-color:var(--terracotta)}.gp-comment-field{position:relative}.gp-comment-field .gp-comment-input{padding-right:3.4rem}.gp-comment-post{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);border:none;background:none;padding:.2rem .35rem;font-family:var(--font-body);font-size:.85rem;font-weight:700;color:var(--terracotta);cursor:pointer;transition:color .15s}.gp-comment-post:hover:not(:disabled){color:var(--terracotta-dark)}.gp-comment-post:disabled{color:var(--text-muted);cursor:not-allowed}.form-card-thanks{padding-top:3rem;padding-bottom:3rem}.editor{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 5rem;font-family:var(--font-body)}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.editor-header h1{font-family:var(--font-display);font-style:italic;font-variation-settings:"SOFT" 100,"opsz" 72;font-weight:400;font-size:2rem;color:var(--terracotta-dark)}.editor-actions{display:flex;align-items:center;gap:1rem}.editor-status{font-size:.85rem;color:var(--text-light)}.editor-actions button{padding:.6rem 1rem;background:var(--terracotta);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer}.editor-actions button:disabled{background:#d6b5a8;cursor:not-allowed}.editor-help{font-size:.85rem;color:var(--text-light);margin-bottom:1.5rem;line-height:1.5}.editor-help code{background:var(--warm-white);padding:.1rem .35rem;border-radius:4px;font-size:.85em}.editor-section{margin-bottom:2.5rem}.editor-section h2{font-family:var(--font-display);font-weight:400;font-size:1.4rem;color:var(--text);margin-bottom:.75rem}.editor-row{display:grid;grid-template-columns:auto 80px 1fr auto;gap:1rem;padding:.75rem;background:var(--card);border-radius:10px;margin-bottom:.6rem;align-items:center;border:2px solid transparent}.editor-row-dragging{opacity:.4}.editor-row-over{border-color:var(--terracotta, #c4623f)}.editor-drag-handle{cursor:grab;background:none;border:none;padding:0 .2rem;font-size:1.2rem;line-height:1;color:var(--muted, #9a8a80);align-self:center}.editor-drag-handle:active{cursor:grabbing}.editor-thumb{width:80px;height:80px;border-radius:6px;overflow:hidden;background:var(--warm-white);display:flex;align-items:center;justify-content:center}.editor-thumb img{width:100%;height:100%;object-fit:cover}.editor-fields{display:flex;flex-direction:column;gap:.4rem;min-width:0}.editor-filename{font-size:.75rem;color:var(--text-muted);font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-field-row{display:flex;gap:.5rem;align-items:center}.editor-row input[type=text],.editor-row select{padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:.9rem;background:var(--warm-white)}.editor-date{width:110px}.editor-rotation{width:80px}.editor-hidden-label{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-light)}.editor-caption{width:100%}.editor-row-actions{display:flex;flex-direction:column;gap:.25rem}.editor-row-actions button{width:32px;height:28px;border:1px solid var(--border);background:var(--warm-white);border-radius:6px;cursor:pointer;font-size:.9rem}.editor-row-actions button:disabled{opacity:.4;cursor:not-allowed}.editor-row-actions .editor-remove{color:#b44}.editor-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.editor-gallery-item{display:flex;flex-direction:column;gap:.35rem;padding:.4rem;background:var(--card);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-family:inherit;text-align:left}.editor-gallery-item:hover{background:var(--peach)}.editor-gallery-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}.editor-gallery-item span{font-size:.7rem;font-family:monospace;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
