:root{--ivory: #f1e6d3;--gold: #c9a24b;--ink: #0d0b09;--muted: rgba(241, 230, 211, .55)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ink);color:var(--ivory);font-family:Cormorant Garamond,serif;overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}.screen{position:relative;width:100vw;height:100vh;background:var(--ink);overflow:hidden}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center center;filter:blur(64px) brightness(.5) saturate(1.15);transform:scale(1.2)}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#0000 45%,#0000008c);pointer-events:none;z-index:2}.stage{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;display:flex;align-items:center;justify-content:center;z-index:3}.photo{max-width:94vw;max-height:calc(100vh - 6.5rem);width:auto;height:auto;object-fit:contain;opacity:0;transition:opacity .7s ease;box-shadow:0 0 90px #0000008c;border-radius:2px}.photo.visible{opacity:1}.photo-retry{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.2rem 2rem;background:#0d0b098c;border:1px solid rgba(201,162,75,.45);color:var(--ivory);font-family:Montserrat,sans-serif;font-weight:300;font-size:.78rem;letter-spacing:.12em;cursor:pointer;transition:border-color .3s ease,color .3s ease}.photo-retry span{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}.photo-retry:hover{border-color:var(--gold);color:#fff}.title{position:absolute;top:0;left:0;right:0;text-align:center;padding-top:max(1.3rem,env(safe-area-inset-top));z-index:4;pointer-events:none}.title h1{font-family:Great Vibes,cursive;font-weight:400;font-size:clamp(2.4rem,5.5vw,4rem);margin:0;line-height:1;color:var(--ivory);text-shadow:0 2px 24px rgba(0,0,0,.65)}.title h1 span{color:var(--gold)}.title p{font-family:Montserrat,sans-serif;font-weight:300;font-size:.7rem;letter-spacing:.42em;text-transform:uppercase;margin:.6rem 0 0;color:var(--muted);text-shadow:0 1px 12px rgba(0,0,0,.6)}.counter{position:absolute;bottom:max(1.1rem,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-family:Montserrat,sans-serif;font-weight:300;font-size:.75rem;letter-spacing:.35em;color:var(--muted);z-index:4;pointer-events:none}.zone{position:absolute;top:0;bottom:0;width:50%;border:0;background:transparent;padding:0;cursor:pointer;z-index:5;-webkit-tap-highlight-color:transparent}.zone.prev{left:0}.zone.next{right:0}.zone .chevron{position:absolute;top:50%;transform:translateY(-50%);font-size:3.5rem;line-height:1;color:var(--ivory);opacity:0;transition:opacity .25s ease;pointer-events:none;text-shadow:0 2px 20px rgba(0,0,0,.7)}.zone.prev .chevron{left:1.6rem}.zone.next .chevron{right:1.6rem}.zone:hover .chevron,.zone:focus-visible .chevron{opacity:.9}.spinner{display:block;width:42px;height:42px;border:1px solid rgba(201,162,75,.25);border-top-color:var(--gold);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.loader{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem}.loader-text{font-family:Montserrat,sans-serif;font-weight:300;font-size:.78rem;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);margin:0}.error{display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem}.error-script{font-family:Great Vibes,cursive;font-size:2.6rem;color:var(--gold);margin:0 0 .5rem}.error-msg{font-family:Montserrat,sans-serif;font-weight:300;letter-spacing:.1em;font-size:.85rem;color:var(--muted);margin:0}.retry{margin-top:1.6rem;font-family:Montserrat,sans-serif;font-weight:300;letter-spacing:.3em;text-transform:uppercase;font-size:.72rem;color:var(--ivory);background:transparent;border:1px solid rgba(201,162,75,.6);padding:.7rem 1.6rem;cursor:pointer;transition:background .3s ease,color .3s ease}.retry:hover{background:var(--gold);color:#14100a}
