@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;1,600&display=swap');

:root{--paper:#f6f1e8;--paper2:#fffdf8;--ink:#26251f;--muted:#777367;--line:#e4ddd0;--green:#314c3e;--orange:#bd6d4b;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.topbar{height:78px;padding:0 7vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-size:16px;letter-spacing:-.5px}
.brand strong{font-weight:700}
.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--green);color:#fffdf8;border-radius:50%;font-family:var(--serif);font-size:22px}
.button{border:0;border-radius:4px;padding:12px 18px;font-size:12px;font-weight:700;letter-spacing:.02em;transition:transform .2s,background .2s}
.button:hover{transform:translateY(-1px)}
.button-dark{background:var(--green);color:white}
.button-dark:hover{background:#243b30}
.button-outline{background:transparent;border:1px solid #b9b1a3;color:var(--ink)}
main{max-width:1180px;margin:auto;padding:0 6vw}
.hero{min-height:470px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5%;padding:48px 0 64px}
.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:700;color:var(--orange);margin:0 0 16px}
h1,h2,h3,p{margin-top:0}
h1{font-family:var(--serif);font-size:clamp(48px,6vw,76px);font-weight:500;line-height:1.05;letter-spacing:-.045em;margin-bottom:20px}
h1 em,h2 em{color:var(--orange);font-weight:500}
.hero-text{max-width:360px;color:var(--muted);font-size:14px;line-height:1.9;margin-bottom:25px}
.hero-copy .button{padding:14px 19px}.hero-copy .button span{margin-left:18px}
.hero-art{height:330px;position:relative;display:flex;align-items:center;justify-content:center}
.sun{position:absolute;width:220px;height:220px;background:#e6c7a2;border-radius:50%;right:10%;top:12px;opacity:.8}
.photo{position:absolute;width:210px;height:260px;background:#e8e1d5;border:9px solid #fffdf8;box-shadow:0 15px 30px #473b2917;display:flex;align-items:flex-end;justify-content:center;padding:10px;font-family:var(--serif);font-size:12px;font-style:italic;color:#62594d}
.photo-back{transform:rotate(-10deg);left:10%;top:42px;background:#c5c9b4}
.photo-front{transform:rotate(7deg);right:13%;top:50px;background:#e6b997}
.photo-landscape{position:absolute;inset:0 0 30px;background:linear-gradient(155deg,transparent 50%,#526b56 51%),linear-gradient(25deg,#879b7a 0 35%,#d3ad7d 36% 50%,#a6b6a2 51%);opacity:.88}
.photo-front span{position:relative;background:#fffdf8;padding:2px 5px}
.stamp{position:absolute;bottom:0;left:43%;width:74px;height:74px;border:1px solid var(--orange);border-radius:50%;display:grid;place-content:center;text-align:center;font-size:9px;letter-spacing:.12em;color:var(--orange);transform:rotate(-12deg);background:var(--paper)}
.memory-section{padding:45px 0 75px;border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.section-heading h2,.why-section h2{font-family:var(--serif);font-size:36px;line-height:1.2;font-weight:500;letter-spacing:-.03em;margin:0}
.count{display:inline-grid;place-items:center;vertical-align:middle;width:25px;height:25px;border-radius:50%;background:#e8e0d3;font:11px var(--sans);letter-spacing:0;margin-left:5px}
.tools{display:flex;gap:8px}
.tools input,.tools select{height:39px;border:1px solid var(--line);background:var(--paper2);padding:0 12px;border-radius:3px;color:var(--ink);font-size:12px;min-width:145px;outline-color:var(--green)}
.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.memory-card{border:1px solid var(--line);background:var(--paper2);cursor:pointer;transition:transform .2s,box-shadow .2s;min-width:0}
.memory-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #322b1d0c}
.card-image{height:200px;background:#e8e0d3;overflow:hidden;display:grid;place-items:center;position:relative}
.card-image img{width:100%;height:100%;object-fit:cover}
.no-photo{font-family:var(--serif);font-size:42px;color:#b8a994}
.card-body{padding:17px}
.card-date{font-size:10px;letter-spacing:.1em;color:var(--orange);text-transform:uppercase;margin-bottom:8px}
.card-body h3{font:500 22px var(--serif);margin:0 0 7px;overflow-wrap:anywhere}
.card-body p{font-size:12px;color:var(--muted);margin:0;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:14px;padding-top:12px;color:var(--muted);font-size:10px}
.card-actions{display:flex;gap:10px}.text-button{background:none;border:0;padding:0;color:var(--green);font-size:11px;font-weight:700}
.empty-state{text-align:center;padding:50px 20px;border:1px dashed #d6cbbb;background:#f8f4ed}
.empty-icon{font-size:35px;color:var(--orange);margin-bottom:10px}
.empty-state h3{font:500 25px var(--serif);margin-bottom:8px}
.empty-state p{font-size:13px;color:var(--muted);margin-bottom:20px}
.why-section{text-align:center;border-top:1px solid var(--line);padding:70px 0 85px}
.why-section h2{font-size:clamp(30px,4vw,44px);margin-bottom:48px}
.three-points{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;text-align:left}
.three-points>div{border-top:1px solid #cfc4b4;padding-top:15px}
.three-points span{color:var(--orange);font-size:10px;letter-spacing:.1em}
.three-points h3{font:500 21px var(--serif);margin:10px 0 5px}
.three-points p{color:var(--muted);font-size:12px;margin:0}
footer{border-top:1px solid var(--line);padding:25px 7vw;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.08em}
footer span:first-child{font-weight:700;color:var(--green)}
.dialog{border:0;padding:0;width:min(650px,calc(100% - 28px));max-height:92vh;overflow:auto;background:var(--paper2);color:var(--ink);box-shadow:0 24px 80px #16130e38}
.dialog::backdrop{background:#1c211dcc;backdrop-filter:blur(3px)}
#memoryForm{padding:28px}
.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:24px}
.dialog-head h2{font:500 32px var(--serif);margin:0}
.close-button{border:0;background:none;font-size:30px;line-height:1;color:var(--muted);padding:0 4px}
.dialog label{display:block;font-size:12px;font-weight:700;margin:15px 0 7px}
.dialog label span{color:var(--orange)}
.dialog label .optional{font-weight:400;color:var(--muted)}
.dialog input:not([type=file]),.dialog textarea{width:100%;border:1px solid var(--line);background:white;border-radius:3px;padding:11px;font-size:13px;outline-color:var(--green);color:var(--ink)}
.dialog input[type=file]{width:100%;padding:10px;background:#f7f2e9;border:1px dashed #cfc4b4;font-size:12px}
.dialog textarea{resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.field-note{font-size:10px;color:var(--muted);margin:7px 0}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.form-error{color:#a43c2e;font-size:12px;margin:8px 0 0}
.existing-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.existing-photos img{width:54px;height:54px;object-fit:cover;border:2px solid white;box-shadow:0 0 0 1px var(--line)}
.detail-dialog{padding:32px;width:min(720px,calc(100% - 28px))}
.detail-close{position:absolute;right:18px;top:15px}
.detail-dialog h2{font:500 38px var(--serif);margin:5px 30px 15px 0}
.detail-meta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);margin-bottom:20px}
.detail-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0 22px}
.detail-photos img{width:100%;max-height:300px;object-fit:cover}
.detail-story{white-space:pre-wrap;line-height:1.9;font-size:14px;color:#514e45;overflow-wrap:anywhere}
.detail-label{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--orange);margin:20px 0 6px}
.detail-actions{display:flex;gap:8px;margin-top:25px}
@media(max-width:720px){.topbar{height:66px;padding:0 5vw}.topbar .button{padding:10px 12px;font-size:10px}main{padding:0 5vw}.hero{grid-template-columns:1fr;padding:50px 0 40px;gap:10px}.hero-art{height:280px;max-width:420px;width:100%;margin:auto}.photo{width:175px;height:220px}.section-heading{align-items:start;flex-direction:column}.section-heading h2{font-size:32px}.tools{width:100%;flex-wrap:wrap}.tools input{flex:1;min-width:150px}.tools select{min-width:120px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-image{height:150px}.card-body{padding:12px}.card-body h3{font-size:19px}.three-points{gap:15px}.three-points h3{font-size:18px}.three-points p{font-size:11px}footer{padding:22px 5vw;gap:10px;flex-wrap:wrap}.form-row{grid-template-columns:1fr;gap:0}}
@media(max-width:430px){.memory-grid{grid-template-columns:1fr 1fr}.card-image{height:125px}.card-body h3{font-size:17px}.three-points{grid-template-columns:1fr;gap:22px}.why-section{text-align:left}.why-section h2{font-size:31px}.detail-dialog{padding:24px 18px}.detail-photos{grid-template-columns:1fr}}
