:root{--bg: #fbf6f3;--ink: #3d2c33;--muted: #7d6870;--rose: #b83b68;--rose-soft: #f6e4ea;--line: #ecdde1;--card-bg: #efe6e3;--header-h: 60px;--gutter: 12px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.serif-title,.brand-name{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-weight:600;letter-spacing:.01em}.app-header{background:#fbf6f3eb;backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px)}.app-header-inner{max-width:1280px;margin:0 auto;height:var(--header-h);padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;min-height:44px;min-width:0}.brand:hover{color:var(--rose)}.brand-mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--rose-soft);color:var(--rose);font-size:18px;flex:none}.brand-name{font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:8px;flex:none}.header-actions .ant-btn{min-height:40px}.user-button{display:inline-flex;align-items:center;min-width:44px;min-height:44px!important}.admin-badge{margin-inline:6px 0}.tab-bar{position:sticky;top:0;z-index:20;background:#fbf6f3f2;backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line)}.tab-bar .ant-tabs{max-width:1280px;margin:0 auto}.tab-bar .ant-tabs-nav{margin:0!important}.tab-bar .ant-tabs-nav:before{border-bottom:none!important}.tab-bar .ant-tabs-tab{min-height:48px;padding:12px 8px}.tab-label{display:inline-flex;align-items:center;gap:6px}.content{max-width:1280px;margin:0 auto;padding:14px var(--gutter) 64px}.admin-filter{display:flex;justify-content:center;margin-bottom:14px}.center-state{min-height:50vh;display:grid;place-items:center;padding:32px 0;text-align:center}.photo-grid{width:100%}.photo-row{position:absolute;top:0;left:0;width:100%;display:flex}.photo-card{position:relative;overflow:hidden;border-radius:10px;background:var(--card-bg);box-shadow:0 1px 2px #3d2c330f;transition:box-shadow .2s ease,transform .2s ease}.photo-open{display:block;width:100%;height:100%;padding:0;margin:0;border:0;background:transparent;cursor:zoom-in}.photo-open:focus-visible{outline:3px solid var(--rose);outline-offset:-3px}.photo-open img{display:block;width:100%;height:100%;object-fit:cover}.photo-fallback{display:grid;place-items:center;width:100%;height:100%;color:#c9a9b4;font-size:28px;background:linear-gradient(135deg,#f4e9ec,#ece2df)}.photo-title{position:absolute;left:0;right:0;bottom:0;padding:24px 100px 8px 10px;font-size:13px;color:#fff;background:linear-gradient(to top,rgba(30,18,24,.55),transparent);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .2s ease}.card-actions,.card-admin{position:absolute;display:flex;gap:4px;opacity:0;transition:opacity .18s ease}.card-actions{right:4px;bottom:4px}.card-admin{right:4px;top:4px}.action-btn.ant-btn{width:44px;height:44px;min-width:44px;border:none;background:#ffffffe6;color:var(--ink);box-shadow:0 1px 4px #0000002e;font-size:18px}.action-btn.ant-btn:hover{background:#fff!important;color:var(--rose)!important}.action-btn.is-on{color:var(--rose)}.card-actions:has(.is-on){opacity:1}.deleted-tag{position:absolute;left:8px;top:8px;margin:0}.photo-card.is-deleted img{opacity:.45;filter:grayscale(.7)}@media(hover:hover){.photo-card:hover{box-shadow:0 6px 18px #3d2c3329}.photo-card:hover .card-actions,.photo-card:hover .card-admin,.photo-card:focus-within .card-actions,.photo-card:focus-within .card-admin,.photo-card:hover .photo-title{opacity:1}}@media(hover:none){.card-actions,.card-admin{opacity:1}}.skeleton-grid{display:grid;gap:8px;margin-top:8px}.skeleton-card{aspect-ratio:3 / 2;border-radius:10px;background:linear-gradient(90deg,#f1e6e3 25%,#f8efed 37%,#f1e6e3 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.sentinel{height:1px}.list-footer{display:flex;justify-content:center;padding:16px 0}.end-divider{color:var(--muted)!important;margin-top:24px!important}.visually-hidden-focusable:not(:focus):not(:focus-visible){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}.lightbox-count{font-size:14px}@media(max-width:575.98px){:root{--header-h: 54px;--gutter: 10px}.brand-name{font-size:21px}.tab-bar .ant-tabs-nav-wrap{justify-content:stretch!important}.tab-bar .ant-tabs-nav-list{flex:1}.tab-bar .ant-tabs-tab{flex:1;justify-content:center;margin:0!important}.card-actions{gap:2px;right:2px;bottom:2px}.action-btn.ant-btn{font-size:16px}}@media(min-width:576px)and (max-width:991.98px){:root{--gutter: 20px}}@media(min-width:992px){:root{--gutter: 24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
