@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Nunito:wght@300;400;500;600&display=swap);:root{--bg:#fcf9f4;--primary:#f0f7da;--secondary:#f0f7da;--accent:#6b8c3e;--accent-hover:#527030;--accent-light:#6b8c3e26;--text:#3d2b1f;--text-muted:#8a7060;--border:#6b8c3e47;--card:#fff;--nav-bg:#3d2b1f;--danger:#b83c24;--font-heading:"Playfair Display",Georgia,serif;--font-body:"Nunito",system-ui,sans-serif;--radius:12px;--radius-lg:20px;--radius-full:40px;--shadow:0 2px 16px #3d2b1f0f;--shadow-md:0 4px 24px #3d2b1f1a;--shadow-lg:0 8px 40px #3d2b1f29;--nav-height:68px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fcf9f4;background:var(--bg);color:#3d2b1f;color:var(--text)}body,button{font-family:Nunito,system-ui,sans-serif;font-family:var(--font-body)}button{cursor:pointer}input{font-family:Nunito,system-ui,sans-serif;font-family:var(--font-body)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;position:relative}.app__deco{border-radius:50%;pointer-events:none;position:fixed;z-index:0}.app__deco--1{background:radial-gradient(circle,#6b8c3e14 0,#0000 70%);height:300px;right:-100px;top:-100px;width:300px}.app__deco--2{background:radial-gradient(circle,#6b8c3e0d 0,#0000 70%);bottom:80px;height:250px;left:-80px;width:250px}.app__content{padding-bottom:68px;padding-bottom:var(--nav-height);z-index:1}.app__content,.screen{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;position:relative}.screen{margin:0 auto;max-width:640px;width:100%}.screen__body{-webkit-overflow-scrolling:touch;flex:1 1;min-height:0;overflow-y:auto}.page-header{border-bottom:1px solid #6b8c3e47;border-bottom:1px solid var(--border);flex-shrink:0;padding:28px 24px 16px;position:relative;text-align:center}.page-header__title{color:#3d2b1f;color:var(--text);font-family:Playfair Display,Georgia,serif;font-family:var(--font-heading);font-size:38px;font-style:italic;font-weight:600;letter-spacing:.02em}.page-header__sub{color:#8a7060;color:var(--text-muted);font-size:12px;letter-spacing:.1em;margin-top:6px;text-transform:uppercase}.btn{align-items:center;background:#3d2b1f;background:var(--text);border:none;border-radius:40px;border-radius:var(--radius-full);color:#fff;display:inline-flex;font-size:14px;font-weight:500;gap:8px;letter-spacing:.04em;padding:13px 28px;transition:background .2s,opacity .2s}.btn:hover{background:#2a1d14}.btn--accent{background:#6b8c3e;background:var(--accent)}.btn--accent:hover{background:#527030;background:var(--accent-hover)}.btn--danger{background:#b83c24;background:var(--danger)}.btn:disabled{cursor:not-allowed;opacity:.55}.loading{align-items:center;color:#8a7060;color:var(--text-muted);display:flex;font-size:15px;height:50vh;justify-content:center}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.welcome{align-items:center;display:flex;inset:0;justify-content:center;position:fixed;z-index:999}.welcome__bg{background:#3e1c00b3;height:100%;object-fit:cover;object-position:center top;width:100%}.welcome__bg,.welcome__overlay{inset:0;position:absolute}.welcome__content{align-items:center;display:flex;flex-direction:column;gap:0;max-width:480px;padding:48px 36px 56px;position:relative;text-align:center;width:100%;z-index:1}.welcome__eyebrow{color:#ffffffb3;font-size:20px;font-weight:1000;letter-spacing:.22em;margin-bottom:10px;text-transform:uppercase}.welcome__title{color:#fff;font-family:var(--font-heading);font-size:clamp(36px,9vw,52px);font-style:italic;font-weight:600;line-height:1.15;margin-bottom:8px;text-shadow:0 2px 20px #0006}.welcome__sub{color:#ffffffd1;font-size:20px;letter-spacing:.02em;margin-bottom:28px}.welcome__input{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff26;border:1.5px solid #ffffff80;border-radius:var(--radius-full);color:#fff;font-family:var(--font-heading);font-size:18px;font-style:italic;margin-bottom:16px;outline:none;padding:16px 20px;text-align:center;transition:border-color .2s,background .2s;width:100%}.welcome__input::placeholder{color:#ffffff80}.welcome__input:focus{background:#ffffff38;border-color:#ffffffe6}.welcome__btn{background:#6b8c3e;border:none;border-radius:var(--radius-full);box-shadow:0 4px 24px #00000040;color:var(--text);font-size:16px;font-weight:700;letter-spacing:.04em;padding:16px 28px;text-align:center;transition:opacity .2s,transform .15s;width:100%}.welcome__btn:hover:not(.welcome__btn--disabled){box-shadow:0 6px 28px #0000004d;transform:translateY(-1px)}.welcome__btn--disabled{cursor:not-allowed;opacity:.45}.nav{align-items:stretch;background:var(--nav-bg);border-top:1px solid #ffffff14;bottom:0;display:flex;height:var(--nav-height);left:0;position:fixed;right:0;z-index:100}.nav__btn{align-items:center;background:none;border:none;display:flex;flex:1 1;flex-direction:column;gap:4px;justify-content:center;padding:6px 4px;transition:background .2s}.nav__btn:hover{background:#ffffff0f}.nav__btn--active{background:#f0f7da1a}.nav__icon{color:#ffffff8c;display:block;height:22px;transition:color .2s;width:22px}.nav__btn--active .nav__icon{color:var(--primary)}.nav__label{color:#ffffff8c;font-size:10px;letter-spacing:.04em;transition:color .2s}.nav__btn--active .nav__label{color:var(--primary);font-weight:600}.confirm-overlay{align-items:center;animation:fadeIn .15s ease;background:#00000080;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:300}.confirm-dialog{animation:slideUp .18s ease;background:var(--bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:340px;padding:32px 28px 24px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.confirm-dialog__icon{font-size:36px;margin-bottom:12px;text-align:center}.confirm-dialog__title{color:var(--text);font-family:var(--font-heading);font-size:20px;font-style:italic;margin-bottom:8px;text-align:center}.confirm-dialog__message{color:var(--text-muted);font-size:14px;line-height:1.6;margin-bottom:24px;text-align:center}.confirm-dialog__actions{display:flex;gap:10px}.confirm-dialog__cancel{background:var(--primary);border:none;border-radius:var(--radius-full);color:var(--text);flex:1 1;font-size:14px;font-weight:600;padding:12px 20px;transition:background .2s}.confirm-dialog__cancel:hover{background:#e0edbc}.confirm-dialog__confirm{background:var(--danger);border:none;border-radius:var(--radius-full);color:#fff;flex:1 1;font-size:14px;font-weight:600;padding:12px 20px;transition:background .2s}.confirm-dialog__confirm:hover{background:#9e3320}.tutorial-overlay{align-items:flex-end;animation:tutorialFadeIn .22s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#3d2b1f8c;display:flex;inset:0;justify-content:center;padding:0 16px calc(var(--nav-height) + 16px);position:fixed;z-index:400}@keyframes tutorialFadeIn{0%{opacity:0}to{opacity:1}}.tutorial-card{animation:tutorialSlideUp .25s cubic-bezier(.34,1.56,.64,1);background:var(--bg);border-radius:var(--radius-lg) var(--radius-lg) var(--radius) var(--radius);box-shadow:0 -4px 40px #3d2b1f2e;max-width:480px;padding:28px 24px 24px;width:100%}@keyframes tutorialSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.tutorial-card__header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.tutorial-card__title{color:var(--text);font-family:var(--font-heading);font-size:22px;font-style:italic}.tutorial-card__close{align-items:center;background:var(--primary);border:none;border-radius:50%;color:var(--text-muted);display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;margin-left:12px;transition:background .2s,color .2s;width:32px}.tutorial-card__close:hover{background:#e0edbc;color:var(--text)}.tutorial-card__steps{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.tutorial-card__step{align-items:flex-start;display:flex;gap:12px}.tutorial-card__step-icon{flex-shrink:0;font-size:20px;line-height:1.3;text-align:center;width:28px}.tutorial-card__step-text{color:var(--text);font-size:14px;line-height:1.55}.tutorial-card__step-text strong{color:var(--accent);font-weight:700}.tutorial-card__btn{background:var(--accent);border:none;border-radius:var(--radius-full);color:#fff;font-size:15px;font-weight:600;letter-spacing:.03em;padding:13px;transition:background .2s;width:100%}.tutorial-card__btn:hover{background:var(--accent-hover)}.help-btn{align-items:center;background:var(--primary);border:none;border-radius:50%;box-shadow:var(--shadow);color:var(--accent);display:flex;font-size:15px;font-weight:700;height:30px;justify-content:center;position:absolute;right:16px;top:20px;transition:background .2s,transform .15s;width:30px;z-index:10}.help-btn:hover{background:#e0edbc;transform:scale(1.1)}.gallery__upload-section{display:flex;justify-content:center;padding:20px 24px 12px}.gallery__upload-btn{align-items:center;background:var(--text);border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:#fff;display:flex;font-size:15px;font-weight:500;gap:10px;letter-spacing:.04em;padding:14px 32px;transition:background .2s,opacity .2s}.gallery__upload-btn:hover:not(:disabled){background:#2a1d14}.gallery__upload-btn:disabled{cursor:not-allowed;opacity:.6}.gallery__upload-icon{display:block;flex-shrink:0;height:18px;width:18px}.gallery__col-row{display:flex;gap:6px;justify-content:center;padding:0 24px 12px}.gallery__col-btn{align-items:center;background:var(--primary);border:1.5px solid #0000;border-radius:var(--radius);color:var(--text-muted);display:flex;height:34px;justify-content:center;transition:background .15s,border-color .15s,color .15s;width:34px}.gallery__col-btn:hover{background:#e0edbc;color:var(--text)}.gallery__col-btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.gallery__admin-row{animation:fadeIn .2s ease;display:flex;gap:8px;justify-content:center;margin-top:10px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.gallery__admin-input{background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;outline:none;padding:7px 14px;transition:border-color .2s;width:160px}.gallery__admin-input:focus{border-color:var(--accent)}.gallery__admin-ok{background:var(--accent);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;padding:7px 16px;transition:background .2s}.gallery__admin-ok:hover{background:var(--accent-hover)}.gallery__admin-cancel{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:13px;padding:7px 10px;transition:border-color .2s,color .2s}.gallery__admin-cancel:hover{border-color:var(--text-muted);color:var(--text)}.gallery__admin-active{align-items:center;animation:fadeIn .2s ease;display:flex;gap:10px;justify-content:center;margin-top:10px}.gallery__admin-badge{background:var(--accent-light);border-radius:20px;color:var(--accent)}.gallery__admin-badge,.gallery__admin-logout{font-size:12px;font-weight:600;padding:4px 14px}.gallery__admin-logout{background:none;border:1.5px solid var(--border);border-radius:var(--radius-full);color:var(--text-muted);transition:border-color .2s,color .2s}.gallery__admin-logout:hover{border-color:var(--danger);color:var(--danger)}.gallery__empty{color:var(--text-muted);font-size:15px;padding:60px 24px;text-align:center}.gallery__empty-icon{font-size:48px;margin-bottom:12px}.gallery__grid{grid-gap:4px;display:grid;gap:4px;padding:4px 16px 8px}.gallery__photo-card{aspect-ratio:1;background:var(--primary);border-radius:var(--radius);cursor:pointer;overflow:hidden;position:relative}.gallery__photo-img{display:block;height:100%;object-fit:cover;transition:transform .3s;width:100%}.gallery__photo-card:hover .gallery__photo-img{transform:scale(1.03)}.gallery__photo-overlay{align-items:flex-end;background:linear-gradient(#0000,#0000008c);bottom:0;display:flex;justify-content:space-between;left:0;padding:24px 8px 8px;position:absolute;right:0}.gallery__photo-name{color:#fff;font-size:11px;font-weight:500}.gallery__delete-btn{align-items:center;background:#b83c24e0;border:none;border-radius:6px;color:#fff;display:flex;flex-shrink:0;height:28px;justify-content:center;padding:5px;transition:background .2s;width:28px}.gallery__delete-btn:hover{background:var(--danger)}.lightbox{background:#000000e0;inset:0;justify-content:center;padding:16px;position:fixed;z-index:200}.lightbox,.lightbox__content{align-items:center;display:flex}.lightbox__content{background:var(--card);border-radius:var(--radius-lg);flex-direction:column;max-width:440px;overflow:hidden;position:relative;width:100%}.lightbox__close{align-items:center;background:#0006;border:none;border-radius:50%;color:#fff;display:flex;height:36px;justify-content:center;padding:8px;position:absolute;right:12px;top:12px;width:36px;z-index:1}.lightbox__img{display:block;max-height:70vh;object-fit:contain;width:100%}.lightbox__name{color:var(--text-muted);font-size:14px;padding:10px 16px 4px;text-align:center}.lightbox__actions{padding:12px 16px 20px}.page-header__title{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.schedule__timeline{padding:16px 24px 40px}.schedule__item{display:flex;gap:16px;margin-bottom:0}.schedule__left{align-items:center;display:flex;flex-direction:column;flex-shrink:0;padding-top:4px;width:24px}.schedule__dot{background:var(--accent);border:3px solid var(--bg);border-radius:50%;box-shadow:0 0 0 2px var(--accent);flex-shrink:0;height:13px;width:13px}.schedule__line{background:linear-gradient(var(--accent),var(--border));flex:1 1;margin-top:4px;min-height:40px;opacity:.5;width:2px}.schedule__card{flex:1 1;padding-bottom:32px}.schedule__time{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.1em;margin-bottom:4px}.schedule__title{color:var(--text);font-family:var(--font-heading);font-size:20px;font-style:italic;font-weight:600;margin-bottom:6px}.schedule__desc{color:var(--text-muted);font-size:14px;line-height:1.65}.menu__list{display:flex;flex-direction:column;gap:20px;padding:16px 16px 40px}.menu__section{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.menu__course-header{align-items:center;background:var(--text);display:flex;gap:12px;padding:13px 20px}.menu__course-emoji{font-size:22px;line-height:1}.menu__course-title{color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.menu__item{border-bottom:1px solid #6b8c3e1a;padding:14px 20px}.menu__item:last-child{border-bottom:none}.menu__item-name{color:var(--text);font-family:var(--font-heading);font-size:17px;font-style:italic;font-weight:600;margin-bottom:4px}.menu__item-desc{color:var(--text-muted);font-size:13px;line-height:1.65}.bingo-win-overlay{align-items:center;animation:winFadeIn .2s ease;background:#00000073;cursor:pointer;display:flex;inset:0;justify-content:center;position:fixed;z-index:500}@keyframes winFadeIn{0%{opacity:0}to{opacity:1}}.bingo-win-box{align-items:center;animation:boxBurstIn .45s cubic-bezier(.34,1.56,.64,1) forwards;background:var(--primary);border-radius:var(--radius-lg);box-shadow:0 16px 60px #0000004d;cursor:default;display:flex;flex-direction:column;gap:8px;padding:40px 48px 32px;text-align:center}@keyframes boxBurstIn{0%{opacity:0;transform:scale(.3) rotate(-6deg)}65%{opacity:1;transform:scale(1.06) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.bingo-win-text{animation:textPulse 1.4s ease-in-out .45s infinite;color:var(--accent);font-family:var(--font-heading);font-size:clamp(56px,15vw,96px);font-style:italic;font-weight:700;line-height:1}@keyframes textPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.bingo-win-sub{animation:fadeInDelay .35s ease .35s forwards;color:var(--text);font-size:24px;font-weight:700;opacity:0}.bingo-win-hint{animation:fadeInDelay .35s ease .7s forwards;color:var(--text-muted);font-size:12px;letter-spacing:.04em;margin-top:16px;opacity:0}@keyframes fadeInDelay{to{opacity:1}}.confetti{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:499}.confetti__piece{animation:confettiFall 3s ease-in 0s forwards;animation:confettiFall var(--duration,3s) var(--delay,0s) ease-in forwards;opacity:0;position:absolute;top:-20px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0) rotate(0deg) scaleX(1)}80%{opacity:1}to{opacity:0;transform:translateY(105vh) rotate(540deg) scaleX(-1);transform:translateY(105vh) rotate(var(--spin,540deg)) scaleX(-1)}}.bingo__container{background:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:16px;overflow:hidden}.bingo__header{background:var(--accent);display:grid;grid-template-columns:repeat(5,1fr)}.bingo__letter{align-items:center;color:#fff;display:flex;font-family:var(--font-heading);font-size:22px;font-style:italic;font-weight:700;height:44px;justify-content:center}.bingo__grid{grid-gap:3px;background:#ffffff14;display:grid;gap:3px;grid-template-columns:repeat(4,1fr);padding:3px}.bingo__cell{align-items:center;aspect-ratio:1;background:var(--primary);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:6px;position:relative;transition:transform .15s,opacity .2s}.bingo__cell:hover:not(.bingo__cell--done){transform:scale(.97)}.bingo__cell--done{cursor:default}.bingo__cell--uploading{cursor:wait;opacity:.55}.bingo__cell-img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.bingo__cell-label{background:linear-gradient(#0000,#000000bf);bottom:0;color:#fff;font-size:10px;font-weight:500;left:0;line-height:1.25;padding:12px 5px 5px;position:absolute;right:0;text-align:center}.bingo__cell-label-empty{color:var(--text);font-size:10px;font-weight:700;line-height:1.3;margin-top:4px;text-align:center}.bingo__cell-icon{color:var(--text-muted);height:20px;width:20px}.bingo__cell-uploading-icon{font-size:20px}.bingo__cell-check{background:var(--accent);border-radius:50%;height:18px;right:4px;width:18px;z-index:2}.bingo__cell-check,.bingo__cell-delete{align-items:center;color:#fff;display:flex;justify-content:center;padding:3px;position:absolute;top:4px}.bingo__cell-delete{background:#b83c24d9;border:none;border-radius:50%;height:20px;left:4px;transition:background .2s;width:20px;z-index:3}.bingo__cell-delete:hover{background:var(--danger)}.bingo__footer{align-items:center;border-top:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:10px 16px}.bingo__footer-name{color:var(--primary);font-family:var(--font-heading);font-size:13px;font-style:italic}.bingo__footer-wedding{color:#ffffffb3;font-size:11px}.bingo__download-section{padding:16px 16px 36px;text-align:center}.bingo__download-btn{align-items:center;background:var(--accent);border:none;border-radius:var(--radius-full);box-shadow:0 4px 20px #6b8c3e59;color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:8px;letter-spacing:.05em;padding:14px 32px;transition:background .2s,opacity .2s}.bingo__download-btn:hover:not(:disabled){background:var(--accent-hover)}.bingo__download-btn:disabled{cursor:not-allowed;opacity:.6}.bingo__download-icon{display:block;height:18px;width:18px}
/*# sourceMappingURL=main.4614d875.css.map*/