*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{font-family:Georgia,Times New Roman,Times,serif;color-scheme:light dark;--color-bg: #f8f4f0;--color-card: #ffffff;--color-text: #2c1810;--color-text-secondary: #6b4c3b;--color-accent: #b8860b;--color-accent-light: #f5ead0;--color-border: #d4af37;--color-placeholder-bg: #ede7de;--color-placeholder: #c4b09a;--shadow: 0 2px 20px rgba(0, 0, 0, .08)}@media(prefers-color-scheme:dark){:root{--color-bg: #1a1208;--color-card: #241a0e;--color-text: #f5ead8;--color-text-secondary: #c4a882;--color-accent: #d4af37;--color-accent-light: #3d2e0a;--color-border: #8b6914;--color-placeholder-bg: #2e2416;--color-placeholder: #5a4530;--shadow: 0 2px 20px rgba(0, 0, 0, .4)}}body{min-height:100dvh;background-color:var(--color-bg);color:var(--color-text)}#app{max-width:680px;margin-inline:auto;padding:2rem 1rem}.invitation{display:flex;justify-content:center}.invitation-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;padding:2.5rem 2rem;width:100%;box-shadow:var(--shadow);text-align:center}.invitation-header{margin-bottom:2rem}.decoration-line{height:2px;background:linear-gradient(to right,transparent,var(--color-border),transparent);margin:.75rem auto;width:80%}.invite-label{font-size:.875rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-secondary);margin-bottom:.75rem}.graduate-name{font-size:clamp(2rem,6vw,3rem);color:var(--color-accent);margin-bottom:.5rem;font-weight:700;line-height:1.2}.graduation-subtitle{font-size:1rem;color:var(--color-text-secondary);font-style:italic}.rsvp-button{display:inline-block;margin-top:1.25rem;padding:.75rem 2.5rem;background:var(--color-accent);color:#fff;text-decoration:none;font-family:inherit;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;border-radius:4px;transition:opacity .15s}.rsvp-button:hover{opacity:.85}.photo-section{margin-bottom:2rem}.photo-frame{display:inline-block;border:3px solid var(--color-border);border-radius:8px;padding:.5rem;background:var(--color-placeholder-bg)}.photo-placeholder{width:200px;height:220px;display:block}.photo-hint{font-size:.75rem;color:var(--color-text-secondary);margin-top:.4rem;font-style:italic}.event-details{margin-bottom:2rem;text-align:left}.details-heading{font-size:.875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);margin-bottom:1rem;text-align:center}.details-list{display:grid;gap:0;max-width:420px;margin-inline:auto}.detail-row{display:grid;grid-template-columns:90px 1fr;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--color-accent-light)}.detail-row:first-child{border-top:1px solid var(--color-accent-light)}.detail-row dt{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent);padding-top:.15rem}.detail-row dd{color:var(--color-text);line-height:1.6}.message-section{margin-bottom:1.5rem}.celebratory-message{border:none;margin:0;padding:1.25rem 1.5rem;background:var(--color-accent-light);border-radius:6px;font-style:italic;color:var(--color-text-secondary);line-height:1.7}.celebratory-message p{margin:0}.invitation-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-accent-light)}.footer-note{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.25rem}
