@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#111;--paper:#faf9f7;--white:#fff;--muted:#777;--line:#e8e6e2;--soft:#f1f0ed;--danger:#a42d2d;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.no-scroll{overflow:hidden}
.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6vw,90px);border-bottom:1px solid var(--line);background:rgba(250,249,247,.94);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.brand{font-size:13px;font-weight:700;letter-spacing:.15em;white-space:nowrap}.brand span{padding:0 4px;color:#888}.top-nav{display:flex;gap:clamp(12px,2.5vw,32px);align-items:center}.top-nav a{font-size:12px;color:#555}.top-nav a:hover,.text-link:hover{color:#000;text-decoration:underline;text-underline-offset:4px}
.container{width:min(1160px,calc(100% - 40px));margin:0 auto;min-height:65vh}.hero{min-height:570px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:90px 0 105px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:700;color:#777;text-transform:uppercase;margin:0 0 16px}.hero h1,.form-page h1,.auth-card h1,.admin-intro h1,.section-heading h1{font-size:clamp(46px,8vw,92px);letter-spacing:-.065em;line-height:.99;font-weight:500;margin:0;max-width:800px}.hero h1 em{font-family:'Playfair Display',serif;font-weight:500}.hero-copy{max-width:450px;color:#666;margin:26px 0 20px}.counter{display:flex;gap:10px;align-items:baseline;margin:10px 0 24px}.counter strong{font-size:30px;letter-spacing:-.05em}.counter span{font-size:12px;color:#777}.text-link{font-size:12px;font-weight:600}.text-link span{margin-left:8px}
.section{padding:84px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}.section-heading h2{font-size:clamp(30px,5vw,48px);letter-spacing:-.05em;line-height:1.1;font-weight:500;margin:0}.section-heading .eyebrow{margin-bottom:10px}.muted{color:var(--muted);font-size:12px}.memory-grid{columns:3 240px;column-gap:18px}.memory-card{display:block;width:100%;padding:0;margin:0 0 24px;border:0;background:transparent;text-align:left;break-inside:avoid}.memory-card img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;background:#e6e4e0;transition:filter .25s,transform .25s}.memory-card:hover img{filter:brightness(.92)}.memory-meta{display:flex;flex-direction:column;gap:3px;padding:12px 1px 0}.memory-meta>span{font-size:13px;font-weight:600}.memory-meta time{font-size:10px;color:#888;letter-spacing:.05em}
.empty-state{text-align:center;padding:80px 20px;background:#f2f1ee;border-radius:var(--radius)}.empty-mark{font-size:32px;color:#888}.empty-state h3{font-size:24px;font-weight:500;margin:12px 0}.empty-state p{color:#777;font-size:13px;margin:0 auto 20px;max-width:380px}
.timeline{max-width:800px;margin:0 auto}.timeline-item{display:grid;grid-template-columns:130px 1fr;gap:30px;padding:28px 0;border-bottom:1px solid var(--line)}.timeline-item time{font-size:11px;color:#777;letter-spacing:.08em;padding-top:5px}.timeline-item h3{margin:0 0 7px;font-size:21px;font-weight:500;letter-spacing:-.03em}.timeline-item p{margin:0;color:#666;font-size:13px;white-space:normal}
.letter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.letter-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px}.letter-card h3{font-size:24px;font-family:'Playfair Display',serif;font-weight:500;margin:0 0 14px}.letter-card>p:last-child{font-size:13px;color:#555;white-space:normal}
.site-footer{padding:30px clamp(20px,6vw,90px);display:flex;justify-content:space-between;gap:20px;color:#888;font-size:10px;letter-spacing:.04em}.site-footer span:first-child{font-weight:700;letter-spacing:.16em;color:#555}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-1px)}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:#333}.button-light{background:white;border-color:var(--line);color:#111}.button-danger{background:#fff;color:var(--danger);border-color:#ead0d0}.button-small{min-height:34px;padding:7px 12px;font-size:11px}.music-control{position:fixed;bottom:18px;right:18px;z-index:8}
.lightbox{position:fixed;inset:0;background:rgba(10,10,10,.95);z-index:30;display:none;align-items:center;justify-content:center;padding:50px 20px 30px;overflow:auto}.lightbox.open{display:flex;flex-direction:column}.lightbox img{max-width:min(90vw,1000px);max-height:72vh;object-fit:contain}.lightbox-close{position:fixed;right:25px;top:15px;background:none;color:white;border:0;font-size:38px;font-weight:300}.lightbox-caption{text-align:center;color:#fff;max-width:650px}.lightbox-caption h3{font-weight:500;margin:16px 0 4px}.lightbox-caption p{font-size:12px;color:#ccc;white-space:pre-wrap}
.auth-wrap{min-height:70vh;display:grid;place-items:center;padding:70px 0}.auth-card{width:min(440px,100%);background:white;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(25px,5vw,42px)}.auth-card h1,.form-page h1,.admin-intro h1{font-size:clamp(36px,5vw,56px);margin-bottom:14px}.auth-card .text-link{display:inline-block;margin-top:24px}
.form-page{max-width:720px;margin:60px auto 100px}.form-page>h1{margin-bottom:14px}.form-stack{display:flex;flex-direction:column;gap:18px;margin-top:28px}.form-stack label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600}.form-stack input,.form-stack textarea,.form-stack select{width:100%;min-height:45px;padding:12px 13px;border:1px solid #dedbd6;border-radius:10px;background:#fff;color:#111;outline:none}.form-stack textarea{resize:vertical;min-height:110px}.form-stack input:focus,.form-stack textarea:focus,.form-stack select:focus{border-color:#555;box-shadow:0 0 0 3px #0000000b}.form-stack input[type=file]{padding:9px}.form-preview{width:min(100%,400px);max-height:360px;object-fit:contain;background:#eee;border-radius:12px}.check-label{display:flex!important;flex-direction:row!important;align-items:center}.check-label input{width:auto;min-height:0}
.notice{padding:12px 15px;border-radius:10px;font-size:12px;margin:18px 0}.notice.success{background:#e9f2e9;color:#28582c}.notice.error{background:#f9e9e8;color:#922e2e}
.admin-intro{padding:65px 0 35px}.admin-intro h1{font-size:clamp(40px,6vw,68px)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{padding:22px;border:1px solid var(--line);background:white;border-radius:14px;display:flex;flex-direction:column;gap:8px}.stat-card span{font-size:11px;color:#777}.stat-card strong{font-size:34px;letter-spacing:-.06em;font-weight:500}.admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 45px}.admin-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,3vw,28px);margin:25px 0}.admin-panel h2{font-size:20px;font-weight:500;margin:0 0 20px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.08em}td a,.link-button{font-size:12px;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;color:#111}.status{display:inline-block;font-size:10px;padding:4px 8px;border-radius:999px;background:#eee;color:#555}.status.published{background:#e7efe7;color:#315c35}.status.draft{background:#f2eee4;color:#78643c}
.admin-memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.manage-card{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden}.manage-card>img{width:100%;height:220px;object-fit:cover;display:block;background:#eee}.manage-card-body{padding:16px}.manage-card h3{font-size:17px;font-weight:500;margin:9px 0 0}.manage-card p{margin:5px 0 15px}.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid var(--line)}.list-row p{margin:4px 0 0}.private-note{border-bottom:1px solid var(--line);padding:15px 0}.private-note p{white-space:normal;margin:0 0 10px}.private-note .link-button{display:block;margin-top:10px}
@media(max-width:760px){.site-header{height:auto;min-height:68px;align-items:flex-start;flex-direction:column;justify-content:center;gap:9px;padding-top:13px;padding-bottom:13px}.top-nav{width:100%;overflow-x:auto;gap:20px;padding-bottom:2px}.top-nav a{white-space:nowrap;font-size:11px}.hero{min-height:480px;padding:70px 0}.section{padding:60px 0}.letter-grid,.two-column{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-card>img{height:180px}.site-footer{flex-direction:column;gap:8px}.timeline-item{grid-template-columns:90px 1fr;gap:15px}.section-heading{align-items:flex-start;flex-direction:column}.section-heading .button{align-self:flex-start}}
@media(max-width:430px){.container{width:calc(100% - 30px)}.admin-memory-grid{grid-template-columns:1fr}.manage-card>img{height:240px}.memory-grid{columns:2 135px;column-gap:12px}.memory-card{margin-bottom:17px}.memory-meta>span{font-size:12px}.memory-meta time{font-size:9px}.timeline-item{grid-template-columns:1fr;gap:6px}.timeline-item time{padding:0}.stat-card{padding:16px}.stat-card strong{font-size:28px}.site-footer{padding:25px 15px}}
