:root{
  --bg:#f7f4ef; --card:#fffdf9; --ink:#20201e; --muted:#77736c;
  --line:#e7e1d8; --accent:#222; --soft:#eee9e1; --good:#42644c;
  --shadow:0 16px 50px rgba(35,31,25,.08); --radius:24px;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);
font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input{font:inherit} button{cursor:pointer}
.shell{max-width:1100px;margin:auto;padding:24px 18px 60px}
.hero{padding:42px 6px 26px;display:flex;justify-content:space-between;gap:20px;align-items:flex-end}
.kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
h1{font-family:Georgia,serif;font-size:clamp(42px,8vw,76px);line-height:.95;margin:10px 0 14px;letter-spacing:-.05em}
.hero p{max-width:620px;color:var(--muted);font-size:16px;line-height:1.55;margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.next{padding:24px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin:14px 0 28px}
.next .name{font:34px Georgia,serif;margin:5px 0}.date{color:var(--muted)}
.pill{display:inline-flex;padding:8px 12px;border-radius:999px;background:var(--soft);font-size:12px;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.person{padding:22px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between;transition:.2s}
.person:hover{transform:translateY(-2px);box-shadow:0 20px 55px rgba(35,31,25,.11)}
.person h2{font:30px Georgia,serif;margin:8px 0 5px}.person .birthday{color:var(--muted)}
.person .bottom{display:flex;justify-content:space-between;align-items:center;margin-top:25px}
.btn{border:0;background:var(--accent);color:white;border-radius:14px;padding:11px 15px;font-weight:700}
.btn.secondary{background:var(--soft);color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:38px 0 14px}
.section-head h2{font:32px Georgia,serif;margin:0}.section-head p{color:var(--muted);margin:4px 0 0}
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.item{overflow:hidden}.item img{width:100%;aspect-ratio:1.15/1;object-fit:cover;background:var(--soft);display:block}
.itembody{padding:17px}.item h3{font-size:17px;margin:0 0 7px}.price{font-weight:800}.meta{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.45}
.actions{display:flex;gap:8px;margin-top:15px}.actions .btn{flex:1}
.modal{position:fixed;inset:0;background:rgba(20,18,15,.42);display:flex;align-items:center;justify-content:center;padding:18px;z-index:10}
.modalbox{max-width:440px;width:100%;padding:25px}.modalbox h2{font:30px Georgia,serif;margin:0 0 7px}.modalbox p{color:var(--muted);line-height:1.5}
label{display:block;font-size:13px;font-weight:700;margin:16px 0 7px}input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:white;outline:none}
input:focus{border-color:#aaa}.row{display:flex;gap:9px}.row>*{flex:1}
.notice{padding:13px 15px;border-radius:14px;background:#f0eee9;color:#57534c;font-size:13px;margin:12px 0}
.empty{padding:30px;text-align:center;color:var(--muted);grid-column:1/-1}
footer{padding:40px 4px 0;text-align:center;color:var(--muted);font-size:12px}
@media(max-width:760px){.hero{padding-top:25px;display:block}.next{display:block}.next .btn{margin-top:15px}.grid,.items{grid-template-columns:1fr}.person{min-height:160px}}
@media(min-width:761px) and (max-width:950px){.items{grid-template-columns:repeat(2,minmax(0,1fr))}}
