.invite-page{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;gap:clamp(22px,4vw,38px);padding:clamp(14px,3vw,40px) clamp(12px,3vw,32px) clamp(32px,5vw,60px);background:radial-gradient(38vmax 38vmax at 2% 0%,rgba(112,122,66,.4),transparent 62%) no-repeat,radial-gradient(28vmax 28vmax at -6% 24%,rgba(78,92,46,.28),transparent 60%) no-repeat,radial-gradient(34vmax 34vmax at 104% 10%,rgba(104,112,62,.28),transparent 60%) no-repeat,radial-gradient(26vmax 26vmax at 103% 44%,rgba(84,96,52,.2),transparent 60%) no-repeat,linear-gradient(180deg,#f6efe3,#f2eadd 55%,#efe3d2);background-attachment:fixed}.poster{position:relative;width:min(100%,560px);container-type:inline-size;overflow:hidden;border:1px solid rgba(20,16,12,.78);background:linear-gradient(180deg,#f8f1e6,#f4ebde 46%,#eee1d1);box-shadow:0 30px 64px -34px #2b1e127a,0 2px 6px #2b1e1214}.poster__frame{position:absolute;top:1.9cqw;right:1.9cqw;bottom:1.9cqw;left:1.9cqw;border:1px solid var(--gold-line);pointer-events:none;z-index:2}.poster__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:5.4cqw 5.8cqw 0;text-align:center}.poster__logo{width:47cqw;height:auto;margin-top:1.4cqw}.poster__title{margin:3.6cqw 0 0;font-size:8.9cqw;font-weight:900;line-height:1;letter-spacing:.075em;color:var(--ink)}.poster__subtitle{margin:1.5cqw 0 0;font-size:8.1cqw;font-weight:700;line-height:1;letter-spacing:.012em;color:var(--red)}.poster__year{display:flex;align-items:center;justify-content:center;gap:2.6cqw;width:100%;margin-top:2.4cqw}.poster__rule{height:1px;width:8.6cqw;background:linear-gradient(90deg,#c3966000,#c39660)}.poster__rule--flip{background:linear-gradient(90deg,#c39660,#c3966000)}.poster__year-text{font-size:6.2cqw;font-weight:700;letter-spacing:.055em;line-height:1;background:linear-gradient(180deg,#dcbc85,#ab7840 52%,#8a5a22);-webkit-background-clip:text;background-clip:text;color:transparent}.poster__tagline{margin:1.9cqw 0 0;font-size:3.35cqw;font-weight:700;letter-spacing:.012em;color:#22262a}.poster__script{margin:2.4cqw 0 0;font-family:var(--font-script);font-size:8.6cqw;line-height:1.24;color:var(--crimson);font-weight:400}.poster__body{max-width:90%;margin:1.4cqw 0 0;font-size:max(2.42cqw,12px);line-height:1.62;color:var(--body)}.poster__info{display:flex;align-items:center;justify-content:center;gap:2.6cqw;width:100%;margin-top:3.4cqw;padding-bottom:1.4cqw}.poster__info-item{display:flex;align-items:center;gap:1.7cqw;text-align:left}.poster__info-icon{width:6.4cqw;min-width:28px;height:auto;flex:none;color:var(--red)}.poster__info-text{display:flex;flex-direction:column;gap:.2cqw}.poster__info-text strong{font-size:max(2.72cqw,12px);font-weight:700;letter-spacing:.005em;color:#171313}.poster__info-text span{font-size:max(2.46cqw,11.5px);color:#4a4b4c}.poster__info-divider{width:1px;align-self:stretch;min-height:7.4cqw;background:#bda78f}.poster__photo{position:relative;z-index:3;width:calc(100% + 11.6cqw);margin:3.2cqw -5.8cqw 0}.poster__photo img{width:100%;height:auto}.rsvp{width:min(100%,560px);display:flex;flex-direction:column;align-items:center;gap:14px;position:relative;z-index:1}.rsvp__label{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#6b5b4c}.rsvp__actions{display:grid;grid-template-columns:1fr;gap:10px;width:100%}@media(min-width:520px){.rsvp__actions{grid-template-columns:repeat(3,1fr)}}.rsvp__button{min-height:52px;padding:14px 16px;border:1px solid #c0412f;border-radius:var(--radius);background:#fbf6ee;color:#a3281a;font-size:.95rem;font-weight:600;line-height:1.25;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.rsvp__button:hover:not(:disabled){background:#f7eadb;border-color:#a72e1c}.rsvp__button:active:not(:disabled){transform:translateY(1px)}.rsvp__button--primary{background:linear-gradient(180deg,#e8482f,#c9341f);border-color:#b92e1b;color:#fff;box-shadow:0 10px 22px -14px #b42816f2}.rsvp__button--primary:hover:not(:disabled){background:linear-gradient(180deg,#e24229,#bf2d19)}.rsvp__button:disabled{opacity:.55;cursor:not-allowed;transform:none}.rsvp__status{margin:0;min-height:1.25rem;font-size:.9rem;color:#8a3a2c;text-align:center}.rsvp__skeleton{width:100%;height:52px;border-radius:var(--radius);background:linear-gradient(100deg,#d2bea859 30%,#e2d2bfa6,#d2bea859 70%);background-size:220% 100%;animation:rsvp-shimmer 1.4s linear infinite}.rsvp__retry{min-height:44px;padding:10px 22px;border:1px solid #c0412f;border-radius:var(--radius);background:transparent;color:#a3281a;font-weight:600;cursor:pointer}@keyframes rsvp-shimmer{0%{background-position:120% 0}to{background-position:-20% 0}}.thankyou{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 22px;border:1px solid rgba(187,140,86,.55);border-radius:14px;background:#fbf6eed1;text-align:center}.thankyou__title{margin:0;font-size:clamp(1.35rem,1.1rem + 1.4vw,1.75rem);font-weight:700;color:var(--ink)}.thankyou__choice{margin:0;font-size:.98rem;color:#8a3a2c}.thankyou__time{margin:0;font-size:.85rem;color:#7b6a5b}.admin-shell{min-height:100dvh;padding:clamp(18px,3vh,34px) clamp(14px,3vw,34px) clamp(40px,6vh,64px);background:linear-gradient(180deg,#f6efe4,#f2eadd 60%,#ede1d0);color:var(--body)}.admin-shell--centered{display:flex;align-items:center;justify-content:center}.admin-muted{margin:0;font-size:.86rem;color:#7b6a5b}.admin-title{margin:0 0 4px;font-size:clamp(1.3rem,1.05rem + 1vw,1.7rem);font-weight:700;color:var(--ink)}.admin-login{width:min(100%,380px);display:flex;flex-direction:column;gap:14px;padding:clamp(22px,4vw,32px);border:1px solid rgba(187,140,86,.5);border-radius:14px;background:#fbf6eee6;box-shadow:0 24px 50px -34px #2b1e1280}.admin-login__title{margin:0;font-size:1.6rem;font-weight:700;color:var(--ink)}.admin-field{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:600;color:#5f5044}.admin-field input{min-height:46px;padding:10px 12px;border:1px solid #cdb79f;border-radius:8px;background:#fff;font-size:1rem;color:var(--ink)}.admin-field input:focus-visible{outline:2px solid var(--crimson);outline-offset:2px}.admin-header{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:space-between;width:min(100%,1080px);margin:0 auto 20px}.admin-header__actions{display:flex;flex-wrap:wrap;gap:8px}.admin-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border:1px solid #c9b49c;border-radius:8px;background:#fbf6ee;color:#5a4534;font-size:.88rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.admin-button:hover:not(:disabled){background:#f6eadb;border-color:#b39a7d}.admin-button:disabled{opacity:.5;cursor:not-allowed}.admin-button--primary{border-color:#b92e1b;background:linear-gradient(180deg,#e8482f,#c9341f);color:#fff}.admin-button--primary:hover:not(:disabled){background:linear-gradient(180deg,#e24229,#bf2d19)}.admin-button--ghost{background:transparent}.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;width:min(100%,1080px);margin:0 auto 18px}.admin-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid rgba(187,140,86,.4);border-left:3px solid #cbb69e;border-radius:12px;background:#fcf8f1eb}.admin-card--yes{border-left-color:#2f7a4f}.admin-card--busy{border-left-color:#a83a2a}.admin-card--maybe{border-left-color:#b4853a}.admin-card__label{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7b6a5b}.admin-card__value{font-size:1.9rem;font-weight:700;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.admin-panel{width:min(100%,1080px);margin:0 auto;padding:clamp(14px,2vw,20px);border:1px solid rgba(187,140,86,.45);border-radius:14px;background:#fcf8f1eb}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px}.admin-filters{display:flex;flex-wrap:wrap;gap:8px}.admin-chip{min-height:36px;padding:6px 14px;border:1px solid #cdb79f;border-radius:999px;background:#fbf6ee;color:#5f5044;font-size:.84rem;font-weight:600;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.admin-chip:hover{background:#f6eadb}.admin-chip--active{border-color:#b92e1b;background:#b92e1b;color:#fff}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:480px}.admin-table th,.admin-table td{padding:12px 10px;text-align:left;border-bottom:1px solid rgba(187,140,86,.28);white-space:nowrap}.admin-table th{font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#7b6a5b}.admin-table tbody tr:hover{background:#f0e4d480}.admin-empty{padding:26px 10px;text-align:center;color:#8a7a6b}.admin-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.admin-badge--yes{background:#e2f0e6;color:#2b6b46}.admin-badge--busy{background:#fae3dd;color:#9c3122}.admin-badge--maybe{background:#f7ecd6;color:#8a6321}.admin-pagination{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:14px}.admin-error{margin:0 0 12px;padding:10px 12px;border:1px solid #e0b4a8;border-radius:8px;background:#fbeeea;color:#92301f;font-size:.88rem}@font-face{font-family:Playfair Display;src:url(/assets/playfair-display-BOwq7MWX.woff2) format("woff2-variations");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Pinyon Script;src:url(/assets/pinyon-script-HCoaxbyT.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--cream: #f2eadd;--ink: #1b1512;--body: #47484a;--red: #e8402c;--crimson: #a30d14;--gold-line: #bb8c56;--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-script: "Pinyon Script", "Segoe Script", cursive;--radius: 10px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--body);font-family:var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}img{display:block;max-width:100%}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--crimson);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
