:root{font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#332624;background:#eee7e1;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(143,60,73,.24);outline-offset:2px}.page-shell{min-height:100vh;padding:max(18px,env(safe-area-inset-top)) 14px max(28px,env(safe-area-inset-bottom));background:radial-gradient(circle at 12% 0%,rgba(161,118,66,.14),transparent 32%),linear-gradient(180deg,#eee7e1,#f7f2ee 48%,#eee7e1)}.app-frame{width:min(100%,460px);margin:0 auto;overflow:hidden;border:1px solid #dfd1ca;border-radius:28px;background:#fdfaf7;box-shadow:0 18px 55px #4e2d271f}.wedding-header{display:flex;align-items:flex-start;justify-content:space-between;padding:26px 24px 22px;color:#fff9f5;background:linear-gradient(145deg,#7d3340,#a45c54)}.eyebrow{margin:0 0 8px;color:#8f3c49;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.eyebrow.light{color:#fff9f5d1}.wedding-header h1{display:flex;align-items:center;gap:8px;margin:0;font-family:STSong,Songti SC,serif;font-size:clamp(26px,8vw,34px);font-weight:500;letter-spacing:.05em}.header-date{margin:10px 0 0;font-size:13px;letter-spacing:.06em}.header-mark{display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(255,249,245,.42);border-radius:50%;font-family:STSong,Songti SC,serif;font-size:24px}.progress-area{padding:16px 22px 4px}.progress-copy{display:flex;justify-content:space-between;margin-bottom:8px;color:#766866;font-size:12px}.progress-track{height:4px;overflow:hidden;border-radius:999px;background:#eadfda}.progress-track span{display:block;height:100%;border-radius:inherit;background:#8f3c49;transition:width .18s ease}.form-surface{min-height:565px;padding:22px}.step-panel h2{margin:0 0 8px;font-family:STSong,Songti SC,serif;font-size:28px;font-weight:600}.lead{margin:0 0 22px;color:#776967;font-size:14px;line-height:1.75}.event-card{display:grid;gap:0;margin-bottom:18px;padding:8px 16px;border-radius:16px;background:#f7e9eb}.event-card div{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #ead6d8;font-size:14px}.event-card div:last-child{border-bottom:0}.event-card svg{color:#8f3c49}.purpose-note,.inline-note{display:grid;grid-template-columns:auto 1fr;gap:10px;margin:0 0 20px;padding:13px 14px;border-left:3px solid #a17642;border-radius:0 12px 12px 0;color:#55443f;background:#f6eddf;font-size:13px;line-height:1.65}.purpose-note p{margin:0}.field{display:block;margin-bottom:17px}.field-label{display:block;margin-bottom:7px;font-size:14px;font-weight:700}.required{color:#9d3346}input,select,textarea{width:100%;min-height:48px;padding:11px 12px;color:#332624;border:1px solid #dfd3cd;border-radius:11px;background:#fff;font-size:16px}textarea{resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.choice-button{display:flex;min-height:48px;align-items:center;justify-content:center;gap:6px;padding:9px;color:#4d3d39;border:1px solid #dfd3cd;border-radius:11px;background:#fff;font-size:14px}.choice-button.selected{color:#8f3c49;border-color:#8f3c49;background:#f7e9eb}.mini-section{margin-bottom:24px;padding-bottom:23px;border-bottom:1px solid #eadfda}.mini-section:last-of-type{border-bottom:0}.mini-heading{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:#8f3c49}.mini-heading h3{margin:0;color:#332624;font-size:16px}.pickup-service-note{margin:0 0 14px;padding:11px 13px;color:#65534d;border-left:3px solid #c79e78;border-radius:0 10px 10px 0;background:#faf3ea;font-size:13px;line-height:1.7}.conditional-fields{margin-top:16px;padding-top:16px;border-top:1px dashed #d9c8c0}.summary-list{margin:0 0 22px;overflow:hidden;border:1px solid #e1d5cf;border-radius:15px;background:#fff}.summary-list div{display:grid;grid-template-columns:86px 1fr;gap:12px;padding:13px 14px;border-bottom:1px solid #eee4df}.summary-list div:last-child{border-bottom:0}.summary-list dt{color:#7c6f6b;font-size:13px}.summary-list dd{margin:0;font-size:14px;font-weight:700}.primary-button,.secondary-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:6px;padding:11px 17px;border-radius:11px;font-size:15px;font-weight:700}.primary-button{color:#fffaf7;border:1px solid #8f3c49;background:#8f3c49}.primary-button:disabled{cursor:wait;opacity:.62}.primary-button.wide,.secondary-button.wide{width:100%}.secondary-button{color:#4b3b37;border:1px solid #dfd3cd;background:#fff}.navigation-row{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.navigation-row .primary-button{flex:1}.privacy-line{display:flex;align-items:center;justify-content:center;gap:6px;margin:15px 0 0;color:#827571;font-size:12px;text-align:center}.home-actions{display:grid;gap:10px}.home-actions a,.info-home-link{text-decoration:none}.error-message{margin:14px 0;padding:11px 12px;border-radius:10px;color:#8b2438;background:#fbe9ec;font-size:13px;line-height:1.6}.success-shell{display:grid;place-items:center}.success-panel{width:min(100%,430px);padding:42px 28px;border:1px solid #dfd1ca;border-radius:24px;background:#fdfaf7;box-shadow:0 18px 55px #4e2d271f;text-align:center}.success-panel h1{margin:0 0 12px;font-family:STSong,Songti SC,serif}.success-panel p:not(.eyebrow){color:#776967;line-height:1.75}.success-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}.edit-warning{margin-top:16px;font-size:12px}.loading-shell{display:grid;place-items:center;color:#766866}.success-icon{display:grid;width:66px;height:66px;place-items:center;margin:0 auto 20px;border-radius:50%;color:#39745a;background:#e6f2eb}.info-page-shell{padding-block:max(18px,env(safe-area-inset-top)) max(36px,env(safe-area-inset-bottom))}.info-frame{width:min(100%,560px)}.info-surface{padding:24px}.submission-confirmation{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin-bottom:26px;padding:18px;border:1px solid #cfe2d7;border-radius:16px;background:#f1f8f4}.submission-confirmation .success-icon.compact{width:48px;height:48px;margin:0}.submission-confirmation .eyebrow{margin-bottom:4px;color:#39745a}.submission-confirmation h2{margin:0 0 4px;font-family:STSong,Songti SC,serif;font-size:22px}.submission-confirmation p:last-child{margin:0;color:#617269;font-size:13px;line-height:1.65}.info-intro{margin-bottom:20px}.info-intro h2{margin:0 0 8px;font-family:STSong,Songti SC,serif;font-size:28px}.info-intro>p:last-child{margin:0;color:#776967;font-size:14px;line-height:1.75}.invitation-photo,.wedding-photo-gallery figure{margin:0;overflow:hidden;border-radius:15px}.invitation-photo{margin-bottom:18px;border:1px solid #e2d5cf;background:#fff}.invitation-photo img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:center 48%}.invitation-photo figcaption{padding:9px 12px;color:#786864;font-family:STSong,Songti SC,serif;font-size:13px;text-align:center}.wedding-photo-gallery{margin-bottom:20px}.gallery-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.gallery-heading .eyebrow{margin:0}.gallery-note{margin:0;color:#8a7a75;font-size:12px;line-height:1.55;text-align:right}.gallery-hero-photo{margin-bottom:10px!important;border:1px solid #e2d5cf}.gallery-hero-photo img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:center 45%}.gallery-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-photo-grid figure,.gallery-photo-column figure{margin:0;border:1px solid #e2d5cf;background:#eee5e0}.gallery-photo-grid img,.gallery-photo-column img{display:block;width:100%}.gallery-photo-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-photo-column{display:grid;align-content:start;gap:10px}.wedding-photo-gallery-after{margin-top:20px;margin-bottom:0}.info-card-list{display:grid;gap:13px}.info-card{overflow:hidden;padding:17px;border:1px solid #e2d5cf;border-radius:16px;background:#fff}.info-card-heading{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:center;margin-bottom:12px}.info-card-heading>svg{margin-top:2px;color:#8f3c49}.info-card-heading span{margin:0;color:#8f3c49;font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1.55}.info-card-heading>div{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:2px}.info-card-heading h3{margin:0;font-size:16px;line-height:1.45}.info-card dl{margin:0}.info-card dl div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 0;border-top:1px solid #f0e7e2}.info-card dt{color:#887975;font-size:13px}.info-card dd{margin:0;font-size:14px;font-weight:700;line-height:1.6}.info-card-note{margin:12px 0 0;padding:11px 12px;border-radius:10px;color:#65534d;background:#f8f0e4;font-size:13px;line-height:1.7}.pending-info-card{background:#fdf9f2}.featured-info-card{border-color:#d9b8bd;background:#fcf4f5}.info-reminder{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:15px;padding:14px;border-radius:13px;color:#55443f;background:#f6eddf}.info-reminder svg{margin-top:2px;color:#a17642}.info-reminder p{margin:0;font-size:13px;line-height:1.7}.info-actions{margin-top:20px}.info-actions+.edit-warning{color:#827571;text-align:center}.info-home-link{margin-top:20px}.admin-login-shell{display:grid;min-height:100vh;place-items:center;padding:20px;background:#eee7e1}.admin-login-panel{width:min(100%,420px);padding:34px;border:1px solid #dfd1ca;border-radius:22px;background:#fdfaf7;box-shadow:0 18px 55px #4e2d271f}.admin-login-panel h1{margin:0 0 10px;font-family:STSong,Songti SC,serif}.admin-login-panel>p:not(.eyebrow,.error-message){margin:0 0 22px;color:#776967;line-height:1.7}.text-link{display:block;margin-top:18px;color:#8f3c49;font-size:14px;text-align:center}.admin-shell{min-height:100vh;background:#f3eeea}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px max(24px,calc((100vw - 1180px)/2));color:#fff9f5;background:linear-gradient(135deg,#6f2f3a,#984b4c)}.admin-header h1{margin:0;font-family:STSong,Songti SC,serif;font-size:30px;font-weight:600}.admin-header p:last-child{margin:7px 0 0;color:#fff9f5c7;font-size:13px}.admin-header-actions{display:flex;gap:9px}.header-button{display:inline-flex;min-height:42px;align-items:center;gap:7px;padding:9px 13px;color:#fff9f5;border:1px solid rgba(255,249,245,.38);border-radius:10px;background:#ffffff14}.admin-content{width:min(calc(100% - 32px),1180px);margin:0 auto;padding:24px 0 48px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.stats-grid article{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:9px;padding:18px;border:1px solid #e0d5cf;border-radius:15px;background:#fff}.stats-grid svg{color:#8f3c49}.stats-grid span{color:#776967;font-size:13px}.stats-grid strong{font-size:26px}.admin-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 190px;gap:12px;margin:20px 0 14px}.search-field{display:flex;align-items:center;gap:9px;min-height:48px;padding:0 12px;border:1px solid #dfd3cd;border-radius:11px;background:#fff}.search-field svg{flex:0 0 auto;color:#8b7b76}.search-field input{min-height:44px;padding:0;border:0}.response-list{display:grid;gap:12px}.response-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.7fr);gap:18px;padding:19px;border:1px solid #e0d5cf;border-radius:15px;background:#fff}.response-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.response-title h2{margin:0;font-size:18px}.response-title p,.response-notes{margin:5px 0 0;color:#776967;font-size:13px}.attendance-badge{flex:0 0 auto;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.attendance-badge.yes{color:#2d624b;background:#e5f1ea}.attendance-badge.no{color:#85575c;background:#f1e8e9}.response-facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:13px;color:#564641;font-size:13px}.pickup-detail{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:13px;padding:10px 12px;border-radius:10px;color:#604820;background:#f7eddc;font-size:13px}.dispatch-controls{display:grid;grid-template-columns:.85fr 1.25fr .9fr;gap:9px;align-self:center}.delete-response{display:inline-flex;grid-column:1 / -1;width:fit-content;min-height:36px;align-items:center;gap:6px;justify-self:end;padding:7px 10px;color:#8b2438;border:0;background:transparent;font-size:12px}.dispatch-controls label{min-width:0}.dispatch-controls label>span{display:block;margin-bottom:5px;color:#776967;font-size:12px}.dispatch-controls input,.dispatch-controls select{min-height:42px;font-size:14px}.empty-state{padding:56px 20px;border:1px dashed #d8c9c2;border-radius:15px;color:#786b67;background:#ffffff8c;text-align:center}.admin-footnote{margin:16px 0 0;color:#776967;font-size:13px}@media(max-width:880px){.stats-grid{grid-template-columns:repeat(2,1fr)}.response-card{grid-template-columns:1fr}}@media(max-width:620px){.gallery-heading{align-items:flex-start;flex-direction:column;gap:3px}.gallery-heading .eyebrow{white-space:nowrap}.gallery-note{text-align:left}.admin-header{align-items:flex-start;flex-direction:column;padding:24px 18px}.admin-content{width:min(calc(100% - 24px),1180px)}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid article{grid-template-columns:26px 1fr;padding:14px}.stats-grid strong{grid-column:2}.admin-toolbar,.dispatch-controls{grid-template-columns:1fr}.success-actions{flex-direction:column}}@media(max-width:420px){.page-shell{padding-inline:0;padding-top:0}.app-frame{border-inline:0;border-top:0;border-radius:0 0 24px 24px}.wedding-header,.form-surface{padding-inline:18px}.field-grid{grid-template-columns:1fr 1fr}}@media(max-width:350px){.field-grid{grid-template-columns:1fr;gap:0}.choice-grid.three{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.progress-track span{transition:none}}
