.frame{background:var(--bg);position:fixed;inset:0;overflow:hidden}.frame.idle{cursor:none}.frame .layer-wrap{opacity:0;transition:opacity .9s;position:absolute;inset:0}.frame .layer-wrap.visible{opacity:1}.frame .backdrop{object-fit:cover;filter:blur(48px)brightness(.45)saturate(1.1);width:110%;height:110%;position:absolute;inset:-5%}.frame .photo{object-fit:contain;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.frame.idle .photo{cursor:none}@media (prefers-reduced-motion:no-preference){.frame .layer-wrap.visible .photo{animation:60s ease-out both ken-burns}}@keyframes ken-burns{0%{transform:scale(1)}to{transform:scale(1.06)}}.frame .loading{place-items:center;display:grid;position:absolute;inset:0}.frame .loading .dots{gap:.55rem;display:flex}.frame .loading .dots i{background:var(--text-dim);border-radius:50%;width:9px;height:9px;animation:1.3s ease-in-out infinite pulse-dot}.frame .loading .dots i:nth-child(2){animation-delay:.18s}.frame .loading .dots i:nth-child(3){animation-delay:.36s}.photo-meta{z-index:5;border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.01em;opacity:.75;pointer-events:none;background:#0a0a0c8c;align-items:center;gap:.5rem;padding:.45rem .95rem;font-size:.82rem;transition:opacity .35s;display:flex;position:fixed;bottom:1.3rem;right:1.4rem}.frame.active .photo-meta{opacity:1}.photo-meta .pause-badge{font-size:.9rem;line-height:1}.frame-toast{z-index:30;border-radius:var(--radius-pill);background:var(--surface-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fecaca;border:1px solid #f8717166;padding:.55rem 1.1rem;font-size:.85rem;animation:.3s both fade-in-up;position:fixed;top:1.2rem;left:50%;transform:translate(-50%)}.frame-empty{background:radial-gradient(ellipse 70% 55% at 50% -10%, #e8b45a21, transparent), var(--bg);place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.frame-empty .card{text-align:center;max-width:22rem;animation:.5s both fade-in-up}.frame-empty h2{letter-spacing:-.01em;font-size:1.45rem;font-weight:620}.frame-empty p{color:var(--text-dim);margin:.7rem 0 1.7rem;line-height:1.55}
.footer-hotzone{z-index:20;height:14vh;position:fixed;bottom:0;left:0;right:0}.footer-menu{background:var(--surface-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:var(--radius-pill);border:1px solid var(--border);box-shadow:var(--shadow);align-items:center;gap:.35rem;padding:.4rem;animation:.25s both fade-in-up;display:flex;position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%)}.footer-menu a,.footer-menu button{border-radius:var(--radius-pill);color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.92rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.footer-menu a:hover,.footer-menu button:hover{background:#ffffff1a}.footer-menu svg{opacity:.75}.footer-menu .sep{background:var(--border);width:1px;height:1.2rem}
.grid-overlay{z-index:10;background:#040405f7;animation:.25s both fade-in;position:fixed;inset:0;overflow-y:auto}.grid-header{z-index:12;pointer-events:none;background:linear-gradient(#040405eb,#040405bf 70%,#0000);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.4rem;display:flex;position:sticky;top:0}.grid-header>*{pointer-events:auto}.grid-header .title{color:var(--text-dim);font-size:.95rem;font-weight:560}.grid-header .title strong{color:var(--text);font-weight:620}.grid-overlay .grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:6px;padding:.4rem 1.4rem 1.4rem;display:grid}.grid-overlay .cell{cursor:pointer;background:var(--surface);outline-offset:2px;border:none;border-radius:10px;padding:0;position:relative;overflow:hidden}.grid-overlay .cell img{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .25s,filter .25s;display:block}.grid-overlay .cell:hover img{filter:brightness(1.08);transform:scale(1.045)}.grid-overlay .cell[aria-current=true]:after{content:"";border:2.5px solid var(--accent);pointer-events:none;border-radius:10px;position:absolute;inset:0}.grid-more{justify-content:center;padding:.9rem 0;display:flex}.grid-more .btn{padding:.55rem 1.3rem;font-size:.88rem}.grid-more .btn:disabled{opacity:.55;cursor:default}.viewer{z-index:15;background:#000;animation:.2s both fade-in;position:fixed;inset:0}.viewer .viewer-backdrop{object-fit:cover;filter:blur(48px)brightness(.45)saturate(1.1);width:110%;height:110%;position:absolute;inset:-5%}.viewer .viewer-photo{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.viewer .viewer-close{z-index:17;position:absolute;top:1rem;right:1rem}.viewer .nav{z-index:16;opacity:0;width:46px;height:46px;transition:opacity .25s;position:absolute;top:50%;transform:translateY(-50%)}.viewer:hover .nav,.viewer .nav:focus-visible{opacity:1}.viewer .nav.prev{left:1rem}.viewer .nav.next{right:1rem}.viewer .nav:disabled{pointer-events:none;opacity:0!important}.viewer .caption{z-index:16;border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);color:var(--text-dim);pointer-events:none;background:#0a0a0c99;padding:.45rem 1rem;font-size:.82rem;position:absolute;bottom:1.2rem;left:50%;transform:translate(-50%)}.grid-overlay .skeleton{aspect-ratio:1;cursor:default;background:linear-gradient(100deg,#ffffff0f 40%,#ffffff21 50%,#ffffff0f 60%) 0 0/200% 100%;border-radius:10px;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}@media (prefers-reduced-motion:reduce){.grid-overlay .skeleton{border-radius:10px;animation:none}.grid-overlay .cell img{transition:none}}
