:root { --paper:#fbfaf8; --paper-deep:#f4eeec; --ink:#574d4d; --muted:#9a8586; --accent:#b98d8f; --accent-dark:#89676b; --line:#e6dcdc; --white:#fff; --serif:"Iropke Batang", "Nanum Myeongjo", Georgia, serif; --sans:"Pretendard", "Apple SD Gothic Neo", Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:#292223; }
body { margin:0; color:var(--ink); background:#292223; font-family:var(--serif); -webkit-font-smoothing:antialiased; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
.site-shell { width:100%; max-width:560px; margin:0 auto; overflow:hidden; background:var(--paper); box-shadow:0 0 36px rgba(0,0,0,.14); }
.section { position:relative; padding:84px 34px; text-align:center; }
.section + .section { border-top:1px solid rgba(185,141,143,.16); }
.section-heading { margin-bottom:33px; }
.section-heading h2 { margin:8px 0 0; font-size:25px; line-height:1.45; font-weight:400; letter-spacing:-.04em; }
.eyebrow { color:var(--muted); font-family:Georgia,serif; font-size:10px; letter-spacing:.22em; line-height:1.5; }
.cover { min-height:760px; padding:65px 34px 34px; background:linear-gradient(160deg,#f9f3f0 0%,#fbfaf8 62%,#f2e6e3 100%); }
.cover-ornament { color:var(--accent); font-size:28px; line-height:1; margin-bottom:24px; opacity:.85; }
.cover h1 { margin:11px 0 10px; color:#4f4546; font-size:33px; font-weight:400; letter-spacing:-.06em; }
.cover h1 span { color:var(--accent); font-size:18px; padding:0 4px; vertical-align:middle; }
.cover-kicker { margin:0 0 29px; color:var(--muted); font-size:14px; letter-spacing:.14em; }
.frame { position:relative; padding:9px; background:#fff; box-shadow:0 10px 28px rgba(102,75,76,.13); }
.frame:before { content:""; position:absolute; inset:4px; border:1px solid rgba(185,141,143,.22); pointer-events:none; }
.cover-photo { max-width:414px; margin:auto; aspect-ratio:4/5; }
.cover-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.cover-details { margin:29px auto 0; font-size:13px; line-height:1.9; letter-spacing:.04em; }
.cover-details p { margin:0; }.cover-details span { color:var(--accent); padding:0 4px; }
.quick-nav { display:flex; justify-content:center; gap:15px; margin-top:22px; }.quick-nav a { color:var(--muted); font-family:var(--sans); font-size:10px; text-decoration:none; }.quick-nav a:hover,.quick-nav a:focus { color:var(--accent-dark); }
.scroll-cue { display:block; margin:30px auto 0; width:31px; height:31px; border:1px solid var(--line); border-radius:50%; color:var(--muted); text-decoration:none; line-height:28px; font-family:var(--sans); }
.greeting { padding-top:98px; }.greeting-body { margin:0 auto; max-width:380px; font-size:15px; line-height:2.12; letter-spacing:-.02em; }.greeting-closing { margin:31px 0 0; color:var(--accent-dark); font-size:14px; }
.names-card { display:flex; justify-content:center; align-items:center; gap:15px; margin:55px 0 19px; }.names-card>div { display:flex; flex-direction:column; gap:6px; min-width:100px; }.names-card strong { font-size:18px; font-weight:400; }.names-card small { color:var(--muted); font-family:var(--sans); font-size:10px; }.names-heart { color:var(--accent); font-family:var(--sans); font-size:13px; }.contact-actions { display:flex; justify-content:center; gap:8px; }.contact-actions a { display:inline-block; min-width:112px; padding:8px 10px; color:var(--accent-dark); border:1px solid var(--line); border-radius:30px; font-family:var(--sans); font-size:11px; text-decoration:none; }
.calendar-section { background:var(--paper-deep); }.calendar-box { max-width:370px; margin:0 auto; padding:26px 22px 22px; background:rgba(255,255,255,.4); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.calendar-month { margin:0 0 19px; color:var(--accent-dark); font-family:Georgia,serif; font-size:19px; letter-spacing:.1em; }.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px 0; font-family:var(--sans); font-size:10px; line-height:29px; }.calendar-grid>span { min-height:29px; }.calendar-grid>span:nth-child(7n+1),.calendar-grid>.sun { color:#c28383; }.calendar-grid .event-day { position:relative; z-index:0; color:#fff; }.calendar-grid .event-day:before { content:""; z-index:-1; position:absolute; top:3px; left:50%; width:25px; height:25px; transform:translateX(-50%); border-radius:50%; background:var(--accent); }.calendar-time { margin:24px 0 0; font-size:14px; }.calendar-time span { color:var(--accent); margin:0 4px; }.sample-note { margin:9px 0 0; color:#ae9898; font-family:var(--sans); font-size:10px; letter-spacing:.02em; }.countdown { display:flex; justify-content:center; align-items:baseline; gap:4px; margin:27px 0 0; color:var(--accent-dark); font-family:Georgia,serif; }.countdown span { min-width:27px; font-size:18px; }.countdown small { margin-right:2px; color:var(--muted); font-family:var(--sans); font-size:8px; text-transform:uppercase; }.countdown i { color:var(--muted); font-style:normal; }
.outline-button,.dark-button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 19px; border:1px solid var(--accent); border-radius:24px; cursor:pointer; font-family:var(--sans); font-size:11px; letter-spacing:.01em; text-decoration:none; }.dark-button { border-color:var(--accent); background:var(--accent); color:#fff; }.outline-button { background:transparent; color:var(--accent-dark); }.outline-button.full { width:100%; }.copy-button { border:0; border-radius:20px; padding:8px 12px; background:var(--paper-deep); color:var(--accent-dark); cursor:pointer; font-family:var(--sans); font-size:10px; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.toast { position:fixed; z-index:100; left:50%; bottom:22px; max-width:calc(100% - 40px); padding:10px 16px; border-radius:4px; background:#4d4142; color:#fff; font-family:var(--sans); font-size:12px; opacity:0; pointer-events:none; transform:translate(-50%,10px); transition:.22s ease; }.toast.visible { opacity:1; transform:translate(-50%,0); }
.admin-link { display:inline-block; margin-top:21px; color:var(--muted); font-family:var(--sans); font-size:10px; text-decoration:none; }
@media (min-width:700px) { .site-shell { margin:28px auto; border-radius:3px; } .cover { min-height:840px; } }
@media (max-width:380px) { .section { padding-left:22px; padding-right:22px; }.cover { padding-left:23px; padding-right:23px; }.cover h1 { font-size:29px; }.greeting-body { font-size:14px; } }
