:root{color-scheme:dark;--primary: #d0bcff;--primary-dark: #eaddff;--on-primary: #381e72;--surface: #211f26;--surface-container: #2b2930;--background: #141218;--text: #e6e1e5;--muted: #cac4d0;--border: #49454f;--error: #f2b8b5}*{box-sizing:border-box}body{margin:0;font-family:Google Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app{max-width:680px;margin:0 auto;padding:32px 24px;padding:calc(32px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));display:flex;flex-direction:column;gap:28px;min-height:100vh;min-height:100dvh}.app-header{text-align:center}.app-header h1{font-size:32px;font-weight:500;color:var(--primary);margin:0 0 6px;letter-spacing:.25px}.app-header p{color:var(--muted);margin:0}.dropzone{border:2px dashed var(--border);border-radius:28px;padding:48px 24px;text-align:center;cursor:pointer;background:var(--surface);transition:border-color .2s,background .2s,transform .2s}.dropzone:hover{border-color:var(--primary);background:var(--surface-container)}.dropzone.dragging{border-color:var(--primary);background:var(--surface-container);transform:scale(1.02)}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted)}.dropzone-icon{font-size:48px;color:var(--primary);line-height:1}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.file-item{position:relative;aspect-ratio:1;border-radius:24px;overflow:hidden;background:var(--surface-container);box-shadow:0 2px 8px #0003}.file-item img{width:100%;height:100%;object-fit:cover;display:block}.remove-btn{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:#0009;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.share-btn{align-self:center;min-width:160px;padding:16px 32px;border:none;border-radius:28px;background:var(--primary);color:var(--on-primary);font-size:16px;font-weight:500;cursor:pointer;transition:background .2s,box-shadow .2s}.share-btn:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 4px 12px #d0bcff4d}.share-btn:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}.error{color:var(--error);text-align:center;margin:0}@media (max-width: 480px){.app{padding:16px 12px;padding:calc(16px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.dropzone{padding:40px 16px;border-radius:24px}.file-grid{grid-template-columns:repeat(2,1fr);gap:12px}.share-btn{width:100%;max-width:320px;padding:18px}}.share-result{display:flex;flex-direction:column;align-items:center;gap:16px;background:var(--surface);border-radius:24px;padding:24px}.share-result input{width:100%;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-container);color:var(--text);font-size:14px}.share-result button{padding:10px 20px;border:none;border-radius:20px;background:var(--primary);color:var(--on-primary);cursor:pointer}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.share-sheet{background:var(--surface);width:100%;max-width:680px;border-radius:28px 28px 0 0;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom));position:relative;animation:slideUp .3s cubic-bezier(.16,1,.3,1);box-shadow:0 -4px 24px #0000004d}.sheet-close-btn{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:var(--surface-container);color:var(--muted);border:none;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.sheet-close-btn:hover{background:var(--border);color:var(--text)}.share-sheet-content{display:flex;flex-direction:column;gap:20px;align-items:center}.share-sheet .share-result{background:transparent;border-radius:0;padding:0;box-shadow:none}.skeleton{background:linear-gradient(90deg,var(--surface-container) 25%,var(--border) 50%,var(--surface-container) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:12px}.skeleton-line{width:80%;height:20px;margin:0 auto}.skeleton-qr{width:256px;height:256px;max-width:80%;margin-top:20px;border-radius:8px}.skeleton-button{width:140px;height:44px;margin-top:20px;border-radius:999px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
