.login-form{display:flex;flex-direction:column;gap:.75rem;max-width:280px;margin:0 auto}.login-input{padding:.7rem 1.1rem;border-radius:999px;border:2px solid var(--blush-deep);background:var(--white);font-size:1rem;color:var(--text);transition:border-color .2s,box-shadow .2s}.login-input::placeholder{color:var(--text-soft)}.login-input:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 4px var(--lavender)}.login-error{margin:0;font-size:.85rem;color:#c45c5c}.login-signup-link{margin:0;font-size:.85rem;color:var(--text-soft);text-align:center}.login-signup-link a{color:var(--blush-deep);font-weight:600}.dashboard{padding:1rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}.dashboard-loading{text-align:center;color:var(--text-soft);padding:2rem 0}.dashboard-empty{text-align:center;padding:3rem 1rem;color:var(--text-soft)}.dashboard-empty p{margin:0 0 .5rem}.dashboard-empty-hint{font-size:.9rem;opacity:.8}.dashboard-empty-actions{display:flex;gap:.75rem;justify-content:center;margin-top:1.25rem}.dashboard-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.dashboard-event-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--white);border-radius:16px;box-shadow:0 2px 12px var(--shadow);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}.dashboard-event-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px var(--shadow)}.dashboard-event-title{font-weight:700;font-size:1.05rem}.dashboard-invites{margin-bottom:1.5rem}.dashboard-invites-title{margin:0 0 .75rem;font-size:1rem}.dashboard-invites-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.dashboard-invite-card{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--white);border-radius:12px;box-shadow:0 2px 12px var(--shadow);border-left:4px solid var(--lavender-deep);flex-wrap:wrap;gap:.5rem}.dashboard-invite-info{display:flex;align-items:center;gap:.5rem;min-width:0}.dashboard-invite-event{font-weight:600;font-size:.95rem}.dashboard-invite-role{font-size:.8rem;color:var(--text-soft)}.dashboard-invite-actions{display:flex;gap:.4rem}.dashboard-event-role{font-size:.8rem;color:var(--text-soft);text-transform:capitalize;background:var(--blush);padding:.2rem .6rem;border-radius:999px;white-space:nowrap}@media (max-width: 400px){.dashboard-empty-actions{flex-direction:column;align-items:center}.dashboard-invite-card{flex-direction:column;align-items:flex-start}.dashboard-invite-actions{width:100%}.dashboard-invite-actions .btn{flex:1}}.breadcrumbs{margin-bottom:1rem;font-size:.85rem;min-width:0}.breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem;list-style:none;margin:0;padding:0}.breadcrumb-item{display:inline-flex;align-items:center;gap:.15rem;min-width:0}.breadcrumb-sep{color:var(--text-soft);margin:0 .2rem;flex-shrink:0}.breadcrumb-link{color:var(--text-soft);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.breadcrumb-link:hover{color:var(--text)}.breadcrumb-current{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.event-create{max-width:480px;margin:0 auto;padding:1rem}.event-create-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.event-create-label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;color:var(--text)}.event-create-input{padding:.7rem 1rem;border-radius:12px;border:2px solid var(--blush-deep);background:var(--white);font-size:1rem;color:var(--text);font-family:inherit;transition:border-color .2s,box-shadow .2s}.event-create-input:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 4px var(--lavender)}.event-create-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text);cursor:pointer}.event-create-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--blush-deep);flex-shrink:0}.event-settings{max-width:480px;margin:0 auto;padding:1rem}.event-settings-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.event-settings-success{margin:0;font-size:.85rem;color:#4a9e6a}.event-settings-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--blush)}.event-settings-section h3{margin:0 0 .75rem;font-size:1rem}.event-settings-invite{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.event-settings-invite-url{font-size:.8rem;background:var(--blush);padding:.4rem .7rem;border-radius:8px;word-break:break-all;flex:1;min-width:0}.event-settings-danger{border-top-color:#e8a0a0}.btn-danger{background:#d95050;color:#fff;padding:.7rem 1.25rem;min-height:44px;border-radius:999px;font-weight:700;font-size:.95rem;border:none;cursor:pointer}.btn-danger:hover{background:#c43c3c}.event-members{max-width:480px;margin:0 auto;padding:1rem}.event-members-list{list-style:none;margin:1rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.event-member-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--white);border-radius:12px;box-shadow:0 1px 6px var(--shadow);flex-wrap:wrap;gap:.5rem}.event-member-info{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.event-member-name-row{display:flex;align-items:center;gap:.5rem}.event-member-name{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-member-email{font-size:.8rem;font-weight:400;color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-member-role{font-size:.75rem;color:var(--text-soft);text-transform:capitalize;background:var(--blush);padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.event-member-actions{display:flex;align-items:center;gap:.4rem}.event-member-role-select{font-size:.8rem;padding:.3rem .5rem;border-radius:8px;border:1px solid var(--blush-deep);background:var(--white)}.event-members-invite{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--blush)}.event-members-invite h3{margin:0 0 .75rem;font-size:1rem}.event-members-invite-form{display:flex;gap:.5rem;flex-wrap:wrap}.event-members-role-input{width:auto;flex:0}.btn-small{padding:.4rem .9rem;min-height:36px;font-size:.85rem}@media (max-width: 400px){.event-members-invite-form{flex-direction:column}.event-members-invite-form .event-create-input,.event-members-invite-form .btn,.event-member-actions{width:100%}.event-member-role-select{flex:1}}.join-event{max-width:400px;margin:0 auto;padding:3rem 1rem;text-align:center}.join-event h2{margin:0 0 .75rem}.join-event p{margin:0 0 1rem;color:var(--text-soft)}.join-event-actions{display:flex;gap:.75rem;justify-content:center;margin:1.25rem 0}.join-event-hint{font-size:.85rem;opacity:.8}.event-header{margin-bottom:1.25rem}.event-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.event-header-title{margin:0;font-size:1.5rem}.event-header-desc{margin:.25rem 0 0;font-size:.9rem;color:var(--text-soft)}.event-header-members{display:inline-block;margin-top:.4rem;font-size:.8rem;color:var(--text-soft);background:var(--blush);padding:.15rem .6rem;border-radius:999px}.image-skeleton-wrapper{position:relative;display:block;width:100%;overflow:hidden}.image-skeleton-wrapper--loaded{aspect-ratio:auto}.image-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,var(--cream) 0%,var(--lavender-light, #f0e6ff) 50%,var(--cream) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:inherit;z-index:1}.image-skeleton-wrapper img{display:block;width:100%;height:auto;position:relative;z-index:2}.image-loading{opacity:0;transition:opacity .3s ease-in-out}.image-loaded{opacity:1;transition:opacity .3s ease-in-out}.update-gif-wrap .image-skeleton-wrapper img,.comment-gif-wrap .image-skeleton-wrapper img{max-height:200px;object-fit:contain}.update-form-photo-preview{max-height:150px;object-fit:cover}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev.swiper-button-hidden,.swiper-button-next.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-prev,.swiper-navigation-disabled .swiper-button-next{display:none!important}.swiper-button-prev svg,.swiper-button-next svg{width:100%;height:100%;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal~.swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl .swiper-button-next .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-next .swiper-navigation-icon{transform:rotate(180deg)}.swiper-horizontal.swiper-rtl .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-prev .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}.swiper-vertical .swiper-button-prev .swiper-navigation-icon,.swiper-vertical~.swiper-button-prev .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}.swiper-vertical .swiper-button-next .swiper-navigation-icon,.swiper-vertical~.swiper-button-next .swiper-navigation-icon{transform:rotate(90deg)}.update-card{width:100%;min-width:0;background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 6px 24px var(--shadow);border:3px solid var(--blush);transition:transform .25s ease,box-shadow .25s ease}.update-card:hover{box-shadow:0 12px 32px var(--shadow-strong)}.update-card-header{padding:1.35rem 1.35rem .6rem;background:linear-gradient(135deg,var(--blush) 0%,var(--peach) 60%,var(--lavender) 100%);border-bottom:3px dashed var(--blush-deep)}.update-card-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.update-title{margin:0;font-size:1.25rem;color:var(--text);flex:1;min-width:0}.update-delete-btn{flex-shrink:0;padding:.35rem .6rem;font-size:.8rem;border:1px solid var(--blush-deep);border-radius:var(--radius-sm);background:#ffffffb3;color:var(--text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent}.update-delete-btn:hover:not(:disabled){background:var(--blush-deep);color:var(--white)}.update-delete-btn:disabled{opacity:.7;cursor:not-allowed}.update-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.85rem;color:var(--text-soft);margin-top:0}.update-author{font-weight:600;color:var(--text)}.update-date{font-size:.85rem;color:var(--text-soft)}.update-views-row{position:absolute;bottom:.15rem;right:1.25rem;display:flex;justify-content:flex-end;min-width:0;pointer-events:none}.update-views{display:inline-flex;align-items:center;gap:.25rem;font-size:.85rem;color:var(--text-soft)}.update-views-icon{width:1em;height:1em;font-size:1rem;flex-shrink:0;color:inherit}.update-views-count{font-variant-numeric:tabular-nums}.update-content{padding:1rem 1.25rem 1.25rem;white-space:pre-wrap;line-height:1.5;color:var(--text)}.update-photos-wrap{display:flex;justify-content:center;width:100%;min-width:0}.update-photos-carousel{padding:0 0 1rem;min-width:0}.update-photos-row{display:flex;flex-wrap:wrap;gap:15px;padding:0 0 .5rem}.update-photos-row .update-photo-wrap{width:260px;max-width:42vw;flex-shrink:0}.update-photos-swiper-container{padding:0 0 .5rem}.update-photos-swiper{padding:0 15px;overflow:visible}.update-photos-slide{width:260px;max-width:42vw}.update-photos-controls{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:0 1rem 1rem}.update-photos-pagination{display:flex;align-items:center;justify-content:center;gap:.35rem}.update-photos-dot{width:8px;height:8px;padding:18px;border:none;border-radius:50%;background:var(--lavender);background-clip:content-box;opacity:.4;cursor:pointer;transition:opacity .2s;-webkit-tap-highlight-color:transparent}.update-photos-dot:hover{opacity:.7}.update-photos-dot.active{opacity:1}.update-photos-nav{padding:.25rem;border:none;background:none;color:var(--lavender);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:color .2s,opacity .2s;-webkit-tap-highlight-color:transparent}.update-photos-nav:hover:not(.swiper-button-disabled){color:var(--blush-deep)}.update-photos-nav.swiper-button-disabled{opacity:.3;cursor:not-allowed}.update-photo-wrap{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}.update-photo{display:block;width:100%;height:auto;pointer-events:none;object-fit:contain;border-radius:4px}@media (max-width: 640px){.update-photos-slide{width:75vw;max-width:75vw}.update-photos-wrap--all-visible{padding-left:1rem;padding-right:1rem}.update-photos-wrap--all-visible .update-photos-row .update-photo-wrap{width:100%;max-width:100%}}.update-gif-wrap{display:block;padding:0;border:none;background:none;cursor:pointer;margin:0 1.25rem 1rem;position:relative;-webkit-tap-highlight-color:transparent}.update-gif{display:block;max-width:100%;height:auto;max-height:200px;border-radius:var(--radius-sm);object-fit:contain;pointer-events:none}body[data-lightbox-open] #root{pointer-events:none}body[data-lightbox-open] .update-lightbox-backdrop{pointer-events:auto}.update-lightbox-backdrop{position:fixed;top:0;left:0;width:100vw;min-width:100%;height:100vh;min-height:100%;z-index:1000;background:#000000e6;display:flex;align-items:center;justify-content:center;padding:2rem;cursor:pointer;overflow:hidden;box-sizing:border-box}.update-lightbox-close{position:absolute;top:1rem;right:1rem;width:48px;height:48px;padding:0;border:none;border-radius:50%;background:#fff3;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;-webkit-tap-highlight-color:transparent}.update-lightbox-close:hover{background:#ffffff59}.update-lightbox-img{max-width:min(90vw,1200px);max-height:90vh;width:auto;height:auto;object-fit:contain;cursor:default;border-radius:var(--radius-sm)}.update-lightbox-gallery{display:flex;flex-direction:column;align-items:center;width:100%;max-width:min(95vw,1200px)}.update-lightbox-gallery .update-lightbox-img{max-width:100%;max-height:75vh;width:auto;height:auto;object-fit:contain;display:block}.update-lightbox-controls{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem;flex-shrink:0}.update-lightbox-prev,.update-lightbox-next{width:40px;height:40px;padding:0;border:none;border-radius:50%;background:#fff3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;-webkit-tap-highlight-color:transparent}.update-lightbox-prev:hover,.update-lightbox-next:hover{background:#ffffff59}.update-lightbox-dots{display:flex;align-items:center;gap:.35rem}.update-lightbox-dot{width:8px;height:8px;padding:18px;border:none;border-radius:50%;background:#ffffff80;background-clip:content-box;cursor:pointer;transition:background .2s;-webkit-tap-highlight-color:transparent}.update-lightbox-dot:hover{background:#fffc}.update-lightbox-dot.active{background:#fff}.comment-gif-wrap{display:block;padding:0;border:none;background:none;cursor:pointer;margin-top:.5rem;position:relative;-webkit-tap-highlight-color:transparent}.comment-gif-wrap .comment-gif{pointer-events:none}.update-reactions{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 1.25rem 1rem}.reaction-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.4rem .6rem;min-height:44px;border:2px solid var(--lavender);border-radius:999px;background:var(--cream);font-size:1rem;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;-webkit-tap-highlight-color:transparent}.reaction-btn:hover:not(:disabled){background:var(--lavender);border-color:var(--lavender-deep)}.reaction-btn:disabled{cursor:default}.reaction-btn--mine{background:var(--blush);border-color:var(--blush-deep)}.reaction-emoji{line-height:1}.reaction-count{font-size:.85rem;font-weight:700;color:var(--text)}.update-reactions-views-wrap{position:relative}.update-comments{padding:1.1rem 1.35rem 1.35rem;border-top:3px dashed var(--blush);margin-top:.5rem;background:linear-gradient(180deg,transparent 0%,var(--cream) 100%)}.comments-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 0;margin:0 0 .85rem;min-height:44px;border:none;background:none;font-size:1rem;color:var(--text-soft);font-family:Fredoka,sans-serif;cursor:pointer;text-align:left;transition:color .15s;-webkit-tap-highlight-color:transparent}.comments-toggle:hover{color:var(--text)}.comments-toggle-icon{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid currentColor;opacity:.85;flex-shrink:0;margin-left:.5rem;transition:transform .2s ease}.comments-toggle-icon--down{border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid currentColor;border-bottom:none}.comments-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.comment{background:var(--white);border-radius:var(--radius-sm);padding:.85rem 1.1rem;border:2px solid var(--mint);box-shadow:0 2px 8px var(--shadow);transition:transform .15s ease,box-shadow .15s ease;min-width:0;overflow:hidden}.comment:hover{box-shadow:0 4px 12px var(--shadow)}.comment-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-bottom:.25rem}.comment-author{font-weight:700;color:var(--text)}.comment-time{font-size:.8rem;color:var(--text-soft)}.comment-delete-btn{margin-left:auto;padding:.2rem .45rem;font-size:.75rem;border:1px solid var(--blush-deep);border-radius:var(--radius-sm);background:transparent;color:var(--text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent}.comment-delete-btn:hover:not(:disabled){background:var(--blush-deep);color:var(--white)}.comment-delete-btn:disabled{opacity:.7;cursor:not-allowed}.comment-gif{display:block;max-width:100%;height:auto;max-height:200px;border-radius:var(--radius-sm);margin-top:0;object-fit:contain}.comment-content{margin:.35rem 0 0;font-size:.95rem;line-height:1.45;color:var(--text)}.comment-reply-btn{margin-top:.5rem;padding:.25rem 0;font-size:.85rem;font-weight:600;color:var(--text-soft);background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.comment-reply-btn:hover{color:var(--lavender-deep)}.comment-thread-toggle{margin-top:.5rem;margin-left:.25rem;padding:.2rem 0;font-size:.8rem;font-weight:600;color:var(--text-soft);background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.comment-thread-toggle:hover{color:var(--lavender-deep)}.comment-reply-form{margin-top:.75rem}.comment-children{list-style:none;margin:.75rem 0 0;padding:0 0 0 1rem;border-left:2px solid var(--lavender);display:flex;flex-direction:column;gap:.75rem}.comment--depth-1{margin-left:0}.comment--depth-2{margin-left:.5rem}.comment--depth-3{margin-left:1rem}.comment--depth-1,.comment--depth-2,.comment--depth-3{background:none;border:none;box-shadow:none;padding:.5rem 0 0}.comment--depth-1:hover,.comment--depth-2:hover,.comment--depth-3:hover{box-shadow:none}.comments-new-form{margin-top:1rem;padding-bottom:0;min-width:0;overflow:hidden}.gif-picker{display:flex;flex-direction:column;gap:.5rem;min-width:0;overflow:hidden}.gif-picker-label{font-size:.9rem;color:var(--text-soft)}.gif-picker-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.gif-picker-input{flex:1;min-width:140px;padding:.5rem .85rem;border-radius:var(--radius-sm);border:2px solid var(--lavender);font-size:.9rem;color:var(--text)}.gif-picker-input:focus{outline:none;border-color:var(--lavender-deep)}.gif-picker-btn{flex-shrink:0}.gif-picker-results{display:flex;flex-direction:column;gap:.5rem;max-height:340px;min-width:0;overflow-x:hidden;overflow-y:auto}.gif-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0}.gif-picker-item{position:relative;aspect-ratio:1;padding:0;border:3px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--bg-soft);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;min-width:0}.gif-picker-item:hover{border-color:var(--lavender);transform:scale(1.03);box-shadow:0 4px 12px var(--shadow)}.gif-picker-item-selected{border-color:var(--blush-deep);box-shadow:0 0 0 3px var(--blush);transform:scale(1.02)}.gif-picker-item-selected .gif-picker-check{opacity:1}.gif-picker-item img{width:100%;height:100%;max-width:100%;object-fit:cover;display:block;vertical-align:middle}.gif-picker-check{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:var(--blush-deep);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;opacity:0;transition:opacity .2s ease;pointer-events:none;z-index:1}.gif-picker-more{align-self:flex-start}.gif-picker-error{margin:0;font-size:.85rem;color:#c45c5c}.gif-picker-hint{margin:0;font-size:.85rem;color:var(--text-soft)}.gif-picker-hint code{font-size:.8em;background:var(--bg-soft);padding:.1em .35em;border-radius:3px}.comment-form{display:flex;flex-direction:column;gap:.5rem;min-width:0;overflow:hidden}.comment-form-name{padding:.55rem .85rem;border-radius:var(--radius-sm);border:2px solid var(--lavender);font-size:.95rem;max-width:200px;color:var(--text);transition:border-color .2s,box-shadow .2s}.comment-form-name:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 3px var(--lavender)}.comment-form-content{padding:.55rem .85rem;border-radius:var(--radius-sm);border:2px solid var(--mint);font-size:.95rem;resize:vertical;min-height:60px;color:var(--text);transition:border-color .2s,box-shadow .2s}.comment-form-content:focus{outline:none;border-color:var(--mint-deep);box-shadow:0 0 0 3px var(--mint)}.comment-form-name::placeholder,.comment-form-content::placeholder{color:var(--text-soft)}.comment-form-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.btn-small{padding:.45rem 1rem;font-size:.9rem;align-self:flex-start}.comment-form-error{margin:0;font-size:.85rem;color:#c45c5c}.skeleton{background:linear-gradient(90deg,var(--cream) 0%,var(--lavender-light, #f0e6ff) 50%,var(--cream) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{pointer-events:none}.skeleton-header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.skeleton-title{height:1.5rem;flex:1;max-width:60%}.skeleton-button{height:1.75rem;width:4rem;flex-shrink:0}.skeleton-meta{height:1rem;width:40%;margin-bottom:.5rem}.skeleton-content{height:1rem;width:100%;margin:.75rem 1.25rem}.skeleton-content-short{height:1rem;width:70%;margin:.5rem 1.25rem 1.25rem}.skeleton-comment{pointer-events:none}.skeleton-author{display:inline-block;height:.9rem;width:5rem}.skeleton-time{display:inline-block;height:.8rem;width:4rem}.skeleton-comment-content{height:.9rem;width:85%;margin-top:.5rem}.skeleton-prediction{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;pointer-events:none}.skeleton-icon{width:1.25rem;height:1.25rem;border-radius:50%;flex-shrink:0}.skeleton-prediction-text{height:1rem;flex:1;max-width:20rem}.comments-loading{padding:1rem 0;text-align:center;color:var(--text-soft);font-size:.9rem}.due-date-prediction{background:var(--white);border-radius:var(--radius-lg);padding:1.25rem 1.35rem;margin-bottom:1.5rem;box-shadow:0 6px 24px var(--shadow);border:3px solid var(--lavender);min-width:0}.due-date-prediction-title{margin:0 0 .35rem;font-size:1.2rem;color:var(--text);font-family:Fredoka,sans-serif}.due-date-prediction-subtitle{margin:0 0 1rem;font-size:.95rem;color:var(--text-soft);font-weight:400;line-height:1.4}.due-date-prediction-subtitle .due-date-prediction-ai-icon{margin-right:.25em;vertical-align:-.2em;flex-shrink:0}.due-date-prediction-ai-icon{width:1em;height:1em;color:inherit;opacity:.9}.due-date-prediction-result{margin-top:1rem;padding:1rem 1rem 1.25rem;background:var(--cream);border-radius:var(--radius-sm);border-left:4px solid var(--blush)}.due-date-prediction-result p{margin:0;font-size:1rem;line-height:1.5;color:var(--text);white-space:pre-wrap}.typing-indicator{margin:0 0 .75rem;font-size:.9rem;color:var(--text-soft);display:flex;align-items:center;gap:.4rem}.typing-indicator-dots{display:inline-flex;gap:.2rem}.typing-indicator-dots span{width:4px;height:4px;border-radius:50%;background:currentColor;animation:typing-bounce .6s ease-in-out infinite}.typing-indicator-dots span:nth-child(2){animation-delay:.1s}.typing-indicator-dots span:nth-child(3){animation-delay:.2s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.live-viewers{display:inline-flex;align-items:center;gap:.5rem;margin-left:1rem;padding:.25rem .75rem;background:#22c55e1a;border-radius:1rem;font-size:.875rem;font-weight:600;color:#15803d}.live-dot{width:.5rem;height:.5rem;background:#22c55e;border-radius:50%;position:relative;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.live-dot:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:#22c55e;border-radius:50%;opacity:.3;animation:ping 2s cubic-bezier(0,0,.2,1) infinite}.live-count{line-height:1;-webkit-user-select:none;user-select:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes ping{0%{transform:scale(1);opacity:.3}75%,to{transform:scale(1.5);opacity:0}}@media (max-width: 640px){.live-viewers{font-size:.8125rem;padding:.2rem .6rem}}.updates-feed{margin-bottom:2rem;width:100%}.updates-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.5rem;width:100%}.updates-list li{width:100%;min-width:0}@keyframes card-appear{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.updates-list>li{animation:card-appear .5s ease-out backwards}.updates-list li:nth-child(1){animation-delay:.05s}.updates-list li:nth-child(2){animation-delay:.1s}.updates-list li:nth-child(3){animation-delay:.15s}.updates-list li:nth-child(4){animation-delay:.2s}.updates-list li:nth-child(5){animation-delay:.25s}.updates-list li:nth-child(6){animation-delay:.3s}.updates-list li:nth-child(7){animation-delay:.35s}.updates-list li:nth-child(8){animation-delay:.4s}.updates-list li:nth-child(n+9){animation-delay:.45s}.feed-message{text-align:center;padding:2rem 1rem;color:var(--text-soft);font-size:1rem}.feed-error{color:#c45c5c}.feed-empty{background:linear-gradient(180deg,var(--blush) 0%,var(--lavender) 40%,var(--cream) 100%);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;border:3px dashed var(--blush-deep);box-shadow:0 6px 24px var(--shadow)}.feed-empty .empty-icon{font-size:4rem;display:block;margin-bottom:.75rem;animation:gentle-bob 2s ease-in-out infinite}@keyframes gentle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.feed-empty p{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.feed-empty-hint{margin-top:.5rem!important;font-size:.95rem!important;font-weight:500!important;color:var(--text-soft)!important}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.updates-feed .section-title{font-family:Fredoka,sans-serif;font-size:1.25rem;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em}@media (max-width: 640px){.section-header{flex-wrap:nowrap}}.load-more-btn{display:block;margin:2rem auto 0;padding:.75rem 2rem;font-size:.95rem}.update-form-section{margin-bottom:2rem;width:100%}.update-form-section .update-form{width:100%}.section-title{font-size:1.25rem;margin:0 0 .85rem;color:var(--text);font-family:Fredoka,sans-serif}.update-form{background:var(--white);border-radius:var(--radius-lg);padding:1.35rem;box-shadow:0 8px 28px var(--shadow);border:3px solid var(--blush);transition:box-shadow .2s ease;min-width:0;overflow:hidden}.update-form:focus-within{box-shadow:0 8px 32px var(--shadow-strong)}.update-form-author{margin-bottom:1rem}.update-form-author-label{display:block;font-size:.9rem;color:var(--text-soft);margin-bottom:.5rem}.update-form-author-options{display:flex;gap:.5rem}.update-form-author-btn{padding:.6rem 1.1rem;min-height:44px;border-radius:999px;border:2px solid var(--lavender);background:var(--cream);font-size:.95rem;font-weight:700;color:var(--text);cursor:pointer;transition:transform .15s ease,background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.update-form-author-btn:hover{border-color:var(--lavender-deep);background:var(--lavender);transform:scale(1.05)}.update-form-author-btn.active{border-color:var(--blush-deep);background:var(--blush);color:var(--text);transform:scale(1.05)}.update-form-title{width:100%;padding:.8rem 1.1rem;border-radius:var(--radius-sm);border:2px solid var(--mint);font-size:1rem;margin-bottom:.75rem;color:var(--text);transition:border-color .2s,box-shadow .2s}.update-form-title:focus{outline:none;border-color:var(--mint-deep);box-shadow:0 0 0 4px var(--mint)}.update-form-content{width:100%;padding:.8rem 1.1rem;border-radius:var(--radius-sm);border:2px solid var(--lavender);font-size:1rem;margin-bottom:1rem;resize:vertical;min-height:100px;color:var(--text);transition:border-color .2s,box-shadow .2s}.update-form-content:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 4px var(--lavender)}.update-form-content::placeholder,.update-form-title::placeholder{color:var(--text-soft)}.update-form-photos{margin-bottom:1rem}.update-form-photos-label{display:block;font-size:.9rem;color:var(--text-soft);margin-bottom:.5rem}.update-form-photos-input{font-size:.95rem;color:var(--text)}.update-form-photos-preview{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;min-width:0}.update-form-photo-wrap{position:relative;flex:0 0 auto;width:100px;height:100px;border-radius:var(--radius-sm);overflow:hidden;border:2px solid var(--lavender);background:var(--cream)}.update-form-photo-preview{width:100%;height:100%;object-fit:cover;display:block}.update-form-photo-remove{position:absolute;top:2px;right:2px;width:26px;height:26px;border-radius:50%;border:none;background:var(--blush-deep);color:var(--white);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px #0003}.update-form-photo-remove:hover{background:#b84a5a}.update-form-submit{margin-top:1.25rem}.form-error{margin:.75rem 0 0;font-size:.9rem;color:#c45c5c}.account-settings{max-width:480px;margin:0 auto;padding:1rem}.account-settings-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.account-settings-label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;font-weight:600;color:var(--text)}.account-settings-input{padding:.5rem .75rem;border:2px solid var(--border);border-radius:.5rem;font-size:.95rem;font-family:inherit;background:var(--surface);color:var(--text)}.account-settings-input:focus{outline:none;border-color:var(--blush-deep)}.account-settings-disabled{opacity:.6;cursor:not-allowed}.account-settings-success{color:var(--success, #16a34a);font-size:.9rem;font-weight:600}.toast-container{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column-reverse;gap:.5rem;pointer-events:none;max-width:90vw;width:400px}.toast{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-sm);color:var(--white);font-size:.95rem;box-shadow:0 4px 16px #00000026;pointer-events:auto;animation:toast-slide-up .3s ease-out}.toast--error{background:#c45c5c}.toast--success{background:#4a9e6a}.toast-message{flex:1}.toast-dismiss{background:none;border:none;color:var(--white);font-size:1.25rem;line-height:1;padding:0 .25rem;opacity:.8;cursor:pointer}.toast-dismiss:hover{opacity:1}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.app{min-height:100vh;padding-bottom:4rem;display:flex;flex-direction:column}.app-guest-hint{text-align:center;font-size:.85rem;color:var(--text-soft);opacity:.85;margin:0 auto .5rem;max-width:480px;padding:0 1rem}.app-footer{margin-top:auto;padding:1.5rem 1rem;text-align:center;font-size:.8rem;color:var(--text-soft);opacity:.6;font-weight:500}.header{background:linear-gradient(135deg,var(--blush) 0%,var(--peach) 50%,var(--lavender) 100%);padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left));box-shadow:0 4px 24px var(--shadow);position:sticky;top:0;z-index:10;border-bottom:3px solid var(--blush-deep)}.header-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.logo-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-decoration:none;color:inherit}.logo-wrap:hover{color:inherit;opacity:.9}.logo{margin:0;font-family:Quicksand,sans-serif;font-size:1.65rem;font-weight:600;color:var(--text);line-height:1.2}.logo-img{height:30px;width:auto;display:block}@media (max-width: 480px){.logo{font-size:1.35rem}.logo-img{height:30px}}.logo-tagline{margin:0;font-size:.8rem;font-weight:400;color:var(--text-soft);opacity:.7;font-family:Nunito,sans-serif}.header-actions{display:flex;align-items:center;gap:.75rem}.user-badge{font-size:.85rem;color:var(--text-soft);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.user-badge:hover{text-decoration:underline}@media (min-width: 520px){.user-badge{max-width:none}}.main{width:100%;max-width:960px;margin:0 auto;padding:1.5rem max(.75rem,env(safe-area-inset-right)) max(4rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));box-sizing:border-box}@media (min-width: 640px){.main{padding-left:1.5rem;padding-right:1.5rem}}.signin-page{max-width:400px;margin:0 auto;padding:2rem 0;text-align:center}.signin-page-intro{margin:0 0 .5rem;color:var(--text-soft);font-size:1rem}.signin-page-hint{margin:0 0 1.25rem;color:var(--text-soft);font-size:.9rem;max-width:320px;margin-left:auto;margin-right:auto}.signin-page .login-form{margin:0 auto}.header-actions a.btn{text-decoration:none;color:inherit}.btn{padding:.7rem 1.25rem;min-height:44px;min-width:44px;border-radius:999px;font-weight:700;font-size:.95rem;border:none;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex;align-items:center;justify-content:center}.btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 16px var(--shadow)}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--blush-deep) 0%,var(--lavender-deep) 100%);color:var(--text)}.btn-ghost{background:#ffffffb3;color:var(--text)}.btn-ghost:hover{background:#ffffffe6}:root{--cream: #fff9f5;--blush: #ffd6e0;--blush-deep: #ffb3c6;--mint: #c8e6e0;--mint-deep: #9dd5cb;--lavender: #e5d4ed;--lavender-deep: #d4b8e0;--peach: #ffdfc4;--text: #5c4a4a;--text-soft: #8b7373;--white: #ffffff;--shadow: rgba(92, 74, 74, .08);--shadow-strong: rgba(92, 74, 74, .14);--bg-soft: #f5f0f0;--radius-sm: 20px;--radius-md: 28px;--radius-lg: 36px}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Nunito,sans-serif;background:var(--cream);background-image:radial-gradient(circle at 20% 80%,var(--blush) 0%,transparent 45%),radial-gradient(circle at 80% 20%,var(--lavender) 0%,transparent 40%),radial-gradient(circle at 50% 50%,var(--mint) 0%,transparent 30%);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 50% 50%,var(--blush-deep) .15px,transparent .15px);background-size:24px 24px;opacity:.25;pointer-events:none;z-index:0}#root{min-height:100vh;position:relative;z-index:1}h1,h2,h3{font-family:Fredoka,sans-serif;font-weight:600;letter-spacing:-.02em}button{font-family:Nunito,sans-serif;cursor:pointer}input,textarea{font-family:Nunito,sans-serif}@media (max-width: 640px){:root{--radius-sm: 16px;--radius-lg: 28px}}
