html,body,#root{min-height:100%}body{margin:0}:root{--ink: #013220;--ink-soft: rgba(1, 50, 32, .72);--bg: #fdfbf7;--white: #ffffff;--burgundy: #800020;--champagne: #c0ab8e;--ticket: #e8dfd4;--line: rgba(1, 50, 32, .2);--font-display: "Cormorant Garamond", "Noto Serif JP", serif;--font-body: "Noto Serif JP", "Hiragino Mincho ProN", serif;--font-script: "Great Vibes", cursive}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--ink);font-family:var(--font-body);line-height:1.8;background:var(--bg);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:var(--ink)}.page{overflow-x:hidden;background:var(--bg)}.app-shell{min-height:100svh;background:var(--bg)}.section{width:min(920px,calc(100% - 2.5rem));margin:0 auto;padding:5.5rem 0}.section__heading{margin:0 0 1.75rem;font-family:var(--font-display);font-size:clamp(2rem,4vw,2.75rem);font-weight:500;letter-spacing:.08em;line-height:1.3;color:var(--ink)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal--visible{opacity:1;transform:translateY(0)}.invitation-intro{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;min-height:100vh;min-height:100svh;padding:2rem 1.25rem;color:var(--ink);background:var(--bg);text-align:center;opacity:1;transition:opacity 1.2s ease}.invitation-intro p{margin:0;font-family:var(--font-body);font-size:clamp(1.15rem,4vw,1.65rem);font-weight:400;letter-spacing:.18em;line-height:1.8;animation:invitation-intro-reveal 1.2s ease-out both}.invitation-intro--exiting{opacity:0;pointer-events:none}@keyframes invitation-intro-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.invitation-intro{transition:none}.invitation-intro p{animation:none}}.hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:90vh;height:90svh;padding:clamp(1.5rem,5svh,3.5rem) 1.25rem;overflow:hidden;color:var(--white);background:var(--ink);text-align:center}.hero:after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(to bottom,#011c134d,#011c1314 38%,#011c1361);pointer-events:none}.hero__foreground{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;transform:translateY(clamp(4rem,10svh,7rem))}.hero__invite{position:relative;z-index:1;width:min(640px,100%);padding:clamp(1rem,2.5svh,2rem) .5rem clamp(.75rem,1.8svh,1.5rem);margin-bottom:0}@media(min-width:390px){.hero__invite{padding-inline:1rem}}.hero__content{position:relative;z-index:1}.hero__heading{margin:0;font:inherit}.hero__invitation{display:block;margin:0 0 .75rem;font-family:var(--font-display);font-size:clamp(1.4rem,5.8vw,2.75rem);letter-spacing:.32em;font-weight:600;margin-right:-.32em}@media(min-width:390px){.hero__invitation{letter-spacing:.42em;margin-right:-.42em}}@media(min-width:480px){.hero__invitation{letter-spacing:.58em;margin-right:-.58em}}.hero__subtitle{display:block;margin:0 0 1.1rem;font-family:var(--font-display);font-size:clamp(.9rem,2.2vw,1.15rem);letter-spacing:.2em;font-weight:400;text-transform:uppercase;color:#ffffffdb}.hero__title{display:block;margin:0;font-family:var(--font-script);font-size:clamp(3.2rem,10vw,5.25rem);font-weight:400;letter-spacing:.01em;line-height:1.2}.hero__heading,.hero__date{text-shadow:0 2px 14px rgba(0,0,0,.62)}.hero__date{display:flex;align-items:baseline;justify-content:center;gap:.55em;margin:1.5rem 0 0;font-family:var(--font-display);letter-spacing:.12em}.hero__date-year,.hero__date-day{font-size:clamp(1.65rem,4vw,2.15rem);font-weight:400}.hero__date-month{font-size:clamp(3.1rem,7.5vw,4.25rem);font-weight:500;letter-spacing:.06em;line-height:1}.hero__poster{position:absolute;inset:0;z-index:0;margin:0;width:100%;height:100%;max-width:none}.hero__poster img{width:100%;height:100%;object-fit:cover;object-position:center top}.landing .hero{height:90vh;height:90svh}.landing__nav{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:1rem;width:min(360px,100%);margin-top:.5rem}.landing__cta{display:block;padding:1rem 1.5rem;font-family:var(--font-body);font-size:.95rem;letter-spacing:.12em;text-align:center;text-decoration:none;color:var(--white);background:#013220d1;border:1px solid rgba(255,255,255,.72);box-shadow:0 4px 18px #00000038;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .25s ease,color .25s ease,border-color .25s ease}.landing__cta:hover{color:var(--white);background:#013220f5;border-color:var(--white)}.landing__cta:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100svh;padding:3.5rem 1.25rem 5rem;text-align:center}.not-found__code{margin:0 0 1.25rem;font-family:var(--font-display);font-size:clamp(3.5rem,12vw,5.5rem);font-weight:400;letter-spacing:.12em;line-height:1;color:var(--ink-soft);animation:hero-fade 1.2s ease both}.not-found__brand{margin:0 0 1.5rem;font-family:var(--font-script);font-size:clamp(2.75rem,8vw,4rem);font-weight:400;line-height:1.15;color:var(--ink);animation:hero-fade 1.2s ease .15s both}.not-found__message{margin:0 0 2.5rem;font-family:var(--font-body);font-size:clamp(.95rem,2.5vw,1.1rem);letter-spacing:.12em;color:var(--ink-soft);animation:hero-fade 1.2s ease .3s both}.not-found__cta{width:min(360px,100%);animation:hero-fade 1.4s ease .45s both}@keyframes hero-fade{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-height:680px){.hero{padding-block:1rem}.hero__invite{padding-block:.65rem}.hero__invitation{margin-bottom:.35rem;font-size:clamp(1.25rem,5vw,2rem)}.hero__subtitle{margin-bottom:.5rem}.hero__title{font-size:clamp(2.8rem,9vw,4rem)}.hero__date{margin-top:.65rem}.landing__nav{gap:.65rem}.landing__cta{padding-block:.75rem}}.countdown{text-align:center}.countdown__wreath{position:relative;width:min(420px,92vw);height:min(420px,92vw);aspect-ratio:1 / 1;margin:0 auto;display:grid;place-items:center;flex-shrink:0;overflow:visible}.countdown__ring{position:absolute;inset:-14%;pointer-events:none;z-index:1}.countdown__ring-img{display:block;width:100%;height:100%;object-fit:contain}.countdown__circle{position:relative;z-index:2;width:82%;height:82%;padding:.35rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;background:transparent;color:var(--champagne);box-sizing:border-box;text-align:center}.countdown__days{margin:0;display:flex;align-items:baseline;justify-content:center;gap:.45rem;font-family:var(--font-display);line-height:.95;color:var(--champagne)}.countdown__days-num{font-size:clamp(5rem,20vw,7.25rem);font-weight:400;letter-spacing:.02em}.countdown__days-label{font-size:clamp(1.45rem,5.5vw,2.1rem);font-weight:400;letter-spacing:.04em}.countdown__hms{margin:.15rem 0 0;font-family:var(--font-display);font-size:clamp(1.55rem,6vw,2.25rem);font-weight:400;letter-spacing:.06em;line-height:1.1;color:var(--champagne)}.countdown__hms small{font-size:.72em;letter-spacing:.04em}.countdown__footer{margin:.45rem 0 0;font-family:var(--font-script);font-size:clamp(1.55rem,6vw,2.25rem);font-weight:400;letter-spacing:.02em;line-height:1.1;color:var(--champagne)}.countdown__divider{width:72%;margin:.45rem 0 .35rem;border:none;border-top:1px solid var(--champagne)}.countdown__date{margin:0;font-family:var(--font-display);font-size:clamp(1.35rem,5vw,1.9rem);font-weight:400;letter-spacing:.08em;line-height:1.1;color:var(--champagne)}.countdown__done{margin:.35rem 0;font-family:var(--font-display);font-size:clamp(1.6rem,5.5vw,2.1rem);letter-spacing:.08em;color:var(--champagne)}.greeting{text-align:center}.greeting__layout{display:grid;gap:2.5rem;align-items:start}.greeting__body{margin:0;display:flex;flex-direction:column;align-items:center;font-size:1.02rem;color:var(--ink);text-align:center;line-height:2.15}.greeting__line{display:block;white-space:nowrap}.greeting__line--blank{-webkit-user-select:none;user-select:none}@media(max-width:480px){.greeting__body{font-size:clamp(.72rem,3.85vw,1.02rem)}}.greeting__photo{margin:0 auto;width:min(420px,100%)}.greeting__photo img{width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:center bottom}@media(min-width:780px){.greeting__layout{grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}.greeting__photo{margin:0;width:100%}}.profile{text-align:center}.profile__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 3rem;margin-top:2rem}.profile__photo{width:min(280px,100%);aspect-ratio:1;margin:0 auto 1.25rem;object-fit:cover;border-radius:50%;border:1px solid var(--line)}.profile__role{margin:0;font-size:1.05rem;letter-spacing:.2em;color:var(--ink-soft)}.profile__name{margin:.35rem 0 0;font-family:var(--font-display);font-size:1.75rem;font-weight:500}.profile__name span{display:block;margin-top:.2rem;font-size:1.15rem;letter-spacing:.18em;color:var(--ink-soft);font-weight:400}.gallery{--gallery-film-width: min(320px, 78vw);--gallery-gap: 1.25rem;text-align:center;width:100%;max-width:none;padding-left:0;padding-right:0}.gallery .section__heading{width:min(920px,calc(100% - 2.5rem));margin-left:auto;margin-right:auto}.gallery__stage{position:relative}.gallery__nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:2.75rem;height:2.75rem;margin:0;padding:0;border:1px solid var(--line);border-radius:50%;background:#ffffffe0;color:var(--ink);cursor:pointer;transform:translateY(-50%);transition:background .2s ease,border-color .2s ease}.gallery__nav:hover{background:var(--white);border-color:var(--ink)}.gallery__nav:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.gallery__nav svg{display:block;width:1.15rem;height:1.15rem}.gallery__nav--prev{left:max(.75rem,calc((100% - var(--gallery-film-width)) / 2 - 3.5rem))}.gallery__nav--next{right:max(.75rem,calc((100% - var(--gallery-film-width)) / 2 - 3.5rem))}.gallery__viewport{overflow:hidden;overflow-x:hidden;padding:2.75rem 0 3rem}.gallery__container{display:flex;align-items:center;margin-left:calc(var(--gallery-gap) * -1);touch-action:pan-y pinch-zoom}.gallery__film{flex:0 0 calc(var(--gallery-film-width) + var(--gallery-gap));min-width:0;margin:0;padding-left:var(--gallery-gap)}.gallery__film-frame{position:relative;transform:scale(.92);transition:transform .35s ease;z-index:0}.gallery__film-frame--active{transform:scale(1.08);z-index:1}.gallery__film-frame img{width:100%;aspect-ratio:3 / 4;object-fit:cover;background:#ddd;pointer-events:none}@media(prefers-reduced-motion:reduce){.gallery__film-frame{transition:none}}.venue{text-align:center}.venue__panel{padding-top:.5rem;margin:0 auto;width:min(420px,100%)}.venue__date{margin-bottom:2rem}.venue__label{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.05rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft)}.venue__date-value{margin:0;font-family:var(--font-body);font-size:1.9rem;font-weight:500;letter-spacing:.06em;line-height:1.4}.venue__cards{display:grid;gap:1.25rem}.venue__card{padding:1.35rem 1.25rem 1.5rem;border:1px solid var(--line);background:var(--white)}.venue__card--place{background:#0132200a}.venue__card-title{margin:0 0 .85rem;padding-bottom:.75rem;border-bottom:1px solid var(--line);font-family:var(--font-body);font-size:1.1rem;font-weight:500;letter-spacing:.2em}.venue__card-time{margin:0;display:flex;align-items:baseline;justify-content:center;gap:.55rem;font-family:var(--font-body);letter-spacing:.06em}.venue__card-time-label{font-size:1.05rem;font-weight:400}.venue__card-time-value{font-family:var(--font-display);font-size:1.9rem;font-weight:500;letter-spacing:.08em;line-height:1.2}.venue__place-name{margin:0 0 .65rem;font-family:var(--font-display);font-size:1.65rem;font-weight:500;letter-spacing:.06em}.venue__place-detail{margin:0;color:var(--ink-soft);font-size:clamp(.8rem,2.8vw,.95rem);letter-spacing:.04em;line-height:1.7}.venue__place-address{white-space:nowrap}.venue__map-link{display:inline-block;margin-top:.85rem;font-size:clamp(.8rem,2.8vw,.95rem);letter-spacing:.08em}.venue__map{margin-top:2rem;overflow:hidden;border:1px solid var(--line);aspect-ratio:16 / 10;background:#e8eee9}.venue__map iframe{width:100%;height:100%;border:0}.request{text-align:center}.request__tree{margin:0 auto .85rem;width:clamp(160px,42vw,240px);opacity:.42}.request__tree img{width:100%;height:auto;margin-inline:auto}.request .section__heading{margin-top:0}.request__box{margin:0 auto;width:min(520px,100%);padding:2.25rem 1.75rem;border:2px solid var(--ink)}.request__title{margin:0 0 1.5rem;font-family:var(--font-display);font-size:clamp(1.35rem,3vw,1.7rem);font-weight:500;letter-spacing:.12em}.request__body{margin:0;white-space:pre-line;font-size:1.02rem;line-height:2.2;color:var(--ink)}.rsvp{width:100%;max-width:none;margin:0;padding:5.5rem 0 6rem;text-align:center;background:var(--ink);color:var(--white)}.rsvp__inner{width:min(640px,calc(100% - 2.5rem));margin:0 auto}.rsvp .section__heading{color:var(--white)}.rsvp__deadline,.rsvp__desc{margin:0 auto .75rem;max-width:36rem;color:#ffffffd1}.rsvp__ticket{--ticket-corner: 2rem;--ticket-scallop: .4rem;--ticket-period: 1.05rem;position:relative;margin:2.5rem auto 0;padding:2.25rem 1.75rem 2.5rem;background:var(--ticket);isolation:isolate;color:var(--ink);-webkit-mask-image:radial-gradient(var(--ticket-corner) at 0 0,#0000 98%,#000),radial-gradient(var(--ticket-corner) at 100% 0,#0000 98%,#000),radial-gradient(var(--ticket-corner) at 0 100%,#0000 98%,#000),radial-gradient(var(--ticket-corner) at 100% 100%,#0000 98%,#000);-webkit-mask-size:51% 51%;-webkit-mask-position:0 0,100% 0,0 100%,100% 100%;-webkit-mask-repeat:no-repeat;mask-image:radial-gradient(var(--ticket-corner) at 0 0,#0000 98%,#000),radial-gradient(var(--ticket-corner) at 100% 0,#0000 98%,#000),radial-gradient(var(--ticket-corner) at 0 100%,#0000 98%,#000),radial-gradient(var(--ticket-corner) at 100% 100%,#0000 98%,#000);mask-size:51% 51%;mask-position:0 0,100% 0,0 100%,100% 100%;mask-repeat:no-repeat}.rsvp__ticket:before,.rsvp__ticket:after{content:"";position:absolute;left:calc(var(--ticket-corner) + var(--ticket-scallop));right:calc(var(--ticket-corner) + var(--ticket-scallop));height:1px;pointer-events:none;z-index:1;background:#01322052}.rsvp__ticket:before{top:0}.rsvp__ticket:after{bottom:0}.rsvp__form{margin:0 auto;width:min(480px,100%);text-align:left;display:grid;gap:1.25rem}.rsvp__required-note{margin:0;font-size:.82rem;color:var(--ink-soft)}.rsvp__name-row{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:.75rem}.rsvp__field{display:grid;align-content:start;gap:.45rem;scroll-margin-top:1.5rem;font-size:.92rem;color:var(--ink)}.rsvp__field input:not([type=radio]),.rsvp__field textarea{width:100%;align-self:start;padding:.85rem .95rem;border:1px solid var(--line);border-radius:0;background:var(--white);color:var(--ink);font-family:inherit;font-size:16px;line-height:1.5}.rsvp__field input:not([type=radio]):focus,.rsvp__field textarea:focus{outline:2px solid var(--burgundy);outline-offset:1px}.rsvp__field input[aria-invalid=true]:not([type=radio]),.rsvp__field textarea[aria-invalid=true]{border-color:var(--burgundy)}.rsvp__field-hint,.rsvp__char-count{margin:0;font-size:.78rem;line-height:1.5;color:var(--ink-soft)}.rsvp__char-count{text-align:right}.rsvp__field-error{margin:0;font-size:.8rem;line-height:1.5;color:var(--burgundy)}.rsvp__postal-block{display:grid;gap:.45rem}.rsvp__address-fields{display:grid;gap:1.25rem}.rsvp__postal-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.65rem}.rsvp__postal-lookup{justify-self:start;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.4rem;padding:.7rem 1rem;border:1px solid var(--burgundy);background:var(--burgundy);color:var(--white);font:inherit;font-size:.82rem;font-weight:500;line-height:1.4;letter-spacing:.06em;white-space:nowrap;cursor:pointer;box-shadow:0 .3rem .8rem #8000201f;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.rsvp__postal-lookup:hover:not(:disabled){background:color-mix(in srgb,var(--burgundy) 88%,var(--ink));border-color:color-mix(in srgb,var(--burgundy) 88%,var(--ink));box-shadow:0 .45rem 1rem #8000202e;transform:translateY(-1px)}.rsvp__postal-lookup:focus-visible{outline:2px solid var(--burgundy);outline-offset:2px}.rsvp__postal-lookup:disabled{border-color:color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--ticket) 38%,var(--white));color:color-mix(in srgb,var(--ink) 50%,transparent);box-shadow:none;cursor:not-allowed}.rsvp__postal-lookup-icon{display:grid;flex:0 0 auto;width:1.1rem;height:1.1rem;place-items:center}.rsvp__postal-lookup-icon svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.rsvp__postal-spinner{width:.95rem;height:.95rem;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:rsvp-postal-spin .7s linear infinite}@keyframes rsvp-postal-spin{to{transform:rotate(360deg)}}.rsvp__lookup-status{font-size:.8rem;line-height:1.6;color:var(--ink-soft)}.rsvp__lookup-status:empty{display:none}.rsvp__lookup-status--not-found,.rsvp__lookup-status--error{color:var(--burgundy)}.rsvp__country-combobox{position:relative}.rsvp__country-list{position:absolute;z-index:5;top:calc(100% + .25rem);left:0;right:0;max-height:15rem;margin:0;padding:.3rem;overflow-y:auto;list-style:none;border:1px solid var(--line);background:var(--white);box-shadow:0 .75rem 1.5rem #3827251f}.rsvp__country-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .7rem;cursor:pointer;line-height:1.45}.rsvp__country-list li[aria-selected=true],.rsvp__country-list li.is-active{background:color-mix(in srgb,var(--burgundy) 8%,var(--white));color:var(--burgundy)}.rsvp__country-list small{flex:0 0 auto;color:var(--ink-soft);font-size:.72rem;letter-spacing:.08em}.rsvp__country-list .rsvp__country-empty{cursor:default;color:var(--ink-soft)}@media(max-width:420px){.rsvp__postal-field{grid-template-columns:1fr}.rsvp__postal-lookup{justify-self:stretch}}@media(prefers-reduced-motion:reduce){.rsvp__postal-lookup{transition:none}.rsvp__postal-lookup:hover:not(:disabled){transform:none}}.rsvp__choice{border:0;margin:0;padding:0}.rsvp__choice legend{margin-bottom:.55rem;padding:0;width:100%;color:var(--ink)}.rsvp__choice-group{display:grid;gap:.65rem}.rsvp__choice--binary .rsvp__choice-group{grid-template-columns:repeat(2,1fr)}.rsvp__choice-option{position:relative;display:block;cursor:pointer}.rsvp__choice-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;border:0;appearance:none;-webkit-appearance:none}.rsvp__choice-face{display:flex;align-items:center;justify-content:center;min-height:3.1rem;padding:.7rem .75rem;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--ticket) 28%,var(--white));color:var(--ink);transition:border-color .25s ease,background .25s ease,color .25s ease}.rsvp__choice-text{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.18em;line-height:1}.rsvp__choice-option:hover .rsvp__choice-face{border-color:color-mix(in srgb,var(--burgundy) 32%,transparent);background:color-mix(in srgb,var(--champagne) 28%,var(--white));color:var(--burgundy)}.rsvp__choice-option:has(input:checked) .rsvp__choice-face{border-color:color-mix(in srgb,var(--burgundy) 40%,transparent);background:color-mix(in srgb,var(--burgundy) 8%,var(--white));color:var(--burgundy)}.rsvp__choice-option:has(input:checked):hover .rsvp__choice-face{border-color:color-mix(in srgb,var(--burgundy) 40%,transparent);background:color-mix(in srgb,var(--burgundy) 8%,var(--white));color:var(--burgundy)}.rsvp__choice-option:has(input:focus-visible) .rsvp__choice-face{outline:2px solid var(--burgundy);outline-offset:2px}@media(prefers-reduced-motion:reduce){.rsvp__choice-face{transition:none}}.rsvp__companions{display:grid;gap:1.5rem}.rsvp__privacy-notice{margin:0;font-size:.8rem;line-height:1.8;color:var(--ink-soft)}.rsvp__privacy-notice a{color:var(--burgundy);text-underline-offset:.2em}.rsvp__privacy-notice a:hover{color:var(--ink)}.rsvp__privacy-notice a:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}.rsvp__companion{display:grid;gap:1.25rem;padding-top:.25rem;border-top:1px solid var(--line)}.rsvp__companion-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.rsvp__companion-title{margin:0;font-family:var(--font-display);font-size:1.05rem;letter-spacing:.12em;color:var(--ink)}.rsvp__companion-remove{padding:0;border:0;background:none;color:var(--burgundy);font:inherit;font-size:.9rem;letter-spacing:.06em;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}.rsvp__companion-add{justify-self:start;display:inline-flex;align-items:center;gap:.45rem;padding:.65rem 1rem;border:1px solid var(--burgundy);background:transparent;color:var(--burgundy);font:inherit;font-size:.9rem;letter-spacing:.06em;cursor:pointer;transition:background .18s ease,color .18s ease}.rsvp__companion-add svg{width:1rem;height:1rem;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.rsvp__companion-add:hover{background:var(--burgundy);color:var(--white)}.rsvp__companion-add:disabled{border-color:var(--line);color:var(--ink-soft);cursor:not-allowed}.rsvp__companion-add:disabled:hover{background:transparent;color:var(--ink-soft)}.rsvp__companion-add:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}.rsvp__submit,.rsvp__again{justify-self:center;margin-top:.5rem;padding:.95rem 2.4rem;border:1px solid var(--burgundy);background:var(--burgundy);color:var(--white);font-family:var(--font-display);font-size:1rem;letter-spacing:.18em;cursor:pointer;transition:background .25s ease,color .25s ease}.rsvp__submit:hover:not(:disabled),.rsvp__again:hover{background:transparent;color:var(--burgundy)}.rsvp__submit:disabled{opacity:.65;cursor:wait}.rsvp__error{white-space:pre-line;margin:0;color:var(--burgundy);font-size:.92rem}.rsvp__success{margin:0 auto;padding:2rem 1rem}.rsvp__success p{margin:0 0 1.25rem;font-family:var(--font-display);font-size:1.35rem;letter-spacing:.08em;color:var(--ink)}.rsvp__again{background:transparent;color:var(--burgundy)}.footer{padding:2rem 1rem 3rem;text-align:center;font-family:var(--font-display);letter-spacing:.16em;color:var(--ink-soft);font-size:.95rem;background:var(--bg)}.footer p{margin:0}.footer p a{color:inherit;text-decoration:none}.footer p a:hover{color:var(--ink)}.footer__nav{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.65rem;font-family:var(--font-body);font-size:.72rem;letter-spacing:.08em}.footer__nav a{color:inherit;text-underline-offset:.25em}.footer__nav a:hover{color:var(--ink)}.footer a:focus-visible,.license-card summary:focus-visible{outline:2px solid var(--champagne);outline-offset:4px}.privacy{min-height:100svh;padding:5rem 1.25rem 6rem;background:var(--bg)}.privacy__inner{width:min(760px,100%);margin:0 auto}.privacy h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,6vw,3rem);font-weight:500;letter-spacing:.06em;line-height:1.4}.privacy__intro{max-width:42rem;margin:1rem 0 4rem;color:var(--ink-soft)}.privacy__sections{display:grid;gap:2.75rem}.privacy__sections section{padding-bottom:2.75rem;border-bottom:1px solid var(--line)}.privacy__sections h2{margin:0 0 .9rem;font-family:var(--font-display);font-size:1.35rem;font-weight:500;letter-spacing:.08em}.privacy__sections p,.privacy__services{margin:0;line-height:2;color:var(--ink-soft)}.privacy__sections p+p,.privacy__services+p{margin-top:1rem}.privacy__services{display:grid;gap:1rem;margin-top:1.25rem}.privacy__services>div{padding:1.25rem 1.4rem;border:1px solid var(--line);border-radius:2px;background:#ffffff38}.privacy__services dt{margin-bottom:.45rem;color:var(--ink);font-weight:600}.privacy__services dd{display:grid;gap:.2rem;margin:0}.privacy__services a{width:fit-content;margin-top:.35rem;color:var(--burgundy);text-underline-offset:.2em}.privacy__services a:hover{color:var(--ink)}.privacy__services a:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}.privacy__updated{margin:2rem 0 0;color:var(--ink-soft);font-size:.85rem;text-align:right}@media(max-width:560px){.privacy{padding-top:3.5rem}.privacy__intro{margin-bottom:3rem}.privacy__sections{gap:2.25rem}.privacy__sections section{padding-bottom:2.25rem}.privacy__services>div{padding:1rem}}.licenses{min-height:100svh;padding:5rem 1.25rem 6rem;background:var(--bg)}.licenses__inner{width:min(820px,100%);margin:0 auto}.licenses h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,6vw,3rem);font-weight:500;letter-spacing:.06em;line-height:1.4}.licenses__intro{max-width:42rem;margin:1rem 0 4rem;color:var(--ink-soft)}.licenses__group+.licenses__group{margin-top:4rem}.licenses__group h2{margin:0 0 1.25rem;font-family:var(--font-display);font-size:1.5rem;font-weight:500;letter-spacing:.08em}.licenses__list{border-top:1px solid var(--line)}.license-card{border-bottom:1px solid var(--line)}.license-card summary{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:1.25rem 2rem 1.25rem 0;cursor:pointer;list-style:none}.license-card summary::-webkit-details-marker{display:none}.license-card summary:after{content:"+";position:absolute;right:0;top:50%;font-family:sans-serif;font-size:1.25rem;font-weight:300;transform:translateY(-50%)}.license-card[open] summary:after{content:"−"}.license-card__name{font-family:var(--font-display);font-size:1.1rem;font-weight:600;overflow-wrap:anywhere}.license-card__meta{flex:0 0 auto;font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft)}.license-card__text{margin:0 0 1.5rem;padding:1.25rem;max-width:100%;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;line-height:1.7;color:var(--ink);background:#c0ab8e1f;border:1px solid var(--line)}@media(max-width:560px){.licenses{padding-top:3.5rem}.licenses__intro{margin-bottom:3rem}.license-card summary{align-items:flex-start;flex-direction:column;gap:.15rem}.license-card__meta{flex:auto}.license-card__text{padding:1rem;font-size:.68rem}}@media(max-width:720px){.section{padding:4rem 0}.profile__grid{grid-template-columns:1fr;gap:2.75rem}.gallery{--gallery-film-width: min(240px, 58vw);--gallery-gap: 1rem}.gallery__nav--prev{left:.5rem}.gallery__nav--next{right:.5rem}.gallery__viewport{padding-block:2.25rem}.gallery__film-frame{transform:scale(.94)}.gallery__film-frame--active{transform:scale(1.05)}}
