@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--ink:#49372f;--muted:#85746b;--cream:#fffaf5;--paper:#fffdf9;--rose:#c98057;--line:#ebded3;--shadow:0 18px 45px #67412a18}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.5 "DM Sans",system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:720px;margin:auto;padding:0 16px 42px}.hero{height:490px;position:relative;overflow:hidden;margin:0 -16px;border-radius:0 0 34px 34px;background:#e4b49a}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#42221a04 25%,#3b2016aa 100%)}.hero-copy{position:absolute;inset:auto 28px 25px;color:white;text-shadow:0 2px 22px #4c2712b5}.eyebrow,.overline{display:block;font-size:10px;letter-spacing:1.7px;font-weight:700}.hero h1,h1,h2{font-family:"Playfair Display",Georgia,serif;line-height:.98;margin:.3rem 0;font-weight:600}.hero h1{font-size:54px}.monogram{font-family:"Playfair Display",serif;font-size:17px;letter-spacing:4px}.hero p{margin:.35rem 0 0;font-style:italic;font-family:"Playfair Display",serif}.card{background:var(--paper);border:1px solid #f0e6de;border-radius:22px;box-shadow:var(--shadow)}.welcome{position:relative;margin:-22px 2px 14px;padding:25px 20px}.welcome h2,section h2{font-size:31px}.subtle{color:var(--muted);margin:.5rem 0 1.15rem}.actions{display:grid;gap:9px}.button{border:0;border-radius:13px;padding:14px 18px;font-weight:700;letter-spacing:.1px}.primary{background:var(--ink);color:#fff;box-shadow:0 7px 16px #49372f33}.primary:disabled{opacity:.55}.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.wide{width:100%}.quick{display:grid;grid-template-columns:repeat(3,1fr);padding:7px;margin-bottom:31px}.quick button{background:transparent;border:0;padding:11px 3px;color:var(--ink);font-size:12px;font-weight:600}.quick i{display:block;font-style:normal;font-size:20px;color:var(--rose);margin-bottom:2px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:17px}.section-heading h2{margin:0}.text-button{border:0;background:transparent;color:#a45431;font-weight:700;padding:8px 0}.filters,.filter-row{display:flex;gap:8px;margin-bottom:16px;overflow:auto}.filters select,.card-moment,.admin-tools select, input{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;color:var(--ink)}.gallery-grid{columns:2;column-gap:10px}.media-card{break-inside:avoid;margin:0 0 10px;background:#fff;border-radius:16px;overflow:hidden;border:1px solid #f0e6de;box-shadow:0 4px 11px #68482d0d}.lightbox{padding:0;position:relative;display:block;background:#eee;border:0;width:100%;min-height:100px}.lightbox img,.lightbox video{display:block;width:100%;max-height:350px;object-fit:cover}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:#fffdf9dd;color:var(--ink)}.media-meta{display:flex;justify-content:space-between;gap:4px;align-items:center;padding:8px 9px 3px;font-size:11px;color:var(--muted)}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a45431;font-weight:700}.reactions{display:flex;gap:2px;padding:0 6px 7px}.reactions button{font-size:13px;border:0;background:transparent;padding:4px}.reactions small{color:var(--muted);font-weight:700}.card-moment{width:calc(100% - 16px);margin:5px 8px 10px;font-size:12px;padding:7px}.empty{color:var(--muted);padding:30px 8px}.moment-cards{display:grid;gap:11px}.moment-card{border:1px solid #eee0d5;border-left:5px solid var(--moment);border-radius:16px;background:#fffdf9;padding:16px;text-align:left;color:var(--ink);box-shadow:0 5px 12px #6d442211}.moment-card span,.moment-card i{display:block;color:var(--muted);font-size:12px;font-style:normal}.moment-card strong{font-family:"Playfair Display",serif;font-size:23px;display:block;margin:3px 0}.dialog{border:0;border-radius:25px;padding:27px 22px;box-shadow:0 20px 70px #2f1a0d66;color:var(--ink);max-width:min(430px,calc(100vw - 30px));width:100%;background:#fffdf9}.dialog::backdrop,.viewer::backdrop{background:#2b1911a6}.dialog h2{font-size:33px}.dialog input{width:100%;margin:7px 0 4px}.form-error{min-height:20px;color:#b4483e;font-size:13px;margin:4px 0}.upload-dialog{max-height:92vh;overflow:auto}.close{float:right;border:0;background:#f3e7dd;border-radius:50%;width:32px;height:32px;font-size:25px;line-height:1;color:var(--ink)}.picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.pick{border:1.5px dashed #d9b7a3;border-radius:16px;text-align:center;padding:17px 5px;background:#fff8f2;color:var(--ink)}.pick input{display:none}.pick span,.pick strong,.pick small{display:block}.pick span{font-size:28px;color:var(--rose)}.pick strong{font-size:13px;margin:5px 0}.pick small{font-size:10px;color:var(--muted)}.queued{display:grid;grid-template-columns:22px 1fr auto 24px;gap:7px;align-items:center;border-top:1px solid var(--line);padding:9px 2px;font-size:12px}.queued b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queued small{color:var(--muted)}.queued button{border:0;background:none;color:#a45431;font-size:20px}.optional{margin:13px 0}.optional label{font-size:12px;color:var(--muted);display:block;margin-bottom:4px}.optional select{width:100%;border:1px solid var(--line);background:#fff;padding:10px;border-radius:10px}.tiny{font-size:11px;color:var(--muted);text-align:center}.hidden{display:none!important}#toast{position:fixed;z-index:10;bottom:20px;left:50%;transform:translate(-50%,140px);background:#44332c;color:#fff;padding:12px 17px;border-radius:14px;box-shadow:var(--shadow);transition:.35s;max-width:90%;text-align:center;font-size:14px}#toast.show{transform:translate(-50%,0)}#toast.bad{background:#a1443e}.viewer{border:0;background:transparent;padding:8px;max-width:min(1000px,95vw);max-height:95vh}.viewer img,.viewer video{max-width:100%;max-height:86vh;display:block}.viewer .close{position:absolute;right:16px;top:16px;z-index:1}.admin-body{background:#f5eee8}.admin-shell{max-width:1280px;margin:auto;padding:32px 18px}.admin-login{max-width:430px;margin:15vh auto;padding:28px}.admin-login h1,.admin-head h1{font-size:42px}.admin-login input{width:100%;margin:13px 0 8px}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.admin-head>div:last-child{display:flex;gap:12px;align-items:center}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.stat{background:#fff;border-radius:16px;padding:15px;border:1px solid var(--line)}.stat b{font:600 29px "Playfair Display",serif;display:block}.stat small{color:var(--muted)}.admin-tools,.admin-moments{padding:14px;margin:14px 0}.bulk-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bulk-row span{font-size:12px;color:var(--muted);margin-right:auto}.compact{padding:9px 12px;background:#e9ddd4;color:var(--ink)}.check{font-size:13px;white-space:nowrap}.admin-moments h2{font-size:23px}.moment-line{display:grid;grid-template-columns:1.1fr 1.35fr 1.35fr 46px auto;gap:7px;margin:8px 0}.moment-line input{min-width:0;width:100%;padding:8px}.admin-grid{columns:3;column-gap:10px}.admin-item{break-inside:avoid;display:block;background:white;margin-bottom:10px;border-radius:12px;overflow:hidden;border:2px solid transparent;position:relative}.admin-item.selected{border-color:#bd704b}.admin-item img,.admin-item video{width:100%;display:block;max-height:280px;object-fit:cover}.admin-item label{display:flex;align-items:center;gap:7px;font-size:12px;padding:7px}.admin-item small{display:block;color:var(--muted)}
@media(min-width:720px){.shell{max-width:1120px;padding:0 26px 60px}.hero{height:550px;margin:0 -26px;border-radius:0 0 48px 48px}.hero-copy{left:7%;bottom:42px}.hero h1{font-size:74px}.welcome{max-width:680px;margin:-40px auto 16px;text-align:center;padding:29px}.actions{grid-template-columns:1.4fr 1fr}.quick{max-width:680px;margin:0 auto 45px}.gallery-grid{columns:4}.moment-cards{grid-template-columns:repeat(3,1fr)}.picker-grid{grid-template-columns:1fr 1fr}.admin-grid{columns:4}}
@media(max-width:600px){.admin-head{align-items:flex-start}.admin-head>div:last-child{flex-direction:column;align-items:flex-end}.admin-stats{grid-template-columns:1fr 1fr}.admin-stats .stat:last-child{grid-column:span 2}.moment-line{grid-template-columns:1fr 1fr}.moment-line input:first-child{grid-column:span 2}.moment-line input:last-of-type{grid-column:span 2}}
