:root{--forest:#284b3b;--deep:#1d382d;--sage:#dfe8d8;--cream:#f8f6ef;--orange:#d87846;--ink:#29382e;--muted:#647267;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(7vw,24px);color:var(--forest);font-size:14px}.brand{width:43px;height:43px;border:1px solid #a8b6a6;border-radius:50%;display:grid;place-items:center;color:var(--forest);text-decoration:none;font-weight:700}.brand span{font-size:8px;position:absolute;transform:translate(16px,13px);background:var(--cream);padding:1px}.hero{min-height:610px;padding:60px max(10vw,28px) 84px;display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:5vw;position:relative;overflow:hidden;background:var(--sage)}.hero-copy{max-width:560px;z-index:1}.eyebrow,.section-mark{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;color:var(--forest)}h1,h2{font-family:var(--serif);font-weight:600;line-height:1.06;letter-spacing:-.035em;margin:14px 0 24px}h1{font-size:clamp(58px,7vw,96px);color:var(--deep)}h1 em,h2 em{color:var(--orange);font-weight:600}.lead{font-size:19px;max-width:510px;color:#4f5e53;margin-bottom:28px}.button{display:inline-flex;align-items:center;gap:15px;background:var(--forest);color:white;padding:15px 22px;border-radius:3px;text-decoration:none;font-size:15px;font-weight:700;box-shadow:0 6px 18px #284b3b25;transition:transform .2s,background .2s}.button:hover{background:var(--deep);transform:translateY(-2px)}.button span{color:#ffd2b6;font-size:20px}.note{font-size:12px;color:#647267;max-width:380px;margin-top:12px}.photo-frame{height:400px;max-width:480px;width:100%;justify-self:end;position:relative;overflow:hidden;background:#eed9b5;border:10px solid #fff9ed;box-shadow:0 14px 36px #324b3820;transform:rotate(2deg)}.sun{position:absolute;background:#e4a96f;border-radius:50%;width:112px;height:112px;right:58px;top:54px}.hill{position:absolute;bottom:-65px;width:140%;height:240px;border-radius:50% 50% 0 0}.hill-back{background:#9da98b;left:-28%;transform:rotate(-10deg)}.hill-front{background:#536f51;left:-12%;bottom:-110px;transform:rotate(9deg)}.photo-caption{position:absolute;bottom:21px;left:0;right:0;text-align:center;color:#fff9ed;font-family:var(--serif);font-size:18px;z-index:1}.bike{position:absolute;bottom:95px;left:44%;font-size:58px;filter:grayscale(.4);z-index:1}.decor{position:absolute;color:#d87846;font-size:38px}.decor-one{top:10%;left:53%}.decor-two{bottom:12%;left:6%;font-size:25px}.story,.practical,.rsvp{display:grid;grid-template-columns:.72fr 1.28fr;padding:105px max(10vw,28px);gap:6vw}.section-mark{padding-top:13px;white-space:nowrap}.section-mark span{color:var(--orange);padding:0 8px}.story h2,.practical h2,.rsvp h2{font-size:clamp(40px,5vw,62px);color:var(--deep);margin-top:0}.story>div:last-child{max-width:680px}.story p{max-width:610px;color:#5c685f}.practical{background:#e9eee4}.practical-content{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:start}.practical h2{font-size:48px}.details{border-top:1px solid #c8d2c6}.details article{display:flex;gap:18px;align-items:flex-start;padding:19px 0;border-bottom:1px solid #c8d2c6}.detail-icon{color:var(--orange);font-size:24px;width:25px}.details h3{font-size:14px;margin:0;color:var(--forest)}.details p{margin:2px 0 0;color:var(--muted);font-size:14px}.rsvp{padding-top:100px;padding-bottom:100px}.rsvp-box{max-width:690px}.rsvp h2{margin:13px 0 22px}.rsvp-box>p{max-width:560px;color:#5c685f}.badge{color:var(--forest);background:var(--sage);padding:5px 10px;border-radius:20px;font-size:12px;font-weight:700}.small-note{font-size:13px;color:#7c877e!important;margin-top:22px}footer{min-height:88px;background:var(--deep);color:#e7eee5;display:flex;justify-content:space-between;align-items:center;padding:20px max(10vw,28px);font-size:13px}footer a{color:#f4b68f;text-decoration:none}footer a:hover{text-decoration:underline}
@media(max-width:800px){.hero{grid-template-columns:1fr;padding:54px 8vw 68px;gap:42px}.hero-copy{max-width:620px}.photo-frame{justify-self:center;width:min(100%,480px);height:330px}.story,.practical,.rsvp{grid-template-columns:1fr;padding:72px 8vw;gap:22px}.section-mark{padding:0}.practical-content{grid-template-columns:1fr;gap:18px}.practical h2{font-size:44px}.decor-one{left:auto;right:8%;top:8%}}@media(max-width:480px){body{font-size:16px}.topbar{height:65px;font-size:12px}.hero{padding-top:45px}h1{font-size:60px}.lead{font-size:17px}.button{width:100%;justify-content:center;padding:15px 10px;font-size:14px}.photo-frame{height:280px}.story h2,.rsvp h2{font-size:42px}.practical h2{font-size:39px}footer{align-items:flex-start;flex-direction:column;gap:8px;padding-top:22px;padding-bottom:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.rsvp-box form{margin-top:28px;display:grid;gap:18px}.rsvp-box fieldset{border:1px solid #cbd6c8;border-radius:4px;padding:18px}.rsvp-box legend{font-weight:700;color:var(--forest);padding:0 8px}.choice label{display:block;margin:8px 0}.choice input{accent-color:var(--forest);width:20px;height:20px;vertical-align:middle;margin-right:8px}.person-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.person-row legend{grid-column:1/-1}.person-row label,.comment-label{display:grid;gap:5px;font-size:14px;font-weight:600;color:var(--forest)}.person-row label:last-child{grid-column:1/-1}.person-row input,.person-row select,.comment-label textarea{font:inherit;padding:12px;border:1px solid #c4d1c1;border-radius:3px;background:#fff;color:var(--ink);min-height:48px}.text-button{border:0;background:none;color:var(--forest);font:700 15px var(--sans);text-align:left;padding:8px 0;cursor:pointer}.form-success,.form-error{padding:12px;border-radius:3px;font-size:14px}.form-success{background:#e1eddb;color:#254a37}.form-error{background:#f8e4da;color:#8a3925}button:disabled{opacity:.6;cursor:wait}@media(max-width:480px){.person-row{grid-template-columns:1fr}}
.story .intro-copy{white-space:pre-line}
.gallery{display:grid;grid-template-columns:.72fr 1.28fr;gap:6vw;padding:30px max(10vw,28px) 78px}.gallery #photo-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.gallery img{width:100%;height:230px;object-fit:cover;border:7px solid white;box-shadow:0 8px 24px #324b381a}.gallery[hidden]{display:none}@media(max-width:800px){.gallery{grid-template-columns:1fr;padding:22px 8vw 65px;gap:22px}}#hero-title{max-width:620px}
