:root { --ink:#25322d; --sun:#ffbd57; --cream:#f9f1e7; --coral:#ef7357; --green:#698a70; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"ZCOOL XiaoWei", serif; }
.hero { min-height:100svh; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:6rem 1.5rem 10rem; background:radial-gradient(circle at 50% 36%, #fff6d6 0 10%, transparent 38%), linear-gradient(160deg,#f6ded1 0%,#fbe9b9 48%,#e8d7c7 100%); }
.sun { position:absolute; width:min(42vw,480px); aspect-ratio:1; border-radius:50%; background:#ffbd57; opacity:.6; top:12%; box-shadow:0 0 0 24px rgba(255,189,87,.08),0 0 0 60px rgba(255,189,87,.06); animation:breathe 5s ease-in-out infinite; }
.eyebrow,.kicker { font:500 .72rem "DM Mono",monospace; letter-spacing:.16em; position:relative; }
.hero h1 { margin:.45rem 0 1.2rem; font:clamp(4rem,11vw,9rem) "Ma Shan Zheng",cursive; line-height:.9; position:relative; font-weight:400; }
.hero-copy { position:relative; font-size:clamp(1.05rem,2.2vw,1.45rem); line-height:1.8; }
.scroll { position:absolute; bottom:3rem; color:var(--ink); text-decoration:none; font-size:.92rem; border-bottom:1px solid currentColor; padding-bottom:.3rem; }
.scroll span { margin-left:.6rem; font-size:1.2rem; }
.horizon { position:absolute; height:10rem; width:130%; bottom:-6rem; background:#799875; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:rotate(-2deg); }
.spark { position:absolute; color:#fff8e8; font-style:normal; font-size:clamp(1.5rem,3vw,3rem); animation:twinkle 2.5s ease-in-out infinite; }.s1{top:22%;left:18%}.s2{top:31%;right:15%;animation-delay:.8s}.s3{top:14%;right:28%;animation-delay:1.5s}
.section { padding:clamp(5rem,10vw,9rem) max(1.5rem,8vw); }
.story { background:#fcfaf4; }.story-grid { max-width:1000px; margin:2rem auto 0; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4rem; }
h2 { font-size:clamp(2.4rem,5vw,5rem); line-height:1.16; font-weight:400; margin:0; } h2 em { color:var(--coral); font-family:"Ma Shan Zheng",cursive; font-style:normal; font-size:1.15em; }
.note { background:#f5d768; padding:2rem; font-size:1.2rem; line-height:1.8; transform:rotate(3deg); box-shadow:10px 12px 0 rgba(37,50,45,.11); }.note span{font-family:"Ma Shan Zheng",cursive;font-size:1.35rem}
.gallery { background:#dce8d9; }.gallery > h2 { max-width:720px; margin:1.5rem 0 4rem; }.photos { display:grid; grid-template-columns:1.25fr 1fr 1.05fr; gap:clamp(1.2rem,3vw,3rem); align-items:start; max-width:1180px; margin:auto; }.photo { margin:0; }.photo img { width:100%; display:block; aspect-ratio:4/5; object-fit:cover; filter:saturate(.9) contrast(1.04); box-shadow:8px 10px 0 rgba(37,50,45,.15); }.photo-two { margin-top:5rem; }.photo-three { margin-top:1.7rem; }.photo figcaption { padding:1rem .2rem; font-size:1.05rem; line-height:1.5; }
.wish { background:#263f36; padding-top:7rem; padding-bottom:7rem; }.wish-card { max-width:780px; margin:auto; text-align:center; color:#fff8e8; }.wish-card .kicker{color:#f6d96e}.wish-card p:not(.kicker){font-size:clamp(2rem,4vw,3.6rem);line-height:1.35;margin:1.2rem 0 2rem}.wish button { font:500 .8rem "DM Mono",monospace; letter-spacing:.05em; color:var(--ink); background:#f8dc72; border:0; padding:1rem 1.2rem; cursor:pointer; transition:transform .2s,background .2s; }.wish button:hover { background:#fff0a7; transform:translateY(-3px); }.wish button span{font-size:1.2rem;margin-left:.8rem}
footer { text-align:center; background:#263f36; color:#b9c7a6; padding:1.5rem; font:400 .63rem "DM Mono",monospace; letter-spacing:.1em; } footer span{color:#f8dc72;font-size:1rem;margin-left:.4rem}
@keyframes breathe{50%{transform:scale(1.05);opacity:.7}} @keyframes twinkle{50%{opacity:.3;transform:scale(.7)}}
@media (max-width:650px){.story-grid{grid-template-columns:1fr;gap:2.5rem}.photos{grid-template-columns:1fr 1fr;gap:1rem}.photo-two{margin-top:3rem}.photo-three{grid-column:1/-1;width:72%;justify-self:center;margin-top:0}.section{padding-left:1.4rem;padding-right:1.4rem}}
