@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300&family=DM+Sans:wght@300;400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #111010;--surface: #1c1b1b;--border: #2e2d2d;--ivory: #f0ead8;--ivory-dim: #a09880;--accent: #c9a96e;--accent-dim: #7a6342;--danger: #d4544a;--success: #5a9e72;--radius: 12px;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif}html,body,#root{height:100%;background:var(--bg);color:var(--ivory);font-family:var(--font-body);font-weight:300;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.screen--loading{background:var(--bg)}.loading-ring{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.passcode-card{width:100%;max-width:360px;text-align:center;position:relative}.passcode-rings{display:flex;justify-content:center;gap:8px;margin-bottom:32px}.passcode-rings span{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--accent-dim)}.passcode-rings span:nth-child(2){border-color:var(--accent);background:var(--accent);opacity:.6}.passcode-title{font-family:var(--font-display);font-size:42px;font-weight:300;letter-spacing:.01em;margin-bottom:8px}.passcode-sub{color:var(--ivory-dim);font-size:14px;margin-bottom:32px}.passcode-form{display:flex;flex-direction:column;gap:12px}.passcode-error{color:var(--danger);font-size:13px;text-align:center}.name-card{width:100%;max-width:360px;text-align:center;display:flex;flex-direction:column;gap:16px}.name-emoji{font-size:36px}.name-title{font-family:var(--font-display);font-size:36px;font-weight:300}.name-sub{color:var(--ivory-dim);font-size:14px;margin-top:-8px}.name-input{@extend .passcode-input;}.passcode-input,.name-input{width:100%;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--ivory);font-family:var(--font-body);font-size:16px;font-weight:300;outline:none;transition:border-color .2s}.passcode-input:focus,.name-input:focus{border-color:var(--accent)}.passcode-input::placeholder,.name-input::placeholder{color:var(--ivory-dim);opacity:.5}.btn{width:100%;padding:14px 18px;border:none;border-radius:var(--radius);font-family:var(--font-body);font-size:15px;font-weight:400;cursor:pointer;transition:opacity .2s,transform .1s;letter-spacing:.02em}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn--primary{background:var(--accent);color:#1a1510}.btn--primary:hover:not(:disabled){opacity:.9}.btn--ghost{background:transparent;color:var(--ivory-dim);border:1px solid var(--border)}.btn--ghost:hover:not(:disabled){border-color:var(--ivory-dim)}.btn--sm{padding:8px 14px;font-size:13px;width:auto}.app{min-height:100dvh;display:flex;flex-direction:column;max-width:600px;margin:0 auto}.app-header{padding:28px 20px 16px;text-align:center;border-bottom:1px solid var(--border)}.app-title{font-family:var(--font-display);font-size:28px;font-weight:300;letter-spacing:.02em}.app-guest{font-size:12px;color:var(--ivory-dim);margin-top:4px}.app-main{flex:1;padding:24px 16px;display:flex;flex-direction:column;gap:24px}.camera-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.shutter-btn{width:80px;height:80px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,opacity .2s;position:relative}.shutter-btn:active:not(:disabled){transform:scale(.93)}.shutter-btn:disabled{opacity:.4;cursor:not-allowed}.shutter-btn--busy{border-color:var(--ivory-dim)}.shutter-btn--busy .shutter-inner{border-color:var(--ivory-dim);animation:spin 1s linear infinite}.shutter-inner{width:52px;height:52px;border-radius:50%;background:transparent;border:2px solid var(--accent);transition:background .15s}.shutter-btn:hover:not(:disabled) .shutter-inner{background:color-mix(in srgb,var(--accent) 20%,transparent)}.camera-hint{font-size:12px;color:var(--ivory-dim);letter-spacing:.05em;text-transform:uppercase}.upload-queue{display:flex;flex-direction:column;gap:8px}.upload-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.upload-label{font-size:13px;color:var(--ivory-dim)}.upload-bar{height:3px;background:var(--border);border-radius:2px;overflow:hidden}.upload-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.upload-item--error .upload-bar-fill{background:var(--danger)}.upload-error{font-size:12px;color:var(--danger)}.upload-done{font-size:13px;color:var(--success);text-align:center;padding:8px;cursor:pointer}.feed-loading,.feed-empty{display:flex;justify-content:center;padding:40px 0;color:var(--ivory-dim);font-size:14px}.feed-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.feed-item{position:relative;aspect-ratio:1;overflow:hidden;background:var(--surface)}.feed-item img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s}.feed-byline{position:absolute;bottom:0;left:0;right:0;padding:4px 6px;background:linear-gradient(transparent,#0009);font-size:10px;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.install-banner{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:16px 20px;display:flex;flex-direction:column;gap:10px}.install-text{font-size:14px;color:var(--ivory)}.install-ios-steps{font-size:13px;color:var(--ivory-dim)}.install-actions{display:flex;gap:8px}@keyframes spin{to{transform:rotate(360deg)}}
