:root{--sage: oklch(.7 .045 150);--sage-deep: oklch(.5 .052 152);--sage-deeper: oklch(.42 .05 152);--sage-soft: oklch(.93 .02 150);--sage-tint: oklch(.955 .013 150);--blush: oklch(.9 .022 40);--ink: oklch(.33 .012 150);--text: oklch(.33 .012 150);--muted: oklch(.54 .012 150);--faint: oklch(.7 .01 150);--line: oklch(.89 .01 150);--cream: oklch(.972 .012 95);--card: oklch(.995 .004 95);--white: oklch(.998 .002 95);--ok: oklch(.6 .09 150);--warn: oklch(.65 .1 60);--danger: oklch(.58 .13 25);--accent: oklch(.5 .052 152);--accent-dark: oklch(.42 .05 152);--shadow-sm: 0 1px 2px oklch(.4 .02 150 / .06), 0 2px 8px oklch(.4 .02 150 / .05);--shadow-md: 0 4px 14px oklch(.4 .02 150 / .08), 0 10px 30px oklch(.4 .02 150 / .07);--shadow-lg: 0 18px 50px oklch(.4 .02 150 / .14);--shadow: var(--shadow-md);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Mulish", system-ui, sans-serif;--display-weight: 500;--display-tracking: .012em;--label-tracking: .22em;--r-sm: 3px;--r-md: 5px;--r-lg: 8px;--r-pill: 999px;--btn-radius: 3px;--bg-page: oklch(.972 .012 95)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font-body);background:var(--bg-page);color:var(--ink);-webkit-font-smoothing:antialiased}body{min-height:100vh}::selection{background:var(--sage-soft)}.disp{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:1.08;color:var(--ink)}h1,h2{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:1.1;color:var(--ink);margin:0}h1{font-size:clamp(2rem,4.5vw,3rem)}.eyebrow{margin:0;font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--sage-deep)}.lead{margin:0;font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--muted);max-width:60ch}.couple-date{margin:0;font-family:var(--font-body);font-size:.9rem;letter-spacing:.04em;color:var(--muted)}.brand-logo{display:block;width:auto;max-width:100%;object-fit:contain}.monogram{display:inline-flex;align-items:center;justify-content:center;width:var(--mono-size, 64px);height:var(--mono-size, 64px);border-radius:50%;border:1px solid var(--sage);flex:0 0 auto}.monogram .mono-text{font-family:var(--font-display);font-weight:var(--display-weight);color:var(--sage-deep);letter-spacing:.02em;line-height:1;font-size:calc(var(--mono-size, 64px) * .42)}.monogram .mono-amp{font-size:.62em;opacity:.7;margin:0 .06em;vertical-align:middle}.sprig{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--sage)}.sprig .sprig-line{height:1px;width:var(--sprig-w, 90px);background:currentColor;opacity:.4}.brand-head{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.page{padding:28px 24px 48px;min-height:100vh}.upload-page{display:grid;place-items:center;min-height:100vh}.shell{max-width:1180px;margin:0 auto;display:grid;gap:24px}.upload-shell{width:100%;max-width:460px;margin:0 auto}.upload-card,.upload-focus-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:var(--r-lg);padding:30px 28px}.admin-login-card{max-width:440px;margin:0 auto}.admin-dashboard{width:100%;max-width:1180px;margin:0 auto}.upload-intro{margin:18px 0;text-align:center}.upload-intro .upload-title{font-size:clamp(1.6rem,4vw,2.2rem);margin-bottom:8px}.lead.compact{max-width:42ch;margin:0 auto;font-size:.95rem}.upload-flow{display:grid;gap:16px}.flow-step{display:grid;gap:18px;padding:22px;border-radius:var(--r-md);background:var(--sage-tint);border:1px solid var(--line)}.flow-step[hidden]{display:none!important}.step-head{display:flex;gap:14px;align-items:flex-start}.step-head h2{margin:0 0 4px;font-size:1.3rem}.step-head p{margin:0;font-family:var(--font-body);color:var(--muted);line-height:1.5}.step-badge{width:34px;height:34px;border-radius:999px;background:var(--sage-soft);color:var(--sage-deeper);display:inline-grid;place-items:center;font-family:var(--font-body);font-weight:700;flex:0 0 auto}.upload-form{display:grid;gap:20px}label{display:grid;gap:8px}label>span{font-family:var(--font-body);font-weight:600;font-size:10.5px;letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--sage-deep)}input[type=text],input[type=email],input[type=password],input[type=file]{width:100%;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--white);transition:border-color .15s ease,box-shadow .15s ease}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-soft)}.file-drop{padding:26px 18px;border:1.5px dashed var(--sage);background:var(--sage-tint);border-radius:var(--r-lg);display:grid;gap:6px;text-align:center;cursor:pointer}.file-drop input[type=file]{padding:0;border:0;background:transparent}.file-title{font-family:var(--font-display);font-size:1.3rem;color:var(--ink)}.file-subtitle,.meta-note,.status{color:var(--muted);font-family:var(--font-body);font-weight:500;line-height:1.5}.file-list{display:flex;flex-wrap:wrap;gap:10px}.file-chip{display:inline-flex;flex-direction:column;gap:2px;padding:9px 13px;border-radius:var(--r-sm);background:var(--white);border:1px solid var(--line);font-family:var(--font-body);font-size:.9rem}.submit-button{border:1px solid transparent;border-radius:var(--btn-radius);padding:14px 22px;font-family:var(--font-body);font-weight:600;font-size:15px;letter-spacing:.02em;color:var(--white);background:var(--sage-deep);cursor:pointer;box-shadow:var(--shadow-sm);transition:background .18s ease,box-shadow .18s ease}.submit-button:hover{background:var(--sage-deeper);box-shadow:var(--shadow-md)}.secondary-button{border:1px solid var(--line);border-radius:var(--btn-radius);padding:12px 18px;font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--ink);background:var(--white);cursor:pointer;transition:background .18s ease}.secondary-button:hover{background:var(--sage-tint)}.danger-button{border:1px solid transparent;border-radius:var(--btn-radius);padding:12px 18px;font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--white);background:var(--danger);cursor:pointer}.danger-button:hover{filter:brightness(.94)}.progress-step{padding-block:32px}.progress-stage{display:grid;gap:12px;position:relative;overflow:hidden}.progress{width:100%;height:12px;border-radius:999px;overflow:hidden;border:0;background:var(--line);appearance:none}.progress-large{height:18px}.progress::-webkit-progress-bar{background:var(--line);border-radius:999px}.progress::-webkit-progress-value{background:var(--sage-deep);border-radius:999px;transition:width .1s linear}.progress::-moz-progress-bar{background:var(--sage-deep);border-radius:999px}.progress-label{text-align:center;font-family:var(--font-display);font-size:2rem;font-weight:var(--display-weight);color:var(--sage-deep)}.progress-glow{position:absolute;inset:auto -20% -40px;height:90px;background:radial-gradient(circle,#4d6c5538,#4d6c5500 70%);filter:blur(12px);animation:glowPulse 2.4s ease-in-out infinite;pointer-events:none}.done-step{text-align:center}.success-box{display:grid;gap:10px;justify-items:center;padding:18px 10px}.success-icon{width:64px;height:64px;border-radius:999px;background:var(--sage-soft);color:var(--sage-deep);display:grid;place-items:center;font-size:2rem;font-weight:700}.prominent-status{min-height:24px;text-align:center;font-weight:700;color:var(--danger)}.admin-head{margin-bottom:20px}.admin-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.admin-brand{display:flex;align-items:center;gap:14px}.admin-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-size-form label{display:flex;align-items:center;gap:12px}.page-size-form select{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--white)}.pagination-meta{display:flex;gap:12px;color:var(--muted);font-family:var(--font-body);font-size:13px;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.media-card{overflow:hidden;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}.media-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.preview-button{width:100%;border:0;padding:0;background:var(--sage-soft);cursor:pointer}.media-thumb,.file-fallback{width:100%;height:160px;display:block;object-fit:cover}.file-fallback,.video-thumb-wrap{display:grid;place-items:center;position:relative;height:160px;color:var(--muted);font-family:var(--font-body)}.video-badge{position:absolute;right:10px;bottom:10px;padding:4px 9px;border-radius:999px;background:#0000008c;color:#fff;font-family:var(--font-body);font-size:.78rem;font-weight:600;backdrop-filter:blur(4px)}.media-card-body{padding:16px;display:grid;gap:14px}.media-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;font-family:var(--font-body)}.media-meta{display:grid;gap:6px;color:var(--muted);font-family:var(--font-body);font-size:.88rem}.media-actions{display:flex;flex-wrap:wrap;gap:10px}.action-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:24px;flex-wrap:wrap}.pagination-pages{display:flex;gap:8px;flex-wrap:wrap}.page-pill{min-width:40px;height:40px;padding:0 10px;border-radius:var(--btn-radius);display:inline-grid;place-items:center;text-decoration:none;color:var(--ink);background:var(--white);border:1px solid var(--line);font-family:var(--font-body);font-weight:600}.page-pill.is-active{background:var(--sage-deep);color:var(--white);border-color:transparent}.is-disabled{pointer-events:none;opacity:.45}.error{color:var(--danger)}.lightbox{position:fixed;inset:0;background:#1d241ed1;backdrop-filter:blur(6px);display:grid;place-items:center;padding:40px;z-index:1000}.lightbox[hidden]{display:none!important}.lightbox-inner{max-width:min(1100px,92vw);max-height:80vh}.lightbox-media{max-width:100%;max-height:80vh;border-radius:var(--r-md);display:block}.lightbox-close{position:absolute;top:20px;right:20px;width:46px;height:46px;border-radius:999px;border:0;background:var(--white);color:var(--ink);font-size:1.8rem;line-height:1;cursor:pointer;box-shadow:var(--shadow-md)}.lightbox-caption{margin:14px 0 0;color:var(--white);font-family:var(--font-body);text-align:center}.reveal-intro{animation:fadeUp .7s ease both}.step-enter{animation:stepSlide .32s cubic-bezier(.22,1,.36,1) both}.chip-pop{animation:chipPop .28s ease both}.pulse-drop{animation:pulseDrop 2.8s ease-in-out infinite}.celebratory-pop{animation:celebrateIn .42s cubic-bezier(.18,.89,.32,1.28) both}.progress-bump{animation:progressBump .18s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes stepSlide{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes chipPop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes pulseDrop{0%,to{transform:translateY(0);box-shadow:0 0 #4d6c5500}50%{transform:translateY(-2px);box-shadow:0 16px 34px #4d6c551f}}@keyframes celebrateIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes progressBump{0%{transform:scaleY(1)}50%{transform:scaleY(1.08)}to{transform:scaleY(1)}}@keyframes glowPulse{0%,to{opacity:.35;transform:scale(.96)}50%{opacity:.7;transform:scale(1.04)}}@media(max-width:820px){.page{padding:20px 16px 40px}.upload-card,.upload-focus-card{padding:24px 20px}}
