:root{--wine: #8a3449;--wine-strong: #6f2739;--gold: #c2a05a;--ink: #3a2d2d;--muted: #8d7a74;--ivory: #faf4ef;--blush: #f1dfd8;--glass: rgba(255, 255, 255, .62);--glass-strong: rgba(255, 255, 255, .78);--hairline: rgba(138, 52, 73, .14);--glass-border: rgba(255, 255, 255, .75);--radius: 20px;--radius-sm: 14px;--max-width: 460px;--shadow: 0 18px 50px -20px rgba(90, 38, 52, .38);--shadow-soft: 0 8px 28px -14px rgba(90, 38, 52, .28);--spring: cubic-bezier(.34, 1.4, .56, 1);--font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body: "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);min-height:100dvh;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:radial-gradient(120% 80% at 50% -10%,rgba(194,160,90,.18),transparent 60%),radial-gradient(90% 60% at 100% 100%,rgba(138,52,73,.14),transparent 55%),linear-gradient(170deg,var(--ivory) 0%,var(--blush) 100%);background-attachment:fixed}.ga-container{max-width:var(--max-width);margin:0 auto;padding:calc(env(safe-area-inset-top) + 2rem) 1.25rem calc(env(safe-area-inset-bottom) + 2rem);min-height:100dvh;display:flex;flex-direction:column;justify-content:center;animation:ga-rise .55s var(--spring) both}@keyframes ga-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ga-container{animation:none}*{transition:none!important}}@media(min-width:540px){.ga-container{margin:2.5rem auto;min-height:auto;padding:2.5rem 2.25rem;background:var(--glass);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow)}}h1{font-family:var(--font-display);font-weight:600;font-size:clamp(2.3rem,9vw,3.1rem);line-height:1.05;letter-spacing:-.02em;color:var(--wine-strong);margin-bottom:.5rem}h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,6vw,2.1rem);letter-spacing:-.015em;color:var(--wine-strong);margin-bottom:.9rem}.ga-landing h1:after,.ga-inactive h1:after{content:"";display:block;width:54px;height:2px;margin-top:.85rem;background:linear-gradient(90deg,var(--gold),transparent);border-radius:2px}.ga-welcome{color:var(--muted);font-size:1.05rem;margin-bottom:2rem;max-width:34ch}.ga-hint{color:var(--muted);font-size:.9rem;margin-top:.35rem}p{margin-bottom:.4rem}.ga-loading,.ga-error,.ga-empty{text-align:center;align-items:center}.ga-loading{color:var(--muted);font-family:var(--font-display);font-size:1.4rem}.ga-error{color:var(--wine)}.ga-empty h2{color:var(--ink)}.ga-cover{width:100%;max-height:240px;object-fit:cover;border-radius:var(--radius);margin-bottom:1.5rem;box-shadow:var(--shadow-soft)}.ga-actions{display:flex;flex-direction:column;gap:.8rem;margin-top:1.75rem}.ga-btn{display:block;width:100%;padding:1rem 1.25rem;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-size:1rem;font-weight:600;letter-spacing:.01em;text-align:center;transition:transform .25s var(--spring),box-shadow .25s ease,background .2s ease,opacity .2s ease}.ga-btn-primary{background:linear-gradient(135deg,var(--wine) 0%,var(--wine-strong) 100%);color:#fff;box-shadow:0 10px 24px -10px #8a3449b3}.ga-btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -12px #8a3449bf}.ga-btn-primary:active{transform:translateY(0) scale(.99)}.ga-btn-secondary{background:var(--glass-strong);color:var(--wine-strong);border:1px solid var(--hairline);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.ga-btn-secondary:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.ga-btn-back{background:transparent;color:var(--muted);font-weight:500;margin-top:1.25rem;padding:.6rem}.ga-btn-back:hover{color:var(--wine)}.ga-btn-retry{background:transparent;color:var(--wine);border:none;cursor:pointer;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}.ga-file-picker,.ga-selfie-picker{display:block;text-align:center;cursor:pointer;padding:1.5rem 1rem;border-radius:var(--radius-sm);background:var(--glass);border:1.5px dashed var(--hairline);color:var(--wine-strong);font-weight:600;transition:border-color .2s ease,background .2s ease,transform .25s var(--spring);margin-top:.5rem}.ga-file-picker:hover,.ga-selfie-picker:hover{border-color:var(--gold);transform:translateY(-2px)}.ga-file-picker input,.ga-selfie-picker input{display:none}.ga-selfie-picker.ga-btn-primary{border-style:solid;border-color:transparent;color:#fff}.ga-consent-notice{background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--hairline);padding:1.25rem 1.35rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;box-shadow:var(--shadow-soft)}.ga-consent-notice p{margin-bottom:.65rem;line-height:1.6;font-size:.95rem;color:var(--ink)}.ga-consent-notice p:last-child{margin-bottom:0;color:var(--muted);font-size:.85rem}.ga-consent-notice strong{color:var(--wine-strong)}.ga-upload-list{margin:1.5rem 0 .5rem;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--hairline);background:var(--glass)}.ga-upload-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1rem;border-bottom:1px solid var(--hairline);font-size:.9rem}.ga-upload-item:last-child{border-bottom:none}.ga-upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%;color:var(--ink)}.ga-upload-status{color:var(--muted);display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.ga-upload-done .ga-upload-name{color:var(--muted)}.ga-upload-summary{text-align:center;color:var(--muted);font-size:.9rem;margin:1rem 0}.ga-count{color:var(--muted);font-size:.95rem;margin-bottom:1.25rem}.ga-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:.6rem;margin:.5rem 0}.ga-grid-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1;box-shadow:var(--shadow-soft);transition:transform .3s var(--spring)}.ga-grid-item:hover{transform:translateY(-3px) scale(1.01)}.ga-grid-item img{width:100%;height:100%;object-fit:cover;display:block}.ga-btn-download{position:absolute;bottom:7px;right:7px;background:#3a2d2d8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:transform .2s var(--spring),background .2s ease}.ga-btn-download:hover{transform:scale(1.1);background:#8a3449bf}.ga-btn-download:disabled{opacity:.6;cursor:default}.ga-inactive{text-align:left}.ga-inactive p{color:var(--muted)}
