@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f5f5f0;--surface: #ffffff;--text: #1a1a1a;--muted: #8a8a8a;--border: #e0e0e0;--accent: #0a7c7c;--accent-hover: #086565;--radius: 14px;--shadow-soft: 0 1px 4px rgba(0,0,0,.04);--shadow-card: 0 4px 20px rgba(0,0,0,.06)}html{overscroll-behavior:none;-webkit-overflow-scrolling:touch}body{font-family:DM Sans,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none}input,textarea,[contenteditable]{-webkit-user-select:auto;user-select:auto}a{color:var(--accent);text-decoration:none}.page{animation:pageIn .2s ease-out}@keyframes pageIn{0%{opacity:0}to{opacity:1}}.header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;padding-top:calc(.75rem + env(safe-area-inset-top,0px));position:fixed;top:0;left:0;right:0;z-index:100}.header-clear{background:transparent}.header-clear a,.header-clear .btn-ghost{color:#fff}.header-clear .btn-ghost{border-color:#ffffff4d}.header-solid{background:#f5f5f0e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header-logo{font-size:1.35rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.header-nav{display:flex;gap:.75rem;align-items:center}.header-nav a:not(.btn-primary){font-size:.85rem;font-weight:500;color:var(--muted)}.btn-primary{background:var(--accent);color:#fff;border:none;padding:.55rem 1.35rem;border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s,transform .1s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-lg{padding:.8rem 2rem;font-size:1rem}.btn-ghost{background:transparent;border:1px solid var(--border);padding:.5rem 1.2rem;border-radius:10px;font-weight:500;font-size:.9rem;color:var(--text);cursor:pointer;transition:background .15s}.btn-ghost:hover{background:#0000000a}.app-shell{padding-bottom:4.5rem;min-height:100dvh}.app-content{max-width:600px;margin:0 auto;padding:0 1.25rem}.app-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;padding:.4rem 0 .8rem;padding-bottom:calc(.8rem + env(safe-area-inset-bottom,0px));background:#f5f5f0e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--muted);font-size:.68rem;font-weight:500;cursor:pointer;padding:.3rem 1rem;text-decoration:none;transition:color .15s;flex:1}.nav-item.active{color:var(--accent)}.nav-icon{display:flex;align-items:center;justify-content:center}.nav-icon svg{width:1.35rem;height:1.35rem;display:block}.home-tab{padding:1.25rem 0}.home-welcome{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.home-welcome h1{font-size:1.4rem;font-weight:700}.home-quick-actions{display:flex;flex-direction:column;gap:.6rem}.dash{padding:1.25rem 0}.dash-top{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1.25rem}.dash-top h1{font-size:1.6rem;font-weight:700}.dash-count{background:var(--border);color:var(--muted);font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:999px}.dash-empty{text-align:center;padding:3rem 0;color:var(--muted)}.dash-empty-hint{font-size:.85rem;margin-top:.3rem}.dash-list{display:flex;flex-direction:column;gap:.6rem}.dash-card{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;background:var(--surface);padding:1.15rem 1.25rem;border-radius:var(--radius);color:var(--text);border:1px solid var(--border);transition:background .15s}.dash-card:active{background:#00000005}.dash-card h2{font-size:1rem;font-weight:600;margin-bottom:.15rem}.dash-card p{font-size:.82rem;color:var(--muted)}.dash-freeze{display:inline-block;font-size:.68rem;color:var(--accent);font-weight:600;white-space:nowrap;background:#0a7c7c14;padding:.2rem .55rem;border-radius:999px}.about{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:4rem 1.5rem}.about-content{max-width:480px;text-align:center}.about-content h2{font-size:1.6rem;font-weight:600;margin-bottom:1.5rem;letter-spacing:-.02em}.about-content p{font-size:.95rem;line-height:1.65;color:var(--muted);margin-bottom:1.25rem}.about-tagline{font-size:1.05rem;font-weight:500;color:var(--text)!important;margin-top:.5rem}.hero{position:relative;overflow:hidden;height:100vh;display:flex;align-items:center;justify-content:center}.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000004d,#0009)}.hero-content{position:relative;z-index:1;color:#fff;text-align:center;padding:0 1.5rem}.hero h1{font-size:clamp(3rem,12vw,5rem);font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem}.hero-tagline{font-size:1.1rem;color:#fffc;margin-bottom:2rem}.hero-actions{position:absolute;bottom:4rem;left:0;right:0;display:flex;gap:.75rem;justify-content:center;z-index:1}.hero-actions .btn-ghost{border-color:#ffffff4d;color:#fff}.scroll-indicator{position:absolute;bottom:1.5rem;left:0;right:0;display:flex;justify-content:center;z-index:1;pointer-events:none}.scroll-arrow{display:block;width:18px;height:18px;border-right:2px solid rgba(255,255,255,.4);border-bottom:2px solid rgba(255,255,255,.4);transform:rotate(45deg);animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:rotate(45deg) translateY(0);opacity:.4}50%{transform:rotate(45deg) translateY(4px);opacity:1}}.form-error{color:#d1453b;font-size:.82rem;background:#d1453b0f;padding:.5rem .8rem;border-radius:8px}.auth-page{display:flex;justify-content:center;padding:4rem 1rem}.auth-form{width:100%;max-width:380px;background:var(--surface);padding:2rem 1.75rem;border-radius:var(--radius);border:1px solid var(--border)}.auth-form h1{font-size:1.4rem;font-weight:700;margin-bottom:1.25rem}.auth-form label{display:block;font-size:.82rem;font-weight:500;margin-bottom:.85rem;color:var(--muted)}.auth-form input,.auth-form textarea{display:block;width:100%;margin-top:.3rem;padding:.65rem .8rem;border:1px solid var(--border);border-radius:10px;font-size:1rem;font-family:inherit;background:var(--bg);color:var(--text)}.auth-form input:focus,.auth-form textarea:focus{outline:none;border-color:var(--accent)}.auth-form .btn-primary{width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem}.auth-switch{text-align:center;margin-top:1rem;font-size:.82rem;color:var(--muted)}.auth-success{text-align:center;padding-top:4rem}.auth-success h1{font-size:1.4rem;margin-bottom:.5rem}.auth-success p{margin-bottom:1.25rem;color:var(--muted)}.join-confirm{text-align:center}.join-confirm p{color:var(--muted);margin-bottom:1.25rem}.auth-divider{text-align:center;margin:1rem 0;border-top:1px solid var(--border);position:relative}.auth-divider span{background:var(--surface);padding:0 .6rem;color:var(--muted);font-size:.78rem;position:relative;top:-.65rem}.oauth-buttons{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.5rem}.btn-oauth{padding:.6rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.85rem;font-weight:500;cursor:pointer;color:var(--text);transition:background .15s}.btn-oauth:hover{background:#00000008}.event-page{max-width:640px;margin:0 auto;padding:4rem 1.25rem 6rem;min-height:100vh}.event-header{margin-bottom:1.25rem}.event-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.event-header h1{font-size:1.5rem;font-weight:700}.event-header p{font-size:.85rem;color:var(--muted);margin-top:.2rem}.btn-qr{white-space:nowrap;font-size:.82rem}.freeze-hint{display:block;margin-top:.5rem;font-size:.72rem;color:var(--accent);font-weight:500}.event-header-frozen h1:after{content:" 📖"}.frozen-badge{display:inline-block;margin-top:.5rem;font-size:.72rem;font-weight:600;color:#8a6e2b;background:#8a6e2b14;padding:.25rem .65rem;border-radius:999px}.event-tabs{display:flex;gap:.25rem;background:var(--border);padding:.25rem;border-radius:10px;margin-bottom:1.25rem;width:fit-content}.event-tab{border:none;background:transparent;padding:.4rem 1rem;border-radius:8px;font-size:.82rem;font-weight:500;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.event-tab.active{background:var(--surface);color:var(--text)}.event-messages{display:flex;flex-direction:column;gap:.4rem}.msg{background:var(--surface);padding:.7rem .9rem;border-radius:12px;border:1px solid var(--border)}.msg strong{font-size:.75rem;color:var(--accent);font-weight:600}.msg p{margin-top:.1rem;font-size:.9rem}.event-input{position:fixed;bottom:0;left:0;right:0;display:flex;gap:.5rem;padding:.65rem 1rem 1.25rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));background:#f5f5f0eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border)}.event-input input{flex:1;padding:.65rem .9rem;border:1px solid var(--border);border-radius:10px;font-size:.9rem;background:var(--surface);color:var(--text)}.event-input input:focus{outline:none;border-color:var(--accent)}.event-input .btn-primary{border-radius:10px;padding:.65rem 1rem;font-size:.85rem;box-shadow:none}.gallery{padding-bottom:.5rem}.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.1rem;gap:.75rem}.sort-tabs{display:flex;gap:.25rem}.sort-tab{border:none;background:transparent;padding:.35rem .8rem;border-radius:8px;font-size:.8rem;font-weight:500;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.sort-tab.active{background:var(--border);color:var(--text)}.btn-upload{white-space:nowrap;font-size:.82rem}.gallery-empty{text-align:center;padding:3rem 0;color:var(--muted)}.gallery-group{margin-bottom:1.75rem}.gallery-group-label{font-size:.85rem;font-weight:500;color:var(--muted);margin-bottom:.75rem}.polaroid-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.polaroid{background:var(--surface);border-radius:10px;overflow:hidden;border:1px solid var(--border);transition:transform .15s}.polaroid:hover{transform:scale(1.02)}.polaroid img,.polaroid video{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--bg)}.polaroid-caption{display:block;padding:.5rem .6rem .55rem;font-size:.75rem;font-weight:500;color:var(--muted)}.btn-scan{display:flex;align-items:center;justify-content:center;padding:.4rem;border-radius:10px;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--muted);transition:color .15s,background .15s}.btn-scan:hover{color:var(--accent);background:#00000008}.qr-scanner-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:300;padding:1.5rem}.qr-scanner{position:relative;width:100%;max-width:360px;aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;background:#000}.qr-scanner-video{width:100%;height:100%;object-fit:cover}.qr-scanner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.qr-scanner-frame{width:200px;height:200px;border:3px solid var(--accent);border-radius:16px;box-shadow:0 0 0 9999px #00000080;margin-bottom:1.5rem}.qr-scanner-overlay p{color:#fff;font-size:.85rem;font-weight:500;text-align:center}.qr-scanner-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:999px;border:none;background:#ffffff26;color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.qr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200;padding:1.5rem}.qr-modal{background:var(--surface);border-radius:var(--radius);padding:1.75rem;text-align:center;max-width:300px;width:100%;border:1px solid var(--border)}.qr-modal h2{font-size:1.1rem;font-weight:600;margin-bottom:1.1rem}.qr-wrapper{background:#fff;padding:.75rem;border-radius:10px;display:inline-block;margin-bottom:.85rem}.qr-code-text{font-size:.85rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
