@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Instrument+Sans:wght@400;500;600;700&display=swap";:root{--ground:#3b2fe0;--ground-deep:#2a1fb8;--ink:#0e0b3d;--paper:#fff;--paper-dim:#f1f0ff;--flash:#ffe94a;--flash-press:#f2d600;--danger:#c62a1a;--text:#fff;--text-strong:#fff;--text-muted:#cfcbff;--primary:var(--flash);--accent:var(--flash);--surface:#ffffff1a;--glass-border:#ffffff3d;--card-bg:var(--paper);--bg:var(--ground);--font-main:"Instrument Sans", system-ui, sans-serif;--font-display:"Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif;--radius-print:3px;--radius-panel:14px;--radius-control:10px}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--ground)}body{font-family:var(--font-main);background:var(--ground);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:1rem;line-height:1.5;overflow-x:hidden}body>*{z-index:1;position:relative}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-strong);font-weight:800;line-height:1.05}a{color:inherit}:focus-visible{outline:3px solid var(--flash);outline-offset:3px}.glass-card{--text:var(--ink);--text-strong:var(--ink);--text-muted:#4b4880;--primary:var(--ink);--surface:#0e0b3d0f;--glass-border:#0e0b3d29;background:var(--paper);color:var(--text);border-radius:var(--radius-panel);border:0}.glass-card :focus-visible{outline-color:var(--ink)}.glass-card h1,.glass-card h2,.glass-card h3{color:var(--ink)}.btn-primary{background:var(--flash);color:var(--ink);border-radius:var(--radius-control);font-family:var(--font-display);letter-spacing:-.005em;cursor:pointer;min-height:48px;box-shadow:0 3px 0 var(--ink);border:0;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-size:1.05rem;font-weight:700;text-decoration:none;transition:transform 80ms,box-shadow 80ms,background .15s;display:inline-flex}.btn-primary:hover{background:var(--flash-press)}.btn-primary:active{box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.glass-card .btn-primary{box-shadow:0 3px 0 var(--ink)}.input-group{margin-bottom:20px}.input-group label{color:var(--text);margin-bottom:6px;font-size:.95rem;font-weight:600;display:block}.input-field{background:var(--paper);border:2px solid var(--glass-border);border-radius:var(--radius-control);width:100%;color:var(--ink);min-height:48px;font-size:1rem;font-family:var(--font-main);outline:none;padding:12px 16px;transition:border-color .15s,box-shadow .15s}.input-field::placeholder{color:#8a86b8}.input-field:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--flash)}.film{--hole:var(--ground);background:var(--ink);border-radius:6px;max-width:460px;padding:18px 8px;position:relative;container-type:inline-size}.glass-card .film{--hole:var(--paper)}.film:before,.film:after,.film-edge:before,.film-edge:after{content:"";left:var(--hole-inset,8px);right:var(--hole-inset,8px);background:var(--hole);height:6px;position:absolute;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='6'%3E%3Crect width='8' height='6' rx='1.5'/%3E%3C/svg%3E") 0 0/14px 6px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='6'%3E%3Crect width='8' height='6' rx='1.5'/%3E%3C/svg%3E") 0 0/14px 6px repeat-x}.film:before,.film-edge:before{top:6px}.film:after,.film-edge:after{bottom:6px}.film-frames{grid-template-columns:repeat(8,1fr);gap:4px;list-style:none;display:grid}.film-frame{aspect-ratio:3/4;color:#ffffff8c;font-family:var(--font-display);font-variant-numeric:tabular-nums;background:#ffffff1a;border-radius:2px;flex-direction:column;justify-content:space-evenly;align-items:center;font-weight:800;line-height:1;display:flex}.film-emoji{filter:grayscale();opacity:.5;font-size:5.2cqw;line-height:1}.film-num{font-size:max(.62rem,3.1cqw)}.film-frame[data-done]{background:var(--flash);color:var(--ink)}.film-frame[data-done] .film-emoji,.film-frame[data-preview] .film-emoji{filter:none;opacity:1}.film-frame[data-preview]{color:#fffc;background:#ffffff29}@media (prefers-reduced-motion:no-preference){.film[data-develop] .film-frame{animation:.5s ease-out both develop;animation-delay:calc(var(--i) * 80ms + .15s)}}@keyframes develop{0%{opacity:0;transform:scaleY(.4)}to{opacity:1;transform:scaleY(1)}}.vf-layer{pointer-events:none;z-index:-1;position:fixed;inset:0;overflow:hidden}.vf{--w:clamp(56px, calc(var(--s) * 1vmin), 260px);--c:clamp(12px, calc(var(--w) * .24), 30px);left:var(--x);top:var(--y);width:var(--w);height:calc(var(--w) * var(--r));animation:vf-drift var(--drift) ease-in-out infinite alternate;will-change:transform;position:absolute}.vf-box{color:#fff3;animation:vf-lock var(--lock) ease-in-out infinite;animation-delay:var(--delay);position:absolute;inset:0}.vf-frame .vf-box{background:linear-gradient(currentColor, currentColor) left top / var(--c) 3px, linear-gradient(currentColor, currentColor) left top / 3px var(--c), linear-gradient(currentColor, currentColor) right top / var(--c) 3px, linear-gradient(currentColor, currentColor) right top / 3px var(--c), linear-gradient(currentColor, currentColor) left bottom / var(--c) 3px, linear-gradient(currentColor, currentColor) left bottom / 3px var(--c), linear-gradient(currentColor, currentColor) right bottom / var(--c) 3px, linear-gradient(currentColor, currentColor) right bottom / 3px var(--c);background-repeat:no-repeat}.vf-ring .vf-box{border:3px solid;border-radius:50%}.vf-ring .vf-box:after{content:"";background:currentColor;border-radius:50%;position:absolute;inset:41%}@keyframes vf-drift{0%{transform:translate(0,0)}to{transform:translate3d(var(--dx), var(--dy), 0)}}@keyframes vf-lock{0%,70%{color:#fff3;transform:scale(1)}78%{color:#ffffff57;transform:scale(1.12)}86%,93%{color:#ffe94ae6;transform:scale(1)}to{color:#fff3;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.vf,.vf-box{animation:none}}.film-edge{--hole:var(--ground);--hole-inset:0px;background:var(--ink);color:#fff;margin-top:56px;padding:30px 0;position:relative}.film-edge-inner{max-width:1200px;font-family:var(--font-display);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 24px;margin:0 auto;padding:0 20px;font-size:1rem;font-weight:600;display:flex}.film-edge a{color:var(--flash);text-underline-offset:5px;padding:10px 0;font-weight:800;text-decoration-thickness:2px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:14px;padding:20px 0;display:grid}.photo-card{border-radius:var(--radius-print);aspect-ratio:4/5;position:relative;overflow:hidden;box-shadow:0 6px 18px #0e0b3d59}.photo-card img,.photo-card video{object-fit:cover;border-radius:1px;top:8px;left:8px;width:calc(100% - 16px)!important;height:calc(100% - 78px)!important;position:absolute!important}.photo-info{background:var(--paper);height:70px;color:var(--ink);padding:8px 10px;font-size:.85rem;line-height:1.25;position:absolute;bottom:0;left:0;right:0;overflow:hidden}@media (width>=720px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:20px}}@media (width>=1040px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=640px){.nav-desktop{display:none!important}.nav-hamburger{display:flex!important}.gallery-grid{gap:10px;padding:12px 0}.photo-info{padding:6px 8px;font-size:.78rem}.auth-container{align-items:flex-start!important;min-height:100svh!important;padding:24px 16px!important}.auth-container .glass-card{padding:24px 20px!important}}
