@charset "UTF-8";.cover .wedding-date{margin-top:2rem;font-size:1.5rem;display:flex;justify-content:center;align-items:center;gap:1rem}.cover .wedding-date .divider{background-color:var(--dark-color);width:1px;height:.7rem}.cover .wedding-day-of-week{font-size:1.2rem;opacity:.7;margin-bottom:1rem}.cover .image-wrapper{width:100%;height:30rem;overflow:hidden;display:flex;align-items:center}.cover .image-wrapper img{width:100%;height:120%;object-fit:cover;will-change:transform}.cover .subtitle{font-size:1rem;letter-spacing:.1rem;color:var(--alt-color);margin-top:1rem}.cover .names{margin-top:.5rem;margin-bottom:.8rem;display:flex;justify-content:center;align-items:center;gap:.7rem}.cover .names .divider{background-color:var(--dark-color);width:1px;height:.7rem}.cover .info{margin-bottom:.3rem;opacity:.7}.invitation .content{margin-top:.8rem;margin-bottom:.8rem;font-size:.9rem}.invitation .name{margin-top:1rem;margin-bottom:1rem;font-size:1.1rem}.invitation .name .relation{font-size:.75rem;opacity:.7}.invitation .name .relation .relation-name{display:inline-block;min-width:2em}.contact-modal{width:22rem}.contact-modal .header .title-group{text-align:center}.contact-modal .header .title-group .title{font-size:1.2rem;color:var(--theme-color);padding:.5rem}.contact-modal .header .title-group .subtitle{font-size:.9rem}.contact-modal .header .title-group{padding-bottom:1rem;border-bottom:1px solid var(--dark-grey-color)}.contact-modal .content{padding:.7rem .7rem 1rem}.contact-modal .content .contact-info{padding:1rem .7rem;display:grid;grid-template-columns:8rem 7rem 1fr;row-gap:.5rem}.contact-modal .content .contact-info .relation{opacity:.7}.contact-modal .content .contact-info .icon{fill:var(--dark-color);margin:0 .5rem;opacity:.7;width:1rem;height:1rem}.contact-modal .content .contact-info .icon.flip{transform:scaleX(-1)}.contact-modal .footer{display:flex;flex-direction:column}button.button{font-family:inherit;background:none;position:relative;z-index:3;font-size:1rem;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}button.button.button-style-1{background-color:var(--white-color);border:solid .05rem var(--alt-color);color:var(--alt-color);border-radius:.3rem;padding:.5rem 1rem}button.button.button-style-1:active{transform:scale(.97);box-shadow:inset 0 1px 3px #0000001a;background-color:var(--alt-bg-color)}button.button.button-style-2{background-color:var(--alt-color);color:var(--white-color);border:none;padding:.5rem 1rem}button.button.button-style-2:active{transform:scale(.97);filter:brightness(.9)}@media print{.bg-effect{display:none}}.bg-effect{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.calendar .calendar-wrapper{display:grid;grid-template-columns:repeat(7,1fr);margin:1rem;border:1px solid var(--light-grey-color)}.calendar .calendar-wrapper>div{aspect-ratio:1;display:flex;justify-content:center;align-items:center}.calendar .calendar-wrapper>div.head{aspect-ratio:auto;background-color:var(--light-grey-color)}.calendar .calendar-wrapper>div.holiday>span{color:var(--red-color)}.calendar .calendar-wrapper>div.wedding-date{position:relative}@keyframes heartbeat{0%,to{transform:rotate(45deg) scale(1)}14%{transform:rotate(45deg) scale(1.1)}28%{transform:rotate(45deg) scale(1)}42%{transform:rotate(45deg) scale(1.05)}56%{transform:rotate(45deg) scale(1)}}.calendar .calendar-wrapper>div.wedding-date>span{z-index:1}.calendar .calendar-wrapper>div.wedding-date>div.heart{width:50%;height:50%;background:var(--theme-bg-color);top:35%;left:25%;position:absolute;transform:rotate(45deg);z-index:0;animation:heartbeat 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.calendar .calendar-wrapper>div.wedding-date>div.heart{animation:none}}.calendar .calendar-wrapper>div.wedding-date>div.heart:before{content:"";width:100%;height:100%;position:absolute;top:-50%;left:0%;border-radius:50%;background:var(--theme-bg-color)}.calendar .calendar-wrapper>div.wedding-date>div.heart:after{content:"";width:100%;height:100%;position:absolute;left:-50%;border-radius:50%;background:var(--theme-bg-color)}.calendar .countdown-wrapper{display:flex;flex-direction:column;align-items:center}.calendar .countdown-wrapper .countdown{display:grid;width:15rem;grid-template-columns:1fr 1rem 1fr 1rem 1fr 1rem 1fr;align-items:center}.calendar .countdown-wrapper .countdown *{margin:0 .1rem}.calendar .countdown-wrapper .countdown .count{opacity:.8;font-weight:700;font-size:1.2rem}.calendar .countdown-wrapper .countdown .flip-digit{overflow:hidden;height:1.5rem}.calendar .countdown-wrapper .countdown .flip-digit .flip-digit-inner{transition:transform .3s cubic-bezier(.4,0,.2,1)}.calendar .countdown-wrapper .countdown .flip-digit .flip-digit-inner.flipping{transform:translateY(-1.5rem)}.calendar .countdown-wrapper .countdown .flip-digit .flip-digit-inner span{display:block;height:1.5rem;line-height:1.5rem;opacity:.8;font-weight:700;font-size:1.2rem;font-variant-numeric:tabular-nums}.calendar .countdown-wrapper .countdown .unit{font-weight:700;font-size:.6rem;opacity:.5}.calendar .countdown-wrapper .message{margin-top:2rem;margin-bottom:1.5rem}.calendar .countdown-wrapper .message .d-day{color:var(--theme-color)}@keyframes moving-right{0%{transform:translate(0)}to{transform:translate(calc(21rem - 100%))}}.gallery .carousel-wrapper{display:flex;flex-direction:column;align-items:center}.gallery .carousel-wrapper .carousel{width:21rem;overflow:hidden;position:relative;z-index:3}.gallery .carousel-wrapper .carousel .carousel-list{display:flex;width:fit-content;justify-content:center}.gallery .carousel-wrapper .carousel .carousel-list.transitioning{transition:.3s ease-out}.gallery .carousel-wrapper .carousel .carousel-list.moving-left{animation-name:moving-right;animation-duration:.3s;animation-fill-mode:forwards;animation-direction:reverse}.gallery .carousel-wrapper .carousel .carousel-list.moving-right{animation-name:moving-right;animation-duration:.3s;animation-fill-mode:forwards}.gallery .carousel-wrapper .carousel .carousel-list .carousel-item{display:flex;justify-content:center;align-items:center;width:21rem;height:30rem;padding-left:.5rem;padding-right:.5rem}.gallery .carousel-wrapper .carousel .carousel-list .carousel-item img{max-width:100%;max-height:100%;width:auto;height:auto}.gallery .carousel-wrapper .carousel .carousel-control{position:absolute;top:0;width:100%;height:100%;display:flex;justify-content:space-between;align-items:center}.gallery .carousel-wrapper .carousel .carousel-control .control{height:100%;width:30%;display:flex;align-items:center}.gallery .carousel-wrapper .carousel .carousel-control .control.left{justify-content:flex-start}.gallery .carousel-wrapper .carousel .carousel-control .control.right{justify-content:flex-end}.gallery .carousel-wrapper .carousel .carousel-control .control .arrow{width:2rem}.gallery .carousel-wrapper .carousel .carousel-control .control .arrow.right{transform:rotate(180deg)}.gallery .carousel-wrapper .carousel-indicator{display:flex;justify-content:center;margin-top:1rem}.gallery .carousel-wrapper .carousel-indicator .indicator{width:1rem;height:1rem;padding:.2rem}.gallery .carousel-wrapper .carousel-indicator .indicator:before{content:"";display:block;width:100%;height:100%;border-radius:50%;background-color:var(--dark-grey-color);transition:transform .2s ease,opacity .2s ease,background-color .2s ease}.gallery .carousel-wrapper .carousel-indicator .indicator{position:relative;z-index:3}.gallery .carousel-wrapper .carousel-indicator .indicator.edge:before{transform:scale(.55);opacity:.5}.gallery .carousel-wrapper .carousel-indicator .indicator.active:before{background-color:var(--dark-color)}.all-photo-modal{width:22rem;max-height:90vh;display:flex;flex-direction:column}.all-photo-modal .header .title{text-align:center;font-size:1.2rem;color:var(--theme-color);padding-bottom:1rem}.all-photo-modal .content{flex:1 1 auto;min-height:0;max-height:none;padding:0 .7rem .7rem}.all-photo-modal .content .photo-list{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:8rem;gap:.5rem}.all-photo-modal .content .photo-list img{width:100%;height:100%;object-fit:cover}.all-photo-modal .footer{flex:0 0 auto;display:flex;flex-direction:column;padding:.5rem .7rem .7rem}.photowall .photo-header{margin-bottom:.5rem}.photowall .photo-header .subtitle{font-size:.9rem;color:var(--alt-color);margin-top:.3rem}.photowall .photo-header .photo-count{font-size:.8rem;color:var(--dark-grey-color);margin-top:.3rem}.photowall .photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.5rem 0}.photowall .photo-grid .photo-item{position:relative;border-radius:.5rem;overflow:hidden;cursor:pointer;aspect-ratio:1;background-color:var(--light-grey-color)}.photowall .photo-grid .photo-item img,.photowall .photo-grid .photo-item video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.photowall .photo-grid .photo-item .video-badge{position:absolute;top:.3rem;left:.3rem;background:#0009;color:var(--white-color);font-size:.6rem;padding:.15rem .3rem;border-radius:.2rem}.photowall .photo-grid .photo-item .photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:.4rem .5rem;background:linear-gradient(transparent,#0009);color:var(--white-color);font-size:.7rem;opacity:0;transition:opacity .3s ease}.photowall .photo-grid .photo-item:active .photo-overlay,.photowall .photo-grid .photo-item:hover .photo-overlay{opacity:1}.photowall .photo-grid .photo-item:active img,.photowall .photo-grid .photo-item:hover img{transform:scale(1.05)}.photowall .upload-unavailable{padding:2rem 1rem;text-align:center;color:var(--alt-color)}.photowall .upload-unavailable .unavailable-icon{font-size:2.5rem;margin-bottom:.8rem}.photowall .upload-unavailable .unavailable-title{font-size:1rem;color:var(--theme-color);margin-bottom:.5rem}.photowall .upload-unavailable .unavailable-message{font-size:.85rem;line-height:1.6;color:var(--alt-color)}.photowall .empty-state{padding:2rem 1rem;text-align:center;color:var(--alt-color);font-size:.9rem}.photowall .empty-state .empty-icon{font-size:2.5rem;margin-bottom:.8rem}.photowall .empty-state .empty-title{font-size:1rem;color:var(--theme-color);margin-bottom:.5rem}.photowall .empty-state .empty-message{font-size:.85rem;line-height:1.6;color:var(--alt-color)}.upload-photowall-modal{width:22rem}.upload-photowall-modal .header .title-group{text-align:center}.upload-photowall-modal .header .title-group .title{font-size:1.2rem;color:var(--theme-color);padding:.5rem}.upload-photowall-modal .header .title-group .subtitle{font-size:.9rem}.upload-photowall-modal .header .title-group{padding-bottom:1rem;border-bottom:1px solid var(--dark-grey-color)}.upload-photowall-modal .content{padding:0 .7rem .7rem}.upload-photowall-modal .content .form{display:flex;flex-direction:column;margin-top:1rem}.upload-photowall-modal .content .form input{padding:.5rem;margin-bottom:.5rem;border:1px solid var(--light-grey-color);border-radius:.3rem;font-family:MapoGoldenPier;font-size:.8rem}.upload-photowall-modal .content .form textarea{padding:.5rem;margin-bottom:.5rem;border:1px solid var(--light-grey-color);border-radius:.3rem;font-family:MapoGoldenPier;font-size:.8rem;resize:vertical;min-height:3rem}.upload-photowall-modal .content .form .upload-area{border:2px dashed var(--dark-grey-color);border-radius:.5rem;padding:1.5rem 1rem;text-align:center;cursor:pointer;margin-bottom:.5rem;transition:border-color .2s ease,background-color .2s ease;background-color:var(--light-color)}.upload-photowall-modal .content .form .upload-area:hover,.upload-photowall-modal .content .form .upload-area:active{border-color:var(--theme-color);background-color:var(--theme-bg-color)}.upload-photowall-modal .content .form .upload-area .upload-icon{font-size:1.5rem;color:var(--dark-grey-color);margin-bottom:.3rem}.upload-photowall-modal .content .form .upload-area .upload-text{font-size:.8rem;color:var(--dark-grey-color)}.upload-photowall-modal .content .form .upload-area .upload-hint{font-size:.7rem;color:var(--dark-grey-color);margin-top:.2rem;opacity:.7}.upload-photowall-modal .content .form .upload-area input[type=file]{display:none}.upload-photowall-modal .content .form .upload-area.drag-over{border-color:var(--theme-color);background-color:var(--theme-bg-color);transform:scale(1.02);box-shadow:0 0 1rem #ff858533}.upload-photowall-modal .content .form .selected-count{font-size:1rem;color:var(--theme-color);margin-bottom:.3rem}.upload-photowall-modal .content .form .clear-files{width:100%;padding:.4rem;margin-bottom:.5rem;background:none;border:1px solid var(--dark-grey-color);border-radius:.3rem;color:var(--dark-grey-color);font-family:MapoGoldenPier;font-size:.8rem;cursor:pointer}.upload-photowall-modal .content .form .clear-files:active{background-color:var(--light-grey-color)}.upload-photowall-modal .content .form .upload-loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.upload-photowall-modal .content .form .upload-loading-overlay .spinner{width:2.5rem;height:2.5rem;border:3px solid var(--light-grey-color);border-top-color:var(--theme-color);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.upload-photowall-modal .content .form .upload-loading-overlay .loading-text{font-size:.95rem;color:var(--theme-color);margin-bottom:.3rem}.upload-photowall-modal .content .form .upload-loading-overlay .loading-hint{font-size:.8rem;color:var(--dark-grey-color)}.upload-photowall-modal .content .form .upload-loading-overlay .progress-bar-container{width:80%;height:.4rem;background-color:var(--light-grey-color);border-radius:.2rem;overflow:hidden;margin:.8rem 0}.upload-photowall-modal .content .form .upload-loading-overlay .progress-bar-container .progress-bar-fill{height:100%;background-color:var(--theme-color);border-radius:.2rem;transition:width .3s ease}.upload-photowall-modal .footer{display:flex;flex-direction:row}.upload-photowall-modal .footer button{width:100%}.detail-photowall-modal{width:24rem}.detail-photowall-modal .header>.title{text-align:center;font-size:1.2rem;color:var(--theme-color);padding-bottom:1rem}.detail-photowall-modal>.content{padding:0 .7rem .7rem}.detail-photowall-modal>.content .detail-image{width:100%;border-radius:.5rem;display:block}.detail-photowall-modal>.content .detail-video{width:100%;border-radius:.5rem;display:block;max-height:20rem}.detail-photowall-modal>.content .detail-info{margin-top:.8rem;text-align:left}.detail-photowall-modal>.content .detail-info .detail-meta{display:flex;align-items:center;margin-bottom:.5rem}.detail-photowall-modal>.content .detail-info .detail-meta .detail-name{font-size:.9rem;margin-right:.5rem}.detail-photowall-modal>.content .detail-info .detail-meta .detail-date{font-size:.8rem;opacity:.5}.detail-photowall-modal>.content .detail-info .detail-caption{font-size:.85rem;word-wrap:break-word;white-space:pre-wrap;color:var(--dark-color)}.detail-photowall-modal .footer{display:flex;flex-direction:column}.location .addr{line-height:2;margin-bottom:1rem}.location .addr .detail{opacity:.6}.location .map-wrapper{height:20rem;position:relative;z-index:3}.location .map-wrapper .lock{position:absolute;top:0;left:0;width:100%;height:100%;z-index:200;display:flex;flex-direction:column;justify-content:flex-end}.location .map-wrapper .lock .lock-message{background-color:var(--dark-color);color:var(--white-color);padding:.5rem;text-align:center;font-size:.8rem}.location .map-wrapper .lock .lock-message svg{display:inline;width:.8rem;height:.8rem;fill:var(--white-color)}.location .map-wrapper .lock-button{position:absolute;top:3%;left:3%;width:10%;height:10%;z-index:201;background-color:var(--white-color);border:1px solid var(--dark-grey-color);border-radius:10%;display:flex;justify-content:center;align-items:center;color:#fff}.location .map-wrapper .lock-button svg{width:80%;height:80%;fill:var(--dark-color)}.location .map-wrapper .lock-button.unlocked{opacity:.5}.location .map-wrapper .map-inner{height:100%;width:100%}.location .navigation{display:flex;background-color:var(--alt-bg-color);border-top:1px solid rgba(0,0,0,.1)}.location .navigation>button{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .3rem;background:none;border:none;border-right:1px solid rgba(0,0,0,.1);cursor:pointer;font-size:.8rem;color:var(--dark-color);transition:background-color .2s}.location .navigation>button:last-child{border-right:none}.location .navigation>button:active{background-color:#0000000d}.location .navigation>button>img{width:1.2rem;height:1.2rem;object-fit:contain}.location .location-info{display:grid;grid-template-columns:2rem 1fr;text-align:left;row-gap:.7rem;margin:1rem 0}.location .location-info>*{align-self:center}.location .location-info .transportation-icon-wrapper{display:flex;justify-content:center}.location .location-info .transportation-icon-wrapper .transportation-icon{width:1.3rem;height:1.3rem;fill:var(--theme-color);opacity:.5}.location .location-info .heading{font-size:1rem;opacity:.7;color:var(--theme-color)}.location .location-info .content{font-size:.9rem;line-height:1.4}.location .location-info .parking-locations{display:flex;flex-direction:column;gap:.5rem}.location .location-info .parking-block .parking-name{font-size:.85rem;font-weight:600;margin-bottom:.25rem}.location .location-info .parking-block .parking-name .parking-note{font-weight:400;opacity:.6;font-size:.8rem}.location .location-info .parking-block .parking-address{font-size:.85rem;display:flex;align-items:center;gap:.4rem}.location .location-info .parking-block .parking-address .copy-btn{background:none;border:1px solid rgba(0,0,0,.15);border-radius:4px;padding:.15rem .3rem;cursor:pointer;display:inline-flex;align-items:center;opacity:.5;transition:opacity .2s;flex-shrink:0}.location .location-info .parking-block .parking-address .copy-btn:active{opacity:1}.location .location-info .parking-block .parking-address .copy-btn.copied{opacity:1;color:var(--theme-color);border-color:var(--theme-color);animation:copy-pop .3s ease}.location .location-info .parking-block .parking-address .copy-btn svg{width:.8rem;height:.8rem}.location .location-info .parking-block .parking-address .map-btn{background:none;border:1px solid rgba(0,0,0,.15);border-radius:4px;padding:.15rem .3rem;cursor:pointer;display:inline-flex;align-items:center;gap:.2rem;opacity:.5;transition:opacity .2s;flex-shrink:0;font-size:.7rem;color:var(--theme-color)}.location .location-info .parking-block .parking-address .map-btn:active{opacity:1}.location .location-info .parking-block .parking-address .map-btn svg{width:.8rem;height:.8rem}.parking-map-modal{width:90vw;max-width:500px}.parking-map-modal .content{padding:0!important}@keyframes copy-pop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.information .info-card{margin-top:1.5rem;margin-bottom:.5rem;padding:2rem 1rem 1rem;position:relative;border:1px solid var(--alt-color);border-radius:.5rem}.information .info-card .label{position:absolute;left:50%;top:-1rem;transform:translate(-50%);padding:.5rem 2rem;border-radius:1rem;background-color:var(--alt-bg-color);border:1px solid var(--alt-color)}.information .content{line-height:1.9;font-size:.9rem}.donation-modal{width:22rem}.donation-modal .header .title{text-align:center;font-size:1.2rem;color:var(--theme-color);padding-bottom:1rem;border-bottom:1px solid var(--dark-grey-color)}.donation-modal .content{padding:0 .7rem .7rem}.donation-modal .content .account-info{margin-top:1rem;margin-bottom:1rem;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.donation-modal .content .account-info .name{margin-bottom:.3rem}.donation-modal .content .account-info .name .relation{opacity:.7}.donation-modal .content .account-info .copy-button{font-size:.8rem;padding:.4rem .8rem}.donation-modal .content .account-info .copy-button.copied{animation:copy-pop .3s ease;color:var(--theme-color)}.donation-modal .footer{display:flex;flex-direction:column}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.attendance-modal{width:min(22rem,100vw - 2rem)}.attendance-modal .header .title{text-align:center;font-size:1.2rem;color:var(--theme-color);padding-bottom:1rem;border-bottom:1px solid var(--dark-grey-color)}.attendance-modal .content{padding:0 1rem 1rem}.attendance-modal .content .form{display:flex;flex-direction:column;margin-top:1rem;gap:1.25rem}.attendance-modal .content .form .input-group{display:flex;flex-direction:column;gap:.35rem}.attendance-modal .content .form .input-group .input{display:flex;flex-direction:column}.attendance-modal .content .form .input-group .select-input{display:flex;flex-direction:row;gap:.4rem}.attendance-modal .content .form .input-group .select-input label{flex:1;cursor:pointer}.attendance-modal .content .form .input-group .select-input label span{padding:.55rem .4rem;display:inline-block;text-align:center;width:100%;background-color:var(--light-grey-color);border-radius:.3rem;font-size:.85rem;transition:border-color .15s ease,background-color .15s ease;border:2px solid var(--light-grey-color);box-sizing:border-box}.attendance-modal .content .form .input-group .select-input label input:checked+span{border-color:var(--alt-color);background-color:var(--alt-bg-color)}.attendance-modal .content .form .input-group .select-input label input:disabled+span{opacity:.6;cursor:not-allowed}.attendance-modal .content .form .input-group .select-input.has-error label span{border-color:#c0392b}.attendance-modal .content .form .input-group .count-stepper{display:flex;flex-direction:row;align-items:center;gap:.4rem}.attendance-modal .content .form .input-group .count-stepper .stepper-btn{width:2.25rem;height:2.25rem;border:1px solid var(--light-grey-color);background-color:var(--alt-bg-color);border-radius:.3rem;font-size:1.1rem;line-height:1;cursor:pointer;transition:background-color .15s ease}.attendance-modal .content .form .input-group .count-stepper .stepper-btn:hover:not(:disabled){background-color:var(--light-grey-color)}.attendance-modal .content .form .input-group .count-stepper .stepper-btn:disabled{opacity:.4;cursor:not-allowed}.attendance-modal .content .form .input-group .count-stepper input[type=number]{flex:1;min-width:0;text-align:center;margin-bottom:0;-moz-appearance:textfield}.attendance-modal .content .form .input-group .count-stepper input[type=number]::-webkit-outer-spin-button,.attendance-modal .content .form .input-group .count-stepper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.attendance-modal .content .form .input-group .count-stepper .count-suffix{font-size:.9rem}.attendance-modal .content .form .input-group .error-text{color:#c0392b;font-size:.75rem;line-height:1.2;margin-top:.1rem}.attendance-modal .content .form .input-group input{padding:.5rem;margin-bottom:0;border:1px solid var(--light-grey-color);border-radius:.3rem;font-family:MapoGoldenPier;font-size:.85rem;background-color:var(--alt-bg-color);transition:border-color .15s ease}.attendance-modal .content .form .input-group input:focus{outline:none;border-color:var(--alt-color)}.attendance-modal .content .form .input-group input[aria-invalid=true]{border-color:#c0392b}.attendance-modal .content .form .input-group input:disabled{opacity:.6;cursor:not-allowed}.attendance-modal .content .form .form-actions{display:flex;flex-direction:row;gap:.5rem;margin-top:.5rem}.attendance-modal .content .form .form-actions button{flex:1}.attendance-modal .content .form .form-actions button .submitting{display:inline-flex;align-items:center;gap:.4rem}.attendance-modal .content .form .form-actions button .submitting .spinner-inline{width:.85rem;height:.85rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-rotate .7s linear infinite}@media (prefers-reduced-motion: reduce){.attendance-modal .content .form .form-actions button .submitting .spinner-inline{animation:none}}.attendance-modal .footer{display:none}.attendance-info-modal{width:min(22rem,100vw - 2rem)}.attendance-info-modal .header .title{text-align:center;font-size:1.2rem;color:var(--theme-color);padding-bottom:1rem;border-bottom:1px solid var(--dark-grey-color)}.attendance-info-modal .content{padding:1.5rem 1rem}.attendance-info-modal .content .info-message{text-align:center;line-height:1.5rem;padding-bottom:1.5rem;border-bottom:1px dotted var(--dark-grey-color)}.attendance-info-modal .content .wedding-info{padding-top:1.5rem;padding-left:2rem;line-height:1.5rem}.attendance-info-modal .content .wedding-info svg{width:.8rem;height:.8rem}.attendance-info-modal .footer{display:flex;flex-direction:row}.attendance-info-modal .footer button{width:100%}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.modal-background{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;animation-name:modal-fade-in;animation-duration:.35s;opacity:1;display:flex;justify-content:center;align-items:center}.modal-background>.modal{background-color:var(--light-color);animation:modal-slide-up .3s cubic-bezier(.4,0,.2,1);opacity:1;border-radius:.75rem}@media (max-width: 500px){.modal-background>.modal{border-radius:.75rem .75rem .3rem .3rem}}.modal-background>.modal .header{padding:.5rem;background-color:var(--light-color);border-radius:.75rem .75rem 0 0;z-index:7}.modal-background>.modal .header .close-button-wrapper{display:flex;justify-content:flex-end}.modal-background>.modal .header .close-button-wrapper .close-button{position:relative;z-index:3;width:1rem;height:1rem;padding:.5rem;cursor:pointer}.modal-background>.modal .header .close-button-wrapper .close-button:before{content:"";width:.1rem;height:1rem;background-color:var(--dark-grey-color);position:absolute;transform:rotate(45deg);top:.5rem;left:calc(50% + .5rem)}.modal-background>.modal .header .close-button-wrapper .close-button:after{content:"";width:.1rem;height:1rem;background-color:var(--dark-grey-color);position:absolute;transform:rotate(135deg);top:.5rem;left:calc(50% + .5rem)}.modal-background>.modal .content{max-height:80vh;overflow:auto}.share-button{display:flex;flex-direction:column;gap:.5rem;align-items:center}.share-button button{position:relative;z-index:3;font-size:.8rem;display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;max-width:16rem;padding:.6rem 1rem;border:1px solid var(--alt-color);border-radius:.5rem;background-color:var(--white-color);color:var(--alt-color);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s ease}.share-button button img{width:.8rem;height:.8rem}.share-button button:active{background-color:var(--alt-bg-color);transform:scale(.97)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}.toast-container{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:1001;display:flex;flex-direction:column;align-items:center;gap:.4rem;pointer-events:none;width:90%;max-width:20rem}.toast{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:.5rem;font-size:.8rem;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 .2rem .8rem #00000026;animation:toast-slide-in .3s cubic-bezier(.4,0,.2,1),toast-slide-out .3s cubic-bezier(.4,0,.2,1) 2.2s forwards;width:100%}.toast .toast-icon{flex-shrink:0;width:1.2rem;height:1.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--white-color)}.toast .toast-message{flex:1;line-height:1.3}.toast.toast-success{background-color:#f0fdf4f2;border:1px solid #bbf7d0}.toast.toast-success .toast-icon{background-color:#22c55e}.toast.toast-success .toast-message{color:#166534}.toast.toast-error{background-color:#fef2f2f2;border:1px solid #fecaca}.toast.toast-error .toast-icon{background-color:#ef4444}.toast.toast-error .toast-message{color:#991b1b}.toast.toast-info{background-color:#ffe7e7f2;border:1px solid var(--theme-color)}.toast.toast-info .toast-icon{background-color:var(--theme-color)}.toast.toast-info .toast-message{color:var(--dark-color)}@keyframes confetti-fall{0%{transform:translateY(-10vh) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(var(--rotation, 720deg));opacity:0}}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:hidden}.confetti-particle{position:absolute;top:0;width:.5rem;height:.5rem;border-radius:.1rem;animation:confetti-fall linear forwards}@media (prefers-reduced-motion: reduce){.confetti-particle{animation:none;display:none}}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(to right,var(--theme-color),var(--alt-color));z-index:101;transition:width .1s linear;pointer-events:none}:root{--theme-color: #ff8585;--theme-bg-color: #ffe7e7;--alt-color: #c28080;--alt-bg-color: #f4f0f0;--dark-color: #282c34;--dark-grey-color: #d2d2d2;--light-grey-color: #eaeaea;--light-color: #f9f9f9;--white-color: #ffffff;--red-color: #ff0000;font-family:MapoGoldenPier;font-size:20px}@media (max-width: 500px){:root{font-size:4vw}}@media print{body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.text-theme-color{color:var(--theme-color)!important}.bg-theme-color{background-color:var(--theme-color)!important}.border-theme-color{border-color:var(--theme-color)!important}.text-theme-bg-color{color:var(--theme-bg-color)!important}.bg-theme-bg-color{background-color:var(--theme-bg-color)!important}.border-theme-bg-color{border-color:var(--theme-bg-color)!important}.text-alt-color{color:var(--alt-color)!important}.bg-alt-color{background-color:var(--alt-color)!important}.border-alt-color{border-color:var(--alt-color)!important}.text-alt-bg-color{color:var(--alt-bg-color)!important}.bg-alt-bg-color{background-color:var(--alt-bg-color)!important}.border-alt-bg-color{border-color:var(--alt-bg-color)!important}.text-dark-color{color:var(--dark-color)!important}.bg-dark-color{background-color:var(--dark-color)!important}.border-dark-color{border-color:var(--dark-color)!important}.text-dark-grey-color{color:var(--dark-grey-color)!important}.bg-dark-grey-color{background-color:var(--dark-grey-color)!important}.border-dark-grey-color{border-color:var(--dark-grey-color)!important}.text-light-grey-color{color:var(--light-grey-color)!important}.bg-light-grey-color{background-color:var(--light-grey-color)!important}.border-light-grey-color{border-color:var(--light-grey-color)!important}.text-light-color{color:var(--light-color)!important}.bg-light-color{background-color:var(--light-color)!important}.border-light-color{border-color:var(--light-color)!important}.text-white-color{color:var(--white-color)!important}.bg-white-color{background-color:var(--white-color)!important}.border-white-color{border-color:var(--white-color)!important}.text-red-color{color:var(--red-color)!important}.bg-red-color{background-color:var(--red-color)!important}.border-red-color{border-color:var(--red-color)!important}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes lazy-fade-in{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.lazy-div{z-index:3}button{font-family:MapoGoldenPier;font-size:1rem;border:none;background-color:transparent;padding:0}body{margin:0;overflow-x:hidden;overflow-y:auto;height:100vh}body.modal-open{overflow-y:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;color:var(--dark-color);-webkit-user-select:none;user-select:none}img{-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none}.background{background-color:var(--theme-bg-color);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-width:100vw}.background .card-view{width:980px;text-align:center;padding-bottom:4rem}@media (max-width: 980px){.background .card-view{width:500px}}@media (max-width: 500px){.background .card-view{width:100vw}}.background .card-view .card-group{position:relative}@media (width > 980px){.background .card-view .card-group{display:flex;flex-direction:row;box-shadow:0 0 10px #0003;margin:10px;background-color:var(--light-color);opacity:0}.background .card-view .card-group.lazy-active{animation-name:lazy-fade-in;animation-duration:1.2s;animation-fill-mode:both;opacity:1}}@media print and (width > 980px){.background .card-view .card-group{opacity:1;animation-name:inherit!important;animation-duration:inherit!important}}.background .card-view .card-group .card{background-color:var(--light-color);padding:1rem;border:1px solid var(--light-grey-color);width:50%;display:flex;flex-direction:column;justify-content:center;position:relative}@media (max-width: 980px){.background .card-view .card-group .card{box-shadow:0 0 .5rem #0003;margin:.5rem;width:inherit;opacity:0}.background .card-view .card-group .card.lazy-active{animation-name:lazy-fade-in;animation-duration:1.2s;animation-delay:var(--lazy-delay, 0s);animation-fill-mode:both;opacity:1}}@media print and (max-width: 980px){.background .card-view .card-group .card{opacity:1;animation-name:inherit!important;animation-duration:inherit!important}}.background .card-view .footer{position:relative;background-color:var(--light-color);box-shadow:0 0 .5rem #0003;margin:.5rem;padding:1rem;opacity:0}.background .card-view .footer.lazy-active{animation-name:lazy-fade-in;animation-duration:1.2s;animation-delay:var(--lazy-delay, 0s);animation-fill-mode:both;opacity:1}@media print{.background .card-view .footer{opacity:1;animation-name:inherit!important;animation-duration:inherit!important}}@media (max-width: 980px){.background .card-view .card+.card{position:relative}.background .card-view .card+.card:before{content:"";display:block;width:3rem;height:1px;background:var(--theme-color);margin:0 auto;position:absolute;top:-.25rem;left:50%;transform:translate(-50%);opacity:.3}}h2{font-size:1.5rem;color:var(--theme-color);font-weight:400}h2.english{font-family:Allura}div.break{height:1rem}.back-to-top{position:fixed;bottom:4rem;right:1rem;width:2.75rem;height:2.75rem;border-radius:50%;border:none;background-color:#0006;color:#fff;font-size:1.2rem;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease,background-color .3s ease}.back-to-top:hover{background-color:#0009}.back-to-top:active{transform:scale(.95)}.floating-nav{position:fixed;bottom:0;left:0;right:0;z-index:99;transform:translateY(100%);opacity:0;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1)}.floating-nav.visible{transform:translateY(0);opacity:1}.floating-nav .nav-container{display:flex;justify-content:space-around;align-items:center;padding:.6rem .5rem;background:#fffffff2;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border-top:1px solid rgba(0,0,0,.08);box-shadow:0 -.25rem 1rem #0000000d}@media (max-width: 500px){.floating-nav .nav-container{padding:.5rem .3rem}}.floating-nav .nav-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:.25rem;background:none;border:none;cursor:pointer;padding:.4rem .6rem;transition:transform .2s cubic-bezier(.4,0,.2,1)}@media (max-width: 500px){.floating-nav .nav-item{padding:.3rem .4rem}}.floating-nav .nav-item:active{transform:scale(.95)}.floating-nav .nav-item .nav-label{font-family:MapoGoldenPier,sans-serif;font-size:.7rem;color:#999;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}@media (max-width: 500px){.floating-nav .nav-item .nav-label{font-size:.65rem}}.floating-nav .nav-item .nav-indicator{width:.25rem;height:.25rem;border-radius:50%;background:transparent;transition:all .3s cubic-bezier(.4,0,.2,1)}.floating-nav .nav-item.active .nav-label{color:var(--theme-color);font-weight:700;transform:scale(1.05)}.floating-nav .nav-item.active .nav-indicator{background:var(--theme-color);box-shadow:0 0 .5rem var(--theme-color)}.floating-nav .nav-item:hover:not(.active) .nav-label{color:var(--alt-color);transform:translateY(-.1rem)}@media print{.floating-nav{display:none}}.intro{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;transition:opacity .8s ease;overflow:hidden}.intro.fadeout{opacity:0;pointer-events:none}.intro .intro-bg{position:absolute;inset:0;z-index:0}.intro .intro-bg img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(1.12) saturate(1.05)}.intro .intro-bg:after{content:"";position:absolute;inset:0;background:#00000026}.intro .intro-content{text-align:center;position:relative;z-index:1}.intro .intro-names{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.intro .intro-names .name{font-size:2rem;font-weight:300;color:#fff;opacity:0;animation:none;text-shadow:0 .125rem .25rem rgba(0,0,0,.3);will-change:opacity,transform}.intro .intro-names .name.groom{animation-delay:.3s}.intro .intro-names .name.bride{animation-delay:.9s}.intro .intro-names .heart{font-size:1.5rem;color:#ff8585;opacity:0;animation:none;animation-delay:.6s;text-shadow:0 .125rem .25rem rgba(0,0,0,.3);will-change:opacity,transform}.intro .intro-message{font-size:1.2rem;font-weight:300;letter-spacing:.3rem;opacity:0;animation:none;animation-delay:1.5s;color:#ffffffe6;text-shadow:0 .125rem .25rem rgba(0,0,0,.3);will-change:opacity,transform}.intro .intro-enter{margin-top:3rem;padding:1rem 2rem;white-space:nowrap;font-size:1.3rem;font-weight:300;color:#fff;background-color:#ffffff26;-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);border:.0625rem solid rgba(255,255,255,.5);border-radius:.5rem;cursor:pointer;opacity:0;animation:none;transition:all .3s ease;will-change:opacity,transform;display:inline-flex;align-items:center;gap:.6rem}.intro .intro-enter .envelope-icon{width:1.8rem;height:1.35rem}.intro .intro-enter:hover{background-color:#ffffff40;border-color:#fff;transform:translateY(-.125rem)}.intro .intro-enter:active{transform:translateY(0)}.intro.waiting .intro-content{position:absolute;top:66%;left:50%;transform:translate(-50%,-50%)}.intro.waiting .intro-enter{animation:fadeSlideUp .8s ease forwards;animation-delay:.3s}.intro.animating .intro-content{transform:translateY(-4rem)}.intro.animating .intro-names .name{animation:fadeSlideUp .8s ease forwards}.intro.animating .intro-names .name.groom{animation-delay:.3s}.intro.animating .intro-names .name.bride{animation-delay:.9s}.intro.animating .intro-names .heart{animation:fadeSlideUp .6s ease forwards;animation-delay:.6s}.intro.animating .intro-message{animation:fadeSlideUp .8s ease forwards;animation-delay:1.5s}.intro.animating .intro-enter{display:none}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.bg-music{position:fixed;top:1rem;right:1rem;width:2.75rem;height:2.75rem;border-radius:50%;background-color:#0006;color:#fff;font-size:1.2rem;border:none;cursor:pointer;z-index:100;transition:opacity .3s ease,background-color .3s ease;display:flex;align-items:center;justify-content:center}.bg-music:hover{background-color:#0009}.bg-music:active{transform:scale(.95)}.bg-music.playing{animation:spin 3s linear infinite;will-change:transform}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fafaf7;padding:1rem}.login-page .role-select{width:100%;max-width:32rem;display:flex;flex-direction:column;gap:1.5rem}.login-page .role-select .role-header{text-align:center;padding:0 .5rem}.login-page .role-select .role-header .login-title{font-size:1.5rem;font-weight:700;color:#222;margin-bottom:.25rem}.login-page .role-select .role-header .login-subtitle{font-size:.875rem;color:#8b6f47;margin-bottom:1.25rem}.login-page .role-select .role-header .role-prompt{font-size:1rem;color:#555}.login-page .role-select .role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.875rem}@media (max-width: 30rem){.login-page .role-select .role-grid{grid-template-columns:1fr}}.login-page .role-select .role-card{background:#fff;border:1px solid #ececec;border-radius:.875rem;padding:1.5rem 1rem;box-shadow:0 .125rem .5rem #0000000a;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.login-page .role-select .role-card:hover{transform:translateY(-2px);box-shadow:0 .375rem 1rem #8b6f472e;border-color:#c9a87a}.login-page .role-select .role-card:active{transform:translateY(0)}.login-page .role-select .role-card .role-emoji{font-size:2.25rem;line-height:1}.login-page .role-select .role-card .role-title{font-size:1.05rem;font-weight:700;color:#222}.login-page .role-select .role-card .role-desc{font-size:.8rem;color:#777;line-height:1.4}.login-page .role-select .role-card .role-go{margin-top:.25rem;font-size:.8rem;font-weight:600;color:#8b6f47}.login-page .role-select .role-card.role-card-parents-park,.login-page .role-select .role-card.role-card-parents-lee{background:#fffaf2;border-color:#f0e4cf}.login-page .role-select .role-card.role-card-admin{background:#f6f8fa;border-color:#e2e6ea}.login-page .login-card{background:#fff;border-radius:.75rem;box-shadow:0 .25rem 1.5rem #00000014;padding:1.75rem 2rem 2.5rem;width:100%;max-width:22rem;position:relative}.login-page .login-card .back-btn{background:none;border:none;color:#8b6f47;font-size:.875rem;cursor:pointer;padding:.25rem .5rem;margin:-.5rem 0 .75rem -.5rem}.login-page .login-card .back-btn:hover:not(:disabled){text-decoration:underline}.login-page .login-card .back-btn:disabled{color:#c4a882;cursor:not-allowed}.login-page .login-card .selected-role{display:flex;flex-direction:column;align-items:center;gap:.375rem;margin-bottom:.5rem}.login-page .login-card .selected-role .role-emoji-lg{font-size:2.5rem;line-height:1}.login-page .login-card .selected-role .role-name{font-size:1.25rem;font-weight:700;color:#222}.login-page .login-card .login-subtitle{font-size:.875rem;color:#8b6f47;text-align:center;margin-bottom:1.5rem}.login-page .login-card .login-form{display:flex;flex-direction:column;gap:1rem}.login-page .login-card .login-form .form-group{display:flex;flex-direction:column;gap:.375rem}.login-page .login-card .login-form .form-group label{font-size:.875rem;font-weight:600;color:#444}.login-page .login-card .login-form .form-group input{padding:.625rem .875rem;border:1px solid #ddd;border-radius:.5rem;font-size:1rem;color:#222;outline:none;transition:border-color .2s}.login-page .login-card .login-form .form-group input:focus{border-color:#8b6f47}.login-page .login-card .login-form .form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.login-page .login-card .login-form .error-message{font-size:.875rem;color:#c0392b;background:#fdf0ee;border-radius:.5rem;padding:.625rem .875rem;text-align:center}.login-page .login-card .login-form .submit-btn{margin-top:.5rem;padding:.75rem;background:#8b6f47;color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.login-page .login-card .login-form .submit-btn:hover:not(:disabled){background:#7a6040}.login-page .login-card .login-form .submit-btn:disabled{background:#c4a882;cursor:not-allowed}.stats-panel{padding:1.5rem 0}.stats-panel .panel-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:#666;font-size:.875rem}.stats-panel .spinner{width:2rem;height:2rem;border:3px solid #e0d5c8;border-top-color:#8b6f47;border-radius:50%;animation:spin .7s linear infinite}.stats-panel .panel-error{color:#c0392b;background:#fdf0ee;border-radius:.5rem;padding:1rem;text-align:center;font-size:.875rem}.stats-panel .section-title{font-size:1rem;font-weight:700;color:#8b6f47;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid #e8ddd0}.stats-panel .section-title+.stats-grid{margin-bottom:2rem}.stats-panel .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:2rem}@media (min-width: 480px){.stats-panel .stats-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 768px){.stats-panel .stats-grid{grid-template-columns:repeat(4,1fr)}}.stats-panel .stat-card{background:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 .125rem .5rem #0000000f;text-align:center}.stats-panel .stat-card.accent-yes{border-top:3px solid #27ae60}.stats-panel .stat-card.accent-undecided{border-top:3px solid #f39c12}.stats-panel .stat-card.accent-no{border-top:3px solid #95a5a6}.stats-panel .stat-card .stat-label{font-size:.75rem;color:#666;margin-bottom:.5rem}.stats-panel .stat-card .stat-value{font-size:1.5rem;font-weight:700;color:#222;line-height:1.2}.stats-panel .stat-card .stat-sub{font-size:.8125rem;color:#8b6f47;margin-top:.25rem}.attendance-panel{padding:1.5rem 0}.attendance-panel .panel-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:#666;font-size:.875rem}.attendance-panel .spinner{width:2rem;height:2rem;border:3px solid #e0d5c8;border-top-color:#8b6f47;border-radius:50%;animation:spin .7s linear infinite}.attendance-panel .panel-error{color:#c0392b;background:#fdf0ee;border-radius:.5rem;padding:1rem;text-align:center;font-size:.875rem}.attendance-panel .panel-header{margin-bottom:1rem}.attendance-panel .panel-header .total-count{font-size:.875rem;color:#666;font-weight:600}.attendance-panel .table-wrapper{display:none;overflow-x:auto}@media (min-width: 640px){.attendance-panel .table-wrapper{display:block}}.attendance-panel .attendance-table{width:100%;border-collapse:collapse;font-size:.875rem}.attendance-panel .attendance-table th,.attendance-panel .attendance-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #f0e8df;white-space:nowrap}.attendance-panel .attendance-table th{font-weight:700;color:#8b6f47;background:#faf5ef}.attendance-panel .attendance-table tr:hover td{background:#fdf9f5}.attendance-panel .attendance-table .empty-row{text-align:center;color:#999;padding:2rem}.attendance-panel .card-list{display:flex;flex-direction:column;gap:.75rem}@media (min-width: 640px){.attendance-panel .card-list{display:none}}.attendance-panel .attendance-card{background:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 .125rem .5rem #0000000f;display:flex;flex-direction:column;gap:.5rem}.attendance-panel .attendance-card .card-row{display:flex;align-items:center;gap:.5rem}.attendance-panel .attendance-card .card-name{font-weight:700;font-size:1rem;color:#222;flex:1}.attendance-panel .attendance-card .card-meta{font-size:.8125rem;color:#666;flex-wrap:wrap}.attendance-panel .attendance-card .card-time{margin-left:auto;color:#999;font-size:.75rem}.attendance-panel .empty-state{text-align:center;color:#999;padding:2rem;font-size:.875rem}.attendance-panel .badge{display:inline-block;padding:.2rem .5rem;border-radius:.375rem;font-size:.75rem;font-weight:600}.attendance-panel .badge.badge-groom{background:#e8f4fd;color:#2980b9}.attendance-panel .badge.badge-bride{background:#fdeef4;color:#c0392b}.attendance-panel .badge.badge-attendance-yes{background:#eafaf1;color:#27ae60}.attendance-panel .badge.badge-attendance-undecided{background:#fef9e7;color:#d68910}.attendance-panel .badge.badge-attendance-no{background:#f2f3f4;color:#7f8c8d}.attendance-panel .delete-btn{padding:.3rem .75rem;background:#fff0ee;color:#c0392b;border:1px solid #f5c6c0;border-radius:.375rem;font-size:.75rem;cursor:pointer;transition:background .2s;align-self:flex-end}.attendance-panel .delete-btn:hover{background:#fde0dc}.photo-gallery-panel{padding:1.5rem 0}.photo-gallery-panel .panel-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:#666;font-size:.875rem}.photo-gallery-panel .spinner{width:2rem;height:2rem;border:3px solid #e0d5c8;border-top-color:#8b6f47;border-radius:50%;animation:spin .7s linear infinite}.photo-gallery-panel .panel-error{color:#c0392b;background:#fdf0ee;border-radius:.5rem;padding:1rem;text-align:center;font-size:.875rem}.photo-gallery-panel .panel-header{margin-bottom:1rem}.photo-gallery-panel .panel-header .total-count{font-size:.875rem;color:#666;font-weight:600}.photo-gallery-panel .empty-state{text-align:center;color:#999;padding:3rem;font-size:.875rem}.photo-gallery-panel .photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media (min-width: 640px){.photo-gallery-panel .photo-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.photo-gallery-panel .photo-grid{grid-template-columns:repeat(4,1fr)}}.photo-gallery-panel .photo-card{background:#fff;border-radius:.75rem;box-shadow:0 .125rem .5rem #00000012;overflow:hidden;display:flex;flex-direction:column}.photo-gallery-panel .photo-card .photo-thumb{width:100%;aspect-ratio:1/1;overflow:hidden;background:#f0e8df}.photo-gallery-panel .photo-card .photo-thumb img,.photo-gallery-panel .photo-card .photo-thumb video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}.photo-gallery-panel .photo-card .photo-thumb:hover img{transform:scale(1.04)}.photo-gallery-panel .photo-card .photo-info{padding:.625rem .75rem .25rem;flex:1}.photo-gallery-panel .photo-card .photo-info .photo-name{font-size:.8125rem;font-weight:600;color:#222;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-gallery-panel .photo-card .photo-info .photo-caption{font-size:.75rem;color:#666;margin-bottom:.2rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.photo-gallery-panel .photo-card .photo-info .photo-time{font-size:.6875rem;color:#aaa}.photo-gallery-panel .photo-card .delete-btn{margin:.5rem .75rem .75rem;padding:.3rem 0;background:#fff0ee;color:#c0392b;border:1px solid #f5c6c0;border-radius:.375rem;font-size:.75rem;cursor:pointer;transition:background .2s}.photo-gallery-panel .photo-card .delete-btn:hover{background:#fde0dc}.photo-gallery-panel .load-more-wrap{display:flex;justify-content:center;margin-top:1.5rem}.photo-gallery-panel .load-more-btn{padding:.75rem 2rem;background:#fff;color:#8b6f47;border:1px solid #c4a882;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s}.photo-gallery-panel .load-more-btn:hover:not(:disabled){background:#faf5ef}.photo-gallery-panel .load-more-btn:disabled{color:#bbb;border-color:#ddd;cursor:not-allowed}.photo-gallery-panel .lightbox-overlay{position:fixed;inset:0;background:#000000e6;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem}.photo-gallery-panel .lightbox-overlay .lightbox-close{position:absolute;top:1rem;right:1rem;background:#ffffff26;color:#fff;border:none;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.125rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.photo-gallery-panel .lightbox-overlay .lightbox-close:hover{background:#ffffff4d}.photo-gallery-panel .lightbox-overlay .lightbox-img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:.5rem}.guest-panel{padding:1.5rem 0}.guest-panel .panel-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:#666;font-size:.875rem}.guest-panel .spinner{width:2rem;height:2rem;border:3px solid #e0d5c8;border-top-color:#8b6f47;border-radius:50%;animation:spin .7s linear infinite}.guest-panel .panel-error{color:#c0392b;background:#fdf0ee;border-radius:.5rem;padding:1rem;text-align:center;font-size:.875rem}.guest-panel .summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1rem}@media (max-width: 28rem){.guest-panel .summary-grid{grid-template-columns:1fr}}.guest-panel .summary-grid .summary-card{background:#fff;border:1px solid #f0e8df;border-radius:.75rem;padding:.75rem 1rem;box-shadow:0 .125rem .4rem #0000000a;display:flex;flex-direction:column;gap:.15rem}.guest-panel .summary-grid .summary-card .summary-label{font-size:.75rem;color:#888;font-weight:600}.guest-panel .summary-grid .summary-card .summary-value{font-size:1.6rem;font-weight:800;color:#2c2117;letter-spacing:-.02em;line-height:1.1}.guest-panel .summary-grid .summary-card .summary-value .unit{font-size:.85rem;font-weight:600;color:#888;margin-left:.15rem}.guest-panel .summary-grid .summary-card.variant-given{background:#f0f9f3;border-color:#d3eddc}.guest-panel .summary-grid .summary-card.variant-given .summary-value{color:#1f7a3e}.guest-panel .summary-grid .summary-card.variant-notGiven{background:#fef6ee;border-color:#f4e2cb}.guest-panel .summary-grid .summary-card.variant-notGiven .summary-value{color:#b87a1f}.guest-panel .panel-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}.guest-panel .panel-toolbar .search-input{flex:1 1 14rem;min-width:10rem;padding:.55rem .875rem;border:1px solid #e0d5c8;border-radius:.5rem;font-size:.9rem}.guest-panel .panel-toolbar .filter-group{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.guest-panel .panel-toolbar .filter-group select{padding:.45rem .6rem;border:1px solid #e0d5c8;border-radius:.5rem;font-size:.8125rem;background:#fff}.guest-panel .panel-toolbar .group-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;background:#faf5ef;border:1px solid #e0d5c8;border-radius:.5rem;font-size:.8125rem;cursor:pointer;-webkit-user-select:none;user-select:none}.guest-panel .panel-toolbar .group-toggle input{margin:0;cursor:pointer}.guest-panel .panel-toolbar .group-toggle:has(input:checked){background:#f0e3d0;border-color:#c9a87a;color:#6f5836;font-weight:600}.guest-panel .panel-toolbar .action-group{display:flex;gap:.4rem;margin-left:auto}.guest-panel .panel-toolbar .btn-primary,.guest-panel .panel-toolbar .btn-secondary{padding:.55rem .95rem;border-radius:.5rem;font-size:.8125rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:background .15s}.guest-panel .panel-toolbar .btn-primary{background:#8b6f47;color:#fff}.guest-panel .panel-toolbar .btn-primary:hover{background:#6f5836}.guest-panel .panel-toolbar .btn-primary:disabled{opacity:.5;cursor:not-allowed}.guest-panel .panel-toolbar .btn-secondary{background:#faf5ef;color:#6f5836;border-color:#e0d5c8}.guest-panel .panel-toolbar .btn-secondary:hover{background:#f0e8df}.guest-panel .add-section{background:#faf5ef;border:1px dashed #e0d5c8;border-radius:.6rem;padding:.5rem .75rem .85rem;margin-bottom:1rem}.guest-panel .add-section .add-mode-tabs{display:flex;gap:.25rem;margin-bottom:.65rem;border-bottom:1px solid #e8d9c2}.guest-panel .add-section .add-mode-tabs .mode-tab{padding:.5rem .9rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:.8125rem;font-weight:600;color:#999;cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}.guest-panel .add-section .add-mode-tabs .mode-tab:hover{color:#6f5836}.guest-panel .add-section .add-mode-tabs .mode-tab.active{color:#6f5836;border-bottom-color:#8b6f47}.guest-panel .add-form input:not([type=checkbox]),.guest-panel .add-form select,.guest-panel .add-form textarea{padding:.5rem .7rem;border:1px solid #e0d5c8;border-radius:.4rem;font-size:.875rem;background:#fff;font-family:inherit}.guest-panel .add-form textarea{resize:vertical;min-height:6rem;line-height:1.5}.guest-panel .add-form .btn-primary{padding:.5rem .95rem;border:none;background:#8b6f47;color:#fff;border-radius:.4rem;font-weight:600;cursor:pointer;transition:background .15s}.guest-panel .add-form .btn-primary:hover:not(:disabled){background:#6f5836}.guest-panel .add-form .btn-primary:disabled{opacity:.55;cursor:not-allowed}.guest-panel .add-form.single{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.45rem;align-items:stretch}.guest-panel .add-form.single .keep-form-toggle{grid-column:1/-1;display:inline-flex;align-items:center;gap:.4rem;font-size:.8125rem;color:#6f5836;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.25rem 0}.guest-panel .add-form.single .keep-form-toggle input{margin:0;cursor:pointer}.guest-panel .add-form.bulk{display:flex;flex-direction:column;gap:.55rem}.guest-panel .add-form.bulk .field{display:flex;flex-direction:column;gap:.25rem;flex:1 1 auto}.guest-panel .add-form.bulk .field span{font-size:.75rem;font-weight:600;color:#8b6f47}.guest-panel .add-form.bulk .field.field-grow{flex:2 1 auto}.guest-panel .add-form.bulk .bulk-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:stretch}.guest-panel .add-form.bulk .bulk-row .field{flex:1 1 8rem}.guest-panel .add-form.bulk .bulk-preview{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.8125rem;padding:.4rem .55rem;background:#fff;border:1px solid #f0e8df;border-radius:.4rem}.guest-panel .add-form.bulk .bulk-preview .preview-empty{color:#999}.guest-panel .add-form.bulk .bulk-preview .preview-count{color:#2c2117}.guest-panel .add-form.bulk .bulk-preview .preview-count b{color:#8b6f47}.guest-panel .add-form.bulk .bulk-preview .preview-dup{color:#c0392b}.guest-panel .add-form.bulk .bulk-submit{align-self:flex-end;padding:.6rem 1.1rem;font-size:.9rem}.guest-panel .group-section{margin-bottom:1.5rem}.guest-panel .group-section .group-header{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .25rem .5rem .5rem;margin-bottom:.5rem;border-bottom:2px solid #e8d9c2}.guest-panel .group-section .group-header .group-name{font-size:1rem;font-weight:700;color:#6f5836}.guest-panel .group-section .group-header .group-count{font-size:.8125rem;color:#999;font-weight:500}.guest-panel .guest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}@media (max-width: 60rem){.guest-panel .guest-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 36rem){.guest-panel .guest-grid{grid-template-columns:1fr}}.guest-panel .guest-card{background:#fff;border:1px solid #f0e8df;border-radius:.75rem;padding:.875rem 1rem;box-shadow:0 .125rem .4rem #0000000d;display:flex;flex-direction:column;gap:.55rem;transition:box-shadow .15s ease,border-color .15s ease}.guest-panel .guest-card:hover{box-shadow:0 .25rem .75rem #8b6f471f;border-color:#e0d5c8}.guest-panel .guest-card:hover .card-edit-btn{opacity:1}.guest-panel .guest-card.busy{opacity:.5;pointer-events:none}.guest-panel .guest-card .card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.guest-panel .guest-card .card-name-block{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;min-width:0}.guest-panel .guest-card .card-name{font-size:1.25rem;font-weight:800;color:#1f1610;letter-spacing:-.01em;line-height:1.2;word-break:keep-all}.guest-panel .guest-card .card-edit-btn{flex-shrink:0;padding:.25rem .6rem;font-size:.75rem;font-weight:600;color:#8b6f47;background:transparent;border:1px solid transparent;border-radius:.35rem;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease}@media (hover: none){.guest-panel .guest-card .card-edit-btn{opacity:1;border-color:#e0d5c8;background:#faf5ef}}.guest-panel .guest-card .card-edit-btn:hover{background:#faf5ef;border-color:#e0d5c8}.guest-panel .guest-card .card-chips{display:flex;gap:.35rem;flex-wrap:wrap}.guest-panel .guest-card .chip{padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.guest-panel .guest-card .chip:disabled{cursor:not-allowed;opacity:.6}.guest-panel .guest-card .chip.chip-given{background:#f3f1ec;color:#999;border-color:#ece6df}.guest-panel .guest-card .chip.chip-given.active{background:#e9f6ee;color:#1f7a3e;border-color:#cfe9d8}.guest-panel .guest-card .card-meta{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap;font-size:.85rem;color:#666}.guest-panel .guest-card .card-meta .relation{color:#8b6f47;font-weight:600}.guest-panel .guest-card .card-meta .dot{color:#c8b9a8}.guest-panel .guest-card .card-meta .phone{color:#555;text-decoration:none}.guest-panel .guest-card .card-meta .phone:hover{text-decoration:underline}.guest-panel .guest-card .card-note{font-size:.8125rem;color:#6b5d4f;background:#faf6f0;border-left:3px solid #d8c5a8;padding:.45rem .6rem;border-radius:0 .35rem .35rem 0;line-height:1.45;word-break:keep-all}.guest-panel .guest-card.editing{border-color:#c9a87a;background:#fffaf2;box-shadow:0 .25rem .75rem #8b6f472e}.guest-panel .guest-card.editing .edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}@media (max-width: 36rem){.guest-panel .guest-card.editing .edit-grid{grid-template-columns:1fr}}.guest-panel .guest-card.editing .edit-grid .field{display:flex;flex-direction:column;gap:.2rem}.guest-panel .guest-card.editing .edit-grid .field span{font-size:.7rem;color:#8b6f47;font-weight:600}.guest-panel .guest-card.editing .edit-grid .field input{padding:.45rem .6rem;border:1px solid #e0d5c8;border-radius:.4rem;font-size:.875rem;background:#fff}.guest-panel .guest-card.editing .edit-grid .field input:focus{outline:none;border-color:#8b6f47}.guest-panel .guest-card.editing .edit-grid .field.field-wide{grid-column:1/-1}.guest-panel .guest-card.editing .edit-actions{display:flex;gap:.4rem;justify-content:flex-end}.guest-panel .badge{display:inline-block;padding:.18rem .5rem;border-radius:.35rem;font-size:.7rem;font-weight:600;flex-shrink:0}.guest-panel .badge.badge-owner-chan{background:#e8f4fd;color:#2980b9}.guest-panel .badge.badge-owner-kyungmin{background:#fdeef4;color:#c0392b}.guest-panel .badge.badge-owner-parents{background:#fdf3e6;color:#b87a1f}.guest-panel .btn-small{padding:.4rem .75rem;font-size:.8125rem;font-weight:600;border-radius:.4rem;cursor:pointer;border:1px solid #e0d5c8;background:#fff;transition:background .15s}.guest-panel .btn-small:hover:not(:disabled){background:#faf5ef}.guest-panel .btn-small:disabled{opacity:.5;cursor:not-allowed}.guest-panel .btn-small.btn-primary{background:#8b6f47;color:#fff;border-color:#8b6f47}.guest-panel .btn-small.btn-primary:hover:not(:disabled){background:#6f5836}.guest-panel .btn-small.btn-danger{color:#c0392b;border-color:#f5c6c0;background:#fff0ee}.guest-panel .btn-small.btn-danger:hover:not(:disabled){background:#fde0dc}.guest-panel .empty-state{text-align:center;color:#999;padding:3rem 1rem;font-size:.95rem;background:#faf6f0;border-radius:.75rem;border:1px dashed #e0d5c8}.admin-dashboard{min-height:100vh;background:#fafaf7;display:flex;flex-direction:column}.admin-dashboard .dashboard-header{background:#fff;border-bottom:1px solid #e8ddd0;position:sticky;top:0;z-index:100;box-shadow:0 .125rem .5rem #0000000f}.admin-dashboard .dashboard-header .header-inner{max-width:64rem;margin:0 auto;padding:0 1rem;height:3.5rem;display:flex;align-items:center;justify-content:space-between}.admin-dashboard .dashboard-header .header-title{font-size:1.125rem;font-weight:700;color:#8b6f47;display:flex;align-items:center;gap:.5rem}.admin-dashboard .dashboard-header .header-title .role-badge{font-size:.75rem;font-weight:600;background:#faf5ef;color:#6f5836;border:1px solid #e0d5c8;padding:.15rem .5rem;border-radius:999px}.admin-dashboard .dashboard-header .logout-btn{padding:.375rem .875rem;background:#fff0ee;color:#c0392b;border:1px solid #f5c6c0;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s}.admin-dashboard .dashboard-header .logout-btn:hover:not(:disabled){background:#fde0dc}.admin-dashboard .dashboard-header .logout-btn:disabled{opacity:.6;cursor:not-allowed}.admin-dashboard .tab-nav{background:#fff;border-bottom:1px solid #e8ddd0}.admin-dashboard .tab-nav .tab-nav-inner{max-width:64rem;margin:0 auto;padding:0 1rem;display:flex;gap:0}.admin-dashboard .tab-nav .tab-btn{padding:.875rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;font-size:.9375rem;font-weight:600;color:#999;cursor:pointer;transition:color .2s,border-color .2s;white-space:nowrap}.admin-dashboard .tab-nav .tab-btn:hover{color:#8b6f47}.admin-dashboard .tab-nav .tab-btn.active{color:#8b6f47;border-bottom-color:#8b6f47}.admin-dashboard .dashboard-main{flex:1}.admin-dashboard .dashboard-main .main-inner{max-width:64rem;margin:0 auto;padding:0 1rem 3rem}.admin-app{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;color:#222;min-height:100vh;background:#fafaf7}.admin-app *,.admin-app *:before,.admin-app *:after{box-sizing:border-box}.admin-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fafaf7}.admin-loading .loading-inner{display:flex;flex-direction:column;align-items:center;gap:1rem;color:#8b6f47;font-size:.9375rem}.admin-loading .spinner{width:2.5rem;height:2.5rem;border:3px solid #e0d5c8;border-top-color:#8b6f47;border-radius:50%;animation:spin .7s linear infinite}.parents-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.parents-login .login-card{width:100%;max-width:22rem;background:#fff;border-radius:1.25rem;box-shadow:0 .5rem 1.5rem #8c6e461f;padding:2.5rem 2rem;text-align:center}.parents-login .login-emoji{font-size:2.5rem;margin-bottom:.75rem}.parents-login .login-title{font-size:1.25rem;font-weight:700;color:#6f5836;margin-bottom:.4rem}.parents-login .login-subtitle{font-size:.95rem;color:#8b6f47;margin-bottom:1.75rem}.parents-login .login-form{display:flex;flex-direction:column;gap:.5rem;text-align:left}.parents-login .login-form label{font-size:.875rem;color:#6f5836;font-weight:600}.parents-login .login-form input{padding:.85rem 1rem;font-size:1rem;border:1.5px solid #e0d5c8;border-radius:.6rem;background:#fdfaf5;transition:border-color .15s,background .15s}.parents-login .login-form input:focus{outline:none;border-color:#8b6f47;background:#fff}.parents-login .login-form .error-message{color:#c0392b;background:#fdf0ee;padding:.6rem .75rem;border-radius:.5rem;font-size:.875rem;text-align:center}.parents-login .login-form .submit-btn{margin-top:.75rem;padding:.95rem 1rem;font-size:1rem;font-weight:700;color:#fff;background:#8b6f47;border:none;border-radius:.6rem;cursor:pointer;transition:background .15s}.parents-login .login-form .submit-btn:hover{background:#6f5836}.parents-login .login-form .submit-btn:disabled{opacity:.6;cursor:not-allowed}.parents-guest-list{max-width:32rem;margin:0 auto;padding:1rem 1rem 4rem}.parents-guest-list .state-loading,.parents-guest-list .state-error{padding:4rem 1rem;text-align:center;color:#8b6f47}.parents-guest-list .state-error{color:#c0392b}.parents-guest-list .page-header{margin-bottom:1rem}.parents-guest-list .page-header .header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.parents-guest-list .page-header .header-title{font-size:1.35rem;font-weight:800;color:#6f5836}.parents-guest-list .page-header .logout-btn{padding:.4rem .75rem;background:transparent;color:#8b6f47;border:1px solid #d8c8b3;border-radius:.5rem;font-size:.8125rem;cursor:pointer}.parents-guest-list .page-header .logout-btn:hover{background:#faf5ef}.parents-guest-list .page-header .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.parents-guest-list .page-header .stats .stat{background:#fff;border-radius:.7rem;padding:.65rem .4rem;text-align:center;box-shadow:0 .125rem .4rem #8c6e460f}.parents-guest-list .page-header .stats .stat .num{font-size:1.4rem;font-weight:800;color:#6f5836;line-height:1.1}.parents-guest-list .page-header .stats .stat .label{font-size:.72rem;color:#999;margin-top:.15rem}.parents-guest-list .page-header .stats .stat.given .num{color:#1f7a3e}.parents-guest-list .page-header .stats .stat.notgiven .num{color:#c0392b}.parents-guest-list .page-header .stats .stat.mobile .num{color:#2980b9}.parents-guest-list .toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.parents-guest-list .toolbar input[type=search],.parents-guest-list .toolbar select{width:100%;padding:.7rem .85rem;font-size:.95rem;border:1.5px solid #e0d5c8;border-radius:.6rem;background:#fff}.parents-guest-list .toolbar input[type=search]:focus,.parents-guest-list .toolbar select:focus{outline:none;border-color:#8b6f47}.parents-guest-list .toolbar .chip-row{display:flex;gap:.4rem}.parents-guest-list .toolbar .chip-row .chip{flex:1;padding:.55rem .4rem;background:#fff;border:1.5px solid #e0d5c8;border-radius:.6rem;font-size:.875rem;color:#6f5836;cursor:pointer;font-weight:600}.parents-guest-list .toolbar .chip-row .chip.active{background:#8b6f47;color:#fff;border-color:#8b6f47}.parents-guest-list .toolbar .actions{display:flex;gap:.4rem}.parents-guest-list .toolbar .actions .btn-primary,.parents-guest-list .toolbar .actions .btn-secondary{flex:1;padding:.7rem .5rem;font-size:.95rem;font-weight:700;border-radius:.6rem;border:1.5px solid;cursor:pointer}.parents-guest-list .toolbar .actions .btn-primary{background:#8b6f47;color:#fff;border-color:#8b6f47}.parents-guest-list .toolbar .actions .btn-primary:disabled{opacity:.6}.parents-guest-list .toolbar .actions .btn-secondary{background:#fff;color:#6f5836;border-color:#e0d5c8}.parents-guest-list .add-form{display:flex;flex-direction:column;gap:.5rem;background:#faf5ef;border:1px dashed #d8c8b3;border-radius:.7rem;padding:.85rem;margin-bottom:1rem}.parents-guest-list .add-form input{padding:.65rem .75rem;border:1.5px solid #e0d5c8;border-radius:.5rem;font-size:.95rem;background:#fff}.parents-guest-list .add-form .btn-primary{padding:.7rem;background:#8b6f47;color:#fff;border:none;border-radius:.5rem;font-weight:700;cursor:pointer}.parents-guest-list .guest-list{display:flex;flex-direction:column;gap:.6rem}.parents-guest-list .guest-item{background:#fff;border-radius:.85rem;padding:.85rem .95rem .7rem;box-shadow:0 .125rem .5rem #8c6e4612;border:1.5px solid transparent;transition:border-color .15s,background .15s;position:relative}.parents-guest-list .guest-item.is-given{background:#f4faf6;border-color:#c8e7d3}.parents-guest-list .guest-item.busy{opacity:.5}.parents-guest-list .guest-item .item-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.55rem}.parents-guest-list .guest-item .item-head .item-idx{font-size:.75rem;color:#999;min-width:1.5rem}.parents-guest-list .guest-item .item-head .item-name{font-size:1.1rem;font-weight:700;color:#2c2520;flex:1}.parents-guest-list .guest-item .item-head .item-relation{font-size:.78rem;color:#6f5836;background:#faf5ef;padding:.2rem .55rem;border-radius:999px;font-weight:600}.parents-guest-list .guest-item .item-toggles{display:flex;gap:.4rem;margin-bottom:.5rem}.parents-guest-list .guest-item .toggle-btn{flex:1;padding:.55rem .4rem;font-size:.875rem;font-weight:600;background:#f5f1ec;color:#8b6f47;border:1.5px solid #e8dfd0;border-radius:.55rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.parents-guest-list .guest-item .toggle-btn:disabled{opacity:.5}.parents-guest-list .guest-item .toggle-btn.on{background:#c8e7d3;border-color:#88c89e;color:#1f7a3e}.parents-guest-list .guest-item .toggle-btn.mobile.on{background:#d4e9f7;border-color:#88b9dd;color:#1c5a85}.parents-guest-list .guest-item .note-row{cursor:pointer;padding:.4rem 0;min-height:1.5rem}.parents-guest-list .guest-item .note-row .note-text{display:block;font-size:.875rem;color:#555;background:#fdfaf5;padding:.4rem .55rem;border-radius:.4rem;line-height:1.45}.parents-guest-list .guest-item .note-row .note-placeholder{font-size:.78rem;color:#b6a896}.parents-guest-list .guest-item .note-edit{display:flex;gap:.3rem;margin:.3rem 0}.parents-guest-list .guest-item .note-edit input{flex:1;padding:.5rem .6rem;border:1.5px solid #e0d5c8;border-radius:.4rem;font-size:.875rem}.parents-guest-list .guest-item .note-edit .btn-mini{padding:0 .7rem;font-size:.78rem;background:#faf5ef;border:1.5px solid #e0d5c8;border-radius:.4rem;cursor:pointer;color:#6f5836;font-weight:600}.parents-guest-list .guest-item .delete-btn{position:absolute;top:.6rem;right:.7rem;padding:.2rem .5rem;font-size:.7rem;background:transparent;color:#c0392b;border:none;cursor:pointer;opacity:.6}.parents-guest-list .guest-item .delete-btn:hover{opacity:1;text-decoration:underline}.parents-guest-list .empty-state{text-align:center;color:#999;padding:2.5rem 1rem;font-size:.95rem}.parents-app{min-height:100vh;background:linear-gradient(180deg,#fdf8f1,#f5ede1);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,맑은 고딕,sans-serif;color:#2c2520}.parents-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fdf8f1}.parents-loading .loading-inner{display:flex;flex-direction:column;align-items:center;gap:1rem;color:#8b6f47;font-size:1rem}.parents-loading .spinner{width:2.5rem;height:2.5rem;border:3px solid #e0d5c8;border-top-color:#8b6f47;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
