@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Archivo+Black&display=swap";:root{--ink: #eaf1ff;--paper: #0b111b;--sun: #ffbf47;--brick: #ff6b6b;--muted: #9db0c7;--card-bg: rgba(16, 24, 38, .88);--ring: rgba(183, 202, 230, .22)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Space Grotesk,sans-serif;color:var(--ink);background:linear-gradient(130deg,#05070d,#0c1220 40%,#141f34)}.bg{position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 18% 20%,rgba(255,107,107,.2),transparent 44%),radial-gradient(circle at 84% 14%,rgba(255,191,71,.18),transparent 38%),radial-gradient(circle at 72% 82%,rgba(84,135,197,.2),transparent 42%);pointer-events:none}.shell{width:min(100%,1120px);margin:0 auto;padding:clamp(1rem,2vw,2rem);position:relative}.card{background:var(--card-bg);border:1px solid rgba(183,202,230,.18);border-radius:24px;box-shadow:0 18px 48px #02050ca6;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.gate{max-width:540px;margin:10vh auto 0;padding:clamp(1.2rem,2.8vw,2rem)}.kicker{margin:0;text-transform:uppercase;letter-spacing:.16em;color:var(--brick);font-size:.72rem;font-weight:700}h1,h2{margin:.3rem 0 .6rem;font-family:Archivo Black,sans-serif;line-height:1.05}h1{font-size:clamp(2rem,5vw,3.2rem)}h2{font-size:clamp(1.6rem,4vw,2.5rem)}.copy{margin:0;color:var(--muted)}.gate-form{margin-top:1rem;display:grid;gap:.55rem}.access-code-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}.access-code-row input,.access-code-row .view-code-btn{height:44px}label{font-weight:600;font-size:.9rem}input{background:#080e18eb;color:var(--ink);border-radius:12px;border:1px solid var(--ring);padding:.75rem .9rem;font:inherit}input::placeholder{color:#7f94ae}input:focus-visible{outline:2px solid var(--sun);outline-offset:1px}button{border:0;border-radius:12px;padding:.78rem 1rem;font:700 .95rem Space Grotesk,sans-serif;color:#101524;background:linear-gradient(135deg,#ff8b8b,var(--brick));cursor:pointer;transition:transform .15s ease,filter .15s ease}button:hover{transform:translateY(-1px);filter:brightness(1.05)}.view-code-btn{padding:.72rem .82rem;border:1px solid var(--ring);background:#0a101ce6;color:#c8d8f2;font-size:.82rem;line-height:1}.view-code-btn:hover{filter:brightness(1.12)}.message{min-height:1.2rem;margin-top:.8rem;color:var(--brick);font-weight:600}.gallery{margin-top:2rem;padding:clamp(1rem,2.4vw,2rem)}.gallery-loading{display:flex;align-items:center;justify-content:center;gap:.8rem;min-height:120px;color:var(--muted);font-weight:600}.spinner{width:28px;height:28px;border:3px solid rgba(183,202,230,.24);border-top-color:var(--sun);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gallery-head{display:grid;gap:.3rem;margin-bottom:1rem}.photo-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.photo-card{border-radius:8px;border:1px solid rgba(183,202,230,.18);overflow:hidden;background:#131d2f;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:.5rem 1rem}.thumbnail-link{width:100%;display:flex;justify-content:center}.photo-filename{margin:.6rem 0 .15rem;width:100%;text-align:center;font-size:.72rem;line-height:1.15;letter-spacing:.04em;color:#dce7ff9e;padding-bottom:.5rem}.thumbnail-frame{width:100%;max-width:360px;height:150px;display:flex;justify-content:center;align-items:center}.photo-card img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 10px 22px #00000073;display:block}.photo-caption{margin:0;padding:.72rem .8rem .35rem;font-weight:600}.photo-actions{padding:0 .8rem .8rem;display:flex;justify-content:center}.photo-actions a{color:#dce7ff;text-underline-offset:.2rem;font-size:.92rem;font-weight:700}.download-link{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:.68rem 1rem;border-radius:999px;background:linear-gradient(135deg,#1d5bb1,#003ca4);color:#f4f8ff!important;text-decoration:none;border:1px solid rgba(147,185,255,.55);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.download-link:hover,.download-link:focus-visible{box-shadow:0 0 20px #3a7ef65c}.download-link:before{content:"↓";padding-right:.25rem}.hidden{display:none}@media (max-width: 680px){.gate{margin-top:5vh}}
