:root{--ink:#2b2a33;--ink-soft:#5e5c68;--paper:#fffdf8;--paper-2:#f6efe2;--gold:#c9a24a;--red:#c73b2e;--green:#4f8a47;--line:#2b2a331f;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#e4ecf1;font:16px/1.8 Hiragino Mincho ProN,Yu Mincho,Noto Serif JP,serif}*{box-sizing:border-box}body{background:#e4ecf1;margin:0;overflow:hidden}#root{width:100%;height:100svh}#root div[style*="overflow: hidden auto"]{overflow-anchor:none}.nav-bar{pointer-events:none;z-index:10;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:fixed;top:0;left:0;right:0}.nav-brand{font:inherit;letter-spacing:.2em;color:var(--ink);cursor:pointer;pointer-events:auto;background:0 0;border:none;font-size:15px}.nav-links{pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.nav-links button{font:inherit;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf8d1;border-radius:999px;padding:6px 12px;font-size:11px}.nav-links button:hover{border-color:var(--gold);color:var(--red)}.caption{text-align:center;pointer-events:none;width:min(92vw,560px);position:absolute;left:50%;transform:translate(-50%)}.caption:not(.hero){border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf8e6;border-radius:999px;width:auto;max-width:92vw;padding:14px 28px 16px;box-shadow:0 12px 34px #2b2a3324}.caption:not(.hero) .caption-title{text-shadow:none;font-size:clamp(22px,3.6vw,32px)}.caption:not(.hero) .caption-body{margin-top:4px}.caption.hero{flex-direction:column;justify-content:center;align-items:center;height:100vh;display:flex}.hero-title{letter-spacing:.1em;flex-direction:column;align-items:center;gap:.05em;font-size:clamp(36px,7.5vw,84px);line-height:1.15;display:flex}.hero-title .amp{color:var(--red);font-size:.5em;font-style:italic}@media (width>=720px){.hero-title{flex-direction:row;gap:.4em}}.caption-eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--red);margin:0 0 6px;font-size:11px}.caption-title{letter-spacing:.06em;color:var(--ink);text-shadow:0 1px #fffc,0 8px 30px #ffffffe6;margin:0;font-size:clamp(26px,5vw,42px);font-weight:500}.caption-body{letter-spacing:.12em;color:var(--ink-soft);margin:10px 0 0;font-size:14px}.scroll-cue{letter-spacing:.4em;text-transform:uppercase;color:var(--ink-soft);margin:34px 0 0;font-size:10px;animation:2.2s ease-in-out infinite cue}@keyframes cue{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}.content-card{pointer-events:auto;border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffdf8f0;border-radius:14px;width:min(92vw,520px);padding:26px 28px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #2b2a331f}.content-eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--red);margin:0 0 10px;font-size:11px}.content-text{margin:0;font-size:15px;line-height:2}.content-text.small{font-size:13.5px;line-height:1.9}.content-text strong{color:var(--red);font-weight:600}.content-sign{text-align:right;color:var(--ink-soft);margin:12px 0 0;font-size:13px}.muted{color:var(--ink-soft)}.placeholder-note{color:#a0623f;background:#fbf1e6;border-radius:6px;margin:14px 0 0;padding:4px 8px;font-size:11px;display:inline-block}.content-link{color:var(--red);border-bottom:1px solid;margin-top:14px;font-size:13px;text-decoration:none;display:inline-block}.content-card.profile{width:min(94vw,720px)}.card-photo{aspect-ratio:3/2;border-radius:14px 14px 0 0;margin:-26px -28px 22px;overflow:hidden}.card-photo img{object-fit:cover;width:100%;height:100%;display:block}.profile-son{background:var(--paper-2);border-radius:10px;margin:0 0 16px;padding:14px 16px}.profile-son .content-eyebrow{margin-bottom:4px}.profile-grid{grid-template-columns:1fr 1fr;gap:22px;margin-bottom:18px;display:grid}.profile-name{margin:0 0 6px;font-size:19px;font-weight:500}@media (width<=520px){.profile-grid{grid-template-columns:1fr}}.intro-veil{z-index:20;pointer-events:none;background:radial-gradient(at 50% 40%,#fff 0%,#f4f9fd 45%,#e3f2fb 100%);animation:2.6s ease-in-out .2s forwards veil;position:fixed;inset:0}@keyframes veil{0%{opacity:1}to{opacity:0;visibility:hidden}}.reveal{opacity:0;animation:1.4s cubic-bezier(.2,.7,.2,1) forwards rise}.caption.hero .reveal:first-child{animation-delay:.3s}.caption.hero .reveal:nth-child(2){animation-delay:.7s}.caption.hero .reveal:nth-child(3){animation-delay:1.3s}.caption.hero .reveal:nth-child(4){animation-delay:2.2s}@keyframes rise{0%{opacity:0;filter:blur(6px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:translateY(0)}}.gallery-card{transform:translateX(-50%) rotate(var(--tilt,-1.5deg));aspect-ratio:4/5;border:12px solid var(--paper);background:var(--paper);pointer-events:none;border-bottom-width:40px;border-radius:6px;width:min(86vw,520px);margin:0;position:absolute;left:50%;overflow:visible;box-shadow:0 18px 40px #2b2a332e}.gallery-card.landscape{aspect-ratio:3/2;width:min(92vw,720px)}.gallery-card img{object-fit:cover;border-radius:2px;width:100%;height:100%;display:block}.hero-photo{aspect-ratio:3/2;border:10px solid var(--paper);background:var(--paper);border-bottom-width:26px;width:min(88vw,760px);margin:26px 0 0;transform:rotate(-1.2deg);box-shadow:0 24px 60px #2b2a3338}.hero-photo img{object-fit:cover;width:100%;height:100%;display:block}.caption.hero .reveal:nth-child(5){animation-delay:2.6s}.gallery-card:nth-of-type(2n){--tilt:1.5deg}.gallery-card figcaption{letter-spacing:.06em;color:var(--ink-soft);text-align:center;font-size:12px;position:absolute;bottom:-34px;left:0;right:0}.gallery-index{color:var(--red);letter-spacing:.2em;margin-right:8px;font-size:10px}.content-dl{flex-direction:column;gap:10px;margin:0;display:flex}.content-dl>div{border-bottom:1px solid var(--line);gap:14px;padding-bottom:10px;font-size:14px;display:flex}.content-dl dt{color:var(--red);letter-spacing:.1em;flex:0 0 6.5em;padding-top:2px;font-size:12px}.content-dl dd{margin:0;line-height:1.8}.rsvp-form{flex-direction:column;gap:14px;margin-top:16px;display:flex}.rsvp-form label{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=520px){.form-row{grid-template-columns:1fr}}.rsvp-form input[type=text],.rsvp-form input[type=email],.rsvp-form textarea{font:inherit;border:1px solid var(--line);background:var(--paper);color:var(--ink);resize:vertical;border-radius:8px;padding:10px 12px;font-size:15px}.rsvp-form input:focus,.rsvp-form textarea:focus{outline-offset:1px;outline:2px solid #c9a24a80}.rsvp-form fieldset{border:none;margin:0;padding:0}.rsvp-form legend{color:var(--ink-soft);margin-bottom:8px;padding:0;font-size:12.5px}.attendance{grid-template-columns:1fr 1fr;gap:10px;display:grid}.attendance legend{grid-column:1/-1}.radio-card{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:12px 14px;color:var(--ink)!important;flex-direction:row!important;font-size:14px!important}.radio-card:has(input:checked){border-color:var(--red);background:#fff5f2}.radio-card input{accent-color:var(--red)}.rsvp-form button{background:var(--red);color:#fff;font:inherit;letter-spacing:.12em;cursor:pointer;border:none;border-radius:999px;margin-top:6px;padding:14px;font-size:15px;box-shadow:0 8px 20px #c73b2e40}.rsvp-form button:hover{filter:brightness(1.06)}.stop-label{border:1px solid var(--line);cursor:pointer;white-space:nowrap;font:inherit;background:#fffdf8eb;border-radius:999px;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;transition:transform .15s;display:flex;box-shadow:0 8px 20px #2b2a331f}.stop-label:hover{transform:scale(1.06)}.stop-label-en{letter-spacing:.22em;text-transform:uppercase;color:var(--red);font-size:10px}.stop-label-jp{color:var(--ink);font-size:13px}.site-footer{text-align:center;border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffdf8e0;border-radius:14px;width:min(92vw,520px);padding:22px 24px 28px;position:absolute;left:50%;transform:translate(-50%)}.footer-names{letter-spacing:.08em;margin:0 0 4px;font-size:18px}.footer-date{letter-spacing:.24em;color:var(--red);margin:0 0 14px;font-size:11px}.footer-note,.footer-contact{color:var(--ink-soft);margin:0;font-size:12px}
