:root{--pink:#c78d94;--ink:#594c4d;--muted:#827476;--ivory:#fffaf7;--blush:#f8efec;--gold:#b69a70}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--ivory);font-family:'DM Sans',sans-serif;line-height:1.7}a{color:inherit}button,input,select,textarea{font:inherit}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,6vw,100px);background:rgba(255,250,247,.96);position:sticky;top:0;z-index:10;box-shadow:0 2px 18px #b08b8b10}.brand{text-decoration:none;font-family:'Playfair Display',serif;font-size:20px;letter-spacing:2px}.brand span{color:var(--pink)}nav{display:flex;gap:clamp(10px,2.5vw,36px)}nav a{text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:1.4px}nav a:hover{color:var(--pink)}.hero{min-height:710px;min-height:calc(100svh - 72px);background:radial-gradient(ellipse at 15% 10%,#e8c6c777,transparent 44%),radial-gradient(ellipse at 90% 85%,#ebc2c477,transparent 40%),linear-gradient(125deg,#fffaf7,#f8eae8);display:grid;place-items:center;position:relative;overflow:hidden;text-align:center;padding:75px 20px}.hero-inner{position:relative;z-index:2;max-width:850px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:3px;color:#a47b80;text-transform:uppercase}.ornament{font-size:48px;color:#d6a9ae;margin:5px}.intro{font-family:'Playfair Display',serif;font-size:16px}.hero h1{font-family:'Great Vibes',cursive;color:#9e6872;font-weight:400;font-size:clamp(76px,11vw,142px);line-height:1.12;margin:22px 0}.hero h1 span{display:block}.hero h1 em{display:block;font-family:'Playfair Display',serif;font-size:34px;font-weight:400;font-style:italic;color:var(--gold);line-height:1.4}.hero-date{letter-spacing:3px;font-size:13px}.hero-rule,.thin-line{width:70px;height:1px;background:#caa5a0;margin:24px auto}.hero-tag{font-family:'Playfair Display',serif;font-style:italic;font-size:19px;margin-bottom:32px}.button{border:1px solid var(--pink);border-radius:2px;padding:14px 29px;display:inline-block;text-decoration:none;cursor:pointer;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;transition:.2s}.button:hover{transform:translateY(-2px)}.primary{background:#b9858d;color:white}.outline{background:transparent;color:#a16e78}.corner-flower{position:absolute;color:#d9a4ab77;font-size:250px;font-family:serif;line-height:1}.corner-flower small{font-size:140px}.corner-flower.left{left:-85px;bottom:-45px;transform:rotate(-30deg)}.corner-flower.right{right:-85px;top:5px;transform:rotate(130deg)}.section{text-align:center;padding:105px 24px}.section h2{font-family:'Playfair Display',serif;font-size:clamp(32px,4vw,52px);font-weight:400;line-height:1.4;margin:15px 0 20px}.section h2 i{font-weight:400;color:#b67d87}.story{max-width:800px;margin:auto}.story>p:not(.eyebrow){max-width:650px;margin:20px auto;color:var(--muted)}.divider-floral{color:#c18c93;margin-top:42px;font-size:23px}.gallery-section{background:#f7eeeb}.section-subtitle{color:var(--muted);font-size:15px;margin-bottom:40px}.gallery{max-width:1150px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery figure{margin:0}.gallery img{width:100%;height:360px;object-fit:cover;display:block;border-radius:150px 150px 4px 4px;background:#ead7d4}.gallery figcaption{font-family:'Playfair Display',serif;font-style:italic;margin-top:15px;color:#9c717a}.note{font-size:12px;color:var(--muted);margin-top:25px}.details{background:#fffaf7}.event-card{max-width:550px;margin:35px auto 0;padding:55px 30px;border:1px solid #e7d1ce;background:white;box-shadow:0 15px 55px #a77e7e0b}.event-symbol{font-size:45px;color:var(--pink)}.event-card h3{font-family:'Playfair Display',serif;font-size:27px;font-weight:400}.event-card h4{font-family:'Playfair Display',serif;font-size:22px;font-weight:400;margin-bottom:4px}.event-card p{color:var(--muted)}.event-date{font-weight:600}.event-card .button{margin-top:22px}.rsvp-section{background:linear-gradient(130deg,#f8eeeb,#fff8f5)}form{max-width:540px;margin:25px auto;text-align:left;background:#fff;padding:clamp(24px,5vw,50px);box-shadow:0 10px 55px #a77e7e12}form label{display:block;font-size:12px;letter-spacing:.7px;margin:18px 0 7px;font-weight:600}form input,form select,form textarea{width:100%;padding:13px 14px;border:1px solid #e4d2d0;border-radius:2px;background:#fffcfa;color:var(--ink)}form input:focus,form select:focus,form textarea:focus{outline:2px solid #d7aeb4}form button{margin-top:25px;width:100%}.form-status{font-size:13px;min-height:20px;color:#9d626d}footer{text-align:center;background:#9b7078;color:#fff8f6;padding:60px 20px}footer h2{font-family:'Great Vibes',cursive;font-size:52px;font-weight:400;margin:0}.footer-flower{font-size:38px}.tiny{font-size:13px}@media(max-width:700px){.topbar{height:65px;padding:0 15px}.brand{font-size:16px}nav{gap:11px}nav a{font-size:9px;letter-spacing:0}.hero{min-height:700px}.hero h1{font-size:84px}.corner-flower{font-size:155px}.corner-flower small{font-size:80px}.section{padding:75px 18px}.gallery{grid-template-columns:1fr;max-width:370px;gap:34px}.gallery img{height:420px}.event-card{padding:40px 20px}}@media(max-width:380px){nav a{font-size:8px}.hero h1{font-size:70px}}

.language-switch{display:flex;align-items:center;gap:5px;white-space:nowrap}.language-switch button{border:0;background:transparent;padding:7px 5px;color:var(--muted);font-size:12px;cursor:pointer}.language-switch button[aria-pressed="true"]{color:#9e6872;font-weight:700;text-decoration:underline;text-underline-offset:4px}html[lang="ja"] body{font-family:'DM Sans','Noto Sans JP',sans-serif}html[lang="ja"] .hero h1,html[lang="ja"] footer h2{font-family:'Great Vibes',cursive}@media(max-width:700px){.topbar{flex-wrap:wrap;height:auto;min-height:65px;gap:6px;padding:10px 14px}.topbar nav{order:3;width:100%;justify-content:center;gap:16px}.topbar nav a{font-size:10px}.language-switch{margin-left:auto}.hero{min-height:660px}}
/* Cinematic beach-photo opening */
.hero{min-height:calc(100svh - 72px);background-image:linear-gradient(180deg,rgba(15,34,44,.36),rgba(22,39,46,.29) 42%,rgba(15,31,39,.57)),url('images/beach.jpeg');background-size:cover;background-position:center center;color:#fff;isolation:isolate}
.hero::after{content:'';position:absolute;inset:12px;border:1px solid rgba(255,255,255,.44);pointer-events:none;z-index:1}
.hero-glow{display:none}.hero .eyebrow,.hero .intro,.hero .hero-date,.hero .hero-tag{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.55)}
.hero h1{color:#fff;text-shadow:0 4px 22px rgba(0,0,0,.55)}.hero h1 em{color:#ffe5db;text-shadow:0 3px 15px rgba(0,0,0,.5)}
.hero .ornament{color:#ffe5db;text-shadow:0 2px 12px rgba(0,0,0,.45)}.hero .hero-rule{background:rgba(255,255,255,.85)}
.hero .primary{background:rgba(255,248,245,.94);color:#79515b;border-color:#fff;font-weight:600}
.hero .corner-flower{color:rgba(255,237,233,.32);text-shadow:0 2px 20px rgba(0,0,0,.25)}
@media(max-width:700px){.hero{min-height:calc(100svh - 96px);background-position:51% center;padding:60px 22px}.hero h1{font-size:clamp(70px,17vw,104px)}.hero::after{inset:9px}.hero-inner{padding:8px 0}.hero .eyebrow{font-size:10px;letter-spacing:2px}}
@media(prefers-reduced-motion:no-preference){.hero-inner{animation:heroReveal 1.25s ease-out both}@keyframes heroReveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}}

@media(min-width:701px){.gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.gallery img{height:330px}}

/* Dress code and RSVP enhancements */
.dress-section {text-align:center;background:#fcf7f3;}
.dress-swatches {display:flex;justify-content:center;gap:clamp(12px,4vw,42px);flex-wrap:wrap;margin:28px auto 0;}
.dress-swatches>div {display:flex;align-items:center;flex-direction:column;gap:10px;font-size:0.95rem;}
.swatch {display:block;width:68px;height:68px;border-radius:50%;border:4px solid white;box-shadow:0 2px 13px #0002;}
.swatch.olive {background:#737b43}.swatch.brown {background:#85634e}.swatch.champagne {background:#e9d5af}
.form-hint {font-size:0.83rem;opacity:.8;line-height:1.5;margin:4px 0 14px;}
[hidden] {display:none!important;}

.swatch.ivory {background:#fffff0;border:1px solid #d9cfc5;}
